Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.6.0

multiple_localization

Unterstützung für mehrere abr- und Nachrichtenlokalisierungsdateien für das intl-Paket.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
34.600
Likes
28
Pub-Punkte
160

Paket installieren

flutter pub add multiple_localization

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das multiple_localization-Paket erweitert das intl-Paket durch die Unterstützung mehrerer Lokalisierungsdateien, einschließlich .arb-Dateien, wodurch Entwickler Übersetzungen effizienter für verschiedene Sprachen und Gebiete verwalten können. Es vereinfacht den Prozess der Organisation und des Ladens lokalisierter Nachrichten in Flutter-Anwendungen, insbesondere bei umfangreichen Internationalisierungsanforderungen. Das Paket ist nahtlos mit der bestehenden Internationalisierungsinfrastruktur von Flutter kompatibel und erleichtert die Pflege und Skalierung von Übersetzungsressourcen. Es unterstützt alle wichtigen Plattformen: Android, iOS, Web, macOS, Windows und Linux.

Anwendungsfälle

  • Verwaltung mehrerer Sprachdateien in einem Projekt
  • Übersetzungsarbeitsabläufe für große Apps vereinfachen
  • Unterstützung der dynamischen Lokalisierungsschaltung
  • Übersetzungen nach Funktion oder Modul organisieren
  • Integration mit bestehender intl-basierter Lokalisierung
  • Modulare Lokalisierungsstrukturen aktivieren

Hauptmerkmale

  • Unterstützung für mehrere .arb-Dateien
  • Nahtlose Integration mit dem intl-Paket
  • Flexible Dateiorganisation
  • plattformunabhängiger Entwurf
  • Einfache Einrichtung über pub add
  • Automatisches Nachrichtenladen

Geeignet für

  • Groß angelegte internationalisierte Flutter-Anwendungen
  • Teams, die mehrere Übersetzungsdateien verwalten
  • Projekte, die modulare Lokalisierung erfordern
  • Entwickler, die intl für i18n verwenden
  • Apps für vielfältige globale Zielgruppen

Hinweise

  • Erfahrung mit dem intl-Paket erforderlich
  • Zusätzliche Konfiguration für benutzerdefinierte Dateipfade erforderlich
  • Kann die Baugenehmigungskomplexität bei vielen Dateien erhöhen
  • Am besten geeignet für Projekte, die bereits intl verwenden
  • Nicht kompatibel mit nicht-internationalisierten Lokalisierungsansätzen

Original-README

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

multiple_localization

pub package Analyze & Test innim lint

Support for multiple abr and messages localization files for intl package.

Problem

If you want to have multiple arb files and register separate delegate for each one of them, then you have a problem. Intl doesn't allow multiple initializeMessages calls. Only first one will be processed and only it's messages will be used. Every calls after the first one will be ignored.

Why do we need to have multiple arb files?

In common scenario - we don't. Just put all localization string in single file and enjoy. But if you want to add intl localization with arb files to separate package, and than use it in you project with it's own localization files - that's problem.

MultipleLocalizations supports using Localizations.override(delegates: [SomeLocalizationsDelegate(), ...]) widget, too.

Exactly for that situation this package was developed.

See article on Medium for more details - Localization for Dart package.

Usage

To use this package, add multiple_localization as a dependency in your pubspec.yaml file.

Than use MultipleLocalizations.load for your delegate load function, instead of call initializeMessages explicitly.

Example
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
  const _AppLocalizationsDelegate();

  @override
  bool isSupported(Locale locale) {
    return ['en', 'ru'].contains(locale.languageCode);
  }

  @override
  Future<AppLocalizations> load(Locale locale) {
    return MultipleLocalizations.load(
        initializeMessages, locale, (l) => AppLocalizations(l),
        setDefaultLocale: true);
  }

  @override
  bool shouldReload(LocalizationsDelegate<AppLocalizations> old) {
    return false;
  }
}
Override string from package in project

If you want to override string from package localization in project (for example to change some labels in package widgets) - you need to define string with required name in you app localization class.

Example.

If package has string messageFromPackageForOverride:

class PackageLocalizations {
  ...

  String get messageFromPackageForOverride =>
        Intl.message('Package', name: 'messageFromPackageForOverride');

Then you need to define messageFromPackageForOverride in you AppLocalizations:

class AppLocalizations {
  ...

  String get messageFromPackageForOverride =>
        Intl.message('App', name: 'messageFromPackageForOverride');

Make sure that you add the app localization delegate before the package localization delegate:

  ...
  const MaterialApp(
    localizationsDelegates: [
      AppLocalizations.delegate,
      PackageLocalizations.delegate,
      ...
    ],
    ...

Now, whenever package use messageFromPackageForOverride you will see App, not Package.

Set fallback locale

Also you can specify a fallback locale when loading application localization delegate. Use [fallbackLocale] parameter to set locale which will be used if some key not found for current locale. Only first call of [load] will set fallback locale, make sure that your app's localization delegate added as a first element of the delegates list.

Also pay attention that if you provide the [fallbackLocale], than all messages will be uploaded in memory on the start of application in addition to current locale.

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.