如何只更改前端的语言?

时间:2014-02-08 作者:Hicham

我已经安装了wordpress主题,我可以看到。mo和。采购订单/public_html/wp-content/themes/themename/lang, 我要使用的语言可用。

你能就如何使用特定语言提出建议吗?我不想更改管理语言,只想更改主题语言。

6 个回复
SO网友:Simeon

实际上,在后端和前端使用两种不同的语言并不需要任何特殊的东西。我刚刚在WP 5.1上再次测试了它

转到settings 并设置Site Language 到前端语言,例如-德语,然后保存。

转到Users 然后单击管理员帐户上的编辑。您可以在那里设置Language 英语和保存。就是这样。您的前端将使用德语作为基础,后端将使用英语。

SO网友:fuxia

您可以筛选字符串locale, 它保存当前语言。您可以从该筛选器中排除管理员:

is_admin() or add_filter( \'locale\', function() {
    return \'ar\';
});

SO网友:Yosi Mor

我认为您最简单的选择是使用本地化版本的WordPress为您的native language (并确保WPLANG 保持相应设置),然后使用以下插件:

。。。为了将管理界面切换为英语。

SO网友:Motaz M. El Shazly

如果有人仍在寻找,下面是自4.7版以来您应该做的事情

function wp_noshor_redefine_locale($locale) {
    if( is_admin() ):
        switch_to_locale(\'en_US\');
    endif;
}
add_filter(\'init\',\'wp_noshor_redefine_locale\');
这将强制仪表板以英语加载,然后您可以转到“设置”,设置所需的语言。

SO网友:Muhammad Mehran Khan Attari

这里是一个完整且更好的解决方案,可以只更改主题(前端)或插件语言。它甚至可以更改特定的页面/帖子等语言。

TLDR有一个名为locale, 它确定要加载的语言。您可以根据自己喜欢的条件更改为特定语言。

Changing only Theme language, or based on other conditions, without touching the admin dashboard language.

add_filter(\'locale\', function($locale) {

    if( is_admin() ) {
        return $locale; // Leave default language if it is admin side.
    }

    // You can load language based on any conditional tags here, like, is_page(), is_singular(), is_archive() etc.
    // I want to change the language for all front end in this particular example.

    $locale = \'en_US\'; // Change to your required language. The language must be installed and loaded.

    return $locale; // Return language to be used.

});
更改语言之前,可能需要先加载该语言。

在主题或子主题中,使用此代码段加载自定义语言。

add_action( \'after_setup_theme\', function() {

    // Assuming your language files are in /wp-content/themes/your-theme/languages
    // Don\'t forget to change \'text-domain\' to your theme text-domain.

    // For Theme.
    load_theme_textdomain( \'text-domain\', get_template_directory() . \'/languages\' );

    // For Child Theme
    load_child_theme_textdomain( \'text-domain\', get_stylesheet_directory() . \'/languages\' );

    // Remove the load_child_theme_textdomain if you are using it for the main theme,
    // OR Remove load_theme_textdomain if you are loading child theme language.

});
同样,您可以根据URL或插件页面等更改语言。

希望这会有帮助。如果我错过了什么,也可以告诉我。

SO网友:Ravinder Kumar

您也可以尝试以下操作:

1、从此下载jquery翻译脚本link

2、工作原理(doc, live test )

<?php
function ravs_frontend_translate_script() {
    wp_enqueue_script( \'translate\', get_template_directory_uri() . \'/js/jquery.translate.js\', array( \'jquery\' ), \'0.0.1\', true );
}
add_action( \'wp_enqueue_scripts\', \'ravs_frontend_translate_script\' );


function ravs_translate_webpage_fx(){
?>
<script>
    // run script after both script load for translate webpage
        jQuery(document).ready(function(){
          //from english to german:
          jQuery(\'body\').translate( \'ar\' );
        });
</script>
<?php
add_action(\'wp_footer\',\'ravs_translate_webpage_fx\', 999 ); // make sure this hook run after jquery-translate include in webpage

结束

相关推荐

来自WooThemes的快照主题-空的‘alt’属性

我正在使用WooThemes的快照主题。调整大小(宽度、高度和大小,以kb为单位)并显示图像(一个“a”标记,包装一个“img”标记)的代码如下:<?php if ( get_option(\'woo_resize\') ) { woo_get_image(\'image\',\'210\',\'280\');?> 问题是:我在发帖时设置了“alt”文本,当试图查看帖子图片源代码时,“alt”属性显示为空。以前有人通过过这个吗?有什么建议吗?我希望具有“alt”属性的帖子是第一行第