This package provides message extraction and code generation from translated messages for the Intl package. It's a separate package so as to not require a dependency on analyzer for all users.
When your program contains messages that need translation, these must be extracted from the program source, sent to human translators, and the results need to be incorporated.
To extract messages, run the extract_to_arb.dart
program.
pub run intl_translation:extract_to_arb --output-dir=target/directory
my_program.dart more_of_my_program.dart
This will produce a file intl_messages.arb
with the messages from
all of these programs. an [ARB]
(https://code.google.com/p/arb/wiki/ApplicationResourceBundleSpecification)
format file which can be used for input to translation tools like
Google Translator Toolkit
The resulting translations can be used to generate a set of libraries
using the generate_from_arb.dart
program.
This expects to receive a series of files, one per locale.
pub run intl_translation:generate_from_arb --generated-file-prefix=<prefix>
<my_dart_files> <translated_ARB_files>
This will generate Dart libraries, one per locale, which contain the
translated versions. Your Dart libraries can import the primary file,
named <prefix>messages_all.dart
, and then call the initialization
for a specific locale. Once that's done, any
Intl.message calls made in the context of that locale
will automatically print the translated version instead of the
original.
import "my_prefix_messages_all.dart";
...
initializeMessages("dk").then(printSomeMessages);
Once the future returned from the initialization call returns, the message data is available.