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 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);
|
||||
var translation = await deepl.TranslateTextAsync(text, sourceCulture, targetCulture);
|
||||
var translation = await deepl.TranslateTextAsync(text, TransformSourceCulture(sourceCulture), TransformTargetCulture(targetCulture));
|
||||
|
||||
return translation.Text;
|
||||
}
|
||||
@ -78,4 +75,78 @@ public static class DeepL
|
||||
}
|
||||
|
||||
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 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