@digitaldefiance/i18n-lib 2.1.40 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +405 -0
  2. package/package.json +1 -1
  3. package/src/core/component-store.d.ts +4 -0
  4. package/src/core/component-store.d.ts.map +1 -1
  5. package/src/core/component-store.js +27 -5
  6. package/src/core/component-store.js.map +1 -1
  7. package/src/errors/i18n-error.d.ts +6 -0
  8. package/src/errors/i18n-error.d.ts.map +1 -1
  9. package/src/errors/i18n-error.js +12 -0
  10. package/src/errors/i18n-error.js.map +1 -1
  11. package/src/gender/gender-categories.d.ts +7 -0
  12. package/src/gender/gender-categories.d.ts.map +1 -0
  13. package/src/gender/gender-categories.js +10 -0
  14. package/src/gender/gender-categories.js.map +1 -0
  15. package/src/gender/gender-resolver.d.ts +9 -0
  16. package/src/gender/gender-resolver.d.ts.map +1 -0
  17. package/src/gender/gender-resolver.js +30 -0
  18. package/src/gender/gender-resolver.js.map +1 -0
  19. package/src/gender/index.d.ts +3 -0
  20. package/src/gender/index.d.ts.map +1 -0
  21. package/src/gender/index.js +6 -0
  22. package/src/gender/index.js.map +1 -0
  23. package/src/icu/ast.d.ts +48 -0
  24. package/src/icu/ast.d.ts.map +1 -0
  25. package/src/icu/ast.js +16 -0
  26. package/src/icu/ast.js.map +1 -0
  27. package/src/icu/compiler.d.ts +16 -0
  28. package/src/icu/compiler.d.ts.map +1 -0
  29. package/src/icu/compiler.js +81 -0
  30. package/src/icu/compiler.js.map +1 -0
  31. package/src/icu/formatter-registry.d.ts +10 -0
  32. package/src/icu/formatter-registry.d.ts.map +1 -0
  33. package/src/icu/formatter-registry.js +34 -0
  34. package/src/icu/formatter-registry.js.map +1 -0
  35. package/src/icu/formatters/base-formatter.d.ts +8 -0
  36. package/src/icu/formatters/base-formatter.d.ts.map +1 -0
  37. package/src/icu/formatters/base-formatter.js +3 -0
  38. package/src/icu/formatters/base-formatter.js.map +1 -0
  39. package/src/icu/formatters/date-formatter.d.ts +5 -0
  40. package/src/icu/formatters/date-formatter.d.ts.map +1 -0
  41. package/src/icu/formatters/date-formatter.js +31 -0
  42. package/src/icu/formatters/date-formatter.js.map +1 -0
  43. package/src/icu/formatters/number-formatter.d.ts +5 -0
  44. package/src/icu/formatters/number-formatter.d.ts.map +1 -0
  45. package/src/icu/formatters/number-formatter.js +30 -0
  46. package/src/icu/formatters/number-formatter.js.map +1 -0
  47. package/src/icu/formatters/plural-formatter.d.ts +5 -0
  48. package/src/icu/formatters/plural-formatter.d.ts.map +1 -0
  49. package/src/icu/formatters/plural-formatter.js +15 -0
  50. package/src/icu/formatters/plural-formatter.js.map +1 -0
  51. package/src/icu/formatters/select-formatter.d.ts +5 -0
  52. package/src/icu/formatters/select-formatter.d.ts.map +1 -0
  53. package/src/icu/formatters/select-formatter.js +10 -0
  54. package/src/icu/formatters/select-formatter.js.map +1 -0
  55. package/src/icu/formatters/selectordinal-formatter.d.ts +5 -0
  56. package/src/icu/formatters/selectordinal-formatter.d.ts.map +1 -0
  57. package/src/icu/formatters/selectordinal-formatter.js +22 -0
  58. package/src/icu/formatters/selectordinal-formatter.js.map +1 -0
  59. package/src/icu/formatters/time-formatter.d.ts +5 -0
  60. package/src/icu/formatters/time-formatter.d.ts.map +1 -0
  61. package/src/icu/formatters/time-formatter.js +31 -0
  62. package/src/icu/formatters/time-formatter.js.map +1 -0
  63. package/src/icu/helpers.d.ts +9 -0
  64. package/src/icu/helpers.d.ts.map +1 -0
  65. package/src/icu/helpers.js +31 -0
  66. package/src/icu/helpers.js.map +1 -0
  67. package/src/icu/parser.d.ts +29 -0
  68. package/src/icu/parser.d.ts.map +1 -0
  69. package/src/icu/parser.js +194 -0
  70. package/src/icu/parser.js.map +1 -0
  71. package/src/icu/runtime.d.ts +10 -0
  72. package/src/icu/runtime.d.ts.map +1 -0
  73. package/src/icu/runtime.js +28 -0
  74. package/src/icu/runtime.js.map +1 -0
  75. package/src/icu/tokenizer.d.ts +37 -0
  76. package/src/icu/tokenizer.d.ts.map +1 -0
  77. package/src/icu/tokenizer.js +187 -0
  78. package/src/icu/tokenizer.js.map +1 -0
  79. package/src/icu/validator.d.ts +11 -0
  80. package/src/icu/validator.d.ts.map +1 -0
  81. package/src/icu/validator.js +140 -0
  82. package/src/icu/validator.js.map +1 -0
  83. package/src/index.d.ts +4 -0
  84. package/src/index.d.ts.map +1 -1
  85. package/src/index.js +4 -0
  86. package/src/index.js.map +1 -1
  87. package/src/interfaces/component-config.interface.d.ts +2 -1
  88. package/src/interfaces/component-config.interface.d.ts.map +1 -1
  89. package/src/pluralization/index.d.ts +7 -0
  90. package/src/pluralization/index.d.ts.map +1 -0
  91. package/src/pluralization/index.js +10 -0
  92. package/src/pluralization/index.js.map +1 -0
  93. package/src/pluralization/language-plural-map.d.ts +29 -0
  94. package/src/pluralization/language-plural-map.d.ts.map +1 -0
  95. package/src/pluralization/language-plural-map.js +136 -0
  96. package/src/pluralization/language-plural-map.js.map +1 -0
  97. package/src/pluralization/plural-categories.d.ts +22 -0
  98. package/src/pluralization/plural-categories.d.ts.map +1 -0
  99. package/src/pluralization/plural-categories.js +8 -0
  100. package/src/pluralization/plural-categories.js.map +1 -0
  101. package/src/pluralization/plural-rules.d.ts +102 -0
  102. package/src/pluralization/plural-rules.d.ts.map +1 -0
  103. package/src/pluralization/plural-rules.js +263 -0
  104. package/src/pluralization/plural-rules.js.map +1 -0
  105. package/src/types/index.d.ts +5 -0
  106. package/src/types/index.d.ts.map +1 -0
  107. package/src/types/index.js +8 -0
  108. package/src/types/index.js.map +1 -0
  109. package/src/types/plural-types.d.ts +17 -0
  110. package/src/types/plural-types.d.ts.map +1 -0
  111. package/src/types/plural-types.js +33 -0
  112. package/src/types/plural-types.js.map +1 -0
  113. package/src/utils/index.d.ts +1 -6
  114. package/src/utils/index.d.ts.map +1 -1
  115. package/src/utils/index.js +1 -6
  116. package/src/utils/index.js.map +1 -1
  117. package/src/utils/plural-helpers.d.ts +10 -0
  118. package/src/utils/plural-helpers.d.ts.map +1 -0
  119. package/src/utils/plural-helpers.js +19 -0
  120. package/src/utils/plural-helpers.js.map +1 -0
  121. package/src/validation/index.d.ts +2 -0
  122. package/src/validation/index.d.ts.map +1 -0
  123. package/src/validation/index.js +5 -0
  124. package/src/validation/index.js.map +1 -0
  125. package/src/validation/plural-validator.d.ts +23 -0
  126. package/src/validation/plural-validator.d.ts.map +1 -0
  127. package/src/validation/plural-validator.js +105 -0
  128. package/src/validation/plural-validator.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/validator.ts"],"names":[],"mappings":"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"}
package/src/index.d.ts CHANGED
@@ -3,6 +3,10 @@ export * from './core';
3
3
  export * from './errors';
4
4
  export * from './interfaces';
5
5
  export * from './utils';
6
+ export * from './types';
7
+ export * from './pluralization';
8
+ export * from './gender';
9
+ export * from './validation';
6
10
  export { Timezone, isValidTimezone } from './utils/timezone';
7
11
  export { CurrencyCode } from './utils/currency';
8
12
  export { I18nEngine as I18n } from './core/i18n-engine';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIjE,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAGD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,0BAA0B,IAAI,cAAc,EAAE,0BAA0B,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,EAAE,wBAAwB,IAAI,kBAAkB,EAAE,yBAAyB,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAItE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIjE,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAGD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,0BAA0B,IAAI,cAAc,EAAE,0BAA0B,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,EAAE,wBAAwB,IAAI,kBAAkB,EAAE,yBAAyB,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/H,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAItE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
package/src/index.js CHANGED
@@ -10,6 +10,10 @@ tslib_1.__exportStar(require("./core"), exports);
10
10
  tslib_1.__exportStar(require("./errors"), exports);
11
11
  tslib_1.__exportStar(require("./interfaces"), exports);
12
12
  tslib_1.__exportStar(require("./utils"), exports);
13
+ tslib_1.__exportStar(require("./types"), exports);
14
+ tslib_1.__exportStar(require("./pluralization"), exports);
15
+ tslib_1.__exportStar(require("./gender"), exports);
16
+ tslib_1.__exportStar(require("./validation"), exports);
13
17
  // Explicit exports for type safety
14
18
  var timezone_1 = require("./utils/timezone");
15
19
  Object.defineProperty(exports, "Timezone", { enumerable: true, get: function () { return timezone_1.Timezone; } });
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":";;;AAiBA,4BAEC;AAmCD,kDAEC;;AAxDD,uBAAuB;AACvB,qDAA2B;AAC3B,iDAAuB;AACvB,mDAAyB;AACzB,uDAA6B;AAC7B,kDAAwB;AAExB,mCAAmC;AACnC,6CAA6D;AAApD,oGAAA,QAAQ,OAAA;AAAE,2GAAA,eAAe,OAAA;AAClC,6CAAgD;AAAvC,wGAAA,YAAY,OAAA;AAErB,sBAAsB;AACtB,kDAAwD;AAA/C,mGAAA,UAAU,OAAQ;AAC3B,wDAAiE;AAAxD,uGAAA,WAAW,OAAW;AAE/B,gBAAgB;AAChB,oDAAgD;AAChD,SAAgB,QAAQ;IACtB,wBAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,4DAA4D;AAC5D,2DAAiC;AACjC,iEAAuC;AACvC,kEAAwC;AACxC,6FAA6F;AAC7F,mEAAyC;AACzC,+DAAqC;AACrC,+DAAqC;AACrC,sDAA4B;AAC5B,4DAAkC;AAClC,uEAA6C;AAC7C,0DAAgC;AAChC,kEAAwC;AACxC,gFAAsD;AACtD,2DAAiC;AACjC,+DAAqC;AACrC,4DAAkC;AAClC,2DAAiC;AACjC,gEAAsC;AACtC,qDAA2B;AAC3B,+DAAqC;AACrC,gEAAsC;AACtC,iEAAuC;AACvC,kDAAwB;AACxB,8DAAoC;AAEpC,6BAA6B;AAC7B,yCAA+H;AAAtH,2GAAA,0BAA0B,OAAkB;AAAE,iHAAA,0BAA0B,OAAwB;AACzG,yCAA+H;AAAtH,+GAAA,wBAAwB,OAAsB;AAAE,gHAAA,yBAAyB,OAAuB;AACzG,2DAAsE;AAA7D,gHAAA,gBAAgB,OAAc;AAEvC,2BAA2B;AAC3B,6DAAwD;AACxD,SAAgB,mBAAmB;IACjC,qCAAgB,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":";;;AAqBA,4BAEC;AAmCD,kDAEC;;AA5DD,uBAAuB;AACvB,qDAA2B;AAC3B,iDAAuB;AACvB,mDAAyB;AACzB,uDAA6B;AAC7B,kDAAwB;AACxB,kDAAwB;AACxB,0DAAgC;AAChC,mDAAyB;AACzB,uDAA6B;AAE7B,mCAAmC;AACnC,6CAA6D;AAApD,oGAAA,QAAQ,OAAA;AAAE,2GAAA,eAAe,OAAA;AAClC,6CAAgD;AAAvC,wGAAA,YAAY,OAAA;AAErB,sBAAsB;AACtB,kDAAwD;AAA/C,mGAAA,UAAU,OAAQ;AAC3B,wDAAiE;AAAxD,uGAAA,WAAW,OAAW;AAE/B,gBAAgB;AAChB,oDAAgD;AAChD,SAAgB,QAAQ;IACtB,wBAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,4DAA4D;AAC5D,2DAAiC;AACjC,iEAAuC;AACvC,kEAAwC;AACxC,6FAA6F;AAC7F,mEAAyC;AACzC,+DAAqC;AACrC,+DAAqC;AACrC,sDAA4B;AAC5B,4DAAkC;AAClC,uEAA6C;AAC7C,0DAAgC;AAChC,kEAAwC;AACxC,gFAAsD;AACtD,2DAAiC;AACjC,+DAAqC;AACrC,4DAAkC;AAClC,2DAAiC;AACjC,gEAAsC;AACtC,qDAA2B;AAC3B,+DAAqC;AACrC,gEAAsC;AACtC,iEAAuC;AACvC,kDAAwB;AACxB,8DAAoC;AAEpC,6BAA6B;AAC7B,yCAA+H;AAAtH,2GAAA,0BAA0B,OAAkB;AAAE,iHAAA,0BAA0B,OAAwB;AACzG,yCAA+H;AAAtH,+GAAA,wBAAwB,OAAsB;AAAE,gHAAA,yBAAyB,OAAuB;AACzG,2DAAsE;AAA7D,gHAAA,gBAAgB,OAAc;AAEvC,2BAA2B;AAC3B,6DAAwD;AACxD,SAAgB,mBAAmB;IACjC,qCAAgB,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Simplified component configuration
3
3
  */
4
+ import { PluralString } from '../types/plural-types';
4
5
  export interface ComponentConfig {
5
6
  readonly id: string;
6
- readonly strings: Record<string, Record<string, string>>;
7
+ readonly strings: Record<string, Record<string, string | PluralString>>;
7
8
  readonly aliases?: readonly string[];
8
9
  }
9
10
  //# sourceMappingURL=component-config.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-config.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/component-config.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC"}
1
+ {"version":3,"file":"component-config.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/component-config.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Pluralization module exports
3
+ */
4
+ export * from './plural-categories';
5
+ export * from './plural-rules';
6
+ export * from './language-plural-map';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/pluralization/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Pluralization module exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./plural-categories"), exports);
8
+ tslib_1.__exportStar(require("./plural-rules"), exports);
9
+ tslib_1.__exportStar(require("./language-plural-map"), exports);
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/pluralization/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,8DAAoC;AACpC,yDAA+B;AAC/B,gEAAsC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Language to Plural Rule Mapping
3
+ */
4
+ import { LanguagePluralForms, PluralRuleFunction } from './plural-categories';
5
+ /**
6
+ * Map of language codes to plural rule functions
7
+ */
8
+ export declare const LANGUAGE_PLURAL_RULES: Record<string, PluralRuleFunction>;
9
+ /**
10
+ * Map of language codes to required/optional plural forms
11
+ */
12
+ export declare const LANGUAGE_PLURAL_FORMS: Record<string, LanguagePluralForms>;
13
+ /**
14
+ * Get plural category for a number in a specific language
15
+ */
16
+ export declare function getPluralCategory(language: string, count: number): string;
17
+ /**
18
+ * Get required plural forms for a language
19
+ */
20
+ export declare function getRequiredPluralForms(language: string): string[];
21
+ /**
22
+ * Get all plural forms (required + optional) for a language
23
+ */
24
+ export declare function getAllPluralForms(language: string): string[];
25
+ /**
26
+ * Check if a language has a specific plural form
27
+ */
28
+ export declare function hasPluralForm(language: string, category: string): boolean;
29
+ //# sourceMappingURL=language-plural-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-plural-map.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/pluralization/language-plural-map.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAuB9E;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAyCpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAyCrE,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAWzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAGjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGzE"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * Language to Plural Rule Mapping
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LANGUAGE_PLURAL_FORMS = exports.LANGUAGE_PLURAL_RULES = void 0;
7
+ exports.getPluralCategory = getPluralCategory;
8
+ exports.getRequiredPluralForms = getRequiredPluralForms;
9
+ exports.getAllPluralForms = getAllPluralForms;
10
+ exports.hasPluralForm = hasPluralForm;
11
+ const plural_rules_1 = require("./plural-rules");
12
+ /**
13
+ * Map of language codes to plural rule functions
14
+ */
15
+ exports.LANGUAGE_PLURAL_RULES = {
16
+ 'en': plural_rules_1.pluralRuleEnglish,
17
+ 'en-US': plural_rules_1.pluralRuleEnglish,
18
+ 'en-GB': plural_rules_1.pluralRuleEnglish,
19
+ 'ru': plural_rules_1.pluralRuleRussian,
20
+ 'ar': plural_rules_1.pluralRuleArabic,
21
+ 'pl': plural_rules_1.pluralRulePolish,
22
+ 'fr': plural_rules_1.pluralRuleFrench,
23
+ 'es': plural_rules_1.pluralRuleSpanish,
24
+ 'ja': plural_rules_1.pluralRuleJapanese,
25
+ 'uk': plural_rules_1.pluralRuleUkrainian,
26
+ 'zh': plural_rules_1.pluralRuleChinese,
27
+ 'zh-CN': plural_rules_1.pluralRuleChinese,
28
+ 'de': plural_rules_1.pluralRuleGerman,
29
+ 'gd': plural_rules_1.pluralRuleScottishGaelic,
30
+ 'cy': plural_rules_1.pluralRuleWelsh,
31
+ 'br': plural_rules_1.pluralRuleBreton,
32
+ 'sl': plural_rules_1.pluralRuleSlovenian,
33
+ 'cs': plural_rules_1.pluralRuleCzech,
34
+ 'lt': plural_rules_1.pluralRuleLithuanian,
35
+ 'lv': plural_rules_1.pluralRuleLatvian,
36
+ 'ga': plural_rules_1.pluralRuleIrish,
37
+ 'ro': plural_rules_1.pluralRuleRomanian,
38
+ // Common languages reusing existing rules
39
+ 'it': plural_rules_1.pluralRuleEnglish,
40
+ 'pt': plural_rules_1.pluralRuleEnglish,
41
+ 'pt-BR': plural_rules_1.pluralRuleFrench, // Brazilian Portuguese: 0 and 1 use 'one'
42
+ 'nl': plural_rules_1.pluralRuleEnglish,
43
+ 'sv': plural_rules_1.pluralRuleEnglish,
44
+ 'no': plural_rules_1.pluralRuleEnglish,
45
+ 'da': plural_rules_1.pluralRuleEnglish,
46
+ 'fi': plural_rules_1.pluralRuleEnglish,
47
+ 'el': plural_rules_1.pluralRuleEnglish,
48
+ 'tr': plural_rules_1.pluralRuleJapanese,
49
+ 'ko': plural_rules_1.pluralRuleJapanese,
50
+ 'vi': plural_rules_1.pluralRuleJapanese,
51
+ 'th': plural_rules_1.pluralRuleJapanese,
52
+ 'id': plural_rules_1.pluralRuleJapanese,
53
+ 'ms': plural_rules_1.pluralRuleJapanese,
54
+ 'he': plural_rules_1.pluralRuleEnglish, // Simplified - full Hebrew is more complex
55
+ 'hi': plural_rules_1.pluralRuleFrench,
56
+ };
57
+ /**
58
+ * Map of language codes to required/optional plural forms
59
+ */
60
+ exports.LANGUAGE_PLURAL_FORMS = {
61
+ 'en': { required: ['one', 'other'], optional: ['zero'] },
62
+ 'en-US': { required: ['one', 'other'], optional: ['zero'] },
63
+ 'en-GB': { required: ['one', 'other'], optional: ['zero'] },
64
+ 'ru': { required: ['one', 'few', 'many'], optional: ['zero'] },
65
+ 'ar': { required: ['zero', 'one', 'two', 'few', 'many', 'other'], optional: [] },
66
+ 'pl': { required: ['one', 'few', 'many'], optional: ['zero', 'other'] },
67
+ 'fr': { required: ['one', 'other'], optional: ['zero'] },
68
+ 'es': { required: ['one', 'other'], optional: ['zero'] },
69
+ 'ja': { required: ['other'], optional: [] },
70
+ 'uk': { required: ['one', 'few', 'many'], optional: ['zero'] },
71
+ 'zh': { required: ['other'], optional: [] },
72
+ 'zh-CN': { required: ['other'], optional: [] },
73
+ 'de': { required: ['one', 'other'], optional: ['zero'] },
74
+ 'gd': { required: ['one', 'two', 'few', 'other'], optional: [] },
75
+ 'cy': { required: ['zero', 'one', 'two', 'few', 'many', 'other'], optional: [] },
76
+ 'br': { required: ['one', 'two', 'few', 'many', 'other'], optional: [] },
77
+ 'sl': { required: ['one', 'two', 'few', 'other'], optional: [] },
78
+ 'cs': { required: ['one', 'few', 'many', 'other'], optional: [] },
79
+ 'lt': { required: ['one', 'few', 'many', 'other'], optional: [] },
80
+ 'lv': { required: ['zero', 'one', 'other'], optional: [] },
81
+ 'ga': { required: ['one', 'two', 'few', 'many', 'other'], optional: [] },
82
+ 'ro': { required: ['one', 'few', 'other'], optional: [] },
83
+ // Common languages
84
+ 'it': { required: ['one', 'other'], optional: ['zero'] },
85
+ 'pt': { required: ['one', 'other'], optional: ['zero'] },
86
+ 'pt-BR': { required: ['one', 'other'], optional: ['zero'] },
87
+ 'nl': { required: ['one', 'other'], optional: ['zero'] },
88
+ 'sv': { required: ['one', 'other'], optional: ['zero'] },
89
+ 'no': { required: ['one', 'other'], optional: ['zero'] },
90
+ 'da': { required: ['one', 'other'], optional: ['zero'] },
91
+ 'fi': { required: ['one', 'other'], optional: ['zero'] },
92
+ 'el': { required: ['one', 'other'], optional: ['zero'] },
93
+ 'tr': { required: ['other'], optional: [] },
94
+ 'ko': { required: ['other'], optional: [] },
95
+ 'vi': { required: ['other'], optional: [] },
96
+ 'th': { required: ['other'], optional: [] },
97
+ 'id': { required: ['other'], optional: [] },
98
+ 'ms': { required: ['other'], optional: [] },
99
+ 'he': { required: ['one', 'other'], optional: ['zero'] },
100
+ 'hi': { required: ['one', 'other'], optional: ['zero'] },
101
+ };
102
+ /**
103
+ * Get plural category for a number in a specific language
104
+ */
105
+ function getPluralCategory(language, count) {
106
+ // Handle invalid inputs
107
+ if (typeof count !== 'number' || !isFinite(count)) {
108
+ return 'other';
109
+ }
110
+ // Get the plural rule for the language
111
+ const rule = exports.LANGUAGE_PLURAL_RULES[language] || exports.LANGUAGE_PLURAL_RULES['en'];
112
+ // Apply the rule
113
+ return rule(Math.abs(count));
114
+ }
115
+ /**
116
+ * Get required plural forms for a language
117
+ */
118
+ function getRequiredPluralForms(language) {
119
+ const forms = exports.LANGUAGE_PLURAL_FORMS[language] || exports.LANGUAGE_PLURAL_FORMS['en'];
120
+ return forms.required;
121
+ }
122
+ /**
123
+ * Get all plural forms (required + optional) for a language
124
+ */
125
+ function getAllPluralForms(language) {
126
+ const forms = exports.LANGUAGE_PLURAL_FORMS[language] || exports.LANGUAGE_PLURAL_FORMS['en'];
127
+ return [...forms.required, ...forms.optional];
128
+ }
129
+ /**
130
+ * Check if a language has a specific plural form
131
+ */
132
+ function hasPluralForm(language, category) {
133
+ const forms = exports.LANGUAGE_PLURAL_FORMS[language] || exports.LANGUAGE_PLURAL_FORMS['en'];
134
+ return forms.required.includes(category) || forms.optional.includes(category);
135
+ }
136
+ //# sourceMappingURL=language-plural-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-plural-map.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/pluralization/language-plural-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * CLDR Plural Categories
3
+ * Based on Unicode CLDR plural rules
4
+ * @see https://cldr.unicode.org/index/cldr-spec/plural-rules
5
+ */
6
+ /**
7
+ * Standard CLDR plural categories
8
+ */
9
+ export type PluralCategory = 'zero' | 'one' | 'two' | 'few' | 'many' | 'other';
10
+ /**
11
+ * Plural rule function type
12
+ * Takes a number and returns the appropriate plural category
13
+ */
14
+ export type PluralRuleFunction = (n: number) => PluralCategory;
15
+ /**
16
+ * Language-specific plural forms required
17
+ */
18
+ export interface LanguagePluralForms {
19
+ required: PluralCategory[];
20
+ optional: PluralCategory[];
21
+ }
22
+ //# sourceMappingURL=plural-categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plural-categories.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/pluralization/plural-categories.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * CLDR Plural Categories
4
+ * Based on Unicode CLDR plural rules
5
+ * @see https://cldr.unicode.org/index/cldr-spec/plural-rules
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=plural-categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plural-categories.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/pluralization/plural-categories.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * CLDR Plural Rules Implementation
3
+ * Based on Unicode CLDR plural rules for cardinal numbers
4
+ */
5
+ import { PluralRuleFunction } from './plural-categories';
6
+ /**
7
+ * English plural rule (en-US, en-GB)
8
+ * Forms: one, other
9
+ */
10
+ export declare const pluralRuleEnglish: PluralRuleFunction;
11
+ /**
12
+ * Russian plural rule (ru)
13
+ * Forms: one, few, many
14
+ */
15
+ export declare const pluralRuleRussian: PluralRuleFunction;
16
+ /**
17
+ * Arabic plural rule (ar)
18
+ * Forms: zero, one, two, few, many, other
19
+ */
20
+ export declare const pluralRuleArabic: PluralRuleFunction;
21
+ /**
22
+ * Polish plural rule (pl)
23
+ * Forms: one, few, many, other
24
+ */
25
+ export declare const pluralRulePolish: PluralRuleFunction;
26
+ /**
27
+ * French plural rule (fr)
28
+ * Forms: one, other
29
+ */
30
+ export declare const pluralRuleFrench: PluralRuleFunction;
31
+ /**
32
+ * Spanish plural rule (es)
33
+ * Forms: one, other
34
+ */
35
+ export declare const pluralRuleSpanish: PluralRuleFunction;
36
+ /**
37
+ * Japanese plural rule (ja)
38
+ * Forms: other (no plural distinction)
39
+ */
40
+ export declare const pluralRuleJapanese: PluralRuleFunction;
41
+ /**
42
+ * Ukrainian plural rule (uk)
43
+ * Forms: one, few, many (same as Russian)
44
+ */
45
+ export declare const pluralRuleUkrainian: PluralRuleFunction;
46
+ /**
47
+ * Chinese plural rule (zh-CN)
48
+ * Forms: other (no plural distinction)
49
+ */
50
+ export declare const pluralRuleChinese: PluralRuleFunction;
51
+ /**
52
+ * German plural rule (de)
53
+ * Forms: one, other
54
+ */
55
+ export declare const pluralRuleGerman: PluralRuleFunction;
56
+ /**
57
+ * Scottish Gaelic plural rule (gd)
58
+ * Forms: one, two, few, other
59
+ * One of the most complex plural systems
60
+ */
61
+ export declare const pluralRuleScottishGaelic: PluralRuleFunction;
62
+ /**
63
+ * Welsh plural rule (cy)
64
+ * Forms: zero, one, two, few, many, other
65
+ */
66
+ export declare const pluralRuleWelsh: PluralRuleFunction;
67
+ /**
68
+ * Breton plural rule (br)
69
+ * Forms: one, two, few, many, other
70
+ */
71
+ export declare const pluralRuleBreton: PluralRuleFunction;
72
+ /**
73
+ * Slovenian plural rule (sl)
74
+ * Forms: one, two, few, other
75
+ */
76
+ export declare const pluralRuleSlovenian: PluralRuleFunction;
77
+ /**
78
+ * Czech plural rule (cs)
79
+ * Forms: one, few, many, other
80
+ */
81
+ export declare const pluralRuleCzech: PluralRuleFunction;
82
+ /**
83
+ * Lithuanian plural rule (lt)
84
+ * Forms: one, few, many, other
85
+ */
86
+ export declare const pluralRuleLithuanian: PluralRuleFunction;
87
+ /**
88
+ * Latvian plural rule (lv)
89
+ * Forms: zero, one, other
90
+ */
91
+ export declare const pluralRuleLatvian: PluralRuleFunction;
92
+ /**
93
+ * Irish plural rule (ga)
94
+ * Forms: one, two, few, many, other
95
+ */
96
+ export declare const pluralRuleIrish: PluralRuleFunction;
97
+ /**
98
+ * Romanian plural rule (ro)
99
+ * Forms: one, few, other
100
+ */
101
+ export declare const pluralRuleRomanian: PluralRuleFunction;
102
+ //# sourceMappingURL=plural-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plural-rules.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/pluralization/plural-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAkB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAG/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAO/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAS9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAY9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAG9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAG/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAEhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAAsC,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAE/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAG9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAKtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,kBAO7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAY9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAOjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,kBAK7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAQlC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAO/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,kBAM7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAMhC,CAAA"}