Формати файлів локалізації

У Weblate передбачено підтримку широкого діапазону форматів перекладів. Кожен формат має свої особливості і надає власний набір можливостей.

Підказка

При виборі формату файлів для вашого програми слід надавати перевагу типовим форматам на платформі або у наборі інструментів, яким ви користуєтеся. Якщо ви це зробите, перекладачі зможуть користуватися знайомими їм інструментами, що збільшить ймовірність того, що вони візьмуть участь у вашому проєкті.

Дивись також

Translation Related File Formats

Автоматичне виявлення

Weblate намагається визначити формат файлу під час Додавання проєктів і складників перекладу. Визначення може бути неправильним для різних варіантів одного й того ж формату серіалізації (JSON, YAML, властивості) або кодування файлу, тому, будь ласка, перевірте правильність Формат файлу перед створенням компонента.

Можливості типів перекладу

Інформацію про те, які функції підтримуються в тому чи іншому форматі, дивіться на сторінці документації до кожного окремого формату файлів.

Двомовні і одномовні формати

Передбачено підтримку як одномовних, так і двомовних форматів. У двомовних форматах зберігаються повідомлення двома мовами в одному файлі — початковий рядок і переклад (типовими прикладами є GNU gettext PO (портативний об’єкт), XLIFF 1.1 і 1.2 або Рядки Apple iOS). З іншого боку, в одномовних форматах передбачено ідентифікацію рядка за ідентифікатором, а кожен мовний файл містить лише прив’язку цих ідентифікаторів до перекладів кожного з мов (типовим прикладом є Рядкові ресурси Android). Деякі формати файлів використовуються у обох варіантах. Докладніший опис можна знайти нижче.

Для правильного використання одномовних файлів Weblate потрібен доступ до файла, у якому міститься повний список рядків, які слід перекласти із початковими даними — цей файл у Weblate має назву Основний файл для одномовного перекладу (назва може бути дещо іншої у вашій парадигмі).

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

Стани рядків

У багатьох форматах файлів передбачено лише «неперекладені» і «перекладені» рядки. У деяких форматах можна зберігати ширший спектр стані даних, зокрема стани «потребує редагування» та «затверджено».

Опис початкового рядка

Описами початкових рядків можна скористатися для передавання додаткових відомостей щодо рядка, який слід перекласти.

У деяких форматах (наприклад XLIFF 1.1 і 1.2, GNU gettext PO (портативний об’єкт), JSON WebExtension, Файли CSV, Excel Open XML, Qt Linguist .ts, Файли JSON go-i18n, Файли JSON gotext, Файл ARB, Файли ресурсів .NET (RESX, RESW)) передбачено вбудовану підтримку надання додаткових даних для перекладачів. У багатьох інших форматах система видобуває найближчий коментар до коду як опис початкового рядка.

Пояснення

Пояснення щодо рядків можна зберігати і обробляти для декількох форматів файлів.

У поточній версії підтримку передбачено лише у Формат TermBase eXchange.

Розташування початкового рядка

Дані щодо розташування рядка у початковому коді можуть допомогти досвідченим перекладачам визначити, у який спосіб використовується рядок.

Ці дані, типово, доступні у двомовних форматах, де рядки видобувають з початкового коду за допомогою певних інструментів. Прикладом є GNU gettext PO (портативний об’єкт) і Qt Linguist .ts.

Прапорці перекладу

За допомогою прапорців перекладу можна налаштувати поведінку Weblate. У деяких форматах передбачено підтримку визначення таких прапорців у файлі перекладу (ви завжди можете визначити їх в інтерфейсі Weblate, див. Налаштовування поведінки за допомогою прапорців).

Цю можливість моделюють на прапорцях у GNU gettext PO (портативний об’єкт).

Крім того, для всіх форматів на основі XML прапорці витягуються з нестандартного атрибута weblate-flags. Крім того max-length:N підтримується через maxwidth attribute як визначено в стандарті XLIFF, див Визначення прапорців перекладу.

Контекст

Контекст використовується для розрізнення ідентичних рядків у двомовному форматі, які використовуються у різних парадигмах (наприклад, Sun може бути використано як скорочення дня тижня «Sunday» або як назва найближчої до нас зірки).

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

Рядки із формами множини

Форми множини потрібні для належної локалізації рядків із змінними-лічильниками. Правила залежать від мови перекладу. Багато форматів використовують для визначення правил специфікацію CLDR.

Підказка

Крім того, належну підтримку рядків із формами множини має бути реалізовано у бібліотеках програми. Виберіть рідний для вашої платформи формат, зокрема GNU gettext PO (портативний об’єкт), Рядкові ресурси Android або Формат Stringsdict.

Рядки лише для читання

До файла буде включено призначені лише для читання рядки з файлів перекладу, але ці рядки не можна бути редагувати у Weblate. Придатні лише до читання рядки передбачено у деяких форматах (XLIFF 1.1 і 1.2 і Рядкові ресурси Android), але її можна емулювати у інших форматах додаванням прапорця read-only, див. Налаштовування поведінки за допомогою прапорців.

Підтримка інших форматів

Більшість форматів, що підтримуються translate-toolkit та підтримують серіалізацію, легко підтримувати, але вони (поки що) не пройшли жодного тестування. У більшості випадків у Weblate потрібен додатковий тонкий шар, щоб приховати відмінності в поведінці різних сховищ.

Рекомендованим способом додавання нових форматів є реалізація їхньої підтримки у translate-toolkit.

Дивись також

Translation Related File Formats

Параметри формату файлу

Параметри формату файлу надають спосіб налаштування параметрів, пов’язаних з форматом файлу. Вони налаштовуються на рівні компонента та дозволяють налаштувати спосіб обробки парсингу та серіалізації файлів.

Список параметрів формату файлу

Назва параметра

Формати файлів

Мітка

Довідковий текст

csv_encoding

  • csv

  • csv-multi

Кодування файлів

Кодування, що використовується для файлів CSV

Доступні варіанти:

auto

Автоматичне-виявлення

utf-8

UTF-8

csv_simple_encoding

  • csv-simple

Кодування файлів

Кодування, що використовується для простих CSV-файлів

Доступні варіанти:

auto

Автоматичне-виявлення

utf-8

UTF-8

iso-8859-1

ISO-8859-1

„dos_eol

Усі формати файлів

Кінець рядка як у DOS

У рядках слід використовувати символи кінця рядка DOS (rn) замість символів кінця рядка UNIX (n).

flatxml_key_name

  • flatxml

Ім’я ключа FlatXML

flatxml_root_name

  • flatxml

Ім’я кореня FlatXML

flatxml_value_name

  • flatxml

Ім’я значення FlatXML

gwt_encoding

  • gwt

Кодування файлів

Кодування, що використовується для файлів властивостей GWT

Доступні варіанти:

utf-8

UTF-8

iso-8859-1

ISO-8859-1

json_indent

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Відступи JSON

json_indent_style

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Стиль відступів JSON

Доступні варіанти:

spaces

Пробіли

tabs

Табуляції

json_sort_keys“

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Сортувати ключі JSON

json_use_compact_separators“

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Уникайте пробілів після роздільників

line_max_length

  • markdown

  • mdx

Максимальна довжина рядка

Максимальна кількість символів у кожному рядку вихідного файлу.

md_extract_code_blocks

  • markdown

  • mdx

Виділити блоки коду

Чи витягувати перекладний вміст із блоків коду у файлах Markdown та MDX.

md_extract_frontmatter

  • markdown

  • mdx

Витяг з передмови

Чи витягувати та перекладати блоки YAML у файлах Markdown та MDX.

md_no_placeholders

  • markdown

  • mdx

Вимкнути заповнювачі

Вимкнути виявлення та обробку заповнювачів у файлах Markdown та MDX.

merge_duplicates

  • markdown

  • mdx

  • html

  • txt

  • dokuwiki

  • mediawiki

  • asciidoc

Видалити повторювані рядки

Об’єднує ідентичні вихідні рядки в єдину одиницю перекладу. Запобігає втраті перекладу під час реструктуризації файлів або переупорядкування таблиць шляхом видалення контексту, що залежить від позиції.

po_fuzzy_matching

  • po

Використовувати нечіткий збіг

po_keep_previous

  • po

Зберігати попередні msgid перекладених рядків

po_line_wrap

  • po

  • po-mono

Обтікання довгих рядків

Типово, gettext переносить рядки на 77-у символі та на символах перенесення рядків, з параметром --no-wrap перенесення виконується лише на символах перенесення рядків.

Доступні варіанти:

77

Перенесення рядків на 77 символах на символах перенесення рядків (типово для xgettext)

65535

Переносити рядки лише на нові рядки (наприклад xgettext --no-wrap)

-1

Без перенесення рядків

po_no_location“

  • po

Не включайте інформацію про розташування у файл

po_report_msgid_bugs_to

  • po

  • po-mono

Повідомляйте про помилки за адресою

Дозволити Weblate оновлювати заголовок файлу «Report-Msgid-Bugs-To», якщо вказано адресу для повідомлення про помилки у вихідному рядку.

po_set_language_team

  • po

  • po-mono

Оновити заголовок мовної групи

Дозвольмо Weblate оновити заголовок файлу «Language-Team».

po_set_last_translator

  • po

  • po-mono

Оновити заголовок останнього перекладача

Нехай Weblate оновить заголовок файлу «Last-Translator».

po_set_x_generator

  • po

  • po-mono

Оновити заголовок X-Generator

Дозвольмо Weblate оновити заголовок файлу «X-Generator».

properties_encoding

  • properties

Кодування файлів

Кодування, що використовується для файлів властивостей Java

Доступні варіанти:

iso-8859-1

ISO-8859-1

utf-8

UTF-8

utf-16

UTF-16

strings_encoding

  • strings

Кодування файлів

Кодування, що використовується для файлів рядків iOS

Доступні варіанти:

utf-8

UTF-8

utf-16

UTF-16

xml_closing_tags“

  • ts

  • plainxliff

  • xliff

  • xliff2

  • xliff2-placeables

  • poxliff

  • apple-xliff

  • resx

  • aresource

  • moko-resource

  • cmp-resource

  • tbx

Включати завершальний теґ для порожніх теґів XML

yaml_indent

  • yaml

  • ruby-yaml

Відступи YAML

yaml_line_break“

  • yaml

  • ruby-yaml

Розриви рядків

Доступні варіанти:

dos

DOS (\r\n)

unix

UNIX (\n)

mac

MAC (\r)

yaml_line_wrap

  • yaml

  • ruby-yaml

Обтікання довгих рядків

Доступні варіанти:

80

Переносити рядок після 80 знаків

100

Перенесення рядків після 100 знаків та знаку нового рядка

120

Перенесення рядків після 120 знаків та знаку нового рядка

180

Перенесення рядків після 180 знаків

65535

Без перенесення рядків