A lightweight modular library for localization (l10n) functionality.
To enable localization which supports
The package is partitioned to allow a package to consume some parts of the library only as a dev_dependency, not including the message building and serialization packages in the dependencies for the application.
messagesContains the interface for a MessageList and the different subtypes of Messages. Has a dependency on messages_deserializer to parse a data file into a MessageList.
messages_deserializerThe logic for deserializing the data files into MessageLists.
messages_builderThe builder to generate the named methods and data files from the input arb translation files. Has a dependency on messages_serializer and messages.
messages_serializerThe logic for serializing arb message files into data files.
Given translation message files such as these .arbs:
{ "@@locale":"en", "@@context": "AboutPage", "aboutMessage": "About {website}", "@aboutMessage": { "placeholders": { "website" : { "type":"string" } } } }
{ "@@locale":"fr", "@@context": "AboutPage", "aboutMessage": "À propos de {website}", }
insert the message in your Dart application through
import 'dart:io'; import 'package:example/aboutpage_arb_file.g.dart'; import 'package:messages/messages_native.dart'; import 'package:messages/package_intl_object.dart'; void main() { final aboutPageMessages = AboutPageMessages( (String id) => File('lib/$id').readAsBytesSync(), OldIntlObject(), ); aboutPageMessages.loadLocale('fr'); print(aboutPageMessages.aboutMessage(website: 'mywebsite.com')); // 'À propos de mywebsite.com' aboutPageMessages.loadLocale('en'); print(aboutPageMessages.aboutMessage(website: 'mywebsite.com')); // 'About mywebsite.com' }