Підтримувані формати файлів#
У Weblate передбачено підтримку широкого діапазону форматів перекладів. Кожен формат має свої особливості і надає власний набір можливостей.
Підказка
При виборі формату файлів для вашого застосунку слід надавати перевагу типовим форматам на платформі або у наборі інструментів, яким ви користуєтеся. Якщо ви це зробите, перекладачі зможуть користуватися знайомими їм інструментами, що збільшить ймовірність того, що вони візьмуть участь у вашому проєкті.
- Рядкові ресурси Android
- Рядки Apple iOS
- Файли метаданих крамниці застосунків
- Файл ARB
- Файли CSV
- Файли DTD
- Excel Open XML
- Прості файли XML
- Формат Fluent
- GNU Gettext
- Файли JSON go-i18n
- Файли JSON gotext
- Властивості GWT
- Файли HTML
- Файли JSON i18next
- Формат IDML
- Переклади INI
- Переклади INI Inno Setup
- Властивості Java
- Переклади Joomla
- файли JSON
- Рядки PHP Laravel
- Файли Markdown
- Мовні файли mi18n
- Формат OpenDocument
- Рядки PHP
- Qt Linguist .ts
- Файли ResourceDictionary
- Файли ресурсів .NET RESX
- Файли YAML Ruby
- Формат Stringsdict
- Файли субтитрів
- Формат TermBase eXchange
- Текстові файли
- JSON WebExtension
- Файли RC Windows
- XLIFF
- Файли YAML
Дивись також
Автоматичне виявлення#
Weblate намагається визначити формат файла під час додавання проєктів. Визначення може дати помилкові результати для різних варіантів того самого формату перетворення у послідовну форму (JSON, YAML, properties) або кодування файла. Тому перед створенням складника, будь ласка, перевірте, чи правильно виявлено Формат файлу.
Можливості типів перекладу#
Формат |
Кількість мов [1] |
Форми множини [2] |
Описи [3] |
Контекст [4] |
Розташування [5] |
Прапорці [8] |
Додаткові стани [6] |
---|---|---|---|---|---|---|---|
двомовний |
так |
так |
так |
так |
так [9] |
потребує редагування |
|
одномовний |
так |
так |
так |
так |
так [9] |
потребує редагування |
|
обидва |
так |
так |
так |
так |
так |
потребує редагування, затверджено |
|
обидва |
ні |
так |
ні |
ні |
ні |
||
одномовний |
ні |
так |
ні |
ні |
ні |
||
одномовний |
так |
так |
ні |
ні |
ні |
||
одномовний |
ні |
так |
ні |
так |
ні |
||
обидва |
так |
так |
ні |
так |
так |
потребує редагування |
|
одномовний |
так |
так [7] |
ні |
ні |
так |
||
обидва |
ні |
так |
ні |
ні |
ні |
||
одномовний |
ні [10] |
так |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
так |
ні |
ні |
ні |
ні |
||
одномовний |
так |
так |
ні |
ні |
ні |
||
одномовний |
так |
так |
ні |
так |
ні |
||
одномовний |
так |
так |
ні |
ні |
ні |
||
одномовний |
так |
так |
ні |
ні |
ні |
||
одномовний |
ні |
так |
ні |
ні |
так |
||
одномовний |
ні |
ні |
ні |
ні |
так |
||
обидва |
ні |
так |
так |
так |
ні |
потребує редагування |
|
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
так |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
так |
||
одномовний |
ні |
так |
ні |
ні |
ні |
||
одномовний |
ні |
так |
так |
так |
ні |
потребує редагування |
|
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
так |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
двомовний |
ні |
так |
ні |
ні |
так |
||
одномовний |
ні |
ні |
ні |
ні |
ні |
||
одномовний |
так |
ні |
ні |
ні |
ні |
||
одномовний |
ні [11] |
так |
ні |
ні |
ні |
Двомовні і одномовні формати#
Передбачено підтримку як одномовних, так і двомовних форматів. У двомовних форматах зберігаються повідомлення двома мовами в одному файлі — початковий рядок і переклад (типовими прикладами є GNU Gettext, XLIFF або Рядки Apple iOS). З іншого боку, в одномовних форматах передбачено ідентифікацію рядка за ідентифікатором, а кожен мовний файл містить лише прив’язку цих ідентифікаторів до перекладів кожного з мов (типовим прикладом є Рядкові ресурси Android). Деякі формати файлів використовуються у обох варіантах. Докладніший опис можна знайти нижче.
Для правильного використання одномовних файлів Weblate потрібен доступ до файла, у якому міститься повний список рядків, які слід перекласти із початковими даними — цей файл у Weblate має назву Основний файл для одномовного перекладу (назва може бути дещо іншої у вашій парадигмі).
Крім того, робочий процес може бути розширено використанням проміжного мовного файла, до якого буде включено рядки, які надано розробниками, але які не буде використано без обробки у остаточних рядках перекладу.
Стани рядків#
У багатьох форматах файлів передбачено лише «неперекладені» і «перекладені» рядки. У деяких форматах можна зберігати ширший спектр стані даних, зокрема стани «потребує редагування» та «затверджено».
Опис початкового рядка#
Описами початкових рядків можна скористатися для передавання додаткових відомостей щодо рядка, який слід перекласти.
У деяких форматах (наприклад XLIFF, GNU Gettext, JSON WebExtension, Файли CSV, Excel Open XML, Qt Linguist .ts, Файли JSON go-i18n, Файли JSON gotext, Файл ARB, Файли ресурсів .NET RESX) передбачено вбудовану підтримку надання додаткових даних для перекладачів. У багатьох інших форматах система видобуває найближчий коментар до коду як опис початкового рядка.
Пояснення#
Пояснення щодо рядків можна зберігати і обробляти для декількох форматів файлів.
У поточній версії підтримку передбачено лише у Формат TermBase eXchange.
Позиція джерельного рядка#
Дані щодо розташування рядка у початковому коді можуть допомогти досвідченим перекладачам визначити, у який спосіб використовується рядок.
Ці дані, типово, доступні у двомовних форматах, де рядки видобувають з початкового коду за допомогою певних інструментів. Прикладом є GNU Gettext і Qt Linguist .ts.
Прапорці перекладу#
За допомогою прапорців перекладу можна налаштувати поведінку Weblate. У деяких форматах передбачено підтримку визначення таких прапорців у файлі перекладу (ви завжди можете визначити їх в інтерфейсі Weblate, див. Налаштовування поведінки за допомогою прапорців).
Цю можливість моделюють на прапорцях у GNU Gettext.
Крім того, прапорці видобуваються з нестандартного атрибута weblate-flags
для всіх заснованих на XML форматів. Крім того, передбачено підтримку max-length:N
шляхом обробки атрибута maxwidth
у формі, яку визначено у стандарті XLIFF, див. Визначення прапорців перекладу.
Контекст#
Контекст використовується для розрізнення ідентичних рядків у двомовному форматі, які використовуються у різних парадигмах (наприклад, Sun може бути використано як скорочення дня тижня «Sunday» або як назва найближчої до нас зірки).
В одномовних форматах цю роль може виконувати ідентифікатор рядка (який часто називають ключем), а додатковий контекст не потрібен.
Рядки із формами множини#
Форми множини потрібні для належної локалізації рядків із змінними-лічильниками. Правила залежать від мови перекладу. Багато форматів використовують для визначення правил специфікацію CLDR.
Підказка
Крім того, належну підтримку рядків із формами множини має бути реалізовано у бібліотеках програми. Виберіть рідний для вашої платформи формат, зокрема GNU Gettext, Рядкові ресурси Android або Формат Stringsdict.
Рядки лише для читання#
До файла буде включено призначені лише для читання рядки з файлів перекладу, але ці рядки не можна бути редагувати у Weblate. Придатні лише до читання рядки передбачено у деяких форматах (XLIFF і Рядкові ресурси Android), але її можна емулювати у інших форматах додаванням прапорця read-only
, див. Налаштовування поведінки за допомогою прапорців.
Підтримка інших форматів#
Реалізувати підтримку більшості форматів, підтримку яких реалізовано у translate-toolkit і у яких передбачено підтримку перетворення у послідовну форму, доволі просто, але цю підтримку ще не достатньо перевірено. У більшості випадків потрібен певний тонкий шар у Weblate для приховування відмінностей у поведінці різних сховищ даних translate-toolkit.
Рекомендованим способом додавання нових форматів є реалізація їхньої підтримки у translate-toolkit.
Дивись також