poly-lexis 0.2.1 → 0.3.0
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/README.md +40 -0
- package/dist/cli/translations.js +111 -63
- package/dist/cli/translations.js.map +1 -1
- package/dist/index.d.ts +54 -8
- package/dist/index.js +155 -63
- package/dist/index.js.map +1 -1
- package/dist/scripts/verify-translations.js +505 -0
- package/dist/scripts/verify-translations.js.map +1 -0
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -118,8 +118,9 @@ interface ManageTranslationsOptions {
|
|
|
118
118
|
/**
|
|
119
119
|
* Smart translation management - handles init, validation, auto-fill, and type generation
|
|
120
120
|
* based on the current state of the project
|
|
121
|
+
* @returns true if translations are valid, false otherwise
|
|
121
122
|
*/
|
|
122
|
-
declare function manageTranslations(projectRoot?: string, options?: ManageTranslationsOptions): Promise<
|
|
123
|
+
declare function manageTranslations(projectRoot?: string, options?: ManageTranslationsOptions): Promise<boolean>;
|
|
123
124
|
|
|
124
125
|
/**
|
|
125
126
|
* Validate all translations against the source language
|
|
@@ -134,11 +135,27 @@ declare function getMissingForLanguage(projectRoot: string, language: string): A
|
|
|
134
135
|
}>;
|
|
135
136
|
|
|
136
137
|
/**
|
|
137
|
-
*
|
|
138
|
-
* Based on Google Translate API supported languages (ISO 639-1 and regional variants)
|
|
139
|
-
* Complete list of all languages supported by Google Cloud Translation API
|
|
138
|
+
* Translation provider types
|
|
140
139
|
*/
|
|
141
|
-
declare const
|
|
140
|
+
declare const TRANSLATION_PROVIDERS: readonly ["deepl", "google"];
|
|
141
|
+
type TranslationProviderType = (typeof TRANSLATION_PROVIDERS)[number];
|
|
142
|
+
/**
|
|
143
|
+
* DeepL supported target languages
|
|
144
|
+
* Based on DeepL API v2 documentation
|
|
145
|
+
*/
|
|
146
|
+
declare const DEEPL_LANGUAGES: readonly ["ar", "bg", "cs", "da", "de", "el", "en", "en_gb", "en_us", "es", "es_419", "et", "fi", "fr", "he", "hu", "id", "it", "ja", "ko", "lt", "lv", "nb", "nl", "pl", "pt", "pt_br", "pt_pt", "ro", "ru", "sk", "sl", "sv", "th", "tr", "uk", "vi", "zh", "zh_hans", "zh_hant"];
|
|
147
|
+
/**
|
|
148
|
+
* Google Translate supported languages
|
|
149
|
+
* Based on Google Cloud Translation API v2
|
|
150
|
+
* Reference: https://docs.cloud.google.com/translate/docs/languages
|
|
151
|
+
*/
|
|
152
|
+
declare const GOOGLE_LANGUAGES: readonly ["af", "sq", "am", "ar", "hy", "az", "eu", "be", "bn", "bs", "bg", "ca", "ceb", "zh", "zh_cn", "zh_tw", "co", "hr", "cs", "da", "nl", "en", "eo", "et", "fi", "fr", "fy", "gl", "ka", "de", "el", "gu", "ht", "ha", "haw", "he", "hi", "hmn", "hu", "is", "ig", "id", "ga", "it", "ja", "jv", "kn", "kk", "km", "rw", "ko", "ku", "ky", "lo", "la", "lv", "lt", "lb", "mk", "mg", "ms", "ml", "mt", "mi", "mr", "mn", "my", "ne", "no", "ny", "or", "ps", "fa", "pl", "pt", "pt_br", "pa", "ro", "ru", "sm", "gd", "sr", "st", "sn", "sd", "si", "sk", "sl", "so", "es", "su", "sw", "sv", "tl", "tg", "ta", "tt", "te", "th", "tr", "tk", "uk", "ur", "ug", "uz", "vi", "cy", "xh", "yi", "yo", "zu"];
|
|
153
|
+
/**
|
|
154
|
+
* All supported language codes (union of DeepL and Google Translate)
|
|
155
|
+
*/
|
|
156
|
+
declare const SUPPORTED_LANGUAGES: readonly string[];
|
|
157
|
+
type DeepLLanguage = (typeof DEEPL_LANGUAGES)[number];
|
|
158
|
+
type GoogleLanguage = (typeof GOOGLE_LANGUAGES)[number];
|
|
142
159
|
type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];
|
|
143
160
|
/**
|
|
144
161
|
* JSON Schema for .translationsrc.json
|
|
@@ -159,7 +176,7 @@ declare const TRANSLATION_CONFIG_SCHEMA: {
|
|
|
159
176
|
description: string;
|
|
160
177
|
items: {
|
|
161
178
|
type: string;
|
|
162
|
-
enum: readonly [
|
|
179
|
+
enum: readonly string[];
|
|
163
180
|
};
|
|
164
181
|
minItems: number;
|
|
165
182
|
uniqueItems: boolean;
|
|
@@ -167,7 +184,7 @@ declare const TRANSLATION_CONFIG_SCHEMA: {
|
|
|
167
184
|
sourceLanguage: {
|
|
168
185
|
type: string;
|
|
169
186
|
description: string;
|
|
170
|
-
enum: readonly [
|
|
187
|
+
enum: readonly string[];
|
|
171
188
|
default: string;
|
|
172
189
|
};
|
|
173
190
|
typesOutputPath: {
|
|
@@ -175,6 +192,12 @@ declare const TRANSLATION_CONFIG_SCHEMA: {
|
|
|
175
192
|
description: string;
|
|
176
193
|
default: string;
|
|
177
194
|
};
|
|
195
|
+
provider: {
|
|
196
|
+
type: string;
|
|
197
|
+
description: string;
|
|
198
|
+
enum: readonly ["deepl", "google"];
|
|
199
|
+
default: string;
|
|
200
|
+
};
|
|
178
201
|
};
|
|
179
202
|
required: string[];
|
|
180
203
|
additionalProperties: boolean;
|
|
@@ -183,6 +206,18 @@ declare const TRANSLATION_CONFIG_SCHEMA: {
|
|
|
183
206
|
* Validate if a language code is supported
|
|
184
207
|
*/
|
|
185
208
|
declare function isValidLanguage(lang: string): lang is SupportedLanguage;
|
|
209
|
+
/**
|
|
210
|
+
* Validate if a language is supported by DeepL
|
|
211
|
+
*/
|
|
212
|
+
declare function isValidDeepLLanguage(lang: string): lang is DeepLLanguage;
|
|
213
|
+
/**
|
|
214
|
+
* Validate if a language is supported by Google Translate
|
|
215
|
+
*/
|
|
216
|
+
declare function isValidGoogleLanguage(lang: string): lang is GoogleLanguage;
|
|
217
|
+
/**
|
|
218
|
+
* Validate if a language is supported by a specific provider
|
|
219
|
+
*/
|
|
220
|
+
declare function isValidLanguageForProvider(lang: string, provider: TranslationProviderType): boolean;
|
|
186
221
|
/**
|
|
187
222
|
* Validate languages array
|
|
188
223
|
*/
|
|
@@ -190,6 +225,17 @@ declare function validateLanguages(languages: string[]): {
|
|
|
190
225
|
valid: boolean;
|
|
191
226
|
invalid: string[];
|
|
192
227
|
};
|
|
228
|
+
/**
|
|
229
|
+
* Validate languages array for a specific provider
|
|
230
|
+
*/
|
|
231
|
+
declare function validateLanguagesForProvider(languages: string[], provider: TranslationProviderType): {
|
|
232
|
+
valid: boolean;
|
|
233
|
+
invalid: string[];
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Get supported languages for a specific provider
|
|
237
|
+
*/
|
|
238
|
+
declare function getSupportedLanguages(provider: TranslationProviderType): readonly string[];
|
|
193
239
|
|
|
194
240
|
/**
|
|
195
241
|
* Translation provider interface
|
|
@@ -344,4 +390,4 @@ declare function sortKeys<T extends Record<string, unknown>>(obj: T): T;
|
|
|
344
390
|
*/
|
|
345
391
|
declare function ensureTranslationsStructure(translationsPath: string, languages: string[]): void;
|
|
346
392
|
|
|
347
|
-
export { DEFAULT_CONFIG, DEFAULT_LANGUAGES, GoogleTranslateProvider, type ManageTranslationsOptions, type MissingTranslation, SUPPORTED_LANGUAGES, type SupportedLanguage, TRANSLATION_CONFIG_SCHEMA, type TranslateOptions, type TranslationConfig, type TranslationEntry, type TranslationFile, type TranslationFiles, type TranslationProvider, type TranslationProviderFactory, type TranslationResult, type ValidationResult, addTranslationKey, addTranslationKeys, autoFillTranslations, detectExistingTranslations, ensureTranslationsStructure, extractVariables, fillNamespace, generateTranslationTypes, getAvailableLanguages, getMissingForLanguage, getNamespaces, getTranslationProvider, hasInterpolation, initTranslations, initTranslationsInteractive, isValidLanguage, loadConfig, manageTranslations, readTranslations, resetTranslationProvider, setTranslationProvider, sortKeys, translateBatch, translateText, validateLanguages, validateTranslations, validateVariables, writeTranslation };
|
|
393
|
+
export { DEEPL_LANGUAGES, DEFAULT_CONFIG, DEFAULT_LANGUAGES, type DeepLLanguage, GOOGLE_LANGUAGES, type GoogleLanguage, GoogleTranslateProvider, type ManageTranslationsOptions, type MissingTranslation, SUPPORTED_LANGUAGES, type SupportedLanguage, TRANSLATION_CONFIG_SCHEMA, TRANSLATION_PROVIDERS, type TranslateOptions, type TranslationConfig, type TranslationEntry, type TranslationFile, type TranslationFiles, type TranslationProvider, type TranslationProviderFactory, type TranslationProviderType, type TranslationResult, type ValidationResult, addTranslationKey, addTranslationKeys, autoFillTranslations, detectExistingTranslations, ensureTranslationsStructure, extractVariables, fillNamespace, generateTranslationTypes, getAvailableLanguages, getMissingForLanguage, getNamespaces, getSupportedLanguages, getTranslationProvider, hasInterpolation, initTranslations, initTranslationsInteractive, isValidDeepLLanguage, isValidGoogleLanguage, isValidLanguage, isValidLanguageForProvider, loadConfig, manageTranslations, readTranslations, resetTranslationProvider, setTranslationProvider, sortKeys, translateBatch, translateText, validateLanguages, validateLanguagesForProvider, validateTranslations, validateVariables, writeTranslation };
|
package/dist/index.js
CHANGED
|
@@ -93,6 +93,22 @@ var init_utils = __esm({
|
|
|
93
93
|
function isValidLanguage(lang) {
|
|
94
94
|
return SUPPORTED_LANGUAGES.includes(lang);
|
|
95
95
|
}
|
|
96
|
+
function isValidDeepLLanguage(lang) {
|
|
97
|
+
return DEEPL_LANGUAGES.includes(lang);
|
|
98
|
+
}
|
|
99
|
+
function isValidGoogleLanguage(lang) {
|
|
100
|
+
return GOOGLE_LANGUAGES.includes(lang);
|
|
101
|
+
}
|
|
102
|
+
function isValidLanguageForProvider(lang, provider) {
|
|
103
|
+
switch (provider) {
|
|
104
|
+
case "deepl":
|
|
105
|
+
return isValidDeepLLanguage(lang);
|
|
106
|
+
case "google":
|
|
107
|
+
return isValidGoogleLanguage(lang);
|
|
108
|
+
default:
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
96
112
|
function validateLanguages(languages) {
|
|
97
113
|
const invalid = languages.filter((lang) => !isValidLanguage(lang));
|
|
98
114
|
return {
|
|
@@ -100,11 +116,111 @@ function validateLanguages(languages) {
|
|
|
100
116
|
invalid
|
|
101
117
|
};
|
|
102
118
|
}
|
|
103
|
-
|
|
119
|
+
function validateLanguagesForProvider(languages, provider) {
|
|
120
|
+
const invalid = languages.filter((lang) => !isValidLanguageForProvider(lang, provider));
|
|
121
|
+
return {
|
|
122
|
+
valid: invalid.length === 0,
|
|
123
|
+
invalid
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function getSupportedLanguages(provider) {
|
|
127
|
+
switch (provider) {
|
|
128
|
+
case "deepl":
|
|
129
|
+
return DEEPL_LANGUAGES;
|
|
130
|
+
case "google":
|
|
131
|
+
return GOOGLE_LANGUAGES;
|
|
132
|
+
default:
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
var TRANSLATION_PROVIDERS, DEEPL_LANGUAGES, GOOGLE_LANGUAGES, SUPPORTED_LANGUAGES, TRANSLATION_CONFIG_SCHEMA;
|
|
104
137
|
var init_schema = __esm({
|
|
105
138
|
"src/translations/core/schema.ts"() {
|
|
106
139
|
"use strict";
|
|
107
|
-
|
|
140
|
+
TRANSLATION_PROVIDERS = ["deepl", "google"];
|
|
141
|
+
DEEPL_LANGUAGES = [
|
|
142
|
+
"ar",
|
|
143
|
+
// Arabic
|
|
144
|
+
"bg",
|
|
145
|
+
// Bulgarian
|
|
146
|
+
"cs",
|
|
147
|
+
// Czech
|
|
148
|
+
"da",
|
|
149
|
+
// Danish
|
|
150
|
+
"de",
|
|
151
|
+
// German
|
|
152
|
+
"el",
|
|
153
|
+
// Greek
|
|
154
|
+
"en",
|
|
155
|
+
// English (unspecified)
|
|
156
|
+
"en_gb",
|
|
157
|
+
// English (British)
|
|
158
|
+
"en_us",
|
|
159
|
+
// English (American)
|
|
160
|
+
"es",
|
|
161
|
+
// Spanish
|
|
162
|
+
"es_419",
|
|
163
|
+
// Spanish (Latin American)
|
|
164
|
+
"et",
|
|
165
|
+
// Estonian
|
|
166
|
+
"fi",
|
|
167
|
+
// Finnish
|
|
168
|
+
"fr",
|
|
169
|
+
// French
|
|
170
|
+
"he",
|
|
171
|
+
// Hebrew (next-gen models only)
|
|
172
|
+
"hu",
|
|
173
|
+
// Hungarian
|
|
174
|
+
"id",
|
|
175
|
+
// Indonesian
|
|
176
|
+
"it",
|
|
177
|
+
// Italian
|
|
178
|
+
"ja",
|
|
179
|
+
// Japanese
|
|
180
|
+
"ko",
|
|
181
|
+
// Korean
|
|
182
|
+
"lt",
|
|
183
|
+
// Lithuanian
|
|
184
|
+
"lv",
|
|
185
|
+
// Latvian
|
|
186
|
+
"nb",
|
|
187
|
+
// Norwegian Bokmål
|
|
188
|
+
"nl",
|
|
189
|
+
// Dutch
|
|
190
|
+
"pl",
|
|
191
|
+
// Polish
|
|
192
|
+
"pt",
|
|
193
|
+
// Portuguese (unspecified)
|
|
194
|
+
"pt_br",
|
|
195
|
+
// Portuguese (Brazilian)
|
|
196
|
+
"pt_pt",
|
|
197
|
+
// Portuguese (excluding Brazilian)
|
|
198
|
+
"ro",
|
|
199
|
+
// Romanian
|
|
200
|
+
"ru",
|
|
201
|
+
// Russian
|
|
202
|
+
"sk",
|
|
203
|
+
// Slovak
|
|
204
|
+
"sl",
|
|
205
|
+
// Slovenian
|
|
206
|
+
"sv",
|
|
207
|
+
// Swedish
|
|
208
|
+
"th",
|
|
209
|
+
// Thai (next-gen models only)
|
|
210
|
+
"tr",
|
|
211
|
+
// Turkish
|
|
212
|
+
"uk",
|
|
213
|
+
// Ukrainian
|
|
214
|
+
"vi",
|
|
215
|
+
// Vietnamese (next-gen models only)
|
|
216
|
+
"zh",
|
|
217
|
+
// Chinese (unspecified)
|
|
218
|
+
"zh_hans",
|
|
219
|
+
// Chinese (simplified)
|
|
220
|
+
"zh_hant"
|
|
221
|
+
// Chinese (traditional)
|
|
222
|
+
];
|
|
223
|
+
GOOGLE_LANGUAGES = [
|
|
108
224
|
"af",
|
|
109
225
|
// Afrikaans
|
|
110
226
|
"sq",
|
|
@@ -115,22 +231,14 @@ var init_schema = __esm({
|
|
|
115
231
|
// Arabic
|
|
116
232
|
"hy",
|
|
117
233
|
// Armenian
|
|
118
|
-
"as",
|
|
119
|
-
// Assamese
|
|
120
|
-
"ay",
|
|
121
|
-
// Aymara
|
|
122
234
|
"az",
|
|
123
235
|
// Azerbaijani
|
|
124
|
-
"bm",
|
|
125
|
-
// Bambara
|
|
126
236
|
"eu",
|
|
127
237
|
// Basque
|
|
128
238
|
"be",
|
|
129
239
|
// Belarusian
|
|
130
240
|
"bn",
|
|
131
241
|
// Bengali
|
|
132
|
-
"bho",
|
|
133
|
-
// Bhojpuri
|
|
134
242
|
"bs",
|
|
135
243
|
// Bosnian
|
|
136
244
|
"bg",
|
|
@@ -139,12 +247,10 @@ var init_schema = __esm({
|
|
|
139
247
|
// Catalan
|
|
140
248
|
"ceb",
|
|
141
249
|
// Cebuano
|
|
142
|
-
"ny",
|
|
143
|
-
// Chichewa
|
|
144
250
|
"zh",
|
|
145
|
-
// Chinese (Simplified)
|
|
251
|
+
// Chinese (Simplified)
|
|
146
252
|
"zh_cn",
|
|
147
|
-
// Chinese (Simplified)
|
|
253
|
+
// Chinese (Simplified)
|
|
148
254
|
"zh_tw",
|
|
149
255
|
// Chinese (Traditional)
|
|
150
256
|
"co",
|
|
@@ -155,10 +261,6 @@ var init_schema = __esm({
|
|
|
155
261
|
// Czech
|
|
156
262
|
"da",
|
|
157
263
|
// Danish
|
|
158
|
-
"dv",
|
|
159
|
-
// Dhivehi
|
|
160
|
-
"doi",
|
|
161
|
-
// Dogri
|
|
162
264
|
"nl",
|
|
163
265
|
// Dutch
|
|
164
266
|
"en",
|
|
@@ -167,14 +269,12 @@ var init_schema = __esm({
|
|
|
167
269
|
// Esperanto
|
|
168
270
|
"et",
|
|
169
271
|
// Estonian
|
|
170
|
-
"ee",
|
|
171
|
-
// Ewe
|
|
172
|
-
"tl",
|
|
173
|
-
// Filipino (Tagalog)
|
|
174
272
|
"fi",
|
|
175
273
|
// Finnish
|
|
176
274
|
"fr",
|
|
177
275
|
// French
|
|
276
|
+
"fy",
|
|
277
|
+
// Frisian
|
|
178
278
|
"gl",
|
|
179
279
|
// Galician
|
|
180
280
|
"ka",
|
|
@@ -183,8 +283,6 @@ var init_schema = __esm({
|
|
|
183
283
|
// German
|
|
184
284
|
"el",
|
|
185
285
|
// Greek
|
|
186
|
-
"gn",
|
|
187
|
-
// Guarani
|
|
188
286
|
"gu",
|
|
189
287
|
// Gujarati
|
|
190
288
|
"ht",
|
|
@@ -193,8 +291,6 @@ var init_schema = __esm({
|
|
|
193
291
|
// Hausa
|
|
194
292
|
"haw",
|
|
195
293
|
// Hawaiian
|
|
196
|
-
"iw",
|
|
197
|
-
// Hebrew (legacy code, 'he' is preferred)
|
|
198
294
|
"he",
|
|
199
295
|
// Hebrew
|
|
200
296
|
"hi",
|
|
@@ -207,8 +303,6 @@ var init_schema = __esm({
|
|
|
207
303
|
// Icelandic
|
|
208
304
|
"ig",
|
|
209
305
|
// Igbo
|
|
210
|
-
"ilo",
|
|
211
|
-
// Ilocano
|
|
212
306
|
"id",
|
|
213
307
|
// Indonesian
|
|
214
308
|
"ga",
|
|
@@ -217,7 +311,7 @@ var init_schema = __esm({
|
|
|
217
311
|
// Italian
|
|
218
312
|
"ja",
|
|
219
313
|
// Japanese
|
|
220
|
-
"
|
|
314
|
+
"jv",
|
|
221
315
|
// Javanese
|
|
222
316
|
"kn",
|
|
223
317
|
// Kannada
|
|
@@ -227,16 +321,10 @@ var init_schema = __esm({
|
|
|
227
321
|
// Khmer
|
|
228
322
|
"rw",
|
|
229
323
|
// Kinyarwanda
|
|
230
|
-
"gom",
|
|
231
|
-
// Konkani
|
|
232
324
|
"ko",
|
|
233
325
|
// Korean
|
|
234
|
-
"kri",
|
|
235
|
-
// Krio
|
|
236
326
|
"ku",
|
|
237
|
-
// Kurdish
|
|
238
|
-
"ckb",
|
|
239
|
-
// Kurdish (Sorani)
|
|
327
|
+
// Kurdish
|
|
240
328
|
"ky",
|
|
241
329
|
// Kyrgyz
|
|
242
330
|
"lo",
|
|
@@ -245,18 +333,12 @@ var init_schema = __esm({
|
|
|
245
333
|
// Latin
|
|
246
334
|
"lv",
|
|
247
335
|
// Latvian
|
|
248
|
-
"ln",
|
|
249
|
-
// Lingala
|
|
250
336
|
"lt",
|
|
251
337
|
// Lithuanian
|
|
252
|
-
"lg",
|
|
253
|
-
// Luganda
|
|
254
338
|
"lb",
|
|
255
339
|
// Luxembourgish
|
|
256
340
|
"mk",
|
|
257
341
|
// Macedonian
|
|
258
|
-
"mai",
|
|
259
|
-
// Maithili
|
|
260
342
|
"mg",
|
|
261
343
|
// Malagasy
|
|
262
344
|
"ms",
|
|
@@ -269,10 +351,6 @@ var init_schema = __esm({
|
|
|
269
351
|
// Maori
|
|
270
352
|
"mr",
|
|
271
353
|
// Marathi
|
|
272
|
-
"mni",
|
|
273
|
-
// Meiteilon (Manipuri)
|
|
274
|
-
"lus",
|
|
275
|
-
// Mizo
|
|
276
354
|
"mn",
|
|
277
355
|
// Mongolian
|
|
278
356
|
"my",
|
|
@@ -281,10 +359,10 @@ var init_schema = __esm({
|
|
|
281
359
|
// Nepali
|
|
282
360
|
"no",
|
|
283
361
|
// Norwegian
|
|
362
|
+
"ny",
|
|
363
|
+
// Nyanja (Chichewa)
|
|
284
364
|
"or",
|
|
285
|
-
// Odia
|
|
286
|
-
"om",
|
|
287
|
-
// Oromo
|
|
365
|
+
// Odia (Oriya)
|
|
288
366
|
"ps",
|
|
289
367
|
// Pashto
|
|
290
368
|
"fa",
|
|
@@ -297,18 +375,14 @@ var init_schema = __esm({
|
|
|
297
375
|
// Portuguese (Brazil)
|
|
298
376
|
"pa",
|
|
299
377
|
// Punjabi
|
|
300
|
-
"qu",
|
|
301
|
-
// Quechua
|
|
302
378
|
"ro",
|
|
303
379
|
// Romanian
|
|
304
380
|
"ru",
|
|
305
381
|
// Russian
|
|
306
382
|
"sm",
|
|
307
383
|
// Samoan
|
|
308
|
-
"sa",
|
|
309
|
-
// Sanskrit
|
|
310
384
|
"gd",
|
|
311
|
-
//
|
|
385
|
+
// Scots Gaelic
|
|
312
386
|
"sr",
|
|
313
387
|
// Serbian
|
|
314
388
|
"st",
|
|
@@ -318,7 +392,7 @@ var init_schema = __esm({
|
|
|
318
392
|
"sd",
|
|
319
393
|
// Sindhi
|
|
320
394
|
"si",
|
|
321
|
-
// Sinhala
|
|
395
|
+
// Sinhala (Sinhalese)
|
|
322
396
|
"sk",
|
|
323
397
|
// Slovak
|
|
324
398
|
"sl",
|
|
@@ -333,6 +407,8 @@ var init_schema = __esm({
|
|
|
333
407
|
// Swahili
|
|
334
408
|
"sv",
|
|
335
409
|
// Swedish
|
|
410
|
+
"tl",
|
|
411
|
+
// Tagalog (Filipino)
|
|
336
412
|
"tg",
|
|
337
413
|
// Tajik
|
|
338
414
|
"ta",
|
|
@@ -343,16 +419,10 @@ var init_schema = __esm({
|
|
|
343
419
|
// Telugu
|
|
344
420
|
"th",
|
|
345
421
|
// Thai
|
|
346
|
-
"ti",
|
|
347
|
-
// Tigrinya
|
|
348
|
-
"ts",
|
|
349
|
-
// Tsonga
|
|
350
422
|
"tr",
|
|
351
423
|
// Turkish
|
|
352
424
|
"tk",
|
|
353
425
|
// Turkmen
|
|
354
|
-
"ak",
|
|
355
|
-
// Twi
|
|
356
426
|
"uk",
|
|
357
427
|
// Ukrainian
|
|
358
428
|
"ur",
|
|
@@ -374,6 +444,9 @@ var init_schema = __esm({
|
|
|
374
444
|
"zu"
|
|
375
445
|
// Zulu
|
|
376
446
|
];
|
|
447
|
+
SUPPORTED_LANGUAGES = Array.from(
|
|
448
|
+
/* @__PURE__ */ new Set([...DEEPL_LANGUAGES, ...GOOGLE_LANGUAGES])
|
|
449
|
+
).sort();
|
|
377
450
|
TRANSLATION_CONFIG_SCHEMA = {
|
|
378
451
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
379
452
|
title: "Translation Configuration",
|
|
@@ -405,6 +478,12 @@ var init_schema = __esm({
|
|
|
405
478
|
type: "string",
|
|
406
479
|
description: "Path to output TypeScript types file",
|
|
407
480
|
default: "src/types/i18nTypes.ts"
|
|
481
|
+
},
|
|
482
|
+
provider: {
|
|
483
|
+
type: "string",
|
|
484
|
+
description: "Translation provider to use (deepl or google)",
|
|
485
|
+
enum: TRANSLATION_PROVIDERS,
|
|
486
|
+
default: "deepl"
|
|
408
487
|
}
|
|
409
488
|
},
|
|
410
489
|
required: ["translationsPath", "languages", "sourceLanguage"],
|
|
@@ -580,7 +659,7 @@ function preserveVariables(text) {
|
|
|
580
659
|
const variableMap = /* @__PURE__ */ new Map();
|
|
581
660
|
let placeholderIndex = 0;
|
|
582
661
|
const textWithPlaceholders = text.replace(/\{\{([^}]+)\}\}/g, (match) => {
|
|
583
|
-
const placeholder = `
|
|
662
|
+
const placeholder = `XXX_${placeholderIndex}_XXX`;
|
|
584
663
|
variableMap.set(placeholder, match);
|
|
585
664
|
placeholderIndex++;
|
|
586
665
|
return placeholder;
|
|
@@ -1185,7 +1264,7 @@ async function manageTranslations(projectRoot = process.cwd(), options = {}) {
|
|
|
1185
1264
|
if (!fs5.existsSync(sourceLangPath)) {
|
|
1186
1265
|
console.log(`\u26A0\uFE0F Source language directory not found: ${sourceLangPath}`);
|
|
1187
1266
|
console.log("Please add translation files to the source language directory.\n");
|
|
1188
|
-
return;
|
|
1267
|
+
return false;
|
|
1189
1268
|
}
|
|
1190
1269
|
console.log("\u{1F50D} Validating translations...\n");
|
|
1191
1270
|
const validationResult = validateTranslations(projectRoot);
|
|
@@ -1249,6 +1328,11 @@ async function manageTranslations(projectRoot = process.cwd(), options = {}) {
|
|
|
1249
1328
|
console.log("\n\u2705 All systems ready!");
|
|
1250
1329
|
}
|
|
1251
1330
|
console.log("=====\n");
|
|
1331
|
+
if (autoFill && !dryRun && apiKey) {
|
|
1332
|
+
const finalValidation = validateTranslations(projectRoot);
|
|
1333
|
+
return finalValidation.valid;
|
|
1334
|
+
}
|
|
1335
|
+
return validationResult.valid;
|
|
1252
1336
|
}
|
|
1253
1337
|
|
|
1254
1338
|
// src/translations/index.ts
|
|
@@ -1256,11 +1340,14 @@ init_schema();
|
|
|
1256
1340
|
init_types();
|
|
1257
1341
|
init_utils();
|
|
1258
1342
|
export {
|
|
1343
|
+
DEEPL_LANGUAGES,
|
|
1259
1344
|
DEFAULT_CONFIG,
|
|
1260
1345
|
DEFAULT_LANGUAGES,
|
|
1346
|
+
GOOGLE_LANGUAGES,
|
|
1261
1347
|
GoogleTranslateProvider,
|
|
1262
1348
|
SUPPORTED_LANGUAGES,
|
|
1263
1349
|
TRANSLATION_CONFIG_SCHEMA,
|
|
1350
|
+
TRANSLATION_PROVIDERS,
|
|
1264
1351
|
addTranslationKey,
|
|
1265
1352
|
addTranslationKeys,
|
|
1266
1353
|
autoFillTranslations,
|
|
@@ -1272,11 +1359,15 @@ export {
|
|
|
1272
1359
|
getAvailableLanguages,
|
|
1273
1360
|
getMissingForLanguage,
|
|
1274
1361
|
getNamespaces,
|
|
1362
|
+
getSupportedLanguages,
|
|
1275
1363
|
getTranslationProvider,
|
|
1276
1364
|
hasInterpolation,
|
|
1277
1365
|
initTranslations,
|
|
1278
1366
|
initTranslationsInteractive,
|
|
1367
|
+
isValidDeepLLanguage,
|
|
1368
|
+
isValidGoogleLanguage,
|
|
1279
1369
|
isValidLanguage,
|
|
1370
|
+
isValidLanguageForProvider,
|
|
1280
1371
|
loadConfig,
|
|
1281
1372
|
manageTranslations,
|
|
1282
1373
|
readTranslations,
|
|
@@ -1286,6 +1377,7 @@ export {
|
|
|
1286
1377
|
translateBatch,
|
|
1287
1378
|
translateText,
|
|
1288
1379
|
validateLanguages,
|
|
1380
|
+
validateLanguagesForProvider,
|
|
1289
1381
|
validateTranslations,
|
|
1290
1382
|
validateVariables,
|
|
1291
1383
|
writeTranslation
|