- 正常的配置 WPML
- 使用 PO/MO 文件
- 使用 Codestyling Localisation 创建 PO/MO 文件
问题是在时候 Ajax 的时候,函数 __() 失效, 因为,首先你需要加载所有关于当前语言的翻译。很奇怪的 WPML 不能正确的使用翻译文件,这可能是 WORDPRESS 和 WPML 的一些限制。暂时的,下面的方法可能对大家有些帮助。
如果你做一个搜索的功能,首先,添加一个隐藏域到表单里:
if(defined('ICL_SITEPRESS_VERSION') && defined('ICL_LANGUAGE_CODE')){ echo '<input type="hidden" id="lang" name="lang" value="'.ICL_LANGUAGE_CODE.'" />'; }
在 Ajax call:
if(!empty($_REQUEST['lang'])) { global $sitepress; $sitepress->switch_lang($_REQUEST['lang'], true); $lang = get_template_directory() . '/language'; $unload = unload_textdomain('textdomain'); $load = load_textdomain('textdomain', $lang . '/'. get_locale() . '.mo'); }
参考:http://www.kriesi.at/support/topic/ajax-search-translation-handling-probs/