mirror of
https://github.com/hansjone/dsh-im-ops.git
synced 2026-10-10 23:10:46 +08:00
Wrap all user-facing chat text in src/channels with a host-side t() translator (Chinese is the identity default, so untranslated text is always sent verbatim in Chinese). English is selected via the host plugin config `language: en` or the DSH_IM_LANGUAGE environment variable, and the settings UI keeps following the DSH web locale. - add src/channels/shared/i18n.mjs with setImHostLanguage/t() and a Chinese-key -> English dictionary split by area (shared + channels) - complete the English dictionary for every t() key in src/channels, including the feishu channel (welcome/help, repair flow, interactive cards, watch flow) and the shared command/approval/stream text - wrap previously untranslated chat-facing strings in feishu bridge, feishu runtime, editable-message-stream, harness-client, connection-test and image-prompt - dedupe dictionary entries that existed in multiple channel files and canonicalize conflicting translations into the shared dictionaries - extend the i18n unit test to decode string-literal escapes so keys containing \n are checked correctly - document the language switch in README.md, README.en.md and CHANGELOG.md, and rebuild lib/index.js Added English support for bot chat messages across all nine IM channels and AI Office without changing any Chinese output.
35 lines
1 KiB
JavaScript
35 lines
1 KiB
JavaScript
// English translations for host-side user-facing text.
|
|
// Keys are the exact Chinese literals passed to t() in src/channels/**.
|
|
// Chinese output is the identity default and needs no entries here.
|
|
// Entries are maintained per area in ./i18n-en/*.mjs and merged here.
|
|
|
|
import sharedA from './i18n-en/shared-a.mjs';
|
|
import sharedB from './i18n-en/shared-b.mjs';
|
|
import sharedC from './i18n-en/shared-c.mjs';
|
|
import feishu from './i18n-en/feishu.mjs';
|
|
import dingtalk from './i18n-en/dingtalk.mjs';
|
|
import wecom from './i18n-en/wecom.mjs';
|
|
import qq from './i18n-en/qq.mjs';
|
|
import weixin from './i18n-en/weixin.mjs';
|
|
import slack from './i18n-en/slack.mjs';
|
|
import telegram from './i18n-en/telegram.mjs';
|
|
import discord from './i18n-en/discord.mjs';
|
|
import whatsapp from './i18n-en/whatsapp.mjs';
|
|
import office from './i18n-en/office.mjs';
|
|
|
|
export const EN = Object.freeze(Object.assign(
|
|
{},
|
|
sharedA,
|
|
sharedB,
|
|
sharedC,
|
|
feishu,
|
|
dingtalk,
|
|
wecom,
|
|
qq,
|
|
weixin,
|
|
slack,
|
|
telegram,
|
|
discord,
|
|
whatsapp,
|
|
office,
|
|
));
|