前阵子有些 Autodesk Forge 的小夥伴们在询问 viewer 的属性窗都是英文的,没有被翻译成中文,就算用中文的 Revit 文档去转换也是一样。在我调适了 Forge Viewer 的代码后,发现造成这个的主要原因估计是 Viewer 所使用的 i18next 的翻译字典没有对应的字辞,所以当时我建议小夥伴们去调用 Autodesk.Viewing.i18n.addResourceBundle
这个函数来新增自个的对应字辞到 Viewer 里,不过这可能对不熟 i18next 的小夥伴们造成了困扰,上手难度又增加了。庆幸的是现在版号 2.16 的 Forge Viewer 已经针对这个需求新增了一个对应的接口 extendLocalization
,小夥伴们不需要去了解 i18next 也可以新增对应字辞到 Viewer 里了,使用方法如下:
class MyAwesomeExtension extends Autodesk.Viewing.Extension {
constructor( viewer, options ) {
super( viewer, options );
}
load() {
// 定义翻译字辞
const locales = {
en: {
'Hello": "Hello!',
},
zh-HANS: {
'Hello': '哈搂!',
}
};
// 新增翻译字辞到 viewer 里
this.extendLocalization( locales );
return true;
}
unload() {
return true;
}
}
Autodesk.Viewing.theExtensionManager.registerExtension( 'Autodesk.ADN.MyAwesomeExtension', MyAwesomeExtension );
可是我的 Viewer 的版号不是 2.16 的怎么办?这很容易,小夥伴们只要这样做就好,修改上面 load
函数的部份改成这个样子就可以了:
load() {
// 定义翻译字辞
const locales = {
en: {
'Hello": "Hello!',
},
zh-HANS: {
'Hello': '哈搂!',
}
};
// 新增翻译字辞到 viewer 里,参考自 viewer3D.js?v=2.16
Object.keys( locales )
.forEach(( language ) => {
Autodesk.Viewing.i18n.addResourceBundle(
language,
"allstrings",
locales[language],
true,
true
);
});
return true;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。