feature: support Spanish(#1196)
This commit is contained in:
		@@ -6,6 +6,7 @@
 | 
			
		||||
    <el-dropdown-menu slot="dropdown">
 | 
			
		||||
      <el-dropdown-item :disabled="language==='zh'" command="zh">中文</el-dropdown-item>
 | 
			
		||||
      <el-dropdown-item :disabled="language==='en'" command="en">English</el-dropdown-item>
 | 
			
		||||
      <el-dropdown-item :disabled="language==='es'" command="es">Español</el-dropdown-item>
 | 
			
		||||
    </el-dropdown-menu>
 | 
			
		||||
  </el-dropdown>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										155
									
								
								src/lang/es.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										155
									
								
								src/lang/es.js
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,155 @@
 | 
			
		||||
export default {
 | 
			
		||||
  route: {
 | 
			
		||||
    dashboard: 'Panel de control',
 | 
			
		||||
    introduction: 'Introducción',
 | 
			
		||||
    documentation: 'Documentación',
 | 
			
		||||
    guide: 'Guía',
 | 
			
		||||
    permission: 'Permisos',
 | 
			
		||||
    pagePermission: 'Permisos de la página',
 | 
			
		||||
    directivePermission: 'Permisos de la directiva',
 | 
			
		||||
    icons: 'Iconos',
 | 
			
		||||
    components: 'Componentes',
 | 
			
		||||
    componentIndex: 'Introducción',
 | 
			
		||||
    tinymce: 'Tinymce',
 | 
			
		||||
    markdown: 'Markdown',
 | 
			
		||||
    jsonEditor: 'Editor JSON',
 | 
			
		||||
    dndList: 'Lista Dnd',
 | 
			
		||||
    splitPane: 'Panel dividido',
 | 
			
		||||
    avatarUpload: 'Subir avatar',
 | 
			
		||||
    dropzone: 'Subir ficheros',
 | 
			
		||||
    sticky: 'Sticky',
 | 
			
		||||
    countTo: 'CountTo',
 | 
			
		||||
    componentMixin: 'Mixin',
 | 
			
		||||
    backToTop: 'Ir arriba',
 | 
			
		||||
    dragDialog: 'Drag Dialog',
 | 
			
		||||
    dragKanban: 'Drag Kanban',
 | 
			
		||||
    charts: 'Gráficos',
 | 
			
		||||
    keyboardChart: 'Keyboard Chart',
 | 
			
		||||
    lineChart: 'Gráfico de líneas',
 | 
			
		||||
    mixChart: 'Mix Chart',
 | 
			
		||||
    example: 'Ejemplo',
 | 
			
		||||
    nested: 'Rutas anidadass',
 | 
			
		||||
    menu1: 'Menu 1',
 | 
			
		||||
    'menu1-1': 'Menu 1-1',
 | 
			
		||||
    'menu1-2': 'Menu 1-2',
 | 
			
		||||
    'menu1-2-1': 'Menu 1-2-1',
 | 
			
		||||
    'menu1-2-2': 'Menu 1-2-2',
 | 
			
		||||
    'menu1-3': 'Menu 1-3',
 | 
			
		||||
    menu2: 'Menu 2',
 | 
			
		||||
    Table: 'Tabla',
 | 
			
		||||
    dynamicTable: 'Tabla dinámica',
 | 
			
		||||
    dragTable: 'Arrastrar tabla',
 | 
			
		||||
    inlineEditTable: 'Editor',
 | 
			
		||||
    complexTable: 'Complex Table',
 | 
			
		||||
    treeTable: 'Tree Table',
 | 
			
		||||
    customTreeTable: 'Custom TreeTable',
 | 
			
		||||
    tab: 'Pestaña',
 | 
			
		||||
    form: 'Formulario',
 | 
			
		||||
    createArticle: 'Crear artículo',
 | 
			
		||||
    editArticle: 'Editar artículo',
 | 
			
		||||
    articleList: 'Listado de artículos',
 | 
			
		||||
    errorPages: 'Páginas de error',
 | 
			
		||||
    page401: '401',
 | 
			
		||||
    page404: '404',
 | 
			
		||||
    errorLog: 'Registro de errores',
 | 
			
		||||
    excel: 'Excel',
 | 
			
		||||
    exportExcel: 'Exportar a Excel',
 | 
			
		||||
    selectExcel: 'Export seleccionado',
 | 
			
		||||
    uploadExcel: 'Subir Excel',
 | 
			
		||||
    zip: 'Zip',
 | 
			
		||||
    exportZip: 'Exportar a Zip',
 | 
			
		||||
    theme: 'Tema',
 | 
			
		||||
    clipboardDemo: 'Clipboard',
 | 
			
		||||
    i18n: 'I18n',
 | 
			
		||||
    externalLink: 'Enlace externo'
 | 
			
		||||
  },
 | 
			
		||||
  navbar: {
 | 
			
		||||
    logOut: 'Salir',
 | 
			
		||||
    dashboard: 'Panel de control',
 | 
			
		||||
    github: 'Github',
 | 
			
		||||
    screenfull: 'Pantalla completa',
 | 
			
		||||
    theme: 'Tema',
 | 
			
		||||
    size: 'Tamaño global'
 | 
			
		||||
  },
 | 
			
		||||
  login: {
 | 
			
		||||
    title: 'Formulario de acceso',
 | 
			
		||||
    logIn: 'Acceso',
 | 
			
		||||
    username: 'Usuario',
 | 
			
		||||
    password: 'Contraseña',
 | 
			
		||||
    any: 'nada',
 | 
			
		||||
    thirdparty: 'Conectar con',
 | 
			
		||||
    thirdpartyTips: 'No se puede simular en local, así que combine su propia simulación de negocios. ! !'
 | 
			
		||||
  },
 | 
			
		||||
  documentation: {
 | 
			
		||||
    documentation: 'Documentación',
 | 
			
		||||
    github: 'Repositorio Github'
 | 
			
		||||
  },
 | 
			
		||||
  permission: {
 | 
			
		||||
    roles: 'Tus permisos',
 | 
			
		||||
    switchRoles: 'Cambiar permisos'
 | 
			
		||||
  },
 | 
			
		||||
  guide: {
 | 
			
		||||
    description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',
 | 
			
		||||
    button: 'Ver guía'
 | 
			
		||||
  },
 | 
			
		||||
  components: {
 | 
			
		||||
    documentation: 'Documentación',
 | 
			
		||||
    tinymceTips: 'Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.',
 | 
			
		||||
    dropzoneTips: 'Because my business has special needs, and has to upload images to qiniu, so instead of a third party, I chose encapsulate it by myself. It is very simple, you can see the detail code in @/components/Dropzone.',
 | 
			
		||||
    stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',
 | 
			
		||||
    backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',
 | 
			
		||||
    backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',
 | 
			
		||||
    imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.'
 | 
			
		||||
  },
 | 
			
		||||
  table: {
 | 
			
		||||
    dynamicTips1: 'Fixed header, sorted by header order',
 | 
			
		||||
    dynamicTips2: 'Not fixed header, sorted by click order',
 | 
			
		||||
    dragTips1: 'Orden por defecto',
 | 
			
		||||
    dragTips2: 'The after dragging order',
 | 
			
		||||
    title: 'Título',
 | 
			
		||||
    importance: 'Importancia',
 | 
			
		||||
    type: 'Tipo',
 | 
			
		||||
    remark: 'Remark',
 | 
			
		||||
    search: 'Buscar',
 | 
			
		||||
    add: 'Añadir',
 | 
			
		||||
    export: 'Exportar',
 | 
			
		||||
    reviewer: 'reviewer',
 | 
			
		||||
    id: 'ID',
 | 
			
		||||
    date: 'Fecha',
 | 
			
		||||
    author: 'Autor',
 | 
			
		||||
    readings: 'Lector',
 | 
			
		||||
    status: 'Estado',
 | 
			
		||||
    actions: 'Acciones',
 | 
			
		||||
    edit: 'Editar',
 | 
			
		||||
    publish: 'Publicar',
 | 
			
		||||
    draft: 'Draft',
 | 
			
		||||
    delete: 'Eliminar',
 | 
			
		||||
    cancel: 'Cancelar',
 | 
			
		||||
    confirm: 'Confirmar'
 | 
			
		||||
  },
 | 
			
		||||
  errorLog: {
 | 
			
		||||
    tips: 'Please click the bug icon in the upper right corner',
 | 
			
		||||
    description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',
 | 
			
		||||
    documentation: 'Documento de introducción'
 | 
			
		||||
  },
 | 
			
		||||
  excel: {
 | 
			
		||||
    export: 'Exportar',
 | 
			
		||||
    selectedExport: 'Exportar seleccionados',
 | 
			
		||||
    placeholder: 'Por favor escribe un nombre de fichero'
 | 
			
		||||
  },
 | 
			
		||||
  zip: {
 | 
			
		||||
    export: 'Exportar',
 | 
			
		||||
    placeholder: 'Por favor escribe un nombre de fichero'
 | 
			
		||||
  },
 | 
			
		||||
  theme: {
 | 
			
		||||
    change: 'Cambiar tema',
 | 
			
		||||
    documentation: 'Documentación del tema',
 | 
			
		||||
    tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'
 | 
			
		||||
  },
 | 
			
		||||
  tagsView: {
 | 
			
		||||
    refresh: 'Actualizar',
 | 
			
		||||
    close: 'Cerrar',
 | 
			
		||||
    closeOthers: 'Cerrar otros',
 | 
			
		||||
    closeAll: 'Cerrar todos'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -3,8 +3,10 @@ import VueI18n from 'vue-i18n'
 | 
			
		||||
import Cookies from 'js-cookie'
 | 
			
		||||
import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
 | 
			
		||||
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
 | 
			
		||||
import elementEsLocale from 'element-ui/lib/locale/lang/es'// element-ui lang
 | 
			
		||||
import enLocale from './en'
 | 
			
		||||
import zhLocale from './zh'
 | 
			
		||||
import esLocale from './es'
 | 
			
		||||
 | 
			
		||||
Vue.use(VueI18n)
 | 
			
		||||
 | 
			
		||||
@@ -16,12 +18,16 @@ const messages = {
 | 
			
		||||
  zh: {
 | 
			
		||||
    ...zhLocale,
 | 
			
		||||
    ...elementZhLocale
 | 
			
		||||
  },
 | 
			
		||||
  es: {
 | 
			
		||||
    ...esLocale,
 | 
			
		||||
    ...elementEsLocale
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const i18n = new VueI18n({
 | 
			
		||||
  // set locale
 | 
			
		||||
  // options: en or zh
 | 
			
		||||
  // options: en | zh | es
 | 
			
		||||
  locale: Cookies.get('language') || 'en',
 | 
			
		||||
  // set locale messages
 | 
			
		||||
  messages
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@
 | 
			
		||||
        <el-radio-group v-model="lang" size="small">
 | 
			
		||||
          <el-radio label="zh" border>简体中文</el-radio>
 | 
			
		||||
          <el-radio label="en" border>English</el-radio>
 | 
			
		||||
          <el-radio label="es" border>Español</el-radio>
 | 
			
		||||
        </el-radio-group>
 | 
			
		||||
        <el-tag style="margin-top:15px;display:block;" type="info">{{ $t('i18nView.note') }}</el-tag>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -101,6 +102,7 @@ export default {
 | 
			
		||||
    if (!this.$i18n.getLocaleMessage('en')[viewName]) {
 | 
			
		||||
      this.$i18n.mergeLocaleMessage('en', local.en)
 | 
			
		||||
      this.$i18n.mergeLocaleMessage('zh', local.zh)
 | 
			
		||||
      this.$i18n.mergeLocaleMessage('es', local.es)
 | 
			
		||||
    }
 | 
			
		||||
    this.setOptions() // set default select options
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -39,5 +39,25 @@ export default {
 | 
			
		||||
      two: 'Two',
 | 
			
		||||
      three: 'Three'
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  es: {
 | 
			
		||||
    i18nView: {
 | 
			
		||||
      title: 'Switch Language',
 | 
			
		||||
      note: 'The internationalization of this project is based on vue-i18n',
 | 
			
		||||
      datePlaceholder: 'Pick a day',
 | 
			
		||||
      selectPlaceholder: 'Select',
 | 
			
		||||
      tableDate: 'tableDate',
 | 
			
		||||
      tableName: 'tableName',
 | 
			
		||||
      tableAddress: 'tableAddress',
 | 
			
		||||
      default: 'default:',
 | 
			
		||||
      primary: 'primary',
 | 
			
		||||
      success: 'success',
 | 
			
		||||
      info: 'info',
 | 
			
		||||
      warning: 'warning',
 | 
			
		||||
      danger: 'danger',
 | 
			
		||||
      one: 'One',
 | 
			
		||||
      two: 'Two',
 | 
			
		||||
      three: 'Three'
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user