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 охватывает две области: * Строки, которые соде...)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání


Интернационализация в 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"