mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2025-10-03 15:56:17 +00:00
Changes to migrate to BCP 47 locale standard
This commit is contained in:
committed by
Donald Zou
parent
084bec0f07
commit
99cb546b59
@@ -1,127 +0,0 @@
|
||||
[
|
||||
{
|
||||
"lang_id": "id",
|
||||
"lang_name": "Bahasa Indonesia",
|
||||
"lang_name_localized": "Bahasa Indonesia"
|
||||
},
|
||||
{
|
||||
"lang_id": "zh-cn",
|
||||
"lang_name": "Chinese (Simplified)",
|
||||
"lang_name_localized": "中文(简体)"
|
||||
},
|
||||
{
|
||||
"lang_id": "be",
|
||||
"lang_name": "Belarusian",
|
||||
"lang_name_localized": "Беларуская"
|
||||
},
|
||||
{
|
||||
"lang_id": "ca",
|
||||
"lang_name": "Catalan",
|
||||
"lang_name_localized": "Català"
|
||||
},
|
||||
{
|
||||
"lang_id": "zh-hk",
|
||||
"lang_name": "Chinese (Traditional)",
|
||||
"lang_name_localized": "中文(繁體)"
|
||||
},
|
||||
{
|
||||
"lang_id": "cs",
|
||||
"lang_name": "Czech",
|
||||
"lang_name_localized": "Česky"
|
||||
},
|
||||
{
|
||||
"lang_id": "nl-nl",
|
||||
"lang_name": "Dutch",
|
||||
"lang_name_localized": "Nederlands"
|
||||
},
|
||||
{
|
||||
"lang_id": "ar-sa",
|
||||
"lang_name": "Arabic",
|
||||
"lang_name_localized": "العربية"
|
||||
},
|
||||
{
|
||||
"lang_id": "en",
|
||||
"lang_name": "English",
|
||||
"lang_name_localized": "English"
|
||||
},
|
||||
{
|
||||
"lang_id": "fa",
|
||||
"lang_name": "Farsi",
|
||||
"lang_name_localized": "فارسی"
|
||||
},
|
||||
{
|
||||
"lang_id": "fr-ca",
|
||||
"lang_name": "French (Quebec)",
|
||||
"lang_name_localized": "Français (Québec)"
|
||||
},
|
||||
{
|
||||
"lang_id": "fr-fr",
|
||||
"lang_name": "French (France)",
|
||||
"lang_name_localized": "Français (France)"
|
||||
},
|
||||
{
|
||||
"lang_id": "de-de",
|
||||
"lang_name": "German",
|
||||
"lang_name_localized": "Deutsch"
|
||||
},
|
||||
{
|
||||
"lang_id": "hu-hu",
|
||||
"lang_name": "Hungarian",
|
||||
"lang_name_localized": "Magyar"
|
||||
},
|
||||
{
|
||||
"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": "pl",
|
||||
"lang_name": "Polish",
|
||||
"lang_name_localized": "Polski"
|
||||
},
|
||||
{
|
||||
"lang_id": "pt-br",
|
||||
"lang_name": "Portuguese (Brazil)",
|
||||
"lang_name_localized": "Português (Brasil)"
|
||||
},
|
||||
{
|
||||
"lang_id": "ru",
|
||||
"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",
|
||||
"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": "Українська"
|
||||
}
|
||||
]
|
@@ -1,369 +0,0 @@
|
||||
{
|
||||
"Welcome to": "Üdvözlünk a(z) ",
|
||||
"Username": "Felhasználónév",
|
||||
"Password": "Jelszó",
|
||||
"OTP from your authenticator": "Egyszer használatos kód (OTP) az autentikátorodból",
|
||||
"Sign In": "Bejelentkezés",
|
||||
"Signing In\\.\\.\\.": "Bejelentkezés folyamatban...",
|
||||
"Access Remote Server": "Távoli szerver elérése",
|
||||
"Server": "Szerver",
|
||||
"Click": "Kattintson",
|
||||
"Pinging...": "Pingelés...",
|
||||
"to add your server": "a szerver hozzáadásához",
|
||||
"Server List": "Szerverlista",
|
||||
"Sorry, your username or password is incorrect.": "Sajnáljuk, a felhasználónév vagy a jelszó hibás.",
|
||||
"Home": "Főoldal",
|
||||
"Settings": "Beállítások",
|
||||
"Tools": "Eszközök",
|
||||
"Sign Out": "Kijelentkezés",
|
||||
"Checking for update...": "Frissítések ellenőrzése...",
|
||||
"You're on the latest version": "Már a legfrissebb verziót használja",
|
||||
"WireGuard Configurations": "WireGuard konfigurációk",
|
||||
"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.": "Még nincsenek WireGuard konfigurációi. Kérjük, ellenőrizze a konfigurációs mappát, vagy módosítsa a beállításoknál. Alapértelmezés szerint a mappa a /etc/wireguard.",
|
||||
"Configuration": "Konfiguráció",
|
||||
"Configurations": "Konfigurációk",
|
||||
"Peers Default Settings": "Alapértelmezett társ beállítások",
|
||||
"Dashboard Theme": "Vezérlőpanel téma",
|
||||
"Light": "Világos",
|
||||
"Dark": "Sötét",
|
||||
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Ez globálisan változik, és minden társ QR-kódjára és konfigurációs fájljára alkalmazva lesz.",
|
||||
"WireGuard Configurations Settings": "WireGuard konfiguráció beállításai",
|
||||
"Configurations Directory": "Konfigurációs könyvtár",
|
||||
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Ne felejtse el eltávolítani a '/' karaktert az útvonal végéről. (pl. /etc/wireguard)",
|
||||
"WGDashboard Account Settings": "WGDashboard fiókbeállítások",
|
||||
"Current Password": "Jelenlegi jelszó",
|
||||
"New Password": "Új jelszó",
|
||||
"Repeat New Password": "Új jelszó ismétlése",
|
||||
"Update Password": "Jelszó frissítése",
|
||||
"Multi-Factor Authentication \\(MFA\\)": "Többfaktoros hitelesítés (MFA)",
|
||||
"Reset": "Visszaállítás",
|
||||
"Setup": "Beállítás",
|
||||
"API Keys": "API-kulcsok",
|
||||
"API Key": "API-kulcs",
|
||||
"Key": "Kulcs",
|
||||
"Enabled": "Engedélyezve",
|
||||
"Disabled": "Letiltva",
|
||||
"No WGDashboard API Key": "Nincs WGDashboard API-kulcs",
|
||||
"Expire At": "Lejár:",
|
||||
"Are you sure to delete this API key\\?": "Biztosan törölni szeretné ezt az API-kulcsot?",
|
||||
"Create API Key": "API-kulcs létrehozása",
|
||||
"When should this API Key expire\\?": "Mikor járjon le ez az API-kulcs?",
|
||||
"Never Expire": "Soha ne járjon le",
|
||||
"Don't think that's a good idea": "Szerintem ez nem jó ötlet",
|
||||
"Creating\\.\\.\\.": "Létrehozás...",
|
||||
"Create": "Létrehozás",
|
||||
"Status": "Állapot",
|
||||
"On": "Bekapcsolva",
|
||||
"Off": "Kikapcsolva",
|
||||
"Turning On\\.\\.\\.": "Bekapcsolás...",
|
||||
"Turning Off\\.\\.\\.": "Kikapcsolás...",
|
||||
"Address": "Cím",
|
||||
"Listen Port": "Port hallgatása",
|
||||
"Table": "Táblázat",
|
||||
"Public Key": "Nyilvános kulcs",
|
||||
"Connected Peers": "Csatlakozott társak",
|
||||
"Total Usage": "Teljes használat",
|
||||
"Total Received": "Összes fogadott",
|
||||
"Total Sent": "Összes elküldött",
|
||||
"Peers Data Usage": "Társak adatforgalma",
|
||||
"Real Time Received Data Usage": "Valós idejű fogadott forgalom",
|
||||
"Real Time Sent Data Usage": "Valós idejű elküldött forgalom",
|
||||
"Peer": "Társ",
|
||||
"Peers": "Társak",
|
||||
"Peer Settings": "Társ beállítások",
|
||||
"Download All": "Összes letöltése",
|
||||
"Search": "Keresés",
|
||||
"Search Peers\\.\\.\\.": "Társak keresése...",
|
||||
"Display": "Megjelenítés",
|
||||
"Sort By": "Rendezés",
|
||||
"Refresh Interval": "Frissítési időköz",
|
||||
"Name": "Név",
|
||||
"Allowed IPs": "Engedélyezett IP-k",
|
||||
"Restricted": "Korlátozott",
|
||||
"(.*) Seconds": "$1 másodperc",
|
||||
"(.*) Minutes": "$1 perc",
|
||||
"Configuration Settings": "Konfiguráció beállítások",
|
||||
"Peer Jobs": "Társ feladatok",
|
||||
"Active Jobs": "Aktív feladatok",
|
||||
"All Active Jobs": "Összes aktív feladat",
|
||||
"Logs": "Naplók",
|
||||
"Private Key": "Privát kulcs",
|
||||
"\\(Required for QR Code and Download\\)": "(Szükséges a QR-kódhoz és letöltéshez)",
|
||||
"\\(Required\\)": "(Szükséges)",
|
||||
"Endpoint Allowed IPs": "Végpont engedélyezett IP-k",
|
||||
"DNS": "DNS",
|
||||
"Optional Settings": "Opcionális beállítások",
|
||||
"Pre-Shared Key": "Előre megosztott kulcs",
|
||||
"MTU": "MTU",
|
||||
"Persistent Keepalive": "Folyamatos keepalive",
|
||||
"Reset Data Usage": "Adatforgalom visszaállítása",
|
||||
"Total": "Összesen",
|
||||
"Sent": "Elküldött",
|
||||
"Received": "Fogadott",
|
||||
"Revert": "Visszaállítás",
|
||||
"Save Peer": "Társ mentése",
|
||||
"QR Code": "QR-kód",
|
||||
"Schedule Jobs": "Feladatok ütemezése",
|
||||
"Job": "Feladat",
|
||||
"Job ID": "Feladat azonosító",
|
||||
"Unsaved Job": "Mentetlen feladat",
|
||||
"This peer does not have any job yet\\.": "Ennek a társnak még nincs feladata.",
|
||||
"if": "ha",
|
||||
"is": "van",
|
||||
"then": "akkor",
|
||||
"larger than": "nagyobb mint",
|
||||
"Date": "Dátum",
|
||||
"Restrict Peer": "Társ korlátozása",
|
||||
"Delete Peer": "Társ törlése",
|
||||
"Edit": "Szerkesztés",
|
||||
"Delete": "Törlés",
|
||||
"Deleting...": "Törlés...",
|
||||
"Cancel": "Mégse",
|
||||
"Save": "Mentés",
|
||||
"No active job at the moment\\.": "Jelenleg nincs aktív feladat.",
|
||||
"Jobs Logs": "Feladatnaplók",
|
||||
"Updated at": "Frissítve:",
|
||||
"Refresh": "Frissítés",
|
||||
"Filter": "Szűrés",
|
||||
"Success": "Sikeres",
|
||||
"Failed": "Sikertelen",
|
||||
"Log ID": "Napló azonosító",
|
||||
"Message": "Üzenet",
|
||||
"Share Peer": "Társ megosztása",
|
||||
"Currently the peer is not sharing": "A társ jelenleg nincs megosztva",
|
||||
"Sharing\\.\\.\\.": "Megosztás...",
|
||||
"Start Sharing": "Megosztás indítása",
|
||||
"Stop Sharing\\.\\.\\.": "Megosztás leállítása...",
|
||||
"Stop Sharing": "Megosztás leállítása",
|
||||
"Access Restricted": "Hozzáférés korlátozva",
|
||||
"Restrict Access": "Hozzáférés korlátozása",
|
||||
"Restricting\\.\\.\\.": "Korlátozás...",
|
||||
"Allow Access": "Hozzáférés engedélyezése",
|
||||
"Allowing Access\\.\\.\\.": "Engedélyezés...",
|
||||
"Download \\& QR Code is not available due to no private key set for this peer": "Letöltés és QR-kód nem érhető el, mert nincs beállított privát kulcs ehhez a társhoz",
|
||||
"Add Peers": "Társ hozzáadása",
|
||||
"Bulk Add": "Tömeges hozzáadás",
|
||||
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Társak tömeges hozzáadásakor minden társ neve automatikusan generálódik, és az engedélyezett IP a következő elérhető IP lesz.",
|
||||
"How many peers you want to add\\?": "Hány társat szeretne hozzáadni?",
|
||||
"You can add up to (.*) peers": "Legfeljebb $1 társat adhat hozzá",
|
||||
"Use your own Private and Public Key": "Használja saját privát és nyilvános kulcsát",
|
||||
"Enter IP Address/CIDR": "Adja meg az IP-címet/CIDR-t",
|
||||
"IP Address/CIDR": "IP-cím/CIDR",
|
||||
"or": "vagy",
|
||||
"Pick Available IP": "Elérhető IP kiválasztása",
|
||||
"No available IP containing": "Nincs elérhető IP, amely tartalmazza",
|
||||
"Add": "Hozzáadás",
|
||||
"Adding\\.\\.\\.": "Hozzáadás...",
|
||||
"Failed to check available update": "Nem sikerült ellenőrizni a frissítéseket",
|
||||
"Nice to meet you!": "Örülök, hogy megismerhetlek!",
|
||||
"Please fill in the following fields to finish setup": "Töltse ki az alábbi mezőket a beállítás befejezéséhez",
|
||||
"Create an account": "Fiók létrehozása",
|
||||
"Enter an username you like": "Adja meg a kívánt felhasználónevet",
|
||||
"Enter a password": "Adja meg a jelszót",
|
||||
"\\(At least 8 characters and make sure is strong enough!\\)": "(Legalább 8 karakter, és legyen elég erős!)",
|
||||
"Confirm password": "Jelszó megerősítése",
|
||||
"Next": "Tovább",
|
||||
"Saving\\.\\.\\.": "Mentés...",
|
||||
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Kérjük, olvassa be az alábbi QR-kódot, hogy TOTP-t generáljon az Ön által választott autentikátorral",
|
||||
"Or you can click the link below:": "Vagy kattintson az alábbi hivatkozásra:",
|
||||
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Adja meg az autentikátor által generált TOTP-t a megerősítéshez",
|
||||
"TOTP verified!": "TOTP sikeresen ellenőrizve!",
|
||||
"I don't need MFA": "Nincs szükségem MFA-ra",
|
||||
"Complete": "Befejezés",
|
||||
"(v[0-9.]{1,}) is now available for update!": "$1 frissíthető!",
|
||||
"Current Version:": "Jelenlegi verzió:",
|
||||
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Hoppá... Ez a hivatkozás lejárt vagy érvénytelen.",
|
||||
"Scan QR Code with the WireGuard App to add peer": "Olvassa be a QR-kódot a WireGuard alkalmazással a társ hozzáadásához",
|
||||
"or click the button below to download the ": "vagy kattintson az alábbi gombra a letöltéshez: ",
|
||||
" file": " fájl",
|
||||
"FROM ": "FORRÁS: ",
|
||||
"(.*) is on": "$1 be van kapcsolva",
|
||||
"(.*) is off": "$1 ki van kapcsolva",
|
||||
"Allowed IPs is invalid": "Az engedélyezett IP-k érvénytelenek",
|
||||
"Peer created successfully": "A társ sikeresen létrejött",
|
||||
"Please fill in all required box": "Töltse ki az összes kötelező mezőt",
|
||||
"Please specify amount of peers you want to add": "Adja meg, hány társat szeretne hozzáadni",
|
||||
"No more available IP can assign": "Nincs több elérhető IP kiosztható",
|
||||
"The maximum number of peers can add is (.*)": "A hozzáadható társak maximális száma: $1",
|
||||
"Generating key pairs by bulk failed": "Nem sikerült tömegesen kulcspárokat generálni",
|
||||
"Failed to add peers in bulk": "Nem sikerült tömegesen hozzáadni a társakat",
|
||||
"This peer already exist": "Ez a társ már létezik",
|
||||
"This IP is not available: (.*)": "Ez az IP nem elérhető: $1",
|
||||
"Configuration does not exist": "A konfiguráció nem létezik",
|
||||
"Peer does not exist": "A társ nem létezik",
|
||||
"Please provide a valid configuration name": "Adjon meg érvényes konfigurációs nevet",
|
||||
"Peer saved": "A társ mentve",
|
||||
"Allowed IPs already taken by another peer": "Az engedélyezett IP-ket már egy másik társ foglalta le",
|
||||
"Endpoint Allowed IPs format is incorrect": "A végpont engedélyezett IP-k formátuma helytelen",
|
||||
"DNS format is incorrect": "A DNS formátum helytelen",
|
||||
"MTU format is not correct": "Az MTU formátuma helytelen",
|
||||
"Persistent Keepalive format is not correct": "A folyamatos keepalive formátuma helytelen",
|
||||
"Private key does not match with the public key": "A privát kulcs nem egyeztethető a nyilvános kulccsal",
|
||||
"Update peer failed when updating Pre-Shared Key": "A társ frissítése sikertelen volt az előre megosztott kulcs frissítésekor",
|
||||
"Update peer failed when updating Allowed IPs": "A társ frissítése sikertelen volt az engedélyezett IP-k frissítésekor",
|
||||
"Update peer failed when saving the configuration": "A társ frissítése sikertelen volt a konfiguráció mentésekor",
|
||||
"Peer data usage reset successfully": "A társ adatforgalma sikeresen visszaállítva",
|
||||
"Peer download started": "A társ letöltése elindult",
|
||||
"Please specify one or more peers": "Jelöljön ki egy vagy több társat",
|
||||
"Share link failed to create. Reason: (.*)": "Nem sikerült létrehozni a megosztási hivatkozást. Ok: $1",
|
||||
"Link expire date updated": "A hivatkozás lejárati dátuma frissítve",
|
||||
"Link expire date failed to update. Reason: (.*)": "A hivatkozás lejárati dátumának frissítése sikertelen. Ok: $1",
|
||||
"Peer job saved": "A társ feladata mentve",
|
||||
"Please specify job": "Adja meg a feladatot",
|
||||
"Please specify peer and configuration": "Jelölje ki a társat és a konfigurációt",
|
||||
"Peer job deleted": "A társ feladata törölve",
|
||||
"API Keys function is successfully enabled": "Az API-kulcs funkció sikeresen engedélyezve",
|
||||
"API Keys function is successfully disabled": "Az API-kulcs funkció sikeresen letiltva",
|
||||
"API Keys function is failed to enable": "Az API-kulcs funkció engedélyezése sikertelen",
|
||||
"API Keys function is failed to disable": "Az API-kulcs funkció letiltása sikertelen",
|
||||
"WGDashboard API Keys function is disabled": "A WGDashboard API-kulcs funkció letiltva",
|
||||
"WireGuard configuration path saved": "A WireGuard konfigurációs útvonal mentve",
|
||||
"API Key deleted": "API-kulcs törölve",
|
||||
"API Key created": "API-kulcs létrehozva",
|
||||
"Sign in session ended, please sign in again": "A bejelentkezés lejárt, kérjük jelentkezzen be újra",
|
||||
"Please specify an IP Address (v4/v6)": "Adjon meg egy IP-címet (v4/v6)",
|
||||
"Please provide ipAddress and count": "Adja meg az IP-címet és a darabszámot",
|
||||
"Please provide ipAddress": "Adja meg az IP-címet",
|
||||
"Dashboard Language": "Vezérlőpanel nyelv",
|
||||
"Dashboard language update failed": "A vezérlőpanel nyelvének frissítése sikertelen",
|
||||
"Peer Remote Endpoint": "Társ távoli végpontja",
|
||||
"New Configuration": "Új konfiguráció",
|
||||
"Configuration Name": "Konfiguráció neve",
|
||||
"Configuration name is invalid. Possible reasons:": "A konfiguráció neve érvénytelen. Lehetséges okok:",
|
||||
"Configuration name already exist\\.": "A konfiguráció neve már létezik.",
|
||||
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "A konfiguráció neve csak 15 kis- vagy nagybetűt, számokat, alulvonást, egyenlőségjelet, pluszjelet, pontot és kötőjelet tartalmazhat.",
|
||||
"Invalid Port": "Érvénytelen port",
|
||||
"Save Configuration": "Konfiguráció mentése",
|
||||
"IP Address/CIDR is invalid": "Az IP-cím/CIDR érvénytelen",
|
||||
"IP Address": "IP-cím",
|
||||
"Enter IP Address / Hostname": "Adja meg az IP-címet / hosztnevet",
|
||||
"IP Address / Hostname": "IP-cím / hosztnév",
|
||||
"Dashboard IP Address \\& Listen Port": "Vezérlőpanel IP-cím és hallgató port",
|
||||
"Count": "Darabszám",
|
||||
"Hop": "Ugrás",
|
||||
"Average RTT \\(ms\\)": "Átlagos RTT (ms)",
|
||||
"Min RTT \\(ms\\)": "Minimum RTT (ms)",
|
||||
"Max RTT \\(ms\\)": "Maximum RTT (ms)",
|
||||
"Geolocation": "Földrajzi hely",
|
||||
"Is Alive": "Élő?",
|
||||
"Average / Min / Max Round Trip Time": "Átlagos / min / max oda-vissza idő",
|
||||
"Sent / Received / Lost Package": "Elküldött / fogadott / elveszett csomag",
|
||||
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "A WGDashboard kézi újraindítása szükséges az IP-cím és a portváltoztatások alkalmazásához",
|
||||
"Restore Configuration": "Konfiguráció visszaállítása",
|
||||
"Step (.*)": "Lépés $1",
|
||||
"Select a backup you want to restore": "Válasszon egy visszaállítandó biztonsági másolatot",
|
||||
"Click to change a backup": "Kattintson a biztonsági mentés megváltoztatásához",
|
||||
"Selected Backup": "Kiválasztott mentés",
|
||||
"You don't have any configuration to restore": "Nincs visszaállítandó konfigurációja",
|
||||
"Help": "Súgó",
|
||||
"You can visit our: ": "Látogasson el ide:",
|
||||
"Official Documentation": "Hivatalos dokumentáció",
|
||||
"Discord Server": "Discord szerver",
|
||||
"Backup": "Biztonsági mentés",
|
||||
"([0-9].*) Backups\\?": "$1 mentés?",
|
||||
"Yes": "Igen",
|
||||
"No": "Nem",
|
||||
"Backup not selected": "Nincs kiválasztva mentés",
|
||||
"Confirm \\& edit restore information": "Visszaállítási információk megerősítése és szerkesztése",
|
||||
"(.*) Available IP Address": "$1 elérhető IP-cím",
|
||||
"Database File": "Adatbázis fájl",
|
||||
"Contain": "Tartalmaz",
|
||||
"Restricted Peers\\?": "Korlátozott társak?",
|
||||
"Restore": "Visszaállítás",
|
||||
"Restoring": "Visszaállítás folyamatban",
|
||||
"WGDashboard Settings": "WGDashboard beállítások",
|
||||
"Peers Settings": "Társ beállítások",
|
||||
"WireGuard Configuration Settings": "WireGuard konfiguráció beállítások",
|
||||
"Appearance": "Megjelenés",
|
||||
"Theme": "Téma",
|
||||
"Language": "Nyelv",
|
||||
"Account Settings": "Fiókbeállítások",
|
||||
"Peer Default Settings": "Társ alapértelmezett beállítások",
|
||||
"Toggle When Start Up": "Indításkor törlése",
|
||||
"Other Settings": "Egyéb beállítások",
|
||||
"Select Peers": "Társak kiválasztása",
|
||||
"Backup & Restore": "Mentés és visszaállítás",
|
||||
"Delete Configuration": "Konfiguráció törlése",
|
||||
"Create Backup": "Biztonsági mentés létrehozása",
|
||||
"No backup yet, click the button above to create backup\\.": "Még nincs mentés, kattintson a fenti gombra a mentés létrehozásához.",
|
||||
"Are you sure to delete this backup\\?": "Biztosan törölni szeretné ezt a mentést?",
|
||||
"Are you sure to restore this backup\\?": "Biztosan visszaállítja ezt a mentést?",
|
||||
"Backup Date": "Mentés dátuma",
|
||||
"File": "Fájl",
|
||||
"Are you sure to delete this configuration\\?": "Biztosan törölni szeretné ezt a konfigurációt?",
|
||||
"Once you deleted this configuration\\:": "Ha törli ezt a konfigurációt:",
|
||||
"All connected peers will get disconnected": "Minden kapcsolódott társ le lesz választva",
|
||||
"Both configuration file \\(.conf\\) and database table related to this configuration will get deleted": "A konfigurációhoz tartozó .conf fájl és adatbázis tábla is törlődik",
|
||||
"Checking backups...": "Mentések ellenőrzése...",
|
||||
"This configuration have ([0-9].*) backups": "Ennél a konfigurációnál $1 mentés van",
|
||||
"This configuration have no backup": "Ennél a konfigurációnál nincs mentés",
|
||||
"If you're sure, please type in the configuration name below and click Delete": "Ha biztos, írja be a konfiguráció nevét alább, és kattintson a Törlésre",
|
||||
"Select All": "Összes kiválasztása",
|
||||
"Clear Selection": "Kiválasztás törlése",
|
||||
"([0-9].*) Peers\\?": "$1 társ?",
|
||||
"Download": "Letöltés",
|
||||
"Downloading": "Letöltés...",
|
||||
"Download Finished": "Letöltés befejezve",
|
||||
"Done": "Kész",
|
||||
"Are you sure to delete": "Biztosan törölni szeretné",
|
||||
"Are you sure to delete this peer\\?": "Biztosan törölni szeretné ezt a társat?",
|
||||
"Configuration deleted": "Konfiguráció törölve",
|
||||
"Configuration saved": "Konfiguráció mentve",
|
||||
"WGDashboard language update failed": "A WGDashboard nyelvének frissítése sikertelen",
|
||||
"Configuration restored": "Konfiguráció visszaállítva",
|
||||
"Allowed IP already taken by another peer": "Az engedélyezett IP-t már egy másik társ használja",
|
||||
"Failed to allow access of peer (.*)": "Nem sikerült engedélyezni a hozzáférést a társ számára: $1",
|
||||
"Failed to save configuration through WireGuard": "Nem sikerült menteni a konfigurációt WireGuardon keresztül",
|
||||
"Allow access successfully": "Hozzáférés sikeresen engedélyezve",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\)": "Törölve $1 társ",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Sikeresen törölve $1 társ. $2 társ törlése sikertelen",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\)": "Korlátozva $1 társ",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Sikeresen korlátozva $1 társ. $2 társ korlátozása sikertelen",
|
||||
"Display As": "Megjelenítés",
|
||||
"List": "Lista",
|
||||
"Grid": "Rács",
|
||||
"Protocol": "Protokoll",
|
||||
"Open File": "Fájl megnyitása",
|
||||
"Advanced Options": "Haladó beállítások",
|
||||
"Allowed IPs Validation": "Engedélyezett IP-k érvényesítése",
|
||||
"Update Name": "Név frissítése",
|
||||
"To update this configuration's name, WGDashboard will execute the following operations:": "A konfiguráció nevének frissítéséhez a WGDashboard a következő műveleteket hajtja végre:",
|
||||
"Duplicate current configuration's database table and \\..\\.conf file with the new name": "A jelenlegi konfiguráció adatbázis táblájának és .conf fájljának másolása az új névvel",
|
||||
"Delete current configuration's database table and \\..\\.conf file": "A jelenlegi konfiguráció adatbázis táblájának és .conf fájljának törlése",
|
||||
"Danger Zone": "Veszélyes zóna",
|
||||
"Configuration File": "Konfigurációs fájl",
|
||||
"Edit Raw Configuration File": "Nyers konfigurációs fájl szerkesztése",
|
||||
"Peer Configuration File": "Társ konfigurációs fájl",
|
||||
"Share with Email": "Megosztás e-mailben",
|
||||
"Email Account": "E-mail fiók",
|
||||
"Ready": "Kész",
|
||||
"Port": "Port",
|
||||
"Encryption": "Titkosítás",
|
||||
"No Encryption": "Nincs titkosítás",
|
||||
"Send From": "Feladó",
|
||||
"Send Test Email": "Teszt e-mail küldése",
|
||||
"Email Body Template": "E-mail törzs sablon",
|
||||
"Live Preview": "Élő előnézet",
|
||||
"Include configuration file as an attachment": "Konfigurációs fájl mellékletként csatolása",
|
||||
"Send": "Küldés",
|
||||
"Sending\\.\\.\\.": "Küldés...",
|
||||
"Email sent successfully!": "Az e-mail sikeresen elküldve!",
|
||||
"AmneziaWG Peer Setting": "AmneziaWG társ beállítás",
|
||||
"System Status": "Rendszerállapot",
|
||||
"CPU": "CPU",
|
||||
"Memory": "Memória",
|
||||
"Swap Memory": "Swap memória",
|
||||
"Processes": "Folyamatok",
|
||||
"CPU Usage": "CPU használat",
|
||||
"Memory Usage": "Memória használat",
|
||||
"Swap Memory Usage": "Swap memória használat",
|
||||
"Network": "Hálózat",
|
||||
"([0-9]{1,}) Interfaces": "$1 interfész",
|
||||
"Storage": "Tároló",
|
||||
"([0-9]{1,}) Partitions": "$1 partíció",
|
||||
"(.*) Used": "$1 használva",
|
||||
"Untitled Peer": "Névtelen társ",
|
||||
"Who are you sending to\\?": "Kinek küldi?",
|
||||
"What\\'s the subject\\?": "Mi a tárgy?",
|
||||
"What\\'s the body\\?": "Mi a szövegtörzs?"
|
||||
}
|
@@ -1,361 +0,0 @@
|
||||
{
|
||||
"Welcome to": "Selamat Datang di",
|
||||
"Username": "Nama Pengguna",
|
||||
"Password": "Kata Sandi",
|
||||
"OTP from your authenticator": "OTP dari autentikator Anda",
|
||||
"Sign In": "Masuk",
|
||||
"Signing In\\.\\.\\.": "Masuk...",
|
||||
"Access Remote Server": "Akses Server Remot",
|
||||
"Server": "server",
|
||||
"Click": "Klik",
|
||||
"Pinging...": "Pinging...",
|
||||
"to add your server": "untuk menambahkan server Anda",
|
||||
"Server List": "Daftar Server",
|
||||
"Sorry, your username or password is incorrect.": "Maaf, nama pengguna atau kata sandi Anda salah",
|
||||
"Home": "Beranda",
|
||||
"Settings": "Pengaturan",
|
||||
"Tools": "Peralatan",
|
||||
"Sign Out": "Keluar",
|
||||
"Checking for update...": "Memeriksa Pembaruan...",
|
||||
"You're on the latest version": "Anda berada pada versi paling baru",
|
||||
"WireGuard Configurations": "Konfigurasi 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.": "Anda belum memiliki konfigurasi WireGuard. Mohon periksa folder konfigurasi atau ubah di Pengaturan. Secara bawaan folder nya adalah /etc/wireguard.",
|
||||
"Configuration": "Konfigurasi",
|
||||
"Configurations": "Konfigurasi",
|
||||
"Peers Default Settings": "Pengaturan Bawaan Peers",
|
||||
"Dashboard Theme": "Tema Dasbor",
|
||||
"Light": "Terang",
|
||||
"Dark": "Gelap",
|
||||
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Perubahan ini akan di ubah secara global, dan akan berlaku ke semua kode QR peer dan file konfigurasi.",
|
||||
"WireGuard Configurations Settings": "Pengaturan Konfigurasi WireGuard",
|
||||
"Configurations Directory": "Direktori Konfigurasi",
|
||||
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Jangan lupa untuk menghapus / di akhir path Anda. Contoh /etc/wireguard",
|
||||
"WGDashboard Account Settings": "Pengaturan Akun WGDashboard",
|
||||
"Current Password": "Kata Sandi Saat Ini",
|
||||
"New Password": "Kata Sandi Baru",
|
||||
"Repeat New Password": "Ulangi Kata Sandi Baru",
|
||||
"Update Password": "Perbarui Kata Sandi",
|
||||
"Multi-Factor Authentication \\(MFA\\)": "Autentikasi Multi-Faktor (MFA)",
|
||||
"Reset": "Atur Ulang",
|
||||
"Setup": "Pengaturan",
|
||||
"API Keys": "Kunci API",
|
||||
"API Key": "Kunci API",
|
||||
"Key": "Kunci",
|
||||
"Enabled": "Diaktifkan",
|
||||
"Disabled": "Dimatikan",
|
||||
"No WGDashboard API Key": "Tidak Ada Kunci API WGDashboard",
|
||||
"Expire At": "Kedaluwarsa pada",
|
||||
"Are you sure to delete this API key\\?": "Apa Anda yakin ingin menghapus kunci API berikut?",
|
||||
"Create API Key": "Buat Kunci API",
|
||||
"When should this API Key expire\\?": "Kapan kunci API berikut kedaluwarsa?",
|
||||
"Never Expire": "Tidak Pernah Kedaluwarsa",
|
||||
"Don't think that's a good idea": "Sepertinya itu bukan ide yang bagus",
|
||||
"Creating\\.\\.\\.": "Membuat...",
|
||||
"Create": "Buat",
|
||||
"Status": "Keadaan",
|
||||
"On": "Aktif",
|
||||
"Off": "Mati",
|
||||
"Turning On\\.\\.\\.": "Mengaktifkan...",
|
||||
"Turning Off\\.\\.\\.": "Mematikan...",
|
||||
"Address": "Alamat",
|
||||
"Listen Port": "Mendengarkan Port",
|
||||
"Public Key": "Kunci Publik",
|
||||
"Connected Peers": "Peers Terhubung",
|
||||
"Total Usage": "Penggunaan Total",
|
||||
"Total Received": "Total Diterima",
|
||||
"Total Sent": "Total Dikirim",
|
||||
"Peers Data Usage": "Penggunaan Data Peers",
|
||||
"Real Time Received Data Usage": "Waktu Nyata Menerima Penggunaan Data",
|
||||
"Real Time Sent Data Usage": "Waktu Nyata Mengirim Penggunaan Data",
|
||||
"Peer": "Peer",
|
||||
"Peers": "Peers",
|
||||
"Peer Settings": "Pengaturan Peer",
|
||||
"Download All": "Unduh Semua",
|
||||
"Search": "Cari",
|
||||
"Search Peers\\.\\.\\.": "Cari Peer...",
|
||||
"Display": "Tampilan",
|
||||
"Sort By": "Urutkan",
|
||||
"Refresh Interval": "Memperbarui Interval",
|
||||
"Name": "Nama",
|
||||
"Allowed IPs": "Allowed IPs",
|
||||
"Restricted": "Terbatas",
|
||||
"(.*) Seconds": "$1 Detik",
|
||||
"(.*) Minutes": "$1 Menit",
|
||||
"Configuration Settings": "Pengaturan Konfigurasi",
|
||||
"Peer Jobs": "Pekerjaan Peer",
|
||||
"Active Jobs": "Pekerjaan Aktif",
|
||||
"All Active Jobs": "Semua Pekerjaan Aktif",
|
||||
"Logs": "Log",
|
||||
"Private Key": "Kunci Pribadi",
|
||||
"\\(Required for QR Code and Download\\)": "(Diperlukan untuk Kode QR dan Unduh)",
|
||||
"\\(Required\\)": "Diperlukan",
|
||||
"Endpoint Allowed IPs": "Endpoint IP Allowed IPs",
|
||||
"DNS": "DNS",
|
||||
"Optional Settings": "Pengaturan Opsional",
|
||||
"Pre-Shared Key": "Kunci Pra-Berbagi",
|
||||
"MTU": "MTU",
|
||||
"Persistent Keepalive": "Persistent Keepalive",
|
||||
"Reset Data Usage": "Atur Ulang Penggunaan Data",
|
||||
"Total": "Total",
|
||||
"Sent": "Dikirim",
|
||||
"Received": "Diterima",
|
||||
"Revert": "Kembalikan",
|
||||
"Save Peer": "Simpan Peer",
|
||||
"QR Code": "Kode QR",
|
||||
"Schedule Jobs": "Jadwalkan Pekerjaan",
|
||||
"Job": "Pekerjaan",
|
||||
"Job ID": "ID Pekerjaan",
|
||||
"Unsaved Job": "Pekerjaan yang belum Tersimpan",
|
||||
"This peer does not have any job yet\\.": "Peer ini belum memiliki pekerjaan",
|
||||
"if": "jika",
|
||||
"is": "adalah",
|
||||
"then": "maka",
|
||||
"larger than": "lebih besar dari",
|
||||
"Date": "Tanggal",
|
||||
"Restrict Peer": "Batasi Peer",
|
||||
"Delete Peer": "Hapus Peer",
|
||||
"Edit": "Ubah",
|
||||
"Delete": "Hapus",
|
||||
"Deleting...": "Menghapus...",
|
||||
"Cancel": "Batal",
|
||||
"Save": "Simpan",
|
||||
"No active job at the moment\\.": "Tidak ada pekerjaan aktif untuk saat ini.",
|
||||
"Jobs Logs": "Log Pekerjaan",
|
||||
"Updated at": "Diperbarui pada",
|
||||
"Refresh": "Perbarui",
|
||||
"Filter": "Penyaring",
|
||||
"Success": "Sukses",
|
||||
"Failed": "Gagal",
|
||||
"Log ID": "ID Log",
|
||||
"Message": "Pesan",
|
||||
"Share Peer": "Membagikan Peer",
|
||||
"Currently the peer is not sharing": "Saat ini peer tidak berbagi",
|
||||
"Sharing\\.\\.\\.": "Membagikan...",
|
||||
"Start Sharing": "Mulai Membagikan",
|
||||
"Stop Sharing\\.\\.\\.": "Berhenti Membagikan...",
|
||||
"Stop Sharing": "Berhenti Membagikan",
|
||||
"Access Restricted": "Akses Terbatas",
|
||||
"Restrict Access": "Batasi Akses",
|
||||
"Restricting\\.\\.\\.": "Membatasi...",
|
||||
"Allow Access": "Izinkan Akses",
|
||||
"Allowing Access\\.\\.\\.": "Mengizinkan Akses...",
|
||||
"Download \\& QR Code is not available due to no private key set for this peer": "Unduh & Kode QR tidak tersedia karena kunci pribadi tidak di atur untuk peer ini",
|
||||
"Add Peers": "Tambah Peers",
|
||||
"Bulk Add": "Tambah Massal",
|
||||
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Dengan menambahkan peers secara massal, setiap nama peer akan dibuat secara otomatis, dan Allowed IP akan ditetapkan ke IP berikutnya yang tersedia.",
|
||||
"How many peers you want to add\\?": "Berapa banyak peers yang ingin Anda tambah?",
|
||||
"You can add up to (.*) peers": "Anda dapat menambahkan sebanyak $1 peers",
|
||||
"Use your own Private and Public Key": "Gunakan kunci pribadi dan kunci publik milik Anda",
|
||||
"Enter IP Address/CIDR": "Masukkan Alamat IP/CIDR",
|
||||
"IP Address/CIDR": "Alamat IP/CIDR",
|
||||
"or": "atau",
|
||||
"Pick Available IP": "Pilih IP yang Tersedia",
|
||||
"No available IP containing": "Tidak ada IP yang Tersedia yang memiliki",
|
||||
"Add": "Tambah",
|
||||
"Adding\\.\\.\\.": "Menambahkan...",
|
||||
"Failed to check available update": "Gagal untuk memeriksa pembaruan yang tersedia",
|
||||
"Nice to meet you!": "Senang bertemu dengan Anda!",
|
||||
"Please fill in the following fields to finish setup": "Silakan isi kolom berikut untuk menyelesaikan pengaturan",
|
||||
"Create an account": "Buat akun baru",
|
||||
"Enter an username you like": "Masukkan nama pengguna yang Anda sukai",
|
||||
"Enter a password": "Masukkan kata sandi",
|
||||
"\\(At least 8 characters and make sure is strong enough!\\)": "(Setidaknya 8 karakter dan pastikan cukup kuat!)",
|
||||
"Confirm password": "Konfirmasi kata sandi",
|
||||
"Next": "Lanjut",
|
||||
"Saving\\.\\.\\.": "Menyimpan...",
|
||||
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Silakan pindai Kode QR berikut untuk menghasilkan TOTP dengan pilihan autentikator Anda",
|
||||
"Or you can click the link below:": "Atau Anda bisa klik tautan di bawah",
|
||||
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Masukkan TOTP yang dihasilkan oleh autentikator anda untuk verifikasi",
|
||||
"TOTP verified!": "TOTP terverifikasi!",
|
||||
"I don't need MFA": "Saya tidak membutuhkan MFA",
|
||||
"Complete": "Selesai",
|
||||
"(v[0-9.]{1,}) is now available for update!": "v$1 telah tersedia untuk pembaruan!",
|
||||
"Current Version:": "Versi Saat Ini:",
|
||||
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh tidak... Tautan ini sudah kedaluwarsa atau salah.",
|
||||
"Scan QR Code with the WireGuard App to add peer": "Pindai Kode QR menggunakan Aplikasi WireGuard untuk menambahkan peer",
|
||||
"or click the button below to download the ": "atau klik tomboh di bawah untuk mengunduh",
|
||||
" file": " file",
|
||||
"FROM ": "DARI",
|
||||
"(.*) is on": "$1 aktif",
|
||||
"(.*) is off": "$1 mati",
|
||||
"Allowed IPs is invalid": "Allowed IPs salah",
|
||||
"Peer created successfully": "Peer berhasil terbuat",
|
||||
"Please fill in all required box": "Silakan isi semua kolom diperlukan",
|
||||
"Please specify amount of peers you want to add": "Silakan tentukan jumlah peers yang ingin Anda tambahkan",
|
||||
"No more available IP can assign": "Tidak ada lagi IP yang tersedia yang dapat ditetapkan",
|
||||
"The maximum number of peers can add is (.*)": "Jumlah maksimal peers yang dapat ditambahkan adalah $1",
|
||||
"Generating key pairs by bulk failed": "Gagal menghasilkan pasangan kunci secara massal",
|
||||
"Failed to add peers in bulk": "Gagal untuk menambahkan peers secara massal",
|
||||
"This peer already exist": "Peer ini sudah ada",
|
||||
"This IP is not available: (.*)": "IP ini sudah tidak tersedia: $1",
|
||||
"Configuration does not exist": "Konfigurasi tidak ada",
|
||||
"Peer does not exist": "Peer tidak ada",
|
||||
"Please provide a valid configuration name": "Harap berikan nama konfigurasi yang benar",
|
||||
"Peer saved": "Peer tersimpan",
|
||||
"Allowed IPs already taken by another peer": "Allowed IPs sudah diambil oleh peer lain",
|
||||
"Endpoint Allowed IPs format is incorrect": "Bentuk Endpoint Allowed IPs tidak tepat",
|
||||
"DNS format is incorrect": "Bentuk DNS tidak tepat",
|
||||
"MTU format is not correct": "Bentuk MTU tidak tepat",
|
||||
"Persistent Keepalive format is not correct": "Bentuk Persistent Keepalive tidak tepat",
|
||||
"Private key does not match with the public key": "Kunci pribadi tidak cocok dengan kunci publik",
|
||||
"Update peer failed when updating Pre-Shared Key": "Pembaruan peer gagal saat memperbarui Kunci Pra-Berbagi",
|
||||
"Update peer failed when updating Allowed IPs": "Pembaruan peer gagal saat memperbarui Allowed IPs",
|
||||
"Update peer failed when saving the configuration": "Pembaruan peer gagal saat menyimpan konfigurasi",
|
||||
"Peer data usage reset successfully": "Penggunaan data peer berhasi di atur ulang",
|
||||
"Peer download started": "Unduh peer dimulai",
|
||||
"Please specify one or more peers": "Silakan tentukan satu atau lebih peer",
|
||||
"Share link failed to create. Reason: (.*)": "Tautan berbagi gagal dibuat. Alasan: $1",
|
||||
"Link expire date updated": "Tanggal kedaluwarsa tautan diperbarui",
|
||||
"Link expire date failed to update. Reason: (.*)": "Tanggal kedaluwarsa tautan gagal diperbarui. Alasan: $1",
|
||||
"Peer job saved": "Pekerjaan peer tersimpan",
|
||||
"Please specify job": "Silakan tentukan pekerjaan",
|
||||
"Please specify peer and configuration": "Silakan tentukan peer dan konfigurasi",
|
||||
"Peer job deleted": "Pekerjaan peer terhapus",
|
||||
"API Keys function is successfully enabled": "Fungsi Kunci API berhasil diaktifkan",
|
||||
"API Keys function is successfully disabled": "Fungsi Kunci API berhasil dimatikan",
|
||||
"API Keys function is failed to enable": "Fungsi Kunci API gagal diaktifkan",
|
||||
"API Keys function is failed to disable": "Fungsi Kunci API gagal dimatikan",
|
||||
"WGDashboard API Keys function is disabled": "Fungsi Kunci API WGDashboard dimatikan",
|
||||
"WireGuard configuration path saved": "path konfigurasi WireGuard tersimpan",
|
||||
"API Key deleted": "Kunci API terhapus",
|
||||
"API Key created": "Kunci API terbuat",
|
||||
"Sign in session ended, please sign in again": "Sesi masuk berakhir, silakan masuk kembali",
|
||||
"Please specify an IP Address (v4/v6)": "Silakan tentukan alamat IP (v4/v6)",
|
||||
"Please provide ipAddress and count": "Harap berikan Alamat IP dan count",
|
||||
"Please provide ipAddress": "Harap berikan Alamat IP",
|
||||
"Dashboard Language": "Bahasa Dasbor",
|
||||
"Dashboard language update failed": "Pembaruan bahasa dasbor gagal",
|
||||
"Peer Remote Endpoint": "Endpoint Remot Peer",
|
||||
"New Configuration": "Konfigurasi Baru",
|
||||
"Configuration Name": "Nama Konfigurasi",
|
||||
"Configuration name is invalid. Possible reasons:": "Nama konfigurasi salah. Kemungkinan alasan:",
|
||||
"Configuration name already exist\\.": "Nama konfigurasi sudah ada.",
|
||||
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Nama konfigurasi hanya bisa memiliki 15 huruf kecil/ huruf besar alfabet, angka, underscore, simbol sama dengan, simbol tambah, titik dan tanda penghubung.",
|
||||
"Invalid Port": "Port Salah",
|
||||
"Save Configuration": "Simpan Konfigurasi",
|
||||
"IP Address/CIDR is invalid": "Alamat IP/CIDR salah",
|
||||
"IP Address": "Alamat IP",
|
||||
"Enter IP Address / Hostname": "Masukkan Alamat IP / Nama Host",
|
||||
"IP Address / Hostname": "Alamat IP / Nama Host",
|
||||
"Dashboard IP Address \\& Listen Port": "Alamat IP & Mendengarkan Port Dasbor",
|
||||
"Count": "Count",
|
||||
"Geolocation": "Lokasi Geografis",
|
||||
"Is Alive": "Masih Hidup",
|
||||
"Average / Min / Max Round Trip Time": "Rata - rata / Min / Maks Round Trip Time",
|
||||
"Sent / Received / Lost Package": "Terkirim / Diterima / Paket Hilang",
|
||||
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Memulai ulang WGDashboard dibutuhkan untuk menerapkan perubahan pada Alamat IP dan Mendengarkan Port",
|
||||
"Restore Configuration": "Pulihkan Konfigurasi",
|
||||
"Step (.*)": "Step $1",
|
||||
"Select a backup you want to restore": "Pilih cadangan yang ingin dipulihkan",
|
||||
"Click to change a backup": "Klik untuk mengganti cadangan",
|
||||
"Selected Backup": "Cadangan yang dipilih",
|
||||
"You don't have any configuration to restore": "Anda tidak memiliki konfigurasi untuk dipulihkan",
|
||||
"Help": "Tolong",
|
||||
"Backup": "Cadangan",
|
||||
"([0-9].*) Backups?": "$1 Cadangan?",
|
||||
"Yes": "Ya",
|
||||
"No": "Tidak",
|
||||
"Backup not selected": "Cadangan belum dipilih",
|
||||
"Confirm \\& edit restore information": "Konfirmasi & ubah informasi pemulihan",
|
||||
"(.*) Available IP Address": "$1 Alamat IP Tersedia",
|
||||
"Database File": "File Basis Data",
|
||||
"Contain": "Memiliki",
|
||||
"Restricted Peers?": "Peers Terbatas?",
|
||||
"Restore": "Pemulihan",
|
||||
"Restoring": "Memulihkan",
|
||||
"WGDashboard Settings": "Pengaturan WGDashboard",
|
||||
"Peers Settings": "Pengaturan Peers",
|
||||
"WireGuard Configuration Settings": "Pengaturan Konfigurasi WireGuard",
|
||||
"Appearance": "Penampilan",
|
||||
"Theme": "Tema",
|
||||
"Language": "Bahasa",
|
||||
"Account Settings": "Pengaturan Akun",
|
||||
"Peer Default Settings": "Pengaturan Bawaan Peer",
|
||||
"Toggle When Start Up": "Beralih Kapan Memulai",
|
||||
"Other Settings": "Pengaturan Lainnya",
|
||||
"Select Peers": "Pilih Peers",
|
||||
"Backup & Restore": "Cadangan & Pemulihan",
|
||||
"Delete Configuration": "Hapus Konfigurasi",
|
||||
"Create Backup": "Buat Cadangan",
|
||||
"No backup yet, click the button above to create backup\\.": "Belum ada cadangan, klik tombol di atas untuk membuat cadangan.",
|
||||
"Are you sure to delete this backup\\?": "Apakah Anda yakin untuk menghaus cadangan ini?",
|
||||
"Are you sure to restore this backup?\\": "Apakah Anda yakin untuk memulihkan cadangan ini?",
|
||||
"Backup Date": "Tanggal Cadangan",
|
||||
"File": "File",
|
||||
"Are you sure to delete this configuration\\?": "Apakah Anda yakin untuk menghapus konfigurasi ini?",
|
||||
"Once you deleted this configuration\\:": "Setelah Anda menghapus konfigurasi ini:",
|
||||
"All connected peers will get disconnected": "Semua peers yang terhubung akan terputus",
|
||||
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "File Konfigurasi (.conf) dan tabel basis data yang terkait dengan konfigurasi ini akan terhapus",
|
||||
"Checking backups...": "Memeriksa cadangan...",
|
||||
"This configuration have ([0-9].*) backups": "Konfigurasi ini memiliki $1 cadangan",
|
||||
"This configuration have no backup": "Konfigurasi ini tidak memiliki cadangan",
|
||||
"If you're sure, please type in the configuration name below and click Delete": "Jika Anda yakin, silakan ketik nama konfigurasi dibawah dan klik Hapus",
|
||||
"Select All": "Pilih Semua",
|
||||
"Clear Selection": "Hapus Pilihan",
|
||||
"([0-9].*) Peers?": "$1 Peers?",
|
||||
"Download": "Unduh",
|
||||
"Downloading": "Mengunduh",
|
||||
"Download Finished": "Unduh Selesai",
|
||||
"Done": "Selesai",
|
||||
"Are you sure to delete": "Apakah Anda yakin untuk menghapus",
|
||||
"Are you sure to delete this peer\\?": "Apakah Anda yakin untuk menghapus peer ini?",
|
||||
"Configuration deleted": "Konfigurasi terhapus",
|
||||
"Configuration saved": "Konfigurasi tersimpan",
|
||||
"WGDashboard language update failed": "Pembaruan bahasa WGDashboard gagal",
|
||||
"Configuration restored": "Konfigurasi terpulihkan",
|
||||
"Allowed IP already taken by another peer": "Allowed IP telah digunakan oleh peer lain",
|
||||
"Failed to allow access of peer (.*)": "Gagal untuk mengizinkan akses ke peer $1",
|
||||
"Failed to save configuration through WireGuard": "Gagal untuk menyimpan konfigurasi melalui WireGuard",
|
||||
"Allow access successfully": "Berhasil mengizinkan akses",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) terhapus",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) berhasil terhapus. Gagal untuk menghapus $2 peer(s)",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) terbatas",
|
||||
"Display As": "Tampilkan Sebagai",
|
||||
"List": "Daftar",
|
||||
"Grid": "Kisi",
|
||||
"Protocol": "Protokol",
|
||||
"Open File": "Buka File",
|
||||
"Advanced Options": "Opsi Lanjutan",
|
||||
"Allowed IPs Validation": "Validasi Allowed IPs",
|
||||
"Update Name": "Pembaruan Nama",
|
||||
"To update this configuration's name, WGDashboard will execute the following operations:": "Untuk memperbarui konfigurasi nama berikut, WGDashboard akan mengeksekusi operasi berikut:",
|
||||
"Duplicate current configuration's database table and \\.conf file with the new name": "Duplikat konfigurasi tabel basis data saat ini dan file .conf dengan nama baru",
|
||||
"Delete current configuration's database table and \\.conf file": "Hapus konfigurasi tabel basis data saat ini dan file .conf",
|
||||
"Danger Zone": "Zona Berbahaya",
|
||||
"Configuration File": "File Konfigurasi",
|
||||
"Edit Raw Configuration File": "Edit File Konfigurasi Mentah",
|
||||
"Peer Configuration File": "File Konfigurasi Peer",
|
||||
"Share with Email": "Berbagi dengan Email",
|
||||
"Who are you sending to?": "Anda ingin kirim ke siapa?",
|
||||
"What's the subject?": "Apa subjeknya?",
|
||||
"What's the body?": "Apa isiannya?",
|
||||
"Email Account": "Akun Email",
|
||||
"Ready": "Siap",
|
||||
"Port": "Port",
|
||||
"Encryption": "Enkripsi",
|
||||
"No Encryption": "Tidak Ada Enkripsi",
|
||||
"Send From": "Kirim Dari",
|
||||
"Send Test Email": "Kirim Email Tes",
|
||||
"Email Body Template": "Template Isi Email",
|
||||
"Live Preview": "Pratinjau Langsung",
|
||||
"Include configuration file as an attachment": "Sertakan file konfigurasi sebagai lampiran",
|
||||
"Send": "Kirim",
|
||||
"Sending\\.\\.\\.": "Mengirim...",
|
||||
"Email sent successfully!": "Email berhasil terkirim!",
|
||||
"AmneziaWG Peer Setting": "Pengaturan Peer AmneziaWG",
|
||||
"System Status": "Keadaan Sistem",
|
||||
"CPU": "CPU",
|
||||
"Memory": "Memori",
|
||||
"Swap Memory": "Memori Swap",
|
||||
"Processes": "Proses",
|
||||
"CPU Usage": "Penggunaan CPU",
|
||||
"Memory Usage": "Penggunaan Memori",
|
||||
"Swap Memory Usage": "Penggunaan Memori Swap",
|
||||
"Network": "Jaringan",
|
||||
"([0-9]{1,}) Interfaces": "$1 Antarmuka",
|
||||
"Storage": "Penyimpanan",
|
||||
"([0-9]{1,}) Partitions": "$1 Partisi",
|
||||
"(.*) Used": "$1 terpakai",
|
||||
"Untitled Peer": "Peer Tanpa Judul",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) berhasil terbatas. Gagal untuk membatasi $2 peer(s)"
|
||||
}
|
@@ -1,369 +0,0 @@
|
||||
{
|
||||
"Welcome to": "Bem vindo ao",
|
||||
"Username": "Usuário",
|
||||
"Password": "Senha",
|
||||
"OTP from your authenticator": "Senha de uso único do seu autenticador",
|
||||
"Sign In": "Entrar",
|
||||
"Signing In\\.\\.\\.": "Entrando...",
|
||||
"Access Remote Server": "Acessar Servidor Remoto",
|
||||
"Server": "Servidor",
|
||||
"Click": "Clique",
|
||||
"Pinging...": "Ping em andamento...",
|
||||
"to add your server": "para adicionar seu servidor",
|
||||
"Server List": "Lista de Servidores",
|
||||
"Sorry, your username or password is incorrect.": "Desculpe, seu usuário ou senha está incorreto.",
|
||||
"Home": "Página principal",
|
||||
"Settings": "Definições",
|
||||
"Tools": "Ferramentas",
|
||||
"Sign Out": "Sair",
|
||||
"Checking for update...": "Verificando atualizações...",
|
||||
"You're on the latest version": "Você está na versão mais recente",
|
||||
"WireGuard Configurations": "Cofigurações do 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.": "Você ainda não tem nenhuma configuração do WireGuard. Verifique a pasta de configurações ou altere-a nas Definições. Por padrão, a pasta é /etc/wireguard.",
|
||||
"Configuration": "Configuração",
|
||||
"Configurations": "Configurações",
|
||||
"Peers Default Settings": "Definições Padrão dos Peers",
|
||||
"Dashboard Theme": "Tema do Painel",
|
||||
"Light": "Claro",
|
||||
"Dark": "Escuro",
|
||||
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Estes itens serão alterados globalmente, e serão aplicados a todos os QR codes e arquivos de configuração dos peers.",
|
||||
"WireGuard Configurations Settings": "Definições de Configurações do WireGuard",
|
||||
"Configurations Directory": "Diretório de Configurações",
|
||||
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Certifique-se de remover / no final do caminho. Exemplo: /etc/wireguard",
|
||||
"WGDashboard Account Settings": "Definições da Conta do WGDashboard",
|
||||
"Current Password": "Senha Atual",
|
||||
"New Password": "Nova Senha",
|
||||
"Repeat New Password": "Repetir Nova Senha",
|
||||
"Update Password": "Atualizar Senha",
|
||||
"Multi-Factor Authentication \\(MFA\\)": "Autenticação em duas etapas (MFA)",
|
||||
"Reset": "Redefinir",
|
||||
"Setup": "Definir",
|
||||
"API Keys": "Chaves de API",
|
||||
"API Key": "Chave de API",
|
||||
"Key": "Chave",
|
||||
"Enabled": "Habilitado",
|
||||
"Disabled": "Desabilitado",
|
||||
"No WGDashboard API Key": "Nenhuma Chave de API do WGDashboard",
|
||||
"Expire At": "Expira Em",
|
||||
"Are you sure to delete this API key\\?": "Tem certeza que deseja remover esta chave de API?",
|
||||
"Create API Key": "Criar Chave de API",
|
||||
"When should this API Key expire\\?": "Quando esta Chave de API deve expirar?",
|
||||
"Never Expire": "Nunca Expira",
|
||||
"Don't think that's a good idea": "Não acho que seja uma boa ideia",
|
||||
"Creating\\.\\.\\.": "Criando...",
|
||||
"Create": "Criar",
|
||||
"Status": "Status",
|
||||
"On": "Ligado",
|
||||
"Off": "Desligado",
|
||||
"Turning On\\.\\.\\.": "Ligando...",
|
||||
"Turning Off\\.\\.\\.": "Desligando...",
|
||||
"Address": "Endereço",
|
||||
"Listen Port": "Porta",
|
||||
"Table": "Tabela",
|
||||
"Public Key": "Chave Pública",
|
||||
"Connected Peers": "Peers Conectados",
|
||||
"Total Usage": "Uso Total",
|
||||
"Total Received": "Total Recebido",
|
||||
"Total Sent": "Total Enviado",
|
||||
"Peers Data Usage": "Uso de Dados dos Peers",
|
||||
"Real Time Received Data Usage": "Uso de Dados Recebidos em Tempo Real",
|
||||
"Real Time Sent Data Usage": "Uso de Dados Enviados em Tempo Real",
|
||||
"Peer": "Peer",
|
||||
"Peers": "Peers",
|
||||
"Peer Settings": "Definições do Peer",
|
||||
"Download All": "Baixar Todos",
|
||||
"Search": "Buscar",
|
||||
"Search Peers\\.\\.\\.": "Buscando em Peers...",
|
||||
"Display": "Mostrar",
|
||||
"Sort By": "Ordenar Por",
|
||||
"Refresh Interval": "Intervalo de Atualização",
|
||||
"Name": "Nome",
|
||||
"Allowed IPs": "IPs Permitidos",
|
||||
"Restricted": "Restrito",
|
||||
"(.*) Seconds": "$1 Segundos",
|
||||
"(.*) Minutes": "$1 Minutos",
|
||||
"Configuration Settings": "Definição de Configuração",
|
||||
"Peer Jobs": "Jobs do Peer",
|
||||
"Active Jobs": "Jobs Ativos",
|
||||
"All Active Jobs": "Todos os Jobs Ativos",
|
||||
"Logs": "Logs",
|
||||
"Private Key": "Chave Privada",
|
||||
"\\(Required for QR Code and Download\\)": "(Obrigatório para QR Code e Download)",
|
||||
"\\(Required\\)": "(Obrigatório)",
|
||||
"Endpoint Allowed IPs": "Endeços IP Permitidos do Endpoint",
|
||||
"DNS": "DNS",
|
||||
"Optional Settings": "Definições Opcionais",
|
||||
"Pre-Shared Key": "Chave Pré-Compartilhada",
|
||||
"MTU": "MTU",
|
||||
"Persistent Keepalive": "Keepalive Persistente",
|
||||
"Reset Data Usage": "Redefinir Uso de Dados",
|
||||
"Total": "Total",
|
||||
"Sent": "Enviado",
|
||||
"Received": "Recebido",
|
||||
"Revert": "Reverter",
|
||||
"Save Peer": "Salvar Peer",
|
||||
"QR Code": "QR Code",
|
||||
"Schedule Jobs": "Agendar Jobs",
|
||||
"Job": "Job",
|
||||
"Job ID": "ID do Job",
|
||||
"Unsaved Job": "Job não salvo",
|
||||
"This peer does not have any job yet\\.": "Este peer ainda não tem nenhum job.",
|
||||
"if": "se",
|
||||
"is": "é",
|
||||
"then": "então",
|
||||
"larger than": "maior que",
|
||||
"Date": "Data",
|
||||
"Restrict Peer": "Peer Restrito",
|
||||
"Delete Peer": "Remover Peer",
|
||||
"Edit": "Editar",
|
||||
"Delete": "Remover",
|
||||
"Deleting...": "Removendo...",
|
||||
"Cancel": "Cancelar",
|
||||
"Save": "Salvar",
|
||||
"No active job at the moment\\.": "Nenhum job ativo no momento.",
|
||||
"Jobs Logs": "Logs de Jobs",
|
||||
"Updated at": "Atualizado em",
|
||||
"Refresh": "Atualizar",
|
||||
"Filter": "Filtrar",
|
||||
"Success": "Sucesso",
|
||||
"Failed": "Falhou",
|
||||
"Log ID": "ID do Log",
|
||||
"Message": "Mensagem",
|
||||
"Share Peer": "Compartilhar Peer",
|
||||
"Currently the peer is not sharing": "No momento o peer não está compartilhando",
|
||||
"Sharing\\.\\.\\.": "Compartilhando...",
|
||||
"Start Sharing": "Iniciar Compartilhamento",
|
||||
"Stop Sharing\\.\\.\\.": "Parar Compartilhamento...",
|
||||
"Stop Sharing": "Parar Compartilhamento",
|
||||
"Access Restricted": "Acesso Restrito",
|
||||
"Restrict Access": "Restringir Acesso",
|
||||
"Restricting\\.\\.\\.": "Restringindo...",
|
||||
"Allow Access": "Permitir Acesso",
|
||||
"Allowing Access\\.\\.\\.": "Permitindo Acesso...",
|
||||
"Download \\& QR Code is not available due to no private key set for this peer": "Download & QR Code não estão disponíveis devido à ausência de chave privada definida para este peer",
|
||||
"Add Peers": "Adicionar Peers",
|
||||
"Bulk Add": "Adicionar Vários",
|
||||
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Ao gerar vários Peers, o nome de cada peer será gerado automaticamente, e o IP será atribuído ao próximo IP disponível.",
|
||||
"How many peers you want to add\\?": "Quantos peers você quer adicionar?",
|
||||
"You can add up to (.*) peers": "Você pode adicionar até $1 peers",
|
||||
"Use your own Private and Public Key": "Use sua própria Chave Privada e Pública",
|
||||
"Enter IP Address/CIDR": "Digite Endereço IP/CIDR",
|
||||
"IP Address/CIDR": "Endereço IP/CIDR",
|
||||
"or": "ou",
|
||||
"Pick Available IP": "Selecione um IP Disponível",
|
||||
"No available IP containing": "Nenhum IP disponível contendo",
|
||||
"Add": "Adicionar",
|
||||
"Adding\\.\\.\\.": "Adcionando...",
|
||||
"Failed to check available update": "Erro ao verificar atualização disponível",
|
||||
"Nice to meet you!": "Bom te conhecer!",
|
||||
"Please fill in the following fields to finish setup": "Preencha os seguintes campos para finalizar a configuração",
|
||||
"Create an account": "Crie uma conta",
|
||||
"Enter an username you like": "Digite um nome de usuário",
|
||||
"Enter a password": "Digite uma senha",
|
||||
"\\(At least 8 characters and make sure is strong enough!\\)": "(Pelo menos 8 caracteres e certifique-se de que seja forte o suficiente!)",
|
||||
"Confirm password": "Confirme a senha",
|
||||
"Next": "Próximo",
|
||||
"Saving\\.\\.\\.": "Salvando...",
|
||||
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Escaneie o seguinte QR Code para gerar um código de uso único com um autenticador de sua escolha",
|
||||
"Or you can click the link below:": "Ou clique no link abaixo:",
|
||||
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Digite o código de uso único gerado pelo seu autenticador para verificar",
|
||||
"TOTP verified!": "Código de uso único verificado!",
|
||||
"I don't need MFA": "Não preciso de autenticação em duas etapas (MFA)",
|
||||
"Complete": "Completar",
|
||||
"(v[0-9.]{1,}) is now available for update!": "$1 está disponível para atualização!",
|
||||
"Current Version:": "Versão Atual:",
|
||||
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Ops... Este link é inválido ou expirou.",
|
||||
"Scan QR Code with the WireGuard App to add peer": "Escaneie o QR Code com o App WireGuard para adicionar o peer",
|
||||
"or click the button below to download the ": "ou clique no botão abaixo para baixar o ",
|
||||
" file": " arquivo",
|
||||
"FROM ": "DE ",
|
||||
"(.*) is on": "$1 está ligado",
|
||||
"(.*) is off": "$1 está desligado",
|
||||
"Allowed IPs is invalid": "IPs Permitidos inválido",
|
||||
"Peer created successfully": "Peer criado com sucesso",
|
||||
"Please fill in all required box": "Preencha todas as caixas obrigatórias",
|
||||
"Please specify amount of peers you want to add": "Especifique a quantidade de peers que você deseja adicionar",
|
||||
"No more available IP can assign": "Não há mais IPs disponíveis para atribuir",
|
||||
"The maximum number of peers can add is (.*)": "O número máximo de peers que podem ser adicionados é $1",
|
||||
"Generating key pairs by bulk failed": "Gerar vários pares de chaves falhou",
|
||||
"Failed to add peers in bulk": "Erro ao adicionar múltiplos peers",
|
||||
"This peer already exist": "Este peer já existe",
|
||||
"This IP is not available: (.*)": "Este IP não está disponível: $1",
|
||||
"Configuration does not exist": "Configuração não existe",
|
||||
"Peer does not exist": "Peer não existe",
|
||||
"Please provide a valid configuration name": "Informe um nome de configuração válido",
|
||||
"Peer saved": "Peer salvo",
|
||||
"Allowed IPs already taken by another peer": "IPs Permitidos já estão sendo usados por outro peer",
|
||||
"Endpoint Allowed IPs format is incorrect": "Formato dos IPs Permitidos do Endpoint está incorreta",
|
||||
"DNS format is incorrect": "Formato do DNS está incorreto",
|
||||
"MTU format is not correct": "Formato do MTU está incorreto",
|
||||
"Persistent Keepalive format is not correct": "Formato do Keepalive Persistente está incorreto",
|
||||
"Private key does not match with the public key": "Chave privada não corresponde com a chave pública",
|
||||
"Update peer failed when updating Pre-Shared Key": "Atualização do peer falhou ao atualizar a Chave Pré-Compartilhada",
|
||||
"Update peer failed when updating Allowed IPs": "Atualização do peer falhou ao atualizar os IPs Permitidos",
|
||||
"Update peer failed when saving the configuration": "Atualização do peer falhou ao salvar a configuração",
|
||||
"Peer data usage reset successfully": "Uso de dados do peer redefinido com sucesso",
|
||||
"Peer download started": "Download do peer iniciado",
|
||||
"Please specify one or more peers": "Especifique um ou mais peers",
|
||||
"Share link failed to create. Reason: (.*)": "Erro ao criar link de compartilhamento. Motivo: $1",
|
||||
"Link expire date updated": "Data de expiração do link atualizada",
|
||||
"Link expire date failed to update. Reason: (.*)": "Erro ao atualizar a data de expiração do link. Motivo: $1",
|
||||
"Peer job saved": "Job do peer salvo",
|
||||
"Please specify job": "Especifique o job",
|
||||
"Please specify peer and configuration": "Especifique o peer e a configuração",
|
||||
"Peer job deleted": "Job do peer removido",
|
||||
"API Keys function is successfully enabled": "Recurso de Chaves API está habilitado",
|
||||
"API Keys function is successfully disabled": "Recurso de Chaves API está desabilitado",
|
||||
"API Keys function is failed to enable": "Falha ao habilitar recurso de Chaves API",
|
||||
"API Keys function is failed to disable": "Falha ao desabilitar recurso de Chaves API",
|
||||
"WGDashboard API Keys function is disabled": "Recurso de Chaves de API do WGDashboard está desabilitada",
|
||||
"WireGuard configuration path saved": "Caminho do arquivo de configuração WireGuard salvo",
|
||||
"API Key deleted": "Chave de API removida",
|
||||
"API Key created": "Chave de API criada",
|
||||
"Sign in session ended, please sign in again": "Sessão encerrada. Por favor, entre novamente",
|
||||
"Please specify an IP Address (v4/v6)": "Especifique um endereço IP (v4/v6)",
|
||||
"Please provide ipAddress and count": "Especifique endereço IP e quantidade",
|
||||
"Please provide ipAddress": "Especifique endereço IP",
|
||||
"Dashboard Language": "Idioma do Painel",
|
||||
"Dashboard language update failed": "Atualização do idioma do painel falhou",
|
||||
"Peer Remote Endpoint": "Endpoint Remoto do Peer",
|
||||
"New Configuration": "Nova Configuração",
|
||||
"Configuration Name": "Nome de Configuração",
|
||||
"Configuration name is invalid. Possible reasons:": "Nome de configuração é inválido. Possíveis razões:",
|
||||
"Configuration name already exist\\.": "Nome de configuração já existe\\.",
|
||||
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Nome de configuração pode conter apenas 15 caracteres alfanuméricos, sublinhado, igual, mais, ponto e hífen.",
|
||||
"Invalid Port": "Porta Inválida",
|
||||
"Save Configuration": "Salvar Configuração",
|
||||
"IP Address/CIDR is invalid": "Endereço IP/CIDR inválido",
|
||||
"IP Address": "Endereço IP",
|
||||
"Enter IP Address / Hostname": "Digite Endereço IP / Nome do Host",
|
||||
"IP Address / Hostname": "Endereço IP / Nome do Host",
|
||||
"Dashboard IP Address \\& Listen Port": "Endereço IP do Painel e Porta",
|
||||
"Count": "Quantidade",
|
||||
"Hop": "Salto",
|
||||
"Average RTT \\(ms\\)": "RTT médio (ms)",
|
||||
"Min RTT \\(ms\\)": "RTT mínimo (ms)",
|
||||
"Max RTT \\(ms\\)": "RTT máximo (ms)",
|
||||
"Geolocation": "Geolocalização",
|
||||
"Is Alive": "Está Ativo",
|
||||
"Average / Min / Max Round Trip Time": "Média / Mínimo / Máximo do Tempo de Ida e Volta (Round Trip)",
|
||||
"Sent / Received / Lost Package": "Enviado / Recebido / Pacotes Perdidos",
|
||||
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "É necessário reiniciar o WGDashboard para aplicar as mudanças de Endereço IP e Porta",
|
||||
"Restore Configuration": "Restaurar Configuração",
|
||||
"Step (.*)": "Passo (.*)",
|
||||
"Select a backup you want to restore": "Selecione o backup que deseja restaurar",
|
||||
"Click to change a backup": "Clique para alterar um backup",
|
||||
"Selected Backup": "Backup Selecionado",
|
||||
"You don't have any configuration to restore": "Você não tem configurações para restaurar",
|
||||
"Help": "Ajuda",
|
||||
"You can visit our: ": "Você pode visitar nosso: ",
|
||||
"Official Documentation": "Documentação Oficial",
|
||||
"Discord Server": "Servidor do Discord",
|
||||
"Backup": "Backup",
|
||||
"([0-9].*) Backups?": "([0-9].*) Backups?",
|
||||
"Yes": "Sim",
|
||||
"No": "Não",
|
||||
"Backup not selected": "Backup não selecionado",
|
||||
"Confirm \\& edit restore information": "Confirmar \\& editar informações de restauração",
|
||||
"(.*) Available IP Address": "$1 endereço IP disponível",
|
||||
"Database File": "Arquivo de Banco de Dados",
|
||||
"Contain": "Contém",
|
||||
"Restricted Peers?": "Peers Restritos?",
|
||||
"Restore": "Restaurar",
|
||||
"Restoring": "Restaurando",
|
||||
"WGDashboard Settings": "Configurações do WGDashboard",
|
||||
"Peers Settings": "Configurações dos Peers",
|
||||
"WireGuard Configuration Settings": "Definições de Configuração WireGuard",
|
||||
"Appearance": "Aparência",
|
||||
"Theme": "Tema",
|
||||
"Language": "Idioma",
|
||||
"Account Settings": "Definições de Conta",
|
||||
"Peer Default Settings": "Definições Padrão do Peer",
|
||||
"Toggle When Start Up": "Ativar Quanto Iniciar",
|
||||
"Other Settings": "Outras Definições",
|
||||
"Select Peers": "Selecione Peers",
|
||||
"Backup & Restore": "Backup e Restauração",
|
||||
"Delete Configuration": "Remover Configuração",
|
||||
"Create Backup": "Criar Backup",
|
||||
"No backup yet, click the button above to create backup\\.": "Nenhum backup, clique no botão acima para criar um backup.",
|
||||
"Are you sure to delete this backup\\?": "Tem certeza de que deseja remover este backup?",
|
||||
"Are you sure to restore this backup\\?": "Tem certeza de que deseja restaurar este backup?",
|
||||
"Backup Date": "Data do Backup",
|
||||
"File": "Arquivo",
|
||||
"Are you sure to delete this configuration\\?": "Tem certeza de que deseja remover esta configuração?",
|
||||
"Once you deleted this configuration\\:": "Uma vez que remover esta configuração:",
|
||||
"All connected peers will get disconnected": "Todos peers conectados serão desconectados",
|
||||
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Ambos tabela do banco de dados e arquivo de configuração (.conf) desta configuração serão removidos",
|
||||
"Checking backups...": "Verificando backups...",
|
||||
"This configuration have ([0-9].*) backups": "Esta configuração tem $1 backups",
|
||||
"This configuration have no backup": "Esta configuração não tem backups",
|
||||
"If you're sure, please type in the configuration name below and click Delete": "Se você tem certeza, confirme o nome da configuração abaixo e clique em Remover",
|
||||
"Select All": "Selecionar Todos",
|
||||
"Clear Selection": "Limpar Seleção",
|
||||
"([0-9].*) Peers?": "$1 Peers?",
|
||||
"Download": "Baixar",
|
||||
"Downloading": "Baixando",
|
||||
"Download Finished": "Download Concluído",
|
||||
"Done": "Pronto",
|
||||
"Are you sure to delete": "Tem certeza de que deseja remover",
|
||||
"Are you sure to delete this peer\\?": "Tem certeza de que deseja remover este peer?",
|
||||
"Configuration deleted": "Configuração removida",
|
||||
"Configuration saved": "Configuração salva",
|
||||
"WGDashboard language update failed": "Falha ao atualizar idioma do WGDashboard",
|
||||
"Configuration restored": "Configuração restaurada",
|
||||
"Allowed IP already taken by another peer": "Endereço IP já está em uso por outro peer",
|
||||
"Failed to allow access of peer (.*)": "Falha ao permitir acesso ao peer $1",
|
||||
"Failed to save configuration through WireGuard": "Falha ao salvar configuração pelo WGDashboard",
|
||||
"Allow access successfully": "Acesso permitido com sucesso",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) removido(s)",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) removido(s) com sucesso. Falha ao remover $2 peer(s)",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s)",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s) com sucesso. Falha ao restringir $2 peer(s)",
|
||||
"Display As": "Mostrar Como",
|
||||
"List": "Lista",
|
||||
"Grid": "Grid",
|
||||
"Protocol": "Protocolo",
|
||||
"Open File": "Abrir Arquivo",
|
||||
"Advanced Options": "Opções Avançadas",
|
||||
"Allowed IPs Validation": "Validação de IPs Permitidos",
|
||||
"Update Name": "Atualizar Nome",
|
||||
"To update this configuration's name, WGDashboard will execute the following operations:": "Para atualizar este nome de configuração, o WGDashboard vaoi executar as seguintes operações:",
|
||||
"Duplicate current configuration's database table and \\.conf file with the new name": "Duplicar tabela do banco de dados e arquivo .conf da configuração atual com novo nome",
|
||||
"Delete current configuration's database table and \\.conf file": "Remover tabela do banco de dados e arquivo .conf da configuração atual",
|
||||
"Danger Zone": "Zona de Perigo",
|
||||
"Configuration File": "Arquivo de Configuração",
|
||||
"Edit Raw Configuration File": "Editar Conteúdo do Arquivo de Configuração",
|
||||
"Peer Configuration File": "Arquivo de Configuração do Peer",
|
||||
"Share with Email": "Compartilhar com Email",
|
||||
"Email Account": "Conta de Email",
|
||||
"Ready": "Pronto",
|
||||
"Port": "Porta",
|
||||
"Encryption": "Criptografia",
|
||||
"No Encryption": "Sem Criptografia",
|
||||
"Send From": "Enviar de",
|
||||
"Send Test Email": "Enviar Email de Teste",
|
||||
"Email Body Template": "Modelo de Corpo de Email",
|
||||
"Live Preview": "Prévia ao vivo",
|
||||
"Include configuration file as an attachment": "Incluir arquivo de configuração como anexo",
|
||||
"Send": "Enviar",
|
||||
"Sending\\.\\.\\.": "Enviando...",
|
||||
"Email sent successfully!": "Email enviado com sucesso!",
|
||||
"AmneziaWG Peer Setting": "Definições de Peer do AmneziaWG",
|
||||
"System Status": "Status do Sistema",
|
||||
"CPU": "CPU",
|
||||
"Memory": "Memória",
|
||||
"Swap Memory": "Memória Swap",
|
||||
"Processes": "Processos",
|
||||
"CPU Usage": "Uso de CPU",
|
||||
"Memory Usage": "Uso de Memória",
|
||||
"Swap Memory Usage": "Uso de Memória Swap",
|
||||
"Network": "Rede",
|
||||
"([0-9]{1,}) Interfaces": "$1 Interfaces",
|
||||
"Storage": "Armazenamento",
|
||||
"([0-9]{1,}) Partitions": "$1 Repartições",
|
||||
"(.*) Used": "$1 Usado",
|
||||
"Untitled Peer": "Peer Sem Nome",
|
||||
"Who are you sending to\\?": "Para quem você está enviando?",
|
||||
"What\\'s the subject\\?": "Qual o título?",
|
||||
"What\\'s the body\\?": "Qual a mensagem?"
|
||||
}
|
@@ -1,62 +0,0 @@
|
||||
import json
|
||||
active_languages = json.loads(open("active_languages.json", "r").read())
|
||||
language_template = json.loads(open("language_template.json", "r").read())
|
||||
|
||||
if __name__ == "__main__":
|
||||
welcome = "WGDashboard Locale File Verification [by @donaldzou]"
|
||||
print("="*(len(welcome) + 4))
|
||||
print(f"| {welcome} |")
|
||||
print("="*(len(welcome) + 4))
|
||||
print()
|
||||
print("Active Languages\n")
|
||||
status = False
|
||||
|
||||
for language in active_languages:
|
||||
print(f"{language['lang_name']} | {language['lang_id']}")
|
||||
|
||||
lang_ids = list(map(lambda x: x['lang_id'], active_languages))
|
||||
print()
|
||||
|
||||
lang_id = ""
|
||||
|
||||
while not status:
|
||||
lang_id = input("Please enter the language ID to verify: ")
|
||||
if lang_id not in lang_ids:
|
||||
print(f'{lang_id} is not a valid language ID')
|
||||
elif lang_id == 'en':
|
||||
print(f'{lang_id} is not a editable language')
|
||||
else:
|
||||
status = True
|
||||
|
||||
|
||||
with open(f"{lang_id}.json", "r") as f:
|
||||
lang_file = json.load(f)
|
||||
|
||||
# Identify missing and deprecated translations
|
||||
missing_translation = [
|
||||
key for key in language_template
|
||||
if key not in lang_file or not lang_file[key].strip()
|
||||
]
|
||||
|
||||
deprecated_translation = [
|
||||
key for key in lang_file
|
||||
if key not in language_template
|
||||
]
|
||||
|
||||
with open(f"{lang_id}.json", "w") as f:
|
||||
new_lang_file = dict(lang_file)
|
||||
for key in missing_translation:
|
||||
new_lang_file[key] = ""
|
||||
|
||||
for key in deprecated_translation:
|
||||
new_lang_file.pop(key)
|
||||
|
||||
f.write(json.dumps(new_lang_file, ensure_ascii=False, indent='\t'))
|
||||
|
||||
|
||||
print()
|
||||
# Print missing translations
|
||||
print(f"\t[Missing Translations] {len(missing_translation)} translation{'s' if len(missing_translation) > 1 else ''}")
|
||||
# Print deprecated translations
|
||||
print(f"\t[Deprecated Translations] {len(deprecated_translation)} translation{'s' if len(deprecated_translation) > 1 else ''}")
|
||||
print(f"\t[Note] All missing translations are added into {lang_id}.json, all deprecated translations are removed from {lang_id}.json")
|
@@ -1,312 +1,369 @@
|
||||
{
|
||||
"Welcome to": "Bienvenido",
|
||||
"Username": "Usuario",
|
||||
"Password": "Contraseña",
|
||||
"OTP from your authenticator": "OTP de tu autentificador",
|
||||
"Sign In": "Iniciar sesión",
|
||||
"Signing In\\.\\.\\.": "Iniciando sesión...",
|
||||
"Access Remote Server": "Acceder a servidor remoto",
|
||||
"Server": "Servidor",
|
||||
"Click": "Click",
|
||||
"Pinging...": "Ping...",
|
||||
"to add your server": "para agregar tu servidor",
|
||||
"Server List": "Lista de Servidores",
|
||||
"Sorry, your username or password is incorrect.": "Lo siento, tu usuario o contraseña no son correctos.",
|
||||
"Home": "Home",
|
||||
"Settings": "Ajustes",
|
||||
"Tools": "Herramientas",
|
||||
"Sign Out": "Salir",
|
||||
"Checking for update...": "Buscando actualizaciones...",
|
||||
"You're on the latest version": "Estás utilizando la última versión",
|
||||
"WireGuard Configurations": "Configuraciones de 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.": "Todavía no tienes configuraciones de WireGuard. Por favor, comprueba la carpeta de configuraciones o cámbiala en Ajustes. Por defecto, la carpeta es /etc/wireguard.",
|
||||
"Configuration": "Configuración",
|
||||
"Configurations": "Configuraciones",
|
||||
"Peers Default Settings": "Ajustes por defecto de Peers",
|
||||
"Dashboard Theme": "Tema del dashboard",
|
||||
"Light": "Claro",
|
||||
"Dark": "Oscuro",
|
||||
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Esto se va a cambiar de forma global, y se aplicará a todos los QRs y archivos de configuración de todos los Peers.",
|
||||
"WireGuard Configurations Settings": "Ajustes de Configuración de Wireguard",
|
||||
"Configurations Directory": "Carpeta de configuraciones",
|
||||
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Recuerda eliminar '/' al final de tu directorio. Por ejemplo, '/etc/wireguard'",
|
||||
"WGDashboard Account Settings": "Ajustes de la cuenta de WGDashboard",
|
||||
"Current Password": "Contraseña actual",
|
||||
"New Password": "Nueva contraseña",
|
||||
"Repeat New Password": "Repite la nueva contraseña",
|
||||
"Update Password": "Actualizar contraseña",
|
||||
"Multi-Factor Authentication \\(MFA\\)": "Autentificación de doble factor (MFA)",
|
||||
"Reset": "Reset",
|
||||
"Setup": "Setup",
|
||||
"API Keys": "Clave API",
|
||||
"API Key": "Clave API",
|
||||
"Key": "Clave",
|
||||
"Enabled": "Habilitado",
|
||||
"Disabled": "Deshabilitado",
|
||||
"No WGDashboard API Key": "Ninguna clave API WGDashboard",
|
||||
"Expire At": "Expira en",
|
||||
"Are you sure to delete this API key\\?": "¿Estás seguro de eliminar esta clave API?",
|
||||
"Create API Key": "Crear una nueva clave API",
|
||||
"When should this API Key expire\\?": "¿Cuándo debería expirar esta clave API?",
|
||||
"Never Expire": "Nunca expira",
|
||||
"Don't think that's a good idea": "No creo que esta sea una buena idea",
|
||||
"Creating\\.\\.\\.": "Creando...",
|
||||
"Create": "Crear",
|
||||
"Status": "Estado",
|
||||
"On": "Activo",
|
||||
"Off": "Inactivo",
|
||||
"Turning On\\.\\.\\.": "Activando...",
|
||||
"Turning Off\\.\\.\\.": "Desactivando...",
|
||||
"Address": "Dirección",
|
||||
"Listen Port": "Puerto de escucha",
|
||||
"Public Key": "Clave pública",
|
||||
"Connected Peers": "Peer conectado",
|
||||
"Total Usage": "Uso Total",
|
||||
"Total Received": "Total Recibido",
|
||||
"Total Sent": "Total Enviado",
|
||||
"Peers Data Usage": "Uso de datos de Peers",
|
||||
"Real Time Received Data Usage": "Datos recibidos en tiempo real",
|
||||
"Real Time Sent Data Usage": "Datos enviados en tiempo real",
|
||||
"Peer": "Peer",
|
||||
"Peers": "Peers",
|
||||
"Peer Settings": "Ajustes de Peers",
|
||||
"Download All": "Descargar todo",
|
||||
"Search Peers\\.\\.\\.": "Buscar Peers...",
|
||||
"Display": "Mostrar",
|
||||
"Sort By": "Ordenar por",
|
||||
"Refresh Interval": "Intervalo de refresco",
|
||||
"Name": "Nombre",
|
||||
"Allowed IPs": "IPs permitidas",
|
||||
"Restricted": "Restringido",
|
||||
"(.*) Seconds": "$1 Segundos/i",
|
||||
" file": " archivo",
|
||||
"(.*) Available IP Address": "$1 Dirección IP disponible",
|
||||
"(.*) Minutes": "$1 Minutos/i",
|
||||
"Configuration Settings": "Configuración",
|
||||
"Peer Jobs": "Jobs del Peer",
|
||||
"Active Jobs": "Jobs Activos",
|
||||
"All Active Jobs": "Todos los Jobs Activos",
|
||||
"Logs": "Logs",
|
||||
"Private Key": "Clave privada",
|
||||
"\\(Required for QR Code and Download\\)": "(Requerido para el código QR y Descarga)",
|
||||
"\\(Required\\)": "(Requerido)",
|
||||
"Endpoint Allowed IPs": "Direcciones IP del endpoint permitidas",
|
||||
"DNS": "DNS",
|
||||
"Optional Settings": "Ajustes opcionales",
|
||||
"Pre-Shared Key": "Clave pre-compartida",
|
||||
"MTU": "MTU",
|
||||
"Persistent Keepalive": "Keepalive persistente",
|
||||
"Reset Data Usage": "Resetear los datos de uso",
|
||||
"Total": "Total",
|
||||
"Sent": "Enviado",
|
||||
"Received": "Recibido",
|
||||
"Revert": "Revertir",
|
||||
"Save Peer": "Guardar el Peer",
|
||||
"QR Code": "Código QR",
|
||||
"Schedule Jobs": "Planificar Job",
|
||||
"Job": "Job",
|
||||
"Job ID": "ID del Job",
|
||||
"Unsaved Job": "Job sin guardar",
|
||||
"This peer does not have any job yet\\.": "Este Peer no tiene jobs todavía.",
|
||||
"if": "si",
|
||||
"is": "es",
|
||||
"then": "entonces",
|
||||
"larger than": "mayor que",
|
||||
"Date": "Fecha",
|
||||
"Restrict Peer": "Limitar el Peer",
|
||||
"Delete Peer": "Eliminar el Peer",
|
||||
"Edit": "Modificar",
|
||||
"Delete": "Eliminar",
|
||||
"Deleting...": "Eliminando...",
|
||||
"Cancel": "Cancelar",
|
||||
"Save": "Guardar",
|
||||
"No active job at the moment\\.": "No hay jobs activos en este momento.",
|
||||
"Jobs Logs": "Logs del Job",
|
||||
"Updated at": "Actualizado el",
|
||||
"Refresh": "Refrescar",
|
||||
"Filter": "Filtrar",
|
||||
"Success": "Éxito",
|
||||
"Failed": "Fallido",
|
||||
"Log ID": "ID del log",
|
||||
"Message": "Mensaje",
|
||||
"Share Peer": "Compartir Peer",
|
||||
"Currently the peer is not sharing": "Actualmente el Peer no está compartiendo",
|
||||
"Sharing\\.\\.\\.": "Compartiendo...",
|
||||
"Start Sharing": "Empezar intercambio",
|
||||
"Stop Sharing\\.\\.\\.": "Interrumpir intercambio...",
|
||||
"Stop Sharing": "Interrumpir intercambio",
|
||||
"(.*) Seconds": "$1 Segundos/i",
|
||||
"(.*) Used": "",
|
||||
"(.*) is off": "$1 está desactivado",
|
||||
"(.*) is on": "$1 está activo",
|
||||
"([0-9].*) Backups?": "$1 Backups?",
|
||||
"([0-9].*) Peers?": "¿$1 Peers?",
|
||||
"([0-9]{1,}) Interfaces": "",
|
||||
"([0-9]{1,}) Partitions": "",
|
||||
"(v[0-9.]{1,}) is now available for update!": "$1 está disponible para actualizar!",
|
||||
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Por favor escanea el siguiente código QR para generar un código TOTP con el autentificador que prefieras",
|
||||
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Inserta el código TOTP generado por tu autentificador para verificar",
|
||||
"API Key": "Clave API",
|
||||
"API Key created": "Clave API creada",
|
||||
"API Key deleted": "Clave API eliminada",
|
||||
"API Keys": "Clave API",
|
||||
"API Keys function is failed to disable": "La funcionalidad de clave API no se ha habilitado",
|
||||
"API Keys function is failed to enable": "La funcionalidad de clave API no se ha habilitado",
|
||||
"API Keys function is successfully disabled": "La funcionalidad de clave API se ha deshabilitado con éxito",
|
||||
"API Keys function is successfully enabled": "La funcionalidad de clave API se ha habilitado con éxito",
|
||||
"Access Remote Server": "Acceder a servidor remoto",
|
||||
"Access Restricted": "Accesso Restringido",
|
||||
"Restrict Access": "Restringir Acceso",
|
||||
"Restricting\\.\\.\\.": "Restringiendo...",
|
||||
"Allow Access": "Habilitar Acceso",
|
||||
"Allowing Access\\.\\.\\.": "Habilitando el acceso...",
|
||||
"Download \\& QR Code is not available due to no private key set for this peer": "La descarga y el código QR no están disponibles porque no se ha configurado una clave privada para este peer",
|
||||
"Account Settings": "Ajustes de la cuenta",
|
||||
"Active Jobs": "Jobs Activos",
|
||||
"Add": "añadir",
|
||||
"Add Peers": "Agregar un Peer",
|
||||
"Adding\\.\\.\\.": "Añadiendo...",
|
||||
"Address": "Dirección",
|
||||
"Advanced Options": "",
|
||||
"All Active Jobs": "Todos los Jobs Activos",
|
||||
"All connected peers will get disconnected": "Todos los peers conectados se desconectarán",
|
||||
"Allow Access": "Habilitar Acceso",
|
||||
"Allow access successfully": "Acceso permitido con éxito",
|
||||
"Allowed IP already taken by another peer": "IP Permitida ya ha sido seleccionada por otro peer",
|
||||
"Allowed IPs": "IPs permitidas",
|
||||
"Allowed IPs Validation": "",
|
||||
"Allowed IPs already taken by another peer": "IPs disponibles ya han sido seleccionadas por otro peer",
|
||||
"Allowed IPs is invalid": "Las IPs Permitidas son inválidas",
|
||||
"Allowing Access\\.\\.\\.": "Habilitando el acceso...",
|
||||
"AmneziaWG Peer Setting": "",
|
||||
"Appearance": "apariencia",
|
||||
"Are you sure to delete": "¿Estás seguro de eliminar?",
|
||||
"Are you sure to delete this API key\\?": "¿Estás seguro de eliminar esta clave API?",
|
||||
"Are you sure to delete this backup\\?": "¿Estás seguro de que quieres borrar este backup?",
|
||||
"Are you sure to delete this configuration\\?": "¿Estás seguro de eliminar esta configuración?",
|
||||
"Are you sure to delete this peer\\?": "¿Estás seguro de eliminar este peer?",
|
||||
"Are you sure to restore this backup\\?": "",
|
||||
"Average / Min / Max Round Trip Time": "Media / Min / Max Redondeo Viaje Tiempo",
|
||||
"Average RTT \\(ms\\)": "",
|
||||
"Backup": "Backup",
|
||||
"Backup & Restore": "Backups y Restaurar",
|
||||
"Backup Date": "Fecha del backup",
|
||||
"Backup not selected": "Backup no seleccionado",
|
||||
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Ambos ficheros de configuración (.conf) y de la tabla de la base de datos relacionados con esta configuración serán eliminados",
|
||||
"Bulk Add": "Agregar múltiple",
|
||||
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Agregando Peers de forma múltiple, los nombres de los peers se generarán de forma automática, y la IP permitida se asignará en función de la siguiente IP disponible.",
|
||||
"How many peers you want to add\\?": "¿Cuántos peers quieres añadir?",
|
||||
"You can add up to (.*) peers": "Puedes añadir hasta $1 peers",
|
||||
"Use your own Private and Public Key": "Usa tu propia clave pública y privada",
|
||||
"Enter IP Address/CIDR": "ntroduce la dirección IP/CIDR",
|
||||
"IP Address/CIDR": "Dirección IP/CIDR",
|
||||
"or": "o",
|
||||
"Pick Available IP": "Selecciona una IP disponible",
|
||||
"No available IP containing": "Ninguna IP disponible que contenga",
|
||||
"Add": "añadir",
|
||||
"Adding\\.\\.\\.": "Añadiendo...",
|
||||
"Failed to check available update": "Error al buscar actualizaciones disponibles",
|
||||
"Nice to meet you!": "Encantado de conocerte",
|
||||
"Please fill in the following fields to finish setup": "Por favor rellena los siguientes campos para finalizar el setup",
|
||||
"Create an account": "Crea una cuenta",
|
||||
"Enter an username you like": "Introduce un nombre de usuario",
|
||||
"Enter a password": "Introduce una contraseña",
|
||||
"\\(At least 8 characters and make sure is strong enough!\\)": "(Al menos 8 caracteres y asegúrate de que sea suficientemente fuerte)",
|
||||
"Confirm password": "Confirma la contraseña",
|
||||
"Next": "Siguiente",
|
||||
"Saving\\.\\.\\.": "Guardando...",
|
||||
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Por favor escanea el siguiente código QR para generar un código TOTP con el autentificador que prefieras",
|
||||
"Or you can click the link below:": "O puedes hacer click en el siguiente enlace:",
|
||||
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Inserta el código TOTP generado por tu autentificador para verificar",
|
||||
"TOTP verified!": "¡TOTP Verificado!",
|
||||
"I don't need MFA": "No necesito MFA",
|
||||
"CPU": "",
|
||||
"CPU Usage": "",
|
||||
"Cancel": "Cancelar",
|
||||
"Checking backups...": "Comprobando backups...",
|
||||
"Checking for update...": "Buscando actualizaciones...",
|
||||
"Clear Selection": "Deseleccionar",
|
||||
"Click": "Click",
|
||||
"Click to change a backup": "click para cambiar el backup",
|
||||
"Complete": "Completado",
|
||||
"(v[0-9.]{1,}) is now available for update!": "$1 está disponible para actualizar!",
|
||||
"Current Version:": "Versión actual:",
|
||||
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh no... Este link ha expirado o es inválido.",
|
||||
"Scan QR Code with the WireGuard App to add peer": "Escanea el código QR con la App Wireguard para añadir el peer",
|
||||
"or click the button below to download the ": "o haz click en el botón de abajo para descargar el ",
|
||||
" file": " archivo",
|
||||
"FROM ": "DE ",
|
||||
"(.*) is on": "$1 está activo",
|
||||
"(.*) is off": "$1 está desactivado",
|
||||
"Allowed IPs is invalid": "Las IPs Permitidas son inválidas",
|
||||
"Peer created successfully": "Peer creado con éxito",
|
||||
"Please fill in all required box": "Por favor, rellena las casillas requeridas",
|
||||
"Please specify amount of peers you want to add": "Por favor, especifica la cantidad de peers que quieres añadir",
|
||||
"No more available IP can assign": "No hay más IPs disponibles que asignar",
|
||||
"The maximum number of peers can add is (.*)": "El número máximo de peers que se pueden añadir es $1",
|
||||
"Generating key pairs by bulk failed": "Generación de key pairs por Añadir Múltiples falló",
|
||||
"Failed to add peers in bulk": "Error al añadir múltiples peers",
|
||||
"This peer already exist": "Este peer ya existe",
|
||||
"This IP is not available: (.*)": "Esta IP no está disponible: $1",
|
||||
"Configuration does not exist": "La configuración no existe",
|
||||
"Peer does not exist": "El peer no existe",
|
||||
"Please provide a valid configuration name": "Por favor, introduce un nombre de configuración válido",
|
||||
"Peer saved": "Peer guardado",
|
||||
"Allowed IPs already taken by another peer": "IPs disponibles ya han sido seleccionadas por otro peer",
|
||||
"Endpoint Allowed IPs format is incorrect": "El formato de las IPs disponibles no es correcto",
|
||||
"DNS format is incorrect": "El formato del DNS no es correcto",
|
||||
"MTU format is not correct": "El formato del MTU no es correcto",
|
||||
"Persistent Keepalive format is not correct": "El formato de Keepalive persistente no es correcto",
|
||||
"Private key does not match with the public key": "La clave privada no corresponde con la clave pública",
|
||||
"Update peer failed when updating Pre-Shared Key": "Actualización del peer falló cuando se actualizó la clave pre-compartida",
|
||||
"Update peer failed when updating Allowed IPs": "Actualización del peer falló cuando se actualizó las IPs Permitidas",
|
||||
"Update peer failed when saving the configuration": "Actualización del peer falló cuando se guardaba la configuración",
|
||||
"Peer data usage reset successfully": "Los datos del uso del peer se restablecieron con éxito",
|
||||
"Peer download started": "Descarga del peer comenzada",
|
||||
"Please specify one or more peers": "Por favor, especifica uno o más peers",
|
||||
"Share link failed to create. Reason: (.*)": "Creación del link para compartir fallida. Motivo: $1",
|
||||
"Link expire date updated": "Actualizada la fecha de expiración del link",
|
||||
"Link expire date failed to update. Reason: (.*)": "Actualización de la fecha de expiración fallida. Motivo: $1",
|
||||
"Peer job saved": "Job del Peer guardado",
|
||||
"Please specify job": "Por favor, especifica un job",
|
||||
"Please specify peer and configuration": "Por favor, especifica peer y configuración",
|
||||
"Peer job deleted": "Job del Peer eliminado",
|
||||
"API Keys function is successfully enabled": "La funcionalidad de clave API se ha habilitado con éxito",
|
||||
"API Keys function is successfully disabled": "La funcionalidad de clave API se ha deshabilitado con éxito",
|
||||
"API Keys function is failed to enable": "La funcionalidad de clave API no se ha habilitado",
|
||||
"API Keys function is failed to disable": "La funcionalidad de clave API no se ha habilitado",
|
||||
"WGDashboard API Keys function is disabled": "La funcionalidad de clave API de WGDashboard está deshabilitada",
|
||||
"WireGuard configuration path saved": "Guardado el destino de la configuración de Wireguard",
|
||||
"API Key deleted": "Clave API eliminada",
|
||||
"API Key created": "Clave API creada",
|
||||
"Sign in session ended, please sign in again": "La sesión actual ha caducado, por favor, accede de nuevo",
|
||||
"Please specify an IP Address (v4/v6)": "Por favor, especificado dirección IP (v4/v6)",
|
||||
"Please provide ipAddress and count": "Por favor, especifica dirección IP y cuenta",
|
||||
"Please provide ipAddress": "Por favor, especifica dirección IP",
|
||||
"Dashboard Language": "Idioma del Dashboard",
|
||||
"Dashboard language update failed": "Imposible actualizar el idioma del Dashboard",
|
||||
"Peer Remote Endpoint": "Endpoint remoto del Peer",
|
||||
"New Configuration": "Nueva configuración",
|
||||
"Configuration": "Configuración",
|
||||
"Configuration File": "",
|
||||
"Configuration Name": "Nombre de la configuración",
|
||||
"Configuration name is invalid. Possible reasons:": "El nombre de la configuración es inválido. Motivo:",
|
||||
"Configuration Settings": "Configuración",
|
||||
"Configuration deleted": "Configuración eliminada",
|
||||
"Configuration does not exist": "La configuración no existe",
|
||||
"Configuration name already exist\\.": "El nombre de la configuración ya existe.",
|
||||
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "El nombre de la configuración solo puede contener 15 letras mayúsculas o minúsculas, números, barrabaja, símbolos de igual, suma, puntos y guiones.",
|
||||
"Invalid Port": "Puerto inválido",
|
||||
"Save Configuration": "Guardar la configuración",
|
||||
"IP Address/CIDR is invalid": "La IP/CIDR no es válida",
|
||||
"IP Address": "Dirección IP",
|
||||
"Enter IP Address / Hostname": "Introduce una dirección IP / Hostname",
|
||||
"IP Address / Hostname": "Dirección IP / Hostname",
|
||||
"Dashboard IP Address \\& Listen Port": "Dirección IP del dashboard y puerto",
|
||||
"Count": "Cuenta",
|
||||
"Geolocation": "Geolocalización",
|
||||
"Is Alive": "Está Activo",
|
||||
"Average / Min / Max Round Trip Time": "Media / Min / Max Redondeo Viaje Tiempo",
|
||||
"Sent / Received / Lost Package": "Enviado / Recibido / Paquetes perdidos",
|
||||
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Un reset manual de WGDashboard es necesario para aplicar los cambios en la dirección IP y el puerto",
|
||||
"Restore Configuration": "Restablecer configuración",
|
||||
"Step (.*)": "Paso $1",
|
||||
"Select a backup you want to restore": "Selecciona el backup que quieres restaurar",
|
||||
"Click to change a backup": "click para cambiar el backup",
|
||||
"Selected Backup": "Backup seleccionado",
|
||||
"You don't have any configuration to restore": "No tienes ninguna configuración que restaurar",
|
||||
"Help": "Ayuda",
|
||||
"Backup": "Backup",
|
||||
"([0-9].*) Backups?": "$1 Backups?",
|
||||
"Yes": "Sí",
|
||||
"No": "No",
|
||||
"Backup not selected": "Backup no seleccionado",
|
||||
"Configuration name is invalid. Possible reasons:": "El nombre de la configuración es inválido. Motivo:",
|
||||
"Configuration restored": "Configuración restaurada",
|
||||
"Configuration saved": "Configuración guardada",
|
||||
"Configurations": "Configuraciones",
|
||||
"Configurations Directory": "Carpeta de configuraciones",
|
||||
"Confirm \\& edit restore information": "Confirmar y editar la información de restauración",
|
||||
"(.*) Available IP Address": "$1 Dirección IP disponible",
|
||||
"Database File": "Fichero de base de datos",
|
||||
"Confirm password": "Confirma la contraseña",
|
||||
"Connected Peers": "Peer conectado",
|
||||
"Contain": "Contiene",
|
||||
"Restricted Peers?": "¿Peers restringidos?",
|
||||
"Restore": "Restaurar",
|
||||
"Restoring": "Restaurando",
|
||||
"WGDashboard Settings": "Ajustes de WGDashboard",
|
||||
"Peers Settings": "Ajustes de Peers",
|
||||
"WireGuard Configuration Settings": "Ajustes de Configuraciones de Wireguard",
|
||||
"Appearance": "apariencia",
|
||||
"Theme": "Tema",
|
||||
"Language": "Idioma",
|
||||
"Account Settings": "Ajustes de la cuenta",
|
||||
"Peer Default Settings": "Ajustes por defecto del peer",
|
||||
"Toggle When Start Up": "Activar en Start Up",
|
||||
"Other Settings": "Otros ajustes",
|
||||
"Select Peers": "Seleccionar peers",
|
||||
"Backup & Restore": "Backups y Restaurar",
|
||||
"Delete Configuration": "Eliminar Configuración",
|
||||
"Count": "Cuenta",
|
||||
"Create": "Crear",
|
||||
"Create API Key": "Crear una nueva clave API",
|
||||
"Create Backup": "Crear Backup",
|
||||
"No backup yet, click the button above to create backup\\.": "No hay backups todavía, presiona el botón de arriba para crear un backup.",
|
||||
"Are you sure to delete this backup\\?": "¿Estás seguro de que quieres borrar este backup?",
|
||||
"Are you sure to restore this backup?\\": "¿Estás seguro de que quieres restaurar este backup?",
|
||||
"Backup Date": "Fecha del backup",
|
||||
"Create an account": "Crea una cuenta",
|
||||
"Creating\\.\\.\\.": "Creando...",
|
||||
"Current Password": "Contraseña actual",
|
||||
"Current Version:": "Versión actual:",
|
||||
"Currently the peer is not sharing": "Actualmente el Peer no está compartiendo",
|
||||
"DNS": "DNS",
|
||||
"DNS format is incorrect": "El formato del DNS no es correcto",
|
||||
"Danger Zone": "",
|
||||
"Dark": "Oscuro",
|
||||
"Dashboard IP Address \\& Listen Port": "Dirección IP del dashboard y puerto",
|
||||
"Dashboard Language": "Idioma del Dashboard",
|
||||
"Dashboard Theme": "Tema del dashboard",
|
||||
"Dashboard language update failed": "Imposible actualizar el idioma del Dashboard",
|
||||
"Database File": "Fichero de base de datos",
|
||||
"Date": "Fecha",
|
||||
"Delete": "Eliminar",
|
||||
"Delete Configuration": "Eliminar Configuración",
|
||||
"Delete Peer": "Eliminar el Peer",
|
||||
"Delete current configuration's database table and \\.conf file": "",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\)": "Eliminados $1 peer(s)",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Eliminados $1 peer(s) con éxito. Fallo al eliminar $2 peer(s)",
|
||||
"Deleting...": "Eliminando...",
|
||||
"Disabled": "Deshabilitado",
|
||||
"Discord Server": "",
|
||||
"Display": "Mostrar",
|
||||
"Display As": "",
|
||||
"Don't think that's a good idea": "No creo que esta sea una buena idea",
|
||||
"Done": "Hecho",
|
||||
"Download": "",
|
||||
"Download All": "Descargar todo",
|
||||
"Download Finished": "Descarga finalizada",
|
||||
"Download \\& QR Code is not available due to no private key set for this peer": "La descarga y el código QR no están disponibles porque no se ha configurado una clave privada para este peer",
|
||||
"Downloading": "Descargando",
|
||||
"Duplicate current configuration's database table and \\.conf file with the new name": "",
|
||||
"Edit": "Modificar",
|
||||
"Edit Raw Configuration File": "",
|
||||
"Email Account": "",
|
||||
"Email Body Template": "",
|
||||
"Email sent successfully!": "",
|
||||
"Enabled": "Habilitado",
|
||||
"Encryption": "",
|
||||
"Endpoint Allowed IPs": "Direcciones IP del endpoint permitidas",
|
||||
"Endpoint Allowed IPs format is incorrect": "El formato de las IPs disponibles no es correcto",
|
||||
"Enter IP Address / Hostname": "Introduce una dirección IP / Hostname",
|
||||
"Enter IP Address/CIDR": "ntroduce la dirección IP/CIDR",
|
||||
"Enter a password": "Introduce una contraseña",
|
||||
"Enter an username you like": "Introduce un nombre de usuario",
|
||||
"Expire At": "Expira en",
|
||||
"FROM ": "DE ",
|
||||
"Failed": "Fallido",
|
||||
"Failed to add peers in bulk": "Error al añadir múltiples peers",
|
||||
"Failed to allow access of peer (.*)": "Fallo de habilitar acceso del peer $1",
|
||||
"Failed to check available update": "Error al buscar actualizaciones disponibles",
|
||||
"Failed to save configuration through WireGuard": "Fallo de salvar configuración a través de WireGuard",
|
||||
"File": "Archivo",
|
||||
"Are you sure to delete this configuration\\?": "¿Estás seguro de eliminar esta configuración?",
|
||||
"Filter": "Filtrar",
|
||||
"Generating key pairs by bulk failed": "Generación de key pairs por Añadir Múltiples falló",
|
||||
"Geolocation": "Geolocalización",
|
||||
"Grid": "",
|
||||
"Help": "Ayuda",
|
||||
"Home": "Home",
|
||||
"Hop": "",
|
||||
"How many peers you want to add\\?": "¿Cuántos peers quieres añadir?",
|
||||
"I don't need MFA": "No necesito MFA",
|
||||
"IP Address": "Dirección IP",
|
||||
"IP Address / Hostname": "Dirección IP / Hostname",
|
||||
"IP Address/CIDR": "Dirección IP/CIDR",
|
||||
"IP Address/CIDR is invalid": "La IP/CIDR no es válida",
|
||||
"If you're sure, please type in the configuration name below and click Delete": "Si estás seguro, introduce el nombre de la configuración y presiona eliminar",
|
||||
"Include configuration file as an attachment": "",
|
||||
"Invalid Port": "Puerto inválido",
|
||||
"Is Alive": "Está Activo",
|
||||
"Job": "Job",
|
||||
"Job ID": "ID del Job",
|
||||
"Jobs Logs": "Logs del Job",
|
||||
"Key": "Clave",
|
||||
"Language": "Idioma",
|
||||
"Light": "Claro",
|
||||
"Link expire date failed to update. Reason: (.*)": "Actualización de la fecha de expiración fallida. Motivo: $1",
|
||||
"Link expire date updated": "Actualizada la fecha de expiración del link",
|
||||
"List": "",
|
||||
"Listen Port": "Puerto de escucha",
|
||||
"Live Preview": "",
|
||||
"Log ID": "ID del log",
|
||||
"Logs": "Logs",
|
||||
"MTU": "MTU",
|
||||
"MTU format is not correct": "El formato del MTU no es correcto",
|
||||
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Un reset manual de WGDashboard es necesario para aplicar los cambios en la dirección IP y el puerto",
|
||||
"Max RTT \\(ms\\)": "",
|
||||
"Memory": "",
|
||||
"Memory Usage": "",
|
||||
"Message": "Mensaje",
|
||||
"Min RTT \\(ms\\)": "",
|
||||
"Multi-Factor Authentication \\(MFA\\)": "Autentificación de doble factor (MFA)",
|
||||
"Name": "Nombre",
|
||||
"Network": "",
|
||||
"Never Expire": "Nunca expira",
|
||||
"New Configuration": "Nueva configuración",
|
||||
"New Password": "Nueva contraseña",
|
||||
"Next": "Siguiente",
|
||||
"Nice to meet you!": "Encantado de conocerte",
|
||||
"No": "No",
|
||||
"No Encryption": "",
|
||||
"No WGDashboard API Key": "Ninguna clave API WGDashboard",
|
||||
"No active job at the moment\\.": "No hay jobs activos en este momento.",
|
||||
"No available IP containing": "Ninguna IP disponible que contenga",
|
||||
"No backup yet, click the button above to create backup\\.": "No hay backups todavía, presiona el botón de arriba para crear un backup.",
|
||||
"No more available IP can assign": "No hay más IPs disponibles que asignar",
|
||||
"OTP from your authenticator": "OTP de tu autentificador",
|
||||
"Off": "Inactivo",
|
||||
"Official Documentation": "",
|
||||
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh no... Este link ha expirado o es inválido.",
|
||||
"On": "Activo",
|
||||
"Once you deleted this configuration\\:": "Una vez eliminada esta configuración:",
|
||||
"All connected peers will get disconnected": "Todos los peers conectados se desconectarán",
|
||||
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Ambos ficheros de configuración (.conf) y de la tabla de la base de datos relacionados con esta configuración serán eliminados",
|
||||
"Checking backups...": "Comprobando backups...",
|
||||
"Open File": "",
|
||||
"Optional Settings": "Ajustes opcionales",
|
||||
"Or you can click the link below:": "O puedes hacer click en el siguiente enlace:",
|
||||
"Other Settings": "Otros ajustes",
|
||||
"Password": "Contraseña",
|
||||
"Peer": "Peer",
|
||||
"Peer Configuration File": "",
|
||||
"Peer Default Settings": "Ajustes por defecto del peer",
|
||||
"Peer Jobs": "Jobs del Peer",
|
||||
"Peer Remote Endpoint": "Endpoint remoto del Peer",
|
||||
"Peer Settings": "Ajustes de Peers",
|
||||
"Peer created successfully": "Peer creado con éxito",
|
||||
"Peer data usage reset successfully": "Los datos del uso del peer se restablecieron con éxito",
|
||||
"Peer does not exist": "El peer no existe",
|
||||
"Peer download started": "Descarga del peer comenzada",
|
||||
"Peer job deleted": "Job del Peer eliminado",
|
||||
"Peer job saved": "Job del Peer guardado",
|
||||
"Peer saved": "Peer guardado",
|
||||
"Peers": "Peers",
|
||||
"Peers Data Usage": "Uso de datos de Peers",
|
||||
"Peers Default Settings": "Ajustes por defecto de Peers",
|
||||
"Peers Settings": "Ajustes de Peers",
|
||||
"Persistent Keepalive": "Keepalive persistente",
|
||||
"Persistent Keepalive format is not correct": "El formato de Keepalive persistente no es correcto",
|
||||
"Pick Available IP": "Selecciona una IP disponible",
|
||||
"Pinging...": "Ping...",
|
||||
"Please fill in all required box": "Por favor, rellena las casillas requeridas",
|
||||
"Please fill in the following fields to finish setup": "Por favor rellena los siguientes campos para finalizar el setup",
|
||||
"Please provide a valid configuration name": "Por favor, introduce un nombre de configuración válido",
|
||||
"Please provide ipAddress": "Por favor, especifica dirección IP",
|
||||
"Please provide ipAddress and count": "Por favor, especifica dirección IP y cuenta",
|
||||
"Please specify amount of peers you want to add": "Por favor, especifica la cantidad de peers que quieres añadir",
|
||||
"Please specify an IP Address (v4/v6)": "Por favor, especificado dirección IP (v4/v6)",
|
||||
"Please specify job": "Por favor, especifica un job",
|
||||
"Please specify one or more peers": "Por favor, especifica uno o más peers",
|
||||
"Please specify peer and configuration": "Por favor, especifica peer y configuración",
|
||||
"Port": "",
|
||||
"Pre-Shared Key": "Clave pre-compartida",
|
||||
"Private Key": "Clave privada",
|
||||
"Private key does not match with the public key": "La clave privada no corresponde con la clave pública",
|
||||
"Processes": "",
|
||||
"Protocol": "",
|
||||
"Public Key": "Clave pública",
|
||||
"QR Code": "Código QR",
|
||||
"Ready": "",
|
||||
"Real Time Received Data Usage": "Datos recibidos en tiempo real",
|
||||
"Real Time Sent Data Usage": "Datos enviados en tiempo real",
|
||||
"Received": "Recibido",
|
||||
"Refresh": "Refrescar",
|
||||
"Refresh Interval": "Intervalo de refresco",
|
||||
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Recuerda eliminar '/' al final de tu directorio. Por ejemplo, '/etc/wireguard'",
|
||||
"Repeat New Password": "Repite la nueva contraseña",
|
||||
"Reset": "Reset",
|
||||
"Reset Data Usage": "Resetear los datos de uso",
|
||||
"Restore": "Restaurar",
|
||||
"Restore Configuration": "Restablecer configuración",
|
||||
"Restoring": "Restaurando",
|
||||
"Restrict Access": "Restringir Acceso",
|
||||
"Restrict Peer": "Limitar el Peer",
|
||||
"Restricted": "Restringido",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\)": "Restringidos $1 peer(s)",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Restringidos $1 peer(s) con éxito. Fallo al restringir $2 peer(s)",
|
||||
"Restricted Peers?": "¿Peers restringidos?",
|
||||
"Restricting\\.\\.\\.": "Restringiendo...",
|
||||
"Revert": "Revertir",
|
||||
"Save": "Guardar",
|
||||
"Save Configuration": "Guardar la configuración",
|
||||
"Save Peer": "Guardar el Peer",
|
||||
"Saving\\.\\.\\.": "Guardando...",
|
||||
"Scan QR Code with the WireGuard App to add peer": "Escanea el código QR con la App Wireguard para añadir el peer",
|
||||
"Schedule Jobs": "Planificar Job",
|
||||
"Search": "",
|
||||
"Search Peers\\.\\.\\.": "Buscar Peers...",
|
||||
"Select All": "Seleccionar todo",
|
||||
"Select Peers": "Seleccionar peers",
|
||||
"Select a backup you want to restore": "Selecciona el backup que quieres restaurar",
|
||||
"Selected Backup": "Backup seleccionado",
|
||||
"Send": "",
|
||||
"Send From": "",
|
||||
"Send Test Email": "",
|
||||
"Sending\\.\\.\\.": "",
|
||||
"Sent": "Enviado",
|
||||
"Sent / Received / Lost Package": "Enviado / Recibido / Paquetes perdidos",
|
||||
"Server": "Servidor",
|
||||
"Server List": "Lista de Servidores",
|
||||
"Settings": "Ajustes",
|
||||
"Setup": "Setup",
|
||||
"Share Peer": "Compartir Peer",
|
||||
"Share link failed to create. Reason: (.*)": "Creación del link para compartir fallida. Motivo: $1",
|
||||
"Share with Email": "",
|
||||
"Sharing\\.\\.\\.": "Compartiendo...",
|
||||
"Sign In": "Iniciar sesión",
|
||||
"Sign Out": "Salir",
|
||||
"Sign in session ended, please sign in again": "La sesión actual ha caducado, por favor, accede de nuevo",
|
||||
"Signing In\\.\\.\\.": "Iniciando sesión...",
|
||||
"Sorry, your username or password is incorrect.": "Lo siento, tu usuario o contraseña no son correctos.",
|
||||
"Sort By": "Ordenar por",
|
||||
"Start Sharing": "Empezar intercambio",
|
||||
"Status": "Estado",
|
||||
"Step (.*)": "Paso $1",
|
||||
"Stop Sharing": "Interrumpir intercambio",
|
||||
"Stop Sharing\\.\\.\\.": "Interrumpir intercambio...",
|
||||
"Storage": "",
|
||||
"Success": "Éxito",
|
||||
"Swap Memory": "",
|
||||
"Swap Memory Usage": "",
|
||||
"System Status": "",
|
||||
"TOTP verified!": "¡TOTP Verificado!",
|
||||
"Table": "",
|
||||
"The maximum number of peers can add is (.*)": "El número máximo de peers que se pueden añadir es $1",
|
||||
"Theme": "Tema",
|
||||
"This IP is not available: (.*)": "Esta IP no está disponible: $1",
|
||||
"This configuration have ([0-9].*) backups": "Esta configuración tiene $1 backups",
|
||||
"This configuration have no backup": "Esta configuración no tiene backups",
|
||||
"If you're sure, please type in the configuration name below and click Delete": "Si estás seguro, introduce el nombre de la configuración y presiona eliminar",
|
||||
"Select All": "Seleccionar todo",
|
||||
"Clear Selection": "Deseleccionar",
|
||||
"([0-9].*) Peers?": "¿$1 Peers?",
|
||||
"Downloading": "Descargando",
|
||||
"Download Finished": "Descarga finalizada",
|
||||
"Done": "Hecho",
|
||||
"Are you sure to delete": "¿Estás seguro de eliminar?",
|
||||
"Are you sure to delete this peer\\?": "¿Estás seguro de eliminar este peer?",
|
||||
"Configuration deleted": "Configuración eliminada",
|
||||
"Configuration saved": "Configuración guardada",
|
||||
"This peer already exist": "Este peer ya existe",
|
||||
"This peer does not have any job yet\\.": "Este Peer no tiene jobs todavía.",
|
||||
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Esto se va a cambiar de forma global, y se aplicará a todos los QRs y archivos de configuración de todos los Peers.",
|
||||
"To update this configuration's name, WGDashboard will execute the following operations:": "",
|
||||
"Toggle When Start Up": "Activar en Start Up",
|
||||
"Tools": "Herramientas",
|
||||
"Total": "Total",
|
||||
"Total Received": "Total Recibido",
|
||||
"Total Sent": "Total Enviado",
|
||||
"Total Usage": "Uso Total",
|
||||
"Turning Off\\.\\.\\.": "Desactivando...",
|
||||
"Turning On\\.\\.\\.": "Activando...",
|
||||
"Unsaved Job": "Job sin guardar",
|
||||
"Untitled Peer": "",
|
||||
"Update Name": "",
|
||||
"Update Password": "Actualizar contraseña",
|
||||
"Update peer failed when saving the configuration": "Actualización del peer falló cuando se guardaba la configuración",
|
||||
"Update peer failed when updating Allowed IPs": "Actualización del peer falló cuando se actualizó las IPs Permitidas",
|
||||
"Update peer failed when updating Pre-Shared Key": "Actualización del peer falló cuando se actualizó la clave pre-compartida",
|
||||
"Updated at": "Actualizado el",
|
||||
"Use your own Private and Public Key": "Usa tu propia clave pública y privada",
|
||||
"Username": "Usuario",
|
||||
"WGDashboard API Keys function is disabled": "La funcionalidad de clave API de WGDashboard está deshabilitada",
|
||||
"WGDashboard Account Settings": "Ajustes de la cuenta de WGDashboard",
|
||||
"WGDashboard Settings": "Ajustes de WGDashboard",
|
||||
"WGDashboard language update failed": "La actualización de idioma de WGDashboard falló",
|
||||
"Configuration restored": "Configuración restaurada",
|
||||
"Allowed IP already taken by another peer": "IP Permitida ya ha sido seleccionada por otro peer",
|
||||
"Failed to allow access of peer (.*)": "Fallo de habilitar acceso del peer $1",
|
||||
"Failed to save configuration through WireGuard": "Fallo de salvar configuración a través de WireGuard",
|
||||
"Allow access successfully": "Acceso permitido con éxito",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) eliminado(s)",
|
||||
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) eliminado(s) con éxito. Fallo al eliminar $2 peer(s)",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s)",
|
||||
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) restringido(s) con éxito. Fallo al restringir $2 peer(s)"
|
||||
"Welcome to": "Bienvenido",
|
||||
"What\\'s the body\\?": "",
|
||||
"What\\'s the subject\\?": "",
|
||||
"When should this API Key expire\\?": "¿Cuándo debería expirar esta clave API?",
|
||||
"Who are you sending to\\?": "",
|
||||
"WireGuard Configuration Settings": "Ajustes de Configuraciones de Wireguard",
|
||||
"WireGuard Configurations": "Configuraciones de Wireguard",
|
||||
"WireGuard Configurations Settings": "Ajustes de Configuración de Wireguard",
|
||||
"WireGuard configuration path saved": "Guardado el destino de la configuración de Wireguard",
|
||||
"Yes": "Sí",
|
||||
"You can add up to (.*) peers": "Puedes añadir hasta $1 peers",
|
||||
"You can visit our: ": "",
|
||||
"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.": "Todavía no tienes configuraciones de WireGuard. Por favor, comprueba la carpeta de configuraciones o cámbiala en Ajustes. Por defecto, la carpeta es /etc/wireguard.",
|
||||
"You don't have any configuration to restore": "No tienes ninguna configuración que restaurar",
|
||||
"You're on the latest version": "Estás utilizando la última versión",
|
||||
"\\(At least 8 characters and make sure is strong enough!\\)": "(Al menos 8 caracteres y asegúrate de que sea suficientemente fuerte)",
|
||||
"\\(Required for QR Code and Download\\)": "(Requerido para el código QR y Descarga)",
|
||||
"\\(Required\\)": "(Requerido)",
|
||||
"if": "si",
|
||||
"is": "es",
|
||||
"larger than": "mayor que",
|
||||
"or": "o",
|
||||
"or click the button below to download the ": "o haz click en el botón de abajo para descargar el ",
|
||||
"then": "entonces",
|
||||
"to add your server": "para agregar tu servidor"
|
||||
}
|
301
src/static/locales/locale_manager.py
Normal file
301
src/static/locales/locale_manager.py
Normal file
@@ -0,0 +1,301 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Tuple
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
@dataclass
|
||||
class Language:
|
||||
"""Represents a language configuration."""
|
||||
lang_id: str
|
||||
lang_name: str
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: Dict) -> 'Language':
|
||||
"""Create Language instance from dictionary."""
|
||||
return cls(
|
||||
lang_id=data.get('lang_id', ''),
|
||||
lang_name=data.get('lang_name', '')
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class TranslationStats:
|
||||
"""Statistics about translation verification."""
|
||||
missing_count: int
|
||||
deprecated_count: int
|
||||
total_keys: int
|
||||
|
||||
@property
|
||||
def completion_percentage(self) -> float:
|
||||
"""Calculate completion percentage."""
|
||||
if self.total_keys == 0:
|
||||
return 0.0
|
||||
|
||||
completed = self.total_keys - self.missing_count
|
||||
|
||||
return (completed / self.total_keys) * 100
|
||||
|
||||
|
||||
class LocaleManager:
|
||||
"""Manages locale files and translation verification."""
|
||||
|
||||
SUPPORTED_LOCALES_FILE = "supported_locales.json"
|
||||
LOCALE_TEMPLATE_FILE = "locale_template.json"
|
||||
|
||||
def __init__(self):
|
||||
self.supported_locales: List[Language] = []
|
||||
self.locale_template: Dict[str, str] = {}
|
||||
self._load_configuration()
|
||||
|
||||
def _load_configuration(self) -> None:
|
||||
"""Load active languages and template configuration."""
|
||||
try:
|
||||
|
||||
self.supported_locales = self._load_supported_locales()
|
||||
self.locale_template = self._load_locale_template()
|
||||
|
||||
except FileNotFoundError as e:
|
||||
print(f"[✗] Configuration file not found: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"[✗] Invalid JSON in configuration file: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
def _load_supported_locales(self) -> List[Language]:
|
||||
"""Load active languages from JSON file."""
|
||||
config_path = Path(self.SUPPORTED_LOCALES_FILE)
|
||||
|
||||
if not config_path.exists():
|
||||
raise FileNotFoundError(
|
||||
f"Active languages file not found: {config_path}"
|
||||
)
|
||||
|
||||
with open(config_path, 'r', encoding='utf-8') as file:
|
||||
data = json.load(file)
|
||||
|
||||
return [Language.from_dict(lang_data) for lang_data in data]
|
||||
|
||||
def _load_locale_template(self) -> Dict[str, str]:
|
||||
"""Load language template from JSON file."""
|
||||
template_path = Path(self.LOCALE_TEMPLATE_FILE)
|
||||
|
||||
if not template_path.exists():
|
||||
raise FileNotFoundError(
|
||||
f"Language template file not found: {template_path}"
|
||||
)
|
||||
|
||||
with open(template_path, 'r', encoding='utf-8') as file:
|
||||
return json.load(file)
|
||||
|
||||
def _load_language_file(self, lang_id: str) -> Dict[str, str]:
|
||||
"""Load specific language file."""
|
||||
lang_path = Path(f"{lang_id}.json")
|
||||
|
||||
if not lang_path.exists():
|
||||
raise FileNotFoundError(f"Language file not found: {lang_path}")
|
||||
|
||||
with open(lang_path, 'r', encoding='utf-8') as file:
|
||||
return json.load(file)
|
||||
|
||||
def _save_language_file(self, lang_id: str, lang_data: Dict[str, str]) -> None:
|
||||
"""Save language file with proper formatting."""
|
||||
lang_path = Path(f"{lang_id}.json")
|
||||
|
||||
with open(lang_path, 'w', encoding='utf-8') as file:
|
||||
json.dump(
|
||||
lang_data,
|
||||
file,
|
||||
ensure_ascii=False,
|
||||
indent='\t',
|
||||
sort_keys=True
|
||||
)
|
||||
|
||||
def get_language_ids(self) -> List[str]:
|
||||
"""Get list of all available language IDs."""
|
||||
return [lang.lang_id for lang in self.supported_locales]
|
||||
|
||||
def validate_language_id(self, lang_id: str) -> Tuple[bool, str]:
|
||||
"""
|
||||
Validate language ID.
|
||||
|
||||
Returns:
|
||||
Tuple of (is_valid, error_message)
|
||||
"""
|
||||
available_ids = self.get_language_ids()
|
||||
|
||||
if lang_id not in available_ids:
|
||||
return False, f"'{lang_id}' is not a valid language ID"
|
||||
|
||||
return True, ""
|
||||
|
||||
def analyze_translations(self, lang_id: str) -> Tuple[List[str], List[str], TranslationStats]:
|
||||
"""
|
||||
Analyze translation file for missing and deprecated keys.
|
||||
|
||||
Returns:
|
||||
Tuple of (missing_keys, deprecated_keys, stats)
|
||||
"""
|
||||
try:
|
||||
lang_file = self._load_language_file(lang_id)
|
||||
|
||||
except FileNotFoundError:
|
||||
print(
|
||||
f"[!] Language file {lang_id}.json not found. Creating new file..."
|
||||
)
|
||||
lang_file = {}
|
||||
|
||||
# Find missing translations
|
||||
missing_translations = [
|
||||
key for key in self.locale_template
|
||||
if key not in lang_file or not lang_file[key].strip()
|
||||
]
|
||||
|
||||
# Find deprecated translations
|
||||
deprecated_translations = [
|
||||
key for key in lang_file
|
||||
if key not in self.locale_template
|
||||
]
|
||||
|
||||
# Calculate statistics
|
||||
stats = TranslationStats(
|
||||
missing_count=len(missing_translations),
|
||||
deprecated_count=len(deprecated_translations),
|
||||
total_keys=len(self.locale_template)
|
||||
)
|
||||
|
||||
return missing_translations, deprecated_translations, stats
|
||||
|
||||
def fix_translation_file(self, lang_id: str) -> TranslationStats:
|
||||
"""
|
||||
Fix translation file by adding missing keys and removing deprecated ones.
|
||||
|
||||
Returns:
|
||||
TranslationStats with the changes made
|
||||
"""
|
||||
try:
|
||||
lang_file = self._load_language_file(lang_id)
|
||||
|
||||
except FileNotFoundError:
|
||||
lang_file = {}
|
||||
|
||||
missing_translations, deprecated_translations, stats = self.analyze_translations(
|
||||
lang_id
|
||||
)
|
||||
|
||||
# Create new language file
|
||||
new_lang_file = dict(lang_file)
|
||||
|
||||
# Add missing translations with empty values
|
||||
for key in missing_translations:
|
||||
new_lang_file[key] = ""
|
||||
|
||||
# Remove deprecated translations
|
||||
for key in deprecated_translations:
|
||||
new_lang_file.pop(key, None)
|
||||
|
||||
# Save updated file
|
||||
self._save_language_file(lang_id, new_lang_file)
|
||||
|
||||
return stats
|
||||
|
||||
def display_header(self) -> None:
|
||||
"""Display application header."""
|
||||
title = "WGDashboard Locale File Manager [by @donaldzou]"
|
||||
border = "=" * (len(title) + 4)
|
||||
|
||||
print(border)
|
||||
print(f"| {title} |")
|
||||
print(border)
|
||||
print()
|
||||
|
||||
def display_available_languages(self) -> None:
|
||||
"""Display available languages in a formatted table."""
|
||||
print("[i] Available languages")
|
||||
print("-" * 50)
|
||||
|
||||
for lang in self.supported_locales:
|
||||
print(f"{lang.lang_name:<25} | {lang.lang_id}")
|
||||
|
||||
print()
|
||||
|
||||
def display_translation_results(self, lang_id: str, stats: TranslationStats) -> None:
|
||||
"""Display translation verification results."""
|
||||
print(f"[#] Translation analysis for '{lang_id}'")
|
||||
print("-" * 50)
|
||||
|
||||
print(f" [-] Total keys: {stats.total_keys}")
|
||||
print(f" [✗] Missing translations: {stats.missing_count}")
|
||||
print(f" [*] Deprecated translations: {stats.deprecated_count}")
|
||||
print(f" [✓] Completion: {stats.completion_percentage:.1f}%")
|
||||
|
||||
if stats.missing_count > 0 or stats.deprecated_count > 0:
|
||||
print(f"\n [i] File {lang_id}.json has been updated:")
|
||||
print(f" • Missing translations added (empty values)")
|
||||
print(f" • Deprecated translations removed")
|
||||
else:
|
||||
print(f"\n Perfect! No issues found in {lang_id}.json")
|
||||
|
||||
print()
|
||||
|
||||
def get_user_language_choice(self) -> str:
|
||||
"""Get language choice from user with validation."""
|
||||
while True:
|
||||
try:
|
||||
lang_id = input("[ENTER] Language ID to verify: ").strip()
|
||||
|
||||
if not lang_id:
|
||||
print(" [!] Please enter a valid language ID")
|
||||
continue
|
||||
|
||||
is_valid, error_msg = self.validate_language_id(lang_id)
|
||||
|
||||
if not is_valid:
|
||||
print(f" [✗] {error_msg}")
|
||||
continue
|
||||
|
||||
return lang_id
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\n\n[EXIT] Operation cancelled by user")
|
||||
sys.exit(0)
|
||||
|
||||
except EOFError:
|
||||
print("\n\n[EXIT] Goodbye!")
|
||||
sys.exit(0)
|
||||
|
||||
def run(self) -> None:
|
||||
"""Main application loop."""
|
||||
try:
|
||||
self.display_header()
|
||||
self.display_available_languages()
|
||||
|
||||
while True:
|
||||
lang_id = self.get_user_language_choice()
|
||||
|
||||
print(f"\n[>] Verifying language file: {lang_id}.json")
|
||||
print("=" * 50)
|
||||
|
||||
stats = self.fix_translation_file(lang_id)
|
||||
self.display_translation_results(lang_id, stats)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\n\n[EXIT] Operation cancelled by user")
|
||||
sys.exit(0)
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n[✗] Unexpected error: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""Entry point of the application."""
|
||||
locale_manager = LocaleManager()
|
||||
locale_manager.run()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
134
src/static/locales/supported_locales.json
Normal file
134
src/static/locales/supported_locales.json
Normal file
@@ -0,0 +1,134 @@
|
||||
[
|
||||
{
|
||||
"flag": "🇺🇸",
|
||||
"lang_id": "en-US",
|
||||
"lang_name": "English (United States)",
|
||||
"lang_name_localized": "English (United States)"
|
||||
},
|
||||
{
|
||||
"flag": "🇸🇦",
|
||||
"lang_id": "ar-SA",
|
||||
"lang_name": "Arabic (Saudi Arabia)",
|
||||
"lang_name_localized": "العربية (السعودية)"
|
||||
},
|
||||
{
|
||||
"flag": "🇧🇾",
|
||||
"lang_id": "be-BY",
|
||||
"lang_name": "Belarusian (Belarus)",
|
||||
"lang_name_localized": "Беларуская (Беларусь)"
|
||||
},
|
||||
{
|
||||
"flag": "🏴",
|
||||
"lang_id": "ca-ES",
|
||||
"lang_name": "Catalan (Spain)",
|
||||
"lang_name_localized": "Català (Espanya)"
|
||||
},
|
||||
{
|
||||
"flag": "🇨🇿",
|
||||
"lang_id": "cs-CZ",
|
||||
"lang_name": "Czech (Czech Republic)",
|
||||
"lang_name_localized": "Česky (Česká republika)"
|
||||
},
|
||||
{
|
||||
"flag": "🇩🇪",
|
||||
"lang_id": "de-DE",
|
||||
"lang_name": "German (Germany)",
|
||||
"lang_name_localized": "Deutsch (Deutschland)"
|
||||
},
|
||||
{
|
||||
"flag": "🇪🇸",
|
||||
"lang_id": "es-ES",
|
||||
"lang_name": "Spanish (Spain)",
|
||||
"lang_name_localized": "Español (España)"
|
||||
},
|
||||
{
|
||||
"flag": "🇮🇷",
|
||||
"lang_id": "fa-IR",
|
||||
"lang_name": "Persian (Iran)",
|
||||
"lang_name_localized": "فارسی (ایران)"
|
||||
},
|
||||
{
|
||||
"flag": "🇨🇦",
|
||||
"lang_id": "fr-CA",
|
||||
"lang_name": "French (Canada)",
|
||||
"lang_name_localized": "Français (Canada)"
|
||||
},
|
||||
{
|
||||
"flag": "🇫🇷",
|
||||
"lang_id": "fr-FR",
|
||||
"lang_name": "French (France)",
|
||||
"lang_name_localized": "Français (France)"
|
||||
},
|
||||
{
|
||||
"flag": "🇮🇹",
|
||||
"lang_id": "it-IT",
|
||||
"lang_name": "Italian (Italy)",
|
||||
"lang_name_localized": "Italiano (Italia)"
|
||||
},
|
||||
{
|
||||
"flag": "🇯🇵",
|
||||
"lang_id": "ja-JP",
|
||||
"lang_name": "Japanese (Japan)",
|
||||
"lang_name_localized": "日本語 (日本)"
|
||||
},
|
||||
{
|
||||
"flag": "🇰🇷",
|
||||
"lang_id": "ko-KR",
|
||||
"lang_name": "Korean (South Korea)",
|
||||
"lang_name_localized": "한국어 (대한민국)"
|
||||
},
|
||||
{
|
||||
"flag": "🇳🇱",
|
||||
"lang_id": "nl-NL",
|
||||
"lang_name": "Dutch (Netherlands)",
|
||||
"lang_name_localized": "Nederlands (Nederland)"
|
||||
},
|
||||
{
|
||||
"flag": "🇵🇱",
|
||||
"lang_id": "pl-PL",
|
||||
"lang_name": "Polish (Poland)",
|
||||
"lang_name_localized": "Polski (Polska)"
|
||||
},
|
||||
{
|
||||
"flag": "🇷🇺",
|
||||
"lang_id": "ru-RU",
|
||||
"lang_name": "Russian (Russia)",
|
||||
"lang_name_localized": "Русский (Россия)"
|
||||
},
|
||||
{
|
||||
"flag": "🇸🇪",
|
||||
"lang_id": "sv-SE",
|
||||
"lang_name": "Swedish (Sweden)",
|
||||
"lang_name_localized": "Svenska (Sverige)"
|
||||
},
|
||||
{
|
||||
"flag": "🇹🇭",
|
||||
"lang_id": "th-TH",
|
||||
"lang_name": "Thai (Thailand)",
|
||||
"lang_name_localized": "ภาษาไทย (ประเทศไทย)"
|
||||
},
|
||||
{
|
||||
"flag": "🇹🇷",
|
||||
"lang_id": "tr-TR",
|
||||
"lang_name": "Turkish (Turkey)",
|
||||
"lang_name_localized": "Türkçe (Türkiye)"
|
||||
},
|
||||
{
|
||||
"flag": "🇺🇦",
|
||||
"lang_id": "uk-UA",
|
||||
"lang_name": "Ukrainian (Ukraine)",
|
||||
"lang_name_localized": "Українська (Україна)"
|
||||
},
|
||||
{
|
||||
"flag": "🇨🇳",
|
||||
"lang_id": "zh-CN",
|
||||
"lang_name": "Chinese (Simplified, China)",
|
||||
"lang_name_localized": "中文(简体,中国)"
|
||||
},
|
||||
{
|
||||
"flag": "🇭🇰",
|
||||
"lang_id": "zh-HK",
|
||||
"lang_name": "Chinese (Traditional, Hong Kong)",
|
||||
"lang_name_localized": "中文(繁體,香港)"
|
||||
}
|
||||
]
|
Reference in New Issue
Block a user