@svelstack/translator 0.9.3 → 0.9.5

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
@@ -362,6 +362,7 @@ var Translator = class {
362
362
  if (this._language !== val) {
363
363
  await this.load(val);
364
364
  this._language = val;
365
+ this.changed();
365
366
  }
366
367
  }
367
368
  /**
@@ -402,6 +403,9 @@ var Translator = class {
402
403
  parameters
403
404
  });
404
405
  }
406
+ transMessage(message) {
407
+ return this.trans(message.domain, message.key, message.parameters);
408
+ }
405
409
  /**
406
410
  * Loads translations for a specified language.
407
411
  * @private
@@ -417,7 +421,6 @@ var Translator = class {
417
421
  } else {
418
422
  this.translations = dictionary;
419
423
  }
420
- this.changed();
421
424
  }
422
425
  /**
423
426
  * Determines the appropriate language to use.
@@ -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.5",
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;