新增 UI 的翻译字辞到 Forge Viewer 里

前阵子有些 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 函数的部份改为这个样子就能够了:this

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;
}

参考:https://forge.autodesk.com/bl...翻译

相关文章
相关标签/搜索