技能、模板与通知本地化
目标:运行已有 localization 模板,切换中英文并核对展示文本、业务值与监听释放。内部源码预览。
完成后:目标:运行已有 localization 模板,切换中英文并核对展示文本、业务值与监听释放。内部源码预览。
前置条件:按本页具体步骤准备所需文件与工具;学习路线中的上一页不自动构成依赖。
本页内容
01准备宿主与本地包
先完成插件入门的本地包准备,在 extension-work 目录执行,保留 AMBLELOFT_PACKS。宿主需提供 skillLocalization、templateLocalization、notificationLocalization 和 liveLocalization。通知还需用户允许接收;本例无需外部服务。
准备本地包02生成并安装现有模板
将生成的 dist/locale-demo.amble-extension 安装到宿主,确认信任和声明权限。这里复用工具链已有模板,不要求另写一套示例。
npx --no-install amble-extension init locale-demo --name locale-demo --template localization
cd locale-demo
npm install --save-dev "$AMBLELOFT_PACKS/ambleloft-extension-sdk-0.1.0-alpha.9.tgz" "$AMBLELOFT_PACKS/ambleloft-extension-core-0.1.0-alpha.9.tgz" "$AMBLELOFT_PACKS/ambleloft-extension-cli-0.1.0-alpha.9.tgz"
npm run build
npm run validate
npm run pack03切换语言并查看结果
打开插件页面,发布一次通知,再读取状态。切换应用中英文后再次读取:activation 应保持不变,changes 增加,下一次 invocationLocale 使用新语言。请求表单中的选项展示标签随词典变化,业务值 shanghai/beijing 保持不变。模板仅翻译已声明的词条;集合中仍有固定中文文本,不能据此声称整个模板已完整翻译。
04监听与释放
预览能力 · SDK 0.1.0-alpha.9
以下代码放在 defineExtension 的同步 activate(context) 内,先探测,再把 Disposable 放入 subscriptions。词典参数支持 string、number 和 boolean。翻译只改变声明展示文本,不改变用户输入、身份或幂等键。
import { getLocalization, requireLocalization } from '@ambleloft/extension-sdk/localization-preview';
// Inside activate(context):
requireLocalization(context, ['skillLocalization', 'templateLocalization',
'notificationLocalization', 'liveLocalization']);
const l10n = getLocalization(context);
context.subscriptions.push(l10n.onDidChangeLocale(locale => {
console.log(locale);
}));05失败恢复与下一步
能力缺失时停止使用翻译模板并核对宿主;缺词条时检查对应 Skill 的词典和回退警告。通知被拒收时先检查偏好,不换 eventKey 重发。停用扩展后检查监听清理。下一步使用同一模板验证集合交互。
查看集合交互检查结果与排错
按本页的验证步骤核对实际结果。涉及业务服务时,分别检查界面提交、工具回执与服务端记录。
打开错误代码与排错 →