翻译时忽略指定的class属性
translate.ignore.class.push('test'); //翻译时追加上自己想忽略不进行翻译的class name的值,凡是在这里面的,都不进行翻译。
翻译时追加上自己想忽略不进行翻译的class标签,凡是在这里面的,都不进行翻译。
也就是当前元素以及其子元素都不会被翻译。
如果有多个,可以加多行即可。
如果你想查看当前忽略哪些class,可直接执行 console.log(translate.ignore.class); 进行查看
它默认设置了一个’ignore’ 的 class name,也就是比如 <span class="ignore">你好</span> 这样的,加了 class=”ignore” 的标签,是不会被翻译的。
更多用法扩展
translate.ignore.class.push('test', function(element){return true;});
可以看到,这里多传入了一个 function(element){return true;}
也就是,如果第二个参数不传递,或者传入 null,那这第二个参数它默认是被赋予了 function(element){return true;}
这第二个参数,用于呼应第一个参数 class name 的规则判定。
其中 element 则是当前扫描到的,已经被 class name 所标记影响范围的某个html元素,针对这个元素进行进一步判定,是否真的忽略对它进行翻译。
- 如果这个方法返回true则是遵循忽略class name 的规则,不对这个传入的element元素进行翻译;
- 如果返回false,则是不遵循class name 的规则,没有达到忽略class name 的条件,对于element 这个元素,依旧正常进行翻译,所设置的 class name 对这个 element 这个元素无效。
这里进行举例说明,html部分为:
其中 translate.js 设置忽略<div class="test"><div>世界</div><div>大海</div><div><div id="a">星辰</div><div id="b">你好</div></div></div>
class="test"的部分不进行翻译,但是还想对其中的<div id="b">你好</div>这个元素进行正常翻译,那么 设置方式为:
如此,即可对translate.ignore.class.push('test', function(element){if(element.id === 'b'){return false;}return true;});
<div class="test">中,除了 id 等于 ‘b’ 的元素外,其他的都不进行翻译,而这里id为’b’ 的元素,则会正常参与翻译。
注意
- 要放到 translate.execute(); 上面
- 需要 translate.js v3.18.104.20251212 及更高版本