以编程方式选择要翻译的语言

时间:2014-12-15 作者:Kesty

我有一个多语言网站(为了做到这一点,我同时使用Polylang和Locao Translate)。

我的问题是,我想向我们的用户发送一封电子邮件,但在从DB检索记录之前,我不知道用哪种语言发送(因此我不能简单地设置不同的WP\\U语言)

这是我想做的伪代码:

$wpdb->query($wpdb->prepare("SELECT userName,language FROM wp_order WHERE id =%s",$id_order));

$result = $wpdb->last_result;

if($result){

   //SET LANGUAGE FOR TRANSLATION $result->language

   $emailBody= "Hi".$result->name." "._("text to translate","pluginname");

   /* ... generate email ... */

   wp_mail($email, $subject, $body, $headers);
}

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

查看l10n后。php我找到了一种使用unload\\u textdomain函数切换textdomain的方法。

所以我创建了一个简单的开关

function switch_textdomain( $domain, $newLocale){
   /*
    This will only change the textdomain, not the locale.
    It will only affect what kind of language will be used for the _e(), _(), __() commands for the $domain
   */

   unload_textdomain( $domain );

   /*mofile Folder
     this may have to be changed depending on what you want to switch*/
   $path = get_template_directory();
   $mofile = "{$path}/{$newLocale}.mo";

   return load_textdomain( $domain, $mofile );

}
这实际上不会更改区域设置,但只会更改指定域(主题或插件)的textdomain。

因为在我的情况下,我只需要翻译,这对我来说已经足够好了。

结束

相关推荐

Custom metabox translation

我已经创建了一个自定义的帖子类型,并添加了一些自定义的元数据库,现在我想知道我在我的网站上使用了什么样的翻译插件?我对它们都没有经验,所以我不知道谁会支持我的自定义元数据库,谁不会。