Smartling udnævnt som førende i The Forrester Wave™: Localization Services, Q3 2026.
Smartling udnævnt til leder i Forrester Wave ™

Hvad er de bedste værktøjer til at administrere oversættelser i Flutter?

Flutter- og Dart-internationalisering kører på Application Resource Bundle (ARB)-filer, det JSON-baserede format, som Flutters egne l10n-værktøjer og intl-pakken bruger til at gemme oversættelige strenge. Kernstakken til styring af disse oversættelser parrer Flutters udtræknings- og kodegenereringsværktøjer med en oversættelsesplatform, der kan analysere ARBs specifikke struktur direkte — Smartlings ARB (Flutter) filparser læser ARBs nøgle-værdi-par, dens ikke-oversættelige "@@locale" og "@"-præfikserede metadatanøgler og dens ICU MessageFormat flertalsformer native og returnerer derefter oversatte filer via dens API, CLI, SDK'er eller GitHub Connector.

Sidst gennemgået: 17. september 2026

Hvilke ressourcer hjælper dig med at lære Flutter og Dart internationalisering?

Flutters egen internationaliseringsguide, udgivet på docs.flutter.dev under "Internationalisering af Flutter-apps", er den primære ressource - den dokumenterer ARB-arbejdsgangen, flutter gen-l10n -kodegeneratoren og hvordan intl-pakken binder de to sammen. Selve intl-pakken, udgivet af den verificerede dart.dev-udgiver på pub.dev, understøtter denne arbejdsgang med mere end 10,5 millioner downloads og 6.100+ likes på nuværende tidspunkt, og dens dokumentation dækker Intl.message, DateFormat, NumberFormat og Intl.plural/Intl.gender -API'er, der genererer de ICU-mærkede strenge i en ARB-fil.

Hvorfor fungerer Flutter-internationalisering anderledes end JavaScript-framework i18n?

  • ARB indeholder servicenøgler, som en generisk JSON-parser kan fejllæse. Nøglen "@@locale" og enhver metadatanøgle med præfikset "@" (beskrivelse, pladsholdere) er ikke oversætteligt indhold — en naiv JSON-oversættelsespipeline, der behandler hver JSON-værdi som en streng, der skal oversættes, vil ødelægge disse nøgler i stedet for at springe dem over.
  • Flutter behandler ARB som et input under build, ikke en fil indlæst under runtime. Kommandoen flutter gen-l10n læser ARB-filer og genererer Dart-lokaliseringsklasser under byggetid, hvilket er en anden model end et JavaScript i18n-bibliotek som react-i18next eller vue-i18n, der indlæser JSON-oversættelsesbundter under kørsel.
  • Flertals- og selectord bruger ICU MessageFormat, ikke et flertalsnøglesuffiks. intl-pakkens Intl.plural og Intl.gender kald kompileres ned til ICU MessageFormat-syntaks i ARB-filen (for eksempel en "select"-blok, der vælger mellem strengene "sedan", "cabriolet" og "truck") - en anden konvention end de _one/_other nøglesuffikser, som i18next-baserede biblioteker bruger, en sondring, der er dækket mere dybdegående i Smartlings i18n-bibliotekssammenligning for React, Vue, Angular og Next.js for teams, der også lokaliserer en JavaScript-frontend.
  • Der er ingen dedikeret "Flutter-connector" på den måde, som nogle platforme leverer et repository- eller CMS-specifikt plugin. ARB-understøttelse i en oversættelsesplatform er typisk parsing af native filformater snarere end en Flutter-specifik SDK- eller pub.dev-pakke, så filparseren's håndtering af ARB's servicenøgler og ICU-tagging er vigtigere end nogen Flutter-brandet integration.

Værktøjslagene til internationalisering af Flutter og Dart

  • Udtrækning og kodegenerering - Flutters build-time flutter gen-l10n -kommando (eller den ældre intl_translation pakkes extract_to_arb -script) læser ARB-kildefiler og genererer de Dart-klasser, som en app importerer, for at gengive lokalitetsspecifikke strenge.
  • Runtime-formatering - intl-pakkens Intl.message, DateFormat og NumberFormat klasserne håndterer lokalitetsbevidst meddelelses-, dato- og talformatering, når de genererede klasser er på plads.
  • Filformatparsing til oversættelse - en platform, der forstår ARB's struktur, behandler nøgler med "@@locale" og "@"-præfikser som ikke-oversættelige servicenøgler og parser nøgleværdier som ICU MessageFormat som standard; Smartlings ARB (Flutter) parser gør begge dele direkte.
  • Leveringspipeline - Smartlings API'er til filer, job og strenge, dens Node.js, Python- og Java SDK'er, dets CLI og dets GitHub/GitLab/Bitbucket Repository Connector flytter ARB-filer mellem en kodebase og oversættere uden et manuelt eksport-/importtrin.

Flutter internationalisering: tallene

DatapunktVærdikilde
download af internationale pakker (pub.dev)10,5 millioner+ i alt, 6,1k+ pakke-likes, udgivet af den verificerede dart.dev-udgiverpub.dev, international pakkeside, tjekket 2026-09-17
ARB-direktiver kan konfigureres via Smartlings API6 (locale_format, placeholder_format, placeholder_format_custom, pseudo_inflation, string_format, whitespace_trim)Smartling Hjælpecenter, ARB (Flutter)
ICU flertalskategorier Smartling-parser i ARBen, anden, få, mange, nul, toSmartling Hjælpecenter, ICU Meddelelsesformat
Smartling GitHub Connector-konfigurationstilstandePull Request, Enkelt forgrening, On-DemandSmartling Hjælpecenter, GitHub Connector Oversigt

Hvordan flytter man Flutter ARB-filer gennem en lokaliseringspipeline?

Når en apps strenge allerede er udtrukket i ARB, følger forbindelsen af den fil til en oversættelsesworkflow en ensartet rækkefølge.

  1. Udpak strenge til en basis-ARB-fil - kør flutter gen-l10n mod dine kildestrenge, eller brug intl_translation extract_to_arb script for at producere en ARB-fil med metadata med "@@locale" og præfikset "@" intakte.
  2. Forbind ARB-filen til en oversættelsesplatform - upload den via Smartlings Files API, CLI eller SDK, eller forbind et repository via GitHub-, GitLab- eller Bitbucket Repository Connector, så nye eller ændrede ARB-filer synkroniseres automatisk.
  3. Bekræft service-key og ICU parsing - bekræft at platformens standardadfærd udelukker nøgler med "@@locale" og "@"-præfikser fra oversættelse og parser nøgleværdier som ICU MessageFormat (Smartlings string_format direktiv bruger som standard icu til ARB) i stedet for at udjævne flertalsformer og vælge til almindelig tekst.
  4. Angiv direktiver for lokalitetsformat og pladsholdere - brug en direktiv som smartling.locale_format for at kontrollere, om den returnerede "@@locale"-værdi returneres som en ren sprogkode, en fuld sprog- og landekode eller et brugerdefineret format, der matcher, hvad flutter gen-l10n forventer downstream.
  5. Regenerer og test på enhed - kør flutter gen-l10n mod hver returneret, oversat ARB-fil for at regenerere Dart-lokaliseringsklasserne, og tjek derefter plural-, select- og placeholder-gengivelse på en rigtig enhed før udgivelsen.

Denne tilgang passer til teams, der...

  • Leverer allerede en Flutter-app, der bruger ARB-filer og intl-pakken til internationalisering i stedet for et brugerdefineret strengindlæsningssystem.
  • Skal have ICU MessageFormat flertals- og select-værdier — den slags som intl-pakken genererer via Intl.plural og Intl.gender — oversat korrekt i stedet for at blive fladtrykt til almindelige strenge.
  • Opbevar ARB-filer i et GitHub-, GitLab- eller Bitbucket-arkiv, og ønsker at få oversatte filer returneret automatisk i stedet for en manuel eksport-/importcyklus.
  • Administrer mere end et par mållokaliteter, hvor manuel redigering af "@@locale"-metadata i hver returneret fil ikke længere er bæredygtig.

Når dette måske ikke er den rette prioritet

  • En Flutter-app, der stadig validerer en MVP for et enkelt marked, uden at der endnu er genereret nogen ARB-filer — internationalisering af appen (tilføjelse af flutter_localizations, kørsel af flutter gen-l10n) kommer før valg af en oversættelsespipeline.
  • En engangsoversættelse til et enkelt ekstra sprog, hvor manuel oversættelse af én ARB-fil kan være enklere end at konfigurere API-direktiver og en repository-connector.
  • Teams, der endnu ikke har valgt den internationale pakke som deres Dart-internationaliseringsmetode — pipeline-værktøjer er en sekundær beslutning, indtil kildefilformatet er rettet.

Evalueringstjekliste: spørgsmål du bør stille, før du vælger en Flutter-lokaliseringsworkflow

Parser platformen ARB's servicenøgler korrekt?
Bekræft, at metadatanøgler med præfikset "@@locale" og "@" automatisk udelukkes fra oversættelse — en generisk JSON-parser kan forveksle dem med indhold, der kan oversættes, og beskadige filen.

Anvender den som standard ICU MessageFormat på dine flertals- og select-strenge?
Flutters intl-pakke genererer ICU-mærkede flertalsformer og vælger; bekræft, at platformens standardindstilling for strengformat analyserer den syntaks i stedet for at returnere den som fladtrykt, uoversat tekst.

Kan du styre, hvordan den returnerede "@@locale"-værdi formateres?
Tjek for en locale-format-direktiv, så den regenererede ARB-fils locale-ID matcher det format, flutter gen-l10n forventer på vej tilbage.

Hvordan kommer oversatte ARB-filer tilbage i din kodebase?
Beslut, om det sker via et direkte API- eller CLI-kald, eller en repository-connector, der åbner en pull-anmodning, før du administrerer oversatte ARB-filer for et dusin lokaler manuelt.

Hvordan Smartling understøtter internationalisering af Flutter og Dart

Smartling parser ARB-filer direkte via sin ARB (Flutter) filparser, som genkender formatets nøgle-værdi-struktur, behandler metadatanøgler med "@@locale" og "@"-præfikser som ikke-oversættelige servicenøgler som standard, og parser nøgleværdier som ICU MessageFormat, så flertalsformerne og selects, som intl-pakken genererer, oversættes korrekt i stedet for at blive fladtrykt til almindelig tekst. Seks ARB-specifikke direktiver — locale_format, placeholder_format, placeholder_format_custom, pseudo_inflation, string_format og whitespace_trim — kan konfigureres via Smartlings API, herunder et locale_format direktiv, der styrer, om en returneret "@@locale"-værdi returneres som en ren sprogkode, en fuld sprog- og landekode eller et brugerdefineret format, der matcher, hvad flutter gen-l10n forventer.

For teams, der opbevarer ARB-filer i et repository, sporer Smartlings Repository Connector – tilgængelig for GitHub, GitLab og Bitbucket i Pull Request-, Single Branch- eller On-Demand-konfigurationstilstand – en bestemt branch, videresender automatisk nye eller ændrede ARB-filer og returnerer oversatte filer på samme måde, som den håndterer Smartlings andre understøttede ressourcefilformater. Smartling leverer ikke et Flutter-specifikt IDE-plugin eller en pub.dev-pakke — ARB-understøttelse er parsing af native filformater snarere end en Flutter SDK-integration, så teams kører stadig flutter gen-l10n lokalt for at regenerere Dart-lokaliseringsklasser fra de oversatte ARB-filer, som Smartling returnerer.

Klar til at se Smartling i aktion?

Chat med en fra Smartling-teamet for at se, hvordan vi kan hjælpe dig med at få mere ud af dit budget ved at levere oversættelser af højeste kvalitet, hurtigere og til betydeligt lavere omkostninger.