Управление переводами

Файлы локализации (строки)

Контент автоматически переведен с английского языка с помощью Phrase Language AI.

Файлы локализации — это текстовые файлы, которые можно открыть и редактировать в текстовом редакторе, таком как Notepad или TextEdit, или в одном из множества улучшенных инструментов редактирования текста, используемых программистами. Эти файлы, как правило, следуют принципу ключ-значение. Это означает, что они содержат список текстовых фрагментов (строк), которые связаны с уникальными идентификаторами (ключами). Каждая строка является значением ключа (Этот простой пример — это формат файлов локализации, используемых в программировании на Java.):

  • ключ1 = значение1

  • ключ2 = значение2

  • ...

  • ключN = значениеN

Создание файлов локализации

Файлы локализации — это текстовые файлы с простой структурой. Их можно создать вручную, но обычно они автоматически генерируются утилитами интернационализации или скриптами, доступными для различных сред разработки. Автоматическое создание файлов локализации гарантирует, что структуры файлов действительны.

Чтобы создать файл локализации, все отображаемые текстовые фрагменты заменяются уникальными идентификаторами в кодовых файлах. Текстовые строки затем добавляются в файл локализации с их идентификаторами.

Использование файлов локализации

Вместо фактических текстовых строк код теперь содержит только ключи. Когда программное обеспечение генерирует представление для пользователя, эти ключи используются для поиска связанных строк в файле локализации.

Если приложение настроено на использование английского и испанского языков, весь английский текст может храниться в файле с именем English.txt и является местоположением текста по умолчанию. Если пользователь не выберет язык, весь текст будет извлечен из этого файла для генерации любого отображения. Если пользователь выбирает испанский, программное обеспечение перенаправляется на Spanish.txt. Многие языки могут использоваться с такой системой.

Преимущество заключается в том, что выбор языка для отображения не влияет на код. Если программному обеспечению нужно отобразить кнопку входа, ему может потребоваться строка, связанная с ключом login_button, и ему нужно только знать, в каком файле искать, чтобы получить соответствующую строку для данного языка.

Управление строками

Как платформа перевода на основе ключей, Phrase поддерживает множество различных типов файлов ресурсов. После файлы загружены ключи и их связанные строковые значения извлекаются. Ключи и строки затем представляются переводчику в стандартизированном формате. Переводчики сосредотачиваются на своей задаче, не беспокоясь о точном формате файла локализации. Они могут просматривать ключи, потому что сам ключ может предоставить важный контекст и направить их к правильному выбору слов.

Когда все строки переведены, файлы загружаются. В процессе создаются необходимые форматы файлов локализации, которые соответствуют оригинальному исходному файлу.

Форматы файлов ресурсов ресурсов

Поддерживаются четыре широких типа ресурсов, которые в основном основаны на тексте и могут быть открыты и просмотрены в текстовом редакторе.

Электронные таблицы

.XLSX и .CSV файлы поддерживаются. Эти форматы эквивалентны для целей локализации и содержат строки пар ключ-значение. Ключи находятся в одной строке, в то время как соответствующие значения находятся в соседней строке. Какой именно столбец используется для какой цели зависит от приложения, и локализатору нужно настроить Phrase для правильной интерпретации столбцов. Файлы ZenDesk .CSV имеют фиксированную структуру, поэтому этот тип файла не требует дальнейших корректировок:

"Название","Язык по умолчанию","Текст по умолчанию","Английский текст","Статус варианта"
"simple_key","Русский","Простой ключ.","Простой ключ.","Текущий"

XML

XML — это формат, который предлагает метаинформацию в виде <tags>. Структура тегов используется для определения местоположения ключей и их соответствующих значений, как показано здесь из файла Android XML:

 <string name="simple_key">Простой ключ с сообщением.</string>

Два стандартных формата перевода XML — это .TMX и .XLIFF. Они содержат не только ключи и значения на одном языке, но также связывают пары значений из исходного языка с соответствующими значениями из целевого языка. Такие файлы обычно двуязычные, как показывает этот единица перевода в файле Symfony Xliff:

<trans-unit id="simple_key" resname="simple_key">
 <source xml:lang="de-DE">Только простой ключ с простой записью.</source
<target xml:lang="en-GB">Простой ключ с простым сообщением.</target>
</trans-unit>

Программы QT используют файлы ресурсов со структурой, которая очень похожа на эти стандартизированные форматы, но по историческим причинам имеет другой макет.

Простые списки ключей и значений

Существуют файлы ресурсов, которые содержат только простые списки ключей и значений, как показывает этот фрагмент из Ruby on Rails YAML:

simple_key: Простой ключ с простым сообщением.

Многие разные языки программирования или платформы используют такие форматы с незначительными различиями в макете.

Поскольку это однолингвенные файлы, программе локализации необходимо поддерживать параллельные версии таких файлов — одну для исходного языка и другие для целевых языков.

Gettext создает файлы ключей и значений, содержащие дополнительную информацию, такую как описательные комментарии или варианты во множественном числе:

# Это удивительное описание для этого ключа!
msgid "key_with_description"
msgid_plural ""
msgstr[0] "Проверьте это!" У этого ключа есть описание! (По крайней мере, в некоторых форматах)"
msgstr[1] "Проверьте это! У этого ключа есть %s описания! (По крайней мере, в некоторых форматах)"

Существуют конкурирующие форматы с аналогичной функциональностью и макетами, которые различаются относительно незначительными способами.

Ассоциативные массивы

В то время как другие форматы требуют пользовательского кода (парсеры) для их чтения, некоторые форматы проще для разработчиков и локализаторов. Форматы на основе .JSON (JavaScript) и .PHP массивов могут быть прочитаны и напрямую сопоставлены с общими структурами кода (массивами), которые легко манипулировать. Массивы могут быть сложными, и разные приложения генерируют пользовательские структуры массивов.

Например, go-i18n JSON ссылается на ключи как id:

{
    "id": "simple_key",
    "translation": "простой ключ, простое сообщение, так просто."
},

Angular использует сами ключи в качестве ключей в своих массивах:

"simple_key": "Я простой ключ с простым сообщением.".

Поскольку существуют эти незначительные, но важные различия, широко используемые структуры .JSON и .PHP массивов поддерживаются.

Была ли эта статья полезной?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.