Поддерживаемые типы файлов (Strings)

.PO - файлы gettext (строки)

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

Расширения файлов 

.po

Расширение API 

gettext

Импорт 

Да

Экспорт 

Да

Поддержка форм множественного числа 

Да

Поддержка описания 

Да

Варианты формата

Эти параметры могут быть указаны при загрузке и/или скачивании файла. В зависимости от метода загрузки/скачивания (API, CLI, синхронизация репозитория и т.д.) они могут быть указаны в параметрах запроса Загрузить, Скачать или в конфигурационном файле phrase.yml.

  • msgid_as_default

  • is_bilingual_file

.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 и его переименование в соответствии с предполагаемым языковым стандартом не вызывает проблем. Фраза поддерживает перевод следующих элементов:

  • .PO файлы

  • Двуязычные .PO файлы

  • .POT файлы 

  • Читаемые машиной .MO файлы

msgctxt будет использоваться в качестве префикса ключа, в сочетании с msgid и разделено ||

Параметры формата

Идентификатор

msgid_as_default

Тип

Булевский тип данных

Загрузить

true

Скачать

false

По умолчанию

false

Описание

Берет содержимое перевода из значения msgid, а не из msgstr

Идентификатор

is_bilingual_file

Тип

Булевский тип данных

Загрузить

true

Скачать

false

По умолчанию

false

Описание

Обе переведенные версии, исходная и целевая, будут импортированы из загруженного файла: исходный контент будет взят из значения msgid, целевой — из значения msgstr

Образец кода

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 "Проверьте это!" У этого ключа есть описание! (По крайней мере, в некоторых форматах)"

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 "простой ключ, простое сообщение, так просто.2"

#, неточный
msgid "unverified_key"
msgstr "Мне нужна проверка, пожалуйста, подтвердите меня!" (В некоторых форматах мы также экспортируем этот статус)"

Типичная запись gettext: 

# описание (необязательно)
msgid "key-name"
msgstr "Мой перевод"

Заголовок gettext

Заголовок файла gettext может содержать имя языкового стандарта и данные для форм множественного числа, которые извлекаются во время импорта:

msgid ""
msgstr ""
"Язык: ru\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 "menu"
msgid "Открыть"
msgstr "Я перевод"

msgctxt "форум"
msgid "Открыть"
msgstr "Я другой перевод"

Чтобы добавить msgctxt к новому ключу, добавьте его к имени ключа:

my_context||my_key_name

Результирующий вывод gettext:

...
msgctxt "my_context"
msgid "my_key_name"
...

Формы множественного числа

gettext поддерживает формы множественного числа для перевода:

msgid "new_messages"
msgid_plural ""
msgstr[0] "У вас новое сообщение"
msgstr[1] "У вас %{count} новых сообщений"

Неточный

Ключевое слово неточный используется для проверки перевода. Неточный автоматически вызывает процесс непроверки в Phrase.

#, неточный
msgid "app_title"
msgstr "Мой программный проект"
Была ли эта статья полезной?

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.