WordPress本地化不适用于插件

时间:2013-11-16 09:30:30

标签: php localization wordpress-plugin wordpress

我有一个要翻译的插件。我完成了以下任务:

加载TextDomain:

$my_td = 'mysignup';
function my_signup_textdomain_init() {
    global $my_td;
    load_plugin_textdomain( $my_td, false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action('plugins_loaded', 'my_signup_textdomain_init');

在wp_plugin_folder \ my_signup \ languages中添加语言文件(po,pot,mo)(对于孟加拉语bn_BD):

  • mysignup.pot
  • mysignup.mo
  • bn_BD.po
  • bn_BD.mo

更改了wp_config.php文件中的语言代码:

define('WPLANG', 'bn_BD');

但问题是没有改变。我不确定我做错了什么。我已经阅读了很多文章和答案。我仍然需要帮助才能知道如何测试一切都很好,我已经完成了,我该如何解决这个问题。

请帮帮我。提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先 - 全球$nl_td;是什么意思全球$my_td;

第二 - 您似乎错过了.po文件(例如mysignup.po) - 您不需要bn_BD.pobn_BD.mo

第三 - 尝试像这样加载(没有不必要的变量):

load_plugin_textdomain( 'mysignup', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );

第四 - 确保所有字符串都是这样的:__('string','mysignup');

评论后

编辑我

在你的评论中你写道:

  

__('First Name字段是必需的',$ nl_td)和_e('First Name字段是必需的',$ nl_td)

再次 - 据我所知,你的代码非常有限 - $nl_td没有定义。 $my_td已定义。

只需用简单的字符串mysignup替换所有这些变量即可。

您的代码可能是某种cut&paste - 但您必须了解这些变量的含义,如果您希望它们正常工作,或确保它们一直都是一致的。

编辑II (现在您已将$nl_td的评论编辑为$my_td,您似乎开始明白了 - 编辑您的代码...... :-)然后它就可以了只要它是全球性的。但最好只写一个字符串。 )