监控页面动态渲染的文本进行自动翻译

正常情况下,极大可能会有这种需求:

  1. 页面中需要通过ajax请求后端服务器获取数据,然后再将数据渲染展示出来。
  2. 页面中的弹出提示 (就比如 msg.jsmsg.info('你好'); ) 这个提示是js加载出来的,提示文字也需要一并进行翻译的情况
    您可加入下面一行代码,来实现以上需求。
  1. translate.listener.start(); //开启html页面变化的监控,对变化部分会进行自动翻译。注意,这里变化区域,是指使用 translate.setDocuments(...) 设置的区域。如果未设置,那么为监控整个网页的变化

建议放在 translate.execute() 这行之前。

注意事项

如果你手动设置了 translate.setDocuments(...) ,那么监听的就不是整个页面了,而是单纯只监听 setDocuments(...) 所设置的区域的改动。

不正常的情况

如果您加了这个后,有的ajax请求还是不能正常翻译,您可以在您ajax请求完毕、渲染完毕页面之后,手动执行一下 translate.execute() 进行翻译。
以我们这个 request.js 的ajax请求为例

  1. <script src="https://res.zvo.cn/request/request.js"></script>
  2. <div id="ajaxdiv">hallo,我是ajax获取到数据后放在此处显示</div>
  3. <script>
  4. request.get('http://www.leimingyun.com',{}, function(data){
  5. document.getElementById('ajaxdiv').innerHTML = data; //这是要对html页面进行改动赋值了,赋值完后在进行翻译
  6. translate.execute(); //进行翻译
  7. });
  8. </script>