diff --git a/locales/ar/nodeDefs.json b/locales/ar/nodeDefs.json index 0054dbb..f07508f 100644 --- a/locales/ar/nodeDefs.json +++ b/locales/ar/nodeDefs.json @@ -1,101 +1,101 @@ { "PromptExpand": { - "display_name": "✨ توسيع الموجه", - "description": "تحسين وتوسيع الموجه باستخدام LLM", + "display_name": "✨التحسين الفوري", + "description": "قم بتعزيز موجهك باستخدام LLM", "inputs": { "rule": { "name": "قاعدة", - "tooltip": "قاعدة محددة مسبقًا لتوسيع الموجه" + "tooltip": "قاعدة محددة مسبقًا للتحسين الفوري" }, "custom_rule": { - "name": "قاعدة مخصصة", - "tooltip": "تفعيل إدخال قاعدة مخصصة أدناه" + "name": "القاعدة المخصصة", + "tooltip": "تمكين إدخال القاعدة المخصصة أدناه" }, "custom_rule_content": { "name": "محتوى القاعدة المخصصة", - "tooltip": "أدخل قاعدتك المخصصة هنا؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "أدخل القاعدة المخصصة الخاصة بك هنا؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "user_prompt": { "name": "موجه المستخدم", - "tooltip": "الموجه المراد تحسينه؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "مطالبتك بالتحسين؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "llm_service": { "name": "خدمة LLM", - "tooltip": "اختر خدمة LLM" + "tooltip": "حدد خدمة LLM" }, "ollama_auto_unload": { - "name": "إلغاء التحميل التلقائي", - "tooltip": "إلغاء تحميل محرك Ollama تلقائيًا" + "name": "التفريغ التلقائي", + "tooltip": "التفريغ التلقائي لنموذج أولاما" }, "source_text": { "name": "النص المصدر", - "tooltip": "نص إدخال اختياري؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "نص الإدخال الاختياري؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" } }, "outputs": { "0": { - "name": "مخرجات الموجه", - "tooltip": "نتيجة التحسين" + "name": "الإخراج الفوري", + "tooltip": "نتيجة التعزيز" } } }, "ImageCaptionNode": { - "display_name": "✨ تعليق الصورة", - "description": "إنشاء تعليق للصورة باستخدام VLM", + "display_name": "✨تعليق الصورة", + "description": "إنشاء تسمية توضيحية للصورة باستخدام VLM", "inputs": { "image": { "name": "صورة", - "tooltip": "إدخال صورة" + "tooltip": "صورة الإدخال" }, "rule": { "name": "قاعدة", - "tooltip": "قاعدة محددة مسبقًا لإنشاء التعليق" + "tooltip": "قاعدة محددة مسبقًا للتسميات التوضيحية" }, "custom_rule": { - "name": "قاعدة مخصصة", - "tooltip": "تفعيل إدخال قاعدة مخصصة" + "name": "القاعدة المخصصة", + "tooltip": "تمكين إدخال القاعدة المخصصة" }, "custom_rule_content": { "name": "محتوى القاعدة المخصصة", - "tooltip": "محتوى القاعدة المخصصة؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "محتوى القاعدة المخصصة؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "user_prompt": { "name": "موجه المستخدم", - "tooltip": "أدخل موجهات إضافية هنا، ترسل مع القاعدة؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "أدخل مطالبات إضافية هنا، مرسلة مع القاعدة؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "vlm_service": { "name": "خدمة VLM", - "tooltip": "اختر خدمة VLM" + "tooltip": "حدد خدمة VLM" }, "ollama_auto_unload": { - "name": "إلغاء التحميل التلقائي", - "tooltip": "إلغاء تحميل محرك Ollama تلقائيًا" + "name": "التفريغ التلقائي", + "tooltip": "التفريغ التلقائي لنموذج أولاما" } }, "outputs": { "0": { - "name": "مخرجات الموجه", - "tooltip": "التعليق المنشأ (مدمج للعمليات المجمعة)" + "name": "الإخراج الفوري", + "tooltip": "التسمية التوضيحية التي تم إنشاؤها (مدمجة للدفعة)" }, "1": { - "name": "قائمة الموجهات", - "tooltip": "قائمة التعليقات لكل صورة في العملية المجمعة" + "name": "القائمة السريعة", + "tooltip": "قائمة التسميات التوضيحية لكل صورة دفعة واحدة" } } }, "PromptTranslate": { - "display_name": "✨ ترجمة الموجه", - "description": "ترجمة الموجه بين اللغات", + "display_name": "✨ترجمة سريعة", + "description": "ترجمة موجه بين اللغات", "inputs": { "source_text": { "name": "النص المصدر", - "tooltip": "النص المراد ترجمته؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "نص للترجمة؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "target_language": { "name": "اللغة المستهدفة", "tooltip": "اللغة المستهدفة للترجمة", "options": { - "English": "الإنجليزية", + "English": "إنجليزي", "Chinese": "الصينية" } }, @@ -104,74 +104,74 @@ "tooltip": "اختر خدمة الترجمة" }, "ollama_auto_unload": { - "name": "إلغاء التحميل التلقائي", - "tooltip": "إلغاء تحميل محرك Ollama تلقائيًا" + "name": "التفريغ التلقائي", + "tooltip": "التفريغ التلقائي لنموذج أولاما" } }, "outputs": { "0": { - "name": "مخرجات الموجه", - "tooltip": "نتيجة الترجمة" + "name": "الإخراج الفوري", + "tooltip": "نتيجة مترجمة" } } }, "VideoCaptionNode": { - "display_name": "✨ تعليق الفيديو", - "description": "إنشاء تعليق للفيديو باستخدام VLM", + "display_name": "✨شرح الفيديو", + "description": "إنشاء تسمية توضيحية للفيديو باستخدام VLM", "inputs": { "rule": { "name": "قاعدة", - "tooltip": "قاعدة محددة مسبقًا لتعليق الفيديو" + "tooltip": "قاعدة محددة مسبقًا للتسمية التوضيحية للفيديو" }, "custom_rule": { - "name": "قاعدة مخصصة", - "tooltip": "تفعيل إدخال قاعدة مخصصة" + "name": "القاعدة المخصصة", + "tooltip": "تمكين إدخال القاعدة المخصصة" }, "custom_rule_content": { "name": "محتوى القاعدة المخصصة", - "tooltip": "محتوى القاعدة المخصصة؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "محتوى القاعدة المخصصة؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "user_prompt": { "name": "موجه المستخدم", - "tooltip": "أدخل موجهات إضافية هنا، ترسل مع القاعدة؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "أدخل مطالبات إضافية هنا، مرسلة مع القاعدة؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "vlm_service": { "name": "خدمة VLM", - "tooltip": "اختر خدمة VLM" + "tooltip": "حدد خدمة VLM" }, "sampling_mode": { - "name": "وضع العينة", - "tooltip": "اختر تلقائي (منتظم) لأخذ عينات منتظمة بناءً على طول الفيديو. الوضع اليدوي (فهارس) يسمح باختيار الإطارات يدوياً.", + "name": "وضع أخذ العينات", + "tooltip": "حدد تلقائي (موحد) لأخذ عينات من الإطارات بشكل موحد بناءً على طول الفيديو.يسمح الوضع اليدوي (المؤشرات) بتحديد الإطار يدويًا عبر الزر \"🎬Select Frames for Captioning\"", "options": { - "Auto (Uniform)": "تلقائي (منتظم)", - "Manual (Indices)": "يدوي (فهارس)" + "Auto (Uniform)": "تلقائي (موحد)", + "Manual (Indices)": "دليل (المؤشرات)" } }, "frame_count": { "name": "عدد الإطارات", - "tooltip": "عدد الإطارات المراد أخذ عينة منها (الوضع التلقائي)" + "tooltip": "عدد الإطارات المطلوب أخذ عينات منها (الوضع التلقائي)" }, "manual_indices": { - "name": "فهارس يدوية", - "tooltip": "فهارس إطارات محددة (الوضع اليدوي)" + "name": "المؤشرات اليدوية", + "tooltip": "مؤشرات إطار محددة (الوضع اليدوي)" }, "ollama_auto_unload": { - "name": "إلغاء التحميل التلقائي", - "tooltip": "إلغاء تحميل محرك Ollama تلقائيًا" + "name": "التفريغ التلقائي", + "tooltip": "التفريغ التلقائي لنموذج أولاما" }, "video": { "name": "فيديو", - "tooltip": "إدخال فيديو" + "tooltip": "إدخال الفيديو" }, "image_sequence": { - "name": "سلسلة الصور", - "tooltip": "تسلسل الصور المدخلة" + "name": "الصور", + "tooltip": "إدخال تسلسل الصور" } }, "outputs": { "0": { - "name": "مخرجات الموجه", - "tooltip": "تعليق الفيديو المنشأ" + "name": "الإخراج الفوري", + "tooltip": "تم إنشاء تسمية توضيحية للفيديو" }, "1": { "name": "إطارات المعاينة", @@ -180,34 +180,34 @@ } }, "KontextPresetNode": { - "display_name": "✨ إعداد مسبق Kontext", - "description": "إنشاء تعليمات إبداعية باستخدام الإعدادات المسبقة Kontext", + "display_name": "✨الإعداد المسبق للنص", + "description": "قم بإنشاء تعليمات إبداعية باستخدام إعدادات Kontext المسبقة", "inputs": { "image": { "name": "صورة", - "tooltip": "إدخال صورة" + "tooltip": "صورة الإدخال" }, "kontext_preset": { - "name": "إعداد مسبق", - "tooltip": "اختر إعداد مسبق Kontext" + "name": "محددة مسبقا", + "tooltip": "حدد الإعداد المسبق لـ Kontext" }, "user_prompt": { "name": "موجه المستخدم", - "tooltip": "أدخل موجهات إضافية هنا، ترسل مع الإعداد المسبق؛ 💡 أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" + "tooltip": "أدخل مطالبات إضافية هنا، تم إرسالها مع الإعداد المسبق؛💡أدخل كلمة التشغيل [R] لفرض إعادة التنفيذ" }, "vlm_service": { "name": "خدمة VLM", - "tooltip": "اختر خدمة VLM" + "tooltip": "حدد خدمة VLM" }, "ollama_auto_unload": { - "name": "إلغاء التحميل التلقائي", - "tooltip": "إلغاء تحميل محرك Ollama تلقائيًا" + "name": "التفريغ التلقائي", + "tooltip": "التفريغ التلقائي لنموذج أولاما" } }, "outputs": { "0": { - "name": "مخرجات الموجه", - "tooltip": "التعليمات الإبداعية المنشأة" + "name": "الإخراج الفوري", + "tooltip": "تعليمات إبداعية تم إنشاؤها" } } } diff --git a/locales/ko/ui.json b/locales/ko/ui.json index 8c669f1..e920deb 100644 --- a/locales/ko/ui.json +++ b/locales/ko/ui.json @@ -1,367 +1,367 @@ { - "✨提示词小助手": "✨Prompt Assistant", - "小助手功能开关": "Feature Toggles", - "总开关": "Master Switch", - "系统": "System", - "界面语言": "Interface Language", - "中文": "Chinese", - "提示词小助手创建方式": "Prompt Assistant Creation", - "图像小助手创建方式": "Image Assistant Creation", - "界面": "Interface", - "提示词小助手布局": "Prompt Assistant Layout", - "图像小助手布局": "Image Assistant Layout", - " 配置": " Configuration", - "API配置": "API Configuration", - "翻译": "Translation", - "提示词优化": "Prompt Optimization", - "图像反推": "Image Caption", - "历史功能": "History", - "标签功能": "Tags", - "提示词优化功能": "Prompt Optimization", - "翻译功能": "Translation", - " 翻译功能设置": " Translation Settings", - "翻译缓存": "Translation Cache", - "混合语言缓存": "Mixed-language Cache", - "混合语言规则": "Mixed-language Rule", - "标点处理": "Punctuation", - "空格处理": "Spaces", - "点号处理": "Dots", - "换行处理": "Newlines", - "节点信息翻译": "Node Help Translation", - "日志级别": "Log Level", - "终端日志": "Terminal Logs", - "流式体验": "Streaming", - "小助手图标": "Assistant Icon", - "清理缓存": "Clear Cache", - " ✨提示词小助手": " ✨Prompt Assistant", - "规则": "Rules", - "启用小助手": "Enable Assistant", - "小助手创建方式(提示词)": "Prompt Assistant Creation Mode", - "小助手创建方式(图像反推)": "Image Assistant Creation Mode", - "小助手布局(提示词)": "Prompt Assistant Layout", - "小助手布局(图像反推)": "Image Assistant Layout", - "百度和大语言模型API配置": "Baidu and LLM API Configuration", - "选择翻译服务": "Select Translation Service", - "选择提示词优化服务": "Select Prompt Optimization Service", - "选择图像反推服务": "Select Image Caption Service", - "启用历史功能": "Enable History", - "启用标签工具": "Enable Tag Tools", - "启用提示词优化功能": "Enable Prompt Optimization", - "启用翻译功能": "Enable Translation", - "使用翻译缓存": "Use Translation Cache", - "混合语言翻译进行缓存": "Cache Mixed-language Translation", - "混合语言翻译规则": "Mixed-language Translation Rule", - "始终使用半角标点符号": "Always Use Half-width Punctuation", - "自动移除多余空格": "Automatically Remove Extra Spaces", - "移除多余连续点号": "Remove Repeated Dots", - "保留换行符": "Preserve Newlines", - "启用图像反推功能": "Enable Image Caption", - "启用节点信息翻译": "Enable Node Help Translation", - "控制台流式输出进度日志": "Console Streaming Progress Logs", - "流式输出开关": "Enable Streaming Output", - " 小助手图标不透明度": " Assistant Icon Opacity", - "清理历史、标签、翻译缓存": "Clear History, Tags, and Translation Cache", - "关于": "About", - "提示词优化和反推规则修改": "Edit Prompt Optimization and Image Caption Rules", - "切换插件界面语言,修改后自动刷新页面生效": "Switch extension UI language; page reloads automatically to apply changes.", - "自动创建": "Auto", - "选中节点时创建": "Create On Selection", - "右中(垂直)": "Right Middle (Vertical)", - "右下(横向)": "Bottom Right (Horizontal)", - "右下(垂直)": "Bottom Right (Vertical)", - "下中(横向)": "Bottom Middle (Horizontal)", - "左下(横向)": "Bottom Left (Horizontal)", - "横": "Horizontal", - "竖": "Vertical", - "翻译成英文": "Translate to English", - "翻译成中文": "Translate to Chinese", - "自动翻译小比例语言": "Auto Translate Minority Language", - "自动翻译大比例语言": "Auto Translate Majority Language", - "错误日志": "Error Only", - "基础日志": "Basic", - "详细日志": "Verbose", - "加载中...": "Loading...", - "暂无可用服务": "No available services", - "加载失败": "Load failed", - "打开配置失败": "Failed to open configuration", - "打开配置弹窗过程中发生错误": "An error occurred while opening the configuration dialog", - "提示词小助手已启用": "Prompt Assistant enabled", - "提示词小助手已禁用": "Prompt Assistant disabled", - "API管理器": "API Manager", - "清理所有缓存": "Clear all cache", - "规则管理器": "Rules Manager", - "关闭后,提示词小助手所有功能将禁用": "After disabling, all Prompt Assistant features will be turned off.", - "自动创建:节点创建或加载时自动显示小助手;选中节点时创建:仅选中节点时显示": "Auto: show assistant when nodes are created/loaded; Selection: show only when a node is selected.", - "自动创建:节点创建或加载时自动显示反推小助手;选中节点时创建:仅选中节点时显示": "Auto: show image assistant when nodes are created/loaded; Selection: show only when selected.", - "设置提示词小助手在输入框周围的布局和展开方向": "Set the Prompt Assistant layout and expansion direction around input fields.", - "设置图像反推小助手的展开方向(位置固定在左下角)": "Set image assistant expansion direction (fixed at bottom-left).", - "配置或修改API信息": "Configure or edit API information.", - "选择一个服务商用于翻译,也可以通过右键翻译按钮来切换": "Select a provider for translation, or switch from the translation button context menu.", - "选择一个服务商用于提示词优化,也可以通过右键提示词优化按钮来切换": "Select a provider for prompt optimization, or switch from the prompt button context menu.", - "选择一个服务商用于图像反推,也可以通过右键反推按钮来切换": "Select a provider for image caption, or switch from the caption button context menu.", - "开启或关闭历史、撤销、重做功能": "Enable or disable history, undo, and redo.", - "开启或关闭标签工具功能": "Enable or disable tag tools.", - "开启或关闭提示词优化功能": "Enable or disable prompt optimization.", - "开启或关闭翻译功能": "Enable or disable translation.", - "开启后,如果翻译内容翻译过,则使用历史翻译结果,避免相同内容重复翻译改变原意。如果需要重新翻译,请随便加一个空格即可跳过缓存。": "When enabled, previously translated text reuses cached results to avoid meaning drift; add a space to bypass cache.", - "关闭时,中英文混合内容的翻译结果不会写入缓存,避免污染缓存。开启后会正常缓存。": "When disabled, mixed Chinese/English translations are not cached to avoid cache pollution.", - "根据个人使用偏好设置混合中英文内容的翻译规则": "Set translation rules for mixed Chinese/English text by preference.", - "打开后,翻译结果会自动将中文标点符号替换成英文标点符号": "When enabled, Chinese punctuation is converted to English punctuation.", - "打开后,翻译结果会自动移除多余空格": "When enabled, extra spaces are removed automatically.", - "打开后,翻译结果会将多余的“......”统一为“...”": "When enabled, repeated dots like “......” are normalized to “...”.", - "打开后,翻译结果会尽量保持原文的换行,避免翻译后丢失段落": "When enabled, line breaks are preserved as much as possible.", - "开启或关闭图像反推提示词功能": "Enable or disable image caption prompting.", - "开启或关闭ComfyUI侧边栏节点帮助文档的翻译功能": "Enable or disable translation for ComfyUI sidebar node help docs.", - "设置日志输出级别:错误日志(仅错误)、基础日志(错误+基础信息)、详细日志(错误+基础信息+调试信息)": "Set log level: Error only, Basic, or Verbose.", - "开启后,控制台会显示流式输出过程,在某些终端可能导致刷屏;关闭后只显示静态的'生成中...'。": "When enabled, streaming progress is printed in console; disable to only show static 'Generating...'.", - "开启时,翻译、扩写、识别等功能将以逐字生成的流式效果显示;关闭时则恢复为全部生成后一次性显示的阻塞模式。": "When enabled, features use token streaming; when disabled, output appears after full generation.", - "设置折叠后小助手图标的不透明度": "Set assistant icon opacity when collapsed.", - "清理所有缓存,包括历史记录、标签、翻译缓存、节点文档翻译缓存": "Clear all caches including history, tags, translation cache, and node-help translation cache.", - "可以自定义提示词优化规则,和反推提示词规则,使得提示词生成更加符合你的需求": "Customize prompt optimization and caption rules to better match your needs.", - "保存": "Save", - "添加": "Add", - "取消": "Cancel", - "保存失败": "Save failed", - "编辑失败": "Edit failed", - "确认操作": "Confirm", - "返回": "Back", - "关闭": "Close", - "配置已修改,是否保存?": "Configuration changed. Save now?", - "创建弹窗失败": "Failed to create dialog", - "创建设置弹窗过程中发生错误": "An error occurred while creating the dialog", - "暂无选项": "No options", - "清理已清理完成": "Cleanup completed", - "操作失败": "Operation failed", - "操作过程中发生错误": "An error occurred during the operation", - "确认": "Confirm", - "搜索...": "Search...", - "已选 0 项": "Selected 0 items", - "确定": "OK", - "你仍然可以在搜索框中手动输入模型名称": "You can still type a model name manually in the search box.", - "已选": "Selected", - "项": "items", - "未找到匹配项": "No matches found", - "暂无可用项": "No available items", - "数据格式错误": "Invalid data format", - "未知错误": "Unknown error", - "配置已保存": "Configuration saved", - "所有更改已成功保存到服务器": "All changes were saved to the server successfully.", - "无更改": "No changes", - "配置没有未保存的更改": "There are no unsaved changes.", - "提示词优化规则": "Prompt Optimization Rules", - "提示词优化润色提示词": "Prompt optimization refinement prompts", - "添加提示词优化规则": "Add prompt optimization rule", - "中文反推": "Chinese Caption", - "图像反推中文提示词": "Chinese image caption prompts", - "添加中文反推规则": "Add Chinese caption rule", - "英文反推": "English Caption", - "图像反推英文提示词": "English image caption prompts", - "添加英文反推规则": "Add English caption rule", - "视频反推": "Video Caption", - "将视频反推提示词": "Video caption prompts", - "添加视频反推规则": "Add video caption rule", - "翻译规则": "Translation Rules", - "大模型翻译规则": "LLM Translation Rules", - "状态": "Status", - "规则名称": "Rule Name", - "规则内容": "Rule Content", - "操作": "Actions", - "翻译规则仅支持编辑,不支持新增和删除": "Translation rules support edit only; adding and deleting are disabled.", - "中文反推规则": "Chinese caption rules", - "英文反推规则": "English caption rules", - "编辑翻译规则": "Edit translation rule", - "请输入翻译规则内容": "Please enter translation rule content", - "编辑": "Edit", - "删除": "Delete", - "编辑规则": "Edit Rule", - "添加规则": "Add Rule", - "请输入规则名称": "Please enter rule name", - "请输入规则内容": "Please enter rule content", - "规则类型": "Rule Type", - "反推(中文)": "Caption (Chinese)", - "反推(英文)": "Caption (English)", - "分类": "Category", - "输入或选择分类(可留空)": "Type or choose a category (optional)", - "暂无分类": "No categories", - "小助手上显示": "Show in assistant", - "节点上显示": "Show on node", - "规则名称和内容不能为空": "Rule name and content cannot be empty.", - "已存在": "already exists", - "当前使用中,点击取消激活": "Currently active. Click to deactivate.", - "未激活,点击激活": "Inactive. Click to activate.", - "规则内容不能为空": "Rule content cannot be empty.", - "确认删除": "Confirm deletion", - "确定要删除规则": "Delete rule", - "吗?": "?", - "免责声明:本插件仅提供 API 调用工具,第三方服务责任与本插件无关,插件所涉用户配置信息均存储于本地。对于因账号使用产生的任何问题,本插件不承担责任!": "Disclaimer: This plugin only provides API tooling. Third-party services are independent, and user config data stays local.", - "请填写配置信息": "Please complete the configuration details.", - "百度翻译配置已保存": "Baidu translation config saved", - "百度翻译": "Baidu Translate", - "机器翻译": "Machine Translation", - "未命名服务": "Unnamed Service", - "更新顺序失败": "Failed to update order", - "修改服务商名称": "Rename Service", - "删除服务": "Delete Service", - "修改服务商信息": "Edit service details", - "服务商名称": "Service Name", - "请输入服务商名称": "Please enter a service name", - "服务商介绍": "Service Description", - "请输入服务商介绍(可选)": "Enter service description (optional)", - "服务商名称不能为空": "Service name cannot be empty", - "服务商信息已更新": "Service details updated", - "更新成功": "updated successfully", - "更新失败": "Update failed", - "创建新的服务商": "Create new service", - "创建": "Create", - "新服务商": "New Service", - "创建成功": "created successfully", - "新服务商已创建": "New service created", - "创建失败": "Create failed", - "百度翻译配置": "Baidu Translation Config", - "开通百度翻译服务": "Activate Baidu Translation Service", - "请输入百度翻译 AppID": "Enter Baidu Translation AppID", - "请输入百度翻译密钥": "Enter Baidu Translation Secret Key", - "暂无服务商": "No services", - "点击右上角\"+\"按钮新增第一个服务商": "Click the + button to add your first service.", - "Ollama服务未配置": "Ollama service is not configured", - "信息配置": "Configuration", - "智谱": "Zhipu", - "开通智谱API服务": "Activate Zhipu API Service", - "硅基": "SiliconFlow", - "开通硅基流动API服务": "Activate SiliconFlow API Service", - "开通xflow API服务": "Activate xFlow API Service", - "请输入API Key": "Enter API Key", - "关闭思维链": "Disable Chain-of-Thought", - "针对部分支持关闭思维链的模型进行关闭。⚠️:并不是所有模型都支持,关闭思维链的模型会在日志中的模型信息后面多出一个“✏️”符号。": "Disable CoT for supported models. ⚠️ Not all models support this; supported models show a “✏️” marker in logs.", - "启用高级参数": "Enable Advanced Params", - "启用后将发送 temperature、top_p、max_tokens 参数以精细控制模型行为,限制最大tonken数来提升速度。如果关闭则可以提升兼容性。": "When enabled, send temperature/top_p/max_tokens for finer control; disabling may improve compatibility.", - "过滤思维链输出": "Filter CoT Output", - "针对无法关闭思维链模型,移除思考过程内容。默认开启。": "For models that cannot disable CoT, remove reasoning content. Enabled by default.", - "自动释放模型": "Auto Unload Model", - "请求完成后自动卸载模型以释放显存。⚠️该选项对针对前端小助手生效,节点有独立的选项。": "Unload model after request to free VRAM. ⚠️ Applies to frontend assistant only; nodes have separate options.", - "2️⃣ 添加翻译、提示词优化的大语言模型 (LLM)": "2️⃣ Add LLM models for translation and prompt optimization", - "3️⃣ 添加图像、视频反推的视觉模型 (VLM)": "3️⃣ Add VLM models for image and video caption", - "添加模型": "Add Model", - "暂无配置模型,点击\"+ 添加模型\"开始配置": "No configured models. Click \"+ Add Model\" to start.", - "默认": "Default", - "设为默认模型": "Set as default model", - "修改模型参数设置": "Edit model parameters", - "模型参数设置": "Model Parameter Settings", - "温度 (Temperature)": "Temperature", - "核采样 (Top-P)": "Top-P", - "最大Token数": "Max Tokens", - "温度值无效": "Invalid temperature", - "温度值应在 0 到 2 之间": "Temperature must be between 0 and 2.", - "核采样值无效": "Invalid Top-P", - "核采样值应在 0 到 1 之间": "Top-P must be between 0 and 1.", - "最大Token数无效": "Invalid max tokens", - "最大Token数应在 1 到 8192 之间": "Max tokens must be between 1 and 8192.", - "参数已更新": "Parameters updated", - "的参数已保存": "parameters saved", - "服务ID不能为空": "Service ID cannot be empty", - "搜索": "Search ", - "模型...": " models...", - "获取模型列表失败": "Failed to fetch model list", - "添加模型失败": "Failed to add model", - "模型已添加": "Model added", - "添加失败": "Add failed", - "确定要删除模型": "Delete model", - "模型已删除": "Model deleted", - "删除失败": "Delete failed", - "删除模型失败": "Failed to delete model", - "设置默认模型失败": "Failed to set default model", - "已设置": "Set", - "为默认模型": "as default model", - "设置失败": "Set failed", - "更新模型顺序失败": "Failed to update model order", - "模型顺序已更新": "Model order updated", - "更新参数失败": "Failed to update parameters", - "确定要删除服务商": "Delete service", - "删除成功": "Deleted successfully", - "暂无服务商,点击\"新增服务商\"开始配置": "No services. Click \"New Service\" to start.", - "服务商配置已更新": "Service configuration updated", - "有新版本": "Update Available", - "当前版本:": "Current version:", - "最新版本:": "Latest version:", - "点击前往下载": "Click to download", - "加载系统规则配置过程中发生错误": "An error occurred while loading system rules.", - "当前已是最新版本:": "Already latest version:", - "未找到版本号,徽标将无法正确显示": "Version not found; badge may not display correctly.", - "交流反馈群": "Community Group", - "微信交流群二维码": "WeChat group QR code", - "历史": "History", - "撤销": "Undo", - "重做": "Redo", - "标签工具": "Tag Tools", - "翻译中": "Translating", - "翻译完成": "Translation complete", - "翻译失败": "Translation failed", - "提示词优化中": "Optimizing prompt", - "提示词优化完成": "Prompt optimization complete", - "提示词优化失败": "Prompt optimization failed", - "处理中": "Processing", - "完成": "Done", - "请求已取消": "Request canceled", - "提示词优化已取消": "Prompt optimization canceled", - "翻译已取消": "Translation canceled", - "历史记录": "History", - "清除当前": "Clear Current", - "清除所有": "Clear All", - "当前节点": "Current Node", - "暂无历史记录": "No history records", - "提示词反推": "Prompt Caption", - "规则管理": "Rules", - "选择服务": "Select Service", - "已开启": "Enabled", - "已关闭": "Disabled", - "请输入要优化的提示词": "Please enter prompt text to optimize", - "扩写失败": "Prompt enhancement failed", - "请输入要翻译的内容": "Please enter text to translate", - "没有检测到可翻译的内容": "No translatable content detected", - "译文": "Translated", - "原文": "Original", - "翻译服务返回空结果": "Translation service returned empty result", - "新建分类": "New Category", - "在此分类下创建新标签": "Create a new tag in this category", - "取消收藏": "Remove from Favorites", - "收藏标签": "Add to Favorites", - "编辑标签": "Edit Tag", - "删除标签": "Delete Tag", - "分类名称": "Category Name", - "创建新的标签页分类": "Create a new category tab", - "分类名称不能为空": "Category name cannot be empty", - "分类已存在": "Category already exists", - "修改名称": "Rename", - "删除分类": "Delete Category", - "名称已存在": "Name already exists", - "标签名称": "Tag Name", - "标签内容": "Tag Content", - "标签名称和内容不能为空": "Tag name and content cannot be empty", - "标签已存在": "Tag already exists", - "标签已更新": "Tag updated", - "⭐️ 收藏": "⭐️ Favorites", - "📝 已插入": "📝 Inserted", - "已插入": "Inserted", - "暂无收藏标签,在标签上右键点击可添加到收藏": "No favorite tags yet. Right-click a tag to add it to favorites.", - "加载失败,请重试": "Load failed, please retry", - "搜索标签...": "Search tags...", - "清除搜索": "Clear Search", - "刷新标签状态": "Refresh Tag Status", - "重新加载标签数据...": "Reloading tag data...", - "刷新失败,请重试": "Refresh failed, please retry", - "加载标签数据...": "Loading tag data...", - "无匹配标签": "No matching tags", - "没有已插入标签": "No inserted tags", - "加载已插入标签失败": "Failed to load inserted tags", - "移动成功": "Move successful", - "移动失败": "Move failed", - "排序保存成功": "Sort saved", - "标签文件顺序已更新": "Tag file order updated", - "收藏标签顺序已更新": "Favorite tag order updated", - "排序已保存": "Order saved", - "分类显示顺序已更新": "Category display order updated", - "保存成功": "Saved successfully", - "输入无效": "Invalid input", - "反推提示词(中文)": "Caption Prompt (Chinese)", - "反推提示词(英文)": "Caption Prompt (English)" -} + "✨提示词小助手": "✨신속한 도우미", + "小助手功能开关": "기능 토글", + "总开关": "마스터 스위치", + "系统": "체계", + "界面语言": "인터페이스 언어", + "中文": "중국인", + "提示词小助手创建方式": "프롬프트 어시스턴트 생성", + "图像小助手创建方式": "이미지 어시스턴트 생성", + "界面": "인터페이스", + "提示词小助手布局": "프롬프트 어시스턴트 레이아웃", + "图像小助手布局": "이미지 어시스턴트 레이아웃", + " 配置": "구성", + "API配置": "API 구성", + "翻译": "번역", + "提示词优化": "프롬프트 최적화", + "图像反推": "이미지 캡션", + "历史功能": "역사", + "标签功能": "태그", + "提示词优化功能": "프롬프트 최적화", + "翻译功能": "번역", + " 翻译功能设置": "번역 설정", + "翻译缓存": "번역 캐시", + "混合语言缓存": "혼합 언어 캐시", + "混合语言规则": "혼합 언어 규칙", + "标点处理": "구두", + "空格处理": "공백", + "点号处理": "도트", + "换行处理": "줄바꿈", + "节点信息翻译": "노드 도움말 번역", + "日志级别": "로그 수준", + "终端日志": "터미널 로그", + "流式体验": "스트리밍", + "小助手图标": "보조 아이콘", + "清理缓存": "캐시 지우기", + " ✨提示词小助手": "✨신속한 도우미", + "规则": "규칙", + "启用小助手": "어시스턴트 활성화", + "小助手创建方式(提示词)": "프롬프트 도우미 생성 모드", + "小助手创建方式(图像反推)": "이미지 어시스턴트 생성 모드", + "小助手布局(提示词)": "프롬프트 어시스턴트 레이아웃", + "小助手布局(图像反推)": "이미지 어시스턴트 레이아웃", + "百度和大语言模型API配置": "Baidu 및 LLM API 구성", + "选择翻译服务": "번역 서비스 선택", + "选择提示词优化服务": "프롬프트 최적화 서비스 선택", + "选择图像反推服务": "이미지 캡션 서비스 선택", + "启用历史功能": "기록 활성화", + "启用标签工具": "태그 도구 활성화", + "启用提示词优化功能": "프롬프트 최적화 활성화", + "启用翻译功能": "번역 활성화", + "使用翻译缓存": "번역 캐시 사용", + "混合语言翻译进行缓存": "캐시 혼합 언어 번역", + "混合语言翻译规则": "혼합 언어 번역 규칙", + "始终使用半角标点符号": "항상 반각 구두점을 사용하세요", + "自动移除多余空格": "자동으로 추가 공백 제거", + "移除多余连续点号": "반복되는 점 제거", + "保留换行符": "개행 문자 유지", + "启用图像反推功能": "이미지 캡션 활성화", + "启用节点信息翻译": "노드 도움말 번역 활성화", + "控制台流式输出进度日志": "콘솔 스트리밍 진행 로그", + "流式输出开关": "스트리밍 출력 활성화", + " 小助手图标不透明度": "보조 아이콘 불투명도", + "清理历史、标签、翻译缓存": "기록, 태그 및 번역 캐시 지우기", + "关于": "에 대한", + "提示词优化和反推规则修改": "프롬프트 최적화 및 이미지 캡션 규칙 편집", + "切换插件界面语言,修改后自动刷新页面生效": "확장 UI 언어를 전환합니다.변경 사항을 적용하기 위해 페이지가 자동으로 다시 로드됩니다.", + "自动创建": "자동", + "选中节点时创建": "선택 시 생성", + "右中(垂直)": "오른쪽 중앙(세로)", + "右下(横向)": "오른쪽 하단(가로)", + "右下(垂直)": "오른쪽 하단(세로)", + "下中(横向)": "하단 중앙(수평)", + "左下(横向)": "왼쪽 하단(가로)", + "横": "수평의", + "竖": "수직의", + "翻译成英文": "영어로 번역", + "翻译成中文": "중국어로 번역", + "自动翻译小比例语言": "소수 언어 자동 번역", + "自动翻译大比例语言": "주요 언어 자동 번역", + "错误日志": "오류만", + "基础日志": "기초적인", + "详细日志": "말 수가 많은", + "加载中...": "로드 중...", + "暂无可用服务": "이용 가능한 서비스가 없습니다.", + "加载失败": "로드 실패", + "打开配置失败": "구성을 열지 못했습니다.", + "打开配置弹窗过程中发生错误": "구성 대화 상자를 여는 동안 오류가 발생했습니다.", + "提示词小助手已启用": "프롬프트 도우미 활성화됨", + "提示词小助手已禁用": "프롬프트 도우미가 비활성화되었습니다.", + "API管理器": "API 관리자", + "清理所有缓存": "모든 캐시 지우기", + "规则管理器": "규칙 관리자", + "关闭后,提示词小助手所有功能将禁用": "비활성화하면 모든 프롬프트 도우미 기능이 꺼집니다.", + "自动创建:节点创建或加载时自动显示小助手;选中节点时创建:仅选中节点时显示": "자동: 노드가 생성/로드될 때 보조자를 표시합니다.선택: 노드가 선택된 경우에만 표시됩니다.", + "自动创建:节点创建或加载时自动显示反推小助手;选中节点时创建:仅选中节点时显示": "자동: 노드가 생성/로드될 때 이미지 도우미를 표시합니다.선택: 선택한 경우에만 표시됩니다.", + "设置提示词小助手在输入框周围的布局和展开方向": "입력 필드 주변의 프롬프트 도우미 레이아웃과 확장 방향을 설정합니다.", + "设置图像反推小助手的展开方向(位置固定在左下角)": "이미지 보조 확장 방향을 설정합니다(왼쪽 하단에 고정).", + "配置或修改API信息": "API 정보를 구성하거나 편집합니다.", + "选择一个服务商用于翻译,也可以通过右键翻译按钮来切换": "번역 제공업체를 선택하거나 번역 버튼 컨텍스트 메뉴에서 전환하세요.", + "选择一个服务商用于提示词优化,也可以通过右键提示词优化按钮来切换": "프롬프트 최적화를 위한 공급자를 선택하거나 프롬프트 버튼 컨텍스트 메뉴에서 전환하세요.", + "选择一个服务商用于图像反推,也可以通过右键反推按钮来切换": "이미지 캡션 제공업체를 선택하거나 캡션 버튼 컨텍스트 메뉴에서 전환하세요.", + "开启或关闭历史、撤销、重做功能": "기록, 실행 취소 및 다시 실행을 활성화 또는 비활성화합니다.", + "开启或关闭标签工具功能": "태그 도구를 활성화하거나 비활성화합니다.", + "开启或关闭提示词优化功能": "프롬프트 최적화를 활성화하거나 비활성화합니다.", + "开启或关闭翻译功能": "번역을 활성화하거나 비활성화합니다.", + "开启后,如果翻译内容翻译过,则使用历史翻译结果,避免相同内容重复翻译改变原意。如果需要重新翻译,请随便加一个空格即可跳过缓存。": "활성화하면 이전에 번역된 텍스트가 캐시된 결과를 재사용하여 의미 드리프트를 방지합니다.캐시를 우회하려면 공백을 추가하세요.", + "关闭时,中英文混合内容的翻译结果不会写入缓存,避免污染缓存。开启后会正常缓存。": "비활성화되면 캐시 오염을 방지하기 위해 중국어/영어 혼합 번역이 캐시되지 않습니다.", + "根据个人使用偏好设置混合中英文内容的翻译规则": "중국어/영어 혼합 텍스트에 대한 번역 규칙을 원하는 대로 설정합니다.", + "打开后,翻译结果会自动将中文标点符号替换成英文标点符号": "활성화되면 중국어 구두점이 영어 구두점으로 변환됩니다.", + "打开后,翻译结果会自动移除多余空格": "활성화되면 추가 공백이 자동으로 제거됩니다.", + "打开后,翻译结果会将多余的“......”统一为“...”": "활성화되면 \"......\"과 같이 반복되는 점이 \"...\"로 정규화됩니다.", + "打开后,翻译结果会尽量保持原文的换行,避免翻译后丢失段落": "활성화되면 줄 바꿈이 최대한 유지됩니다.", + "开启或关闭图像反推提示词功能": "이미지 캡션 프롬프트를 활성화하거나 비활성화합니다.", + "开启或关闭ComfyUI侧边栏节点帮助文档的翻译功能": "ComfyUI 사이드바 노드 도움말 문서에 대한 번역을 활성화 또는 비활성화합니다.", + "设置日志输出级别:错误日志(仅错误)、基础日志(错误+基础信息)、详细日志(错误+基础信息+调试信息)": "로그 수준 설정: 오류만, 기본 또는 상세.", + "开启后,控制台会显示流式输出过程,在某些终端可能导致刷屏;关闭后只显示静态的'生成中...'。": "활성화되면 스트리밍 진행 상황이 콘솔에 인쇄됩니다.정적 '생성 중...'만 표시하려면 비활성화하세요.", + "开启时,翻译、扩写、识别等功能将以逐字生成的流式效果显示;关闭时则恢复为全部生成后一次性显示的阻塞模式。": "활성화되면 기능은 토큰 스트리밍을 사용합니다.비활성화되면 전체 생성 후에 출력이 나타납니다.", + "设置折叠后小助手图标的不透明度": "축소 시 보조 아이콘 불투명도를 설정합니다.", + "清理所有缓存,包括历史记录、标签、翻译缓存、节点文档翻译缓存": "기록, 태그, 번역 캐시 및 노드 도움말 번역 캐시를 포함한 모든 캐시를 지웁니다.", + "可以自定义提示词优化规则,和反推提示词规则,使得提示词生成更加符合你的需求": "필요에 맞게 프롬프트 최적화 및 캡션 규칙을 사용자 정의하세요.", + "保存": "구하다", + "添加": "추가하다", + "取消": "취소", + "保存失败": "저장 실패", + "编辑失败": "수정 실패", + "确认操作": "확인하다", + "返回": "뒤쪽에", + "关闭": "닫다", + "配置已修改,是否保存?": "구성이 변경되었습니다.지금 저장하시겠습니까?", + "创建弹窗失败": "대화상자를 생성하지 못했습니다.", + "创建设置弹窗过程中发生错误": "대화상자를 만드는 중 오류가 발생했습니다.", + "暂无选项": "옵션 없음", + "清理已清理完成": "정리 완료", + "操作失败": "작업 실패", + "操作过程中发生错误": "작업 중 오류가 발생했습니다.", + "确认": "확인하다", + "搜索...": "찾다...", + "已选 0 项": "선택한 항목 0개", + "确定": "좋아요", + "你仍然可以在搜索框中手动输入模型名称": "검색 상자에 모델 이름을 수동으로 입력할 수도 있습니다.", + "已选": "선택된", + "项": "아이템", + "未找到匹配项": "일치하는 항목이 없습니다.", + "暂无可用项": "사용 가능한 항목이 없습니다.", + "数据格式错误": "잘못된 데이터 형식", + "未知错误": "알 수 없는 오류", + "配置已保存": "구성이 저장되었습니다.", + "所有更改已成功保存到服务器": "모든 변경 사항이 서버에 성공적으로 저장되었습니다.", + "无更改": "변경사항 없음", + "配置没有未保存的更改": "저장되지 않은 변경사항이 없습니다.", + "提示词优化规则": "프롬프트 최적화 규칙", + "提示词优化润色提示词": "프롬프트 최적화 개선 프롬프트", + "添加提示词优化规则": "프롬프트 최적화 규칙 추가", + "中文反推": "중국어 캡션", + "图像反推中文提示词": "중국어 이미지 캡션 프롬프트", + "添加中文反推规则": "중국어 캡션 규칙 추가", + "英文反推": "영어 캡션", + "图像反推英文提示词": "영어 이미지 캡션 프롬프트", + "添加英文反推规则": "영어 캡션 규칙 추가", + "视频反推": "비디오 캡션", + "将视频反推提示词": "비디오 캡션 프롬프트", + "添加视频反推规则": "동영상 캡션 규칙 추가", + "翻译规则": "번역 규칙", + "大模型翻译规则": "LLM 번역 규칙", + "状态": "상태", + "规则名称": "규칙 이름", + "规则内容": "규칙 내용", + "操作": "행위", + "翻译规则仅支持编辑,不支持新增和删除": "번역 규칙은 편집만 지원합니다.추가 및 삭제가 비활성화됩니다.", + "中文反推规则": "중국어 자막 규칙", + "英文反推规则": "영어 자막 규칙", + "编辑翻译规则": "번역 규칙 수정", + "请输入翻译规则内容": "번역 규칙 내용을 입력해주세요", + "编辑": "편집하다", + "删除": "삭제", + "编辑规则": "규칙 편집", + "添加规则": "규칙 추가", + "请输入规则名称": "규칙 이름을 입력하세요.", + "请输入规则内容": "규칙 내용을 입력해주세요", + "规则类型": "규칙 유형", + "反推(中文)": "캡션(중국어)", + "反推(英文)": "캡션(영어)", + "分类": "범주", + "输入或选择分类(可留空)": "카테고리를 입력하거나 선택하세요(선택사항).", + "暂无分类": "카테고리 없음", + "小助手上显示": "어시스턴트에 표시", + "节点上显示": "노드에 표시", + "规则名称和内容不能为空": "규칙 이름과 콘텐츠는 비워둘 수 없습니다.", + "已存在": "이미 존재합니다", + "当前使用中,点击取消激活": "현재 활동 중입니다.비활성화하려면 클릭하세요.", + "未激活,点击激活": "비활성.활성화하려면 클릭하세요.", + "规则内容不能为空": "규칙 콘텐츠는 비워둘 수 없습니다.", + "确认删除": "삭제 확인", + "确定要删除规则": "규칙 삭제", + "吗?": "?", + "免责声明:本插件仅提供 API 调用工具,第三方服务责任与本插件无关,插件所涉用户配置信息均存储于本地。对于因账号使用产生的任何问题,本插件不承担责任!": "면책조항: 이 플러그인은 API 도구만 제공합니다.타사 서비스는 독립적이며 사용자 구성 데이터는 로컬로 유지됩니다.", + "请填写配置信息": "구성 세부정보를 작성해 주세요.", + "百度翻译配置已保存": "Baidu 번역 구성이 저장되었습니다.", + "百度翻译": "바이두 번역", + "机器翻译": "기계 번역", + "未命名服务": "이름 없는 서비스", + "更新顺序失败": "주문을 업데이트하지 못했습니다.", + "修改服务商名称": "서비스 이름 바꾸기", + "删除服务": "서비스 삭제", + "修改服务商信息": "서비스 세부정보 수정", + "服务商名称": "서비스 이름", + "请输入服务商名称": "서비스 이름을 입력하세요.", + "服务商介绍": "서비스 설명", + "请输入服务商介绍(可选)": "서비스 설명 입력(선택사항)", + "服务商名称不能为空": "서비스 이름은 비워둘 수 없습니다.", + "服务商信息已更新": "서비스 세부정보가 업데이트되었습니다.", + "更新成功": "성공적으로 업데이트되었습니다", + "更新失败": "업데이트 실패", + "创建新的服务商": "새 서비스 만들기", + "创建": "만들다", + "新服务商": "새로운 서비스", + "创建成功": "성공적으로 생성되었습니다", + "新服务商已创建": "새로운 서비스가 생성되었습니다.", + "创建失败": "생성 실패", + "百度翻译配置": "Baidu 번역 구성", + "开通百度翻译服务": "Baidu 번역 서비스 활성화", + "请输入百度翻译 AppID": "Baidu 번역 앱 ID를 입력하세요.", + "请输入百度翻译密钥": "Baidu 번역 비밀 키를 입력하세요", + "暂无服务商": "서비스 없음", + "点击右上角\"+\"按钮新增第一个服务商": "+ 버튼을 클릭하여 첫 번째 서비스를 추가하세요.", + "Ollama服务未配置": "Ollama 서비스가 구성되지 않았습니다.", + "信息配置": "구성", + "智谱": "지푸", + "开通智谱API服务": "Zhipu API 서비스 활성화", + "硅基": "실리콘플로우", + "开通硅基流动API服务": "SiliconFlow API 서비스 활성화", + "开通xflow API服务": "xFlow API 서비스 활성화", + "请输入API Key": "API 키 입력", + "关闭思维链": "사고 사슬 비활성화", + "针对部分支持关闭思维链的模型进行关闭。⚠️:并不是所有模型都支持,关闭思维链的模型会在日志中的模型信息后面多出一个“✏️”符号。": "지원되는 모델에 대해 CoT를 비활성화합니다.⚠️ 모든 모델이 이를 지원하는 것은 아닙니다.지원되는 모델은 로그에 \"✏️\" 마커를 표시합니다.", + "启用高级参数": "고급 매개변수 활성화", + "启用后将发送 temperature、top_p、max_tokens 参数以精细控制模型行为,限制最大tonken数来提升速度。如果关闭则可以提升兼容性。": "활성화되면 더 미세한 제어를 위해 온도/top_p/max_tokens를 보냅니다.비활성화하면 호환성이 향상될 수 있습니다.", + "过滤思维链输出": "CoT 출력 필터링", + "针对无法关闭思维链模型,移除思考过程内容。默认开启。": "CoT를 비활성화할 수 없는 모델의 경우 추론 콘텐츠를 제거하세요.기본적으로 활성화되어 있습니다.", + "自动释放模型": "자동 언로드 모델", + "请求完成后自动卸载模型以释放显存。⚠️该选项对针对前端小助手生效,节点有独立的选项。": "VRAM 확보를 요청한 후 모델을 언로드합니다.⚠️ 프론트엔드 어시스턴트에만 적용됩니다.노드에는 별도의 옵션이 있습니다.", + "2️⃣ 添加翻译、提示词优化的大语言模型 (LLM)": "2️⃣ 번역 및 신속한 최적화를 위해 LLM 모델 추가", + "3️⃣ 添加图像、视频反推的视觉模型 (VLM)": "3️⃣ 이미지 및 비디오 캡션을 위한 VLM 모델 추가", + "添加模型": "모델 추가", + "暂无配置模型,点击\"+ 添加模型\"开始配置": "구성된 모델이 없습니다.시작하려면 \"+ 모델 추가\"를 클릭하세요.", + "默认": "기본", + "设为默认模型": "기본 모델로 설정", + "修改模型参数设置": "모델 매개변수 편집", + "模型参数设置": "모델 매개변수 설정", + "温度 (Temperature)": "온도", + "核采样 (Top-P)": "탑-P", + "最大Token数": "최대 토큰", + "温度值无效": "잘못된 온도", + "温度值应在 0 到 2 之间": "온도는 0에서 2 사이여야 합니다.", + "核采样值无效": "잘못된 Top-P", + "核采样值应在 0 到 1 之间": "Top-P는 0과 1 사이여야 합니다.", + "最大Token数无效": "잘못된 최대 토큰", + "最大Token数应在 1 到 8192 之间": "최대 토큰은 1에서 8192 사이여야 합니다.", + "参数已更新": "매개변수가 업데이트되었습니다.", + "的参数已保存": "매개변수가 저장됨", + "服务ID不能为空": "서비스 ID는 비워둘 수 없습니다.", + "搜索": "찾다", + "模型...": "모델...", + "获取模型列表失败": "모델 목록을 가져오지 못했습니다.", + "添加模型失败": "모델을 추가하지 못했습니다.", + "模型已添加": "모델이 추가됨", + "添加失败": "추가 실패", + "确定要删除模型": "모델 삭제", + "模型已删除": "모델이 삭제되었습니다.", + "删除失败": "삭제 실패", + "删除模型失败": "모델을 삭제하지 못했습니다.", + "设置默认模型失败": "기본 모델을 설정하지 못했습니다.", + "已设置": "세트", + "为默认模型": "기본 모델로", + "设置失败": "설정 실패", + "更新模型顺序失败": "모델 순서를 업데이트하지 못했습니다.", + "模型顺序已更新": "모델 주문이 업데이트되었습니다.", + "更新参数失败": "매개변수를 업데이트하지 못했습니다.", + "确定要删除服务商": "서비스 삭제", + "删除成功": "삭제되었습니다.", + "暂无服务商,点击\"新增服务商\"开始配置": "서비스가 없습니다.시작하려면 \"새 서비스\"를 클릭하세요.", + "服务商配置已更新": "서비스 구성이 업데이트되었습니다.", + "有新版本": "업데이트 가능", + "当前版本:": "현재 버전:", + "最新版本:": "최신 버전:", + "点击前往下载": "다운로드하려면 클릭하세요", + "加载系统规则配置过程中发生错误": "시스템 규칙을 로드하는 중에 오류가 발생했습니다.", + "当前已是最新版本:": "이미 최신 버전:", + "未找到版本号,徽标将无法正确显示": "버전을 찾을 수 없습니다.배지가 올바르게 표시되지 않을 수 있습니다.", + "交流反馈群": "커뮤니티 그룹", + "微信交流群二维码": "위챗 그룹 QR 코드", + "历史": "역사", + "撤销": "끄르다", + "重做": "다시 하다", + "标签工具": "태그 도구", + "翻译中": "번역 중", + "翻译完成": "번역 완료", + "翻译失败": "번역 실패", + "提示词优化中": "프롬프트 최적화 중", + "提示词优化完成": "프롬프트 최적화 완료", + "提示词优化失败": "프롬프트 최적화 실패", + "处理中": "처리", + "完成": "완료", + "请求已取消": "요청이 취소되었습니다.", + "提示词优化已取消": "프롬프트 최적화가 취소되었습니다.", + "翻译已取消": "번역이 취소되었습니다.", + "历史记录": "역사", + "清除当前": "전류 지우기", + "清除所有": "모두 지우기", + "当前节点": "현재 노드", + "暂无历史记录": "이력 기록이 없습니다", + "提示词反推": "프롬프트 캡션", + "规则管理": "규칙", + "选择服务": "서비스 선택", + "已开启": "활성화됨", + "已关闭": "장애가 있는", + "请输入要优化的提示词": "최적화하려면 프롬프트 텍스트를 입력하세요.", + "扩写失败": "프롬프트 개선 실패", + "请输入要翻译的内容": "번역할 텍스트를 입력하세요.", + "没有检测到可翻译的内容": "번역 가능한 콘텐츠가 감지되지 않았습니다.", + "译文": "번역됨", + "原文": "원래의", + "翻译服务返回空结果": "번역 서비스에서 빈 결과를 반환함", + "新建分类": "새 카테고리", + "在此分类下创建新标签": "이 카테고리에 새 태그 만들기", + "取消收藏": "즐겨찾기에서 제거", + "收藏标签": "즐겨찾기에 추가", + "编辑标签": "태그 편집", + "删除标签": "태그 삭제", + "分类名称": "카테고리 이름", + "创建新的标签页分类": "새 카테고리 탭 만들기", + "分类名称不能为空": "카테고리 이름은 비워둘 수 없습니다.", + "分类已存在": "카테고리가 이미 존재합니다.", + "修改名称": "이름 바꾸기", + "删除分类": "카테고리 삭제", + "名称已存在": "이름이 이미 존재합니다.", + "标签名称": "태그 이름", + "标签内容": "태그 내용", + "标签名称和内容不能为空": "태그 이름과 콘텐츠는 비워둘 수 없습니다.", + "标签已存在": "태그가 이미 존재합니다.", + "标签已更新": "태그가 업데이트되었습니다.", + "⭐️ 收藏": "⭐️ 즐겨찾기", + "📝 已插入": "📝 삽입됨", + "已插入": "삽입됨", + "暂无收藏标签,在标签上右键点击可添加到收藏": "아직 즐겨찾는 태그가 없습니다.태그를 마우스 오른쪽 버튼으로 클릭하면 즐겨찾기에 추가됩니다.", + "加载失败,请重试": "로드하지 못했습니다. 다시 시도해 주세요.", + "搜索标签...": "태그 검색...", + "清除搜索": "검색 지우기", + "刷新标签状态": "태그 상태 새로 고침", + "重新加载标签数据...": "태그 데이터를 다시 로드하는 중...", + "刷新失败,请重试": "새로고침에 실패했습니다. 다시 시도해 주세요.", + "加载标签数据...": "태그 데이터 로드 중...", + "无匹配标签": "일치하는 태그가 없습니다.", + "没有已插入标签": "삽입된 태그가 없습니다.", + "加载已插入标签失败": "삽입된 태그를 로드하지 못했습니다.", + "移动成功": "이동 성공", + "移动失败": "이동 실패", + "排序保存成功": "정렬 저장됨", + "标签文件顺序已更新": "태그 파일 순서가 업데이트되었습니다.", + "收藏标签顺序已更新": "즐겨찾기 태그 순서가 업데이트되었습니다.", + "排序已保存": "주문이 저장되었습니다.", + "分类显示顺序已更新": "카테고리 표시 순서가 업데이트되었습니다.", + "保存成功": "성공적으로 저장되었습니다", + "输入无效": "잘못된 입력", + "反推提示词(中文)": "캡션 프롬프트(중국어)", + "反推提示词(英文)": "캡션 프롬프트(영어)" +} \ No newline at end of file diff --git a/translate_locales.py b/translate_locales.py deleted file mode 100644 index 5680e28..0000000 --- a/translate_locales.py +++ /dev/null @@ -1,84 +0,0 @@ -import json -import os -import urllib.request -import urllib.parse -import time -import ssl -import sys - -TARGET_LANGS = ["ja", "ko", "ar", "es", "fa", "fr", "pt-BR", "ru", "tr"] - -LANG_MAP = { - "ja": "ja", "ko": "ko", "ar": "ar", "es": "es", "fa": "fa", - "fr": "fr", "pt-BR": "pt", "ru": "ru", "tr": "tr" -} - -BASE_DIR = os.path.dirname(os.path.abspath(__file__)) -LOCALES_DIR = os.path.join(BASE_DIR, "locales") -EN_DIR = os.path.join(LOCALES_DIR, "en") - -# Bypass SSL -ctx = ssl.create_default_context() -ctx.check_hostname = False -ctx.verify_mode = ssl.CERT_NONE - -def translate_text(text, target_lang): - if not text or not isinstance(text, str): - return text - if text.strip() == "": return text - - url = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=' + LANG_MAP[target_lang] + '&dt=t&q=' + urllib.parse.quote(text) - req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'}) - - for attempt in range(3): - try: - res = urllib.request.urlopen(req, context=ctx, timeout=10).read().decode('utf-8') - data = json.loads(res) - translated = "".join([part[0] for part in data[0] if part[0]]) - return translated - except Exception as e: - time.sleep(1) - return text - -def translate_dict(data, target_lang): - if isinstance(data, dict): - new_data = {} - for k, v in data.items(): - if k in ["options"]: - new_data[k] = {ok: translate_text(ov, target_lang) if isinstance(ov, str) else ov for ok, ov in v.items()} - else: - new_data[k] = translate_dict(v, target_lang) - return new_data - elif isinstance(data, list): - return [translate_dict(x, target_lang) for x in data] - elif isinstance(data, str): - return translate_text(data, target_lang) - else: - return data - -def process_file(filename, target_lang): - en_path = os.path.join(EN_DIR, filename) - target_dir = os.path.join(LOCALES_DIR, target_lang) - target_path = os.path.join(target_dir, filename) - - os.makedirs(target_dir, exist_ok=True) - - with open(en_path, 'r', encoding='utf-8') as f: - data = json.load(f) - - print(f"Translating {filename} to {target_lang}...") - translated_data = translate_dict(data, target_lang) - - with open(target_path, 'w', encoding='utf-8') as f: - json.dump(translated_data, f, ensure_ascii=False, indent=4) - print(f"Done {filename} for {target_lang}") - -def main(): - files = ["nodeDefs.json", "ui.json"] - for lang in TARGET_LANGS: - for file in files: - process_file(file, lang) - time.sleep(0.5) - -if __name__ == "__main__": - main() diff --git a/translate_locales_deep.py b/translate_locales_deep.py deleted file mode 100644 index bf5bb8d..0000000 --- a/translate_locales_deep.py +++ /dev/null @@ -1,78 +0,0 @@ -import json -import os -import time -from deep_translator import GoogleTranslator - -TARGET_LANGS = ["ja", "ko", "ar", "es", "fa", "fr", "pt-BR", "ru", "tr"] - -# mapping to deep-translator lang codes -LANG_MAP = { - "ja": "ja", "ko": "ko", "ar": "ar", "es": "es", "fa": "fa", - "fr": "fr", "pt-BR": "pt", "ru": "ru", "tr": "tr" -} - -BASE_DIR = os.path.dirname(os.path.abspath(__file__)) -LOCALES_DIR = os.path.join(BASE_DIR, "locales") -EN_DIR = os.path.join(LOCALES_DIR, "en") - -# Already done manually -ALREADY_DONE = { - ("ko", "nodeDefs.json") -} - -def translate_text(text, target_lang): - if not text or not isinstance(text, str): - return text - if text.strip() == "": return text - - for attempt in range(3): - try: - translator = GoogleTranslator(source='en', target=LANG_MAP[target_lang]) - return translator.translate(text) - except Exception as e: - time.sleep(2) - return text - -def translate_dict(data, target_lang): - if isinstance(data, dict): - new_data = {} - for k, v in data.items(): - if k in ["options"]: - new_data[k] = {ok: translate_text(ov, target_lang) if isinstance(ov, str) else ov for ok, ov in v.items()} - else: - new_data[k] = translate_dict(v, target_lang) - return new_data - elif isinstance(data, list): - return [translate_dict(x, target_lang) for x in data] - elif isinstance(data, str): - return translate_text(data, target_lang) - else: - return data - -def process_file(filename, target_lang): - if (target_lang, filename) in ALREADY_DONE: - print(f"Skipping {filename} for {target_lang} (already done)") - return - - en_path = os.path.join(EN_DIR, filename) - target_dir = os.path.join(LOCALES_DIR, target_lang) - target_path = os.path.join(target_dir, filename) - - with open(en_path, 'r', encoding='utf-8') as f: - data = json.load(f) - - print(f"Translating {filename} to {target_lang}...") - translated_data = translate_dict(data, target_lang) - - with open(target_path, 'w', encoding='utf-8') as f: - json.dump(translated_data, f, ensure_ascii=False, indent=4) - print(f"Done {filename} for {target_lang}") - -def main(): - files = ["nodeDefs.json", "ui.json"] - for lang in TARGET_LANGS: - for file in files: - process_file(file, lang) - -if __name__ == "__main__": - main() diff --git a/translate_locales_googletrans.py b/translate_locales_googletrans.py deleted file mode 100644 index 9e68d28..0000000 --- a/translate_locales_googletrans.py +++ /dev/null @@ -1,73 +0,0 @@ -import json -import os -import time -from googletrans import Translator - -TARGET_LANGS = ["ja", "ko", "ar", "es", "fa", "fr", "pt-BR", "ru", "tr"] - -LANG_MAP = { - "ja": "ja", "ko": "ko", "ar": "ar", "es": "es", "fa": "fa", - "fr": "fr", "pt-BR": "pt", "ru": "ru", "tr": "tr" -} - -BASE_DIR = os.path.dirname(os.path.abspath(__file__)) -LOCALES_DIR = os.path.join(BASE_DIR, "locales") -EN_DIR = os.path.join(LOCALES_DIR, "en") - -translator = Translator() - -def translate_text(text, target_lang): - global translator - if not text or not isinstance(text, str): - return text - if text.strip() == "": return text - - for attempt in range(3): - try: - res = translator.translate(text, src='en', dest=LANG_MAP[target_lang]) - return res.text - except Exception as e: - print(f"Error '{text[:10]}...' -> {target_lang}: {e}") - time.sleep(2) - translator = Translator() - return text - -def translate_dict(data, target_lang): - if isinstance(data, dict): - new_data = {} - for k, v in data.items(): - if k in ["options"]: - new_data[k] = {ok: translate_text(ov, target_lang) if isinstance(ov, str) else ov for ok, ov in v.items()} - else: - new_data[k] = translate_dict(v, target_lang) - return new_data - elif isinstance(data, list): - return [translate_dict(x, target_lang) for x in data] - elif isinstance(data, str): - return translate_text(data, target_lang) - else: - return data - -def process_file(filename, target_lang): - en_path = os.path.join(EN_DIR, filename) - target_dir = os.path.join(LOCALES_DIR, target_lang) - target_path = os.path.join(target_dir, filename) - - with open(en_path, 'r', encoding='utf-8') as f: - data = json.load(f) - - print(f"Translating {filename} to {target_lang}...") - translated_data = translate_dict(data, target_lang) - - with open(target_path, 'w', encoding='utf-8') as f: - json.dump(translated_data, f, ensure_ascii=False, indent=4) - print(f"Done {filename} for {target_lang}") - -def main(): - files = ["nodeDefs.json", "ui.json"] - for lang in TARGET_LANGS: - for file in files: - process_file(file, lang) - -if __name__ == "__main__": - main()