software:development:demo:cms:ucms:creating_file_lang
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| software:development:demo:cms:ucms:creating_file_lang [2025/05/09 14:03] – внешнее изменение 127.0.0.1 | software:development:demo:cms:ucms:creating_file_lang [2025/05/18 13:08] (текущий) – внешнее изменение 127.0.0.1 | ||
|---|---|---|---|
| Строка 7: | Строка 7: | ||
| * Создадим вложенную директорию **%%lang%%** в директории | * Создадим вложенную директорию **%%lang%%** в директории | ||
| * Создадим файлы **%%lang_en.php%%** и **%%lang_ru.php%%** в директории | * Создадим файлы **%%lang_en.php%%** и **%%lang_ru.php%%** в директории | ||
| + | |||
| + | =====Файлы перевода===== | ||
| <code php lang_en.php> | <code php lang_en.php> | ||
| Строка 16: | Строка 18: | ||
| */ | */ | ||
| + | // | ||
| $lang = array(); | $lang = array(); | ||
| + | // задаем значения ключ/ | ||
| - | $lang[' | + | $lang[' |
| + | //Language and time zone settings | ||
| $lang[' | $lang[' | ||
| $lang[' | $lang[' | ||
| $lang[' | $lang[' | ||
| $lang[' | $lang[' | ||
| + | //Database Options | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | //Database | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | // | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| ?> | ?> | ||
| </ | </ | ||
| Строка 33: | Строка 54: | ||
| ------------------ | ------------------ | ||
| */ | */ | ||
| + | // | ||
| $lang = array(); | $lang = array(); | ||
| + | // задаем значения ключ/ | ||
| - | $lang[' | + | $lang[' |
| + | // | ||
| $lang[' | $lang[' | ||
| $lang[' | $lang[' | ||
| $lang[' | $lang[' | ||
| $lang[' | $lang[' | ||
| + | // | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | //База данных | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | // | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | $lang[' | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | =====Файл lang_test.php===== | ||
| + | |||
| + | Файл **lang_test.php** сначало проверит наличие файла **config.ini** и выведет соответствующее сообщение. Следом прочтет файл **config.ini** | ||
| + | * **ЕСЛИ** файл **config.ini** прочитан получим для переменной **$defaul_lang_user** значение языка в настройках | ||
| + | * **ЕСЛИ** значение языка в **config.ini** пустое место, то проверим директорию **lang** на наличие файлов перевода и подключим первый файл перевода. | ||
| + | * **ИНАЧЕ** подключим файл перевода, | ||
| + | |||
| + | <code php lang_test.php> | ||
| + | <!-- test/ | ||
| + | |||
| + | <?php | ||
| + | /* подключим файл с константами, | ||
| + | require_once __DIR__ . " | ||
| + | |||
| + | /* Присваиваем переменной $file_config значение константы FOLDER | ||
| + | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
| + | '/ | ||
| + | $file_config = FOLDER . '/ | ||
| + | /* Если config.ini существует */ | ||
| + | if (file_exists($file_config)) { | ||
| + | /* выводим запись о существовании */ | ||
| + | echo " | ||
| + | /* Иначе выводим запись о не существовании*/ | ||
| + | } else { | ||
| + | echo " | ||
| + | } | ||
| + | // | ||
| + | $config_defaul_lang = parse_ini_file(FOLDER . "/ | ||
| + | // Проверьте, | ||
| + | // переменная $config_defaul_lang не ровно ЛОЖЬ | ||
| + | if ($config_defaul_lang !== false) { | ||
| + | // Доступ к индивидуальным настройкам | ||
| + | $defaul_lang_user = $config_defaul_lang[' | ||
| + | if ($defaul_lang_user == "" | ||
| + | echo " | ||
| + | // | ||
| + | $dir = INSTALL . "/ | ||
| + | // | ||
| + | $source = scandir($dir); | ||
| + | // Создадим массив - фильтр для исключения ' | ||
| + | $filter = [' | ||
| + | //В массиве с результатом функция scandir также покажет наличие папок с именами " | ||
| + | // | ||
| + | // Сравним массивы | ||
| + | $files = array_diff($source, | ||
| + | // | ||
| + | $lang_one = array_shift($files); | ||
| + | // выведем оставшийся массив | ||
| + | print_r($files); | ||
| + | echo " | ||
| + | // Подключаем полученную страницу с переводом | ||
| + | include_once ' | ||
| + | echo $lang[' | ||
| + | echo $lang[' | ||
| + | } | ||
| + | else { | ||
| + | echo " | ||
| + | // Подключаем полученную страницу с переводом | ||
| + | include_once ' | ||
| + | // Выведем перу переводов для теста | ||
| + | echo $lang[' | ||
| + | echo $lang[' | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Создадим в **config.ini** тестовую запись выбора файла перевода пользователем | ||
| + | директории | ||
| + | |||
| + | <code php config.ini> | ||
| + | [defaul_lang] | ||
| + | ; default configuration | ||
| + | defaul_lang = lang_ru | ||
| + | </ | ||
| + | |||
| + | Откроем файл **lang_test.php** в браузере: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Получаем сообщение о существовании файла **config.ini**, | ||
| + | и вывод двух тестовых фраз на русском языке. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Изменив в настройках файл перевода на **lang_en** получаем тестовые фразы на английском | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Если файл перевода в **config.ini** не указан, | ||
| + | проверяется директория **/lang** и выбираем первый файл, а это **lang_en.php** из массива, | ||
| + | **lang_fr.php** и **lang_ru.php**. Тестовые фразы соответственно на английском. | ||
| + | |||
| + | ===== Файл lang.php ===== | ||
| + | |||
| + | Сам файл **lang.php** в законченном виде нам ничего выводить не будет, т.к. в нем заключена логика выбора | ||
| + | файла перевода. Логику выбора файла перевода из директории вынисем в отдельную функцию **check_lang_install()** чтобы | ||
| + | не прописывать код дважда (для отсутствия **config.ini** и для **defaul_lang**=пустое значение) | ||
| + | |||
| + | <code php lang.php> | ||
| + | <?php | ||
| + | //echo " | ||
| + | |||
| + | /* подключим файл с константами, | ||
| + | | ||
| + | require_once __DIR__ . " | ||
| + | |||
| + | ////////////////////////////////////////////////////////// | ||
| + | // Создадим функцию для выбора первого файла и директории | ||
| + | function check_lang_install() { | ||
| + | $dir = INSTALL . "/ | ||
| + | // | ||
| + | $source = scandir($dir); | ||
| + | // Создадим массив - фильтр для исключения ' | ||
| + | $filter = [' | ||
| + | //В массиве с результатом функция scandir также покажет наличие папок с именами " | ||
| + | // | ||
| + | // Сравним массивы | ||
| + | $files = array_diff($source, | ||
| + | // | ||
| + | $lang_one = array_shift($files); | ||
| + | // Подключаем полученную страницу с переводом | ||
| + | include_once ' | ||
| + | } | ||
| + | ////////////////////////////////////////////////////////// | ||
| + | |||
| + | /* Присваиваем переменной $file_config значение константы FOLDER | ||
| + | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
| + | '/ | ||
| + | $file_config = FOLDER . '/ | ||
| + | /* Если config.ini существует */ | ||
| + | if (file_exists($file_config)) { | ||
| + | // | ||
| + | $config_defaul_lang = parse_ini_file(FOLDER . "/ | ||
| + | // Проверьте, | ||
| + | // переменная $config_defaul_lang не ровно ЛОЖЬ | ||
| + | if ($config_defaul_lang !== false) { | ||
| + | // Доступ к индивидуальным настройкам | ||
| + | $defaul_lang_user = $config_defaul_lang[' | ||
| + | if ($defaul_lang_user == "" | ||
| + | // | ||
| + | check_lang_install(); | ||
| + | } | ||
| + | else { | ||
| + | // Подключаем полученную страницу с переводом | ||
| + | include_once ' | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | else { | ||
| + | // | ||
| + | check_lang_install(); | ||
| + | } | ||
| ?> | ?> | ||
| </ | </ | ||
| + | Т.к. **install.php** у нас является отдельным модулем, | ||
| + | мадуля в директори **/ | ||
| + | в **function.php**, | ||
| <note blue> | <note blue> | ||
software/development/demo/cms/ucms/creating_file_lang.1746788582.txt.gz · Последнее изменение: — 127.0.0.1
