我正在寻找一种方法,使我的插件选项在多语言网站上可用/可翻译。
例如,我的几个选项是文本字符串,然后在前端使用。
echo get_option( \'my_plugin_text\', __( \'Whoa default text\', \'my-plugin\' ) );
然而,我注意到,这些字符串不能被WPML翻译。我也可以通过其他多语言插件来推测。这些选项的全部目的是为用户提供一种自定义某些文本的方法,但在多语言环境中,这一点目前被否定。由于选项文本会有所不同,因此将整个内容包装在gettext
功能:
_e( get_option( \'my_plugin_text\', __( \'Whoa default text\', \'my-plugin\' ) ), \'my-plugin\' );
我可以将整个内容包装在一个过滤器中,但人们有义务知道如何编写过滤器来更改文本,但这再次违背了允许用户从管理员处更改这些特定文本字符串的目的。我收到的一个建议是get_locale()
.
$text = get_option( \'my_plugin_text_\' . get_locale(), false );
if( $text === false ){
$text = get_option( \'my_plugin_text\', __( \'Whoa default text\', \'my-plugin\' ) );
}
echo $text;
这似乎很合理,但我对多语言插件不太熟悉,不知道这是否会普遍适用。管理端的语言环境是否也发生了变化,以至于有人可以将插件选项保存为英语版本,然后为(例如)西班牙语版本保存不同的文本?有人碰到过这个吗?有没有其他我忽略的解决方案?