locale_af.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { Grammar } from '../../rule_engine/grammar.js';
  2. import { nestingToString } from '../locale_util.js';
  3. import { createLocale } from '../locale.js';
  4. import { NUMBERS } from '../numbers/numbers_af.js';
  5. import * as tr from '../transformers.js';
  6. const germanPostfixCombiner = function (letter, font, cap) {
  7. letter = !cap ? letter : cap + ' ' + letter;
  8. return font ? letter + ' ' + font : letter;
  9. };
  10. let locale = null;
  11. export function af() {
  12. if (!locale) {
  13. locale = create();
  14. }
  15. return locale;
  16. }
  17. function create() {
  18. const loc = createLocale();
  19. loc.NUMBERS = NUMBERS;
  20. loc.COMBINERS['germanPostfix'] = germanPostfixCombiner;
  21. loc.FUNCTIONS.radicalNestDepth = nestingToString;
  22. loc.FUNCTIONS.plural = (unit) => {
  23. return /.*s$/.test(unit) ? unit : unit + 's';
  24. };
  25. loc.FUNCTIONS.fontRegexp = function (font) {
  26. return new RegExp('((^' + font + ' )|( ' + font + '$))');
  27. };
  28. loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;
  29. loc.ALPHABETS.digitTrans.default = NUMBERS.numberToWords;
  30. loc.CORRECTIONS.article = (name) => {
  31. return Grammar.getInstance().getParameter('noArticle') ? '' : name;
  32. };
  33. return loc;
  34. }