Skip to main content
AI agent network visualization

Tõlgi Flutter'i ARB-faile sekunditega

Metaandmed jäävad puutumata, kohatäitjad säilivad ja mitmusevormid vastavad CLDR-ile. Sinu ARB-failid tõlgitakse flutter gen-l10n-i rikkumata.

ARB tõlkimine rikub Flutter'i järgud

ARB-failid näevad välja nagu JSON, kuid pole seda. Need sisaldavad @-prefiksiga metaandmekirjeid, tüübimärkustega kohatäitjate definitsioone ja ICU mitmusevorme, mis peavad täpselt järgima CLDR-i reegleid. Üldised tõlketööriistad rikuvad selle kõik — flutter gen-l10n ebaõnnestub vaikselt või annab arusaamatuid vigu.

@-prefiksiga metaandmekirjed tõlgitakse või kustutatakse, rikkudes kohatäitjate definitsioonid ja kirjeldused

Looksulgudes kohatäitjate nimed tõlgitakse, nimetatakse ümber või eemaldatakse, põhjustades käitusajal kokkujooksmisi

ICU mitmusevormid vajavad iga keele jaoks täpseid CLDR-kategooriaid, kuid üldised tööriistad jätavad need vahele või loovad vigase struktuuri

@@locale-päis rikutakse või ei vasta failile, mistõttu flutter gen-l10n määrab tõlked valele keelele

Lähtekeel (inglise)
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"
      }
    }
  }
}
Tõlgitud (jaapani)
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"
      }
    }
  }
}

Mida i18n Agent säilitab

@-metaandmekirjed

Kõik @-prefiksiga metaandmed — kirjeldused, kohatäitjad ja tüübimärkused — säilitatakse täpselt määratud kujul

Kohatäitjate ohutus

Nimega kohatäitjad, nagu {userName}, {count} ja {price}, tuvastatakse ning jäetakse kõigis tõlgetes puutumata

CLDR-i mitmusevormid

ICU mitmusekategooriad (zero, one, two, few, many, other) luuakse iga sihtkeele jaoks CLDR-i reeglite järgi õigesti

JSON-struktuur

Võtmete järjekord, pesastatus ja ARB-põhine vormindus vastavad sinu lähtefailile ning hoiavad erinevused puhtana

Töötab sinu Flutter'i pinuga

flutter gen-l10n (ametlik)
Easy Localization
GetX-i rahvusvahelistamine

Kuidas see töötab

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.

Käsitsi kopeerimist ega stringide eraldamist pole. Ainult tõlgitud failid.

Proovi i18n Agent'i kohe

Kukuta tõlkefail siia

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

või klõpsa faili valimiseks

Sihtkeeled

Registreerumine pole vajalikKohene hinnang

Korduma kippuvad küsimused

Arendaja?

Paigalda CLI-tööriist ja tõlgi oma esimene fail kahe minutiga.

Paigalda CLI-tööriist

Ettevõtte meeskond?

Kas oled endiselt TMS-i lepingus kinni? Räägime üleminekust.