From 53dee165ed2a536587f806452215a48d17de5f24 Mon Sep 17 00:00:00 2001 From: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com> Date: Wed, 16 Apr 2025 22:38:00 +0200 Subject: [PATCH 1/2] Feature: New language Japanese (ja-JP) --- Scripts/Create-FlagFromSVG.ps1 | 12 +++ .../LocalizationManager.cs | 7 +- .../NETworkManager.Localization.csproj | 72 +++++++++--------- .../Resources/Flags/ja-JP.png | Bin 0 -> 2288 bytes 4 files changed, 53 insertions(+), 38 deletions(-) create mode 100644 Scripts/Create-FlagFromSVG.ps1 create mode 100644 Source/NETworkManager.Localization/Resources/Flags/ja-JP.png diff --git a/Scripts/Create-FlagFromSVG.ps1 b/Scripts/Create-FlagFromSVG.ps1 new file mode 100644 index 0000000000..09cd945895 --- /dev/null +++ b/Scripts/Create-FlagFromSVG.ps1 @@ -0,0 +1,12 @@ +<# + Convert 4x3 country flags from SVG to PNG using ImageMagick. + + Flags source: https://github.com/lipis/flag-icon-css +#> + +$ConvertPath = "C:\Tools\ImageMagick-7.1.0-portable-Q16-x64\convert.exe" + +$SourcePath = "C:\Temp\jp.svg" +$DestinationPath = "C:\Temp\ja-JP.png" + +Start-Process -FilePath $ConvertPath -ArgumentList "-antialias -density 600 -background transparent -resize x48 ""$SourcePath"" ""$DestinationPath""" -NoNewWindow -Wait diff --git a/Source/NETworkManager.Localization/LocalizationManager.cs b/Source/NETworkManager.Localization/LocalizationManager.cs index 0d92e5dc74..06782d58e1 100644 --- a/Source/NETworkManager.Localization/LocalizationManager.cs +++ b/Source/NETworkManager.Localization/LocalizationManager.cs @@ -51,8 +51,8 @@ private LocalizationManager(string cultureCode = DefaultCultureCode) /// /// List with all s. /// - public static List List => new() - { + public static List List => + [ // Official new LocalizationInfo("English", "English", GetImageUri("en-US"), "en-US", true), new LocalizationInfo("German (Germany)", "Deutsch", GetImageUri("de-DE"), "de-DE", true), @@ -65,13 +65,14 @@ private LocalizationManager(string cultureCode = DefaultCultureCode) new LocalizationInfo("French (France)", "Français", GetImageUri("fr-FR"), "fr-FR"), new LocalizationInfo("Hungarian (Hungary)", "Magyar", GetImageUri("hu-HU"), "hu-HU"), new LocalizationInfo("Italian (Italy)", "Italiano", GetImageUri("it-IT"), "it-IT"), + new LocalizationInfo("Japanese (Japan)", "日本語", GetImageUri("ja-JP"), "ja-JP"), new LocalizationInfo("Korean (Korea)", "한국어", GetImageUri("ko-KR"), "ko-KR"), new LocalizationInfo("Polish (Poland)", "Język polski", GetImageUri("pl-PL"), "pl-PL"), new LocalizationInfo("Portuguese (Brazil)", "português brasileiro", GetImageUri("pt-BR"), "pt-BR"), new LocalizationInfo("Russian (Russia)", "Русский", GetImageUri("ru-RU"), "ru-RU"), new LocalizationInfo("Slovenian (Slovenia)", "slovenski jezik", GetImageUri("sl-SI"), "sl-SI"), new LocalizationInfo("Spanish (Spain)", "Español", GetImageUri("es-ES"), "es-ES") - }; + ]; /// /// Variable with the currently used . diff --git a/Source/NETworkManager.Localization/NETworkManager.Localization.csproj b/Source/NETworkManager.Localization/NETworkManager.Localization.csproj index 75c5b633c3..e39f5ba6c3 100644 --- a/Source/NETworkManager.Localization/NETworkManager.Localization.csproj +++ b/Source/NETworkManager.Localization/NETworkManager.Localization.csproj @@ -14,51 +14,53 @@ 1701;1702;CA1712 - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - + + + diff --git a/Source/NETworkManager.Localization/Resources/Flags/ja-JP.png b/Source/NETworkManager.Localization/Resources/Flags/ja-JP.png new file mode 100644 index 0000000000000000000000000000000000000000..371b28b0481c15d2dbd13fecf72a028894caf44e GIT binary patch literal 2288 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 al5YSp`u`g;UYxDq8Gx-d-m22V>)O99;uMhp literal 0 HcmV?d00001 From f7b06f456baa2e72d1e394edc3b7d5fc273a0526 Mon Sep 17 00:00:00 2001 From: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com> Date: Wed, 16 Apr 2025 23:03:50 +0200 Subject: [PATCH 2/2] Docs: #3044 --- Website/docs/changelog/next-release.md | 2 ++ Website/docs/commandline-arguments.md | 1 + Website/docs/settings/language.md | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/Website/docs/changelog/next-release.md b/Website/docs/changelog/next-release.md index 6ffcee8689..1cc1154552 100644 --- a/Website/docs/changelog/next-release.md +++ b/Website/docs/changelog/next-release.md @@ -19,6 +19,8 @@ Release date: **xx.xx.2025** ## What's new? +- New language Japanese (`ja-JP`) has been added. Thanks to [@coolvitto](https://github.com/coolvitto) [#3044](https://github.com/BornToBeRoot/NETworkManager/pull/3044) [#3030](https://github.com/BornToBeRoot/NETworkManager/pull/3030) [#3035](https://github.com/BornToBeRoot/NETworkManager/pull/3035) + ## Improvements **PowerShell** diff --git a/Website/docs/commandline-arguments.md b/Website/docs/commandline-arguments.md index 1011106f76..cd14b9e9be 100644 --- a/Website/docs/commandline-arguments.md +++ b/Website/docs/commandline-arguments.md @@ -53,6 +53,7 @@ Start a specific application on startup. - `DiscoveryProtocol` - `WakeOnLAN` - `Whois` +- `IPGeolocation` - `SubnetCalculator` - `BitCalculator` - `Lookup` diff --git a/Website/docs/settings/language.md b/Website/docs/settings/language.md index ffb1fce10c..48ee4ecc3e 100644 --- a/Website/docs/settings/language.md +++ b/Website/docs/settings/language.md @@ -12,6 +12,25 @@ Language for the user interface of the application. **Default:** `English` (`en-US`) +**Possible values:** + +- `English` (`en-US`) +- `German (Germany)` (`de-DE`) +- `Chinese (China)` (`zh-CN`) +- `Chinese (Taiwan)` (`zh-TW`) +- `Czech (Czech Republic)` (`cs-CZ`) +- `Dutch (Netherlands)` (`nl-NL`) +- `French (France)` (`fr-FR`) +- `Hungarian (Hungary)` (`hu-HU`) +- `Italian (Italy)` (`it-IT`) +- `Japanese (Japan)` (`ja-JP`) +- `Korean (South Korea)` (`ko-KR`) +- `Polish (Poland)` (`pl-PL`) +- `Portuguese (Brazil)` (`pt-BR`) +- `Russian (Russia)` (`ru-RU`) +- `Slovenian (Slovenia)` (`sl-SI`) +- `Spanish (Spain)` (`es-ES`) + :::note The language is automatically detected based on the system language. If the language is not available, the default language is used. Changes to this value will take effect after restarting the application.