@translation-cms/sync 1.1.75 → 1.1.78
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/cli-entry.js +28 -4
- package/dist/cli-entry.js.map +1 -1
- package/dist/client.d.ts +7 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +45 -38
- package/dist/client.js.map +1 -1
- package/dist/i18next.d.ts +1 -1
- package/dist/i18next.js +2 -2
- package/dist/i18next.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/load-config.d.ts +2 -2
- package/dist/scaffold.d.ts +12 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +372 -0
- package/dist/scaffold.js.map +1 -0
- package/package.json +1 -1
package/dist/cli-entry.js
CHANGED
|
@@ -5,6 +5,7 @@ import { resolveConfig, findProjectRoot } from './resolve-config.js';
|
|
|
5
5
|
import { scanProject } from './scanner.js';
|
|
6
6
|
import { postToSync, pullTranslations, loadSyncCache, serializeNamespaces, computeDiff, formatPreviewRoutes, } from './sync.js';
|
|
7
7
|
import { loadConfigFile } from './load-config.js';
|
|
8
|
+
import { scaffoldI18n } from './scaffold.js';
|
|
8
9
|
/**
|
|
9
10
|
* sync-translations CLI
|
|
10
11
|
*
|
|
@@ -20,7 +21,7 @@ import { loadConfigFile } from './load-config.js';
|
|
|
20
21
|
* sync-translations sync # same as above
|
|
21
22
|
* sync-translations sync --dry-run # preview changes only
|
|
22
23
|
* sync-translations sync --report scan.json # write JSON report
|
|
23
|
-
* sync-translations pull # pull to ./public/
|
|
24
|
+
* sync-translations pull # pull to ./public/dictionaries
|
|
24
25
|
* sync-translations pull --output ./locales # custom output dir
|
|
25
26
|
* sync-translations pull --force # ignore TTL cache
|
|
26
27
|
* sync-translations pull --env staging # pull staging translations
|
|
@@ -156,9 +157,12 @@ async function runInit(root) {
|
|
|
156
157
|
const cmsUrl = await question('CMS URL (e.g. https://cms.example.com): ');
|
|
157
158
|
const projectId = await question('Project ID: ');
|
|
158
159
|
const apiKey = await question('API key: ');
|
|
159
|
-
const
|
|
160
|
+
const i18nDirInput = await question('i18n directory [./src/lib/i18n]: ');
|
|
160
161
|
const pullTtlInput = await question('Pull TTL in seconds [300]: ');
|
|
162
|
+
const scaffoldInput = await question('Scaffold i18n files (settings, client, server, provider)? [Y/n]: ');
|
|
161
163
|
rl.close();
|
|
164
|
+
const i18nDir = i18nDirInput.trim() || './src/lib/i18n';
|
|
165
|
+
const outputDir = `${i18nDir.replace(/\/$/, '')}/dictionaries`;
|
|
162
166
|
const config = {};
|
|
163
167
|
if (cmsUrl.trim())
|
|
164
168
|
config['cmsUrl'] = cmsUrl.trim();
|
|
@@ -166,8 +170,7 @@ async function runInit(root) {
|
|
|
166
170
|
config['projectId'] = projectId.trim();
|
|
167
171
|
if (apiKey.trim())
|
|
168
172
|
config['apiKey'] = apiKey.trim();
|
|
169
|
-
|
|
170
|
-
config['outputDir'] = outputDir.trim();
|
|
173
|
+
config['outputDir'] = outputDir;
|
|
171
174
|
if (pullTtlInput.trim()) {
|
|
172
175
|
const ttlSec = parseInt(pullTtlInput.trim(), 10);
|
|
173
176
|
if (!isNaN(ttlSec))
|
|
@@ -181,6 +184,27 @@ async function runInit(root) {
|
|
|
181
184
|
console.log(' echo ".translationsrc.json" >> .gitignore');
|
|
182
185
|
console.log('Or move the API key to CMS_SYNC_API_KEY in .env.local instead.');
|
|
183
186
|
}
|
|
187
|
+
const doScaffold = scaffoldInput.trim().toLowerCase() !== 'n';
|
|
188
|
+
if (doScaffold) {
|
|
189
|
+
const absI18nDir = path.isAbsolute(i18nDir)
|
|
190
|
+
? i18nDir
|
|
191
|
+
: path.resolve(root, i18nDir);
|
|
192
|
+
const { written, skipped } = scaffoldI18n({ i18nDir: absI18nDir });
|
|
193
|
+
if (written.length > 0) {
|
|
194
|
+
console.log('\nScaffolded i18n files:');
|
|
195
|
+
for (const f of written)
|
|
196
|
+
console.log(` + src/lib/i18n/${f}`);
|
|
197
|
+
}
|
|
198
|
+
if (skipped.length > 0) {
|
|
199
|
+
console.log('\nSkipped (already exist):');
|
|
200
|
+
for (const f of skipped)
|
|
201
|
+
console.log(` ~ src/lib/i18n/${f}`);
|
|
202
|
+
}
|
|
203
|
+
console.log('\nNext steps:');
|
|
204
|
+
console.log(' 1. Install peer deps: pnpm add i18next react-i18next i18next-resources-to-backend');
|
|
205
|
+
console.log(' 2. Pull translations: sync-translations pull');
|
|
206
|
+
console.log(' 3. Wrap your root layout with <TranslationProvider locale={locale}>');
|
|
207
|
+
}
|
|
184
208
|
}
|
|
185
209
|
// ---------------------------------------------------------------------------
|
|
186
210
|
// main
|
package/dist/cli-entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../src/cli-entry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../src/cli-entry.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface CMSConfig {
|
|
|
7
7
|
/**
|
|
8
8
|
* URL base path for local translation JSON files (served from public/).
|
|
9
9
|
* Only used when NEXT_PUBLIC_USE_LOCAL_TRANSLATIONS=true.
|
|
10
|
-
* Defaults to '/
|
|
10
|
+
* Defaults to '/dictionaries'.
|
|
11
11
|
*/
|
|
12
12
|
localePath?: string;
|
|
13
13
|
/**
|
|
@@ -85,6 +85,12 @@ export declare class CMSClient {
|
|
|
85
85
|
* Internal: actually performs the fetch (called once per unique in-flight key).
|
|
86
86
|
*/
|
|
87
87
|
private _fetchTranslations;
|
|
88
|
+
/**
|
|
89
|
+
* Fetch all requested namespaces from a single locale file.
|
|
90
|
+
* Local file format: { namespace: { key: value } }
|
|
91
|
+
* Compatible with dictionaries/{lng}.json written by the pull command.
|
|
92
|
+
*/
|
|
93
|
+
private _fetchFromLocalFile;
|
|
88
94
|
/**
|
|
89
95
|
* Fetch all namespaces for a locale (defaults to `config.defaultLocale`).
|
|
90
96
|
*/
|
|
@@ -148,7 +154,6 @@ export declare class CMSClient {
|
|
|
148
154
|
private performRefresh;
|
|
149
155
|
private buildHeaders;
|
|
150
156
|
private buildUrl;
|
|
151
|
-
private buildLocalUrl;
|
|
152
157
|
private buildRemoteUrl;
|
|
153
158
|
private getBaseUrl;
|
|
154
159
|
}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACnC,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC5C;AAED;;;GAGG;AACH,KAAK,aAAa,CAAC,EAAE,SAAS,MAAM,IAAI,GAAG,EAAE,IAAI,MAAM,EAAE,CAAC;AAE1D;;GAEG;AACH,KAAK,cAAc,CAAC,EAAE,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,GACxE,aAAa,CAAC,EAAE,CAAC,GACjB,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,EAAE,GAC5C,aAAa,CAAC,CAAC,CAAC,GAChB,KAAK,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,KAAK,mBAAmB,CAAC,EAAE,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,CAC9D,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC,EACvB,OAAO,CAAC,EAAE,QAAQ,KACjB,MAAM,CAAC;AAKZ,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAeZ;IAEF;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAmD;gBAExD,MAAM,EAAE,SAAS;IAY7B;;;;;OAKG;IACG,eAAe,CACjB,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC;IAc/B;;OAEG;YACW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -42,9 +42,14 @@ export class CMSClient {
|
|
|
42
42
|
*/
|
|
43
43
|
async _fetchTranslations(locale, namespaces) {
|
|
44
44
|
await this.autoRefreshIfStale();
|
|
45
|
+
const useLocal = typeof process !== 'undefined' &&
|
|
46
|
+
process.env.NEXT_PUBLIC_USE_LOCAL_TRANSLATIONS === 'true';
|
|
47
|
+
if (useLocal) {
|
|
48
|
+
return this._fetchFromLocalFile(locale, namespaces);
|
|
49
|
+
}
|
|
45
50
|
const result = {};
|
|
46
51
|
for (const ns of namespaces) {
|
|
47
|
-
const url = this.
|
|
52
|
+
const url = this.buildRemoteUrl(locale, ns);
|
|
48
53
|
const headers = this.buildHeaders();
|
|
49
54
|
const urlString = url.toString();
|
|
50
55
|
try {
|
|
@@ -59,21 +64,7 @@ export class CMSClient {
|
|
|
59
64
|
throw new Error(`CMS API error: ${response.status} ${response.statusText}`);
|
|
60
65
|
}
|
|
61
66
|
const data = (await response.json());
|
|
62
|
-
|
|
63
|
-
// API/remote: { "namespace:key": value } — use directly
|
|
64
|
-
const nsTranslations = {};
|
|
65
|
-
const hasNsPrefix = Object.keys(data).some(k => k.startsWith(`${ns}:`));
|
|
66
|
-
if (hasNsPrefix) {
|
|
67
|
-
// API format: keys already have namespace prefix
|
|
68
|
-
Object.assign(nsTranslations, data);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
// Local file format: flat { key: value } — add ns prefix
|
|
72
|
-
for (const [key, value] of Object.entries(data)) {
|
|
73
|
-
nsTranslations[`${ns}:${key}`] = value;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
Object.assign(result, nsTranslations);
|
|
67
|
+
Object.assign(result, data);
|
|
77
68
|
}
|
|
78
69
|
catch (error) {
|
|
79
70
|
console.error(`Failed to fetch translations for ${locale}/${ns} (${urlString}):`, error instanceof Error ? error.message : String(error));
|
|
@@ -81,6 +72,38 @@ export class CMSClient {
|
|
|
81
72
|
}
|
|
82
73
|
return result;
|
|
83
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Fetch all requested namespaces from a single locale file.
|
|
77
|
+
* Local file format: { namespace: { key: value } }
|
|
78
|
+
* Compatible with dictionaries/{lng}.json written by the pull command.
|
|
79
|
+
*/
|
|
80
|
+
async _fetchFromLocalFile(locale, namespaces) {
|
|
81
|
+
const basePath = this.config.localePath ?? '/dictionaries';
|
|
82
|
+
const url = new URL(`${basePath}/${locale}.json`, this.getBaseUrl());
|
|
83
|
+
const urlString = url.toString();
|
|
84
|
+
try {
|
|
85
|
+
const response = await fetch(urlString, { method: 'GET' });
|
|
86
|
+
if (response.status === 404) {
|
|
87
|
+
return {};
|
|
88
|
+
}
|
|
89
|
+
if (!response.ok) {
|
|
90
|
+
throw new Error(`Failed to load local translations (${response.status}): ${urlString}`);
|
|
91
|
+
}
|
|
92
|
+
const data = (await response.json());
|
|
93
|
+
const result = {};
|
|
94
|
+
for (const ns of namespaces) {
|
|
95
|
+
const nsData = data[ns] ?? {};
|
|
96
|
+
for (const [key, value] of Object.entries(nsData)) {
|
|
97
|
+
result[`${ns}:${key}`] = value;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error(`Failed to fetch local translations (${urlString}):`, error instanceof Error ? error.message : String(error));
|
|
104
|
+
return {};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
84
107
|
/**
|
|
85
108
|
* Fetch all namespaces for a locale (defaults to `config.defaultLocale`).
|
|
86
109
|
*/
|
|
@@ -234,15 +257,13 @@ export class CMSClient {
|
|
|
234
257
|
const data = (await response.json());
|
|
235
258
|
let fileCount = 0;
|
|
236
259
|
const localDir = this.config.localDir;
|
|
237
|
-
// Write per
|
|
238
|
-
//
|
|
260
|
+
// Write single file per locale: {localDir}/{locale}.json
|
|
261
|
+
// Structure: { namespace: { key: value } }
|
|
262
|
+
// Compatible with dictionaries/{lng}.json pattern
|
|
263
|
+
fs.mkdirSync(localDir, { recursive: true });
|
|
239
264
|
for (const [locale, namespaces] of Object.entries(data)) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
for (const [ns, keys] of Object.entries(namespaces)) {
|
|
243
|
-
fs.writeFileSync(path.join(localeDir, `${ns}.json`), JSON.stringify(keys, null, 2), 'utf-8');
|
|
244
|
-
fileCount++;
|
|
245
|
-
}
|
|
265
|
+
fs.writeFileSync(path.join(localDir, `${locale}.json`), JSON.stringify(namespaces, null, 2), 'utf-8');
|
|
266
|
+
fileCount++;
|
|
246
267
|
}
|
|
247
268
|
const metaPath = path.join(localDir, PULL_META_FILE);
|
|
248
269
|
fs.writeFileSync(metaPath, new Date().toISOString(), 'utf-8');
|
|
@@ -262,22 +283,8 @@ export class CMSClient {
|
|
|
262
283
|
return headers;
|
|
263
284
|
}
|
|
264
285
|
buildUrl(locale, namespace) {
|
|
265
|
-
const useLocal = typeof process !== 'undefined' &&
|
|
266
|
-
process.env.NEXT_PUBLIC_USE_LOCAL_TRANSLATIONS === 'true';
|
|
267
|
-
if (useLocal) {
|
|
268
|
-
return this.buildLocalUrl(locale, namespace);
|
|
269
|
-
}
|
|
270
286
|
return this.buildRemoteUrl(locale, namespace);
|
|
271
287
|
}
|
|
272
|
-
buildLocalUrl(locale, namespace) {
|
|
273
|
-
if (namespace === '*') {
|
|
274
|
-
return this.buildRemoteUrl(locale, namespace);
|
|
275
|
-
}
|
|
276
|
-
const basePath = this.config.localePath ?? '/locales';
|
|
277
|
-
// Per-namespace files: /locales/{locale}/{namespace}.json
|
|
278
|
-
// Compatible with i18next-http-backend loadPath: '/locales/{{lng}}/{{ns}}.json'
|
|
279
|
-
return new URL(`${basePath}/${locale}/${namespace}.json`, this.getBaseUrl());
|
|
280
|
-
}
|
|
281
288
|
buildRemoteUrl(locale, namespace) {
|
|
282
289
|
const path = namespace === '*'
|
|
283
290
|
? `/api/translations/${this.config.projectId}/${locale}`
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/i18next.d.ts
CHANGED
package/dist/i18next.js
CHANGED
|
@@ -44,7 +44,7 @@ export class CMSBackend {
|
|
|
44
44
|
? window.location.origin
|
|
45
45
|
: `http://localhost:${(typeof process !== 'undefined' && process.env['PORT']) ||
|
|
46
46
|
'3000'}`;
|
|
47
|
-
// Single file per locale: /
|
|
47
|
+
// Single file per locale: /dictionaries/{locale}.json → extract namespace
|
|
48
48
|
const url = `${baseUrl}${this.options.localePath}/${language}.json`;
|
|
49
49
|
fetch(url)
|
|
50
50
|
.then(r => {
|
|
@@ -67,7 +67,7 @@ export class CMSBackend {
|
|
|
67
67
|
}
|
|
68
68
|
resolveOptions(options) {
|
|
69
69
|
return {
|
|
70
|
-
localePath: options.localePath ?? '/
|
|
70
|
+
localePath: options.localePath ?? '/dictionaries',
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
}
|
package/dist/i18next.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18next.js","sourceRoot":"","sources":["../src/i18next.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAeH;;;GAGG;AACH,MAAM,OAAO,UAAU;IACnB,MAAM,CAAC,IAAI,GAAG,SAAkB,CAAC;IACjC,IAAI,GAAG,SAAkB,CAAC;IAElB,OAAO,CAA8B;IAE7C,YAAY,SAAkB,EAAE,UAA6B,EAAE;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,SAAkB,EAAE,UAA6B,EAAE;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,QAAgB,EAAE,SAAiB,EAAE,QAAsB;QAC5D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEO,SAAS,CACb,QAAgB,EAChB,SAAiB,EACjB,QAAsB;QAEtB,MAAM,OAAO,GACT,OAAO,MAAM,KAAK,WAAW;YACzB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;YACxB,CAAC,CAAC,oBACI,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACvD,MACJ,EAAE,CAAC;QACb,
|
|
1
|
+
{"version":3,"file":"i18next.js","sourceRoot":"","sources":["../src/i18next.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAeH;;;GAGG;AACH,MAAM,OAAO,UAAU;IACnB,MAAM,CAAC,IAAI,GAAG,SAAkB,CAAC;IACjC,IAAI,GAAG,SAAkB,CAAC;IAElB,OAAO,CAA8B;IAE7C,YAAY,SAAkB,EAAE,UAA6B,EAAE;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,SAAkB,EAAE,UAA6B,EAAE;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,QAAgB,EAAE,SAAiB,EAAE,QAAsB;QAC5D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEO,SAAS,CACb,QAAgB,EAChB,SAAiB,EACjB,QAAsB;QAEtB,MAAM,OAAO,GACT,OAAO,MAAM,KAAK,WAAW;YACzB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;YACxB,CAAC,CAAC,oBACI,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACvD,MACJ,EAAE,CAAC;QACb,0EAA0E;QAC1E,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,OAAO,CAAC;QAEpE,KAAK,CAAC,GAAG,CAAC;aACL,IAAI,CAAC,CAAC,CAAC,EAAE;YACN,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACR,QAAQ,CACJ,IAAI,KAAK,CACL,sCAAsC,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAC5D,EACD,IAAI,CACP,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,EAAqD,CAAC;QACvE,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,EAAE;YACT,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,cAAc,CAClB,OAA0B;QAE1B,OAAO;YACH,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,eAAe;SACpD,CAAC;IACN,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,EACT,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC9B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,sBAAsB,GAC9B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,EAAE,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EACtE,SAAS,EAAE,EAAE,EACb,MAAM,CAAC,EAAE,MAAM;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,EACT,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC9B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,sBAAsB,GAC9B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,EAAE,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,EACtE,SAAS,EAAE,EAAE,EACb,MAAM,CAAC,EAAE,MAAM;;mCAam7Q,CAAC;GADt8Q"}
|
package/dist/load-config.d.ts
CHANGED
|
@@ -33,8 +33,8 @@ export interface TranslationsConfig {
|
|
|
33
33
|
sourceExtensions?: string[];
|
|
34
34
|
/**
|
|
35
35
|
* Default output directory for the pull command.
|
|
36
|
-
* @default "./public/
|
|
37
|
-
* @example "./src/
|
|
36
|
+
* @default "./public/dictionaries"
|
|
37
|
+
* @example "./src/dictionaries"
|
|
38
38
|
*/
|
|
39
39
|
outputDir?: string;
|
|
40
40
|
/**
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ScaffoldOptions {
|
|
2
|
+
/** Absolute path to the i18n directory, e.g. /project/src/lib/i18n */
|
|
3
|
+
i18nDir: string;
|
|
4
|
+
/** Whether to overwrite existing files */
|
|
5
|
+
overwrite?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface ScaffoldResult {
|
|
8
|
+
written: string[];
|
|
9
|
+
skipped: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function scaffoldI18n(opts: ScaffoldOptions): ScaffoldResult;
|
|
12
|
+
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAqWA,MAAM,WAAW,eAAe;IAC5B,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CA8BlE"}
|
package/dist/scaffold.js
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// File templates
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
const SETTINGS_TS = `import type { InitOptions } from 'i18next';
|
|
7
|
+
|
|
8
|
+
// These imports resolve after running: sync-translations pull
|
|
9
|
+
import en from './dictionaries/en.json';
|
|
10
|
+
import type nl from './dictionaries/nl.json';
|
|
11
|
+
|
|
12
|
+
export const fallbackLng = 'nl' as const;
|
|
13
|
+
export const languages = ['nl', 'en'] as const;
|
|
14
|
+
export const defaultNS = 'common' as const;
|
|
15
|
+
export const cookieName = 'i18next';
|
|
16
|
+
|
|
17
|
+
export type Locale = (typeof languages)[number];
|
|
18
|
+
|
|
19
|
+
export const allNamespaces = Object.keys(
|
|
20
|
+
en
|
|
21
|
+
) as readonly (keyof typeof en)[];
|
|
22
|
+
|
|
23
|
+
export type Dicts = {
|
|
24
|
+
en: typeof en;
|
|
25
|
+
nl: typeof nl;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Re-export for convenience
|
|
29
|
+
export type { AppNamespace, Namespace } from './types';
|
|
30
|
+
|
|
31
|
+
export function getOptions(
|
|
32
|
+
lng: string = fallbackLng,
|
|
33
|
+
ns: string | readonly string[] = allNamespaces
|
|
34
|
+
): InitOptions {
|
|
35
|
+
return {
|
|
36
|
+
supportedLngs: [...languages],
|
|
37
|
+
fallbackLng: lng,
|
|
38
|
+
lng,
|
|
39
|
+
fallbackNS: defaultNS,
|
|
40
|
+
defaultNS,
|
|
41
|
+
ns,
|
|
42
|
+
resources: {},
|
|
43
|
+
partialBundledLanguages: true,
|
|
44
|
+
interpolation: {
|
|
45
|
+
escapeValue: false,
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
const TYPES_TS = `import type { allNamespaces, Dicts, languages } from './settings';
|
|
51
|
+
|
|
52
|
+
export type Locale = (typeof languages)[number];
|
|
53
|
+
export type AppNamespace = (typeof allNamespaces)[number];
|
|
54
|
+
export type Namespace = AppNamespace | readonly AppNamespace[];
|
|
55
|
+
|
|
56
|
+
type PluralSuffix = '_zero' | '_one' | '_two' | '_few' | '_many' | '_other';
|
|
57
|
+
|
|
58
|
+
type StripPluralSuffix<K extends string> =
|
|
59
|
+
K extends \`\${infer Base}\${PluralSuffix}\` ? Base : K;
|
|
60
|
+
|
|
61
|
+
export type LeafPaths<T> = T extends {
|
|
62
|
+
[key: string]: string | number | boolean | null | object;
|
|
63
|
+
}
|
|
64
|
+
? {
|
|
65
|
+
[K in keyof T & string]: T[K] extends
|
|
66
|
+
| string
|
|
67
|
+
| number
|
|
68
|
+
| boolean
|
|
69
|
+
| null
|
|
70
|
+
? K | StripPluralSuffix<K>
|
|
71
|
+
: T[K] extends object
|
|
72
|
+
? \`\${K}.\${LeafPaths<T[K]> & string}\`
|
|
73
|
+
: never;
|
|
74
|
+
}[keyof T & string]
|
|
75
|
+
: never;
|
|
76
|
+
|
|
77
|
+
export type I18nKey = {
|
|
78
|
+
[Lang in keyof Dicts]: {
|
|
79
|
+
[Ns in keyof Dicts[Lang]]: \`\${Ns & string}:\${LeafPaths<Dicts[Lang][Ns]> & string}\`;
|
|
80
|
+
}[keyof Dicts[Lang]];
|
|
81
|
+
}[keyof Dicts];
|
|
82
|
+
|
|
83
|
+
export type TranslationKey<
|
|
84
|
+
Ns extends AppNamespace | readonly AppNamespace[] | undefined = undefined,
|
|
85
|
+
> = Ns extends undefined
|
|
86
|
+
? I18nKey
|
|
87
|
+
: Ns extends readonly (infer N extends AppNamespace)[]
|
|
88
|
+
? \`\${N}:\${LeafPaths<Dicts['en'][N]> & string}\`
|
|
89
|
+
: Ns extends AppNamespace
|
|
90
|
+
? \`\${Ns}:\${LeafPaths<Dicts['en'][Ns]> & string}\`
|
|
91
|
+
: never;
|
|
92
|
+
|
|
93
|
+
export type TranslationKeys<
|
|
94
|
+
Ns extends AppNamespace | readonly AppNamespace[] | undefined,
|
|
95
|
+
> = (key: TranslationKey<Ns>, options?: any) => string;
|
|
96
|
+
`;
|
|
97
|
+
const CLIENT_TS = `'use client';
|
|
98
|
+
|
|
99
|
+
import { useCallback } from 'react';
|
|
100
|
+
import {
|
|
101
|
+
initReactI18next,
|
|
102
|
+
Trans,
|
|
103
|
+
useTranslation as useTranslationOrg,
|
|
104
|
+
type UseTranslationOptions,
|
|
105
|
+
} from 'react-i18next';
|
|
106
|
+
|
|
107
|
+
export { Trans };
|
|
108
|
+
|
|
109
|
+
import i18next, { type i18n as I18nInstance, type TOptions } from 'i18next';
|
|
110
|
+
|
|
111
|
+
import en from './dictionaries/en.json';
|
|
112
|
+
import nl from './dictionaries/nl.json';
|
|
113
|
+
|
|
114
|
+
import {
|
|
115
|
+
getOptions,
|
|
116
|
+
type AppNamespace,
|
|
117
|
+
type Locale,
|
|
118
|
+
} from './settings';
|
|
119
|
+
import type { TranslationKeys } from './types';
|
|
120
|
+
|
|
121
|
+
const resources = { en, nl } as const;
|
|
122
|
+
|
|
123
|
+
type StringTOptions = Omit<TOptions, 'returnDetails' | 'returnObjects'>;
|
|
124
|
+
|
|
125
|
+
let i18nInstance: I18nInstance | null = null;
|
|
126
|
+
|
|
127
|
+
export async function initI18nClient(locale: Locale): Promise<I18nInstance> {
|
|
128
|
+
if (i18nInstance) {
|
|
129
|
+
if (i18nInstance.language !== locale) {
|
|
130
|
+
await i18nInstance.changeLanguage(locale);
|
|
131
|
+
}
|
|
132
|
+
return i18nInstance;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
i18nInstance = i18next.createInstance();
|
|
136
|
+
|
|
137
|
+
await i18nInstance.use(initReactI18next).init({
|
|
138
|
+
...getOptions(locale),
|
|
139
|
+
resources,
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
return i18nInstance;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export function useTranslation<
|
|
146
|
+
Ns extends AppNamespace | readonly AppNamespace[],
|
|
147
|
+
>(ns: Ns, hookOptions?: UseTranslationOptions<undefined>) {
|
|
148
|
+
const namespacesToLoad: AppNamespace[] = Array.isArray(ns)
|
|
149
|
+
? [...ns]
|
|
150
|
+
: ns
|
|
151
|
+
? [ns]
|
|
152
|
+
: [];
|
|
153
|
+
|
|
154
|
+
const result = useTranslationOrg(namespacesToLoad, hookOptions);
|
|
155
|
+
const { t: tOrg } = result;
|
|
156
|
+
|
|
157
|
+
const tBase = useCallback(
|
|
158
|
+
(key: string, tOptions?: StringTOptions): string => {
|
|
159
|
+
return tOrg(key, {
|
|
160
|
+
...tOptions,
|
|
161
|
+
returnDetails: false,
|
|
162
|
+
returnObjects: false,
|
|
163
|
+
} as TOptions) as string;
|
|
164
|
+
},
|
|
165
|
+
[tOrg]
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
const t = tBase as TranslationKeys<Ns>;
|
|
169
|
+
const tDynamic = tBase;
|
|
170
|
+
|
|
171
|
+
return {
|
|
172
|
+
...result,
|
|
173
|
+
t,
|
|
174
|
+
tDynamic,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
`;
|
|
178
|
+
const SERVER_TS = `import { initReactI18next } from 'react-i18next/initReactI18next';
|
|
179
|
+
import { cookies, headers } from 'next/headers';
|
|
180
|
+
import { createInstance, type TOptions } from 'i18next';
|
|
181
|
+
import resourcesToBackend from 'i18next-resources-to-backend';
|
|
182
|
+
|
|
183
|
+
import {
|
|
184
|
+
cookieName,
|
|
185
|
+
fallbackLng,
|
|
186
|
+
getOptions,
|
|
187
|
+
languages,
|
|
188
|
+
type Locale,
|
|
189
|
+
} from './settings';
|
|
190
|
+
import type { AppNamespace, I18nKey, TranslationKeys } from './types';
|
|
191
|
+
|
|
192
|
+
type StringTOptions = Omit<TOptions, 'returnDetails' | 'returnObjects'>;
|
|
193
|
+
|
|
194
|
+
export async function initI18n(locale: string) {
|
|
195
|
+
const i18n = createInstance();
|
|
196
|
+
|
|
197
|
+
await i18n
|
|
198
|
+
.use(initReactI18next)
|
|
199
|
+
.use(
|
|
200
|
+
resourcesToBackend((language: string, namespace: string) =>
|
|
201
|
+
import(\`./dictionaries/\${language}.json\`).then(module => {
|
|
202
|
+
return (module.default as Record<string, unknown>)[namespace] ?? {};
|
|
203
|
+
})
|
|
204
|
+
)
|
|
205
|
+
)
|
|
206
|
+
.init(getOptions(locale, []));
|
|
207
|
+
|
|
208
|
+
return i18n;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export async function getTranslation<
|
|
212
|
+
Ns extends AppNamespace | readonly AppNamespace[],
|
|
213
|
+
>(ns: Ns, options: { keyPrefix?: string } = {}) {
|
|
214
|
+
const lng = await getLocale();
|
|
215
|
+
const i18n = await initI18n(lng);
|
|
216
|
+
|
|
217
|
+
const namespacesToLoad: readonly AppNamespace[] = ns
|
|
218
|
+
? Array.isArray(ns)
|
|
219
|
+
? ns
|
|
220
|
+
: [ns]
|
|
221
|
+
: [];
|
|
222
|
+
|
|
223
|
+
if (namespacesToLoad.length > 0) {
|
|
224
|
+
await i18n.loadNamespaces(namespacesToLoad);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
const fixedT = i18n.getFixedT(lng, namespacesToLoad, options.keyPrefix);
|
|
228
|
+
|
|
229
|
+
const t = (key: I18nKey, tOptions?: StringTOptions): string => {
|
|
230
|
+
return fixedT(key, {
|
|
231
|
+
...tOptions,
|
|
232
|
+
returnDetails: false,
|
|
233
|
+
returnObjects: false,
|
|
234
|
+
} as TOptions) as string;
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
return {
|
|
238
|
+
t: t as TranslationKeys<Ns>,
|
|
239
|
+
tDynamic: t,
|
|
240
|
+
i18n,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export async function getLocale(): Promise<Locale> {
|
|
245
|
+
const isSupportedLocale = (value: string): value is Locale =>
|
|
246
|
+
(languages as readonly string[]).includes(value);
|
|
247
|
+
|
|
248
|
+
try {
|
|
249
|
+
const cookieStore = await cookies();
|
|
250
|
+
const localeCookie = cookieStore.get(cookieName);
|
|
251
|
+
if (localeCookie?.value && isSupportedLocale(localeCookie.value)) {
|
|
252
|
+
return localeCookie.value;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
const headersList = await headers();
|
|
256
|
+
const acceptLanguage = headersList.get('accept-language') ?? '';
|
|
257
|
+
const supported = new Set(
|
|
258
|
+
(languages as readonly string[]).map(l => l.toLowerCase())
|
|
259
|
+
);
|
|
260
|
+
|
|
261
|
+
const preferences = acceptLanguage
|
|
262
|
+
.split(',')
|
|
263
|
+
.map((part): { code: string; q: number } | null => {
|
|
264
|
+
const trimmed = part.trim();
|
|
265
|
+
if (!trimmed) return null;
|
|
266
|
+
const [tag = '', qPartRaw] = trimmed.split(';');
|
|
267
|
+
const qPart = qPartRaw?.trim();
|
|
268
|
+
const q = qPart?.startsWith('q=') ? Number(qPart.slice(2)) : 1;
|
|
269
|
+
const code = (tag.trim().split('-')[0] ?? '').toLowerCase();
|
|
270
|
+
if (!code || !Number.isFinite(q) || q <= 0 || q > 1) return null;
|
|
271
|
+
return { code, q };
|
|
272
|
+
})
|
|
273
|
+
.filter((x): x is { code: string; q: number } => x !== null)
|
|
274
|
+
.sort((a, b) => b.q - a.q);
|
|
275
|
+
|
|
276
|
+
const best = preferences.find(x => supported.has(x.code));
|
|
277
|
+
if (best) return best.code as Locale;
|
|
278
|
+
} catch {
|
|
279
|
+
// cookies()/headers() unavailable at build time
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return fallbackLng;
|
|
283
|
+
}
|
|
284
|
+
`;
|
|
285
|
+
const PROVIDER_TSX = `'use client';
|
|
286
|
+
|
|
287
|
+
import { useEffect, useState } from 'react';
|
|
288
|
+
import { I18nextProvider } from 'react-i18next';
|
|
289
|
+
import type { i18n as I18nInstance } from 'i18next';
|
|
290
|
+
|
|
291
|
+
import { initI18nClient } from './client';
|
|
292
|
+
import { cookieName, type Locale } from './settings';
|
|
293
|
+
|
|
294
|
+
interface TranslationProviderProps {
|
|
295
|
+
children: React.ReactNode;
|
|
296
|
+
locale: Locale;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Root provider for i18n. Add to your root layout:
|
|
301
|
+
*
|
|
302
|
+
* \`\`\`tsx
|
|
303
|
+
* import { TranslationProvider } from '@/lib/i18n/provider';
|
|
304
|
+
* import { getLocale } from '@/lib/i18n/server';
|
|
305
|
+
*
|
|
306
|
+
* export default async function RootLayout({ children }) {
|
|
307
|
+
* const locale = await getLocale();
|
|
308
|
+
* return (
|
|
309
|
+
* <html lang={locale}>
|
|
310
|
+
* <body>
|
|
311
|
+
* <TranslationProvider locale={locale}>
|
|
312
|
+
* {children}
|
|
313
|
+
* </TranslationProvider>
|
|
314
|
+
* </body>
|
|
315
|
+
* </html>
|
|
316
|
+
* );
|
|
317
|
+
* }
|
|
318
|
+
* \`\`\`
|
|
319
|
+
*/
|
|
320
|
+
export function TranslationProvider({ children, locale }: TranslationProviderProps) {
|
|
321
|
+
const [i18n, setI18n] = useState<I18nInstance | null>(null);
|
|
322
|
+
|
|
323
|
+
useEffect(() => {
|
|
324
|
+
initI18nClient(locale).then(setI18n);
|
|
325
|
+
}, [locale]);
|
|
326
|
+
|
|
327
|
+
useEffect(() => {
|
|
328
|
+
if (!i18n) return;
|
|
329
|
+
const handleLanguageChanged = (lng: string) => {
|
|
330
|
+
document.documentElement.lang = lng;
|
|
331
|
+
const expires = new Date();
|
|
332
|
+
expires.setFullYear(expires.getFullYear() + 1);
|
|
333
|
+
document.cookie = \`\${cookieName}=\${encodeURIComponent(lng)}; expires=\${expires.toUTCString()}; path=/; SameSite=Lax\`;
|
|
334
|
+
};
|
|
335
|
+
handleLanguageChanged(i18n.language);
|
|
336
|
+
i18n.on('languageChanged', handleLanguageChanged);
|
|
337
|
+
return () => { i18n.off('languageChanged', handleLanguageChanged); };
|
|
338
|
+
}, [i18n]);
|
|
339
|
+
|
|
340
|
+
if (!i18n) return null;
|
|
341
|
+
|
|
342
|
+
return <I18nextProvider i18n={i18n}>{children}</I18nextProvider>;
|
|
343
|
+
}
|
|
344
|
+
`;
|
|
345
|
+
const PLACEHOLDER_DICT = JSON.stringify({ common: {} }, null, 4);
|
|
346
|
+
export function scaffoldI18n(opts) {
|
|
347
|
+
const { i18nDir, overwrite = false } = opts;
|
|
348
|
+
const dictsDir = path.join(i18nDir, 'dictionaries');
|
|
349
|
+
fs.mkdirSync(dictsDir, { recursive: true });
|
|
350
|
+
const files = [
|
|
351
|
+
{ rel: 'settings.ts', content: SETTINGS_TS },
|
|
352
|
+
{ rel: 'types.ts', content: TYPES_TS },
|
|
353
|
+
{ rel: 'client.ts', content: CLIENT_TS },
|
|
354
|
+
{ rel: 'server.ts', content: SERVER_TS },
|
|
355
|
+
{ rel: 'provider.tsx', content: PROVIDER_TSX },
|
|
356
|
+
{ rel: 'dictionaries/en.json', content: PLACEHOLDER_DICT },
|
|
357
|
+
{ rel: 'dictionaries/nl.json', content: PLACEHOLDER_DICT },
|
|
358
|
+
];
|
|
359
|
+
const written = [];
|
|
360
|
+
const skipped = [];
|
|
361
|
+
for (const { rel, content } of files) {
|
|
362
|
+
const abs = path.join(i18nDir, rel);
|
|
363
|
+
if (fs.existsSync(abs) && !overwrite) {
|
|
364
|
+
skipped.push(rel);
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
fs.writeFileSync(abs, content, 'utf-8');
|
|
368
|
+
written.push(rel);
|
|
369
|
+
}
|
|
370
|
+
return { written, skipped };
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CnB,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ChB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFjB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GjB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DpB,CAAC;AAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAkBjE,MAAM,UAAU,YAAY,CAAC,IAAqB;IAC9C,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAEpD,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,KAAK,GAA4C;QACnD,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE;QAC5C,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE;QACxC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE;QACxC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE;QAC9C,EAAE,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC1D,EAAE,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,EAAE;KAC7D,CAAC;IAEF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,SAAS;QACb,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC"}
|