Angular localization
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 textsLocalizationModule
to translate texts, dates & numbersLocaleValidationModule
for number validation by localesCollatorModule
for sorting and filtering a list by localesLocaleInterceptorModule
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
- 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
- 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
- Methods to get the translation in component class
- Html tags in translations
- Parameters in translations
- Composed keys in translations (nested objects)
- AoT compliant
- Lazy loading compliant
- Server Side Rendering compliant
strict
TypeScript compiler option compliant- Localized routing for SEO
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