监控页面动态渲染的文本进行自动翻译
正常情况下,极大可能会有这种需求:
- 页面中需要通过ajax请求后端服务器获取数据,然后再将数据渲染展示出来。
- 页面中的弹出提示 (就比如 msg.js 的
msg.info('你好');
) 这个提示是js加载出来的,提示文字也需要一并进行翻译的情况
您可加入下面一行代码,来实现以上需求。
translate.listener.start(); //开启html页面变化的监控,对变化部分会进行自动翻译。注意,这里变化区域,是指使用 translate.setDocuments(...) 设置的区域。如果未设置,那么为监控整个网页的变化
建议放在 translate.execute() 这行之前。
注意事项
如果你手动设置了 translate.setDocuments(...)
,那么监听的就不是整个页面了,而是单纯只监听 setDocuments(...)
所设置的区域的改动。
不正常的情况
如果您加了这个后,有的ajax请求还是不能正常翻译,您可以在您ajax请求完毕、渲染完毕页面之后,手动执行一下 translate.execute()
进行翻译。
以我们这个 request.js 的ajax请求为例
<script src="https://res.wang.market/request/request.js"></script>
<div id="ajaxdiv">hallo,我是ajax获取到数据后放在此处显示</div>
<script>
request.get('http://www.leimingyun.com',{}, function(data){
document.getElementById('ajaxdiv').innerHTML = data; //这是要对html页面进行改动赋值了,赋值完后在进行翻译
translate.execute(); //进行翻译
});
</script>