|
Расширения файлов |
.po |
|
Расширение API |
gettext |
|
Импорт |
Да |
|
Экспорт |
Да |
|
Поддержка форм множественного числа |
Да |
|
Поддержка описания |
Да |
|
Варианты формата Эти параметры могут быть указаны при загрузке и/или скачивании файла. В зависимости от метода загрузки/скачивания (API, CLI, синхронизация репозитория и т.д.), они могут быть указаны в параметрах запроса |
|
.PO (Portable Object) — это стандартный формат файла для локализации с помощью GNU gettext, открытой библиотеки GNU, предназначенной для упрощения процесса локализации. С помощью GNU gettext локализуемые строки извлекаются из исходного кода в файл PO для перевода. Файл .PO представляет собой серию пар ключ-значение. Ключ msgid — это место, где размещается исходная строка, в то время как значение msgstr — это место, куда помещается перевод.
gettext извлекает строки из исходного кода в .POT (шаблон переносимого объекта). На основе определенных языковых стандартов gettext затем преобразует файл .POT в специфичные для локали файлы .PO для загрузки в инструмент CAT для перевода. После перевода gettext преобразует переведенные файлы .PO в файлы .MO (файлы машинных объектов), которые в конечном итоге используются для локализации.
.PO файлы идентичны .POT файлам, за исключением того, что .POT файлы обычно используются gettext для генерации специфичных для локали файлов .PO. Прямой перевод файла .POT и его переименование в соответствии с позже предполагаемой локалью не вызывает проблем. Phrase поддерживает перевод:
-
.PO файлы
-
Двуязычные .PO файлы
-
Машиночитаемые .MO файлы
msgctxt будет использоваться в качестве префикса ключа, в сочетании с msgid и разделенным ||.
Параметры формата
|
Идентификатор |
msgid_as_default |
|
Тип |
Булевский тип данных |
|
Загрузить |
true |
|
Скачать |
false |
|
По умолчанию |
false |
|
Описание |
Берет контент перевода из значения |
|
Идентификатор |
is_bilingual_file |
|
Тип |
Булевский тип данных |
|
Загрузить |
true |
|
Скачать |
false |
|
По умолчанию |
false |
|
Описание |
Обе переводы источника и цели будут импортированы из загруженного файла: контент источника будет взят из значения |
Образец кода
msgid "" msgstr "" "Язык: английский\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n" msgid "boolean_key" msgstr "--- true\n" msgid "empty_string_translation" msgstr "" # Это удивительное описание для этого ключа! msgid "key_with_description" msgstr "Проверьте это!" This key has a description! (At least in some formats)" msgid "key_with_line-break" msgstr "Это перевод содержит\nперенос строки." msgid "nested.deeply.key" msgstr "Ух ты, этот ключ вложен еще глубже." msgid "nested.key" msgstr "Этот ключ вложен внутри пространства имен." msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Только одно множественное число найдено." msgstr[1] "Ух ты, у вас %s множественных чисел!" msgid "sample_collection" msgstr "---\n- первый элемент\n- второй элемент\n- третий элемент\n" msgid "simple_key" msgstr "простой ключ, простое сообщение, так просто." #, неточный msgid "unverified_key" msgstr "Мне нужна проверка, пожалуйста, подтвердите меня!" (In some formats we also export this status)"
Типичный элемент gettext:
# описание (необязательно) msgid "ключ-имя" msgstr "Мой перевод"
gettext Заголовок
Заголовок файла gettext может содержать имя языкового стандарта и данные для форм множественного числа, которые извлекаются во время импорта:
msgid "" msgstr "" "Язык: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n"
Описания
Комментарии в файле gettext добавляются как описания ключей во время импорта:
# Это мое описание msgid "app_title" msgstr "Мой программный проект"
Контекст
gettext использует нотацию msgctxt для различения различных контекстов для одного и того же msgid. Каждое имя ключа должно быть уникальным, поэтому msgctxt добавляется как первая часть имени ключа, разделенная двумя символами вертикальной черты ||:
msgctxt "меню" msgid "Открыть" msgstr "Я перевод" msgctxt "форум" msgid "Открыть" msgstr "Я другой перевод"
Чтобы добавить msgctxt к новому ключу, добавьте его к имени ключа:
my_context||my_key_name
Результирующий gettext вывод:
... msgctxt "my_context" msgid "my_key_name" ...
Формы множественного числа
gettext поддерживает множественные формы для перевода:
msgid "новые_сообщения"
msgid_plural ""
msgstr[0] "У вас новое сообщение"
msgstr[1] "У вас %{count} новых сообщений"
неточный
Ключевое слово неточный используется для проверки перевода. Неточный автоматически вызывает процесс непроверки в Phrase.
#, неточный msgid "app_title" msgstr "Мой программный проект"