From df75b9973a92c6e82fbce84b9ac7834006affa40 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Gerardo=20Rond=C3=B3n=20Garc=C3=ADa?=
 <61068392+DanielRondonGarcia@users.noreply.github.com>
Date: Thu, 30 Mar 2023 19:48:57 -0500
Subject: [PATCH 1/2] Update: locales in spanish

---
 app/locales/cn.ts    |   1 +
 app/locales/en.ts    |   1 +
 app/locales/es.ts    | 154 +++++++++++++++++++++++++++++++++++++++++++
 app/locales/index.ts |   7 +-
 app/locales/tw.ts    |   1 +
 5 files changed, 162 insertions(+), 2 deletions(-)
 create mode 100644 app/locales/es.ts

diff --git a/app/locales/cn.ts b/app/locales/cn.ts
index 239da23f..737ccad4 100644
--- a/app/locales/cn.ts
+++ b/app/locales/cn.ts
@@ -57,6 +57,7 @@ const cn = {
         cn: "简体中文",
         en: "English",
         tw: "繁體中文",
+        es: "Español",
       },
     },
     Avatar: "头像",
diff --git a/app/locales/en.ts b/app/locales/en.ts
index 29699243..861fcda1 100644
--- a/app/locales/en.ts
+++ b/app/locales/en.ts
@@ -59,6 +59,7 @@ const en: LocaleType = {
         cn: "简体中文",
         en: "English",
         tw: "繁體中文",
+        es: "Español",
       },
     },
     Avatar: "Avatar",
diff --git a/app/locales/es.ts b/app/locales/es.ts
new file mode 100644
index 00000000..1f078b77
--- /dev/null
+++ b/app/locales/es.ts
@@ -0,0 +1,154 @@
+import { SubmitKey } from "../store/app";
+import type { LocaleType } from "./index";
+
+const es: LocaleType = {
+  WIP: "En construcción...",
+  Error: {
+    Unauthorized:
+      "Acceso no autorizado, por favor ingrese el código de acceso en la página de configuración.",
+  },
+  ChatItem: {
+    ChatItemCount: (count: number) => `${count} mensajes`,
+  },
+  Chat: {
+    SubTitle: (count: number) => `${count} mensajes con ChatGPT`,
+    Actions: {
+      ChatList: "Ir a la lista de chats",
+      CompressedHistory: "Historial de memoria comprimido",
+      Export: "Exportar todos los mensajes como Markdown",
+      Copy: "Copiar",
+      Stop: "Detener",
+      Retry: "Reintentar",
+    },
+    Rename: "Renombrar chat",
+    Typing: "Escribiendo...",
+    Input: (submitKey: string) => {
+      var inputHints = `Escribe algo y presiona ${submitKey} para enviar`;
+      if (submitKey === String(SubmitKey.Enter)) {
+        inputHints += ", presiona Shift + Enter para nueva línea";
+      }
+      return inputHints;
+    },
+    Send: "Enviar",
+  },
+  Export: {
+    Title: "Todos los mensajes",
+    Copy: "Copiar todo",
+    Download: "Descargar",
+  },
+  Memory: {
+    Title: "Historial de memoria",
+    EmptyContent: "Aún no hay nada.",
+    Copy: "Copiar todo",
+  },
+  Home: {
+    NewChat: "Nuevo chat",
+    DeleteChat: "¿Confirmar eliminación de la conversación seleccionada?",
+  },
+  Settings: {
+    Title: "Configuración",
+    SubTitle: "Todas las configuraciones",
+    Actions: {
+      ClearAll: "Borrar todos los datos",
+      ResetAll: "Restablecer todas las configuraciones",
+      Close: "Cerrar",
+    },
+    Lang: {
+      Name: "Idioma",
+      Options: {
+        cn: "中文简体",
+        en: "Inglés",
+        tw: "中文繁體",
+        es: "Español",
+      },
+    },
+    Avatar: "Avatar",
+    FontSize: {
+      Title: "Tamaño de fuente",
+      SubTitle: "Ajustar el tamaño de fuente del contenido del chat",
+    },
+    Update: {
+      Version: (x: string) => `Versión: ${x}`,
+      IsLatest: "Última versión",
+      CheckUpdate: "Buscar actualizaciones",
+      IsChecking: "Buscando actualizaciones...",
+      FoundUpdate: (x: string) => `Se encontró una nueva versión: ${x}`,
+      GoToUpdate: "Actualizar",
+    },
+    SendKey: "Tecla de envío",
+    Theme: "Tema",
+    TightBorder: "Borde ajustado",
+    Prompt: {
+      Disable: {
+        Title: "Desactivar autocompletado",
+        SubTitle: "Escribe / para activar el autocompletado",
+      },
+      List: "Lista de autocompletado",
+      ListCount: (builtin: number, custom: number) =>
+        `${builtin} incorporado, ${custom} definido por el usuario`,
+      Edit: "Editar",
+    },
+    HistoryCount: {
+      Title: "Cantidad de mensajes adjuntos",
+      SubTitle: "Número de mensajes enviados adjuntos por solicitud",
+    },
+    CompressThreshold: {
+      Title: "Umbral de compresión de historial",
+      SubTitle:
+        "Se comprimirán los mensajes si la longitud de los mensajes no comprimidos supera el valor",
+    },
+    Token: {
+      Title: "Clave de API",
+      SubTitle: "Utiliza tu clave para ignorar el límite de código de acceso",
+      Placeholder: "Clave de la API de OpenAI",
+    },
+    Usage: {
+      Title: "Saldo de la cuenta",
+      SubTitle(granted: any, used: any) {
+        return `Total $${granted}, Usado $${used}`;
+      },
+      IsChecking: "Comprobando...",
+      Check: "Comprobar de nuevo",
+    },
+    AccessCode: {
+      Title: "Código de acceso",
+      SubTitle: "Control de acceso habilitado",
+      Placeholder: "Necesita código de acceso",
+    },
+    Model: "Modelo",
+    Temperature: {
+      Title: "Temperatura",
+      SubTitle: "Un valor mayor genera una salida más aleatoria",
+    },
+    MaxTokens: {
+      Title: "Máximo de tokens",
+      SubTitle: "Longitud máxima de tokens de entrada y tokens generados",
+    },
+    PresencePenlty: {
+      Title: "Penalización de presencia",
+      SubTitle:
+        "Un valor mayor aumenta la probabilidad de hablar sobre nuevos temas",
+    },
+  },
+  Store: {
+    DefaultTopic: "Nueva conversación",
+    BotHello: "¡Hola! ¿Cómo puedo ayudarte hoy?",
+    Error: "Algo salió mal, por favor intenta nuevamente más tarde.",
+    Prompt: {
+      History: (content: string) =>
+        "Este es un resumen del historial del chat entre la IA y el usuario como recapitulación: " +
+        content,
+      Topic:
+        "Por favor, genera un título de cuatro a cinco palabras que resuma nuestra conversación sin ningún inicio, puntuación, comillas, puntos, símbolos o texto adicional. Elimina las comillas que lo envuelven.",
+      Summarize:
+        "Resuma nuestra discusión brevemente en 50 caracteres o menos para usarlo como un recordatorio para futuros contextos.",
+    },
+    ConfirmClearAll: "¿Confirmar para borrar todos los datos de chat y configuración?",
+  },
+  Copy: {
+    Success: "Copiado al portapapeles",
+    Failed: "La copia falló, por favor concede permiso para acceder al portapapeles",
+  },
+};
+
+export default es;
\ No newline at end of file
diff --git a/app/locales/index.ts b/app/locales/index.ts
index 5e5d38fe..eb96408c 100644
--- a/app/locales/index.ts
+++ b/app/locales/index.ts
@@ -1,10 +1,11 @@
 import CN from "./cn";
 import EN from "./en";
 import TW from "./tw";
+import ES from "./es";
 
 export type { LocaleType } from "./cn";
 
-export const AllLangs = ["en", "cn", "tw"] as const;
+export const AllLangs = ["en", "cn", "tw", "es"] as const;
 type Lang = (typeof AllLangs)[number];
 
 const LANG_KEY = "lang";
@@ -44,6 +45,8 @@ export function getLang(): Lang {
     return "cn";
   } else if (lang.includes("tw")) {
     return "tw";
+  } else if (lang.includes("es")) {
+    return "es";
   } else {
     return "en";
   }
@@ -54,4 +57,4 @@ export function changeLang(lang: Lang) {
   location.reload();
 }
 
-export default { en: EN, cn: CN, tw: TW }[getLang()];
+export default { en: EN, cn: CN, tw: TW, es: ES }[getLang()];
\ No newline at end of file
diff --git a/app/locales/tw.ts b/app/locales/tw.ts
index e63c57a6..89bde6ca 100644
--- a/app/locales/tw.ts
+++ b/app/locales/tw.ts
@@ -58,6 +58,7 @@ const tw: LocaleType = {
         cn: "简体中文",
         en: "English",
         tw: "繁體中文",
+        es: "Español",
       },
     },
     Avatar: "大頭貼",

From 7f16698f0159eb4262a7a291b477125eb6c56b42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Gerardo=20Rond=C3=B3n=20Garc=C3=ADa?=
 <61068392+DanielRondonGarcia@users.noreply.github.com>
Date: Thu, 30 Mar 2023 23:32:56 -0500
Subject: [PATCH 2/2] Update: language options to "Language".

- Update Name option in language files to display 'Language' consistently
- Fix locale issues in 'tw' and 'cn' files that were mistakenly changed
---
 app/locales/en.ts | 2 +-
 app/locales/es.ts | 6 +++---
 app/locales/tw.ts | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/locales/en.ts b/app/locales/en.ts
index 861fcda1..156c0361 100644
--- a/app/locales/en.ts
+++ b/app/locales/en.ts
@@ -54,7 +54,7 @@ const en: LocaleType = {
       Close: "Close",
     },
     Lang: {
-      Name: "语言",
+      Name: "Language",
       Options: {
         cn: "简体中文",
         en: "English",
diff --git a/app/locales/es.ts b/app/locales/es.ts
index 1f078b77..3f7ad1bc 100644
--- a/app/locales/es.ts
+++ b/app/locales/es.ts
@@ -54,11 +54,11 @@ const es: LocaleType = {
       Close: "Cerrar",
     },
     Lang: {
-      Name: "Idioma",
+      Name: "Language",
       Options: {
-        cn: "中文简体",
+        cn: "简体中文",
         en: "Inglés",
-        tw: "中文繁體",
+        tw: "繁體中文",
         es: "Español",
       },
     },
diff --git a/app/locales/tw.ts b/app/locales/tw.ts
index 89bde6ca..cfba7add 100644
--- a/app/locales/tw.ts
+++ b/app/locales/tw.ts
@@ -53,7 +53,7 @@ const tw: LocaleType = {
       Close: "關閉",
     },
     Lang: {
-      Name: "語言",
+      Name: "Language",
       Options: {
         cn: "简体中文",
         en: "English",