From 3aa821975dcba7149b6fecc397c269e180191a94 Mon Sep 17 00:00:00 2001 From: canisminor1990 Date: Fri, 15 Dec 2023 22:56:01 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90=20chore:=20Update=20locale?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .i18nrc.js | 1 + locales/en_US/chat.json | 24 ++-- locales/en_US/common.json | 8 +- locales/en_US/error.json | 32 +++--- locales/en_US/market.json | 4 +- locales/en_US/migration.json | 8 +- locales/en_US/plugin.json | 105 +++++++----------- locales/en_US/setting.json | 14 +-- locales/fr_FR/chat.json | 22 ++-- locales/fr_FR/common.json | 8 +- locales/fr_FR/error.json | 24 ++-- locales/fr_FR/plugin.json | 52 +++++---- locales/fr_FR/setting.json | 24 ++-- locales/fr_FR/welcome.json | 6 +- locales/ja_JP/chat.json | 2 +- locales/ja_JP/common.json | 8 +- locales/ja_JP/error.json | 32 +++--- locales/ja_JP/migration.json | 8 +- locales/ja_JP/plugin.json | 81 +++++++------- locales/ja_JP/setting.json | 2 +- locales/ko_KR/chat.json | 2 +- locales/ko_KR/common.json | 8 +- locales/ko_KR/error.json | 32 +++--- locales/ko_KR/migration.json | 8 +- locales/ko_KR/plugin.json | 81 +++++++------- locales/ko_KR/setting.json | 2 +- locales/ru_RU/chat.json | 2 +- locales/ru_RU/common.json | 8 +- locales/ru_RU/error.json | 32 +++--- locales/ru_RU/market.json | 4 +- locales/ru_RU/migration.json | 8 +- locales/ru_RU/plugin.json | 81 +++++++------- locales/ru_RU/setting.json | 2 +- locales/zh_CN/chat.json | 2 +- locales/zh_CN/plugin.json | 6 + locales/zh_CN/setting.json | 2 +- locales/zh_TW/chat.json | 2 +- locales/zh_TW/common.json | 8 +- locales/zh_TW/error.json | 32 +++--- locales/zh_TW/market.json | 4 +- locales/zh_TW/migration.json | 8 +- locales/zh_TW/plugin.json | 105 +++++++----------- locales/zh_TW/setting.json | 2 +- package.json | 1 + scripts/i18nWorkflow/genDiff.ts | 15 ++- scripts/i18nWorkflow/utils.ts | 14 --- .../features/Migration/ExportConfigButton.tsx | 2 +- .../AgentSetting/store/initialState.ts | 2 +- src/locales/default/chat.ts | 2 +- src/store/session/selectors.ts | 2 +- src/types/openai/chat.ts | 1 - src/types/translate.ts | 1 - 52 files changed, 453 insertions(+), 493 deletions(-) diff --git a/.i18nrc.js b/.i18nrc.js index 344e490dcc..e26a9462c6 100644 --- a/.i18nrc.js +++ b/.i18nrc.js @@ -2,6 +2,7 @@ const { defineConfig } = require('@lobehub/i18n-cli'); module.exports = defineConfig({ entry: 'locales/zh_CN', + reference: '翻译后的字数尽量和原文一致', entryLocale: 'zh_CN', output: 'locales', outputLocales: ['zh_TW', 'en_US', 'ru_RU', 'ja_JP', 'ko_KR', 'fr_FR'], diff --git a/locales/en_US/chat.json b/locales/en_US/chat.json index 9160530c94..4a4cb60951 100644 --- a/locales/en_US/chat.json +++ b/locales/en_US/chat.json @@ -1,28 +1,28 @@ { - "agentDefaultMessage": "Hello, I'm **{{name}}**. You can start chatting with me right away, or go to [Assistant Settings](/chat/settings#session={{id}}) to complete my information.", + "agentDefaultMessage": "Hello, I'm **{{name}}**. You can start chatting with me right away, or go to [Agent Settings](/chat/settings#session={{id}}) to complete my information.", "agentDefaultMessageWithSystemRole": "Hello, I'm **{{name}}**, {{systemRole}}. Let's start chatting!", - "backToBottom": "Back to Bottom", + "backToBottom": "Back to bottom", "clearCurrentMessages": "Clear current session messages", "confirmClearCurrentMessages": "You are about to clear the current session messages. Once cleared, they cannot be retrieved. Please confirm your action.", - "confirmRemoveSessionItemAlert": "You are about to delete this assistant. Once deleted, it cannot be retrieved. Please confirm your action.", - "defaultAgent": "Default Assistant", - "defaultSession": "Default Assistant", + "confirmRemoveSessionItemAlert": "You are about to delete this agent. Once deleted, it cannot be retrieved. Please confirm your action.", + "defaultAgent": "Default Agent", + "defaultSession": "Default Agent", "historyRange": "History Range", "inbox": { - "defaultMessage": "Hello, I'm your virtual assistant. You can ask me anything, and I'll do my best to answer you. If you need a more professional or customized assistant, click on `+` to create a custom assistant.", - "desc": "Activate the brain cluster and spark creative thinking. Your virtual assistant is here to communicate with you about everything.", + "defaultMessage": "Hello, I'm your virtual agent. You can ask me anything, and I'll do my best to answer you. If you need a more professional or customized agent, click on `+` to create a custom agent.", + "desc": "Activate the brain cluster and spark creative thinking. Your virtual agent is here to communicate with you about everything.", "title": "Just Chat" }, - "newAgent": "New Assistant", + "newAgent": "New Agent", "noDescription": "No description available", "pin": "Pin", "pinOff": "Unpin", "regenerate": "Regenerate", "roleAndArchive": "Role and Archive", - "searchAgentPlaceholder": "Search assistants and conversations...", + "searchAgentPlaceholder": "Search agents and conversations...", "send": "Send", "sendPlaceholder": "Type your message here...", - "sessionList": "Assistant List", + "sessionList": "Agent List", "shareModal": { "download": "Download Screenshot", "imageType": "Image Format", @@ -32,7 +32,7 @@ "withBackground": "Include Background Image", "withFooter": "Include Footer", "withPluginInfo": "Include Plugin Information", - "withSystemRole": "Include Assistant Role Setting" + "withSystemRole": "Include Agent Role Setting" }, "stop": "Stop", "stt": { @@ -67,7 +67,7 @@ "action": "Text-to-Speech", "clear": "Clear Speech" }, - "updateAgent": "Update Assistant Information", + "updateAgent": "Update Agent Information", "upload": { "actionTooltip": "Upload Image", "dragDesc": "Drag and drop files here, support uploading multiple images. Hold down Shift to send images directly.", diff --git a/locales/en_US/common.json b/locales/en_US/common.json index d98f10d163..98451e7759 100644 --- a/locales/en_US/common.json +++ b/locales/en_US/common.json @@ -52,13 +52,13 @@ "lang": { "en": "English", "en-US": "English", + "fr-FR": "French", "ja-JP": "Japanese", "ko-KR": "Korean", "ru-RU": "Russian", "zh": "Simplified Chinese", "zh-CN": "Simplified Chinese", - "zh-TW": "Traditional Chinese", - "fr-FR": "French" + "zh-TW": "Traditional Chinese" }, "layoutInitializing": "Initializing layout...", "noDescription": "No description available", @@ -82,8 +82,8 @@ "temp": "Temporary", "updateAgent": "Update Agent Information", "upgradeVersion": { + "action": "Upgrade", "hasNew": "New update available", - "newVersion": "New version available: {{version}}", - "action": "Upgrade" + "newVersion": "New version available: {{version}}" } } diff --git a/locales/en_US/error.json b/locales/en_US/error.json index 1b84fa913f..bee2ec0954 100644 --- a/locales/en_US/error.json +++ b/locales/en_US/error.json @@ -15,20 +15,20 @@ "503": "Sorry, the server is currently unable to process your request, possibly due to overload or maintenance. Please try again later.", "504": "Sorry, the server did not receive a response from the upstream server. Please try again later.", "InvalidAccessCode": "The password is incorrect or empty. Please enter the correct access password or add a custom OpenAI API Key.", + "NoAPIKey": "OpenAI API Key is empty, please add a custom OpenAI API Key", "OpenAIBizError": "Error requesting OpenAI service. Please troubleshoot or retry based on the following information.", - "PluginMarketIndexNotFound": "Sorry, the server could not find the plugin index. Please check if the index address is correct", - "PluginMarketIndexInvalid": "Sorry, the plugin index validation failed. Please check if the index file format is correct", - "PluginMetaNotFound": "Sorry, the plugin was not found in the index. Please check the plugin's configuration information in the index", - "PluginMetaInvalid": "Sorry, the plugin's metadata validation failed. Please check if the plugin metadata format is correct", - "PluginManifestNotFound": "Sorry, the server could not find the plugin's manifest file (manifest.json). Please check if the plugin manifest file address is correct", - "PluginManifestInvalid": "Sorry, the plugin's manifest validation failed. Please check if the manifest format is correct", "PluginApiNotFound": "Sorry, the API does not exist in the plugin's manifest. Please check if your request method matches the plugin manifest API", "PluginApiParamsError": "Sorry, the input parameter validation for the plugin request failed. Please check if the input parameters match the API description", - "PluginSettingsInvalid": "This plugin needs to be correctly configured before it can be used. Please check if your configuration is correct", - "PluginServerError": "Plugin server request returned an error. Please check your plugin manifest file, plugin configuration, or server implementation based on the error information below", - "NoAPIKey": "OpenAI API Key is empty, please add a custom OpenAI API Key", "PluginGatewayError": "Sorry, there was an error with the plugin gateway. Please check if the plugin gateway configuration is correct.", - "PluginOpenApiInitError": "Sorry, the OpenAPI client failed to initialize. Please check if the OpenAPI configuration information is correct." + "PluginManifestInvalid": "Sorry, the plugin's manifest validation failed. Please check if the manifest format is correct", + "PluginManifestNotFound": "Sorry, the server could not find the plugin's manifest file (manifest.json). Please check if the plugin manifest file address is correct", + "PluginMarketIndexInvalid": "Sorry, the plugin index validation failed. Please check if the index file format is correct", + "PluginMarketIndexNotFound": "Sorry, the server could not find the plugin index. Please check if the index address is correct", + "PluginMetaInvalid": "Sorry, the plugin's metadata validation failed. Please check if the plugin metadata format is correct", + "PluginMetaNotFound": "Sorry, the plugin was not found in the index. Please check the plugin's configuration information in the index", + "PluginOpenApiInitError": "Sorry, the OpenAPI client failed to initialize. Please check if the OpenAPI configuration information is correct.", + "PluginServerError": "Plugin server request returned an error. Please check your plugin manifest file, plugin configuration, or server implementation based on the error information below", + "PluginSettingsInvalid": "This plugin needs to be correctly configured before it can be used. Please check if your configuration is correct" }, "stt": { "responseError": "Service request failed, please check the configuration or try again" @@ -38,16 +38,16 @@ }, "unlock": { "apikey": { - "title": "Use Custom API Key", + "addProxyUrl": "Add OpenAI Proxy URL (optional)", "description": "Enter your OpenAI API Key to start the conversation. The application will not record your API Key.", - "addProxyUrl": "Add OpenAI Proxy URL (optional)" + "title": "Use Custom API Key" }, + "closeMessage": "Close message", "confirm": "Confirm and Retry", "password": { "description": "The application encryption has been enabled by the administrator. Enter the application password to unlock the application. The password only needs to be filled in once.", - "title": "Enter Password to Unlock Application", - "placeholder": "Please enter password" - }, - "closeMessage": "Close message" + "placeholder": "Please enter password", + "title": "Enter Password to Unlock Application" + } } } diff --git a/locales/en_US/market.json b/locales/en_US/market.json index 1d76e626de..f1943ae287 100644 --- a/locales/en_US/market.json +++ b/locales/en_US/market.json @@ -24,7 +24,7 @@ }, "submitAgent": "Submit Agent", "title": { - "recentSubmits": "Recent Submits", - "allAgents": "All Agents" + "allAgents": "All Agents", + "recentSubmits": "Recent Submits" } } diff --git a/locales/en_US/migration.json b/locales/en_US/migration.json index 17b00b5993..79884bbae3 100644 --- a/locales/en_US/migration.json +++ b/locales/en_US/migration.json @@ -17,8 +17,8 @@ "title": "High Capacity" }, "performance": { - "title": "High Performance", - "desc": "Millions of messages are automatically indexed, and retrieval queries respond in milliseconds." + "desc": "Millions of messages are automatically indexed, and retrieval queries respond in milliseconds.", + "title": "High Performance" }, "use": { "desc": "Supports searching for titles, descriptions, tags, message content, and even translated text, greatly improving daily search efficiency.", @@ -28,8 +28,8 @@ "title": "LobeChat Data Evolution", "upgrade": { "error": { - "title": "Database Upgrade Failed", - "subTitle": "We are sorry, an error occurred during the database upgrade process. Please try the following solutions: A. Clear local data and re-import backup data; B. Click the 'Retry Upgrade' button.

If the issue persists, please <1>submit a request, and we will assist you as soon as possible." + "subTitle": "We are sorry, an error occurred during the database upgrade process. Please try the following solutions: A. Clear local data and re-import backup data; B. Click the 'Retry Upgrade' button.

If the issue persists, please <1>submit a request, and we will assist you as soon as possible.", + "title": "Database Upgrade Failed" }, "success": { "subTitle": "LobeChat's database has been successfully upgraded to the latest version. Start experiencing it now!", diff --git a/locales/en_US/plugin.json b/locales/en_US/plugin.json index 725f17ffa5..35afb6d5c4 100644 --- a/locales/en_US/plugin.json +++ b/locales/en_US/plugin.json @@ -2,9 +2,9 @@ "debug": { "arguments": "Arguments", "function_call": "Function Call", - "response": "Response", "off": "Turn off debug", - "on": "View plugin invocation information" + "on": "View plugin invocation information", + "response": "Response" }, "detailModal": { "info": { @@ -20,6 +20,11 @@ }, "dev": { "confirmDeleteDevPlugin": "Are you sure you want to delete this local plugin? Once deleted, it cannot be recovered.", + "customParams": { + "useProxy": { + "label": "Install via proxy (if encountering cross-origin access errors, try enabling this option and reinstalling)" + } + }, "deleteSuccess": "Plugin deleted successfully", "manifest": { "identifier": { @@ -64,13 +69,9 @@ }, "manifest": { "desc": "LobeChat will install the plugin using this link", - "invalid": "The input manifest link is invalid or does not comply with the specification", - "urlError": "Please enter a valid URL", - "jsonInvalid": "The manifest is not valid, validation result: \n\n {{error}}", + "label": "Plugin Description (Manifest) URL", "preview": "Preview Manifest", - "refresh": "Refresh", - "requestError": "Failed to request the link, please enter a valid link and check if the link allows cross-origin access", - "label": "Plugin Description (Manifest) URL" + "refresh": "Refresh" }, "title": { "desc": "The title of the plugin", @@ -79,77 +80,58 @@ } }, "metaConfig": "Plugin metadata configuration", - "preview": { - "card": "Preview of plugin display", - "desc": "Preview of plugin description", - "title": "Plugin Name Preview" - }, - "saveSuccess": "Plugin settings saved successfully", - "tabs": { - "manifest": "Function Description Manifest (Manifest)", - "meta": "Plugin Metadata" - }, - "update": "Update", - "updateSuccess": "Plugin settings updated successfully", "modalDesc": "After adding a custom plugin, it can be used for plugin development verification or directly in the session. Please refer to the <1>development documentation↗ for plugin development.", "openai": { "importUrl": "Import from URL link", "schema": "Schema" }, + "preview": { + "card": "Preview of plugin display", + "desc": "Preview of plugin description", + "title": "Plugin Name Preview" + }, "save": "Install Plugin", - "type": { - "lobe": "LobeChat Plugin", - "openai": "OpenAI Plugin" + "saveSuccess": "Plugin settings saved successfully", + "tabs": { + "manifest": "Function Description Manifest (Manifest)", + "meta": "Plugin Metadata" }, "title": { "create": "Add Custom Plugin", "edit": "Edit Custom Plugin" - } + }, + "type": { + "lobe": "LobeChat Plugin", + "openai": "OpenAI Plugin" + }, + "update": "Update", + "updateSuccess": "Plugin settings updated successfully" }, "error": { - "installError": "Plugin {{name}} installation failed", - "noManifest": "Manifest file does not exist", "fetchError": "Failed to fetch the manifest link. Please ensure the link is valid and allows cross-origin access.", + "installError": "Plugin {{name}} installation failed", "manifestInvalid": "The manifest does not conform to the specification. Validation result: \n\n {{error}}", + "noManifest": "Manifest file does not exist", "openAPIInvalid": "OpenAPI parsing failed. Error: \n\n {{error}}", "reinstallError": "Failed to refresh plugin {{name}}", "urlError": "The link did not return content in JSON format. Please ensure it is a valid link." }, "list": { "item": { + "deprecated.title": "Deleted", "local.config": "Configuration", - "local.title": "Local", - "deprecated.title": "Deleted" + "local.title": "Local" } }, "loading": { - "plugin": "Plugin is running...", - "content": "Calling plugin..." + "content": "Calling plugin...", + "plugin": "Plugin is running..." }, "pluginList": "Plugin List", "plugins": { - "realtimeWeather": "Realtime Weather", - "searchEngine": "Search Engine", - "undefined": "Plugin Detection...", - "websiteCrawler": "Website Crawler", "loading": "Detecting plugins...", "unknown": "Unknown Plugin" }, - "realtimeWeather": { - "data": { - "date": "Date", - "daytemp_float": "Daytime Temperature", - "dayweather": "Daytime Weather", - "daywind": "Daytime Wind", - "nighttemp_float": "Nighttime Temperature", - "nightweather": "Nighttime Weather", - "nightwind": "Nighttime Wind", - "week": "Week" - }, - "title": "Weather Data for the Next 7 Days ({{city}})", - "updateAt": "Last Updated" - }, - "responseData": "Response Data", "setting": "Plugin Settings", "settings": { "indexUrl": { @@ -160,18 +142,6 @@ "title": "Configure Plugin Marketplace" }, "store": { - "empty": "No installed plugins yet", - "install": "Install", - "installAllPlugins": "Install All", - "networkError": "Failed to fetch plugin store. Please check your network connection and try again", - "releasedAt": "Released at {{createdAt}}", - "tabs": { - "all": "All", - "installed": "Installed" - }, - "title": "Plugin Store", - "uninstall": "Uninstall", - "placeholder": "Search for plugin name, description, or keyword...", "actions": { "confirmUninstall": "The plugin is about to be uninstalled. After uninstalling, the plugin configuration will be cleared. Please confirm your operation.", "detail": "Details", @@ -180,6 +150,17 @@ "settings": "Settings", "uninstall": "Uninstall" }, - "customPlugin": "Custom Plugin" + "communityPlugin": "Third-party", + "customPlugin": "Custom Plugin", + "empty": "No installed plugins yet", + "installAllPlugins": "Install All", + "networkError": "Failed to fetch plugin store. Please check your network connection and try again", + "placeholder": "Search for plugin name, description, or keyword...", + "releasedAt": "Released at {{createdAt}}", + "tabs": { + "all": "All", + "installed": "Installed" + }, + "title": "Plugin Store" } } diff --git a/locales/en_US/setting.json b/locales/en_US/setting.json index c6b865daac..a14e8c94c4 100644 --- a/locales/en_US/setting.json +++ b/locales/en_US/setting.json @@ -3,7 +3,7 @@ "clear": { "action": "Clear Now", "confirm": "Confirm to clear all chat data?", - "desc": "This will clear all session data, including assistant, files, messages, plugins, etc.", + "desc": "This will clear all session data, including agent, files, messages, plugins, etc.", "success": "All session messages have been cleared", "title": "Clear All Session Messages" }, @@ -85,7 +85,7 @@ "waitingForMore": "More models are <1>planned to be added, stay tuned ✨" }, "plugin": { - "addTooltip": "Add Custom Plugin", + "addTooltip": "Custom Plugin", "clearDeprecated": "Remove Deprecated Plugins", "empty": "No installed plugins yet, feel free to explore the <1>Plugin Store", "installStatus": { @@ -106,11 +106,11 @@ "title": "Background Color" }, "description": { - "placeholder": "Enter assistant description", - "title": "Assistant Description" + "placeholder": "Enter agent description", + "title": "Agent Description" }, "name": { - "placeholder": "Enter assistant name", + "placeholder": "Enter agent name", "title": "Name" }, "prompt": { @@ -121,7 +121,7 @@ "placeholder": "Enter tag", "title": "Tag" }, - "title": "Assistant Information" + "title": "Agent Information" }, "settingChat": { "autoCreateTopicThreshold": { @@ -240,7 +240,7 @@ "title": "Text-to-Speech Service" }, "voice": { - "desc": "Select a voice for the current assistant, different TTS services support different voices", + "desc": "Select a voice for the current agent, different TTS services support different voices", "preview": "Voice Preview", "title": "Text-to-Speech Voice" } diff --git a/locales/fr_FR/chat.json b/locales/fr_FR/chat.json index 21cc824b05..290b5629b3 100644 --- a/locales/fr_FR/chat.json +++ b/locales/fr_FR/chat.json @@ -1,28 +1,28 @@ { - "agentDefaultMessage": "Bonjour, je suis **{{name}}**. Vous pouvez commencer à discuter avec moi dès maintenant ou aller dans [Paramètres de l'assistant](/chat/settings#session={{id}}) pour compléter mes informations.", + "agentDefaultMessage": "Bonjour, je suis **{{name}}**. Vous pouvez commencer à discuter avec moi dès maintenant ou aller dans [Paramètres de l'agent](/chat/settings#session={{id}}) pour compléter mes informations.", "agentDefaultMessageWithSystemRole": "Bonjour, je suis **{{name}}**, {{systemRole}}. Commençons la conversation !", - "backToBottom": "Retourner en bas", + "backToBottom": "Retour en bas", "clearCurrentMessages": "Effacer les messages actuels", "confirmClearCurrentMessages": "Vous êtes sur le point d'effacer les messages de cette session. Cette action est irréversible. Veuillez confirmer.", - "confirmRemoveSessionItemAlert": "Vous êtes sur le point de supprimer cet assistant. Cette action est irréversible. Veuillez confirmer.", - "defaultAgent": "Assistant par défaut", + "confirmRemoveSessionItemAlert": "Vous êtes sur le point de supprimer cet agent. Cette action est irréversible. Veuillez confirmer.", + "defaultAgent": "Agent par défaut", "defaultSession": "Session par défaut", "historyRange": "Plage d'historique", "inbox": { - "defaultMessage": "Bonjour, je suis votre assistant virtuel. Vous pouvez me poser n'importe quelle question et je ferai de mon mieux pour vous répondre. Si vous avez besoin d'un assistant plus professionnel ou personnalisé, cliquez sur le `+` pour créer un assistant personnalisé.", - "desc": "Débloquez le potentiel de votre esprit. Votre assistant intelligent est là pour discuter avec vous de tout et de rien.", + "defaultMessage": "Bonjour, je suis votre agent virtuel. Vous pouvez me poser n'importe quelle question et je ferai de mon mieux pour vous répondre. Si vous avez besoin d'un agent plus professionnel ou personnalisé, cliquez sur le `+` pour créer un agent personnalisé.", + "desc": "Débloquez le potentiel de votre esprit. Votre agent intelligent est là pour discuter avec vous de tout et de rien.", "title": "Discutons un peu" }, - "newAgent": "Nouvel assistant", + "newAgent": "Nouvel agent", "noDescription": "Aucune description disponible", "pin": "Épingler", "pinOff": "Désépingler", "regenerate": "Regénérer", "roleAndArchive": "Rôle et archivage", - "searchAgentPlaceholder": "Rechercher des assistants et des conversations...", + "searchAgentPlaceholder": "Rechercher des agents et des conversations...", "send": "Envoyer", "sendPlaceholder": "Saisissez votre message...", - "sessionList": "Liste des assistants", + "sessionList": "Liste des agents", "shareModal": { "download": "Télécharger la capture d'écran", "imageType": "Type d'image", @@ -32,7 +32,7 @@ "withBackground": "Avec image de fond", "withFooter": "Avec pied de page", "withPluginInfo": "Avec informations sur le plugin", - "withSystemRole": "Avec rôle de l'assistant" + "withSystemRole": "Avec rôle de l'agent" }, "stop": "Arrêter", "stt": { @@ -67,7 +67,7 @@ "action": "Lecture vocale", "clear": "Effacer la voix" }, - "updateAgent": "Mettre à jour les informations de l'assistant", + "updateAgent": "Mettre à jour les informations de l'agent", "upload": { "actionTooltip": "Télécharger une image", "dragDesc": "Faites glisser les fichiers ici pour télécharger plusieurs images. Maintenez la touche Maj enfoncée pour envoyer directement les images.", diff --git a/locales/fr_FR/common.json b/locales/fr_FR/common.json index a31086151b..06abd0c7e3 100644 --- a/locales/fr_FR/common.json +++ b/locales/fr_FR/common.json @@ -52,13 +52,13 @@ "lang": { "en": "Anglais", "en-US": "Anglais", + "fr-FR": "français", "ja-JP": "Japonais", "ko-KR": "Coréen", "ru-RU": "Russe", "zh": "Chinois", "zh-CN": "Chinois simplifié", - "zh-TW": "Chinois traditionnel", - "fr-FR": "français" + "zh-TW": "Chinois traditionnel" }, "layoutInitializing": "Initialisation de la mise en page en cours...", "noDescription": "Aucune description disponible", @@ -82,8 +82,8 @@ "temp": "Temporaire", "updateAgent": "Mettre à jour les informations de l'agent", "upgradeVersion": { + "action": "Mettre à jour", "hasNew": "Nouvelle mise à jour disponible", - "newVersion": "Nouvelle version disponible : {{version}}", - "action": "Mettre à jour" + "newVersion": "Nouvelle version disponible : {{version}}" } } diff --git a/locales/fr_FR/error.json b/locales/fr_FR/error.json index 99db58c699..078eb78d8f 100644 --- a/locales/fr_FR/error.json +++ b/locales/fr_FR/error.json @@ -14,21 +14,21 @@ "502": "Désolé, le serveur semble perdu et ne peut temporairement pas fournir de service. Veuillez réessayer plus tard", "503": "Désolé, le serveur ne peut actuellement pas traiter votre requête, probablement en raison d'une surcharge ou de travaux de maintenance. Veuillez réessayer plus tard", "504": "Désolé, le serveur n'a pas reçu de réponse de la part du serveur amont. Veuillez réessayer plus tard", - "PluginMarketIndexNotFound": "Désolé, le serveur n'a pas trouvé l'index du plugin. Veuillez vérifier l'adresse de l'index", - "PluginMarketIndexInvalid": "Désolé, la validation de l'index du plugin a échoué. Veuillez vérifier le format du fichier d'index", - "PluginMetaNotFound": "Désolé, aucune métadonnée de plugin n'a été trouvée dans l'index", - "PluginMetaInvalid": "Désolé, la validation des métadonnées de ce plugin a échoué. Veuillez vérifier le format des métadonnées du plugin", - "PluginManifestNotFound": "Désolé, le serveur n'a pas trouvé le manifeste de description de ce plugin (manifest.json). Veuillez vérifier l'adresse du fichier de description du plugin", - "PluginManifestInvalid": "Désolé, la validation du manifeste de ce plugin a échoué. Veuillez vérifier le format du manifeste", + "InvalidAccessCode": "Mot de passe incorrect ou vide. Veuillez saisir un mot de passe d'accès correct ou ajouter une clé API OpenAI personnalisée", + "NoAPIKey": "La clé API OpenAI est vide. Veuillez ajouter une clé API OpenAI personnalisée", + "OpenAIBizError": "Erreur de service OpenAI. Veuillez diagnostiquer ou réessayer en fonction des informations ci-dessous", "PluginApiNotFound": "Désolé, l'API spécifiée n'existe pas dans le manifeste du plugin. Veuillez vérifier que votre méthode de requête correspond à l'API du manifeste du plugin", "PluginApiParamsError": "Désolé, la validation des paramètres d'entrée de la requête de ce plugin a échoué. Veuillez vérifier que les paramètres d'entrée correspondent aux informations de l'API", - "PluginSettingsInvalid": "Ce plugin doit être correctement configuré avant de pouvoir être utilisé. Veuillez vérifier votre configuration", - "PluginServerError": "Erreur de réponse du serveur du plugin. Veuillez vérifier le fichier de description du plugin, la configuration du plugin ou la mise en œuvre côté serveur en fonction des informations d'erreur ci-dessous", - "InvalidAccessCode": "Mot de passe incorrect ou vide. Veuillez saisir un mot de passe d'accès correct ou ajouter une clé API OpenAI personnalisée", - "OpenAIBizError": "Erreur de service OpenAI. Veuillez diagnostiquer ou réessayer en fonction des informations ci-dessous", - "NoAPIKey": "La clé API OpenAI est vide. Veuillez ajouter une clé API OpenAI personnalisée", "PluginGatewayError": "Désolé, une erreur est survenue avec la passerelle du plugin. Veuillez vérifier la configuration de la passerelle du plugin.", - "PluginOpenApiInitError": "Désolé, l'initialisation du client OpenAPI a échoué. Veuillez vérifier les informations de configuration d'OpenAPI." + "PluginManifestInvalid": "Désolé, la validation du manifeste de ce plugin a échoué. Veuillez vérifier le format du manifeste", + "PluginManifestNotFound": "Désolé, le serveur n'a pas trouvé le manifeste de description de ce plugin (manifest.json). Veuillez vérifier l'adresse du fichier de description du plugin", + "PluginMarketIndexInvalid": "Désolé, la validation de l'index du plugin a échoué. Veuillez vérifier le format du fichier d'index", + "PluginMarketIndexNotFound": "Désolé, le serveur n'a pas trouvé l'index du plugin. Veuillez vérifier l'adresse de l'index", + "PluginMetaInvalid": "Désolé, la validation des métadonnées de ce plugin a échoué. Veuillez vérifier le format des métadonnées du plugin", + "PluginMetaNotFound": "Désolé, aucune métadonnée de plugin n'a été trouvée dans l'index", + "PluginOpenApiInitError": "Désolé, l'initialisation du client OpenAPI a échoué. Veuillez vérifier les informations de configuration d'OpenAPI.", + "PluginServerError": "Erreur de réponse du serveur du plugin. Veuillez vérifier le fichier de description du plugin, la configuration du plugin ou la mise en œuvre côté serveur en fonction des informations d'erreur ci-dessous", + "PluginSettingsInvalid": "Ce plugin doit être correctement configuré avant de pouvoir être utilisé. Veuillez vérifier votre configuration" }, "stt": { "responseError": "Échec de la requête de service. Veuillez vérifier la configuration ou réessayer" diff --git a/locales/fr_FR/plugin.json b/locales/fr_FR/plugin.json index fc0eaa4aae..bec0bce1d3 100644 --- a/locales/fr_FR/plugin.json +++ b/locales/fr_FR/plugin.json @@ -20,6 +20,11 @@ }, "dev": { "confirmDeleteDevPlugin": "Êtes-vous sûr de vouloir supprimer ce plugin local ? Cette action est irréversible.", + "customParams": { + "useProxy": { + "label": "Installer via proxy (if encountering cross-origin access errors, try enabling this option and reinstalling)" + } + }, "deleteSuccess": "Suppression du plugin réussie", "manifest": { "identifier": { @@ -76,6 +81,10 @@ }, "metaConfig": "Configuration des métadonnées du plugin", "modalDesc": "Une fois le plugin personnalisé ajouté, il peut être utilisé pour valider le développement du plugin ou directement dans la session. Veuillez consulter le <1>guide de développement↗ pour le développement de plugins.", + "openai": { + "importUrl": "Importer depuis l'URL", + "schema": "Schéma" + }, "preview": { "card": "Aperçu de l'interface du plugin", "desc": "Aperçu de la description du plugin", @@ -87,29 +96,25 @@ "manifest": "Manifeste des fonctionnalités", "meta": "Métadonnées du plugin" }, - "update": "Mettre à jour", - "updateSuccess": "Paramètres du plugin mis à jour avec succès", - "openai": { - "importUrl": "Importer depuis l'URL", - "schema": "Schéma" + "title": { + "create": "Ajouter un plugin personnalisé", + "edit": "Modifier un plugin personnalisé" }, "type": { "lobe": "Plugin LobeChat", "openai": "Plugin OpenAI" }, - "title": { - "create": "Ajouter un plugin personnalisé", - "edit": "Modifier un plugin personnalisé" - } + "update": "Mettre à jour", + "updateSuccess": "Paramètres du plugin mis à jour avec succès" }, "error": { "fetchError": "Échec de la requête vers ce lien de manifest. Veuillez vous assurer que le lien est valide et autorise les requêtes cross-origin.", "installError": "Échec de l'installation du plugin {{name}}", "manifestInvalid": "Le manifest ne respecte pas les normes. Résultat de la validation : \n\n {{error}}", "noManifest": "Aucun fichier de description trouvé", + "openAPIInvalid": "Échec d'analyse de l'OpenAPI, erreur : \n\n {{error}}", "reinstallError": "Échec de la mise à jour du plugin {{name}}", - "urlError": "Ce lien ne renvoie pas de contenu au format JSON. Veuillez vous assurer qu'il s'agit d'un lien valide.", - "openAPIInvalid": "Échec d'analyse de l'OpenAPI, erreur : \n\n {{error}}" + "urlError": "Ce lien ne renvoie pas de contenu au format JSON. Veuillez vous assurer qu'il s'agit d'un lien valide." }, "list": { "item": { @@ -137,18 +142,6 @@ "title": "Paramètres du marché des plugins" }, "store": { - "empty": "Aucun plugin installé pour le moment", - "install": "Installer", - "installAllPlugins": "Installer tous les plugins", - "networkError": "Échec de la récupération de la boutique de plugins. Veuillez vérifier votre connexion réseau et réessayer.", - "releasedAt": "Publié le {{createdAt}}", - "tabs": { - "all": "Tous", - "installed": "Installés" - }, - "title": "Boutique de plugins", - "uninstall": "Désinstaller", - "placeholder": "Rechercher le nom ou les mots-clés de l'extension...", "actions": { "confirmUninstall": "Vous êtes sur le point de désinstaller ce plugin. Une fois désinstallé, sa configuration sera effacée. Veuillez confirmer votre action.", "detail": "Détails", @@ -157,6 +150,17 @@ "settings": "Paramètres", "uninstall": "Désinstaller" }, - "customPlugin": "Plugin personnalisé" + "communityPlugin": "Plugin communautaire", + "customPlugin": "Plugin personnalisé", + "empty": "Aucun plugin installé pour le moment", + "installAllPlugins": "Installer tous les plugins", + "networkError": "Échec de la récupération de la boutique de plugins. Veuillez vérifier votre connexion réseau et réessayer.", + "placeholder": "Rechercher le nom ou les mots-clés de l'extension...", + "releasedAt": "Publié le {{createdAt}}", + "tabs": { + "all": "Tous", + "installed": "Installés" + }, + "title": "Boutique de plugins" } } diff --git a/locales/fr_FR/setting.json b/locales/fr_FR/setting.json index ec37561b99..1345808098 100644 --- a/locales/fr_FR/setting.json +++ b/locales/fr_FR/setting.json @@ -3,7 +3,7 @@ "clear": { "action": "Effacer immédiatement", "confirm": "Confirmer la suppression de toutes les données de chat ?", - "desc": "Cela supprimera toutes les données de session, y compris les assistants, les fichiers, les messages, les plugins, etc.", + "desc": "Cela supprimera toutes les données de session, y compris les agents, les fichiers, les messages, les plugins, etc.", "success": "Tous les messages de session ont été effacés", "title": "Effacer tous les messages de session" }, @@ -106,11 +106,11 @@ "title": "Couleur de fond" }, "description": { - "placeholder": "Veuillez saisir la description de l'assistant", - "title": "Description de l'assistant" + "placeholder": "Veuillez saisir la description de l'agent", + "title": "Description de l'agent" }, "name": { - "placeholder": "Veuillez saisir le nom de l'assistant", + "placeholder": "Veuillez saisir le nom de l'agent", "title": "Nom" }, "prompt": { @@ -121,7 +121,7 @@ "placeholder": "Veuillez saisir l'étiquette", "title": "Étiquette" }, - "title": "Informations sur l'assistant" + "title": "Informations sur l'agent" }, "settingChat": { "autoCreateTopicThreshold": { @@ -240,7 +240,7 @@ "title": "Service de synthèse vocale" }, "voice": { - "desc": "Choisissez une voix pour l'assistant actuel, les services TTS prennent en charge des voix différentes", + "desc": "Choisissez une voix pour l'agent actuel, les services TTS prennent en charge des voix différentes", "preview": "Prévisualisation de la voix", "title": "Voix de synthèse vocale" } @@ -274,14 +274,14 @@ "title": "Paramètres du thème" }, "submitAgentModal": { - "button": "Soumettre l'assistant", - "identifier": "Identifiant de l'assistant", - "metaMiss": "Veuillez compléter les informations de l'assistant avant de soumettre. Elles doivent inclure le nom, la description et les balises.", - "placeholder": "Veuillez entrer l'identifiant de l'assistant, qui doit être unique, par exemple développement-web", - "tooltips": "Partager sur le marché des assistants" + "button": "Soumettre l'agent", + "identifier": "Identifiant de l'agent", + "metaMiss": "Veuillez compléter les informations de l'agent avant de soumettre. Elles doivent inclure le nom, la description et les balises.", + "placeholder": "Veuillez entrer l'identifiant de l'agent, qui doit être unique, par exemple développement-web", + "tooltips": "Partager sur le marché des agents" }, "tab": { - "agent": "Assistant par défaut", + "agent": "Agent par défaut", "common": "Paramètres généraux", "llm": "Modèle de langue", "tts": "Service vocal" diff --git a/locales/fr_FR/welcome.json b/locales/fr_FR/welcome.json index 4457bf00d7..d996bee0e9 100644 --- a/locales/fr_FR/welcome.json +++ b/locales/fr_FR/welcome.json @@ -4,11 +4,11 @@ "start": "Démarrer maintenant" }, "header": "Bienvenue", - "pickAgent": "Ou choisissez parmi les modèles d'assistant suivants", + "pickAgent": "Ou choisissez parmi les modèles d'agent suivants", "skip": "Passer", "slogan": { - "desc1": "Déployez un cluster cérébral, suscitez des étincelles de réflexion. Votre assistant intelligent est toujours là.", - "desc2": "Créez votre premier assistant, commençons maintenant~", + "desc1": "Déployez un cluster cérébral, suscitez des étincelles de réflexion. Votre agent intelligent est toujours là.", + "desc2": "Créez votre premier agent, commençons maintenant~", "title": "Offrez-vous un cerveau plus intelligent" } } diff --git a/locales/ja_JP/chat.json b/locales/ja_JP/chat.json index 6b403da379..c33097d294 100644 --- a/locales/ja_JP/chat.json +++ b/locales/ja_JP/chat.json @@ -1,7 +1,7 @@ { "agentDefaultMessage": "こんにちは、私は **{{name}}** です。すぐにチャットを開始するか、[エージェント設定](/chat/settings#session={{id}}) に移動して私の情報を完全にすることができます。", "agentDefaultMessageWithSystemRole": "こんにちは、私は **{{name}}** です、{{systemRole}}、さあ、チャットを始めましょう!", - "backToBottom": "最新メッセージを表示", + "backToBottom": "現在に戻る", "clearCurrentMessages": "現在の会話をクリア", "confirmClearCurrentMessages": "現在の会話をクリアします。クリアした後は元に戻すことはできません。操作を確認してください。", "confirmRemoveSessionItemAlert": "このエージェントを削除します。削除した後は元に戻すことはできません。操作を確認してください。", diff --git a/locales/ja_JP/common.json b/locales/ja_JP/common.json index 0baedaf614..97ffcc4cd8 100644 --- a/locales/ja_JP/common.json +++ b/locales/ja_JP/common.json @@ -52,13 +52,13 @@ "lang": { "en": "英語", "en-US": "英語", + "fr-FR": "フランス語", "ja-JP": "日本語", "ko-KR": "韓国語", "ru-RU": "ロシア語", "zh": "簡体字中国語", "zh-CN": "簡体字中国語", - "zh-TW": "繁体字中国語", - "fr-FR": "フランス語" + "zh-TW": "繁体字中国語" }, "layoutInitializing": "レイアウトを初期化中...", "noDescription": "説明はありません", @@ -82,8 +82,8 @@ "temp": "一時的", "updateAgent": "エージェント情報を更新", "upgradeVersion": { + "action": "アップグレード", "hasNew": "利用可能な更新があります", - "newVersion": "新しいバージョンが利用可能です:{{version}}", - "action": "アップグレード" + "newVersion": "新しいバージョンが利用可能です:{{version}}" } } diff --git a/locales/ja_JP/error.json b/locales/ja_JP/error.json index babf4dcd26..380e8a743f 100644 --- a/locales/ja_JP/error.json +++ b/locales/ja_JP/error.json @@ -14,21 +14,21 @@ "502": "申し訳ありませんが、サーバーは一時的にサービスを提供できません。しばらくしてから再試行してください", "503": "申し訳ありませんが、サーバーは現在、リクエストを処理できません。オーバーロードまたはメンテナンス中の可能性があります。しばらくしてから再試行してください", "504": "申し訳ありませんが、サーバーは上位サーバーからの応答を待っていません。しばらくしてから再試行してください", - "PluginMarketIndexNotFound": "申し訳ありませんが、プラグインのインデックスが見つかりませんでした。インデックスのアドレスが正しいかどうか確認してください", - "PluginMetaNotFound": "申し訳ありませんが、インデックスでプラグインが見つかりませんでした。プラグインの設定情報をインデックスで確認してください", - "PluginMetaInvalid": "申し訳ありませんが、プラグインのメタ情報の検証に失敗しました。プラグインのメタ情報の形式が正しいかどうか確認してください", - "PluginApiParamsError": "申し訳ありませんが、プラグインのリクエストパラメータの検証に失敗しました。パラメータとAPIの説明が一致しているかどうか確認してください", - "PluginSettingsInvalid": "このプラグインを使用するには、正しい設定が必要です。設定が正しいかどうか確認してください", - "PluginServerError": "プラグインサーバーのリクエストエラーが発生しました。以下のエラーメッセージを参考に、プラグインのマニフェストファイル、設定、サーバー実装を確認してください", "InvalidAccessCode": "パスワードが正しくないか空です。正しいアクセスパスワードを入力するか、カスタムのOpenAI APIキーを追加してください", - "OpenAIBizError": "OpenAIサービスのリクエストエラーが発生しました。以下の情報に基づいて問題を解決したり、再試行したりしてください", - "PluginMarketIndexInvalid": "申し訳ありませんが、プラグインのインデックスの検証に失敗しました。インデックスファイルの形式が正しいかどうかを確認してください", - "PluginManifestNotFound": "申し訳ありませんが、サーバーでプラグインのマニフェストファイル (manifest.json) が見つかりませんでした。プラグインのマニフェストファイルのアドレスが正しいかどうかを確認してください", - "PluginManifestInvalid": "申し訳ありませんが、このプラグインのマニフェストの検証に失敗しました。マニフェストの形式が正しいかどうかを確認してください", - "PluginApiNotFound": "申し訳ありませんが、プラグインのマニフェストに指定されたAPIが見つかりませんでした。リクエストメソッドとプラグインのマニフェストのAPIが一致しているかどうかを確認してください", "NoAPIKey": "OpenAI APIキーが空です。カスタムOpenAI APIキーを追加してください。", + "OpenAIBizError": "OpenAIサービスのリクエストエラーが発生しました。以下の情報に基づいて問題を解決したり、再試行したりしてください", + "PluginApiNotFound": "申し訳ありませんが、プラグインのマニフェストに指定されたAPIが見つかりませんでした。リクエストメソッドとプラグインのマニフェストのAPIが一致しているかどうかを確認してください", + "PluginApiParamsError": "申し訳ありませんが、プラグインのリクエストパラメータの検証に失敗しました。パラメータとAPIの説明が一致しているかどうか確認してください", "PluginGatewayError": "申し訳ありませんが、プラグインゲートウェイでエラーが発生しました。プラグインゲートウェイの設定を確認してください。", - "PluginOpenApiInitError": "申し訳ありませんが、OpenAPIクライアントの初期化に失敗しました。OpenAPIの設定情報を確認してください。" + "PluginManifestInvalid": "申し訳ありませんが、このプラグインのマニフェストの検証に失敗しました。マニフェストの形式が正しいかどうかを確認してください", + "PluginManifestNotFound": "申し訳ありませんが、サーバーでプラグインのマニフェストファイル (manifest.json) が見つかりませんでした。プラグインのマニフェストファイルのアドレスが正しいかどうかを確認してください", + "PluginMarketIndexInvalid": "申し訳ありませんが、プラグインのインデックスの検証に失敗しました。インデックスファイルの形式が正しいかどうかを確認してください", + "PluginMarketIndexNotFound": "申し訳ありませんが、プラグインのインデックスが見つかりませんでした。インデックスのアドレスが正しいかどうか確認してください", + "PluginMetaInvalid": "申し訳ありませんが、プラグインのメタ情報の検証に失敗しました。プラグインのメタ情報の形式が正しいかどうか確認してください", + "PluginMetaNotFound": "申し訳ありませんが、インデックスでプラグインが見つかりませんでした。プラグインの設定情報をインデックスで確認してください", + "PluginOpenApiInitError": "申し訳ありませんが、OpenAPIクライアントの初期化に失敗しました。OpenAPIの設定情報を確認してください。", + "PluginServerError": "プラグインサーバーのリクエストエラーが発生しました。以下のエラーメッセージを参考に、プラグインのマニフェストファイル、設定、サーバー実装を確認してください", + "PluginSettingsInvalid": "このプラグインを使用するには、正しい設定が必要です。設定が正しいかどうか確認してください" }, "stt": { "responseError": "サービスリクエストが失敗しました。設定を確認するか、もう一度お試しください" @@ -38,16 +38,16 @@ }, "unlock": { "apikey": { - "title": "カスタムAPIキーの使用", + "addProxyUrl": "OpenAIプロキシURLを追加(オプション)", "description": "OpenAI APIキーを入力すると、会話を開始できます。アプリはあなたのAPIキーを記録しません。", - "addProxyUrl": "OpenAIプロキシURLを追加(オプション)" + "title": "カスタムAPIキーの使用" }, "closeMessage": "ヒントを閉じる", "confirm": "確認して再試行", "password": { "description": "管理者によってアプリが暗号化されました。アプリをロック解除するには、アプリのパスワードを入力してください。パスワードは1回だけ入力すればよいです", - "title": "パスワードを入力してアプリをロック解除", - "placeholder": "パスワードを入力してください" + "placeholder": "パスワードを入力してください", + "title": "パスワードを入力してアプリをロック解除" } } } diff --git a/locales/ja_JP/migration.json b/locales/ja_JP/migration.json index 5d060a266a..6108695eab 100644 --- a/locales/ja_JP/migration.json +++ b/locales/ja_JP/migration.json @@ -17,8 +17,8 @@ "title": "大容量" }, "performance": { - "title": "高性能", - "desc": "百万条のメッセージを自動的にインデックス化し、ミリ秒単位で検索およびクエリに応答します" + "desc": "百万条のメッセージを自動的にインデックス化し、ミリ秒単位で検索およびクエリに応答します", + "title": "高性能" }, "use": { "desc": "タイトル、説明、タグ、メッセージ内容、さらに翻訳テキストの検索をサポートし、日常の検索効率が大幅に向上します", @@ -28,8 +28,8 @@ "title": "LobeChat データ進化", "upgrade": { "error": { - "title": "データベースのアップグレードに失敗しました", - "subTitle": "申し訳ございませんが、データベースのアップグレード中にエラーが発生しました。次の手順をお試しください:A. ローカルデータをクリアしてバックアップデータを再インポートする; B. 「アップグレードをやり直す」ボタンをクリックしてください。

もし問題が解決しない場合は、<1>問題を報告してください。すぐにサポートいたします" + "subTitle": "申し訳ございませんが、データベースのアップグレード中にエラーが発生しました。次の手順をお試しください:A. ローカルデータをクリアしてバックアップデータを再インポートする; B. 「アップグレードをやり直す」ボタンをクリックしてください。

もし問題が解決しない場合は、<1>問題を報告してください。すぐにサポートいたします", + "title": "データベースのアップグレードに失敗しました" }, "success": { "subTitle": "LobeChat のデータベースは最新バージョンにアップグレードされました。すぐに体験を開始してください", diff --git a/locales/ja_JP/plugin.json b/locales/ja_JP/plugin.json index c05e825853..c79f47e66f 100644 --- a/locales/ja_JP/plugin.json +++ b/locales/ja_JP/plugin.json @@ -2,9 +2,9 @@ "debug": { "arguments": "引数", "function_call": "関数呼び出し", - "response": "レスポンス", "off": "デバッグをオフにする", - "on": "プラグイン呼び出し情報を表示する" + "on": "プラグイン呼び出し情報を表示する", + "response": "レスポンス" }, "detailModal": { "info": { @@ -20,6 +20,11 @@ }, "dev": { "confirmDeleteDevPlugin": "このローカルプラグインを削除しますか?削除後は元に戻せません。", + "customParams": { + "useProxy": { + "label": "プロキシを使用する(クロスドメインエラーが発生した場合、このオプションを有効にして再インストールしてください)" + } + }, "deleteSuccess": "プラグインが正常に削除されました", "manifest": { "identifier": { @@ -64,12 +69,9 @@ }, "manifest": { "desc": "LobeChatはこのリンクを使用してプラグインをインストールします", - "jsonInvalid": "マニフェストが規格に準拠していません。検証結果:\n\n{{error}}", + "label": "プラグイン記述ファイル (Manifest) URL", "preview": "マニフェストのプレビュー", - "refresh": "更新", - "requestError": "リンクのリクエストに失敗しました。有効なリンクを入力し、クロスオリジンリクエストが許可されているか確認してください", - "urlError": "このリンクはJSON形式のコンテンツを返していません。有効なリンクを入力してください", - "label": "プラグイン記述ファイル (Manifest) URL" + "refresh": "更新" }, "title": { "desc": "プラグインのタイトル", @@ -78,38 +80,38 @@ } }, "metaConfig": "プラグインのメタ情報の設定", - "preview": { - "card": "プラグインのプレビュー表示", - "desc": "プラグインの説明のプレビュー", - "title": "プラグイン名のプレビュー" - }, - "saveSuccess": "プラグインの設定が正常に保存されました", - "tabs": { - "manifest": "機能のマニフェスト", - "meta": "プラグインのメタ情報" - }, - "update": "更新", - "updateSuccess": "プラグインの設定が正常に更新されました", "modalDesc": "カスタムプラグインを追加すると、プラグインの開発検証に使用したり、セッション中に直接使用したりできます。プラグインの開発については、<1>開発ドキュメント↗を参照してください", "openai": { "importUrl": "URLリンクからインポート", "schema": "スキーマ" }, + "preview": { + "card": "プラグインのプレビュー表示", + "desc": "プラグインの説明のプレビュー", + "title": "プラグイン名のプレビュー" + }, "save": "プラグインを保存", - "type": { - "lobe": "LobeChatプラグイン", - "openai": "OpenAIプラグイン" + "saveSuccess": "プラグインの設定が正常に保存されました", + "tabs": { + "manifest": "機能のマニフェスト", + "meta": "プラグインのメタ情報" }, "title": { "create": "カスタムプラグインを追加", "edit": "カスタムプラグインを編集" - } + }, + "type": { + "lobe": "LobeChatプラグイン", + "openai": "OpenAIプラグイン" + }, + "update": "更新", + "updateSuccess": "プラグインの設定が正常に更新されました" }, "error": { - "installError": "プラグイン {{name}} のインストールに失敗しました", - "noManifest": "マニフェストが存在しません", "fetchError": "このmanifestリンクのリクエストに失敗しました。リンクが有効であることを確認し、リンクがクロスドメインアクセスを許可しているかを確認してください", + "installError": "プラグイン {{name}} のインストールに失敗しました", "manifestInvalid": "manifestが仕様に準拠していません。検証結果: \n\n {{error}}", + "noManifest": "マニフェストが存在しません", "openAPIInvalid": "OpenAPIの解析に失敗しました。エラー: \n\n {{error}}", "reinstallError": "プラグイン{{name}}の再インストールに失敗しました", "urlError": "このリンクはJSON形式のコンテンツを返していません。有効なリンクであることを確認してください" @@ -122,8 +124,8 @@ } }, "loading": { - "plugin": "プラグインの実行中...", - "content": "プラグインを呼び出しています..." + "content": "プラグインを呼び出しています...", + "plugin": "プラグインの実行中..." }, "pluginList": "プラグインリスト", "plugins": { @@ -140,18 +142,6 @@ "title": "プラグインマーケットの設定" }, "store": { - "empty": "インストールされたプラグインはありません", - "install": "インストール", - "installAllPlugins": "すべてのプラグインをインストール", - "networkError": "プラグインストアの取得に失敗しました。ネットワーク接続を確認してから再試行してください", - "releasedAt": "{{createdAt}} にリリース", - "tabs": { - "all": "すべて", - "installed": "インストール済み" - }, - "title": "プラグインストア", - "uninstall": "アンインストール", - "placeholder": "プラグイン名、説明、またはキーワードで検索...", "actions": { "confirmUninstall": "このプラグインをアンインストールします。アンインストール後、プラグインの設定がクリアされます。操作を確認してください。", "detail": "詳細", @@ -160,6 +150,17 @@ "settings": "設定", "uninstall": "アンインストール" }, - "customPlugin": "カスタムプラグイン" + "communityPlugin": "コミュニティプラグイン", + "customPlugin": "カスタムプラグイン", + "empty": "インストールされたプラグインはありません", + "installAllPlugins": "すべてのプラグインをインストール", + "networkError": "プラグインストアの取得に失敗しました。ネットワーク接続を確認してから再試行してください", + "placeholder": "プラグイン名、説明、またはキーワードで検索...", + "releasedAt": "{{createdAt}} にリリース", + "tabs": { + "all": "すべて", + "installed": "インストール済み" + }, + "title": "プラグインストア" } } diff --git a/locales/ja_JP/setting.json b/locales/ja_JP/setting.json index ffac820a4b..f2b917d45b 100644 --- a/locales/ja_JP/setting.json +++ b/locales/ja_JP/setting.json @@ -85,7 +85,7 @@ "waitingForMore": "さらに多くのモデルが <1>計画されています。お楽しみに ✨" }, "plugin": { - "addTooltip": "カスタムプラグインを追加", + "addTooltip": "カスタムプラグイン", "clearDeprecated": "無効なプラグインをクリア", "empty": "インストールされたプラグインはありません。 <1>プラグインストア で探索してください", "installStatus": { diff --git a/locales/ko_KR/chat.json b/locales/ko_KR/chat.json index 0b4b0c6fd9..3f60040b8a 100644 --- a/locales/ko_KR/chat.json +++ b/locales/ko_KR/chat.json @@ -1,7 +1,7 @@ { "agentDefaultMessage": "안녕하세요, 저는 **{{name}}**입니다. 지금 즉시 대화를 시작하거나 [도우미 설정](/chat/settings#session={{id}})으로 이동하여 내 정보를 완성할 수 있습니다.", "agentDefaultMessageWithSystemRole": "안녕하세요, 저는 **{{name}}**입니다. {{systemRole}}입니다. 대화를 시작해 봅시다!", - "backToBottom": "최신 메시지 보기", + "backToBottom": "하단으로 이동", "clearCurrentMessages": "현재 대화 지우기", "confirmClearCurrentMessages": "현재 대화를 지우시면 되돌릴 수 없습니다. 작업을 확인하시겠습니까?", "confirmRemoveSessionItemAlert": "이 도우미를 삭제하시면 되돌릴 수 없습니다. 작업을 확인하시겠습니까?", diff --git a/locales/ko_KR/common.json b/locales/ko_KR/common.json index 33286f8fd0..b52ee2c4f8 100644 --- a/locales/ko_KR/common.json +++ b/locales/ko_KR/common.json @@ -52,13 +52,13 @@ "lang": { "en": "영어", "en-US": "영어", + "fr-FR": "프랑스어", "ja-JP": "일본어", "ko-KR": "한국어", "ru-RU": "러시아어", "zh": "중국어", "zh-CN": "중국어(간체)", - "zh-TW": "중국어(번체)", - "fr-FR": "프랑스어" + "zh-TW": "중국어(번체)" }, "layoutInitializing": "레이아웃을 불러오는 중...", "noDescription": "설명 없음", @@ -82,8 +82,8 @@ "temp": "임시", "updateAgent": "에이전트 정보 업데이트", "upgradeVersion": { + "action": "업그레이드", "hasNew": "사용 가능한 업데이트가 있습니다", - "newVersion": "새 버전 사용 가능: {{version}}", - "action": "업그레이드" + "newVersion": "새 버전 사용 가능: {{version}}" } } diff --git a/locales/ko_KR/error.json b/locales/ko_KR/error.json index 5df8f9fc80..62ce2fa1b4 100644 --- a/locales/ko_KR/error.json +++ b/locales/ko_KR/error.json @@ -14,21 +14,21 @@ "502": "죄송합니다. 서버가 잠시 서비스를 제공할 수 없는 상태입니다. 잠시 후에 다시 시도해주세요.", "503": "죄송합니다. 서버가 현재 요청을 처리할 수 없습니다. 과부하 또는 유지 보수 중일 수 있습니다. 잠시 후에 다시 시도해주세요.", "504": "죄송합니다. 서버가 상위 서버의 응답을 기다리지 못했습니다. 잠시 후에 다시 시도해주세요.", - "PluginMarketIndexNotFound": "죄송합니다. 서버에서 플러그인 인덱스를 찾을 수 없습니다. 인덱스 주소가 올바른지 확인해주세요.", - "PluginMarketIndexInvalid": "죄송합니다. 플러그인 인덱스 유효성 검사에 실패했습니다. 인덱스 파일 형식이 올바른지 확인해주세요.", - "PluginMetaNotFound": "죄송합니다. 인덱스에서 해당 플러그인을 찾을 수 없습니다. 플러그인의 구성 정보를 인덱스에서 확인해주세요.", - "PluginMetaInvalid": "죄송합니다. 해당 플러그인의 메타 정보 유효성 검사에 실패했습니다. 플러그인 메타 정보 형식이 올바른지 확인해주세요.", - "PluginManifestNotFound": "죄송합니다. 서버에서 해당 플러그인의 설명서 (manifest.json)를 찾을 수 없습니다. 플러그인 설명 파일 주소가 올바른지 확인해주세요.", - "PluginManifestInvalid": "죄송합니다. 해당 플러그인의 설명서 유효성 검사에 실패했습니다. 설명서 형식이 올바른지 확인해주세요.", + "InvalidAccessCode": "암호가 올바르지 않거나 비어 있습니다. 올바른 액세스 암호를 입력하거나 사용자 지정 OpenAI API 키를 추가해주세요.", + "NoAPIKey": "OpenAI API 키가 비어 있습니다. 사용자 정의 OpenAI API 키를 추가해주세요.", + "OpenAIBizError": "OpenAI 서비스 요청 중 오류가 발생했습니다. 아래 정보를 확인하고 문제를 해결하거나 다시 시도해주세요.", "PluginApiNotFound": "죄송합니다. 플러그인 설명서에 해당 API가 없습니다. 요청 메서드와 플러그인 설명서 API가 일치하는지 확인해주세요.", "PluginApiParamsError": "죄송합니다. 플러그인 요청의 입력 매개변수 유효성 검사에 실패했습니다. 입력 매개변수와 API 설명 정보가 일치하는지 확인해주세요.", - "PluginSettingsInvalid": "플러그인을 사용하려면 올바른 구성이 필요합니다. 구성이 올바른지 확인해주세요.", - "PluginServerError": "플러그인 서버 요청이 오류로 반환되었습니다. 플러그인 설명 파일, 플러그인 구성 또는 서버 구현을 확인해주세요.", - "InvalidAccessCode": "암호가 올바르지 않거나 비어 있습니다. 올바른 액세스 암호를 입력하거나 사용자 지정 OpenAI API 키를 추가해주세요.", - "OpenAIBizError": "OpenAI 서비스 요청 중 오류가 발생했습니다. 아래 정보를 확인하고 문제를 해결하거나 다시 시도해주세요.", - "NoAPIKey": "OpenAI API 키가 비어 있습니다. 사용자 정의 OpenAI API 키를 추가해주세요.", "PluginGatewayError": "죄송합니다. 플러그인 게이트웨이에 오류가 발생했습니다. 플러그인 게이트웨이 구성을 확인해주세요.", - "PluginOpenApiInitError": "죄송합니다. OpenAPI 클라이언트 초기화에 실패했습니다. OpenAPI 구성 정보를 확인해주세요." + "PluginManifestInvalid": "죄송합니다. 해당 플러그인의 설명서 유효성 검사에 실패했습니다. 설명서 형식이 올바른지 확인해주세요.", + "PluginManifestNotFound": "죄송합니다. 서버에서 해당 플러그인의 설명서 (manifest.json)를 찾을 수 없습니다. 플러그인 설명 파일 주소가 올바른지 확인해주세요.", + "PluginMarketIndexInvalid": "죄송합니다. 플러그인 인덱스 유효성 검사에 실패했습니다. 인덱스 파일 형식이 올바른지 확인해주세요.", + "PluginMarketIndexNotFound": "죄송합니다. 서버에서 플러그인 인덱스를 찾을 수 없습니다. 인덱스 주소가 올바른지 확인해주세요.", + "PluginMetaInvalid": "죄송합니다. 해당 플러그인의 메타 정보 유효성 검사에 실패했습니다. 플러그인 메타 정보 형식이 올바른지 확인해주세요.", + "PluginMetaNotFound": "죄송합니다. 인덱스에서 해당 플러그인을 찾을 수 없습니다. 플러그인의 구성 정보를 인덱스에서 확인해주세요.", + "PluginOpenApiInitError": "죄송합니다. OpenAPI 클라이언트 초기화에 실패했습니다. OpenAPI 구성 정보를 확인해주세요.", + "PluginServerError": "플러그인 서버 요청이 오류로 반환되었습니다. 플러그인 설명 파일, 플러그인 구성 또는 서버 구현을 확인해주세요.", + "PluginSettingsInvalid": "플러그인을 사용하려면 올바른 구성이 필요합니다. 구성이 올바른지 확인해주세요." }, "stt": { "responseError": "서비스 요청이 실패했습니다. 구성을 확인하거나 다시 시도해주세요." @@ -38,16 +38,16 @@ }, "unlock": { "apikey": { - "title": "사용자 정의 API 키 사용", + "addProxyUrl": "OpenAI 프록시 주소 추가하기 (선택 사항)", "description": "OpenAI API 키를 입력하면 대화를 시작할 수 있습니다. 애플리케이션은 API 키를 기록하지 않습니다.", - "addProxyUrl": "OpenAI 프록시 주소 추가하기 (선택 사항)" + "title": "사용자 정의 API 키 사용" }, "closeMessage": "알림 닫기", "confirm": "확인 및 다시 시도", "password": { "description": "관리자가 애플리케이션 암호화를 활성화했습니다. 애플리케이션을 잠금 해제하려면 애플리케이션 비밀번호를 입력하십시오. 비밀번호는 한 번만 입력하면 됩니다.", - "title": "암호 입력하여 애플리케이션 잠금 해제", - "placeholder": "비밀번호를 입력하세요" + "placeholder": "비밀번호를 입력하세요", + "title": "암호 입력하여 애플리케이션 잠금 해제" } } } diff --git a/locales/ko_KR/migration.json b/locales/ko_KR/migration.json index e8199f8c80..b1b3d7dece 100644 --- a/locales/ko_KR/migration.json +++ b/locales/ko_KR/migration.json @@ -17,8 +17,8 @@ "title": "대용량" }, "performance": { - "title": "고성능", - "desc": "백만 개의 메시지를 자동 색인화하여 밀리초 단위로 쿼리 응답" + "desc": "백만 개의 메시지를 자동 색인화하여 밀리초 단위로 쿼리 응답", + "title": "고성능" }, "use": { "desc": "제목, 설명, 태그, 메시지 내용 및 번역 텍스트 검색을 지원하여 일상적인 검색 효율을 크게 향상시킵니다.", @@ -28,8 +28,8 @@ "title": "LobeChat 데이터 진화", "upgrade": { "error": { - "title": "데이터베이스 업그레이드 실패", - "subTitle": "죄송합니다. 데이터베이스 업그레이드 중에 오류가 발생했습니다. 다음 방법을 시도해보세요: A. 로컬 데이터를 지우고 백업 데이터를 다시 가져오기; B. '업그레이드 다시 시작' 버튼을 클릭하세요.

계속해서 오류가 발생하면 <1>문제 제출을 클릭하여 우리가 도와드리도록 하세요" + "subTitle": "죄송합니다. 데이터베이스 업그레이드 중에 오류가 발생했습니다. 다음 방법을 시도해보세요: A. 로컬 데이터를 지우고 백업 데이터를 다시 가져오기; B. '업그레이드 다시 시작' 버튼을 클릭하세요.

계속해서 오류가 발생하면 <1>문제 제출을 클릭하여 우리가 도와드리도록 하세요", + "title": "데이터베이스 업그레이드 실패" }, "success": { "subTitle": "LobeChat의 데이터베이스가 최신 버전으로 업그레이드되었습니다. 지금 경험해보세요.", diff --git a/locales/ko_KR/plugin.json b/locales/ko_KR/plugin.json index 67f6d56cee..1991baf5fa 100644 --- a/locales/ko_KR/plugin.json +++ b/locales/ko_KR/plugin.json @@ -2,9 +2,9 @@ "debug": { "arguments": "함수 호출 인수", "function_call": "함수 호출", - "response": "응답", "off": "디버그 끄기", - "on": "플러그인 호출 정보 보기" + "on": "플러그인 호출 정보 보기", + "response": "응답" }, "detailModal": { "info": { @@ -20,6 +20,11 @@ }, "dev": { "confirmDeleteDevPlugin": "로컬 플러그인을 삭제하시겠습니까? 삭제 후에는 복구할 수 없습니다.", + "customParams": { + "useProxy": { + "label": "프록시 사용 (크로스 도메인 오류가 발생할 경우 이 옵션을 활성화한 후 다시 설치해 보세요)" + } + }, "deleteSuccess": "플러그인이 성공적으로 삭제되었습니다.", "manifest": { "identifier": { @@ -64,12 +69,9 @@ }, "manifest": { "desc": "LobeChat은 이 링크를 통해 플러그인을 설치합니다.", - "jsonInvalid": "manifest가 규칙에 맞지 않습니다. 유효성 검사 결과: \n\n {{error}}", + "label": "Manifest 파일 URL", "preview": "Manifest 미리보기", - "refresh": "새로 고침", - "requestError": "이 링크를 요청하는 중에 오류가 발생했습니다. 유효한 링크를 입력하고 링크가 크로스 도메인 액세스를 허용하는지 확인해주세요.", - "urlError": "이 링크는 JSON 형식의 내용을 반환하지 않습니다. 유효한 링크를 입력해주세요.", - "label": "Manifest 파일 URL" + "refresh": "새로 고침" }, "title": { "desc": "플러그인 제목", @@ -78,38 +80,38 @@ } }, "metaConfig": "플러그인 메타 정보 구성", - "preview": { - "card": "플러그인 미리보기", - "desc": "플러그인 설명 미리보기", - "title": "플러그인 이름 미리보기" - }, - "saveSuccess": "플러그인 설정이 성공적으로 저장되었습니다.", - "tabs": { - "manifest": "기능 설명 목록 (Manifest)", - "meta": "플러그인 메타 정보" - }, - "update": "업데이트", - "updateSuccess": "플러그인 설정이 성공적으로 업데이트되었습니다.", "modalDesc": "사용자 정의 플러그인을 추가하면 플러그인 개발을 검증하거나 세션에서 직접 사용할 수 있습니다. 플러그인 개발은 <1>개발 문서↗를 참조하세요.", "openai": { "importUrl": "URL 링크에서 가져오기", "schema": "스키마" }, + "preview": { + "card": "플러그인 미리보기", + "desc": "플러그인 설명 미리보기", + "title": "플러그인 이름 미리보기" + }, "save": "플러그인 설치", - "type": { - "lobe": "LobeChat 플러그인", - "openai": "OpenAI 플러그인" + "saveSuccess": "플러그인 설정이 성공적으로 저장되었습니다.", + "tabs": { + "manifest": "기능 설명 목록 (Manifest)", + "meta": "플러그인 메타 정보" }, "title": { "create": "사용자 정의 플러그인 추가", "edit": "사용자 정의 플러그인 편집" - } + }, + "type": { + "lobe": "LobeChat 플러그인", + "openai": "OpenAI 플러그인" + }, + "update": "업데이트", + "updateSuccess": "플러그인 설정이 성공적으로 업데이트되었습니다." }, "error": { - "installError": "플러그인 {{name}} 설치 실패", - "noManifest": "설명 파일이 없습니다", "fetchError": "해당 manifest 링크를 요청하는 중 오류가 발생했습니다. 링크의 유효성을 확인하고, 링크가 크로스 도메인 액세스를 허용하는지 확인하세요.", + "installError": "플러그인 {{name}} 설치 실패", "manifestInvalid": "manifest가 규격에 맞지 않습니다. 유효성 검사 결과: \n\n {{error}}", + "noManifest": "설명 파일이 없습니다", "openAPIInvalid": "OpenAPI 파싱에 실패했습니다. 오류: \n\n {{error}}", "reinstallError": "플러그인 {{name}} 다시 설치 중 오류가 발생했습니다.", "urlError": "이 링크는 JSON 형식의 내용을 반환하지 않습니다. 유효한 링크인지 확인하세요." @@ -122,8 +124,8 @@ } }, "loading": { - "plugin": "플러그인 실행 중...", - "content": "플러그인 호출 중..." + "content": "플러그인 호출 중...", + "plugin": "플러그인 실행 중..." }, "pluginList": "플러그인 목록", "plugins": { @@ -140,18 +142,6 @@ "title": "플러그인 마켓 설정" }, "store": { - "empty": "설치된 플러그인이 없습니다", - "install": "설치", - "installAllPlugins": "모두 설치", - "networkError": "플러그인 스토어를 가져오는 데 실패했습니다. 네트워크 연결을 확인한 후 다시 시도하십시오", - "releasedAt": "{{createdAt}}에 출시", - "tabs": { - "all": "모두", - "installed": "설치됨" - }, - "title": "플러그인 스토어", - "uninstall": "제거", - "placeholder": "플러그인 이름 또는 키워드를 검색하세요...", "actions": { "confirmUninstall": "이 플러그인을 제거하려고 합니다. 제거하면 플러그인 구성이 지워지므로 작업을 확인하세요.", "detail": "상세정보", @@ -160,6 +150,17 @@ "settings": "설정", "uninstall": "제거" }, - "customPlugin": "사용자 정의 플러그인" + "communityPlugin": "커뮤니티 플러그인", + "customPlugin": "사용자 정의 플러그인", + "empty": "설치된 플러그인이 없습니다", + "installAllPlugins": "모두 설치", + "networkError": "플러그인 스토어를 가져오는 데 실패했습니다. 네트워크 연결을 확인한 후 다시 시도하십시오", + "placeholder": "플러그인 이름 또는 키워드를 검색하세요...", + "releasedAt": "{{createdAt}}에 출시", + "tabs": { + "all": "모두", + "installed": "설치됨" + }, + "title": "플러그인 스토어" } } diff --git a/locales/ko_KR/setting.json b/locales/ko_KR/setting.json index fffef40ed0..a9bc782a61 100644 --- a/locales/ko_KR/setting.json +++ b/locales/ko_KR/setting.json @@ -85,7 +85,7 @@ "waitingForMore": "<1>계획에 따라 더 많은 모델이 추가될 예정이니 기대해 주세요 ✨" }, "plugin": { - "addTooltip": "사용자 정의 플러그인 추가", + "addTooltip": "플러그인 추가", "clearDeprecated": "사용되지 않는 플러그인 제거", "empty": "설치된 플러그인이 없습니다. <1>플러그인 스토어에서 새로운 플러그인을 찾아보세요.", "installStatus": { diff --git a/locales/ru_RU/chat.json b/locales/ru_RU/chat.json index 072f69cfca..e70429cfe5 100644 --- a/locales/ru_RU/chat.json +++ b/locales/ru_RU/chat.json @@ -1,7 +1,7 @@ { "agentDefaultMessage": "Привет, я **{{name}}**. Ты можешь начать общение со мной прямо сейчас или перейти к [настройкам помощника](/chat/settings#session={{id}}), чтобы улучшить мою информацию.", "agentDefaultMessageWithSystemRole": "Привет, я **{{name}}**, {{systemRole}}. Давай начнем разговор!", - "backToBottom": "К последним сообщениям", + "backToBottom": "Вернуться вниз", "clearCurrentMessages": "Очистить текущий разговор", "confirmClearCurrentMessages": "Вы уверены, что хотите очистить текущий разговор? После этого его нельзя будет восстановить.", "confirmRemoveSessionItemAlert": "Вы уверены, что хотите удалить этого помощника? После этого его нельзя будет восстановить.", diff --git a/locales/ru_RU/common.json b/locales/ru_RU/common.json index d373993f24..2bd6fbbff8 100644 --- a/locales/ru_RU/common.json +++ b/locales/ru_RU/common.json @@ -52,13 +52,13 @@ "lang": { "en": "Английский", "en-US": "Английский", + "fr-FR": "французский", "ja-JP": "Японский", "ko-KR": "Корейский", "ru-RU": "Русский", "zh": "Китайский", "zh-CN": "Китайский", - "zh-TW": "Традиционный китайский", - "fr-FR": "французский" + "zh-TW": "Традиционный китайский" }, "layoutInitializing": "Инициализация макета...", "noDescription": "Нет описания", @@ -82,8 +82,8 @@ "temp": "Временный", "updateAgent": "Обновить информацию об агенте", "upgradeVersion": { + "action": "обновить", "hasNew": "Доступно обновление", - "newVersion": "Доступна новая версия: {{version}}", - "action": "обновить" + "newVersion": "Доступна новая версия: {{version}}" } } diff --git a/locales/ru_RU/error.json b/locales/ru_RU/error.json index ababbbdb94..1e687a576f 100644 --- a/locales/ru_RU/error.json +++ b/locales/ru_RU/error.json @@ -15,20 +15,20 @@ "503": "К сожалению, сервер в настоящее время не может обработать ваш запрос, возможно, из-за перегрузки или технического обслуживания. Повторите попытку позже.", "504": "К сожалению, сервер не получил ответа от вышестоящего сервера. Повторите попытку позже.", "InvalidAccessCode": "Пароль неверен или пуст. Введите правильный пароль доступа или добавьте собственный ключ API OpenAI.", + "NoAPIKey": "Ключ OpenAI API пуст, пожалуйста, добавьте свой собственный ключ OpenAI API", "OpenAIBizError": "Ошибка запроса службы OpenAI. Устраните неполадку или повторите попытку, основываясь на следующей информации.", - "PluginMarketIndexNotFound": "К сожалению, сервер не смог найти индекс плагина. Пожалуйста, проверьте правильность адреса индекса", - "PluginMarketIndexInvalid": "К сожалению, проверка индекса плагина не удалась. Пожалуйста, проверьте правильность формата индексного файла", - "PluginMetaNotFound": "К сожалению, плагин не найден в индексе. Пожалуйста, проверьте информацию о конфигурации плагина в индексе", - "PluginMetaInvalid": "К сожалению, проверка метаданных плагина не удалась. Пожалуйста, проверьте правильность формата метаданных плагина", - "PluginManifestNotFound": "К сожалению, серверу не удалось найти файл манифеста плагина (manifest.json). Пожалуйста, проверьте правильность адреса файла манифеста плагина", - "PluginManifestInvalid": "К сожалению, проверка манифеста плагина не удалась. Пожалуйста, проверьте правильность формата манифеста", "PluginApiNotFound": "К сожалению, API не существует в манифесте плагина. Пожалуйста, проверьте, соответствует ли ваш метод запроса API манифеста плагина", "PluginApiParamsError": "К сожалению, проверка входных параметров для запроса плагина не удалась. Пожалуйста, проверьте, соответствуют ли входные параметры описанию API", - "PluginSettingsInvalid": "Этот плагин необходимо правильно настроить, прежде чем его можно будет использовать. Пожалуйста, проверьте правильность вашей конфигурации", - "PluginServerError": "Запрос сервера плагина возвратил ошибку. Проверьте файл манифеста плагина, конфигурацию плагина или реализацию сервера на основе информации об ошибке ниже", - "NoAPIKey": "Ключ OpenAI API пуст, пожалуйста, добавьте свой собственный ключ OpenAI API", "PluginGatewayError": "Извините, возникла ошибка шлюза плагина. Пожалуйста, проверьте правильность конфигурации шлюза плагина.", - "PluginOpenApiInitError": "Извините, не удалось инициализировать клиент OpenAPI. Пожалуйста, проверьте правильность информации конфигурации OpenAPI." + "PluginManifestInvalid": "К сожалению, проверка манифеста плагина не удалась. Пожалуйста, проверьте правильность формата манифеста", + "PluginManifestNotFound": "К сожалению, серверу не удалось найти файл манифеста плагина (manifest.json). Пожалуйста, проверьте правильность адреса файла манифеста плагина", + "PluginMarketIndexInvalid": "К сожалению, проверка индекса плагина не удалась. Пожалуйста, проверьте правильность формата индексного файла", + "PluginMarketIndexNotFound": "К сожалению, сервер не смог найти индекс плагина. Пожалуйста, проверьте правильность адреса индекса", + "PluginMetaInvalid": "К сожалению, проверка метаданных плагина не удалась. Пожалуйста, проверьте правильность формата метаданных плагина", + "PluginMetaNotFound": "К сожалению, плагин не найден в индексе. Пожалуйста, проверьте информацию о конфигурации плагина в индексе", + "PluginOpenApiInitError": "Извините, не удалось инициализировать клиент OpenAPI. Пожалуйста, проверьте правильность информации конфигурации OpenAPI.", + "PluginServerError": "Запрос сервера плагина возвратил ошибку. Проверьте файл манифеста плагина, конфигурацию плагина или реализацию сервера на основе информации об ошибке ниже", + "PluginSettingsInvalid": "Этот плагин необходимо правильно настроить, прежде чем его можно будет использовать. Пожалуйста, проверьте правильность вашей конфигурации" }, "stt": { "responseError": "Ошибка запроса сервиса. Пожалуйста, проверьте конфигурацию или повторите попытку" @@ -38,16 +38,16 @@ }, "unlock": { "apikey": { - "title": "Использовать собственный ключ API", + "addProxyUrl": "Добавить адрес прокси OpenAI (необязательно)", "description": "Введите свой ключ API OpenAI, чтобы начать сеанс. Приложение не будет сохранять ваш ключ API.", - "addProxyUrl": "Добавить адрес прокси OpenAI (необязательно)" + "title": "Использовать собственный ключ API" }, + "closeMessage": "Закрыть сообщение", "confirm": "Подтвердить и повторить попытку", "password": { "description": "Шифрование приложения включено администратором. Введите пароль приложения, чтобы разблокировать приложение. Пароль необходимо ввести только один раз.", - "title": "Введите пароль для разблокировки приложения", - "placeholder": "Введите пароль" - }, - "closeMessage": "Закрыть сообщение" + "placeholder": "Введите пароль", + "title": "Введите пароль для разблокировки приложения" + } } } diff --git a/locales/ru_RU/market.json b/locales/ru_RU/market.json index e7b99ea267..98f02836bc 100644 --- a/locales/ru_RU/market.json +++ b/locales/ru_RU/market.json @@ -24,7 +24,7 @@ }, "submitAgent": "Отправить агента", "title": { - "recentSubmits": "Недавние добавления", - "allAgents": "Все агенты" + "allAgents": "Все агенты", + "recentSubmits": "Недавние добавления" } } diff --git a/locales/ru_RU/migration.json b/locales/ru_RU/migration.json index 21d9186229..a25450b174 100644 --- a/locales/ru_RU/migration.json +++ b/locales/ru_RU/migration.json @@ -17,8 +17,8 @@ "title": "Большой объем" }, "performance": { - "title": "Высокая производительность", - "desc": "Миллионы сообщений автоматически индексируются, поиск выполняется за миллисекунды" + "desc": "Миллионы сообщений автоматически индексируются, поиск выполняется за миллисекунды", + "title": "Высокая производительность" }, "use": { "desc": "Поддержка поиска по заголовкам, описаниям, меткам, содержимому сообщений и даже переведенному тексту, что значительно повышает эффективность повседневного поиска", @@ -28,8 +28,8 @@ "title": "Эволюция данных LobeChat", "upgrade": { "error": { - "title": "Ошибка обновления базы данных", - "subTitle": "Извините, произошла ошибка в процессе обновления базы данных. Пожалуйста, попробуйте следующие варианты: A. Очистите локальные данные и заново импортируйте резервные данные; B. Нажмите кнопку «Повторить обновление».

Если проблема сохраняется, пожалуйста, <1>сообщите о проблеме, и мы постараемся помочь вам в кратчайшие сроки" + "subTitle": "Извините, произошла ошибка в процессе обновления базы данных. Пожалуйста, попробуйте следующие варианты: A. Очистите локальные данные и заново импортируйте резервные данные; B. Нажмите кнопку «Повторить обновление».

Если проблема сохраняется, пожалуйста, <1>сообщите о проблеме, и мы постараемся помочь вам в кратчайшие сроки", + "title": "Ошибка обновления базы данных" }, "success": { "subTitle": "База данных LobeChat успешно обновлена до последней версии. Начните использовать прямо сейчас!", diff --git a/locales/ru_RU/plugin.json b/locales/ru_RU/plugin.json index 53f17565bb..22fd9f6203 100644 --- a/locales/ru_RU/plugin.json +++ b/locales/ru_RU/plugin.json @@ -2,9 +2,9 @@ "debug": { "arguments": "Аргументы вызова", "function_call": "Вызов функции", - "response": "Ответ", "off": "Выключить отладку", - "on": "Просмотр информации о вызове плагина" + "on": "Просмотр информации о вызове плагина", + "response": "Ответ" }, "detailModal": { "info": { @@ -20,6 +20,11 @@ }, "dev": { "confirmDeleteDevPlugin": "Вы собираетесь удалить этот локальный плагин. После удаления его будет невозможно восстановить. Вы уверены, что хотите удалить этот плагин?", + "customParams": { + "useProxy": { + "label": "Установить через прокси (если возникают ошибки доступа к другому домену, попробуйте включить эту опцию перед повторной установкой)" + } + }, "deleteSuccess": "Плагин успешно удален", "manifest": { "identifier": { @@ -64,12 +69,9 @@ }, "manifest": { "desc": "LobeChat будет устанавливать плагин по этой ссылке", - "jsonInvalid": "Манифест не соответствует стандарту. Результат проверки: \n\n {{error}}", + "label": "URL файла манифеста плагина", "preview": "Предварительный просмотр манифеста", - "refresh": "Обновить", - "requestError": "Не удалось получить данные по этой ссылке. Пожалуйста, введите действительную ссылку и проверьте, разрешен ли кросс-доменный доступ", - "urlError": "Ссылка не возвращает данные в формате JSON. Пожалуйста, введите действительную ссылку", - "label": "URL файла манифеста плагина" + "refresh": "Обновить" }, "title": { "desc": "Заголовок плагина", @@ -78,38 +80,38 @@ } }, "metaConfig": "Настройка метаданных плагина", - "preview": { - "card": "Предварительный просмотр плагина", - "desc": "Предварительный просмотр описания плагина", - "title": "Предварительный просмотр имени плагина" - }, - "saveSuccess": "Настройки плагина успешно сохранены", - "tabs": { - "manifest": "Описание функций (Манифест)", - "meta": "Метаданные плагина" - }, - "update": "Обновить", - "updateSuccess": "Настройки плагина успешно обновлены", "modalDesc": "После добавления пользовательского плагина его можно использовать для проверки разработки плагина или непосредственно в сеансе. См. документацию по разработке <1>здесь↗", "openai": { "importUrl": "Импорт из URL-ссылки", "schema": "Схема" }, + "preview": { + "card": "Предварительный просмотр плагина", + "desc": "Предварительный просмотр описания плагина", + "title": "Предварительный просмотр имени плагина" + }, "save": "Установить плагин", - "type": { - "lobe": "Плагин LobeChat", - "openai": "Плагин OpenAI" + "saveSuccess": "Настройки плагина успешно сохранены", + "tabs": { + "manifest": "Описание функций (Манифест)", + "meta": "Метаданные плагина" }, "title": { "create": "Добавить пользовательский плагин", "edit": "Редактировать пользовательский плагин" - } + }, + "type": { + "lobe": "Плагин LobeChat", + "openai": "Плагин OpenAI" + }, + "update": "Обновить", + "updateSuccess": "Настройки плагина успешно обновлены" }, "error": { - "installError": "Ошибка установки плагина {{name}}", - "noManifest": "Отсутствует файл описания", "fetchError": "Не удалось получить доступ к файлу манифеста по указанной ссылке. Убедитесь, что ссылка действительна, и проверьте, разрешен ли кросс-доменный доступ", + "installError": "Ошибка установки плагина {{name}}", "manifestInvalid": "Манифест не соответствует стандартам, результат проверки: \n\n {{error}}", + "noManifest": "Отсутствует файл описания", "openAPIInvalid": "Сбой разбора OpenAPI, ошибка: \n\n {{error}}", "reinstallError": "Ошибка обновления плагина {{name}}", "urlError": "Ссылка не возвращает содержимое в формате JSON. Убедитесь, что ссылка действительна" @@ -122,8 +124,8 @@ } }, "loading": { - "plugin": "Выполнение плагина...", - "content": "Вызов плагина..." + "content": "Вызов плагина...", + "plugin": "Выполнение плагина..." }, "pluginList": "Список плагинов", "plugins": { @@ -140,18 +142,6 @@ "title": "Настройки рынка плагинов" }, "store": { - "empty": "Нет установленных плагинов", - "install": "Установить", - "installAllPlugins": "Установить все", - "networkError": "Не удалось получить доступ к магазину плагинов. Пожалуйста, проверьте подключение к сети и повторите попытку", - "releasedAt": "Опубликовано {{createdAt}}", - "tabs": { - "all": "Все", - "installed": "Установленные" - }, - "title": "Магазин плагинов", - "uninstall": "Удалить", - "placeholder": "Введите название плагина, описание или ключевое слово...", "actions": { "confirmUninstall": "Вы собираетесь удалить этот плагин. После удаления будут очищены его настройки. Подтвердить операцию?", "detail": "Подробнее", @@ -160,6 +150,17 @@ "settings": "Настройки", "uninstall": "Удалить" }, - "customPlugin": "Пользовательский плагин" + "communityPlugin": "Плагин сообщества", + "customPlugin": "Пользовательский плагин", + "empty": "Нет установленных плагинов", + "installAllPlugins": "Установить все", + "networkError": "Не удалось получить доступ к магазину плагинов. Пожалуйста, проверьте подключение к сети и повторите попытку", + "placeholder": "Введите название плагина, описание или ключевое слово...", + "releasedAt": "Опубликовано {{createdAt}}", + "tabs": { + "all": "Все", + "installed": "Установленные" + }, + "title": "Магазин плагинов" } } diff --git a/locales/ru_RU/setting.json b/locales/ru_RU/setting.json index fbbe739b16..04d99334cc 100644 --- a/locales/ru_RU/setting.json +++ b/locales/ru_RU/setting.json @@ -85,7 +85,7 @@ "waitingForMore": "Больше моделей в <1>плане на подключение, ожидайте ✨" }, "plugin": { - "addTooltip": "Добавить пользовательский плагин", + "addTooltip": "Добавить настраиваемый плагин", "clearDeprecated": "Удалить устаревшие плагины", "empty": "Нет установленных плагинов. Добро пожаловать в <1>Магазин плагинов для исследования", "installStatus": { diff --git a/locales/zh_CN/chat.json b/locales/zh_CN/chat.json index 71e4d42e09..fb00508861 100644 --- a/locales/zh_CN/chat.json +++ b/locales/zh_CN/chat.json @@ -1,7 +1,7 @@ { "agentDefaultMessage": "你好,我是 **{{name}}**,你可以立即与我开始对话,也可以前往 [助手设置](/chat/settings#session={{id}}) 完善我的信息。", "agentDefaultMessageWithSystemRole": "你好,我是 **{{name}}**,{{systemRole}},让我们开始对话吧!", - "backToBottom": "查看最新消息", + "backToBottom": "跳转至当前", "clearCurrentMessages": "清空当前会话消息", "confirmClearCurrentMessages": "即将清空当前会话消息,清空后将无法找回,请确认你的操作", "confirmRemoveSessionItemAlert": "即将删除该助手,删除后该将无法找回,请确认你的操作", diff --git a/locales/zh_CN/plugin.json b/locales/zh_CN/plugin.json index c6d9dbc6fb..c17e3ea033 100644 --- a/locales/zh_CN/plugin.json +++ b/locales/zh_CN/plugin.json @@ -20,6 +20,11 @@ }, "dev": { "confirmDeleteDevPlugin": "即将删除该本地插件,删除后将无法找回,是否删除该插件?", + "customParams": { + "useProxy": { + "label": "通过代理安装(如遇到跨域访问错误,可尝试开启该选项后重新安装)" + } + }, "deleteSuccess": "插件删除成功", "manifest": { "identifier": { @@ -145,6 +150,7 @@ "settings": "设置", "uninstall": "卸载" }, + "communityPlugin": "三方社区", "customPlugin": "自定义", "empty": "暂无已安装插件", "installAllPlugins": "安装全部", diff --git a/locales/zh_CN/setting.json b/locales/zh_CN/setting.json index 00a593cb3f..37f4fc1cf4 100644 --- a/locales/zh_CN/setting.json +++ b/locales/zh_CN/setting.json @@ -85,7 +85,7 @@ "waitingForMore": "更多模型正在 <1>计划接入 中,敬请期待 ✨" }, "plugin": { - "addTooltip": "添加自定义插件", + "addTooltip": "自定义插件", "clearDeprecated": "移除无效插件", "empty": "暂无已安装插件,欢迎前往 <1>插件商店 探索", "installStatus": { diff --git a/locales/zh_TW/chat.json b/locales/zh_TW/chat.json index 92a9467158..c682af3952 100644 --- a/locales/zh_TW/chat.json +++ b/locales/zh_TW/chat.json @@ -1,7 +1,7 @@ { "agentDefaultMessage": "你好,我是 **{{name}}**,你可以立即與我開始對話,也可以前往 [助手設置](/chat/settings#session={{id}}) 完善我的信息。", "agentDefaultMessageWithSystemRole": "你好,我是 **{{name}}**,{{systemRole}},讓我們開始對話吧!", - "backToBottom": "查看最新訊息", + "backToBottom": "返回底部", "clearCurrentMessages": "清空當前對話", "confirmClearCurrentMessages": "即將清空當前對話,清空後將無法找回,請確認你的操作", "confirmRemoveSessionItemAlert": "即將刪除該助手,刪除後將無法找回,請確認你的操作", diff --git a/locales/zh_TW/common.json b/locales/zh_TW/common.json index 8bc2e04f1b..4da28fd643 100644 --- a/locales/zh_TW/common.json +++ b/locales/zh_TW/common.json @@ -52,13 +52,13 @@ "lang": { "en": "英文", "en-US": "英文", + "fr-FR": "法語", "ja-JP": "日文", "ko-KR": "韓文", "ru-RU": "俄文", "zh": "簡體中文", "zh-CN": "簡體中文", - "zh-TW": "繁體中文", - "fr-FR": "法語" + "zh-TW": "繁體中文" }, "layoutInitializing": "正在載入版面配置...", "noDescription": "暫無描述", @@ -82,8 +82,8 @@ "temp": "臨時", "updateAgent": "更新助理資訊", "upgradeVersion": { + "action": "升級", "hasNew": "有可用更新", - "newVersion": "有新版本可用:{{version}}", - "action": "升級" + "newVersion": "有新版本可用:{{version}}" } } diff --git a/locales/zh_TW/error.json b/locales/zh_TW/error.json index 4fcf120105..b6c01cf439 100644 --- a/locales/zh_TW/error.json +++ b/locales/zh_TW/error.json @@ -15,20 +15,20 @@ "503": "抱歉,伺服器目前無法處理您的請求,可能是因為過載或正在進行維護。請稍後再試。", "504": "抱歉,伺服器沒有收到上游伺服器的回應。請稍後再試。", "InvalidAccessCode": "密碼不正確或為空。請輸入正確的存取密碼,或新增自定義的 OpenAI API Key。", + "NoAPIKey": "OpenAI API 金鑰為空,請添加自訂 OpenAI API 金鑰", "OpenAIBizError": "請求 OpenAI 服務出錯。請根據以下資訊進行排查或重試。", - "PluginMarketIndexNotFound": "抱歉,伺服器找不到外掛索引。請檢查索引地址是否正確", - "PluginMarketIndexInvalid": "抱歉,外掛索引驗證失敗。請檢查索引檔案格式是否正確", - "PluginMetaNotFound": "抱歉,索引中找不到該外掛。請檢查索引中的外掛設定資訊", - "PluginMetaInvalid": "抱歉,外掛的元資料驗證失敗。請檢查外掛元資料格式是否正確", - "PluginManifestNotFound": "抱歉,伺服器找不到該外掛的描述檔案 (manifest.json)。請檢查外掛描述檔案地址是否正確", - "PluginManifestInvalid": "抱歉,外掛的描述檔案驗證失敗。請檢查描述檔案格式是否正確", "PluginApiNotFound": "抱歉,外掛描述檔案中不存在該 API。請檢查您的請求方法與外掛清單 API 是否相符", "PluginApiParamsError": "抱歉,該外掛請求的輸入參數驗證失敗。請檢查輸入參數與 API 描述資訊是否相符", - "PluginSettingsInvalid": "該外掛需要正確設定後才可以使用。請檢查您的設定是否正確", - "PluginServerError": "外掛伺服器請求回傳錯誤。請根據下面的錯誤資訊檢查您的外掛描述檔案、外掛設定或伺服器實作", - "NoAPIKey": "OpenAI API 金鑰為空,請添加自訂 OpenAI API 金鑰", "PluginGatewayError": "很抱歉,插件網關出現錯誤,請檢查插件網關配置是否正確", - "PluginOpenApiInitError": "很抱歉,OpenAPI 客戶端初始化失敗,請檢查 OpenAPI 的配置信息是否正確" + "PluginManifestInvalid": "抱歉,外掛的描述檔案驗證失敗。請檢查描述檔案格式是否正確", + "PluginManifestNotFound": "抱歉,伺服器找不到該外掛的描述檔案 (manifest.json)。請檢查外掛描述檔案地址是否正確", + "PluginMarketIndexInvalid": "抱歉,外掛索引驗證失敗。請檢查索引檔案格式是否正確", + "PluginMarketIndexNotFound": "抱歉,伺服器找不到外掛索引。請檢查索引地址是否正確", + "PluginMetaInvalid": "抱歉,外掛的元資料驗證失敗。請檢查外掛元資料格式是否正確", + "PluginMetaNotFound": "抱歉,索引中找不到該外掛。請檢查索引中的外掛設定資訊", + "PluginOpenApiInitError": "很抱歉,OpenAPI 客戶端初始化失敗,請檢查 OpenAPI 的配置信息是否正確", + "PluginServerError": "外掛伺服器請求回傳錯誤。請根據下面的錯誤資訊檢查您的外掛描述檔案、外掛設定或伺服器實作", + "PluginSettingsInvalid": "該外掛需要正確設定後才可以使用。請檢查您的設定是否正確" }, "stt": { "responseError": "服務請求失敗,請檢查配置或重試" @@ -38,16 +38,16 @@ }, "unlock": { "apikey": { - "title": "使用自定義 API Key", + "addProxyUrl": "添加 OpenAI 代理地址(可選)", "description": "輸入你的 OpenAI API Key 即可開始會話。應用程式不會記錄你的 API Key", - "addProxyUrl": "添加 OpenAI 代理地址(可選)" + "title": "使用自定義 API Key" }, + "closeMessage": "關閉提示", "confirm": "確認並重試", "password": { "description": "管理員已啟用應用程式加密,輸入應用程式密碼後即可解鎖應用程式。密碼只需填寫一次。", - "title": "輸入密碼解鎖應用程式", - "placeholder": "請輸入密碼" - }, - "closeMessage": "關閉提示" + "placeholder": "請輸入密碼", + "title": "輸入密碼解鎖應用程式" + } } } diff --git a/locales/zh_TW/market.json b/locales/zh_TW/market.json index 575d144ba7..27294f1777 100644 --- a/locales/zh_TW/market.json +++ b/locales/zh_TW/market.json @@ -24,7 +24,7 @@ }, "submitAgent": "上傳助理", "title": { - "recentSubmits": "最新上傳", - "allAgents": "所有助理" + "allAgents": "所有助理", + "recentSubmits": "最新上傳" } } diff --git a/locales/zh_TW/migration.json b/locales/zh_TW/migration.json index 34da1d0dc6..5a9baad378 100644 --- a/locales/zh_TW/migration.json +++ b/locales/zh_TW/migration.json @@ -17,8 +17,8 @@ "title": "大容量" }, "performance": { - "title": "高性能", - "desc": "百萬條消息自動索引,檢索查詢毫秒級響應" + "desc": "百萬條消息自動索引,檢索查詢毫秒級響應", + "title": "高性能" }, "use": { "desc": "支持標題、描述、標籤、消息內容乃至翻譯文本檢索,日常搜索效率大大提升", @@ -28,8 +28,8 @@ "title": "LobeChat 資料進化", "upgrade": { "error": { - "title": "資料庫升級失敗", - "subTitle": "非常抱歉,資料庫升級過程發生異常。請嘗試以下方案:A. 清空本地數據後,重新導入備份數據; B.點擊「重新升級」按鈕。

如仍然出錯,請 <1>提交問題 ,我們將會第一時間幫你排查" + "subTitle": "非常抱歉,資料庫升級過程發生異常。請嘗試以下方案:A. 清空本地數據後,重新導入備份數據; B.點擊「重新升級」按鈕。

如仍然出錯,請 <1>提交問題 ,我們將會第一時間幫你排查", + "title": "資料庫升級失敗" }, "success": { "subTitle": "LobeChat 的資料庫已經升級到最新版本,立即開始體驗吧", diff --git a/locales/zh_TW/plugin.json b/locales/zh_TW/plugin.json index ea7a088417..e496bee19c 100644 --- a/locales/zh_TW/plugin.json +++ b/locales/zh_TW/plugin.json @@ -2,9 +2,9 @@ "debug": { "arguments": "參數", "function_call": "函式呼叫", - "response": "回應", "off": "關閉偵錯", - "on": "查看插件呼叫資訊" + "on": "查看插件呼叫資訊", + "response": "回應" }, "detailModal": { "info": { @@ -20,6 +20,11 @@ }, "dev": { "confirmDeleteDevPlugin": "您確定要刪除此本機外掛嗎?一旦刪除,將無法復原。", + "customParams": { + "useProxy": { + "label": "透過代理安裝(若遇到跨域訪問錯誤,可嘗試開啟該選項後重新安裝)" + } + }, "deleteSuccess": "外掛已成功刪除", "manifest": { "identifier": { @@ -64,13 +69,9 @@ }, "manifest": { "desc": "LobeChat 會使用此連結安裝外掛", - "invalid": "輸入的 manifest 連結不正確或不符合標準", - "urlError": "請輸入有效的網址", - "jsonInvalid": "manifest 不正確,驗證結果:\n\n {{error}}", + "label": "插件描述檔 (Manifest) URL", "preview": "預覽 Manifest", - "refresh": "重新載入", - "requestError": "連結請求失敗,請確認網址是否正確且允許跨域存取", - "label": "插件描述檔 (Manifest) URL" + "refresh": "重新載入" }, "title": { "desc": "外掛的名稱", @@ -79,77 +80,58 @@ } }, "metaConfig": "外掛後設資料設定", - "preview": { - "card": "外掛顯示預覽", - "desc": "外掛描述預覽", - "title": "外掛名稱預覽" - }, - "saveSuccess": "外掛設定已成功儲存", - "tabs": { - "manifest": "功能描述清單 (Manifest)", - "meta": "外掛後設資料" - }, - "update": "更新", - "updateSuccess": "外掛設定已成功更新", "modalDesc": "添加自訂插件後,可用於插件開發驗證,也可直接在會話中使用。插件開發請參考<1>開發文件↗", "openai": { "importUrl": "從 URL 連結匯入", "schema": "Schema" }, + "preview": { + "card": "外掛顯示預覽", + "desc": "外掛描述預覽", + "title": "外掛名稱預覽" + }, "save": "安裝插件", - "type": { - "lobe": "LobeChat 插件", - "openai": "OpenAI 插件" + "saveSuccess": "外掛設定已成功儲存", + "tabs": { + "manifest": "功能描述清單 (Manifest)", + "meta": "外掛後設資料" }, "title": { "create": "新增自訂插件", "edit": "編輯自訂插件" - } + }, + "type": { + "lobe": "LobeChat 插件", + "openai": "OpenAI 插件" + }, + "update": "更新", + "updateSuccess": "外掛設定已成功更新" }, "error": { - "installError": "插件 {{name}} 安裝失敗", - "noManifest": "描述檔不存在", "fetchError": "請求該 manifest 連結失敗,請確保連結的有效性,並檢查連結是否允許跨域訪問", + "installError": "插件 {{name}} 安裝失敗", "manifestInvalid": "manifest 不符合規範,校驗結果: \n\n {{error}}", + "noManifest": "描述檔不存在", "openAPIInvalid": "OpenAPI 解析失敗,錯誤: \n\n {{error}}", "reinstallError": "插件 {{name}} 刷新失敗", "urlError": "該連結沒有返回 JSON 格式的內容, 請確保是有效的連結" }, "list": { "item": { + "deprecated.title": "已刪除", "local.config": "設定", - "local.title": "本機", - "deprecated.title": "已刪除" + "local.title": "本機" } }, "loading": { - "plugin": "外掛執行中...", - "content": "呼叫插件中..." + "content": "呼叫插件中...", + "plugin": "外掛執行中..." }, "pluginList": "外掛清單", "plugins": { - "realtimeWeather": "即時天氣", - "searchEngine": "搜尋引擎", - "undefined": "正在偵測外掛...", - "websiteCrawler": "網站爬蟲", "loading": "插件檢測中...", "unknown": "未知插件" }, - "realtimeWeather": { - "data": { - "date": "日期", - "daytemp_float": "日間溫度", - "dayweather": "日間天氣", - "daywind": "日間風向", - "nighttemp_float": "夜間溫度", - "nightweather": "夜間天氣", - "nightwind": "夜間風向", - "week": "週" - }, - "title": "未來 7 天的天氣資料 ({{city}})", - "updateAt": "最後更新時間" - }, - "responseData": "回應資料", "setting": "插件設置", "settings": { "indexUrl": { @@ -160,18 +142,6 @@ "title": "設定外掛市集" }, "store": { - "empty": "暫無已安裝插件", - "install": "安裝", - "installAllPlugins": "安裝全部", - "networkError": "獲取插件商店失敗,請檢查網路連線後重試", - "releasedAt": "發佈於 {{createdAt}}", - "tabs": { - "all": "全部", - "installed": "已安裝" - }, - "title": "插件商店", - "uninstall": "解除安裝", - "placeholder": "搜尋插件名稱介紹或關鍵字...", "actions": { "confirmUninstall": "即將卸載該插件,卸載後將清除該插件配置,請確認你的操作", "detail": "詳情", @@ -180,6 +150,17 @@ "settings": "設定", "uninstall": "卸載" }, - "customPlugin": "自訂插件" + "communityPlugin": "社群外掛", + "customPlugin": "自訂插件", + "empty": "暫無已安裝插件", + "installAllPlugins": "安裝全部", + "networkError": "獲取插件商店失敗,請檢查網路連線後重試", + "placeholder": "搜尋插件名稱介紹或關鍵字...", + "releasedAt": "發佈於 {{createdAt}}", + "tabs": { + "all": "全部", + "installed": "已安裝" + }, + "title": "插件商店" } } diff --git a/locales/zh_TW/setting.json b/locales/zh_TW/setting.json index 42861836d5..c3233fa17c 100644 --- a/locales/zh_TW/setting.json +++ b/locales/zh_TW/setting.json @@ -85,7 +85,7 @@ "waitingForMore": "更多模型正在 <1>計劃接入 中,敬請期待 ✨" }, "plugin": { - "addTooltip": "新增自訂外掛", + "addTooltip": "新增自訂外掛程式", "clearDeprecated": "清除已棄用的外掛", "empty": "目前沒有安裝任何外掛,歡迎前往 <1>外掛商店 探索", "installStatus": { diff --git a/package.json b/package.json index d8af673354..89da885b7b 100644 --- a/package.json +++ b/package.json @@ -159,6 +159,7 @@ "glob": "^10", "husky": "^8", "jsdom": "^23.0.0", + "just-diff": "^6", "lint-staged": "^15", "lodash": "^4", "markdown-table": "^3", diff --git a/scripts/i18nWorkflow/genDiff.ts b/scripts/i18nWorkflow/genDiff.ts index 3afe473f30..c2727b0f64 100644 --- a/scripts/i18nWorkflow/genDiff.ts +++ b/scripts/i18nWorkflow/genDiff.ts @@ -1,5 +1,6 @@ import { consola } from 'consola'; import { colors } from 'consola/utils'; +import { diff } from 'just-diff'; import { unset } from 'lodash'; import { existsSync } from 'node:fs'; @@ -9,7 +10,7 @@ import { localesResourcesFilepath, outputLocaleJsonFilepath, } from './const'; -import { diff, readJSON, tagWhite, tagYellow, writeJSON } from './utils'; +import { readJSON, tagWhite, writeJSON } from './utils'; export const genDiff = () => { consola.start(`Diff between Dev/Prod local...`); @@ -22,15 +23,13 @@ export const genDiff = () => { if (!existsSync(filepath)) continue; const prodJSON = readJSON(filepath); - const diffKeys = diff(devJSON, prodJSON); - - if (diffKeys.length === 0) { + const diffResult = diff(prodJSON, devJSON as any); + const remove = diffResult.filter((item) => item.op === 'remove'); + if (remove.length === 0) { consola.success(tagWhite(ns), colors.gray(filepath)); continue; } - consola.warn(tagYellow(ns), diffKeys); - const clearLocals = []; for (const locale of [i18nConfig.entryLocale, ...i18nConfig.outputLocales]) { @@ -38,8 +37,8 @@ export const genDiff = () => { if (!existsSync(localeFilepath)) continue; const localeJSON = readJSON(localeFilepath); - for (const key of diffKeys) { - unset(localeJSON, key); + for (const item of remove) { + unset(localeJSON, item.path); } writeJSON(localeFilepath, localeJSON); diff --git a/scripts/i18nWorkflow/utils.ts b/scripts/i18nWorkflow/utils.ts index 763c35de77..4f3c17a88b 100644 --- a/scripts/i18nWorkflow/utils.ts +++ b/scripts/i18nWorkflow/utils.ts @@ -1,7 +1,6 @@ import { consola } from 'consola'; import { colors } from 'consola/utils'; import { tocForResources } from 'i18next-resources-for-ts'; -import { isObject } from 'lodash'; import { readFileSync, writeFileSync } from 'node:fs'; import { resolve } from 'node:path'; @@ -58,19 +57,6 @@ export const genToc = (files: string[], locale: string) => { return toc; }; -export const diff = (obj1: any, obj2: any, prefix: string = ''): string[] => { - let result: string[] = []; - for (const key in obj1) { - if (!obj2[key]) continue; - if (isObject(obj1[key]) && isObject(obj2[key])) { - result = [...result, ...diff(obj1[key], obj2[key], `${prefix}${key}.`)]; - } else if (obj1[key] !== obj2[key]) { - result.push(`${prefix}${key}`); - } - } - return result; -}; - export const tagBlue = (text: string) => colors.bgBlueBright(colors.black(` ${text} `)); export const tagYellow = (text: string) => colors.bgYellowBright(colors.black(` ${text} `)); export const tagGreen = (text: string) => colors.bgGreenBright(colors.black(` ${text} `)); diff --git a/src/app/chat/features/Migration/ExportConfigButton.tsx b/src/app/chat/features/Migration/ExportConfigButton.tsx index f9fb977915..5f72709eec 100644 --- a/src/app/chat/features/Migration/ExportConfigButton.tsx +++ b/src/app/chat/features/Migration/ExportConfigButton.tsx @@ -2,7 +2,7 @@ import { Button } from 'antd'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -const ExportConfigButton = memo<{ primary?: boolean, state: any; }>(({ state, primary }) => { +const ExportConfigButton = memo<{ primary?: boolean; state: any }>(({ state, primary }) => { const { t } = useTranslation('migration'); const exportData = () => { diff --git a/src/features/AgentSetting/store/initialState.ts b/src/features/AgentSetting/store/initialState.ts index 3e9eee74a6..3458284a76 100644 --- a/src/features/AgentSetting/store/initialState.ts +++ b/src/features/AgentSetting/store/initialState.ts @@ -1,7 +1,7 @@ import { DEFAULT_AGENT_META } from '@/const/meta'; import { DEFAULT_AGENT_CONFIG } from '@/const/settings'; -import { MetaData } from '@/types/meta'; import { LobeAgentConfig } from '@/types/agent'; +import { MetaData } from '@/types/meta'; export interface State { autocompleteLoading: SessionLoadingState; diff --git a/src/locales/default/chat.ts b/src/locales/default/chat.ts index 8ddb8da04a..e58bd89a38 100644 --- a/src/locales/default/chat.ts +++ b/src/locales/default/chat.ts @@ -2,7 +2,7 @@ export default { agentDefaultMessage: '你好,我是 **{{name}}**,你可以立即与我开始对话,也可以前往 [助手设置](/chat/settings#session={{id}}) 完善我的信息。', agentDefaultMessageWithSystemRole: '你好,我是 **{{name}}**,{{systemRole}},让我们开始对话吧!', - backToBottom: '查看最新消息', + backToBottom: '跳转至当前', clearCurrentMessages: '清空当前会话消息', confirmClearCurrentMessages: '即将清空当前会话消息,清空后将无法找回,请确认你的操作', confirmRemoveSessionItemAlert: '即将删除该助手,删除后该将无法找回,请确认你的操作', diff --git a/src/store/session/selectors.ts b/src/store/session/selectors.ts index 6d8542f867..ba10b2cfd3 100644 --- a/src/store/session/selectors.ts +++ b/src/store/session/selectors.ts @@ -1,2 +1,2 @@ export { agentSelectors } from './slices/agent/selectors'; -export { sessionExportSelectors,sessionSelectors } from './slices/session/selectors'; +export { sessionExportSelectors, sessionSelectors } from './slices/session/selectors'; diff --git a/src/types/openai/chat.ts b/src/types/openai/chat.ts index 334e2c8fb6..1adb168e3f 100644 --- a/src/types/openai/chat.ts +++ b/src/types/openai/chat.ts @@ -1,4 +1,3 @@ - import { LLMRoleType } from '@/types/llm'; import { OpenAIFunctionCall } from './functionCall'; diff --git a/src/types/translate.ts b/src/types/translate.ts index 67566ddd01..a11aa3f08e 100644 --- a/src/types/translate.ts +++ b/src/types/translate.ts @@ -2,4 +2,3 @@ export interface Translate { from?: string; to: string; } -