更改单个页面的语言

时间:2017-08-28 作者:Null_Error

我有一个wordpress网站,语言与RTL保持一致,但有些页面是英文的。然而,这些页面看起来很糟糕,因为英文文本与RTL语言对齐,标点符号等出现在错误的一侧。

如何设置单个页面或多个单独页面的语言?

4 个回复
SO网友:Johansson

这个locale 允许您专门设置语言环境的筛选器。您可以检查当前页面,并在此基础上更改值。

add_filter(\'locale\', \'change_my_locale\');
function change_my_locale( $locale ) {
    if ( is_page(\'slug-here\') ) {
        return \'en_US\';
    }
    return $locale;
}

SO网友:Anton Lukin

您应该使用locale 钩子解决你的任务。

重要提示:您不能将其添加到主题中并使用is_page 函数,因为它将稍后定义。

所以你必须创造pluginmust use plugin 以这种方式解析url:

add_filter(\'locale\', function($locale) {
    $path = trim($_SERVER[\'REQUEST_URI\'], "/");

    // get last part as slug
    $arr = explode("/", $path);
    $slug = end($arr);

    if($slug === \'MY_SLUG\')
      return \'ru_RU\';

    return $locale;
});
相关答案:Change locale at runtime?

SO网友:Kenan Hodzic

我需要类似的翻译工具&;方向目的。

通过为每个帖子定义$方向,\'ltr\'或\'rtl\'。。。使用this simple plugin ...我通过向插件添加以下操作来编辑插件。php文件:

add_action(\'wp\', function($locale){
    // get post meta from database, which is generated by the plugin
    global $post;
    $direction = get_post_meta($post->ID, \'os_custom_box_for_rtl\', true);
    // set locale language based on post meta
    $locale = ($direction == \'rtl\')? \'ar\':\'en_US\'; // ...or use your own locale codes
    // if not admin area, do switch! it will work for frontend only per specific page/post
    is_admin() or switch_to_locale( $locale );
});

SO网友:maxime schoeni

以下是@jack johansson解决方案中定时问题的修复方法:

add_action(\'wp\', function() {
  if ( is_page(\'slug-here\') ) {
    add_filter(\'locale\', function( $locale ) {
      return \'en_US\';
    });
  }
});

结束

相关推荐

Wordpress translation

我想在WP中翻译一个单词,但我不想替换整个翻译文件(.mo和.po),因为只有一个单词(它将被下一个WP版本覆盖,我必须经常记住)。是否可以只翻译一个单词而不覆盖其余的单词?P、 S.:我需要在/wp includes/script loader中将“no subset”翻译成“西里尔文”。php: /* translators: To add an additional Open Sans character subset specific to your language,&#x