@_linked/translation 0.2.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.
Files changed (153) hide show
  1. package/README.md +102 -0
  2. package/lib/cjs/data/translation.json +8 -0
  3. package/lib/esm/archive.d.ts +133 -0
  4. package/lib/esm/archive.js +567 -0
  5. package/lib/esm/archive.js.map +1 -0
  6. package/lib/esm/authorization.d.ts +12 -0
  7. package/lib/esm/authorization.js +10 -0
  8. package/lib/esm/authorization.js.map +1 -0
  9. package/lib/esm/backend.d.ts +1 -0
  10. package/lib/esm/backend.js +3 -0
  11. package/lib/esm/backend.js.map +1 -0
  12. package/lib/esm/cdn-loader.d.ts +40 -0
  13. package/lib/esm/cdn-loader.js +200 -0
  14. package/lib/esm/cdn-loader.js.map +1 -0
  15. package/lib/esm/checks.d.ts +56 -0
  16. package/lib/esm/checks.js +288 -0
  17. package/lib/esm/checks.js.map +1 -0
  18. package/lib/esm/compile.d.ts +64 -0
  19. package/lib/esm/compile.js +99 -0
  20. package/lib/esm/compile.js.map +1 -0
  21. package/lib/esm/core/messages.d.ts +25 -0
  22. package/lib/esm/core/messages.js +76 -0
  23. package/lib/esm/core/messages.js.map +1 -0
  24. package/lib/esm/data/translation.json +8 -0
  25. package/lib/esm/discovery.d.ts +97 -0
  26. package/lib/esm/discovery.js +365 -0
  27. package/lib/esm/discovery.js.map +1 -0
  28. package/lib/esm/exchange.d.ts +100 -0
  29. package/lib/esm/exchange.js +223 -0
  30. package/lib/esm/exchange.js.map +1 -0
  31. package/lib/esm/export.d.ts +28 -0
  32. package/lib/esm/export.js +92 -0
  33. package/lib/esm/export.js.map +1 -0
  34. package/lib/esm/formats/csv.d.ts +8 -0
  35. package/lib/esm/formats/csv.js +397 -0
  36. package/lib/esm/formats/csv.js.map +1 -0
  37. package/lib/esm/formats/json.d.ts +30 -0
  38. package/lib/esm/formats/json.js +459 -0
  39. package/lib/esm/formats/json.js.map +1 -0
  40. package/lib/esm/formats/xliff.d.ts +12 -0
  41. package/lib/esm/formats/xliff.js +577 -0
  42. package/lib/esm/formats/xliff.js.map +1 -0
  43. package/lib/esm/import.d.ts +197 -0
  44. package/lib/esm/import.js +391 -0
  45. package/lib/esm/import.js.map +1 -0
  46. package/lib/esm/index.d.ts +42 -0
  47. package/lib/esm/index.js +34 -0
  48. package/lib/esm/index.js.map +1 -0
  49. package/lib/esm/key-sync-node.d.ts +29 -0
  50. package/lib/esm/key-sync-node.js +174 -0
  51. package/lib/esm/key-sync-node.js.map +1 -0
  52. package/lib/esm/key-sync.d.ts +46 -0
  53. package/lib/esm/key-sync.js +114 -0
  54. package/lib/esm/key-sync.js.map +1 -0
  55. package/lib/esm/key-version.d.ts +50 -0
  56. package/lib/esm/key-version.js +134 -0
  57. package/lib/esm/key-version.js.map +1 -0
  58. package/lib/esm/languages.d.ts +18 -0
  59. package/lib/esm/languages.js +74 -0
  60. package/lib/esm/languages.js.map +1 -0
  61. package/lib/esm/linked-discovery.d.ts +44 -0
  62. package/lib/esm/linked-discovery.js +267 -0
  63. package/lib/esm/linked-discovery.js.map +1 -0
  64. package/lib/esm/message-format.d.ts +41 -0
  65. package/lib/esm/message-format.js +133 -0
  66. package/lib/esm/message-format.js.map +1 -0
  67. package/lib/esm/mt.d.ts +111 -0
  68. package/lib/esm/mt.js +142 -0
  69. package/lib/esm/mt.js.map +1 -0
  70. package/lib/esm/ontologies/translation.d.ts +203 -0
  71. package/lib/esm/ontologies/translation.js +219 -0
  72. package/lib/esm/ontologies/translation.js.map +1 -0
  73. package/lib/esm/package.d.ts +4 -0
  74. package/lib/esm/package.js +11 -0
  75. package/lib/esm/package.js.map +1 -0
  76. package/lib/esm/react.d.ts +55 -0
  77. package/lib/esm/react.js +127 -0
  78. package/lib/esm/react.js.map +1 -0
  79. package/lib/esm/records.d.ts +151 -0
  80. package/lib/esm/records.js +2 -0
  81. package/lib/esm/records.js.map +1 -0
  82. package/lib/esm/release.d.ts +198 -0
  83. package/lib/esm/release.js +435 -0
  84. package/lib/esm/release.js.map +1 -0
  85. package/lib/esm/shape-catalog.d.ts +79 -0
  86. package/lib/esm/shape-catalog.js +118 -0
  87. package/lib/esm/shape-catalog.js.map +1 -0
  88. package/lib/esm/shapes/GlossaryTerm.d.ts +28 -0
  89. package/lib/esm/shapes/GlossaryTerm.js +94 -0
  90. package/lib/esm/shapes/GlossaryTerm.js.map +1 -0
  91. package/lib/esm/shapes/TranslationInventoryOrigin.d.ts +33 -0
  92. package/lib/esm/shapes/TranslationInventoryOrigin.js +209 -0
  93. package/lib/esm/shapes/TranslationInventoryOrigin.js.map +1 -0
  94. package/lib/esm/shapes/TranslationKey.d.ts +92 -0
  95. package/lib/esm/shapes/TranslationKey.js +194 -0
  96. package/lib/esm/shapes/TranslationKey.js.map +1 -0
  97. package/lib/esm/shapes/TranslationKeyVersion.d.ts +19 -0
  98. package/lib/esm/shapes/TranslationKeyVersion.js +125 -0
  99. package/lib/esm/shapes/TranslationKeyVersion.js.map +1 -0
  100. package/lib/esm/shapes/TranslationLanguage.d.ts +15 -0
  101. package/lib/esm/shapes/TranslationLanguage.js +102 -0
  102. package/lib/esm/shapes/TranslationLanguage.js.map +1 -0
  103. package/lib/esm/shapes/TranslationProvider.d.ts +409 -0
  104. package/lib/esm/shapes/TranslationProvider.js +1376 -0
  105. package/lib/esm/shapes/TranslationProvider.js.map +1 -0
  106. package/lib/esm/shapes/TranslationRelease.d.ts +36 -0
  107. package/lib/esm/shapes/TranslationRelease.js +149 -0
  108. package/lib/esm/shapes/TranslationRelease.js.map +1 -0
  109. package/lib/esm/shapes/TranslationRevision.d.ts +39 -0
  110. package/lib/esm/shapes/TranslationRevision.js +159 -0
  111. package/lib/esm/shapes/TranslationRevision.js.map +1 -0
  112. package/lib/esm/shapes/TranslationUnit.d.ts +26 -0
  113. package/lib/esm/shapes/TranslationUnit.js +111 -0
  114. package/lib/esm/shapes/TranslationUnit.js.map +1 -0
  115. package/package.json +134 -0
  116. package/src/archive.ts +894 -0
  117. package/src/authorization.ts +33 -0
  118. package/src/backend.ts +2 -0
  119. package/src/cdn-loader.ts +264 -0
  120. package/src/checks.ts +413 -0
  121. package/src/compile.ts +168 -0
  122. package/src/core/messages.ts +106 -0
  123. package/src/data/translation.json +8 -0
  124. package/src/discovery.ts +594 -0
  125. package/src/exchange.ts +428 -0
  126. package/src/export.ts +135 -0
  127. package/src/formats/csv.ts +459 -0
  128. package/src/formats/json.ts +587 -0
  129. package/src/formats/xliff.ts +708 -0
  130. package/src/import.ts +648 -0
  131. package/src/index.ts +207 -0
  132. package/src/key-sync-node.ts +269 -0
  133. package/src/key-sync.ts +168 -0
  134. package/src/key-version.ts +206 -0
  135. package/src/languages.ts +102 -0
  136. package/src/linked-discovery.ts +385 -0
  137. package/src/message-format.ts +214 -0
  138. package/src/mt.ts +248 -0
  139. package/src/ontologies/translation.ts +234 -0
  140. package/src/package.ts +19 -0
  141. package/src/react.tsx +250 -0
  142. package/src/records.ts +180 -0
  143. package/src/release.ts +726 -0
  144. package/src/shape-catalog.ts +198 -0
  145. package/src/shapes/GlossaryTerm.ts +61 -0
  146. package/src/shapes/TranslationInventoryOrigin.ts +131 -0
  147. package/src/shapes/TranslationKey.ts +174 -0
  148. package/src/shapes/TranslationKeyVersion.ts +77 -0
  149. package/src/shapes/TranslationLanguage.ts +51 -0
  150. package/src/shapes/TranslationProvider.ts +1755 -0
  151. package/src/shapes/TranslationRelease.ts +114 -0
  152. package/src/shapes/TranslationRevision.ts +105 -0
  153. package/src/shapes/TranslationUnit.ts +72 -0
@@ -0,0 +1,219 @@
1
+ import { createNameSpace } from '@_linked/core/utils/NameSpace';
2
+ import { linkedOntology } from '../package.js';
3
+ import * as _this from './translation.js';
4
+ /** Lazy-load the (currently empty) serialized ontology graph. */
5
+ export var loadData = () => {
6
+ //@ts-ignore
7
+ return import('../data/translation.json', { with: { type: 'json' } }).then((data) => data.default);
8
+ };
9
+ /** Vocabulary namespace for the translation package. */
10
+ export var ns = createNameSpace('https://id.linked.cm/translation/vocab#');
11
+ export var _self = ns('');
12
+ // ── Classes ─────────────────────────────────────────────────────────────
13
+ export var TranslationKey = ns('TranslationKey');
14
+ export var TranslationKeyVersion = ns('TranslationKeyVersion');
15
+ export var TranslationRelease = ns('TranslationRelease');
16
+ export var TranslationUnit = ns('TranslationUnit');
17
+ export var TranslationRevision = ns('TranslationRevision');
18
+ export var GlossaryTerm = ns('GlossaryTerm');
19
+ export var TranslationInventoryOrigin = ns('TranslationInventoryOrigin');
20
+ // Open language resources; BCP-47 is a string identifier, not an enum.
21
+ export var TranslationLanguage = ns('TranslationLanguage');
22
+ export var languageIdentifier = ns('languageIdentifier');
23
+ export var languageCode = ns('languageCode');
24
+ export var nativeName = ns('nativeName');
25
+ export var englishName = ns('englishName');
26
+ export var textDirection = ns('textDirection');
27
+ export var parentLanguage = ns('parentLanguage');
28
+ export var fallbackLanguage = ns('fallbackLanguage');
29
+ export var languageEnabled = ns('languageEnabled');
30
+ export var languageSupported = ns('languageSupported');
31
+ // ── TranslationKey properties ───────────────────────────────────────────
32
+ export var namespace = ns('namespace');
33
+ export var key = ns('key');
34
+ export var sourceText = ns('sourceText'); // canonical English (Plan 014 AD-J/R7)
35
+ export var description = ns('description');
36
+ export var kind = ns('kind'); // 'ui' | 'content' (AD-I)
37
+ export var ofApplication = ns('ofApplication'); // owning app IRI (AD-H/R2)
38
+ export var ofNode = ns('ofNode'); // content-translation subject (kind:'content')
39
+ export var ofField = ns('ofField');
40
+ export var ofShape = ns('ofShape'); // semantic SHACL shape context for package keys
41
+ export var ofProperty = ns('ofProperty'); // semantic predicate context for package keys
42
+ export var fromPackage = ns('fromPackage'); // package that supplied a seed catalog
43
+ export var overridden = ns('overridden'); // app diverged this shape key from canonical → excluded from shape propagation (AD-N)
44
+ export var shapeSource = ns('shapeSource'); // canonical source snapshot at override time → the value "clear override" reverts to (AD-N)
45
+ export var format = ns('format'); // 'simple' | 'icu' (AD-J/R8)
46
+ export var currentVersion = ns('currentVersion'); // → TranslationKeyVersion
47
+ // ── TranslationKeyVersion properties (Plan 018) ────────────────────────
48
+ export var versionId = ns('versionId');
49
+ export var sourceLanguage = ns('sourceLanguage');
50
+ export var argumentSignature = ns('argumentSignature');
51
+ export var contractHash = ns('contractHash');
52
+ export var sourceHash = ns('sourceHash');
53
+ export var supersedes = ns('supersedes');
54
+ export var createdBy = ns('createdBy');
55
+ // ── TranslationRelease properties (Plan 018) ───────────────────────────
56
+ export var branch = ns('branch');
57
+ export var releaseId = ns('releaseId');
58
+ export var buildId = ns('buildId');
59
+ export var channel = ns('channel');
60
+ export var contractSetHash = ns('contractSetHash');
61
+ export var manifestHash = ns('manifestHash');
62
+ export var hotfixSequence = ns('hotfixSequence');
63
+ export var publishedAt = ns('publishedAt');
64
+ export var supportedUntil = ns('supportedUntil');
65
+ export var qualitySummary = ns('qualitySummary');
66
+ // ── CapabilityAppConfig properties (stored in Create Now's cn-main) ────
67
+ export var languages = ns('languages'); // active BCP-47 tags, including source
68
+ export var defaultLanguage = ns('defaultLanguage'); // authored/source language
69
+ export var cdnTarget = ns('cdnTarget'); // delivery base URL / bucket prefix — the "repoint" knob (AD-K, P2)
70
+ export var autoPublish = ns('autoPublish'); // boolean — overridable auto-publish-on-edit toggle (P2, default off)
71
+ export var reviewedOnlyLanguage = ns('reviewedOnlyLanguage'); // BCP-47 tags published reviewed-only; absence ⇒ machine-ok (AD-K/R9, P2)
72
+ export var mtDefault = ns('mtDefault'); // default MT provider key (AD-L, unused until P4)
73
+ export var mtFormality = ns('mtFormality'); // multi-value: "formal" (app default) or "de:informal" (per-language) — Plan 017 §7.4b
74
+ export var mtStyleNote = ns('mtStyleNote'); // free-text tone guidance fed to LLM MT providers (Plan 017 §7.4b)
75
+ // ── TranslationUnit properties ──────────────────────────────────────────
76
+ export var ofKey = ns('ofKey'); // → TranslationKey
77
+ export var ofKeyVersion = ns('ofKeyVersion'); // → TranslationKeyVersion
78
+ export var language = ns('language'); // BCP-47 tag
79
+ export var text = ns('text');
80
+ export var state = ns('state'); // untranslated | machine | reviewed | stale
81
+ export var updatedAt = ns('updatedAt');
82
+ export var updatedBy = ns('updatedBy');
83
+ export var origin = ns('origin'); // current-value provenance, e.g. `tm`
84
+ // ── TranslationRevision properties (Plan 017 AD-P) ─────────────────────
85
+ // One append-only node per authored value: history (`applied`), translator
86
+ // proposals (`proposed`), and MT suggestions (`suggested`) share the shape.
87
+ export var status = ns('status'); // applied | proposed | suggested | accepted | rejected | superseded
88
+ export var author = ns('author'); // WebID or MT provider IRI
89
+ export var authorKind = ns('authorKind'); // 'human' | 'machine'
90
+ export var mtProvider = ns('mtProvider'); // provider key when authorKind=machine
91
+ export var basedOnText = ns('basedOnText'); // unit text at authoring time (conflict detection)
92
+ export var note = ns('note'); // translator/reviewer comment
93
+ export var createdAt = ns('createdAt');
94
+ export var decidedAt = ns('decidedAt'); // when a proposal/suggestion was accepted/rejected
95
+ export var decidedBy = ns('decidedBy'); // WebID of the reviewer
96
+ // ── GlossaryTerm properties ─────────────────────────────────────────────
97
+ export var term = ns('term');
98
+ export var glossaryTranslation = ns('glossaryTranslation');
99
+ export var glossaryLanguage = ns('glossaryLanguage');
100
+ export var termType = ns('termType'); // prefer | require | keep | forbid (Plan 017 B2-1 termbase)
101
+ export var useInstead = ns('useInstead'); // replacement for a forbidden term/spelling
102
+ export var caseSensitive = ns('caseSensitive'); // boolean — exact-casing matching (proper nouns)
103
+ // ── Branch translation inventory metadata (Plan 017 Phase 8b) ─────────
104
+ // These records are materialized into the active branch metadata dataset,
105
+ // never app data. Confirmed TranslationKey/TranslationUnit records retain
106
+ // their existing app-data placement.
107
+ export var inventoryBranch = ns('inventoryBranch');
108
+ export var inventoryIdentity = ns('inventoryIdentity');
109
+ export var inventoryStatus = ns('inventoryStatus');
110
+ export var inventorySource = ns('inventorySource');
111
+ export var inventorySourceId = ns('inventorySourceId');
112
+ export var inventoryAuthoritative = ns('inventoryAuthoritative');
113
+ export var inventoryFile = ns('inventoryFile');
114
+ export var inventoryLine = ns('inventoryLine');
115
+ export var inventoryOwner = ns('inventoryOwner');
116
+ export var inventoryShape = ns('inventoryShape');
117
+ export var inventoryProperty = ns('inventoryProperty');
118
+ export var inventoryNode = ns('inventoryNode');
119
+ export var inventoryTargetClass = ns('inventoryTargetClass');
120
+ export var inventoryObservedAt = ns('inventoryObservedAt');
121
+ /** Grouped export for prefix/name access. */
122
+ export const tr = {
123
+ TranslationLanguage,
124
+ languageIdentifier,
125
+ languageCode,
126
+ nativeName,
127
+ englishName,
128
+ textDirection,
129
+ parentLanguage,
130
+ fallbackLanguage,
131
+ languageEnabled,
132
+ languageSupported,
133
+ TranslationKey,
134
+ TranslationKeyVersion,
135
+ TranslationRelease,
136
+ TranslationUnit,
137
+ TranslationRevision,
138
+ GlossaryTerm,
139
+ TranslationInventoryOrigin,
140
+ namespace,
141
+ key,
142
+ sourceText,
143
+ description,
144
+ kind,
145
+ ofApplication,
146
+ ofNode,
147
+ ofField,
148
+ ofShape,
149
+ ofProperty,
150
+ fromPackage,
151
+ overridden,
152
+ shapeSource,
153
+ format,
154
+ currentVersion,
155
+ versionId,
156
+ sourceLanguage,
157
+ argumentSignature,
158
+ contractHash,
159
+ sourceHash,
160
+ supersedes,
161
+ createdBy,
162
+ branch,
163
+ releaseId,
164
+ buildId,
165
+ channel,
166
+ contractSetHash,
167
+ manifestHash,
168
+ hotfixSequence,
169
+ publishedAt,
170
+ supportedUntil,
171
+ qualitySummary,
172
+ languages,
173
+ defaultLanguage,
174
+ cdnTarget,
175
+ autoPublish,
176
+ reviewedOnlyLanguage,
177
+ mtDefault,
178
+ mtFormality,
179
+ mtStyleNote,
180
+ ofKey,
181
+ ofKeyVersion,
182
+ language,
183
+ text,
184
+ state,
185
+ updatedAt,
186
+ updatedBy,
187
+ origin,
188
+ status,
189
+ author,
190
+ authorKind,
191
+ mtProvider,
192
+ basedOnText,
193
+ note,
194
+ createdAt,
195
+ decidedAt,
196
+ decidedBy,
197
+ term,
198
+ glossaryTranslation,
199
+ glossaryLanguage,
200
+ termType,
201
+ useInstead,
202
+ caseSensitive,
203
+ inventoryBranch,
204
+ inventoryIdentity,
205
+ inventoryStatus,
206
+ inventorySource,
207
+ inventorySourceId,
208
+ inventoryAuthoritative,
209
+ inventoryFile,
210
+ inventoryLine,
211
+ inventoryOwner,
212
+ inventoryShape,
213
+ inventoryProperty,
214
+ inventoryNode,
215
+ inventoryTargetClass,
216
+ inventoryObservedAt,
217
+ };
218
+ linkedOntology(_this, ns, 'translation', loadData, '../data/translation.json');
219
+ //# sourceMappingURL=translation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../src/ontologies/translation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const linkedShape: {
2
+ <T extends typeof import("@_linked/core/shapes/Shape").Shape>(constructor: T): void;
3
+ <T extends typeof import("@_linked/core/shapes/Shape").Shape>(config?: import("@_linked/core/utils/Package").ShapeConfig): (constructor: T) => void;
4
+ }, linkedUtil: (constructor: any) => any, linkedOntology: (allFileExports: any, nameSpace: (term: string) => import("@_linked/core/utils/NodeReference").NodeReferenceValue, suggestedPrefixAndFileName: string, loadDataFunction?: () => Promise<any>, dataSource?: string | string[]) => void, registerPackageExport: (exportedObject: any) => void, packageExports: any, packageName: string, getPackageShape: (name: string) => import("@_linked/core/shapes/Shape").ShapeConstructor | undefined;
@@ -0,0 +1,11 @@
1
+ import { linkedPackage } from '@_linked/core/utils/Package';
2
+ // Reusable LINKED translation package. Uses a HOST-NEUTRAL identifier root
3
+ // (NOT CN's id.create.now), so the shape/ontology IRIs baked into every app's
4
+ // dataset stay stable when this package is later extracted to its own repo
5
+ // (`@_linked/translation` / `@semantu/translation`) — a move, not a rewrite
6
+ // (Plan 014 AD-G). R14: confirm ownership of `id.linked.cm` before seeding real
7
+ // data under these IRIs; changing the baseUri afterwards means re-materializing.
8
+ export const { linkedShape, linkedUtil, linkedOntology, registerPackageExport, packageExports, packageName, getPackageShape, } = linkedPackage('@_linked/translation', {
9
+ baseUri: 'https://id.linked.cm/translation/',
10
+ });
11
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,CAAC,MAAM,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,GAAG,aAAa,CAAC,sBAAsB,EAAE;IACxC,OAAO,EAAE,mCAAmC;CAC7C,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { type TranslationLanguageDefinition } from './languages.js';
2
+ import React from 'react';
3
+ import { type MessageFormat, type TranslationMessages } from './core/messages.js';
4
+ /**
5
+ * React binding for the translation core (Plan 014 P1.5). Kept in a `/react`
6
+ * subpath so non-React consumers use `./core/messages` without pulling React.
7
+ * Message LOADING is caller-injected (`loadMessages`) so this stays transport-
8
+ * agnostic: dev wires it to CN's API, prod to the bundled `{lang}.json` with a
9
+ * CDN overlay (AD-J/AD-K) — the provider doesn't care which.
10
+ *
11
+ * The hook shape mirrors Tolgee (`useTranslate().t(key, default, params)`,
12
+ * `useLanguage()`), so swapping serve's provider touches only its i18n file.
13
+ */
14
+ export interface TranslationLanguage {
15
+ tag: string;
16
+ label: string;
17
+ direction?: 'ltr' | 'rtl';
18
+ fallback?: string;
19
+ }
20
+ export interface TranslationCallOptions {
21
+ /** Explicit syntax for an inline default before per-key catalog metadata loads. */
22
+ format?: MessageFormat;
23
+ }
24
+ export interface TranslationProviderProps {
25
+ children: React.ReactNode;
26
+ languages: TranslationLanguage[];
27
+ /** Optional live catalog metadata, refreshed independently of an app build. */
28
+ loadLanguages?: () => Promise<TranslationLanguageDefinition[]>;
29
+ defaultLanguage?: string;
30
+ /** Global message format. 'simple' = FormatSimple (Tolgee-compatible default). */
31
+ format?: MessageFormat;
32
+ /** Caller-injected loader: dev→API, prod→bundled file then CDN overlay. */
33
+ loadMessages: (language: string) => Promise<TranslationMessages>;
34
+ /** localStorage key persisting the selected language. */
35
+ storageKey?: string;
36
+ }
37
+ export declare function TranslationProvider({ children, languages: initialLanguages, loadLanguages, defaultLanguage, format, loadMessages, storageKey, }: TranslationProviderProps): React.JSX.Element;
38
+ /** Tolgee-compatible: `const { t } = useTranslate()`. */
39
+ export declare function useTranslate(): {
40
+ t: (key: string, defaultValue?: string, params?: Record<string, unknown>, options?: TranslationCallOptions) => string;
41
+ };
42
+ /** Active language + switcher + direction + the available languages. */
43
+ export declare function useLanguage(): {
44
+ language: string;
45
+ setLanguage: (tag: string) => void;
46
+ languages: TranslationLanguage[];
47
+ dir: "ltr" | "rtl";
48
+ };
49
+ /** JSX convenience (Tolgee `<T keyName=… />`). */
50
+ export declare function T({ keyName, defaultValue, params, format, }: {
51
+ keyName: string;
52
+ defaultValue?: string;
53
+ params?: Record<string, unknown>;
54
+ format?: MessageFormat;
55
+ }): React.JSX.Element;
@@ -0,0 +1,127 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { languageFallbacks, } from './languages.js';
3
+ import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
4
+ import { directionFor, translate, } from './core/messages.js';
5
+ const TranslationContext = createContext(null);
6
+ export function TranslationProvider({ children, languages: initialLanguages, loadLanguages, defaultLanguage = 'en', format = 'simple', loadMessages, storageKey = 'linked.lang', }) {
7
+ var _a, _b;
8
+ const [remoteLanguages, setRemoteLanguages] = useState();
9
+ const languages = remoteLanguages
10
+ ? remoteLanguages
11
+ .filter((item) => item.enabled && item.supported)
12
+ .map((item) => ({
13
+ tag: item.code,
14
+ label: item.nativeName,
15
+ direction: item.direction,
16
+ fallback: item.fallback,
17
+ }))
18
+ : initialLanguages;
19
+ const [language, setLanguageState] = useState(() => {
20
+ var _a;
21
+ if (typeof window !== 'undefined') {
22
+ const stored = (_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(storageKey);
23
+ if (stored && languages.some((l) => l.tag === stored))
24
+ return stored;
25
+ }
26
+ return defaultLanguage;
27
+ });
28
+ const dir = (_b = (_a = languages.find((item) => item.tag === language)) === null || _a === void 0 ? void 0 : _a.direction) !== null && _b !== void 0 ? _b : directionFor(language);
29
+ useEffect(() => {
30
+ if (!loadLanguages)
31
+ return;
32
+ let cancelled = false;
33
+ loadLanguages()
34
+ .then((items) => {
35
+ var _a;
36
+ if (!cancelled) {
37
+ setRemoteLanguages(items);
38
+ setMessagesByLang({});
39
+ const stored = typeof window !== 'undefined'
40
+ ? (_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(storageKey)
41
+ : null;
42
+ if (stored &&
43
+ items.some((item) => item.code === stored && item.enabled && item.supported))
44
+ setLanguageState(stored);
45
+ }
46
+ })
47
+ .catch(() => { });
48
+ return () => {
49
+ cancelled = true;
50
+ };
51
+ }, [loadLanguages, storageKey]);
52
+ const [messagesByLang, setMessagesByLang] = useState({});
53
+ // Load the active language's messages once. English renders from inline
54
+ // defaults until (and if) a payload arrives, so the app is never blank.
55
+ useEffect(() => {
56
+ if (messagesByLang[language])
57
+ return;
58
+ let cancelled = false;
59
+ const chain = languageFallbacks(language, defaultLanguage, remoteLanguages).reverse();
60
+ Promise.all(chain.map((code) => loadMessages(code).catch(() => ({}))))
61
+ .then((maps) => Object.assign({}, ...maps))
62
+ .then((msgs) => {
63
+ if (!cancelled) {
64
+ setMessagesByLang((prev) => ({ ...prev, [language]: msgs }));
65
+ }
66
+ })
67
+ .catch(() => {
68
+ /* offline / missing → keep inline defaults */
69
+ });
70
+ return () => {
71
+ cancelled = true;
72
+ };
73
+ }, [
74
+ language,
75
+ loadMessages,
76
+ messagesByLang,
77
+ defaultLanguage,
78
+ remoteLanguages,
79
+ ]);
80
+ // Reflect the configured language and text direction on <html>.
81
+ useEffect(() => {
82
+ if (typeof document !== 'undefined') {
83
+ document.documentElement.dir = dir;
84
+ document.documentElement.lang = language;
85
+ }
86
+ }, [language, dir]);
87
+ const setLanguage = useCallback((tag) => {
88
+ var _a;
89
+ setLanguageState(tag);
90
+ if (typeof window !== 'undefined') {
91
+ (_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.setItem(storageKey, tag);
92
+ }
93
+ }, [storageKey]);
94
+ const t = useCallback((key, defaultValue, params, options) => {
95
+ var _a, _b;
96
+ return translate((_a = messagesByLang[language]) !== null && _a !== void 0 ? _a : {}, key, defaultValue, params, (_b = options === null || options === void 0 ? void 0 : options.format) !== null && _b !== void 0 ? _b : format, language);
97
+ }, [messagesByLang, language, format]);
98
+ const value = useMemo(() => ({ t, language, setLanguage, languages, dir }), [t, language, setLanguage, languages, dir]);
99
+ return (_jsx(TranslationContext.Provider, { value: value, children: children }));
100
+ }
101
+ function useTranslationContext(hook) {
102
+ const ctx = useContext(TranslationContext);
103
+ if (!ctx)
104
+ throw new Error(`${hook} must be used within a <TranslationProvider>`);
105
+ return ctx;
106
+ }
107
+ /** Tolgee-compatible: `const { t } = useTranslate()`. */
108
+ export function useTranslate() {
109
+ const ctx = useTranslationContext('useTranslate');
110
+ return { t: ctx.t };
111
+ }
112
+ /** Active language + switcher + direction + the available languages. */
113
+ export function useLanguage() {
114
+ const ctx = useTranslationContext('useLanguage');
115
+ return {
116
+ language: ctx.language,
117
+ setLanguage: ctx.setLanguage,
118
+ languages: ctx.languages,
119
+ dir: ctx.dir,
120
+ };
121
+ }
122
+ /** JSX convenience (Tolgee `<T keyName=… />`). */
123
+ export function T({ keyName, defaultValue, params, format, }) {
124
+ const { t } = useTranslate();
125
+ return _jsx(_Fragment, { children: t(keyName, defaultValue, params, { format }) });
126
+ }
127
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /** Review lifecycle shared by the portable runtime and authoring clients. */
2
+ export type TranslationState = 'untranslated' | 'machine' | 'reviewed' | 'stale';
3
+ /** Plain RPC-safe value for one language. Never contains a live Shape. */
4
+ export interface TranslationUnitRecord {
5
+ language: string;
6
+ text: string;
7
+ state: TranslationState;
8
+ /** Machine-provider provenance for the current value (`tm` for memory). */
9
+ origin?: string;
10
+ updatedAt?: string;
11
+ keyVersionId?: string;
12
+ }
13
+ /** Plain immutable source/argument-contract record for Studio and RPC. */
14
+ export interface TranslationKeyVersionRecord {
15
+ id: string;
16
+ versionId: string;
17
+ sourceLanguage: string;
18
+ sourceText: string;
19
+ format: 'simple' | 'icu';
20
+ argumentSignature: string;
21
+ contractHash: string;
22
+ sourceHash: string;
23
+ supersedes?: string;
24
+ createdAt?: string;
25
+ createdBy?: string;
26
+ }
27
+ export type TranslationReleaseChannel = 'preview' | 'production';
28
+ export type TranslationReleaseStatus = 'draft' | 'published' | 'superseded' | 'retired';
29
+ /** Plain graph metadata for a schema-v2 translation release. */
30
+ export interface TranslationReleaseRecord {
31
+ id: string;
32
+ releaseId: string;
33
+ appId: string;
34
+ branchId: string;
35
+ buildId?: string;
36
+ channel: TranslationReleaseChannel;
37
+ status: TranslationReleaseStatus;
38
+ contractSetHash: string;
39
+ manifestHash: string;
40
+ hotfixSequence: number;
41
+ qualitySummary?: string;
42
+ createdAt: string;
43
+ publishedAt?: string;
44
+ supportedUntil?: string;
45
+ supersedes?: string;
46
+ }
47
+ /** Lifecycle of one authored value (Plan 017 AD-P). */
48
+ export type TranslationRevisionStatus = 'applied' | 'proposed' | 'suggested' | 'accepted' | 'rejected' | 'superseded';
49
+ /** Plain RPC-safe view of one revision (history entry / pending value). */
50
+ export interface TranslationRevisionRecord {
51
+ id: string;
52
+ key: string;
53
+ language: string;
54
+ text: string;
55
+ status: TranslationRevisionStatus;
56
+ author?: string;
57
+ authorKind: 'human' | 'machine';
58
+ mtProvider?: string;
59
+ basedOnText?: string;
60
+ note?: string;
61
+ createdAt?: string;
62
+ decidedAt?: string;
63
+ decidedBy?: string;
64
+ keyVersionId?: string;
65
+ /** Current unit diverged after this proposal was authored. */
66
+ conflicted?: boolean;
67
+ currentText?: string;
68
+ }
69
+ export interface TranslationProposalDecision {
70
+ revision: TranslationRevisionRecord;
71
+ unit?: TranslationUnitRecord;
72
+ }
73
+ export type TranslationMemoryMatchKind = 'exact' | 'carry-forward';
74
+ /**
75
+ * One reviewed unit that can seed the current key version. Exact source
76
+ * matches may pretranslate as machine/TM; changed source text is an explicit
77
+ * same-key carry-forward review.
78
+ */
79
+ export interface TranslationMemoryMatchRecord {
80
+ unitId: string;
81
+ key: string;
82
+ language: string;
83
+ text: string;
84
+ keyVersionId: string;
85
+ sourceText: string;
86
+ sourceHash: string;
87
+ contractHash: string;
88
+ kind: TranslationMemoryMatchKind;
89
+ updatedAt?: string;
90
+ }
91
+ /** Searchable reviewed unit exposed by the explicit Translation Memory browser. */
92
+ export interface TranslationMemoryRecord {
93
+ unitId: string;
94
+ key: string;
95
+ language: string;
96
+ text: string;
97
+ keyVersionId: string;
98
+ sourceText: string;
99
+ sourceHash: string;
100
+ contractHash: string;
101
+ updatedAt?: string;
102
+ }
103
+ export interface TranslationMemoryPretranslateCandidate {
104
+ key: string;
105
+ language: string;
106
+ unitId: string;
107
+ sourceKey: string;
108
+ text: string;
109
+ }
110
+ export interface TranslationMemoryPretranslateReport {
111
+ language: string;
112
+ eligible: number;
113
+ translated: number;
114
+ candidates: TranslationMemoryPretranslateCandidate[];
115
+ }
116
+ /** Termbase entry behavior (Plan 017 B2-1). */
117
+ export type GlossaryTermType = 'prefer' | 'require' | 'keep' | 'forbid';
118
+ /** Plain RPC-safe termbase entry (steers MT + checks; Plan 014 AD-L / 017 B2). */
119
+ export interface GlossaryTermRecord {
120
+ id: string;
121
+ term: string;
122
+ /** prefer = translate as `translation`; keep = do-not-translate; forbid = never use. */
123
+ termType: GlossaryTermType;
124
+ /** Preferred translation (prefer entries). */
125
+ translation?: string;
126
+ /** Replacement wording (forbid entries — alternative-spelling policing). */
127
+ useInstead?: string;
128
+ /** Target language this applies to; empty = all languages. */
129
+ language?: string;
130
+ /** Exact-casing match (proper nouns / all-caps styling). */
131
+ caseSensitive?: boolean;
132
+ description?: string;
133
+ }
134
+ /** Plain RPC-safe editor/runtime view of a key and its language values. */
135
+ export interface TranslationEntryRecord {
136
+ key: string;
137
+ namespace: string;
138
+ sourceText: string;
139
+ description?: string;
140
+ kind: 'ui' | 'content';
141
+ format: 'simple' | 'icu';
142
+ /** Optional semantic organization for translations supplied with LINKED shapes. */
143
+ ofShape?: string;
144
+ ofProperty?: string;
145
+ fromPackage?: string;
146
+ /** This app diverged a shape-owned key locally; shape propagation skips it (AD-N). */
147
+ overridden?: boolean;
148
+ currentVersion?: TranslationKeyVersionRecord;
149
+ versions?: TranslationKeyVersionRecord[];
150
+ units: Record<string, TranslationUnitRecord>;
151
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/records.ts"],"names":[],"mappings":""}