angular-custom-locale
Helps to customization Angular 5.x-8.x locale
Usage
Imagine that we need to change view of numbers, in whole project. And this project already use some locale.
I.e. our components uses in declaration providers: {provide: LOCALE_ID, useValue: 'ru'}
.
So let is magic begin.
// app.module.component.ts // Boilerplate;; // Imports russian locale: where numbers outputs like 1234.56 => 1 234,56 ; // clone locale for safe use;; // Some hacks (i.e. magic): mutate locale (I plan to change this beehaviour in latest versions)customizeLocalecustomizedLocaleRu, ; // And now numbers output will be like 1234.56 => 1234.56. Just a magic for no magic)registerLocaleDatacustomizedLocaleRu;// If we need change locale settings for whole project without declare locale providers, here is really dirty hack// We can change default locale. If you know right way let me know)registerLocaleDatacustomizedLocaleRu, 'en';
Parameter
This is Objech where first level of keys means group name of changing items, 2nd level - means items names. All not case sensitive.
Now supported only one section 'number'. If you need more group, drop me a line.
List of items:
- decimal - decimal separator
- group - digits group separator
- list - list separator
- percentSign - % (percent sign)
- plusSign - + (plus sign)
- minusSign - - (minus sign)
- exponential - exponential
- superscriptingExponent - superscripting exponent
- perMille - ‰ (per-mille)
- infinity - ∞ (infinity sign)
- nan - not a number string
- timeSeparator - time separator>
Is it legal? Or (at least) good practice?
I hope so. Angular trought 5 to 8 versions has no changes... in format of locales files. Of course, I can't guarantee it will not changed in Angular 9 (or even 8.xx). I just can promise to add some hack in this module if it will fired.
Naming
Angular imports data for locales from CLDR. So I just use names from xml (e.g. here)
... ... , ; % + - E × ‰ ∞ не число : ...
Plans
- Add more sections (on demand)
- Change mutation behaviour to safe
- Fixes this README (ough, my English)
- Write descriptions for "internal" but exported functions setItem & getItem
- Add warnings (or restictions for Angular 9+)
Just write me if I'll can help you,.. or you can help me (pull request or any advises) mclander@list.ru.