locale_it.js 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import { combinePostfixIndex, nestingToString } from '../locale_util.js';
  2. import { createLocale } from '../locale.js';
  3. import { NUMBERS } from '../numbers/numbers_it.js';
  4. import { Combiners } from '../transformers.js';
  5. const italianPostfixCombiner = function (letter, font, cap) {
  6. if (letter.match(/^[a-zA-Z]$/)) {
  7. font = font.replace('cerchiato', 'cerchiata');
  8. }
  9. letter = cap ? letter + ' ' + cap : letter;
  10. return font ? letter + ' ' + font : letter;
  11. };
  12. let locale = null;
  13. export function it() {
  14. if (!locale) {
  15. locale = create();
  16. }
  17. return locale;
  18. }
  19. function create() {
  20. const loc = createLocale();
  21. loc.NUMBERS = NUMBERS;
  22. loc.COMBINERS['italianPostfix'] = italianPostfixCombiner;
  23. loc.FUNCTIONS.radicalNestDepth = nestingToString;
  24. loc.FUNCTIONS.combineRootIndex = combinePostfixIndex;
  25. loc.FUNCTIONS.combineNestedFraction = (a, b, c) => c.replace(/ $/g, '') + b + a;
  26. loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => c + ' ' + a;
  27. loc.FUNCTIONS.fontRegexp = (font) => RegExp(' (en |)' + font + '$');
  28. loc.ALPHABETS.combiner = Combiners.romanceCombiner;
  29. return loc;
  30. }