This is an automated email from the ASF dual-hosted git repository.

baoyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git


The following commit(s) were added to refs/heads/master by this push:
     new 2d7e1947b feat: add Turkish (tr) language support (#3252)
2d7e1947b is described below

commit 2d7e1947b6fdbe37bf8ce66190aee5bd038e96a2
Author: Anil Baki Durmus <[email protected]>
AuthorDate: Sun Nov 16 22:18:39 2025 -0500

    feat: add Turkish (tr) language support (#3252)
---
 src/components/Header/LanguageMenu.tsx |   1 +
 src/config/i18n.ts                     |  10 +-
 src/locales/tr/common.json             | 368 +++++++++++++++++++++++++++++++++
 3 files changed, 376 insertions(+), 3 deletions(-)

diff --git a/src/components/Header/LanguageMenu.tsx 
b/src/components/Header/LanguageMenu.tsx
index 44b7a4d61..48fcd8f0e 100644
--- a/src/components/Header/LanguageMenu.tsx
+++ b/src/components/Header/LanguageMenu.tsx
@@ -26,6 +26,7 @@ const LangMap: Record<keyof Resources, string> = {
   de: 'Deutsch',
   zh: '中文',
   es: 'Español',
+  tr: 'Türkçe',
 };
 
 const TranslationProgress = ({ lang }: { lang: string }) => {
diff --git a/src/config/i18n.ts b/src/config/i18n.ts
index e14746e52..3490d825e 100644
--- a/src/config/i18n.ts
+++ b/src/config/i18n.ts
@@ -19,8 +19,9 @@ import { initReactI18next } from 'react-i18next';
 
 import de_common from '@/locales/de/common.json';
 import en_common from '@/locales/en/common.json';
-import zh_common from '@/locales/zh/common.json';
-import es_common from '@/locales/es/common.json'; 
+import es_common from '@/locales/es/common.json';
+import tr_common from '@/locales/tr/common.json';
+import zh_common from '@/locales/zh/common.json'; 
 
 export const resources = {
   en: {
@@ -33,7 +34,10 @@ export const resources = {
     common: zh_common,
   },
   es: {
-    common: es_common, 
+    common: es_common,
+  },
+  tr: {
+    common: tr_common,
   },
 } as const;
 
diff --git a/src/locales/tr/common.json b/src/locales/tr/common.json
new file mode 100644
index 000000000..d2fdec0ca
--- /dev/null
+++ b/src/locales/tr/common.json
@@ -0,0 +1,368 @@
+{
+  "apisix": {
+    "dashboard": "APISIX Dashboard",
+    "logo": "APISIX Logo"
+  },
+  "consumerGroups": {
+    "singular": "Consumer Grubu"
+  },
+  "consumers": {
+    "singular": "Consumer"
+  },
+  "credentials": {
+    "singular": "Credential"
+  },
+  "form": {
+    "basic": {
+      "desc": "Açıklama",
+      "labels": {
+        "errorFormat": "Label formatı hatalı, `key:value` şeklinde olmalıdır",
+        "key": "Key",
+        "placeholder": "`key:value` formatında girin ve enter'a basın",
+        "title": "Label'lar",
+        "value": "Value"
+      },
+      "name": "İsim",
+      "status": "Durum",
+      "statusOption": {
+        "0": "Pasif",
+        "1": "Aktif"
+      },
+      "title": "Temel Bilgiler"
+    },
+    "btn": {
+      "add": "Ekle",
+      "addARow": "Satır ekle",
+      "cancel": "İptal",
+      "delete": "Sil",
+      "edit": "Düzenle",
+      "save": "Kaydet",
+      "upload": "Yükle",
+      "view": "Görüntüle"
+    },
+    "consumers": {
+      "groupId": "Grup ID",
+      "username": "Kullanıcı Adı"
+    },
+    "disabled": "Pasif, aktif etmek için tıklayın",
+    "general": {
+      "title": "Genel"
+    },
+    "info": {
+      "create_time": "Oluşturulma",
+      "id": "ID",
+      "title": "Bilgi",
+      "update_time": "Güncellenme"
+    },
+    "json": {
+      "parseError": "JSON formatı geçerli değil"
+    },
+    "plugins": {
+      "addPlugin": "Plugin Ekle",
+      "configId": "Plugin Config ID",
+      "editPlugin": "Plugin Düzenle",
+      "label": "Plugin'ler",
+      "searchForSelectedPlugins": "Seçili Plugin'lerde Ara",
+      "selectPlugins": {
+        "title": "Plugin Seç"
+      },
+      "viewPlugin": "Plugin'i Görüntüle"
+    },
+    "protos": {
+      "content": "İçerik",
+      "contentPlaceholder": "{{fileTypes}} dosyasını yapıştırın veya yükleyin"
+    },
+    "routes": {
+      "enableWebsocket": "WebSocket Aktif",
+      "filterFunc": "Filter Fonksiyonu",
+      "host": "Host",
+      "hosts": "Host'lar",
+      "matchRules": "Eşleşme Kuralları",
+      "methods": "HTTP Method'ları",
+      "priority": "Öncelik",
+      "remoteAddr": "Remote Adres",
+      "remoteAddrs": "Remote Adresler",
+      "service": "Service",
+      "uri": "URI",
+      "uris": "URI'ler",
+      "vars": "Değişkenler"
+    },
+    "search": "Ara",
+    "secrets": {
+      "aws": {
+        "access_key_id": "Access Key ID",
+        "endpoint_url": "Endpoint URL",
+        "region": "Region",
+        "secret_access_key": "Secret Access Key",
+        "session_token": "Session Token"
+      },
+      "gcp": {
+        "auth": "Auth",
+        "auth_config": "Auth Config",
+        "auth_file": "Auth Dosyası",
+        "client_email": "Client Email",
+        "entries_uri": "Entries URI",
+        "private_key": "Private Key",
+        "project_id": "Project ID",
+        "scope": "Scope",
+        "ssl_verify": "SSL Verify",
+        "token_uri": "Token URI"
+      },
+      "manager": "Secret Manager",
+      "managerConfig": "Manager Config",
+      "title": "Secret Yapılandırması",
+      "vault": {
+        "namespace": "Namespace",
+        "prefix": "Prefix",
+        "token": "Token",
+        "uri": "URI"
+      }
+    },
+    "services": {
+      "enableWebsocket": "WebSocket Aktif",
+      "hosts": "Host'lar",
+      "script": "Script",
+      "settings": "Service Ayarları"
+    },
+    "ssls": {
+      "cert": "Certificate",
+      "cert_key_list": {
+        "add": "Çift ekle",
+        "delete": "Çifti sil",
+        "title": "Certificate ve Key Çiftleri"
+      },
+      "client": {
+        "ca": "Client CA Certificate",
+        "depth": "Verification Depth",
+        "skipMtlsUriRegex": "mTLS URI Regex'i Atla",
+        "title": "Client"
+      },
+      "key": "Private Key",
+      "sni": "SNI",
+      "snis": "SNI'ler",
+      "ssl_protocols": "SSL Protocol'leri",
+      "type": "Certificate Tipi"
+    },
+    "streamRoutes": {
+      "protocol": {
+        "conf": "Config",
+        "logger": "Logger",
+        "name": "Protocol Adı",
+        "superiorId": "Superior ID",
+        "title": "Protocol Bilgisi"
+      },
+      "remoteAddr": "Remote Adres",
+      "server": "Server",
+      "serverAddr": "Server Adresi",
+      "serverPort": "Server Port",
+      "sni": "SNI"
+    },
+    "tagsInput": {
+      "placeholder": "Metin girin ve enter'a basın"
+    },
+    "upload": {
+      "fileOverSize": "Dosya boyutu çok büyük",
+      "readError": "Dosya okuma hatası:"
+    },
+    "upstreams": {
+      "checks": {
+        "active": {
+          "concurrency": "Concurrency",
+          "healthy": {
+            "http_statuses": "HTTP Status'leri",
+            "interval": "Interval",
+            "successes": "Başarı Sayısı",
+            "title": "Healthy"
+          },
+          "host": "Host",
+          "http_path": "HTTP Path",
+          "http_request_headers": "HTTP Request Header'ları",
+          "https_verify_certificate": "HTTPS Certificate Verify",
+          "port": "Port",
+          "timeout": "Timeout",
+          "title": "Active",
+          "type": "Tip",
+          "unhealthy": {
+            "http_failures": "HTTP Failure'ları",
+            "http_statuses": "HTTP Status'leri",
+            "interval": "Interval",
+            "tcp_failures": "TCP Failure'ları",
+            "timeouts": "Timeout'lar",
+            "title": "Unhealthy"
+          }
+        },
+        "passive": {
+          "healthy": {
+            "http_statuses": "HTTP Status'leri",
+            "successes": "Başarı Sayısı",
+            "title": "Healthy"
+          },
+          "title": "Passive",
+          "type": "Tip",
+          "unhealthy": {
+            "http_failures": "HTTP Failure'ları",
+            "http_statuses": "HTTP Status'leri",
+            "tcp_failures": "TCP Failure'ları",
+            "timeouts": "Timeout'lar",
+            "title": "Unhealthy"
+          }
+        },
+        "title": "Health Check'ler"
+      },
+      "connectionConfiguration": "Connection Configuration",
+      "discoveryArgs": {
+        "title": "Discovery Args"
+      },
+      "discoveryType": {
+        "title": "Discovery Type"
+      },
+      "findUpstreamFrom": "Upstream'i Nereden Bul",
+      "hashOn": "Hash On",
+      "hashOnDesc": "`type` değeri `chash` olduğunda geçerlidir",
+      "identifier": "Upstream Identifier",
+      "inline": "Inline Upstream Config",
+      "keepalivePool": {
+        "idleTimeout": "Idle Timeout",
+        "requests": "Request Sayısı",
+        "size": "Boyut",
+        "title": "Keepalive Pool"
+      },
+      "key": "Key",
+      "keyDesc": "`type` değeri `chash` olduğunda geçerlidir",
+      "loadBalancing": "Load Balancing",
+      "nodes": {
+        "action": {
+          "title": "İşlem"
+        },
+        "add": "Node Ekle",
+        "host": {
+          "title": "Host"
+        },
+        "port": {
+          "title": "Port"
+        },
+        "priority": {
+          "title": "Priority"
+        },
+        "title": "Node'lar",
+        "weight": {
+          "title": "Weight"
+        }
+      },
+      "passHost": "Pass Host",
+      "retries": "Retry Sayısı",
+      "retry": "Retry",
+      "retryTimeout": "Retry Timeout",
+      "scheme": "Scheme",
+      "serviceDiscovery": {
+        "serviceName": "Service Adı",
+        "title": "Service Discovery"
+      },
+      "serviceId": "Service ID",
+      "serviceName": {
+        "title": "Service Adı"
+      },
+      "timeout": {
+        "connect": "Connect",
+        "read": "Read",
+        "send": "Send",
+        "title": "Timeout"
+      },
+      "title": "Upstream",
+      "tls": {
+        "clientCert": "Client Cert",
+        "clientCertId": "Client Cert ID",
+        "clientCertKeyPair": "Client Cert Key Pair",
+        "clientKey": "Client Key",
+        "title": "TLS",
+        "verify": "Verify"
+      },
+      "type": "Tip",
+      "updateTime": "Güncelleme Zamanı",
+      "upstreamHost": "Upstream Host",
+      "upstreamHostDesc": "`pass_host` değeri `rewrite` olduğunda ayarlayın",
+      "upstreamId": "Upstream ID"
+    }
+  },
+  "globalRules": {
+    "singular": "Global Rule"
+  },
+  "help-us-translate": "Çeviri Yapmak İster misiniz?",
+  "info": {
+    "add": {
+      "success": "{{name}} başarıyla eklendi",
+      "title": "{{name}} Ekle"
+    },
+    "delete": {
+      "content": "{{name}} öğesini silmek istediğinizden emin misiniz?",
+      "success": "{{name}} başarıyla silindi",
+      "title": "{{name}} Sil"
+    },
+    "detail": {
+      "title": "{{name}} Detay"
+    },
+    "edit": {
+      "success": "{{name}} başarıyla güncellendi",
+      "title": "{{name}} Düzenle"
+    }
+  },
+  "mark": {
+    "question": "?"
+  },
+  "noData": "Veri Yok",
+  "or": "VEYA",
+  "pluginConfigs": {
+    "singular": "Plugin Config"
+  },
+  "pluginMetadata": {
+    "search": "Plugin Metadata Ara",
+    "singular": "Plugin Metadata"
+  },
+  "protos": {
+    "singular": "Proto"
+  },
+  "routes": {
+    "singular": "Route"
+  },
+  "seconds": "Saniye",
+  "secrets": {
+    "singular": "Secret"
+  },
+  "services": {
+    "singular": "Service"
+  },
+  "settings": {
+    "adminKey": "Admin Key",
+    "title": "Ayarlar",
+    "ui-commit-sha": "UI Commit SHA"
+  },
+  "sources": {
+    "consumerGroups": "Consumer Grupları",
+    "consumers": "Consumer'lar",
+    "credentials": "Credential'lar",
+    "globalRules": "Global Rule'lar",
+    "pluginConfigs": "Plugin Config'ler",
+    "pluginMetadata": "Plugin Metadata",
+    "protos": "Proto'lar",
+    "routes": "Route'lar",
+    "secrets": "Secret'lar",
+    "services": "Service'ler",
+    "ssls": "SSL'ler",
+    "streamRoutes": "Stream Route'lar",
+    "upstreams": "Upstream'ler"
+  },
+  "ssls": {
+    "singular": "SSL"
+  },
+  "streamRoutes": {
+    "singular": "Stream Route"
+  },
+  "table": {
+    "actions": "İşlemler",
+    "disabled": "Pasif",
+    "enabled": "Aktif"
+  },
+  "upstreams": {
+    "singular": "Upstream"
+  }
+}

Reply via email to