仅使用.mo和WPLANG的多语言站点

时间:2013-06-10 作者:Yeow_Meng

你好,世界/你好,世界报,

存在哪些技术限制会阻止以下内容正常工作(假设所有静态内容都在.mo文件中进行了翻译)

伪代码:

对于每个请求:

检查查询字符串是否包含字段:myLang:如果:myLang:的值等于“en\\u-US”,则以某种方式将WPLANG更改为“en\\u-US”(或强制Wordpress将WPLANG设置为“”)

  • 否则-使用wp config中定义的fr\\u fr.mo作为法语服务请求。php我隐约意识到它与Wordpress的初始化方式有关。我知道WPLANG是不能即时更改的。

  • 1 个回复
    最合适的回答,由SO网友:kaiser 整理而成

    我隐约意识到这与Wordpress的初始化方式有关。我知道WPLANG是不能即时更改的。

    PHP就是这样工作的:您不能更改已经定义的常量。

    但这有过滤器。下面的插件是一个草图,您可以使用它来尝试看看这个方向是否符合您的需要。

    <?php
    defined( \'ABSPATH\' ) OR exit;
    /**
     * Plugin Name: (#102471) Query Locale
     */
    
    add_filter( \'locale\', \'wpse_102471_locale\', 20 );
    /**
     * Callback to filter the locale/textdomain.
     * Assumes that you got a `lang` query var
     * @param  bool $locale
     * @return mixed string/bool $locale|$GLOBALS[\'wp_query\'][\'lang\']
     */
    function wpse_102471_locale( $locale = false )
    {
        global $wp_query;
        if ( isset( $wp_query[\'lang\'] ) )
             return $wp_query[\'lang\'];
    
        return $locale;
    }
    

    结束

    相关推荐

    已迁移到Namecheap,现在数据库和wp-config出现问题

    我一直在使用一个免费的网络主机,而我建立了我的WP网站。现在,这一切都完成了,我去买了主机名便宜。我上传了网站和WordPress,一切看起来都很好,但我想我的WP数据库可能有问题。我想不出一种方法来导入我保存的旧sql数据库。因此,现在我的wp config文件已从免费主机连接到我的旧sql数据库。我的网站仍然正常显示,但我猜这会在将来的某个地方造成问题。在此之后,我从我的Namecheap cPanel创建了一个新的数据库、用户和密码。然而,使用Namecheap时,没有选择主机的选项,也没有告诉我主