0 purchases
bd l10n
bd_l10n #
Generate localizations for a Flutter project.
The tool is built on top of flutter new localization tool gen-l10n.
Without some current limitations of the tool 73870,
70840, 58183 and
of course separating localization files by features for example.
The tool benefits from all bug fixes and improvements of made on gen-l10n.
Overview #
Let's say your app has the following features:
Common
Authentication
Home
You want to separate localized messages by features, meaning Authentication and Home have they own localized messages.
Common feature have localized messages related to the whole app.
So you can use it like that:
final commonLocalization = Common.of(context);
copied to clipboard
Or
final authenticationLocalization = Authentication.of(context);
copied to clipboard
Or
final homeLocalization = Home.of(context);
copied to clipboard
You create your bd_l10n configuration file somewhere in your project directory, the configuration file need to be named
bd_l10n.yaml and will look like this:
project-type: flutter
features:
- name: 'Common' # name of the feature is also used as name of the generated file and class.
translation-dir: translation/common # where your localized messages are stored.
translation-template: common_en.arb # which file to use as template.
output-dir: lib/localizations/ # directory were the generated code will be generated.
- name: 'Home'
translation-dir: translation/home
translation-template: home_en.arb
output-dir: lib/localizations/
- name: 'Authentication'
translation-dir: translation/authentication
translation-template: authentication_en.arb
output-dir: lib/localizations/
copied to clipboard
Now, you need to install bd_l10n tool and the required dependencies. in your pubspec.yaml
#### other configurations
dependencies:
# other dependencies.
flutter_localizations: # because the generated code use locale and LocalizationDelegate.
sdk: flutter
intl: ^0.16.1 # or any version you use.
dev_dependencies:
# other dependencies.
bd_l10n: ^1.0.0 # or the current stable version
copied to clipboard
Usage #
bd_l10n can be used as a command line tool or with build_runner.
If you're already using build_runner in your project, that's all you have to do because bd_l10n also provide a builder,
that will trigger the localization generation automatically when you will run build_runner build.
If you're not using build_runner, I recommend using the command line utility, but don't worry you will have to run it
once (unless you reboot your computer).
flutter pub run bd_l10n --config-file [path to your config file] [path to your project]
copied to clipboard
example:
flutter pub run bd_l10n --config-file bd_l10n.yaml .
copied to clipboard
bd_l10n has a file watcher feature meaning that even if you're using command line tool, you will only have to run it
once, and then bd_l10n will watch for file changes in the feature translation directories also when the configuration
file changes and automatically generate localizations classes.
So your localizations classes will be generated automatically without you doing anything, this allows you with hot
reload to see your translations as the app is running, without you needing to restart the application
(at least on android) or to automate generation when you add new localization files.
To stop the file watcher if the tool has been run with it previously, just delete any files starting with bd_l10n and
ending with lock.
This file is located in the same directory as your configuration file.
This file also contains logs on events received by the file watcher.
If an error happened during the execution of bd_l10n, you will see a bd_l10n_error.txt in the directory where the tool
was executed.
Full Configuration file description. #
project-type: flutter # type of the project, only flutter is supported at the moment.
features: # list of features used in the project, a project must have at least one feature.
- name: 'Application' # name of the feature is also used as name of the generated file and classes.
translation-dir: translation/common # where your localized messages are stored.
translation-template: common_en.arb # which file to use as template, this file should be in the translation-dir
output-dir: lib/localizations/ # Were the generated localization classes written.
use-deferred-loading: true # enabled deferred loading of localizations, this is mainly for web at the moment.
copied to clipboard
You can find native binaries of the tool here.
license.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.