Підтримувані формати файлів¶
У Weblate передбачено підтримку широкого діапазону форматів перекладів. Кожен формат має свої особливості і надає власний набір можливостей.
Підказка
При виборі формату файлів для вашого застосунку слід надавати перевагу типовим форматам на платформі або у наборі інструментів, яким ви користуєтеся. Якщо ви це зробите, перекладачі зможуть користуватися знайомими їм інструментами, що збільшить ймовірність того, що вони візьмуть участь у вашому проєкті.
- Рядкові ресурси Android
- Рядки Apple iOS
- Файли метаданих крамниці застосунків
- Файл ARB
- Файли CSV
- Файли DTD
- Excel Open XML
- Прості файли XML
- Формат Fluent
- Формат.JS файлуJSON
- GNU gettext PO (портативний об’єкт)
- Файли JSON go-i18n
- Файли JSON gotext
- Властивості GWT
- Файли HTML
- Файли JSON i18next
- Формат IDML
- Переклади INI
- Переклади INI Inno Setup
- Властивості Java
- Переклади Joomla
- файли JSON
- Рядки PHP Laravel
- Файли Markdown
- Мовні файли mi18n
- Ресурси Kotlin для мобільних пристроїв
- Формат OpenDocument
- Рядки PHP
- Qt Linguist .ts
- Файли ResourceDictionary
- Файли ресурсів .NET (RESX, RESW)
- Файли 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 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.
Дивись також