From 8ee93621bfe747e4c18fc50a76ea7b3b0e9f2f06 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:09:19 +0300 Subject: [PATCH 01/14] Add mise --- .gitignore | 1 + mise.toml | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 mise.toml diff --git a/.gitignore b/.gitignore index d0e4b10..88d3156 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ ## files generated by popular Visual Studio add-ons. # User-specific files +.env.local *.suo *.user *.sln.docstates diff --git a/mise.toml b/mise.toml new file mode 100644 index 0000000..71d75d5 --- /dev/null +++ b/mise.toml @@ -0,0 +1,8 @@ +[tools] +dotnet = "2.2" + +[env] +_.file = ".env.local" + +[tasks] +test = "dotnet test" From 7b6078133ef338c3ad48205ac722fa5e043a23d7 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:22:21 +0300 Subject: [PATCH 02/14] Update to v3 api --- DetectLanguage.Tests/DetectLanguageClientTest.cs | 10 ++++------ .../DetectLanguageConfigurationTest.cs | 2 +- DetectLanguage/DetectLanguage.csproj | 2 +- DetectLanguage/DetectLanguageClient.cs | 10 +++------- DetectLanguage/DetectLanguageConfiguration.cs | 2 +- DetectLanguage/Entities/BatchDetectResponse.cs | 10 ---------- DetectLanguage/Entities/DetectResponse.cs | 10 ---------- DetectLanguage/Entities/DetectResult.cs | 10 ++-------- 8 files changed, 12 insertions(+), 44 deletions(-) delete mode 100644 DetectLanguage/Entities/BatchDetectResponse.cs delete mode 100644 DetectLanguage/Entities/DetectResponse.cs diff --git a/DetectLanguage.Tests/DetectLanguageClientTest.cs b/DetectLanguage.Tests/DetectLanguageClientTest.cs index 8d2e4c3..0442d23 100644 --- a/DetectLanguage.Tests/DetectLanguageClientTest.cs +++ b/DetectLanguage.Tests/DetectLanguageClientTest.cs @@ -24,8 +24,7 @@ public async Task TestDetectAsync() { var results = await client.DetectAsync("Labas rytas"); Assert.That(results[0].language, Is.EqualTo("lt")); - Assert.That(results[0].reliable, Is.EqualTo(true)); - Assert.That(results[0].confidence, Is.GreaterThan(0)); + Assert.That(results[0].score, Is.GreaterThan(0)); } [Test] @@ -37,7 +36,7 @@ public async Task TestDetectCodeAsync() { [Test] public async Task TestDetectCodeAsyncNull() { - string language = await client.DetectCodeAsync("-"); + string language = await client.DetectCodeAsync(" "); Assert.IsNull(language); } @@ -48,8 +47,7 @@ public async Task TestBatchDetectAsync() { var results = await client.BatchDetectAsync(texts); Assert.That(results[0][0].language, Is.EqualTo("en")); - Assert.That(results[0][0].reliable, Is.EqualTo(true)); - Assert.That(results[0][0].confidence, Is.GreaterThan(0)); + Assert.That(results[0][0].score, Is.GreaterThan(0)); Assert.That(results[1][0].language, Is.EqualTo("lt")); } @@ -58,7 +56,7 @@ public async Task TestGetLanguagesAsync() { var languages = await client.GetLanguagesAsync(); Assert.That(languages[0].code, Is.EqualTo("aa")); - Assert.That(languages[0].name, Is.EqualTo("AFAR")); + Assert.That(languages[0].name, Is.EqualTo("Afar")); } [Test] diff --git a/DetectLanguage.Tests/DetectLanguageConfigurationTest.cs b/DetectLanguage.Tests/DetectLanguageConfigurationTest.cs index 975fcc5..b9686f7 100644 --- a/DetectLanguage.Tests/DetectLanguageConfigurationTest.cs +++ b/DetectLanguage.Tests/DetectLanguageConfigurationTest.cs @@ -10,7 +10,7 @@ public void TestApiKeyConstructor() { var config = new DetectLanguageConfiguration("someApiKey"); Assert.That(config.ApiKey, Is.EqualTo("someApiKey")); - Assert.That(config.ApiBase, Is.EqualTo("https://ws.detectlanguage.com/0.2/")); + Assert.That(config.ApiBase, Is.EqualTo("https://ws.detectlanguage.com/v3/")); Assert.That(config.UserAgent, Does.Match("detectlanguage-dotnet/\\d+")); } } diff --git a/DetectLanguage/DetectLanguage.csproj b/DetectLanguage/DetectLanguage.csproj index 6b34f36..bea01bb 100644 --- a/DetectLanguage/DetectLanguage.csproj +++ b/DetectLanguage/DetectLanguage.csproj @@ -4,7 +4,7 @@ Language Detection API Client for .NET (Official Library) DetectLanguage DetectLanguage - 1.0.0 + 2.0.0 detect;identify;language;text;detectlanguage;detection;identification;nlp Laurynas Butkus detectlanguage.com diff --git a/DetectLanguage/DetectLanguageClient.cs b/DetectLanguage/DetectLanguageClient.cs index 95df218..16420c0 100644 --- a/DetectLanguage/DetectLanguageClient.cs +++ b/DetectLanguage/DetectLanguageClient.cs @@ -28,9 +28,7 @@ public DetectLanguageClient(DetectLanguageConfiguration configuration) { /// Thrown if the request fails. public async Task DetectAsync(string text) { var request = new DetectRequest{ q = text }; - var response = await httpClient.PostAsync("detect", request); - - return response.data.detections; + return await httpClient.PostAsync("detect", request); } /// @@ -56,9 +54,7 @@ public async Task DetectCodeAsync(string text) { /// Thrown if the request fails. public async Task BatchDetectAsync(string[] texts) { var request = new BatchDetectRequest{ q = texts }; - var response = await httpClient.PostAsync("detect", request); - - return response.data.detections; + return await httpClient.PostAsync("detect-batch", request); } /// @@ -66,7 +62,7 @@ public async Task BatchDetectAsync(string[] texts) { /// /// Thrown if the request fails. public async Task GetUserStatusAsync() { - return await httpClient.GetAsync("user/status"); + return await httpClient.GetAsync("account/status"); } /// diff --git a/DetectLanguage/DetectLanguageConfiguration.cs b/DetectLanguage/DetectLanguageConfiguration.cs index 757b78e..b9924dd 100644 --- a/DetectLanguage/DetectLanguageConfiguration.cs +++ b/DetectLanguage/DetectLanguageConfiguration.cs @@ -14,7 +14,7 @@ public class DetectLanguageConfiguration { /// /// The API base URI to use on a per-request basis /// - public string ApiBase { get; set; } = "https://ws.detectlanguage.com/0.2/"; + public string ApiBase { get; set; } = "https://ws.detectlanguage.com/v3/"; /// /// HTTP request timeout diff --git a/DetectLanguage/Entities/BatchDetectResponse.cs b/DetectLanguage/Entities/BatchDetectResponse.cs deleted file mode 100644 index 9f2e974..0000000 --- a/DetectLanguage/Entities/BatchDetectResponse.cs +++ /dev/null @@ -1,10 +0,0 @@ - -namespace DetectLanguage { - public class BatchDetectResponse { - public BatchDetectData data; - } - - public class BatchDetectData { - public DetectResult[][] detections; - } -} diff --git a/DetectLanguage/Entities/DetectResponse.cs b/DetectLanguage/Entities/DetectResponse.cs deleted file mode 100644 index b991d46..0000000 --- a/DetectLanguage/Entities/DetectResponse.cs +++ /dev/null @@ -1,10 +0,0 @@ - -namespace DetectLanguage { - public class DetectResponse { - public DetectData data; - } - - public class DetectData { - public DetectResult[] detections; - } -} diff --git a/DetectLanguage/Entities/DetectResult.cs b/DetectLanguage/Entities/DetectResult.cs index 0e4020d..f9f55fb 100644 --- a/DetectLanguage/Entities/DetectResult.cs +++ b/DetectLanguage/Entities/DetectResult.cs @@ -8,14 +8,8 @@ public class DetectResult { public string language; /// - /// Is detection reliable + /// Detection score (0-1) /// - [JsonProperty("isReliable")] - public bool reliable; - - /// - /// Detection confidence score - /// - public float confidence; + public float score; } } From 14d90635ac934ee272890ff601ebe425f60b25b5 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:25:38 +0300 Subject: [PATCH 03/14] Switch to AccountStatus --- DetectLanguage.Tests/DetectLanguageClientTest.cs | 8 ++++---- DetectLanguage/DetectLanguageClient.cs | 4 ++-- .../Entities/{UserStatus.cs => AccountStatus.cs} | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) rename DetectLanguage/Entities/{UserStatus.cs => AccountStatus.cs} (97%) diff --git a/DetectLanguage.Tests/DetectLanguageClientTest.cs b/DetectLanguage.Tests/DetectLanguageClientTest.cs index 0442d23..8671afe 100644 --- a/DetectLanguage.Tests/DetectLanguageClientTest.cs +++ b/DetectLanguage.Tests/DetectLanguageClientTest.cs @@ -60,8 +60,8 @@ public async Task TestGetLanguagesAsync() { } [Test] - public async Task TestGetUserStatusAsync() { - var userStatus = await client.GetUserStatusAsync(); + public async Task TestGetAccountStatusAsync() { + var userStatus = await client.GetAccountStatusAsync(); Assert.IsNotEmpty(userStatus.date); Assert.IsNotEmpty(userStatus.plan); @@ -73,9 +73,9 @@ public async Task TestGetUserStatusAsync() { } [Test] - public void TestGetUserStatusAsyncError() { + public void TestGetAccountStatusAsyncError() { var testClient = new DetectLanguageClient("someApiKey"); - var ex = Assert.ThrowsAsync(() => testClient.GetUserStatusAsync()); + var ex = Assert.ThrowsAsync(() => testClient.GetAccountStatusAsync()); Assert.IsNotEmpty(ex.Message); Assert.IsNotNull(ex.Error); diff --git a/DetectLanguage/DetectLanguageClient.cs b/DetectLanguage/DetectLanguageClient.cs index 16420c0..95171f3 100644 --- a/DetectLanguage/DetectLanguageClient.cs +++ b/DetectLanguage/DetectLanguageClient.cs @@ -61,8 +61,8 @@ public async Task BatchDetectAsync(string[] texts) { /// Get account status /// /// Thrown if the request fails. - public async Task GetUserStatusAsync() { - return await httpClient.GetAsync("account/status"); + public async Task GetAccountStatusAsync() { + return await httpClient.GetAsync("account/status"); } /// diff --git a/DetectLanguage/Entities/UserStatus.cs b/DetectLanguage/Entities/AccountStatus.cs similarity index 97% rename from DetectLanguage/Entities/UserStatus.cs rename to DetectLanguage/Entities/AccountStatus.cs index 46652e5..20f4acb 100644 --- a/DetectLanguage/Entities/UserStatus.cs +++ b/DetectLanguage/Entities/AccountStatus.cs @@ -1,7 +1,7 @@ using Newtonsoft.Json; namespace DetectLanguage { - public class UserStatus { + public class AccountStatus { /// /// Current date /// From 75e99c0b9cd148151418d7f6b4250edc3b8dd247 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:28:11 +0300 Subject: [PATCH 04/14] Update dotnet versions --- .github/workflows/main.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 247ece5..87c5af3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,8 +6,14 @@ jobs: strategy: matrix: dotnet-version: - - '2.1' - '2.2' + - '3.0' + - '3.1' + - '5.0' + - '6.0' + - '7.0' + - '8.0' + - '9.0' name: .NET ${{ matrix.dotnet-version }} sample steps: - uses: actions/checkout@v3 From ddd1c16d8b1143a3c2e634693a38413d43514b99 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:34:13 +0300 Subject: [PATCH 05/14] Update github action --- .github/workflows/main.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 87c5af3..dafd14f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,11 +16,14 @@ jobs: - '9.0' name: .NET ${{ matrix.dotnet-version }} sample steps: - - uses: actions/checkout@v3 - - uses: actions/setup-dotnet@v2 + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ matrix.dotnet-version }} - - run: dotnet restore - - env: + - name: Restore dependencies + run: dotnet restore + - name: Run tests + env: DETECTLANGUAGE_API_KEY: ${{ secrets.DETECTLANGUAGE_API_KEY }} run: dotnet test From aac164173f8bdeeef501bc68059ced9351706622 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:35:56 +0300 Subject: [PATCH 06/14] Update github action --- .github/workflows/main.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dafd14f..f8f46ba 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,6 +21,16 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ matrix.dotnet-version }} + - name: Install SSL dependencies (for older .NET versions) + if: matrix.dotnet-version == '2.2' || matrix.dotnet-version == '3.0' || matrix.dotnet-version == '3.1' || matrix.dotnet-version == '5.0' + run: | + sudo apt-get update + sudo apt-get install -y libssl1.1 + - name: Set SSL environment variables (for older .NET versions) + if: matrix.dotnet-version == '2.2' || matrix.dotnet-version == '3.0' || matrix.dotnet-version == '3.1' || matrix.dotnet-version == '5.0' + run: | + echo "DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0" >> $GITHUB_ENV + echo "DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1" >> $GITHUB_ENV - name: Restore dependencies run: dotnet restore - name: Run tests From aa8558d979b10f6034d773cc3adccdc641ec46bb Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:38:16 +0300 Subject: [PATCH 07/14] Remove old dotnet versions --- .github/workflows/main.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f8f46ba..79578bd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,10 +6,6 @@ jobs: strategy: matrix: dotnet-version: - - '2.2' - - '3.0' - - '3.1' - - '5.0' - '6.0' - '7.0' - '8.0' @@ -21,16 +17,6 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ matrix.dotnet-version }} - - name: Install SSL dependencies (for older .NET versions) - if: matrix.dotnet-version == '2.2' || matrix.dotnet-version == '3.0' || matrix.dotnet-version == '3.1' || matrix.dotnet-version == '5.0' - run: | - sudo apt-get update - sudo apt-get install -y libssl1.1 - - name: Set SSL environment variables (for older .NET versions) - if: matrix.dotnet-version == '2.2' || matrix.dotnet-version == '3.0' || matrix.dotnet-version == '3.1' || matrix.dotnet-version == '5.0' - run: | - echo "DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0" >> $GITHUB_ENV - echo "DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1" >> $GITHUB_ENV - name: Restore dependencies run: dotnet restore - name: Run tests From b6427cafea108844d5474663b5f71aab60caca6e Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:46:20 +0300 Subject: [PATCH 08/14] Update to support latest dotnet --- DetectLanguage.Tests/DetectLanguage.Tests.csproj | 8 ++++---- DetectLanguage/DetectLanguage.csproj | 4 ++-- mise.toml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DetectLanguage.Tests/DetectLanguage.Tests.csproj b/DetectLanguage.Tests/DetectLanguage.Tests.csproj index 47ed67d..a185c2b 100644 --- a/DetectLanguage.Tests/DetectLanguage.Tests.csproj +++ b/DetectLanguage.Tests/DetectLanguage.Tests.csproj @@ -1,15 +1,15 @@ - netcoreapp2.0 + net6.0;net8.0 false - - - + + + diff --git a/DetectLanguage/DetectLanguage.csproj b/DetectLanguage/DetectLanguage.csproj index bea01bb..7c4a756 100644 --- a/DetectLanguage/DetectLanguage.csproj +++ b/DetectLanguage/DetectLanguage.csproj @@ -12,12 +12,12 @@ https://github.com/detectlanguage/detectlanguage-dotnet MIT https://www.nuget.org/profiles/detectlanguage/avatar?imageSize=128 - netstandard2.0 + net6.0;net8.0 README.md - + diff --git a/mise.toml b/mise.toml index 71d75d5..21ad1fc 100644 --- a/mise.toml +++ b/mise.toml @@ -1,5 +1,5 @@ [tools] -dotnet = "2.2" +dotnet = "8" [env] _.file = ".env.local" From 2b93eb1f21235061ee94527d7c590f87cc4f8cc5 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:50:51 +0300 Subject: [PATCH 09/14] Support dotnet 6 for testing --- DetectLanguage.Tests/DetectLanguage.Tests.csproj | 2 +- DetectLanguage/DetectLanguage.csproj | 2 +- mise.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DetectLanguage.Tests/DetectLanguage.Tests.csproj b/DetectLanguage.Tests/DetectLanguage.Tests.csproj index a185c2b..70ddfe5 100644 --- a/DetectLanguage.Tests/DetectLanguage.Tests.csproj +++ b/DetectLanguage.Tests/DetectLanguage.Tests.csproj @@ -1,7 +1,7 @@ - net6.0;net8.0 + net6.0 false diff --git a/DetectLanguage/DetectLanguage.csproj b/DetectLanguage/DetectLanguage.csproj index 7c4a756..dbcb5e7 100644 --- a/DetectLanguage/DetectLanguage.csproj +++ b/DetectLanguage/DetectLanguage.csproj @@ -12,7 +12,7 @@ https://github.com/detectlanguage/detectlanguage-dotnet MIT https://www.nuget.org/profiles/detectlanguage/avatar?imageSize=128 - net6.0;net8.0 + net6.0 README.md diff --git a/mise.toml b/mise.toml index 21ad1fc..7c97162 100644 --- a/mise.toml +++ b/mise.toml @@ -1,5 +1,5 @@ [tools] -dotnet = "8" +dotnet = "6" [env] _.file = ".env.local" From 3f08e67ee76ff7188f43de369738c584893356e6 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 22:58:37 +0300 Subject: [PATCH 10/14] Add latest dotnet support --- DetectLanguage.Tests/DetectLanguage.Tests.csproj | 2 +- DetectLanguage/DetectLanguage.csproj | 2 +- mise.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DetectLanguage.Tests/DetectLanguage.Tests.csproj b/DetectLanguage.Tests/DetectLanguage.Tests.csproj index 70ddfe5..1da691f 100644 --- a/DetectLanguage.Tests/DetectLanguage.Tests.csproj +++ b/DetectLanguage.Tests/DetectLanguage.Tests.csproj @@ -1,7 +1,7 @@ - net6.0 + net6.0;net7.0;net8.0;net9.0 false diff --git a/DetectLanguage/DetectLanguage.csproj b/DetectLanguage/DetectLanguage.csproj index dbcb5e7..926fecf 100644 --- a/DetectLanguage/DetectLanguage.csproj +++ b/DetectLanguage/DetectLanguage.csproj @@ -12,7 +12,7 @@ https://github.com/detectlanguage/detectlanguage-dotnet MIT https://www.nuget.org/profiles/detectlanguage/avatar?imageSize=128 - net6.0 + net6.0;net7.0;net8.0;net9.0 README.md diff --git a/mise.toml b/mise.toml index 7c97162..8a031e1 100644 --- a/mise.toml +++ b/mise.toml @@ -1,5 +1,5 @@ [tools] -dotnet = "6" +dotnet = "9.0" [env] _.file = ".env.local" From 50ad13656b6ba3dd18c5f3b0ca2fdd43d22e4dc1 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 23:06:41 +0300 Subject: [PATCH 11/14] Use dotnet 9 to test all frameworks --- .github/workflows/main.yml | 3 --- DetectLanguage.Tests/DetectLanguage.Tests.csproj | 2 +- DetectLanguage/DetectLanguage.csproj | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 79578bd..d97ece9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,9 +6,6 @@ jobs: strategy: matrix: dotnet-version: - - '6.0' - - '7.0' - - '8.0' - '9.0' name: .NET ${{ matrix.dotnet-version }} sample steps: diff --git a/DetectLanguage.Tests/DetectLanguage.Tests.csproj b/DetectLanguage.Tests/DetectLanguage.Tests.csproj index 1da691f..c6b114e 100644 --- a/DetectLanguage.Tests/DetectLanguage.Tests.csproj +++ b/DetectLanguage.Tests/DetectLanguage.Tests.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0;net9.0 + net9.0 false diff --git a/DetectLanguage/DetectLanguage.csproj b/DetectLanguage/DetectLanguage.csproj index 926fecf..d5f5ef0 100644 --- a/DetectLanguage/DetectLanguage.csproj +++ b/DetectLanguage/DetectLanguage.csproj @@ -12,7 +12,7 @@ https://github.com/detectlanguage/detectlanguage-dotnet MIT https://www.nuget.org/profiles/detectlanguage/avatar?imageSize=128 - net6.0;net7.0;net8.0;net9.0 + net5.0;net6.0;net7.0;net8.0;net9.0 README.md From 93607bc5758fc1a73da5e23373e2f54b42be3a0a Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Thu, 31 Jul 2025 23:12:25 +0300 Subject: [PATCH 12/14] Update readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d6bd80f..0f8ec34 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ DetectLanguageClient client = new DetectLanguageClient("YOUR API KEY"); ### Language detection ```c# -DetectResult[] results = await client.DetectAsync("Buenos dias señor"); +DetectResult[] results = await client.DetectAsync("Dolce far niente"); ``` ### Single language code detection @@ -63,7 +63,7 @@ DetectResult[] results = await client.DetectAsync("Buenos dias señor"); If you need just a language code you can use `DetectCodeAsync`. It returns first detected language code. ```c# -string languageCode = await client.DetectCodeAsync("Buenos dias señor"); +string languageCode = await client.DetectCodeAsync("Dolce far niente"); ``` ### Batch detection @@ -80,7 +80,7 @@ DetectResult[][] results = await client.BatchDetectAsync(texts); ### Getting your account status ```c# -UserStatus userStatus = await client.GetUserStatusAsync(); +AccountStatus accountStatus = await client.GetAccountStatusAsync(); ``` ### Getting list supported languages From f8749f58555358cb34af9fa30e6552c43b48b1df Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Sun, 3 Aug 2025 08:56:23 +0300 Subject: [PATCH 13/14] Add publish action --- .github/workflows/publish.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..7eea7ae --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,24 @@ +name: Publish dotnet package + +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0 + - name: Build + run: dotnet build --configuration Release + - name: Pack + run: dotnet pack --configuration Release + - name: Publish the package to nuget.org + run: dotnet nuget push */bin/Release/*.nupkg -k $NUGET_AUTH_TOKEN -s https://api.nuget.org/v3/index.json + env: + NUGET_AUTH_TOKEN: ${{ secrets.NUGET_TOKEN }} From 13f2cf840c80e5dcdfc190f8d3517a361b803b28 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Sun, 3 Aug 2025 09:05:17 +0300 Subject: [PATCH 14/14] Add changelog --- CHANGELOG.md | 15 +++++++++++++++ README.md | 4 ++++ 2 files changed, 19 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..42a0908 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## v2.0.0 + +### Changed +- Switched to v3 API which uses updated language detection model +- ⚠️ Added `DetectResult` field `score`, removed `confidence` and `reliable` +- Renamed `GetUserStatusAsync` to `GetAccountStatusAsync` +- Updated `Newtonsoft.Json` dependency to `13.0.3` diff --git a/README.md b/README.md index 0f8ec34..a7976bd 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,10 @@ From within Visual Studio: 5. Click on the DetectLanguage package, select the appropriate version in the right-tab and click *Install*. +### Upgrading + +When upgrading please check [changelog](CHANGELOG.md) for breaking changes. + ## Documentation For a comprehensive list of examples, check out the [API documentation][api-docs].