Инструменты пользователя

Инструменты сайта


software:development:demo:cms:ucms:creating_file_lang

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
software:development:demo:cms:ucms:creating_file_lang [2025/05/18 11:01] – [Файл lang_test.php] vladpolskiysoftware:development:demo:cms:ucms:creating_file_lang [2025/05/18 13:08] (текущий) – внешнее изменение 127.0.0.1
Строка 17: Строка 17:
 ------------------ ------------------
 */ */
 +
 //определяем $lang как массив. //определяем $lang как массив.
 $lang = array(); $lang = array();
 // задаем значения ключ/перевод // задаем значения ключ/перевод
-$lang['INSTALL_APP_NAME'] = 'UCMC Installation'; + 
 +$lang['INSTALL_APP_NAME'] = 'UCMS Kernel Installation'; 
 +//Language and time zone settings 
 $lang['SELECT_APP_LANG'] = 'Select application language:'; $lang['SELECT_APP_LANG'] = 'Select application language:';
 $lang['ENGLISH'] = 'English'; $lang['ENGLISH'] = 'English';
 $lang['RUSSIAN'] = 'Russian'; $lang['RUSSIAN'] = 'Russian';
 $lang['SELECT_TIME_ZONE'] = 'Select time zone:'; $lang['SELECT_TIME_ZONE'] = 'Select time zone:';
 +//Database Options
 +$lang['DATABASE_UPTION'] = 'Database Options';
 +$lang['DATABASE_SERVER_MAN'] = 'Database Management System Server';
 +$lang['DATABASE_SERVER'] = 'Server: localhost';
 +$lang['DATABASE_USER'] = 'Database user';
 +$lang['DATABASE_NAME'] = 'Name:Login to connect to the database';
 +$lang['DATABASE_PASS'] = 'Password::Login to connect to the database';
 +//Database
 +$lang['DATABASE'] = 'Database';
 +$lang['DATABASE_NAME_UCMS'] = 'Database name: (UCMS)';
 +//Administrator Settings
 +$lang['ADMIN_SETTING'] = 'Administrator Settings';
 +$lang['ADMIN_LOGIN'] = 'Login admin';
 +$lang['ADMIN_PASS'] = 'Password admin';
 +$lang['ADMIN_PASS_CONFIRM'] = 'Confirm password admin';
 +$lang['ADMIN_PASS_EMAIL'] = 'Email admin';
 ?> ?>
 </code> </code>
Строка 38: Строка 57:
 $lang = array(); $lang = array();
 // задаем значения ключ/перевод // задаем значения ключ/перевод
-$lang['INSTALL_APP_NAME'] = 'Установка UCMC'; + 
 +$lang['INSTALL_APP_NAME'] = 'Установка UCMS Kernel';  
 +//Параметры языка и часового пояса
 $lang['SELECT_APP_LANG'] = 'Выберите язык приложения:'; $lang['SELECT_APP_LANG'] = 'Выберите язык приложения:';
 $lang['ENGLISH'] = 'Английский'; $lang['ENGLISH'] = 'Английский';
 $lang['RUSSIAN'] = 'Русский'; $lang['RUSSIAN'] = 'Русский';
 $lang['SELECT_TIME_ZONE'] = 'Выберите часовой пояс:'; $lang['SELECT_TIME_ZONE'] = 'Выберите часовой пояс:';
 +//Параметры базы данных
 +$lang['DATABASE_UPTION'] = 'Параметры базы данных';
 +$lang['DATABASE_SERVER_MAN'] = 'Сервер системы управления базами данных';
 +$lang['DATABASE_SERVER'] = 'Сервер: localhost';
 +$lang['DATABASE_USER'] = 'Пользователь базы данных';
 +$lang['DATABASE_NAME'] = 'Имя:Логин для соединения с базой данных';
 +$lang['DATABASE_PASS'] = 'Пароль:Пароль для соединения с базой данных';
 +//База данных
 +$lang['DATABASE'] = 'База данных';
 +$lang['DATABASE_NAME_UCMS'] = 'Имя базы данных: (UCMS)';
 +//Параметры администратора
 +$lang['ADMIN_SETTING'] = 'Параметры администратора';
 +$lang['ADMIN_LOGIN'] = 'Логин администратора';
 +$lang['ADMIN_PASS'] = 'Пароль администратора';
 +$lang['ADMIN_PASS_CONFIRM'] = 'Повторить пароль администратора';
 +$lang['ADMIN_PASS_EMAIL'] = 'Электронная почта администратора';
 ?> ?>
 </code> </code>
Строка 57: Строка 94:
  
 <?php <?php
-/* подключим файл с константами, для апределения корневой директории приложения */+/* подключим файл с константами, для определения корневой директории приложения */
 require_once __DIR__ . "../../../includes/cons.php"; require_once __DIR__ . "../../../includes/cons.php";
    
  /* Присваиваем переменной $file_config значение константы FOLDER   /* Присваиваем переменной $file_config значение константы FOLDER 
  (а это директория ucms, записанная в файле cons.php)и добовляем   (а это директория ucms, записанная в файле cons.php)и добовляем 
- '/includes/config.php' - директорию includes и искомый файл config.ini */+ '/includes/config.ini' - директорию includes и искомый файл config.ini */
     $file_config = FOLDER . '/includes/config.ini';     $file_config = FOLDER . '/includes/config.ini';
  /* Если config.ini существует */  /* Если config.ini существует */
Строка 124: Строка 161:
  
 {{:software:development:demo:cms:ucms:ucms_kernel_demo_book_32.png|}} {{:software:development:demo:cms:ucms:ucms_kernel_demo_book_32.png|}}
 +
 +Получаем сообщение о существовании файла **config.ini**, а так же значение переменной **defaul_lang = lang_ru**
 +и вывод двух тестовых фраз на русском языке.
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_33.png|}}
 +
 +Изменив в настройках файл перевода на **lang_en** получаем тестовые фразы на английском
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_34.png|}}
 +
 +Если файл перевода в **config.ini** не указан, то получаем сообщение **Ошибка чтения 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 "это lang";
 +
 +/* подключим файл с константами, для определения корневой 
 + *директории приложении и файлов конфигурации и функций */
 +require_once __DIR__ . "../../../includes/cons.php";
 +
 +//////////////////////////////////////////////////////////
 +// Создадим функцию для выбора первого файла и директории
 +function check_lang_install() {
 +$dir = INSTALL . "/lang/";
 +//Возвращает массив (array), содержащий имена файлов и каталогов
 +$source = scandir($dir);
 +// Создадим массив - фильтр для исключения '..', '.'
 +$filter = ['..', '.'];
 +//В массиве с результатом функция scandir также покажет наличие папок с именами ".." и "."
 +//Технически первое имя соответствует ссылке на родительскую папку, а второе - на текущую.
 +// Сравним массивы
 +$files = array_diff($source, $filter);
 +//Извлекаем первый элемент массива
 +$lang_one = array_shift($files);
 + // Подключаем полученную страницу с переводом
 + include_once 'lang/' . $lang_one;
 +}
 +//////////////////////////////////////////////////////////
 +
 + /* Присваиваем переменной $file_config значение константы FOLDER 
 + (а это директория ucms, записанная в файле cons.php)и добовляем 
 + '/includes/config.ini' - директорию includes и искомый файл config.ini */
 +    $file_config = FOLDER . '/includes/config.ini';
 + /* Если config.ini существует */
 +        if (file_exists($file_config)) {
 +//загружаем 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 == ""){
 + //подключим функцию выбора файла из директории
 + check_lang_install();
 + }   
 + else {
 +   // Подключаем полученную страницу с переводом
 + include_once 'lang/' . $defaul_lang_user . '.php';
 + }
 +}
 +}
 + else {
 + //подключим функцию выбора файла из директории
 + check_lang_install();
 + }
 +?>
 +</code>
 +Т.к. **install.php** у нас является отдельным модулем, то и файлы перевода мы создаем только для этого
 +мадуля в директори **/install**, больше они нам ни где не пригодятся, а так же фенкцию выбора мы не выносим
 +в **function.php**, т.к. выбираем файл в директории модуля **install.php**
  
 <note blue> <note blue>
software/development/demo/cms/ucms/creating_file_lang.1747555277.txt.gz · Последнее изменение: vladpolskiy