Перевод: различия между версиями

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
== Рекомендуемый быстрый способ перевода сайта ==<br/>
+
== Рекомендуемый быстрый способ перевода сайта ==
 
Вы можете использовать переводчик от Google, тут инструкция https://translate.google.com/manager/website/<br/>
 
Вы можете использовать переводчик от Google, тут инструкция https://translate.google.com/manager/website/<br/>
 
Это самый быстрый способ и не требует от вас дополнительных усилий.<br/>
 
Это самый быстрый способ и не требует от вас дополнительных усилий.<br/>

Версия 07:27, 1 февраля 2016

Рекомендуемый быстрый способ перевода сайта

Вы можете использовать переводчик от Google, тут инструкция https://translate.google.com/manager/website/
Это самый быстрый способ и не требует от вас дополнительных усилий.

Ручной перевод

Для того чтобы перевести пункты меню необходимо для каждого элемента в меню добавить соответствующие языковые значения. Доступно с версии системы 2.6.7

Для активации мультиязычного режима нужно включить в настройках во вкладке Редактор переводов опцию Использовать мультиязычность (apps.language.use_langs) - установите там значение 1.

Для того чтобы перевести текстовое описание в объявлении, нужно добавить поле описания с префиксом языка.
Например, нужно сделать перевод для поля text (описание) на английский язык (en).
Заходим в редактор форм и там добавляем поле с типом textarea_editor и системным названием text_en.
В поле доступно для групп указываем группу Администраторы. Этим мы добьемся того, что посетители сайта не будут видеть дублей полей на разных языках, т.е. гость не увидит поля text_en.
Однако, система будет использовать это поле, для того чтобы найти значение для text в другом языке, если этот язык сейчас активен. И если такое значение найдено, то будет выполнена операция перезаписи значения text=text_en.
Благодаря этому, мы получим перевод для описания объявления при просмотре его на сайте на другом языке, отличном от русского.

Локализации

Языки подключаются в два этапа - этап локализации системы и этап локализации приложения

Этап локализации системы

Языки подключаются в систему динамически. Фактически, признаком установленного языка является наличие языковой папки со словарями размещенной в /apps/system/language.

В этой папке размещаются языковые директории вида ru, en, cn. Каких-то особых ограничений на название языковой папки нет, кроме того, что ее название должно состоять только из латински букв от a до z. Логичнее всего обозначать их по кодам языков согласно ISO 639-1.

Данная языковая папка содержит один файл - dictionary.ini, который описывает переводы языковых переменных. Если вам необходимо добавить новый язык, просто добавьте соответствующую языковую папку, скопируйте в нее dictionary.ini из папки ru и переведите значения на нужный язык.


Этап локализации приложения

Приложения локализируются схожим образом. Единственным отличием является то, что языковые файлы хранятся в папке приложения. Языковой папкой приложения является /apps/приложение/language. В ней располагаются языковые папки локализаций, которые должны соответствовать папкам в системной языковой папке /apps/system/language.

Эта папка содержит так же файл dictionary.ini идентичны по смыслу и функционалу со словарем системы, но описываются в нем только свойственные именно этому приложению языковые переменные

Редактор языков в админке

В новых версиях создан редактор языков в панели управления Приложения - Редактор переводов

Необходимые изменения в базе данных

Когда вы добавляете свой язык, вам необходимо добавить дополнительные поля в базе данных с помощью этих команд:
alter table re_topic add column name_яз varchar(255);
alter table re_menu_structure add column name_яз varchar(255);
Где яз - это ваш языковой префикс. Например, если вы добавили японский язык, тогда яз = jp