Skip to content

Commit 5a80758

Browse files
committed
Update project to C# 12 and use new features
1 parent ba30c58 commit 5a80758

20 files changed

+82
-101
lines changed

LanguageScraper/GoogleLanguageScraper.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ namespace LanguageScraper;
1313
// For GoogleTranslator and GoogleTranslator2
1414
public class GoogleLanguageScraper : ILanguageScraper
1515
{
16-
private static ReadOnlySpan<byte> LanguagesId => Encoding.UTF8.GetBytes("n9wk7");
16+
private static ReadOnlySpan<byte> LanguagesId => "n9wk7"u8;
1717

18-
private static ReadOnlySpan<byte> TtsLanguagesId => Encoding.UTF8.GetBytes("ycyxUb");
18+
private static ReadOnlySpan<byte> TtsLanguagesId => "ycyxUb"u8;
1919

20-
private static ReadOnlySpan<byte> LanguagesStart => Encoding.UTF8.GetBytes("data:");
20+
private static ReadOnlySpan<byte> LanguagesStart => "data:"u8;
2121

22-
private static ReadOnlySpan<byte> LanguagesEnd => Encoding.UTF8.GetBytes(", sideChannel");
22+
private static ReadOnlySpan<byte> LanguagesEnd => ", sideChannel"u8;
2323

24-
private static ReadOnlySpan<byte> NativeNamesStart => Encoding.UTF8.GetBytes("window.LanguageDisplays.nativeNames = ");
24+
private static ReadOnlySpan<byte> NativeNamesStart => "window.LanguageDisplays.nativeNames = "u8;
2525

26-
private static ReadOnlySpan<byte> NativeNamesEnd => Encoding.UTF8.GetBytes(";window.LanguageDisplays.localNames");
26+
private static ReadOnlySpan<byte> NativeNamesEnd => ";window.LanguageDisplays.localNames"u8;
2727

2828
private readonly HttpClient _httpClient = new();
2929

@@ -85,7 +85,7 @@ public async Task DisplayMissingLanguagesAsync()
8585
}
8686
}
8787

88-
private static IReadOnlyList<ILanguage> GetTtsLanguages(byte[] htmlBytes)
88+
private static ScrapedLanguage[] GetTtsLanguages(byte[] htmlBytes)
8989
{
9090
return GetLanguageData(htmlBytes, TtsLanguagesId)
9191
.RootElement[0]
@@ -123,7 +123,7 @@ private async Task<IReadOnlyList<ILanguage>> GetLanguagesAsync(byte[] htmlBytes)
123123
Name: x.Value,
124124
ISO6391: x.Key,
125125
ISO6393: "?",
126-
NativeName: nativeNames.TryGetValue(x.Key, out string? nativeName) ? nativeName : "?"))
126+
NativeName: nativeNames.GetValueOrDefault(x.Key, "?")))
127127
.ToArray();
128128
}
129129

LanguageScraper/MicrosoftLanguageScraper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public MicrosoftLanguageScraper()
1919

2020
public TranslationServices TranslationService => TranslationServices.Microsoft;
2121

22-
public IReadOnlyCollection<ILanguage> ExistingTtsLanguages => Array.Empty<ILanguage>();
22+
public IReadOnlyCollection<ILanguage> ExistingTtsLanguages => [];
2323

2424
public async Task<LanguageData> GetLanguageDataAsync()
2525
{

LanguageScraper/YandexLanguageScraper.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Net.Http;
5-
using System.Text;
65
using System.Text.Json;
76
using System.Threading.Tasks;
87
using GTranslate;
@@ -11,9 +10,9 @@ namespace LanguageScraper;
1110

1211
public class YandexLanguageScraper : ILanguageScraper
1312
{
14-
private static ReadOnlySpan<byte> TranslatorLangsStart => Encoding.UTF8.GetBytes("TRANSLATOR_LANGS: ");
13+
private static ReadOnlySpan<byte> TranslatorLangsStart => "TRANSLATOR_LANGS: "u8;
1514

16-
private static ReadOnlySpan<byte> TranslatorLangsEnd => Encoding.UTF8.GetBytes(",\n");
15+
private static ReadOnlySpan<byte> TranslatorLangsEnd => ",\n"u8;
1716

1817
private readonly HttpClient _httpClient = new();
1918

@@ -24,7 +23,7 @@ public YandexLanguageScraper()
2423

2524
public TranslationServices TranslationService => TranslationServices.Yandex;
2625

27-
public IReadOnlyCollection<ILanguage> ExistingTtsLanguages => Array.Empty<ILanguage>();
26+
public IReadOnlyCollection<ILanguage> ExistingTtsLanguages => [];
2827

2928
public async Task<LanguageData> GetLanguageDataAsync()
3029
{
@@ -39,6 +38,6 @@ public async Task<LanguageData> GetLanguageDataAsync()
3938
.Select(x => new ScrapedLanguage(x.Value.GetString()!, x.Name, "?", "?"))
4039
.ToArray();
4140

42-
return new LanguageData { Languages = languages, TtsLanguages = Array.Empty<ILanguage>() };
41+
return new LanguageData { Languages = languages, TtsLanguages = [] };
4342
}
4443
}

examples/TranslatorExample/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal static class Program
99
private static async Task Main()
1010
{
1111
Console.WriteLine("Translator Example\n");
12-
var translator = new AggregateTranslator();
12+
using var translator = new AggregateTranslator();
1313

1414
while (true)
1515
{

src/GTranslate/Extensions/StringExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace GTranslate.Extensions;
55

66
internal static class StringExtensions
77
{
8-
private static readonly char[] _separators = { '\t', '\r', '\n', ' ' };
8+
private static readonly char[] _separators = ['\t', '\r', '\n', ' '];
99

1010
// Splits a text into lines of max. 200 chars without breaking words (if possible)
1111
// This algorithm is not as accurate as the one Google uses, but it's good enough

src/GTranslate/GTranslate.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<Version>2.1.6</Version>
5-
<LangVersion>11</LangVersion>
5+
<LangVersion>12</LangVersion>
66
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0;net8.0</TargetFrameworks>
77
<Authors>d4n3436</Authors>
88
<Description>A collection of free translation APIs (Google Translate, Bing Translator, Microsoft Translator and Yandex.Translate). Currently supports translation, transliteration, language detection and text-to-speech.</Description>

src/GTranslate/Internal/CachedObject.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace GTranslate;
77
/// Represents a generic cached object.
88
/// </summary>
99
/// <typeparam name="T">The type of the value to cache.</typeparam>
10-
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
10+
[DebuggerDisplay($"{{{nameof(DebuggerDisplay)},nq}}")]
1111
internal readonly struct CachedObject<T>
1212
{
1313
/// <summary>

src/GTranslate/Internal/MemorySegment.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace GTranslate;
55

6-
internal class MemorySegment<T> : ReadOnlySequenceSegment<T>
6+
internal sealed class MemorySegment<T> : ReadOnlySequenceSegment<T>
77
{
88
public MemorySegment(ReadOnlyMemory<T> memory)
99
{

src/GTranslate/Internal/MicrosoftVoiceContext.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@ namespace GTranslate;
44

55

66
[JsonSerializable(typeof(MicrosoftVoice[]))]
7-
internal partial class MicrosoftVoiceContext : JsonSerializerContext
8-
{
9-
}
7+
internal sealed partial class MicrosoftVoiceContext : JsonSerializerContext;
108

119
[JsonSerializable(typeof(string))]
12-
internal partial class StringContext : JsonSerializerContext
13-
{
14-
}
10+
internal sealed partial class StringContext : JsonSerializerContext;

src/GTranslate/Internal/ReadOnlySequenceStream.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ namespace GTranslate;
3030
using System.Threading;
3131
using System.Threading.Tasks;
3232

33-
internal class ReadOnlySequenceStream : Stream
33+
internal sealed class ReadOnlySequenceStream : Stream
3434
{
3535
private readonly ReadOnlySequence<byte> _readOnlySequence;
3636
private bool _isDisposed;

0 commit comments

Comments
 (0)