lingo.dev 0.77.7 → 0.78.1

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.mjs CHANGED
@@ -1665,12 +1665,16 @@ function createXcodeStringsdictLoader() {
1665
1665
 
1666
1666
  // src/cli/loaders/xcode-xcstrings.ts
1667
1667
  import _9 from "lodash";
1668
- function createXcodeXcstringsLoader() {
1668
+ function createXcodeXcstringsLoader(defaultLocale) {
1669
1669
  return createLoader({
1670
- async pull(locale, input2) {
1670
+ async pull(locale, input2, initCtx) {
1671
1671
  const resultData = {};
1672
+ const isSourceLanguage = locale === defaultLocale;
1672
1673
  for (const [translationKey, _translationEntity] of Object.entries(input2.strings)) {
1673
1674
  const rootTranslationEntity = _translationEntity;
1675
+ if (rootTranslationEntity.shouldTranslate === false) {
1676
+ continue;
1677
+ }
1674
1678
  const langTranslationEntity = rootTranslationEntity?.localizations?.[locale];
1675
1679
  if (langTranslationEntity) {
1676
1680
  if ("stringUnit" in langTranslationEntity) {
@@ -1686,17 +1690,25 @@ function createXcodeXcstringsLoader() {
1686
1690
  }
1687
1691
  }
1688
1692
  }
1693
+ } else if (isSourceLanguage) {
1694
+ resultData[translationKey] = translationKey;
1689
1695
  }
1690
1696
  }
1697
+ console.log(resultData);
1691
1698
  return resultData;
1692
1699
  },
1693
1700
  async push(locale, payload, originalInput) {
1694
1701
  const langDataToMerge = {};
1695
1702
  langDataToMerge.strings = {};
1703
+ const input2 = _9.cloneDeep(originalInput) || { sourceLanguage: locale, strings: {} };
1696
1704
  for (const [key, value] of Object.entries(payload)) {
1705
+ if (value === null || value === void 0) {
1706
+ continue;
1707
+ }
1708
+ const hasDoNotTranslateFlag = originalInput && originalInput.strings && originalInput.strings[key] && originalInput.strings[key].shouldTranslate === false;
1697
1709
  if (typeof value === "string") {
1698
1710
  langDataToMerge.strings[key] = {
1699
- extractionState: "manual",
1711
+ extractionState: originalInput?.strings?.[key]?.extractionState,
1700
1712
  localizations: {
1701
1713
  [locale]: {
1702
1714
  stringUnit: {
@@ -1706,6 +1718,9 @@ function createXcodeXcstringsLoader() {
1706
1718
  }
1707
1719
  }
1708
1720
  };
1721
+ if (hasDoNotTranslateFlag) {
1722
+ langDataToMerge.strings[key].shouldTranslate = false;
1723
+ }
1709
1724
  } else {
1710
1725
  const updatedVariations = {};
1711
1726
  for (const form in value) {
@@ -1726,6 +1741,9 @@ function createXcodeXcstringsLoader() {
1726
1741
  }
1727
1742
  }
1728
1743
  };
1744
+ if (hasDoNotTranslateFlag) {
1745
+ langDataToMerge.strings[key].shouldTranslate = false;
1746
+ }
1729
1747
  }
1730
1748
  }
1731
1749
  const result = _9.merge({}, originalInput, langDataToMerge);
@@ -2840,7 +2858,7 @@ function escapePhpString(str) {
2840
2858
  }
2841
2859
 
2842
2860
  // src/cli/loaders/index.ts
2843
- function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = false } = {}) {
2861
+ function createBucketLoader(bucketType, bucketPathPattern, options) {
2844
2862
  switch (bucketType) {
2845
2863
  default:
2846
2864
  throw new Error(`Unsupported bucket type: ${bucketType}`);
@@ -2850,7 +2868,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2850
2868
  createAndroidLoader(),
2851
2869
  createFlatLoader(),
2852
2870
  createSyncLoader(),
2853
- createUnlocalizableLoader(isCacheRestore)
2871
+ createUnlocalizableLoader(options.isCacheRestore)
2854
2872
  );
2855
2873
  case "csv":
2856
2874
  return composeLoaders(
@@ -2858,7 +2876,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2858
2876
  createCsvLoader(),
2859
2877
  createFlatLoader(),
2860
2878
  createSyncLoader(),
2861
- createUnlocalizableLoader(isCacheRestore)
2879
+ createUnlocalizableLoader(options.isCacheRestore)
2862
2880
  );
2863
2881
  case "html":
2864
2882
  return composeLoaders(
@@ -2866,7 +2884,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2866
2884
  createPrettierLoader({ parser: "html", alwaysFormat: true }),
2867
2885
  createHtmlLoader(),
2868
2886
  createSyncLoader(),
2869
- createUnlocalizableLoader(isCacheRestore)
2887
+ createUnlocalizableLoader(options.isCacheRestore)
2870
2888
  );
2871
2889
  case "json":
2872
2890
  return composeLoaders(
@@ -2875,7 +2893,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2875
2893
  createJsonLoader(),
2876
2894
  createFlatLoader(),
2877
2895
  createSyncLoader(),
2878
- createUnlocalizableLoader(isCacheRestore)
2896
+ createUnlocalizableLoader(options.isCacheRestore)
2879
2897
  );
2880
2898
  case "markdown":
2881
2899
  return composeLoaders(
@@ -2883,7 +2901,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2883
2901
  createPrettierLoader({ parser: "markdown" }),
2884
2902
  createMarkdownLoader(),
2885
2903
  createSyncLoader(),
2886
- createUnlocalizableLoader(isCacheRestore)
2904
+ createUnlocalizableLoader(options.isCacheRestore)
2887
2905
  );
2888
2906
  case "po":
2889
2907
  return composeLoaders(
@@ -2891,7 +2909,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2891
2909
  createPoLoader(),
2892
2910
  createFlatLoader(),
2893
2911
  createSyncLoader(),
2894
- createUnlocalizableLoader(isCacheRestore),
2912
+ createUnlocalizableLoader(options.isCacheRestore),
2895
2913
  createVariableLoader({ type: "python" })
2896
2914
  );
2897
2915
  case "properties":
@@ -2899,14 +2917,14 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2899
2917
  createTextFileLoader(bucketPathPattern),
2900
2918
  createPropertiesLoader(),
2901
2919
  createSyncLoader(),
2902
- createUnlocalizableLoader(isCacheRestore)
2920
+ createUnlocalizableLoader(options.isCacheRestore)
2903
2921
  );
2904
2922
  case "xcode-strings":
2905
2923
  return composeLoaders(
2906
2924
  createTextFileLoader(bucketPathPattern),
2907
2925
  createXcodeStringsLoader(),
2908
2926
  createSyncLoader(),
2909
- createUnlocalizableLoader(isCacheRestore)
2927
+ createUnlocalizableLoader(options.isCacheRestore)
2910
2928
  );
2911
2929
  case "xcode-stringsdict":
2912
2930
  return composeLoaders(
@@ -2914,17 +2932,17 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2914
2932
  createXcodeStringsdictLoader(),
2915
2933
  createFlatLoader(),
2916
2934
  createSyncLoader(),
2917
- createUnlocalizableLoader(isCacheRestore)
2935
+ createUnlocalizableLoader(options.isCacheRestore)
2918
2936
  );
2919
2937
  case "xcode-xcstrings":
2920
2938
  return composeLoaders(
2921
2939
  createTextFileLoader(bucketPathPattern),
2922
2940
  createPlutilJsonTextLoader(),
2923
2941
  createJsonLoader(),
2924
- createXcodeXcstringsLoader(),
2942
+ createXcodeXcstringsLoader(options.defaultLocale),
2925
2943
  createFlatLoader(),
2926
2944
  createSyncLoader(),
2927
- createUnlocalizableLoader(isCacheRestore),
2945
+ createUnlocalizableLoader(options.isCacheRestore),
2928
2946
  createVariableLoader({ type: "ieee" })
2929
2947
  );
2930
2948
  case "yaml":
@@ -2934,7 +2952,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2934
2952
  createYamlLoader(),
2935
2953
  createFlatLoader(),
2936
2954
  createSyncLoader(),
2937
- createUnlocalizableLoader(isCacheRestore)
2955
+ createUnlocalizableLoader(options.isCacheRestore)
2938
2956
  );
2939
2957
  case "yaml-root-key":
2940
2958
  return composeLoaders(
@@ -2944,7 +2962,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2944
2962
  createRootKeyLoader(true),
2945
2963
  createFlatLoader(),
2946
2964
  createSyncLoader(),
2947
- createUnlocalizableLoader(isCacheRestore)
2965
+ createUnlocalizableLoader(options.isCacheRestore)
2948
2966
  );
2949
2967
  case "flutter":
2950
2968
  return composeLoaders(
@@ -2954,7 +2972,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2954
2972
  createFlutterLoader(),
2955
2973
  createFlatLoader(),
2956
2974
  createSyncLoader(),
2957
- createUnlocalizableLoader(isCacheRestore)
2975
+ createUnlocalizableLoader(options.isCacheRestore)
2958
2976
  );
2959
2977
  case "xliff":
2960
2978
  return composeLoaders(
@@ -2962,7 +2980,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2962
2980
  createXliffLoader(),
2963
2981
  createFlatLoader(),
2964
2982
  createSyncLoader(),
2965
- createUnlocalizableLoader(isCacheRestore)
2983
+ createUnlocalizableLoader(options.isCacheRestore)
2966
2984
  );
2967
2985
  case "xml":
2968
2986
  return composeLoaders(
@@ -2970,28 +2988,28 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2970
2988
  createXmlLoader(),
2971
2989
  createFlatLoader(),
2972
2990
  createSyncLoader(),
2973
- createUnlocalizableLoader(isCacheRestore)
2991
+ createUnlocalizableLoader(options.isCacheRestore)
2974
2992
  );
2975
2993
  case "srt":
2976
2994
  return composeLoaders(
2977
2995
  createTextFileLoader(bucketPathPattern),
2978
2996
  createSrtLoader(),
2979
2997
  createSyncLoader(),
2980
- createUnlocalizableLoader(isCacheRestore)
2998
+ createUnlocalizableLoader(options.isCacheRestore)
2981
2999
  );
2982
3000
  case "dato":
2983
3001
  return composeLoaders(
2984
3002
  createDatoLoader(bucketPathPattern),
2985
3003
  createSyncLoader(),
2986
3004
  createFlatLoader(),
2987
- createUnlocalizableLoader(isCacheRestore)
3005
+ createUnlocalizableLoader(options.isCacheRestore)
2988
3006
  );
2989
3007
  case "vtt":
2990
3008
  return composeLoaders(
2991
3009
  createTextFileLoader(bucketPathPattern),
2992
3010
  createVttLoader(),
2993
3011
  createSyncLoader(),
2994
- createUnlocalizableLoader(isCacheRestore)
3012
+ createUnlocalizableLoader(options.isCacheRestore)
2995
3013
  );
2996
3014
  case "php":
2997
3015
  return composeLoaders(
@@ -2999,7 +3017,7 @@ function createBucketLoader(bucketType, bucketPathPattern, { isCacheRestore = fa
2999
3017
  createPhpLoader(),
3000
3018
  createSyncLoader(),
3001
3019
  createFlatLoader(),
3002
- createUnlocalizableLoader()
3020
+ createUnlocalizableLoader(options.isCacheRestore)
3003
3021
  );
3004
3022
  }
3005
3023
  }
@@ -3185,7 +3203,10 @@ var i18n_default = new Command6().command("i18n").description("Run Localization
3185
3203
  for (const bucket of buckets) {
3186
3204
  for (const bucketConfig of bucket.config) {
3187
3205
  const sourceLocale = resolveOverridenLocale3(i18nConfig.locale.source, bucketConfig.delimiter);
3188
- const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
3206
+ const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern, {
3207
+ isCacheRestore: false,
3208
+ defaultLocale: sourceLocale
3209
+ });
3189
3210
  bucketLoader.setDefaultLocale(sourceLocale);
3190
3211
  await bucketLoader.init();
3191
3212
  const sourceData = await bucketLoader.pull(i18nConfig.locale.source);
@@ -3207,7 +3228,10 @@ var i18n_default = new Command6().command("i18n").description("Run Localization
3207
3228
  const bucketOra = Ora5({ indent: 4 });
3208
3229
  bucketOra.info(`Processing path: ${bucketConfig.pathPattern}`);
3209
3230
  const sourceLocale = resolveOverridenLocale3(i18nConfig.locale.source, bucketConfig.delimiter);
3210
- const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern, { isCacheRestore: true });
3231
+ const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern, {
3232
+ isCacheRestore: true,
3233
+ defaultLocale: sourceLocale
3234
+ });
3211
3235
  bucketLoader.setDefaultLocale(sourceLocale);
3212
3236
  await bucketLoader.init();
3213
3237
  const sourceData = await bucketLoader.pull(sourceLocale);
@@ -3242,7 +3266,10 @@ var i18n_default = new Command6().command("i18n").description("Run Localization
3242
3266
  for (const bucket of buckets) {
3243
3267
  for (const bucketConfig of bucket.config) {
3244
3268
  const sourceLocale = resolveOverridenLocale3(i18nConfig.locale.source, bucketConfig.delimiter);
3245
- const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
3269
+ const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern, {
3270
+ isCacheRestore: false,
3271
+ defaultLocale: sourceLocale
3272
+ });
3246
3273
  bucketLoader.setDefaultLocale(sourceLocale);
3247
3274
  await bucketLoader.init();
3248
3275
  const sourceData = await bucketLoader.pull(i18nConfig.locale.source);
@@ -3268,7 +3295,10 @@ var i18n_default = new Command6().command("i18n").description("Run Localization
3268
3295
  for (const bucketConfig of bucket.config) {
3269
3296
  const bucketOra = Ora5({ indent: 2 }).info(`Processing path: ${bucketConfig.pathPattern}`);
3270
3297
  const sourceLocale = resolveOverridenLocale3(i18nConfig.locale.source, bucketConfig.delimiter);
3271
- const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
3298
+ const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern, {
3299
+ isCacheRestore: false,
3300
+ defaultLocale: sourceLocale
3301
+ });
3272
3302
  bucketLoader.setDefaultLocale(sourceLocale);
3273
3303
  await bucketLoader.init();
3274
3304
  let sourceData = await bucketLoader.pull(sourceLocale);
@@ -3592,7 +3622,7 @@ var lockfile_default = new Command7().command("lockfile").description("Create a
3592
3622
  for (const bucket of buckets) {
3593
3623
  for (const bucketConfig of bucket.config) {
3594
3624
  const sourceLocale = resolveOverridenLocale4(i18nConfig.locale.source, bucketConfig.delimiter);
3595
- const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
3625
+ const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern, { isCacheRestore: false, defaultLocale: sourceLocale });
3596
3626
  bucketLoader.setDefaultLocale(sourceLocale);
3597
3627
  const sourceData = await bucketLoader.pull(sourceLocale);
3598
3628
  lockfileHelper.registerSourceData(bucketConfig.pathPattern, sourceData);
@@ -3629,7 +3659,7 @@ var cleanup_default = new Command8().command("cleanup").description("Remove keys
3629
3659
  for (const bucketConfig of bucket.config) {
3630
3660
  const sourceLocale = resolveOverridenLocale5(i18nConfig.locale.source, bucketConfig.delimiter);
3631
3661
  const bucketOra = Ora7({ indent: 2 }).info(`Processing path: ${bucketConfig.pathPattern}`);
3632
- const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
3662
+ const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern, { isCacheRestore: false, defaultLocale: sourceLocale });
3633
3663
  bucketLoader.setDefaultLocale(sourceLocale);
3634
3664
  const sourceData = await bucketLoader.pull(sourceLocale);
3635
3665
  const sourceKeys = Object.keys(sourceData);
@@ -3752,7 +3782,7 @@ var mcp_default = new Command9().command("mcp").description("Use Lingo.dev model
3752
3782
  // package.json
3753
3783
  var package_default = {
3754
3784
  name: "lingo.dev",
3755
- version: "0.77.7",
3785
+ version: "0.78.1",
3756
3786
  description: "Lingo.dev CLI",
3757
3787
  private: false,
3758
3788
  publishConfig: {