Added DeepL language filters
This commit is contained in:
parent
b940811232
commit
5e0a88acc3
@ -55,11 +55,8 @@ public static class DeepL
|
|||||||
var sourceCultureIndex = await AppSettings.GetDeepLSourceCultureIndex();
|
var sourceCultureIndex = await AppSettings.GetDeepLSourceCultureIndex();
|
||||||
var sourceCulture = await AppSettings.GetCultureCode(sourceCultureIndex);
|
var sourceCulture = await AppSettings.GetCultureCode(sourceCultureIndex);
|
||||||
|
|
||||||
// In case of the source culture, we cannot specify the region, so we need to remove it:
|
|
||||||
sourceCulture = sourceCulture.Split('-')[0];
|
|
||||||
|
|
||||||
using var deepl = new Translator(deepLAPIKey);
|
using var deepl = new Translator(deepLAPIKey);
|
||||||
var translation = await deepl.TranslateTextAsync(text, sourceCulture, targetCulture);
|
var translation = await deepl.TranslateTextAsync(text, TransformSourceCulture(sourceCulture), TransformTargetCulture(targetCulture));
|
||||||
|
|
||||||
return translation.Text;
|
return translation.Text;
|
||||||
}
|
}
|
||||||
@ -78,4 +75,78 @@ public static class DeepL
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void ResetState() => DEEPL_NOT_AVAILABLE = false;
|
public static void ResetState() => DEEPL_NOT_AVAILABLE = false;
|
||||||
|
|
||||||
|
private static string TransformSourceCulture(string sourceCulture) => sourceCulture switch
|
||||||
|
{
|
||||||
|
['b', 'g', ..] => "BG", // Bulgarian
|
||||||
|
['c', 's', ..] => "CS", // Czech
|
||||||
|
['d', 'a', ..] => "DA", // Danish
|
||||||
|
['d', 'e', ..] => "DE", // German
|
||||||
|
['e', 'l', ..] => "EL", // Greek
|
||||||
|
['e', 'n', ..] => "EN", // English
|
||||||
|
['e', 's', ..] => "ES", // Spanish
|
||||||
|
['e', 't', ..] => "ET", // Estonian
|
||||||
|
['f', 'i', ..] => "FI", // Finnish
|
||||||
|
['f', 'r', ..] => "FR", // French
|
||||||
|
['h', 'u', ..] => "HU", // Hungarian
|
||||||
|
['i', 'd', ..] => "ID", // Indonesian
|
||||||
|
['i', 't', ..] => "IT", // Italian
|
||||||
|
['j', 'a', ..] => "JA", // Japanese
|
||||||
|
['k', 'o', ..] => "KO", // Korean
|
||||||
|
['l', 't', ..] => "LT", // Lithuanian
|
||||||
|
['l', 'v', ..] => "LV", // Latvian
|
||||||
|
['n', 'b', ..] => "NB", // Norwegian
|
||||||
|
['n', 'l', ..] => "NL", // Dutch
|
||||||
|
['p', 'l', ..] => "PL", // Polish
|
||||||
|
['p', 't', ..] => "PT", // Portuguese
|
||||||
|
['r', 'o', ..] => "RO", // Romanian
|
||||||
|
['r', 'u', ..] => "RU", // Russian
|
||||||
|
['s', 'k', ..] => "SK", // Slovak
|
||||||
|
['s', 'l', ..] => "SL", // Slovenian
|
||||||
|
['s', 'v', ..] => "SV", // Swedish
|
||||||
|
['t', 'r', ..] => "TR", // Turkish
|
||||||
|
['u', 'k', ..] => "UK", // Ukrainian
|
||||||
|
['z', 'h', ..] => "ZH", // Chinese
|
||||||
|
|
||||||
|
_ => sourceCulture,
|
||||||
|
};
|
||||||
|
|
||||||
|
private static string TransformTargetCulture(string targetCulture) => targetCulture switch
|
||||||
|
{
|
||||||
|
['b', 'g', ..] => "BG", // Bulgarian
|
||||||
|
['c', 's', ..] => "CS", // Czech
|
||||||
|
['d', 'a', ..] => "DA", // Danish
|
||||||
|
['d', 'e', ..] => "DE", // German
|
||||||
|
['e', 'l', ..] => "EL", // Greek
|
||||||
|
['e', 'n', '-', 'G', 'B', ..] => "EN-GB", // English (British)
|
||||||
|
['e', 'n', '-', 'U', 'S', ..] => "EN-US", // English (American)
|
||||||
|
['e', 'n', ..] => "EN-US", // English (American)
|
||||||
|
['e', 's', ..] => "ES", // Spanish
|
||||||
|
['e', 't', ..] => "ET", // Estonian
|
||||||
|
['f', 'i', ..] => "FI", // Finnish
|
||||||
|
['f', 'r', ..] => "FR", // French
|
||||||
|
['h', 'u', ..] => "HU", // Hungarian
|
||||||
|
['i', 'd', ..] => "ID", // Indonesian
|
||||||
|
['i', 't', ..] => "IT", // Italian
|
||||||
|
['j', 'a', ..] => "JA", // Japanese
|
||||||
|
['k', 'o', ..] => "KO", // Korean
|
||||||
|
['l', 't', ..] => "LT", // Lithuanian
|
||||||
|
['l', 'v', ..] => "LV", // Latvian
|
||||||
|
['n', 'b', ..] => "NB", // Norwegian
|
||||||
|
['n', 'l', ..] => "NL", // Dutch
|
||||||
|
['p', 'l', ..] => "PL", // Polish
|
||||||
|
['p', 't', '-', 'B', 'R', ..] => "PT-BR", // Portuguese (Brazilian)
|
||||||
|
['p', 't', '-', 'P', 'T', ..] => "PT-PT", // Portuguese (European)
|
||||||
|
['p', 't', ..] => "PT-PT", // Portuguese (European)
|
||||||
|
['r', 'o', ..] => "RO", // Romanian
|
||||||
|
['r', 'u', ..] => "RU", // Russian
|
||||||
|
['s', 'k', ..] => "SK", // Slovak
|
||||||
|
['s', 'l', ..] => "SL", // Slovenian
|
||||||
|
['s', 'v', ..] => "SV", // Swedish
|
||||||
|
['t', 'r', ..] => "TR", // Turkish
|
||||||
|
['u', 'k', ..] => "UK", // Ukrainian
|
||||||
|
['z', 'h', ..] => "ZH", // Chinese
|
||||||
|
|
||||||
|
_ => targetCulture,
|
||||||
|
};
|
||||||
}
|
}
|
@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public static class Version
|
public static class Version
|
||||||
{
|
{
|
||||||
public static string Text => $"v0.9.3 (2023-02-12), .NET {Environment.Version}";
|
public static string Text => $"v0.9.4 (2023-02-12), .NET {Environment.Version}";
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user