@digitaldefiance/i18n-lib 3.8.0 → 3.8.2
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/LICENSE +21 -0
- package/README.md +182 -0
- package/package.json +12 -4
- package/src/{active-context.d.ts → active-context.ts} +0 -1
- package/src/builders/i18n-builder.ts +82 -0
- package/src/builders/{index.d.ts → index.ts} +1 -1
- package/src/component-definition.ts +11 -0
- package/src/component-registration.ts +29 -0
- package/src/component-registry.ts +432 -0
- package/src/context-error-type.ts +7 -0
- package/src/core/component-store.ts +241 -0
- package/src/core/context-manager.ts +113 -0
- package/src/core/enum-registry.ts +106 -0
- package/src/core/i18n-engine.ts +710 -0
- package/src/core/{index.d.ts → index.ts} +4 -1
- package/src/core/language-registry.ts +345 -0
- package/src/{core-component-id.d.ts → core-component-id.ts} +1 -2
- package/src/core-i18n.ts +270 -0
- package/src/core-plugin-factory.ts +111 -0
- package/src/core-string-key.ts +59 -0
- package/src/create-translation-adapter.ts +93 -0
- package/src/enum-registry.ts +152 -0
- package/src/errors/{base.d.ts → base.ts} +1 -1
- package/src/errors/context-error.ts +122 -0
- package/src/errors/enhanced-error-base.ts +260 -0
- package/src/errors/handleable.ts +152 -0
- package/src/errors/i18n-error.ts +494 -0
- package/src/errors/{index.d.ts → index.ts} +4 -1
- package/src/errors/simple-typed-error.ts +81 -0
- package/src/errors/{translatable-exports.d.ts → translatable-exports.ts} +1 -1
- package/src/errors/translatable-generic.ts +245 -0
- package/src/errors/translatable-handleable-generic.ts +222 -0
- package/src/errors/translatable.ts +138 -0
- package/src/errors/typed-handleable.ts +138 -0
- package/src/errors/typed.ts +617 -0
- package/src/gender/{gender-categories.d.ts → gender-categories.ts} +6 -2
- package/src/gender/gender-resolver.ts +40 -0
- package/src/gender/{index.d.ts → index.ts} +0 -1
- package/src/global-active-context.ts +266 -0
- package/src/icu/ast.ts +56 -0
- package/src/icu/compiler.ts +96 -0
- package/src/icu/formatter-registry.ts +36 -0
- package/src/icu/formatters/base-formatter.ts +8 -0
- package/src/icu/formatters/date-formatter.ts +30 -0
- package/src/icu/formatters/number-formatter.ts +32 -0
- package/src/icu/formatters/plural-formatter.ts +12 -0
- package/src/icu/formatters/select-formatter.ts +7 -0
- package/src/icu/formatters/selectordinal-formatter.ts +17 -0
- package/src/icu/formatters/time-formatter.ts +30 -0
- package/src/icu/helpers.ts +34 -0
- package/src/icu/parser.ts +242 -0
- package/src/icu/runtime.ts +37 -0
- package/src/icu/tokenizer.ts +212 -0
- package/src/icu/validator.ts +163 -0
- package/src/{index.d.ts → index.ts} +38 -6
- package/src/interfaces/active-context.interface.ts +41 -0
- package/src/interfaces/component-config.interface.ts +17 -0
- package/src/interfaces/engine-config.interface.ts +22 -0
- package/src/interfaces/global-active-context.ts +39 -0
- package/src/interfaces/handleable-error-options.ts +13 -0
- package/src/interfaces/handleable.ts +20 -0
- package/src/interfaces/i18n-engine.interface.ts +57 -0
- package/src/interfaces/{index.d.ts → index.ts} +1 -1
- package/src/interfaces/language-definition.interface.ts +17 -0
- package/src/interfaces/translation-options.interface.ts +15 -0
- package/src/interfaces/validation-result.interface.ts +24 -0
- package/src/language-codes.ts +40 -0
- package/src/language-definition.ts +13 -0
- package/src/plugin-i18n-engine.ts +707 -0
- package/src/pluralization/{index.d.ts → index.ts} +1 -1
- package/src/pluralization/language-plural-map.ts +186 -0
- package/src/pluralization/{plural-categories.d.ts → plural-categories.ts} +5 -3
- package/src/pluralization/plural-rules.ts +228 -0
- package/src/registry-config.ts +16 -0
- package/src/registry-error-type.ts +19 -0
- package/src/registry-error.ts +100 -0
- package/src/strict-types.ts +35 -0
- package/src/strings/de.ts +75 -0
- package/src/strings/en-GB.ts +74 -0
- package/src/strings/en-US.ts +74 -0
- package/src/strings/es.ts +74 -0
- package/src/strings/fr.ts +75 -0
- package/src/strings/ja.ts +73 -0
- package/src/strings/uk.ts +73 -0
- package/src/strings/zh-CN.ts +72 -0
- package/src/template.ts +72 -0
- package/src/translation-engine.ts +18 -0
- package/src/translation-request.ts +12 -0
- package/src/translation-response.ts +8 -0
- package/src/types/engine.ts +55 -0
- package/src/types/{index.d.ts → index.ts} +1 -1
- package/src/types/{plural-types.d.ts → plural-types.ts} +29 -3
- package/src/{types.d.ts → types.ts} +72 -21
- package/src/utils/currency.ts +141 -0
- package/src/utils/html-escape.ts +55 -0
- package/src/utils/{index.d.ts → index.ts} +0 -1
- package/src/utils/lru-cache.ts +76 -0
- package/src/utils/{plural-helpers.d.ts → plural-helpers.ts} +14 -4
- package/src/utils/{safe-object.js → safe-object.ts} +37 -34
- package/src/utils/string-utils.ts +77 -0
- package/src/utils/timezone.ts +76 -0
- package/src/utils/validation.ts +66 -0
- package/src/utils.ts +215 -0
- package/src/validation/{index.d.ts → index.ts} +0 -1
- package/src/validation/plural-validator.ts +168 -0
- package/src/validation-config.ts +11 -0
- package/src/validation-result.ts +12 -0
- package/src/active-context.d.ts.map +0 -1
- package/src/active-context.js +0 -3
- package/src/active-context.js.map +0 -1
- package/src/builders/i18n-builder.d.ts +0 -26
- package/src/builders/i18n-builder.d.ts.map +0 -1
- package/src/builders/i18n-builder.js +0 -70
- package/src/builders/i18n-builder.js.map +0 -1
- package/src/builders/index.d.ts.map +0 -1
- package/src/builders/index.js +0 -8
- package/src/builders/index.js.map +0 -1
- package/src/component-definition.d.ts +0 -12
- package/src/component-definition.d.ts.map +0 -1
- package/src/component-definition.js +0 -3
- package/src/component-definition.js.map +0 -1
- package/src/component-registration.d.ts +0 -22
- package/src/component-registration.d.ts.map +0 -1
- package/src/component-registration.js +0 -3
- package/src/component-registration.js.map +0 -1
- package/src/component-registry.d.ts +0 -102
- package/src/component-registry.d.ts.map +0 -1
- package/src/component-registry.js +0 -282
- package/src/component-registry.js.map +0 -1
- package/src/context-error-type.d.ts +0 -8
- package/src/context-error-type.d.ts.map +0 -1
- package/src/context-error-type.js +0 -12
- package/src/context-error-type.js.map +0 -1
- package/src/core/component-store.d.ts +0 -93
- package/src/core/component-store.d.ts.map +0 -1
- package/src/core/component-store.js +0 -198
- package/src/core/component-store.js.map +0 -1
- package/src/core/context-manager.d.ts +0 -72
- package/src/core/context-manager.d.ts.map +0 -1
- package/src/core/context-manager.js +0 -98
- package/src/core/context-manager.js.map +0 -1
- package/src/core/enum-registry.d.ts +0 -48
- package/src/core/enum-registry.d.ts.map +0 -1
- package/src/core/enum-registry.js +0 -85
- package/src/core/enum-registry.js.map +0 -1
- package/src/core/i18n-engine.d.ts +0 -241
- package/src/core/i18n-engine.d.ts.map +0 -1
- package/src/core/i18n-engine.js +0 -568
- package/src/core/i18n-engine.js.map +0 -1
- package/src/core/index.d.ts.map +0 -1
- package/src/core/index.js +0 -21
- package/src/core/index.js.map +0 -1
- package/src/core/language-registry.d.ts +0 -180
- package/src/core/language-registry.d.ts.map +0 -1
- package/src/core/language-registry.js +0 -298
- package/src/core/language-registry.js.map +0 -1
- package/src/core-component-id.d.ts.map +0 -1
- package/src/core-component-id.js +0 -9
- package/src/core-component-id.js.map +0 -1
- package/src/core-i18n.d.ts +0 -69
- package/src/core-i18n.d.ts.map +0 -1
- package/src/core-i18n.js +0 -219
- package/src/core-i18n.js.map +0 -1
- package/src/core-plugin-factory.d.ts +0 -28
- package/src/core-plugin-factory.d.ts.map +0 -1
- package/src/core-plugin-factory.js +0 -80
- package/src/core-plugin-factory.js.map +0 -1
- package/src/core-string-key.d.ts +0 -52
- package/src/core-string-key.d.ts.map +0 -1
- package/src/core-string-key.js +0 -61
- package/src/core-string-key.js.map +0 -1
- package/src/create-translation-adapter.d.ts +0 -33
- package/src/create-translation-adapter.d.ts.map +0 -1
- package/src/create-translation-adapter.js +0 -72
- package/src/create-translation-adapter.js.map +0 -1
- package/src/enum-registry.d.ts +0 -65
- package/src/enum-registry.d.ts.map +0 -1
- package/src/enum-registry.js +0 -123
- package/src/enum-registry.js.map +0 -1
- package/src/errors/base.d.ts.map +0 -1
- package/src/errors/base.js +0 -11
- package/src/errors/base.js.map +0 -1
- package/src/errors/context-error.d.ts +0 -50
- package/src/errors/context-error.d.ts.map +0 -1
- package/src/errors/context-error.js +0 -93
- package/src/errors/context-error.js.map +0 -1
- package/src/errors/enhanced-error-base.d.ts +0 -125
- package/src/errors/enhanced-error-base.d.ts.map +0 -1
- package/src/errors/enhanced-error-base.js +0 -165
- package/src/errors/enhanced-error-base.js.map +0 -1
- package/src/errors/handleable.d.ts +0 -83
- package/src/errors/handleable.d.ts.map +0 -1
- package/src/errors/handleable.js +0 -136
- package/src/errors/handleable.js.map +0 -1
- package/src/errors/i18n-error.d.ts +0 -211
- package/src/errors/i18n-error.d.ts.map +0 -1
- package/src/errors/i18n-error.js +0 -358
- package/src/errors/i18n-error.js.map +0 -1
- package/src/errors/index.d.ts.map +0 -1
- package/src/errors/index.js +0 -17
- package/src/errors/index.js.map +0 -1
- package/src/errors/simple-typed-error.d.ts +0 -53
- package/src/errors/simple-typed-error.d.ts.map +0 -1
- package/src/errors/simple-typed-error.js +0 -51
- package/src/errors/simple-typed-error.js.map +0 -1
- package/src/errors/translatable-exports.d.ts.map +0 -1
- package/src/errors/translatable-exports.js +0 -15
- package/src/errors/translatable-exports.js.map +0 -1
- package/src/errors/translatable-generic.d.ts +0 -87
- package/src/errors/translatable-generic.d.ts.map +0 -1
- package/src/errors/translatable-generic.js +0 -139
- package/src/errors/translatable-generic.js.map +0 -1
- package/src/errors/translatable-handleable-generic.d.ts +0 -116
- package/src/errors/translatable-handleable-generic.d.ts.map +0 -1
- package/src/errors/translatable-handleable-generic.js +0 -121
- package/src/errors/translatable-handleable-generic.js.map +0 -1
- package/src/errors/translatable.d.ts +0 -63
- package/src/errors/translatable.d.ts.map +0 -1
- package/src/errors/translatable.js +0 -85
- package/src/errors/translatable.js.map +0 -1
- package/src/errors/typed-handleable.d.ts +0 -62
- package/src/errors/typed-handleable.d.ts.map +0 -1
- package/src/errors/typed-handleable.js +0 -108
- package/src/errors/typed-handleable.js.map +0 -1
- package/src/errors/typed.d.ts +0 -206
- package/src/errors/typed.d.ts.map +0 -1
- package/src/errors/typed.js +0 -458
- package/src/errors/typed.js.map +0 -1
- package/src/gender/gender-categories.d.ts.map +0 -1
- package/src/gender/gender-categories.js +0 -15
- package/src/gender/gender-categories.js.map +0 -1
- package/src/gender/gender-resolver.d.ts +0 -14
- package/src/gender/gender-resolver.d.ts.map +0 -1
- package/src/gender/gender-resolver.js +0 -35
- package/src/gender/gender-resolver.js.map +0 -1
- package/src/gender/index.d.ts.map +0 -1
- package/src/gender/index.js +0 -6
- package/src/gender/index.js.map +0 -1
- package/src/global-active-context.d.ts +0 -50
- package/src/global-active-context.d.ts.map +0 -1
- package/src/global-active-context.js +0 -185
- package/src/global-active-context.js.map +0 -1
- package/src/icu/ast.d.ts +0 -48
- package/src/icu/ast.d.ts.map +0 -1
- package/src/icu/ast.js +0 -16
- package/src/icu/ast.js.map +0 -1
- package/src/icu/compiler.d.ts +0 -16
- package/src/icu/compiler.d.ts.map +0 -1
- package/src/icu/compiler.js +0 -87
- package/src/icu/compiler.js.map +0 -1
- package/src/icu/formatter-registry.d.ts +0 -10
- package/src/icu/formatter-registry.d.ts.map +0 -1
- package/src/icu/formatter-registry.js +0 -34
- package/src/icu/formatter-registry.js.map +0 -1
- package/src/icu/formatters/base-formatter.d.ts +0 -8
- package/src/icu/formatters/base-formatter.d.ts.map +0 -1
- package/src/icu/formatters/base-formatter.js +0 -3
- package/src/icu/formatters/base-formatter.js.map +0 -1
- package/src/icu/formatters/date-formatter.d.ts +0 -5
- package/src/icu/formatters/date-formatter.d.ts.map +0 -1
- package/src/icu/formatters/date-formatter.js +0 -31
- package/src/icu/formatters/date-formatter.js.map +0 -1
- package/src/icu/formatters/number-formatter.d.ts +0 -5
- package/src/icu/formatters/number-formatter.d.ts.map +0 -1
- package/src/icu/formatters/number-formatter.js +0 -33
- package/src/icu/formatters/number-formatter.js.map +0 -1
- package/src/icu/formatters/plural-formatter.d.ts +0 -5
- package/src/icu/formatters/plural-formatter.d.ts.map +0 -1
- package/src/icu/formatters/plural-formatter.js +0 -15
- package/src/icu/formatters/plural-formatter.js.map +0 -1
- package/src/icu/formatters/select-formatter.d.ts +0 -5
- package/src/icu/formatters/select-formatter.d.ts.map +0 -1
- package/src/icu/formatters/select-formatter.js +0 -10
- package/src/icu/formatters/select-formatter.js.map +0 -1
- package/src/icu/formatters/selectordinal-formatter.d.ts +0 -5
- package/src/icu/formatters/selectordinal-formatter.d.ts.map +0 -1
- package/src/icu/formatters/selectordinal-formatter.js +0 -22
- package/src/icu/formatters/selectordinal-formatter.js.map +0 -1
- package/src/icu/formatters/time-formatter.d.ts +0 -5
- package/src/icu/formatters/time-formatter.d.ts.map +0 -1
- package/src/icu/formatters/time-formatter.js +0 -31
- package/src/icu/formatters/time-formatter.js.map +0 -1
- package/src/icu/helpers.d.ts +0 -9
- package/src/icu/helpers.d.ts.map +0 -1
- package/src/icu/helpers.js +0 -31
- package/src/icu/helpers.js.map +0 -1
- package/src/icu/parser.d.ts +0 -31
- package/src/icu/parser.d.ts.map +0 -1
- package/src/icu/parser.js +0 -203
- package/src/icu/parser.js.map +0 -1
- package/src/icu/runtime.d.ts +0 -10
- package/src/icu/runtime.d.ts.map +0 -1
- package/src/icu/runtime.js +0 -33
- package/src/icu/runtime.js.map +0 -1
- package/src/icu/tokenizer.d.ts +0 -37
- package/src/icu/tokenizer.d.ts.map +0 -1
- package/src/icu/tokenizer.js +0 -187
- package/src/icu/tokenizer.js.map +0 -1
- package/src/icu/validator.d.ts +0 -11
- package/src/icu/validator.d.ts.map +0 -1
- package/src/icu/validator.js +0 -140
- package/src/icu/validator.js.map +0 -1
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -76
- package/src/index.js.map +0 -1
- package/src/interfaces/active-context.interface.d.ts +0 -36
- package/src/interfaces/active-context.interface.d.ts.map +0 -1
- package/src/interfaces/active-context.interface.js +0 -3
- package/src/interfaces/active-context.interface.js.map +0 -1
- package/src/interfaces/component-config.interface.d.ts +0 -16
- package/src/interfaces/component-config.interface.d.ts.map +0 -1
- package/src/interfaces/component-config.interface.js +0 -6
- package/src/interfaces/component-config.interface.js.map +0 -1
- package/src/interfaces/engine-config.interface.d.ts +0 -22
- package/src/interfaces/engine-config.interface.d.ts.map +0 -1
- package/src/interfaces/engine-config.interface.js +0 -6
- package/src/interfaces/engine-config.interface.js.map +0 -1
- package/src/interfaces/global-active-context.d.ts +0 -23
- package/src/interfaces/global-active-context.d.ts.map +0 -1
- package/src/interfaces/global-active-context.js +0 -3
- package/src/interfaces/global-active-context.js.map +0 -1
- package/src/interfaces/handleable-error-options.d.ts +0 -14
- package/src/interfaces/handleable-error-options.d.ts.map +0 -1
- package/src/interfaces/handleable-error-options.js +0 -3
- package/src/interfaces/handleable-error-options.js.map +0 -1
- package/src/interfaces/handleable.d.ts +0 -21
- package/src/interfaces/handleable.d.ts.map +0 -1
- package/src/interfaces/handleable.js +0 -3
- package/src/interfaces/handleable.js.map +0 -1
- package/src/interfaces/i18n-engine.interface.d.ts +0 -46
- package/src/interfaces/i18n-engine.interface.d.ts.map +0 -1
- package/src/interfaces/i18n-engine.interface.js +0 -6
- package/src/interfaces/i18n-engine.interface.js.map +0 -1
- package/src/interfaces/index.d.ts.map +0 -1
- package/src/interfaces/index.js +0 -7
- package/src/interfaces/index.js.map +0 -1
- package/src/interfaces/language-definition.interface.d.ts +0 -17
- package/src/interfaces/language-definition.interface.d.ts.map +0 -1
- package/src/interfaces/language-definition.interface.js +0 -6
- package/src/interfaces/language-definition.interface.js.map +0 -1
- package/src/interfaces/translation-options.interface.d.ts +0 -15
- package/src/interfaces/translation-options.interface.d.ts.map +0 -1
- package/src/interfaces/translation-options.interface.js +0 -6
- package/src/interfaces/translation-options.interface.js.map +0 -1
- package/src/interfaces/validation-result.interface.d.ts +0 -24
- package/src/interfaces/validation-result.interface.d.ts.map +0 -1
- package/src/interfaces/validation-result.interface.js +0 -6
- package/src/interfaces/validation-result.interface.js.map +0 -1
- package/src/language-codes.d.ts +0 -28
- package/src/language-codes.d.ts.map +0 -1
- package/src/language-codes.js +0 -32
- package/src/language-codes.js.map +0 -1
- package/src/language-definition.d.ts +0 -14
- package/src/language-definition.d.ts.map +0 -1
- package/src/language-definition.js +0 -3
- package/src/language-definition.js.map +0 -1
- package/src/plugin-i18n-engine.d.ts +0 -164
- package/src/plugin-i18n-engine.d.ts.map +0 -1
- package/src/plugin-i18n-engine.js +0 -493
- package/src/plugin-i18n-engine.js.map +0 -1
- package/src/pluralization/index.d.ts.map +0 -1
- package/src/pluralization/index.js +0 -10
- package/src/pluralization/index.js.map +0 -1
- package/src/pluralization/language-plural-map.d.ts +0 -29
- package/src/pluralization/language-plural-map.d.ts.map +0 -1
- package/src/pluralization/language-plural-map.js +0 -155
- package/src/pluralization/language-plural-map.js.map +0 -1
- package/src/pluralization/plural-categories.d.ts.map +0 -1
- package/src/pluralization/plural-categories.js +0 -8
- package/src/pluralization/plural-categories.js.map +0 -1
- package/src/pluralization/plural-rules.d.ts +0 -102
- package/src/pluralization/plural-rules.d.ts.map +0 -1
- package/src/pluralization/plural-rules.js +0 -263
- package/src/pluralization/plural-rules.js.map +0 -1
- package/src/registry-config.d.ts +0 -16
- package/src/registry-config.d.ts.map +0 -1
- package/src/registry-config.js +0 -3
- package/src/registry-config.js.map +0 -1
- package/src/registry-error-type.d.ts +0 -20
- package/src/registry-error-type.d.ts.map +0 -1
- package/src/registry-error-type.js +0 -24
- package/src/registry-error-type.js.map +0 -1
- package/src/registry-error.d.ts +0 -25
- package/src/registry-error.d.ts.map +0 -1
- package/src/registry-error.js +0 -63
- package/src/registry-error.js.map +0 -1
- package/src/strict-types.d.ts +0 -19
- package/src/strict-types.d.ts.map +0 -1
- package/src/strict-types.js +0 -18
- package/src/strict-types.js.map +0 -1
- package/src/strings/de.d.ts +0 -3
- package/src/strings/de.d.ts.map +0 -1
- package/src/strings/de.js +0 -57
- package/src/strings/de.js.map +0 -1
- package/src/strings/en-GB.d.ts +0 -3
- package/src/strings/en-GB.d.ts.map +0 -1
- package/src/strings/en-GB.js +0 -57
- package/src/strings/en-GB.js.map +0 -1
- package/src/strings/en-US.d.ts +0 -3
- package/src/strings/en-US.d.ts.map +0 -1
- package/src/strings/en-US.js +0 -57
- package/src/strings/en-US.js.map +0 -1
- package/src/strings/es.d.ts +0 -3
- package/src/strings/es.d.ts.map +0 -1
- package/src/strings/es.js +0 -57
- package/src/strings/es.js.map +0 -1
- package/src/strings/fr.d.ts +0 -3
- package/src/strings/fr.d.ts.map +0 -1
- package/src/strings/fr.js +0 -57
- package/src/strings/fr.js.map +0 -1
- package/src/strings/ja.d.ts +0 -3
- package/src/strings/ja.d.ts.map +0 -1
- package/src/strings/ja.js +0 -57
- package/src/strings/ja.js.map +0 -1
- package/src/strings/uk.d.ts +0 -3
- package/src/strings/uk.d.ts.map +0 -1
- package/src/strings/uk.js +0 -57
- package/src/strings/uk.js.map +0 -1
- package/src/strings/zh-CN.d.ts +0 -3
- package/src/strings/zh-CN.d.ts.map +0 -1
- package/src/strings/zh-CN.js +0 -57
- package/src/strings/zh-CN.js.map +0 -1
- package/src/template.d.ts +0 -13
- package/src/template.d.ts.map +0 -1
- package/src/template.js +0 -40
- package/src/template.js.map +0 -1
- package/src/translation-engine.d.ts +0 -9
- package/src/translation-engine.d.ts.map +0 -1
- package/src/translation-engine.js +0 -3
- package/src/translation-engine.js.map +0 -1
- package/src/translation-request.d.ts +0 -10
- package/src/translation-request.d.ts.map +0 -1
- package/src/translation-request.js +0 -3
- package/src/translation-request.js.map +0 -1
- package/src/translation-response.d.ts +0 -9
- package/src/translation-response.d.ts.map +0 -1
- package/src/translation-response.js +0 -3
- package/src/translation-response.js.map +0 -1
- package/src/types/engine.d.ts +0 -47
- package/src/types/engine.d.ts.map +0 -1
- package/src/types/engine.js +0 -8
- package/src/types/engine.js.map +0 -1
- package/src/types/index.d.ts.map +0 -1
- package/src/types/index.js +0 -9
- package/src/types/index.js.map +0 -1
- package/src/types/plural-types.d.ts.map +0 -1
- package/src/types/plural-types.js +0 -39
- package/src/types/plural-types.js.map +0 -1
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -23
- package/src/types.js.map +0 -1
- package/src/utils/currency.d.ts +0 -81
- package/src/utils/currency.d.ts.map +0 -1
- package/src/utils/currency.js +0 -99
- package/src/utils/currency.js.map +0 -1
- package/src/utils/html-escape.d.ts +0 -22
- package/src/utils/html-escape.d.ts.map +0 -1
- package/src/utils/html-escape.js +0 -53
- package/src/utils/html-escape.js.map +0 -1
- package/src/utils/index.d.ts.map +0 -1
- package/src/utils/index.js +0 -12
- package/src/utils/index.js.map +0 -1
- package/src/utils/lru-cache.d.ts +0 -42
- package/src/utils/lru-cache.d.ts.map +0 -1
- package/src/utils/lru-cache.js +0 -73
- package/src/utils/lru-cache.js.map +0 -1
- package/src/utils/plural-helpers.d.ts.map +0 -1
- package/src/utils/plural-helpers.js +0 -35
- package/src/utils/plural-helpers.js.map +0 -1
- package/src/utils/safe-object.d.ts +0 -39
- package/src/utils/safe-object.d.ts.map +0 -1
- package/src/utils/safe-object.js.map +0 -1
- package/src/utils/string-utils.d.ts +0 -28
- package/src/utils/string-utils.d.ts.map +0 -1
- package/src/utils/string-utils.js +0 -63
- package/src/utils/string-utils.js.map +0 -1
- package/src/utils/timezone.d.ts +0 -50
- package/src/utils/timezone.d.ts.map +0 -1
- package/src/utils/timezone.js +0 -74
- package/src/utils/timezone.js.map +0 -1
- package/src/utils/validation.d.ts +0 -40
- package/src/utils/validation.d.ts.map +0 -1
- package/src/utils/validation.js +0 -69
- package/src/utils/validation.js.map +0 -1
- package/src/utils.d.ts +0 -65
- package/src/utils.d.ts.map +0 -1
- package/src/utils.js +0 -129
- package/src/utils.js.map +0 -1
- package/src/validation/index.d.ts.map +0 -1
- package/src/validation/index.js +0 -5
- package/src/validation/index.js.map +0 -1
- package/src/validation/plural-validator.d.ts +0 -46
- package/src/validation/plural-validator.d.ts.map +0 -1
- package/src/validation/plural-validator.js +0 -123
- package/src/validation/plural-validator.js.map +0 -1
- package/src/validation-config.d.ts +0 -12
- package/src/validation-config.d.ts.map +0 -1
- package/src/validation-config.js +0 -3
- package/src/validation-config.js.map +0 -1
- package/src/validation-result.d.ts +0 -13
- package/src/validation-result.d.ts.map +0 -1
- package/src/validation-result.js +0 -3
- package/src/validation-result.js.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { CoreStringKey } from '../core-string-key';
|
|
2
|
+
|
|
3
|
+
export const BritishEnglishStrings: Record<CoreStringKey, string> = {
|
|
4
|
+
// Common/General (mostly same as US English)
|
|
5
|
+
[CoreStringKey.Common_Yes]: 'Yes',
|
|
6
|
+
[CoreStringKey.Common_No]: 'No',
|
|
7
|
+
[CoreStringKey.Common_Cancel]: 'Cancel',
|
|
8
|
+
[CoreStringKey.Common_OK]: 'OK',
|
|
9
|
+
[CoreStringKey.Common_Save]: 'Save',
|
|
10
|
+
[CoreStringKey.Common_Delete]: 'Delete',
|
|
11
|
+
[CoreStringKey.Common_Edit]: 'Edit',
|
|
12
|
+
[CoreStringKey.Common_Create]: 'Create',
|
|
13
|
+
[CoreStringKey.Common_Update]: 'Update',
|
|
14
|
+
[CoreStringKey.Common_Loading]: 'Loading...',
|
|
15
|
+
[CoreStringKey.Common_Error]: 'Error',
|
|
16
|
+
[CoreStringKey.Common_Success]: 'Success',
|
|
17
|
+
[CoreStringKey.Common_Warning]: 'Warning',
|
|
18
|
+
[CoreStringKey.Common_Info]: 'Information',
|
|
19
|
+
[CoreStringKey.Common_Disposed]: 'Object has been disposed',
|
|
20
|
+
[CoreStringKey.Common_Test]: 'Test',
|
|
21
|
+
|
|
22
|
+
// Error Messages
|
|
23
|
+
[CoreStringKey.Error_InvalidInput]: 'Invalid input provided',
|
|
24
|
+
[CoreStringKey.Error_NetworkError]: 'Network connection error',
|
|
25
|
+
[CoreStringKey.Error_NotFound]: 'Resource not found',
|
|
26
|
+
[CoreStringKey.Error_AccessDenied]: 'Access denied',
|
|
27
|
+
[CoreStringKey.Error_InternalServer]: 'Internal server error',
|
|
28
|
+
[CoreStringKey.Error_ValidationFailed]: 'Validation failed',
|
|
29
|
+
[CoreStringKey.Error_RequiredField]: 'This field is required',
|
|
30
|
+
[CoreStringKey.Error_InvalidContext]: 'Invalid context',
|
|
31
|
+
[CoreStringKey.Error_InvalidContextTemplate]:
|
|
32
|
+
'Invalid context: {contextKey}',
|
|
33
|
+
[CoreStringKey.Error_MissingTranslationKeyTemplate]:
|
|
34
|
+
'Missing translation key: {stringKey}',
|
|
35
|
+
[CoreStringKey.Error_InvalidCurrencyCodeTemplate]: 'Invalid currency code: {value}',
|
|
36
|
+
|
|
37
|
+
// Registry Error Templates
|
|
38
|
+
[CoreStringKey.Error_ComponentNotFoundTemplate]:
|
|
39
|
+
'Component "{componentId}" not found',
|
|
40
|
+
[CoreStringKey.Error_LanguageNotFoundTemplate]:
|
|
41
|
+
'Language "{language}" not found',
|
|
42
|
+
[CoreStringKey.Error_StringKeyNotFoundTemplate]:
|
|
43
|
+
'String key "{stringKey}" not found for component "{componentId}"',
|
|
44
|
+
[CoreStringKey.Error_IncompleteRegistrationTemplate]:
|
|
45
|
+
'Incomplete registration for component "{componentId}": missing {missingCount} strings',
|
|
46
|
+
[CoreStringKey.Error_DuplicateComponentTemplate]:
|
|
47
|
+
'Component "{componentId}" is already registered',
|
|
48
|
+
[CoreStringKey.Error_DuplicateLanguageTemplate]:
|
|
49
|
+
'Language "{languageId}" is already registered',
|
|
50
|
+
[CoreStringKey.Error_ValidationFailedTemplate]:
|
|
51
|
+
'Validation failed for component "{componentId}": {errorCount} errors',
|
|
52
|
+
|
|
53
|
+
// System Messages
|
|
54
|
+
[CoreStringKey.System_Welcome]: 'Welcome',
|
|
55
|
+
[CoreStringKey.System_Goodbye]: 'Goodbye',
|
|
56
|
+
[CoreStringKey.System_PleaseWait]: 'Please wait...',
|
|
57
|
+
[CoreStringKey.System_ProcessingRequest]: 'Processing your request...',
|
|
58
|
+
[CoreStringKey.System_OperationComplete]:
|
|
59
|
+
'Operation completed successfully',
|
|
60
|
+
[CoreStringKey.System_NoDataAvailable]: 'No data available',
|
|
61
|
+
|
|
62
|
+
[CoreStringKey.Error_InstanceAlreadyExistsTemplate]:
|
|
63
|
+
"Instance with key '{key}' already exists",
|
|
64
|
+
[CoreStringKey.Error_InstanceNotFoundTemplate]:
|
|
65
|
+
"Instance with key '{key}' not found",
|
|
66
|
+
[CoreStringKey.Error_MissingStringCollectionTemplate]:
|
|
67
|
+
'Missing string collection for language: {language}',
|
|
68
|
+
[CoreStringKey.Error_MissingTranslationTemplate]:
|
|
69
|
+
"Missing translation for key '{key}' in language '{language}'",
|
|
70
|
+
[CoreStringKey.Error_DefaultLanguageNoCollectionTemplate]:
|
|
71
|
+
"Default language '{language}' has no string collection",
|
|
72
|
+
[CoreStringKey.Error_MissingTranslationKeyForTypeTemplate]:
|
|
73
|
+
'Missing translation key for type: {type}',
|
|
74
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { CoreStringKey } from '../core-string-key';
|
|
2
|
+
|
|
3
|
+
export const americanEnglishString: Record<CoreStringKey, string> = {
|
|
4
|
+
// Common/General
|
|
5
|
+
[CoreStringKey.Common_Yes]: 'Yes',
|
|
6
|
+
[CoreStringKey.Common_No]: 'No',
|
|
7
|
+
[CoreStringKey.Common_Cancel]: 'Cancel',
|
|
8
|
+
[CoreStringKey.Common_OK]: 'OK',
|
|
9
|
+
[CoreStringKey.Common_Save]: 'Save',
|
|
10
|
+
[CoreStringKey.Common_Delete]: 'Delete',
|
|
11
|
+
[CoreStringKey.Common_Edit]: 'Edit',
|
|
12
|
+
[CoreStringKey.Common_Create]: 'Create',
|
|
13
|
+
[CoreStringKey.Common_Update]: 'Update',
|
|
14
|
+
[CoreStringKey.Common_Loading]: 'Loading...',
|
|
15
|
+
[CoreStringKey.Common_Error]: 'Error',
|
|
16
|
+
[CoreStringKey.Common_Success]: 'Success',
|
|
17
|
+
[CoreStringKey.Common_Warning]: 'Warning',
|
|
18
|
+
[CoreStringKey.Common_Info]: 'Information',
|
|
19
|
+
[CoreStringKey.Common_Disposed]: 'Object has been disposed',
|
|
20
|
+
[CoreStringKey.Common_Test]: 'Test',
|
|
21
|
+
|
|
22
|
+
// Error Messages
|
|
23
|
+
[CoreStringKey.Error_InvalidInput]: 'Invalid input provided',
|
|
24
|
+
[CoreStringKey.Error_NetworkError]: 'Network connection error',
|
|
25
|
+
[CoreStringKey.Error_NotFound]: 'Resource not found',
|
|
26
|
+
[CoreStringKey.Error_AccessDenied]: 'Access denied',
|
|
27
|
+
[CoreStringKey.Error_InternalServer]: 'Internal server error',
|
|
28
|
+
[CoreStringKey.Error_ValidationFailed]: 'Validation failed',
|
|
29
|
+
[CoreStringKey.Error_RequiredField]: 'This field is required',
|
|
30
|
+
[CoreStringKey.Error_InvalidContext]: 'Invalid context',
|
|
31
|
+
[CoreStringKey.Error_InvalidContextTemplate]:
|
|
32
|
+
'Invalid context: {contextKey}',
|
|
33
|
+
[CoreStringKey.Error_MissingTranslationKeyTemplate]:
|
|
34
|
+
'Missing translation key: {stringKey}',
|
|
35
|
+
[CoreStringKey.Error_InvalidCurrencyCodeTemplate]: 'Invalid currency code: {value}',
|
|
36
|
+
|
|
37
|
+
// Registry Error Templates
|
|
38
|
+
[CoreStringKey.Error_ComponentNotFoundTemplate]:
|
|
39
|
+
'Component "{componentId}" not found',
|
|
40
|
+
[CoreStringKey.Error_LanguageNotFoundTemplate]:
|
|
41
|
+
'Language "{language}" not found',
|
|
42
|
+
[CoreStringKey.Error_StringKeyNotFoundTemplate]:
|
|
43
|
+
'String key "{stringKey}" not found for component "{componentId}"',
|
|
44
|
+
[CoreStringKey.Error_IncompleteRegistrationTemplate]:
|
|
45
|
+
'Incomplete registration for component "{componentId}": missing {missingCount} strings',
|
|
46
|
+
[CoreStringKey.Error_DuplicateComponentTemplate]:
|
|
47
|
+
'Component "{componentId}" is already registered',
|
|
48
|
+
[CoreStringKey.Error_DuplicateLanguageTemplate]:
|
|
49
|
+
'Language "{languageId}" is already registered',
|
|
50
|
+
[CoreStringKey.Error_ValidationFailedTemplate]:
|
|
51
|
+
'Validation failed for component "{componentId}": {errorCount} errors',
|
|
52
|
+
|
|
53
|
+
// System Messages
|
|
54
|
+
[CoreStringKey.System_Welcome]: 'Welcome',
|
|
55
|
+
[CoreStringKey.System_Goodbye]: 'Goodbye',
|
|
56
|
+
[CoreStringKey.System_PleaseWait]: 'Please wait...',
|
|
57
|
+
[CoreStringKey.System_ProcessingRequest]: 'Processing your request...',
|
|
58
|
+
[CoreStringKey.System_OperationComplete]:
|
|
59
|
+
'Operation completed successfully',
|
|
60
|
+
[CoreStringKey.System_NoDataAvailable]: 'No data available',
|
|
61
|
+
|
|
62
|
+
[CoreStringKey.Error_InstanceAlreadyExistsTemplate]:
|
|
63
|
+
"Instance with key '{key}' already exists",
|
|
64
|
+
[CoreStringKey.Error_InstanceNotFoundTemplate]:
|
|
65
|
+
"Instance with key '{key}' not found",
|
|
66
|
+
[CoreStringKey.Error_MissingStringCollectionTemplate]:
|
|
67
|
+
'Missing string collection for language: {language}',
|
|
68
|
+
[CoreStringKey.Error_MissingTranslationTemplate]:
|
|
69
|
+
"Missing translation for key '{key}' in language '{language}'",
|
|
70
|
+
[CoreStringKey.Error_DefaultLanguageNoCollectionTemplate]:
|
|
71
|
+
"Default language '{language}' has no string collection",
|
|
72
|
+
[CoreStringKey.Error_MissingTranslationKeyForTypeTemplate]:
|
|
73
|
+
'Missing translation key for type: {type}',
|
|
74
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { CoreStringKey } from '../core-string-key';
|
|
2
|
+
|
|
3
|
+
export const spanishStrings: Record<CoreStringKey, string> = {
|
|
4
|
+
// Common/General
|
|
5
|
+
[CoreStringKey.Common_Yes]: 'Sí',
|
|
6
|
+
[CoreStringKey.Common_No]: 'No',
|
|
7
|
+
[CoreStringKey.Common_Cancel]: 'Cancelar',
|
|
8
|
+
[CoreStringKey.Common_OK]: 'OK',
|
|
9
|
+
[CoreStringKey.Common_Save]: 'Guardar',
|
|
10
|
+
[CoreStringKey.Common_Delete]: 'Eliminar',
|
|
11
|
+
[CoreStringKey.Common_Edit]: 'Editar',
|
|
12
|
+
[CoreStringKey.Common_Create]: 'Crear',
|
|
13
|
+
[CoreStringKey.Common_Update]: 'Actualizar',
|
|
14
|
+
[CoreStringKey.Common_Loading]: 'Cargando...',
|
|
15
|
+
[CoreStringKey.Common_Error]: 'Error',
|
|
16
|
+
[CoreStringKey.Common_Success]: 'Éxito',
|
|
17
|
+
[CoreStringKey.Common_Warning]: 'Advertencia',
|
|
18
|
+
[CoreStringKey.Common_Info]: 'Información',
|
|
19
|
+
[CoreStringKey.Common_Disposed]: 'El objeto ha sido eliminado',
|
|
20
|
+
[CoreStringKey.Common_Test]: 'Test',
|
|
21
|
+
|
|
22
|
+
// Error Messages
|
|
23
|
+
[CoreStringKey.Error_InvalidInput]: 'Entrada inválida proporcionada',
|
|
24
|
+
[CoreStringKey.Error_NetworkError]: 'Error de conexión de red',
|
|
25
|
+
[CoreStringKey.Error_NotFound]: 'Recurso no encontrado',
|
|
26
|
+
[CoreStringKey.Error_AccessDenied]: 'Acceso denegado',
|
|
27
|
+
[CoreStringKey.Error_InternalServer]: 'Error interno del servidor',
|
|
28
|
+
[CoreStringKey.Error_ValidationFailed]: 'Error de validación',
|
|
29
|
+
[CoreStringKey.Error_RequiredField]: 'Este campo es obligatorio',
|
|
30
|
+
[CoreStringKey.Error_InvalidContext]: 'Contexto inválido',
|
|
31
|
+
[CoreStringKey.Error_InvalidContextTemplate]:
|
|
32
|
+
'Contexte invalide : {contextKey}',
|
|
33
|
+
[CoreStringKey.Error_MissingTranslationKeyTemplate]:
|
|
34
|
+
'Clave de traducción faltante: {stringKey}',
|
|
35
|
+
[CoreStringKey.Error_InvalidCurrencyCodeTemplate]: 'Código de divisa inválido: {value}',
|
|
36
|
+
|
|
37
|
+
// Registry Error Templates
|
|
38
|
+
[CoreStringKey.Error_ComponentNotFoundTemplate]:
|
|
39
|
+
'Componente "{componentId}" no encontrado',
|
|
40
|
+
[CoreStringKey.Error_LanguageNotFoundTemplate]:
|
|
41
|
+
'Idioma "{language}" no encontrado',
|
|
42
|
+
[CoreStringKey.Error_StringKeyNotFoundTemplate]:
|
|
43
|
+
'Clave de cadena "{stringKey}" no encontrada para el componente "{componentId}"',
|
|
44
|
+
[CoreStringKey.Error_IncompleteRegistrationTemplate]:
|
|
45
|
+
'Registro incompleto para el componente "{componentId}": faltan {missingCount} cadenas',
|
|
46
|
+
[CoreStringKey.Error_DuplicateComponentTemplate]:
|
|
47
|
+
'El componente "{componentId}" ya está registrado',
|
|
48
|
+
[CoreStringKey.Error_DuplicateLanguageTemplate]:
|
|
49
|
+
'El idioma "{languageId}" ya está registrado',
|
|
50
|
+
[CoreStringKey.Error_ValidationFailedTemplate]:
|
|
51
|
+
'Error de validación para el componente "{componentId}": {errorCount} errores',
|
|
52
|
+
|
|
53
|
+
// System Messages
|
|
54
|
+
[CoreStringKey.System_Welcome]: 'Bienvenido',
|
|
55
|
+
[CoreStringKey.System_Goodbye]: 'Adiós',
|
|
56
|
+
[CoreStringKey.System_PleaseWait]: 'Por favor espere...',
|
|
57
|
+
[CoreStringKey.System_ProcessingRequest]: 'Procesando su solicitud...',
|
|
58
|
+
[CoreStringKey.System_OperationComplete]:
|
|
59
|
+
'Operación completada exitosamente',
|
|
60
|
+
[CoreStringKey.System_NoDataAvailable]: 'No hay datos disponibles',
|
|
61
|
+
|
|
62
|
+
[CoreStringKey.Error_InstanceAlreadyExistsTemplate]:
|
|
63
|
+
"La instancia con clave '{key}' ya existe",
|
|
64
|
+
[CoreStringKey.Error_InstanceNotFoundTemplate]:
|
|
65
|
+
"Instancia con clave '{key}' no encontrada",
|
|
66
|
+
[CoreStringKey.Error_MissingStringCollectionTemplate]:
|
|
67
|
+
'Falta colección de cadenas para el idioma: {language}',
|
|
68
|
+
[CoreStringKey.Error_MissingTranslationTemplate]:
|
|
69
|
+
"Falta traducción para la clave '{key}' en el idioma '{language}'",
|
|
70
|
+
[CoreStringKey.Error_DefaultLanguageNoCollectionTemplate]:
|
|
71
|
+
"El idioma predeterminado '{language}' no tiene colección de cadenas",
|
|
72
|
+
[CoreStringKey.Error_MissingTranslationKeyForTypeTemplate]:
|
|
73
|
+
'Falta clave de traducción para el tipo: {type}',
|
|
74
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { CoreStringKey } from '../core-string-key';
|
|
2
|
+
|
|
3
|
+
export const frenchStrings: Record<CoreStringKey, string> = {
|
|
4
|
+
// Common/General
|
|
5
|
+
[CoreStringKey.Common_Yes]: 'Oui',
|
|
6
|
+
[CoreStringKey.Common_No]: 'Non',
|
|
7
|
+
[CoreStringKey.Common_Cancel]: 'Annuler',
|
|
8
|
+
[CoreStringKey.Common_OK]: 'OK',
|
|
9
|
+
[CoreStringKey.Common_Save]: 'Enregistrer',
|
|
10
|
+
[CoreStringKey.Common_Delete]: 'Supprimer',
|
|
11
|
+
[CoreStringKey.Common_Edit]: 'Modifier',
|
|
12
|
+
[CoreStringKey.Common_Create]: 'Créer',
|
|
13
|
+
[CoreStringKey.Common_Update]: 'Mettre à jour',
|
|
14
|
+
[CoreStringKey.Common_Loading]: 'Chargement...',
|
|
15
|
+
[CoreStringKey.Common_Error]: 'Erreur',
|
|
16
|
+
[CoreStringKey.Common_Success]: 'Succès',
|
|
17
|
+
[CoreStringKey.Common_Warning]: 'Avertissement',
|
|
18
|
+
[CoreStringKey.Common_Info]: 'Information',
|
|
19
|
+
[CoreStringKey.Common_Disposed]: "L'objet a été disposé",
|
|
20
|
+
[CoreStringKey.Common_Test]: 'Test',
|
|
21
|
+
|
|
22
|
+
// Error Messages
|
|
23
|
+
[CoreStringKey.Error_InvalidInput]: 'Entrée invalide fournie',
|
|
24
|
+
[CoreStringKey.Error_NetworkError]: 'Erreur de connexion réseau',
|
|
25
|
+
[CoreStringKey.Error_NotFound]: 'Ressource non trouvée',
|
|
26
|
+
[CoreStringKey.Error_AccessDenied]: 'Accès refusé',
|
|
27
|
+
[CoreStringKey.Error_InternalServer]: 'Erreur interne du serveur',
|
|
28
|
+
[CoreStringKey.Error_ValidationFailed]: 'Échec de la validation',
|
|
29
|
+
[CoreStringKey.Error_RequiredField]: 'Ce champ est obligatoire',
|
|
30
|
+
[CoreStringKey.Error_InvalidContext]: 'Contexte invalide',
|
|
31
|
+
[CoreStringKey.Error_InvalidContextTemplate]:
|
|
32
|
+
'Contexte invalide : {contextKey}',
|
|
33
|
+
[CoreStringKey.Error_MissingTranslationKeyTemplate]:
|
|
34
|
+
'Clé de traduction manquante : {stringKey}',
|
|
35
|
+
[CoreStringKey.Error_InvalidCurrencyCodeTemplate]: 'Code de devise invalide : {value}',
|
|
36
|
+
|
|
37
|
+
// Registry Error Templates
|
|
38
|
+
[CoreStringKey.Error_ComponentNotFoundTemplate]:
|
|
39
|
+
'Composant "{componentId}" non trouvé',
|
|
40
|
+
[CoreStringKey.Error_LanguageNotFoundTemplate]:
|
|
41
|
+
'Langue "{language}" non trouvée',
|
|
42
|
+
[CoreStringKey.Error_StringKeyNotFoundTemplate]:
|
|
43
|
+
'Clé de chaîne "{stringKey}" non trouvée pour le composant "{componentId}"',
|
|
44
|
+
[CoreStringKey.Error_IncompleteRegistrationTemplate]:
|
|
45
|
+
'Enregistrement incomplet pour le composant "{componentId}": {missingCount} chaînes manquantes',
|
|
46
|
+
[CoreStringKey.Error_DuplicateComponentTemplate]:
|
|
47
|
+
'Le composant "{componentId}" est déjà enregistré',
|
|
48
|
+
[CoreStringKey.Error_DuplicateLanguageTemplate]:
|
|
49
|
+
'La langue "{languageId}" est déjà enregistrée',
|
|
50
|
+
[CoreStringKey.Error_ValidationFailedTemplate]:
|
|
51
|
+
'Échec de la validation pour le composant "{componentId}": {errorCount} erreurs',
|
|
52
|
+
|
|
53
|
+
// System Messages
|
|
54
|
+
[CoreStringKey.System_Welcome]: 'Bienvenue',
|
|
55
|
+
[CoreStringKey.System_Goodbye]: 'Au revoir',
|
|
56
|
+
[CoreStringKey.System_PleaseWait]: 'Veuillez patienter...',
|
|
57
|
+
[CoreStringKey.System_ProcessingRequest]:
|
|
58
|
+
'Traitement de votre demande...',
|
|
59
|
+
[CoreStringKey.System_OperationComplete]:
|
|
60
|
+
'Opération terminée avec succès',
|
|
61
|
+
[CoreStringKey.System_NoDataAvailable]: 'Aucune donnée disponible',
|
|
62
|
+
|
|
63
|
+
[CoreStringKey.Error_InstanceAlreadyExistsTemplate]:
|
|
64
|
+
"Instance avec clé '{key}' existe déjà",
|
|
65
|
+
[CoreStringKey.Error_InstanceNotFoundTemplate]:
|
|
66
|
+
"Instance avec clé '{key}' introuvable",
|
|
67
|
+
[CoreStringKey.Error_MissingStringCollectionTemplate]:
|
|
68
|
+
'Collection de chaînes manquante pour la langue: {language}',
|
|
69
|
+
[CoreStringKey.Error_MissingTranslationTemplate]:
|
|
70
|
+
"Traduction manquante pour la clé '{key}' dans la langue '{language}'",
|
|
71
|
+
[CoreStringKey.Error_DefaultLanguageNoCollectionTemplate]:
|
|
72
|
+
"La langue par défaut '{language}' n'a pas de collection de chaînes",
|
|
73
|
+
[CoreStringKey.Error_MissingTranslationKeyForTypeTemplate]:
|
|
74
|
+
'Clé de traduction manquante pour le type: {type}',
|
|
75
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { CoreStringKey } from '../core-string-key';
|
|
2
|
+
|
|
3
|
+
export const japaneseStrings: Record<CoreStringKey, string> = {
|
|
4
|
+
// Common/General
|
|
5
|
+
[CoreStringKey.Common_Yes]: 'はい',
|
|
6
|
+
[CoreStringKey.Common_No]: 'いいえ',
|
|
7
|
+
[CoreStringKey.Common_Cancel]: 'キャンセル',
|
|
8
|
+
[CoreStringKey.Common_OK]: 'OK',
|
|
9
|
+
[CoreStringKey.Common_Save]: '保存',
|
|
10
|
+
[CoreStringKey.Common_Delete]: '削除',
|
|
11
|
+
[CoreStringKey.Common_Edit]: '編集',
|
|
12
|
+
[CoreStringKey.Common_Create]: '作成',
|
|
13
|
+
[CoreStringKey.Common_Update]: '更新',
|
|
14
|
+
[CoreStringKey.Common_Loading]: '読み込み中...',
|
|
15
|
+
[CoreStringKey.Common_Error]: 'エラー',
|
|
16
|
+
[CoreStringKey.Common_Success]: '成功',
|
|
17
|
+
[CoreStringKey.Common_Warning]: '警告',
|
|
18
|
+
[CoreStringKey.Common_Info]: '情報',
|
|
19
|
+
[CoreStringKey.Common_Disposed]: 'オブジェクトは破棄されました',
|
|
20
|
+
[CoreStringKey.Common_Test]: 'テスト',
|
|
21
|
+
|
|
22
|
+
// Error Messages
|
|
23
|
+
[CoreStringKey.Error_InvalidInput]: '無効な入力が提供されました',
|
|
24
|
+
[CoreStringKey.Error_NetworkError]: 'ネットワーク接続エラー',
|
|
25
|
+
[CoreStringKey.Error_NotFound]: 'リソースが見つかりません',
|
|
26
|
+
[CoreStringKey.Error_AccessDenied]: 'アクセスが拒否されました',
|
|
27
|
+
[CoreStringKey.Error_InternalServer]: '内部サーバーエラー',
|
|
28
|
+
[CoreStringKey.Error_ValidationFailed]: '検証に失敗しました',
|
|
29
|
+
[CoreStringKey.Error_RequiredField]: 'このフィールドは必須です',
|
|
30
|
+
[CoreStringKey.Error_InvalidContext]: '無効なコンテキスト',
|
|
31
|
+
[CoreStringKey.Error_InvalidContextTemplate]:
|
|
32
|
+
'無効なコンテキスト:{contextKey}',
|
|
33
|
+
[CoreStringKey.Error_MissingTranslationKeyTemplate]:
|
|
34
|
+
'翻訳キーが見つかりません:{stringKey}',
|
|
35
|
+
[CoreStringKey.Error_InvalidCurrencyCodeTemplate]: '無効な通貨コード:{value}',
|
|
36
|
+
|
|
37
|
+
// Registry Error Templates
|
|
38
|
+
[CoreStringKey.Error_ComponentNotFoundTemplate]:
|
|
39
|
+
'コンポーネント "{componentId}" が見つかりません',
|
|
40
|
+
[CoreStringKey.Error_LanguageNotFoundTemplate]:
|
|
41
|
+
'言語 "{language}" が見つかりません',
|
|
42
|
+
[CoreStringKey.Error_StringKeyNotFoundTemplate]:
|
|
43
|
+
'コンポーネント "{componentId}" の文字列キー "{stringKey}" が見つかりません',
|
|
44
|
+
[CoreStringKey.Error_IncompleteRegistrationTemplate]:
|
|
45
|
+
'コンポーネント "{componentId}" の登録が不完全です:{missingCount} 個の文字列が不足しています',
|
|
46
|
+
[CoreStringKey.Error_DuplicateComponentTemplate]:
|
|
47
|
+
'コンポーネント "{componentId}" は既に登録されています',
|
|
48
|
+
[CoreStringKey.Error_DuplicateLanguageTemplate]:
|
|
49
|
+
'言語 "{languageId}" は既に登録されています',
|
|
50
|
+
[CoreStringKey.Error_ValidationFailedTemplate]:
|
|
51
|
+
'コンポーネント "{componentId}" の検証に失敗しました:{errorCount} 個のエラー',
|
|
52
|
+
|
|
53
|
+
// System Messages
|
|
54
|
+
[CoreStringKey.System_Welcome]: 'ようこそ',
|
|
55
|
+
[CoreStringKey.System_Goodbye]: 'さようなら',
|
|
56
|
+
[CoreStringKey.System_PleaseWait]: 'お待ちください...',
|
|
57
|
+
[CoreStringKey.System_ProcessingRequest]: 'リクエストを処理中...',
|
|
58
|
+
[CoreStringKey.System_OperationComplete]: '操作が正常に完了しました',
|
|
59
|
+
[CoreStringKey.System_NoDataAvailable]: '利用可能なデータがありません',
|
|
60
|
+
|
|
61
|
+
[CoreStringKey.Error_InstanceAlreadyExistsTemplate]:
|
|
62
|
+
"キー'{key}'のインスタンスは既に存在します",
|
|
63
|
+
[CoreStringKey.Error_InstanceNotFoundTemplate]:
|
|
64
|
+
"キー'{key}'のインスタンスが見つかりません",
|
|
65
|
+
[CoreStringKey.Error_MissingStringCollectionTemplate]:
|
|
66
|
+
'言語の文字列コレクションがありません: {language}',
|
|
67
|
+
[CoreStringKey.Error_MissingTranslationTemplate]:
|
|
68
|
+
"言語'{language}'でキー'{key}'の翻訳がありません",
|
|
69
|
+
[CoreStringKey.Error_DefaultLanguageNoCollectionTemplate]:
|
|
70
|
+
"デフォルト言語'{language}'に文字列コレクションがありません",
|
|
71
|
+
[CoreStringKey.Error_MissingTranslationKeyForTypeTemplate]:
|
|
72
|
+
'タイプの翻訳キーがありません: {type}',
|
|
73
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { CoreStringKey } from '../core-string-key';
|
|
2
|
+
|
|
3
|
+
export const ukrainianStrings: Record<CoreStringKey, string> = {
|
|
4
|
+
// Common/General
|
|
5
|
+
[CoreStringKey.Common_Yes]: 'Так',
|
|
6
|
+
[CoreStringKey.Common_No]: 'Ні',
|
|
7
|
+
[CoreStringKey.Common_Cancel]: 'Скасувати',
|
|
8
|
+
[CoreStringKey.Common_OK]: 'OK',
|
|
9
|
+
[CoreStringKey.Common_Save]: 'Зберегти',
|
|
10
|
+
[CoreStringKey.Common_Delete]: 'Видалити',
|
|
11
|
+
[CoreStringKey.Common_Edit]: 'Редагувати',
|
|
12
|
+
[CoreStringKey.Common_Create]: 'Створити',
|
|
13
|
+
[CoreStringKey.Common_Update]: 'Оновити',
|
|
14
|
+
[CoreStringKey.Common_Loading]: 'Завантаження...',
|
|
15
|
+
[CoreStringKey.Common_Error]: 'Помилка',
|
|
16
|
+
[CoreStringKey.Common_Success]: 'Успіх',
|
|
17
|
+
[CoreStringKey.Common_Warning]: 'Попередження',
|
|
18
|
+
[CoreStringKey.Common_Info]: 'Інформація',
|
|
19
|
+
[CoreStringKey.Common_Disposed]: "Об'єкт було звільнено",
|
|
20
|
+
[CoreStringKey.Common_Test]: 'Тест',
|
|
21
|
+
|
|
22
|
+
// Error Messages
|
|
23
|
+
[CoreStringKey.Error_InvalidInput]: 'Надано неправильний ввід',
|
|
24
|
+
[CoreStringKey.Error_NetworkError]: "Помилка мережевого з'єднання",
|
|
25
|
+
[CoreStringKey.Error_NotFound]: 'Ресурс не знайдено',
|
|
26
|
+
[CoreStringKey.Error_AccessDenied]: 'Доступ заборонено',
|
|
27
|
+
[CoreStringKey.Error_InternalServer]: 'Внутрішня помилка сервера',
|
|
28
|
+
[CoreStringKey.Error_ValidationFailed]: 'Перевірка не вдалася',
|
|
29
|
+
[CoreStringKey.Error_RequiredField]: "Це поле є обов'язковим",
|
|
30
|
+
[CoreStringKey.Error_InvalidContext]: 'Неправильний контекст',
|
|
31
|
+
[CoreStringKey.Error_InvalidContextTemplate]:
|
|
32
|
+
'Неправильний контекст: {contextKey}',
|
|
33
|
+
[CoreStringKey.Error_MissingTranslationKeyTemplate]:
|
|
34
|
+
'Відсутній ключ перекладу: {stringKey}',
|
|
35
|
+
[CoreStringKey.Error_InvalidCurrencyCodeTemplate]: 'Неправильний код валюти: {value}',
|
|
36
|
+
|
|
37
|
+
// Registry Error Templates
|
|
38
|
+
[CoreStringKey.Error_ComponentNotFoundTemplate]:
|
|
39
|
+
'Компонент "{componentId}" не знайдено',
|
|
40
|
+
[CoreStringKey.Error_LanguageNotFoundTemplate]:
|
|
41
|
+
'Мову "{language}" не знайдено',
|
|
42
|
+
[CoreStringKey.Error_StringKeyNotFoundTemplate]:
|
|
43
|
+
'Ключ рядка "{stringKey}" не знайдено для компонента "{componentId}"',
|
|
44
|
+
[CoreStringKey.Error_IncompleteRegistrationTemplate]:
|
|
45
|
+
'Неповна реєстрація для компонента "{componentId}": не вистачає {missingCount} рядків',
|
|
46
|
+
[CoreStringKey.Error_DuplicateComponentTemplate]:
|
|
47
|
+
'Компонент "{componentId}" вже зареєстровано',
|
|
48
|
+
[CoreStringKey.Error_DuplicateLanguageTemplate]:
|
|
49
|
+
'Мову "{languageId}" вже зареєстровано',
|
|
50
|
+
[CoreStringKey.Error_ValidationFailedTemplate]:
|
|
51
|
+
'Перевірка не вдалася для компонента "{componentId}": {errorCount} помилок',
|
|
52
|
+
|
|
53
|
+
// System Messages
|
|
54
|
+
[CoreStringKey.System_Welcome]: 'Ласкаво просимо',
|
|
55
|
+
[CoreStringKey.System_Goodbye]: 'До побачення',
|
|
56
|
+
[CoreStringKey.System_PleaseWait]: 'Будь ласка, зачекайте...',
|
|
57
|
+
[CoreStringKey.System_ProcessingRequest]: 'Обробка вашого запиту...',
|
|
58
|
+
[CoreStringKey.System_OperationComplete]: 'Операція успішно завершена',
|
|
59
|
+
[CoreStringKey.System_NoDataAvailable]: 'Дані недоступні',
|
|
60
|
+
|
|
61
|
+
[CoreStringKey.Error_InstanceAlreadyExistsTemplate]:
|
|
62
|
+
"Екземпляр з ключем '{key}' вже існує",
|
|
63
|
+
[CoreStringKey.Error_InstanceNotFoundTemplate]:
|
|
64
|
+
"Екземпляр з ключем '{key}' не знайдено",
|
|
65
|
+
[CoreStringKey.Error_MissingStringCollectionTemplate]:
|
|
66
|
+
'Відсутня колекція рядків для мови: {language}',
|
|
67
|
+
[CoreStringKey.Error_MissingTranslationTemplate]:
|
|
68
|
+
"Відсутній переклад для ключа '{key}' в мові '{language}'",
|
|
69
|
+
[CoreStringKey.Error_DefaultLanguageNoCollectionTemplate]:
|
|
70
|
+
"Мова за замовчуванням '{language}' не має колекції рядків",
|
|
71
|
+
[CoreStringKey.Error_MissingTranslationKeyForTypeTemplate]:
|
|
72
|
+
'Відсутній ключ перекладу для типу: {type}',
|
|
73
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { CoreStringKey } from '../core-string-key';
|
|
2
|
+
|
|
3
|
+
export const mandarinStrings: Record<CoreStringKey, string> = {
|
|
4
|
+
// Common/General
|
|
5
|
+
[CoreStringKey.Common_Yes]: '是',
|
|
6
|
+
[CoreStringKey.Common_No]: '否',
|
|
7
|
+
[CoreStringKey.Common_Cancel]: '取消',
|
|
8
|
+
[CoreStringKey.Common_OK]: '确定',
|
|
9
|
+
[CoreStringKey.Common_Save]: '保存',
|
|
10
|
+
[CoreStringKey.Common_Delete]: '删除',
|
|
11
|
+
[CoreStringKey.Common_Edit]: '编辑',
|
|
12
|
+
[CoreStringKey.Common_Create]: '创建',
|
|
13
|
+
[CoreStringKey.Common_Update]: '更新',
|
|
14
|
+
[CoreStringKey.Common_Loading]: '加载中...',
|
|
15
|
+
[CoreStringKey.Common_Error]: '错误',
|
|
16
|
+
[CoreStringKey.Common_Success]: '成功',
|
|
17
|
+
[CoreStringKey.Common_Warning]: '警告',
|
|
18
|
+
[CoreStringKey.Common_Info]: '信息',
|
|
19
|
+
[CoreStringKey.Common_Disposed]: '对象已被释放',
|
|
20
|
+
[CoreStringKey.Common_Test]: '测试',
|
|
21
|
+
|
|
22
|
+
// Error Messages
|
|
23
|
+
[CoreStringKey.Error_InvalidInput]: '提供的输入无效',
|
|
24
|
+
[CoreStringKey.Error_NetworkError]: '网络连接错误',
|
|
25
|
+
[CoreStringKey.Error_NotFound]: '未找到资源',
|
|
26
|
+
[CoreStringKey.Error_AccessDenied]: '访问被拒绝',
|
|
27
|
+
[CoreStringKey.Error_InternalServer]: '内部服务器错误',
|
|
28
|
+
[CoreStringKey.Error_ValidationFailed]: '验证失败',
|
|
29
|
+
[CoreStringKey.Error_RequiredField]: '此字段为必填项',
|
|
30
|
+
[CoreStringKey.Error_InvalidContext]: '无效的上下文',
|
|
31
|
+
[CoreStringKey.Error_InvalidContextTemplate]:
|
|
32
|
+
'无效的上下文:{contextKey}',
|
|
33
|
+
[CoreStringKey.Error_MissingTranslationKeyTemplate]:
|
|
34
|
+
'缺少翻译键:{stringKey}',
|
|
35
|
+
[CoreStringKey.Error_InvalidCurrencyCodeTemplate]: '无效的货币代码:{value}',
|
|
36
|
+
|
|
37
|
+
// Registry Error Templates
|
|
38
|
+
[CoreStringKey.Error_ComponentNotFoundTemplate]:
|
|
39
|
+
'未找到组件 "{componentId}"',
|
|
40
|
+
[CoreStringKey.Error_LanguageNotFoundTemplate]: '未找到语言 "{language}"',
|
|
41
|
+
[CoreStringKey.Error_StringKeyNotFoundTemplate]:
|
|
42
|
+
'组件 "{componentId}" 未找到字符串键 "{stringKey}"',
|
|
43
|
+
[CoreStringKey.Error_IncompleteRegistrationTemplate]:
|
|
44
|
+
'组件 "{componentId}" 注册不完整:缺少 {missingCount} 个字符串',
|
|
45
|
+
[CoreStringKey.Error_DuplicateComponentTemplate]:
|
|
46
|
+
'组件 "{componentId}" 已注册',
|
|
47
|
+
[CoreStringKey.Error_DuplicateLanguageTemplate]:
|
|
48
|
+
'语言 "{languageId}" 已注册',
|
|
49
|
+
[CoreStringKey.Error_ValidationFailedTemplate]:
|
|
50
|
+
'组件 "{componentId}" 验证失败:{errorCount} 个错误',
|
|
51
|
+
|
|
52
|
+
// System Messages
|
|
53
|
+
[CoreStringKey.System_Welcome]: '欢迎',
|
|
54
|
+
[CoreStringKey.System_Goodbye]: '再见',
|
|
55
|
+
[CoreStringKey.System_PleaseWait]: '请稍候...',
|
|
56
|
+
[CoreStringKey.System_ProcessingRequest]: '正在处理您的请求...',
|
|
57
|
+
[CoreStringKey.System_OperationComplete]: '操作成功完成',
|
|
58
|
+
[CoreStringKey.System_NoDataAvailable]: '无可用数据',
|
|
59
|
+
|
|
60
|
+
[CoreStringKey.Error_InstanceAlreadyExistsTemplate]:
|
|
61
|
+
"键为'{key}'的实例已存在",
|
|
62
|
+
[CoreStringKey.Error_InstanceNotFoundTemplate]:
|
|
63
|
+
"未找到键为'{key}'的实例",
|
|
64
|
+
[CoreStringKey.Error_MissingStringCollectionTemplate]:
|
|
65
|
+
'缺少语言的字符串集合: {language}',
|
|
66
|
+
[CoreStringKey.Error_MissingTranslationTemplate]:
|
|
67
|
+
"在语言'{language}'中缺少键'{key}'的翻译",
|
|
68
|
+
[CoreStringKey.Error_DefaultLanguageNoCollectionTemplate]:
|
|
69
|
+
"默认语言'{language}'没有字符串集合",
|
|
70
|
+
[CoreStringKey.Error_MissingTranslationKeyForTypeTemplate]:
|
|
71
|
+
'类型缺少翻译键: {type}',
|
|
72
|
+
};
|
package/src/template.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template processing utilities for i18n
|
|
3
|
+
*/
|
|
4
|
+
export type EnumKeys<T> = keyof T;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Recursive type to validate that all enum keys in the template string exist in the provided enum type
|
|
8
|
+
*/
|
|
9
|
+
export type IsValidEnumTemplate<
|
|
10
|
+
T extends string,
|
|
11
|
+
TEnum,
|
|
12
|
+
> = T extends `${string}{{${string}.${infer Key}}}${infer Rest}`
|
|
13
|
+
? Key extends EnumKeys<TEnum>
|
|
14
|
+
? IsValidEnumTemplate<Rest, TEnum>
|
|
15
|
+
: false
|
|
16
|
+
: true;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Template function that processes {{EnumName.EnumKey}} patterns
|
|
20
|
+
*/
|
|
21
|
+
export function createTemplateProcessor<
|
|
22
|
+
TEnum extends Record<string, string>,
|
|
23
|
+
TLanguage extends string,
|
|
24
|
+
>(
|
|
25
|
+
enumObj: TEnum,
|
|
26
|
+
translateFn: (
|
|
27
|
+
key: TEnum[keyof TEnum],
|
|
28
|
+
vars?: Record<string, string | number>,
|
|
29
|
+
language?: TLanguage,
|
|
30
|
+
) => string,
|
|
31
|
+
enumName: string,
|
|
32
|
+
) {
|
|
33
|
+
return function t<T extends string>(
|
|
34
|
+
str: IsValidEnumTemplate<T, TEnum> extends true ? T : never,
|
|
35
|
+
language?: TLanguage,
|
|
36
|
+
...otherVars: Record<string, string | number>[]
|
|
37
|
+
): string {
|
|
38
|
+
let varIndex = 0;
|
|
39
|
+
// Limited pattern to prevent ReDoS
|
|
40
|
+
const pattern = new RegExp(`\\{\\{${enumName}\\.(\\w{1,50})\\}\\}`, 'g');
|
|
41
|
+
|
|
42
|
+
// First replace enum patterns
|
|
43
|
+
let result = str.replace(pattern, (match, enumKey) => {
|
|
44
|
+
const enumValue = enumObj[enumKey as keyof TEnum];
|
|
45
|
+
if (!enumValue) {
|
|
46
|
+
return match; // Return original if enum key not found
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const needsVars = (enumValue as string)
|
|
50
|
+
.toLowerCase()
|
|
51
|
+
.endsWith('template');
|
|
52
|
+
const vars = needsVars ? (otherVars[varIndex++] ?? {}) : {};
|
|
53
|
+
return translateFn(enumValue, vars, language);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// Then replace any remaining variables from all otherVars
|
|
57
|
+
const allVars: Record<string, string | number> = {};
|
|
58
|
+
for (const vars of otherVars) {
|
|
59
|
+
for (const [key, value] of Object.entries(vars)) {
|
|
60
|
+
if (!['__proto__', 'constructor', 'prototype'].includes(key)) {
|
|
61
|
+
allVars[key] = value;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Limited pattern to prevent ReDoS
|
|
66
|
+
result = result.replace(/\{(\w{1,50})\}/g, (match, varName) => {
|
|
67
|
+
return allVars[varName] !== undefined ? String(allVars[varName]) : match;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return result;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal interface for translation engines
|
|
3
|
+
* Allows flexibility in what can be used as a translation engine
|
|
4
|
+
*/
|
|
5
|
+
export interface TranslationEngine<TStringKey extends string = string> {
|
|
6
|
+
translate: (
|
|
7
|
+
componentId: string,
|
|
8
|
+
key: TStringKey,
|
|
9
|
+
vars?: Record<string, string | number>,
|
|
10
|
+
lang?: any,
|
|
11
|
+
) => string;
|
|
12
|
+
safeTranslate: (
|
|
13
|
+
componentId: string,
|
|
14
|
+
key: TStringKey,
|
|
15
|
+
vars?: Record<string, string | number>,
|
|
16
|
+
lang?: any,
|
|
17
|
+
) => string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translation request interface
|
|
3
|
+
*/
|
|
4
|
+
export interface TranslationRequest<
|
|
5
|
+
TStringKeys extends string,
|
|
6
|
+
TLanguages extends string,
|
|
7
|
+
> {
|
|
8
|
+
readonly componentId: string;
|
|
9
|
+
readonly stringKey: TStringKeys;
|
|
10
|
+
readonly language?: TLanguages;
|
|
11
|
+
readonly variables?: Record<string, string | number>;
|
|
12
|
+
}
|