网页打开时自动隐藏文字,翻译完成后显示译文

场景

网页加载,且要进行翻译时,翻译之前,隐藏当前网页的文本。
当点击切换语言按钮后,会刷新当前页面,然后再进行翻译。
这时会出现这种现象:刷新当前页面后,会先显示原本的文本,然后再翻译为切换为的语种,体验效果有点欠缺。

而这个的作用,就是增强用户视觉的体验效果,在页面加载(刷新)时,如果判定需要翻译(之前的页面触发过翻译为某个语种了),那么就会自动隐藏所有网页中的文本,当翻译完成后,自动将网页中的文本显示出来 。
注意:这个需要在body标签之前执行,需要在head标签中执行此。也就是加载 translate.js 以及触发此都要放到head标签中

使用

  1. translate.visual.webPageLoadTranslateBeforeHiddenText();

注意
它要加在 head 标签里!
相应的,translate.js 的引入肯定要在它之前,也就是 translate.js 的引入也要放到head标签里。
另外,它是否隐藏当前网页的文本,是根据当前是否要切换语言来进行的,如果当前页面需要进行切换语言,那它触发后会自动隐藏网页中的所有文字; 如果当前页面并没有进行切换语言,它是不会自动隐藏网页的文字的,因为不需要切换语言了,也就没必要隐藏文字,直接显示就可以了。 同样,因为有这个判定,所以你要在它之前,就要设置本地语种: translate.language.setLocal(‘chinese_simplified’); //设置本地语种(当前网页的语种)
也就是,你需要在head里的设置为:

  1. <script src="./translate.js"></script>
  2. <script type="text/javascript">
  3. translate.language.setLocal('chinese_simplified'); //设置本地语种(当前网页的语种)
  4. translate.visual.webPageLoadTranslateBeforeHiddenText(); //自动隐藏页面文字,避免先显示原文的缺陷
  5. </script>

这里给了一个demo示例,以供参考:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <script src="./translate.js"></script>
  6. <script type="text/javascript">
  7. translate.language.setLocal('chinese_simplified'); //设置本地语种(当前网页的语种)
  8. translate.visual.webPageLoadTranslateBeforeHiddenText(); //避免先显示原文的缺陷
  9. </script>
  10. </head>
  11. <body>
  12. <div>你好</div>
  13. <div>世界</div>
  14. </body>
  15. <script>
  16. //进行translate.js 的相关设置并触发翻译的执行
  17. translate.service.use('client.edge');
  18. translate.execute();
  19. </script>
  20. </html>

可以看到, translate.js 的引入以及设置本地语种、webPageLoadTranslateBeforeHiddenText 都是放在了head 里,确保在 body 出现之前,就完成设置。
而 translate.js 的其他设置及翻译的触发 translate.execute(); 都是放在了网页的最末尾,确保网页都加载渲染完了后,在触发翻译的执行。

注意

  1. 放的位置一定是head标签里
  2. 需要 translate.js v3.17.19.20250812 及更高版本才支持此能力