diff --git a/src/i18n/lang/en.ts b/src/i18n/lang/en.ts index a27641f8fc6142c7dea4d97c8da8dce808e1ced8..c61da9e054ac0b1c4e2bd0a796d4af278f674a9a 100644 --- a/src/i18n/lang/en.ts +++ b/src/i18n/lang/en.ts @@ -7,90 +7,89 @@ export default { edit: 'Edit {name}', delete: 'Delete', search: 'Search', - null: 'No Data', + null: 'No data available.', createTime: 'Create Time', - operate: 'Operate', + operate: 'Operation', copy: 'Copy', icon: 'Icon', tip: 'Tip', - delete_success: 'Delete successfully', + delete_success: 'Deleted successfully.', }, settings: { model: 'Model', setting: 'Settings', model_setting: 'Models', - api_key_management: 'API KEY', + api_key_management: 'API Key', added_model: 'Added Models', - model_provider: 'Provider', - select_model: 'Select Model', - new_api_key: 'New API KEY', + model_provider: 'Providers', + select_model: 'Model', + new_api_key: 'New API Key', secret_key: 'Secret Key', secret_key_desc: 'Description', - confirm_to_delete: 'Confirm to delete this model?', + confirm_to_delete: 'Are you sure you want to delete this model?', placeHolder: { - url: 'Please enter the URL', - api_key: 'Please enter the API KEY', - model_name: 'Please enter the model', - max_token: 'Please enter the maximum number of tokens', + url: 'URL', + api_key: 'Enter the API key.', + model_name: 'Enter the model.', + max_token: 'Enter the maximum number of tokens.', }, }, home: { name: 'openEuler Intelligence', }, - tabs: { - work: 'Work', - private: 'Private', - collect: 'Collect', - like: 'Like', - }, + //tabs: { + //work: 'Work', + //private: 'Private', + //collect: 'Collect', + //like: 'Like', + //}, menu: { - dialogue: 'Dialogue', + dialogue: 'Chats',//前端整体统一使用Chat,infotip和错误信息酌情使用conversation,全局不使用dialog plugin_center: 'Plugin Center', app_center: 'App Center', - sql: 'witchainD', + sql: 'WitChainD',//WitChainD全局统一首字母大写 settings: 'Settings', }, semantic: { close: 'Close', - semantic_interface: 'Semantic Interface', - max_select_mcp_server: 'Choose up to {num} mcp services', - mcp_service: 'MCP Service', + semantic_interface: 'Semantic Interfaces',//tab名使用复数Semantic Interfaces,Create Plugin下拉选项使用单数Semantic Interface,需新增一个词条 + max_select_mcp_server: 'Select up to {num} MCP services.',//前端MCP统一用service,后端调用使用server + mcp_service: 'MCP Services', create_plugin: 'Create Plugin', - semantic_interface_center: 'Semantic interface center', + semantic_interface_center: 'Semantic Interface Center', all_select: 'All', - interface_name: 'Interface name', - interface_introduction: 'Interface introduction', + interface_name: 'Interface Name', + interface_introduction: 'Interface Introduction', username: 'Username', interface_search: 'Search', interface_upload: 'Upload', - all_interface: 'All interface', - my_upload: 'My upload', - my_favorite: 'My favorite', + //all_interface: 'All interface', + my_upload: 'My Uploads', + my_favorite: 'My Favorites', interface_edit: 'Edit', interface_delete: 'Delete', - no_data: 'No data', + no_data: 'No data available.', upload_semantic_interface: 'Upload Interface', edit_semantic_interface: 'Edit Interface', view_semantic_interface: 'View Interface', - choose_file: 'Choose File', - tip1: 'Drag file here', - tip2: 'Format: YAML, Size < 2M', + choose_file: 'Select File', + tip1: 'Drag a file here or click Select File.', + tip2: 'Format: YAML; Size < 2 MB', + interface_path: 'Interface Path', + interface_description: 'Interface Description', cancel: 'Cancel', submit: 'Submit', edit: 'Edit', - analyze: 'Analyze', - interface_path: 'Interface path', - interface_description: 'Interface description', - pleaseEnter: 'Please enter', + analyze: 'Parse', + pleaseEnter: 'Please enter.', save: 'Save', + publish_condition: 'Debug all workflows in the application successfully before publishing it.', + icon: 'Icon', + baseMessage: 'Basic Info', preview: 'Preview', publish: 'Publish', - publish_condition: - 'Need to debug all workflows in the application successfully before publishing the application', - icon: 'Icon', - baseMessage: 'Base Message', - copyFailed: 'Copy failed', - checkFormat: 'Please check the format', + copyFailed: 'Copy failed.', + checkFormat: 'Check the format.', }, plugin_center: { plugin_name: 'Plugin Name', @@ -106,91 +105,90 @@ export default { mcp_type: 'MCP Type', activate: 'Activate', deactivate: 'Deactivate', + install: 'Install', + install_success: 'Install Success', + not_installed: 'Not Installed', + cancel: 'Cancel', + all_select: 'All', + installed: 'Installed', }, upload_icon: 'Upload Icon', - please_upload_icon: 'Please upload icon', - please_input_mcp_name: 'Please input MCP name', - please_input_mcp_overview: 'Please input MCP overview', - please_select_mcp_description: 'Please select MCP description', - server_detail: 'Server Details', - server_tool: 'Server Tools', - server_description: 'Server Description', + please_upload_icon: 'Upload an icon.', + please_input_mcp_name: 'Enter an MCP name.', + please_input_mcp_overview: 'Enter an MCP overview.', + please_select_mcp_description: 'Enter an MCP description.', + server_detail: 'Service Details', + server_tool: 'Service Tools', + server_description: 'Service Description', tool_input_schema: 'Tool Input Schema', tool_output_schema: 'Tool Output Schema', - confirm_delete_interface: 'Are you sure to delete this interface?', - confirm_delete_server: 'Are you sure to delete this server?', - no_brief_description_yet: 'No brief description yet', + confirm_delete_interface: 'Are you sure you want to delete this interface?', + confirm_delete_server: 'Are you sure you want to delete this service?', + no_brief_description_yet: 'No description available.', }, app: { app_center: 'App Center', - flow: 'Flow', + flow: 'Workflow', agent: 'Agent', all_select: 'All', - app_name: 'App name', - app_introduction: 'App introduction', + app_name: 'App Name', + app_introduction: 'App Introduction', username: 'Username', app_search: 'Search', app_create: 'Create App', - all_app: 'All App', - my_created: 'My creations', - my_favorite: 'My favorite', + all_app: 'All', + my_created: 'My Creations', + my_favorite: 'My Favorites', app_edit: 'Edit', app_delete: 'Delete', - no_data: 'No data', + no_data: 'No data available.', upload_app: 'Upload App', - edit_app: 'Edit App', - view_app: 'View App', + //edit_app: 'Edit App', + //view_app: 'View App', cancel: 'Cancel', - submit: 'Submit', + submit: 'Confirm', edit: 'Edit', - analyze: 'Analyze', + analyze: 'Parse', unpublished: 'Unpublished', - publishSuccess: 'Publish successfully', - publishFailed: 'Publish failed', + publishSuccess: 'Published successfully.', + publishFailed: 'Publish failed.', create_app: 'Create App', app_published: 'Published', app_config: 'App Config', - workflow_app: 'WorkFlow App', - create_workflow_app: 'Create WorkFlow App', - workflow_app_desc: '(待翻译)建拖拽式工作流应用,精筑生产级AI', - mcp_app: 'MCP App', - create_mcp_app: 'Create MCP App', - mcp_app_desc: '(待翻译)创插件Agent应用,速构个人AI助手', - confirm_delete_app: 'Are you sure to delete this application?', - create_or_edit_workflow_first: 'Please create/edit a workflow first', + workflow_app: 'Create Workflow App', + mcp_app: 'Create Agent App', + confirm_delete_app: 'Are you sure you want to delete this APP?', + create_or_edit_workflow_first: 'Create/Edit a workflow first.', ui_preview: 'UI Preview', appName: 'Agent Name', - appName_input: 'Please enter the agent name', + appName_input: 'Enter an agent name.', appDescription: 'Agent Description', - appDescription_input: 'Please enter the agent description', - modelSelected: 'Model Selection', - modelSelected_input: 'Please select a model', - multi_Dialogue: 'Multi-turn Dialogue', - multi_Dialogue_select: 'select the number of turns', - ability_Configuration: 'Ability Configuration', - MCPService: 'MCP Service', - MCPService_add: 'Add the MCP service', - permissionConfiguration: 'Permission Configuration', - permission: 'Permission', - permission_public: 'Public (visible to everyone)', - permission_private: 'Private (visible only to you)', - somePeople: 'Visible to some people', - updateSuccessfully: 'Update successfully', - pleasemodifyTheName: - 'The workflow name already exists under the current application, please modify the name and try again', - deleteWorkflowSuccessfully: 'Delete workflow successfully', - createSuccessfully: 'Create successfully', - createFailed: 'Create failed', - successfully: 'Successfully', - editable: 'Editable', - failed: 'Failed', - inputContent: 'Input content', - outputContent: 'Output content', - link: 'Related links', - addLink: 'Add link', - addFiveLinks: 'Up to 5 links can be added', - optional: 'Optional', - searchUser: 'Search user', + appDescription_input: 'Enter an agent description.', + modelSelected: 'Model', + modelSelected_input: 'Select a model.', + multi_Dialogue: 'Multi-turn Conversation', + multi_Dialogue_select: 'Number of Turns', + ability_Configuration: 'Capabilities', + MCPService: 'MCP Services', + CPService_add: 'Add MCP Service', + ermissionConfiguration: 'Permissions', + permission: 'Permissions', + permission_public: 'Public (visible to all)', + permission_private: 'Private (visible only to me)', + somePeople: 'Custom (visible to selected users)', + updateSuccessfully: 'Updated successfully.', + pleasemodifyTheName: 'The workflow name already exists. Modify the name and try again.', + deleteWorkflowSuccessfully: 'Workflow deleted successfully.', + createSuccessfully: 'Created successfully.', + //successfully: 'Done.', + //failed: 'Failed.', + inputContent: 'Input', + outputContent: 'Output', + link: 'Related Links', + addLink: 'Add Link', + addFiveLinks: 'Add up to 5 links.', + optional: 'Available', + searchUser: 'Search for users.', selected: 'Selected', }, main: { @@ -200,52 +198,49 @@ export default { describe2: ", and I'm happy to be of service.", left_describe: 'Popular Apps', os_knowledge: 'CVE Hotfix Assistant', - os_knowledge_describe: 'CVE Hotfix', + os_knowledge_describe: 'CVE hotfix', openEuler_expertise: 'Diagnostics Assistant', - openEuler_expertise_describe: 'Intelligent Diagnostics', + openEuler_expertise_describe: 'Intelligent diagnostics', beyond_openEuler: 'Tuning Assistant', - beyond_openEuler_describe: 'Intelligent Tuning', - openEuler_use_cases: 'Container Stack', - openEuler_use_cases_describe: 'AI Container Stack assistant', - question: 'Recommendation qustions', - addQuestion: 'Add question', - addFiveQuestions: 'Up to 5 questions can be added', - smart_shell_describe: - 'Experience the future of OSs with our smart shell! Use natural language to diagnose and optimize your system.', - try_app: 'Enter the App Center', + beyond_openEuler_describe: 'Intelligent tuning', + openEuler_use_cases: 'Container Stack Assistant', + openEuler_use_cases_describe: 'AI container stack assistant', + question: 'Suggested Questions', + addQuestion: 'Add Question', + addFiveQuestions: 'Add up to 5 questions.', + //smart_shell_describe: '欢迎探索首款自然语言交互的智能操作系统:一句话,即享智能诊断与优化', + try_app: 'Access App Center', refresh: 'Refresh', - query_interpretation: 'Query Interpretation', - Automatic: 'Automatic', - ask_me_anything: - 'Ask me anything about openEuler. Press Shift+Enter to start a new line.', - you_might_want_to_know: 'You might want to know:', + //query_interpretation: '请选择识别方式', + //Automatic: '自动识别', + ask_me_anything: 'Ask me anything about openEuler. Press Shift+Enter to start a new line.', + //you_might_want_to_know: 'You might want to know: ', close: 'Close', confirm: 'Confirm', - email1: 'Email:', + email1: 'Email: ', email2: 'contact@openeuler.io', - opinions: - 'AI-generated responses are for reference only and do not reflect the opinions of openEuler.', + opinions: 'AI-generated responses are provided for reference only and do not reflect the opinions of openEuler.', service_agreement: 'Service Agreement', privacy_policy: 'Privacy Policy', contact_us: 'Contact Us', - version: 'Version 0.10.0-Beta', + version: 'Version 0.9.6-Beta', }, history: { new_chat: 'New Chat', - latestConversation: 'This is the latest conversation', + latestConversation: 'This is the latest conversation.', recent_chats: 'Recent Chats', delete_chats: 'Delete Chats', find_recent_chats: 'Find recent chats.', rename: 'Rename', - delete: 'Delete', // 注意:这个字段可能与批量删除操作冲突,具体取决于应用逻辑 - delete_successfully: 'Delete successfully', - delete_failed: 'Delete failed', + delete: 'Delete', + delete_successfully: 'Deleted successfully.', + delete_failed: 'Delete failed.', cancel: 'Cancel', - confirmation_message: 'Delete Chats?', - confirmation_message1: 'Tip', select_all: 'Select All', - confirmation_content1: 'The selected ', - confirmation_content2: ' chats will be deleted.', + confirmation_message: 'Delete Chat', + confirmation_message1: 'Tip', + confirmation_content1: 'The selected', + confirmation_content2: 'chats will be deleted.', delete_content1: 'This chat', delete_content2: 'will be deleted.', ok: 'OK', @@ -256,39 +251,35 @@ export default { time_filter_last_30_days: 'Last 30 days', time_filter_last_6_months: 'Last 6 months', links: 'Links', - hiss_basic_software_service_capability_platform: - 'HiSS Basic Software Service Capability Platform', // 注意:这里我保留了原始的大小写,但通常我们会将首字母大写 + hiss_basic_software_service_capability_platform: 'HiSS Basic Software Service Capability Platform', collapse: 'Collapse', - no_chat_history: 'No chat history available.', // 假设需要一个字段来表示没有历史对话的情况 - expand: 'Expand', // 假设界面中有展开历史对话的功能 + no_chat_history: 'No chat history available.', + expand: 'Expand', myApp: 'My Apps', }, feedback: { - noCopyMessage: 'No information to copy', - feedbackSuccesful: 'Feedback succeeded.', - regenerate: 'Regenerate', // 这里我保留了原样,因为通常键名不加双引号 - try_ask_me: 'Try ask me:', - eulercopilot_is_thinking: 'openEuler Intelligence is thinking…', - generation_stopped: 'Generation stopped.', + noCopyMessage: 'No information to copy.', + feedbackSuccesful: 'Feedback sent. Thank you!', + regenerate: 'Regenerate', + try_ask_me: 'Try ask me: ', + eulercopilot_is_thinking: 'openEuler Intelligence is thinking...', + generation_stopped: 'Response stopped.', stop: 'Stop', - stopSuccessful: 'Stop Successfully', + stopSuccessful: 'Paused', systemBusy: 'The system is busy. Please try again later.', - onlySupport: - "I'm sorry, but for now, we only support questions related to the fields of openEuler and Linux.", + onlySupport: "I'm sorry, but for now, we only support questions related to openEuler and Linux.", copy: 'Copy', copied_successfully: 'Copied successfully.', - copied_failed: 'Copied failed', - edit_successful: 'Edit successful', - edit_failed: 'Edit failed', + copied_failed: 'Copy failed.', + edit_successful: 'Edited successfully.', + edit_failed: 'Edit failed.', good_answer: 'Good Answer', bad_answer: 'Bad Answer', your_feedback_helps_us_improve: 'Your feedback helps us improve.', - the_information_is_inappropriate_or_illegal: - 'The information is inappropriate or illegal.', + the_information_is_inappropriate_or_illegal: 'The information is inappropriate or illegal.', the_answer_is_not_helpful: 'The answer is not helpful.', - i_found_an_error: 'I found an error!', - enter_the_link_to_the_correct_answer: - 'Enter the link to the correct answer.', + i_found_an_error: 'I found an error.', + enter_the_link_to_the_correct_answer: 'Enter the URL to the correct answer.', describe_the_error: 'Describe the error.', submit: 'Submit', report: 'Report', @@ -298,146 +289,105 @@ export default { Report: { pornographic_content: 'Pornographic content', account_violation: 'Account violation', - politically_sensitive_content: 'Politically sensitive content', + politically_sensitive_content: 'Political content', violence_or_terrorism: 'Violence or terrorism', - defamation_or_rumor_spreading: 'Defamation or rumor spreading', + defamation_or_rumor_spreading: 'Defamation or misinformation', insult_to_heroes_or_martyrs: 'Insult to heroes or martyrs', spam: 'Spam', ethnic_or_religious_incitement: 'Ethnic or religious incitement', disturbing_content: 'Disturbing content', abuse_or_harassment: 'Abuse or harassment', gambling_or_fraud: 'Gambling or fraud', - consumer_manipulation: 'Consumer manipulation', + consumer_manipulation: 'Misleading promotions', harm_to_minors: 'Harm to minors', illegal_or_prohibited_items: 'Illegal or prohibited items', - other_violations: 'Other violations', + other_violations: 'Other', }, Login: { login: 'Log In', logout: 'Log Out', - login_now: 'Log In Now', // 假设这里“立即登录”需要更明确的英文表达 - account: 'Account', - enter_account: 'Please enter your account', - password: 'Password', - enter_password: 'Please enter your password', - incorrect_password: 'Incorrect password', - api_key_management: 'API Key Management', - no_api_key_available: 'No API key is available', - create_api_key: 'Create API Key', - api_key_display_once: - 'This API Key will be displayed only once. Please copy and save it securely.', - revoke: 'Revoke', // 为了与英文操作保持一致,我将“撤销”明确为对API Key的操作 + //login_now: '立即登录', + //account: '账号', + //enter_account: '请输入账号', + //password: '密码', + //enter_password: '请输入密码', + //incorrect_password: '密码输入有误', + //api_key_management: 'API key management', + //no_api_key_available: '暂无可用的 API Key', + //create_api_key: '新建 API Key', + //api_key_display_once: '此 API Key 只展示一次,请复制后妥善保存。', + revoke: 'Revoke', refresh: 'Refresh', - unauthorized: 'Unauthorized page, please login first', + unauthorized: 'Unauthorized page. Please log in first.', }, question: { - open_euler_community_edition_categories: 'Community Edition Categories', + open_euler_community_edition_categories: 'What are the categories of openEuler community distributions?', lts_release_cycle_and_support: - 'LTS Release Cycle and Community Support Duration', + 'What is the release cycle and community support duration for openEuler LTS versions?', innovation_release_cycle_and_support: - 'Innovation Release Cycle and Community Support Duration', + 'What is the release cycle and community support duration for openEuler innovation versions?', container_cloud_platform_solution: - 'Container Cloud Platform Solution (CCPS) of the openEuler Community', - sec_gear_main_functions: 'Main Functions of secGear', - dde_description: 'What is DDE?', - lustre_description: 'What is Lustre?', - open_euler_testing_management_platform: - 'Testing Management Platform of the openEuler Community', + 'What is the Container Cloud Platform Solution (CCPS) of the openEuler community?', + sec_gear_main_functions: 'What are the three main capabilities of secGear?', + dde_description: 'What is the DDE component?', open_euler_pkgship: 'What is pkgship in openEuler?', - open_euler_software_package_introduction_principles: - 'Introduction Principles of openEuler Software Packages', - download_rpm_without_installing: - 'How to download an RPM package to the local system without installing it in openEuler?', - count_the_occurrences_of_the_hello: - "Generate a shell command to count the occurrences of the 'hello' string in the 'test.txt' file.", - convert_uppercase_to_lowercase: - 'Give me a shell command to convert uppercase letters to lowercase in text files in the current directory and its subdirectories', - list_files_with_specific_permissions: - 'Give me a shell command to find and list files with specific permissions in the current directory', - search_error_keyword_with_context: - "Give me a shell command to search for the keyword 'error' in text files in the /home directory and its subdirectories, and output the matching lines along with the 3 lines before and after them to a file named 'result.txt'", - clear_dependencies_for_software_package: - 'How to clear dependencies for software packages in openEuler?', - gpgcheck_purpose_in_dnf: - 'What is the purpose of the gpgcheck parameter in DNF in openEuler?', - installonly_limit_function_in_dnf: - 'What is the function of the installonly_limit parameter in DNF in openEuler?', - clean_requirement_on_remove_function_in_dnf: - 'What is the function of the clean_requirement_on_remove parameter in DNF in openEuler?', - hunan_tobacco_monopoly_applications_on_openeuler: - 'What are the applications of Hunan Tobacco Monopoly based on openEuler?', - xsky_applications_on_openeuler: - 'What are the applications of XSKY based on openEuler?', }, upload: { upload_tip_text: - 'Maximum 10 files, 64 MB in total. Formats: pdf, docx, doc, txt, md, xlsx', - uploading: 'Upload...', - upload_fail: 'Upload failed', + 'Maximum 10 files, 64 MB in total. Formats: PDF, DOCX, DOC, TXT, MD, XLSX', + uploading: 'Uploading...', + upload_fail: 'Upload failed.', resolving: 'Parsing...', - resolve_fail: 'Parsing failed', - error_type_msg: 'Upload failed, Invalid file type.', - error_size_msg: - 'Upload failed, The number or size of files exceeds the upper limits.', - error_name_msg: 'Upload failed, Duplicate file names exit.', + resolve_fail: 'Parsing failed.', + error_type_msg: 'Upload failed: File type not supported.', + error_size_msg: 'Upload failed: File count or size exceeds the upper limit.', + error_name_msg: 'Upload failed: Duplicate file name exits.', aside_session_file_count_front: '', aside_session_file_count_back: 'files', }, apikey: { - save_apikey: - 'This API KEY is only displayed once, please copy and save it properly', - no_apikey: 'No available API key', - create_apikey: 'Create new API key', + save_apikey: 'This API key is displayed only once. Please copy and keep it secure.', + no_apikey: 'No available API key.', + create_apikey: 'New API Key', cancel: 'Cancel', - confirm: 'Please enter the description of the API key', }, witChainD: { witChainD: 'WitChainD', - witChainD_id: 'id', - describe_the_witChainD: 'Please enter witChainD id', - find_witChainD: 'Please enter witChainD name/id', - knowledge: 'Knowledge', - fiveKnowledge: 'You can select up to 5 knowledge bases', + witChainD_id: 'ID', + describe_the_witChainD: 'Enter a WitChainD ID.', + find_witChainD: 'Enter a WitChainD name or ID.', + knowledge: 'Knowledge Base', + fiveKnowledge: 'Select up to 5 knowledge bases.', }, flow: { - flow_start: 'Workflow in progress', - flow_end: 'Workflow completed', - flow_params_error: 'Missing parameters', + //flow_start: 'Workflow in progress', + //flow_end: 'Workflow completed.', + flow_params_error: 'Parameter missing', flow_pause: 'Workflow paused', - edit_flow: 'Edit workflow', - edit_workflow: 'Edit workflow', - flow_name: 'Workflow name', - flow_description: 'Workflow description', - create_flow: 'Create workflow', - step_configuration: 'Step configuration', - debug_after_connection: - 'Debugging can only be performed after node connection is complete', - no_flow: 'No workflow', - choose_flow: 'Please choose a workflow', + edit_flow: 'Edit', + edit_workflow: 'Edit Workflow', + flow_name: 'Workflow Name', + flow_description: 'Workflow Description', + create_flow: 'Create Workflow', + step_configuration: 'Step Configuration', + debug_after_connection: 'Connect to a node before debugging.', + no_flow: 'No workflow available.', + choose_flow: 'Select a workflow.', debug: 'Debug', - enterWorkflowName: 'Please enter workflow name', + enterWorkflowName: 'Enter a workflow name.', default: '', - success: 'successful', - error: 'failed', + success: 'Workflow succeeded', + error: 'Workflow failed', running: 'Running', pending: 'Running', result: 'Result', input: 'Input', output: 'Output', params: 'Parameters', - supplementaryParameters: 'Supplementary Parameters', + supplementaryParameters: 'Additional Parameters', }, pagination: { prev: 'Previous', next: 'Next', }, - zoom: { - reduce: 'Zoom Out', - amplify: 'Zoom In', - adaptive: 'Fit to Screen', - scaleTo50: 'Zoom to 50%', - scaleTo100: 'Zoom to 100%', - scaleTo150: 'Zoom to 150%', - scaleTo200: 'Zoom to 200%', - }, }; diff --git a/src/i18n/lang/zh-cn.ts b/src/i18n/lang/zh-cn.ts index 60e71997d1c184f8b289c5dbbd3a23a92ddddfbc..ed5dd342e9c8ed4aeabee2257cb4be76f0608541 100644 --- a/src/i18n/lang/zh-cn.ts +++ b/src/i18n/lang/zh-cn.ts @@ -105,6 +105,12 @@ export default { mcp_type: 'MCP类型', activate: '激活', deactivate: '取消激活', + install: '安装', + install_success: '安装成功', + not_installed: '未安装', + cancel: '取消', + all_select: '全部', + installed: '已安装', }, upload_icon: '上传图标', please_upload_icon: '请上传图标',