seedkit_locale 0.0.2 copy "seedkit_locale: ^0.0.2" to clipboard
seedkit_locale: ^0.0.2 copied to clipboard

Генератор локализации SeedKit на базе intl_utils.

seedkit_locale #

Пакет собирает ARB-файлы из приложения и подключенных пакетов, объединяет их в один набор локализации и генерирует Dart-код через intl_utils.

Возможности #

  • команда dart run seedkit_locale:generate;
  • фиксированный входной путь assets/l10n/;
  • фиксированный выходной путь lib/src/generated/l10n/;
  • сбор строк из всех пакетов, доступных через .dart_tool/package_config.json;
  • переопределение строк приложения поверх строк подключенных пакетов;
  • единый delegate для Flutter и общий интерфейс SeedkitLocalizations для UI-пакетов.

Настройка #

В UI-пакетах положите ARB-файлы в assets/l10n/ и используйте общий интерфейс:

Text(SeedkitLocalizations.of(context).getByKey('packageTitle'))

Можно использовать короткое обращение через extension на BuildContext:

Text(context.packageLocale.getByKey('packageTitle'))

В основном приложении добавьте зависимости:

dependencies:
  intl: ^0.20.2
  seedkit_locale: ^0.0.2

Файлы локализации приложения тоже должны лежать в assets/l10n/ и называться в формате intl_{locale}.arb, например assets/l10n/intl_ru.arb. Если ключ из пакета повторяется в приложении, значение приложения используется как override.

Использование #

dart run seedkit_locale:generate

После запуска пакет создаст файлы в lib/src/generated/l10n/.

Подключите сгенерированный delegate в приложении:

MaterialApp(
  localizationsDelegates: const [
    SeedKitLocale.seedkitDelegate,
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  supportedLocales: SeedKitLocale.delegate.supportedLocales,
)

В основном приложении также доступен типизированный API сгенерированного класса:

Text(SeedKitLocale.of(context).packageTitle)
0
likes
0
points
443
downloads

Publisher

unverified uploader

Weekly Downloads

Генератор локализации SeedKit на базе intl_utils.

License

unknown (license)

Dependencies

flutter, intl, intl_utils

More

Packages that depend on seedkit_locale