Skip to main content
AI agent network visualization

Превеждайте ARB файлове за Flutter за секунди

Метаданните остават непокътнати. Заместителите се запазват. Формите за множествено число са правилни според CLDR. Вашите ARB файлове се превеждат, без да се нарушава работата на flutter gen-l10n.

Преводът на ARB файлове нарушава компилациите на Flutter

ARB файловете изглеждат като JSON, но не са. Те съдържат записи с метаданни, чиито имена започват с @, дефиниции на заместители с анотации за тип и ICU форми за множествено число, които трябва стриктно да спазват правилата на CLDR. Универсалните инструменти за превод повреждат всичко това, а flutter gen-l10n се проваля без предупреждение или извежда неясни грешки.

Записите с метаданни, чиито имена започват с @, се превеждат или изтриват, което поврежда дефинициите и описанията на заместителите

Имената на заместителите във фигурни скоби се превеждат, преименуват или премахват, което причинява сривове по време на изпълнение

ICU формите за множествено число изискват точните CLDR категории за всеки език, но универсалните инструменти или ги пропускат, или създават невалидни структури

Заглавният ред @@locale се поврежда или не съответства на съдържанието, поради което flutter gen-l10n отнася преводите към грешния език

Изходен текст (английски)
lib/l10n/app_en.arb
{
  "@@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"
      }
    }
  }
}
Превод (японски)
lib/l10n/app_ja.arb
{
  "@@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 стек

flutter gen-l10n (официален)
Easy Localization
Интернационализация с GetX

Как работи

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

Без ръчно копиране и поставяне. Без извличане на низове. Получавате направо преведените файлове.

Изпробвайте i18n Agent сега

Пуснете тук Вашия файл за превод

JSON, YAML, PO, XML, CSV, Markdown, Properties

или натиснете, за да изберете файл

Целеви езици

Не се изисква регистрацияНезабавна оценка

Често задавани въпроси

Разработчик ли сте?

Инсталирайте CLI инструмента и преведете първия си файл за 2 минути.

Инсталирайте CLI инструмента

Корпоративен екип ли сте?

Все още сте обвързани с договор за TMS? Нека обсъдим миграцията.