Skip to main content
AI agent network visualization

Oversæt Flutter ARB-filer på få sekunder

Metadata forbliver intakte, pladsholdere bevares og pluralisformerne følger CLDR. Dine ARB-filer oversættes og fungerer fortsat med flutter gen-l10n.

ARB-oversættelse får Flutter-builds til at fejle

ARB-filer ligner JSON, men er ikke JSON. De indeholder metadataelementer med @-præfiks, definitioner af pladsholdere med typeannoteringer og ICU-pluralisformer, der skal følge CLDR-reglerne præcist. Generiske oversættelsesværktøjer beskadiger det hele — hvorefter flutter gen-l10n fejler uden besked eller viser kryptiske fejl.

Metadataelementer med @-præfiks bliver oversat eller slettet, så definitioner og beskrivelser af pladsholdere går i stykker

Navne på pladsholdere i krøllede parenteser bliver oversat, omdøbt eller fjernet — hvilket medfører nedbrud under kørsel

ICU-pluralisformer kræver præcise CLDR-kategorier for hvert sprog, men generiske værktøjer springer dem enten over eller opretter ugyldige strukturer

Headeren @@locale bliver beskadiget eller stemmer ikke overens, så flutter gen-l10n tildeler oversættelser til det forkerte sprog

Kilde (engelsk)
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"
      }
    }
  }
}
Oversat (japansk)
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"
      }
    }
  }
}

Det bevarer i18n Agent

Metadataelementer med @

Alle metadataelementer med @-præfiks — beskrivelser, pladsholdere og typeannoteringer — bevares præcis som defineret

Beskyttelse af pladsholdere

Navngivne pladsholdere som {userName}, {count} og {price} registreres og forbliver uændrede i alle oversættelser

CLDR-pluralisformer

ICU-pluraliskategorier (zero, one, two, few, many, other) genereres korrekt for hvert målsprog efter CLDR-reglerne

JSON-struktur

Nøglerækkefølge, indlejring og ARB-specifik formatering svarer til kildefilen og giver rene diffs

Fungerer med din Flutter-stack

flutter gen-l10n (officiel)
Easy Localization
GetX-internationalisering

Sådan fungerer det

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.

Ingen manuel kopiering og indsættelse. Ingen udtrækning af tekststrenge. Kun oversatte filer.

Prøv i18n Agent nu

Slip din oversættelsesfil her

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

eller klik for at vælge en fil

Målsprog

Kræver ingen tilmeldingEstimat med det samme

Ofte stillede spørgsmål

Udvikler?

Installér CLI-værktøjet og oversæt din første fil på 2 minutter.

Installér CLI-værktøj

Team i en større virksomhed?

Sidder du stadig fast i en TMS-kontrakt? Lad os tale om at skifte.