locale_util.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { LOCALE } from './locale.js';
  2. import { Combiners } from './transformers.js';
  3. export function nestingToString(count) {
  4. switch (count) {
  5. case 1:
  6. return LOCALE.MESSAGES.MS.ONCE || '';
  7. case 2:
  8. return LOCALE.MESSAGES.MS.TWICE;
  9. default:
  10. return count.toString();
  11. }
  12. }
  13. export function combinePostfixIndex(postfix, index) {
  14. return postfix === LOCALE.MESSAGES.MS.ROOTINDEX ||
  15. postfix === LOCALE.MESSAGES.MS.INDEX
  16. ? postfix
  17. : postfix + ' ' + index;
  18. }
  19. export function localFont(font) {
  20. return extractString(LOCALE.MESSAGES.font[font], font);
  21. }
  22. export function localRole(role) {
  23. return extractString(LOCALE.MESSAGES.role[role], role);
  24. }
  25. export function localEnclose(enclose) {
  26. return extractString(LOCALE.MESSAGES.enclose[enclose], enclose);
  27. }
  28. function extractString(combiner, fallback) {
  29. if (combiner === undefined) {
  30. return fallback;
  31. }
  32. return typeof combiner === 'string' ? combiner : combiner[0];
  33. }
  34. export function localeFontCombiner(font) {
  35. return typeof font === 'string'
  36. ? { font: font, combiner: LOCALE.ALPHABETS.combiner }
  37. : {
  38. font: font[0],
  39. combiner: LOCALE.COMBINERS[font[1]] ||
  40. Combiners[font[1]] ||
  41. LOCALE.ALPHABETS.combiner
  42. };
  43. }