I18n (русский)
Z Freenetis Wiki
Verze z 10. 12. 2013, 12:13, kterou vytvořil Sivosha (diskuse | příspěvky) (Založena nová stránka: cs:I18n en:I18n (english) Интернационализация в FreenetISu охватывает две области: * Строки, которые соде...)
Интернационализация в FreenetISu охватывает две области:
- Строки, которые содержатся в исходном коде - это делается с помощью языковых файлов в i18n
- Строки в базе данных - строки в базе данных, как правило, не нужно переводить.Исключение - названия типов - например, типы членов, объектов, контакты, которые вы можете редактировать через веб-интерфейс. С момента установки Freenetis содержит основные значения для этих типов, необходимо было бы подумать и об их интернационализации.
Перечисляемые типы реализуются с помощью двух таблиц:
+ Enum_types: | ID! TYPE_ID! значение | - | | 1 (например, тип пользователя =) | | заявитель | - | | 1 | | постоянный член | - | | 1 | | Почетный член | - | | 2 (= в качестве контактного типа) | | телефон | - | | 2 | | ICQ | - | | 2 | | Skype |
---|
Таблица enum_types содержит перечень всех типов на языке по умолчанию (здесь выбран английский язык)
Переводы для каждой строки enum_types получаем из таблицы переводы:
+ Translations: | id! original_term! translated_term! lang | - | | Regular member | | Řádný člen | | cs | - | | Regular member | | Regular member | | en | - | | Regular member | | ordentlich Mitglied | | de | - | | Phone | | Phone | | cs | - | | Phone | | Phone | | de | - |
---|
В связи с тем, что обе таблицы взаимосвязаны через ключ, вы можете использовать таблицу переводы и перевод терминов из других таблиц вместо enum_types.
SELECT enum_types.id, IFNULL(translations.translated_term,enum_types.value) as value FROM enum_types LEFT JOIN translations on enum_types.value = translations.original_term WHERE enum_types.type_id=1 AND translations.lang="cs"