Translate every Omarchy notification and the remaining prompts, matching templates longest first
This commit is contained in:
1 parent
f63ecb6697
commit
619979a716
6 files changed
+89
-25
No files matched your search
+84
-20
@@ -492,6 +492,45 @@ var table = {
|
|||||||
"%1 is now the default editor": "%1 现在是默认编辑器",
|
"%1 is now the default editor": "%1 现在是默认编辑器",
|
||||||
"%1 is now the default terminal": "%1 现在是默认终端",
|
"%1 is now the default terminal": "%1 现在是默认终端",
|
||||||
"%1 installed": "%1 已安装",
|
"%1 installed": "%1 已安装",
|
||||||
|
"Screen recording saved": "录屏已保存",
|
||||||
|
"Open with Super + Alt + , (or click this)": "用 Super + Alt + , 打开(或点击这里)",
|
||||||
|
"Download complete": "下载完成",
|
||||||
|
"Restart Foot to apply the new terminal font size": "重启 Foot 以应用新的终端字号",
|
||||||
|
"You must restart Ghostty to see font change": "需要重启 Ghostty 才能看到字体变化",
|
||||||
|
"You must restart Foot to see font change": "需要重启 Foot 才能看到字体变化",
|
||||||
|
"Pending Omarchy Migrations": "有待运行的 Omarchy 迁移",
|
||||||
|
"Click to run 1 pending migration.": "点击运行 1 个待运行的迁移。",
|
||||||
|
"Editing Cloned Plugin": "正在编辑克隆的插件",
|
||||||
|
"Original plugin has been replace by clone.": "原插件已被克隆替换。",
|
||||||
|
"Click to diagnose with AI": "点击用 AI 诊断",
|
||||||
|
"Screen did not lock before suspend": "挂起前屏幕没有锁定",
|
||||||
|
"Taildrop transfer failed": "Taildrop 传输失败",
|
||||||
|
"Setup Fingerprint Reader": "设置指纹识别器",
|
||||||
|
"Enable sudo and unlocking with your fingerprint.": "用指纹进行 sudo 和解锁。",
|
||||||
|
"Set your default agent": "设置默认 AI 代理",
|
||||||
|
"Let your favorite agent help with Omarchy.": "让你喜欢的 AI 代理帮你使用 Omarchy。",
|
||||||
|
"Install Dictation with Voxtype": "安装 Voxtype 语音输入",
|
||||||
|
"Click to install voice dictation for Omarchy.": "点击为 Omarchy 安装语音输入。",
|
||||||
|
"All %1 accounts are over %2%": "所有 %1 账户都超过 %2%",
|
||||||
|
"Staying on %1. %2 resets in %3.": "继续使用 %1。%2 将在 %3 后重置。",
|
||||||
|
"Staying on %1.": "继续使用 %1。",
|
||||||
|
"%1 is at %2% of a %3 limit": "%1 已用到 %3 额度的 %2%",
|
||||||
|
"New %1 sessions now use %2 (%3%). Running sessions stay on %4.": "新的 %1 会话现在使用 %2(%3%)。正在运行的会话仍使用 %4。",
|
||||||
|
"%1 is at %2%. Click to switch new sessions to it.": "%1 已用到 %2%。点击把新会话切换到它。",
|
||||||
|
"Running sessions stay on %1.": "正在运行的会话仍使用 %1。",
|
||||||
|
"Click to run %1 pending migrations.": "点击运行 %1 个待运行的迁移。",
|
||||||
|
"Process crashed: %1": "进程崩溃:%1",
|
||||||
|
"You'll be reminded at %1": "将在 %1 提醒你",
|
||||||
|
"Reminder set for %1 minutes": "已设置 %1 分钟后的提醒",
|
||||||
|
"%1 in %2 minutes": "%2 分钟后:%1",
|
||||||
|
"Received %1": "已收到 %1",
|
||||||
|
"Saved to %1": "已保存到 %1",
|
||||||
|
"The session was left unlocked (%1).": "会话没有锁定(%1)。",
|
||||||
|
"%1 to %2 (%3)": "%1 转为 %2(%3)",
|
||||||
|
"Battery %1% · Holding at %2 · %3W / %4Wh": "电池 %1% · 保持在 %2 · %3W / %4Wh",
|
||||||
|
"Battery %1% · %2 to full · %3W / %4Wh": "电池 %1% · %2 后充满 · %3W / %4Wh",
|
||||||
|
"Battery %1% · %2 left · %3W / %4Wh": "电池 %1% · 剩余 %2 · %3W / %4Wh",
|
||||||
|
"%1 · %2 · Week %3": "%1 · %2 · 第 %3 周",
|
||||||
// Clock
|
// Clock
|
||||||
"Right-click to toggle format": "右键切换格式",
|
"Right-click to toggle format": "右键切换格式",
|
||||||
"Back to today": "回到今天",
|
"Back to today": "回到今天",
|
||||||
@@ -501,6 +540,7 @@ var table = {
|
|||||||
"Start weeks on %1": "每周从%1开始",
|
"Start weeks on %1": "每周从%1开始",
|
||||||
"Previous month": "上个月",
|
"Previous month": "上个月",
|
||||||
"Next month": "下个月",
|
"Next month": "下个月",
|
||||||
|
"year": "年份",
|
||||||
// Menu
|
// Menu
|
||||||
"Go": "前往",
|
"Go": "前往",
|
||||||
"Input": "输入",
|
"Input": "输入",
|
||||||
@@ -528,6 +568,10 @@ var table = {
|
|||||||
"Yesterday": "昨天",
|
"Yesterday": "昨天",
|
||||||
" in %1": "(%1)",
|
" in %1": "(%1)",
|
||||||
"Loading cities…": "正在加载城市…",
|
"Loading cities…": "正在加载城市…",
|
||||||
|
"Search clipboard…": "搜索剪贴板…",
|
||||||
|
"Search emojis…": "搜索表情…",
|
||||||
|
"+%1 days": "%1 天后",
|
||||||
|
"%1 days": "%1 天",
|
||||||
// Media
|
// Media
|
||||||
"Pause": "暂停",
|
"Pause": "暂停",
|
||||||
"Play": "播放",
|
"Play": "播放",
|
||||||
@@ -537,30 +581,50 @@ var table = {
|
|||||||
|
|
||||||
// Parameterized messages that arrive finished; trMessage matches them, so each needs a table entry above.
|
// Parameterized messages that arrive finished; trMessage matches them, so each needs a table entry above.
|
||||||
var templates = [
|
var templates = [
|
||||||
"Battery is down to %1%",
|
|
||||||
"Could not send to %1",
|
|
||||||
"Couldn't add the %1 account",
|
|
||||||
"Mirroring enabled (%1)",
|
|
||||||
"New %1 sessions now use %2",
|
|
||||||
"No plugin to %1",
|
|
||||||
"No saved width found for %1 on workspace %2",
|
|
||||||
"Saved width for %1 on workspace %2",
|
|
||||||
"Screen recording directory does not exist: %1",
|
|
||||||
"Sent to %1",
|
|
||||||
"Timezone is now set to %1",
|
|
||||||
"Transcoded to %1 %2",
|
|
||||||
"Workspace layout set to %1",
|
|
||||||
"%1 is now the default browser",
|
|
||||||
"%1 is now the default editor",
|
|
||||||
"%1 is now the default terminal",
|
|
||||||
"%1 installed",
|
|
||||||
"Anthropic's usage endpoint is rate limiting checks right now (retry after %1s). Local Claude Code stats are still shown.",
|
"Anthropic's usage endpoint is rate limiting checks right now (retry after %1s). Local Claude Code stats are still shown.",
|
||||||
"Anthropic's usage endpoint returned status %1. Local Claude Code stats are still shown.",
|
"Anthropic's usage endpoint returned status %1. Local Claude Code stats are still shown.",
|
||||||
"Installing the %1 CLI…",
|
"New %1 sessions now use %2 (%3%). Running sessions stay on %4.",
|
||||||
"Sign in to %1 again in the browser window that opens.",
|
"Sign in to %1 again in the browser window that opens.",
|
||||||
|
"%1 is at %2%. Click to switch new sessions to it.",
|
||||||
"Sign in to %1 in the browser window that opens.",
|
"Sign in to %1 in the browser window that opens.",
|
||||||
"Signed in to %1 again.",
|
"Screen recording directory does not exist: %1",
|
||||||
"Signed in to %1.",
|
"Battery %1% · Holding at %2 · %3W / %4Wh",
|
||||||
|
"No saved width found for %1 on workspace %2",
|
||||||
|
"Battery %1% · %2 to full · %3W / %4Wh",
|
||||||
|
"Battery %1% · %2 left · %3W / %4Wh",
|
||||||
|
"Click to run %1 pending migrations.",
|
||||||
|
"The session was left unlocked (%1).",
|
||||||
|
"Saved width for %1 on workspace %2",
|
||||||
|
"Staying on %1. %2 resets in %3.",
|
||||||
|
"%1 is now the default terminal",
|
||||||
|
"%1 is now the default browser",
|
||||||
"The %1 sign-in didn't finish.",
|
"The %1 sign-in didn't finish.",
|
||||||
|
"%1 is now the default editor",
|
||||||
|
"All %1 accounts are over %2%",
|
||||||
|
"Running sessions stay on %1.",
|
||||||
|
"Couldn't add the %1 account",
|
||||||
|
"Reminder set for %1 minutes",
|
||||||
|
"New %1 sessions now use %2",
|
||||||
|
"Workspace layout set to %1",
|
||||||
|
"%1 is at %2% of a %3 limit",
|
||||||
|
"Timezone is now set to %1",
|
||||||
|
"You'll be reminded at %1",
|
||||||
|
"Battery is down to %1%",
|
||||||
|
"Mirroring enabled (%1)",
|
||||||
|
"Installing the %1 CLI…",
|
||||||
|
"Signed in to %1 again.",
|
||||||
|
"%1 · %2 · Week %3",
|
||||||
|
"Could not send to %1",
|
||||||
|
"Transcoded to %1 %2",
|
||||||
|
"Process crashed: %1",
|
||||||
|
"Signed in to %1.",
|
||||||
|
"%1 in %2 minutes",
|
||||||
|
"No plugin to %1",
|
||||||
|
"Staying on %1.",
|
||||||
|
"%1 to %2 (%3)",
|
||||||
|
"%1 installed",
|
||||||
|
"Received %1",
|
||||||
|
"Saved to %1",
|
||||||
|
"Sent to %1",
|
||||||
"Added %1."
|
"Added %1."
|
||||||
]
|
]
|
||||||
+1
-1
@@ -16,7 +16,7 @@ function tr(text) {
|
|||||||
// Text built elsewhere around a name: the first English template that matches is translated with what %1.. captured.
|
// Text built elsewhere around a name: the first English template that matches is translated with what %1.. captured.
|
||||||
function trMatch(text, templates) {
|
function trMatch(text, templates) {
|
||||||
for (var i = 0; i < templates.length; i++) {
|
for (var i = 0; i < templates.length; i++) {
|
||||||
var pattern = "^" + templates[i].replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/%\d/g, "(.+?)") + "$"
|
var pattern = "^" + templates[i].replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/%\d/g, "(.+)") + "$"
|
||||||
var match = String(text).match(new RegExp(pattern))
|
var match = String(text).match(new RegExp(pattern))
|
||||||
if (match) return tr.apply(null, [templates[i]].concat(match.slice(1)))
|
if (match) return tr.apply(null, [templates[i]].concat(match.slice(1)))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -431,7 +431,7 @@ Item {
|
|||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text: root.filterText || "Search clipboard…"
|
text: root.filterText || I18n.tr("Search clipboard…")
|
||||||
color: root.foreground
|
color: root.foreground
|
||||||
opacity: root.filterText ? 1 : 0.58
|
opacity: root.filterText ? 1 : 0.58
|
||||||
font.family: root.fontFamily
|
font.family: root.fontFamily
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ Item {
|
|||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text: root.filterText || "Search emojis…"
|
text: root.filterText || I18n.tr("Search emojis…")
|
||||||
color: root.foreground
|
color: root.foreground
|
||||||
opacity: root.filterText ? 1 : 0.58
|
opacity: root.filterText ? 1 : 0.58
|
||||||
font.family: root.fontFamily
|
font.family: root.fontFamily
|
||||||
|
|||||||
@@ -381,7 +381,7 @@ Panel {
|
|||||||
id: bornField
|
id: bornField
|
||||||
width: Style.space(70)
|
width: Style.space(70)
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
placeholderText: "year"
|
placeholderText: I18n.tr("year")
|
||||||
foreground: root.contentForeground
|
foreground: root.contentForeground
|
||||||
font.family: root.contentFontFamily
|
font.family: root.contentFontFamily
|
||||||
inputMethodHints: Qt.ImhDigitsOnly
|
inputMethodHints: Qt.ImhDigitsOnly
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Caption {
|
Caption {
|
||||||
text: row.ready ? I18n.tr(row.rowData.dayLabel) : ""
|
text: row.ready ? I18n.trMatch(row.rowData.dayLabel, ["Tomorrow", "Yesterday", "+%1 days", "%1 days"]) : ""
|
||||||
visible: text !== ""
|
visible: text !== ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user