/angular-l10n

An Angular library to translate messages, dates and numbers

Primary LanguageTypeScriptMIT LicenseMIT

Angular localization

Build Status npm version npm npm

An Angular library to translate messages, dates and numbers

This library is for localization of Angular v7 apps. It allows, in addition to translation, to localize numbers and dates of your app, adding language code, country code, currency code, timezone and optionally script code, numbering system and calendar, through Internationalization API. It also implements the validation of numbers by locales.

Sample app built with Angular CLI & Material, and its source code.

Get the changelog by releases.

Angular localization features

  • More modules to support tree shaking:
    • TranslationModule to translate texts
    • LocalizationModule to translate texts, dates & numbers
    • LocaleValidationModule for number validation by locales
    • CollatorModule for sorting and filtering a list by locales
    • LocaleInterceptorModule for setting the locale in Accept-Language header on outgoing requests
  • Direct loading of translation data (objects)
  • Asynchronous loading of translation data (json):
    • Static
    • WebAPI
    • Fallback
    • Custom
  • Caching of the http requests
  • Rollback on error
  • Composed languages: language[-script][-country]
  • Language, Default locale & Currency through ISO codes
  • Timezone through IANA time zone
  • Cookies, Session & Local Storage, or custom storage (e.g. for using with Ionic Storage) available for storing the ISO codes
  • Intl API to localize dates & numbers
  • Localized routing for SEO
  • Pure pipes to get the translation
  • Directives to get the translation:
    • can dynamically change parameters and expressions values as the pipes
    • can translate also attributes
    • work also with complex UI components, like Material or Ionic
  • Parameters in translations
  • Composed keys in translations (nested objects)
  • Html tags in translations
  • Methods to get the translation in component class
  • AoT compliant
  • Lazy loading compliant
  • Server Side Rendering compliant
  • strict TypeScript compiler option compliant

Angular i18n solutions

Feature Angular Official ngx-translate External library angular-l10n External library
Messages Html attributes, message IDs directives, impure pipes directives, pure pipes
File formats XLIFF, XMB/XTB JSON JSON
No bootstrap (when language changes) not yet yes yes
Getting the translation in component class not yet yes yes
Numbers pure pipes using CLDR - directives & pure pipes via Intl API
Dates pure pipes using CLDR - directives & pure pipes via Intl API
Validation - - numbers validation via Intl API

Installing

You can add angular-l10n to your project using npm:

npm install angular-l10n --save 

Usage

  • Angular v7

  • Angular v6 (Angular l10n v5.2.0)

  • Angular v5 (Angular l10n v4.2.0)

  • Angular v4 (Angular l10n v3.5.2)

  • Angular v2 (Angular l10n v2.0.11)

Contributing

License

MIT