software:development:demo:cms:ucms:creating_file_lang
Это старая версия документа!
8.3. Файл lang.php
Файл перевода модуля установки. Количество языков перевода зависит только от желания автора проекта и определяется количеством файлов перевода. Для модуля установки нами было запланировано 2а языка, английский и русский.
- Создадим файл lang.php в нашей директории /library/install
- Создадим вложенную директорию lang в директории /library/install
- Создадим файлы lang_en.php и lang_ru.php в директории lang
Файлы перевода
- lang_en.php
<?php /* ------------------ Language: English ------------------ */ //определяем $lang как массив. $lang = array(); // задаем значения ключ/перевод $lang['INSTALL_APP_NAME'] = 'UCMC Installation'; $lang['SELECT_APP_LANG'] = 'Select application language:'; $lang['ENGLISH'] = 'English'; $lang['RUSSIAN'] = 'Russian'; $lang['SELECT_TIME_ZONE'] = 'Select time zone:'; ?>
- lang_ru.php
<?php /* ------------------ Language: Russian ------------------ */ //определяем $lang как массив. $lang = array(); // задаем значения ключ/перевод $lang['INSTALL_APP_NAME'] = 'Установка UCMC'; $lang['SELECT_APP_LANG'] = 'Выберите язык приложения:'; $lang['ENGLISH'] = 'Английский'; $lang['RUSSIAN'] = 'Русский'; $lang['SELECT_TIME_ZONE'] = 'Выберите часовой пояс:'; ?>
Файл lang_test.php
Файл lang_test.php сначало проверит наличие файла config.ini и выведет соответствующее сообщение. Следом прочтет файл config.ini
- ЕСЛИ файл config.ini прочитан получим для переменной $defaul_lang_user значение языка в настройках
- ЕСЛИ значение языка в config.ini пустое место, то проверим директорию lang на наличие файлов перевода и подключим первый файл перевода.
- ИНАЧЕ подключим файл перевода, имя которого указанно в файле config.ini
- lang_test.php
<!-- test/lang_test.php --> <?php /* подключим файл с константами, для апределения корневой директории приложения */ require_once __DIR__ . "../../../includes/cons.php"; /* Присваиваем переменной $file_config значение константы FOLDER (а это директория ucms, записанная в файле cons.php)и добовляем '/includes/config.php' - директорию includes и искомый файл config.ini */ $file_config = FOLDER . '/includes/config.ini'; /* Если config.ini существует */ if (file_exists($file_config)) { /* выводим запись о существовании */ echo "Файл $file_config существует". "<br/>"; /* Иначе выводим запись о не существовании*/ } else { echo "Файл $file_config не существует". "<br/>"; } //загружаем ini-файл, и возвращаем его настройки в виде ассоциативного массива $config_defaul_lang = parse_ini_file(FOLDER . "/includes/config.ini",true); // Проверьте, успешно ли прочитан ini-файл. // переменная $config_defaul_lang не ровно ЛОЖЬ if ($config_defaul_lang !== false) { // Доступ к индивидуальным настройкам $defaul_lang_user = $config_defaul_lang['defaul_lang']['defaul_lang']; if ($defaul_lang_user == ""){ echo "Ошибка чтения INI-файла. выбираем из наличия в папке /lang"; //Проверка наличия языковых файлов в директории /lang/ $dir = INSTALL . "/lang/"; //Возвращает массив (array), содержащий имена файлов и каталогов $source = scandir($dir); // Создадим массив - фильтр для исключения '..', '.' $filter = ['..', '.']; //В массиве с результатом функция scandir также покажет наличие папок с именами ".." и ".". //Технически первое имя соответствует ссылке на родительскую папку, а второе - на текущую. // Сравним массивы $files = array_diff($source, $filter); //Извлекает первый элемент массива $lang_one = array_shift($files); // выведем оставшийся массив print_r($files); echo "Первый элемент массива это:" . $lang_one; // Подключаем полученную страницу с переводом include_once 'lang/' . $lang_one; echo $lang['INSTALL_APP_NAME']; echo $lang['SELECT_TIME_ZONE']; } else { echo "Конфигурация по умолчанию: " . $defaul_lang_user . "<br/>"; // Подключаем полученную страницу с переводом include_once 'lang/' . $defaul_lang_user . '.php'; // Выведем перу переводов для теста echo $lang['INSTALL_APP_NAME']; echo $lang['SELECT_TIME_ZONE']; } }
Создадим в config.ini тестовую запись выбора файла перевода пользователем lang_ru
- config.ini
[defaul_lang] ; default configuration defaul_lang = lang_ru
Только авторизованные участники могут оставлять комментарии.
software/development/demo/cms/ucms/creating_file_lang.1747554699.txt.gz · Последнее изменение: — vladpolskiy