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.