messages 0.1.0 copy "messages: ^0.1.0" to clipboard
messages: ^0.1.0 copied to clipboard

A lightweight modular library for localization (l10n) functionality.

package:messages

A lightweight modular library for localization (l10n) functionality.

Goals #

To enable localization which supports

  • Localized file update without recompile,
  • Easy and safe use through named method and argument generation,
  • Small file size, treeshaking both unused locales and unused messages.

Status - experimental #

  • Serialize to binary: -
  • Serialize to JSON: ✔️
  • Deserialize JSON: ✔️
  • Deserialize JSON using browser JS: -
  • Deserialize binary: -
  • Tree shake message files: -

Partitioning #

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.

messages #

Contains the interface for a MessageList and the different subtypes of Messages as well as the functionality to parse a data file into a MessageList.

messages_builder #

The builder to generate the named methods and data files from the input arb translation files. Has a dependency on messages_serializer and messages.

messages_serializer #

The logic for serializing arb message files into data files.

Example #

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'
}
1
likes
0
pub points
60%
popularity

Publisher

verified publisherlabs.dart.dev

A lightweight modular library for localization (l10n) functionality.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

collection, intl

More

Packages that depend on messages