Frontend language per user

时间:2021-06-22 作者:ALexander Lead

WP上有国际化插件的功能。如果我成功了。pot文件我可以将我的插件翻译成任何语言。当我在网站上安装插件时,我可以选择任何语言,插件将尽可能翻译成任何语言。

问题是要根据用户自己的设置翻译插件。如果任何用户设置了主站点语言以外的语言,那么在管理仪表板中,任何插件都将转换为用户语言。

但另一种情况是在网站的前端:所有插件只有一种翻译(主要网站语言)。

是否有任何解决方案可以通过用户设置更改本地化?如何从中获取翻译。是否按用户区域设置从WP前端创建pot文件?

1 个回复
SO网友:ALexander Lead

谢谢你对我的主题感兴趣。我已经找到了任务的解决方案。

首先,最简单的方法是使用插件,JSM用户语言环境是完成此任务的好插件:wordpress.org/plugins/jsm-user-locale

另一种方法是使用标准WP函数。可以使用函数获取用户区域设置

get_user_meta( $user_id, \'locale\', $single = true );
您可以查看的站点本地化

get_locale();
如果必须使用函数更新用户的本地化

update_user_meta( $user_id, \'locale\', $user_locale );
对于切换本地化,您可以使用以下功能:

switch_to_locale( $user_locale );
此功能将切换一个会话的本地化。

以上所有功能都有助于更新用户功能。

我希望这对你有帮助。

相关推荐

将数组作为元值的GET_USERS

我的WordPress用户有一个自定义的生日元密钥(DD/MM/AAAA,例如2020年2月25日)。如果我想让所有用户今天(2002年2月25日)出生,我可以使用:$todays_birthday=\'25/02/\'; get_users(array(\'meta_compare\'=>\'like\', \'meta_key\'=>\'birthday\', \'meta_value\'=>$todays_birthday)); 它工作完美,返回所有今天出生的用户