From 74d7c0fce78a60b557d1acaa90bdfb94867237e8 Mon Sep 17 00:00:00 2001 From: Matthias Held Date: Sun, 11 Jun 2023 09:26:25 +0200 Subject: [PATCH] Add German translation (#341) --- public/locales/de/about.json | 27 +++++++++++++++++++++ public/locales/de/api.json | 15 ++++++++++++ public/locales/de/drive.json | 16 ++++++++++++ public/locales/de/main.json | 47 ++++++++++++++++++++++++++++++++++++ public/locales/de/model.json | 28 +++++++++++++++++++++ src/constants/language.ts | 3 +++ 6 files changed, 136 insertions(+) create mode 100644 public/locales/de/about.json create mode 100644 public/locales/de/api.json create mode 100644 public/locales/de/drive.json create mode 100644 public/locales/de/main.json create mode 100644 public/locales/de/model.json diff --git a/public/locales/de/about.json b/public/locales/de/about.json new file mode 100644 index 0000000..9d04a15 --- /dev/null +++ b/public/locales/de/about.json @@ -0,0 +1,27 @@ +{ + "description": "Better ChatGPT ist eine großartige open-source web app, welche es ermöglicht mit der ChatGPT API von OpenAI zu interagieren!", + "sourceCode": "Sieh dir den <0>source code auf GitHub an und ⭐️ das Projekt!", + "initiative": { + "description": "Schau dir die <0>Open ChatGPT Initiative an!", + "link": "https://medium.com/@ayaka_45434/the-open-chatgpt-initiative-e76b0b62a3ae" + }, + "support": { + "title": "Support", + "paragraph1": "Unser Team arbeitet rund um die Uhr an neuen Features und Funktionen. Und wie bei jedem Projekt wird deine Unterstützung und Motivation entscheidend dazu beitragen, uns vorwärts zu bringen!", + "paragraph2": "Wenn dir Nutzen und Gefallen an Better ChatGPT findest, dann bitte gib unserem <0>Projekt einen ⭐️. Deine Unterstützung bedeutet uns viel und motiviert uns dazu, noch härter zu arbeiten, um das Projekt voran zu bringen.", + "paragraph3": "Wenn du das Team unterstützen möchtest, wäre es super, uns durch eine der unten aufgeführten Methoden zu sponsern. Jeder Beitrag, egal wie klein, hilft uns dabei, unseren Service zu erhalten und zu verbessern.", + "paragraph4": "Vielen Dank, dass du ein Teil unserer Community bist. Wir freuen uns darauf, bald mehr Features zu präsentieren und das Projekt zu erweitern.", + "alipay": "Alipay", + "wechatPay": "WeChat" + }, + "discordServer": { + "title": "Discord Server", + "paragraph1": "Tritt unserer Discord-Community bei! Unser Server ist ein großartiger Ort, um Ideen und Tipps für ChatGPT auszutauschen und Feature-Anfragen für Better ChatGPT einzureichen. Du hast die Möglichkeit, mit den Entwicklern hinter Better ChatGPT sowie anderen KI-Enthusiasten zu interagieren, die deine und unsere Leidenschaft teilen.", + "paragraph2": "Um dem Server beizutreten, klick auf den folgenden Link: <0>https://discord.gg/g3Qnwy4V6A. Wir freuen uns auf dich!" + }, + "privacyStatement": { + "title": "Datenschutzerklärung", + "paragraph1": "Wir legen großen Wert auf deine Privatsphäre und verpflichten uns, die Privatsphäre all unserer Benutzer zu schützen. Weder sammeln noch speichern wir die Texte die du eingibst oder von den OpenAI-Servern empfängst. Unsere Quellcode ist öffentlich einsehbar, damit du das auch überprüfen kannst.", + "paragraph2": "Die Sicherheit deines API-Schlüssels ist unsere höchste Priorität. Dieser wird ausschließlich lokal in deinem Browser gespeichert und niemals mit irgendeiner Drittpartei geteilt. Er wird ausschließlich für den vorgesehenen Zweck des Zugriffs auf die OpenAI-API verwendet und nicht für andere Zwecke." + } +} diff --git a/public/locales/de/api.json b/public/locales/de/api.json new file mode 100644 index 0000000..82475bd --- /dev/null +++ b/public/locales/de/api.json @@ -0,0 +1,15 @@ +{ + "securityMessage": "Die Sicherheit deines API-Schlüssels ist unsere höchste Priorität. Dieser wird ausschließlich lokal in deinem Browser gespeichert und niemals mit irgendeiner Drittpartei geteilt. Er wird ausschließlich für den vorgesehenen Zweck des Zugriffs auf die OpenAI-API verwendet und nicht für andere Zwecke.", + "apiEndpoint": { + "inputLabel": "API Endpunkt", + "description": "Wenn du einen inoffiziellen API-Endpunkt auswählst, funktioniert er als Proxy. Ein Proxy fungiert als Vermittler zwischen deinem Gerät und dem Zielserver, in diesem Fall der OpenAI-API. Auf diese Weise ermöglicht es dir, auf die OpenAI-API zuzugreifen, auch in Regionen, in denen der Zugriff normalerweise eingeschränkt ist.", + "warn": "Wenn du einen benutzerdefinierten API-Endpunkt verwendest, der kostenlosen Zugriff auf die OpenAI-API gewährt, kannst du ChatGPT ohne die Angabe eines API-Schlüssels nutzen, indem du das API-Schlüssel-Feld einfach leer lässt. Es ist jedoch wichtig, bei der Verwendung von API-Endpunkten von Drittanbietern vorsichtig zu sein, da unzuverlässige Endpunkte deine persönlichen Informationen in den Gesprächen protokollieren können. Überprüfe immer die Zuverlässigkeit eines API-Endpunkts, bevor du ihn verwendest, um deine Privatsphäre und Sicherheit zu schützen." + }, + "apiKey": { + "howTo": "Besorg dir <0>hier deinen eigenen API-Schlüssel.", + "inputLabel": "API-Schlüssel" + }, + "customEndpoint": "Verwende einen benutzerdefinierten API-Endpunkt", + "advancedConfig": "Sieh dir die <0>erweiterten API Konfigurationen an", + "noApiKeyWarning": "Kein API-Schlüssel angegeben! Überprüfe bitte deine API-Einstellungen." +} diff --git a/public/locales/de/drive.json b/public/locales/de/drive.json new file mode 100644 index 0000000..7de3480 --- /dev/null +++ b/public/locales/de/drive.json @@ -0,0 +1,16 @@ +{ + "name": "Google Sync", + "tagline": "Synchronisiere deine Chat-Verläufe und Einstellungen einfach mit Google Drive.", + "button": { + "sync": "Jetzt synchronisieren", + "stop": "Synchronisation stoppen", + "create": "Neue Datei anlegen", + "confirm": "Auswahl bestätigen" + }, + "notice": "Hinweis: Du musst dich bei jedem Besuch oder alle Stunde erneut anmelden. Verwende BetterChatGPT nicht gleichzeitig auf mehr als einem Gerät, um zu vermeiden, dass deine Cloud-Daten überschrieben werden.", + "privacy": "Deine Privatsphäre ist uns wichtig und um sie zu schützen, hat Better ChatGPT nur limitierten Zugriff. Das bedeutet, dass Better ChatGPT nur die eigenen Dateien und Ordner erstellen, anzeigen und verwalten kann.", + "toast": { + "sync": "Synchronisation erfolgreich!", + "stop": "Synchronisation angehalten" + } +} diff --git a/public/locales/de/main.json b/public/locales/de/main.json new file mode 100644 index 0000000..dc430e9 --- /dev/null +++ b/public/locales/de/main.json @@ -0,0 +1,47 @@ +{ + "save": "Speichern", + "saveAndSubmit": "Speichern & Absenden", + "cancel": "Abbrechen", + "confirm": "Bestätigen", + "warning": "Achtung", + "clearMessageWarning": "Bitte beachte, dass durch das Einreichen dieser neuen Nachricht alle nachfolgenden Nachrichten gelöscht werden!", + "clearConversationWarning": "Bitte beachte, dass bei Bestätigung dieser Aktion alle Nachrichten gelöscht werden!", + "clearConversation": "Chat-Verlauf löschen.", + "import": "Importieren", + "export": "Exportieren", + "author": "Made by Jing Hua", + "about": "Über uns & Sponsor", + "api": "API", + "personal": "Persönlich", + "free": "Kostenlos", + "downloadChat": "Chat downloaden", + "user": "Nutzer", + "assistant": "Assistent", + "system": "System", + "newChat": "Neuer Chat", + "lightMode": "Heller Modus", + "darkMode": "Dunkler Modus", + "setting": "Einstellungen", + "image": "Bild", + "autoTitle": "Chat-Titel automatisch generieren", + "advancedMode": "Erweiterter Modus", + "inlineLatex": "Inline Latex", + "prompt": "Prompt", + "promptLibrary": "Prompt Bibliothek", + "name": "Name", + "search": "Suche", + "total": "Gesamt", + "resetCost": "Kosten zurücksetzen", + "countTotalTokens": "Gesamte Tokens zusammenrechnen", + "morePrompts": "Du findest mehr Prompts hier: ", + "clearPrompts": "Prompts löschen", + "postOnShareGPT": { + "title": "Auf ShareGPT teilen", + "warning": "Bitte beachte, dass durch das Posten deiner Konversation auf ShareGPT diese öffentlich zugänglich und für jeden einsehbar wird. Einmal veröffentlicht, kann die Konversation nicht mehr versteckt oder gelöscht werden und kann möglicherweise von anderen archiviert oder geteilt werden. Wir raten dir daher, sorgfältig zu drüber nachzudenken ob du die Konversation teilst. Vermeide grundsätzlich sensible oder private Informationen auf dieser Plattform zu teilen." + }, + "newFolder": "Neuer Ordner", + "cloneChat": "Chat klonen", + "cloned": "Klonen erfolgreich", + "enterToSubmit": "Drücke Enter zum absenden", + "submitPlaceholder": "Verfasse eine Nachricht oder klicke auf [/] für gespeicherte Prompts..." +} diff --git a/public/locales/de/model.json b/public/locales/de/model.json new file mode 100644 index 0000000..f9c8109 --- /dev/null +++ b/public/locales/de/model.json @@ -0,0 +1,28 @@ +{ + "configuration": "Konfiguration", + "model": "Model", + "token": { + "label": "Max Token", + "description": "Die maximale Anzahl von Tokens, die bei der Chat-Vervollständigung generiert werden. Die Gesamtlänge der Eingabetokens und generierten Tokens wird durch die Kontextlänge des Modells begrenzt." + }, + "default": "Standardwert", + "temperature": { + "label": "Temperature", + "description": "Welche Abtastrate (sampling temmperature) verwendet werden soll. Möglichkeiten liegen zwischen 0 und 2. Höhere Werte wie 0,8 machen die Ausgabe zufälliger, während niedrigere Werte wie 0,2 sie fokussierter und deterministischer machen. Wir empfehlen im Allgemeinen, entweder diesen Wert oder den Top-p-Wert zu ändern, aber nicht beide gleichzeitig. (Standardwert: 1)" + }, + "presencePenalty": { + "label": "Presence Penalty", + "description": "Eine Zahl zwischen -2,0 und 2,0. Positive Werte bestrafen neue Tokens basierend darauf, ob sie bisher im Text erscheinen sind, und erhöhen die Wahrscheinlichkeit des Modells, über neue Themen zu sprechen. (Standardwert: 0)" + }, + "topP": { + "label": "Top-p", + "description": "Eine Zahl zwischen 0 und 1. Eine Alternative zum Abtasten mit Temperature (siehe oben), genannt Nukleus-sampling. Dabei berücksichtigt das Modell die Ergebnisse der Tokens mit Top-p-Wahrscheinlichkeitsmasse. Bei einem Wert von 0,1 werden nur die Tokens berücksichtigt, die die oberen 10% der Wahrscheinlichkeitsmasse ausmachen. Wir empfehlen im Allgemeinen, entweder diesen Wert oder die Temperatur zu ändern, aber nicht beide gleichzeitig. (Standardwert: 1)" + }, + "frequencyPenalty": { + "label": "Frequency Penalty", + "description": "Eine Zahl zwischen -2,0 und 2,0. Positive Werte bestrafen neue Tokens basierend auf ihrer bestehenden Häufigkeit im Text und verringern die Wahrscheinlichkeit des Modells, dieselbe Zeile wörtlich zu wiederholen. (Standardwert: 0)" + }, + "defaultChatConfig": "Standart Chat Konfiguration", + "defaultSystemMessage": "Standart System Nachricht", + "resetToDefault": "Auf Standartkonfiguration zurücksetzen" +} diff --git a/src/constants/language.ts b/src/constants/language.ts index 62e4b49..afaf988 100644 --- a/src/constants/language.ts +++ b/src/constants/language.ts @@ -2,6 +2,7 @@ export const i18nLanguages = [ // 'ar', 'da', + 'de', 'en', 'en-GB', 'en-US', @@ -26,6 +27,7 @@ export const i18nLanguages = [ export const selectableLanguages = [ // 'ar', 'da', + 'de', // 'en', 'en-GB', 'en-US', @@ -49,6 +51,7 @@ export const selectableLanguages = [ export const languageCodeToName = { // 'ar': 'العربية', 'da': 'Dansk', + 'de': 'Deutsch', 'en': 'English', 'en-GB': 'English (UK)', 'en-US': 'English (US)',