【发布时间】:2020-10-12 03:13:05
【问题描述】:
关于How to localise VSCode extension我也想知道为什么localize函数需要两个参数。
本地化设置很简单;您将文字值替换为由百分号包围的标记,然后使用文件中的字典替换该标记,该文件由当前语言环境确定。
但localize 函数需要至少两个 参数,一个key 和一个message。它可以采用任意数量的任何类型的后续参数,有用地称为“args”。
这方面的文档几乎不存在。
在您将package.json 从 1.32 修改为最低 1.34 的 vscode 版本以适应对 TS 键入文件的更新之前,该示例甚至不会开箱即用。一旦你解决了这个问题,示例编译并启动,但似乎不起作用(activate 没有运行,我仍在找出原因)。
它确实包含一个本地化调用示例,但它使用的键是“sayHello.text”,我在本地化资源中找不到相应的字符串。任意 args 业务建议运行时组合,但这在示例中没有演示。我真的不能指责文档,因为没有任何文档。
谁能解释一下参数?
在 vscode-nls 存储库中翻找我发现了这个。
export function localize(_key: string | LocalizeInfo, message: string, ...args: any[]): string {
return format(message, args);
}
从表面上看,它甚至 使用 _key,但有一个 localizeFunc 具有类似的签名,确实使用它,我怀疑是一个电话到 config 函数执行一些带有名称的诡计。
【问题讨论】:
标签: typescript localization vscode-extensions