Files
BlogPosts/.obsidian/plugins/i18n/data.json

411 lines
16 KiB
JSON

{
"agreement": true,
"language": "zh-cn",
"checkUpdates": true,
"searchText": "",
"sort": "0",
"author": "",
"mode": 0,
"automaticUpdate": true,
"llmApi": "openai",
"llmResponseFormat": "text",
"llmLanguage": "简体中文",
"llmStyle": "无",
"llmBatchSize": 10,
"llmConcurrencyLimit": 3,
"llmTimeout": 60000,
"llmRegexPrompt": "# Role & Context\nYou are an expert Software Localization Specialist & Technical Translator.\nYour task is to translate extracted text snippets from source code and UI elements into the target language, while keeping all code-level syntax 100% intact.\n\n# Core Output Rules (CRITICAL: Failure will crash the system)\n1. ONLY return a valid JSON array string.\n - ❌ NO Markdown formatting (e.g., ```json).\n - ❌ NO conversational text.\n - ✅ Starts exactly with `[` and ends with `]`.\n2. Array Structure & Integrity\n - Input: Array of objects with `i` (ID) and `s` (Source).\n - Output: Array of objects with EXACTLY two fields: `i` and `t` (Target/Translation).\n - The output MUST be an array of objects matching the input length exactly.\n - The `i` fields MUST be kept EXACTLY as they are. DO NOT MODIFY OR OMIT THEM.\n\n# Translation & Safety Rules (CRITICAL)\n1. Absolute Code Protection (Highest Priority)\n - DO NOT translate any non-natural language syntax. This includes:\n * `camelCase` or `snake_case` variables\n * Interpolated variables and formatters (e.g., `${filename}`, `{{val}}`, `%s`, `{0}`)\n * HTML/XML tags (e.g., `<span>`, `<br>`)\n * URLs, file paths, and regex symbols\n - Example: `Error occurred in ${moduleName}` -> `${moduleName} 中发生错误` (Variable preserved).\n2. Pure Code Key Recognition\n - If the `s` string looks entirely like a code key (e.g., `user_not_found_error`), DO NOT force a translation. Output it exactly as it is in the `t` field.\n3. Punctuation & Spacing Alignment\n - Preserve punctuation and spaces exactly.\n4. Unicode Encoding Preservation (CRITICAL)\n - If the source string `s` is formatted using Unicode escape sequences (e.g., `\\uXXXX`), your translated text `t` MUST ALSO be converted entirely into Unicode escape sequences.\n - ❌ Never return standard plain text if the source is Unicode-escaped.\n - Example: If `s` is `Hello` (\"Hello\"), and the translation is \"Hola\", `t` must be `Hola`.\n\n# Translation Requirements\n- **Target Language:** {{targetLanguage}}\n- **Translation Style:** {{translationStyle}}\n- Output must read naturally in the {{targetLanguage}} while adhering strictly to software UI and technical documentation conventions.\n\n# Example\n[Input]\n[{\"i\":101, \"s\":\"Settings\"}, {\"i\":102, \"s\":\"Save changes\"}, {\"i\":103, \"s\":\"Open\"}]\n\n[Output]\n[{\"i\":101, \"t\":\"设置\"}, {\"i\":102, \"t\":\"保存更改\"}, {\"i\":103, \"t\":\"打开\"}]\n\n{{glossarySection}}\n\n# Quality Checklist (Self-Verify Before Output)\n- [ ] Is the output a totally naked JSON array?\n- [ ] Does each object ONLY contain `i` and `t`?\n- [ ] Are all `i` fields present and unmodified?\n- [ ] Are all code variables (`${...}`) completely intact in the `t`?\n- [ ] If `s` used Unicode escapes (`\\uXXXX`), is `t` correctly encoded as Unicode escapes?",
"llmAstPrompt": "# Role & Context\nYou are an expert Software Localization Specialist & UI Translator.\nYour task is to translate abstract syntax tree (AST) text nodes from a user interface into the target language, while keeping all code-level structure and syntax completely intact.\n\n# Core Output Rules (CRITICAL: Failure will crash the system)\n1. ONLY return a valid JSON array string.\n - ❌ NO Markdown formatting (e.g., ```json).\n - ❌ NO conversational text.\n - ✅ Starts exactly with `[` and ends with `]`.\n2. Property Gatekeeper (CRITICAL)\n - Input structure: `i` (ID), `s` (Source), `y` (Type), and `n` (Name).\n - Output structure: Return objects with EXACTLY two fields: `i` and `t` (Target/Translation).\n - DO NOT MODIFY `i`.\n - The `y` (type) and `n` (name) fields are for YOUR CONTEXT ONLY. Do not include them in output.\n\n# Translation & Safety Rules (CRITICAL)\n1. Absolute Code Protection\n - DO NOT translate any non-natural language syntax (e.g., `{{count}}`, `<span/>`, `\\n`).\n2. Context Awareness via y & n Fields\n - Use the `y` (node type) and `n` (node name) fields to infer context.\n - Example: `y=\"Button\"`, `n=\"submit\"` -> Translate as an action verb.\n3. Pure Code Key Handling\n - If `s` is a code key, return it as-is in `t`.\n\n# Translation Requirements\n- **Target Language:** {{targetLanguage}}\n- **Translation Style:** {{translationStyle}}\n\n{{glossarySection}}\n\n# Example\n[Input]\n[{\"i\":50, \"s\":\"Open\", \"y\":\"Button\", \"n\":\"openFile\"}, {\"i\":51, \"s\":\"⇧ Shift\", \"y\":\"Text\", \"n\":\"shortcut\"}]\n\n[Output]\n[{\"i\":50, \"t\":\"打开\"}, {\"i\":51, \"t\":\"⇧ Shift\"}]\n\n# Quality Checklist (Self-Verify Before Output)\n- [ ] Is the output a totally naked JSON array?\n- [ ] Does each object ONLY contain `i` and `t`?\n- [ ] Are `i` fields unaltered?\n- [ ] Are code variables/tags intact in `t`?",
"llmThemePrompt": "# Role & Context\nYou are an expert CSS Theme Localizer & UI Translator.\nYour task is to translate Obsidian theme setting labels and descriptions into the target language.\n\n# Core Output Rules (CRITICAL: Failure will crash the system)\n1. ONLY return a valid JSON array string.\n - ❌ NO Markdown formatting (e.g., ```json).\n - ❌ NO conversational text.\n - ✅ Starts exactly with `[` and ends with `]`.\n2. Property Gatekeeper (CRITICAL)\n - Input structure: `i` (ID), `s` (Source), `y` (Type).\n - Output structure: Return objects with EXACTLY two fields: `i` and `t` (Target/Translation).\n - DO NOT MODIFY `i`.\n - The `y` (type) field is for YOUR CONTEXT ONLY. Do not include it in output.\n\n# Translation & Safety Rules (CRITICAL)\n1. Context Awareness via y Field\n - `y` value tells you if text is a `name`, `title`, `description`, `label`, or `markdown`.\n2. Code Protection\n - DO NOT translate CSS class names or variables.\n3. Brevity for UI\n - Keep translations concise for settings UI.\n4. Unicode Encoding Preservation (CRITICAL)\n - If the source string `s` is formatted using Unicode escape sequences (e.g., `\\uXXXX`), your translated text `t` MUST ALSO be converted entirely into Unicode escape sequences.\n - ❌ Never return standard plain text if the source is Unicode-escaped.\n - Example: If `s` is `\\u0048\\u0065\\u006c\\u006c\\u006f` (\"Hello\"), and the translation is \"Hola\", `t` must be `\\u0048\\u006f\\u006c\\u0061`.\n\n# Translation Requirements\n- **Target Language:** {{targetLanguage}}\n- **Translation Style:** {{translationStyle}}\n\n{{glossarySection}}\n\n# Example\n[Input]\n[{\"i\":201, \"s\":\"Accent color\", \"y\":\"name\"}, {\"i\":202, \"s\":\"The color of active elements.\", \"y\":\"description\"}]\n\n[Output]\n[{\"i\":201, \"t\":\"强调色\"}, {\"i\":202, \"t\":\"激活状态元素的颜色。\"}]\n\n# Quality Checklist (Self-Verify Before Output)\n- [ ] Is the output a totally naked JSON array?\n- [ ] Does each object ONLY contain `i` and `t`?\n- [ ] Are `i` fields unaltered?\n- [ ] If `s` used Unicode escapes (`\\uXXXX`), is `t` correctly encoded as Unicode escapes?",
"llmOpenaiProfiles": [
{
"id": "default",
"name": "Default",
"url": "",
"key": "",
"model": "gpt-4o-mini",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmOpenaiActiveProfileId": "default",
"llmGeminiProfiles": [
{
"id": "default",
"name": "Default",
"url": "",
"key": "",
"model": "gemini-2.0-flash",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmGeminiActiveProfileId": "default",
"llmOllamaProfiles": [
{
"id": "default",
"name": "Default",
"url": "http://localhost:11434",
"key": "",
"model": "",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmOllamaActiveProfileId": "default",
"llmDeepseekProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.deepseek.com/v1",
"key": "",
"model": "deepseek-chat",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmDeepseekActiveProfileId": "default",
"llmZhipuProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://open.bigmodel.cn/api/paas/v4",
"key": "",
"model": "glm-4-flash",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmZhipuActiveProfileId": "default",
"llmMoonshotProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.moonshot.cn/v1",
"key": "",
"model": "moonshot-v1-8k",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmMoonshotActiveProfileId": "default",
"llmAliyunProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"key": "",
"model": "qwen-plus",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmAliyunActiveProfileId": "default",
"llmBaiduProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://qianfan.baidubce.com/v2",
"key": "",
"model": "ernie-4.0-8k-preview",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmBaiduActiveProfileId": "default",
"llmBytedanceProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://ark.cn-beijing.volces.com/api/v3",
"key": "",
"model": "doubao-pro-4k",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmBytedanceActiveProfileId": "default",
"llmGroqProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.groq.com/openai/v1",
"key": "",
"model": "llama-3.3-70b-versatile",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmGroqActiveProfileId": "default",
"llmSiliconflowProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.siliconflow.cn/v1",
"key": "",
"model": "deepseek-ai/DeepSeek-V3",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmSiliconflowActiveProfileId": "default",
"llmOpenrouterProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://openrouter.ai/api/v1",
"key": "",
"model": "anthropic/claude-3.5-sonnet",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmOpenrouterActiveProfileId": "default",
"llmDeepinfraProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.deepinfra.com/v1/openai",
"key": "",
"model": "meta-llama/Llama-3.3-70B-Instruct",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmDeepinfraActiveProfileId": "default",
"llmMistralProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.mistral.ai/v1",
"key": "",
"model": "mistral-small-latest",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmMistralActiveProfileId": "default",
"llmMinimaxProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.minimax.chat/v1",
"key": "",
"model": "abab6.5-chat",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmMinimaxActiveProfileId": "default",
"llmStepfunProfiles": [
{
"id": "default",
"name": "Default",
"url": "https://api.stepfun.com/v1",
"key": "",
"model": "step-1-8k",
"useCustomPrice": false,
"priceInput": 0,
"priceOutput": 0
}
],
"llmStepfunActiveProfileId": "default",
"modeImt": false,
"imtPagerule": {
"selectors": [
".mod-settings",
".modal-container",
".menu",
".notice-container"
],
"excludeSelectors": [
".markdown-source-view",
".markdown-reading-view",
".cm-editor"
]
},
"shareToken": "",
"shareRepo": "obsidian-translations",
"shareProfiles": [
{
"id": "1776342005263",
"name": "默认账号",
"token": "",
"repo": "obsidian-translations"
}
],
"shareActiveProfileId": "1776342005263",
"reFlags": "gs",
"reLength": 300,
"reDatas": [
"(Notice|log|error|setText|setButtonText|setName|setDesc|setPlaceholder|setTooltip|appendText|setTitle|addHeading|renderMarkdown)\\(\\s*(['\"`])((?:[^\\\\2\\\\\\\\]|\\\\\\\\.)*?)\\2\\s*\\)",
"(textContent|innerText|name|description|selection|annotation|link|text|search|speech|page|settings)\\s*[:=]\\s*(['\"`])((?:[^\\\\2\\\\\\\\]|\\\\\\\\.)*?)\\2"
],
"reRejectRe": [
"^\\s*$",
"^\\d+$",
"^[\\w-]+\\.[\\w-]+\\.\\w+$",
"^https?:\\/\\/",
"^data:image\\/",
"^#([0-9a-f]{3}|[0-9a-f]{6})$",
"^[a-z0-9]+-[a-z0-9-]+$",
"^[a-z]+[A-Z][a-zA-Z0-9]*$",
"^[A-Z_][A-Z0-9_]{3,}$",
"^(px|em|rem|vh|vw|auto)$",
"^rgba?\\(",
"^\\.",
"\\.(png|jpg|gif|svg|css|js|ts|md|json)$",
"^[\\w.\\/\\\\-]+\\/[\\w.\\/\\\\-]+$"
],
"reValidRe": [
"\\s",
"[^\\x00-\\x7F]",
"[!?,;:。!?,;:]\\s*$"
],
"astAssignments": [
"overwriteName",
"innerHTML",
"outerHTML",
"title",
"alt",
"placeholder",
"textContent",
"innerText",
"ariaLabel",
"nodeValue",
"buttonText",
"confirmText",
"cancelText",
"labelText"
],
"astFunctions": [
"Notice",
"setTitle",
"setContent",
"setName",
"setDesc",
"setButtonText",
"setPlaceholder",
"setTooltip",
"addOption",
"addOptions",
"addHeading",
"addText",
"setHint",
"setWarning",
"setText",
"appendText",
"createEl",
"createDiv",
"createSpan",
"addCommand",
"insertText",
"replaceRange",
"replaceSelection",
"log",
"error",
"warn",
"info",
"alert",
"confirm",
"prompt",
"renderMarkdown",
"setLabel",
"setConfirmText",
"setCancelText"
],
"astKeys": [
"name",
"description",
"text",
"placeholder",
"label",
"tooltip",
"title",
"header",
"desc",
"message",
"buttontext",
"aria-label",
"heading",
"content",
"tab",
"caption",
"subtitle",
"summary",
"info",
"warning",
"error",
"success",
"hint",
"instructions",
"link",
"selection",
"annotation",
"search",
"speech",
"page",
"empty",
"detail",
"body",
"option",
"notice",
"confirmText",
"cancelText",
"ariaLabel",
"buttonText"
],
"astRejectRe": [
"^\\s*$",
"^\\d+$",
"^[\\w-]+\\.[\\w-]+\\.\\w+$",
"^https?:\\/\\/",
"^data:image\\/",
"^#([0-9a-f]{3}|[0-9a-f]{6})$",
"^[a-z0-9]+-[a-z0-9-]+$",
"^[a-z]+[A-Z][a-zA-Z0-9]*$",
"^[A-Z_][A-Z0-9_]{3,}$",
"^(px|em|rem|vh|vw|auto)$",
"^rgba?\\(",
"^\\.",
"\\.(png|jpg|gif|svg|css|js|ts|md|json)$",
"^[\\w.\\/\\\\-]+\\/[\\w.\\/\\\\-]+$"
],
"astValidRe": [
"\\s",
"[^\\x00-\\x7F]",
"[!?,;:。!?,;:]\\s*$"
],
"githubProxyUrl": "https://ghproxy.net/",
"cloudRepos": [
"yunrr/obsidian-i18n-resources"
],
"defaultCloudRepo": "yunrr/obsidian-i18n-resources",
"managerTab": "plugins",
"pluginViewMode": "list",
"themeViewMode": "grid",
"autoSave": true,
"autoDiscovery": false,
"autoMatchStrategy": "comprehensive",
"autoApply": false,
"autoCheckInterval": 24,
"autoTrustedRepos": [],
"autoExcludeList": [],
"autoScanMode": "incremental",
"lastAutoCheckTime": 0
}