首页>文档>TranslatePress教程>排除特定文本或元素的翻译

排除特定文本或元素的翻译

在某些情况下,您可能希望排除某些元素而不让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 );
}
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
搜索