
Перекладайте файли Flutter ARB за секунди
Метадані без змін. Заповнювачі збережено. Форми множини відповідають CLDR. Ваші файли ARB перекладено без порушення роботи flutter gen-l10n.
Переклад ARB порушує збирання проєктів Flutter
Файли ARB схожі на JSON, але це не JSON. Вони містять записи метаданих із префіксом @, визначення заповнювачів з анотаціями типів і форми множини ICU, які мають точно відповідати правилам CLDR. Універсальні інструменти перекладу пошкоджують усі ці елементи, після чого flutter gen-l10n зазнає збою без повідомлення або видає незрозумілі помилки.
Записи метаданих із префіксом @ перекладаються або видаляються, через що пошкоджуються визначення й описи заповнювачів
Імена заповнювачів у фігурних дужках перекладаються, перейменовуються або видаляються, спричиняючи аварійне завершення під час виконання
Форми множини ICU потребують точних категорій CLDR для кожної мови, але універсальні інструменти або пропускають їх, або створюють недійсні структури
Заголовок @@locale пошкоджується або не відповідає вмісту, через що flutter gen-l10n призначає переклади неправильній мові
{
"@@locale": "en",
"appTitle": "My Flutter App",
"@appTitle": {
"description": "The title of the application"
},
"greeting": "Hello, {name}!",
"@greeting": {
"description": "A greeting with the user's name",
"placeholders": {
"name": {
"type": "String",
"example": "John"
}
}
},
"itemCount": "{count, plural, =0{No items} =1{1 item} other{{count} items}}",
"@itemCount": {
"description": "Number of items in the cart",
"placeholders": {
"count": {
"type": "int"
}
}
},
"lastLogin": "Last login: {date}",
"@lastLogin": {
"placeholders": {
"date": {
"type": "DateTime",
"format": "yMMMd"
}
}
}
}{
"@@locale": "de",
"appTitle": "Meine Flutter-App",
"@appTitle": {
"description": "The title of the application"
},
"greeting": "Hallo, {name}!",
"@greeting": {
"description": "A greeting with the user's name",
"placeholders": {
"name": {
"type": "String",
"example": "John"
}
}
},
"itemCount": "{count, plural, =0{Keine Artikel} =1{1 Artikel} other{{count} Artikel}}",
"@itemCount": {
"description": "Number of items in the cart",
"placeholders": {
"count": {
"type": "int"
}
}
},
"lastLogin": "Letzte Anmeldung: {date}",
"@lastLogin": {
"placeholders": {
"date": {
"type": "DateTime",
"format": "yMMMd"
}
}
}
}Що зберігає i18n Agent
Записи метаданих із префіксом @
Усі метадані з префіксом @ — описи, заповнювачі й анотації типів — зберігаються точно у визначеному вигляді
Захист заповнювачів
Іменовані заповнювачі, як-от {userName}, {count} і {price}, розпізнаються та залишаються без змін у всіх перекладах
Форми множини CLDR
Категорії множини ICU (zero, one, two, few, many, other) правильно створюються для кожної цільової мови відповідно до правил CLDR
Структура JSON
Порядок ключів, вкладеність і специфічне для ARB форматування відповідають Вашому вихідному файлу, що полегшує порівняння змін.
Працює з Вашим стеком технологій Flutter
Як це працює

Без ручного копіювання та вставлення. Без вилучення рядків. Лише перекладені файли.
Спробуйте i18n Agent зараз
Перетягніть сюди файл для перекладу
JSON, YAML, PO, XML, CSV, Markdown, Properties
або натисніть, щоб вибрати
Цільові мови
Часті запитання
Ви розробник?
Встановіть інструмент CLI та перекладіть свій перший файл за 2 хвилини.
Встановити інструмент CLIВи представляєте корпоративну команду?
Досі зв’язані контрактом із постачальником TMS? Обговорімо перехід.