lingo.dev 0.74.7 → 0.74.9
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/build/cli.cjs +62 -79
- package/build/cli.cjs.map +1 -1
- package/build/cli.mjs +35 -52
- package/build/cli.mjs.map +1 -1
- package/package.json +3 -3
package/build/cli.mjs
CHANGED
|
@@ -704,21 +704,18 @@ import path5 from "path";
|
|
|
704
704
|
function createTextFileLoader(pathPattern) {
|
|
705
705
|
return createLoader({
|
|
706
706
|
async pull(locale) {
|
|
707
|
-
const
|
|
708
|
-
const
|
|
709
|
-
|
|
710
|
-
if (!exists) {
|
|
711
|
-
return "";
|
|
712
|
-
}
|
|
713
|
-
const result = await fs5.readFile(finalPath, "utf-8");
|
|
714
|
-
return result;
|
|
707
|
+
const result = await readFileForLocale(pathPattern, locale);
|
|
708
|
+
const trimmedResult = result.trim();
|
|
709
|
+
return trimmedResult;
|
|
715
710
|
},
|
|
716
|
-
async push(locale, data) {
|
|
711
|
+
async push(locale, data, _19, originalLocale) {
|
|
717
712
|
const draftPath = pathPattern.replace("[locale]", locale);
|
|
718
713
|
const finalPath = path5.resolve(draftPath);
|
|
719
714
|
const dirPath = path5.dirname(finalPath);
|
|
720
715
|
await fs5.mkdir(dirPath, { recursive: true });
|
|
721
|
-
const
|
|
716
|
+
const trimmedPayload = data.trim();
|
|
717
|
+
const trailingNewLine = await getTrailingNewLine(pathPattern, locale, originalLocale);
|
|
718
|
+
let finalPayload = trimmedPayload + trailingNewLine;
|
|
722
719
|
await fs5.writeFile(finalPath, finalPayload, {
|
|
723
720
|
encoding: "utf-8",
|
|
724
721
|
flag: "w"
|
|
@@ -726,6 +723,26 @@ function createTextFileLoader(pathPattern) {
|
|
|
726
723
|
}
|
|
727
724
|
});
|
|
728
725
|
}
|
|
726
|
+
async function readFileForLocale(pathPattern, locale) {
|
|
727
|
+
const draftPath = pathPattern.replace("[locale]", locale);
|
|
728
|
+
const finalPath = path5.resolve(draftPath);
|
|
729
|
+
const exists = await fs5.access(finalPath).then(() => true).catch(() => false);
|
|
730
|
+
if (!exists) {
|
|
731
|
+
return "";
|
|
732
|
+
}
|
|
733
|
+
return fs5.readFile(finalPath, "utf-8");
|
|
734
|
+
}
|
|
735
|
+
async function getTrailingNewLine(pathPattern, locale, originalLocale) {
|
|
736
|
+
let templateData = await readFileForLocale(pathPattern, locale);
|
|
737
|
+
if (!templateData) {
|
|
738
|
+
templateData = await readFileForLocale(pathPattern, originalLocale);
|
|
739
|
+
}
|
|
740
|
+
if (templateData?.match(/[\r\n]$/)) {
|
|
741
|
+
const ending = templateData?.includes("\r\n") ? "\r\n" : templateData?.includes("\r") ? "\r" : "\n";
|
|
742
|
+
return ending;
|
|
743
|
+
}
|
|
744
|
+
return "";
|
|
745
|
+
}
|
|
729
746
|
|
|
730
747
|
// src/cli/loaders/yaml.ts
|
|
731
748
|
import YAML from "yaml";
|
|
@@ -2262,7 +2279,7 @@ ${currentIndent}}`;
|
|
|
2262
2279
|
const bIsWhitespace = /^\s*$/.test(b);
|
|
2263
2280
|
if (aIsWhitespace && !bIsWhitespace) return -1;
|
|
2264
2281
|
if (!aIsWhitespace && bIsWhitespace) return 1;
|
|
2265
|
-
return a.localeCompare(b, void 0, { numeric:
|
|
2282
|
+
return a.localeCompare(b, void 0, { numeric: true });
|
|
2266
2283
|
});
|
|
2267
2284
|
const items = sortedKeys.map((key) => {
|
|
2268
2285
|
const value = data[key];
|
|
@@ -2294,24 +2311,6 @@ function createPlutilJsonTextLoader() {
|
|
|
2294
2311
|
});
|
|
2295
2312
|
}
|
|
2296
2313
|
|
|
2297
|
-
// src/cli/loaders/new-line.ts
|
|
2298
|
-
function createNewLineLoader() {
|
|
2299
|
-
return createLoader({
|
|
2300
|
-
async pull(locale, input) {
|
|
2301
|
-
return input;
|
|
2302
|
-
},
|
|
2303
|
-
async push(locale, data, originalInput) {
|
|
2304
|
-
if (!data) return "";
|
|
2305
|
-
const trimmed = data.replace(/[\r\n]+$/, "");
|
|
2306
|
-
if (originalInput?.match(/[\r\n]$/)) {
|
|
2307
|
-
const ending = originalInput?.includes("\r\n") ? "\r\n" : originalInput?.includes("\r") ? "\r" : "\n";
|
|
2308
|
-
return trimmed + ending;
|
|
2309
|
-
}
|
|
2310
|
-
return trimmed;
|
|
2311
|
-
}
|
|
2312
|
-
});
|
|
2313
|
-
}
|
|
2314
|
-
|
|
2315
2314
|
// src/cli/loaders/index.ts
|
|
2316
2315
|
function createBucketLoader(bucketType, bucketPathPattern) {
|
|
2317
2316
|
switch (bucketType) {
|
|
@@ -2320,7 +2319,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2320
2319
|
case "android":
|
|
2321
2320
|
return composeLoaders(
|
|
2322
2321
|
createTextFileLoader(bucketPathPattern),
|
|
2323
|
-
createNewLineLoader(),
|
|
2324
2322
|
createAndroidLoader(),
|
|
2325
2323
|
createFlatLoader(),
|
|
2326
2324
|
createSyncLoader(),
|
|
@@ -2329,7 +2327,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2329
2327
|
case "csv":
|
|
2330
2328
|
return composeLoaders(
|
|
2331
2329
|
createTextFileLoader(bucketPathPattern),
|
|
2332
|
-
createNewLineLoader(),
|
|
2333
2330
|
createCsvLoader(),
|
|
2334
2331
|
createFlatLoader(),
|
|
2335
2332
|
createSyncLoader(),
|
|
@@ -2338,7 +2335,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2338
2335
|
case "html":
|
|
2339
2336
|
return composeLoaders(
|
|
2340
2337
|
createTextFileLoader(bucketPathPattern),
|
|
2341
|
-
createNewLineLoader(),
|
|
2342
2338
|
createPrettierLoader({ parser: "html", alwaysFormat: true }),
|
|
2343
2339
|
createHtmlLoader(),
|
|
2344
2340
|
createSyncLoader(),
|
|
@@ -2347,7 +2343,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2347
2343
|
case "json":
|
|
2348
2344
|
return composeLoaders(
|
|
2349
2345
|
createTextFileLoader(bucketPathPattern),
|
|
2350
|
-
createNewLineLoader(),
|
|
2351
2346
|
createPrettierLoader({ parser: "json" }),
|
|
2352
2347
|
createJsonLoader(),
|
|
2353
2348
|
createFlatLoader(),
|
|
@@ -2357,7 +2352,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2357
2352
|
case "markdown":
|
|
2358
2353
|
return composeLoaders(
|
|
2359
2354
|
createTextFileLoader(bucketPathPattern),
|
|
2360
|
-
createNewLineLoader(),
|
|
2361
2355
|
createPrettierLoader({ parser: "markdown" }),
|
|
2362
2356
|
createMarkdownLoader(),
|
|
2363
2357
|
createSyncLoader(),
|
|
@@ -2366,7 +2360,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2366
2360
|
case "po":
|
|
2367
2361
|
return composeLoaders(
|
|
2368
2362
|
createTextFileLoader(bucketPathPattern),
|
|
2369
|
-
createNewLineLoader(),
|
|
2370
2363
|
createPoLoader(),
|
|
2371
2364
|
createFlatLoader(),
|
|
2372
2365
|
createSyncLoader(),
|
|
@@ -2376,7 +2369,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2376
2369
|
case "properties":
|
|
2377
2370
|
return composeLoaders(
|
|
2378
2371
|
createTextFileLoader(bucketPathPattern),
|
|
2379
|
-
createNewLineLoader(),
|
|
2380
2372
|
createPropertiesLoader(),
|
|
2381
2373
|
createSyncLoader(),
|
|
2382
2374
|
createUnlocalizableLoader()
|
|
@@ -2384,7 +2376,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2384
2376
|
case "xcode-strings":
|
|
2385
2377
|
return composeLoaders(
|
|
2386
2378
|
createTextFileLoader(bucketPathPattern),
|
|
2387
|
-
createNewLineLoader(),
|
|
2388
2379
|
createXcodeStringsLoader(),
|
|
2389
2380
|
createSyncLoader(),
|
|
2390
2381
|
createUnlocalizableLoader()
|
|
@@ -2392,7 +2383,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2392
2383
|
case "xcode-stringsdict":
|
|
2393
2384
|
return composeLoaders(
|
|
2394
2385
|
createTextFileLoader(bucketPathPattern),
|
|
2395
|
-
createNewLineLoader(),
|
|
2396
2386
|
createXcodeStringsdictLoader(),
|
|
2397
2387
|
createFlatLoader(),
|
|
2398
2388
|
createSyncLoader(),
|
|
@@ -2401,7 +2391,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2401
2391
|
case "xcode-xcstrings":
|
|
2402
2392
|
return composeLoaders(
|
|
2403
2393
|
createTextFileLoader(bucketPathPattern),
|
|
2404
|
-
createNewLineLoader(),
|
|
2405
2394
|
createPlutilJsonTextLoader(),
|
|
2406
2395
|
createJsonLoader(),
|
|
2407
2396
|
createXcodeXcstringsLoader(),
|
|
@@ -2413,7 +2402,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2413
2402
|
case "yaml":
|
|
2414
2403
|
return composeLoaders(
|
|
2415
2404
|
createTextFileLoader(bucketPathPattern),
|
|
2416
|
-
createNewLineLoader(),
|
|
2417
2405
|
createPrettierLoader({ parser: "yaml" }),
|
|
2418
2406
|
createYamlLoader(),
|
|
2419
2407
|
createFlatLoader(),
|
|
@@ -2423,7 +2411,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2423
2411
|
case "yaml-root-key":
|
|
2424
2412
|
return composeLoaders(
|
|
2425
2413
|
createTextFileLoader(bucketPathPattern),
|
|
2426
|
-
createNewLineLoader(),
|
|
2427
2414
|
createPrettierLoader({ parser: "yaml" }),
|
|
2428
2415
|
createYamlLoader(),
|
|
2429
2416
|
createRootKeyLoader(true),
|
|
@@ -2434,7 +2421,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2434
2421
|
case "flutter":
|
|
2435
2422
|
return composeLoaders(
|
|
2436
2423
|
createTextFileLoader(bucketPathPattern),
|
|
2437
|
-
createNewLineLoader(),
|
|
2438
2424
|
createPrettierLoader({ parser: "json" }),
|
|
2439
2425
|
createJsonLoader(),
|
|
2440
2426
|
createFlutterLoader(),
|
|
@@ -2445,7 +2431,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2445
2431
|
case "xliff":
|
|
2446
2432
|
return composeLoaders(
|
|
2447
2433
|
createTextFileLoader(bucketPathPattern),
|
|
2448
|
-
createNewLineLoader(),
|
|
2449
2434
|
createXliffLoader(),
|
|
2450
2435
|
createFlatLoader(),
|
|
2451
2436
|
createSyncLoader(),
|
|
@@ -2454,7 +2439,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2454
2439
|
case "xml":
|
|
2455
2440
|
return composeLoaders(
|
|
2456
2441
|
createTextFileLoader(bucketPathPattern),
|
|
2457
|
-
createNewLineLoader(),
|
|
2458
2442
|
createXmlLoader(),
|
|
2459
2443
|
createFlatLoader(),
|
|
2460
2444
|
createSyncLoader(),
|
|
@@ -2463,7 +2447,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2463
2447
|
case "srt":
|
|
2464
2448
|
return composeLoaders(
|
|
2465
2449
|
createTextFileLoader(bucketPathPattern),
|
|
2466
|
-
createNewLineLoader(),
|
|
2467
2450
|
createSrtLoader(),
|
|
2468
2451
|
createSyncLoader(),
|
|
2469
2452
|
createUnlocalizableLoader()
|
|
@@ -2478,7 +2461,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2478
2461
|
case "vtt":
|
|
2479
2462
|
return composeLoaders(
|
|
2480
2463
|
createTextFileLoader(bucketPathPattern),
|
|
2481
|
-
createNewLineLoader(),
|
|
2482
2464
|
createVttLoader(),
|
|
2483
2465
|
createSyncLoader(),
|
|
2484
2466
|
createUnlocalizableLoader()
|
|
@@ -2685,7 +2667,8 @@ var i18n_default = new Command6().command("i18n").description("Run Localization
|
|
|
2685
2667
|
for (const bucket of buckets) {
|
|
2686
2668
|
cacheOra.info(`Processing bucket: ${bucket.type}`);
|
|
2687
2669
|
for (const bucketConfig of bucket.config) {
|
|
2688
|
-
const bucketOra =
|
|
2670
|
+
const bucketOra = Ora5({ indent: 4 });
|
|
2671
|
+
bucketOra.info(`Processing path: ${bucketConfig.pathPattern}`);
|
|
2689
2672
|
const sourceLocale = resolveOverridenLocale3(i18nConfig.locale.source, bucketConfig.delimiter);
|
|
2690
2673
|
const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
|
|
2691
2674
|
bucketLoader.setDefaultLocale(sourceLocale);
|
|
@@ -2789,12 +2772,12 @@ var i18n_default = new Command6().command("i18n").description("Run Localization
|
|
|
2789
2772
|
cacheChunk(targetLocale, sourceChunk, processedChunk);
|
|
2790
2773
|
const progressLog = `[${sourceLocale} -> ${targetLocale}] [${Object.keys(processableData).length} entries] (${progress}%) AI localization in progress...`;
|
|
2791
2774
|
if (flags.verbose) {
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
`Caching chunk ${JSON.stringify(sourceChunk, null, 2)} -> ${JSON.stringify(processedChunk, null, 2)}`
|
|
2775
|
+
bucketOra.info(progressLog);
|
|
2776
|
+
bucketOra.info(
|
|
2777
|
+
`(${progress}%) Caching chunk ${JSON.stringify(sourceChunk, null, 2)} -> ${JSON.stringify(processedChunk, null, 2)}`
|
|
2795
2778
|
);
|
|
2796
2779
|
} else {
|
|
2797
|
-
|
|
2780
|
+
bucketOra.text = progressLog;
|
|
2798
2781
|
}
|
|
2799
2782
|
}
|
|
2800
2783
|
);
|
|
@@ -3175,7 +3158,7 @@ function displaySummary(results) {
|
|
|
3175
3158
|
// package.json
|
|
3176
3159
|
var package_default = {
|
|
3177
3160
|
name: "lingo.dev",
|
|
3178
|
-
version: "0.74.
|
|
3161
|
+
version: "0.74.9",
|
|
3179
3162
|
description: "Lingo.dev CLI",
|
|
3180
3163
|
private: false,
|
|
3181
3164
|
publishConfig: {
|