Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.1.2

i18n_localizations

Ein einfaches Flutter-Paket für Internationalisierung, Angular TranslateService-Nutzer werden dieses Paket lieben.

30-Tage-Downloads
17
Likes
5
Pub-Punkte
40

Paket installieren

flutter pub add i18n_localizations

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein leichtgewichtiger Flutter-Paket zur Internationalisierung, der eine einfache und intuitive Möglichkeit bietet, Übersetzungen in Apps zu verwalten. Inspiriert durch den TranslateService von Angular, bietet es eine benutzerfreundliche API zum Wechseln zwischen Sprachen und Abrufen lokalisierten Zeichenketten. Ideal für Entwickler, die eine einfache Lösung ohne komplizierte Einrichtung suchen. Das Paket unterstützt dynamische Sprachwechsel und lässt sich nahtlos in Flutter-Projekte integrieren. Besonders attraktiv für Entwickler, die mit den Übersetzungs-Mustern von Angular vertraut sind.

Anwendungsfälle

  • Mehrsprachige App-Unterstützung
  • Dynamisches Sprachwechseln
  • Einfache Übersetzungsverwaltung
  • Web- und Mobile-Lokalisierung
  • Integration mit bestehenden Übersetzungsdateien

Hauptmerkmale

  • API, die von Angular TranslateService inspiriert ist
  • Einfaches Sprachwechseln
  • Unterstützt JSON-Übersetzungsdateien
  • Minimale Boilerplate
  • Klare und übersichtliche Syntax

Geeignet für

  • Flutter-Anfänger
  • Entwickler, die von Angular migrieren
  • Apps, die grundlegende i18n erfordern
  • Projekte mit geringen bis mittleren Übersetzungsanforderungen
  • Teams, die JSON-basierte Übersetzungsworkflows verwenden

Hinweise

  • Eingeschränkte erweiterte Funktionen im Vergleich zu vollständigen i18n-Frameworks
  • Keine integrierte Übersetzungsdateierzeugung
  • Manuelle Behandlung fehlender Schlüssel
  • Nicht ideal für großskalige Unternehmensanwendungen
  • Abhängig von der Verwaltung externer JSON-Dateien

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

i18n_localizations

A flutter package for internationalization, it allows you to simply add the translation of the application according to the language of the device, it uses json files as angular. You only need to configure it properly to be able to translate your entire app.

Getting Started

Follow the next step for use i18n_localizations

Configuration

To use this library, you will need json file you can put there where you want, but don't forget to add them to your pubspec.yaml

assets:
  - {translateDir}/en.json
  - {translateDir}/fr.json
  - {translateDir}/{languageCode}.json
    or
  - {translateDir}/en_US.json
  - {translateDir}/fr_FR.json
  - {translateDir}/{languageCode}_${countryCode}.json

You need to initialize a I18nLocalizationsDelegate white a list of supportedLocales and a pathFile where the json file are store.

final I18nLocalizationsDelegate i18n = I18nLocalizationsDelegate(
      supportedLocales: [Locale('en'), Locale('fr')],
      pathFile: '{translateDir}'
  );
or
final I18nLocalizationsDelegate i18n = I18nLocalizationsDelegate(
      supportedLocales: [Locale('en', 'US'), Locale('fr', 'FR')],
      pathFile: '{translateDir}',
      haveCountryCode: true
  );

Then you need to configure the supportedLocales, localizationsDelegates and localeResolutionCallback of your MaterialApp or CupertinoApp

  supportedLocales: i18n.supportedLocales,
  localizationsDelegates: [
   i18n,
   GlobalMaterialLocalizations.delegate,
   GlobalWidgetsLocalizations.delegate
  ],
  localeResolutionCallback: (Locale locale, supportedLocales) {
    return i18n.localeResolutionCallback(locale);
  },

Result

// construct the i18nLocalisationsDelegate
final I18nLocalizationsDelegate i18n = I18nLocalizationsDelegate(
      supportedLocales: [Locale('en', 'US'), Locale('fr', 'FR')],
      pathFile: '{translateDir}'
  );
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'MyApp',
        onGenerateRoute: router.generateRoute,
        debugShowCheckedModeBanner: false,
        initialRoute: HomePageRoute,
        // set the supportedLocales for the app
        supportedLocales: i18n.supportedLocales,
        localizationsDelegates: [
         // don't forget to put the delegate
          i18n,
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate
        ],
        localeResolutionCallback: (Locale locale, supportedLocales) {
           // get the default local when the device language is not supported, use the first one
          // from the list (English, in this case).
          return i18n.localeResolutionCallback(locale);
        },
    );
  }

Use

To use I18nLocalizations, just call :

I18nLocalizations.translate(context,"keySimple")
I18nLocalizations.translate(context,"key.child_one")
I18nLocalizations.translate(context,"key.child_two.grandchild")

I18nLocalizations.translate(context,"keyParams", params:{"key": "value"})

I18nLocalizations.translatePlural(context,"keyPlural", params:{"key":"6"})
I18nLocalizations.translatePlural(context,"keyPlural", params:{"key":"1"})
I18nLocalizations.translatePlural(context,"keyPlural", params:{"key":"not a number"})

And the json file will look like:

{
  "keySimple": "key simple",
  "key": {
    "child_one": "child 1",
    "child_two": {
      "grandchild": "grandchild of key"
    }
  },
  "keyParams": "keyParams have a params or a {key}",
  "keyPlural": {
    "none": "there are none key here",
    "one": "the value of our key is {key}",
    "many": "we have {key} keys"
  }
}

Note: there should be no space between the key and the parameter hooks

⚠️ Note on iOS

For translation to work on iOS you need to add supported locales to ios/Runner/Info.plist as described here.

Example:

<key>CFBundleLocalizations</key>
<array>
	<string>en</string>
	<string>fr</string>
</array>

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.