From d5e7d7dd996c9277915f256a5bdc03a62f2a586f Mon Sep 17 00:00:00 2001 From: Renzo Toscani Date: Sat, 2 Dec 2023 01:48:21 -0300 Subject: [PATCH] feat: add spanish language support --- src/components/Feature/src/FeatureList.vue | 2 +- src/components/Header/src/Controls.vue | 4 + src/components/MobileMenu.vue | 18 +++++ src/locales/languages/en.json | 1 + src/locales/languages/es.json | 92 ++++++++++++++++++++++ src/locales/languages/zh-CN.json | 1 + src/locales/languages/zh-TW.json | 1 + src/models/ThemeConfig.class.ts | 16 ++-- src/utils/comments/github-api.ts | 1 + src/utils/comments/leancloud-api.ts | 1 + src/utils/index.ts | 8 ++ 11 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 src/locales/languages/es.json diff --git a/src/components/Feature/src/FeatureList.vue b/src/components/Feature/src/FeatureList.vue index 0f0369a9..1d8eebf9 100644 --- a/src/components/Feature/src/FeatureList.vue +++ b/src/components/Feature/src/FeatureList.vue @@ -7,7 +7,7 @@ class="ob-gradient-plate opacity-90 relative z-10 bg-ob-deep-900 rounded-2xl flex justify-start items-end px-6 pb-10 shadow-md" >

-

EDITOR'S SELECTION

+

{{ t('home.editor_selection') }}

{{ t('home.recommended') }} diff --git a/src/components/Header/src/Controls.vue b/src/components/Header/src/Controls.vue index cd246d9a..94656dac 100644 --- a/src/components/Header/src/Controls.vue +++ b/src/components/Header/src/Controls.vue @@ -37,11 +37,15 @@ 简体 繁體 En + Es English + + Español + 简体 diff --git a/src/components/MobileMenu.vue b/src/components/MobileMenu.vue index 607727f3..4045be91 100644 --- a/src/components/MobileMenu.vue +++ b/src/components/MobileMenu.vue @@ -79,6 +79,12 @@ > {{ route.i18n.en }} + + {{ route.i18n.es }} + {{ route.name }} {{ route.i18n.en }} + + {{ route.i18n.es }} + {{ route.name }} {{ sub.i18n.en }} + + {{ sub.i18n.es }} + {{ sub.name }} diff --git a/src/locales/languages/en.json b/src/locales/languages/en.json index 39827bc6..8524c906 100644 --- a/src/locales/languages/en.json +++ b/src/locales/languages/en.json @@ -11,6 +11,7 @@ "not-found": "Page not found" }, "home": { + "editor_selection": "EDITOR'S SELECTION", "recommended": "Feature Articles" }, "titles": { diff --git a/src/locales/languages/es.json b/src/locales/languages/es.json new file mode 100644 index 00000000..970968ec --- /dev/null +++ b/src/locales/languages/es.json @@ -0,0 +1,92 @@ +{ + "menu": { + "home": "Inicio", + "about": "Acerca de", + "archives": "Archivo", + "categories": "Categorias", + "tags": "Etiquetas", + "post": "Artículos", + "search": "Resultados de la búsqueda", + "message-board": "Centro de mensajes", + "not-found": "Página no encontrada" + }, + "home": { + "editor_selection": "SELECCION DEL EDITOR", + "recommended": "Destacados" + }, + "titles": { + "articles": "Artículos", + "about": "Acerca de", + "category_list": "Categorias", + "tag_list": "Etiquetas", + "toc": "Tabla de Contenido", + "comment": "Comentarios", + "recent_comment": "Comentarios Recientes" + }, + "settings": { + "months": [ + "Enero", + "Febrero", + "Marzo", + "Abril", + "Mayo", + "Junio", + "Julio", + "Agosto", + "Septiembre", + "Octubre", + "Noviembre", + "Diciembre" + ], + "articles": "Artículos", + "categories": "Categorias", + "tags": "Etiquetas", + "words": "Palabras", + "visitor_count": "Cantidad de visitantes", + "visit_count": "Cantidad de visitas", + "button-all": "Todos", + "paginator": { + "newer": "Pre", + "older": "Siguiente", + "prev": "Anterior", + "next": "Siguiente" + }, + "more-tags": "Ver más", + "admin-user": "Dueño", + "shared-on": "compartido en", + "recently-search": "Buscado recientemente:", + "search-result": "Encontrados [total] resultados.", + "no-recent-search": "Sin busquedas recientes.", + "no-search-result": "No se encontraron resultados.", + "cmd-to-select": "para seleccionar", + "cmd-to-navigate": "para navegar", + "cmd-to-close": "para cerrar", + "searched-by": "Búsqueda por", + "tips-back-to-top": "Volver arriba", + "tips-open-menu": "Abrir menú", + "tips-back-to-home": "Volver al inicio", + "tips-open-search": "Abrir buscador", + "default-category": "Artículo", + "default-tag": "ninguno", + "empty-tag": "Sin etiquetas.", + "empty-recent-comments": "Sin comentarios.", + "pinned": "Pin", + "featured": "Hot", + "page-views-value": "Visitas a la Página: ", + "site-running-for": "Tiempo de actividad: ", + "site-running-for-unit": "días", + "links": "Links Amigos", + "links-slogan": "Mejorando con cada blogger", + "links-random-visit": "Visitas random", + "links-apply": "Aplicar a lista de amigos", + "links-badge-personal": "Personal", + "links-badge-personal-desc": "Graba cada paso del camino.", + "links-badge-tech": "Tecnología", + "links-badge-tech-desc": "Blogs de tecnología relacionados.", + "links-badge-designer": "Diseñador", + "links-badge-designer-desc": "Blogs de diseño relacionados.", + "links-badge-vip": "Patrocinadores", + "links-badge-vip-desc": "Patrocinadores recientes", + "notification-random-jump": "Elegir un blogger afortunado al que recurrir." + } +} diff --git a/src/locales/languages/zh-CN.json b/src/locales/languages/zh-CN.json index 9a89e87a..40e1c5ca 100644 --- a/src/locales/languages/zh-CN.json +++ b/src/locales/languages/zh-CN.json @@ -11,6 +11,7 @@ "not-found": "无法找到页面" }, "home": { + "editor_selection": "EDITOR'S SELECTION", "recommended": "推荐文章" }, "titles": { diff --git a/src/locales/languages/zh-TW.json b/src/locales/languages/zh-TW.json index 21329b31..4bc590f8 100644 --- a/src/locales/languages/zh-TW.json +++ b/src/locales/languages/zh-TW.json @@ -11,6 +11,7 @@ "not-found": "無法找到頁面" }, "home": { + "editor_selection": "EDITOR'S SELECTION", "recommended": "推薦文章" }, "titles": { diff --git a/src/models/ThemeConfig.class.ts b/src/models/ThemeConfig.class.ts index bfeae33a..85a8fa78 100644 --- a/src/models/ThemeConfig.class.ts +++ b/src/models/ThemeConfig.class.ts @@ -80,7 +80,8 @@ export class ThemeMenu implements ObMenu { i18n: { 'zh-CN': '首页', 'zh-TW': '首頁', - en: 'Home' + en: 'Home', + es: 'Inicio' } }) } @@ -98,7 +99,8 @@ export class ThemeMenu implements ObMenu { i18n: { 'zh-CN': '关于', 'zh-TW': '關於', - en: 'About' + en: 'About', + es: 'Acerca de' } }, Archives: { @@ -107,7 +109,8 @@ export class ThemeMenu implements ObMenu { i18n: { 'zh-CN': '归档', 'zh-TW': '歸檔', - en: 'Archives' + en: 'Archives', + es: 'Archivos' } }, Tags: { @@ -116,7 +119,8 @@ export class ThemeMenu implements ObMenu { i18n: { 'zh-CN': '标签', 'zh-TW': '標簽', - en: 'Tags' + en: 'Tags', + es: 'Etiquetas' } }, Links: { @@ -125,7 +129,8 @@ export class ThemeMenu implements ObMenu { i18n: { 'zh-CN': '友情链接', 'zh-TW': '友情鏈接', - en: 'Friend Links' + en: 'Friend Links', + es: 'Links Amigos' } } } @@ -157,6 +162,7 @@ export class ThemeMenu implements ObMenu { } enum LocalesTypes { + es, en, 'zh-CN', 'zh-TW' diff --git a/src/utils/comments/github-api.ts b/src/utils/comments/github-api.ts index 650d2497..acb5a1fc 100644 --- a/src/utils/comments/github-api.ts +++ b/src/utils/comments/github-api.ts @@ -357,6 +357,7 @@ export class GithubComment implements RecentComment { */ transformTime(lang: Locales): void { const templates = { + es: 'comentado [TIME]', en: 'commented [TIME]', 'zh-CN': '[TIME]评论了', 'zh-TW': '[TIME]評論了' diff --git a/src/utils/comments/leancloud-api.ts b/src/utils/comments/leancloud-api.ts index 098cf9cb..92e86d98 100644 --- a/src/utils/comments/leancloud-api.ts +++ b/src/utils/comments/leancloud-api.ts @@ -329,6 +329,7 @@ export class LeanCloudComment implements RecentComment { */ transformTime(lang: Locales): void { const templates = { + es: 'comentado [TIME]', en: 'commented [TIME]', 'zh-CN': '[TIME]评论了', 'zh-TW': '[TIME]評論了' diff --git a/src/utils/index.ts b/src/utils/index.ts index a87e9ec4..67b55cd0 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -32,6 +32,14 @@ export function formatTime( lang: 'en' } const languages: Record = { + es: { + seconds: 'hace un momento', + minutes: ' minutos', + hours: ' horas', + days: ' días', + months: ' meses', + years: ' años' + }, en: { seconds: 'just seconds ago', minutes: ' minutes ago',