From d5ec9f7640165a8e50f9f020bf26e836050f2dd3 Mon Sep 17 00:00:00 2001
From: Qodana Application
Date: Tue, 11 Mar 2025 10:00:39 +0000
Subject: [PATCH 01/27] Add qodana.yaml file
---
qodana.yaml | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 qodana.yaml
diff --git a/qodana.yaml b/qodana.yaml
new file mode 100644
index 0000000..bfca57a
--- /dev/null
+++ b/qodana.yaml
@@ -0,0 +1,6 @@
+version: "1.0"
+linter: jetbrains/qodana-python:2024.3
+profile:
+ name: qodana.recommended
+include:
+ - name: CheckDependencyLicenses
\ No newline at end of file
From f096ab4da79854c61dd943b21240c9f139937c7d Mon Sep 17 00:00:00 2001
From: Qodana Application
Date: Tue, 11 Mar 2025 10:00:39 +0000
Subject: [PATCH 02/27] Add github workflow file
---
.github/workflows/qodana_code_quality.yml | 28 +++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 .github/workflows/qodana_code_quality.yml
diff --git a/.github/workflows/qodana_code_quality.yml b/.github/workflows/qodana_code_quality.yml
new file mode 100644
index 0000000..080ca5b
--- /dev/null
+++ b/.github/workflows/qodana_code_quality.yml
@@ -0,0 +1,28 @@
+name: Qodana
+on:
+ workflow_dispatch:
+ pull_request:
+ push:
+ branches: # Specify your branches here
+ - main # The 'main' branch
+ - 'releases/*' # The release branches
+
+jobs:
+ qodana:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ checks: write
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit
+ fetch-depth: 0 # a full history is required for pull request analysis
+ - name: 'Qodana Scan'
+ uses: JetBrains/qodana-action@v2024.3
+ with:
+ pr-mode: false
+ env:
+ QODANA_TOKEN: ${{ secrets.QODANA_TOKEN_2090978292 }}
+ QODANA_ENDPOINT: 'https://qodana.cloud'
\ No newline at end of file
From 03902276414fa01e76dacae44d5d3d12de0b2d7f Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Wed, 12 Mar 2025 00:36:07 +0800
Subject: [PATCH 03/27] Update qodana_code_quality.yml
---
.github/workflows/qodana_code_quality.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/qodana_code_quality.yml b/.github/workflows/qodana_code_quality.yml
index 080ca5b..7bdf543 100644
--- a/.github/workflows/qodana_code_quality.yml
+++ b/.github/workflows/qodana_code_quality.yml
@@ -5,7 +5,7 @@ on:
push:
branches: # Specify your branches here
- main # The 'main' branch
- - 'releases/*' # The release branches
+ - v4.2-dev
jobs:
qodana:
@@ -25,4 +25,4 @@ jobs:
pr-mode: false
env:
QODANA_TOKEN: ${{ secrets.QODANA_TOKEN_2090978292 }}
- QODANA_ENDPOINT: 'https://qodana.cloud'
\ No newline at end of file
+ QODANA_ENDPOINT: 'https://qodana.cloud'
From aeb9597c7153caa8a98f18266b6a73df577482fc Mon Sep 17 00:00:00 2001
From: Daan
Date: Sun, 23 Mar 2025 20:41:48 +0100
Subject: [PATCH 04/27] Workflow fix.
---
.github/workflows/docker-analyze.yaml | 50 -------------------
...{docker-build.yaml => docker-related.yaml} | 15 ++++--
2 files changed, 12 insertions(+), 53 deletions(-)
delete mode 100644 .github/workflows/docker-analyze.yaml
rename .github/workflows/{docker-build.yaml => docker-related.yaml} (71%)
diff --git a/.github/workflows/docker-analyze.yaml b/.github/workflows/docker-analyze.yaml
deleted file mode 100644
index a3533a7..0000000
--- a/.github/workflows/docker-analyze.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Docker-Analyze
-
-on:
- schedule:
- - cron: "0 0 * * *" # Daily at midnight UTC
- workflow_dispatch:
- inputs:
- trigger-build:
- description: 'Trigger a manual build and push'
- default: 'true'
-
-env:
- DOCKER_IMAGE: donaldzou/wgdashboard
-
-jobs:
- docker_analyze:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Log in to Docker Hub
- uses: docker/login-action@v3
- with:
- username: ${{ secrets.DOCKER_HUB_USERNAME }}
- password: ${{ secrets.DOCKER_HUB_PASSWORD }}
-
- - name: Install Docker Scout
- run: |
- echo "Installing Docker Scout..."
- curl -fsSL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s --
- echo "Docker Scout installed successfully."
- - name: Analyze Docker image with Docker Scout
- id: analyze-image
- run: |
- echo "Analyzing Docker image with Docker Scout..."
- docker scout cves ${{ env.DOCKER_IMAGE }}:latest > scout-results.txt
- cat scout-results.txt
- echo "Docker Scout analysis completed."
- - name: Fail if critical CVEs are found
- run: |
- if grep -q "0C" scout-results.txt; then
- echo "No critical vulnerabilities found! Continueing."
- exit 0
- else
- echo "At least one critical vulnerabilities found! Exiting."
- exit 1
- fi
diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-related.yaml
similarity index 71%
rename from .github/workflows/docker-build.yaml
rename to .github/workflows/docker-related.yaml
index f038314..ff120bf 100644
--- a/.github/workflows/docker-build.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -1,4 +1,4 @@
-name: Docker-Build
+name: Docker Scan and Build
on:
push:
@@ -10,10 +10,10 @@ on:
default: 'true'
env:
- DOCKER_IMAGE: donaldzou/wgdashboard
+ DOCKER_IMAGE: ${{ secrets.DOCKER_HUB_USERNAME }}/wgdashboard
jobs:
- docker_build:
+ docker_build_analyze:
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -42,3 +42,12 @@ jobs:
push: true
tags: ${{ env.DOCKER_IMAGE }}:latest
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
+
+ - name: Docker Scout
+ id: docker-scout
+ uses: docker/scout-action@v1
+ with:
+ command: quickview,cves
+ image: image://${{ env.DOCKER_IMAGE }}:latest
+ summary: true
+ only-severities: critical,high,medium,low,unspecified
\ No newline at end of file
From 55543e370ed9128ee688eb4af624e38c9f2ac3d2 Mon Sep 17 00:00:00 2001
From: dselen <80752476+DaanSelen@users.noreply.github.com>
Date: Sun, 23 Mar 2025 21:20:40 +0100
Subject: [PATCH 05/27] Update docker-related.yaml
Workflow fix fix
---
.github/workflows/docker-related.yaml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index ff120bf..b51337e 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -10,7 +10,7 @@ on:
default: 'true'
env:
- DOCKER_IMAGE: ${{ secrets.DOCKER_HUB_USERNAME }}/wgdashboard
+ DOCKER_IMAGE: donaldzou/wgdashboard
jobs:
docker_build_analyze:
@@ -50,4 +50,4 @@ jobs:
command: quickview,cves
image: image://${{ env.DOCKER_IMAGE }}:latest
summary: true
- only-severities: critical,high,medium,low,unspecified
\ No newline at end of file
+ only-severities: critical,high,medium,low,unspecified
From 20633a6d1accc11c599c929418254873e03c45e3 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 24 Mar 2025 05:00:45 +0800
Subject: [PATCH 06/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index b51337e..9e64cbc 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -48,6 +48,6 @@ jobs:
uses: docker/scout-action@v1
with:
command: quickview,cves
- image: image://${{ env.DOCKER_IMAGE }}:latest
+ image: ${{ env.DOCKER_IMAGE }}:latest
summary: true
only-severities: critical,high,medium,low,unspecified
From 0f7f9acd58e49f6ba6e0a4b1afcc8918c00af637 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 24 Mar 2025 05:11:22 +0800
Subject: [PATCH 07/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index 9e64cbc..97d917f 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -51,3 +51,4 @@ jobs:
image: ${{ env.DOCKER_IMAGE }}:latest
summary: true
only-severities: critical,high,medium,low,unspecified
+ github-token: ${{ secrets.GH_TOKEN }}
From bc22fa5fad7d5ce94250226cb5481d6ce19e9a6c Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 24 Mar 2025 12:42:03 +0800
Subject: [PATCH 08/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index 97d917f..4426b2e 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -47,7 +47,7 @@ jobs:
id: docker-scout
uses: docker/scout-action@v1
with:
- command: quickview,cves
+ command: cves
image: ${{ env.DOCKER_IMAGE }}:latest
summary: true
only-severities: critical,high,medium,low,unspecified
From 86017b79ebd3ed816515f6754fb0011d2158d1dd Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 24 Mar 2025 12:50:26 +0800
Subject: [PATCH 09/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index 4426b2e..39cf11b 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -42,7 +42,11 @@ jobs:
push: true
tags: ${{ env.DOCKER_IMAGE }}:latest
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
-
+ - name: Log in to Docker Hub Again
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
+ password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Docker Scout
id: docker-scout
uses: docker/scout-action@v1
From f94eb97aa4b3d7673cec8f95c58a5dca14da05f6 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 24 Mar 2025 12:52:28 +0800
Subject: [PATCH 10/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index 39cf11b..d3f9855 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -53,6 +53,7 @@ jobs:
with:
command: cves
image: ${{ env.DOCKER_IMAGE }}:latest
- summary: true
+ summary: false
+ write-comment: false
only-severities: critical,high,medium,low,unspecified
- github-token: ${{ secrets.GH_TOKEN }}
+ github-token: ${{ secrets.GITHUB_TOKEN }}
From a29b59c9cda0e914295ccdd7959596e82b57ba23 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 24 Mar 2025 17:36:05 +0800
Subject: [PATCH 11/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index d3f9855..b8b3ba5 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -52,6 +52,8 @@ jobs:
uses: docker/scout-action@v1
with:
command: cves
+ dockerhub-user: ${{ secrets.DOCKER_HUB_USERNAME }}
+ dockerhub-pasword: ${{ secrets.DOCKER_HUB_PASSWORD }}
image: ${{ env.DOCKER_IMAGE }}:latest
summary: false
write-comment: false
From e3842b25f3a975a9744724cbd8b30769bcf7d425 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Tue, 25 Mar 2025 15:11:06 +0800
Subject: [PATCH 12/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index b8b3ba5..afb0d4c 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -53,7 +53,7 @@ jobs:
with:
command: cves
dockerhub-user: ${{ secrets.DOCKER_HUB_USERNAME }}
- dockerhub-pasword: ${{ secrets.DOCKER_HUB_PASSWORD }}
+ dockerhub-password: ${{ secrets.DOCKER_HUB_PASSWORD }}
image: ${{ env.DOCKER_IMAGE }}:latest
summary: false
write-comment: false
From d0177b75043d7d57faa839214fcd57768c4d3292 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Tue, 25 Mar 2025 15:17:41 +0800
Subject: [PATCH 13/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index afb0d4c..ef28e65 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -42,8 +42,8 @@ jobs:
push: true
tags: ${{ env.DOCKER_IMAGE }}:latest
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
- - name: Log in to Docker Hub Again
- uses: docker/login-action@v3
+ - name: Log into registry ${{ env.REGISTRY }}
+ uses: docker/login-action@v2.1.0
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
@@ -52,8 +52,6 @@ jobs:
uses: docker/scout-action@v1
with:
command: cves
- dockerhub-user: ${{ secrets.DOCKER_HUB_USERNAME }}
- dockerhub-password: ${{ secrets.DOCKER_HUB_PASSWORD }}
image: ${{ env.DOCKER_IMAGE }}:latest
summary: false
write-comment: false
From d842ae95405e05ef1975e1f2ad402c827af43586 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Tue, 25 Mar 2025 15:36:53 +0800
Subject: [PATCH 14/27] Update docker-related.yaml
---
.github/workflows/docker-related.yaml | 7 -------
1 file changed, 7 deletions(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index ef28e65..d015add 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -42,18 +42,11 @@ jobs:
push: true
tags: ${{ env.DOCKER_IMAGE }}:latest
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
- - name: Log into registry ${{ env.REGISTRY }}
- uses: docker/login-action@v2.1.0
- with:
- username: ${{ secrets.DOCKER_HUB_USERNAME }}
- password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Docker Scout
id: docker-scout
uses: docker/scout-action@v1
with:
command: cves
image: ${{ env.DOCKER_IMAGE }}:latest
- summary: false
- write-comment: false
only-severities: critical,high,medium,low,unspecified
github-token: ${{ secrets.GITHUB_TOKEN }}
From 1a32fad324556211e43db5b7a1d85b40cbc7f8cf Mon Sep 17 00:00:00 2001
From: dselen <80752476+DaanSelen@users.noreply.github.com>
Date: Wed, 26 Mar 2025 09:42:11 +0100
Subject: [PATCH 15/27] Update docker-related.yaml
Added nigthly trigger.
---
.github/workflows/docker-related.yaml | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/docker-related.yaml b/.github/workflows/docker-related.yaml
index d015add..a2ae195 100644
--- a/.github/workflows/docker-related.yaml
+++ b/.github/workflows/docker-related.yaml
@@ -3,6 +3,8 @@ name: Docker Scan and Build
on:
push:
branches: [ main ]
+ schedule:
+ - cron: "0 0 * * *" # Daily at midnight UTC
workflow_dispatch:
inputs:
trigger-build:
@@ -21,17 +23,17 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v3
- with:
- platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
-
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ with:
+ platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
+
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
@@ -42,6 +44,7 @@ jobs:
push: true
tags: ${{ env.DOCKER_IMAGE }}:latest
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
+
- name: Docker Scout
id: docker-scout
uses: docker/scout-action@v1
From 13a833e3eda2a2ce65a562ca86c067ea7a5c5f33 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Fri, 4 Apr 2025 16:53:17 +0800
Subject: [PATCH 16/27] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 3003c68..6318cfb 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
-
+
Monitoring WireGuard is not convenient, in most case, you'll need to login to your server and type wg show
. That's why this project is being created, to view and manage all WireGuard configurations in a easy way.
From fecd8dab38e58e8a3eec4bc25e73fa8d7ef9785c Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Sat, 5 Apr 2025 20:45:37 +0800
Subject: [PATCH 17/27] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6318cfb..9918048 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
-
+
Monitoring WireGuard is not convenient, in most case, you'll need to login to your server and type wg show
. That's why this project is being created, to view and manage all WireGuard configurations in a easy way.
From a8e2cbf55b6831c073cc698a8027d86b7c75c2f5 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Sat, 5 Apr 2025 22:38:20 +0800
Subject: [PATCH 18/27] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9918048..66b73cc 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
-
+
Monitoring WireGuard is not convenient, in most case, you'll need to login to your server and type wg show
. That's why this project is being created, to view and manage all WireGuard configurations in a easy way.
From 464fa59cb6c730ae97c225f32fef7531bc49876c Mon Sep 17 00:00:00 2001
From: Jumala9163
Date: Sun, 6 Apr 2025 00:12:00 +0900
Subject: [PATCH 19/27] Add Japanese(ja-jp) Language
---
src/static/locale/active_languages.json | 5 +
src/static/locale/ja-jp.json | 312 ++++++++++++++++++++++++
2 files changed, 317 insertions(+)
create mode 100644 src/static/locale/ja-jp.json
diff --git a/src/static/locale/active_languages.json b/src/static/locale/active_languages.json
index b7d1a8a..ac446fd 100644
--- a/src/static/locale/active_languages.json
+++ b/src/static/locale/active_languages.json
@@ -34,6 +34,11 @@
"lang_name": "Italian",
"lang_name_localized": "Italiano"
},
+ {
+ "lang_id": "ja-jp",
+ "lang_name": "Japanese",
+ "lang_name_localized": "日本語"
+ },
{
"lang_id": "ko",
"lang_name": "Korean",
diff --git a/src/static/locale/ja-jp.json b/src/static/locale/ja-jp.json
new file mode 100644
index 0000000..5d95214
--- /dev/null
+++ b/src/static/locale/ja-jp.json
@@ -0,0 +1,312 @@
+{
+ "Welcome to": "ようこそ",
+ "Username": "ユーザー名",
+ "Password": "パスワード",
+ "OTP from your authenticator": "認証アプリで生成されたワンタイムパスワード",
+ "Sign In": "サインイン",
+ "Signing In\\.\\.\\.": "サインイン...",
+ "Access Remote Server": "リモートサーバーにアクセス",
+ "Server": "サーバー",
+ "Click": "クリック",
+ "Pinging...": "応答待機中...",
+ "to add your server": "してサーバーを追加",
+ "Server List": "サーバーリスト",
+ "Sorry, your username or password is incorrect.": "ユーザー名またはパスワードが間違っています",
+ "Home": "ホーム",
+ "Settings": "設定",
+ "Tools": "ツール",
+ "Sign Out": "サインアウト",
+ "Checking for update...": "アップデートを確認中...",
+ "You're on the latest version": "最新版利用しています",
+ "WireGuard Configurations": "WireGuard 構成",
+ "You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "WireGuardの構成が見つかりません 構成ファイルの保存場所を確認するか、設定タブから構成ファイルの保存場所を変更してください デフォルトの構成ファイルの保存場所は /etc/wireguard です",
+ "Configuration": "構成",
+ "Configurations": "構成",
+ "Peers Default Settings": "デフォルトピア設定",
+ "Dashboard Theme": "ダッシュボードテーマ",
+ "Light": "ライトモード",
+ "Dark": "ダークモード",
+ "This will be changed globally, and will be apply to all peer's QR code and configuration file.": "これは全てのピアやQRコード、コンフィグファイルに変更が適用されます",
+ "WireGuard Configurations Settings": "WireGuard構成設定",
+ "Configurations Directory": "コンフィグ保存場所",
+ "Remember to remove / at the end of your path. e.g /etc/wireguard": "パスの最後の\"/\"は不要です。 例:/etc/wireguard",
+ "WGDashboard Account Settings": "WGDashboardアカウント設定",
+ "Current Password": "現在のパスワード",
+ "New Password": "新しいパスワード",
+ "Repeat New Password": "再度、新しいパスワードを入力してください",
+ "Update Password": "パスワードを更新",
+ "Multi-Factor Authentication \\(MFA\\)": "多要素認証",
+ "Reset": "リセット",
+ "Setup": "設定",
+ "API Keys": "APIキー",
+ "API Key": "APIキー",
+ "Key": "Key",
+ "Enabled": "有効",
+ "Disabled": "無効",
+ "No WGDashboard API Key": "APIキーがありません",
+ "Expire At": "有効期限",
+ "Are you sure to delete this API key\\?": "このAPIキーを削除してもよろしいですか?",
+ "Create API Key": "APIキーを作成",
+ "When should this API Key expire\\?": "APIキーの有効期限を設定してください",
+ "Never Expire": "無期限",
+ "Don't think that's a good idea": "あまりおすすめはしません...",
+ "Creating\\.\\.\\.": "作成中...",
+ "Create": "作成",
+ "Status": "ステータス",
+ "On": "ON",
+ "Off": "OFF",
+ "Turning On\\.\\.\\.": "ONにしています...",
+ "Turning Off\\.\\.\\.": "OFFにしています...",
+ "Address": "アドレス",
+ "Listen Port": "待ち受けポート",
+ "Public Key": "公開鍵",
+ "Connected Peers": "接続しているピア",
+ "Total Usage": "総通信量",
+ "Total Received": "総受信量",
+ "Total Sent": "総送信量",
+ "Peers Data Usage": "ピア別データ使用量",
+ "Real Time Received Data Usage": "リアルタイム受信量",
+ "Real Time Sent Data Usage": "リアルタイム送信量",
+ "Peer": "ピア",
+ "Peers": "ピア",
+ "Peer Settings": "ピア設定",
+ "Download All": "全てダウンロード",
+ "Search Peers\\.\\.\\.": "ピアを検索",
+ "Display": "表示設定",
+ "Sort By": "並び替え",
+ "Refresh Interval": "更新間隔",
+ "Name": "名前",
+ "Allowed IPs": "Allowed IPs",
+ "Restricted": "制限",
+ "(.*) Seconds": "$1 秒",
+ "(.*) Minutes": "$1 分",
+ "Configuration Settings": "構成設定",
+ "Peer Jobs": "ピアジョブ",
+ "Active Jobs": "有効なジョブ",
+ "All Active Jobs": "全ての有効なジョブ",
+ "Logs": "ログ",
+ "Private Key": "秘密鍵",
+ "\\(Required for QR Code and Download\\)": "(QRコードかダウンロードが必要です)",
+ "\\(Required\\)": "(必須)",
+ "Endpoint Allowed IPs": "Endpoint Allowed IPs",
+ "DNS": "DNS",
+ "Optional Settings": "追加設定",
+ "Pre-Shared Key": "事前共有鍵",
+ "MTU": "MTU",
+ "Persistent Keepalive": "Persistent Keepalive",
+ "Reset Data Usage": "データ使用量をリセット",
+ "Total": "合計",
+ "Sent": "送信",
+ "Received": "受信",
+ "Revert": "反転",
+ "Save Peer": "ピアを保存",
+ "QR Code": "QRコード",
+ "Schedule Jobs": "スケジュールジョブ",
+ "Job": "ジョブ",
+ "Job ID": "ジョブID",
+ "Unsaved Job": "保存されていないジョブ",
+ "This peer does not have any job yet\\.": "このピアにはジョブがありません",
+ "if": "もし",
+ "is": "が",
+ "then": "だったら",
+ "larger than": "右記以降",
+ "Date": "日付",
+ "Restrict Peer": "ピアを制限",
+ "Delete Peer": "ピアを削除",
+ "Edit": "編集",
+ "Delete": "削除",
+ "Deleting...": "削除中...",
+ "Cancel": "キャンセル",
+ "Save": "保存",
+ "No active job at the moment\\.": "有効なジョブがありません",
+ "Jobs Logs": "ジョブログ",
+ "Updated at": "更新日",
+ "Refresh": "更新",
+ "Filter": "フィルター",
+ "Success": "成功",
+ "Failed": "失敗",
+ "Log ID": "ログID",
+ "Message": "メッセージ",
+ "Share Peer": "ピアを共有",
+ "Currently the peer is not sharing": "このピアは現在共有されていません",
+ "Sharing\\.\\.\\.": "共有中...",
+ "Start Sharing": "共有を開始",
+ "Stop Sharing\\.\\.\\.": "共有を停止中...",
+ "Stop Sharing": "共有を停止",
+ "Access Restricted": "アクセスを制限しました",
+ "Restrict Access": "アクセスを制限",
+ "Restricting\\.\\.\\.": "制限中...",
+ "Allow Access": "アクセス許可",
+ "Allowing Access\\.\\.\\.": "アクセスを許可しています...",
+ "Download \\& QR Code is not available due to no private key set for this peer": "このピアは秘密鍵が設定されていないため、ダウンロード・QRコードの利用が出来ません",
+ "Add Peers": "ピアを追加",
+ "Bulk Add": "複数追加",
+ "By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "一括でピアを追加すると、各ピアの名前は自動生成され、Allowed IPは利用可能なIPが割り当てられます",
+ "How many peers you want to add\\?": "いくつピアを追加しますか?",
+ "You can add up to (.*) peers": "最大で $1 個追加できます",
+ "Use your own Private and Public Key": "既存の秘密鍵・公開鍵を利用する",
+ "Enter IP Address/CIDR": "IPアドレス/CIDRを入力してください",
+ "IP Address/CIDR": "IPアドレス/CIDR",
+ "or": "または",
+ "Pick Available IP": "利用可能なIPアドレスを選択する",
+ "No available IP containing": "利用可能なIPアドレスがありません",
+ "Add": "追加",
+ "Adding\\.\\.\\.": "追加中...",
+ "Failed to check available update": "アップデートの確認に失敗しました",
+ "Nice to meet you!": "はじめまして!",
+ "Please fill in the following fields to finish setup": "以下のフィールドを入力して、セットアップを完了してください",
+ "Create an account": "アカウントの作成",
+ "Enter an username you like": "ユーザー名を入力してください",
+ "Enter a password": "パスワードを入力してください",
+ "\\(At least 8 characters and make sure is strong enough!\\)": "(最低8文字以上の強力なものになってることを確認してください!)",
+ "Confirm password": "再度パスワードを入力してください",
+ "Next": "次へ",
+ "Saving\\.\\.\\.": "保存中...",
+ "1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1.QRコードを認証アプリでスキャンして、ワンタイムパスワードを生成してください",
+ "Or you can click the link below:": "または、以下のリンクをクリックしてください",
+ "2\\. Enter the TOTP generated by your authenticator to verify": "2.認証アプリで生成されたワンタイムパスワードを入力してください",
+ "TOTP verified!": "ワンタイムパスワードが認証出来ました!",
+ "I don't need MFA": "多要素認証は不要です",
+ "Complete": "完了",
+ "(v[0-9.]{1,}) is now available for update!": "$1 が利用可能です!",
+ "Current Version:": "現在のバージョン:",
+ "Oh no\\.\\.\\. This link is either expired or invalid\\.": "おっと...このリンクは有効期限が切れているか無効です",
+ "Scan QR Code with the WireGuard App to add peer": "WireGuardアプリでQRコードをスキャンしてピアを追加",
+ "or click the button below to download the ": "または、ボタンをクリックしてファイルをダウンロード",
+ " file": " ファイル",
+ "FROM ": "FROM",
+ "(.*) is on": "$1 がONになりました",
+ "(.*) is off": "$1 がOFFになりました",
+ "Allowed IPs is invalid": "無効なAllowed IPsです",
+ "Peer created successfully": "ピアの作成に成功しました",
+ "Please fill in all required box": "必須項目を全て入力してください",
+ "Please specify amount of peers you want to add": "追加したいピアの数を入力してください",
+ "No more available IP can assign": "割り当て可能なIPがありません",
+ "The maximum number of peers can add is (.*)": "最大で $1 個のピアを追加出来ます",
+ "Generating key pairs by bulk failed": "キーペアの一括生成に失敗しました",
+ "Failed to add peers in bulk": "ピアの一括作成に失敗しました",
+ "This peer already exist": "このピアは既に存在します",
+ "This IP is not available: (.*)": "このIPは利用できません: $1",
+ "Configuration does not exist": "構成が存在しません",
+ "Peer does not exist": "ピアが存在しません",
+ "Please provide a valid configuration name": "有効な構成名を入力してください",
+ "Peer saved": "ピアを保存しました",
+ "Allowed IPs already taken by another peer": "このAllowed IPsは他のピアで使用されています",
+ "Endpoint Allowed IPs format is incorrect": "Endpoint Allowed IPsの形式が正しくありません",
+ "DNS format is incorrect": "DNSの形式が正しくありません",
+ "MTU format is not correct": "MTUの形式が正しくありません",
+ "Persistent Keepalive format is not correct": "Persistent Keepaliveの形式が正しくありません",
+ "Private key does not match with the public key": "秘密鍵が公開鍵と合致しません",
+ "Update peer failed when updating Pre-Shared Key": "ピアの更新が事前共有鍵の更新中に失敗しました",
+ "Update peer failed when updating Allowed IPs": "ピアの更新がAllowed IPsの更新中に失敗しました",
+ "Update peer failed when saving the configuration": "ピアの更新が構成の保存中に失敗しました",
+ "Peer data usage reset successfully": "ピアのデータ使用量をリセットしました",
+ "Peer download started": "ピアのダウンロードを開始しました",
+ "Please specify one or more peers": "1つまたは複数のピアを指定してください",
+ "Share link failed to create. Reason: (.*)": "共有リンクの作成に失敗しました 理由: $1",
+ "Link expire date updated": "リンクの有効期限を更新しました",
+ "Link expire date failed to update. Reason: (.*)": "リンクの有効期限の更新に失敗しました 理由: $1",
+ "Peer job saved": "ピアジョブを保存しました",
+ "Please specify job": "ジョブを指定してください",
+ "Please specify peer and configuration": "ピアまたは構成を指定してください",
+ "Peer job deleted": "ピアジョブを削除しました",
+ "API Keys function is successfully enabled": "APIキー機能を有効にしました",
+ "API Keys function is successfully disabled": "APIキー機能を無効にしました",
+ "API Keys function is failed to enable": "APIキー機能の有効化に失敗しました",
+ "API Keys function is failed to disable": "APIキー機能の無効化に失敗しました",
+ "WGDashboard API Keys function is disabled": "WGDashboard APIキー機能は無効になっています",
+ "WireGuard configuration path saved": "WireGuard構成の場所を保存しました",
+ "API Key deleted": "APIキーを削除しました",
+ "API Key created": "APIキーを作成しました",
+ "Sign in session ended, please sign in again": "セッションが終了しました 再度サインインしてください",
+ "Please specify an IP Address (v4/v6)": "IPアドレスを指定してください (v4/v6)",
+ "Please provide ipAddress and count": "IPアドレスと回数を入力してください",
+ "Please provide ipAddress": "IPアドレスを入力してください",
+ "Dashboard Language": "ダッシュボードの言語",
+ "Dashboard language update failed": "ダッシュボードの言語の更新に失敗しました",
+ "Peer Remote Endpoint": "Endpoint",
+ "New Configuration": "新規構成",
+ "Configuration Name": "構成名",
+ "Configuration name is invalid. Possible reasons:": "構成名が無効です 考えられる原因:",
+ "Configuration name already exist\\.": "構成名が既に存在します",
+ "Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "構成名には、小文字/大文字のアルファベット15文字、数字、アンダースコア、イコール、プラス、ピリオド、ハイフンのみを使用できます",
+ "Invalid Port": "無効なポート",
+ "Save Configuration": "構成を保存",
+ "IP Address/CIDR is invalid": "無効なIPアドレス/CIDR",
+ "IP Address": "IPアドレス",
+ "Enter IP Address / Hostname": "IPアドレス / ホスト名 を入力してください",
+ "IP Address / Hostname": "IPアドレス / ホスト名",
+ "Dashboard IP Address \\& Listen Port": "ダッシュボードIPアドレス & 待ち受けポート",
+ "Count": "回数",
+ "Geolocation": "場所",
+ "Is Alive": "ステータス",
+ "Average / Min / Max Round Trip Time": "平均 / 最小 / 最大 往復時間",
+ "Sent / Received / Lost Package": "送信 / 受信 / 損失 パッケージ",
+ "Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "IPアドレスと待ち受けポートの変更を反映するにはWGDashboardを手動で再起動する必要があります",
+ "Restore Configuration": "構成を復元",
+ "Step (.*)": "ステップ $1",
+ "Select a backup you want to restore": "復元したいバックアップを選択してください",
+ "Click to change a backup": "クリックしてバックアップを変更する",
+ "Selected Backup": "選択したバックアップ",
+ "You don't have any configuration to restore": "復元可能な構成がありません",
+ "Help": "ヘルプ",
+ "Backup": "バックアップ",
+ "([0-9].*) Backups?": "$1 バックアップ?",
+ "Yes": "はい",
+ "No": "いいえ",
+ "Backup not selected": "バックアップが選択されていません",
+ "Confirm \\& edit restore information": "確定 & 復元情報を編集",
+ "(.*) Available IP Address": "$1 有効なIPアドレス",
+ "Database File": "データベースファイル",
+ "Contain": "含まれる",
+ "Restricted Peers?": "ピアを制限しますか?",
+ "Restore": "復元",
+ "Restoring": "復元中",
+ "WGDashboard Settings": "WGDashboard設定",
+ "Peers Settings": "ピア設定",
+ "WireGuard Configuration Settings": "WireGuard構成設定",
+ "Appearance": "外観",
+ "Theme": "テーマ",
+ "Language": "言語",
+ "Account Settings": "アカウント設定",
+ "Peer Default Settings": "ピアデフォルト設定",
+ "Toggle When Start Up": "起動時に有効化",
+ "Other Settings": "その他の設定",
+ "Select Peers": "ピアを選択",
+ "Backup & Restore": "バックアップ & 復元",
+ "Delete Configuration": "構成を削除",
+ "Create Backup": "バックアップを作成",
+ "No backup yet, click the button above to create backup\\.": "バックアップがありません ボタンをクリックしてバックアップを作成",
+ "Are you sure to delete this backup\\?": "バックアップを削除しますか?",
+ "Are you sure to restore this backup?\\": "バックアップから復元しますか?",
+ "Backup Date": "バックアップ日時",
+ "File": "ファイル",
+ "Are you sure to delete this configuration\\?": "この構成を本当に削除しますか?",
+ "Once you deleted this configuration\\:": "この構成を削除すると:",
+ "All connected peers will get disconnected": "全てのピアとの接続を失います",
+ "Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "この構成に関連する構成ファイル(.conf)とデータベーステーブルが削除されます",
+ "Checking backups...": "バックアップを確認中...",
+ "This configuration have ([0-9].*) backups": "この構成には $1 のバックアップがあります",
+ "This configuration have no backup": "この構成にはバックアップがありません",
+ "If you're sure, please type in the configuration name below and click Delete": "本当に削除して良いのであれば、以下に構成名を入力し、「削除」をクリックしてください",
+ "Select All": "全て選択",
+ "Clear Selection": "選択を解除",
+ "([0-9].*) Peers?": "$1 ピア?",
+ "Downloading": "ダウンロード中...",
+ "Download Finished": "ダウンロード完了",
+ "Done": "完了",
+ "Are you sure to delete": "本当に削除しますか",
+ "Are you sure to delete this peer\\?": "このピアを本当に削除してもよろしいですか?",
+ "Configuration deleted": "構成を削除しました",
+ "Configuration saved": "構成を保存しました",
+ "WGDashboard language update failed": "WGDashboardの言語の更新に失敗しました",
+ "Configuration restored": "構成を復元しました",
+ "Allowed IP already taken by another peer": "このAllowed IPは他のピアで使用されています",
+ "Failed to allow access of peer (.*)": "ピアのアクセス許可に失敗しました $1",
+ "Failed to save configuration through WireGuard": "WireGuardによる設定の保存に失敗しました。",
+ "Allow access successfully": "アクセス許可に成功しました",
+ "Deleted ([0-9]{1,}) peer\\(s\\)": "$1 個のピアを削除しました ",
+ "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 個のピアの削除に成功し、 $1 個のピアの削除に失敗しました",
+ "Restricted ([0-9]{1,}) peer\\(s\\)": "$1 個のピアを制限しました",
+ "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 個のピアの制限に成功し、 $1 個のピアの制限に失敗しました"
+}
\ No newline at end of file
From 1db9ba90d8149922321aef1491b33e7e891371be Mon Sep 17 00:00:00 2001
From: Jumala9163
Date: Sun, 6 Apr 2025 00:23:30 +0900
Subject: [PATCH 20/27] fix typo
---
src/static/locale/ja-jp.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/static/locale/ja-jp.json b/src/static/locale/ja-jp.json
index 5d95214..6b4aadc 100644
--- a/src/static/locale/ja-jp.json
+++ b/src/static/locale/ja-jp.json
@@ -306,7 +306,7 @@
"Failed to save configuration through WireGuard": "WireGuardによる設定の保存に失敗しました。",
"Allow access successfully": "アクセス許可に成功しました",
"Deleted ([0-9]{1,}) peer\\(s\\)": "$1 個のピアを削除しました ",
- "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 個のピアの削除に成功し、 $1 個のピアの削除に失敗しました",
+ "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 個のピアの削除に成功し、 $2 個のピアの削除に失敗しました",
"Restricted ([0-9]{1,}) peer\\(s\\)": "$1 個のピアを制限しました",
- "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 個のピアの制限に成功し、 $1 個のピアの制限に失敗しました"
+ "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 個のピアの制限に成功し、 $2 個のピアの制限に失敗しました"
}
\ No newline at end of file
From 8043f77e02cf03409bc427bf53c0f003671780ed Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Sun, 6 Apr 2025 05:32:15 +0800
Subject: [PATCH 21/27] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 66b73cc..94f5a41 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
-
+
Monitoring WireGuard is not convenient, in most case, you'll need to login to your server and type wg show
. That's why this project is being created, to view and manage all WireGuard configurations in a easy way.
From f942809de0fba3348edf3decde0246b0b9345e48 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 7 Apr 2025 15:14:07 +0800
Subject: [PATCH 22/27] Update README.md
Added DO as sponsor!
---
README.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/README.md b/README.md
index 94f5a41..a07f436 100644
--- a/README.md
+++ b/README.md
@@ -19,12 +19,19 @@
+
+This project is supported by
+
+
+
+
+
Monitoring WireGuard is not convenient, in most case, you'll need to login to your server and type wg show
. That's why this project is being created, to view and manage all WireGuard configurations in a easy way.
With all these awesome features, while keeping it easy to install and use
From a724e1cb58eac9e61efb2313fdff857e5567a2d9 Mon Sep 17 00:00:00 2001
From: Donald Zou
Date: Mon, 7 Apr 2025 17:41:12 +0800
Subject: [PATCH 23/27] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index a07f436..3d1c91b 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@
This project is supported by
-
+
From 12d1e5b8d086e493ba9e59d94416532e47b11e6c Mon Sep 17 00:00:00 2001
From: Mahdi
Date: Fri, 11 Apr 2025 09:04:02 +0330
Subject: [PATCH 24/27] added Farsi language
---
src/static/locale/active_languages.json | 5 +
src/static/locale/fa.json | 312 ++++++++++++++++++++++++
2 files changed, 317 insertions(+)
create mode 100644 src/static/locale/fa.json
diff --git a/src/static/locale/active_languages.json b/src/static/locale/active_languages.json
index ac446fd..f749e43 100644
--- a/src/static/locale/active_languages.json
+++ b/src/static/locale/active_languages.json
@@ -1,4 +1,9 @@
[
+ {
+ "lang_id": "fa",
+ "lang_name": "Farsi",
+ "lang_name_localized": "فارسی"
+ },
{
"lang_id": "ar-sa",
"lang_name": "Arabic",
diff --git a/src/static/locale/fa.json b/src/static/locale/fa.json
new file mode 100644
index 0000000..90a4423
--- /dev/null
+++ b/src/static/locale/fa.json
@@ -0,0 +1,312 @@
+{
+ "Welcome to": "خوش آمدید",
+ "Username": "نام کاربری",
+ "Password": "رمز عبور",
+ "OTP from your authenticator": "رمز یکبارمصرف از برنامه احراز هویت شما",
+ "Sign In": "ورود",
+ "Signing In\\.\\.\\.": "ورود به سیستم...",
+ "Access Remote Server": "دسترسی به سرور از راه دور",
+ "Server": "سرور",
+ "Click": "کلیک",
+ "Pinging...": "در حال پینگ کردن...",
+ "to add your server": "برای افزودن سرور شما",
+ "Server List": "لیست سرور ها",
+ "Sorry, your username or password is incorrect.": "متأسفیم، نام کاربری یا رمز عبور شما نادرست است.",
+ "Home": "خانه",
+ "Settings": "تنظیمات",
+ "Tools": "ابزار ها",
+ "Sign Out": "خروج",
+ "Checking for update...": "در حال بررسی بهروزرسانی...",
+ "You're on the latest version": "شما از آخرین نسخه استفاده میکنید",
+ "WireGuard Configurations": "پیکربندیهای وایرگارد",
+ "You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "شما هنوز هیچ پیکربندی وایرگاردی ندارید. لطفاً پوشه پیکربندی را بررسی کنید یا آن را در تنظیمات تغییر دهید. بهطور پیشفرض، پوشه /etc/wireguard است.",
+ "Configuration": "پیکربندی",
+ "Configurations": "تنظیمات",
+ "Peers Default Settings": "تنظیمات پیش فرض Peers",
+ "Dashboard Theme": "تم داشبورد",
+ "Light": "روشن",
+ "Dark": "تاریک",
+ "This will be changed globally, and will be apply to all peer's QR code and configuration file.": "این تغییر بهصورت سراسری اعمال خواهد شد و برای کد QR و فایل پیکربندی همه Peer`s اعمال میشود.",
+ "WireGuard Configurations Settings": "تنظیمات پیکربندیهای وایرگارد",
+ "Configurations Directory": "پوشه پیکربندیها",
+ "Remember to remove / at the end of your path. e.g /etc/wireguard": "به یاد داشته باشید که / را در انتهای مسیر خود حذف کنید. به عنوان مثال: /etc/wireguard",
+ "WGDashboard Account Settings": "تنظیمات حساب WGDashboard",
+ "رمز عبور فعلی": "",
+ "رمز عبور جدید": "",
+ "تکرار رمز عبور جدید": "",
+ "بروزرسانی رمز عبور": "",
+ "Multi-Factor Authentication \\(MFA\\)": "احراز هویت چند عاملی (MFA)",
+ "Reset": "بازنشانی",
+ "Setup": "نصب",
+ "API Keys": "API Keys",
+ "API Key": "API Key",
+ "Key": "کلید",
+ "Enabled": "فعال شد",
+ "Disabled": "غیرفعال شد",
+ "No WGDashboard API Key": "کلید API WGDashboard وجود ندارد",
+ "Expire At": "انقضا در",
+ "Are you sure to delete this API key\\?": "آیا مطمئن هستید که این کلید API را حذف می کنید؟",
+ "Create API Key": "ایجاد کلید API",
+ "When should this API Key expire\\?": "چه زمانی باید این کلید API منقضی شود؟",
+ "Never Expire": "نامحدود",
+ "Don't think that's a good idea": "پیشنهاد نمی شود",
+ "Creating\\.\\.\\.": "در ساختن...",
+ "Create": "ایجاد",
+ "Status": "وضعیت",
+ "On": "روشن",
+ "Off": "خاموش",
+ "Turning On\\.\\.\\.": "در حال روشن شدن...",
+ "Turning Off\\.\\.\\.": "در حال خاموش شدن ...",
+ "Address": "آدرس",
+ "Listen Port": "پورت گوشدادن",
+ "Public Key": "کلید عمومی",
+ "Connected Peers": "Peer`s متصل",
+ "Total Usage": "مصرف کل",
+ "Total Received": "مجموع دریافت شده",
+ "Total Sent": "مجموع ارسال شده",
+ "Peers Data Usage": "داده های مصرفی Peer`s",
+ "Real Time Received Data Usage": "داده های مصرفی دریافت شده در زمان واقعی",
+ "Real Time Sent Data Usage": "داده های مصرفی ارسال شده در زمان واقعی",
+ "Peer": "Peer",
+ "Peers": "Peers",
+ "Peer Settings": "تنظیمات Peer",
+ "Download All": "دانلود همه",
+ "Search Peers\\.\\.\\.": "جستجو Peer",
+ "Display": "نمایش",
+ "Sort By": "مرتب سازی براساس",
+ "Refresh Interval": "فاصله بازخوانی",
+ "Name": "نام",
+ "Allowed IPs": "IP های مجاز",
+ "Restricted": "محدود شده",
+ "(.*) Seconds": "1$ ثانیه",
+ "(.*) Minutes": "$1 دقیقه",
+ "Configuration Settings": "تنظیمات پیکربندی",
+ "Peer Jobs": "جاب peer",
+ "Active Jobs": "جاب های فعال",
+ "All Active Jobs": "همه جاب های فعال",
+ "Logs": "گزارش ها",
+ "Private Key": "کلید خصوصی",
+ "\\(Required for QR Code and Download\\)": "(برای کد QR و دانلود لازم است)",
+ "\\(Required\\)": "(الزامی)",
+ "Endpoint Allowed IPs": "IP های مجاز نقطه پایانی",
+ "DNS": "DNS",
+ "Optional Settings": "تنظیمات اختیاری",
+ "Pre-Shared Key": "کلید از قبل به اشتراک گذاشته شده",
+ "MTU": "MTU",
+ "Persistent Keepalive": " نگهداری پایدار اتصال",
+ "Reset Data Usage": "بازنشانی مصرف داده",
+ "Total": "مجموع",
+ "Sent": "ارسال",
+ "Received": "دریافت",
+ "Revert": "برگرداندن تغییرات",
+ "Save Peer": "ذخیره peer",
+ "QR Code": "QR Code",
+ "Schedule Jobs": "برنامه ریزی جاب ها",
+ "Job": "جاب",
+ "Job ID": "شناسه جاب",
+ "Unsaved Job": "جاب ذخیره نشده",
+ "This peer does not have any job yet\\.": "این peer هیچ جاب فعالی ندارد",
+ "if": "اگر",
+ "is": "هست",
+ "then": "سپس",
+ "larger than": "بزرگتر از",
+ "Date": "تاریخ",
+ "Restrict Peer": "محدود کردن peer",
+ "Delete Peer": "حذف peer",
+ "Edit": "ویرایش",
+ "Delete": "حذف",
+ "Deleting...": "درحال حذف ...",
+ "Cancel": "لغو",
+ "Save": "ذخیره",
+ "No active job at the moment\\.": " در حال حاضر هیچ جابی فعال نیست .",
+ "Jobs Logs": "گزارش جاب ها",
+ "Updated at": "بروزرسانی شده در",
+ "Refresh": "تازه کردن",
+ "Filter": "فیلتر",
+ "Success": "موفق",
+ "Failed": "ناموفق",
+ "Log ID": "شناسه گزارش",
+ "Message": "پیام",
+ "Share Peer": "به اشتراک گذاشتن peer",
+ "Currently the peer is not sharing": "این peer را نمی توان به اشتراک گذاشت",
+ "Sharing\\.\\.\\.": "اشتراک گذاری...",
+ "Start Sharing": "شروع اشتراک گذاری",
+ "Stop Sharing\\.\\.\\.": "توقف اشتراک گذاری...",
+ "Stop Sharing": "توقف اشتراک گذاری",
+ "Access Restricted": "دسترسی محدود شده",
+ "Restrict Access": "محدود کردن دسترسی",
+ "Restricting\\.\\.\\.": "محدود کردن...",
+ "Allow Access": "اجازه دسترسی",
+ "Allowing Access\\.\\.\\.": "اجازه دسترسی...",
+ "Download \\& QR Code is not available due to no private key set for this peer": "دانلود و کد QR در دسترس نیست چون کلید خصوصی برای این peer تنظیم نشده است.",
+ "Add Peers": "اضافه کردن peers",
+ "Bulk Add": "افزودن انبوه",
+ "By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "با افزودن گروهی Peers، نام هر peer بهصورت خودکار تولید میشود و IP مجاز (Allowed IP) به اولین IP آزاد بعدی اختصاص داده خواهد شد.",
+ "How many peers you want to add\\?": "چند peer می خواهید اضافه کنید؟",
+ "You can add up to (.*) peers": "شما میتوانید تا حداکثر $1 Peer اضافه کنید.",
+ "Use your own Private and Public Key": "از کلید خصوصی و عمومی خود استفاده کنید",
+ "Enter IP Address/CIDR": "نشانی IP یا محدوده CIDR را وارد کنید.",
+ "IP Address/CIDR": "IP Address/CIDR",
+ "or": "یا",
+ "Pick Available IP": "انتخاب IP موجود",
+ "No available IP containing": "هیچ IP قابل استفادهای شامل این مقدار یافت نشد.",
+ "Add": "اضافه کردن",
+ "Adding\\.\\.\\.": "درحال اضافه کردن...",
+ "Failed to check available update": "عدم موفقیت در بررسی آپدیتهای در دسترس.",
+ "Nice to meet you!": "!از آشنایی با شما خوشوقتم 😊",
+ "Please fill in the following fields to finish setup": "لطفاً فیلدهای زیر را برای تکمیل تنظیمات پر کنید.",
+ "Create an account": "ایجاد حساب کاربری",
+ "Enter an username you like": "یک نام کاربری دلخواه وارد کنید",
+ "Enter a password": "رمز عبور وارد کنید",
+ "\\(At least 8 characters and make sure is strong enough!\\)": "(حداقل ۸ کاراکتر و مطمئن شوید که رمز عبور بهاندازه کافی قوی باشد!)",
+ "Confirm password": "تأیید رمز عبور",
+ "Next": "بعدی",
+ "Saving\\.\\.\\.": "درحال ذخیره کردن...",
+ "1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "۱. لطفاً کد QR زیر را اسکن کنید تا کد یکبار مصرف زماندار (TOTP) را با برنامه احراز هویت دلخواه خود تولید کنید.",
+ "Or you can click the link below:": "یا میتوانید روی لینک زیر کلیک کنید:",
+ "2\\. Enter the TOTP generated by your authenticator to verify": "۲. کد یکبار مصرف زماندار (TOTP) تولیدشده توسط برنامه احراز هویت خود را وارد کنید تا تأیید انجام شود.",
+ "TOTP verified!": "کد TOTP با موفقیت تأیید شد!",
+ "I don't need MFA": "من به احراز هویت چندمرحلهای (MFA) نیاز ندارم.",
+ "Complete": "تکمیل شد",
+ "(v[0-9.]{1,}) is now available for update!": "نسخه$1 اکنون برای بهروزرسانی در دسترس است!",
+ "Current Version:": "ورژن فعلی :",
+ "Oh no\\.\\.\\. This link is either expired or invalid\\.": "اوه نه... این لینک یا منقضی شده یا نامعتبر است.",
+ "Scan QR Code with the WireGuard App to add peer": "کد QR را با اپلیکیشن WireGuard اسکن کنید تا Peer اضافه شود.",
+ "or click the button below to download the ": "یا روی دکمه زیر کلیک کنید تا فایل را دانلود کنید",
+ " file": " فایل",
+ "FROM ": "از ",
+ "(.*) is on": "$1 فعال است",
+ "(.*) is off": "$1 غیرفعال است",
+ "Allowed IPs is invalid": "مقدار Allowed IPs نامعتبر است",
+ "Peer created successfully": "peer با موفقیت ساخته شد",
+ "Please fill in all required box": "لطفاً تمام فیلدهای الزامی را پر کنید.",
+ "Please specify amount of peers you want to add": "لطفاً تعداد Peers که میخواهید اضافه کنید را مشخص کنید.",
+ "No more available IP can assign": "IP آزادی برای اختصاص دادن باقی نمانده است.",
+ "The maximum number of peers can add is (.*)": "حداکثر تعداد peer که میتوان اضافه کرد عبارت است از: $1",
+ "Generating key pairs by bulk failed": "تولید گروهی کلیدهای جفتی (Key Pairs) با شکست مواجه شد.",
+ "Failed to add peers in bulk": "افزودن گروهی Peers با شکست مواجه شد.",
+ "This peer already exist": "این Peer از قبل وجود دارد.",
+ "This IP is not available: (.*)": " IP $1 در دسترس نیست:",
+ "Configuration does not exist": "پیکربندی وجود ندارد.",
+ "Peer does not exist": "peer وجود ندارد",
+ "Please provide a valid configuration name": "لطفاً یک نام پیکربندی معتبر وارد کنید.",
+ "Peer saved": "peer ذخیره شد",
+ "Allowed IPs already taken by another peer": "این IPها قبلاً به peer دیگری اختصاص داده شدهاند.",
+ "Endpoint Allowed IPs format is incorrect": "فرمت IPهای مجاز در Endpoint نادرست است.",
+ "DNS format is incorrect": "فرمت DNS نادرست است.",
+ "MTU format is not correct": "فرمت MTU نادرست است.",
+ "Persistent Keepalive format is not correct": "فرمت Persistent Keepalive نادرست است.",
+ "Private key does not match with the public key": "کلید خصوصی با کلید عمومی مطابقت ندارد.",
+ "Update peer failed when updating Pre-Shared Key": "بهروزرسانی کلید مشترک (Pre-Shared Key) برای peer با شکست مواجه شد.",
+ "Update peer failed when updating Allowed IPs": "بهروزرسانی IPهای مجاز برای peer با شکست مواجه شد.",
+ "Update peer failed when saving the configuration": "ذخیره پیکربندی پس از بهروزرسانی peer با شکست مواجه شد.",
+ "Peer data usage reset successfully": "میزان مصرف داده peer با موفقیت بازنشانی شد.",
+ "Peer download started": "دانلود peer آغاز شد.",
+ "Please specify one or more peers": "لطفاً یک یا چند peer را مشخص کنید.",
+ "Share link failed to create. Reason: (.*)": "ایجاد لینک اشتراکگذاری با شکست مواجه شد. دلیل: $1",
+ "Link expire date updated": "تاریخ انقضای لینک با موفقیت بهروزرسانی شد.",
+ "Link expire date failed to update. Reason: (.*)": "بهروزرسانی تاریخ انقضای لینک با شکست مواجه شد. دلیل: $1",
+ "Peer job saved": "جاب peer با موفقیت ذخیره شد.",
+ "Please specify job": "لطفاً یک جاب مشخص کنید.",
+ "Please specify peer and configuration": "لطفاً peer و پیکربندی را مشخص کنید.",
+ "Peer job deleted": "جاب peer حذف شد.",
+ "API Keys function is successfully enabled": "قابلیت کلیدهای API با موفقیت فعال شد.",
+ "API Keys function is successfully disabled": "قابلیت کلیدهای API با موفقیت غیرفعال شد.",
+ "API Keys function is failed to enable": "فعالسازی قابلیت کلیدهای API با شکست مواجه شد.",
+ "API Keys function is failed to disable": "غیرفعالسازی قابلیت کلیدهای API با شکست مواجه شد.",
+ "WGDashboard API Keys function is disabled": "قابلیت کلیدهای API در WGDashboard غیرفعال است.",
+ "WireGuard configuration path saved": "مسیر پیکربندی WireGuard ذخیره شد.",
+ "API Key deleted": "کلید API حذف شد.",
+ "API Key created": "کلید API ایجاد شد.",
+ "Sign in session ended, please sign in again": "نشست ورود به پایان رسیده است، لطفاً دوباره وارد شوید.",
+ "Please specify an IP Address (v4/v6)": "لطفاً یک آدرس IP نسخه ۴ یا ۶ مشخص کنید.",
+ "Please provide ipAddress and count": "لطفاً آدرس IP و تعداد را وارد کنید.",
+ "Please provide ipAddress": "لطفاً آدرس IP را وارد کنید.",
+ "Dashboard Language": "زبان داشبورد",
+ "Dashboard language update failed": "بهروزرسانی زبان داشبورد با شکست مواجه شد.",
+ "Peer Remote Endpoint": "نقطه پایانی راه دور peer",
+ "New Configuration": "پیکربندی جدید",
+ "Configuration Name": "نام پیکربندی",
+ "Configuration name is invalid. Possible reasons:": "نام پیکربندی نامعتبر است. دلایل احتمالی:",
+ "Configuration name already exist.": "این نام پیکربندی از قبل وجود دارد.",
+ "Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen.": "نام پیکربندی فقط میتواند حداکثر شامل ۱۵ حرف کوچک/بزرگ، عدد، زیرخط، مساوی، علامت مثبت، نقطه و خط تیره باشد.",
+ "Invalid Port": "پورت نامعتبر است.",
+ "Save Configuration": "ذخیره پیکربندی",
+ "IP Address/CIDR is invalid": "آدرس IP یا CIDR نامعتبر است.",
+ "IP Address": "آدرس IP",
+ "Enter IP Address / Hostname": "آدرس IP یا نام میزبان را وارد کنید",
+ "IP Address / Hostname": "آدرس IP / نام میزبان",
+ "Dashboard IP Address & Listen Port": "آدرس IP و پورت شنود داشبورد",
+ "Count": "تعداد",
+ "Geolocation": "موقعیت جغرافیایی",
+ "Is Alive": "در دسترس است",
+ "Average / Min / Max Round Trip Time": "میانگین / کمترین / بیشترین زمان رفتوبرگشت",
+ "Sent / Received / Lost Package": "بستههای ارسالشده / دریافتشده / گمشده",
+ "Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "برای اعمال تغییرات آدرس IP و پورت شنود، باید WGDashboard را دستی راهاندازی مجدد کنید.",
+ "Restore Configuration": "بازیابی پیکربندی",
+ "Step (.*)": "مرحله $1",
+ "Select a backup you want to restore": "یک نسخه پشتیبان برای بازیابی انتخاب کنید.",
+ "Click to change a backup": "برای تغییر نسخه پشتیبان کلیک کنید.",
+ "Selected Backup": "نسخه پشتیبان انتخاب شده",
+ "You don't have any configuration to restore": "هیچ پیکربندی برای بازیابی وجود ندارد.",
+ "Help": "راهنما",
+ "Backup": "پشتیبانگیری",
+ "([0-9].*) Backups?": "$1 نسخه پشتیبان",
+ "Yes": "بله",
+ "No": "خیر",
+ "Backup not selected": "نسخه پشتیبان انتخاب نشده است.",
+ "Confirm & edit restore information": "تأیید و ویرایش اطلاعات بازیابی",
+ "(.*) Available IP Address": "$1 آدرس IP در دسترس",
+ "Database File": "فایل پایگاه داده",
+ "Contain": "شامل",
+ "Restricted Peers?": "peerهای محدودشده؟",
+ "Restore": "بازیابی",
+ "Restoring": "در حال بازیابی",
+ "WGDashboard Settings": "تنظیمات WGDashboard",
+ "Peers Settings": "تنظیمات peerها",
+ "WireGuard Configuration Settings": "تنظیمات پیکربندی WireGuard",
+ "Appearance": "ظاهر",
+ "Theme": "قالب",
+ "Language": "زبان",
+ "Account Settings": "تنظیمات حساب کاربری",
+ "Peer Default Settings": "تنظیمات پیشفرض peer",
+ "Toggle When Start Up": "فعالسازی هنگام راهاندازی",
+ "Other Settings": "تنظیمات دیگر",
+ "Select Peers": "انتخاب peerها",
+ "Backup & Restore": "پشتیبانگیری و بازیابی",
+ "Delete Configuration": "حذف پیکربندی",
+ "Create Backup": "ایجاد نسخه پشتیبان",
+ "No backup yet, click the button above to create backup.": "هنوز نسخه پشتیبانی وجود ندارد، برای ایجاد نسخه پشتیبان روی دکمه بالا کلیک کنید.",
+ "Are you sure to delete this backup?": "آیا از حذف این نسخه پشتیبان مطمئن هستید؟",
+ "Are you sure to restore this backup?": "آیا از بازیابی این نسخه پشتیبان مطمئن هستید؟",
+ "Backup Date": "تاریخ پشتیبانگیری",
+ "File": "فایل",
+ "Are you sure to delete this configuration?": "آیا از حذف این پیکربندی مطمئن هستید؟",
+ "Once you deleted this configuration:": "پس از حذف این پیکربندی:",
+ "All connected peers will get disconnected": "تمام peerهای متصل قطع خواهند شد.",
+ "Both configuration file (.conf) and database table related to this configuration will get deleted": "هم فایل پیکربندی (.conf) و هم جدول پایگاه داده مرتبط با این پیکربندی حذف خواهند شد.",
+ "Checking backups...": "در حال بررسی نسخههای پشتیبان...",
+ "This configuration have ([0-9].*) backups": "این پیکربندی $1 نسخه پشتیبان دارد.",
+ "This configuration have no backup": "این پیکربندی هیچ نسخه پشتیبانی ندارد.",
+ "If you're sure, please type in the configuration name below and click Delete": "اگر مطمئن هستید، نام پیکربندی را در کادر زیر وارد کرده و روی حذف کلیک کنید.",
+ "Select All": "انتخاب همه",
+ "Clear Selection": "پاک کردن انتخاب",
+ "([0-9].*) Peers?": "$1 peer",
+ "Downloading": "در حال دانلود",
+ "Download Finished": "دانلود به پایان رسید",
+ "Done": "انجام شد",
+ "Are you sure to delete": "آیا از حذف مطمئن هستید؟",
+ "Are you sure to delete this peer?": "آیا از حذف این peer مطمئن هستید؟",
+ "Configuration deleted": "پیکربندی حذف شد.",
+ "Configuration saved": "پیکربندی ذخیره شد.",
+ "WGDashboard language update failed": "بهروزرسانی زبان WGDashboard با شکست مواجه شد.",
+ "Configuration restored": "پیکربندی بازیابی شد.",
+ "Allowed IP already taken by another peer": "IP مجاز قبلاً توسط peerی دیگری استفاده شده است.",
+ "Failed to allow access of peer (.*)": "اجازه دسترسی به peer ($1) با شکست مواجه شد.",
+ "Failed to save configuration through WireGuard": "ذخیره پیکربندی از طریق WireGuard با شکست مواجه شد.",
+ "Allow access successfully": "دسترسی با موفقیت فعال شد.",
+ "Deleted ([0-9]{1,}) peer(s)": "$1 peer حذف شد.",
+ "Deleted ([0-9]{1,}) peer(s) successfully. Failed to delete ([0-9]{1,}) peer(s)": "$1 peer با موفقیت حذف شد. حذف $2 peer با شکست مواجه شد.",
+ "Restricted ([0-9]{1,}) peer(s)": "$1 peer محدود شد.",
+ "Restricted ([0-9]{1,}) peer(s) successfully. Failed to restrict ([0-9]{1,}) peer(s)": "$1 peer با موفقیت محدود شد. محدودسازی $2 peer با شکست مواجه شد."
+}
\ No newline at end of file
From acd3ec782f58d35b5bf9fabcde1157389f997bd1 Mon Sep 17 00:00:00 2001
From: dselen <80752476+DaanSelen@users.noreply.github.com>
Date: Sun, 13 Apr 2025 11:40:14 +0200
Subject: [PATCH 25/27] Update active_languages.json
Alphabetical
---
src/static/locale/active_languages.json | 182 ++++++++++++------------
1 file changed, 91 insertions(+), 91 deletions(-)
diff --git a/src/static/locale/active_languages.json b/src/static/locale/active_languages.json
index ac446fd..9bd78d6 100644
--- a/src/static/locale/active_languages.json
+++ b/src/static/locale/active_languages.json
@@ -1,92 +1,92 @@
[
- {
- "lang_id": "ar-sa",
- "lang_name": "Arabic",
- "lang_name_localized": "العربية"
- },
- {
- "lang_id": "cs",
- "lang_name": "Czech",
- "lang_name_localized": "Česky"
- },
- {
- "lang_id": "de-de",
- "lang_name": "German",
- "lang_name_localized": "Deutsch"
- },
- {
- "lang_id": "en",
- "lang_name": "English",
- "lang_name_localized": "English"
- },
- {
- "lang_id": "es-es",
- "lang_name": "Spanish",
- "lang_name_localized": "Español"
- },
- {
- "lang_id": "fr-ca",
- "lang_name": "French (Quebec)",
- "lang_name_localized": "Français (Québec)"
- },
- {
- "lang_id": "it-it",
- "lang_name": "Italian",
- "lang_name_localized": "Italiano"
- },
- {
- "lang_id": "ja-jp",
- "lang_name": "Japanese",
- "lang_name_localized": "日本語"
- },
- {
- "lang_id": "ko",
- "lang_name": "Korean",
- "lang_name_localized": "한국어"
- },
- {
- "lang_id": "nl-nl",
- "lang_name": "Dutch",
- "lang_name_localized": "Nederlands"
- },
- {
- "lang_id": "ru",
- "lang_name": "Russian",
- "lang_name_localized": "Русский"
- },
- {
- "lang_id": "th",
- "lang_name": "Thai",
- "lang_name_localized": "ภาษาไทย"
- },
- {
- "lang_id": "tr-tr",
- "lang_name": "Turkish",
- "lang_name_localized": "Türkçe"
- },
- {
- "lang_id": "uk",
- "lang_name": "Ukrainian",
- "lang_name_localized": "Українська"
- },
- {
- "lang_id": "zh-cn",
- "lang_name": "Chinese (Simplified)",
- "lang_name_localized": "中文(简体)"
- },
- {
- "lang_id": "zh-hk",
- "lang_name": "Chinese (Traditional)",
- "lang_name_localized": "中文(繁體)"
- },
- {
- "lang_id": "sv-se",
- "lang_name": "Swedish",
- "lang_name_localized": "Svenska"
- },
- {
- "lang_id": "pl",
- "lang_name": "Polish",
- "lang_name_localized": "Polski"
- }
-]
\ No newline at end of file
+ {
+ "lang_id": "ar-sa",
+ "lang_name": "Arabic",
+ "lang_name_localized": "العربية"
+ },
+ {
+ "lang_id": "cs",
+ "lang_name": "Czech",
+ "lang_name_localized": "Česky"
+ },
+ {
+ "lang_id": "de-de",
+ "lang_name": "German",
+ "lang_name_localized": "Deutsch"
+ },
+ {
+ "lang_id": "en",
+ "lang_name": "English",
+ "lang_name_localized": "English"
+ },
+ {
+ "lang_id": "es-es",
+ "lang_name": "Spanish",
+ "lang_name_localized": "Español"
+ },
+ {
+ "lang_id": "fr-ca",
+ "lang_name": "French (Quebec)",
+ "lang_name_localized": "Français (Québec)"
+ },
+ {
+ "lang_id": "it-it",
+ "lang_name": "Italian",
+ "lang_name_localized": "Italiano"
+ },
+ {
+ "lang_id": "ja-jp",
+ "lang_name": "Japanese",
+ "lang_name_localized": "日本語"
+ },
+ {
+ "lang_id": "ko",
+ "lang_name": "Korean",
+ "lang_name_localized": "한국어"
+ },
+ {
+ "lang_id": "nl-nl",
+ "lang_name": "Dutch",
+ "lang_name_localized": "Nederlands"
+ },
+ {
+ "lang_id": "pl",
+ "lang_name": "Polish",
+ "lang_name_localized": "Polski"
+ },
+ {
+ "lang_id": "ru",
+ "lang_name": "Russian",
+ "lang_name_localized": "Русский"
+ },
+ {
+ "lang_id": "sv-se",
+ "lang_name": "Swedish",
+ "lang_name_localized": "Svenska"
+ },
+ {
+ "lang_id": "th",
+ "lang_name": "Thai",
+ "lang_name_localized": "ภาษาไทย"
+ },
+ {
+ "lang_id": "tr-tr",
+ "lang_name": "Turkish",
+ "lang_name_localized": "Türkçe"
+ },
+ {
+ "lang_id": "uk",
+ "lang_name": "Ukrainian",
+ "lang_name_localized": "Українська"
+ },
+ {
+ "lang_id": "zh-cn",
+ "lang_name": "Chinese (Simplified)",
+ "lang_name_localized": "中文(简体)"
+ },
+ {
+ "lang_id": "zh-hk",
+ "lang_name": "Chinese (Traditional)",
+ "lang_name_localized": "中文(繁體)"
+ }
+]
From cb068ef70e5e6ad26ebb3474edf794e6680e1585 Mon Sep 17 00:00:00 2001
From: Daan
Date: Sun, 13 Apr 2025 12:02:35 +0200
Subject: [PATCH 26/27] Reordering on lang_name
---
src/static/locale/active_languages.json | 46 ++++++++++++-------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/src/static/locale/active_languages.json b/src/static/locale/active_languages.json
index 9bd78d6..e07d40c 100644
--- a/src/static/locale/active_languages.json
+++ b/src/static/locale/active_languages.json
@@ -4,31 +4,41 @@
"lang_name": "Arabic",
"lang_name_localized": "العربية"
},
+ {
+ "lang_id": "zh-cn",
+ "lang_name": "Chinese (Simplified)",
+ "lang_name_localized": "中文(简体)"
+ },
+ {
+ "lang_id": "zh-hk",
+ "lang_name": "Chinese (Traditional)",
+ "lang_name_localized": "中文(繁體)"
+ },
{
"lang_id": "cs",
"lang_name": "Czech",
"lang_name_localized": "Česky"
},
{
- "lang_id": "de-de",
- "lang_name": "German",
- "lang_name_localized": "Deutsch"
+ "lang_id": "nl-nl",
+ "lang_name": "Dutch",
+ "lang_name_localized": "Nederlands"
},
{
"lang_id": "en",
"lang_name": "English",
"lang_name_localized": "English"
},
- {
- "lang_id": "es-es",
- "lang_name": "Spanish",
- "lang_name_localized": "Español"
- },
{
"lang_id": "fr-ca",
"lang_name": "French (Quebec)",
"lang_name_localized": "Français (Québec)"
},
+ {
+ "lang_id": "de-de",
+ "lang_name": "German",
+ "lang_name_localized": "Deutsch"
+ },
{
"lang_id": "it-it",
"lang_name": "Italian",
@@ -44,11 +54,6 @@
"lang_name": "Korean",
"lang_name_localized": "한국어"
},
- {
- "lang_id": "nl-nl",
- "lang_name": "Dutch",
- "lang_name_localized": "Nederlands"
- },
{
"lang_id": "pl",
"lang_name": "Polish",
@@ -59,6 +64,11 @@
"lang_name": "Russian",
"lang_name_localized": "Русский"
},
+ {
+ "lang_id": "es-es",
+ "lang_name": "Spanish",
+ "lang_name_localized": "Español"
+ },
{
"lang_id": "sv-se",
"lang_name": "Swedish",
@@ -78,15 +88,5 @@
"lang_id": "uk",
"lang_name": "Ukrainian",
"lang_name_localized": "Українська"
- },
- {
- "lang_id": "zh-cn",
- "lang_name": "Chinese (Simplified)",
- "lang_name_localized": "中文(简体)"
- },
- {
- "lang_id": "zh-hk",
- "lang_name": "Chinese (Traditional)",
- "lang_name_localized": "中文(繁體)"
}
]
From 308e8ca8c710347d8c51ce3e2b9e521cb7c676fb Mon Sep 17 00:00:00 2001
From: Mahdi
Date: Sun, 13 Apr 2025 15:14:01 +0330
Subject: [PATCH 27/27] The Persian language was organized based on the
alphabet.
---
src/static/locale/active_languages.json | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/static/locale/active_languages.json b/src/static/locale/active_languages.json
index f749e43..bdfd85d 100644
--- a/src/static/locale/active_languages.json
+++ b/src/static/locale/active_languages.json
@@ -1,9 +1,4 @@
[
- {
- "lang_id": "fa",
- "lang_name": "Farsi",
- "lang_name_localized": "فارسی"
- },
{
"lang_id": "ar-sa",
"lang_name": "Arabic",
@@ -29,6 +24,11 @@
"lang_name": "Spanish",
"lang_name_localized": "Español"
},
+ {
+ "lang_id": "fa",
+ "lang_name": "Farsi",
+ "lang_name_localized": "فارسی"
+ },
{
"lang_id": "fr-ca",
"lang_name": "French (Quebec)",