Пользовательский интерфейс (UI) модуля можно самостоятельно перевести на любой язык.
Какой вариант локализации будет использован при работе модуля - определяется значением параметра $lng в файле const.php
Для того что создать новую локализацию необходимо скопировать файл «LNG\en.php» под новым именем (например de.php) в ту же папку.
Имя нового файла без расширения (в нашем примере «de») является значением параметра $lng, которое нужно указать в файле const.php, для использования этой локализации ($lng='de';).
Внимание!!! Не копируйте и не удаляйте файл ru.php т.к. он не содержит локализации и является «заглушкой», необходимой для работы модуля.
Далее, при помощи любого текстового редактора, поддерживающего кодировку UTF-8 (например FarManager), необходимо вручную перевести каждую строку внутри контейнера «switch» (всего около 100 слов и фраз).
Структура строки:
case "Адрес доставки": return "Delivery address"; break;
«Адрес доставки» - оригинальная фраза в русском UI (не менять!!!)
«Delivery address» - перевод на нужный язык.
*Желательно стараться сохранять примерное то же количество символов для каждой строки, что и в оригинале (на русском). В противном случае верстка некоторых элементов может «поплыть», т.к. более длинный перевод просто не вместится в ту область, которая отведена для данной фразы…
Внимание!!! При локализации не используйте символы двойной кавычки
"
При необходимости использования этого символа его нужно экранировать (поставить перед ними символ «\»)
\"
Для локализации экранной клавиатуры необходимо скопировать файл «LNG\en-kbd.php» под новым именем «de-kbd.php» в ту же папку.
Далее, при помощи любого текстового редактора, поддерживающего кодировку UTF-8 (например FarManager), необходимо вручную перевести каждую строку с тегом «input»
<input name="Q" type="button" value="Q" class="key"/>
name=«Q» - имя кнопки
value=«Q» - символ, который будет введен при нажатии на кнопку
Рекомендуется использовать ЗАГЛАВНЫЕ буквы для экранной клавиатуры.
При желании и необходимости вы можете удалить или добавить кнопку в любом ряду. Для этого нужно удалить целиком или добавить новую строку <input …>.
В самом конце файла, внутри контейнера <div id=«spacebar» align=center> находятся еще 2 кнопки, надписи на которых так же нужно перевести:
<input name=«clear» type=«button» value=«Clear» class=«clear»/>
<input name=«close» type=«button» value=«Close» class=«close» />
После этого, в файле «js\vkeyboard.js» необходимо модифицировать 2 строки. А именно:
Строка 54. Первичное значение:
if( $(this).val() == 'OK' || $(this).val() == 'Закрыть')
Дописать до вида
if( $(this).val() == 'OK' || $(this).val() == 'Закрыть' || $(this).val() == 'Close')
Строка 59. первичное значение:
if( $(this).val() == 'Очистить' )
Дописать до вида:
if( $(this).val() == 'Очистить' || $(this).val() == 'Clear')
где «Close» и «Clear» это соответствующие значения параметров 'valie' тегов 'input'. Регистр ВАЖЕН!!!
Заголовок таблицы это изображение из файла «\ico\tableHead.png».
Открываем его любым графическим редактором и правим названия столбцов.
Ширину столбцов не менять!!!
После правки всех необходимых файлов можно включить использование новой локализации указав новое значение параметра $lng в файле const.php. Далее перезагружаем модуль доставки и проверяем корректность перевода.
Если какая то фраза, требующая перевода, будет отсутствовать в используемом файле локализации (например, после обновления версии модуля), то при работе, эта фраза будет отображаться на русском и дополнительно выделяться красным цветом и символами «!!» с двух сторон:
Для исправления ошибки необходимо добавить в используемый файл локализации эту фразу (без знаков «!!») и указать перевод для нее.
— Александр Ильин 2018/04/30 15:44