locale_es.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.es = es;
  4. const locale_js_1 = require("../locale.js");
  5. const locale_util_js_1 = require("../locale_util.js");
  6. const numbers_es_js_1 = require("../numbers/numbers_es.js");
  7. const transformers_js_1 = require("../transformers.js");
  8. const sansserifCombiner = function (letter, font, cap) {
  9. letter = 'sans serif ' + (cap ? cap + ' ' + letter : letter);
  10. return font ? letter + ' ' + font : letter;
  11. };
  12. let locale = null;
  13. function es() {
  14. if (!locale) {
  15. locale = create();
  16. }
  17. return locale;
  18. }
  19. function create() {
  20. const loc = (0, locale_js_1.createLocale)();
  21. loc.NUMBERS = numbers_es_js_1.NUMBERS;
  22. loc.COMBINERS['sansserif'] = sansserifCombiner;
  23. loc.FUNCTIONS.fracNestDepth = (_node) => false;
  24. loc.FUNCTIONS.combineRootIndex = locale_util_js_1.combinePostfixIndex;
  25. loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => a + c;
  26. loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font + ' ');
  27. loc.FUNCTIONS.plural = (unit) => {
  28. if (/.*(a|e|i|o|u)$/.test(unit)) {
  29. return unit + 's';
  30. }
  31. if (/.*z$/.test(unit)) {
  32. return unit.slice(0, -1) + 'ces';
  33. }
  34. if (/.*c$/.test(unit)) {
  35. return unit.slice(0, -1) + 'ques';
  36. }
  37. if (/.*g$/.test(unit)) {
  38. return unit + 'ues';
  39. }
  40. if (/.*\u00f3n$/.test(unit)) {
  41. return unit.slice(0, -2) + 'ones';
  42. }
  43. return unit + 'es';
  44. };
  45. loc.FUNCTIONS.si = (prefix, unit) => {
  46. if (unit.match(/^metro/)) {
  47. prefix = prefix.replace(/a$/, 'á').replace(/o$/, 'ó').replace(/i$/, 'í');
  48. }
  49. return prefix + unit;
  50. };
  51. loc.ALPHABETS.combiner = transformers_js_1.Combiners.prefixCombiner;
  52. return loc;
  53. }