From e0fa0d19366a6f998f0cfb024a4bf0a18cff5b2f Mon Sep 17 00:00:00 2001 From: tscherrie tscherru Date: Sun, 16 Apr 2023 04:00:31 +0000 Subject: [PATCH 1/4] Add german language translation de.tss --- app/locales/de.ts | 183 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 app/locales/de.ts diff --git a/app/locales/de.ts b/app/locales/de.ts new file mode 100644 index 000000000..193d5443b --- /dev/null +++ b/app/locales/de.ts @@ -0,0 +1,183 @@ +import { SubmitKey } from "../store/app"; +import type { LocaleType } from "./index"; + +const de: LocaleType = { + WIP: "In Bearbeitung...", + Error: { + Unauthorized: + "Unbefugter Zugriff, bitte geben Sie den Zugangscode auf der Einstellungsseite ein.", + }, + ChatItem: { + ChatItemCount: (count: number) => `${count} Nachrichten`, + }, + Chat: { + SubTitle: (count: number) => `${count} Nachrichten mit ChatGPT`, + Actions: { + ChatList: "Zur Chat-Liste gehen", + CompressedHistory: "Komprimierter VerlaufsGedächtnis-Prompt", + Export: "Alle Nachrichten als Markdown exportieren", + Copy: "Kopieren", + Stop: "Stop", + Retry: "Wiederholen", + }, + Rename: "Chat umbenennen", + Typing: "Tippen...", + Input: (submitKey: string) => { + var inputHints = `${submitKey} zum Senden`; + if (submitKey === String(SubmitKey.Enter)) { + inputHints += ", Umschalt + Eingabe zum Zeilenumbruch"; + } + return inputHints + ", / zum Durchsuchen von Prompts"; + }, + Send: "Senden", + }, + Export: { + Title: "Alle Nachrichten", + Copy: "Alles kopieren", + Download: "Herunterladen", + MessageFromYou: "Deine Nachricht", + MessageFromChatGPT: "Nachricht von ChatGPT", + }, + Memory: { + Title: "Gedächtnis-Prompt", + EmptyContent: "Noch nichts.", + Send: "Gedächtnis senden", + Copy: "Gedächtnis kopieren", + Reset: "Sitzung zurücksetzen", + ResetConfirm: + "Das Zurücksetzen löscht den aktuellen Gesprächsverlauf und das Langzeit-Gedächtnis. Möchten Sie wirklich zurücksetzen?", + }, + Home: { + NewChat: "Neuer Chat", + DeleteChat: "Bestätigen Sie, um das ausgewählte Gespräch zu löschen?", + DeleteToast: "Chat gelöscht", + Revert: "Zurücksetzen", + }, + Settings: { + Title: "Einstellungen", + SubTitle: "Alle Einstellungen", + Actions: { + ClearAll: "Alle Daten löschen", + ResetAll: "Alle Einstellungen zurücksetzen", + Close: "Schließen", + ConfirmResetAll: { + Confirm: "Möchten Sie wirklich alle Konfigurationen zurücksetzen?", + }, + ConfirmClearAll: { + Confirm: "Möchten Sie wirklich alle Chats zurücksetzen?", + }, + }, + Lang: { + Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` + Options: { + cn: "简体中文", + en: "English", + tw: "繁體中文", + es: "Español", + it: "Italiano", + tr: "Türkçe", + jp: "日本語", + de: "Deutsch", + }, + }, + Avatar: "Avatar", + FontSize: { + Title: "Schriftgröße", + SubTitle: "Schriftgröße des Chat-Inhalts anpassen", + }, + Update: { + Version: (x: string) => `Version: ${x}`, + IsLatest: "Neueste Version", + CheckUpdate: "Update prüfen", + IsChecking: "Update wird geprüft...", + FoundUpdate: (x: string) => `Neue Version gefunden: ${x}`, + GoToUpdate: "Aktualisieren", + }, + SendKey: "Sendetaste", + Theme: "Thema", + TightBorder: "Enge Grenze", + SendPreviewBubble: "Vorschau-Bubble senden", + Prompt: { + Disable: { + Title: "Autovervollständigung deaktivieren", + SubTitle: "Autovervollständigung mit / starten", + }, + List: "Prompt-Liste", + ListCount: (builtin: number, custom: number) => + `${builtin} integriert, ${custom} benutzerdefiniert`, + Edit: "Bearbeiten", + }, + HistoryCount: { + Title: "Anzahl der angehängten Nachrichten", + SubTitle: "Anzahl der pro Anfrage angehängten gesendeten Nachrichten", + }, + CompressThreshold: { + Title: "Schwellenwert für Verlaufskomprimierung", + SubTitle: + "Wird komprimiert, wenn die Länge der unkomprimierten Nachrichten den Wert überschreitet", + }, + Token: { + Title: "API-Schlüssel", + SubTitle: + "Verwenden Sie Ihren Schlüssel, um das Zugangscodelimit zu ignorieren", + Placeholder: "OpenAI API-Schlüssel", + }, + Usage: { + Title: "Kontostand", + SubTitle(used: any, total: any) { + return `Diesen Monat verwendet $${used}, Abonnement $${total}`; + }, + IsChecking: "Wird überprüft...", + Check: "Erneut prüfen", + NoAccess: "API-Schlüssel eingeben, um den Kontostand zu überprüfen", + }, + AccessCode: { + Title: "Zugangscode", + SubTitle: "Zugangskontrolle aktiviert", + Placeholder: "Zugangscode erforderlich", + }, + Model: "Modell", + Temperature: { + Title: "Temperature", //Temperatur + SubTitle: "Ein größerer Wert führt zu zufälligeren Antworten", + }, + MaxTokens: { + Title: "Max Tokens", //Maximale Token + SubTitle: "Maximale Anzahl der Anfrage- plus Antwort-Token", + }, + PresencePenlty: { + Title: "Presence Penalty", //Anwesenheitsstrafe + SubTitle: + "Ein größerer Wert erhöht die Wahrscheinlichkeit, dass über neue Themen gesprochen wird", + }, + }, + Store: { + DefaultTopic: "Neues Gespräch", + BotHello: "Hallo! Wie kann ich Ihnen heute helfen?", + Error: + "Etwas ist schief gelaufen, bitte versuchen Sie es später noch einmal.", + Prompt: { + History: (content: string) => + "Dies ist eine Zusammenfassung des Chatverlaufs zwischen dem KI und dem Benutzer als Rückblick: " + + content, + Topic: + "Bitte erstellen Sie einen vier- bis fünfwörtigen Titel, der unser Gespräch zusammenfasst, ohne Einleitung, Zeichensetzung, Anführungszeichen, Punkte, Symbole oder zusätzlichen Text. Entfernen Sie Anführungszeichen.", + Summarize: + "Fassen Sie unsere Diskussion kurz in 200 Wörtern oder weniger zusammen, um sie als Pronpt für zukünftige Gespräche zu verwenden.", + }, + ConfirmClearAll: + "Bestätigen Sie, um alle Chat- und Einstellungsdaten zu löschen?", + }, + Copy: { + Success: "In die Zwischenablage kopiert", + Failed: + "Kopieren fehlgeschlagen, bitte geben Sie die Berechtigung zum Zugriff auf die Zwischenablage frei", + }, + Context: { + Toast: (x: any) => `Mit ${x} kontextbezogene Prompts`, + Edit: "Kontextbezogene und Gedächtnis-Prompts", + Add: "Hinzufügen", + }, +}; + +export default de; From 4ce5f89c660d4ff67487cecb7bb524d8f677c9ca Mon Sep 17 00:00:00 2001 From: tscherrie tscherru Date: Sun, 16 Apr 2023 04:16:04 +0000 Subject: [PATCH 2/4] fixed german language translations --- app/locales/en.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/locales/en.ts b/app/locales/en.ts index bd417aa84..686d73eee 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -77,6 +77,7 @@ const en: LocaleType = { it: "Italiano", tr: "Türkçe", jp: "日本語", + de: "Deutsch", }, }, Avatar: "Avatar", From f042d07ee7312dc792ef78c497ba68655ccfc4be Mon Sep 17 00:00:00 2001 From: tscherrie tscherru Date: Sun, 16 Apr 2023 05:07:54 +0000 Subject: [PATCH 3/4] added de to index and other files --- app/locales/cn.ts | 1 + app/locales/es.ts | 1 + app/locales/index.ts | 27 +++++++++++++++++++++++---- app/locales/it.ts | 1 + app/locales/jp.ts | 1 + app/locales/tr.ts | 1 + app/locales/tw.ts | 4 +++- app/store/app.ts | 1 + 8 files changed, 32 insertions(+), 5 deletions(-) diff --git a/app/locales/cn.ts b/app/locales/cn.ts index 9973a3c68..aa99227ce 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -74,6 +74,7 @@ const cn = { it: "Italiano", tr: "Türkçe", jp: "日本語", + de: "Deutsch", }, }, Avatar: "头像", diff --git a/app/locales/es.ts b/app/locales/es.ts index 88bcd2012..a895367f0 100644 --- a/app/locales/es.ts +++ b/app/locales/es.ts @@ -77,6 +77,7 @@ const es: LocaleType = { it: "Italiano", tr: "Türkçe", jp: "日本語", + de: "Deutsch", }, }, Avatar: "Avatar", diff --git a/app/locales/index.ts b/app/locales/index.ts index dff1e6614..e4b303b41 100644 --- a/app/locales/index.ts +++ b/app/locales/index.ts @@ -5,10 +5,20 @@ import ES from "./es"; import IT from "./it"; import TR from "./tr"; import JP from "./jp"; +import DE from "./de"; export type { LocaleType } from "./cn"; -export const AllLangs = ["en", "cn", "tw", "es", "it", "tr", "jp"] as const; +export const AllLangs = [ + "en", + "cn", + "tw", + "es", + "it", + "tr", + "jp", + "de", +] as const; type Lang = (typeof AllLangs)[number]; const LANG_KEY = "lang"; @@ -56,6 +66,8 @@ export function getLang(): Lang { return "tr"; } else if (lang.includes("jp")) { return "jp"; + } else if (lang.includes("de")) { + return "de"; } else { return "en"; } @@ -66,6 +78,13 @@ export function changeLang(lang: Lang) { location.reload(); } -export default { en: EN, cn: CN, tw: TW, es: ES, it: IT, tr: TR, jp: JP }[ - getLang() -]; +export default { + en: EN, + cn: CN, + tw: TW, + es: ES, + it: IT, + tr: TR, + jp: JP, + de: DE, +}[getLang()]; diff --git a/app/locales/it.ts b/app/locales/it.ts index c785d616e..928572214 100644 --- a/app/locales/it.ts +++ b/app/locales/it.ts @@ -77,6 +77,7 @@ const it: LocaleType = { it: "Italiano", tr: "Türkçe", jp: "日本語", + de: "Deutsch", }, }, Avatar: "Avatar", diff --git a/app/locales/jp.ts b/app/locales/jp.ts index 50ac21609..09623a570 100644 --- a/app/locales/jp.ts +++ b/app/locales/jp.ts @@ -76,6 +76,7 @@ const jp = { it: "Italiano", tr: "Türkçe", jp: "日本語", + de: "Deutsch", }, }, Avatar: "アバター", diff --git a/app/locales/tr.ts b/app/locales/tr.ts index 708d2d7d5..a77771be1 100644 --- a/app/locales/tr.ts +++ b/app/locales/tr.ts @@ -77,6 +77,7 @@ const tr: LocaleType = { it: "Italiano", tr: "Türkçe", jp: "日本語", + de: "Deutsch", }, }, Avatar: "Avatar", diff --git a/app/locales/tw.ts b/app/locales/tw.ts index b239ed65d..318bdcd29 100644 --- a/app/locales/tw.ts +++ b/app/locales/tw.ts @@ -75,6 +75,7 @@ const tw: LocaleType = { it: "Italiano", tr: "Türkçe", jp: "日本語", + de: "Deutsch", }, }, Avatar: "大頭貼", @@ -152,7 +153,8 @@ const tw: LocaleType = { Prompt: { History: (content: string) => "這是 AI 與用戶的歷史聊天總結,作為前情提要:" + content, - Topic: "Summarise the conversation in a short and concise eye-catching title that instantly conveys the main topic. Use as few words as possible. Use the language used in the enquiry, e.g. use English for English enquiry, use zh-hant for traditional chinese enquiry. Don't use quotation marks at the beginning and the end.", + Topic: + "Summarise the conversation in a short and concise eye-catching title that instantly conveys the main topic. Use as few words as possible. Use the language used in the enquiry, e.g. use English for English enquiry, use zh-hant for traditional chinese enquiry. Don't use quotation marks at the beginning and the end.", Summarize: "Summarise the conversation in at most 250 tokens for continuing the conversation in future. Use the language used in the conversation, e.g. use English for English conversation, use zh-hant for traditional chinese conversation.", }, diff --git a/app/store/app.ts b/app/store/app.ts index 813668905..c767d9999 100644 --- a/app/store/app.ts +++ b/app/store/app.ts @@ -560,6 +560,7 @@ export const useChatStore = create()( onError(error) { console.error("[Summarize] ", error); }, + enen, }, ); } From 2c35c2674945fdb65d35d22981aa864c980a4227 Mon Sep 17 00:00:00 2001 From: tscherrie tscherru Date: Sun, 16 Apr 2023 05:32:55 +0000 Subject: [PATCH 4/4] fixed typo --- app/store/app.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/store/app.ts b/app/store/app.ts index c767d9999..813668905 100644 --- a/app/store/app.ts +++ b/app/store/app.ts @@ -560,7 +560,6 @@ export const useChatStore = create()( onError(error) { console.error("[Summarize] ", error); }, - enen, }, ); }