From 64b83d27f657880d3febb8ef56285c8f5c798e6f Mon Sep 17 00:00:00 2001 From: Tobit Jelloneck Date: Tue, 6 Jun 2023 11:41:59 +0200 Subject: [PATCH 1/6] Adding support for additional languages It now supports the following additional languages: -Azerbaijani -Catalan -Czech -Danish -Dutch -Esperanto -Finnish -Greek -Hebrew -Hungarian -Indonesia -Persian -Polish -Slovak -Swedish -Turkish -Ukranian --- .../DesignTimeBuild/.dtbcache.v2 | Bin 140728 -> 141362 bytes LibreTranslate.Net.Cmd/Program.cs | 6 +++--- LibreTranslate.Net/Constants/LanguageCode.cs | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.vs/LibreTranslate.Net/DesignTimeBuild/.dtbcache.v2 b/.vs/LibreTranslate.Net/DesignTimeBuild/.dtbcache.v2 index a9bfabf5fdfd0f92786b205125bbb9fac32c3e3a..8d83b69457fc4f25a117a871ec458c20bdc70dce 100644 GIT binary patch literal 141362 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 AU;qFB literal 140728 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 getSupportedLanguagesAsyncTask).Wait(); var supportedLanguages = getSupportedLanguagesAsyncTask.Result; Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(supportedLanguages, Newtonsoft.Json.Formatting.Indented)); var TranslateAsyncTask = libreTranslate.TranslateAsync(new Translate() { - ApiKey = "MySecretApiKey", + ApiKey = "YourSecretApiKey", Source = LanguageCode.English, - Target = LanguageCode.Spanish, + Target = LanguageCode.Dutch, Text = englishText }); System.Threading.Tasks.Task.Run(() => TranslateAsyncTask).Wait(); diff --git a/LibreTranslate.Net/Constants/LanguageCode.cs b/LibreTranslate.Net/Constants/LanguageCode.cs index d2a6fbd..5fade19 100644 --- a/LibreTranslate.Net/Constants/LanguageCode.cs +++ b/LibreTranslate.Net/Constants/LanguageCode.cs @@ -35,17 +35,34 @@ public override string ToString() } public static readonly LanguageCode English = new LanguageCode("en"); public static readonly LanguageCode Arabic = new LanguageCode("ar"); + public static readonly LanguageCode Azerbaijani = new LanguageCode("az"); + public static readonly LanguageCode Catalan = new LanguageCode("ca"); public static readonly LanguageCode Chinese = new LanguageCode("zh"); + public static readonly LanguageCode Czech = new LanguageCode("cs"); + public static readonly LanguageCode Danish = new LanguageCode("da"); + public static readonly LanguageCode Dutch = new LanguageCode("nl"); + public static readonly LanguageCode Esperanto = new LanguageCode("eo"); + public static readonly LanguageCode Finnish = new LanguageCode("fi"); public static readonly LanguageCode French = new LanguageCode("fr"); public static readonly LanguageCode German = new LanguageCode("de"); + public static readonly LanguageCode Greek = new LanguageCode("el"); + public static readonly LanguageCode Hebrew = new LanguageCode("he"); public static readonly LanguageCode Hindi = new LanguageCode("hi"); + public static readonly LanguageCode Hungarian = new LanguageCode("hu"); + public static readonly LanguageCode Indonesian = new LanguageCode("id"); public static readonly LanguageCode Irish = new LanguageCode("ga"); public static readonly LanguageCode Italian = new LanguageCode("it"); public static readonly LanguageCode Japanese = new LanguageCode("ja"); public static readonly LanguageCode Korean = new LanguageCode("ko"); + public static readonly LanguageCode Persian = new LanguageCode("fa"); + public static readonly LanguageCode Polish = new LanguageCode("pl"); public static readonly LanguageCode Portuguese = new LanguageCode("pt"); public static readonly LanguageCode Russian = new LanguageCode("ru"); + public static readonly LanguageCode Slovak = new LanguageCode("sk"); public static readonly LanguageCode Spanish = new LanguageCode("es"); + public static readonly LanguageCode Swedish = new LanguageCode("sv"); + public static readonly LanguageCode Turkish = new LanguageCode("tr"); + public static readonly LanguageCode Ukranian = new LanguageCode("uk"); public static readonly LanguageCode AutoDetect = new LanguageCode("auto"); } } From b0ffe241f64f8e2eac02072e92dcd0432396ccc6 Mon Sep 17 00:00:00 2001 From: Tobit Rades <46317600+TomsenYau@users.noreply.github.com> Date: Tue, 6 Jun 2023 12:03:39 +0200 Subject: [PATCH 2/6] Updated list of language codes --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 21ed1ab..c22e302 100644 --- a/README.md +++ b/README.md @@ -45,15 +45,32 @@ Language|Code -|- English|`LanguageCode.English` Arabic|`LanguageCode.Arabic` +Azerbaijani|`LanguageCode.Azerbaijani` +Catalan|`LanguageCode.Catalan` Chinese|`LanguageCode.Chinese` +Czech|`LanguageCode.Czech` +Danish|`LanguageCode.Danish` +Dutch|`LanguageCode.Dutch` +Esperanto|`LanguageCode.Esperanto` +Finnish|`LanguageCode.Finnish` French|`LanguageCode.French` German|`LanguageCode.German` +Greek|`LanguageCode.Greek` +Hebrew|`LanguageCode.Hebrew` Hindi|`LanguageCode.Hindi` +Hungarian|`LanguageCode.Hungarian` +Indonesian|`LanguageCode.Indonesian` Irish|`LanguageCode.Irish` Italian|`LanguageCode.Italian` Japanese|`LanguageCode.Japanese` Korean|`LanguageCode.Korean` +Persian|`LanguageCode.Persian` +Polish|`LanguageCode.Polish` Portuguese|`LanguageCode.Portuguese` Russian|`LanguageCode.Russian` +Slovak|`LanguageCode.Slovak` Spanish|`LanguageCode.Spanish` +Swedish|`LanguageCode.Swedish` +Turkish|`LanguageCode.Turkish` +Ukranian|`LanguageCode.Ukranian` AutoDetect|`LanguageCode.AutoDetect //This feature is experimental` From 1ae0b043054e607ba22ccfa2428e50986cc6b8c7 Mon Sep 17 00:00:00 2001 From: Tobit Jelloneck Date: Tue, 6 Jun 2023 13:31:14 +0200 Subject: [PATCH 3/6] Added optional support for html content. This is not a breaking change, because 'text' format is used as default value to keep the expexted result for current implementations of LibreTranslate.Net --- .../DesignTimeBuild/.dtbcache.v2 | Bin 141362 -> 141497 bytes LibreTranslate.Net.Cmd/Program.cs | 7 +-- LibreTranslate.Net/Constants/Format.cs | 40 ++++++++++++++++++ LibreTranslate.Net/LibreTranslate.cs | 3 +- LibreTranslate.Net/Models/Translate.cs | 6 +++ 5 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 LibreTranslate.Net/Constants/Format.cs diff --git a/.vs/LibreTranslate.Net/DesignTimeBuild/.dtbcache.v2 b/.vs/LibreTranslate.Net/DesignTimeBuild/.dtbcache.v2 index 8d83b69457fc4f25a117a871ec458c20bdc70dce..148076586f91fef4be6c0238d8ef29f24735b8a4 100644 GIT binary patch delta 16042 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 X>uYUoy4{&S+~D}f|MUM~jTrIYXtM3K delta 16262 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 aGV~H1ikp^~ScM`!{(t{ZTWZg+VgCzuoc!Sc diff --git a/LibreTranslate.Net.Cmd/Program.cs b/LibreTranslate.Net.Cmd/Program.cs index 98ecdb1..131c7b5 100644 --- a/LibreTranslate.Net.Cmd/Program.cs +++ b/LibreTranslate.Net.Cmd/Program.cs @@ -7,16 +7,17 @@ class Program static void Main(string[] args) { var libreTranslate = new LibreTranslate(); - var englishText = "Hello world!"; + var englishText = "

Hello world!

"; var getSupportedLanguagesAsyncTask = libreTranslate.GetSupportedLanguagesAsync(); System.Threading.Tasks.Task.Run(() => getSupportedLanguagesAsyncTask).Wait(); var supportedLanguages = getSupportedLanguagesAsyncTask.Result; Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(supportedLanguages, Newtonsoft.Json.Formatting.Indented)); var TranslateAsyncTask = libreTranslate.TranslateAsync(new Translate() { - ApiKey = "YourSecretApiKey", + ApiKey = "YourSecretKey", Source = LanguageCode.English, - Target = LanguageCode.Dutch, + Target = LanguageCode.Spanish, + Format = Format.HTML, Text = englishText }); System.Threading.Tasks.Task.Run(() => TranslateAsyncTask).Wait(); diff --git a/LibreTranslate.Net/Constants/Format.cs b/LibreTranslate.Net/Constants/Format.cs new file mode 100644 index 0000000..f7e667c --- /dev/null +++ b/LibreTranslate.Net/Constants/Format.cs @@ -0,0 +1,40 @@ +using Newtonsoft.Json.Serialization; +using System; +using System.Collections.Generic; +using System.Text; + +namespace LibreTranslate.Net +{ + public class Format + { + private static readonly Dictionary Instance = new Dictionary(); + private readonly string Name; + private Format(string name) + { + Name = name; + Instance[Name] = this; + } + public static implicit operator Format(string str) + { + return $"{FromString(str)}"; + } + public static Format FromString(string str) + { + if(Instance.TryGetValue(str, out Format format)) + { + return format; + } + else + { + throw new ArgumentException($"{nameof(Net.Format)} must be 'text' or 'html'"); + } + } + public override string ToString() + { + return $"{Name}"; + } + + public static readonly Format HTML = new Format("html"); + public static readonly Format Text = new Format("text"); + } +} diff --git a/LibreTranslate.Net/LibreTranslate.cs b/LibreTranslate.Net/LibreTranslate.cs index 91fd108..6194c49 100644 --- a/LibreTranslate.Net/LibreTranslate.cs +++ b/LibreTranslate.Net/LibreTranslate.cs @@ -54,7 +54,8 @@ public async Task TranslateAsync(Translate translate) { "q", translate.Text }, { "source", translate.Source.ToString() }, { "target", translate.Target.ToString() }, - { "api_key", translate.ApiKey } + { "format", translate.Format?.ToString() ?? Format.Text.ToString() }, + { "api_key", translate.ApiKey }, }); var response = await HttpClient.SendAsync(new HttpRequestMessage(HttpMethod.Post, "/translate") { diff --git a/LibreTranslate.Net/Models/Translate.cs b/LibreTranslate.Net/Models/Translate.cs index ceaa4db..e344dce 100644 --- a/LibreTranslate.Net/Models/Translate.cs +++ b/LibreTranslate.Net/Models/Translate.cs @@ -22,6 +22,12 @@ public class Translate [JsonProperty("target")] public LanguageCode Target { get; set; } /// + /// [optional] + /// The current format of the text to be translated + /// + [JsonProperty("format")] + public Format Format { get; set; } + /// /// The libre translate api key /// [JsonProperty("api_key")] From 36c6e26a9cd42d7b9c5a62d35616e29203394d9e Mon Sep 17 00:00:00 2001 From: Tobit Jelloneck Date: Tue, 6 Jun 2023 13:32:19 +0200 Subject: [PATCH 4/6] Comment for better understanding --- LibreTranslate.Net.Cmd/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LibreTranslate.Net.Cmd/Program.cs b/LibreTranslate.Net.Cmd/Program.cs index 131c7b5..d49543d 100644 --- a/LibreTranslate.Net.Cmd/Program.cs +++ b/LibreTranslate.Net.Cmd/Program.cs @@ -17,7 +17,7 @@ static void Main(string[] args) ApiKey = "YourSecretKey", Source = LanguageCode.English, Target = LanguageCode.Spanish, - Format = Format.HTML, + Format = Format.HTML, //Format is optional with 'Format.Text' as default value. Text = englishText }); System.Threading.Tasks.Task.Run(() => TranslateAsyncTask).Wait(); From 81dac5d1ca8759229cc9b8048e89978877fde95b Mon Sep 17 00:00:00 2001 From: Tobit Rades <46317600+TomsenYau@users.noreply.github.com> Date: Tue, 6 Jun 2023 13:41:31 +0200 Subject: [PATCH 5/6] Update README.md Added usage for html translation --- README.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c22e302..454b720 100644 --- a/README.md +++ b/README.md @@ -14,22 +14,38 @@ using LibreTranslate.Net; ``` ### Usage ```csharp -var LibreTranslate = new LibreTranslate(); +var libreTranslate = new LibreTranslate(); + +//Get supported languages System.Collections.Generic.IEnumerable SupportedLanguages = await LibreTranslate.GetSupportedLanguagesAsync(); System.Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(supportedLanguages, Newtonsoft.Json.Formatting.Indented)); + +//text translation var englishText = "Hello World!"; -string spanishText = await LibreTranslate.TranslateAsync(new Translate() { +string spanishText = await libreTranslate.TranslateAsync(new Translate() { ApiKey = "MySecretApiKey", Source = LanguageCode.English, Target = LanguageCode.Spanish, Text = englishText }); System.Console.WriteLine(spanishText); + +//html translation +var englishHtml = "

Hello World!

"; +string spanishHtml = await libreTranslate.TranslateAsync(new Translate() { + ApiKey = "MySecretApiKey", + Source = LanguageCode.English, + Target = LanguageCode.Spanish, + Format = Format.HTML, + Text = englishHtml +}); +System.Console.WriteLine(spanishHtml); ``` ### Output: ``` Hello World! ¡Hola Mundo! +

¡Hola Mundo!

``` ### Custom LibreTranslate URL (style: `http[s]://url` with no trailing `/`): ```csharp From 3c1d439a723d15ae4f7c435ffe1358c346d9abe9 Mon Sep 17 00:00:00 2001 From: Tobit Rades <46317600+TomsenYau@users.noreply.github.com> Date: Tue, 6 Jun 2023 13:55:41 +0200 Subject: [PATCH 6/6] Update README.md Typo fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 454b720..9d4e291 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ using LibreTranslate.Net; var libreTranslate = new LibreTranslate(); //Get supported languages -System.Collections.Generic.IEnumerable SupportedLanguages = await LibreTranslate.GetSupportedLanguagesAsync(); +System.Collections.Generic.IEnumerable SupportedLanguages = await libreTranslate.GetSupportedLanguagesAsync(); System.Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(supportedLanguages, Newtonsoft.Json.Formatting.Indented)); //text translation