Файлы локализации — это текстовые файлы, которые можно открывать и редактировать в текстовом редактор, таком как Notepad или TextEdit, или в одном из множества расширенных Инструменты для редактирования текста, используемых программистами. Эти файлы обычно следуют принципу ключ-значение. Это означает, что они содержат список фрагментов текста (Strings), которые связаны с уникальными идентификаторами (ключ). Таким образом, каждая строка — это значение ключ (этот простой пример представляет собой формат файлов локализации, используемых в программировании на Java):
-
ключ1 = значение1
-
ключ2 = значение2
-
...
-
ключN = значениеN
Создать файлов локализации
Файлы локализации — это текстовые файлы с простой структурой. Их можно Создать вручную, но обычно они автоматически генерируются утилитами интернационализации или скриптами, доступными для различных сред разработки. Автоматическое Создать файлов локализации гарантирует правильность структуры файлов.
Чтобы Создать файл локализации, все фрагменты отображаемого текста заменяются в файлах кода на уникальные ключи. Затем Strings добавляются в файл локализации вместе со своими ключами.
использовать файлов локализации
Вместо фактических Strings код теперь содержит только ключи. Когда программное обеспечение формирует представление для пользователь, эти ключи используются для поиска связанных Strings в файле локализации.
Если приложение настроить для использования на английском и испанском языках, весь английский текст может храниться в файле под названием English.txt, который является расположением текста по умолчанию. Если пользователь не Выбрать язык, весь текст будет извлекаться из этого файла для формирования любого отображения. Если пользователь Выбрать испанский язык, программное обеспечение перенаправляется на Spanish.txt. Многие языки могут использоваться в такой системе.
Преимущество заключается в том, что выбор язык для отображения не влияет на код. Если программному обеспечению необходимо отобразить кнопка входа, ему может потребоваться строка, связанная с ключ login_button, и ему нужно только знать, в каком файле искать, чтобы получить соответствующую строка для данного язык.
Управление Strings
Будучи платформой перевода на основе ключ, Phrase поддерживает множество различных типов файлов ресурсов. После того как файлы загружены, ключ и связанные с ними значения строка извлекаются. Затем ключ и Strings представляются переводчик в стандартизированном формат. Переводчик фокусируются на своей задача, не беспокоясь о точном формат файла локализации. Они могут проверять ключ, поскольку сам ключ может предоставить важный контекст и помочь им в выборе правильных слов.
Когда все Strings переведены, файлы загружаются. В процессе создается необходимый формат файла локализации, который соответствует оригинал файлу.
Ресурсные формат файлов
Поддерживаются четыре основных типа ресурсов, все они по сути основаны на тексте и могут быть открыты и просмотрены в текстовом редактор.
Электронные таблицы
Поддерживаются файлы .XLSX и .CSV. Эти формат эквивалентны для целей локализации и содержат строки пар ключ-значение. Ключи находятся в одной строке, а соответствующие значения — в соседней строке. Какой именно столбец используется для какой цели, зависит от приложения, и локализатору необходимо настроить Phrase для правильной интерпретации столбцов. Файлы Zendesk .CSV имеют фиксированную структуру, поэтому этот тип файла не требует дальнейших корректировок:
"Название","Язык по умолчанию","Текст по умолчанию","Английский текст","Статус варианта" "ключ","Немецкий","Einfacher Schlüssel.","Простой ключ.","Текущий"
XML
XML — это формат, который предлагает метаинформацию в виде <теги>. Структура тег используется для определения того, где находятся ключ и соответствующие им значения, как показано здесь на примере файла Android XML:
<string name="simple_key">Just a ключ with a message.</string>
Два стандартных формат перевода XML — это .TMX и .XLIFF. Они не только содержат ключ и значения на одном язык, но и связывают пары значений из оригинал язык с соответствующими значениями из перевод язык. Такие файлы обычно являются двуязычными, как показывает эта единица перевода в файле Symfony Xliff:
<trans-unit id="simple_key" resname="simple_key"> <source xml:lang="de-DE">Nur ein einfacher Schlüssel mit einer einfachen Nachricht.</source> <target xml:lang="en-GB">Just a simple key with a simple message.</target> </trans-unit>
Программы QT используют файлы ресурсов со структурой, которая очень похожа на эти стандартизированные форматы, но по историческим причинам имеют другой макет.
Простые списки ключ-значение
Существуют файлы ресурсов, которые содержат просто простые списки ключей и значений, как показывает этот фрагмент из Ruby on Rails YAML:
simple_key: Just a simple key with a simple message.
Многие различные языки программирования или платформы используют такие форматы с Незначительный различиями в макете.
Поскольку это одноязычные файлы, программе локализации необходимо поддерживать параллельные версии таких файлов — одну для оригинал язык и другие для перевод язык.
Gettext создает файлы ключ-значение, содержащие дополнительную информацию, такую как описательные комментарии или варианты множественного числа:
# Это потрясающее описание для этого ключ! msgid "key_with_description" msgid_plural "" msgstr[0] "Check it out!" This key has a description! (At least in some formats)" msgstr[1] "Зацените!" У этого ключа есть %s описаний! (At least in some formats)"
Существуют конкурирующие форматы с похожей функциональностью и макетами, которые различаются относительно Незначительными способами.
Ассоциативные массивы
В то время как другие форматы требуют Пользовательский код (парсеры) для их чтения, некоторые форматы проще для разработчиков и локализаторов. Форматы на основе .JSON (JavaScript) и массивов .PHP могут быть прочитаны и сопоставлены напрямую с общими структурами кода (массивами), которыми легко манипулировать. Массивы могут быть сложными, и разные приложения генерируют Пользовательские структуры массивов.
Например, go-i18n JSON ссылается на ключи как Идентификатор:
{
"id": "simple_key",
"translation": "simple key, simple message, so simple."
},
Angular использует сами ключи в качестве ключей в своих массивах:
"simple_key": "Я — простой ключ с простым сообщением.".
Поскольку существуют эти Незначительные, но важные различия, поддерживаются широко используемые структуры .JSON и .PHP Array.