mirror of
https://github.com/h44z/wg-portal.git
synced 2025-06-28 01:07:03 +00:00
add portuguese translations (#412)
Signed-off-by: Rafael Alexandre <r.alexandre99@gmail.com>
This commit is contained in:
parent
059234d416
commit
2c443a4a9b
@ -48,6 +48,7 @@ const languageFlag = computed(() => {
|
|||||||
}
|
}
|
||||||
const langMap = {
|
const langMap = {
|
||||||
en: "us",
|
en: "us",
|
||||||
|
pt: "pt",
|
||||||
uk: "ua",
|
uk: "ua",
|
||||||
zh: "cn",
|
zh: "cn",
|
||||||
};
|
};
|
||||||
@ -121,6 +122,7 @@ const currentYear = ref(new Date().getFullYear())
|
|||||||
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('de')"><span class="fi fi-de"></span> Deutsch</a>
|
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('de')"><span class="fi fi-de"></span> Deutsch</a>
|
||||||
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('en')"><span class="fi fi-us"></span> English</a>
|
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('en')"><span class="fi fi-us"></span> English</a>
|
||||||
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('fr')"><span class="fi fi-fr"></span> Français</a>
|
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('fr')"><span class="fi fi-fr"></span> Français</a>
|
||||||
|
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('pt')"><span class="fi fi-pt"></span> Português</a>
|
||||||
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('ru')"><span class="fi fi-ru"></span> Русский</a>
|
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('ru')"><span class="fi fi-ru"></span> Русский</a>
|
||||||
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('uk')"><span class="fi fi-ua"></span> Українська</a>
|
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('uk')"><span class="fi fi-ua"></span> Українська</a>
|
||||||
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('vi')"><span class="fi fi-vi"></span> Tiếng Việt</a>
|
<a class="dropdown-item" href="#" @click.prevent="switchLanguage('vi')"><span class="fi fi-vi"></span> Tiếng Việt</a>
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import de from './translations/de.json';
|
import de from './translations/de.json';
|
||||||
import en from './translations/en.json';
|
import en from './translations/en.json';
|
||||||
import fr from './translations/fr.json';
|
import fr from './translations/fr.json';
|
||||||
|
import pt from './translations/pt.json';
|
||||||
import ru from './translations/ru.json';
|
import ru from './translations/ru.json';
|
||||||
import uk from './translations/uk.json';
|
import uk from './translations/uk.json';
|
||||||
import vi from './translations/vi.json';
|
import vi from './translations/vi.json';
|
||||||
@ -23,6 +24,7 @@ const i18n = createI18n({
|
|||||||
"de": de,
|
"de": de,
|
||||||
"en": en,
|
"en": en,
|
||||||
"fr": fr,
|
"fr": fr,
|
||||||
|
"pt": pt,
|
||||||
"ru": ru,
|
"ru": ru,
|
||||||
"uk": uk,
|
"uk": uk,
|
||||||
"vi": vi,
|
"vi": vi,
|
||||||
|
182
frontend/src/lang/translations/pt.json
Normal file
182
frontend/src/lang/translations/pt.json
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
{
|
||||||
|
"languages": {
|
||||||
|
"pt": "Português"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"pagination": {
|
||||||
|
"size": "Número de Elementos",
|
||||||
|
"all": "Todos (lento)"
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"placeholder": "Pesquisar...",
|
||||||
|
"button": "Pesquisar"
|
||||||
|
},
|
||||||
|
"select-all": "Selecionar tudo",
|
||||||
|
"yes": "Sim",
|
||||||
|
"no": "Não",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"close": "Fechar",
|
||||||
|
"save": "Guardar",
|
||||||
|
"delete": "Eliminar"
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"headline": "Por favor, inicie sessão",
|
||||||
|
"username": {
|
||||||
|
"label": "Nome de utilizador",
|
||||||
|
"placeholder": "Introduza o seu nome de utilizador"
|
||||||
|
},
|
||||||
|
"password": {
|
||||||
|
"label": "Palavra-passe",
|
||||||
|
"placeholder": "Introduza a sua palavra-passe"
|
||||||
|
},
|
||||||
|
"button": "Iniciar sessão"
|
||||||
|
},
|
||||||
|
"menu": {
|
||||||
|
"home": "Início",
|
||||||
|
"interfaces": "Interfaces",
|
||||||
|
"users": "Utilizadores",
|
||||||
|
"lang": "Alterar idioma",
|
||||||
|
"profile": "O Meu Perfil",
|
||||||
|
"settings": "Definições",
|
||||||
|
"audit": "Registo de Auditoria",
|
||||||
|
"login": "Iniciar Sessão",
|
||||||
|
"logout": "Terminar Sessão"
|
||||||
|
},
|
||||||
|
"home": {
|
||||||
|
"title": "Início",
|
||||||
|
"card": {
|
||||||
|
"interfaces": "Interfaces",
|
||||||
|
"users": "Utilizadores"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"interfaces": {
|
||||||
|
"title": "Interfaces",
|
||||||
|
"create": "Criar Interface",
|
||||||
|
"name": "Nome",
|
||||||
|
"address": "Endereço",
|
||||||
|
"listen-port": "Porta de Escuta",
|
||||||
|
"public-key": "Chave Pública",
|
||||||
|
"private-key": "Chave Privada",
|
||||||
|
"actions": "Ações",
|
||||||
|
"delete-dialog": {
|
||||||
|
"title": "Eliminar Interface",
|
||||||
|
"text": "Tem a certeza de que deseja eliminar a interface '{{name}}'?"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"name": {
|
||||||
|
"label": "Nome",
|
||||||
|
"placeholder": "Introduza um nome exclusivo para a interface"
|
||||||
|
},
|
||||||
|
"address": {
|
||||||
|
"label": "Endereço",
|
||||||
|
"placeholder": "Introduza um endereço válido (ex: 10.0.0.1/24)"
|
||||||
|
},
|
||||||
|
"listen-port": {
|
||||||
|
"label": "Porta de Escuta",
|
||||||
|
"placeholder": "Introduza a porta onde o WireGuard irá escutar (ex: 51820)"
|
||||||
|
},
|
||||||
|
"private-key": {
|
||||||
|
"label": "Chave Privada",
|
||||||
|
"placeholder": "Será gerada automaticamente se não for fornecida"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"users": {
|
||||||
|
"title": "Utilizadores",
|
||||||
|
"create": "Criar Utilizador",
|
||||||
|
"name": "Nome",
|
||||||
|
"email": "Email",
|
||||||
|
"enabled": "Ativo",
|
||||||
|
"is-admin": "Administrador",
|
||||||
|
"actions": "Ações",
|
||||||
|
"edit": "Editar",
|
||||||
|
"delete-dialog": {
|
||||||
|
"title": "Eliminar Utilizador",
|
||||||
|
"text": "Tem a certeza de que deseja eliminar o utilizador '{{nome}}'?"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"name": {
|
||||||
|
"label": "Nome",
|
||||||
|
"placeholder": "Introduza o nome do utilizador"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"label": "Email",
|
||||||
|
"placeholder": "Introduza o email do utilizador"
|
||||||
|
},
|
||||||
|
"password": {
|
||||||
|
"label": "Palavra-passe",
|
||||||
|
"placeholder": "Deixe em branco para manter a atual"
|
||||||
|
},
|
||||||
|
"is-admin": {
|
||||||
|
"label": "Administrador"
|
||||||
|
},
|
||||||
|
"enabled": {
|
||||||
|
"label": "Ativo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"peers": {
|
||||||
|
"title": "Peers",
|
||||||
|
"create": "Criar Peer",
|
||||||
|
"public-key": "Chave Pública",
|
||||||
|
"preshared-key": "Chave Pré-partilhada",
|
||||||
|
"endpoint": "Endpoint",
|
||||||
|
"allowed-ips": "IPs Permitidos",
|
||||||
|
"latest-handshake": "Último Handshake",
|
||||||
|
"transfer-rx": "Recebido",
|
||||||
|
"transfer-tx": "Enviado",
|
||||||
|
"persistent-keepalive": "Keepalive Persistente",
|
||||||
|
"actions": "Ações",
|
||||||
|
"edit": "Editar",
|
||||||
|
"delete-dialog": {
|
||||||
|
"title": "Eliminar Peer",
|
||||||
|
"text": "Tem a certeza de que deseja eliminar este peer?"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"public-key": {
|
||||||
|
"label": "Chave Pública",
|
||||||
|
"placeholder": "Introduza a chave pública do peer"
|
||||||
|
},
|
||||||
|
"preshared-key": {
|
||||||
|
"label": "Chave Pré-partilhada",
|
||||||
|
"placeholder": "Opcional: Chave partilhada adicional para maior segurança"
|
||||||
|
},
|
||||||
|
"endpoint": {
|
||||||
|
"label": "Endpoint",
|
||||||
|
"placeholder": "Endereço público do peer (ex: 1.2.3.4:51820)"
|
||||||
|
},
|
||||||
|
"allowed-ips": {
|
||||||
|
"label": "IPs Permitidos",
|
||||||
|
"placeholder": "Lista de IPs (ex: 10.0.0.2/32, 192.168.1.0/24)"
|
||||||
|
},
|
||||||
|
"persistent-keepalive": {
|
||||||
|
"label": "Keepalive Persistente",
|
||||||
|
"placeholder": "Ex: 25 (em segundos)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"title": "Definições",
|
||||||
|
"password": {
|
||||||
|
"label": "Nova Palavra-passe",
|
||||||
|
"placeholder": "Deixe em branco para manter a atual"
|
||||||
|
},
|
||||||
|
"save": "Guardar Alterações"
|
||||||
|
},
|
||||||
|
"audit": {
|
||||||
|
"title": "Registo de Auditoria",
|
||||||
|
"username": "Utilizador",
|
||||||
|
"ip": "Endereço IP",
|
||||||
|
"method": "Método",
|
||||||
|
"path": "Caminho",
|
||||||
|
"status": "Estado",
|
||||||
|
"timestamp": "Data/Hora"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"required": "Este campo é obrigatório",
|
||||||
|
"invalid-email": "Endereço de email inválido",
|
||||||
|
"invalid-address": "Endereço inválido",
|
||||||
|
"invalid-endpoint": "Endpoint inválido",
|
||||||
|
"invalid-allowed-ips": "Formato de IPs Permitidos inválido"
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user