在某些情况下,您可能希望排除某些元素而不让TranslatePress进行翻译。
如何排除文本或元素的翻译
从翻译中排除选择器
排除在与这些选择器匹配的 HTML 节点中找到的字符串。阻止翻译与这些选择器匹配的 HTML 节点的所有子节点
。不要使用not()选择器或双属性选择器[attribute1][attribute2]。
输入选择器后,单击添加按钮将其添加到列表中。单击删除可将其从列表中删除。
仅从自动翻译中排除选择器
不自动翻译在与这些选择器匹配的 html 节点中找到的字符串。
排除与这些选择器匹配的 HTML 节点的所有子节点的自动翻译。
仍然可以手动翻译这些字符串。
不要使用not()选择器或双属性选择器[attribute1][attribute2]。
输入选择器后,单击添加按钮以排除其所有子节点,使其不被自动翻译引擎处理。也可以使用每个选择器旁边的删除按钮从列表中删除选择器。
注意:为了使排除生效,必须在开始翻译过程之前将选择器添加到列表中。
从自动翻译中排除字符串
不自动翻译这些字符串(例如名称、技术词汇……)
包含这些字符串的段落仍将被翻译,但指定部分除外。
输入字符串后,单击“添加”按钮以将其排除在自动翻译引擎的处理之外。也可以使用每个字符串旁边的“删除”按钮从列表中删除字符串。
注意:为了使排除生效,必须在开始翻译过程之前将字符串添加到列表中。
排除 Gettext 字符串
将这些字符串排除在 Gettext 字符串的翻译之外。将域留空以考虑任何 gettext 字符串。
仍然可以将其翻译为常规字符串。
当 Gettext 字符串以 #trpst#trp-gettext 包装输出时很有用。当 Gettext 字符串用作选项中的键时也可以使用。
输入字符串和域后,单击“添加”按钮将它们包含在列表中。单击“删除”可将它们从列表中删除。
从动态翻译中排除选择器
不动态翻译与这些选择器匹配的 html 节点中的字符串。
排除使用 JavaScript 翻译与这些选择器匹配的 HTML 节点的所有子节点。
如果可能,这些字符串仍将在服务器端进行翻译。可以使用任何类型的 JS 选择器。
建议使用更接近需要排除的插入字符串的选择器。
输入选择器后,单击添加按钮将其包含在列表中。单击删除可将其从列表中删除。
如何以编程方式排除文本或元素的翻译
您可以使用以下属性轻松实现这一点:data-no-translation
。
属性提供有关 HTML 元素的附加信息。
假设我们想排除某一段文字的翻译。
<p data-no-translation>
This is a paragraph of text that will be excluded from translations.
</p>
可以轻松对任何 HTML 元素(列表、表单、div 等)执行此操作,以将其排除在翻译之外。
您可以在 PHP 中通过使用过滤器trp_no_translate_selectors以编程方式实现同样的效果。
add_filter( 'trp_no_translate_selectors', 'trpc_no_stranslate_selectors', 10, 2);
function trpc_no_stranslate_selectors($selectors_array, $language){
$selectors_array[] = '.do_not_translate_css_class';
$selectors_array[] = '#do_not_translate_css_id';
return $selectors_array;
}
注意:这将排除该元素的所有子元素的翻译。
要排除前端翻译某个元素,请使用属性data-no-dynamic-translation。 这与data-no-translation 属性不同,因为它仍允许在服务器端翻译元素。它只会停止在客户端使用 JS 进行检测。
换句话说,该元素的动态变化将被忽略。
<p data-no-dynamic-translation>
This is a paragraph of text that will be translated only on the server side.
Dynamic changes to this element using JS will not be detected.
</p>
还有一个过滤器,您可以在其中以编程方式添加要从动态翻译中排除的其他选择器: trp_skip_selectors_from_dynamic_translation
/**
*
* Skip dynamic detection of strings.
*
*/
add_filter( 'trp_skip_selectors_from_dynamic_translation', 'trpc_skip_dynamic_translation' );
function trpc_skip_dynamic_translation( $skip_selectors ){
$add_skip_selectors = array( '.section', '.other-section' ); // replace with a list of selectors
return array_merge( $skip_selectors, $add_skip_selectors );
}
暂无评论内容