feat(i18n): 英文翻译(95 条)并验证加载
- translations/gxde-ai-see_en.ts 全部翻译完成 - selftest 支持 GXDE_AI_SEE_QM 环境变量,验证 3 个上下文的翻译生效 - CHANGELOG 更新
This commit is contained in:
+1
-1
@@ -18,6 +18,6 @@
|
|||||||
- MCP:stdio JSON-RPC,自动 initialize / tools-list,工具以 function calling 暴露给模型并在对话中执行
|
- MCP:stdio JSON-RPC,自动 initialize / tools-list,工具以 function calling 暴露给模型并在对话中执行
|
||||||
- 合成器 portal(flake-wm / gxde-wlcom):org.gxde.Portal、缩略图坐标映射、
|
- 合成器 portal(flake-wm / gxde-wlcom):org.gxde.Portal、缩略图坐标映射、
|
||||||
原生 drop 到目标窗口
|
原生 drop 到目标窗口
|
||||||
- gxde-k9 开机自启与保活开关;不支持环境只提示一次并保持待命
|
- 英文翻译(95 条)与翻译加载;gxde-k9 开机自启与保活开关;不支持环境只提示一次并保持待命
|
||||||
|
|
||||||
-- shenmo <shenmo@spark-app.store>
|
-- shenmo <shenmo@spark-app.store>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
|
#include <QTranslator>
|
||||||
|
|
||||||
#include "actions/texttools.h"
|
#include "actions/texttools.h"
|
||||||
#include "factory/contentclassifier.h"
|
#include "factory/contentclassifier.h"
|
||||||
@@ -39,6 +40,22 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
QCoreApplication app(argc, argv);
|
QCoreApplication app(argc, argv);
|
||||||
|
|
||||||
|
if (qEnvironmentVariableIsSet("GXDE_AI_SEE_QM")) {
|
||||||
|
auto *translator = new QTranslator(&app);
|
||||||
|
if (translator->load(QString::fromLocal8Bit(qgetenv("GXDE_AI_SEE_QM")))) {
|
||||||
|
app.installTranslator(translator);
|
||||||
|
check(QCoreApplication::translate("PortalPanel", "暂存区")
|
||||||
|
== QStringLiteral("Staging"),
|
||||||
|
"english translation: PortalPanel/暂存区");
|
||||||
|
check(QCoreApplication::translate("ChatWindow", "发送") == QStringLiteral("Send"),
|
||||||
|
"english translation: ChatWindow/发送");
|
||||||
|
check(QCoreApplication::translate("TodoWindow", "待办") == QStringLiteral("Todo"),
|
||||||
|
"english translation: TodoWindow/待办");
|
||||||
|
} else {
|
||||||
|
check(false, "load english .qm");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// http link with a video extension
|
// http link with a video extension
|
||||||
const LinkInfo video = LinkTools::parse(QStringLiteral("https://example.com/media/clip.mp4"));
|
const LinkInfo video = LinkTools::parse(QStringLiteral("https://example.com/media/clip.mp4"));
|
||||||
check(video.kind == LinkInfo::Http, "https link recognised");
|
check(video.kind == LinkInfo::Http, "https link recognised");
|
||||||
|
|||||||
@@ -6,12 +6,12 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/app.cpp" line="76"/>
|
<location filename="../src/app.cpp" line="76"/>
|
||||||
<source>小埃同学</source>
|
<source>小埃同学</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>AI See</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/app.cpp" line="77"/>
|
<location filename="../src/app.cpp" line="77"/>
|
||||||
<source>当前桌面不支持传送门(需要 GXDE Wayland 合成器)。小埃同学会继续在后台待命,暂存区、内容工厂和对话仍然可用。</source>
|
<source>当前桌面不支持传送门(需要 GXDE Wayland 合成器)。小埃同学会继续在后台待命,暂存区、内容工厂和对话仍然可用。</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>This desktop does not support the portal (a GXDE Wayland compositor is required). AI See will stay idle in the background; staging, the content factory and chat remain available.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -19,17 +19,17 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatclient.cpp" line="158"/>
|
<location filename="../src/chat/chatclient.cpp" line="158"/>
|
||||||
<source>模型没有返回内容</source>
|
<source>模型没有返回内容</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>The model returned nothing</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatclient.cpp" line="227"/>
|
<location filename="../src/chat/chatclient.cpp" line="227"/>
|
||||||
<source>请求失败</source>
|
<source>请求失败</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Request failed</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatclient.cpp" line="277"/>
|
<location filename="../src/chat/chatclient.cpp" line="277"/>
|
||||||
<source>API Key 无效或已过期</source>
|
<source>API Key 无效或已过期</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>The API key is invalid or expired</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -38,164 +38,164 @@
|
|||||||
<location filename="../src/chat/chatwindow.cpp" line="211"/>
|
<location filename="../src/chat/chatwindow.cpp" line="211"/>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="334"/>
|
<location filename="../src/chat/chatwindow.cpp" line="334"/>
|
||||||
<source>小埃同学</source>
|
<source>小埃同学</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>AI See</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="250"/>
|
<location filename="../src/chat/chatwindow.cpp" line="250"/>
|
||||||
<source>工具调用次数过多,已停止</source>
|
<source>工具调用次数过多,已停止</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Too many tool calls, stopped</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="309"/>
|
<location filename="../src/chat/chatwindow.cpp" line="309"/>
|
||||||
<source>⚠️ %1</source>
|
<source>⚠️ %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>⚠️ %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="342"/>
|
<location filename="../src/chat/chatwindow.cpp" line="342"/>
|
||||||
<source>把内容拖进对话即可提问</source>
|
<source>把内容拖进对话即可提问</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Drop content into a conversation to ask about it</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="355"/>
|
<location filename="../src/chat/chatwindow.cpp" line="355"/>
|
||||||
<source>+ 新建对话</source>
|
<source>+ 新建对话</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>+ New conversation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="363"/>
|
<location filename="../src/chat/chatwindow.cpp" line="363"/>
|
||||||
<source>⋯ 更多</source>
|
<source>⋯ 更多</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>⋯ More</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="370"/>
|
<location filename="../src/chat/chatwindow.cpp" line="370"/>
|
||||||
<source>压缩上下文</source>
|
<source>压缩上下文</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Compress context</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="371"/>
|
<location filename="../src/chat/chatwindow.cpp" line="371"/>
|
||||||
<source>重试上一条</source>
|
<source>重试上一条</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Retry last message</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="372"/>
|
<location filename="../src/chat/chatwindow.cpp" line="372"/>
|
||||||
<source>重新加载 MCP</source>
|
<source>重新加载 MCP</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Reload MCP</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="375"/>
|
<location filename="../src/chat/chatwindow.cpp" line="375"/>
|
||||||
<source>没有配置 MCP 服务器</source>
|
<source>没有配置 MCP 服务器</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>No MCP server configured</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="380"/>
|
<location filename="../src/chat/chatwindow.cpp" line="380"/>
|
||||||
<source>关于</source>
|
<source>关于</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>About</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="384"/>
|
<location filename="../src/chat/chatwindow.cpp" line="384"/>
|
||||||
<source>设置</source>
|
<source>设置</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="416"/>
|
<location filename="../src/chat/chatwindow.cpp" line="416"/>
|
||||||
<source>输入消息,Ctrl+Enter 发送;也可以把文件/文字拖进窗口</source>
|
<source>输入消息,Ctrl+Enter 发送;也可以把文件/文字拖进窗口</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Type a message, Ctrl+Enter to send; you can also drop files or text here</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="424"/>
|
<location filename="../src/chat/chatwindow.cpp" line="424"/>
|
||||||
<source>发送</source>
|
<source>发送</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Send</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="535"/>
|
<location filename="../src/chat/chatwindow.cpp" line="535"/>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="652"/>
|
<location filename="../src/chat/chatwindow.cpp" line="652"/>
|
||||||
<source>新对话</source>
|
<source>新对话</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>New conversation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="605"/>
|
<location filename="../src/chat/chatwindow.cpp" line="605"/>
|
||||||
<source>你</source>
|
<source>你</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>You</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="605"/>
|
<location filename="../src/chat/chatwindow.cpp" line="605"/>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="630"/>
|
<location filename="../src/chat/chatwindow.cpp" line="630"/>
|
||||||
<source>小埃</source>
|
<source>小埃</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>AI See</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="826"/>
|
<location filename="../src/chat/chatwindow.cpp" line="826"/>
|
||||||
<source>正在压缩上下文…</source>
|
<source>正在压缩上下文…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Compressing context…</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="845"/>
|
<location filename="../src/chat/chatwindow.cpp" line="845"/>
|
||||||
<source>编辑消息</source>
|
<source>编辑消息</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Edit message</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="906"/>
|
<location filename="../src/chat/chatwindow.cpp" line="906"/>
|
||||||
<source>%1 · 分支</source>
|
<source>%1 · 分支</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1 · branch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="944"/>
|
<location filename="../src/chat/chatwindow.cpp" line="944"/>
|
||||||
<source>关于小埃同学</source>
|
<source>关于小埃同学</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>About AI See</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="945"/>
|
<location filename="../src/chat/chatwindow.cpp" line="945"/>
|
||||||
<source><h3>GXDE 小埃同学</h3><p>版本 %1</p><p>GXDE 桌面的 AI 助手:传送门、内容工厂、待办与对话。</p><p>许可证:GPL-3.0-or-later<br/>仓库:<a href='https://gitee.com/GXDE-OS/gxde-ai-see'>gitee.com/GXDE-OS/gxde-ai-see</a></p></source>
|
<source><h3>GXDE 小埃同学</h3><p>版本 %1</p><p>GXDE 桌面的 AI 助手:传送门、内容工厂、待办与对话。</p><p>许可证:GPL-3.0-or-later<br/>仓库:<a href='https://gitee.com/GXDE-OS/gxde-ai-see'>gitee.com/GXDE-OS/gxde-ai-see</a></p></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation><h3>GXDE AI See</h3><p>Version %1</p><p>The AI assistant for the GXDE desktop: portal, content factory, todo and chat.</p><p>License: GPL-3.0-or-later<br/>Repository: <a href='https://gitee.com/GXDE-OS/gxde-ai-see'>gitee.com/GXDE-OS/gxde-ai-see</a></p></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="963"/>
|
<location filename="../src/chat/chatwindow.cpp" line="963"/>
|
||||||
<source>小埃同学设置</source>
|
<source>小埃同学设置</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>AI See settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="975"/>
|
<location filename="../src/chat/chatwindow.cpp" line="975"/>
|
||||||
<source>DeepSeek API Key</source>
|
<source>DeepSeek API Key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>DeepSeek API key</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="982"/>
|
<location filename="../src/chat/chatwindow.cpp" line="982"/>
|
||||||
<source>API 地址</source>
|
<source>API 地址</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>API endpoint</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="992"/>
|
<location filename="../src/chat/chatwindow.cpp" line="992"/>
|
||||||
<source>模型</source>
|
<source>模型</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Model</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="998"/>
|
<location filename="../src/chat/chatwindow.cpp" line="998"/>
|
||||||
<source>上下文条数</source>
|
<source>上下文条数</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Context messages</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="1000"/>
|
<location filename="../src/chat/chatwindow.cpp" line="1000"/>
|
||||||
<source>超出后自动压缩旧消息</source>
|
<source>超出后自动压缩旧消息</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Automatically compress older messages when exceeded</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="1013"/>
|
<location filename="../src/chat/chatwindow.cpp" line="1013"/>
|
||||||
<source>MCP 服务器(JSON)</source>
|
<source>MCP 服务器(JSON)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>MCP servers (JSON)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="1020"/>
|
<location filename="../src/chat/chatwindow.cpp" line="1020"/>
|
||||||
<source>系统提示</source>
|
<source>系统提示</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>System prompt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="1025"/>
|
<location filename="../src/chat/chatwindow.cpp" line="1025"/>
|
||||||
<source>还没有账号?前往 <a href='https://platform.deepseek.com'>platform.deepseek.com</a> 开通并创建 API Key。Key 只保存在本机配置文件中。</source>
|
<source>还没有账号?前往 <a href='https://platform.deepseek.com'>platform.deepseek.com</a> 开通并创建 API Key。Key 只保存在本机配置文件中。</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>No account yet? Sign up and create an API key at <a href='https://platform.deepseek.com'>platform.deepseek.com</a>. The key is stored only in the local configuration file.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatwindow.cpp" line="1055"/>
|
<location filename="../src/chat/chatwindow.cpp" line="1055"/>
|
||||||
<source>MCP 配置不是合法的 JSON 数组,已忽略</source>
|
<source>MCP 配置不是合法的 JSON 数组,已忽略</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>The MCP configuration is not a valid JSON array; ignored</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -204,12 +204,12 @@
|
|||||||
<location filename="../src/factory/contentfactory.cpp" line="151"/>
|
<location filename="../src/factory/contentfactory.cpp" line="151"/>
|
||||||
<location filename="../src/factory/contentfactory.cpp" line="181"/>
|
<location filename="../src/factory/contentfactory.cpp" line="181"/>
|
||||||
<source>拖到这里,按类型处理</source>
|
<source>拖到这里,按类型处理</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Drop here to process by type</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/factory/contentfactory.cpp" line="154"/>
|
<location filename="../src/factory/contentfactory.cpp" line="154"/>
|
||||||
<source>拖到动作上松手</source>
|
<source>拖到动作上松手</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Drop onto an action</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -217,27 +217,27 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/actions/downloader.cpp" line="78"/>
|
<location filename="../src/actions/downloader.cpp" line="78"/>
|
||||||
<source>另存为</source>
|
<source>另存为</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Save as</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/actions/downloader.cpp" line="89"/>
|
<location filename="../src/actions/downloader.cpp" line="89"/>
|
||||||
<source>无法写入:%1</source>
|
<source>无法写入:%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Cannot write: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/actions/downloader.cpp" line="99"/>
|
<location filename="../src/actions/downloader.cpp" line="99"/>
|
||||||
<source>开始下载:%1</source>
|
<source>开始下载:%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Downloading: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/actions/downloader.cpp" line="108"/>
|
<location filename="../src/actions/downloader.cpp" line="108"/>
|
||||||
<source>下载失败:%1</source>
|
<source>下载失败:%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Download failed: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/actions/downloader.cpp" line="111"/>
|
<location filename="../src/actions/downloader.cpp" line="111"/>
|
||||||
<source>下载完成:%1</source>
|
<source>下载完成:%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Downloaded: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -245,184 +245,184 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="761"/>
|
<location filename="../src/ui/portalpanel.cpp" line="761"/>
|
||||||
<source>GXDE 小埃同学</source>
|
<source>GXDE 小埃同学</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>GXDE AI See</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="781"/>
|
<location filename="../src/ui/portalpanel.cpp" line="781"/>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="889"/>
|
<location filename="../src/ui/portalpanel.cpp" line="889"/>
|
||||||
<source>%1 项</source>
|
<source>%1 项</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1 items</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="859"/>
|
<location filename="../src/ui/portalpanel.cpp" line="859"/>
|
||||||
<source>移动到目标窗口上松手</source>
|
<source>移动到目标窗口上松手</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Move onto a target window and release</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="861"/>
|
<location filename="../src/ui/portalpanel.cpp" line="861"/>
|
||||||
<source>当前无已打开的窗口</source>
|
<source>当前无已打开的窗口</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>No open windows</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="862"/>
|
<location filename="../src/ui/portalpanel.cpp" line="862"/>
|
||||||
<source>当前环境不支持传送门</source>
|
<source>当前环境不支持传送门</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>The portal is not supported in this environment</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="880"/>
|
<location filename="../src/ui/portalpanel.cpp" line="880"/>
|
||||||
<source>暂存区</source>
|
<source>暂存区</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Staging</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="913"/>
|
<location filename="../src/ui/portalpanel.cpp" line="913"/>
|
||||||
<source>全选</source>
|
<source>全选</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Select all</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="914"/>
|
<location filename="../src/ui/portalpanel.cpp" line="914"/>
|
||||||
<source>反选</source>
|
<source>反选</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Invert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="915"/>
|
<location filename="../src/ui/portalpanel.cpp" line="915"/>
|
||||||
<source>删除选中</source>
|
<source>删除选中</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Delete selected</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1031"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1031"/>
|
||||||
<source>复制</source>
|
<source>复制</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Copy</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1035"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1035"/>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1043"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1043"/>
|
||||||
<source>已复制</source>
|
<source>已复制</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Copied</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1097"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1097"/>
|
||||||
<source>真实地址</source>
|
<source>真实地址</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Real address</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1102"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1102"/>
|
||||||
<source>分词(%1)</source>
|
<source>分词(%1)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Segmented (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1107"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1107"/>
|
||||||
<source>提取链接(%1)</source>
|
<source>提取链接(%1)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Links (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1113"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1113"/>
|
||||||
<source>未找到语音朗读程序</source>
|
<source>未找到语音朗读程序</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>No speech program found</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1117"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1117"/>
|
||||||
<source>开始朗读</source>
|
<source>开始朗读</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Reading aloud</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1124"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1124"/>
|
||||||
<source>已添加到待办</source>
|
<source>已添加到待办</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Added to todo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1129"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1129"/>
|
||||||
<source>没有可保存的图片</source>
|
<source>没有可保存的图片</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>No image to save</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1133"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1133"/>
|
||||||
<source>保存图片</source>
|
<source>保存图片</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Save image</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1133"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1133"/>
|
||||||
<source>图片 (*.png *.jpg)</source>
|
<source>图片 (*.png *.jpg)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Images (*.png *.jpg)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1136"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1136"/>
|
||||||
<source>已保存:%1</source>
|
<source>已保存:%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Saved: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1145"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1145"/>
|
||||||
<source>翻译接口将在小埃同学接入后可用</source>
|
<source>翻译接口将在小埃同学接入后可用</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Translation will be available once the AI backend is wired up</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1150"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1150"/>
|
||||||
<source>该能力尚未接入 GXDE Daemon</source>
|
<source>该能力尚未接入 GXDE Daemon</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>This capability is not wired to GXDE Daemon yet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1154"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1154"/>
|
||||||
<source>未知操作:%1</source>
|
<source>未知操作:%1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Unknown action: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1297"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1297"/>
|
||||||
<source>固定位置</source>
|
<source>固定位置</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Pin position</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1301"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1301"/>
|
||||||
<source>恢复默认位置</source>
|
<source>恢复默认位置</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Restore default position</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1303"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1303"/>
|
||||||
<source>固定大小</source>
|
<source>固定大小</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Pin size</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1307"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1307"/>
|
||||||
<source>全屏时隐藏</source>
|
<source>全屏时隐藏</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Hide on fullscreen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1316"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1316"/>
|
||||||
<source>开机自启与后台保活</source>
|
<source>开机自启与后台保活</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Start at login and keep alive</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1321"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1321"/>
|
||||||
<source>清空暂存区</source>
|
<source>清空暂存区</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Clear staging area</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1322"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1322"/>
|
||||||
<source>关于</source>
|
<source>关于</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>About</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1323"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1323"/>
|
||||||
<source>退出</source>
|
<source>退出</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Quit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1370"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1370"/>
|
||||||
<source>已开启开机自启与保活</source>
|
<source>已开启开机自启与保活</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Startup and keep-alive enabled</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1370"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1370"/>
|
||||||
<source>已关闭开机自启与保活</source>
|
<source>已关闭开机自启与保活</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Startup and keep-alive disabled</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1375"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1375"/>
|
||||||
<source>关于小埃同学</source>
|
<source>关于小埃同学</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>About AI See</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="1376"/>
|
<location filename="../src/ui/portalpanel.cpp" line="1376"/>
|
||||||
<source><h3>GXDE 小埃同学</h3><p>版本 %1</p><p>传送门、内容工厂、待办与小埃同学对话。</p><p>GPL-3.0-or-later · <a href='https://gitee.com/GXDE-OS/gxde-ai-see'>gxde-ai-see</a></p></source>
|
<source><h3>GXDE 小埃同学</h3><p>版本 %1</p><p>传送门、内容工厂、待办与小埃同学对话。</p><p>GPL-3.0-or-later · <a href='https://gitee.com/GXDE-OS/gxde-ai-see'>gxde-ai-see</a></p></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation><h3>GXDE AI See</h3><p>Version %1</p><p>Portal, content factory, todo and AI See chat.</p><p>GPL-3.0-or-later · <a href='https://gitee.com/GXDE-OS/gxde-ai-see'>gxde-ai-see</a></p></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -430,23 +430,24 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="587"/>
|
<location filename="../src/ui/portalpanel.cpp" line="587"/>
|
||||||
<source>问问小埃 →</source>
|
<source>问问小埃 →</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ask AI See →</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="664"/>
|
<location filename="../src/ui/portalpanel.cpp" line="664"/>
|
||||||
<source>传送门</source>
|
<source>传送门</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Portal</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="672"/>
|
<location filename="../src/ui/portalpanel.cpp" line="672"/>
|
||||||
<source>拖到这里
|
<source>拖到这里
|
||||||
选择窗口跃迁</source>
|
选择窗口跃迁</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Drop here
|
||||||
|
to choose a window</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="729"/>
|
<location filename="../src/ui/portalpanel.cpp" line="729"/>
|
||||||
<source>悬停在「传送门」上,再移动到目标窗口</source>
|
<source>悬停在「传送门」上,再移动到目标窗口</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Hover the portal, then move onto a target window</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -454,22 +455,22 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/chat/chatclient.cpp" line="24"/>
|
<location filename="../src/chat/chatclient.cpp" line="24"/>
|
||||||
<source>还没有配置 API Key。请先点右上角设置,填入 DeepSeek API Key。</source>
|
<source>还没有配置 API Key。请先点右上角设置,填入 DeepSeek API Key。</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>No API key configured yet. Open Settings and enter your DeepSeek API key.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="118"/>
|
<location filename="../src/ui/portalpanel.cpp" line="118"/>
|
||||||
<source>文件</source>
|
<source>文件</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>File</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="120"/>
|
<location filename="../src/ui/portalpanel.cpp" line="120"/>
|
||||||
<source>图片</source>
|
<source>图片</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Image</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="122"/>
|
<location filename="../src/ui/portalpanel.cpp" line="122"/>
|
||||||
<source>文字 · %1 字</source>
|
<source>文字 · %1 字</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Text · %1 chars</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -477,7 +478,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/ui/portalpanel.cpp" line="351"/>
|
<location filename="../src/ui/portalpanel.cpp" line="351"/>
|
||||||
<source>把文件、文字或图片拖到这里</source>
|
<source>把文件、文字或图片拖到这里</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Drop files, text or images here</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -486,39 +487,39 @@
|
|||||||
<location filename="../src/todo/todowindow.cpp" line="145"/>
|
<location filename="../src/todo/todowindow.cpp" line="145"/>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="195"/>
|
<location filename="../src/todo/todowindow.cpp" line="195"/>
|
||||||
<source>待办</source>
|
<source>待办</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Todo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="158"/>
|
<location filename="../src/todo/todowindow.cpp" line="158"/>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="203"/>
|
<location filename="../src/todo/todowindow.cpp" line="203"/>
|
||||||
<source>%1 项</source>
|
<source>%1 项</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1 items</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="208"/>
|
<location filename="../src/todo/todowindow.cpp" line="208"/>
|
||||||
<source>+</source>
|
<source>+</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>+</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="212"/>
|
<location filename="../src/todo/todowindow.cpp" line="212"/>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="280"/>
|
<location filename="../src/todo/todowindow.cpp" line="280"/>
|
||||||
<source>新建待办</source>
|
<source>新建待办</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>New todo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="220"/>
|
<location filename="../src/todo/todowindow.cpp" line="220"/>
|
||||||
<source>×</source>
|
<source>×</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>×</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="224"/>
|
<location filename="../src/todo/todowindow.cpp" line="224"/>
|
||||||
<source>隐藏</source>
|
<source>隐藏</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Hide</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/todo/todowindow.cpp" line="285"/>
|
<location filename="../src/todo/todowindow.cpp" line="285"/>
|
||||||
<source>要做的事…</source>
|
<source>要做的事…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Something to do…</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|||||||
Reference in New Issue
Block a user