@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.
- package/README.md +405 -0
- package/package.json +1 -1
- package/src/core/component-store.d.ts +4 -0
- package/src/core/component-store.d.ts.map +1 -1
- package/src/core/component-store.js +27 -5
- package/src/core/component-store.js.map +1 -1
- package/src/errors/i18n-error.d.ts +6 -0
- package/src/errors/i18n-error.d.ts.map +1 -1
- package/src/errors/i18n-error.js +12 -0
- package/src/errors/i18n-error.js.map +1 -1
- package/src/gender/gender-categories.d.ts +7 -0
- package/src/gender/gender-categories.d.ts.map +1 -0
- package/src/gender/gender-categories.js +10 -0
- package/src/gender/gender-categories.js.map +1 -0
- package/src/gender/gender-resolver.d.ts +9 -0
- package/src/gender/gender-resolver.d.ts.map +1 -0
- package/src/gender/gender-resolver.js +30 -0
- package/src/gender/gender-resolver.js.map +1 -0
- package/src/gender/index.d.ts +3 -0
- package/src/gender/index.d.ts.map +1 -0
- package/src/gender/index.js +6 -0
- package/src/gender/index.js.map +1 -0
- package/src/icu/ast.d.ts +48 -0
- package/src/icu/ast.d.ts.map +1 -0
- package/src/icu/ast.js +16 -0
- package/src/icu/ast.js.map +1 -0
- package/src/icu/compiler.d.ts +16 -0
- package/src/icu/compiler.d.ts.map +1 -0
- package/src/icu/compiler.js +81 -0
- package/src/icu/compiler.js.map +1 -0
- package/src/icu/formatter-registry.d.ts +10 -0
- package/src/icu/formatter-registry.d.ts.map +1 -0
- package/src/icu/formatter-registry.js +34 -0
- package/src/icu/formatter-registry.js.map +1 -0
- package/src/icu/formatters/base-formatter.d.ts +8 -0
- package/src/icu/formatters/base-formatter.d.ts.map +1 -0
- package/src/icu/formatters/base-formatter.js +3 -0
- package/src/icu/formatters/base-formatter.js.map +1 -0
- package/src/icu/formatters/date-formatter.d.ts +5 -0
- package/src/icu/formatters/date-formatter.d.ts.map +1 -0
- package/src/icu/formatters/date-formatter.js +31 -0
- package/src/icu/formatters/date-formatter.js.map +1 -0
- package/src/icu/formatters/number-formatter.d.ts +5 -0
- package/src/icu/formatters/number-formatter.d.ts.map +1 -0
- package/src/icu/formatters/number-formatter.js +30 -0
- package/src/icu/formatters/number-formatter.js.map +1 -0
- package/src/icu/formatters/plural-formatter.d.ts +5 -0
- package/src/icu/formatters/plural-formatter.d.ts.map +1 -0
- package/src/icu/formatters/plural-formatter.js +15 -0
- package/src/icu/formatters/plural-formatter.js.map +1 -0
- package/src/icu/formatters/select-formatter.d.ts +5 -0
- package/src/icu/formatters/select-formatter.d.ts.map +1 -0
- package/src/icu/formatters/select-formatter.js +10 -0
- package/src/icu/formatters/select-formatter.js.map +1 -0
- package/src/icu/formatters/selectordinal-formatter.d.ts +5 -0
- package/src/icu/formatters/selectordinal-formatter.d.ts.map +1 -0
- package/src/icu/formatters/selectordinal-formatter.js +22 -0
- package/src/icu/formatters/selectordinal-formatter.js.map +1 -0
- package/src/icu/formatters/time-formatter.d.ts +5 -0
- package/src/icu/formatters/time-formatter.d.ts.map +1 -0
- package/src/icu/formatters/time-formatter.js +31 -0
- package/src/icu/formatters/time-formatter.js.map +1 -0
- package/src/icu/helpers.d.ts +9 -0
- package/src/icu/helpers.d.ts.map +1 -0
- package/src/icu/helpers.js +31 -0
- package/src/icu/helpers.js.map +1 -0
- package/src/icu/parser.d.ts +29 -0
- package/src/icu/parser.d.ts.map +1 -0
- package/src/icu/parser.js +194 -0
- package/src/icu/parser.js.map +1 -0
- package/src/icu/runtime.d.ts +10 -0
- package/src/icu/runtime.d.ts.map +1 -0
- package/src/icu/runtime.js +28 -0
- package/src/icu/runtime.js.map +1 -0
- package/src/icu/tokenizer.d.ts +37 -0
- package/src/icu/tokenizer.d.ts.map +1 -0
- package/src/icu/tokenizer.js +187 -0
- package/src/icu/tokenizer.js.map +1 -0
- package/src/icu/validator.d.ts +11 -0
- package/src/icu/validator.d.ts.map +1 -0
- package/src/icu/validator.js +140 -0
- package/src/icu/validator.js.map +1 -0
- package/src/index.d.ts +4 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +4 -0
- package/src/index.js.map +1 -1
- package/src/interfaces/component-config.interface.d.ts +2 -1
- package/src/interfaces/component-config.interface.d.ts.map +1 -1
- package/src/pluralization/index.d.ts +7 -0
- package/src/pluralization/index.d.ts.map +1 -0
- package/src/pluralization/index.js +10 -0
- package/src/pluralization/index.js.map +1 -0
- package/src/pluralization/language-plural-map.d.ts +29 -0
- package/src/pluralization/language-plural-map.d.ts.map +1 -0
- package/src/pluralization/language-plural-map.js +136 -0
- package/src/pluralization/language-plural-map.js.map +1 -0
- package/src/pluralization/plural-categories.d.ts +22 -0
- package/src/pluralization/plural-categories.d.ts.map +1 -0
- package/src/pluralization/plural-categories.js +8 -0
- package/src/pluralization/plural-categories.js.map +1 -0
- package/src/pluralization/plural-rules.d.ts +102 -0
- package/src/pluralization/plural-rules.d.ts.map +1 -0
- package/src/pluralization/plural-rules.js +263 -0
- package/src/pluralization/plural-rules.js.map +1 -0
- package/src/types/index.d.ts +5 -0
- package/src/types/index.d.ts.map +1 -0
- package/src/types/index.js +8 -0
- package/src/types/index.js.map +1 -0
- package/src/types/plural-types.d.ts +17 -0
- package/src/types/plural-types.d.ts.map +1 -0
- package/src/types/plural-types.js +33 -0
- package/src/types/plural-types.js.map +1 -0
- package/src/utils/index.d.ts +1 -6
- package/src/utils/index.d.ts.map +1 -1
- package/src/utils/index.js +1 -6
- package/src/utils/index.js.map +1 -1
- package/src/utils/plural-helpers.d.ts +10 -0
- package/src/utils/plural-helpers.d.ts.map +1 -0
- package/src/utils/plural-helpers.js +19 -0
- package/src/utils/plural-helpers.js.map +1 -0
- package/src/validation/index.d.ts +2 -0
- package/src/validation/index.d.ts.map +1 -0
- package/src/validation/index.js +5 -0
- package/src/validation/index.js.map +1 -0
- package/src/validation/plural-validator.d.ts +23 -0
- package/src/validation/plural-validator.d.ts.map +1 -0
- package/src/validation/plural-validator.js +105 -0
- 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';
|
package/src/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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":";;;
|
|
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;
|
|
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 @@
|
|
|
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"}
|