Підтримувані формати файлів

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

Підказка

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

Дивись також

Translation Related File Formats

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

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

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

Можливості всіх підтримуваних форматів

Формат

Кількість мов [1]

Форми множини [2]

Описи [3]

Контекст [4]

Розташування [5]

Прапорці [8]

Додаткові стани [6]

GNU gettext PO (портативний об’єкт)

двомовний

так

так

так

так

так [9]

потребує редагування

Одномовний gettext

одномовний

так

так

так

так

так [9]

потребує редагування

XLIFF

обидва

так

так

так

так

так

потребує редагування, затверджено

Властивості Java

обидва

ні

так

ні

ні

ні

Мовні файли mi18n

одномовний

ні

так

ні

ні

ні

Властивості GWT

одномовний

так

так

ні

ні

ні

Переклади Joomla

одномовний

ні

так

ні

так

ні

Qt Linguist .ts

обидва

так

так

ні

так

так

потребує редагування

Рядкові ресурси Android

одномовний

так

так [7]

ні

ні

так

Рядки Apple iOS

обидва

ні

так

ні

ні

ні

Рядки PHP

одномовний

ні [10]

так

ні

ні

ні

файли JSON

одномовний

ні

ні

ні

ні

ні

Файли JSON i18next

одномовний

так

ні

ні

ні

ні

Файли JSON go-i18n

одномовний

так

так

ні

ні

ні

Файли JSON gotext

одномовний

так

так

ні

так

ні

Файл ARB

одномовний

так

так

ні

ні

ні

JSON WebExtension

одномовний

так

так

ні

ні

ні

Файли ресурсів .NET (RESX, RESW)

одномовний

ні

так

ні

ні

так

Файли ResourceDictionary

одномовний

ні

ні

ні

ні

так

Файли CSV

обидва

ні

так

так

так

ні

потребує редагування

Файли YAML

одномовний

ні

ні

ні

ні

ні

Файли YAML Ruby

одномовний

так

ні

ні

ні

ні

Файли DTD

одномовний

ні

ні

ні

ні

ні

Прості файли XML

одномовний

ні

ні

ні

ні

так

Файли RC Windows

одномовний

ні

так

ні

ні

ні

Excel Open XML

одномовний

ні

так

так

так

ні

потребує редагування

Файли метаданих крамниці застосунків

одномовний

ні

ні

ні

ні

ні

Файли субтитрів

одномовний

ні

ні

ні

так

ні

Файли HTML

одномовний

ні

ні

ні

ні

ні

Файли Markdown

одномовний

ні

ні

ні

ні

ні

Формат OpenDocument

одномовний

ні

ні

ні

ні

ні

Формат IDML

одномовний

ні

ні

ні

ні

ні

Переклади INI

одномовний

ні

ні

ні

ні

ні

Переклади INI Inno Setup

одномовний

ні

ні

ні

ні

ні

Формат TermBase eXchange

двомовний

ні

так

ні

ні

так

Текстові файли

одномовний

ні

ні

ні

ні

ні

Формат Stringsdict

одномовний

так

ні

ні

ні

ні

Формат Fluent

одномовний

ні [11]

так

ні

ні

ні

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

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

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

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

Стани рядків

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

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

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

У деяких форматах (наприклад XLIFF, 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 (портативний об’єкт).

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

Контекст

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

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

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

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

Підказка

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

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

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

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

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

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

Дивись також

Translation Related File Formats