网页打开时自动隐藏文字,翻译完成后显示译文
场景
网页加载,且要进行翻译时,翻译之前,隐藏当前网页的文本。
当点击切换语言按钮后,会刷新当前页面,然后再进行翻译。
这时会出现这种现象:刷新当前页面后,会先显示原本的文本,然后再翻译为切换为的语种,体验效果有点欠缺。
而这个的作用,就是增强用户视觉的体验效果,在页面加载(刷新)时,如果判定需要翻译(之前的页面触发过翻译为某个语种了),那么就会自动隐藏所有网页中的文本,当翻译完成后,自动将网页中的文本显示出来 。
注意:这个需要在body标签之前执行,需要在head标签中执行此。也就是加载 translate.js 以及触发此都要放到head标签中
使用
translate.visual.webPageLoadTranslateBeforeHiddenText();
注意
它要加在 head 标签里!
相应的,translate.js 的引入肯定要在它之前,也就是 translate.js 的引入也要放到head标签里。
另外,它是否隐藏当前网页的文本,是根据当前是否要切换语言来进行的,如果当前页面需要进行切换语言,那它触发后会自动隐藏网页中的所有文字; 如果当前页面并没有进行切换语言,它是不会自动隐藏网页的文字的,因为不需要切换语言了,也就没必要隐藏文字,直接显示就可以了。 同样,因为有这个判定,所以你要在它之前,就要设置本地语种: translate.language.setLocal(‘chinese_simplified’); //设置本地语种(当前网页的语种)
也就是,你需要在head里的设置为:
<script src="./translate.js"></script>
<script type="text/javascript">
translate.language.setLocal('chinese_simplified'); //设置本地语种(当前网页的语种)
translate.visual.webPageLoadTranslateBeforeHiddenText(); //自动隐藏页面文字,避免先显示原文的缺陷
</script>
这里给了一个demo示例,以供参考:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="./translate.js"></script>
<script type="text/javascript">
translate.language.setLocal('chinese_simplified'); //设置本地语种(当前网页的语种)
translate.visual.webPageLoadTranslateBeforeHiddenText(); //避免先显示原文的缺陷
</script>
</head>
<body>
<div>你好</div>
<div>世界</div>
</body>
<script>
//进行translate.js 的相关设置并触发翻译的执行
translate.service.use('client.edge');
translate.execute();
</script>
</html>
可以看到, translate.js 的引入以及设置本地语种、webPageLoadTranslateBeforeHiddenText 都是放在了head 里,确保在 body 出现之前,就完成设置。
而 translate.js 的其他设置及翻译的触发 translate.execute(); 都是放在了网页的最末尾,确保网页都加载渲染完了后,在触发翻译的执行。
注意
- 放的位置一定是head标签里
- 需要 translate.js v3.17.19.20250812 及更高版本才支持此能力