add es lang

This commit is contained in:
lejianwen
2024-11-26 10:42:21 +08:00
parent ad33afb154
commit ce242e344a
12 changed files with 490 additions and 24 deletions
+1 -1
View File
@@ -47,7 +47,7 @@
min-height: 100vh;
border-right: none;
&:not(.el-menu--collapse) {
width: 210px;
width: var(--sideBarWidth);
}
}
+4 -5
View File
@@ -1,6 +1,6 @@
<template>
<el-config-provider :locale="appStore.setting.locale">
<el-container>
<el-config-provider :locale="appStore.setting.locale.value">
<el-container :style="{'--sideBarWidth': sideBarWidth}">
<el-aside :width="leftWidth" class="app-left">
<g-aside></g-aside>
</el-aside>
@@ -27,7 +27,6 @@
</template>
<script setup>
import { useUserStore } from '@/store/user'
import { useAppStore } from '@/store/app'
import { useTagsStore } from '@/store/tags'
import { ref, computed } from 'vue'
@@ -37,8 +36,8 @@
const appStore = useAppStore()
const tagStore = useTagsStore()
const leftWidth = computed(() => appStore.setting.sideIsCollapse ? '64px' : '210px')
const sideBarWidth = computed(() => appStore.setting.locale.sideBarWidth)
const leftWidth = computed(() => appStore.setting.sideIsCollapse ? '64px' : 'var(--sideBarWidth)')
const cachedTags = ref([])
+11 -8
View File
@@ -4,14 +4,17 @@ import zhCn from 'element-plus/es/locale/lang/zh-cn'
import en from 'element-plus/es/locale/lang/en'
import ko from 'element-plus/es/locale/lang/ko'
import ru from 'element-plus/es/locale/lang/ru'
import es from 'element-plus/es/locale/lang/es'
import { admin, app } from '@/api/config'
const langs = {
'zh-CN': { name: '中文', value: zhCn },
'en': { name: 'English', value: en },
'ko': { name: '한국어', value: ko },
'ru': { name: 'русский', value: ru },
'zh-CN': { name: '中文', value: zhCn, sideBarWidth: '210px' },
'en': { name: 'English', value: en, sideBarWidth: '230px' },
'ko': { name: '한국어', value: ko, sideBarWidth: '230px' },
'ru': { name: 'русский', value: ru, sideBarWidth: '250px' },
'es': { name: 'español', value: es, sideBarWidth: '280px' },
}
const defaultLang = localStorage.getItem('lang') || navigator.language || 'zh-CN'
export const useAppStore = defineStore({
id: 'App',
state: () => ({
@@ -21,8 +24,8 @@ export const useAppStore = defineStore({
sideIsCollapse: false,
logo,
langs: langs,
lang: localStorage.getItem('lang') || 'zh-CN',
locale: langs[(localStorage.getItem('lang') || 'zh-CN')].value,
lang: defaultLang,
locale: langs[defaultLang] ? langs[defaultLang] : langs['en'],
appConfig: {
web_client: 1,
},
@@ -36,7 +39,7 @@ export const useAppStore = defineStore({
setLang (lang) {
console.log('setLang', lang)
this.setting.lang = lang
this.setting.locale = langs[lang].value
this.setting.locale = langs[lang]
localStorage.setItem('lang', lang)
},
changeLang (v) {
@@ -58,7 +61,7 @@ export const useAppStore = defineStore({
this.setting.title = res.data.title
this.setting.hello = res.data.hello
})
}
},
},
})
-1
View File
@@ -2,7 +2,6 @@ $basicBlack: #000000;
$basicWhite: #ffffff;
$primaryColor: #409eff;
$sideBarWidth: 210px;
:root {
--basicBlack: #000000;
+3 -1
View File
@@ -2,6 +2,7 @@ import en from '@/utils/i18n/en.json'
import zhCN from '@/utils/i18n/zh_CN.json'
import ko from '@/utils/i18n/ko.json'
import ru from '@/utils/i18n/ru.json'
import es from '@/utils/i18n/es.json'
import { useAppStore } from '@/store/app'
export function T (key, params, num = 0) {
@@ -12,8 +13,9 @@ export function T (key, params, num = 0) {
'zh-CN': zhCN,
'ko': ko,
'ru': ru,
'es': es,
}
const tran = trans[lang][key]
const tran = trans[lang]?.[key]
if (!tran) {
return key
}
+457
View File
@@ -0,0 +1,457 @@
{
"Login": {
"One": "Iniciar sesión"
},
"Logout": {
"One": "Cerrar sesión"
},
"Register": {
"One": "Registrar"
},
"Confirm": {
"One": "Confirmar"
},
"Username": {
"One": "Nombre de usuario"
},
"Password": {
"One": "Contraseña"
},
"LoginSuccess": {
"One": "Inicio de sesión exitoso"
},
"ForgotPassword": {
"One": "Olvidó su contraseña"
},
"ResetPassword": {
"One": "Restablecer contraseña"
},
"ChangePassword": {
"One": "Cambiar contraseña"
},
"Userinfo": {
"One": "Información del usuario"
},
"ParamRequired": {
"One": "{param} es requerido"
},
"HasBind": {
"One": "Está vinculado"
},
"NoBind": {
"One": "No está vinculado"
},
"UnBind": {
"One": "Desvincular"
},
"ToBind": {
"One": "Vincular"
},
"Confirm?": {
"One": "¿Confirmar {param}?"
},
"Cancel": {
"One": "Cancelar"
},
"Platform": {
"One": "Plataforma"
},
"Status": {
"One": "Estado"
},
"Actions": {
"One": "Acciones"
},
"Filter": {
"One": "Filtrar"
},
"Add": {
"One": "Agregar"
},
"Hostname": {
"One": "Nombre del host"
},
"Alias": {
"One": "Alias"
},
"Hash": {
"One": "Hash"
},
"Tags": {
"One": "Etiquetas"
},
"Edit": {
"One": "Editar"
},
"Delete": {
"One": "Eliminar"
},
"Create": {
"One": "Crear"
},
"Update": {
"One": "Actualizar"
},
"LoginName": {
"One": "Nombre de inicio de sesión"
},
"Submit": {
"One": "Enviar"
},
"OperationSuccess": {
"One": "Operación exitosa"
},
"Owner": {
"One": "Propietario"
},
"Name": {
"One": "Nombre"
},
"Color": {
"One": "Color"
},
"CreatedAt": {
"One": "Creado en"
},
"UpdatedAt": {
"One": "Actualizado en"
},
"Memory": {
"One": "Memoria"
},
"Os": {
"One": "Sistema operativo"
},
"Uuid": {
"One": "Uuid"
},
"Version": {
"One": "Versión"
},
"Type": {
"One": "Tipo"
},
"Group": {
"One": "Grupo"
},
"CommonGroup": {
"One": "Grupo común"
},
"CommonGroupNote": {
"One": "Solo los administradores pueden ver a los miembros del grupo y sus dispositivos"
},
"SharedGroup": {
"One": "Grupo compartido"
},
"SharedGroupNote": {
"One": "Todos los usuarios pueden ver a los miembros del grupo y sus dispositivos"
},
"Nickname": {
"One": "Apodo"
},
"UserTags": {
"One": "Etiquetas de usuario"
},
"UserAddressBook": {
"One": "Libreta de direcciones de usuario"
},
"IsAdmin": {
"One": "Es administrador"
},
"PleaseInputNewPassword": {
"One": "Por favor, introduzca una nueva contraseña"
},
"AutoRegister": {
"One": "Registro automático"
},
"AutoRegisterNote": {
"One": "Si está habilitado, se registrará automáticamente una cuenta cuando un usuario inicie sesión con OAuth sin vincular una cuenta existente"
},
"ThirdName": {
"One": "Nombre tercero"
},
"Close": {
"One": "Cerrar"
},
"OauthBinding": {
"One": "Está autorizando la vinculación"
},
"OauthLogining": {
"One": "Está autorizando el inicio de sesión"
},
"OauthCloseNote": {
"One": "Si no fue autorizado por usted, cierre directamente la página"
},
"OperationSuccessAndCloseAfter3Seconds": {
"One": "Operación exitosa, cierre después de 3 segundos"
},
"ConfirmOauth": {
"One": "Confirmar OAuth"
},
"Device": {
"One": "Dispositivo"
},
"ChangeLang": {
"One": "Cambiar a chino"
},
"My": {
"One": "Mi"
},
"Info": {
"One": "Información"
},
"AddressBooks": {
"One": "Libretas de direcciones"
},
"System": {
"One": "Sistema"
},
"PeerManage": {
"One": "Pares"
},
"AddressBookManage": {
"One": "Libretas de direcciones"
},
"GroupManage": {
"One": "Grupos"
},
"UserManage": {
"One": "Usuarios"
},
"UserAdd": {
"One": "Agregar usuario"
},
"UserEdit": {
"One": "Editar usuario"
},
"TagsManage": {
"One": "Etiquetas"
},
"OauthManage": {
"One": "OAuth"
},
"LoginLog": {
"One": "Registro de inicio de sesión"
},
"LastOnlineTime": {
"One": "Última vez en línea"
},
"JustNow": {
"One": "Justo ahora"
},
"MinutesAgo": {
"One": "Hace {param} minuto",
"Other": "Hace {param} minutos"
},
"HoursAgo": {
"One": "Hace {param} hora",
"Other": "Hace {param} horas"
},
"DaysAgo": {
"One": "Hace {param} día",
"Other": "Hace {param} días"
},
"MonthsAgo": {
"One": "Hace {param} mes",
"Other": "Hace {param} meses"
},
"YearsAgo": {
"One": "Hace {param} año",
"Other": "Hace {param} años"
},
"MinutesLess": {
"One": "Menos de {param} minuto",
"Other": "Menos de {param} minutos"
},
"HoursLess": {
"One": "Menos de {param} hora",
"Other": "Menos de {param} horas"
},
"DaysLess": {
"One": "Menos de {param} día",
"Other": "Menos de {param} días"
},
"Export": {
"One": "Exportar"
},
"AddToAddressBook": {
"One": "Agregar a la libreta de direcciones"
},
"BatchDelete": {
"One": "Eliminar por lotes"
},
"PleaseSelectData": {
"One": "Por favor, seleccione datos"
},
"PasswordType": {
"One": "Tipo de contraseña"
},
"OncePassword": {
"One": "Contraseña de un solo uso"
},
"FixedPassword": {
"One": "Contraseña fija"
},
"FixedPasswordWarning": {
"One": "Las contraseñas fijas pueden ser filtradas, por favor úselas con precaución. Se recomienda usar contraseñas de un solo uso."
},
"ExpireTime": {
"One": "Tiempo de expiración"
},
"ShareByWebClient": {
"One": "Compartir por cliente web"
},
"Minutes": {
"One": "{param} minuto",
"Other": "{param} minutos"
},
"Hours": {
"One": "{param} hora",
"Other": "{param} horas"
},
"Days": {
"One": "{param} día",
"Other": "{param} días"
},
"Weeks": {
"One": "{param} semana",
"Other": "{param} semanas"
},
"Months": {
"One": "{param} mes",
"Other": "{param} meses"
},
"Forever": {
"One": "Para siempre"
},
"Error": {
"One": "Error"
},
"IDNotExist": {
"One": "El ID no existe"
},
"RemoteDesktopOffline": {
"One": "El escritorio remoto está fuera de línea"
},
"KeyMismatch": {
"One": "La clave no coincide"
},
"KeyOveruse": {
"One": "Uso excesivo de la clave"
},
"Link": {
"One": "Enlace"
},
"CopySuccess": {
"One": "Copia exitosa"
},
"CopyFailed": {
"One": "Copia fallida"
},
"Timeout": {
"One": "Tiempo de espera agotado"
},
"AuditConnLog": {
"One": "Registro de conexiones"
},
"Peer": {
"One": "Par",
"Other": "Pares"
},
"FromPeer": {
"One": "Desde el par"
},
"FromName": {
"One": "Desde el nombre"
},
"CloseTime": {
"One": "Hora de cierre"
},
"AuditFileLog": {
"One": "Registro de archivos"
},
"Common": {
"One": "Común"
},
"File": {
"One": "Archivo"
},
"Num": {
"One": "Número"
},
"Ip": {
"One": "Ip"
},
"FileName": {
"One": "Nombre del archivo"
},
"FileInfo": {
"One": "Información del archivo"
},
"Path": {
"One": "Ruta"
},
"IndexNum": {
"One": "Número de índice"
},
"ToRemote": {
"One": "A remoto"
},
"ToLocal": {
"One": "A local"
},
"AddressBookName": {
"One": "Nombre de la libreta"
},
"AddRule": {
"One": "Agregar regla"
},
"ShareRules": {
"One": "Reglas de compartición"
},
"Rule": {
"One": "Regla"
},
"Read": {
"One": "Leer"
},
"ReadWrite": {
"One": "Leer y escribir"
},
"FullControl": {
"One": "Control total"
},
"ShareTo": {
"One": "Compartir con"
},
"MyAddressBook": {
"One": "Mi libreta de direcciones"
},
"AddressBook": {
"One": "Libreta de direcciones"
},
"AddressBookNameManage": {
"One": "Nombre de la libreta"
},
"MyAddressBookTips": {
"One": "\"Mi libreta de direcciones\" es la predeterminada del sistema, no puede ser modificada ni eliminada."
},
"LastOnlineIp": {
"One": "Última IP en línea"
},
"ConfirmPassword": {
"One": "Confirmar contraseña"
},
"PasswordNotMatchConfirmPassword": {
"One": "La contraseña no coincide con la contraseña de confirmación"
},
"ToLogin": {
"One": "Iniciar sesión"
},
"UserToken": {
"One": "Token del usuario"
},
"MyPeer": {
"One": "Mis pares"
}
}
+3
View File
@@ -436,5 +436,8 @@
},
"UserToken": {
"One": "사용자 토큰"
},
"MyPeer": {
"One": "내 피어"
}
}
+4 -1
View File
@@ -30,7 +30,7 @@
"One": "Сменить пароль"
},
"Userinfo": {
"One": "Информация о пользователе"
"One": "Данные пользователя"
},
"ParamRequired": {
"One": "{param} обязательный"
@@ -450,6 +450,9 @@
},
"UserToken": {
"One": "Токен пользователя"
},
"MyPeer": {
"One": "Мои партнеры"
}
}
+1 -1
View File
@@ -9,7 +9,7 @@
<el-input v-model="listQuery.from_peer" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handlerQuery">筛选</el-button>
<el-button type="primary" @click="handlerQuery">{{ T('Filter') }}</el-button>
<el-button type="danger" @click="toBatchDelete">{{ T('BatchDelete') }}</el-button>
</el-form-item>
</el-form>
+1 -1
View File
@@ -9,7 +9,7 @@
<el-input v-model="listQuery.from_peer" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handlerQuery">筛选</el-button>
<el-button type="primary" @click="handlerQuery">{{ T('Filter') }}</el-button>
<el-button type="danger" @click="toBatchDelete">{{ T('BatchDelete') }}</el-button>
</el-form-item>
</el-form>
+2 -2
View File
@@ -13,7 +13,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handlerQuery">筛选</el-button>
<el-button type="primary" @click="handlerQuery">{{ T('Filter')}}</el-button>
<el-button type="danger" @click="toBatchDelete">{{ T('BatchDelete') }}</el-button>
</el-form-item>
</el-form>
@@ -36,7 +36,7 @@
<el-table-column prop="created_at" :label="T('CreatedAt')" align="center"/>
<el-table-column :label="T('Actions')" align="center" width="400">
<template #default="{row}">
<el-button type="danger" @click="del(row)">删除</el-button>
<el-button type="danger" @click="del(row)">{{T('Delete')}}</el-button>
</template>
</el-table-column>
</el-table>
+1 -1
View File
@@ -13,7 +13,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handlerQuery">筛选</el-button>
<el-button type="primary" @click="handlerQuery">{{ T('Filter')}}</el-button>
</el-form-item>
</el-form>
</el-card>