From e6c5fceb856bdf1159fea2136c567e92f5cc952d Mon Sep 17 00:00:00 2001 From: canisminor1990 Date: Wed, 13 Dec 2023 17:39:49 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(locale):=20Add=20fr-FR=20(#637?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .i18nrc.js | 14 +- locales/en_US/chat.json | 63 ++++--- locales/en_US/common.json | 40 ++--- locales/en_US/plugin.json | 100 +++++------ locales/en_US/setting.json | 234 ++++++++++++------------- locales/fr_FR/chat.json | 77 +++++++++ locales/fr_FR/common.json | 89 ++++++++++ locales/fr_FR/empty.json | 6 + locales/fr_FR/error.json | 51 ++++++ locales/fr_FR/market.json | 30 ++++ locales/fr_FR/migration.json | 45 +++++ locales/fr_FR/plugin.json | 128 ++++++++++++++ locales/fr_FR/setting.json | 301 +++++++++++++++++++++++++++++++++ locales/fr_FR/welcome.json | 14 ++ locales/ja_JP/chat.json | 65 ++++--- locales/ja_JP/common.json | 44 ++--- locales/ja_JP/plugin.json | 66 ++++---- locales/ja_JP/setting.json | 193 ++++++++++----------- locales/ko_KR/chat.json | 53 +++--- locales/ko_KR/common.json | 50 +++--- locales/ko_KR/plugin.json | 74 ++++---- locales/ko_KR/setting.json | 197 ++++++++++----------- locales/ru_RU/chat.json | 57 +++---- locales/ru_RU/common.json | 73 ++++---- locales/ru_RU/plugin.json | 152 ++++++++--------- locales/ru_RU/setting.json | 252 +++++++++++++-------------- locales/zh_CN/common.json | 1 + locales/zh_CN/plugin.json | 22 +-- locales/zh_TW/chat.json | 47 +++-- locales/zh_TW/common.json | 48 +++--- locales/zh_TW/plugin.json | 146 +++++++--------- locales/zh_TW/setting.json | 228 +++++++++++-------------- package.json | 17 +- src/locales/default/common.ts | 1 + src/locales/options.ts | 4 + src/locales/resources/fr_FR.ts | 23 +++ src/locales/resources/index.ts | 2 + 37 files changed, 1827 insertions(+), 1180 deletions(-) create mode 100644 locales/fr_FR/chat.json create mode 100644 locales/fr_FR/common.json create mode 100644 locales/fr_FR/empty.json create mode 100644 locales/fr_FR/error.json create mode 100644 locales/fr_FR/market.json create mode 100644 locales/fr_FR/migration.json create mode 100644 locales/fr_FR/plugin.json create mode 100644 locales/fr_FR/setting.json create mode 100644 locales/fr_FR/welcome.json create mode 100644 src/locales/resources/fr_FR.ts diff --git a/.i18nrc.js b/.i18nrc.js index 9fb8984c03df..ce2d335f987a 100644 --- a/.i18nrc.js +++ b/.i18nrc.js @@ -6,7 +6,19 @@ module.exports = defineConfig({ entry: 'locales/zh_CN', entryLocale: 'zh_CN', output: 'locales', - outputLocales: ['zh_TW', 'en_US', 'ru_RU', 'ja_JP', 'ko_KR'], + outputLocales: ['zh_TW', 'en_US', 'ru_RU', 'ja_JP', 'ko_KR', 'fr_FR'], temperature: 0, modelName: 'gpt-3.5-turbo-1106', + splitToken: 1024, + experimental: { + jsonMode: true, + }, + markdown: { + entry: ['./README.md'], + outputLocales: ['zh_CN'], + outputExtensions: (locale) => { + if (locale === 'en_US') return '.md'; + return `.${locale.replace('_', '-')}.md`; + }, + }, }); diff --git a/locales/en_US/chat.json b/locales/en_US/chat.json index cf14c7947ea3..856a809fccba 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 [Agent Settings](/chat/settings#session={{id}}) to improve my information.", - "agentDefaultMessageWithSystemRole": "Hello, I'm **{{name}}**, {{systemRole}}. Let's start the conversation!", - "backToBottom": "Go to Latest Messages", - "clearCurrentMessages": "Clear Current Session Messages", - "confirmClearCurrentMessages": "You are about to clear the current session messages. Once cleared, they cannot be recovered. Please confirm your operation.", - "confirmRemoveSessionItemAlert": "You are about to delete this agent. Once deleted, it cannot be recovered. Please confirm your operation.", - "defaultAgent": "Custom Agent", - "defaultSession": "Custom Agent", + "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.", + "agentDefaultMessageWithSystemRole": "Hello, I'm **{{name}}**, {{systemRole}}. Let's start chatting!", + "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", "historyRange": "History Range", "inbox": { - "defaultMessage": "Hello, I'm your intelligent agent. You can ask me any questions, and I will do my best to answer you. If you need a more professional or customized agent, you can click on `+` to create a custom agent.", - "desc": "Activate brain clusters and spark thinking. Your intelligent agent is here to communicate with you about everything.", - "title": "Chat Randomly" + "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.", + "title": "Just Chat" }, - "newAgent": "Create New Agent", + "newAgent": "New Assistant", "noDescription": "No description available", "pin": "Pin", "pinOff": "Unpin", "regenerate": "Regenerate", - "roleAndArchive": "Roles and Archives", - "searchAgentPlaceholder": "Search agents and conversations...", + "roleAndArchive": "Role and Archive", + "searchAgentPlaceholder": "Search assistants and conversations...", "send": "Send", - "sendPlaceholder": "Enter chat content...", - "sessionList": "Agent List", + "sendPlaceholder": "Type your message here...", + "sessionList": "Assistant List", "shareModal": { "download": "Download Screenshot", "imageType": "Image Format", @@ -32,13 +32,13 @@ "withBackground": "Include Background Image", "withFooter": "Include Footer", "withPluginInfo": "Include Plugin Information", - "withSystemRole": "Include Agent Role Setting" + "withSystemRole": "Include Assistant Role Setting" }, "stop": "Stop", "stt": { "action": "Voice Input", "loading": "Recognizing...", - "prettifying": "Prettifying..." + "prettifying": "Polishing..." }, "temp": "Temporary", "tokenDetail": "Role Setting: {{systemRoleToken}} · Chat History: {{chatsToken}}", @@ -48,33 +48,30 @@ "used": "Used" }, "topic": { + "confirmRemoveAll": "You are about to delete all topics. Once deleted, they cannot be recovered. Please proceed with caution.", "confirmRemoveTopic": "You are about to delete this topic. Once deleted, it cannot be recovered. Please proceed with caution.", + "confirmRemoveUnstarred": "You are about to delete unstarred topics. Once deleted, they cannot be recovered. Please proceed with caution.", "defaultTitle": "Default Topic", - "saveCurrentMessages": "Save Current Session as Topic", - "searchPlaceholder": "Search topics...", - "deleteAll": "Delete All Topics", - "deleteUnstarred": "Delete Unstarred Topics", - "title": "Topic List", - "confirmRemoveAll": "All topics will be deleted and cannot be recovered. Please proceed with caution.", - "confirmRemoveUnstarred": "All unstarred topics will be deleted and cannot be recovered. Please proceed with caution.", + "openNewTopic": "Open New Topic", "removeAll": "Remove All Topics", "removeUnstarred": "Remove Unstarred Topics", - "openNewTopic": "Open a new topic" + "saveCurrentMessages": "Save current session as topic", + "searchPlaceholder": "Search topics...", + "title": "Topic List" }, "translate": { - "clear": "Clear Translation", - "action": "Translate" + "action": "Translate", + "clear": "Clear Translation" }, - "translateTo": "Translate", "tts": { - "action": "Text to Speech", + "action": "Text-to-Speech", "clear": "Clear Speech" }, - "updateAgent": "Update Agent Information", + "updateAgent": "Update Assistant Information", "upload": { "actionTooltip": "Upload Image", - "dragDesc": "Drag and drop files here, supports uploading multiple images. Hold Shift to send images directly", + "dragDesc": "Drag and drop files here, support uploading multiple images. Hold down Shift to send images directly.", "dragTitle": "Upload Image" }, - "warp": "Line Break" + "warp": "换行" } diff --git a/locales/en_US/common.json b/locales/en_US/common.json index 67a553f03aa7..f3f4803463e2 100644 --- a/locales/en_US/common.json +++ b/locales/en_US/common.json @@ -7,24 +7,24 @@ "appInitializing": "LobeChat is initializing, please wait...", "archive": "Archive", "autoGenerate": "Auto Generate", - "autoGenerateTooltip": "Auto generate agent description based on prompts", + "autoGenerateTooltip": "Auto-generate assistant description based on prompts", "cancel": "Cancel", "changelog": "Changelog", "close": "Close", - "confirmRemoveSessionItemAlert": "You are about to delete this agent. Once deleted, it cannot be recovered. Please confirm your action.", + "confirmRemoveSessionItemAlert": "You are about to delete this assistant. Once deleted, it cannot be recovered. Please confirm your action.", "copy": "Copy", - "copySuccess": "Copy Successful", - "defaultAgent": "Custom Agent", - "defaultSession": "Custom Agent", + "copySuccess": "Copied successfully", + "defaultAgent": "Default Assistant", + "defaultSession": "Default Assistant", "delete": "Delete", "edit": "Edit", "export": "Export Configuration", "exportType": { - "agent": "Export Agent Settings", - "agentWithMessage": "Export Agent and Messages", - "all": "Export Global Settings and All Agent Data", - "allAgent": "Export All Agent Settings", - "allAgentWithMessage": "Export All Agents and Messages", + "agent": "Export Assistant Settings", + "agentWithMessage": "Export Assistant and Messages", + "all": "Export Global Settings and All Assistant Data", + "allAgent": "Export All Assistant Settings", + "allAgentWithMessage": "Export All Assistants and Messages", "globalSetting": "Export Global Settings" }, "feedback": "Feedback", @@ -34,18 +34,18 @@ "finish": { "onlySettings": "System settings imported successfully", "start": "Start using", - "subTitle": "Data imported successfully, took {{duration}} seconds. Details of the import are as follows:", + "subTitle": "Data imported successfully, took {{duration}} seconds. Import details are as follows:", "title": "Data import completed" }, - "loading": "Importing data, please wait patiently...", + "loading": "Data importing, please wait...", "result": { "added": "Imported successfully", "errors": "Import errors", "messages": "Messages", "sessions": "Assistants", - "skips": "Skipped duplicates", + "skips": "Duplicates skipped", "topics": "Topics", - "type": "Data type" + "type": "Data Type" }, "title": "Import Data" }, @@ -57,10 +57,11 @@ "ru-RU": "Russian", "zh": "Simplified Chinese", "zh-CN": "Simplified Chinese", - "zh-TW": "Traditional Chinese" + "zh-TW": "Traditional Chinese", + "fr-FR": "French" }, - "layoutInitializing": "Loading layout...", - "noDescription": "No description", + "layoutInitializing": "Initializing layout...", + "noDescription": "No description available", "ok": "OK", "password": "Password", "pin": "Pin", @@ -70,7 +71,6 @@ "reset": "Reset", "retry": "Retry", "send": "Send", - "sessionList": "Agent List", "setting": "Settings", "share": "Share", "stop": "Stop", @@ -80,10 +80,10 @@ "setting": "Settings" }, "temp": "Temporary", - "updateAgent": "Update Agent Profile", + "updateAgent": "Update Agent Information", "upgradeVersion": { "action": "Upgrade Now", - "hasNew": "Update available", + "hasNew": "New update available", "newVersion": "New version available: {{version}}" } } diff --git a/locales/en_US/plugin.json b/locales/en_US/plugin.json index c5ba073600d2..c2173743e224 100644 --- a/locales/en_US/plugin.json +++ b/locales/en_US/plugin.json @@ -2,81 +2,77 @@ "debug": { "arguments": "Arguments", "function_call": "Function Call", - "response": "Response", - "off": "Turn off debug", - "on": "View plugin invocation information" + "off": "Turn Off Debug", + "on": "View Plugin Call Information", + "response": "Response" }, "dev": { "confirmDeleteDevPlugin": "Are you sure you want to delete this local plugin? Once deleted, it cannot be recovered.", "deleteSuccess": "Plugin deleted successfully", "manifest": { "identifier": { - "desc": "The unique identifier of the plugin", + "desc": "Unique identifier for the plugin", "label": "Identifier" }, "mode": { - "local": "Visual Configuration", - "local-tooltip": "Visual configuration is not supported at the moment", + "local": "Local Configuration", + "local-tooltip": "Local configuration is temporarily not supported", "url": "Online Link" }, "name": { - "desc": "The title of the plugin", + "desc": "Plugin title", "label": "Title", "placeholder": "Search Engine" } }, "meta": { "author": { - "desc": "The author of the plugin", + "desc": "Author of the plugin", "label": "Author" }, "avatar": { - "desc": "The icon of the plugin, can be an Emoji or a URL", + "desc": "Plugin icon, can use Emoji or URL", "label": "Icon" }, "description": { - "desc": "The description of the plugin", + "desc": "Plugin description", "label": "Description", - "placeholder": "Get information from search engines" + "placeholder": "Query search engine for information" }, "formFieldRequired": "This field is required", "homepage": { - "desc": "The homepage of the plugin", + "desc": "Plugin homepage", "label": "Homepage" }, "identifier": { - "desc": "The unique identifier of the plugin, only supports alphanumeric characters, hyphen -, and underscore _", - "errorDuplicate": "The identifier is already used by another plugin, please modify the identifier", + "desc": "Unique identifier for the plugin, will be automatically recognized from the manifest", + "errorDuplicate": "Identifier is already used by another plugin, please modify the identifier", "label": "Identifier", - "pattenErrorMessage": "Only alphanumeric characters, hyphen -, and underscore _ are allowed" + "pattenErrorMessage": "Only English characters, numbers, - and _ are allowed" }, "manifest": { - "desc": "LobeChat will install the plugin using this link", - "invalid": "The input manifest link is invalid or does not comply with the specification", - "label": "Plugin Manifest URL", - "urlError": "Please enter a valid URL", - "jsonInvalid": "The manifest is not valid, validation result: \n\n {{error}}", + "desc": "LobeChat will install the plugin through this link", + "label": "Plugin Description File (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" + "refresh": "Refresh" }, "title": { - "desc": "The title of the plugin", + "desc": "Plugin title", "label": "Title", "placeholder": "Search Engine" } }, "metaConfig": "Plugin metadata configuration", - "modalDesc": "After adding a custom plugin, it can be used for plugin development verification or directly in conversations. Please refer to the plugin development documentation for more information.", + "modalDesc": "After adding a custom plugin, it can be used for plugin development validation or directly in the session. For plugin development, please refer to the <1>development documentation↗.", "preview": { - "card": "Preview of plugin display", - "desc": "Preview of plugin description", + "card": "Preview Plugin Display", + "desc": "Preview Plugin Description", "title": "Plugin Name Preview" }, - "save": "Save", + "save": "Install Plugin", "saveSuccess": "Plugin settings saved successfully", "tabs": { - "manifest": "Function Description Manifest (Manifest)", + "manifest": "Manifest Description", "meta": "Plugin Metadata" }, "title": "Add Custom Plugin", @@ -84,59 +80,43 @@ "updateSuccess": "Plugin settings updated successfully" }, "error": { - "fetchError": "Request failed", - "installError": "Plugin {{name}} installation failed", - "manifestInvalid": "Invalid manifest file format", - "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": "Failed to install plugin {{name}}", + "manifestInvalid": "The manifest does not comply with the specification. Validation result: \n\n {{error}}", + "noManifest": "Manifest file does not exist", + "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": "Deprecated", "local.config": "Configuration", - "local.title": "Local", - "deprecated.title": "Deleted" + "local.title": "Custom" } }, "loading": { - "plugin": "Plugin is running...", - "content": "Calling plugin..." + "content": "Calling plugin...", + "plugin": "Plugin running..." }, "pluginList": "Plugin List", "plugins": { - "realtimeWeather": "Realtime Weather", - "searchEngine": "Search Engine", - "undefined": "Plugin Detection...", - "websiteCrawler": "Website Crawler", - "unknown": "Plugin detection in progress..." + "loading": "Checking 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": { "title": "Marketplace Index", - "tooltip": "Editing is not supported at the moment" + "tooltip": "Online editing is not supported for now. Please set it through environment variables during deployment." }, - "modalDesc": "After configuring the address of the plugin marketplace, you can use a custom plugin marketplace", - "title": "Configure Plugin Marketplace" + "modalDesc": "After configuring the address of the plugin marketplace, you can use a custom plugin marketplace.", + "title": "Set 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", + "networkError": "Failed to fetch the plugin store. Please check your network connection and try again.", "releasedAt": "Released at {{createdAt}}", "tabs": { "all": "All", diff --git a/locales/en_US/setting.json b/locales/en_US/setting.json index 75e5c572b7d8..c6b865daac83 100644 --- a/locales/en_US/setting.json +++ b/locales/en_US/setting.json @@ -2,14 +2,14 @@ "danger": { "clear": { "action": "Clear Now", - "confirm": "Confirm clearing all chat data?", + "confirm": "Confirm to clear all chat data?", + "desc": "This will clear all session data, including assistant, files, messages, plugins, etc.", "success": "All session messages have been cleared", - "title": "Clear All Session Messages", - "desc": "Will clear all session data, including assistant, files, messages, plugins, etc." + "title": "Clear All Session Messages" }, "reset": { "action": "Reset Now", - "confirm": "Confirm resetting all settings?", + "confirm": "Confirm to reset all settings?", "currentVersion": "Current Version", "desc": "Reset all settings to default values", "title": "Reset All Settings" @@ -23,76 +23,76 @@ "llm": { "AzureOpenAI": { "endpoint": { - "desc": "This value can be found in the Keys and Endpoints section when checking out a resource on an Azure site.", + "desc": "This value can be found in the 'Keys and Endpoints' section when checking the resource on the Azure portal", "placeholder": "https://docs-test-001.openai.azure.com", - "title": "Azure API URL" + "title": "Azure API Address" }, "models": { "desc": "Supported models", - "title": "List of models" + "title": "Model List" }, "title": "Azure OpenAI Settings", "token": { - "desc": "This value can be found in the Keys and Endpoints section when checking out a resource on an Azure site. You can use KEY1 or KEY2", + "desc": "This value can be found in the 'Keys and Endpoints' section when checking the resource on the Azure portal. You can use KEY1 or KEY2", "placeholder": "Azure API Key", "title": "API Key" } }, "OpenAI": { "azureApiVersion": { - "desc": "Azure API version in YYYY-MM-DD format, check [latest version](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)", - "fetch": "Get list", - "title": "Azure API version" + "desc": "The API version for Azure, following the format YYYY-MM-DD, check the [latest version](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)", + "fetch": "Fetch List", + "title": "Azure API Version" }, "check": { "button": "Check", - "desc": "Check that the Api Key and proxy server address are filled in correctly.", - "pass": "Connection successful", - "title": "Checking connectivity" + "desc": "Test if the Api Key and proxy address are filled in correctly", + "pass": "Check Passed", + "title": "Connectivity Check" + }, + "customModelName": { + "desc": "Add custom models, separate multiple models with commas (,)", + "placeholder": "model1,model2,model3", + "title": "Custom Model Name" }, "endpoint": { - "desc": "Must contain http(s):// in addition to the default address.", + "desc": "Must include http(s):// besides the default address", "placeholder": "https://api.openai.com/v1", - "title": "API proxy address" + "title": "API Proxy Address" }, "models": { - "count": "Total supported models: {{count}}", + "count": "Supports a total of {{count}} models", "desc": "Supported models", - "fetch": "Fetching the list of models", - "notSupport": "Azure OpenAI currently does not support viewing lists of models", - "notSupportTip": "Make sure that the deployment name matches the model name", - "refetch": "Fetching the list of models", - "title": "List of models" + "fetch": "Fetch Model List", + "notSupport": "Azure OpenAI does not currently support viewing the model list", + "notSupportTip": "You need to ensure that the deployment name matches the model name", + "refetch": "Refetch Model List", + "title": "Model List" }, "title": "OpenAI Settings", "token": { - "desc": "Use your own OpenAI key", + "desc": "Use your own OpenAI Key", "placeholder": "OpenAI API Key", "title": "API Key" }, "useAzure": { - "desc": "Using OpenAI services from Azure", - "fetch": "Get list", - "title": "Azure OpenAI", - "serverConfig": "The administrator has enabled Azure OpenAI on the server side, switching is prohibited" - }, - "customModelName": { - "desc": "Add custom models, separate multiple models with commas (,)", - "placeholder": "model1,model2,model3", - "title": "Custom Model Name" + "desc": "Use OpenAI services provided by Azure", + "fetch": "Fetch List", + "serverConfig": "The administrator has enabled Azure OpenAI on the server side, and switching is prohibited", + "title": "Azure OpenAI" } }, - "waitingForMore": "<1>Access to other models is planned, so stay tuned ✨" + "waitingForMore": "More models are <1>planned to be added, stay tuned ✨" }, "plugin": { "addTooltip": "Add Custom Plugin", "clearDeprecated": "Remove Deprecated Plugins", - "empty": "No installed plugins yet, feel free to visit the <1>Plugin Store to explore", + "empty": "No installed plugins yet, feel free to explore the <1>Plugin Store", "installStatus": { "deprecated": "Uninstalled" }, "settings": { - "hint": "Please fill in the following configuration based on the description", + "hint": "Please fill in the following configurations based on the description", "title": "{{id}} Plugin Configuration", "tooltip": "Plugin Configuration" }, @@ -106,77 +106,77 @@ "title": "Background Color" }, "description": { - "placeholder": "Please enter agent description", - "title": "Agent Description" + "placeholder": "Enter assistant description", + "title": "Assistant Description" }, "name": { - "placeholder": "Please enter agent name", + "placeholder": "Enter assistant name", "title": "Name" }, "prompt": { - "placeholder": "Please enter role prompt", - "title": "Role Prompt" + "placeholder": "Enter role prompt word", + "title": "Role Setting" }, "tag": { - "placeholder": "Please enter tag", + "placeholder": "Enter tag", "title": "Tag" }, - "title": "Agent Information" + "title": "Assistant Information" }, "settingChat": { + "autoCreateTopicThreshold": { + "desc": "Automatically create a topic when the current message count exceeds this value", + "title": "Message Threshold" + }, "chatStyleType": { "title": "Chat Window Style", "type": { - "chat": "Chat Mode", + "chat": "Conversation Mode", "docs": "Document Mode" } }, "compressThreshold": { - "desc": "When the uncompressed history messages exceed this value, compression will be performed", + "desc": "When the uncompressed history messages exceed this value, compression will be applied", "title": "History Message Length Compression Threshold" }, + "enableAutoCreateTopic": { + "desc": "Whether to automatically create a topic during the conversation, only effective in temporary topics", + "title": "Auto Create Topic" + }, "enableCompressThreshold": { "title": "Enable History Message Length Compression Threshold" }, "enableHistoryCount": { "alias": "Unlimited", - "limited": "Only include {{number}} session messages", + "limited": "Include only {{number}} conversation messages", "title": "Limit History Message Count", - "unlimited": "Unlimited History Message Count" + "unlimited": "Unlimited history message count" }, "historyCount": { - "desc": "Number of history messages carried in each request", + "desc": "Number of historical messages carried with each request", "title": "Attached History Message Count" }, "inputTemplate": { - "desc": "The latest user message will be filled into this template", - "placeholder": "{{text}} will be replaced with real-time input information", + "desc": "The user's latest message will be filled into this template", + "placeholder": "Preprocessing template {{text}} will be replaced with real-time input information", "title": "User Input Preprocessing" }, - "title": "Chat Settings", - "autoCreateTopicThreshold": { - "title": "Message Threshold", - "desc": "Automatically create a topic when the current message count exceeds this value" - }, - "enableAutoCreateTopic": { - "title": "Enable Auto Topic Creation", - "desc": "Whether to automatically create a topic during the conversation, only effective in temporary topics" - } + "title": "Chat Settings" }, "settingModel": { "enableMaxTokens": { - "title": "Enable Single Reply Limit" + "title": "Enable Max Tokens Limit" }, "frequencyPenalty": { - "desc": "The larger the value, the more likely it is to reduce repeated words", + "desc": "The higher the value, the more likely it is to reduce repeated words", "title": "Frequency Penalty" }, "maxTokens": { - "desc": "Maximum number of tokens used in a single interaction", - "title": "Single Reply Limit" + "desc": "The maximum number of tokens used for each interaction", + "title": "Max Tokens Limit" }, "model": { - "desc": "ChatGPT Model", + "desc": "ChatGPT model", "list": { "gpt-3.5-turbo": "GPT 3.5", "gpt-3.5-turbo-16k": "GPT 3.5 (16K)", @@ -186,85 +186,63 @@ "title": "Model" }, "presencePenalty": { - "desc": "The larger the value, the more likely it is to expand to new topics", + "desc": "The higher the value, the more likely it is to expand to new topics", "title": "Topic Freshness" }, "temperature": { - "desc": "The larger the value, the more random the reply", + "desc": "The higher the value, the more random the response", "title": "Randomness", "titleWithValue": "Randomness {{value}}" }, "title": "Model Settings", "topP": { "desc": "Similar to randomness, but do not change together with randomness", - "title": "Nucleus Sampling" - } - }, - "settingOpenAI": { - "endpoint": { - "desc": "Must include http(s)://, in addition to the default address", - "placeholder": "https://api.openai.com/v1", - "title": "API Proxy Address" - }, - "title": "OpenAI Settings", - "token": { - "desc": "Use your own OpenAI Key", - "placeholder": "OpenAI API Key", - "title": "API Key" + "title": "Top P Sampling" } }, "settingPlugin": { - "title": "Plugin List", - "add": "Add", - "addTooltip": "Add custom plugin", - "config": "{{id}} Plugin Configuration", - "clearDeprecated": "Remove Deprecated Plugins", - "settings": "Plugin Marketplace Settings" + "title": "Plugin List" }, "settingSystem": { "accessCode": { - "desc": "Encryption access has been enabled by the administrator", - "placeholder": "Please enter access password", + "desc": "Encryption access is enabled by the administrator", + "placeholder": "Enter access password", "title": "Access Password" }, "title": "System Settings" }, "settingTTS": { - "showAllLocaleVoice": { - "desc": "If disabled, only voices for the current language will be displayed", - "title": "Show all locale voices" - }, - "sttService": { - "desc": "The 'browser' option refers to the native speech recognition service in the browser", - "title": "Speech-to-Text Service" - }, - "title": "Speech Services", - "ttsService": { - "desc": "If using the OpenAI text-to-speech service, ensure that the OpenAI model service is enabled", - "title": "Text-to-Speech Service" - }, - "voice": { - "title": "Text-to-Speech Voices", - "desc": "Select a voice for the current agent, different TTS services support different voices", - "preview": "Preview Voice" - }, "openai": { - "sttModel": "OpenAI Speech Recognition Model", + "sttModel": "OpenAI Speech-to-Text Model", "ttsModel": "OpenAI Text-to-Speech Model" }, + "showAllLocaleVoice": { + "desc": "If closed, only voices in the current language will be displayed", + "title": "Show All Locale Voices" + }, "stt": "Speech Recognition Settings", + "sttAutoStop": { + "desc": "When closed, speech recognition will not end automatically and requires manual click to stop", + "title": "Auto Stop Speech Recognition" + }, "sttLocale": { "desc": "The language of the speech input, this option can improve the accuracy of speech recognition", "title": "Speech Recognition Language" }, - "sttPersisted": { - "desc": "When enabled, speech recognition will not automatically end and requires manual click on the end button", - "title": "Manually End Speech Recognition" + "sttService": { + "desc": "Where 'browser' is the native speech recognition service of the browser", + "title": "Speech Recognition Service" }, + "title": "Speech Service", "tts": "Text-to-Speech Settings", - "sttAutoStop": { - "desc": "When disabled, speech recognition will not automatically stop and will require manual intervention to end the process.", - "title": "Automatic Speech Recognition Termination" + "ttsService": { + "desc": "If using OpenAI text-to-speech service, make sure the OpenAI model service is enabled", + "title": "Text-to-Speech Service" + }, + "voice": { + "desc": "Select a voice for the current assistant, different TTS services support different voices", + "preview": "Voice Preview", + "title": "Text-to-Speech Voice" } }, "settingTheme": { @@ -272,20 +250,20 @@ "title": "Avatar" }, "fontSize": { - "desc": "Font size of chat content", + "desc": "Font size for chat content", "title": "Font Size" }, "lang": { - "title": "Language Settings", - "autoMode": "Follow System" + "autoMode": "Follow System", + "title": "Language" }, "neutralColor": { - "desc": "Custom grayscale for different color tendencies", + "desc": "Custom neutral color for different color tendencies", "title": "Neutral Color" }, "primaryColor": { - "desc": "Custom theme color", - "title": "Theme Color" + "desc": "Custom primary theme color", + "title": "Primary Color" }, "themeMode": { "auto": "Auto", @@ -296,28 +274,28 @@ "title": "Theme Settings" }, "submitAgentModal": { - "tooltips": "Share to Agent Market", "button": "Submit Agent", - "identifier": "Identifier", - "metaMiss": "Please complete the agent information before submitting. It should include name, description, and tags.", - "placeholder": "Please enter a unique identifier for the agent, such as web-development." + "identifier": "Agent Identifier", + "metaMiss": "Please complete the agent information before submitting. It should include name, description, and tags", + "placeholder": "Enter a unique identifier for the agent, e.g. web-development", + "tooltips": "Share to the agent marketplace" }, "tab": { "agent": "Default Agent", "common": "Common Settings", - "llm": "Custom LLM API", - "tts": "Speech Services" + "llm": "Language Model", + "tts": "Text-to-Speech" }, "tools": { "builtins": { - "groupName": "Built-in" + "groupName": "Built-ins" }, "plugins": { - "enabled": "Enabled {{num}}", + "enabled": "Enabled: {{num}}", "groupName": "Plugins", - "noEnabled": "No enabled plugins yet", + "noEnabled": "No plugins enabled", "store": "Plugin Store" }, - "title": "Extensions" + "title": "Extension Tools" } } diff --git a/locales/fr_FR/chat.json b/locales/fr_FR/chat.json new file mode 100644 index 000000000000..21cc824b0521 --- /dev/null +++ b/locales/fr_FR/chat.json @@ -0,0 +1,77 @@ +{ + "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.", + "agentDefaultMessageWithSystemRole": "Bonjour, je suis **{{name}}**, {{systemRole}}. Commençons la conversation !", + "backToBottom": "Retourner 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", + "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.", + "title": "Discutons un peu" + }, + "newAgent": "Nouvel assistant", + "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...", + "send": "Envoyer", + "sendPlaceholder": "Saisissez votre message...", + "sessionList": "Liste des assistants", + "shareModal": { + "download": "Télécharger la capture d'écran", + "imageType": "Type d'image", + "screenshot": "Capture d'écran", + "settings": "Paramètres d'exportation", + "shareToShareGPT": "Générer un lien de partage ShareGPT", + "withBackground": "Avec image de fond", + "withFooter": "Avec pied de page", + "withPluginInfo": "Avec informations sur le plugin", + "withSystemRole": "Avec rôle de l'assistant" + }, + "stop": "Arrêter", + "stt": { + "action": "Entrée vocale", + "loading": "En cours de reconnaissance...", + "prettifying": "En cours d'embellissement..." + }, + "temp": "Temporaire", + "tokenDetail": "Rôle : {{systemRoleToken}} · Messages archivés : {{chatsToken}}", + "tokenTag": { + "overload": "Dépassement de limite", + "remained": "Restant", + "used": "Utilisé" + }, + "topic": { + "confirmRemoveAll": "Vous êtes sur le point de supprimer tous les sujets. Cette action est irréversible. Veuillez confirmer.", + "confirmRemoveTopic": "Vous êtes sur le point de supprimer ce sujet. Cette action est irréversible. Veuillez confirmer.", + "confirmRemoveUnstarred": "Vous êtes sur le point de supprimer les sujets non favoris. Cette action est irréversible. Veuillez confirmer.", + "defaultTitle": "Sujet par défaut", + "openNewTopic": "Ouvrir un nouveau sujet", + "removeAll": "Supprimer tous les sujets", + "removeUnstarred": "Supprimer les sujets non favoris", + "saveCurrentMessages": "Enregistrer la conversation actuelle en tant que sujet", + "searchPlaceholder": "Rechercher un sujet...", + "title": "Liste des sujets" + }, + "translate": { + "action": "Traduire", + "clear": "Effacer la traduction" + }, + "tts": { + "action": "Lecture vocale", + "clear": "Effacer la voix" + }, + "updateAgent": "Mettre à jour les informations de l'assistant", + "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.", + "dragTitle": "Télécharger une image" + }, + "warp": "saut de ligne" +} diff --git a/locales/fr_FR/common.json b/locales/fr_FR/common.json new file mode 100644 index 000000000000..3de1c898dbd6 --- /dev/null +++ b/locales/fr_FR/common.json @@ -0,0 +1,89 @@ +{ + "about": "À propos", + "advanceSettings": "Paramètres avancés", + "agentMaxToken": "Longueur maximale de la session", + "agentModel": "Modèle", + "agentProfile": "Profil de l'assistant", + "appInitializing": "LobeChat est en cours de démarrage, veuillez patienter...", + "archive": "Archiver", + "autoGenerate": "Générer automatiquement", + "autoGenerateTooltip": "Générer automatiquement la description de l'assistant basée sur les suggestions", + "cancel": "Annuler", + "changelog": "Journal des modifications", + "close": "Fermer", + "confirmRemoveSessionItemAlert": "Vous êtes sur le point de supprimer cet assistant. Une fois supprimé, il ne pourra pas être récupéré. Veuillez confirmer votre action.", + "copy": "Copier", + "copySuccess": "Copie réussie", + "defaultAgent": "Assistant par défaut", + "defaultSession": "Session par défaut", + "delete": "Supprimer", + "edit": "Modifier", + "export": "Exporter", + "exportType": { + "agent": "Exporter les paramètres de l'assistant", + "agentWithMessage": "Exporter l'assistant et les messages", + "all": "Exporter les paramètres globaux et toutes les données des assistants", + "allAgent": "Exporter tous les paramètres de l'assistant", + "allAgentWithMessage": "Exporter tous les assistants et les messages", + "globalSetting": "Exporter les paramètres globaux" + }, + "feedback": "Retour d'information et suggestions", + "historyRange": "Plage d'historique", + "import": "Importer", + "importModal": { + "finish": { + "onlySettings": "Importation des paramètres système réussie", + "start": "Commencer à utiliser", + "subTitle": "Importation des données réussie, durée : {{duration}} secondes. Détails de l'importation :", + "title": "Importation des données terminée" + }, + "loading": "Importation des données en cours, veuillez patienter...", + "result": { + "added": "Importation réussie", + "errors": "Erreurs d'importation", + "messages": "Messages", + "sessions": "Assistants", + "skips": "Éléments ignorés en double", + "topics": "Sujets", + "type": "Type de données" + }, + "title": "Importer des données" + }, + "lang": { + "en": "Anglais", + "en-US": "Anglais", + "ja-JP": "Japonais", + "ko-KR": "Coréen", + "ru-RU": "Russe", + "zh": "Chinois", + "zh-CN": "Chinois simplifié", + "zh-TW": "Chinois traditionnel", + "fr-FR": "français" + }, + "layoutInitializing": "Initialisation de la mise en page en cours...", + "noDescription": "Aucune description disponible", + "ok": "OK", + "password": "Mot de passe", + "pin": "Épingler", + "pinOff": "Désactiver l'épinglage", + "regenerate": "Régénérer", + "rename": "Renommer", + "reset": "Réinitialiser", + "retry": "Réessayer", + "send": "Envoyer", + "setting": "Paramètre", + "share": "Partager", + "stop": "Arrêter", + "tab": { + "chat": "Conversation", + "market": "Découvrir", + "setting": "Paramètre" + }, + "temp": "Temporaire", + "updateAgent": "Mettre à jour les informations de l'assistant", + "upgradeVersion": { + "action": "Mettre à jour maintenant", + "hasNew": "Nouvelle mise à jour disponible", + "newVersion": "Nouvelle version disponible : {{version}}" + } +} diff --git a/locales/fr_FR/empty.json b/locales/fr_FR/empty.json new file mode 100644 index 000000000000..50717ec6df4c --- /dev/null +++ b/locales/fr_FR/empty.json @@ -0,0 +1,6 @@ +{ + "topic": { + "desc": "Cliquez sur le bouton à gauche pour enregistrer la conversation actuelle comme un sujet précédent et commencer une nouvelle session", + "title": "Liste des sujets" + } +} diff --git a/locales/fr_FR/error.json b/locales/fr_FR/error.json new file mode 100644 index 000000000000..d76fba01d36b --- /dev/null +++ b/locales/fr_FR/error.json @@ -0,0 +1,51 @@ +{ + "pluginSettings": { + "desc": "Completez la configuration suivante pour commencer à utiliser ce plugin", + "title": "Configuration du plugin {{name}}" + }, + "response": { + "400": "Désolé, le serveur ne comprend pas votre requête. Veuillez vérifier la validité de vos paramètres de requête", + "401": "Désolé, le serveur a refusé votre requête, probablement en raison d'autorisations insuffisantes ou d'une authentification invalide", + "403": "Désolé, le serveur a refusé votre requête. Vous n'avez pas l'autorisation d'accéder à ce contenu", + "404": "Désolé, le serveur n'a pas pu trouver la page ou la ressource demandée. Veuillez vérifier l'URL", + "405": "Désolé, le serveur ne prend pas en charge la méthode de requête que vous utilisez. Veuillez vérifier votre méthode de requête", + "429": "Désolé, votre requête est trop fréquente et le serveur est un peu fatigué. Veuillez réessayer plus tard", + "500": "Désolé, le serveur semble rencontrer des difficultés et ne peut temporairement pas traiter votre requête. Veuillez réessayer plus tard", + "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", + "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" + }, + "stt": { + "responseError": "Échec de la requête de service. Veuillez vérifier la configuration ou réessayer" + }, + "tts": { + "responseError": "Échec de la requête de service. Veuillez vérifier la configuration ou réessayer" + }, + "unlock": { + "apikey": { + "addProxyUrl": "Ajouter l'URL du proxy OpenAI (optionnel)", + "description": "Entrez votre clé API OpenAI pour commencer la session. L'application ne stockera pas votre clé API.", + "title": "Utiliser une clé API personnalisée" + }, + "closeMessage": "Fermer le message", + "confirm": "Confirmer et réessayer", + "password": { + "description": "L'administrateur a activé le cryptage de l'application. Entrez le mot de passe de l'application pour déverrouiller. Le mot de passe ne doit être saisi qu'une seule fois.", + "placeholder": "Entrez le mot de passe", + "title": "Entrez le mot de passe pour déverrouiller l'application" + } + } +} diff --git a/locales/fr_FR/market.json b/locales/fr_FR/market.json new file mode 100644 index 000000000000..10b4a7a5846c --- /dev/null +++ b/locales/fr_FR/market.json @@ -0,0 +1,30 @@ +{ + "addAgent": "Ajouter un assistant", + "guide": { + "func1": { + "desc1": "Accédez à la page de configuration de l'assistant que vous souhaitez soumettre en cliquant sur l'icône Paramètres en haut à droite de la fenêtre de conversation.", + "desc2": "Cliquez sur le bouton Soumettre au marché des assistants en haut à droite.", + "tag": "Méthode 1", + "title": "Soumettre via LobeChat" + }, + "func2": { + "button": "Accéder au référentiel d'assistants sur Github", + "desc": "Si vous souhaitez ajouter un assistant à l'index, créez une entrée dans le répertoire plugins en utilisant agent-template.json ou agent-template-full.json, rédigez une brève description et ajoutez des balises appropriées, puis créez une demande de tirage.", + "tag": "Méthode 2", + "title": "Soumettre via Github" + } + }, + "search": { + "placeholder": "Rechercher par nom, description ou mot-clé de l'assistant..." + }, + "sidebar": { + "comment": "Commentaires", + "prompt": "Consigne", + "title": "Détails de l'assistant" + }, + "submitAgent": "Soumettre un assistant", + "title": { + "allAgents": "Tous les assistants", + "recentSubmits": "Soumissions récentes" + } +} diff --git a/locales/fr_FR/migration.json b/locales/fr_FR/migration.json new file mode 100644 index 000000000000..5ac38c831e8b --- /dev/null +++ b/locales/fr_FR/migration.json @@ -0,0 +1,45 @@ +{ + "dbV1": { + "action": { + "clearDB": "Effacer la base de données locale", + "downloadBackup": "Télécharger la sauvegarde des données", + "reUpgrade": "Refaire la mise à niveau", + "start": "Commencer", + "upgrade": "Mise à niveau" + }, + "clear": { + "confirm": "Vous êtes sur le point de vider les données locales (les paramètres globaux ne seront pas affectés). Veuillez confirmer que vous avez sauvegardé les données." + }, + "description": "Dans la nouvelle version, le stockage des données de LobeChat a fait un énorme bond en avant. Par conséquent, nous devons mettre à niveau les anciennes données pour vous offrir une meilleure expérience d'utilisation.", + "features": { + "capability": { + "desc": "Basé sur la technologie IndexedDB, il peut contenir tous vos messages de conversation pour la vie.", + "title": "Grande capacité" + }, + "performance": { + "desc": "Indexation automatique de millions de messages, réponse aux requêtes en quelques millisecondes.", + "title": "Haute performance" + }, + "use": { + "desc": "Prise en charge de la recherche de titres, de descriptions, d'étiquettes, de contenu de messages et même de textes traduits, améliorant considérablement l'efficacité de la recherche quotidienne.", + "title": "Plus facile à utiliser" + } + }, + "title": "Évolution des données de LobeChat", + "upgrade": { + "error": { + "subTitle": "Désolé, un problème est survenu lors du processus de mise à niveau de la base de données. Veuillez essayer les solutions suivantes : A. Vider les données locales, puis réimporter les données de sauvegarde ; B. Cliquez sur le bouton \"Refaire la mise à niveau\".

Si le problème persiste, veuillez <1> soumettre un problème, nous vous aiderons à le résoudre dès que possible.", + "title": "Échec de la mise à niveau de la base de données" + }, + "success": { + "subTitle": "La base de données de LobeChat a été mise à niveau vers la dernière version. Commencez à explorer dès maintenant !", + "title": "Mise à niveau de la base de données réussie" + } + }, + "upgradeTip": "La mise à niveau prend environ 10 à 20 secondes. Veuillez ne pas fermer LobeChat pendant la mise à niveau." + }, + "migrateError": { + "missVersion": "Les données importées ne comportent pas de numéro de version. Veuillez vérifier le fichier et réessayer.", + "noMigration": "Aucune solution de migration correspondant à la version actuelle n'a été trouvée. Veuillez vérifier le numéro de version et réessayer. Si le problème persiste, veuillez soumettre un rapport de problème." + } +} diff --git a/locales/fr_FR/plugin.json b/locales/fr_FR/plugin.json new file mode 100644 index 000000000000..e6f628bdeb47 --- /dev/null +++ b/locales/fr_FR/plugin.json @@ -0,0 +1,128 @@ +{ + "debug": { + "arguments": "Arguments de l'appel", + "function_call": "Appel de fonction", + "off": "Désactivé", + "on": "Activer le débogage", + "response": "Réponse" + }, + "dev": { + "confirmDeleteDevPlugin": "Êtes-vous sûr de vouloir supprimer ce plugin local ? Cette action est irréversible.", + "deleteSuccess": "Suppression du plugin réussie", + "manifest": { + "identifier": { + "desc": "Identifiant unique du plugin", + "label": "Identifiant" + }, + "mode": { + "local": "Configuration visuelle", + "local-tooltip": "Configuration visuelle non prise en charge pour le moment", + "url": "Lien en ligne" + }, + "name": { + "desc": "Titre du plugin", + "label": "Titre", + "placeholder": "Moteur de recherche" + } + }, + "meta": { + "author": { + "desc": "Auteur du plugin", + "label": "Auteur" + }, + "avatar": { + "desc": "Icône du plugin, peut être un Emoji ou une URL", + "label": "Icône" + }, + "description": { + "desc": "Description du plugin", + "label": "Description", + "placeholder": "Rechercher un moteur de recherche pour obtenir des informations" + }, + "formFieldRequired": "Ce champ est requis", + "homepage": { + "desc": "Page d'accueil du plugin", + "label": "Page d'accueil" + }, + "identifier": { + "desc": "Identifiant unique du plugin, sera automatiquement reconnu à partir du manifest", + "errorDuplicate": "L'identifiant du plugin existe déjà, veuillez le modifier", + "label": "Identifiant", + "pattenErrorMessage": "Seuls les caractères alphanumériques, - et _ sont autorisés" + }, + "manifest": { + "desc": "Lien d'installation du plugin pour LobeChat", + "label": "URL du fichier de description du plugin (Manifest)", + "preview": "Aperçu du Manifest", + "refresh": "Actualiser" + }, + "title": { + "desc": "Titre du plugin", + "label": "Titre", + "placeholder": "Moteur de recherche" + } + }, + "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.", + "preview": { + "card": "Aperçu de l'interface du plugin", + "desc": "Aperçu de la description du plugin", + "title": "Aperçu du nom du plugin" + }, + "save": "Installer le plugin", + "saveSuccess": "Paramètres du plugin enregistrés avec succès", + "tabs": { + "manifest": "Manifeste des fonctionnalités", + "meta": "Métadonnées du plugin" + }, + "title": "Ajouter 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é", + "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." + }, + "list": { + "item": { + "deprecated.title": "Obsolète", + "local.config": "Configuration", + "local.title": "Personnalisé" + } + }, + "loading": { + "content": "Appel du plugin en cours...", + "plugin": "Exécution du plugin en cours..." + }, + "pluginList": "Liste des plugins", + "plugins": { + "loading": "Vérification des plugins en cours...", + "unknown": "Plugin inconnu" + }, + "setting": "Paramètres des plugins", + "settings": { + "indexUrl": { + "title": "Index du marché", + "tooltip": "L'édition en ligne n'est pas encore prise en charge. Veuillez configurer via les variables d'environnement lors du déploiement." + }, + "modalDesc": "Une fois l'adresse du marché des plugins configurée, vous pourrez utiliser un marché de plugins personnalisé.", + "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" + } +} diff --git a/locales/fr_FR/setting.json b/locales/fr_FR/setting.json new file mode 100644 index 000000000000..ec37561b9941 --- /dev/null +++ b/locales/fr_FR/setting.json @@ -0,0 +1,301 @@ +{ + "danger": { + "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.", + "success": "Tous les messages de session ont été effacés", + "title": "Effacer tous les messages de session" + }, + "reset": { + "action": "Réinitialiser immédiatement", + "confirm": "Confirmer la réinitialisation de tous les paramètres ?", + "currentVersion": "Version actuelle", + "desc": "Réinitialiser tous les paramètres aux valeurs par défaut", + "title": "Réinitialiser tous les paramètres" + } + }, + "header": { + "global": "Paramètres globaux", + "session": "Paramètres de session", + "sessionWithName": "Paramètres de session · {{name}}" + }, + "llm": { + "AzureOpenAI": { + "endpoint": { + "desc": "Lors de la vérification des ressources dans le portail Azure, vous pouvez trouver cette valeur dans la section \"Clés et points de terminaison\"", + "placeholder": "https://docs-test-001.openai.azure.com", + "title": "Adresse de l'API Azure" + }, + "models": { + "desc": "Modèles pris en charge", + "title": "Liste des modèles" + }, + "title": "Paramètres Azure OpenAI", + "token": { + "desc": "Lors de la vérification des ressources dans le portail Azure, vous pouvez trouver cette valeur dans la section \"Clés et points de terminaison\". Vous pouvez utiliser KEY1 ou KEY2", + "placeholder": "Clé API Azure", + "title": "Clé API" + } + }, + "OpenAI": { + "azureApiVersion": { + "desc": "Version de l'API Azure, au format YYYY-MM-DD, consultez la [dernière version](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)", + "fetch": "Obtenir la liste", + "title": "Version de l'API Azure" + }, + "check": { + "button": "Vérifier", + "desc": "Vérifiez si la clé API et l'adresse du proxy sont correctement renseignées", + "pass": "Vérification réussie", + "title": "Vérification de la connectivité" + }, + "customModelName": { + "desc": "Ajoutez des modèles personnalisés, séparés par des virgules (,)", + "placeholder": "modèle1,modèle2,modèle3", + "title": "Nom du modèle personnalisé" + }, + "endpoint": { + "desc": "En dehors de l'adresse par défaut, doit inclure http(s)://", + "placeholder": "https://api.openai.com/v1", + "title": "Adresse du proxy de l'interface" + }, + "models": { + "count": "Au total, {{count}} modèles sont pris en charge", + "desc": "Modèles pris en charge", + "fetch": "Obtenir la liste des modèles", + "notSupport": "Azure OpenAI ne prend pas en charge la visualisation de la liste des modèles pour le moment", + "notSupportTip": "Vous devez vous assurer que le nom du déploiement correspond au nom du modèle", + "refetch": "Obtenir à nouveau la liste des modèles", + "title": "Liste des modèles" + }, + "title": "Paramètres OpenAI", + "token": { + "desc": "Utilisez votre propre clé OpenAI", + "placeholder": "Clé API OpenAI", + "title": "Clé API" + }, + "useAzure": { + "desc": "Utilisez le service OpenAI fourni par Azure", + "fetch": "Obtenir la liste", + "serverConfig": "L'administrateur a activé Azure OpenAI côté serveur, le changement est interdit", + "title": "Azure OpenAI" + } + }, + "waitingForMore": "Plus de modèles sont en cours de <1>planification pour être ajoutés, restez à l'écoute ✨" + }, + "plugin": { + "addTooltip": "Ajouter un plugin personnalisé", + "clearDeprecated": "Effacer les plugins obsolètes", + "empty": "Aucun plugin installé pour le moment, veuillez visiter <1>la boutique de plugins pour explorer", + "installStatus": { + "deprecated": "Désinstallé" + }, + "settings": { + "hint": "Veuillez remplir les configurations suivantes en fonction de la description", + "title": "Configuration du plugin {{id}}", + "tooltip": "Configuration du plugin" + }, + "store": "Boutique de plugins" + }, + "settingAgent": { + "avatar": { + "title": "Avatar" + }, + "backgroundColor": { + "title": "Couleur de fond" + }, + "description": { + "placeholder": "Veuillez saisir la description de l'assistant", + "title": "Description de l'assistant" + }, + "name": { + "placeholder": "Veuillez saisir le nom de l'assistant", + "title": "Nom" + }, + "prompt": { + "placeholder": "Veuillez saisir le mot de prompt du rôle", + "title": "Paramètre du rôle" + }, + "tag": { + "placeholder": "Veuillez saisir l'étiquette", + "title": "Étiquette" + }, + "title": "Informations sur l'assistant" + }, + "settingChat": { + "autoCreateTopicThreshold": { + "desc": "Une fois que le nombre de messages atteint cette valeur, un sujet sera automatiquement créé", + "title": "Seuil de création automatique de sujet" + }, + "chatStyleType": { + "title": "Style de la fenêtre de chat", + "type": { + "chat": "Mode conversation", + "docs": "Mode document" + } + }, + "compressThreshold": { + "desc": "Lorsque la longueur des messages non compressés dépasse cette valeur, une compression sera effectuée", + "title": "Seuil de compression de la longueur des messages" + }, + "enableAutoCreateTopic": { + "desc": "Activer la création automatique de sujets pendant la conversation, uniquement valable pour les sujets temporaires", + "title": "Activer la création automatique de sujets" + }, + "enableCompressThreshold": { + "title": "Activer le seuil de compression de la longueur des messages" + }, + "enableHistoryCount": { + "alias": "Illimité", + "limited": "Inclure uniquement {{number}} messages de conversation", + "title": "Limite du nombre de messages historiques", + "unlimited": "Aucune limite sur le nombre de messages historiques" + }, + "historyCount": { + "desc": "Nombre de messages historiques à inclure dans chaque requête", + "title": "Nombre de messages historiques inclus" + }, + "inputTemplate": { + "desc": "Le dernier message de l'utilisateur sera rempli dans ce modèle", + "placeholder": "Le modèle de prétraitement {{text}} sera remplacé par les informations d'entrée en temps réel", + "title": "Modèle de prétraitement de l'entrée utilisateur" + }, + "title": "Paramètres de chat" + }, + "settingModel": { + "enableMaxTokens": { + "title": "Activer la limite de tokens par réponse" + }, + "frequencyPenalty": { + "desc": "Plus la valeur est élevée, plus il est probable de réduire les mots répétés", + "title": "Pénalité de fréquence" + }, + "maxTokens": { + "desc": "Nombre maximal de tokens utilisés par interaction", + "title": "Limite de tokens par réponse" + }, + "model": { + "desc": "Modèle ChatGPT", + "list": { + "gpt-3.5-turbo": "GPT 3.5", + "gpt-3.5-turbo-16k": "GPT 3.5 (16K)", + "gpt-4": "GPT 4", + "gpt-4-32k": "GPT 4 (32K)" + }, + "title": "Modèle" + }, + "presencePenalty": { + "desc": "Plus la valeur est élevée, plus il est probable d'explorer de nouveaux sujets", + "title": "Pénalité de présence" + }, + "temperature": { + "desc": "Plus la valeur est élevée, plus la réponse est aléatoire", + "title": "Aléatoire", + "titleWithValue": "Aléatoire {{value}}" + }, + "title": "Paramètres du modèle", + "topP": { + "desc": "Similaire à l'aléatoire, mais ne doit pas être modifié en même temps que l'aléatoire", + "title": "Échantillonnage topP" + } + }, + "settingPlugin": { + "title": "Liste des plugins" + }, + "settingSystem": { + "accessCode": { + "desc": "L'administrateur a activé l'accès chiffré", + "placeholder": "Veuillez entrer le mot de passe d'accès", + "title": "Mot de passe d'accès" + }, + "title": "Paramètres du système" + }, + "settingTTS": { + "openai": { + "sttModel": "Modèle de reconnaissance vocale OpenAI", + "ttsModel": "Modèle de synthèse vocale OpenAI" + }, + "showAllLocaleVoice": { + "desc": "Si désactivé, seules les voix de la langue actuelle seront affichées", + "title": "Afficher toutes les voix locales" + }, + "stt": "Paramètres de reconnaissance vocale", + "sttAutoStop": { + "desc": "Si désactivé, la reconnaissance vocale ne s'arrêtera pas automatiquement et devra être arrêtée manuellement en cliquant sur le bouton d'arrêt", + "title": "Arrêt automatique de la reconnaissance vocale" + }, + "sttLocale": { + "desc": "Langue de l'entrée vocale, cette option peut améliorer la précision de la reconnaissance vocale", + "title": "Langue de reconnaissance vocale" + }, + "sttService": { + "desc": "Le service de reconnaissance vocale, où 'browser' est le service natif de reconnaissance vocale du navigateur", + "title": "Service de reconnaissance vocale" + }, + "title": "Services vocaux", + "tts": "Paramètres de synthèse vocale", + "ttsService": { + "desc": "Si vous utilisez le service de synthèse vocale OpenAI, assurez-vous que le service de modèle OpenAI est activé", + "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", + "preview": "Prévisualisation de la voix", + "title": "Voix de synthèse vocale" + } + }, + "settingTheme": { + "avatar": { + "title": "Avatar" + }, + "fontSize": { + "desc": "Taille de la police du contenu du chat", + "title": "Taille de la police" + }, + "lang": { + "autoMode": "Suivre le système", + "title": "Langue" + }, + "neutralColor": { + "desc": "Personnalisation des nuances de gris pour différentes tendances de couleur", + "title": "Couleur neutre" + }, + "primaryColor": { + "desc": "Couleur de thème personnalisée", + "title": "Couleur principale" + }, + "themeMode": { + "auto": "Automatique", + "dark": "Sombre", + "light": "Clair", + "title": "Thème" + }, + "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" + }, + "tab": { + "agent": "Assistant par défaut", + "common": "Paramètres généraux", + "llm": "Modèle de langue", + "tts": "Service vocal" + }, + "tools": { + "builtins": { + "groupName": "Intégré" + }, + "plugins": { + "enabled": "Activé {{num}}", + "groupName": "Plugins", + "noEnabled": "Aucun plugin activé pour le moment", + "store": "Boutique de plugins" + }, + "title": "Outils supplémentaires" + } +} diff --git a/locales/fr_FR/welcome.json b/locales/fr_FR/welcome.json new file mode 100644 index 000000000000..4457bf00d7ac --- /dev/null +++ b/locales/fr_FR/welcome.json @@ -0,0 +1,14 @@ +{ + "button": { + "import": "Importer la configuration", + "start": "Démarrer maintenant" + }, + "header": "Bienvenue", + "pickAgent": "Ou choisissez parmi les modèles d'assistant 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~", + "title": "Offrez-vous un cerveau plus intelligent" + } +} diff --git a/locales/ja_JP/chat.json b/locales/ja_JP/chat.json index 9db940879dc8..6b403da3791a 100644 --- a/locales/ja_JP/chat.json +++ b/locales/ja_JP/chat.json @@ -1,46 +1,46 @@ { - "agentDefaultMessage": "こんにちは、私は **{{name}}** です。すぐに会話を始めることができますし、[エージェント設定](/chat/settings#session={{id}}) に移動して私の情報を充実させることもできます。", - "agentDefaultMessageWithSystemRole": "こんにちは、私は **{{name}}** です、{{systemRole}}、さあ、会話を始めましょう!", - "backToBottom": "最新のメッセージを表示", - "clearCurrentMessages": "現在の会話メッセージをクリア", - "confirmClearCurrentMessages": "現在の会話メッセージをクリアします。クリア後は元に戻すことはできませんので、操作を確認してください", - "confirmRemoveSessionItemAlert": "このエージェントを削除します。削除後は元に戻すことはできませんので、操作を確認してください", + "agentDefaultMessage": "こんにちは、私は **{{name}}** です。すぐにチャットを開始するか、[エージェント設定](/chat/settings#session={{id}}) に移動して私の情報を完全にすることができます。", + "agentDefaultMessageWithSystemRole": "こんにちは、私は **{{name}}** です、{{systemRole}}、さあ、チャットを始めましょう!", + "backToBottom": "最新メッセージを表示", + "clearCurrentMessages": "現在の会話をクリア", + "confirmClearCurrentMessages": "現在の会話をクリアします。クリアした後は元に戻すことはできません。操作を確認してください。", + "confirmRemoveSessionItemAlert": "このエージェントを削除します。削除した後は元に戻すことはできません。操作を確認してください。", "defaultAgent": "デフォルトエージェント", - "defaultSession": "デフォルトエージェント", + "defaultSession": "デフォルトセッション", "historyRange": "履歴範囲", "inbox": { - "defaultMessage": "こんにちは、私はあなたのインテリジェントアシスタントです。何でも質問してください、できる限りお答えします。より専門的またはカスタマイズされたアシスタントが必要な場合は、`+` をクリックしてカスタムエージェントを作成できます", - "desc": "ブレインクラスタを起動し、思考の火花を引き起こします。あなたのインテリジェントアシスタントは、ここであなたとすべてを話します", - "title": "ちょっとおしゃべりしましょう" + "defaultMessage": "こんにちは、私はあなたのスマートアシスタントです。何か質問があれば遠慮なく聞いてください。より専門的でカスタマイズされたアシスタントが必要な場合は、`+` をクリックしてカスタムエージェントを作成できます。", + "desc": "脳のクラスターを起動し、アイデアの火花を散らします。あなたのスマートアシスタントは、あなたとすべてのことについてここでコミュニケーションします。", + "title": "気軽におしゃべり" }, - "newAgent": "新しいエージェントを作成", - "noDescription": "説明はありません", + "newAgent": "新しいエージェント", + "noDescription": "説明なし", "pin": "ピン留め", "pinOff": "ピン留め解除", "regenerate": "再生成", "roleAndArchive": "役割とアーカイブ", - "searchAgentPlaceholder": "エージェントと会話を検索...", + "searchAgentPlaceholder": "エージェントや会話を検索...", "send": "送信", - "sendPlaceholder": "チャット内容を入力...", - "sessionList": "セッションリスト", + "sendPlaceholder": "チャット内容を入力してください...", + "sessionList": "エージェントリスト", "shareModal": { "download": "スクリーンショットをダウンロード", "imageType": "画像形式", "screenshot": "スクリーンショット", "settings": "エクスポート設定", - "shareToShareGPT": "ShareGPT共有リンクを生成", + "shareToShareGPT": "ShareGPT 共有リンクを生成", "withBackground": "背景画像を含む", "withFooter": "フッターを含む", "withPluginInfo": "プラグイン情報を含む", - "withSystemRole": "エージェントの役割設定を含む" + "withSystemRole": "エージェントの役割を含む" }, "stop": "停止", "stt": { "action": "音声入力", - "loading": "読み取り中...", - "prettifying": "美化中..." + "loading": "認識中...", + "prettifying": "整形中..." }, - "temp": "一時", + "temp": "一時的", "tokenDetail": "役割設定: {{systemRoleToken}} · チャット履歴: {{chatsToken}}", "tokenTag": { "overload": "制限を超えています", @@ -48,32 +48,29 @@ "used": "使用済み" }, "topic": { - "confirmRemoveTopic": "このトピックを削除します。削除後は元に戻すことはできませんので、注意して操作してください", + "confirmRemoveAll": "すべてのトピックを削除します。削除した後は元に戻すことはできません。注意して操作してください。", + "confirmRemoveTopic": "このトピックを削除します。削除した後は元に戻すことはできません。注意して操作してください。", + "confirmRemoveUnstarred": "スターをつけていないトピックを削除します。削除した後は元に戻すことはできません。注意して操作してください。", "defaultTitle": "デフォルトトピック", - "saveCurrentMessages": "現在の会話をトピックとして保存", - "searchPlaceholder": "トピックを検索...", - "deleteAll": "すべてのトピックを削除する", - "deleteUnstarred": "スターを付けていないトピックを削除する", - "title": "トピックリスト", - "confirmRemoveAll": "すべてのトピックを削除します。削除後は元に戻すことはできませんので、注意して操作してください。", - "confirmRemoveUnstarred": "スターをつけていないトピックを削除します。削除後は元に戻すことはできませんので、注意して操作してください。", + "openNewTopic": "新しいトピックを開く", "removeAll": "すべてのトピックを削除", "removeUnstarred": "スターをつけていないトピックを削除", - "openNewTopic": "新しいトピックを開く" + "saveCurrentMessages": "現在の会話をトピックとして保存", + "searchPlaceholder": "トピックを検索...", + "title": "トピックリスト" }, "translate": { - "clear": "翻訳をクリア", - "action": "翻訳" + "action": "翻訳", + "clear": "翻訳を削除" }, - "translateTo": "翻訳", "tts": { "action": "音声読み上げ", - "clear": "音声削除" + "clear": "音声を削除" }, "updateAgent": "エージェント情報を更新", "upload": { "actionTooltip": "画像をアップロード", - "dragDesc": "ファイルをここにドラッグして複数の画像をアップロードできます。Shift キーを押しながら画像を直接送信できます", + "dragDesc": "ファイルをここにドラッグしてください。複数の画像をアップロードできます。Shift キーを押しながら画像を直接送信することもできます。", "dragTitle": "画像をアップロード" }, "warp": "改行" diff --git a/locales/ja_JP/common.json b/locales/ja_JP/common.json index 90c09decae9d..32c8011b18f0 100644 --- a/locales/ja_JP/common.json +++ b/locales/ja_JP/common.json @@ -1,24 +1,24 @@ { "about": "について", - "advanceSettings": "詳細設定", - "agentMaxToken": "セッションの最大トークン数", + "advanceSettings": "高度な設定", + "agentMaxToken": "エージェントの最大トークン数", "agentModel": "モデル", - "agentProfile": "エージェント情報", - "appInitializing": "LobeChatを起動中です。お待ちください...", + "agentProfile": "エージェントプロフィール", + "appInitializing": "LobeChatを初期化中です。しばらくお待ちください...", "archive": "アーカイブ", "autoGenerate": "自動生成", - "autoGenerateTooltip": "ヒントワードに基づいてエージェントの説明を自動生成します", + "autoGenerateTooltip": "ヒントに基づいてエージェントの説明を自動生成します", "cancel": "キャンセル", - "changelog": "更新履歴", + "changelog": "変更履歴", "close": "閉じる", - "confirmRemoveSessionItemAlert": "このエージェントを削除します。削除後は元に戻すことはできません。操作を確認してください", + "confirmRemoveSessionItemAlert": "このエージェントを削除します。削除後は元に戻すことはできません。操作を確認してください。", "copy": "コピー", "copySuccess": "コピーが成功しました", "defaultAgent": "デフォルトエージェント", "defaultSession": "デフォルトセッション", "delete": "削除", "edit": "編集", - "export": "設定のエクスポート", + "export": "エクスポート", "exportType": { "agent": "エージェント設定のエクスポート", "agentWithMessage": "エージェントとメッセージのエクスポート", @@ -29,23 +29,23 @@ }, "feedback": "フィードバック", "historyRange": "履歴範囲", - "import": "設定のインポート", + "import": "インポート", "importModal": { "finish": { - "onlySettings": "システム設定のインポートに成功しました", + "onlySettings": "システム設定のインポートが完了しました", "start": "開始", - "subTitle": "データのインポートに成功しました。所要時間は {{duration}} 秒です。以下はインポートの詳細です:", + "subTitle": "データのインポートが完了しました。所要時間:{{duration}}秒。詳細は以下の通りです:", "title": "データのインポートが完了しました" }, "loading": "データをインポート中です。しばらくお待ちください...", "result": { - "added": "インポートに成功", + "added": "インポートが成功しました", "errors": "インポートエラー", "messages": "メッセージ", - "sessions": "アシスタント", + "sessions": "セッション", "skips": "重複スキップ", "topics": "トピック", - "type": "データの種類" + "type": "データタイプ" }, "title": "データのインポート" }, @@ -55,22 +55,22 @@ "ja-JP": "日本語", "ko-KR": "韓国語", "ru-RU": "ロシア語", - "zh": "簡体中国語", - "zh-CN": "簡体中国語", - "zh-TW": "繁体中国語" + "zh": "簡体字中国語", + "zh-CN": "簡体字中国語", + "zh-TW": "繁体字中国語", + "fr-FR": "フランス語" }, - "layoutInitializing": "レイアウトを読み込んでいます...", + "layoutInitializing": "レイアウトを初期化中...", "noDescription": "説明はありません", "ok": "OK", "password": "パスワード", "pin": "ピン留め", "pinOff": "ピン留め解除", "regenerate": "再生成", - "rename": "名前の変更", + "rename": "名前を変更", "reset": "リセット", "retry": "再試行", "send": "送信", - "sessionList": "エージェントリスト", "setting": "設定", "share": "共有", "stop": "停止", @@ -79,8 +79,8 @@ "market": "発見", "setting": "設定" }, - "temp": "一時的な", - "updateAgent": "エージェント情報の更新", + "temp": "一時的", + "updateAgent": "エージェント情報を更新", "upgradeVersion": { "action": "今すぐアップグレード", "hasNew": "利用可能な更新があります", diff --git a/locales/ja_JP/plugin.json b/locales/ja_JP/plugin.json index 08dcef4d8c59..93231232b1df 100644 --- a/locales/ja_JP/plugin.json +++ b/locales/ja_JP/plugin.json @@ -1,13 +1,13 @@ { "debug": { - "arguments": "引数", - "function_call": "関数呼び出し", - "response": "レスポンス", - "off": "デバッグをオフにする", - "on": "プラグイン呼び出し情報を表示する" + "arguments": "调用参数", + "function_call": "函数调用", + "off": "オフ", + "on": "プラグイン呼び出し情報を表示", + "response": "戻り値" }, "dev": { - "confirmDeleteDevPlugin": "このローカルプラグインを削除しますか?削除後は元に戻せません。", + "confirmDeleteDevPlugin": "このローカルプラグインを削除します。削除後は元に戻せません。このプラグインを削除しますか?", "deleteSuccess": "プラグインが正常に削除されました", "manifest": { "identifier": { @@ -15,7 +15,7 @@ "label": "識別子" }, "mode": { - "local": "ビジュアル設定", + "local": "ローカル設定", "local-tooltip": "ビジュアル設定は一時的にサポートされていません", "url": "オンラインリンク" }, @@ -31,13 +31,13 @@ "label": "作者" }, "avatar": { - "desc": "プラグインのアイコン、絵文字やURLを使用できます", + "desc": "プラグインのアイコン。Emojiを使用するか、URLを使用できます", "label": "アイコン" }, "description": { "desc": "プラグインの説明", "label": "説明", - "placeholder": "検索エンジンで情報を取得します" + "placeholder": "検索エンジンで情報を取得" }, "formFieldRequired": "このフィールドは必須です", "homepage": { @@ -45,19 +45,16 @@ "label": "ホームページ" }, "identifier": { - "desc": "プラグインの一意の識別子、マニフェストから自動的に識別されます", + "desc": "プラグインの一意の識別子。既存のプラグインと重複しています。識別子を変更してください", "errorDuplicate": "識別子が既存のプラグインと重複しています。識別子を変更してください", "label": "識別子", - "pattenErrorMessage": "英数字、-、_ のみ入力できます" + "pattenErrorMessage": "英数字、-、_ のみが入力できます" }, "manifest": { "desc": "LobeChatはこのリンクを使用してプラグインをインストールします", - "jsonInvalid": "マニフェストが規格に準拠していません。検証結果:\n\n{{error}}", - "label": "プラグインのマニフェストURL", + "label": "プラグインの説明ファイル(マニフェスト)のURL", "preview": "マニフェストのプレビュー", - "refresh": "更新", - "requestError": "リンクのリクエストに失敗しました。有効なリンクを入力し、クロスオリジンリクエストが許可されているか確認してください", - "urlError": "このリンクはJSON形式のコンテンツを返していません。有効なリンクを入力してください" + "refresh": "更新" }, "title": { "desc": "プラグインのタイトル", @@ -65,28 +62,30 @@ "placeholder": "検索エンジン" } }, - "metaConfig": "プラグインのメタ情報の設定", - "modalDesc": "カスタムプラグインを追加すると、プラグインの開発検証やセッションで直接使用できます。プラグインの開発ドキュメントについては、参照してください", + "metaConfig": "プラグインメタ情報の設定", + "modalDesc": "カスタムプラグインを追加すると、プラグイン開発の検証に使用できます。また、セッション中に直接使用できます。プラグイン開発については、<1>開発ドキュメント↗を参照してください", "preview": { "card": "プラグインのプレビュー表示", "desc": "プラグインの説明のプレビュー", "title": "プラグイン名のプレビュー" }, - "save": "保存", + "save": "プラグインを保存", "saveSuccess": "プラグインの設定が正常に保存されました", "tabs": { - "manifest": "機能のマニフェスト", - "meta": "プラグインのメタ情報" + "manifest": "機能記述リスト(マニフェスト)", + "meta": "プラグインメタ情報" }, - "title": "カスタムプラグインの追加", + "title": "カスタムプラグインを追加", "update": "更新", "updateSuccess": "プラグインの設定が正常に更新されました" }, "error": { - "fetchError": "リクエストに失敗しました", + "fetchError": "このマニフェストリンクのリクエストに失敗しました。リンクが有効であることを確認し、クロスドメインアクセスが許可されているか確認してください", "installError": "プラグイン {{name}} のインストールに失敗しました", - "manifestInvalid": "マニフェストの形式が正しくありません", - "noManifest": "マニフェストが存在しません" + "manifestInvalid": "マニフェストが規格に準拠していません。検証結果:\n\n{{error}}", + "noManifest": "説明ファイルが存在しません", + "reinstallError": "プラグイン {{name}} の再インストールに失敗しました", + "urlError": "このリンクはJSON形式のコンテンツを返していません。有効なリンクであることを確認してください" }, "list": { "item": { @@ -96,27 +95,28 @@ } }, "loading": { - "plugin": "プラグインの実行中...", - "content": "プラグインを呼び出しています..." + "content": "プラグインを呼び出しています...", + "plugin": "プラグインを実行しています..." }, "pluginList": "プラグインリスト", "plugins": { - "unknown": "プラグインの検出中..." + "loading": "プラグインを読み込んでいます...", + "unknown": "未知のプラグイン" }, - "setting": "プラグインの設定", + "setting": "プラグイン設定", "settings": { "indexUrl": { - "title": "マーケットインデックス", - "tooltip": "オンライン編集は現在サポートされていません。デプロイ時の環境変数を使用して設定してください" + "title": "マーケットのインデックス", + "tooltip": "オンライン編集は現在利用できません。デプロイ時の環境変数を使用して設定してください" }, - "modalDesc": "プラグインマーケットのアドレスを設定すると、カスタムのプラグインマーケットを使用できます", + "modalDesc": "プラグインマーケットのアドレスを設定すると、カスタムプラグインマーケットを使用できます", "title": "プラグインマーケットの設定" }, "store": { "empty": "インストールされたプラグインはありません", "install": "インストール", "installAllPlugins": "すべてのプラグインをインストール", - "networkError": "プラグインストアの取得に失敗しました。ネットワーク接続を確認してから再試行してください", + "networkError": "プラグインストアの取得に失敗しました。ネットワーク接続を確認してからもう一度お試しください", "releasedAt": "{{createdAt}} にリリース", "tabs": { "all": "すべて", diff --git a/locales/ja_JP/setting.json b/locales/ja_JP/setting.json index 2aef28b90b8e..ffac820a4b7b 100644 --- a/locales/ja_JP/setting.json +++ b/locales/ja_JP/setting.json @@ -1,17 +1,17 @@ { "danger": { "clear": { - "action": "クリア", - "confirm": "すべてのチャットデータをクリアしますか?", - "success": "すべてのセッションメッセージがクリアされました", - "title": "すべてのセッションメッセージをクリア", - "desc": "すべてのセッションデータ(アシスタント、ファイル、メッセージ、プラグインなど)が削除されます" + "action": "すぐにクリア", + "confirm": "すべてのチャットデータを削除しますか?", + "desc": "アシスタント、ファイル、メッセージ、プラグインなど、すべてのセッションデータが削除されます", + "success": "すべてのセッションメッセージが削除されました", + "title": "すべてのセッションメッセージをクリア" }, "reset": { - "action": "リセット", + "action": "すぐにリセット", "confirm": "すべての設定をリセットしますか?", "currentVersion": "現在のバージョン", - "desc": "すべての設定項目をデフォルト値にリセットします", + "desc": "すべての設定をデフォルト値にリセットします", "title": "すべての設定をリセット" } }, @@ -23,66 +23,66 @@ "llm": { "AzureOpenAI": { "endpoint": { - "desc": "Azureポータルでリソースを確認すると、この値は「キーとエンドポイント」セクションで見つけることができます", + "desc": "Azure ポータルでリソースを確認すると、この値は「キーとエンドポイント」セクションで見つけることができます", "placeholder": "https://docs-test-001.openai.azure.com", - "title": "Azure APIアドレス" + "title": "Azure API アドレス" }, "models": { "desc": "サポートされているモデル", "title": "モデルリスト" }, - "title": "Azure OpenAI設定", + "title": "Azure OpenAI 設定", "token": { - "desc": "Azureポータルでリソースを確認すると、この値は「キーとエンドポイント」セクションで見つけることができます。KEY1またはKEY2を使用できます", - "placeholder": "Azure APIキー", - "title": "APIキー" + "desc": "Azure ポータルでリソースを確認すると、この値は「キーとエンドポイント」セクションで見つけることができます。KEY1 または KEY2 を使用できます", + "placeholder": "Azure API キー", + "title": "API キー" } }, "OpenAI": { "azureApiVersion": { - "desc": "AzureのAPIバージョンは、YYYY-MM-DD形式に従います。[最新バージョン](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)を参照してください", + "desc": "Azure の API バージョンは YYYY-MM-DD 形式に従い、[最新バージョン](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)を参照してください", "fetch": "リストを取得", - "title": "Azure APIバージョン" + "title": "Azure API バージョン" }, "check": { "button": "チェック", - "desc": "APIキーとプロキシアドレスが正しく入力されているかをテストします", - "pass": "チェックに合格しました", - "title": "接続性のチェック" + "desc": "API キーとプロキシアドレスが正しく入力されているかをテストします", + "pass": "チェックに合格", + "title": "接続性チェック" + }, + "customModelName": { + "desc": "カスタムモデルを追加し、複数のモデルはカンマ(,)で区切って使用します", + "placeholder": "model1,model2,model3", + "title": "カスタムモデル名" }, "endpoint": { - "desc": "デフォルトのアドレス以外に、http(s)://を含める必要があります", + "desc": "デフォルトのアドレス以外に、http(s):// を含める必要があります", "placeholder": "https://api.openai.com/v1", - "title": "エンドポイントプロキシアドレス" + "title": "インターフェースプロキシアドレス" }, "models": { - "count": "{{count}}モデルがサポートされています", + "count": "{{count}} 個のモデルをサポート", "desc": "サポートされているモデル", "fetch": "モデルリストを取得", - "notSupport": "Azure OpenAIではモデルリストの表示はサポートされていません", - "notSupportTip": "デプロイ名とモデル名が一致していることを確認する必要があります", + "notSupport": "Azure OpenAI はモデルリストの表示をサポートしていません", + "notSupportTip": "デプロイ名とモデル名が一致することを確認する必要があります", "refetch": "モデルリストを再取得", "title": "モデルリスト" }, - "title": "OpenAI設定", + "title": "OpenAI 設定", "token": { - "desc": "独自のOpenAIキーを使用します", - "placeholder": "OpenAI APIキー", - "title": "APIキー" + "desc": "独自の OpenAI キーを使用します", + "placeholder": "OpenAI API キー", + "title": "API キー" }, "useAzure": { - "desc": "Azureが提供するOpenAIサービスを使用します", + "desc": "Azure の提供する OpenAI サービスを使用します", "fetch": "リストを取得", - "serverConfig": "管理者がサーバー側でAzure OpenAIを設定しており、切り替えが禁止されています", - "title": "Azure OpenAI" - }, - "customModelName": { - "desc": "カスタムモデルを追加します。複数のモデルはカンマ(,)で区切ってください", - "placeholder": "model1,model2,model3", - "title": "カスタムモデル名" + "serverConfig": "管理者はサーバー側で Azure OpenAI を有効にし、切り替えを禁止しています", + "title": "Azure OpenAI を使用" } }, - "waitingForMore": "他のモデルは現在 <1>計画中 です。お楽しみに ✨" + "waitingForMore": "さらに多くのモデルが <1>計画されています。お楽しみに ✨" }, "plugin": { "addTooltip": "カスタムプラグインを追加", @@ -114,8 +114,8 @@ "title": "名前" }, "prompt": { - "placeholder": "キャラクタープロンプトを入力してください", - "title": "キャラクター設定" + "placeholder": "役割のプロンプトワードを入力してください", + "title": "役割の設定" }, "tag": { "placeholder": "タグを入力してください", @@ -124,59 +124,59 @@ "title": "アシスタント情報" }, "settingChat": { + "autoCreateTopicThreshold": { + "desc": "現在のメッセージ数がこの値を超えると、トピックが自動的に作成されます", + "title": "メッセージ閾値" + }, "chatStyleType": { "title": "チャットウィンドウのスタイル", "type": { - "chat": "対話モード", + "chat": "チャットモード", "docs": "ドキュメントモード" } }, "compressThreshold": { - "desc": "非圧縮の履歴メッセージがこの値を超えると、圧縮されます", - "title": "履歴メッセージの圧縮閾値" + "desc": "圧縮されていない過去のメッセージがこの値を超えると、圧縮されます", + "title": "過去メッセージの長さの圧縮閾値" + }, + "enableAutoCreateTopic": { + "desc": "会話中に自動的にトピックを作成するかどうか。一時的なトピックのみ有効です", + "title": "自動的にトピックを作成する" }, "enableCompressThreshold": { - "title": "履歴メッセージの圧縮閾値を有効にする" + "title": "過去メッセージの長さの圧縮閾値を有効にする" }, "enableHistoryCount": { "alias": "制限なし", "limited": "{{number}}件の会話メッセージのみ含む", - "title": "履歴メッセージ数の制限", - "unlimited": "履歴メッセージ数の制限なし" + "title": "過去メッセージ数を制限する", + "unlimited": "過去メッセージ数を制限しない" }, "historyCount": { - "desc": "リクエストごとに含まれる履歴メッセージ数", - "title": "履歴メッセージ数" + "desc": "リクエストごとに含まれる過去メッセージの数", + "title": "過去メッセージ数" }, "inputTemplate": { - "desc": "ユーザーの最新のメッセージがこのテンプレートに埋め込まれます", - "placeholder": "プリプロセステンプレート {{text}} はリアルタイムの入力情報に置き換えられます", + "desc": "ユーザーの最新メッセージがこのテンプレートに埋め込まれます", + "placeholder": "入力テンプレート {{text}} はリアルタイムの入力情報に置き換えられます", "title": "ユーザー入力のプリプロセス" }, - "title": "チャット設定", - "autoCreateTopicThreshold": { - "desc": "現在のメッセージ数がこの値を超えると、トピックが自動的に作成されます", - "title": "メッセージ閾値" - }, - "enableAutoCreateTopic": { - "desc": "会話中にトピックを自動的に作成するかどうか、一時的なトピックでのみ有効です", - "title": "トピックの自動作成" - } + "title": "チャット設定" }, "settingModel": { "enableMaxTokens": { "title": "単一応答制限を有効にする" }, "frequencyPenalty": { - "desc": "値が大きいほど、重複する単語が減少する可能性が高くなります", + "desc": "値が大きいほど、単語の繰り返しを減らす可能性が高くなります", "title": "頻度ペナルティ" }, "maxTokens": { - "desc": "単一の対話で使用される最大トークン数", + "desc": "1 回の対話で使用される最大トークン数", "title": "単一応答制限" }, "model": { - "desc": "ChatGPTモデル", + "desc": "ChatGPT モデル", "list": { "gpt-3.5-turbo": "GPT 3.5", "gpt-3.5-turbo-16k": "GPT 3.5 (16K)", @@ -186,7 +186,7 @@ "title": "モデル" }, "presencePenalty": { - "desc": "値が大きいほど、新しいトピックに展開する可能性が高くなります", + "desc": "値が大きいほど、新しいトピックに拡張する可能性が高くなります", "title": "トピックの新鮮さ" }, "temperature": { @@ -196,16 +196,11 @@ }, "title": "モデル設定", "topP": { - "desc": "ランダム性と同様ですが、ランダム性とは同時に変更しないでください", - "title": "トップPサンプリング" + "desc": "ランダム性と同様ですが、ランダム性と一緒に変更しないでください", + "title": "トップ P" } }, "settingPlugin": { - "add": "追加", - "addTooltip": "カスタムプラグインを追加", - "clearDeprecated": "無効なプラグインを削除", - "config": "{{id}}プラグインの設定", - "settings": "プラグインマーケットの設定", "title": "プラグインリスト" }, "settingSystem": { @@ -217,41 +212,37 @@ "title": "システム設定" }, "settingTTS": { - "showAllLocaleVoice": { - "desc": "关闭すると、現在の言語の音声のみが表示されます", - "title": "すべての言語の音声を表示" - }, - "sttService": { - "desc": "ブラウザはブラウザのネイティブ音声認識サービスです", - "title": "音声認識サービス" - }, - "title": "音声サービス", - "ttsService": { - "desc": "OpenAIの音声合成サービスを使用する場合、OpenAIモデルサービスが有効になっていることを確認する必要があります", - "title": "音声合成サービス" - }, - "voice": { - "title": "音声合成音声源", - "desc": "現在のアシスタントに適した音声を選択します。異なるTTSサービスは異なる音声をサポートしています", - "preview": "プレビュー" - }, "openai": { "sttModel": "OpenAI 音声認識モデル", "ttsModel": "OpenAI 音声合成モデル" }, + "showAllLocaleVoice": { + "desc": "無効にすると、現在の言語の音声のみが表示されます", + "title": "すべての言語の音声を表示" + }, "stt": "音声認識設定", + "sttAutoStop": { + "desc": "無効にすると、音声認識は自動的に停止せず、手動で停止する必要があります", + "title": "音声認識の自動停止" + }, "sttLocale": { "desc": "音声入力の言語、このオプションを選択すると音声認識の精度が向上します", "title": "音声認識言語" }, - "sttPersisted": { - "desc": "有効にすると、音声認識が自動的に終了せず、手動で終了ボタンをクリックする必要があります", - "title": "音声認識の手動終了" + "sttService": { + "desc": "ブラウザはネイティブの音声認識サービスです", + "title": "音声認識サービス" }, + "title": "音声サービス", "tts": "音声合成設定", - "sttAutoStop": { - "desc": "オフにすると、音声認識が自動的に終了せず、手動で終了ボタンをクリックする必要があります", - "title": "音声認識の自動終了" + "ttsService": { + "desc": "OpenAI 音声合成サービスを使用する場合、OpenAI モデルサービスが有効になっている必要があります", + "title": "音声合成サービス" + }, + "voice": { + "desc": "現在のアシスタントに適した音声を選択します。異なる TTS サービスは異なる音声をサポートしています", + "preview": "音声を試聴", + "title": "音声合成音声" } }, "settingTheme": { @@ -259,7 +250,7 @@ "title": "アバター" }, "fontSize": { - "desc": "チャットのテキストサイズ", + "desc": "チャットのフォントサイズ", "title": "フォントサイズ" }, "lang": { @@ -271,7 +262,7 @@ "title": "中立色" }, "primaryColor": { - "desc": "カスタムテーマカラー", + "desc": "カスタマイズテーマカラー", "title": "テーマカラー" }, "themeMode": { @@ -283,14 +274,14 @@ "title": "テーマ設定" }, "submitAgentModal": { - "tooltips": "アシスタントマーケットに共有する", - "button": "助手を提出する", - "identifier": "識別子 エージェントの識別子", - "metaMiss": "エージェント情報を入力してから提出してください。名前、説明、およびタグが必要です", - "placeholder": "エージェントの識別子を入力してください。一意である必要があります。例:web-development" + "button": "エージェントを提出", + "identifier": "エージェント識別子", + "metaMiss": "エージェント情報を入力してから提出してください。名前、説明、タグが必要です。", + "placeholder": "エージェントの識別子を入力してください。一意である必要があります。例:web-development", + "tooltips": "エージェントマーケットに共有" }, "tab": { - "agent": "デフォルトのアシスタント", + "agent": "デフォルトエージェント", "common": "一般設定", "llm": "言語モデル", "tts": "音声サービス" @@ -300,7 +291,7 @@ "groupName": "組み込み" }, "plugins": { - "enabled": "{{num}} 個が有効", + "enabled": "{{num}} が有効", "groupName": "プラグイン", "noEnabled": "有効なプラグインはありません", "store": "プラグインストア" diff --git a/locales/ko_KR/chat.json b/locales/ko_KR/chat.json index 9c960285c609..0b4b0c6fd9ae 100644 --- a/locales/ko_KR/chat.json +++ b/locales/ko_KR/chat.json @@ -1,19 +1,19 @@ { - "agentDefaultMessage": "안녕하세요, 저는 **{{name}}**입니다. 바로 대화를 시작하거나 [도우미 설정](/chat/settings#session={{id}})으로 이동하여 제 정보를 완성할 수 있습니다.", - "agentDefaultMessageWithSystemRole": "안녕하세요, 저는 **{{name}}**입니다. {{systemRole}}입니다. 대화를 시작해보세요!", + "agentDefaultMessage": "안녕하세요, 저는 **{{name}}**입니다. 지금 즉시 대화를 시작하거나 [도우미 설정](/chat/settings#session={{id}})으로 이동하여 내 정보를 완성할 수 있습니다.", + "agentDefaultMessageWithSystemRole": "안녕하세요, 저는 **{{name}}**입니다. {{systemRole}}입니다. 대화를 시작해 봅시다!", "backToBottom": "최신 메시지 보기", "clearCurrentMessages": "현재 대화 지우기", - "confirmClearCurrentMessages": "현재 대화를 지우시겠습니까? 지우면 복구할 수 없습니다. 작업을 확인하세요.", - "confirmRemoveSessionItemAlert": "도우미를 삭제하시겠습니까? 삭제하면 복구할 수 없습니다. 작업을 확인하세요.", - "defaultAgent": "사용자 정의 도우미", - "defaultSession": "사용자 정의 도우미", - "historyRange": "기록 범위", + "confirmClearCurrentMessages": "현재 대화를 지우시면 되돌릴 수 없습니다. 작업을 확인하시겠습니까?", + "confirmRemoveSessionItemAlert": "이 도우미를 삭제하시면 되돌릴 수 없습니다. 작업을 확인하시겠습니까?", + "defaultAgent": "기본 도우미", + "defaultSession": "기본 도우미", + "historyRange": "대화 기록 범위", "inbox": { - "defaultMessage": "안녕하세요, 저는 여러분의 인공지능 도우미입니다. 궁금한 점이 있으면 물어보세요. 더 전문적이거나 맞춤화된 도우미가 필요하다면 `+`를 클릭하여 사용자 정의 도우미를 생성할 수 있습니다.", - "desc": "뇌 클러스터를 활성화하여 창의적인 생각을 이끌어내는 인공지능 도우미입니다. 모든 것에 대해 여기에서 대화하세요.", - "title": "잡담하기" + "defaultMessage": "안녕하세요, 저는 당신의 인공지능 도우미입니다. 어떤 질문이든 물어보세요. 최선을 다해 답변해 드리겠습니다. 더 전문적이거나 맞춤형 도우미가 필요하다면 `+`를 클릭하여 사용자 정의 도우미를 만들 수 있습니다.", + "desc": "뇌 클러스터를 활성화하여 창의적인 아이디어를 끌어내는 인공지능 비서입니다. 여기서 모든 것에 대해 대화합니다.", + "title": "무작위 대화" }, - "newAgent": "새 도우미 만들기", + "newAgent": "새 도우미", "noDescription": "설명 없음", "pin": "고정", "pinOff": "고정 해제", @@ -21,7 +21,7 @@ "roleAndArchive": "역할 및 아카이브", "searchAgentPlaceholder": "도우미 및 대화 검색...", "send": "보내기", - "sendPlaceholder": "대화 내용 입력...", + "sendPlaceholder": "채팅 내용 입력...", "sessionList": "도우미 목록", "shareModal": { "download": "스크린샷 다운로드", @@ -34,38 +34,35 @@ "withPluginInfo": "플러그인 정보 포함", "withSystemRole": "도우미 역할 포함" }, - "stop": "정지", + "stop": "중지", "stt": { "action": "음성 입력", "loading": "인식 중...", - "prettifying": "미화 중..." + "prettifying": "정제 중..." }, "temp": "임시", "tokenDetail": "역할 설정: {{systemRoleToken}} · 대화 기록: {{chatsToken}}", "tokenTag": { "overload": "한도 초과", "remained": "남음", - "used": "사용" + "used": "사용됨" }, "topic": { - "confirmRemoveTopic": "해당 주제를 삭제하시겠습니까? 삭제하면 복구할 수 없습니다. 신중하게 작업하세요.", + "confirmRemoveAll": "모든 주제를 삭제하시면 되돌릴 수 없습니다. 신중하게 작업하시겠습니까?", + "confirmRemoveTopic": "이 주제를 삭제하시면 되돌릴 수 없습니다. 신중하게 작업하시겠습니까?", + "confirmRemoveUnstarred": "별표가 없는 주제를 삭제하시면 되돌릴 수 없습니다. 신중하게 작업하시겠습니까?", "defaultTitle": "기본 주제", + "openNewTopic": "새 주제 열기", + "removeAll": "모든 주제 삭제", + "removeUnstarred": "별표가 없는 주제 삭제", "saveCurrentMessages": "현재 대화를 주제로 저장", "searchPlaceholder": "주제 검색...", - "deleteAll": "모든 주제 삭제", - "deleteUnstarred": "스타가 없는 주제 삭제", - "title": "주제 목록", - "confirmRemoveAll": "모든 주제를 삭제하려고 합니다. 삭제 후에는 복구할 수 없으므로 신중하게 작업하십시오.", - "confirmRemoveUnstarred": "스타를 지정하지 않은 주제를 삭제하려고 합니다. 삭제 후에는 복구할 수 없으므로 신중하게 작업하십시오.", - "removeAll": "모든 주제 삭제", - "removeUnstarred": "스타를 지정하지 않은 주제 삭제", - "openNewTopic": "새로운 주제 열기" + "title": "주제 목록" }, "translate": { - "clear": "번역 지우기", - "action": "번역" + "action": "번역", + "clear": "번역 삭제" }, - "translateTo": "번역", "tts": { "action": "음성 읽기", "clear": "음성 삭제" @@ -73,7 +70,7 @@ "updateAgent": "도우미 정보 업데이트", "upload": { "actionTooltip": "이미지 업로드", - "dragDesc": "여기로 파일을 끌어다 놓으세요. 여러 이미지를 업로드할 수 있습니다. Shift를 누른 채로 이미지를 직접 보내세요.", + "dragDesc": "여기로 파일을 끌어다 놓거나 여러 이미지를 업로드할 수 있습니다. Shift를 누른 채로 이미지를 직접 보내기", "dragTitle": "이미지 업로드" }, "warp": "줄바꿈" diff --git a/locales/ko_KR/common.json b/locales/ko_KR/common.json index 421d3bb7bd35..ec2604d02430 100644 --- a/locales/ko_KR/common.json +++ b/locales/ko_KR/common.json @@ -1,24 +1,24 @@ { "about": "소개", "advanceSettings": "고급 설정", - "agentMaxToken": "세션 최대 길이", + "agentMaxToken": "최대 대화 길이", "agentModel": "모델", - "agentProfile": "에이전트 정보", - "appInitializing": "LobeChat이 시작 중입니다. 잠시 기다려주세요...", + "agentProfile": "에이전트 프로필", + "appInitializing": "LobeChat이 초기화 중입니다. 잠시 기다려주세요...", "archive": "보관", "autoGenerate": "자동 생성", - "autoGenerateTooltip": "힌트 단어를 기반으로 에이전트 설명을 자동으로 생성합니다.", + "autoGenerateTooltip": "힌트 단어를 기반으로 에이전트 설명을 자동으로 완성합니다", "cancel": "취소", - "changelog": "변경 내역", + "changelog": "변경 로그", "close": "닫기", - "confirmRemoveSessionItemAlert": "에이전트를 삭제하려고 합니다. 삭제 후에는 복구할 수 없습니다. 작업을 확인하세요.", + "confirmRemoveSessionItemAlert": "이 에이전트를 삭제하려고 합니다. 삭제 후에는 복구할 수 없습니다. 작업을 확인하십시오.", "copy": "복사", - "copySuccess": "복사 완료", + "copySuccess": "복사 성공", "defaultAgent": "기본 에이전트", "defaultSession": "기본 세션", "delete": "삭제", "edit": "편집", - "export": "설정 내보내기", + "export": "내보내기", "exportType": { "agent": "에이전트 설정 내보내기", "agentWithMessage": "에이전트 및 메시지 내보내기", @@ -27,23 +27,23 @@ "allAgentWithMessage": "모든 에이전트 및 메시지 내보내기", "globalSetting": "전역 설정 내보내기" }, - "feedback": "피드백", + "feedback": "피드백 및 제안", "historyRange": "기록 범위", - "import": "설정 가져오기", + "import": "가져오기", "importModal": { "finish": { - "onlySettings": "시스템 설정이 성공적으로 가져와졌습니다.", - "start": "시작", - "subTitle": "데이터가 성공적으로 가져와졌습니다. 소요 시간: {{duration}} 초. 가져오기 세부 정보는 다음과 같습니다:", + "onlySettings": "시스템 설정 가져오기 성공", + "start": "시작하기", + "subTitle": "데이터 가져오기 완료, 소요 시간 {{duration}} 초. 가져오기 세부 정보는 다음과 같습니다:", "title": "데이터 가져오기 완료" }, - "loading": "데이터를 가져오는 중입니다. 잠시 기다려주세요...", + "loading": "데이터 가져오는 중입니다. 잠시 기다려주세요...", "result": { - "added": "성공적으로 가져옴", + "added": "가져오기 성공", "errors": "가져오기 오류", "messages": "메시지", - "sessions": "어시스턴트", - "skips": "중복 건너뜀", + "sessions": "에이전트", + "skips": "중복 건너뛰기", "topics": "주제", "type": "데이터 유형" }, @@ -55,34 +55,34 @@ "ja-JP": "일본어", "ko-KR": "한국어", "ru-RU": "러시아어", - "zh": "중국어 간체", - "zh-CN": "중국어 간체", - "zh-TW": "중국어 번체" + "zh": "중국어", + "zh-CN": "중국어(간체)", + "zh-TW": "중국어(번체)", + "fr-FR": "프랑스어" }, - "layoutInitializing": "레이아웃을 로드 중입니다...", + "layoutInitializing": "레이아웃을 불러오는 중...", "noDescription": "설명 없음", "ok": "확인", "password": "비밀번호", "pin": "고정", "pinOff": "고정 해제", "regenerate": "재생성", - "rename": "이름 변경", + "rename": "이름 바꾸기", "reset": "재설정", "retry": "재시도", "send": "보내기", - "sessionList": "에이전트 목록", "setting": "설정", "share": "공유", "stop": "중지", "tab": { "chat": "채팅", - "market": "탐색", + "market": "발견", "setting": "설정" }, "temp": "임시", "updateAgent": "에이전트 정보 업데이트", "upgradeVersion": { - "action": "지금 업그레이드", + "action": "즉시 업그레이드", "hasNew": "사용 가능한 업데이트가 있습니다", "newVersion": "새 버전 사용 가능: {{version}}" } diff --git a/locales/ko_KR/plugin.json b/locales/ko_KR/plugin.json index e645a7f1538a..bfc074dc1d19 100644 --- a/locales/ko_KR/plugin.json +++ b/locales/ko_KR/plugin.json @@ -1,14 +1,14 @@ { "debug": { - "arguments": "함수 호출 인수", + "arguments": "호출 매개변수", "function_call": "함수 호출", - "response": "응답", - "off": "디버그 끄기", - "on": "플러그인 호출 정보 보기" + "off": "디버깅 끄기", + "on": "플러그인 호출 정보 보기", + "response": "응답" }, "dev": { - "confirmDeleteDevPlugin": "로컬 플러그인을 삭제하시겠습니까? 삭제 후에는 복구할 수 없습니다.", - "deleteSuccess": "플러그인이 성공적으로 삭제되었습니다.", + "confirmDeleteDevPlugin": "로컬 플러그인을 삭제하려고 합니다. 삭제한 후에는 복구할 수 없습니다. 이 플러그인을 삭제하시겠습니까?", + "deleteSuccess": "플러그인이 성공적으로 삭제되었습니다", "manifest": { "identifier": { "desc": "플러그인의 고유 식별자", @@ -16,7 +16,7 @@ }, "mode": { "local": "시각적 구성", - "local-tooltip": "시각적 구성은 일시적으로 지원되지 않습니다.", + "local-tooltip": "시각적 구성은 현재 지원되지 않습니다", "url": "온라인 링크" }, "name": { @@ -31,7 +31,7 @@ "label": "작성자" }, "avatar": { - "desc": "플러그인 아이콘으로는 Emoji 또는 URL을 사용할 수 있습니다.", + "desc": "플러그인 아이콘, 이모지 또는 URL을 사용할 수 있습니다", "label": "아이콘" }, "description": { @@ -39,25 +39,22 @@ "label": "설명", "placeholder": "검색 엔진에서 정보 가져오기" }, - "formFieldRequired": "이 필드는 필수 입력 사항입니다.", + "formFieldRequired": "이 필드는 필수 입력 사항입니다", "homepage": { "desc": "플러그인 홈페이지", "label": "홈페이지" }, "identifier": { - "desc": "플러그인의 고유 식별자는 manifest에서 자동으로 인식됩니다.", - "errorDuplicate": "식별자가 이미 있는 플러그인과 중복되었습니다. 식별자를 수정해주세요.", + "desc": "플러그인의 고유 식별자는 manifest에서 자동으로 인식됩니다", + "errorDuplicate": "식별자가 기존 플러그인과 중복되었습니다. 식별자를 수정해주세요", "label": "식별자", - "pattenErrorMessage": "영문자, 숫자, - 및 _만 입력할 수 있습니다." + "pattenErrorMessage": "영문자, 숫자, - 및 _ 만 입력할 수 있습니다" }, "manifest": { - "desc": "LobeChat은 이 링크를 통해 플러그인을 설치합니다.", - "jsonInvalid": "manifest가 규칙에 맞지 않습니다. 유효성 검사 결과: \n\n {{error}}", - "label": "플러그인 설명 파일 URL 주소", - "preview": "Manifest 미리보기", - "refresh": "새로 고침", - "requestError": "이 링크를 요청하는 중에 오류가 발생했습니다. 유효한 링크를 입력하고 링크가 크로스 도메인 액세스를 허용하는지 확인해주세요.", - "urlError": "이 링크는 JSON 형식의 내용을 반환하지 않습니다. 유효한 링크를 입력해주세요." + "desc": "LobeChat은 이 링크를 통해 플러그인을 설치합니다", + "label": "플러그인 설명 파일 (Manifest) URL", + "preview": "미리보기", + "refresh": "새로고침" }, "title": { "desc": "플러그인 제목", @@ -66,27 +63,29 @@ } }, "metaConfig": "플러그인 메타 정보 구성", - "modalDesc": "사용자 정의 플러그인을 추가하면 플러그인 개발 검증 및 세션에서 직접 사용할 수 있습니다. 플러그인 개발 문서는 참조해주세요.", + "modalDesc": "사용자 정의 플러그인을 추가하면 플러그인 개발 확인 및 대화 중에 직접 사용할 수 있습니다. 플러그인 개발은 <1>개발 문서↗를 참조하세요", "preview": { - "card": "플러그인 미리보기", + "card": "플러그인 효과 미리보기", "desc": "플러그인 설명 미리보기", "title": "플러그인 이름 미리보기" }, - "save": "저장", - "saveSuccess": "플러그인 설정이 성공적으로 저장되었습니다.", + "save": "플러그인 설치", + "saveSuccess": "플러그인 설정이 성공적으로 저장되었습니다", "tabs": { "manifest": "기능 설명 목록 (Manifest)", "meta": "플러그인 메타 정보" }, "title": "사용자 정의 플러그인 추가", "update": "업데이트", - "updateSuccess": "플러그인 설정이 성공적으로 업데이트되었습니다." + "updateSuccess": "플러그인 설정이 성공적으로 업데이트되었습니다" }, "error": { - "fetchError": "요청 실패", - "installError": "플러그인 {{name}} 설치 실패", - "manifestInvalid": "설명 파일 형식이 잘못되었습니다", - "noManifest": "설명 파일이 없습니다" + "fetchError": "해당 manifest 링크를 요청하는 중 오류가 발생했습니다. 링크의 유효성을 확인하고, 교차 출처 리소스 공유가 허용되는지 확인하세요", + "installError": "플러그인 {{name}} 설치 중 오류가 발생했습니다", + "manifestInvalid": "manifest가 규격에 맞지 않습니다. 검증 결과: \n\n {{error}}", + "noManifest": "설명 파일이 없습니다", + "reinstallError": "플러그인 {{name}} 새로고침 중 오류가 발생했습니다", + "urlError": "이 링크는 JSON 형식의 내용을 반환하지 않습니다. 유효한 링크인지 확인하세요" }, "list": { "item": { @@ -96,33 +95,34 @@ } }, "loading": { - "plugin": "플러그인 실행 중...", - "content": "플러그인 호출 중..." + "content": "플러그인 호출 중...", + "plugin": "플러그인 실행 중..." }, "pluginList": "플러그인 목록", "plugins": { - "unknown": "플러그인 검사 중..." + "loading": "플러그인 확인 중...", + "unknown": "알 수 없는 플러그인" }, "setting": "플러그인 설정", "settings": { "indexUrl": { - "title": "마켓 인덱스", - "tooltip": "온라인 편집은 지원되지 않습니다. 배포 환경 변수를 통해 설정해주세요." + "title": "마켓 색인", + "tooltip": "온라인 편집을 지원하지 않으며, 배포 시 환경 변수를 통해 설정하십시오" }, - "modalDesc": "플러그인 마켓의 주소를 구성하면 사용자 정의 플러그인 마켓을 사용할 수 있습니다.", + "modalDesc": "플러그인 마켓 주소를 구성하면 사용자 정의 플러그인 마켓을 사용할 수 있습니다", "title": "플러그인 마켓 설정" }, "store": { "empty": "설치된 플러그인이 없습니다", "install": "설치", "installAllPlugins": "모두 설치", - "networkError": "플러그인 스토어를 가져오는 데 실패했습니다. 네트워크 연결을 확인한 후 다시 시도하십시오", - "releasedAt": "{{createdAt}}에 출시", + "networkError": "플러그인 상점을 가져오는 데 실패했습니다. 네트워크 연결을 확인한 후 다시 시도하십시오", + "releasedAt": "{{createdAt}}에 출시됨", "tabs": { "all": "모두", "installed": "설치됨" }, - "title": "플러그인 스토어", + "title": "플러그인 상점", "uninstall": "제거" } } diff --git a/locales/ko_KR/setting.json b/locales/ko_KR/setting.json index 9897af8269e4..fffef40ed0e9 100644 --- a/locales/ko_KR/setting.json +++ b/locales/ko_KR/setting.json @@ -1,17 +1,17 @@ { "danger": { "clear": { - "action": "지금 지우기", + "action": "모두 지우기", "confirm": "모든 채팅 데이터를 지우시겠습니까?", - "success": "모든 대화 메시지가 지워졌습니다.", - "title": "모든 대화 메시지 지우기", - "desc": "도우미, 파일, 메시지, 플러그인 등을 포함한 모든 세션 데이터가 삭제됩니다." + "desc": "보조, 파일, 메시지, 플러그인 등 모든 세션 데이터가 지워집니다", + "success": "모든 세션 메시지가 지워졌습니다", + "title": "모든 세션 메시지 지우기" }, "reset": { - "action": "지금 재설정", + "action": "모두 재설정", "confirm": "모든 설정을 재설정하시겠습니까?", "currentVersion": "현재 버전", - "desc": "모든 설정 항목을 기본값으로 재설정합니다.", + "desc": "모든 설정을 기본값으로 재설정합니다", "title": "모든 설정 재설정" } }, @@ -23,7 +23,7 @@ "llm": { "AzureOpenAI": { "endpoint": { - "desc": "Azure 포털에서 리소스를 확인할 때 이 값을 '키 및 엔드포인트' 섹션에서 찾을 수 있습니다.", + "desc": "Azure 포털에서 리소스를 확인할 때 이 값을“키 및 엔드포인트” 섹션에서 찾을 수 있습니다", "placeholder": "https://docs-test-001.openai.azure.com", "title": "Azure API 주소" }, @@ -33,25 +33,30 @@ }, "title": "Azure OpenAI 설정", "token": { - "desc": "Azure 포털에서 리소스를 확인할 때 이 값을 '키 및 엔드포인트' 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2를 사용할 수 있습니다.", + "desc": "Azure 포털에서 리소스를 확인할 때 이 값을“키 및 엔드포인트” 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2를 사용할 수 있습니다", "placeholder": "Azure API 키", "title": "API 키" } }, "OpenAI": { "azureApiVersion": { - "desc": "Azure의 API 버전입니다. YYYY-MM-DD 형식을 따릅니다. [최신 버전](https://learn.microsoft.com/ko-kr/azure/ai-services/openai/reference#chat-completions)을 확인하세요.", + "desc": "Azure의 API 버전으로 YYYY-MM-DD 형식을 따르며 [최신 버전](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)을 확인하세요", "fetch": "목록 가져오기", "title": "Azure API 버전" }, "check": { "button": "확인", - "desc": "API 키와 프록시 주소가 올바르게 입력되었는지 테스트합니다.", + "desc": "API 키 및 프록시 주소가 올바르게 입력되었는지 테스트합니다", "pass": "확인 완료", "title": "연결성 확인" }, + "customModelName": { + "desc": "사용자 정의 모델 추가, 여러 모델은 쉼표(,)로 구분합니다", + "placeholder": "모델1,모델2,모델3", + "title": "사용자 정의 모델 이름" + }, "endpoint": { - "desc": "기본 주소 외에도 반드시 http(s)://를 포함해야 합니다.", + "desc": "기본 주소 이외에 반드시 http(s)://를 포함해야 합니다", "placeholder": "https://api.openai.com/v1", "title": "인터페이스 프록시 주소" }, @@ -59,8 +64,8 @@ "count": "총 {{count}}개의 모델 지원", "desc": "지원되는 모델", "fetch": "모델 목록 가져오기", - "notSupport": "Azure OpenAI에서 모델 목록을 볼 수 없습니다.", - "notSupportTip": "배포 이름과 모델 이름이 일치하는지 확인해야 합니다.", + "notSupport": "Azure OpenAI는 모델 목록 조회를 지원하지 않습니다", + "notSupportTip": "배포 이름과 모델 이름이 일치하는지 직접 확인해야 합니다", "refetch": "모델 목록 다시 가져오기", "title": "모델 목록" }, @@ -73,30 +78,25 @@ "useAzure": { "desc": "Azure에서 제공하는 OpenAI 서비스 사용", "fetch": "목록 가져오기", - "serverConfig": "관리자가 서버에서 Azure OpenAI를 구성했으므로 변경이 금지되었습니다.", + "serverConfig": "관리자가 서버에서 Azure OpenAI를 구성했으므로 변경이 금지되었습니다", "title": "Azure OpenAI" - }, - "customModelName": { - "desc": "사용자 정의 모델 추가, 여러 모델은 쉼표(,)로 구분합니다", - "placeholder": "model1,model2,model3", - "title": "사용자 정의 모델 이름" } }, - "waitingForMore": "더 많은 모델이 <1>계획 중에 있으니 기대해주세요 ✨" + "waitingForMore": "<1>계획에 따라 더 많은 모델이 추가될 예정이니 기대해 주세요 ✨" }, "plugin": { "addTooltip": "사용자 정의 플러그인 추가", - "clearDeprecated": "사용되지 않는 플러그인 지우기", - "empty": "설치된 플러그인이 없습니다. <1>플러그인 상점에서 살펴보세요", + "clearDeprecated": "사용되지 않는 플러그인 제거", + "empty": "설치된 플러그인이 없습니다. <1>플러그인 스토어에서 새로운 플러그인을 찾아보세요.", "installStatus": { - "deprecated": "설치 취소됨" + "deprecated": "설치 해제됨" }, "settings": { "hint": "설명에 따라 아래 구성을 입력하십시오", - "title": "{{id}} 플러그인 구성", - "tooltip": "플러그인 구성" + "title": "{{id}} 플러그인 설정", + "tooltip": "플러그인 설정" }, - "store": "플러그인 상점" + "store": "플러그인 스토어" }, "settingAgent": { "avatar": { @@ -106,24 +106,28 @@ "title": "배경색" }, "description": { - "placeholder": "도우미 설명을 입력하세요.", + "placeholder": "도우미 설명을 입력하세요", "title": "도우미 설명" }, "name": { - "placeholder": "도우미 이름을 입력하세요.", + "placeholder": "도우미 이름을 입력하세요", "title": "이름" }, "prompt": { - "placeholder": "역할 프롬프트 힌트를 입력하세요.", + "placeholder": "역할 프롬프트 단어를 입력하세요", "title": "역할 설정" }, "tag": { - "placeholder": "태그를 입력하세요.", + "placeholder": "태그를 입력하세요", "title": "태그" }, "title": "도우미 정보" }, "settingChat": { + "autoCreateTopicThreshold": { + "desc": "현재 메시지 수가이 값 이상이면 자동으로 주제가 생성됩니다", + "title": "메시지 임계값" + }, "chatStyleType": { "title": "채팅 창 스타일", "type": { @@ -132,43 +136,39 @@ } }, "compressThreshold": { - "desc": "압축되지 않은 이전 메시지가이 값보다 크면 압축됩니다.", - "title": "압축 임계값" + "desc": "압축되지 않은 이전 메시지가이 값 이상이면 압축됩니다", + "title": "이전 메시지 길이 압축 임계값" + }, + "enableAutoCreateTopic": { + "desc": "대화 중에 자동으로 주제를 만들지 여부를 설정합니다. 일시적인 주제에서만 작동합니다", + "title": "자동 주제 생성 활성화" }, "enableCompressThreshold": { - "title": "이전 메시지 길이 압축 사용" + "title": "이전 메시지 길이 압축 임계값 활성화" }, "enableHistoryCount": { "alias": "제한 없음", - "limited": "대화 메시지 {{number}} 개만 포함", - "title": "대화 메시지 제한", - "unlimited": "대화 메시지 제한 없음" + "limited": "{{number}}개의 대화 메시지만 포함", + "title": "이전 메시지 수 제한", + "unlimited": "이전 메시지 수 제한 없음" }, "historyCount": { "desc": "요청당 포함되는 이전 메시지 수", - "title": "포함된 이전 메시지 수" + "title": "이전 메시지 수" }, "inputTemplate": { - "desc": "사용자의 최신 메시지가이 템플릿에 채워집니다.", - "placeholder": "사전 처리 템플릿 {{text}}은(는) 실시간 입력 정보로 대체됩니다.", - "title": "사용자 입력 사전 처리" - }, - "title": "채팅 설정", - "autoCreateTopicThreshold": { - "desc": "현재 메시지 수가이 값 이상이면 자동으로 주제를 만듭니다.", - "title": "메시지 임계값" + "desc": "사용자의 최신 메시지가이 템플릿에 채워집니다", + "placeholder": "입력 템플릿 {{text}}은 실시간 입력 정보로 대체됩니다", + "title": "사용자 입력 전처리" }, - "enableAutoCreateTopic": { - "desc": "대화 중에 주제를 자동으로 만들지 여부를 설정합니다. 임시 주제에서만 작동합니다.", - "title": "주제 자동 생성" - } + "title": "채팅 설정" }, "settingModel": { "enableMaxTokens": { - "title": "단일 응답 제한 사용" + "title": "단일 응답 제한 활성화" }, "frequencyPenalty": { - "desc": "값이 클수록 반복 단어가 줄어듭니다.", + "desc": "값이 클수록 반복 단어가 줄어듭니다", "title": "빈도 패널티" }, "maxTokens": { @@ -186,72 +186,63 @@ "title": "모델" }, "presencePenalty": { - "desc": "값이 클수록 새로운 주제로 확장될 가능성이 높아집니다.", + "desc": "값이 클수록 새로운 주제로 확장될 가능성이 높아집니다", "title": "주제 신선도" }, "temperature": { - "desc": "값이 클수록 응답이 더 무작위 해집니다.", + "desc": "값이 클수록 응답이 더 무작위해집니다", "title": "랜덤성", "titleWithValue": "랜덤성 {{value}}" }, "title": "모델 설정", "topP": { - "desc": "랜덤성과 유사하지만 함께 변경하지 마십시오.", + "desc": "랜덤성과 유사하지만 함께 변경하지 마세요", "title": "상위 P 샘플링" } }, "settingPlugin": { - "add": "추가", - "addTooltip": "사용자 정의 플러그인 추가", - "clearDeprecated": "사용되지 않는 플러그인 제거", - "config": "{{id}} 플러그인 구성", - "settings": "플러그인 마켓 설정", "title": "플러그인 목록" }, "settingSystem": { "accessCode": { - "desc": "관리자가 암호 액세스를 활성화했습니다.", - "placeholder": "액세스 코드를 입력하세요.", - "title": "액세스 코드" + "desc": "관리자가 암호화된 액세스를 활성화했습니다", + "placeholder": "액세스 암호를 입력하세요", + "title": "액세스 암호" }, "title": "시스템 설정" }, "settingTTS": { - "showAllLocaleVoice": { - "desc": "현재 언어의 음성만 표시하려면 닫으십시오", - "title": "모든 언어 음성 표시" - }, - "sttService": { - "desc": "브라우저는 브라우저 기본 음성 인식 서비스입니다", - "title": "음성 인식 서비스" - }, - "title": "음성 서비스", - "ttsService": { - "desc": "OpenAI 음성 합성 서비스를 사용하는 경우 OpenAI 모델 서비스가 열려 있어야 합니다", - "title": "음성 합성 서비스" - }, - "voice": { - "title": "음성 합성 음성", - "desc": "현재 어시스턴트에 대한 음성을 선택하십시오. 각기 다른 TTS 서비스는 다른 음성을 지원합니다.", - "preview": "프리뷰 음성" - }, "openai": { "sttModel": "OpenAI 음성 인식 모델", "ttsModel": "OpenAI 음성 합성 모델" }, + "showAllLocaleVoice": { + "desc": "현재 언어의 음성만 표시하려면 닫으세요", + "title": "모든 로캘 음성 표시" + }, "stt": "음성 인식 설정", + "sttAutoStop": { + "desc": "비활성화하면 음성 인식이 자동으로 종료되지 않으며 수동으로 종료 버튼을 클릭해야 합니다", + "title": "음성 인식 자동 중지" + }, "sttLocale": { - "desc": "음성 입력의 언어, 이 옵션을 통해 음성 인식 정확도를 높일 수 있습니다.", + "desc": "음성 입력의 언어로 음성 인식 정확도를 향상시킬 수 있습니다", "title": "음성 인식 언어" }, - "sttPersisted": { - "desc": "활성화하면 음성 인식이 자동으로 종료되지 않고, 수동으로 종료 버튼을 클릭해야 합니다.", - "title": "음성 인식 수동 종료" + "sttService": { + "desc": "브라우저는 기본 음성 인식 서비스입니다", + "title": "음성 인식 서비스" }, + "title": "음성 서비스", "tts": "음성 합성 설정", - "sttAutoStop": { - "desc": "자동으로 종료되지 않고 수동으로 종료 버튼을 클릭해야 하는 음성 인식을 사용하지 않습니다.", - "title": "음성 인식 자동 종료" + "ttsService": { + "desc": "OpenAI 음성 합성 서비스를 사용하는 경우 OpenAI 모델 서비스가 활성화되어 있어야 합니다", + "title": "음성 합성 서비스" + }, + "voice": { + "desc": "현재 어시스턴트에 대한 음성을 선택하십시오. 각 TTS 서비스는 다른 음성을 지원합니다", + "preview": "음성 미리듣기", + "title": "음성 합성 음성" } }, "settingTheme": { @@ -259,7 +250,7 @@ "title": "아바타" }, "fontSize": { - "desc": "채팅 콘텐츠의 글꼴 크기", + "desc": "채팅 내용의 글꼴 크기", "title": "글꼴 크기" }, "lang": { @@ -267,30 +258,30 @@ "title": "언어" }, "neutralColor": { - "desc": "다양한 색상 경향의 중립적인 사용자 정의", - "title": "중립 색상" + "desc": "다양한 색상 선호도에 따른 중립적인 사용자 정의", + "title": "중립색" }, "primaryColor": { - "desc": "사용자 정의 테마 색상", - "title": "테마 색상" + "desc": "사용자 정의 주제 색상", + "title": "주제 색상" }, "themeMode": { "auto": "자동", - "dark": "다크", - "light": "라이트", + "dark": "다크 모드", + "light": "라이트 모드", "title": "테마" }, "title": "테마 설정" }, "submitAgentModal": { - "tooltips": "도우미 마켓에 공유", - "button": "도우미 제출", - "identifier": "식별자 도우미 식별자", - "metaMiss": "도우미 정보를 입력한 후 제출하세요. 이름, 설명 및 태그를 포함해야 합니다.", - "placeholder": "도우미의 식별자를 입력하세요. 고유해야 하며, 예를 들어 web-development과 같은 형식이어야 합니다." + "button": "에이전트 제출", + "identifier": "에이전트 식별자", + "metaMiss": "에이전트 정보를 입력한 후 제출하십시오. 이름, 설명 및 태그를 포함해야 합니다.", + "placeholder": "에이전트 식별자를 입력하세요. 고유해야 하며, 예: 웹 개발", + "tooltips": "에이전트 마켓에 공유" }, "tab": { - "agent": "기본 도우미", + "agent": "기본 에이전트", "common": "일반 설정", "llm": "언어 모델", "tts": "음성 서비스" @@ -300,10 +291,10 @@ "groupName": "내장" }, "plugins": { - "enabled": "{{num}}개 활성화됨", + "enabled": "활성화됨 {{num}}", "groupName": "플러그인", - "noEnabled": "활성화된 플러그인이 없습니다", - "store": "플러그인 상점" + "noEnabled": "활성화된 플러그인이 없음", + "store": "플러그인 스토어" }, "title": "확장 도구" } diff --git a/locales/ru_RU/chat.json b/locales/ru_RU/chat.json index b6196bb49d26..072f69cfcab9 100644 --- a/locales/ru_RU/chat.json +++ b/locales/ru_RU/chat.json @@ -1,16 +1,16 @@ { - "agentDefaultMessage": "Привет, я **{{name}}**, ты можешь начать разговор со мной прямо сейчас или перейти к [настройкам помощника](/chat/settings#session={{id}}), чтобы улучшить мою информацию.", - "agentDefaultMessageWithSystemRole": "Привет, я **{{name}}**, {{systemRole}}, давай начнем разговор!", - "backToBottom": "К последнему сообщению", + "agentDefaultMessage": "Привет, я **{{name}}**. Ты можешь начать общение со мной прямо сейчас или перейти к [настройкам помощника](/chat/settings#session={{id}}), чтобы улучшить мою информацию.", + "agentDefaultMessageWithSystemRole": "Привет, я **{{name}}**, {{systemRole}}. Давай начнем разговор!", + "backToBottom": "К последним сообщениям", "clearCurrentMessages": "Очистить текущий разговор", - "confirmClearCurrentMessages": "Вы собираетесь очистить текущий разговор, после этого его нельзя будет восстановить. Подтвердите свое действие.", - "confirmRemoveSessionItemAlert": "Вы собираетесь удалить этого помощника, после этого его нельзя будет восстановить. Подтвердите свое действие.", + "confirmClearCurrentMessages": "Вы уверены, что хотите очистить текущий разговор? После этого его нельзя будет восстановить.", + "confirmRemoveSessionItemAlert": "Вы уверены, что хотите удалить этого помощника? После этого его нельзя будет восстановить.", "defaultAgent": "Пользовательский помощник", "defaultSession": "Пользовательский помощник", "historyRange": "История сообщений", "inbox": { - "defaultMessage": "Привет, я твой интеллектуальный помощник. Ты можешь задать мне любой вопрос, и я постараюсь ответить на него. Если тебе нужен более профессиональный или настроенный помощник, нажми на `+`, чтобы создать пользовательского помощника.", - "desc": "Включи кластер мозгов и разгори искру мысли. Твой интеллектуальный помощник, готовый общаться о всем здесь", + "defaultMessage": "Привет, я твой виртуальный помощник. Ты можешь задать мне любой вопрос, и я постараюсь на него ответить. Если тебе нужен более профессиональный или настраиваемый помощник, нажми на `+`, чтобы создать пользовательского помощника.", + "desc": "Зажги искру мысли, открой кластер мозгов. Твой виртуальный ассистент, готовый обсудить все с тобой.", "title": "Просто поболтаем" }, "newAgent": "Создать помощника", @@ -21,59 +21,56 @@ "roleAndArchive": "Роль и архив", "searchAgentPlaceholder": "Поиск помощников и разговоров...", "send": "Отправить", - "sendPlaceholder": "Введите текст сообщения...", + "sendPlaceholder": "Введите сообщение...", "sessionList": "Список помощников", "shareModal": { "download": "Скачать скриншот", "imageType": "Тип изображения", "screenshot": "Скриншот", "settings": "Настройки экспорта", - "shareToShareGPT": "Создать ссылку ShareGPT для обмена", - "withBackground": "С фоновым изображением", + "shareToShareGPT": "Создать ссылку для обмена ShareGPT", + "withBackground": "С фоном", "withFooter": "С нижним колонтитулом", - "withPluginInfo": "С информацией о плагине", - "withSystemRole": "С указанием роли помощника" + "withPluginInfo": "С информацией о плагинах", + "withSystemRole": "С ролью помощника" }, "stop": "Остановить", "stt": { "action": "Голосовой ввод", - "loading": "Идет распознавание...", + "loading": "Распознавание...", "prettifying": "Форматирование..." }, "temp": "Временный", - "tokenDetail": "Роль помощника: {{systemRoleToken}} · История сообщений: {{chatsToken}}", + "tokenDetail": "Роль: {{systemRoleToken}} · Сообщения: {{chatsToken}}", "tokenTag": { "overload": "Превышение лимита", "remained": "Осталось", "used": "Использовано" }, "topic": { - "confirmRemoveTopic": "Вы собираетесь удалить эту тему, после этого ее нельзя будет восстановить. Подтвердите свое действие.", + "confirmRemoveAll": "Вы уверены, что хотите удалить все темы? После этого их нельзя будет восстановить.", + "confirmRemoveTopic": "Вы уверены, что хотите удалить эту тему? После этого ее нельзя будет восстановить.", + "confirmRemoveUnstarred": "Вы уверены, что хотите удалить неотмеченные темы? После этого их нельзя будет восстановить.", "defaultTitle": "Стандартная тема", - "saveCurrentMessages": "Сохранить текущий разговор как тему", - "searchPlaceholder": "Поиск темы...", - "deleteAll": "Удалить все темы", - "deleteUnstarred": "Удалить неотмеченные темы", - "title": "Список тем", - "confirmRemoveAll": "Вы собираетесь удалить все темы. После удаления их будет невозможно восстановить. Пожалуйста, будьте осторожны.", - "confirmRemoveUnstarred": "Вы собираетесь удалить неотмеченные темы. После удаления их будет невозможно восстановить. Пожалуйста, будьте осторожны.", + "openNewTopic": "Создать новую тему", "removeAll": "Удалить все темы", "removeUnstarred": "Удалить неотмеченные темы", - "openNewTopic": "Открыть новую тему" + "saveCurrentMessages": "Сохранить текущий разговор как тему", + "searchPlaceholder": "Поиск тем...", + "title": "Список тем" }, "translate": { - "clear": "Очистить перевод", - "action": "перевести" + "action": "Перевести", + "clear": "Удалить перевод" }, - "translateTo": "Перевести на", "tts": { - "action": "воспроизвести речь", - "clear": "очистить речь" + "action": "Озвучить текст", + "clear": "Удалить озвучку" }, - "updateAgent": "Обновить информацию о помощнике", + "updateAgent": "Обновить информацию помощника", "upload": { "actionTooltip": "Загрузить изображение", - "dragDesc": "Перетащите файлы сюда, поддерживается загрузка нескольких изображений. Удерживайте клавишу Shift для прямой отправки изображений", + "dragDesc": "Перетащите файлы сюда, поддерживается загрузка нескольких изображений. Удерживайте Shift для отправки изображений", "dragTitle": "Загрузить изображение" }, "warp": "Перенос строки" diff --git a/locales/ru_RU/common.json b/locales/ru_RU/common.json index 7518a890bf02..489d95c0d743 100644 --- a/locales/ru_RU/common.json +++ b/locales/ru_RU/common.json @@ -1,50 +1,49 @@ { - "about": "Наш Github", - "advanceSettings": "Дополнительные настройки", - "agentDefaultMessage": "Здравствуйте, я **{{name}}**. Вы можете начать общаться со мной прямо сейчас или перейти на [Agent Settings](/chat/settings#session={{id}}) для моей настройки.", + "about": "О нас", + "advanceSettings": "Расширенные настройки", "agentMaxToken": "Максимальная длина сессии", "agentModel": "Модель", - "agentProfile": "Информация о помощнике", - "appInitializing": "LobeChat запускается, пожалуйста, подождите...", + "agentProfile": "Профиль агента", + "appInitializing": "LobeChat запускается, пожалуйста, подождите…", "archive": "Архив", - "autoGenerate": "Автогенерация", - "autoGenerateTooltip": "Автогенерация описания помощника на основе подсказок", + "autoGenerate": "Автозаполнение", + "autoGenerateTooltip": "Автоматическое дополнение описания агента на основе подсказок", "cancel": "Отмена", - "changelog": "Журнал изменений", - "close": "Закрывать", - "confirmRemoveSessionItemAlert": "Вы собираетесь удалить этого помощника? После удаления его невозможно восстановить. Пожалуйста, подтвердите вашу операцию.", + "changelog": "История изменений", + "close": "Закрыть", + "confirmRemoveSessionItemAlert": "Вы собираетесь удалить этого агента. После удаления его будет невозможно восстановить. Подтвердите ваше действие", "copy": "Копировать", - "copySuccess": "Скопировано", - "defaultAgent": "Пользовательский ассистент", - "defaultSession": "Пользовательский ассистент", + "copySuccess": "Успешно скопировано", + "defaultAgent": "Пользовательский агент", + "defaultSession": "Пользовательский агент", "delete": "Удалить", "edit": "Редактировать", - "export": "Экспорт конфига", + "export": "Экспорт настроек", "exportType": { - "agent": "Экспорт настроек помощника", - "agentWithMessage": "Экспорт помощника и переписки", - "all": "Экспорт глобальных настроек и всех данных ассистента", - "allAgent": "Экспорт всех настроек ассистента", - "allAgentWithMessage": "Экспорт всех помощников и переписок", + "agent": "Экспорт настроек агента", + "agentWithMessage": "Экспорт настроек агента и сообщений", + "all": "Экспорт глобальных настроек и всех данных агентов", + "allAgent": "Экспорт всех настроек агентов", + "allAgentWithMessage": "Экспорт всех настроек агентов и сообщений", "globalSetting": "Экспорт глобальных настроек" }, - "feedback": "Обратная связь", - "historyRange": "Исторический диапазон", - "import": "Импорт конфига", + "feedback": "Обратная связь и предложения", + "historyRange": "История", + "import": "Импорт настроек", "importModal": { "finish": { - "onlySettings": "Импорт системных настроек выполнен", + "onlySettings": "Настройки системы успешно импортированы", "start": "Начать использование", - "subTitle": "Импорт данных выполнен за {{duration}} секунд. Детали импорта:", + "subTitle": "Данные успешно импортированы за {{duration}} секунд. Детали импорта:", "title": "Импорт данных завершен" }, - "loading": "Выполняется импорт данных. Пожалуйста, подождите...", + "loading": "Идет импорт данных, пожалуйста, подождите...", "result": { "added": "Успешно импортировано", "errors": "Ошибка импорта", "messages": "Сообщения", - "sessions": "Сессии", - "skips": "Пропущено как дубликат", + "sessions": "Агенты", + "skips": "Пропущено дубликатов", "topics": "Темы", "type": "Тип данных" }, @@ -56,32 +55,32 @@ "ja-JP": "Японский", "ko-KR": "Корейский", "ru-RU": "Русский", - "zh": "Китайский (упрощенный)", - "zh-CN": "Китайский (упрощенный)", - "zh-TW": "Китайский (традиционный)" + "zh": "Китайский", + "zh-CN": "Китайский", + "zh-TW": "Традиционный китайский", + "fr-FR": "французский" }, - "layoutInitializing": "Идет загрузка макета...", + "layoutInitializing": "Инициализация макета...", "noDescription": "Нет описания", "ok": "ОК", - "password": "пароль", + "password": "Пароль", "pin": "Закрепить", "pinOff": "Открепить", - "regenerate": "Ре-генерация", + "regenerate": "Перегенерировать", "rename": "Переименовать", "reset": "Сброс", "retry": "Повторить", "send": "Отправить", - "sessionList": "Список помощников", - "setting": "Настройки", + "setting": "Настройка", "share": "Поделиться", "stop": "Остановить", "tab": { "chat": "Чат", - "market": "Магазин ассистентов", + "market": "Обзор", "setting": "Настройки" }, "temp": "Временный", - "updateAgent": "Обновление информации о помощнике", + "updateAgent": "Обновить информацию об агенте", "upgradeVersion": { "action": "Обновить сейчас", "hasNew": "Доступно обновление", diff --git a/locales/ru_RU/plugin.json b/locales/ru_RU/plugin.json index 3e2c74090c7f..4d7737d06bbe 100644 --- a/locales/ru_RU/plugin.json +++ b/locales/ru_RU/plugin.json @@ -1,128 +1,128 @@ { "debug": { - "arguments": "Аргументы вызова", - "function_call": "Вызов функции", - "response": "Ответ", - "off": "Выключить отладку", - "on": "Просмотр информации о вызове плагина" + "arguments": "调用参数", + "function_call": "函数调用", + "off": "关闭调试", + "on": "查看插件调用信息", + "response": "返回结果" }, "dev": { - "confirmDeleteDevPlugin": "Вы собираетесь удалить этот локальный плагин. После удаления его будет невозможно восстановить. Вы уверены, что хотите удалить этот плагин?", - "deleteSuccess": "Плагин успешно удален", + "confirmDeleteDevPlugin": "即将删除该本地插件,删除后将无法找回,是否删除该插件?", + "deleteSuccess": "插件删除成功", "manifest": { "identifier": { - "desc": "Уникальный идентификатор плагина", - "label": "Идентификатор" + "desc": "插件的唯一标识", + "label": "标识符" }, "mode": { - "local": "Визуальная настройка", - "local-tooltip": "Визуальная настройка временно недоступна", - "url": "Онлайн-ссылка" + "local": "可视化配置", + "local-tooltip": "暂时不支持可视化配置", + "url": "在线链接" }, "name": { - "desc": "Заголовок плагина", - "label": "Заголовок", - "placeholder": "Поиск в поисковой системе" + "desc": "插件标题", + "label": "标题", + "placeholder": "搜索引擎" } }, "meta": { "author": { - "desc": "Автор плагина", - "label": "Автор" + "desc": "插件的作者", + "label": "作者" }, "avatar": { - "desc": "Иконка плагина, можно использовать Emoji или URL", - "label": "Иконка" + "desc": "插件的图标,可以使用 Emoji,也可以使用 URL", + "label": "图标" }, "description": { - "desc": "Описание плагина", - "label": "Описание", - "placeholder": "Получение информации из поисковой системы" + "desc": "插件描述", + "label": "描述", + "placeholder": "查询搜索引擎获取信息" }, - "formFieldRequired": "Это обязательное поле", + "formFieldRequired": "该字段为必填项", "homepage": { - "desc": "Домашняя страница плагина", - "label": "Домашняя страница" + "desc": "插件的首页", + "label": "首页" }, "identifier": { - "desc": "Уникальный идентификатор плагина, будет автоматически определен из манифеста", - "errorDuplicate": "Идентификатор уже используется другим плагином. Пожалуйста, измените идентификатор", - "label": "Идентификатор", - "pattenErrorMessage": "Можно вводить только латинские буквы, цифры, - и _" + "desc": "插件的唯一标识,将从 manifest 中自动识别", + "errorDuplicate": "标识符和已有插件重复,请修改标识符", + "label": "标识符", + "pattenErrorMessage": "只能输入英文字符、数字 、- 和_ 这两个符号" }, "manifest": { - "desc": "LobeChat будет устанавливать плагин по этой ссылке", - "jsonInvalid": "Манифест не соответствует стандарту. Результат проверки: \n\n {{error}}", - "label": "URL-адрес описания плагина", - "preview": "Предварительный просмотр манифеста", - "refresh": "Обновить", - "requestError": "Не удалось получить данные по этой ссылке. Пожалуйста, введите действительную ссылку и проверьте, разрешен ли кросс-доменный доступ", - "urlError": "Ссылка не возвращает данные в формате JSON. Пожалуйста, введите действительную ссылку" + "desc": "LobeChat 将会通过该链接安装插件", + "label": "插件描述文件 (Manifest) URL", + "preview": "预览 Manifest", + "refresh": "刷新" }, "title": { - "desc": "Заголовок плагина", - "label": "Заголовок", - "placeholder": "Поиск в поисковой системе" + "desc": "插件标题", + "label": "标题", + "placeholder": "搜索引擎" } }, - "metaConfig": "Настройка метаданных плагина", - "modalDesc": "После добавления пользовательского плагина его можно использовать для проверки разработки плагинов или непосредственно в сеансе. См. документацию по разработке плагинов", + "metaConfig": "插件元信息配置", + "modalDesc": "添加自定义插件后,可用于插件开发验证,也可直接在会话中使用。插件开发请参考<1>开发文档↗", "preview": { - "card": "Предварительный просмотр плагина", - "desc": "Предварительный просмотр описания плагина", - "title": "Предварительный просмотр имени плагина" + "card": "预览插件展示效果", + "desc": "预览插件描述", + "title": "插件名称预览" }, - "save": "Сохранить", - "saveSuccess": "Настройки плагина успешно сохранены", + "save": "安装插件", + "saveSuccess": "插件设置保存成功", "tabs": { - "manifest": "Описание функций (Манифест)", - "meta": "Метаданные плагина" + "manifest": "功能描述清单 (Manifest)", + "meta": "插件元信息" }, - "title": "Добавить пользовательский плагин", - "update": "Обновить", - "updateSuccess": "Настройки плагина успешно обновлены" + "title": "添加自定义插件", + "update": "更新", + "updateSuccess": "插件设置更新成功" }, "error": { - "fetchError": "Ошибка запроса", - "installError": "Ошибка установки плагина {{name}}", - "manifestInvalid": "Неверный формат файла описания", - "noManifest": "Отсутствует файл описания" + "fetchError": "请求该 manifest 链接失败,请确保链接的有效性,并检查链接是否允许跨域访问", + "installError": "插件 {{name}} 安装失败", + "manifestInvalid": " manifest 不符合规范,校验结果: \n\n {{error}}", + "noManifest": "描述文件不存在", + "reinstallError": "插件 {{name}} 刷新失败", + "urlError": "该链接没有返回 JSON 格式的内容, 请确保是有效的链接" }, "list": { "item": { - "deprecated.title": "Удалено", - "local.config": "Настройка", - "local.title": "Пользовательский" + "deprecated.title": "已删除", + "local.config": "配置", + "local.title": "自定义" } }, "loading": { - "plugin": "Выполнение плагина...", - "content": "Вызов плагина..." + "content": "调用插件中...", + "plugin": "插件运行中..." }, - "pluginList": "Список плагинов", + "pluginList": "插件列表", "plugins": { - "unknown": "Проверка плагинов..." + "loading": "检测插件中...", + "unknown": "未知插件" }, - "setting": "Настройки плагина", + "setting": "插件设置", "settings": { "indexUrl": { - "title": "Индекс рынка", - "tooltip": "Редактирование в настоящее время недоступно" + "title": "市场索引", + "tooltip": "暂不支持在线编辑,请通过部署时环境变量进行设置" }, - "modalDesc": "После настройки адреса рынка плагинов можно использовать пользовательский рынок плагинов", - "title": "Настройки рынка плагинов" + "modalDesc": "配置插件市场的地址后,可以使用自定义的插件市场", + "title": "设置插件市场" }, "store": { - "empty": "Нет установленных плагинов", - "install": "Установить", - "installAllPlugins": "Установить все", - "networkError": "Не удалось получить доступ к магазину плагинов. Пожалуйста, проверьте подключение к сети и повторите попытку", - "releasedAt": "Опубликовано {{createdAt}}", + "empty": "暂无已安装插件", + "install": "安装", + "installAllPlugins": "安装全部", + "networkError": "获取插件商店失败,请检测网络连接后重试", + "releasedAt": "发布于 {{createdAt}}", "tabs": { - "all": "Все", - "installed": "Установленные" + "all": "全部", + "installed": "已安装" }, - "title": "Магазин плагинов", - "uninstall": "Удалить" + "title": "插件商店", + "uninstall": "卸载" } } diff --git a/locales/ru_RU/setting.json b/locales/ru_RU/setting.json index ed90527839d7..fbbe739b165a 100644 --- a/locales/ru_RU/setting.json +++ b/locales/ru_RU/setting.json @@ -1,29 +1,29 @@ { "danger": { "clear": { - "action": "Очистить все", - "confirm": "Подтвердить очистку всех данных чата?", - "success": "Все сообщения сессии были очищены", - "title": "Очистить все сообщения сессии", - "desc": "Это действие удалит все данные сеанса, включая помощника, файлы, сообщения, плагины и т. д." + "action": "Очистить сейчас", + "confirm": "Подтвердить очистку всех чатов?", + "desc": "Это действие удалит все данные сеанса, включая помощника, файлы, сообщения, плагины и т. д.", + "success": "Все сообщения сеанса очищены", + "title": "Очистить все сообщения сеанса" }, "reset": { - "action": "Сбросить настройки", + "action": "Сбросить сейчас", "confirm": "Подтвердить сброс всех настроек?", "currentVersion": "Текущая версия", - "desc": "Сброс всех настроек к значениям по умолчанию", - "title": "Сброс всех настроек" + "desc": "Сбросить все параметры настроек на значения по умолчанию", + "title": "Сбросить все настройки" } }, "header": { "global": "Глобальные настройки", - "session": "Настройки сессии", - "sessionWithName": "Настройки сессии · {{name}}" + "session": "Настройки сеанса", + "sessionWithName": "Настройки сеанса · {{name}}" }, "llm": { "AzureOpenAI": { "endpoint": { - "desc": "Это значение можно найти в разделе «Ключи и конечные точки» при проверке ресурса на сайте Azure.", + "desc": "Это значение можно найти в разделе «Ключи и конечные точки» при проверке ресурсов в портале Azure", "placeholder": "https://docs-test-001.openai.azure.com", "title": "Адрес API Azure" }, @@ -33,67 +33,67 @@ }, "title": "Настройки Azure OpenAI", "token": { - "desc": "Это значение можно найти в разделе «Ключи и конечные точки» при проверке ресурса на сайте Azure. Можно использовать KEY1 или KEY2", - "placeholder": "Azure Ключ API", - "title": "Ключ API" + "desc": "Это значение можно найти в разделе «Ключи и конечные точки» при проверке ресурсов в портале Azure. Можно использовать KEY1 или KEY2", + "placeholder": "Ключ API Azure", + "title": "API-ключ" } }, "OpenAI": { "azureApiVersion": { - "desc": "Версия API Azure в формате ГГГГ-ММ-ДД, проверьте [последнюю версию](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)", + "desc": "Версия API Azure, следуйте формату YYYY-MM-DD, см. [последнюю версию](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)", "fetch": "Получить список", - "title": "Версия Azure Api" + "title": "Версия API Azure" }, "check": { "button": "Проверить", - "desc": "Проверьте правильность заполнения Api Key и адреса прокси-сервера.", - "pass": "Подключение успешно", - "title": "Проверка возможности подключения" + "desc": "Проверить правильность заполнения ключа API и адреса прокси", + "pass": "Проверка пройдена", + "title": "Проверка подключения" + }, + "customModelName": { + "desc": "Добавить пользовательскую модель, разделяя их запятыми (,)", + "placeholder": "модель1,модель2,модель3", + "title": "Имя пользовательской модели" }, "endpoint": { - "desc": "Должен содержать http(s):// в дополнение к адресу по умолчанию.", + "desc": "Помимо адреса по умолчанию, должен содержать http(s)://", "placeholder": "https://api.openai.com/v1", - "title": "адрес API прокси" + "title": "Адрес прокси-интерфейса" }, "models": { "count": "Всего поддерживается {{count}} моделей", "desc": "Поддерживаемые модели", - "fetch": "Получение списка моделей", - "notSupport": "Azure OpenAI в настоящее время не поддерживает просмотр списков моделей", - "notSupportTip": "Необходимо убедиться в том, что имя развертывания совпадает с именем модели", - "refetch": "Получение списка моделей", + "fetch": "Получить список моделей", + "notSupport": "Azure OpenAI временно не поддерживает просмотр списка моделей", + "notSupportTip": "Вы должны самостоятельно убедиться, что имя развертывания совпадает с именем модели", + "refetch": "Повторно получить список моделей", "title": "Список моделей" }, "title": "Настройки OpenAI", "token": { - "desc": "Используйте свой собственный ключ OpenAI", + "desc": "Используйте свой ключ OpenAI", "placeholder": "Ключ API OpenAI", - "title": "Ключ API" + "title": "API-ключ" }, "useAzure": { - "desc": "Использование служб OpenAI из Azure", + "desc": "Использовать услуги OpenAI, предоставленные Azure", "fetch": "Получить список", - "title": "Azure OpenAI", - "serverConfig": "Администратор настроил сервер для использования Azure OpenAI. Переключение запрещено." - }, - "customModelName": { - "desc": "Добавьте пользовательскую модель, разделяя их запятыми (,)", - "placeholder": "model1,model2,model3", - "title": "Название пользовательской модели" + "serverConfig": "Администратор на сервере настроил использование Azure OpenAI, переключение запрещено", + "title": "Azure OpenAI" } }, - "waitingForMore": "<1>Планируется доступ к другим моделям, так что следите за обновлениями ✨" + "waitingForMore": "Больше моделей в <1>плане на подключение, ожидайте ✨" }, "plugin": { "addTooltip": "Добавить пользовательский плагин", "clearDeprecated": "Удалить устаревшие плагины", - "empty": "Нет установленных плагинов, добро пожаловать в <1>Магазин плагинов", + "empty": "Нет установленных плагинов. Добро пожаловать в <1>Магазин плагинов для исследования", "installStatus": { "deprecated": "Удалено" }, "settings": { - "hint": "Пожалуйста, заполните следующие настройки на основе описания", - "title": "{{id}} Настройки плагина", + "hint": "Пожалуйста, заполните следующие настройки в соответствии с описанием", + "title": "Настройки плагина {{id}}", "tooltip": "Настройки плагина" }, "store": "Магазин плагинов" @@ -106,74 +106,74 @@ "title": "Цвет фона" }, "description": { - "placeholder": "Пожалуйста, введите описание помощника", + "placeholder": "Введите описание помощника", "title": "Описание помощника" }, "name": { - "placeholder": "Пожалуйста, введите имя ассистента", - "title": "Название" + "placeholder": "Введите имя помощника", + "title": "Имя" }, "prompt": { - "placeholder": "Пожалуйста, введите роль", - "title": "Промт роли" + "placeholder": "Введите слова подсказки для роли", + "title": "Настройка роли" }, "tag": { - "placeholder": "Пожалуйста, введите тег", + "placeholder": "Введите тег", "title": "Тег" }, "title": "Информация о помощнике" }, "settingChat": { + "autoCreateTopicThreshold": { + "desc": "После превышения этого значения сообщений будет автоматически создана тема", + "title": "Порог сообщений" + }, "chatStyleType": { - "title": "Стиль окна чата", + "title": "Стиль чата", "type": { - "chat": "Режим чата", - "docs": "Режим документа" + "chat": "Режим диалога", + "docs": "Режим документов" } }, "compressThreshold": { - "desc": "Когда количество несжатых сообщений истории превысит это значение, будет произведено сжатие", - "title": "Порог сжатия длины истории сообщений" + "desc": "Когда количество некомпрессированных сообщений превышает это значение, будет выполнено сжатие", + "title": "Порог сжатия истории сообщений" + }, + "enableAutoCreateTopic": { + "desc": "Автоматическое создание темы во время разговора, работает только во временных темах", + "title": "Автоматическое создание темы" }, "enableCompressThreshold": { - "title": "Включить порог сжатия длины сообщений истории" + "title": "Включить порог сжатия истории сообщений" }, "enableHistoryCount": { - "alias": "Неограниченный", - "limited": "Включать только {{number}} сообщение(й) сессии", - "title": "Ограничить количество истории сообщений", - "unlimited": "Неограниченное количество истории сообщений" + "alias": "Без ограничений", + "limited": "Содержит только {{number}} сообщений", + "title": "Ограничение истории сообщений", + "unlimited": "Без ограничений истории сообщений" }, "historyCount": { - "desc": "Количество сообщений, передаваемых в каждом запросе из истории", - "title": "Количество сообщений в прикрепленной истории" + "desc": "Количество сообщений, передаваемых с каждым запросом", + "title": "Количество сообщений в истории" }, "inputTemplate": { - "desc": "В этот шаблон будет залито последнее сообщение пользователя", - "placeholder": "{{text}} будут заменены входной информацией, поступающей в режиме реального времени", - "title": "Предварительная обработка пользовательского ввода" - }, - "title": "Настройки чата", - "autoCreateTopicThreshold": { - "desc": "Когда текущее количество сообщений превысит эту величину, будет автоматически создана тема", - "title": "Порог сообщений" + "desc": "Последнее сообщение пользователя будет заполнено в этот шаблон", + "placeholder": "Шаблон ввода {{text}} будет заменен на реальную информацию", + "title": "Шаблон ввода пользователя" }, - "enableAutoCreateTopic": { - "desc": "Автоматическое создание темы во время разговора, действует только во временной теме", - "title": "Включить автоматическое создание темы" - } + "title": "Настройки чата" }, "settingModel": { "enableMaxTokens": { - "title": "Включить ограничение токенов на один ответ" + "title": "Включить ограничение на количество токенов" }, "frequencyPenalty": { - "desc": "Чем больше значение, тем больше вероятность сокращения повторяющихся слов", + "desc": "Чем выше значение, тем больше вероятность уменьшения повторяющихся слов", "title": "Штраф за частоту" }, "maxTokens": { - "desc": "Максимальное количество токенов, используемых в одном взаимодействии", - "title": "Лимит на один ответ" + "desc": "Максимальное количество токенов для одного взаимодействия", + "title": "Ограничение на количество токенов" }, "model": { "desc": "Модель ChatGPT", @@ -186,85 +186,63 @@ "title": "Модель" }, "presencePenalty": { - "desc": "Чем больше значение, тем больше вероятность общение на левые темы", - "title": "Точность темы" + "desc": "Чем выше значение, тем больше вероятность расширения на новые темы", + "title": "Свежесть темы" }, "temperature": { - "desc": "Чем больше значение, тем более случайным будет ответ", + "desc": "Чем выше значение, тем более случайным будет ответ", "title": "Случайность", "titleWithValue": "Случайность {{value}}" }, "title": "Настройки модели", "topP": { - "desc": "Аналогично случайности, но не изменяются вместе со случайностью", - "title": "Ядерное сэмплирование" - } - }, - "settingOpenAI": { - "endpoint": { - "desc": "Должен включать http(s):// в дополнение к адресу по умолчанию.", - "placeholder": "https://api.openai.com/v1", - "title": "Адрес прокси API" - }, - "title": "Настройки OpenAI", - "token": { - "desc": "Используйте свой собственный ключ OpenAI", - "placeholder": "API-ключ OpenAI", - "title": "API-ключ" + "desc": "Похоже на случайность, но не изменяется вместе с параметром случайности", + "title": "Верхний P-процент" } }, "settingPlugin": { - "title": "Список плагинов", - "add": "Добавить", - "addTooltip": "Добавить кастомный плагин", - "config": "{{id}} Конфигурация плагина", - "clearDeprecated": "Удалить недействительные плагины", - "settings": "Настройки плагинов" + "title": "Список плагинов" }, "settingSystem": { "accessCode": { - "desc": "Шифрование доступа включено администратором", - "placeholder": "Пожалуйста, введите пароль доступа", + "desc": "Администратор включил зашифрованный доступ", + "placeholder": "Введите пароль доступа", "title": "Пароль доступа" }, "title": "Настройки системы" }, "settingTTS": { + "openai": { + "sttModel": "Модель распознавания речи OpenAI", + "ttsModel": "Модель синтеза речи OpenAI" + }, "showAllLocaleVoice": { "desc": "Если отключено, отображаются только голоса текущего языка", "title": "Показать все голоса локали" }, + "stt": "Настройки распознавания речи", + "sttAutoStop": { + "desc": "Если отключено, распознавание речи не остановится автоматически, необходимо нажать кнопку остановки вручную", + "title": "Автоматическая остановка распознавания речи" + }, + "sttLocale": { + "desc": "Язык речевого ввода, этот параметр может улучшить точность распознавания речи", + "title": "Язык распознавания речи" + }, "sttService": { - "desc": "где broswer - это встроенная в браузер служба распознавания речи", + "desc": "Для браузера используется встроенная служба распознавания речи", "title": "Служба распознавания речи" }, - "title": "Служба речи", + "title": "Служба распознавания и синтеза речи", + "tts": "Настройки синтеза речи", "ttsService": { - "desc": "Если используется услуга синтеза речи OpenAI, убедитесь, что услуга модели OpenAI включена", + "desc": "Если используется служба синтеза речи OpenAI, убедитесь, что служба моделей OpenAI включена", "title": "Служба синтеза речи" }, "voice": { - "title": "Голосовой синтез", - "desc": "Выберите голос для текущего помощника, различные службы TTS поддерживают разные источники звука", - "preview": "Предварительный просмотр голоса" - }, - "openai": { - "sttModel": "Модель распознавания речи OpenAI", - "ttsModel": "Модель синтеза речи OpenAI" - }, - "stt": "Настройки распознавания речи", - "sttLocale": { - "desc": "Язык речи для ввода речи, этот параметр может повысить точность распознавания речи", - "title": "Язык распознавания речи" - }, - "sttPersisted": { - "desc": "При включении распознавание речи не будет автоматически завершаться, необходимо вручную нажать кнопку завершения", - "title": "Вручную завершить распознавание речи" - }, - "tts": "Настройки синтеза речи", - "sttAutoStop": { - "desc": "После отключения распознавания речи оно не будет автоматически останавливаться, вам нужно будет вручную нажать кнопку завершения", - "title": "Автоматическое завершение распознавания речи" + "desc": "Выберите голос для текущего помощника, различные службы синтеза речи поддерживают разные голоса", + "preview": "Прослушать голос", + "title": "Голос синтеза речи" } }, "settingTheme": { @@ -272,41 +250,41 @@ "title": "Аватар" }, "fontSize": { - "desc": "Размер шрифта содержимого чата", + "desc": "Размер шрифта для чата", "title": "Размер шрифта" }, "lang": { - "title": "Языковые настройки", - "autoMode": "Следовать за системой" + "autoMode": "Следовать системе", + "title": "Язык" }, "neutralColor": { - "desc": "Пользовательская шкала серого для различных цветовых тенденций", + "desc": "Настройка нейтральных оттенков для различных цветовых предпочтений", "title": "Нейтральный цвет" }, "primaryColor": { - "desc": "Пользовательский цвет темы", - "title": "Цвет темы" + "desc": "Настройка основного цвета темы", + "title": "Основной цвет" }, "themeMode": { "auto": "Авто", - "dark": "Темная", + "dark": "Тёмная", "light": "Светлая", "title": "Тема" }, "title": "Настройки темы" }, "submitAgentModal": { - "tooltips": "Поделиться на рынке помощников", "button": "Отправить агента", "identifier": "Идентификатор агента", - "metaMiss": "Пожалуйста, заполните информацию об агенте перед отправкой. Необходимо указать имя, описание и метки", - "placeholder": "Введите идентификатор агента, который должен быть уникальным, например, web-development" + "metaMiss": "Пожалуйста, заполните информацию об агенте перед отправкой. Необходимо указать имя, описание и теги", + "placeholder": "Введите идентификатор агента, который должен быть уникальным, например, веб-разработка", + "tooltips": "Поделиться на рынке агентов" }, "tab": { - "agent": "Помощник по умолчанию", + "agent": "Агент по умолчанию", "common": "Общие настройки", - "llm": "Пользовательский API GPT", - "tts": "Сервис речи" + "llm": "Языковая модель", + "tts": "Голосовые услуги" }, "tools": { "builtins": { @@ -318,6 +296,6 @@ "noEnabled": "Нет включенных плагинов", "store": "Магазин плагинов" }, - "title": "Расширенные инструменты" + "title": "Дополнительные инструменты" } } diff --git a/locales/zh_CN/common.json b/locales/zh_CN/common.json index 20b711600348..6c71edf2b163 100644 --- a/locales/zh_CN/common.json +++ b/locales/zh_CN/common.json @@ -52,6 +52,7 @@ "lang": { "en": "英语", "en-US": "英语", + "fr-FR": "法语", "ja-JP": "日语", "ko-KR": "韩语", "ru-RU": "俄语", diff --git a/locales/zh_CN/plugin.json b/locales/zh_CN/plugin.json index a79bda5b8b39..c6fa51883c87 100644 --- a/locales/zh_CN/plugin.json +++ b/locales/zh_CN/plugin.json @@ -52,12 +52,9 @@ }, "manifest": { "desc": "LobeChat 将会通过该链接安装插件", - "jsonInvalid": " manifest 不符合规范,校验结果: \n\n {{error}}", - "label": "插件描述文件 Url 地址", + "label": "插件描述文件 (Manifest) URL", "preview": "预览 Manifest", - "refresh": "刷新", - "requestError": "请求该链接失败,请输入一个有效的链接,并检查链接是否允许跨域访问", - "urlError": "该链接没有返回 JSON 格式的内容, 请输入一个有效的链接" + "refresh": "刷新" }, "title": { "desc": "插件标题", @@ -66,13 +63,13 @@ } }, "metaConfig": "插件元信息配置", - "modalDesc": "添加自定义插件后,可用于插件开发验证,也可直接在会话中使用。插件开发文档请参考", + "modalDesc": "添加自定义插件后,可用于插件开发验证,也可直接在会话中使用。插件开发请参考<1>开发文档↗", "preview": { "card": "预览插件展示效果", "desc": "预览插件描述", "title": "插件名称预览" }, - "save": "保存", + "save": "安装插件", "saveSuccess": "插件设置保存成功", "tabs": { "manifest": "功能描述清单 (Manifest)", @@ -83,10 +80,12 @@ "updateSuccess": "插件设置更新成功" }, "error": { - "fetchError": "请求失败", + "fetchError": "请求该 manifest 链接失败,请确保链接的有效性,并检查链接是否允许跨域访问", "installError": "插件 {{name}} 安装失败", - "manifestInvalid": "描述文件格式不正确", - "noManifest": "描述文件不存在" + "manifestInvalid": " manifest 不符合规范,校验结果: \n\n {{error}}", + "noManifest": "描述文件不存在", + "reinstallError": "插件 {{name}} 刷新失败", + "urlError": "该链接没有返回 JSON 格式的内容, 请确保是有效的链接" }, "list": { "item": { @@ -101,7 +100,8 @@ }, "pluginList": "插件列表", "plugins": { - "unknown": "插件检测中..." + "loading": "插件检测中...", + "unknown": "未知插件" }, "setting": "插件设置", "settings": { diff --git a/locales/zh_TW/chat.json b/locales/zh_TW/chat.json index c78e1c0e7aef..92a94671583f 100644 --- a/locales/zh_TW/chat.json +++ b/locales/zh_TW/chat.json @@ -1,16 +1,16 @@ { - "agentDefaultMessage": "妳好,我是 **{{name}}**,妳可以立即與我開始對話,也可以前往 [助手設定](/chat/settings#session={{id}}) 完善我的資訊。", - "agentDefaultMessageWithSystemRole": "妳好,我是 **{{name}}**,{{systemRole}},讓我們開始對話吧!", + "agentDefaultMessage": "你好,我是 **{{name}}**,你可以立即與我開始對話,也可以前往 [助手設置](/chat/settings#session={{id}}) 完善我的信息。", + "agentDefaultMessageWithSystemRole": "你好,我是 **{{name}}**,{{systemRole}},讓我們開始對話吧!", "backToBottom": "查看最新訊息", - "clearCurrentMessages": "清空當前會話訊息", - "confirmClearCurrentMessages": "即將清空當前會話訊息,清空後將無法找回,請確認妳的操作", - "confirmRemoveSessionItemAlert": "即將刪除該助手,刪除後該將無法找回,請確認妳的操作", + "clearCurrentMessages": "清空當前對話", + "confirmClearCurrentMessages": "即將清空當前對話,清空後將無法找回,請確認你的操作", + "confirmRemoveSessionItemAlert": "即將刪除該助手,刪除後將無法找回,請確認你的操作", "defaultAgent": "自定義助手", "defaultSession": "自定義助手", "historyRange": "歷史範圍", "inbox": { - "defaultMessage": "妳好,我是妳的智能助手,妳可以問我任何問題,我會盡力回答妳。如果需要獲得更加專業或定制的助手,可以點擊`+`創建自定義助手", - "desc": "開啟大腦集群,激發思維火花。妳的智能助理,在這裡與妳交流一切", + "defaultMessage": "你好,我是你的智能助手,你可以問我任何問題,我會盡力回答你。如果需要獲得更專業或定制的助手,可以點擊`+`創建自定義助手", + "desc": "開啟大腦集群,激發思維火花。你的智能助理,在這裡與你交流一切", "title": "隨便聊聊" }, "newAgent": "新建助手", @@ -27,7 +27,7 @@ "download": "下載截圖", "imageType": "圖片格式", "screenshot": "截圖", - "settings": "導出設定", + "settings": "導出設置", "shareToShareGPT": "生成 ShareGPT 分享鏈接", "withBackground": "包含背景圖片", "withFooter": "包含頁腳", @@ -37,43 +37,40 @@ "stop": "停止", "stt": { "action": "語音輸入", - "loading": "辨識中...", - "prettifying": "美化中..." + "loading": "識別中...", + "prettifying": "潤色中..." }, "temp": "臨時", - "tokenDetail": "角色設定: {{systemRoleToken}} · 歷史訊息: {{chatsToken}}", + "tokenDetail": "角色設定: {{systemRoleToken}} · 歷史消息: {{chatsToken}}", "tokenTag": { "overload": "超過限制", "remained": "剩餘", "used": "使用" }, "topic": { + "confirmRemoveAll": "即將刪除全部話題,刪除後將不可恢復,請謹慎操作。", "confirmRemoveTopic": "即將刪除該話題,刪除後將不可恢復,請謹慎操作。", + "confirmRemoveUnstarred": "即將刪除未收藏話題,刪除後將不可恢復,請謹慎操作。", "defaultTitle": "默認話題", - "saveCurrentMessages": "將當前會話保存為話題", - "searchPlaceholder": "搜索話題...", - "deleteAll": "刪除所有話題", - "deleteUnstarred": "刪除未收藏話題", - "title": "話題列表", - "confirmRemoveAll": "即將刪除全部話題,刪除後將無法恢復,請謹慎操作。", - "confirmRemoveUnstarred": "即將刪除未收藏話題,刪除後將無法恢復,請謹慎操作。", + "openNewTopic": "開啟新話題", "removeAll": "刪除全部話題", "removeUnstarred": "刪除未收藏話題", - "openNewTopic": "開啟新話題" + "saveCurrentMessages": "將當前對話保存為話題", + "searchPlaceholder": "搜索話題...", + "title": "話題列表" }, "translate": { - "clear": "刪除翻譯", - "action": "翻譯" + "action": "翻譯", + "clear": "刪除翻譯" }, - "translateTo": "翻譯", "tts": { "action": "語音朗讀", - "clear": "清除語音" + "clear": "刪除語音" }, - "updateAgent": "更新助理資訊", + "updateAgent": "更新助理信息", "upload": { "actionTooltip": "上傳圖片", - "dragDesc": "拖曳檔案到這裡,支援上傳多張圖片。按住 Shift 直接發送圖片", + "dragDesc": "拖拽文件到這裡,支持上傳多個圖片。按住 Shift 直接發送圖片", "dragTitle": "上傳圖片" }, "warp": "換行" diff --git a/locales/zh_TW/common.json b/locales/zh_TW/common.json index 640bc83c77ae..0863e5957707 100644 --- a/locales/zh_TW/common.json +++ b/locales/zh_TW/common.json @@ -1,21 +1,21 @@ { "about": "關於", "advanceSettings": "進階設定", - "agentMaxToken": "最大對話長度", + "agentMaxToken": "助手最大標記", "agentModel": "模型", "agentProfile": "助手資訊", - "appInitializing": "LobeChat 正在啟動,請稍候...", + "appInitializing": "LobeChat 初始化中,請耐心等候...", "archive": "歸檔", "autoGenerate": "自動生成", "autoGenerateTooltip": "基於提示詞自動生成助手描述", "cancel": "取消", - "changelog": "更新日誌", + "changelog": "變更日誌", "close": "關閉", - "confirmRemoveSessionItemAlert": "即將刪除該助手,刪除後將無法找回,請確認您的操作", + "confirmRemoveSessionItemAlert": "即將刪除此助手,刪除後將無法復原,請確認您的操作", "copy": "複製", "copySuccess": "複製成功", - "defaultAgent": "自定義助手", - "defaultSession": "自定義助手", + "defaultAgent": "預設助手", + "defaultSession": "預設助手", "delete": "刪除", "edit": "編輯", "export": "匯出設定", @@ -32,51 +32,51 @@ "import": "匯入設定", "importModal": { "finish": { - "onlySettings": "系統設置匯入成功", + "onlySettings": "系統設定匯入成功", "start": "開始使用", - "subTitle": "數據匯入成功,耗時 {{duration}} 秒。匯入明細如下:", - "title": "數據匯入完成" + "subTitle": "資料匯入成功,耗時 {{duration}} 秒。匯入明細如下:", + "title": "資料匯入完成" }, - "loading": "數據匯入中,請耐心等待...", + "loading": "資料匯入中,請耐心等候...", "result": { "added": "匯入成功", "errors": "匯入出錯", - "messages": "消息", + "messages": "訊息", "sessions": "助手", "skips": "重複跳過", "topics": "話題", - "type": "數據類型" + "type": "資料類型" }, - "title": "匯入數據" + "title": "匯入資料" }, "lang": { - "en": "英語", - "en-US": "英語", - "ja-JP": "日語", - "ko-KR": "韓語", - "ru-RU": "俄語", + "en": "英文", + "en-US": "英文", + "ja-JP": "日文", + "ko-KR": "韓文", + "ru-RU": "俄文", "zh": "簡體中文", "zh-CN": "簡體中文", - "zh-TW": "繁體中文" + "zh-TW": "繁體中文", + "fr-FR": "法語" }, - "layoutInitializing": "正在載入佈局...", + "layoutInitializing": "正在載入版面配置...", "noDescription": "暫無描述", "ok": "確定", "password": "密碼", "pin": "置頂", "pinOff": "取消置頂", "regenerate": "重新生成", - "rename": "重命名", + "rename": "重新命名", "reset": "重置", "retry": "重試", "send": "發送", - "sessionList": "助手列表", "setting": "設定", "share": "分享", "stop": "停止", "tab": { - "chat": "聊天", - "market": "探索", + "chat": "對話", + "market": "發現", "setting": "設定" }, "temp": "臨時", diff --git a/locales/zh_TW/plugin.json b/locales/zh_TW/plugin.json index 23649b5f1dd3..7c11857ec4d6 100644 --- a/locales/zh_TW/plugin.json +++ b/locales/zh_TW/plugin.json @@ -1,148 +1,128 @@ { "debug": { - "arguments": "參數", - "function_call": "函式呼叫", - "response": "回應", - "off": "關閉偵錯", - "on": "查看插件呼叫資訊" + "arguments": "調用參數", + "function_call": "函數調用", + "off": "關閉調試", + "on": "查看插件調用信息", + "response": "返回結果" }, "dev": { - "confirmDeleteDevPlugin": "您確定要刪除此本機外掛嗎?一旦刪除,將無法復原。", - "deleteSuccess": "外掛已成功刪除", + "confirmDeleteDevPlugin": "即將刪除該本地插件,刪除後將無法找回,是否刪除該插件?", + "deleteSuccess": "插件刪除成功", "manifest": { "identifier": { - "desc": "外掛的唯一識別碼", - "label": "識別碼" + "desc": "插件的唯一標識", + "label": "標識符" }, "mode": { - "local": "視覺設定", - "local-tooltip": "目前不支援視覺設定", - "url": "線上連結" + "local": "可視化配置", + "local-tooltip": "暫時不支持可視化配置", + "url": "在線鏈接" }, "name": { - "desc": "外掛的名稱", - "label": "名稱", - "placeholder": "搜尋引擎" + "desc": "插件標題", + "label": "標題", + "placeholder": "搜索引擎" } }, "meta": { "author": { - "desc": "外掛的作者", + "desc": "插件的作者", "label": "作者" }, "avatar": { - "desc": "外掛的圖示,可以是 Emoji 或網址", - "label": "圖示" + "desc": "插件的圖標,可以使用 Emoji,也可以使用 URL", + "label": "圖標" }, "description": { - "desc": "外掛的描述", + "desc": "插件描述", "label": "描述", - "placeholder": "從搜尋引擎取得資訊" + "placeholder": "查詢搜索引擎獲取信息" }, - "formFieldRequired": "此欄位必填", + "formFieldRequired": "該字段為必填項", "homepage": { - "desc": "外掛的官方首頁", + "desc": "插件的首頁", "label": "首頁" }, "identifier": { - "desc": "外掛的唯一識別碼,只支援英數字元、連字號 -,以及底線 _", - "errorDuplicate": "此識別碼已被其他外掛使用,請更改識別碼", - "label": "識別碼", - "pattenErrorMessage": "只允許英數字元、連字號 -,以及底線 _" + "desc": "插件的唯一標識,將從 manifest 中自動識別", + "errorDuplicate": "標識符和已有插件重複,請修改標識符", + "label": "標識符", + "pattenErrorMessage": "只能輸入英文字符、數字 、- 和_ 這兩個符號" }, "manifest": { - "desc": "LobeChat 會使用此連結安裝外掛", - "invalid": "輸入的 manifest 連結不正確或不符合標準", - "label": "外掛 Manifest 網址", - "urlError": "請輸入有效的網址", - "jsonInvalid": "manifest 不正確,驗證結果:\n\n {{error}}", + "desc": "LobeChat 將會通過該鏈接安裝插件", + "label": "插件描述文件 (Manifest) URL", "preview": "預覽 Manifest", - "refresh": "重新載入", - "requestError": "連結請求失敗,請確認網址是否正確且允許跨域存取" + "refresh": "刷新" }, "title": { - "desc": "外掛的名稱", - "label": "名稱", - "placeholder": "搜尋引擎" + "desc": "插件標題", + "label": "標題", + "placeholder": "搜索引擎" } }, - "metaConfig": "外掛後設資料設定", - "modalDesc": "新增自訂外掛後,可用於外掛開發測試或直接在對話中使用。請參考外掛開發文件以取得更多資訊。", + "metaConfig": "插件元信息配置", + "modalDesc": "添加自定義插件後,可用於插件開發驗證,也可直接在會話中使用。插件開發請參考<1>開發文檔↗", "preview": { - "card": "外掛顯示預覽", - "desc": "外掛描述預覽", - "title": "外掛名稱預覽" + "card": "預覽插件展示效果", + "desc": "預覽插件描述", + "title": "插件名稱預覽" }, - "save": "儲存", - "saveSuccess": "外掛設定已成功儲存", + "save": "安裝插件", + "saveSuccess": "插件設置保存成功", "tabs": { "manifest": "功能描述清單 (Manifest)", - "meta": "外掛後設資料" + "meta": "插件元信息" }, - "title": "新增自訂外掛", + "title": "添加自定義插件", "update": "更新", - "updateSuccess": "外掛設定已成功更新" + "updateSuccess": "插件設置更新成功" }, "error": { - "fetchError": "請求失敗", + "fetchError": "請求該 manifest 鏈接失敗,請確保鏈接的有效性,並檢查鏈接是否允許跨域訪問", "installError": "插件 {{name}} 安裝失敗", - "manifestInvalid": "描述檔格式無效", - "noManifest": "描述檔不存在" + "manifestInvalid": " manifest 不符合規範,校驗結果: \n\n {{error}}", + "noManifest": "描述文件不存在", + "reinstallError": "插件 {{name}} 刷新失敗", + "urlError": "該鏈接沒有返回 JSON 格式的內容, 請確保是有效的鏈接" }, "list": { "item": { - "local.config": "設定", - "local.title": "本機", - "deprecated.title": "已刪除" + "deprecated.title": "已刪除", + "local.config": "配置", + "local.title": "自定義" } }, "loading": { - "plugin": "外掛執行中...", - "content": "呼叫插件中..." + "content": "調用插件中...", + "plugin": "插件運行中..." }, - "pluginList": "外掛清單", + "pluginList": "插件列表", "plugins": { - "realtimeWeather": "即時天氣", - "searchEngine": "搜尋引擎", - "undefined": "正在偵測外掛...", - "websiteCrawler": "網站爬蟲", - "unknown": "外掛偵測進行中..." + "loading": "插件檢測中...", + "unknown": "未知插件" }, - "realtimeWeather": { - "data": { - "date": "日期", - "daytemp_float": "日間溫度", - "dayweather": "日間天氣", - "daywind": "日間風向", - "nighttemp_float": "夜間溫度", - "nightweather": "夜間天氣", - "nightwind": "夜間風向", - "week": "週" - }, - "title": "未來 7 天的天氣資料 ({{city}})", - "updateAt": "最後更新時間" - }, - "responseData": "回應資料", - "setting": "插件設置", + "setting": "插件設定", "settings": { "indexUrl": { - "title": "外掛市集索引", - "tooltip": "目前不支援編輯" + "title": "市場索引", + "tooltip": "暫不支持線上編輯,請透過部署時環境變數進行設定" }, - "modalDesc": "設定外掛市集的網址後,您可以使用自訂的外掛市集", - "title": "設定外掛市集" + "modalDesc": "配置插件市場的地址後,可以使用自定義的插件市場", + "title": "設定插件市場" }, "store": { "empty": "暫無已安裝插件", "install": "安裝", "installAllPlugins": "安裝全部", - "networkError": "獲取插件商店失敗,請檢查網路連線後重試", - "releasedAt": "發佈於 {{createdAt}}", + "networkError": "獲取插件商店失敗,請檢測網路連接後重試", + "releasedAt": "發布於 {{createdAt}}", "tabs": { "all": "全部", "installed": "已安裝" }, "title": "插件商店", - "uninstall": "解除安裝" + "uninstall": "卸載" } } diff --git a/locales/zh_TW/setting.json b/locales/zh_TW/setting.json index c684cf9a73a2..42861836d5c9 100644 --- a/locales/zh_TW/setting.json +++ b/locales/zh_TW/setting.json @@ -2,17 +2,17 @@ "danger": { "clear": { "action": "立即清除", - "confirm": "確定要清除所有聊天資料嗎?", + "confirm": "確認清除所有聊天資料?", + "desc": "將會清除所有對話資料,包括助手、檔案、訊息、外掛等", "success": "已清除所有對話訊息", - "title": "清除所有對話訊息", - "desc": "將會清除所有會話資料,包括助手、檔案、訊息、插件等" + "title": "清除所有對話訊息" }, "reset": { - "action": "立即重設", - "confirm": "確定要重設所有設定嗎?", - "currentVersion": "目前版本", - "desc": "將所有設定重設為預設值", - "title": "重設所有設定" + "action": "立即重置", + "confirm": "確認重置所有設定?", + "currentVersion": "當前版本", + "desc": "重置所有設定項回預設值", + "title": "重置所有設定" } }, "header": { @@ -23,9 +23,9 @@ "llm": { "AzureOpenAI": { "endpoint": { - "desc": "在 Azure 網站檢查資源時,可以在「金鑰和端點」部分找到此值。", + "desc": "從 Azure 門戶檢查資源時,可在“金鑰和終結點”部分中找到此值", "placeholder": "https://docs-test-001.openai.azure.com", - "title": "Azure API 網址" + "title": "Azure API 地址" }, "models": { "desc": "支援的模型", @@ -33,35 +33,40 @@ }, "title": "Azure OpenAI 設定", "token": { - "desc": "在 Azure 網站檢查資源時,可以在「金鑰和端點」部分找到此值。可以使用 KEY1 或 KEY2", + "desc": "從 Azure 門戶檢查資源時,可在“金鑰和終結點”部分中找到此值。 可以使用 KEY1 或 KEY2", "placeholder": "Azure API 金鑰", "title": "API 金鑰" } }, "OpenAI": { "azureApiVersion": { - "desc": "Azure API 版本,遵循 YYYY-MM-DD 格式,查詢[最新版本](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)", - "fetch": "取得列表", - "title": "Azure API 版本" + "desc": "Azure 的 API 版本,遵循 YYYY-MM-DD 格式,查閱[最新版本](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)", + "fetch": "獲取列表", + "title": "Azure Api 版本" }, "check": { "button": "檢查", - "desc": "檢查 API 金鑰和代理伺服器網址是否正確填寫。", - "pass": "連線成功", - "title": "檢查連線狀態" + "desc": "測試 Api 金鑰與代理地址是否正確填寫", + "pass": "檢查通過", + "title": "連通性檢查" + }, + "customModelName": { + "desc": "增加自訂模型,多個模型使用逗號(,) 隔開", + "placeholder": "model1,model2,model3", + "title": "自訂模型名稱" }, "endpoint": { - "desc": "除了預設網址外,必須包含 http(s)://", + "desc": "除預設地址外,必須包含 http(s)://", "placeholder": "https://api.openai.com/v1", - "title": "API 代理網址" + "title": "介面代理地址" }, "models": { - "count": "總共支援 {{count}} 個模型", + "count": "共支援 {{count}} 個模型", "desc": "支援的模型", - "fetch": "取得模型列表", - "notSupport": "Azure OpenAI 目前不支援檢視模型列表", - "notSupportTip": "請確保部署名稱與模型名稱相符", - "refetch": "重新取得模型列表", + "fetch": "獲取模型列表", + "notSupport": "Azure OpenAI 暫不支援查看模型列表", + "notSupportTip": "你需要自行確保部署名稱與模型名稱一致", + "refetch": "重新獲取模型列表", "title": "模型列表" }, "title": "OpenAI 設定", @@ -72,31 +77,26 @@ }, "useAzure": { "desc": "使用 Azure 提供的 OpenAI 服務", - "fetch": "取得列表", - "title": "Azure OpenAI", - "serverConfig": "管理員已在伺服器端啟用 Azure OpenAI,禁止切換" - }, - "customModelName": { - "desc": "增加自訂模型,多個模型使用逗號(,) 隔開", - "placeholder": "model1,model2,model3", - "title": "自訂模型名稱" + "fetch": "獲取列表", + "serverConfig": "管理員在服務端配置開啟了 Azure OpenAI,禁止切換", + "title": "Azure OpenAI" } }, - "waitingForMore": "<1>計劃支援其他模型,敬請期待 ✨" + "waitingForMore": "更多模型正在 <1>計劃接入 中,敬請期待 ✨" }, "plugin": { - "addTooltip": "新增自訂外掛程式", - "clearDeprecated": "清除已棄用的外掛程式", - "empty": "目前沒有安裝任何外掛程式,歡迎前往 <1>外掛程式商店 進行探索", + "addTooltip": "新增自訂外掛", + "clearDeprecated": "清除已棄用的外掛", + "empty": "目前沒有安裝任何外掛,歡迎前往 <1>外掛商店 探索", "installStatus": { - "deprecated": "已移除" + "deprecated": "已解除安裝" }, "settings": { "hint": "請根據描述填寫以下設定", - "title": "{{id}} 外掛程式設定", - "tooltip": "外掛程式設定" + "title": "{{id}} 外掛設定", + "tooltip": "外掛設定" }, - "store": "外掛程式商店" + "store": "外掛商店" }, "settingAgent": { "avatar": { @@ -106,24 +106,28 @@ "title": "背景色" }, "description": { - "placeholder": "請輸入助理描述", - "title": "助理描述" + "placeholder": "請輸入助手描述", + "title": "助手描述" }, "name": { - "placeholder": "請輸入助理名稱", + "placeholder": "請輸入助手名稱", "title": "名稱" }, "prompt": { - "placeholder": "請輸入角色提示", - "title": "角色提示" + "placeholder": "請輸入角色 Prompt 提示詞", + "title": "角色設定" }, "tag": { "placeholder": "請輸入標籤", "title": "標籤" }, - "title": "助理資訊" + "title": "助手資訊" }, "settingChat": { + "autoCreateTopicThreshold": { + "desc": "當前訊息數超過設定值後,將自動建立話題", + "title": "訊息閾值" + }, "chatStyleType": { "title": "聊天視窗樣式", "type": { @@ -132,11 +136,15 @@ } }, "compressThreshold": { - "desc": "當未壓縮的歷史訊息超過此值時,將進行壓縮", + "desc": "當未壓縮的歷史訊息超過該值時,將進行壓縮", "title": "歷史訊息長度壓縮閾值" }, + "enableAutoCreateTopic": { + "desc": "對話過程中是否自動建立話題,僅在臨時話題中生效", + "title": "自動建立話題" + }, "enableCompressThreshold": { - "title": "是否啟用歷史訊息長度壓縮閾值" + "title": "是否開啟歷史訊息長度壓縮閾值" }, "enableHistoryCount": { "alias": "不限制", @@ -149,30 +157,22 @@ "title": "附帶歷史訊息數" }, "inputTemplate": { - "desc": "使用者最新的一條訊息會填充到此範本", - "placeholder": "前置處理範本 {{text}} 將替換為即時輸入資訊", - "title": "使用者輸入前置處理" - }, - "title": "聊天設定", - "autoCreateTopicThreshold": { - "desc": "當前訊息數超過設定該值後,將自動創建話題", - "title": "訊息閾值" + "desc": "使用者最新的一條訊息會填充到此模板", + "placeholder": "預處理模板 {{text}} 將替換為實時輸入資訊", + "title": "使用者輸入預處理" }, - "enableAutoCreateTopic": { - "desc": "會話過程中是否自動創建話題,僅在臨時話題中生效", - "title": "自動創建話題" - } + "title": "聊天設定" }, "settingModel": { "enableMaxTokens": { "title": "啟用單次回覆限制" }, "frequencyPenalty": { - "desc": "值越大,越有可能降低重複字詞", + "desc": "數值越大,越有可能降低重複字詞", "title": "頻率懲罰度" }, "maxTokens": { - "desc": "單次互動所用的最大 Token 數", + "desc": "單次互動所使用的最大 Token 數", "title": "單次回覆限制" }, "model": { @@ -186,85 +186,63 @@ "title": "模型" }, "presencePenalty": { - "desc": "值越大,越有可能延伸到新話題", + "desc": "數值越大,越有可能擴展到新話題", "title": "話題新鮮度" }, "temperature": { - "desc": "值越大,回覆越隨機", + "desc": "數值越大,回覆越隨機", "title": "隨機性", "titleWithValue": "隨機性 {{value}}" }, "title": "模型設定", "topP": { "desc": "與隨機性類似,但不要和隨機性一起更改", - "title": "核心抽樣參數" - } - }, - "settingOpenAI": { - "endpoint": { - "desc": "除了預設網址外,必須包含 http(s)://", - "placeholder": "https://api.openai.com/v1", - "title": "API 代理網址" - }, - "title": "OpenAI 設定", - "token": { - "desc": "使用自己的 OpenAI 金鑰", - "placeholder": "OpenAI API 金鑰", - "title": "API 金鑰" + "title": "核採樣" } }, "settingPlugin": { - "add": "新增", - "addTooltip": "新增自訂外掛", - "clearDeprecated": "移除過時外掛", - "config": "{{id}} 外掛設定", - "settings": "設定外掛市場", - "title": "外掛列表" + "title": "插件列表" }, "settingSystem": { "accessCode": { - "desc": "管理員已啟用加密存取", - "placeholder": "請輸入存取密碼", - "title": "存取密碼" + "desc": "管理員已開啟加密訪問", + "placeholder": "請輸入訪問密碼", + "title": "訪問密碼" }, "title": "系統設定" }, "settingTTS": { + "openai": { + "sttModel": "OpenAI 語音識別模型", + "ttsModel": "OpenAI 語音合成模型" + }, "showAllLocaleVoice": { "desc": "關閉則只顯示當前語種的聲源", "title": "顯示所有語種聲源" }, + "stt": "語音識別設定", + "sttAutoStop": { + "desc": "關閉後,語音識別將不會自動結束,需要手動點擊結束按鈕", + "title": "自動結束語音識別" + }, + "sttLocale": { + "desc": "語音輸入的語種,此選項可提高語音識別準確率", + "title": "語音識別語種" + }, "sttService": { "desc": "其中 broswer 為瀏覽器原生的語音識別服務", "title": "語音識別服務" }, "title": "語音服務", + "tts": "語音合成設定", "ttsService": { "desc": "如使用 OpenAI 語音合成服務,需要保證 OpenAI 模型服務已開啟", "title": "語音合成服務" }, "voice": { - "title": "語音合成聲源", "desc": "為當前助手挑選一個聲音,不同 TTS 服務支持的聲源不同", - "preview": "預覽" - }, - "openai": { - "sttModel": "OpenAI 語音識別模型", - "ttsModel": "OpenAI 語音合成模型" - }, - "stt": "語音識別設定", - "sttLocale": { - "desc": "語音輸入的語言,此選項可提高語音識別準確率", - "title": "語音識別語言" - }, - "sttPersisted": { - "desc": "開啟後,語音識別將不會自動結束,需要手動點擊結束按鈕", - "title": "手動結束語音識別" - }, - "tts": "語音合成設定", - "sttAutoStop": { - "desc": "關閉後,語音識別將不會自動結束,需要手動點擊結束按鈕", - "title": "自動結束語音識別" + "preview": "試聽聲源", + "title": "語音合成聲源" } }, "settingTheme": { @@ -272,20 +250,20 @@ "title": "頭像" }, "fontSize": { - "desc": "聊天內容的字型大小", - "title": "字型大小" + "desc": "聊天內容的字體大小", + "title": "字體大小" }, "lang": { - "title": "語言設定", - "autoMode": "跟隨系統" + "autoMode": "跟隨系統", + "title": "語言" }, "neutralColor": { - "desc": "不同色彩傾向的灰階自訂", + "desc": "不同色彩傾向的灰階自定義", "title": "中性色" }, "primaryColor": { - "desc": "自訂主題顏色", - "title": "主題顏色" + "desc": "自定義主題色", + "title": "主題色" }, "themeMode": { "auto": "自動", @@ -296,28 +274,28 @@ "title": "主題設定" }, "submitAgentModal": { - "tooltips": "分享到助手市場", "button": "提交助手", - "identifier": "助手識別符", - "metaMiss": "請補全助手資訊後提交,需要包含名稱、描述和標籤", - "placeholder": "請輸入助手的識別符,需要是唯一的,例如 web-development" + "identifier": "助手標識符", + "metaMiss": "請補全助手信息後提交,需要包含名稱、描述和標籤", + "placeholder": "請輸入助手的標識符,需要是唯一的,比如 web-development", + "tooltips": "分享到助手市場" }, "tab": { - "agent": "預設助理", - "common": "通用設定", + "agent": "默認助手", + "common": "通用設置", "llm": "語言模型", "tts": "語音服務" }, "tools": { "builtins": { - "groupName": "內建" + "groupName": "內置" }, "plugins": { "enabled": "已啟用 {{num}}", - "groupName": "外掛程式", - "noEnabled": "目前沒有已啟用的外掛程式", - "store": "外掛程式商店" + "groupName": "插件", + "noEnabled": "暫無啟用插件", + "store": "插件商店" }, - "title": "擴充工具" + "title": "擴展工具" } } diff --git a/package.json b/package.json index 9246b4b319bc..e13ede6b8878 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,18 @@ { "name": "@lobehub/chat", "version": "0.110.10", - "description": "An open-source, extensible (Function Calling), high-performance chatbot framework. It supports one-click free deployment of your private ChatGPT/LLM web application", + "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.", "keywords": [ + "framework", "chatbot", - "ChatGPT", - "LobeHub", - "typescript", - "Vercel AI SDK", - "Next.js", - "OpenAI" + "chatgpt", + "nextjs", + "vercel-ai", + "openai", + "azure-openai", + "visual-model", + "tts", + "stt" ], "homepage": "https://github.com/lobehub/lobe-chat", "bugs": { diff --git a/src/locales/default/common.ts b/src/locales/default/common.ts index 0d4473800975..e13b3713bc1d 100644 --- a/src/locales/default/common.ts +++ b/src/locales/default/common.ts @@ -52,6 +52,7 @@ export default { lang: { 'en': '英语', 'en-US': '英语', + 'fr-FR': '法语', 'ja-JP': '日语', 'ko-KR': '韩语', 'ru-RU': '俄语', diff --git a/src/locales/options.ts b/src/locales/options.ts index 10e11054fb32..8f25817b7eb8 100644 --- a/src/locales/options.ts +++ b/src/locales/options.ts @@ -32,6 +32,10 @@ export const localeOptions: LocaleOptions = [ label: 'Russian', value: 'ru-RU', }, + { + label: 'Français', + value: 'fr-FR', + }, ] as LocaleOptions; export const supportLangs: string[] = localeOptions.map((i) => i.value); diff --git a/src/locales/resources/fr_FR.ts b/src/locales/resources/fr_FR.ts new file mode 100644 index 000000000000..c9f86286b0dc --- /dev/null +++ b/src/locales/resources/fr_FR.ts @@ -0,0 +1,23 @@ +import chat from '../../../locales/fr_FR/chat.json'; +import common from '../../../locales/fr_FR/common.json'; +import empty from '../../../locales/fr_FR/empty.json'; +import error from '../../../locales/fr_FR/error.json'; +import market from '../../../locales/fr_FR/market.json'; +import migration from '../../../locales/fr_FR/migration.json'; +import plugin from '../../../locales/fr_FR/plugin.json'; +import setting from '../../../locales/fr_FR/setting.json'; +import welcome from '../../../locales/fr_FR/welcome.json'; + +const resources = { + chat, + common, + empty, + error, + market, + migration, + plugin, + setting, + welcome, +} as const; + +export default resources; diff --git a/src/locales/resources/index.ts b/src/locales/resources/index.ts index c1d961d42ee7..bde29da699f5 100644 --- a/src/locales/resources/index.ts +++ b/src/locales/resources/index.ts @@ -1,4 +1,5 @@ import en_US from './en_US'; +import fr_FR from './fr_FR'; import ja_JP from './ja_JP'; import ko_KR from './ko_KR'; import ru_RU from './ru_RU'; @@ -7,6 +8,7 @@ import zh_TW from './zh_TW'; const resources = { 'en-US': en_US, + 'fr-FR': fr_FR, 'ja-JP': ja_JP, 'ko-KR': ko_KR, 'ru-RU': ru_RU,