浏览代码

Add some missing i18n keys and update Chinese translation

Add some missing i18n keys and update Chinese translation
Karl Lee 10 月之前
父节点
当前提交
720ff35edf

+ 6 - 5
src/lib/components/common/ConfirmDialog.svelte

@@ -1,16 +1,17 @@
 <script lang="ts">
 <script lang="ts">
-	import { onMount, createEventDispatcher } from 'svelte';
+	import { onMount, getContext, createEventDispatcher } from 'svelte';
 	import { fade } from 'svelte/transition';
 	import { fade } from 'svelte/transition';
+	const i18n = getContext('i18n');
 
 
 	import { flyAndScale } from '$lib/utils/transitions';
 	import { flyAndScale } from '$lib/utils/transitions';
 
 
 	const dispatch = createEventDispatcher();
 	const dispatch = createEventDispatcher();
 
 
-	export let title = 'Confirm your action';
-	export let message = 'This action cannot be undone. Do you wish to continue?';
+	export let title = ($i18n.t('Confirm your action'));
+	export let message = ($i18n.t('This action cannot be undone. Do you wish to continue?'));
 
 
-	export let cancelLabel = 'Cancel';
-	export let confirmLabel = 'Confirm';
+	export let cancelLabel = ($i18n.t('Cancel'));
+	export let confirmLabel = ($i18n.t('Confirm'));
 
 
 	export let show = false;
 	export let show = false;
 	let modalElement = null;
 	let modalElement = null;

+ 2 - 2
src/lib/components/layout/Sidebar.svelte

@@ -195,13 +195,13 @@
 
 
 <DeleteConfirmDialog
 <DeleteConfirmDialog
 	bind:show={showDeleteConfirm}
 	bind:show={showDeleteConfirm}
-	title="Delete chat?"
+	title={$i18n.t('Delete chat?')}
 	on:confirm={() => {
 	on:confirm={() => {
 		deleteChatHandler(deleteChat.id);
 		deleteChatHandler(deleteChat.id);
 	}}
 	}}
 >
 >
 	<div class=" text-sm text-gray-500">
 	<div class=" text-sm text-gray-500">
-		This will delete <span class="  font-semibold">{deleteChat.title}</span>.
+		{$i18n.t('This will delete')} <span class="  font-semibold">{deleteChat.title}</span>.
 	</div>
 	</div>
 </DeleteConfirmDialog>
 </DeleteConfirmDialog>
 
 

+ 4 - 4
src/lib/components/layout/Sidebar/ChatItem.svelte

@@ -138,7 +138,7 @@
 	>
 	>
 		{#if confirmEdit}
 		{#if confirmEdit}
 			<div class="flex self-center space-x-1.5 z-10">
 			<div class="flex self-center space-x-1.5 z-10">
-				<Tooltip content="Confirm">
+				<Tooltip content={$i18n.t('Confirm')}>
 					<button
 					<button
 						class=" self-center dark:hover:text-white transition"
 						class=" self-center dark:hover:text-white transition"
 						on:click={() => {
 						on:click={() => {
@@ -162,7 +162,7 @@
 					</button>
 					</button>
 				</Tooltip>
 				</Tooltip>
 
 
-				<Tooltip content="Cancel">
+				<Tooltip content={$i18n.t('Cancel')}>
 					<button
 					<button
 						class=" self-center dark:hover:text-white transition"
 						class=" self-center dark:hover:text-white transition"
 						on:click={() => {
 						on:click={() => {
@@ -185,7 +185,7 @@
 			</div>
 			</div>
 		{:else if shiftKey && mouseOver}
 		{:else if shiftKey && mouseOver}
 			<div class=" flex items-center self-center space-x-1.5">
 			<div class=" flex items-center self-center space-x-1.5">
-				<Tooltip content="Archive" className="flex items-center">
+				<Tooltip content={$i18n.t('Archive')} className="flex items-center">
 					<button
 					<button
 						class=" self-center dark:hover:text-white transition"
 						class=" self-center dark:hover:text-white transition"
 						on:click={() => {
 						on:click={() => {
@@ -197,7 +197,7 @@
 					</button>
 					</button>
 				</Tooltip>
 				</Tooltip>
 
 
-				<Tooltip content="Delete">
+				<Tooltip content={$i18n.t('Delete')}>
 					<button
 					<button
 						class=" self-center dark:hover:text-white transition"
 						class=" self-center dark:hover:text-white transition"
 						on:click={() => {
 						on:click={() => {

+ 18 - 11
src/lib/i18n/locales/zh-CN/translation.json

@@ -42,7 +42,7 @@
 	"Allow": "允许",
 	"Allow": "允许",
 	"Allow Chat Deletion": "允许删除聊天记录",
 	"Allow Chat Deletion": "允许删除聊天记录",
 	"Allow non-local voices": "允许调用非本地音色",
 	"Allow non-local voices": "允许调用非本地音色",
-	"Allow User Location": "",
+	"Allow User Location": "允许获取您的位置",
 	"alphanumeric characters and hyphens": "字母数字字符和连字符",
 	"alphanumeric characters and hyphens": "字母数字字符和连字符",
 	"Already have an account?": "已经拥有账号了?",
 	"Already have an account?": "已经拥有账号了?",
 	"an assistant": "助手",
 	"an assistant": "助手",
@@ -179,7 +179,7 @@
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。",
 	"Edit": "编辑",
 	"Edit": "编辑",
 	"Edit Doc": "编辑文档",
 	"Edit Doc": "编辑文档",
-	"Edit Memory": "",
+	"Edit Memory": "编辑记忆",
 	"Edit User": "编辑用户",
 	"Edit User": "编辑用户",
 	"Email": "电子邮箱",
 	"Email": "电子邮箱",
 	"Embedding Batch Size": "嵌入层批处理大小 (Embedding Batch Size)",
 	"Embedding Batch Size": "嵌入层批处理大小 (Embedding Batch Size)",
@@ -209,7 +209,7 @@
 	"Enter Serply API Key": "输入 Serply API 密钥",
 	"Enter Serply API Key": "输入 Serply API 密钥",
 	"Enter Serpstack API Key": "输入 Serpstack API 密钥",
 	"Enter Serpstack API Key": "输入 Serpstack API 密钥",
 	"Enter stop sequence": "输入停止序列 (Stop Sequence)",
 	"Enter stop sequence": "输入停止序列 (Stop Sequence)",
-	"Enter Tavily API Key": "",
+	"Enter Tavily API Key": "输入 Tavily API 密钥",
 	"Enter Top K": "输入 Top K",
 	"Enter Top K": "输入 Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "输入地址 (例如:http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "输入地址 (例如:http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://localhost:11434)": "输入地址 (例如:http://localhost:11434)",
 	"Enter URL (e.g. http://localhost:11434)": "输入地址 (例如:http://localhost:11434)",
@@ -285,7 +285,7 @@
 	"Knowledge": "知识库",
 	"Knowledge": "知识库",
 	"Language": "语言",
 	"Language": "语言",
 	"Last Active": "最后在线时间",
 	"Last Active": "最后在线时间",
-	"Last Modified": "",
+	"Last Modified": "最后修改时间",
 	"Light": "浅色",
 	"Light": "浅色",
 	"Listening...": "正在倾听...",
 	"Listening...": "正在倾听...",
 	"LLMs can make mistakes. Verify important information.": "大语言模型可能会生成误导性错误信息,请对关键信息加以验证。",
 	"LLMs can make mistakes. Verify important information.": "大语言模型可能会生成误导性错误信息,请对关键信息加以验证。",
@@ -310,7 +310,7 @@
 	"Mirostat Tau": "Mirostat Tau",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "YYYY年 MM月 DD日",
 	"MMMM DD, YYYY": "YYYY年 MM月 DD日",
 	"MMMM DD, YYYY HH:mm": "YYYY年 MM月 DD日 HH:mm",
 	"MMMM DD, YYYY HH:mm": "YYYY年 MM月 DD日 HH:mm",
-	"MMMM DD, YYYY hh:mm:ss A": "",
+	"MMMM DD, YYYY hh:mm:ss A": "YYYY年 MM月 DD日 hh:mm:ss A",
 	"Model '{{modelName}}' has been successfully downloaded.": "模型'{{modelName}}'已成功下载。",
 	"Model '{{modelName}}' has been successfully downloaded.": "模型'{{modelName}}'已成功下载。",
 	"Model '{{modelTag}}' is already in queue for downloading.": "模型'{{modelTag}}'已在下载队列中。",
 	"Model '{{modelTag}}' is already in queue for downloading.": "模型'{{modelTag}}'已在下载队列中。",
 	"Model {{modelId}} not found": "未找到模型 {{modelId}}",
 	"Model {{modelId}} not found": "未找到模型 {{modelId}}",
@@ -494,8 +494,8 @@
 	"System": "系统",
 	"System": "系统",
 	"System Prompt": "系统提示词",
 	"System Prompt": "系统提示词",
 	"Tags": "标签",
 	"Tags": "标签",
-	"Tap to interrupt": "",
-	"Tavily API Key": "",
+	"Tap to interrupt": "点击以中断",
+	"Tavily API Key": "Tavily API 密钥",
 	"Tell us more:": "请告诉我们更多细节",
 	"Tell us more:": "请告诉我们更多细节",
 	"Temperature": "温度 (Temperature)",
 	"Temperature": "温度 (Temperature)",
 	"Template": "模板",
 	"Template": "模板",
@@ -514,7 +514,7 @@
 	"Title": "标题",
 	"Title": "标题",
 	"Title (e.g. Tell me a fun fact)": "标题(例如 给我讲一个有趣的事实)",
 	"Title (e.g. Tell me a fun fact)": "标题(例如 给我讲一个有趣的事实)",
 	"Title Auto-Generation": "自动生成标题",
 	"Title Auto-Generation": "自动生成标题",
-	"Title cannot be an empty string.": "标题不能为空字符串。",
+	"Title cannot be an empty string.": "标题不能为空。",
 	"Title Generation Prompt": "用于自动生成标题的提示词",
 	"Title Generation Prompt": "用于自动生成标题的提示词",
 	"to": "到",
 	"to": "到",
 	"To access the available model names for downloading,": "要访问可下载的模型名称,",
 	"To access the available model names for downloading,": "要访问可下载的模型名称,",
@@ -538,10 +538,10 @@
 	"Type Hugging Face Resolve (Download) URL": "输入 Hugging Face 解析(下载)URL",
 	"Type Hugging Face Resolve (Download) URL": "输入 Hugging Face 解析(下载)URL",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "糟糕!连接到 {{provider}} 时出现问题。",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "糟糕!连接到 {{provider}} 时出现问题。",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理",
-	"Update": "",
+	"Update": "更新",
 	"Update and Copy Link": "更新和复制链接",
 	"Update and Copy Link": "更新和复制链接",
 	"Update password": "更新密码",
 	"Update password": "更新密码",
-	"Updated at": "",
+	"Updated at": "更新于",
 	"Upload a GGUF model": "上传一个 GGUF 模型",
 	"Upload a GGUF model": "上传一个 GGUF 模型",
 	"Upload Files": "上传文件",
 	"Upload Files": "上传文件",
 	"Upload Pipeline": "上传 Pipeline",
 	"Upload Pipeline": "上传 Pipeline",
@@ -589,5 +589,12 @@
 	"You're now logged in.": "已登录。",
 	"You're now logged in.": "已登录。",
 	"Your account status is currently pending activation.": "您的账号当前状态为待激活。",
 	"Your account status is currently pending activation.": "您的账号当前状态为待激活。",
 	"Youtube": "YouTube",
 	"Youtube": "YouTube",
-	"Youtube Loader Settings": "YouTube 爬取设置"
+	"Youtube Loader Settings": "YouTube 爬取设置",
+	"Delete chat?": "删除对话记录?",
+	"This will delete": "这将删除",
+	"Confirm": "确认",
+	"Confirm your action": "确认您的操作",
+	"This action cannot be undone. Do you wish to continue?": "此操作无法撤销。是否确认继续?",
+	"Show Model": "显示模型",
+	"Hide Model": "隐藏模型"
 }
 }