Files

1453 lines
57 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS[]>
<TS version="2.1" language="en_US">
<context>
<name>AICallBase</name>
<message>
<location filename="../src/ai_call/ai_call_base.cpp" line="86" />
<source>响应解析失败:%1</source>
<translation>Failed to parse the response: %1</translation>
</message>
<message>
<location filename="../src/ai_call/ai_call_base.cpp" line="89" />
<source>响应解析失败:未知错误</source>
<translation>Failed to parse the response: unknown error</translation>
</message>
<message>
<location filename="../src/ai_call/ai_call_base.cpp" line="111" />
<source>请求超时(%1毫秒)</source>
<translation>Request timed out (%1 ms)</translation>
</message>
</context>
<context>
<name>AIViewModel</name>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="66" />
<source>网络错误:</source>
<translation>Network error: </translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="67" />
<source>API 错误:</source>
<translation>API error: </translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="68" />
<source>超时错误:</source>
<translation>Timeout error: </translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="69" />
<source>参数错误:</source>
<translation>Parameter error: </translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="70" />
<source>未知错误:</source>
<translation>Unknown error: </translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="111" />
<source>提示词不能为空</source>
<translation>Prompt cannot be empty.</translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="162" />
<source>下载生成图片失败:</source>
<translation>Failed to download the generated image: </translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="171" />
<source>生成图片解码失败</source>
<translation>Failed to decode the generated image.</translation>
</message>
<message>
<location filename="../src/viewmodel/ai_view_model.cpp" line="189" />
<source>请求发起失败:</source>
<translation>Failed to start the request: </translation>
</message>
</context>
<context>
<name>AboutDialog</name>
<message>
<location filename="../src/widgets/about_dialog.cpp" line="14" />
<source>关于 TZshot</source>
<translation>About TZshot</translation>
</message>
<message>
<location filename="../src/widgets/about_dialog.cpp" line="45" />
<source>版本 v1.0.0</source>
<translation>Version v1.0.0</translation>
</message>
<message>
<location filename="../src/widgets/about_dialog.cpp" line="59" />
<source>简洁高效的截图贴图工具,支持标注、AI 编辑、马赛克等功能。</source>
<translation>A clean and efficient screenshot and pinning tool with annotations, AI editing, mosaic, and more.</translation>
</message>
<message>
<location filename="../src/widgets/about_dialog.cpp" line="67" />
<source>© 2025 TZshot. All rights reserved.</source>
<translation>© 2025 TZshot. All rights reserved.</translation>
</message>
<message>
<location filename="../src/widgets/about_dialog.cpp" line="77" />
<source>关闭</source>
<translation>Close</translation>
</message>
</context>
<context>
<name>CaptureOverlayWidget</name>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="191" />
<location filename="../src/widgets/capture_overlay_widget.cpp" line="210" />
<source>输入文字</source>
<translation>Enter text</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="214" />
<source>确认</source>
<translation>Confirm</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="215" />
<location filename="../src/widgets/capture_overlay_widget.cpp" line="318" />
<source>取消</source>
<translation>Cancel</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="246" />
<source>背景</source>
<translation>Background</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="255" />
<source>自动递增</source>
<translation>Auto Increment</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="303" />
<source>画笔</source>
<translation>Pen</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="304" />
<source>矩形</source>
<translation>Rectangle</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="305" />
<source>圆形</source>
<translation>Circle</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="306" />
<source>箭头</source>
<translation>Arrow</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="307" />
<source>马赛克</source>
<translation>Mosaic</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="308" />
<source>高斯模糊</source>
<translation>Gaussian Blur</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="309" />
<source>文字</source>
<translation>Text</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="310" />
<source>序号</source>
<translation>Number</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="311" />
<source>撤销</source>
<translation>Undo</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="312" />
<source>复制</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="313" />
<source>保存</source>
<translation>Save</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="314" />
<source>贴图</source>
<translation>Pin</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="315" />
<source>OCR</source>
<translation>OCR</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="316" />
<source>长截图</source>
<translation>Long Screenshot</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="317" />
<source>录制 GIF</source>
<translation>Record GIF</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="170" />
<location filename="../src/widgets/capture_overlay_widget.cpp" line="460" />
<source>粗</source>
<translation>Thick</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="86" />
<source>文本</source>
<translation>Text</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="170" />
<source>细</source>
<translation>Thin</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="170" />
<source>中</source>
<translation>Medium</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="170" />
<source>特粗</source>
<translation>Extra Thick</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="1067" />
<source>保存截图</source>
<translation>Save Screenshot</translation>
</message>
<message>
<location filename="../src/widgets/capture_overlay_widget.cpp" line="1069" />
<source>PNG 图片 (*.png)</source>
<translation>PNG Image (*.png)</translation>
</message>
</context>
<context>
<name>DoubaoVisionCall</name>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="97" />
<source>视觉 API Key 不能为空</source>
<translation>Vision API Key cannot be empty.</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="101" />
<source>提示词不能为空</source>
<translation>Prompt cannot be empty.</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="106" />
<source>缺少图片数据</source>
<translation>Missing image data.</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="275" />
<source>响应不是有效的JSON对象</source>
<translation>The response is not a valid JSON object.</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="282" />
<source>未知 API 错误</source>
<translation>Unknown API error</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="294" />
<location filename="../src/ai_call/doubao_vision_call.cpp" line="343" />
<source>响应内容为空</source>
<translation>The response content is empty.</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="451" />
<location filename="../src/ai_call/doubao_vision_call.cpp" line="457" />
<location filename="../src/ai_call/doubao_vision_call.cpp" line="462" />
<source>流式请求失败</source>
<translation>Streaming request failed</translation>
</message>
</context>
<context>
<name>GifRecordOverlayWidget</name>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="440" />
<source>完成录制</source>
<translation>Finish Recording</translation>
</message>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="444" />
<source>取消录制</source>
<translation>Cancel Recording</translation>
</message>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="626" />
<source>导出中</source>
<translation>Exporting</translation>
</message>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="636" />
<source>正在生成 GIF</source>
<translation>Generating GIF</translation>
</message>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="637" />
<source>已捕获 %1 帧</source>
<translation>Captured %1 frames</translation>
</message>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="642" />
<source>REC</source>
<translation>REC</translation>
</message>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="653" />
<source>GIF</source>
<translation>GIF</translation>
</message>
<message>
<location filename="../src/widgets/gif_record_overlay_widget.cpp" line="681" />
<source>帧</source>
<translation>frames</translation>
</message>
</context>
<context>
<name>GifRecordViewModel</name>
<message>
<location filename="../src/viewmodel/gif_record_view_model.cpp" line="49" />
<source>录制区域无效</source>
<translation>Invalid recording area</translation>
</message>
<message>
<location filename="../src/viewmodel/gif_record_view_model.cpp" line="97" />
<source>未采集到任何帧</source>
<translation>No frames were captured</translation>
</message>
<message>
<location filename="../src/viewmodel/gif_record_view_model.cpp" line="161" />
<source>GIF 编码失败,请检查保存路径或磁盘空间</source>
<translation>GIF encoding failed. Check the save path or available disk space.</translation>
</message>
</context>
<context>
<name>HotkeyRecordDialog</name>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="59" />
<source>编辑快捷键</source>
<translation>Edit Shortcut</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="73" />
<source>编辑快捷键 · %1</source>
<translation>Edit Shortcut · %1</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="89" />
<source>请直接按下新的快捷键组合...</source>
<translation>Press the new shortcut combination directly...</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="101" />
<source>取消</source>
<translation>Cancel</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="106" />
<source>确认</source>
<translation>Confirm</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="116" />
<source>截图</source>
<translation>Screenshot</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="117" />
<source>截图并保存</source>
<translation>Screenshot and Save</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="118" />
<source>贴图到桌面</source>
<translation>Pin to Desktop</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="119" />
<source>显示/隐藏窗口</source>
<translation>Show/Hide Window</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="122" />
<source>「%1」已被「%2」使用,请换一个。</source>
<translation>"%1" is already used by "%2". Please choose another one.</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="156" />
<source>请按下新的快捷键组合...</source>
<translation>Press the new shortcut combination...</translation>
</message>
</context>
<context>
<name>LanguageManager</name>
<message>
<location filename="../src/language_manager.cpp" line="33" />
<source>语言切换失败,请稍后重试。</source>
<translation>Failed to switch language. Please try again later.</translation>
</message>
</context>
<context>
<name>LongCaptureController</name>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="109" />
<location filename="../src/widgets/long_capture_controller.cpp" line="232" />
<source>滚动检测中,滑动内容会自动拼接</source>
<translation>Detecting scrolling. Scrolled content will be stitched automatically.</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="138" />
<location filename="../src/widgets/long_capture_controller.cpp" line="209" />
<source>点击开始后,滑动内容自动拼接</source>
<translation>Click Start and the scrolled content will be stitched automatically.</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="203" />
<source>长</source>
<translation>L</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="213" />
<location filename="../src/widgets/long_capture_controller.cpp" line="266" />
<source>0 帧</source>
<translation>0 frames</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="217" />
<source>开始</source>
<translation>Start</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="222" />
<location filename="../src/widgets/long_capture_controller.cpp" line="411" />
<source>关闭</source>
<translation>Close</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="262" />
<source>长截图预览</source>
<translation>Long Screenshot Preview</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="280" />
<location filename="../src/widgets/long_capture_controller.cpp" line="390" />
<source>暂无预览</source>
<translation>No preview available</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="284" />
<source>等待开始</source>
<translation>Waiting to start</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="365" />
<location filename="../src/widgets/long_capture_controller.cpp" line="368" />
<source>%1 帧</source>
<translation>%1 frames</translation>
</message>
<message>
<location filename="../src/widgets/long_capture_controller.cpp" line="411" />
<source>完成</source>
<translation>Finish</translation>
</message>
</context>
<context>
<name>OcrEngine</name>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="212" />
<source>Tesseract Init 失败(chi_sim+eng):未找到可用 tessdata</source>
<translation>Tesseract init failed (chi_sim+eng): no available tessdata was found</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="216" />
<source>Tesseract Init 失败(chi_sim+eng),候选目录=%1</source>
<translation>Tesseract init failed (chi_sim+eng), candidate directories = %1</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="234" />
<source>OCR 未启用:未找到 tesseract 可执行文件。请安装 Tesseract,或设置 TESSERACT_PATH 指向可执行文件</source>
<translation>OCR is unavailable: the tesseract executable was not found. Install Tesseract or set TESSERACT_PATH to the executable.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="268" />
<source>OCR 引擎未就绪</source>
<translation>OCR engine is not ready.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="273" />
<location filename="../src/ocr/ocr_engine.cpp" line="323" />
<source>输入图像为空</source>
<translation>Input image is empty.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="279" />
<source>输入图像尺寸过小</source>
<translation>Input image is too small.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="302" />
<source>Tesseract GetUTF8Text 返回 null</source>
<translation>Tesseract GetUTF8Text returned null.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="315" />
<source>OCR 未就绪:未找到 tesseract 可执行文件</source>
<translation>OCR is not ready: the tesseract executable was not found.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="329" />
<source>OCR 临时目录创建失败</source>
<translation>Failed to create the OCR temporary directory.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="335" />
<source>OCR 临时图片保存失败</source>
<translation>Failed to save the OCR temporary image.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="348" />
<source>OCR 启动失败:无法启动 tesseract 进程</source>
<translation>OCR start failed: unable to launch the tesseract process.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="354" />
<source>OCR 超时:tesseract 执行超过 30 秒</source>
<translation>OCR timed out: tesseract ran longer than 30 seconds.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="364" />
<source>OCR 失败:tesseract 返回非零退出码</source>
<translation>OCR failed: tesseract returned a non-zero exit code.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="365" />
<source>OCR 失败:%1</source>
<translation>OCR failed: %1</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="373" />
<source>OCR 未识别到文本</source>
<translation>OCR did not detect any text.</translation>
</message>
<message>
<location filename="../src/ocr/ocr_engine.cpp" line="374" />
<source>OCR 未识别到文本:%1</source>
<translation>OCR did not detect any text: %1</translation>
</message>
</context>
<context>
<name>OcrResultWidget</name>
<message>
<location filename="../src/widgets/ocr_result_widget.cpp" line="59" />
<source>OCR 识别结果</source>
<translation>OCR Result</translation>
</message>
<message>
<location filename="../src/widgets/ocr_result_widget.cpp" line="91" />
<source>正在识别中…</source>
<translation>Recognizing...</translation>
</message>
<message>
<location filename="../src/widgets/ocr_result_widget.cpp" line="127" />
<source>复制全部</source>
<translation>Copy All</translation>
</message>
<message>
<location filename="../src/widgets/ocr_result_widget.cpp" line="140" />
<source>关闭</source>
<translation>Close</translation>
</message>
<message>
<location filename="../src/widgets/ocr_result_widget.cpp" line="151" />
<source>已复制!</source>
<translation>Copied!</translation>
</message>
<message>
<location filename="../src/widgets/ocr_result_widget.cpp" line="172" />
<source>识别结果将显示在这里…</source>
<translation>Recognition results will appear here...</translation>
</message>
</context>
<context>
<name>OcrViewModel</name>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="29" />
<source>输入图像为空</source>
<translation>Input image is empty.</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="91" />
<source>OCR 环境检查:通过
</source>
<translation>OCR environment check: passed
</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="92" />
<source>可用 tessdata:
</source>
<translation>Available tessdata:
</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="97" />
<source>OCR 环境检查:未通过(缺少 chi_sim/eng 语言包)
</source>
<translation>OCR environment check: failed (missing chi_sim/eng language data)
</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="98" />
<source>建议把以下文件放到目录中:
</source>
<translation>Suggested files to place in the directory:
</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="101" />
<source>候选 tessdata 目录:
</source>
<translation>Candidate tessdata directories:
</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="109" />
<source>引擎初始化:成功</source>
<translation>Engine initialization: succeeded</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="111" />
<source>引擎初始化:失败
</source>
<translation>Engine initialization: failed
</translation>
</message>
<message>
<location filename="../src/viewmodel/ocr_view_model.cpp" line="112" />
<source>错误信息:%1</source>
<translation>Error: %1</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../src/tray_icon_helper.cpp" line="8" />
<source>截图</source>
<translation>Screenshot</translation>
</message>
<message>
<location filename="../src/tray_icon_helper.cpp" line="11" />
<source>设置</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../src/tray_icon_helper.cpp" line="14" />
<source>关于</source>
<translation>About</translation>
</message>
<message>
<location filename="../src/tray_icon_helper.cpp" line="17" />
<source>退出</source>
<translation>Quit</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="23" />
<source>响应中无有效内容</source>
<translation>No valid content was returned in the response.</translation>
</message>
<message>
<location filename="../src/ai_call/doubao_vision_call.cpp" line="52" />
<location filename="../src/ai_call/doubao_vision_call.cpp" line="84" />
<source>响应内容为空</source>
<translation>The response content is empty.</translation>
</message>
</context>
<context>
<name>QwenAICall</name>
<message>
<location filename="../src/ai_call/qwen_ai_call.cpp" line="17" />
<source>API Key 不能为空</source>
<translation>API Key cannot be empty.</translation>
</message>
<message>
<location filename="../src/ai_call/qwen_ai_call.cpp" line="22" />
<source>提示词不能为空</source>
<translation>Prompt cannot be empty.</translation>
</message>
<message>
<location filename="../src/ai_call/qwen_ai_call.cpp" line="108" />
<source>响应不是有效的JSON对象</source>
<translation>The response is not a valid JSON object.</translation>
</message>
<message>
<location filename="../src/ai_call/qwen_ai_call.cpp" line="116" />
<source>未知API错误</source>
<translation>Unknown API error</translation>
</message>
<message>
<location filename="../src/ai_call/qwen_ai_call.cpp" line="124" />
<source>响应中无有效内容</source>
<translation>No valid content was returned in the response.</translation>
</message>
<message>
<location filename="../src/ai_call/qwen_ai_call.cpp" line="133" />
<source>响应内容为空</source>
<translation>The response content is empty.</translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<location filename="../thirdpart/vcpkg/buildtrees/liblzma/src/v5.8.2-30365c07c3.clean/src/liblzma/common/string_conversion.c" line="731" />
<source>
</source>
<comment>Don't translate the</comment>
<translation>
</translation>
</message>
</context>
<context>
<name>ScrollCaptureViewModel</name>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="37" />
<source>长截图区域无效</source>
<translation>Invalid long screenshot area</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="48" />
<source>首帧采样失败</source>
<translation>Failed to capture the first frame</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="61" />
<source>滚动检测已开启,滑动内容会自动拼接</source>
<translation>Scroll detection started. Scrolled content will be stitched automatically.</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="75" />
<source>长截图已停止</source>
<translation>Long screenshot stopped</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="87" />
<source>采样失败,已中断</source>
<translation>Capture failed and was interrupted</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="92" />
<source>等待滚动变化...</source>
<translation>Waiting for scroll changes...</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="101" />
<source>滚动已捕捉,已采样 %1 帧</source>
<translation>Scroll captured, %1 frames sampled</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="103" />
<source>检测到变化但拼接增量为 0,请继续滚动</source>
<translation>Changes detected but stitch delta is 0. Please keep scrolling.</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="107" />
<source>采样帧数超过上限,请先结束并保存</source>
<translation>Captured frame count exceeded the limit. Finish and save first.</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="194" />
<source>拼接失败,结果为空</source>
<translation>Stitching failed: result is empty</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="198" />
<source>未检测到有效滚动,请先激活目标窗口后重试</source>
<translation>No valid scrolling detected. Activate the target window and try again.</translation>
</message>
<message>
<location filename="../src/viewmodel/scroll_capture_view_model.cpp" line="219" />
<source>长截图完成</source>
<translation>Long screenshot complete</translation>
</message>
</context>
<context>
<name>SeedreamAiCall</name>
<message>
<location filename="../src/ai_call/seedream_ai_call.cpp" line="41" />
<source>API Key 不能为空</source>
<translation>API Key cannot be empty.</translation>
</message>
<message>
<location filename="../src/ai_call/seedream_ai_call.cpp" line="45" />
<source>提示词不能为空</source>
<translation>Prompt cannot be empty.</translation>
</message>
<message>
<location filename="../src/ai_call/seedream_ai_call.cpp" line="150" />
<source>响应不是有效的 JSON 对象</source>
<translation>The response is not a valid JSON object.</translation>
</message>
<message>
<location filename="../src/ai_call/seedream_ai_call.cpp" line="158" />
<source>未知 API 错误</source>
<translation>Unknown API error</translation>
</message>
<message>
<location filename="../src/ai_call/seedream_ai_call.cpp" line="165" />
<source>响应中 data 数组为空</source>
<translation>The data array in the response is empty.</translation>
</message>
<message>
<location filename="../src/ai_call/seedream_ai_call.cpp" line="169" />
<source>响应中 url 字段为空</source>
<translation>The url field in the response is empty.</translation>
</message>
</context>
<context>
<name>SelectionMaskController</name>
<message>
<location filename="../src/widgets/selection_mask_controller.cpp" line="181" />
<source>X:%1 Y:%2 宽:%3 高:%4</source>
<translation>X:%1 Y:%2 W:%3 H:%4</translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="205" />
<source>设置</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="245" />
<source>通用设置</source>
<translation>General</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="246" />
<source>快捷键设置</source>
<translation>Hotkeys</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="327" />
<source>大模型设置</source>
<translation>Model Settings</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="335" />
<source>AI 服务商</source>
<translation>AI Provider</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="337" />
<source>阿里云百炼</source>
<translation>Alibaba Cloud DashScope</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="337" />
<source>火山引擎</source>
<translation>Volcengine Ark</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="358" />
<source>保存</source>
<translation>Save</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="368" />
<source>API Key 已保存</source>
<translation>API Key Saved</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="369" />
<source>AI 图像编辑和视觉理解已同步更新。</source>
<translation>AI image editing and vision understanding have been updated.</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="377" />
<source>视觉模型</source>
<translation>Vision Model</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="390" />
<source>联网搜索</source>
<translation>Web Search</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="391" />
<source>AI 理解启用联网搜索</source>
<translation>Enable web search for AI understanding</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="401" />
<source>启用代理</source>
<translation>Enable Proxy</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="402" />
<source>视觉请求走代理</source>
<translation>Use proxy for vision requests</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="412" />
<source>代理类型</source>
<translation>Proxy Type</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="421" />
<source>代理地址</source>
<translation>Proxy Host</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="432" />
<source>代理端口</source>
<translation>Proxy Port</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="449" />
<source>语言设置</source>
<translation>Language</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="455" />
<source>界面语言</source>
<translation>Interface Language</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="457" />
<source>中文</source>
<translation>Chinese</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="457" />
<source>English</source>
<translation>English</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="473" />
<source>语言切换失败</source>
<translation>Failed to Switch Language</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="481" />
<source>截图保存路径</source>
<translation>Screenshot Save Path</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="487" />
<source>保存路径</source>
<translation>Save Path</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="494" />
<source>浏览</source>
<translation>Browse</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="498" />
<source>选择保存位置</source>
<translation>Select Save Location</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="509" />
<source>GIF 录制</source>
<translation>GIF Recording</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="515" />
<source>体积预设</source>
<translation>Size Preset</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="517" />
<source>高质量</source>
<translation>High Quality</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="517" />
<source>均衡</source>
<translation>Balanced</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="517" />
<source>小体积</source>
<translation>Small Size</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="527" />
<source>OCR 自检</source>
<translation>OCR Self-check</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="539" />
<source>点击“一键自检”查看 OCR 环境状态。</source>
<translation>Click "Run Self-check" to view the OCR environment status.</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="543" />
<source>一键自检</source>
<translation>Run Self-check</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="550" />
<source>打开 tessdata</source>
<translation>Open tessdata</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="638" />
<source>编辑</source>
<translation>Edit</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="653" />
<source>快捷键更新失败</source>
<translation>Failed to update shortcut</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="653" />
<source>快捷键「%1」注册失败,请换一个组合。</source>
<translation>Failed to register shortcut "%1". Please choose another combination.</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="669" />
<source>全局快捷键</source>
<translation>Global Hotkeys</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="678" />
<source>说明</source>
<translation>Notes</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="682" />
<source>修改快捷键后会立即保存并重新注册。建议使用包含 Ctrl/Alt/Shift 的组合,以避免与系统或其他软件冲突。</source>
<translation>Shortcut changes are saved and re-registered immediately. Use combinations with Ctrl/Alt/Shift to avoid conflicts with the system or other apps.</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="732" />
<source>截图</source>
<translation>Screenshot</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="733" />
<source>截图并保存</source>
<translation>Screenshot and Save</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="734" />
<source>贴图到桌面</source>
<translation>Pin to Desktop</translation>
</message>
<message>
<location filename="../src/widgets/settings_dialog.cpp" line="735" />
<source>显示/隐藏窗口</source>
<translation>Show/Hide Window</translation>
</message>
</context>
<context>
<name>StickyAiDialog</name>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="142" />
<source>AI 图像编辑</source>
<translation>AI Image Editing</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="172" />
<source>当前贴图</source>
<translation>Current Pin</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="175" />
<source>发送后将对此图执行 AI 编辑</source>
<translation>AI editing will be applied to this image after sending</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="184" />
<source>描述您想要的修改...</source>
<translation>Describe the changes you want...</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="191" />
<source>取消</source>
<translation>Cancel</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="196" />
<source>发送</source>
<translation>Send</translation>
</message>
</context>
<context>
<name>StickyPinWidget</name>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="312" />
<source>AI 编辑失败</source>
<translation>AI Edit Failed</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="353" />
<source>细</source>
<translation>Thin</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="353" />
<source>中</source>
<translation>Medium</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="353" />
<source>特粗</source>
<translation>Extra Thick</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="374" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="386" />
<source>输入文字</source>
<translation>Enter text</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="405" />
<source>背景</source>
<translation>Background</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="414" />
<source>自动递增</source>
<translation>Auto Increment</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="497" />
<source>画笔</source>
<translation>Pen</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="498" />
<source>矩形</source>
<translation>Rectangle</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="499" />
<source>圆形</source>
<translation>Circle</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="500" />
<source>箭头</source>
<translation>Arrow</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="501" />
<source>高亮</source>
<translation>Highlight</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="502" />
<source>马赛克</source>
<translation>Mosaic</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="503" />
<source>高斯模糊</source>
<translation>Gaussian Blur</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="504" />
<source>文字</source>
<translation>Text</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="505" />
<source>序号</source>
<translation>Number</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="506" />
<source>撤销</source>
<translation>Undo</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="507" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="805" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="895" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="899" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="925" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="980" />
<source>AI 编辑</source>
<translation>AI Edit</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="508" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="806" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="935" />
<source>AI 理解</source>
<translation>AI Understand</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="509" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="803" />
<source>复制</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="510" />
<source>保存</source>
<translation>Save</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="511" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="807" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="1138" />
<source>隐藏工具栏</source>
<translation>Hide Toolbar</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="512" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="810" />
<source>关闭</source>
<translation>Close</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="353" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="603" />
<source>粗</source>
<translation>Thick</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="251" />
<source>文本</source>
<translation>Text</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="687" />
<source>AI 正在处理中</source>
<translation>AI is processing</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="699" />
<source>请稍候…</source>
<translation>Please wait...</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="804" />
<source>保存原图</source>
<translation>Save Original</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="807" />
<location filename="../src/widgets/sticky_pin_widget.cpp" line="1138" />
<source>显示工具栏</source>
<translation>Show Toolbar</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="808" />
<source>隐藏阴影</source>
<translation>Hide Shadow</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="808" />
<source>显示阴影</source>
<translation>Show Shadow</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="895" />
<source>AI 功能当前不可用。</source>
<translation>AI feature is currently unavailable.</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="899" />
<source>当前有图像编辑任务正在处理中。</source>
<translation>An AI image editing task is already in progress.</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="925" />
<source>提示词不能为空。</source>
<translation>Prompt cannot be empty.</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="935" />
<source>视觉理解功能当前不可用。</source>
<translation>Vision understanding is currently unavailable.</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="980" />
<source>AI 编辑处理中…</source>
<translation>AI edit in progress...</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="1027" />
<source>选择保存位置</source>
<translation>Select Save Location</translation>
</message>
<message>
<location filename="../src/widgets/sticky_pin_widget.cpp" line="1029" />
<source>PNG (*.png);;JPG (*.jpg);;BMP (*.bmp)</source>
<translation>PNG (*.png);;JPG (*.jpg);;BMP (*.bmp)</translation>
</message>
</context>
<context>
<name>TZShotApp</name>
<message>
<location filename="../src/app/tzshot_app.cpp" line="52" />
<source>OCR 识别失败</source>
<translation>OCR Recognition Failed</translation>
</message>
</context>
<context>
<name>VisionResultWidget</name>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="54" />
<source>AI 视觉理解</source>
<translation>AI Vision Understanding</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="88" />
<source>图片预览</source>
<translation>Image Preview</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="98" />
<location filename="../src/widgets/vision_result_widget.cpp" line="244" />
<source>输入提示词后点击发送。</source>
<translation>Enter a prompt and click Send.</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="110" />
<source>提示词</source>
<translation>Prompt</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="118" />
<source>例如:请总结这张截图里的重点信息</source>
<translation>Example: Summarize the key points in this screenshot</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="124" />
<source>发送</source>
<translation>Send</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="134" />
<source>分析结果</source>
<translation>Analysis Result</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="140" />
<source>分析结果会显示在这里…</source>
<translation>Results will appear here...</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="148" />
<source>复制结果</source>
<translation>Copy Result</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="165" />
<source>已复制!</source>
<translation>Copied!</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="188" />
<source>正在分析图片内容…</source>
<translation>Analyzing image content...</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="198" />
<source>正在生成回答…</source>
<translation>Generating response...</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="211" />
<source>分析完成。</source>
<translation>Analysis complete.</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="239" />
<source>请总结这张截图里的重点信息</source>
<translation>Please summarize the key points in this screenshot</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="252" />
<source>暂无预览</source>
<translation>No preview available</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="304" />
<source>视觉功能当前不可用。</source>
<translation>Vision feature is currently unavailable.</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="308" />
<source>当前没有可分析的图片。</source>
<translation>There is no image to analyze right now.</translation>
</message>
<message>
<location filename="../src/widgets/vision_result_widget.cpp" line="313" />
<source>提示词不能为空。</source>
<translation>Prompt cannot be empty.</translation>
</message>
</context>
<context>
<name>VisionViewModel</name>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="67" />
<source>网络错误:</source>
<translation>Network error: </translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="68" />
<source>API 错误:</source>
<translation>API error: </translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="69" />
<source>超时错误:</source>
<translation>Timeout error: </translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="70" />
<source>参数错误:</source>
<translation>Parameter error: </translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="212" />
<source>已有视觉分析任务正在进行中</source>
<translation>A vision analysis task is already in progress.</translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="216" />
<source>提示词不能为空</source>
<translation>Prompt cannot be empty.</translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="222" />
<source>读取图片失败</source>
<translation>Failed to load the image.</translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="229" />
<source>图片编码失败</source>
<translation>Failed to encode the image.</translation>
</message>
<message>
<location filename="../src/viewmodel/vision_view_model.cpp" line="246" />
<source>请求发起失败:</source>
<translation>Failed to start the request: </translation>
</message>
</context>
</TS>