diff --git a/frontend/check-locales.cjs b/frontend/check-locales.cjs
index feb61a93..bd871169 100755
--- a/frontend/check-locales.cjs
+++ b/frontend/check-locales.cjs
@@ -8,14 +8,16 @@
const allLocales = [
["en", "en-US"],
- ["es", "es-ES"],
["de", "de-DE"],
+ ["es", "es-ES"],
+ ["it", "it-IT"],
+ ["ja", "ja-JP"],
+ ["nl", "nl-NL"],
+ ["pl", "pl-PL"],
["ru", "ru-RU"],
["sk", "sk-SK"],
+ ["vi", "vi-VN"],
["zh", "zh-CN"],
- ["pl", "pl-PL"],
- ["it", "it-IT"],
- ["nl", "nl-NL"],
];
const ignoreUnused = [
diff --git a/frontend/src/components/LocalePicker.tsx b/frontend/src/components/LocalePicker.tsx
index 5ee44c1e..2d7dbb8d 100644
--- a/frontend/src/components/LocalePicker.tsx
+++ b/frontend/src/components/LocalePicker.tsx
@@ -27,25 +27,24 @@ function LocalePicker({ menuAlign = "start" }: Props) {
-
);
diff --git a/frontend/src/locale/IntlProvider.tsx b/frontend/src/locale/IntlProvider.tsx
index 395f45dc..42b98b65 100755
--- a/frontend/src/locale/IntlProvider.tsx
+++ b/frontend/src/locale/IntlProvider.tsx
@@ -16,82 +16,43 @@ import langZh from "./lang/zh.json";
// not the country code
// Remember when adding to this list, also update check-locales.js script
const localeOptions = [
- ["en", "en-US"],
- ["de", "de-DE"],
- ["es", "es-ES"],
- ["ja", "ja-JP"],
- ["ru", "ru-RU"],
- ["sk", "sk-SK"],
- ["zh", "zh-CN"],
- ["pl", "pl-PL"],
- ["it", "it-IT"],
- ["vi", "vi-VN"],
- ["nl", "nl-NL"],
+ ["en", "en-US", langEn],
+ ["de", "de-DE", langDe],
+ ["es", "es-ES", langEs],
+ ["ja", "ja-JP", langJa],
+ ["it", "it-IT", langIt],
+ ["nl", "nl-NL", langNl],
+ ["pl", "pl-PL", langPl],
+ ["ru", "ru-RU", langRu],
+ ["sk", "sk-SK", langSk],
+ ["vi", "vi-VN", langVi],
+ ["zh", "zh-CN", langZh],
];
const loadMessages = (locale?: string): typeof langList & typeof langEn => {
- const thisLocale = locale || "en";
- switch (thisLocale.slice(0, 2)) {
- case "de":
- return Object.assign({}, langList, langEn, langDe);
- case "es":
- return Object.assign({}, langList, langEn, langEs);
- case "ja":
- return Object.assign({}, langList, langEn, langJa);
- case "ru":
- return Object.assign({}, langList, langEn, langRu);
- case "sk":
- return Object.assign({}, langList, langEn, langSk);
- case "zh":
- return Object.assign({}, langList, langEn, langZh);
- case "pl":
- return Object.assign({}, langList, langEn, langPl);
- case "it":
- return Object.assign({}, langList, langEn, langIt);
- case "vi":
- return Object.assign({}, langList, langEn, langVi);
- case "nl":
- return Object.assign({}, langList, langEn, langNl);
- default:
- return Object.assign({}, langList, langEn);
+ const thisLocale = (locale || "en").slice(0, 2);
+
+ // ensure this lang exists in localeOptions above, otherwise fallback to en
+ if (thisLocale === "en" || !localeOptions.some(([code]) => code === thisLocale)) {
+ return Object.assign({}, langList, langEn);
}
+
+ return Object.assign({}, langList, langEn, localeOptions.find(([code]) => code === thisLocale)?.[2]);
};
const getFlagCodeForLocale = (locale?: string) => {
- switch (locale) {
- case "es-ES":
- case "es":
- return "ES";
- case "de-DE":
- case "de":
- return "DE";
- case "ja-JP":
- case "ja":
- return "JP";
- case "ru-RU":
- case "ru":
- return "RU";
- case "sk-SK":
- case "sk":
- return "SK";
- case "zh":
- case "zh-CN":
- return "CN";
- case "pl":
- case "pl-PL":
- return "PL";
- case "it":
- case "it-IT":
- return "IT";
- case "vi":
- case "vi-VN":
- return "VN";
- case "nl":
- case "nl-NL":
- return "NL";
- default:
- return "EN";
+ const thisLocale = (locale || "en").slice(0, 2);
+
+ // only add to this if your flag is different from the locale code
+ const specialCases: Record = {
+ ja: "jp", // Japan
+ zh: "cn", // China
+ };
+
+ if (specialCases[thisLocale]) {
+ return specialCases[thisLocale].toUpperCase();
}
+ return thisLocale.toUpperCase();
};
const getLocale = (short = false) => {
@@ -112,10 +73,7 @@ const getLocale = (short = false) => {
const cache = createIntlCache();
const initialMessages = loadMessages(getLocale());
-let intl = createIntl(
- { locale: getLocale(), messages: initialMessages },
- cache,
-);
+let intl = createIntl({ locale: getLocale(), messages: initialMessages }, cache);
const changeLocale = (locale: string): void => {
const messages = loadMessages(locale);
@@ -155,12 +113,6 @@ const T = ({
);
};
-export {
- localeOptions,
- getFlagCodeForLocale,
- getLocale,
- createIntl,
- changeLocale,
- intl,
- T,
-};
+console.log("L:", localeOptions);
+
+export { localeOptions, getFlagCodeForLocale, getLocale, createIntl, changeLocale, intl, T };
diff --git a/frontend/src/locale/src/en.json b/frontend/src/locale/src/en.json
index 5873fe0a..355d0db7 100644
--- a/frontend/src/locale/src/en.json
+++ b/frontend/src/locale/src/en.json
@@ -1,7 +1,4 @@
{
- "aaccess-list.rule-source.placeholder": {
- "defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32"
- },
"access-list": {
"defaultMessage": "Access List"
},
@@ -26,6 +23,9 @@
"access-list.public.subtitle": {
"defaultMessage": "No basic auth required"
},
+ "access-list.rule-source.placeholder": {
+ "defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32"
+ },
"access-list.satisfy-any": {
"defaultMessage": "Satisfy Any"
},
diff --git a/frontend/src/locale/src/it.json b/frontend/src/locale/src/it.json
index 064df042..3301218f 100644
--- a/frontend/src/locale/src/it.json
+++ b/frontend/src/locale/src/it.json
@@ -1,647 +1,647 @@
-{
- "access-list": {
- "defaultMessage": "Lista di Accesso"
- },
- "access-list.access-count": {
- "defaultMessage": "{count} {count, plural, one {Regola} other {Regole}}"
- },
- "access-list.auth-count": {
- "defaultMessage": "{count} {count, plural, one {Utente} other {Utenti}}"
- },
- "access-list.help-rules-last": {
- "defaultMessage": "Quando esiste almeno 1 regola, questa regola di negazione verrà aggiunta per ultima"
- },
- "access-list.help.rules-order": {
- "defaultMessage": "Nota che le direttive di allow e deny saranno applicate nell'ordine in cui sono definite."
- },
- "access-list.pass-auth": {
- "defaultMessage": "Passa Autenticazione all'Upstream"
- },
- "access-list.public": {
- "defaultMessage": "Accessibile Pubblicamente"
- },
- "access-list.public.subtitle": {
- "defaultMessage": "Nessuna autenticazione base richiesta"
- },
- "access-list.satisfy-any": {
- "defaultMessage": "Soddisfa Qualsiasi"
- },
- "access-list.subtitle": {
- "defaultMessage": "{users} {users, plural, one {Utente} other {Utenti}}, {rules} {rules, plural, one {Regola} other {Regole}} - Creato: {date}"
- },
- "access-lists": {
- "defaultMessage": "Liste di Accesso"
- },
- "action.add": {
- "defaultMessage": "Aggiungi"
- },
- "action.add-location": {
- "defaultMessage": "Aggiungi Percorso"
- },
- "action.close": {
- "defaultMessage": "Chiudi"
- },
- "action.delete": {
- "defaultMessage": "Elimina"
- },
- "action.disable": {
- "defaultMessage": "Disabilita"
- },
- "action.download": {
- "defaultMessage": "Scarica"
- },
- "action.edit": {
- "defaultMessage": "Modifica"
- },
- "action.enable": {
- "defaultMessage": "Abilita"
- },
- "action.permissions": {
- "defaultMessage": "Permessi"
- },
- "action.renew": {
- "defaultMessage": "Rinnova"
- },
- "action.view-details": {
- "defaultMessage": "Visualizza Dettagli"
- },
- "auditlogs": {
- "defaultMessage": "Log di Audit"
- },
- "cancel": {
- "defaultMessage": "Annulla"
- },
- "certificate": {
- "defaultMessage": "Certificato"
- },
- "certificate.custom-certificate": {
- "defaultMessage": "Certificato"
- },
- "certificate.custom-certificate-key": {
- "defaultMessage": "Chiave del Certificato"
- },
- "certificate.custom-intermediate": {
- "defaultMessage": "Certificato Intermedio"
- },
- "certificate.in-use": {
- "defaultMessage": "In Uso"
- },
- "certificate.none.subtitle": {
- "defaultMessage": "Nessun certificato assegnato"
- },
- "certificate.none.subtitle.for-http": {
- "defaultMessage": "Questo host non utilizzerà HTTPS"
- },
- "certificate.none.title": {
- "defaultMessage": "Nessuno"
- },
- "certificate.not-in-use": {
- "defaultMessage": "Non in Uso"
- },
- "certificate.renew": {
- "defaultMessage": "Rinnova Certificato"
- },
- "certificates": {
- "defaultMessage": "Certificati"
- },
- "certificates.custom": {
- "defaultMessage": "Certificato Personalizzato"
- },
- "certificates.custom.warning": {
- "defaultMessage": "I file di chiave protetti da passphrase non sono supportati."
- },
- "certificates.dns.credentials": {
- "defaultMessage": "Contenuto File Credenziali"
- },
- "certificates.dns.credentials-note": {
- "defaultMessage": "Questo plugin richiede un file di configurazione contenente un token API o altre credenziali per il tuo provider"
- },
- "certificates.dns.credentials-warning": {
- "defaultMessage": "Questi dati saranno memorizzati in chiaro nel database e in un file!"
- },
- "certificates.dns.propagation-seconds": {
- "defaultMessage": "Secondi di Propagazione"
- },
- "certificates.dns.propagation-seconds-note": {
- "defaultMessage": "Lascia vuoto per usare il valore predefinito del plugin. Numero di secondi da attendere per la propagazione DNS."
- },
- "certificates.dns.provider": {
- "defaultMessage": "Provider DNS"
- },
- "certificates.dns.warning": {
- "defaultMessage": "Questa sezione richiede conoscenze su Certbot e i relativi plugin DNS. Consulta la documentazione del plugin."
- },
- "certificates.http.reachability-404": {
- "defaultMessage": "È stato trovato un server su questo dominio, ma non sembra essere Nginx Proxy Manager. Assicurati che il dominio punti all'IP dove è in esecuzione NPM."
- },
- "certificates.http.reachability-failed-to-check": {
- "defaultMessage": "Verifica di raggiungibilità fallita per errore di comunicazione con site24x7.com."
- },
- "certificates.http.reachability-not-resolved": {
- "defaultMessage": "Nessun server disponibile su questo dominio. Assicurati che il dominio esista e punti all'IP corretto e che la porta 80 sia inoltrata."
- },
- "certificates.http.reachability-ok": {
- "defaultMessage": "Il server è raggiungibile e la creazione dei certificati è possibile."
- },
- "certificates.http.reachability-other": {
- "defaultMessage": "È stato trovato un server su questo dominio ma ha restituito un codice di stato imprevisto {code}. È il server NPM? Controlla che il dominio punti correttamente all'IP."
- },
- "certificates.http.reachability-wrong-data": {
- "defaultMessage": "È stato trovato un server su questo dominio ma ha restituito dati imprevisti. È il server NPM? Controlla che il dominio punti correttamente all'IP."
- },
- "certificates.http.test-results": {
- "defaultMessage": "Risultati Test"
- },
- "certificates.http.warning": {
- "defaultMessage": "Questi domini devono già essere configurati per puntare a questa installazione."
- },
- "certificates.request.subtitle": {
- "defaultMessage": "con Let's Encrypt"
- },
- "certificates.request.title": {
- "defaultMessage": "Richiedi un nuovo Certificato"
- },
- "column.access": {
- "defaultMessage": "Accesso"
- },
- "column.authorization": {
- "defaultMessage": "Autorizzazione"
- },
- "column.authorizations": {
- "defaultMessage": "Autorizzazioni"
- },
- "column.custom-locations": {
- "defaultMessage": "Percorsi Personalizzati"
- },
- "column.destination": {
- "defaultMessage": "Destinazione"
- },
- "column.details": {
- "defaultMessage": "Dettagli"
- },
- "column.email": {
- "defaultMessage": "Email"
- },
- "column.event": {
- "defaultMessage": "Evento"
- },
- "column.expires": {
- "defaultMessage": "Scadenza"
- },
- "column.http-code": {
- "defaultMessage": "Codice HTTP"
- },
- "column.incoming-port": {
- "defaultMessage": "Porta in Ingresso"
- },
- "column.name": {
- "defaultMessage": "Nome"
- },
- "column.protocol": {
- "defaultMessage": "Protocollo"
- },
- "column.provider": {
- "defaultMessage": "Provider"
- },
- "column.roles": {
- "defaultMessage": "Ruoli"
- },
- "column.rules": {
- "defaultMessage": "Regole"
- },
- "column.satisfy": {
- "defaultMessage": "Condizione"
- },
- "column.satisfy-all": {
- "defaultMessage": "Tutte"
- },
- "column.satisfy-any": {
- "defaultMessage": "Qualsiasi"
- },
- "column.scheme": {
- "defaultMessage": "Schema"
- },
- "column.source": {
- "defaultMessage": "Origine"
- },
- "column.ssl": {
- "defaultMessage": "SSL"
- },
- "column.status": {
- "defaultMessage": "Stato"
- },
- "created-on": {
- "defaultMessage": "Creato: {date}"
- },
- "dashboard": {
- "defaultMessage": "Dashboard"
- },
- "dead-host": {
- "defaultMessage": "Host 404"
- },
- "dead-hosts": {
- "defaultMessage": "Hosts 404"
- },
- "dead-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Host 404} other {Hosts 404}}"
- },
- "disabled": {
- "defaultMessage": "Disabilitato"
- },
- "domain-names": {
- "defaultMessage": "Nomi di Dominio"
- },
- "domain-names.max": {
- "defaultMessage": "Massimo {count} nomi di dominio"
- },
- "domain-names.placeholder": {
- "defaultMessage": "Inizia a digitare per aggiungere un dominio..."
- },
- "domain-names.wildcards-not-permitted": {
- "defaultMessage": "Wildcard non consentite per questo tipo"
- },
- "domain-names.wildcards-not-supported": {
- "defaultMessage": "Wildcard non supportate per questa CA"
- },
- "domains.force-ssl": {
- "defaultMessage": "Forza SSL"
- },
- "domains.hsts-enabled": {
- "defaultMessage": "HSTS Abilitato"
- },
- "domains.hsts-subdomains": {
- "defaultMessage": "Sottodomini HSTS"
- },
- "domains.http2-support": {
- "defaultMessage": "Supporto HTTP/2"
- },
- "domains.use-dns": {
- "defaultMessage": "Usa Challenge DNS"
- },
- "email-address": {
- "defaultMessage": "Indirizzo Email"
- },
- "empty-search": {
- "defaultMessage": "Nessun risultato trovato"
- },
- "empty-subtitle": {
- "defaultMessage": "Perché non ne crei uno?"
- },
- "enabled": {
- "defaultMessage": "Abilitato"
- },
- "error.access.at-least-one": {
- "defaultMessage": "È richiesta almeno un'Autorizzazione o una Regola di Accesso"
- },
- "error.access.duplicate-usernames": {
- "defaultMessage": "I nomi utente devono essere unici"
- },
- "error.invalid-auth": {
- "defaultMessage": "Email o password non validi"
- },
- "error.invalid-domain": {
- "defaultMessage": "Dominio non valido: {domain}"
- },
- "error.invalid-email": {
- "defaultMessage": "Indirizzo email non valido"
- },
- "error.max-character-length": {
- "defaultMessage": "Lunghezza massima {max} caratter{max, plural, one {e} other {i}}"
- },
- "error.max-domains": {
- "defaultMessage": "Troppi domini, massimo {max}"
- },
- "error.maximum": {
- "defaultMessage": "Massimo {max}"
- },
- "error.min-character-length": {
- "defaultMessage": "Lunghezza minima {min} caratter{min, plural, one {e} other {i}}"
- },
- "error.minimum": {
- "defaultMessage": "Minimo {min}"
- },
- "error.passwords-must-match": {
- "defaultMessage": "Le password devono coincidere"
- },
- "error.required": {
- "defaultMessage": "Campo obbligatorio"
- },
- "expires.on": {
- "defaultMessage": "Scade: {date}"
- },
- "footer.github-fork": {
- "defaultMessage": "Forkami su GitHub"
- },
- "host.flags.block-exploits": {
- "defaultMessage": "Blocca Exploit Comuni"
- },
- "host.flags.cache-assets": {
- "defaultMessage": "Cache degli Asset"
- },
- "host.flags.preserve-path": {
- "defaultMessage": "Preserva Percorso"
- },
- "host.flags.protocols": {
- "defaultMessage": "Protocolli"
- },
- "host.flags.websockets-upgrade": {
- "defaultMessage": "Supporto WebSockets"
- },
- "host.forward-port": {
- "defaultMessage": "Porta di Destinazione"
- },
- "host.forward-scheme": {
- "defaultMessage": "Schema"
- },
- "hosts": {
- "defaultMessage": "Host"
- },
- "http-only": {
- "defaultMessage": "Solo HTTP"
- },
- "lets-encrypt": {
- "defaultMessage": "Let's Encrypt"
- },
- "lets-encrypt-via-dns": {
- "defaultMessage": "Let's Encrypt via DNS"
- },
- "lets-encrypt-via-http": {
- "defaultMessage": "Let's Encrypt via HTTP"
- },
- "loading": {
- "defaultMessage": "Caricamento…"
- },
- "login.title": {
- "defaultMessage": "Accedi al tuo account"
- },
- "nginx-config.label": {
- "defaultMessage": "Configurazione Nginx Personalizzata"
- },
- "nginx-config.placeholder": {
- "defaultMessage": "# Inserisci qui la configurazione Nginx personalizzata a tuo rischio!"
- },
- "no-permission-error": {
- "defaultMessage": "Non hai accesso per visualizzare questa pagina."
- },
- "notfound.action": {
- "defaultMessage": "Torna alla Home"
- },
- "notfound.content": {
- "defaultMessage": "Spiacenti, la pagina richiesta non è stata trovata"
- },
- "notfound.title": {
- "defaultMessage": "Oops… Hai trovato una pagina di errore"
- },
- "notification.error": {
- "defaultMessage": "Errore"
- },
- "notification.object-deleted": {
- "defaultMessage": "{object} è stato eliminato"
- },
- "notification.object-disabled": {
- "defaultMessage": "{object} è stato disabilitato"
- },
- "notification.object-enabled": {
- "defaultMessage": "{object} è stato abilitato"
- },
- "notification.object-renewed": {
- "defaultMessage": "{object} è stato rinnovato"
- },
- "notification.object-saved": {
- "defaultMessage": "{object} è stato salvato"
- },
- "notification.success": {
- "defaultMessage": "Successo"
- },
- "object.actions-title": {
- "defaultMessage": "{object} #{id}"
- },
- "object.add": {
- "defaultMessage": "Aggiungi {object}"
- },
- "object.delete": {
- "defaultMessage": "Elimina {object}"
- },
- "object.delete.content": {
- "defaultMessage": "Sei sicuro di voler eliminare questo {object}?"
- },
- "object.edit": {
- "defaultMessage": "Modifica {object}"
- },
- "object.empty": {
- "defaultMessage": "Nessun {objects} presente"
- },
- "object.event.created": {
- "defaultMessage": "{object} creato"
- },
- "object.event.deleted": {
- "defaultMessage": "{object} eliminato"
- },
- "object.event.disabled": {
- "defaultMessage": "{object} disabilitato"
- },
- "object.event.enabled": {
- "defaultMessage": "{object} abilitato"
- },
- "object.event.renewed": {
- "defaultMessage": "{object} rinnovato"
- },
- "object.event.updated": {
- "defaultMessage": "{object} aggiornato"
- },
- "offline": {
- "defaultMessage": "Offline"
- },
- "online": {
- "defaultMessage": "Online"
- },
- "options": {
- "defaultMessage": "Opzioni"
- },
- "password": {
- "defaultMessage": "Password"
- },
- "password.generate": {
- "defaultMessage": "Genera password casuale"
- },
- "password.hide": {
- "defaultMessage": "Nascondi Password"
- },
- "password.show": {
- "defaultMessage": "Mostra Password"
- },
- "permissions.hidden": {
- "defaultMessage": "Nascosto"
- },
- "permissions.manage": {
- "defaultMessage": "Gestisci"
- },
- "permissions.view": {
- "defaultMessage": "Sola Lettura"
- },
- "permissions.visibility.all": {
- "defaultMessage": "Tutti gli Elementi"
- },
- "permissions.visibility.title": {
- "defaultMessage": "Visibilità Elementi"
- },
- "permissions.visibility.user": {
- "defaultMessage": "Solo Elementi Creati"
- },
- "proxy-host": {
- "defaultMessage": "Proxy Host"
- },
- "proxy-host.forward-host": {
- "defaultMessage": "Hostname / IP di Destinazione"
- },
- "proxy-hosts": {
- "defaultMessage": "Proxy Hosts"
- },
- "proxy-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Host Proxy} other {Host Proxy}}"
- },
- "public": {
- "defaultMessage": "Pubblico"
- },
- "redirection-host": {
- "defaultMessage": "Host di Reindirizzamento"
- },
- "redirection-host.forward-domain": {
- "defaultMessage": "Dominio di Destinazione"
- },
- "redirection-host.forward-http-code": {
- "defaultMessage": "Codice HTTP"
- },
- "redirection-hosts": {
- "defaultMessage": "Host di Reindirizzamento"
- },
- "redirection-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Host di Reindirizzamento} other {Host di Reindirizzamento}}"
- },
- "role.admin": {
- "defaultMessage": "Amministratore"
- },
- "role.standard-user": {
- "defaultMessage": "Utente Standard"
- },
- "save": {
- "defaultMessage": "Salva"
- },
- "setting": {
- "defaultMessage": "Impostazione"
- },
- "settings": {
- "defaultMessage": "Impostazioni"
- },
- "settings.default-site": {
- "defaultMessage": "Sito Predefinito"
- },
- "settings.default-site.404": {
- "defaultMessage": "Pagina 404"
- },
- "settings.default-site.444": {
- "defaultMessage": "Nessuna Risposta (444)"
- },
- "settings.default-site.congratulations": {
- "defaultMessage": "Pagina di Congratulazioni"
- },
- "settings.default-site.description": {
- "defaultMessage": "Cosa mostrare quando Nginx riceve una richiesta da un host sconosciuto"
- },
- "settings.default-site.html": {
- "defaultMessage": "HTML Personalizzato"
- },
- "settings.default-site.html.placeholder": {
- "defaultMessage": ""
- },
- "settings.default-site.redirect": {
- "defaultMessage": "Reindirizza"
- },
- "setup.preamble": {
- "defaultMessage": "Inizia creando il tuo account amministratore."
- },
- "setup.title": {
- "defaultMessage": "Benvenuto!"
- },
- "sign-in": {
- "defaultMessage": "Accedi"
- },
- "ssl-certificate": {
- "defaultMessage": "Certificato SSL"
- },
- "stream": {
- "defaultMessage": "Stream"
- },
- "stream.forward-host": {
- "defaultMessage": "Host di Destinazione"
- },
- "stream.incoming-port": {
- "defaultMessage": "Porta in Ingresso"
- },
- "streams": {
- "defaultMessage": "Stream"
- },
- "streams.count": {
- "defaultMessage": "{count} {count, plural, one {Stream} other {Stream}}"
- },
- "streams.tcp": {
- "defaultMessage": "TCP"
- },
- "streams.udp": {
- "defaultMessage": "UDP"
- },
- "test": {
- "defaultMessage": "Test"
- },
- "update-available": {
- "defaultMessage": "Aggiornamento Disponibile: {latestVersion}"
- },
- "user": {
- "defaultMessage": "Utente"
- },
- "user.change-password": {
- "defaultMessage": "Cambia Password"
- },
- "user.confirm-password": {
- "defaultMessage": "Conferma Password"
- },
- "user.current-password": {
- "defaultMessage": "Password Attuale"
- },
- "user.edit-profile": {
- "defaultMessage": "Modifica Profilo"
- },
- "user.full-name": {
- "defaultMessage": "Nome Completo"
- },
- "user.login-as": {
- "defaultMessage": "Accedi come {name}"
- },
- "user.logout": {
- "defaultMessage": "Disconnetti"
- },
- "user.new-password": {
- "defaultMessage": "Nuova Password"
- },
- "user.nickname": {
- "defaultMessage": "Soprannome"
- },
- "user.set-password": {
- "defaultMessage": "Imposta Password"
- },
- "user.set-permissions": {
- "defaultMessage": "Imposta Permessi per {name}"
- },
- "user.switch-dark": {
- "defaultMessage": "Passa alla modalità Scura"
- },
- "user.switch-light": {
- "defaultMessage": "Passa alla modalità Chiara"
- },
- "username": {
- "defaultMessage": "Nome Utente"
- },
- "users": {
- "defaultMessage": "Utenti"
- }
-}
+{
+ "access-list": {
+ "defaultMessage": "Lista di Accesso"
+ },
+ "access-list.access-count": {
+ "defaultMessage": "{count} {count, plural, one {Regola} other {Regole}}"
+ },
+ "access-list.auth-count": {
+ "defaultMessage": "{count} {count, plural, one {Utente} other {Utenti}}"
+ },
+ "access-list.help-rules-last": {
+ "defaultMessage": "Quando esiste almeno 1 regola, questa regola di negazione verrà aggiunta per ultima"
+ },
+ "access-list.help.rules-order": {
+ "defaultMessage": "Nota che le direttive di allow e deny saranno applicate nell'ordine in cui sono definite."
+ },
+ "access-list.pass-auth": {
+ "defaultMessage": "Passa Autenticazione all'Upstream"
+ },
+ "access-list.public": {
+ "defaultMessage": "Accessibile Pubblicamente"
+ },
+ "access-list.public.subtitle": {
+ "defaultMessage": "Nessuna autenticazione base richiesta"
+ },
+ "access-list.satisfy-any": {
+ "defaultMessage": "Soddisfa Qualsiasi"
+ },
+ "access-list.subtitle": {
+ "defaultMessage": "{users} {users, plural, one {Utente} other {Utenti}}, {rules} {rules, plural, one {Regola} other {Regole}} - Creato: {date}"
+ },
+ "access-lists": {
+ "defaultMessage": "Liste di Accesso"
+ },
+ "action.add": {
+ "defaultMessage": "Aggiungi"
+ },
+ "action.add-location": {
+ "defaultMessage": "Aggiungi Percorso"
+ },
+ "action.close": {
+ "defaultMessage": "Chiudi"
+ },
+ "action.delete": {
+ "defaultMessage": "Elimina"
+ },
+ "action.disable": {
+ "defaultMessage": "Disabilita"
+ },
+ "action.download": {
+ "defaultMessage": "Scarica"
+ },
+ "action.edit": {
+ "defaultMessage": "Modifica"
+ },
+ "action.enable": {
+ "defaultMessage": "Abilita"
+ },
+ "action.permissions": {
+ "defaultMessage": "Permessi"
+ },
+ "action.renew": {
+ "defaultMessage": "Rinnova"
+ },
+ "action.view-details": {
+ "defaultMessage": "Visualizza Dettagli"
+ },
+ "auditlogs": {
+ "defaultMessage": "Log di Audit"
+ },
+ "cancel": {
+ "defaultMessage": "Annulla"
+ },
+ "certificate": {
+ "defaultMessage": "Certificato"
+ },
+ "certificate.custom-certificate": {
+ "defaultMessage": "Certificato"
+ },
+ "certificate.custom-certificate-key": {
+ "defaultMessage": "Chiave del Certificato"
+ },
+ "certificate.custom-intermediate": {
+ "defaultMessage": "Certificato Intermedio"
+ },
+ "certificate.in-use": {
+ "defaultMessage": "In Uso"
+ },
+ "certificate.none.subtitle": {
+ "defaultMessage": "Nessun certificato assegnato"
+ },
+ "certificate.none.subtitle.for-http": {
+ "defaultMessage": "Questo host non utilizzerà HTTPS"
+ },
+ "certificate.none.title": {
+ "defaultMessage": "Nessuno"
+ },
+ "certificate.not-in-use": {
+ "defaultMessage": "Non in Uso"
+ },
+ "certificate.renew": {
+ "defaultMessage": "Rinnova Certificato"
+ },
+ "certificates": {
+ "defaultMessage": "Certificati"
+ },
+ "certificates.custom": {
+ "defaultMessage": "Certificato Personalizzato"
+ },
+ "certificates.custom.warning": {
+ "defaultMessage": "I file di chiave protetti da passphrase non sono supportati."
+ },
+ "certificates.dns.credentials": {
+ "defaultMessage": "Contenuto File Credenziali"
+ },
+ "certificates.dns.credentials-note": {
+ "defaultMessage": "Questo plugin richiede un file di configurazione contenente un token API o altre credenziali per il tuo provider"
+ },
+ "certificates.dns.credentials-warning": {
+ "defaultMessage": "Questi dati saranno memorizzati in chiaro nel database e in un file!"
+ },
+ "certificates.dns.propagation-seconds": {
+ "defaultMessage": "Secondi di Propagazione"
+ },
+ "certificates.dns.propagation-seconds-note": {
+ "defaultMessage": "Lascia vuoto per usare il valore predefinito del plugin. Numero di secondi da attendere per la propagazione DNS."
+ },
+ "certificates.dns.provider": {
+ "defaultMessage": "Provider DNS"
+ },
+ "certificates.dns.warning": {
+ "defaultMessage": "Questa sezione richiede conoscenze su Certbot e i relativi plugin DNS. Consulta la documentazione del plugin."
+ },
+ "certificates.http.reachability-404": {
+ "defaultMessage": "È stato trovato un server su questo dominio, ma non sembra essere Nginx Proxy Manager. Assicurati che il dominio punti all'IP dove è in esecuzione NPM."
+ },
+ "certificates.http.reachability-failed-to-check": {
+ "defaultMessage": "Verifica di raggiungibilità fallita per errore di comunicazione con site24x7.com."
+ },
+ "certificates.http.reachability-not-resolved": {
+ "defaultMessage": "Nessun server disponibile su questo dominio. Assicurati che il dominio esista e punti all'IP corretto e che la porta 80 sia inoltrata."
+ },
+ "certificates.http.reachability-ok": {
+ "defaultMessage": "Il server è raggiungibile e la creazione dei certificati è possibile."
+ },
+ "certificates.http.reachability-other": {
+ "defaultMessage": "È stato trovato un server su questo dominio ma ha restituito un codice di stato imprevisto {code}. È il server NPM? Controlla che il dominio punti correttamente all'IP."
+ },
+ "certificates.http.reachability-wrong-data": {
+ "defaultMessage": "È stato trovato un server su questo dominio ma ha restituito dati imprevisti. È il server NPM? Controlla che il dominio punti correttamente all'IP."
+ },
+ "certificates.http.test-results": {
+ "defaultMessage": "Risultati Test"
+ },
+ "certificates.http.warning": {
+ "defaultMessage": "Questi domini devono già essere configurati per puntare a questa installazione."
+ },
+ "certificates.request.subtitle": {
+ "defaultMessage": "con Let's Encrypt"
+ },
+ "certificates.request.title": {
+ "defaultMessage": "Richiedi un nuovo Certificato"
+ },
+ "column.access": {
+ "defaultMessage": "Accesso"
+ },
+ "column.authorization": {
+ "defaultMessage": "Autorizzazione"
+ },
+ "column.authorizations": {
+ "defaultMessage": "Autorizzazioni"
+ },
+ "column.custom-locations": {
+ "defaultMessage": "Percorsi Personalizzati"
+ },
+ "column.destination": {
+ "defaultMessage": "Destinazione"
+ },
+ "column.details": {
+ "defaultMessage": "Dettagli"
+ },
+ "column.email": {
+ "defaultMessage": "Email"
+ },
+ "column.event": {
+ "defaultMessage": "Evento"
+ },
+ "column.expires": {
+ "defaultMessage": "Scadenza"
+ },
+ "column.http-code": {
+ "defaultMessage": "Codice HTTP"
+ },
+ "column.incoming-port": {
+ "defaultMessage": "Porta in Ingresso"
+ },
+ "column.name": {
+ "defaultMessage": "Nome"
+ },
+ "column.protocol": {
+ "defaultMessage": "Protocollo"
+ },
+ "column.provider": {
+ "defaultMessage": "Provider"
+ },
+ "column.roles": {
+ "defaultMessage": "Ruoli"
+ },
+ "column.rules": {
+ "defaultMessage": "Regole"
+ },
+ "column.satisfy": {
+ "defaultMessage": "Condizione"
+ },
+ "column.satisfy-all": {
+ "defaultMessage": "Tutte"
+ },
+ "column.satisfy-any": {
+ "defaultMessage": "Qualsiasi"
+ },
+ "column.scheme": {
+ "defaultMessage": "Schema"
+ },
+ "column.source": {
+ "defaultMessage": "Origine"
+ },
+ "column.ssl": {
+ "defaultMessage": "SSL"
+ },
+ "column.status": {
+ "defaultMessage": "Stato"
+ },
+ "created-on": {
+ "defaultMessage": "Creato: {date}"
+ },
+ "dashboard": {
+ "defaultMessage": "Dashboard"
+ },
+ "dead-host": {
+ "defaultMessage": "Host 404"
+ },
+ "dead-hosts": {
+ "defaultMessage": "Hosts 404"
+ },
+ "dead-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Host 404} other {Hosts 404}}"
+ },
+ "disabled": {
+ "defaultMessage": "Disabilitato"
+ },
+ "domain-names": {
+ "defaultMessage": "Nomi di Dominio"
+ },
+ "domain-names.max": {
+ "defaultMessage": "Massimo {count} nomi di dominio"
+ },
+ "domain-names.placeholder": {
+ "defaultMessage": "Inizia a digitare per aggiungere un dominio..."
+ },
+ "domain-names.wildcards-not-permitted": {
+ "defaultMessage": "Wildcard non consentite per questo tipo"
+ },
+ "domain-names.wildcards-not-supported": {
+ "defaultMessage": "Wildcard non supportate per questa CA"
+ },
+ "domains.force-ssl": {
+ "defaultMessage": "Forza SSL"
+ },
+ "domains.hsts-enabled": {
+ "defaultMessage": "HSTS Abilitato"
+ },
+ "domains.hsts-subdomains": {
+ "defaultMessage": "Sottodomini HSTS"
+ },
+ "domains.http2-support": {
+ "defaultMessage": "Supporto HTTP/2"
+ },
+ "domains.use-dns": {
+ "defaultMessage": "Usa Challenge DNS"
+ },
+ "email-address": {
+ "defaultMessage": "Indirizzo Email"
+ },
+ "empty-search": {
+ "defaultMessage": "Nessun risultato trovato"
+ },
+ "empty-subtitle": {
+ "defaultMessage": "Perché non ne crei uno?"
+ },
+ "enabled": {
+ "defaultMessage": "Abilitato"
+ },
+ "error.access.at-least-one": {
+ "defaultMessage": "È richiesta almeno un'Autorizzazione o una Regola di Accesso"
+ },
+ "error.access.duplicate-usernames": {
+ "defaultMessage": "I nomi utente devono essere unici"
+ },
+ "error.invalid-auth": {
+ "defaultMessage": "Email o password non validi"
+ },
+ "error.invalid-domain": {
+ "defaultMessage": "Dominio non valido: {domain}"
+ },
+ "error.invalid-email": {
+ "defaultMessage": "Indirizzo email non valido"
+ },
+ "error.max-character-length": {
+ "defaultMessage": "Lunghezza massima {max} caratter{max, plural, one {e} other {i}}"
+ },
+ "error.max-domains": {
+ "defaultMessage": "Troppi domini, massimo {max}"
+ },
+ "error.maximum": {
+ "defaultMessage": "Massimo {max}"
+ },
+ "error.min-character-length": {
+ "defaultMessage": "Lunghezza minima {min} caratter{min, plural, one {e} other {i}}"
+ },
+ "error.minimum": {
+ "defaultMessage": "Minimo {min}"
+ },
+ "error.passwords-must-match": {
+ "defaultMessage": "Le password devono coincidere"
+ },
+ "error.required": {
+ "defaultMessage": "Campo obbligatorio"
+ },
+ "expires.on": {
+ "defaultMessage": "Scade: {date}"
+ },
+ "footer.github-fork": {
+ "defaultMessage": "Forkami su GitHub"
+ },
+ "host.flags.block-exploits": {
+ "defaultMessage": "Blocca Exploit Comuni"
+ },
+ "host.flags.cache-assets": {
+ "defaultMessage": "Cache degli Asset"
+ },
+ "host.flags.preserve-path": {
+ "defaultMessage": "Preserva Percorso"
+ },
+ "host.flags.protocols": {
+ "defaultMessage": "Protocolli"
+ },
+ "host.flags.websockets-upgrade": {
+ "defaultMessage": "Supporto WebSockets"
+ },
+ "host.forward-port": {
+ "defaultMessage": "Porta di Destinazione"
+ },
+ "host.forward-scheme": {
+ "defaultMessage": "Schema"
+ },
+ "hosts": {
+ "defaultMessage": "Host"
+ },
+ "http-only": {
+ "defaultMessage": "Solo HTTP"
+ },
+ "lets-encrypt": {
+ "defaultMessage": "Let's Encrypt"
+ },
+ "lets-encrypt-via-dns": {
+ "defaultMessage": "Let's Encrypt via DNS"
+ },
+ "lets-encrypt-via-http": {
+ "defaultMessage": "Let's Encrypt via HTTP"
+ },
+ "loading": {
+ "defaultMessage": "Caricamento…"
+ },
+ "login.title": {
+ "defaultMessage": "Accedi al tuo account"
+ },
+ "nginx-config.label": {
+ "defaultMessage": "Configurazione Nginx Personalizzata"
+ },
+ "nginx-config.placeholder": {
+ "defaultMessage": "# Inserisci qui la configurazione Nginx personalizzata a tuo rischio!"
+ },
+ "no-permission-error": {
+ "defaultMessage": "Non hai accesso per visualizzare questa pagina."
+ },
+ "notfound.action": {
+ "defaultMessage": "Torna alla Home"
+ },
+ "notfound.content": {
+ "defaultMessage": "Spiacenti, la pagina richiesta non è stata trovata"
+ },
+ "notfound.title": {
+ "defaultMessage": "Oops… Hai trovato una pagina di errore"
+ },
+ "notification.error": {
+ "defaultMessage": "Errore"
+ },
+ "notification.object-deleted": {
+ "defaultMessage": "{object} è stato eliminato"
+ },
+ "notification.object-disabled": {
+ "defaultMessage": "{object} è stato disabilitato"
+ },
+ "notification.object-enabled": {
+ "defaultMessage": "{object} è stato abilitato"
+ },
+ "notification.object-renewed": {
+ "defaultMessage": "{object} è stato rinnovato"
+ },
+ "notification.object-saved": {
+ "defaultMessage": "{object} è stato salvato"
+ },
+ "notification.success": {
+ "defaultMessage": "Successo"
+ },
+ "object.actions-title": {
+ "defaultMessage": "{object} #{id}"
+ },
+ "object.add": {
+ "defaultMessage": "Aggiungi {object}"
+ },
+ "object.delete": {
+ "defaultMessage": "Elimina {object}"
+ },
+ "object.delete.content": {
+ "defaultMessage": "Sei sicuro di voler eliminare questo {object}?"
+ },
+ "object.edit": {
+ "defaultMessage": "Modifica {object}"
+ },
+ "object.empty": {
+ "defaultMessage": "Nessun {objects} presente"
+ },
+ "object.event.created": {
+ "defaultMessage": "{object} creato"
+ },
+ "object.event.deleted": {
+ "defaultMessage": "{object} eliminato"
+ },
+ "object.event.disabled": {
+ "defaultMessage": "{object} disabilitato"
+ },
+ "object.event.enabled": {
+ "defaultMessage": "{object} abilitato"
+ },
+ "object.event.renewed": {
+ "defaultMessage": "{object} rinnovato"
+ },
+ "object.event.updated": {
+ "defaultMessage": "{object} aggiornato"
+ },
+ "offline": {
+ "defaultMessage": "Offline"
+ },
+ "online": {
+ "defaultMessage": "Online"
+ },
+ "options": {
+ "defaultMessage": "Opzioni"
+ },
+ "password": {
+ "defaultMessage": "Password"
+ },
+ "password.generate": {
+ "defaultMessage": "Genera password casuale"
+ },
+ "password.hide": {
+ "defaultMessage": "Nascondi Password"
+ },
+ "password.show": {
+ "defaultMessage": "Mostra Password"
+ },
+ "permissions.hidden": {
+ "defaultMessage": "Nascosto"
+ },
+ "permissions.manage": {
+ "defaultMessage": "Gestisci"
+ },
+ "permissions.view": {
+ "defaultMessage": "Sola Lettura"
+ },
+ "permissions.visibility.all": {
+ "defaultMessage": "Tutti gli Elementi"
+ },
+ "permissions.visibility.title": {
+ "defaultMessage": "Visibilità Elementi"
+ },
+ "permissions.visibility.user": {
+ "defaultMessage": "Solo Elementi Creati"
+ },
+ "proxy-host": {
+ "defaultMessage": "Proxy Host"
+ },
+ "proxy-host.forward-host": {
+ "defaultMessage": "Hostname / IP di Destinazione"
+ },
+ "proxy-hosts": {
+ "defaultMessage": "Proxy Hosts"
+ },
+ "proxy-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Host Proxy} other {Host Proxy}}"
+ },
+ "public": {
+ "defaultMessage": "Pubblico"
+ },
+ "redirection-host": {
+ "defaultMessage": "Host di Reindirizzamento"
+ },
+ "redirection-host.forward-domain": {
+ "defaultMessage": "Dominio di Destinazione"
+ },
+ "redirection-host.forward-http-code": {
+ "defaultMessage": "Codice HTTP"
+ },
+ "redirection-hosts": {
+ "defaultMessage": "Host di Reindirizzamento"
+ },
+ "redirection-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Host di Reindirizzamento} other {Host di Reindirizzamento}}"
+ },
+ "role.admin": {
+ "defaultMessage": "Amministratore"
+ },
+ "role.standard-user": {
+ "defaultMessage": "Utente Standard"
+ },
+ "save": {
+ "defaultMessage": "Salva"
+ },
+ "setting": {
+ "defaultMessage": "Impostazione"
+ },
+ "settings": {
+ "defaultMessage": "Impostazioni"
+ },
+ "settings.default-site": {
+ "defaultMessage": "Sito Predefinito"
+ },
+ "settings.default-site.404": {
+ "defaultMessage": "Pagina 404"
+ },
+ "settings.default-site.444": {
+ "defaultMessage": "Nessuna Risposta (444)"
+ },
+ "settings.default-site.congratulations": {
+ "defaultMessage": "Pagina di Congratulazioni"
+ },
+ "settings.default-site.description": {
+ "defaultMessage": "Cosa mostrare quando Nginx riceve una richiesta da un host sconosciuto"
+ },
+ "settings.default-site.html": {
+ "defaultMessage": "HTML Personalizzato"
+ },
+ "settings.default-site.html.placeholder": {
+ "defaultMessage": ""
+ },
+ "settings.default-site.redirect": {
+ "defaultMessage": "Reindirizza"
+ },
+ "setup.preamble": {
+ "defaultMessage": "Inizia creando il tuo account amministratore."
+ },
+ "setup.title": {
+ "defaultMessage": "Benvenuto!"
+ },
+ "sign-in": {
+ "defaultMessage": "Accedi"
+ },
+ "ssl-certificate": {
+ "defaultMessage": "Certificato SSL"
+ },
+ "stream": {
+ "defaultMessage": "Stream"
+ },
+ "stream.forward-host": {
+ "defaultMessage": "Host di Destinazione"
+ },
+ "stream.incoming-port": {
+ "defaultMessage": "Porta in Ingresso"
+ },
+ "streams": {
+ "defaultMessage": "Stream"
+ },
+ "streams.count": {
+ "defaultMessage": "{count} {count, plural, one {Stream} other {Stream}}"
+ },
+ "streams.tcp": {
+ "defaultMessage": "TCP"
+ },
+ "streams.udp": {
+ "defaultMessage": "UDP"
+ },
+ "test": {
+ "defaultMessage": "Test"
+ },
+ "update-available": {
+ "defaultMessage": "Aggiornamento Disponibile: {latestVersion}"
+ },
+ "user": {
+ "defaultMessage": "Utente"
+ },
+ "user.change-password": {
+ "defaultMessage": "Cambia Password"
+ },
+ "user.confirm-password": {
+ "defaultMessage": "Conferma Password"
+ },
+ "user.current-password": {
+ "defaultMessage": "Password Attuale"
+ },
+ "user.edit-profile": {
+ "defaultMessage": "Modifica Profilo"
+ },
+ "user.full-name": {
+ "defaultMessage": "Nome Completo"
+ },
+ "user.login-as": {
+ "defaultMessage": "Accedi come {name}"
+ },
+ "user.logout": {
+ "defaultMessage": "Disconnetti"
+ },
+ "user.new-password": {
+ "defaultMessage": "Nuova Password"
+ },
+ "user.nickname": {
+ "defaultMessage": "Soprannome"
+ },
+ "user.set-password": {
+ "defaultMessage": "Imposta Password"
+ },
+ "user.set-permissions": {
+ "defaultMessage": "Imposta Permessi per {name}"
+ },
+ "user.switch-dark": {
+ "defaultMessage": "Passa alla modalità Scura"
+ },
+ "user.switch-light": {
+ "defaultMessage": "Passa alla modalità Chiara"
+ },
+ "username": {
+ "defaultMessage": "Nome Utente"
+ },
+ "users": {
+ "defaultMessage": "Utenti"
+ }
+}
diff --git a/frontend/src/locale/src/vi.json b/frontend/src/locale/src/vi.json
index 8290cd43..fc1ed85b 100644
--- a/frontend/src/locale/src/vi.json
+++ b/frontend/src/locale/src/vi.json
@@ -1,647 +1,647 @@
{
- "access-list": {
- "defaultMessage": "Danh sách truy cập"
- },
- "access-list.access-count": {
- "defaultMessage": "{count} quy tắc"
- },
- "access-list.auth-count": {
- "defaultMessage": "{count} người dùng"
- },
- "access-list.help-rules-last": {
- "defaultMessage": "Quy tắc từ chối tất cả này sẽ được thêm vào cuối khi tồn tại ít nhất 1 quy tắc"
- },
- "access-list.help.rules-order": {
- "defaultMessage": "Các quy tắc cho phép và từ chối sẽ được thực thi theo thứ tự được xác định."
- },
- "access-list.pass-auth": {
- "defaultMessage": "Chuyển xác thực lên thượng nguồn"
- },
- "access-list.public": {
- "defaultMessage": "Có thể truy cập công khai"
- },
- "access-list.public.subtitle": {
- "defaultMessage": "Không cần xác thực cơ bản"
- },
- "access-list.satisfy-any": {
- "defaultMessage": "Thỏa mãn điều kiện bất kỳ"
- },
- "access-list.subtitle": {
- "defaultMessage": "{users} người dùng, {rules} quy tắc - Tạo lúc: {date}"
- },
- "access-lists": {
- "defaultMessage": "Danh sách truy cập"
- },
- "action.add": {
- "defaultMessage": "Thêm"
- },
- "action.add-location": {
- "defaultMessage": "Thêm Vị trí"
- },
- "action.close": {
- "defaultMessage": "Đóng"
- },
- "action.delete": {
- "defaultMessage": "Xóa"
- },
- "action.disable": {
- "defaultMessage": "Tắt"
- },
- "action.download": {
- "defaultMessage": "Tải xuống"
- },
- "action.edit": {
- "defaultMessage": "Chỉnh sửa"
- },
- "action.enable": {
- "defaultMessage": "Bật"
- },
- "action.permissions": {
- "defaultMessage": "Quyền"
- },
- "action.renew": {
- "defaultMessage": "Gia hạn"
- },
- "action.view-details": {
- "defaultMessage": "Xem Chi tiết"
- },
- "auditlogs": {
- "defaultMessage": "Nhật ký kiểm tra"
- },
- "cancel": {
- "defaultMessage": "Hủy"
- },
- "certificate": {
- "defaultMessage": "Chứng chỉ"
- },
- "certificate.custom-certificate": {
- "defaultMessage": "Certificate (crt)"
- },
- "certificate.custom-certificate-key": {
- "defaultMessage": "Certificate Key"
- },
- "certificate.custom-intermediate": {
- "defaultMessage": "Intermediate Certificate"
- },
- "certificate.in-use": {
- "defaultMessage": "Đang sử dụng"
- },
- "certificate.none.subtitle": {
- "defaultMessage": "Không có chứng chỉ nào được chỉ định"
- },
- "certificate.none.subtitle.for-http": {
- "defaultMessage": "Máy chủ này sẽ không sử dụng HTTPS"
- },
- "certificate.none.title": {
- "defaultMessage": "Không có"
- },
- "certificate.not-in-use": {
- "defaultMessage": "Không được dùng"
- },
- "certificate.renew": {
- "defaultMessage": "Gia hạn Chứng chỉ"
- },
- "certificates": {
- "defaultMessage": "Danh sách chứng chỉ"
- },
- "certificates.custom": {
- "defaultMessage": "Chứng chỉ tùy chỉnh"
- },
- "certificates.custom.warning": {
- "defaultMessage": "Các tệp chính được bảo vệ bằng cụm mật khẩu không được hỗ trợ."
- },
- "certificates.dns.credentials": {
- "defaultMessage": "Nội dung tệp thông tin xác thực"
- },
- "certificates.dns.credentials-note": {
- "defaultMessage": "Plugin này yêu cầu tệp cấu hình chứa mã thông báo API hoặc thông tin xác thực khác cho nhà cung cấp của bạn"
- },
- "certificates.dns.credentials-warning": {
- "defaultMessage": "Dữ liệu này sẽ được lưu trữ dưới dạng bản rõ trong cơ sở dữ liệu và trong một tệp!"
- },
- "certificates.dns.propagation-seconds": {
- "defaultMessage": "Thời gian lan truyền (Giây)"
- },
- "certificates.dns.propagation-seconds-note": {
- "defaultMessage": "Để trống để sử dụng giá trị mặc định của plugin. Số giây chờ truyền DNS."
- },
- "certificates.dns.provider": {
- "defaultMessage": "Nhà cung cấp DNS"
- },
- "certificates.dns.warning": {
- "defaultMessage": "Phần này yêu cầu một số kiến thức về Certbot và các plugin DNS của nó. Vui lòng tham khảo tài liệu plugin tương ứng."
- },
- "certificates.http.reachability-404": {
- "defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng có vẻ như nó không phải là NPM. Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
- },
- "certificates.http.reachability-failed-to-check": {
- "defaultMessage": "Không thể kiểm tra khả năng truy cập do lỗi giao tiếp với site24x7.com."
- },
- "certificates.http.reachability-not-resolved": {
- "defaultMessage": "Không có máy chủ có sẵn tại tên miền này. Vui lòng đảm bảo rằng miền của bạn tồn tại và trỏ đến IP nơi phiên bản NPM của bạn đang chạy và nếu cần, cổng 80 sẽ được chuyển tiếp trong bộ định tuyến của bạn."
- },
- "certificates.http.reachability-ok": {
- "defaultMessage": "Máy chủ của bạn có thể truy cập được và có thể tạo chứng chỉ."
- },
- "certificates.http.reachability-other": {
- "defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng nó trả về mã trạng thái không mong muốn {code}. Đây có phải là máy chủ NPM không? Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
- },
- "certificates.http.reachability-wrong-data": {
- "defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng nó trả về một dữ liệu không mong muốn. Đây có phải là máy chủ NPM không? Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
- },
- "certificates.http.test-results": {
- "defaultMessage": "Kết quả kiểm tra"
- },
- "certificates.http.warning": {
- "defaultMessage": "Các miền này phải được cấu hình sẵn để trỏ đến cài đặt này."
- },
- "certificates.request.subtitle": {
- "defaultMessage": "bằng Let's Encrypt"
- },
- "certificates.request.title": {
- "defaultMessage": "Yêu cầu chứng chỉ mới"
- },
- "column.access": {
- "defaultMessage": "Truy cập"
- },
- "column.authorization": {
- "defaultMessage": "Ủy quyền"
- },
- "column.authorizations": {
- "defaultMessage": "Danh sách ủy quyền"
- },
- "column.custom-locations": {
- "defaultMessage": "Quy tắc đường dẫn tùy chỉnh (Vị trí)"
- },
- "column.destination": {
- "defaultMessage": "Mục tiêu"
- },
- "column.details": {
- "defaultMessage": "Chi tiết"
- },
- "column.email": {
- "defaultMessage": "Email"
- },
- "column.event": {
- "defaultMessage": "Sự kiện"
- },
- "column.expires": {
- "defaultMessage": "Hết hạn"
- },
- "column.http-code": {
- "defaultMessage": "HTTP Code"
- },
- "column.incoming-port": {
- "defaultMessage": "Cổng đến"
- },
- "column.name": {
- "defaultMessage": "Tên"
- },
- "column.protocol": {
- "defaultMessage": "Giao thức"
- },
- "column.provider": {
- "defaultMessage": "Nhà cung cấp"
- },
- "column.roles": {
- "defaultMessage": "Vai trò"
- },
- "column.rules": {
- "defaultMessage": "Quy tắc"
- },
- "column.satisfy": {
- "defaultMessage": "Thỏa mãn"
- },
- "column.satisfy-all": {
- "defaultMessage": "Tất cả"
- },
- "column.satisfy-any": {
- "defaultMessage": "Bất kì"
- },
- "column.scheme": {
- "defaultMessage": "Scheme"
- },
- "column.source": {
- "defaultMessage": "Nguồn"
- },
- "column.ssl": {
- "defaultMessage": "SSL"
- },
- "column.status": {
- "defaultMessage": "Trạng thái"
- },
- "created-on": {
- "defaultMessage": "Đã tạo: {date}"
- },
- "dashboard": {
- "defaultMessage": "Bảng điều khiển"
- },
- "dead-host": {
- "defaultMessage": "Máy chủ 404"
- },
- "dead-hosts": {
- "defaultMessage": "Máy chủ 404"
- },
- "dead-hosts.count": {
- "defaultMessage": "Số trang lỗi {count}"
- },
- "disabled": {
- "defaultMessage": "Đã tắt"
- },
- "domain-names": {
- "defaultMessage": "Danh sách tên miền"
- },
- "domain-names.max": {
- "defaultMessage": "Tối đa {count} tên miền"
- },
- "domain-names.placeholder": {
- "defaultMessage": "Nhập tên miền vào đây..."
- },
- "domain-names.wildcards-not-permitted": {
- "defaultMessage": "Ký tự đại diện không được phép cho loại này"
- },
- "domain-names.wildcards-not-supported": {
- "defaultMessage": "Ký tự đại diện không được hỗ trợ cho CA này"
- },
- "domains.force-ssl": {
- "defaultMessage": "Bắt buộc SSL"
- },
- "domains.hsts-enabled": {
- "defaultMessage": "Bật HSTS"
- },
- "domains.hsts-subdomains": {
- "defaultMessage": "Tên miền phụ HSTS"
- },
- "domains.http2-support": {
- "defaultMessage": "Hỗ trợ HTTP/2"
- },
- "domains.use-dns": {
- "defaultMessage": "Dùng thử thách DNS"
- },
- "email-address": {
- "defaultMessage": "Địa chỉ email"
- },
- "empty-search": {
- "defaultMessage": "Không có kết quả nào"
- },
- "empty-subtitle": {
- "defaultMessage": "Tại sao bạn không tạo một cái luôn?"
- },
- "enabled": {
- "defaultMessage": "Đã bật"
- },
- "error.access.at-least-one": {
- "defaultMessage": "Yêu cầu ít nhất một quy tắc ủy quyền hoặc truy cập"
- },
- "error.access.duplicate-usernames": {
- "defaultMessage": "Tên người dùng được ủy quyền phải là duy nhất"
- },
- "error.invalid-auth": {
- "defaultMessage": "Email hoặc Mật khẩu không hợp lệ"
- },
- "error.invalid-domain": {
- "defaultMessage": "Tên miền không hợp lệ: {domain}"
- },
- "error.invalid-email": {
- "defaultMessage": "Địa chỉ email không hợp lệ"
- },
- "error.max-character-length": {
- "defaultMessage": "Độ dài tối đa là {max} ký tự"
- },
- "error.max-domains": {
- "defaultMessage": "Quá nhiều tên miền, tối đa là {max}"
- },
- "error.maximum": {
- "defaultMessage": "Tối đa là {max}"
- },
- "error.min-character-length": {
- "defaultMessage": "Độ dài tối thiểu là {min} ký tự"
- },
- "error.minimum": {
- "defaultMessage": "Tối thiểu là {min}"
- },
- "error.passwords-must-match": {
- "defaultMessage": "Mật khẩu phải khớp"
- },
- "error.required": {
- "defaultMessage": "Điều này là bắt buộc"
- },
- "expires.on": {
- "defaultMessage": "Hết hạn: {date}"
- },
- "footer.github-fork": {
- "defaultMessage": "Fork dự án này trên Github"
- },
- "host.flags.block-exploits": {
- "defaultMessage": "Chặn các hoạt động khai thác phổ biến"
- },
- "host.flags.cache-assets": {
- "defaultMessage": "Cache tài nguyên"
- },
- "host.flags.preserve-path": {
- "defaultMessage": "Bảo toàn đường dẫn"
- },
- "host.flags.protocols": {
- "defaultMessage": "Giao thức"
- },
- "host.flags.websockets-upgrade": {
- "defaultMessage": "Hỗ trợ Websockets"
- },
- "host.forward-port": {
- "defaultMessage": "Chuyển tiếp cổng"
- },
- "host.forward-scheme": {
- "defaultMessage": "Scheme"
- },
- "hosts": {
- "defaultMessage": "Máy chủ"
- },
- "http-only": {
- "defaultMessage": "HTTP Only"
- },
- "lets-encrypt": {
- "defaultMessage": "Let's Encrypt"
- },
- "lets-encrypt-via-dns": {
- "defaultMessage": "Let's Encrypt qua DNS"
- },
- "lets-encrypt-via-http": {
- "defaultMessage": "Let's Encrypt qua HTTP"
- },
- "loading": {
- "defaultMessage": "Đang tải..."
- },
- "login.title": {
- "defaultMessage": "Đăng nhập vào tài khoản của bạn"
- },
- "nginx-config.label": {
- "defaultMessage": "Cấu hình Nginx tùy chỉnh"
- },
- "nginx-config.placeholder": {
- "defaultMessage": "# Nhập cấu hình Nginx tùy chỉnh của bạn vào đây và bạn phải tự chịu rủi ro!"
- },
- "no-permission-error": {
- "defaultMessage": "Bạn không có quyền truy cập trang này."
- },
- "notfound.action": {
- "defaultMessage": "Về trang chủ"
- },
- "notfound.content": {
- "defaultMessage": "Chúng tôi xin lỗi nhưng trang bạn đang tìm kiếm không được tìm thấy"
- },
- "notfound.title": {
- "defaultMessage": "Rất tiếc… Bạn vừa tìm thấy một trang lỗi"
- },
- "notification.error": {
- "defaultMessage": "Lỗi"
- },
- "notification.object-deleted": {
- "defaultMessage": "{object} đã được xóa"
- },
- "notification.object-disabled": {
- "defaultMessage": "{object} đã được tắt"
- },
- "notification.object-enabled": {
- "defaultMessage": "{object} đã được bật"
- },
- "notification.object-renewed": {
- "defaultMessage": "{object} đã được làm mới"
- },
- "notification.object-saved": {
- "defaultMessage": "{object} đã được lưu"
- },
- "notification.success": {
- "defaultMessage": "Thành công"
- },
- "object.actions-title": {
- "defaultMessage": "{object} #{id}"
- },
- "object.add": {
- "defaultMessage": "Thêm {object}"
- },
- "object.delete": {
- "defaultMessage": "Xóa {object}"
- },
- "object.delete.content": {
- "defaultMessage": "Bạn có chắc muốn xóa {object} không?"
- },
- "object.edit": {
- "defaultMessage": "Chỉnh sửa {object}"
- },
- "object.empty": {
- "defaultMessage": "Không có {objects}"
- },
- "object.event.created": {
- "defaultMessage": "Đã tạo {object}"
- },
- "object.event.deleted": {
- "defaultMessage": "Đã xóa {object}"
- },
- "object.event.disabled": {
- "defaultMessage": "Đã tắt {object}"
- },
- "object.event.enabled": {
- "defaultMessage": "Đã bật {object}"
- },
- "object.event.renewed": {
- "defaultMessage": "Đã gia hạn {object}"
- },
- "object.event.updated": {
- "defaultMessage": "Đã cập nhật {object}"
- },
- "offline": {
- "defaultMessage": "Ngoại tuyến"
- },
- "online": {
- "defaultMessage": "Trực tuyến"
- },
- "options": {
- "defaultMessage": "Tùy chọn"
- },
- "password": {
- "defaultMessage": "Mật khẩu"
- },
- "password.generate": {
- "defaultMessage": "Tạo mật khẩu ngẫu nhiên"
- },
- "password.hide": {
- "defaultMessage": "Ẩn Mật khẩu"
- },
- "password.show": {
- "defaultMessage": "Hiện Mật khẩu"
- },
- "permissions.hidden": {
- "defaultMessage": "Ẩn"
- },
- "permissions.manage": {
- "defaultMessage": "Quản lý"
- },
- "permissions.view": {
- "defaultMessage": "Chỉ xem"
- },
- "permissions.visibility.all": {
- "defaultMessage": "Tất cả các mục"
- },
- "permissions.visibility.title": {
- "defaultMessage": "Khả năng hiển thị mục"
- },
- "permissions.visibility.user": {
- "defaultMessage": "Chỉ các mục đã tạo"
- },
- "proxy-host": {
- "defaultMessage": "Máy chủ proxy"
- },
- "proxy-host.forward-host": {
- "defaultMessage": "Chuyển tiếp Hostname / IP"
- },
- "proxy-hosts": {
- "defaultMessage": "Máy chủ proxy"
- },
- "proxy-hosts.count": {
- "defaultMessage": "{count} máy chủ proxy"
- },
- "public": {
- "defaultMessage": "Công khai"
- },
- "redirection-host": {
- "defaultMessage": "Redirection Host"
- },
- "redirection-host.forward-domain": {
- "defaultMessage": "Chuyển tiếp Tên miền"
- },
- "redirection-host.forward-http-code": {
- "defaultMessage": "HTTP Code"
- },
- "redirection-hosts": {
- "defaultMessage": "Redirection Hosts"
- },
- "redirection-hosts.count": {
- "defaultMessage": "{count} máy chủ chuyển hướng"
- },
- "role.admin": {
- "defaultMessage": "Quản trị viên"
- },
- "role.standard-user": {
- "defaultMessage": "Người dùng bình thường"
- },
- "save": {
- "defaultMessage": "Lưu"
- },
- "setting": {
- "defaultMessage": "Cài đặt"
- },
- "settings": {
- "defaultMessage": "Cài đặt"
- },
- "settings.default-site": {
- "defaultMessage": "Trang web mặc định"
- },
- "settings.default-site.404": {
- "defaultMessage": "Trang 404"
- },
- "settings.default-site.444": {
- "defaultMessage": "Không có phản hồi (444)"
- },
- "settings.default-site.congratulations": {
- "defaultMessage": "Trang chào mừng"
- },
- "settings.default-site.description": {
- "defaultMessage": "Hiển thị gì khi Nginx gặp phải Máy chủ không xác định"
- },
- "settings.default-site.html": {
- "defaultMessage": "HTML tùy chỉnh"
- },
- "settings.default-site.html.placeholder": {
- "defaultMessage": ""
- },
- "settings.default-site.redirect": {
- "defaultMessage": "Chuyển hướng"
- },
- "setup.preamble": {
- "defaultMessage": "Bắt đầu bằng cách tạo tài khoản quản trị viên."
- },
- "setup.title": {
- "defaultMessage": "Chào mừng!"
- },
- "sign-in": {
- "defaultMessage": "Đăng nhập"
- },
- "ssl-certificate": {
- "defaultMessage": "Chứng chỉ SSL"
- },
- "stream": {
- "defaultMessage": "Stream"
- },
- "stream.forward-host": {
- "defaultMessage": "Chuyển tiếp Host"
- },
- "stream.incoming-port": {
- "defaultMessage": "Cổng vào"
- },
- "streams": {
- "defaultMessage": "Danh sách các Stream"
- },
- "streams.count": {
- "defaultMessage": "Số Stream {count}"
- },
- "streams.tcp": {
- "defaultMessage": "TCP"
- },
- "streams.udp": {
- "defaultMessage": "UDP"
- },
- "test": {
- "defaultMessage": "Kiểm tra"
- },
- "update-available": {
- "defaultMessage": "Cập nhật khả dụng: {latestVersion}"
- },
- "user": {
- "defaultMessage": "Người dùng"
- },
- "user.change-password": {
- "defaultMessage": "Đổi Mật khẩu"
- },
- "user.confirm-password": {
- "defaultMessage": "Xác nhận Mật khẩu"
- },
- "user.current-password": {
- "defaultMessage": "Mật khẩu hiện tại"
- },
- "user.edit-profile": {
- "defaultMessage": "Chỉnh sửa hồ sơ"
- },
- "user.full-name": {
- "defaultMessage": "Tên"
- },
- "user.login-as": {
- "defaultMessage": "Đăng nhập bằng {name}"
- },
- "user.logout": {
- "defaultMessage": "Đăng xuất"
- },
- "user.new-password": {
- "defaultMessage": "Mật khẩu mới"
- },
- "user.nickname": {
- "defaultMessage": "Tên hiển thị"
- },
- "user.set-password": {
- "defaultMessage": "Đặt Mật khẩu"
- },
- "user.set-permissions": {
- "defaultMessage": "Đặt quyền cho {name}"
- },
- "user.switch-dark": {
- "defaultMessage": "Chuyển sang chế độ tối"
- },
- "user.switch-light": {
- "defaultMessage": "Chuyển sang chế độ sáng"
- },
- "username": {
- "defaultMessage": "Tên người dùng"
- },
- "users": {
- "defaultMessage": "Danh sách người dùng"
- }
-}
\ No newline at end of file
+ "access-list": {
+ "defaultMessage": "Danh sách truy cập"
+ },
+ "access-list.access-count": {
+ "defaultMessage": "{count} quy tắc"
+ },
+ "access-list.auth-count": {
+ "defaultMessage": "{count} người dùng"
+ },
+ "access-list.help-rules-last": {
+ "defaultMessage": "Quy tắc từ chối tất cả này sẽ được thêm vào cuối khi tồn tại ít nhất 1 quy tắc"
+ },
+ "access-list.help.rules-order": {
+ "defaultMessage": "Các quy tắc cho phép và từ chối sẽ được thực thi theo thứ tự được xác định."
+ },
+ "access-list.pass-auth": {
+ "defaultMessage": "Chuyển xác thực lên thượng nguồn"
+ },
+ "access-list.public": {
+ "defaultMessage": "Có thể truy cập công khai"
+ },
+ "access-list.public.subtitle": {
+ "defaultMessage": "Không cần xác thực cơ bản"
+ },
+ "access-list.satisfy-any": {
+ "defaultMessage": "Thỏa mãn điều kiện bất kỳ"
+ },
+ "access-list.subtitle": {
+ "defaultMessage": "{users} người dùng, {rules} quy tắc - Tạo lúc: {date}"
+ },
+ "access-lists": {
+ "defaultMessage": "Danh sách truy cập"
+ },
+ "action.add": {
+ "defaultMessage": "Thêm"
+ },
+ "action.add-location": {
+ "defaultMessage": "Thêm Vị trí"
+ },
+ "action.close": {
+ "defaultMessage": "Đóng"
+ },
+ "action.delete": {
+ "defaultMessage": "Xóa"
+ },
+ "action.disable": {
+ "defaultMessage": "Tắt"
+ },
+ "action.download": {
+ "defaultMessage": "Tải xuống"
+ },
+ "action.edit": {
+ "defaultMessage": "Chỉnh sửa"
+ },
+ "action.enable": {
+ "defaultMessage": "Bật"
+ },
+ "action.permissions": {
+ "defaultMessage": "Quyền"
+ },
+ "action.renew": {
+ "defaultMessage": "Gia hạn"
+ },
+ "action.view-details": {
+ "defaultMessage": "Xem Chi tiết"
+ },
+ "auditlogs": {
+ "defaultMessage": "Nhật ký kiểm tra"
+ },
+ "cancel": {
+ "defaultMessage": "Hủy"
+ },
+ "certificate": {
+ "defaultMessage": "Chứng chỉ"
+ },
+ "certificate.custom-certificate": {
+ "defaultMessage": "Certificate (crt)"
+ },
+ "certificate.custom-certificate-key": {
+ "defaultMessage": "Certificate Key"
+ },
+ "certificate.custom-intermediate": {
+ "defaultMessage": "Intermediate Certificate"
+ },
+ "certificate.in-use": {
+ "defaultMessage": "Đang sử dụng"
+ },
+ "certificate.none.subtitle": {
+ "defaultMessage": "Không có chứng chỉ nào được chỉ định"
+ },
+ "certificate.none.subtitle.for-http": {
+ "defaultMessage": "Máy chủ này sẽ không sử dụng HTTPS"
+ },
+ "certificate.none.title": {
+ "defaultMessage": "Không có"
+ },
+ "certificate.not-in-use": {
+ "defaultMessage": "Không được dùng"
+ },
+ "certificate.renew": {
+ "defaultMessage": "Gia hạn Chứng chỉ"
+ },
+ "certificates": {
+ "defaultMessage": "Danh sách chứng chỉ"
+ },
+ "certificates.custom": {
+ "defaultMessage": "Chứng chỉ tùy chỉnh"
+ },
+ "certificates.custom.warning": {
+ "defaultMessage": "Các tệp chính được bảo vệ bằng cụm mật khẩu không được hỗ trợ."
+ },
+ "certificates.dns.credentials": {
+ "defaultMessage": "Nội dung tệp thông tin xác thực"
+ },
+ "certificates.dns.credentials-note": {
+ "defaultMessage": "Plugin này yêu cầu tệp cấu hình chứa mã thông báo API hoặc thông tin xác thực khác cho nhà cung cấp của bạn"
+ },
+ "certificates.dns.credentials-warning": {
+ "defaultMessage": "Dữ liệu này sẽ được lưu trữ dưới dạng bản rõ trong cơ sở dữ liệu và trong một tệp!"
+ },
+ "certificates.dns.propagation-seconds": {
+ "defaultMessage": "Thời gian lan truyền (Giây)"
+ },
+ "certificates.dns.propagation-seconds-note": {
+ "defaultMessage": "Để trống để sử dụng giá trị mặc định của plugin. Số giây chờ truyền DNS."
+ },
+ "certificates.dns.provider": {
+ "defaultMessage": "Nhà cung cấp DNS"
+ },
+ "certificates.dns.warning": {
+ "defaultMessage": "Phần này yêu cầu một số kiến thức về Certbot và các plugin DNS của nó. Vui lòng tham khảo tài liệu plugin tương ứng."
+ },
+ "certificates.http.reachability-404": {
+ "defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng có vẻ như nó không phải là NPM. Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
+ },
+ "certificates.http.reachability-failed-to-check": {
+ "defaultMessage": "Không thể kiểm tra khả năng truy cập do lỗi giao tiếp với site24x7.com."
+ },
+ "certificates.http.reachability-not-resolved": {
+ "defaultMessage": "Không có máy chủ có sẵn tại tên miền này. Vui lòng đảm bảo rằng miền của bạn tồn tại và trỏ đến IP nơi phiên bản NPM của bạn đang chạy và nếu cần, cổng 80 sẽ được chuyển tiếp trong bộ định tuyến của bạn."
+ },
+ "certificates.http.reachability-ok": {
+ "defaultMessage": "Máy chủ của bạn có thể truy cập được và có thể tạo chứng chỉ."
+ },
+ "certificates.http.reachability-other": {
+ "defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng nó trả về mã trạng thái không mong muốn {code}. Đây có phải là máy chủ NPM không? Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
+ },
+ "certificates.http.reachability-wrong-data": {
+ "defaultMessage": "Có một máy chủ được tìm thấy ở miền này nhưng nó trả về một dữ liệu không mong muốn. Đây có phải là máy chủ NPM không? Vui lòng đảm bảo tên miền của bạn trỏ đến IP nơi phiên bản NPM của bạn đang chạy."
+ },
+ "certificates.http.test-results": {
+ "defaultMessage": "Kết quả kiểm tra"
+ },
+ "certificates.http.warning": {
+ "defaultMessage": "Các miền này phải được cấu hình sẵn để trỏ đến cài đặt này."
+ },
+ "certificates.request.subtitle": {
+ "defaultMessage": "bằng Let's Encrypt"
+ },
+ "certificates.request.title": {
+ "defaultMessage": "Yêu cầu chứng chỉ mới"
+ },
+ "column.access": {
+ "defaultMessage": "Truy cập"
+ },
+ "column.authorization": {
+ "defaultMessage": "Ủy quyền"
+ },
+ "column.authorizations": {
+ "defaultMessage": "Danh sách ủy quyền"
+ },
+ "column.custom-locations": {
+ "defaultMessage": "Quy tắc đường dẫn tùy chỉnh (Vị trí)"
+ },
+ "column.destination": {
+ "defaultMessage": "Mục tiêu"
+ },
+ "column.details": {
+ "defaultMessage": "Chi tiết"
+ },
+ "column.email": {
+ "defaultMessage": "Email"
+ },
+ "column.event": {
+ "defaultMessage": "Sự kiện"
+ },
+ "column.expires": {
+ "defaultMessage": "Hết hạn"
+ },
+ "column.http-code": {
+ "defaultMessage": "HTTP Code"
+ },
+ "column.incoming-port": {
+ "defaultMessage": "Cổng đến"
+ },
+ "column.name": {
+ "defaultMessage": "Tên"
+ },
+ "column.protocol": {
+ "defaultMessage": "Giao thức"
+ },
+ "column.provider": {
+ "defaultMessage": "Nhà cung cấp"
+ },
+ "column.roles": {
+ "defaultMessage": "Vai trò"
+ },
+ "column.rules": {
+ "defaultMessage": "Quy tắc"
+ },
+ "column.satisfy": {
+ "defaultMessage": "Thỏa mãn"
+ },
+ "column.satisfy-all": {
+ "defaultMessage": "Tất cả"
+ },
+ "column.satisfy-any": {
+ "defaultMessage": "Bất kì"
+ },
+ "column.scheme": {
+ "defaultMessage": "Scheme"
+ },
+ "column.source": {
+ "defaultMessage": "Nguồn"
+ },
+ "column.ssl": {
+ "defaultMessage": "SSL"
+ },
+ "column.status": {
+ "defaultMessage": "Trạng thái"
+ },
+ "created-on": {
+ "defaultMessage": "Đã tạo: {date}"
+ },
+ "dashboard": {
+ "defaultMessage": "Bảng điều khiển"
+ },
+ "dead-host": {
+ "defaultMessage": "Máy chủ 404"
+ },
+ "dead-hosts": {
+ "defaultMessage": "Máy chủ 404"
+ },
+ "dead-hosts.count": {
+ "defaultMessage": "Số trang lỗi {count}"
+ },
+ "disabled": {
+ "defaultMessage": "Đã tắt"
+ },
+ "domain-names": {
+ "defaultMessage": "Danh sách tên miền"
+ },
+ "domain-names.max": {
+ "defaultMessage": "Tối đa {count} tên miền"
+ },
+ "domain-names.placeholder": {
+ "defaultMessage": "Nhập tên miền vào đây..."
+ },
+ "domain-names.wildcards-not-permitted": {
+ "defaultMessage": "Ký tự đại diện không được phép cho loại này"
+ },
+ "domain-names.wildcards-not-supported": {
+ "defaultMessage": "Ký tự đại diện không được hỗ trợ cho CA này"
+ },
+ "domains.force-ssl": {
+ "defaultMessage": "Bắt buộc SSL"
+ },
+ "domains.hsts-enabled": {
+ "defaultMessage": "Bật HSTS"
+ },
+ "domains.hsts-subdomains": {
+ "defaultMessage": "Tên miền phụ HSTS"
+ },
+ "domains.http2-support": {
+ "defaultMessage": "Hỗ trợ HTTP/2"
+ },
+ "domains.use-dns": {
+ "defaultMessage": "Dùng thử thách DNS"
+ },
+ "email-address": {
+ "defaultMessage": "Địa chỉ email"
+ },
+ "empty-search": {
+ "defaultMessage": "Không có kết quả nào"
+ },
+ "empty-subtitle": {
+ "defaultMessage": "Tại sao bạn không tạo một cái luôn?"
+ },
+ "enabled": {
+ "defaultMessage": "Đã bật"
+ },
+ "error.access.at-least-one": {
+ "defaultMessage": "Yêu cầu ít nhất một quy tắc ủy quyền hoặc truy cập"
+ },
+ "error.access.duplicate-usernames": {
+ "defaultMessage": "Tên người dùng được ủy quyền phải là duy nhất"
+ },
+ "error.invalid-auth": {
+ "defaultMessage": "Email hoặc Mật khẩu không hợp lệ"
+ },
+ "error.invalid-domain": {
+ "defaultMessage": "Tên miền không hợp lệ: {domain}"
+ },
+ "error.invalid-email": {
+ "defaultMessage": "Địa chỉ email không hợp lệ"
+ },
+ "error.max-character-length": {
+ "defaultMessage": "Độ dài tối đa là {max} ký tự"
+ },
+ "error.max-domains": {
+ "defaultMessage": "Quá nhiều tên miền, tối đa là {max}"
+ },
+ "error.maximum": {
+ "defaultMessage": "Tối đa là {max}"
+ },
+ "error.min-character-length": {
+ "defaultMessage": "Độ dài tối thiểu là {min} ký tự"
+ },
+ "error.minimum": {
+ "defaultMessage": "Tối thiểu là {min}"
+ },
+ "error.passwords-must-match": {
+ "defaultMessage": "Mật khẩu phải khớp"
+ },
+ "error.required": {
+ "defaultMessage": "Điều này là bắt buộc"
+ },
+ "expires.on": {
+ "defaultMessage": "Hết hạn: {date}"
+ },
+ "footer.github-fork": {
+ "defaultMessage": "Fork dự án này trên Github"
+ },
+ "host.flags.block-exploits": {
+ "defaultMessage": "Chặn các hoạt động khai thác phổ biến"
+ },
+ "host.flags.cache-assets": {
+ "defaultMessage": "Cache tài nguyên"
+ },
+ "host.flags.preserve-path": {
+ "defaultMessage": "Bảo toàn đường dẫn"
+ },
+ "host.flags.protocols": {
+ "defaultMessage": "Giao thức"
+ },
+ "host.flags.websockets-upgrade": {
+ "defaultMessage": "Hỗ trợ Websockets"
+ },
+ "host.forward-port": {
+ "defaultMessage": "Chuyển tiếp cổng"
+ },
+ "host.forward-scheme": {
+ "defaultMessage": "Scheme"
+ },
+ "hosts": {
+ "defaultMessage": "Máy chủ"
+ },
+ "http-only": {
+ "defaultMessage": "HTTP Only"
+ },
+ "lets-encrypt": {
+ "defaultMessage": "Let's Encrypt"
+ },
+ "lets-encrypt-via-dns": {
+ "defaultMessage": "Let's Encrypt qua DNS"
+ },
+ "lets-encrypt-via-http": {
+ "defaultMessage": "Let's Encrypt qua HTTP"
+ },
+ "loading": {
+ "defaultMessage": "Đang tải..."
+ },
+ "login.title": {
+ "defaultMessage": "Đăng nhập vào tài khoản của bạn"
+ },
+ "nginx-config.label": {
+ "defaultMessage": "Cấu hình Nginx tùy chỉnh"
+ },
+ "nginx-config.placeholder": {
+ "defaultMessage": "# Nhập cấu hình Nginx tùy chỉnh của bạn vào đây và bạn phải tự chịu rủi ro!"
+ },
+ "no-permission-error": {
+ "defaultMessage": "Bạn không có quyền truy cập trang này."
+ },
+ "notfound.action": {
+ "defaultMessage": "Về trang chủ"
+ },
+ "notfound.content": {
+ "defaultMessage": "Chúng tôi xin lỗi nhưng trang bạn đang tìm kiếm không được tìm thấy"
+ },
+ "notfound.title": {
+ "defaultMessage": "Rất tiếc… Bạn vừa tìm thấy một trang lỗi"
+ },
+ "notification.error": {
+ "defaultMessage": "Lỗi"
+ },
+ "notification.object-deleted": {
+ "defaultMessage": "{object} đã được xóa"
+ },
+ "notification.object-disabled": {
+ "defaultMessage": "{object} đã được tắt"
+ },
+ "notification.object-enabled": {
+ "defaultMessage": "{object} đã được bật"
+ },
+ "notification.object-renewed": {
+ "defaultMessage": "{object} đã được làm mới"
+ },
+ "notification.object-saved": {
+ "defaultMessage": "{object} đã được lưu"
+ },
+ "notification.success": {
+ "defaultMessage": "Thành công"
+ },
+ "object.actions-title": {
+ "defaultMessage": "{object} #{id}"
+ },
+ "object.add": {
+ "defaultMessage": "Thêm {object}"
+ },
+ "object.delete": {
+ "defaultMessage": "Xóa {object}"
+ },
+ "object.delete.content": {
+ "defaultMessage": "Bạn có chắc muốn xóa {object} không?"
+ },
+ "object.edit": {
+ "defaultMessage": "Chỉnh sửa {object}"
+ },
+ "object.empty": {
+ "defaultMessage": "Không có {objects}"
+ },
+ "object.event.created": {
+ "defaultMessage": "Đã tạo {object}"
+ },
+ "object.event.deleted": {
+ "defaultMessage": "Đã xóa {object}"
+ },
+ "object.event.disabled": {
+ "defaultMessage": "Đã tắt {object}"
+ },
+ "object.event.enabled": {
+ "defaultMessage": "Đã bật {object}"
+ },
+ "object.event.renewed": {
+ "defaultMessage": "Đã gia hạn {object}"
+ },
+ "object.event.updated": {
+ "defaultMessage": "Đã cập nhật {object}"
+ },
+ "offline": {
+ "defaultMessage": "Ngoại tuyến"
+ },
+ "online": {
+ "defaultMessage": "Trực tuyến"
+ },
+ "options": {
+ "defaultMessage": "Tùy chọn"
+ },
+ "password": {
+ "defaultMessage": "Mật khẩu"
+ },
+ "password.generate": {
+ "defaultMessage": "Tạo mật khẩu ngẫu nhiên"
+ },
+ "password.hide": {
+ "defaultMessage": "Ẩn Mật khẩu"
+ },
+ "password.show": {
+ "defaultMessage": "Hiện Mật khẩu"
+ },
+ "permissions.hidden": {
+ "defaultMessage": "Ẩn"
+ },
+ "permissions.manage": {
+ "defaultMessage": "Quản lý"
+ },
+ "permissions.view": {
+ "defaultMessage": "Chỉ xem"
+ },
+ "permissions.visibility.all": {
+ "defaultMessage": "Tất cả các mục"
+ },
+ "permissions.visibility.title": {
+ "defaultMessage": "Khả năng hiển thị mục"
+ },
+ "permissions.visibility.user": {
+ "defaultMessage": "Chỉ các mục đã tạo"
+ },
+ "proxy-host": {
+ "defaultMessage": "Máy chủ proxy"
+ },
+ "proxy-host.forward-host": {
+ "defaultMessage": "Chuyển tiếp Hostname / IP"
+ },
+ "proxy-hosts": {
+ "defaultMessage": "Máy chủ proxy"
+ },
+ "proxy-hosts.count": {
+ "defaultMessage": "{count} máy chủ proxy"
+ },
+ "public": {
+ "defaultMessage": "Công khai"
+ },
+ "redirection-host": {
+ "defaultMessage": "Redirection Host"
+ },
+ "redirection-host.forward-domain": {
+ "defaultMessage": "Chuyển tiếp Tên miền"
+ },
+ "redirection-host.forward-http-code": {
+ "defaultMessage": "HTTP Code"
+ },
+ "redirection-hosts": {
+ "defaultMessage": "Redirection Hosts"
+ },
+ "redirection-hosts.count": {
+ "defaultMessage": "{count} máy chủ chuyển hướng"
+ },
+ "role.admin": {
+ "defaultMessage": "Quản trị viên"
+ },
+ "role.standard-user": {
+ "defaultMessage": "Người dùng bình thường"
+ },
+ "save": {
+ "defaultMessage": "Lưu"
+ },
+ "setting": {
+ "defaultMessage": "Cài đặt"
+ },
+ "settings": {
+ "defaultMessage": "Cài đặt"
+ },
+ "settings.default-site": {
+ "defaultMessage": "Trang web mặc định"
+ },
+ "settings.default-site.404": {
+ "defaultMessage": "Trang 404"
+ },
+ "settings.default-site.444": {
+ "defaultMessage": "Không có phản hồi (444)"
+ },
+ "settings.default-site.congratulations": {
+ "defaultMessage": "Trang chào mừng"
+ },
+ "settings.default-site.description": {
+ "defaultMessage": "Hiển thị gì khi Nginx gặp phải Máy chủ không xác định"
+ },
+ "settings.default-site.html": {
+ "defaultMessage": "HTML tùy chỉnh"
+ },
+ "settings.default-site.html.placeholder": {
+ "defaultMessage": ""
+ },
+ "settings.default-site.redirect": {
+ "defaultMessage": "Chuyển hướng"
+ },
+ "setup.preamble": {
+ "defaultMessage": "Bắt đầu bằng cách tạo tài khoản quản trị viên."
+ },
+ "setup.title": {
+ "defaultMessage": "Chào mừng!"
+ },
+ "sign-in": {
+ "defaultMessage": "Đăng nhập"
+ },
+ "ssl-certificate": {
+ "defaultMessage": "Chứng chỉ SSL"
+ },
+ "stream": {
+ "defaultMessage": "Stream"
+ },
+ "stream.forward-host": {
+ "defaultMessage": "Chuyển tiếp Host"
+ },
+ "stream.incoming-port": {
+ "defaultMessage": "Cổng vào"
+ },
+ "streams": {
+ "defaultMessage": "Danh sách các Stream"
+ },
+ "streams.count": {
+ "defaultMessage": "Số Stream {count}"
+ },
+ "streams.tcp": {
+ "defaultMessage": "TCP"
+ },
+ "streams.udp": {
+ "defaultMessage": "UDP"
+ },
+ "test": {
+ "defaultMessage": "Kiểm tra"
+ },
+ "update-available": {
+ "defaultMessage": "Cập nhật khả dụng: {latestVersion}"
+ },
+ "user": {
+ "defaultMessage": "Người dùng"
+ },
+ "user.change-password": {
+ "defaultMessage": "Đổi Mật khẩu"
+ },
+ "user.confirm-password": {
+ "defaultMessage": "Xác nhận Mật khẩu"
+ },
+ "user.current-password": {
+ "defaultMessage": "Mật khẩu hiện tại"
+ },
+ "user.edit-profile": {
+ "defaultMessage": "Chỉnh sửa hồ sơ"
+ },
+ "user.full-name": {
+ "defaultMessage": "Tên"
+ },
+ "user.login-as": {
+ "defaultMessage": "Đăng nhập bằng {name}"
+ },
+ "user.logout": {
+ "defaultMessage": "Đăng xuất"
+ },
+ "user.new-password": {
+ "defaultMessage": "Mật khẩu mới"
+ },
+ "user.nickname": {
+ "defaultMessage": "Tên hiển thị"
+ },
+ "user.set-password": {
+ "defaultMessage": "Đặt Mật khẩu"
+ },
+ "user.set-permissions": {
+ "defaultMessage": "Đặt quyền cho {name}"
+ },
+ "user.switch-dark": {
+ "defaultMessage": "Chuyển sang chế độ tối"
+ },
+ "user.switch-light": {
+ "defaultMessage": "Chuyển sang chế độ sáng"
+ },
+ "username": {
+ "defaultMessage": "Tên người dùng"
+ },
+ "users": {
+ "defaultMessage": "Danh sách người dùng"
+ }
+}