/localization_generator

localization generator for flutter

Primary LanguageDartMIT LicenseMIT

localization_generator

A command tool to generate localization from JSON file.

Dart CI

Getting Start

Add to your pubspec.yaml.

dependencies:
  intl: ^0.17.0
  flutter_localizations:
    sdk: flutter
dev_dependencies:
  localization_generator: <last_version>

Add translation files to a folder.

l10n
  +- {languageCode}.json
  +- {languageCode}-{countryCode}.json
  +- {languageCode}-{scriptCode}.json

Run the following command.

flutter pub run localization_generator --output=./l10n --input=./l10n

Configuration app.

// Import the generated localization file.
import 'l10n/localization.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

MaterialApp(
  onGenerateTitle: (context) {
    return Localized.of(context).hello(name: "my name");
  },
  theme: ThemeData(
    primarySwatch: Colors.blue,
  ),
  localizationsDelegates: [
    Localized.delegate,
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  supportedLocales: Localized.delegate.supportedLocales,
  home: Builder(builder: (context) {
    return Column(
      children: [
        Text(Localized.of(context).hi),
        Text(Localized.of(context).price(currency: "TWD")),
        Text(Localized.of(context).gender(gender: "female")),
        Text(Localized.of(context).reply(count: 0)),
      ],
    );
  }),
);

Example project

MessageFormat

The message pattern is follow the ICU MessageFormat.

Unsupport

  • offset of plural
  • date
  • number