我不知道为什么我的本地化不起作用

时间:2019-01-28 作者:Nicolas Mierbach

我正在为Wordpress开发一个插件,但无法实现国际化。

以下是GitHub链接:https://github.com/dev-nm/WP-StudioLink-Integration

我使用了wppb。me作为样板,titan框架作为管理面板框架。我用poedit+本地翻译创建了pot、po和mo(因为我只有poedit的免费版本)。

发生了以下情况:在插件菜单中显示了翻译后的简短描述。在我自己的菜单中,没有任何字符串被翻译。

翻译结构如下:

studio链接集成。php=>new Studio_Link_Integration (/包括/class-studio-link-integration.php)

  • __contruct => set_locale();

    private function set_locale() {
    
    $plugin_i18n = new Studio_Link_Integration_i18n();
    $plugin_i18n->set_domain( \'studio-link-integration\' );
    
    $this->loader->add_action( \'plugins_loaded\', $plugin_i18n, \'load_plugin_textdomain\' );
    
    }
    
    上课时Studio_Link_Integration_i18n

    public function load_plugin_textdomain() {
    
    load_plugin_textdomain(
        $this->domain,
        false,
        dirname( plugin_basename( __FILE__ ) ) . \'/languages\'
    );
    
    }
    
  • 语言文件使用的是/languages/,名称为studio-link-integration-de\\u-de。

    翻译是用__( \'Text to Translate\', \'studio-link-integration\' )

    我真的不知道,为什么它不起作用。有人能看看我的文件帮我吗?我忘了一些新的翻译规范了吗?我读了所有关于本地化和国际化的法典,但没有发现任何对我有帮助的新东西。

    谢谢:)

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

    您的错误是here

    捆绑翻译的路径解析为languages 中的文件夹includes 文件夹,它比实际所在位置低一层。

    多加一点试试dirname 您将正确地瞄准它:

    dirname( dirname( plugin_basename( __FILE__ ) ) ) . \'/languages/\'
    
    或者更整洁一点:

    plugin_basename( __DIR__.\'/../languages\' )
    

    相关推荐

    Testing Plugins for Multisite

    我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。