seedkit_locale 0.0.1 copy "seedkit_locale: ^0.0.1" to clipboard
seedkit_locale: ^0.0.1 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.package.getByKey('packageTitle'))

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

dependencies:
  intl: ^0.20.2
  seedkit_locale: ^0.0.1

Файлы локализации приложения тоже должны лежать в 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