@svelstack/translator 0.9.3 → 0.9.4

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/dist/index.js CHANGED
@@ -402,6 +402,9 @@ var Translator = class {
402
402
  parameters
403
403
  });
404
404
  }
405
+ transMessage(message) {
406
+ return this.trans(message.domain, message.key, message.parameters);
407
+ }
405
408
  /**
406
409
  * Loads translations for a specified language.
407
410
  * @private
@@ -435,9 +438,15 @@ var Translator = class {
435
438
  changed() {
436
439
  }
437
440
  };
441
+ function createTranslatableMessageFactory() {
442
+ return (domain, key, parameters) => {
443
+ return { domain, key, parameters };
444
+ };
445
+ }
438
446
  export {
439
447
  ChainMessageFormatter,
440
448
  ParameterMessageFormatter,
441
449
  PluralMessageFormatter,
442
- Translator
450
+ Translator,
451
+ createTranslatableMessageFactory
443
452
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@svelstack/translator",
3
- "version": "0.9.3",
3
+ "version": "0.9.4",
4
4
  "scripts": {
5
5
  "build": "tsup && npm run prepack",
6
6
  "prepack": "publint",
package/src/types.d.ts CHANGED
@@ -27,6 +27,8 @@ export class Translator {
27
27
 
28
28
  trans(domain: string, key: string, parameters?: Record<string, string|number>): string;
29
29
 
30
+ transMessage(message: TranslatableMessage): string;
31
+
30
32
  protected changed(): void;
31
33
  }
32
34
 
@@ -40,6 +42,23 @@ export interface TypesafeTranslator<Mapping extends Record<string, Record<string
40
42
 
41
43
  }
42
44
 
45
+ export type TranslatableMessage = {
46
+ domain: string;
47
+ key: string;
48
+ parameters?: Record<string, string|number>;
49
+ };
50
+
51
+ export function createTranslatableMessageFactory<Mapping extends Record<string, Record<string, string>>>(): <
52
+ Domain extends keyof Mapping,
53
+ Key extends keyof Mapping[Domain]
54
+ >(
55
+ domain: Domain,
56
+ key: Key,
57
+ ...rest: Mapping[Domain][Key] extends never
58
+ ? [parameters?: undefined]
59
+ : [parameters: Record<Mapping[Domain][Key], string>]
60
+ ) => { domain: Domain, key: Key, parameters: Mapping[Domain][Key] extends never ? undefined : Record<Mapping[Domain][Key], string> };
61
+
43
62
  export interface MessageFormatter {
44
63
 
45
64
  format(message: string, options: MessageFormatterOptions): string;