Skip to content

Commit 93e2c46

Browse files
johanninosJoeterales
authored
feat: add 'most-similar-by-key' mode for TargetPickingStrategy (#758)
* add a most-similar-by-key mode for TargetPickingStrategy * math prefix of key * math prefix of key * Empty commit to trigger CI --------- Co-authored-by: Joe <[email protected]> Co-authored-by: Alex Terehov <[email protected]>
1 parent fd4af07 commit 93e2c46

17 files changed

+27
-1
lines changed

locales/de.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Text in die zuvor ausgewählte Sprachdatei der aktuellen Datei extrahieren",
9696
"config.target_picking_strategy.global-previous": "Text in die aktuell ausgewähle Datei extrahieren",
9797
"config.target_picking_strategy.most-similar": "Automatisches Extrahieren von Text in die Datei, deren Pfad am meisten mit dem Pfad der aktuellen Datei übereinstimmt",
98+
"config.target_picking_strategy.most-similar-by-key": "Füllen Sie die extrahierte Kopie automatisch in die Sprachdatei ein, die am besten zum aktuellen i18n-Schlüssel passt",
9899
"config.target_picking_strategy.none": "Benutzer wählt manuell aus, in welche Datei der Text extrahiert werden soll",
99100
"config.translate.engines": "Übersetzungsdienste.",
100101
"config.translate.fallbackToKey": "Schlüssel selbst zum Übersetzen verwenden, wenn es keine Quellübersetzung für diesen Schlüssel gibt.",

locales/en.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Extract text to current file's previous selected locale file",
9696
"config.target_picking_strategy.global-previous": "Extract text to (current or other) file 's previous selected locale file",
9797
"config.target_picking_strategy.most-similar": "Automatically extract text to the file which path most matches to current file's path",
98+
"config.target_picking_strategy.most-similar-by-key": "Automatically fill the extracted copy into the language file that best matches the current i18n key",
9899
"config.target_picking_strategy.none": "User manually select which file to extract text to",
99100
"config.translate.engines": "Translation services.",
100101
"config.translate.fallbackToKey": "Use key itself to translate when there is no source translation for that key.",

locales/es.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Extraer el texto al archivo de localización seleccionado anteriormente del archivo actual",
9696
"config.target_picking_strategy.global-previous": "Extraer el texto al archivo (actual o de otro tipo) del archivo local previamente seleccionado",
9797
"config.target_picking_strategy.most-similar": "Extraer automáticamente el texto al archivo cuya ruta coincida más con la ruta del archivo actual",
98+
"config.target_picking_strategy.most-similar-by-key": "Rellene automáticamente la copia extraída en el archivo de idioma que mejor coincida con la clave i18n actual",
9899
"config.target_picking_strategy.none": "El usuario selecciona manualmente a qué archivo extraer el texto",
99100
"config.translate.engines": "Servicios de traducción.",
100101
"config.translate.fallbackToKey": "Usar la llave en sí para traducir cuando no hay una traducción de origen para esa llave.",

locales/fr.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Extraire le texte dans le fichier locale, précédemment sélectionné, du fichier actuel",
9696
"config.target_picking_strategy.global-previous": "Extraire le texte dans le fichier locale, précédemment sélectionné, du fichier actuel (ou autre)",
9797
"config.target_picking_strategy.most-similar": "Extraire automatiquement le texte dans le fichier dont le chemin correspond le plus au chemin du fichier actuel",
98+
"config.target_picking_strategy.most-similar-by-key": "Remplissez automatiquement la copie extraite dans le fichier de langue qui correspond le mieux à la clé i18n actuelle",
9899
"config.target_picking_strategy.none": "L'utilisateur sélectionne manuellement le fichier dans lequel extraire le texte",
99100
"config.translate.engines": "Services de traduction.",
100101
"config.translate.fallbackToKey": "Utilisez la clé elle-même pour traduire lorsqu'il n'y a pas de traduction source pour cette clé.",

locales/ja.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "",
9696
"config.target_picking_strategy.global-previous": "",
9797
"config.target_picking_strategy.most-similar": "",
98+
"config.target_picking_strategy.most-similar-by-key": "抽出したコピーを、現在のi18nキーに最も一致する言語ファイルに自動的に入力します",
9899
"config.target_picking_strategy.none": "",
99100
"config.translate.engines": "",
100101
"config.translate.fallbackToKey": "",

locales/nb-NO.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "",
9696
"config.target_picking_strategy.global-previous": "",
9797
"config.target_picking_strategy.most-similar": "",
98+
"config.target_picking_strategy.most-similar-by-key": "Fyll automatisk den utpakkede kopien inn i språkfilen som passer best til gjeldende i18n-nøkkel",
9899
"config.target_picking_strategy.none": "",
99100
"config.translate.engines": "",
100101
"config.translate.fallbackToKey": "",

locales/nl-NL.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "",
9696
"config.target_picking_strategy.global-previous": "",
9797
"config.target_picking_strategy.most-similar": "",
98+
"config.target_picking_strategy.most-similar-by-key": "Vul de uitgepakte kopie automatisch in het taalbestand dat het beste overeenkomt met de huidige i18n-sleutel",
9899
"config.target_picking_strategy.none": "",
99100
"config.translate.engines": "",
100101
"config.translate.fallbackToKey": "Gebruik de sleutel zelf als vertaling, als er geen originele vertaling bestaat",

locales/pt-BR.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "",
9696
"config.target_picking_strategy.global-previous": "",
9797
"config.target_picking_strategy.most-similar": "",
98+
"config.target_picking_strategy.most-similar-by-key": "Preencha automaticamente a cópia extraída no arquivo de idioma que melhor corresponde à chave i18n atual",
9899
"config.target_picking_strategy.none": "",
99100
"config.translate.engines": "",
100101
"config.translate.fallbackToKey": "",

locales/ru.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Извлекать текст в предыдущий выбранный файл перевода текущего файла",
9696
"config.target_picking_strategy.global-previous": "Извлекать текст в (текущий или другой) файл предыдущего выбранного файла перевода",
9797
"config.target_picking_strategy.most-similar": "Автоматически заполнять извлеченную копию в файл перевода, который лучше всего соответствует текущему пути к файлу",
98+
"config.target_picking_strategy.most-similar-by-key": "Автоматически заполнять извлеченную копию языковым файлом, который лучше всего соответствует текущему ключу i18n.",
9899
"config.target_picking_strategy.none": "Пользователь вручную выбирает файл для извлечения текста",
99100
"config.translate.engines": "Сервисы перевода.",
100101
"config.translate.fallbackToKey": "Использовать сам ключ для перевода, если для этого ключа нет перевода",

locales/sv-SE.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Extrahera text till nuvarande fils tidigare valda locale-fil",
9696
"config.target_picking_strategy.global-previous": "Extrahera text till (nuvarande elle annan) fils tidigare valda locale-fil",
9797
"config.target_picking_strategy.most-similar": "Extrahera text automatiskt till den fil vars sökväg mest stämmer överens med nuvarande filens sökväg",
98+
"config.target_picking_strategy.most-similar-by-key": "Fyll automatiskt i den extraherade kopian i den språkfil som bäst matchar den aktuella i18n-nyckeln",
9899
"config.target_picking_strategy.none": "Välj själv vilken fil att extrahera text till",
99100
"config.translate.engines": "Översättningstjänster.",
100101
"config.translate.fallbackToKey": "Använd nyckeln själv för att översätta när det inte finns någon källspråksöversättning för den nyckeln.",

locales/tr.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Metni mevcut dosyanın önceki seçili dil dosyasına çıkartın",
9696
"config.target_picking_strategy.global-previous": "Metni (mevcut veya başka) dosyanın önceki seçili yerel ayar dosyasına çıkartın",
9797
"config.target_picking_strategy.most-similar": "Geçerli dosyanın bulunduğu alana en çok uyan yolu dosyaya otomatik olarak ayıklayın",
98+
"config.target_picking_strategy.most-similar-by-key": "Çıkarılan kopyayı, geçerli i18n anahtarıyla en iyi eşleşen dil dosyasına otomatik olarak doldurun",
9899
"config.target_picking_strategy.none": "Kullanıcı metnin çıkarılacağı dosyayı el ile seçer",
99100
"config.translate.engines": "Çeviri hizmetleri.",
100101
"config.translate.fallbackToKey": "Bu anahtar için kaynak çevirisi olmadığında çeviri yapmak için anahtarın kendisini kullanın.",

locales/uk-UA.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "Автоматично заповнювати обраний файл перекладу при останньому завантаженні з поточного файлу",
9696
"config.target_picking_strategy.global-previous": "Автоматично заповнювати обраний файл перекладу при добуванні копії в останньому (поточному/іншому) файлі",
9797
"config.target_picking_strategy.most-similar": "Автоматично заповнювати витягнуту копію в файл перекладу, який найкраще відповідає поточному шляху до файлу",
98+
"config.target_picking_strategy.most-similar-by-key": "Автоматично заповнюйте витягнуту копію в мовний файл, який найкраще відповідає поточному ключу i18n",
9899
"config.target_picking_strategy.none": "Користувач вручну обирає файл для вилучення тексту",
99100
"config.translate.engines": "Сервіс для перекладу.",
100101
"config.translate.fallbackToKey": "Використовувати сам ключ для перекладу, якщо для цього ключа нема переводу",

locales/zh-CN.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "自动填入上次抽取当前文件中的文案时选择的语言文件中",
9696
"config.target_picking_strategy.global-previous": "自动填入上次抽取(当前/其他)文件中的文案时选择的语言文件中",
9797
"config.target_picking_strategy.most-similar": "自动将抽取的文案填入与当前文件路径最匹配的语言文件中",
98+
"config.target_picking_strategy.most-similar-by-key": "自动将抽取的文案填入与当前i18n key最匹配的语言文件中",
9899
"config.target_picking_strategy.none": "用户手动选择将文本抽取到哪个语言文件",
99100
"config.translate.engines": "翻译服务提供商",
100101
"config.translate.fallbackToKey": "当对应路径没有翻译时,使用路径本身进行翻译",

locales/zh-TW.json

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
"config.target_picking_strategy.file-previous": "自動填入上次抽取當前文件中的文案時選擇的語言文件中",
9696
"config.target_picking_strategy.global-previous": "自動填入上次抽取(當前/其他)文件中的文案時選擇的語言文件中",
9797
"config.target_picking_strategy.most-similar": "自動將抽取的文案填入與當前文件路徑最匹配的語言文件中",
98+
"config.target_picking_strategy.most-similar-by-key": "自動將抽取的文案填入與當前i18n key最匹配的語言文件中",
9899
"config.target_picking_strategy.none": "用戶手動選擇將文本抽取到哪個語言文件",
99100
"config.translate.engines": "翻譯服務供應商",
100101
"config.translate.fallbackToKey": "當對應路徑沒有翻譯時,使用路徑本身進行翻譯",

package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -1211,14 +1211,16 @@
12111211
"enum": [
12121212
"none",
12131213
"most-similar",
1214+
"most-similar-by-key",
12141215
"file-previous",
12151216
"global-previous"
12161217
],
12171218
"enumDescriptions": [
12181219
"%config.target_picking_strategy.none%",
12191220
"%config.target_picking_strategy.most-similar%",
12201221
"%config.target_picking_strategy.file-previous%",
1221-
"%config.target_picking_strategy.global-previous%"
1222+
"%config.target_picking_strategy.global-previous%",
1223+
"%config.target_picking_strategy.most-similar-by-key%"
12221224
],
12231225
"description": "%config.target_picking_strategy%"
12241226
},

src/core/loaders/LocaleLoader.ts

+9
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,18 @@ export class LocaleLoader extends Loader {
179179
ignoreFocusOut: true,
180180
})
181181
}
182+
182183
if (Config.targetPickingStrategy === TargetPickingStrategy.MostSimilar && pending.textFromPath)
183184
return this.findBestMatchFile(pending.textFromPath, paths)
184185

186+
if (Config.targetPickingStrategy === TargetPickingStrategy.MostSimilarByKey && keypath) {
187+
const splitSymbol = Config.namespace ? Global.getNamespaceDelimiter() : '.'
188+
const prefixKey = keypath.split(splitSymbol)[0]
189+
const matched = this.findBestMatchFile(`${this._locale_dirs}/${prefixKey}`, paths)
190+
if (matched.includes(prefixKey))
191+
return matched
192+
}
193+
185194
if (Config.targetPickingStrategy === TargetPickingStrategy.FilePrevious && pending.textFromPath)
186195
return this.handleExtractToFilePrevious(pending.textFromPath, paths, keypath)
187196

src/core/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ export enum TargetPickingStrategy {
152152
MostSimilar = 'most-similar',
153153
FilePrevious ='file-previous',
154154
GlobalPrevious = 'global-previous',
155+
MostSimilarByKey = 'most-similar-by-key',
155156
}
156157

157158
export type DetectionSource = 'html-attribute' | 'html-inline' | 'js-string' | 'js-template' | 'jsx-text'

0 commit comments

Comments
 (0)