【问题标题】:Trying to localize plugin on Bedrock stack in Wordpress尝试在 Wordpress 的基岩堆栈上本地化插件
【发布时间】:2014-10-07 22:50:27
【问题描述】:

我正在尝试本地化一个工作中的 WordPress 插件。我已经创建了必要的.mo.po 文件,并尝试将它们存放在不同的地方,但我就是无法让本地化工作。我注意到在它指定的基岩application.php 文件中,我应该将语言文件放在app/languages 中,但它仍然无法正常工作。

我尝试将我的.mo 文件命名为plugin-en.moen.mo,但没有成功。

我已经相应地设置了我的 WPLANG:define('WPLANG','en');

我需要插入load_plugin_textdomain() 函数吗?如果是的话,我会把它放在哪里?

【问题讨论】:

标签: php localization wordpress


【解决方案1】:

如果您的插件名为myplugin,您的语言文件应该是(例如)myplugin-fr_FR.momyplugin-fr_FR.mo(法语)。 Codex 表示约定同时具有语言代码和国家/地区代码 - 我不知道是否只有 en(而不是 en_US)会导致您的问题。

将它们放在名为languages 的子目录中,然后用类似的东西加载它们

add_action( 'plugins_loaded', 'myplugin_load_textdomain' );
function myplugin_load_textdomain() {
    load_plugin_textdomain( 'myplugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); 
}

在您的主插件文件中(如果您从不同目录中的文件加载它们,则需要修改第三个参数)。

【讨论】:

  • 我已经完成了所有这些,并多次遵循指南。我想我需要知道的是,如果我使用的是 Bedrock 堆栈(使用 Composer 安装),我的主插件文件在哪里?文件结构不同于典型的 WordPress 网站。
【解决方案2】:

运行 Bedrock 的站点将其语言文件存储在不同的目录中:app/languages。无需为包裹在字符串周围的 _e()__() 函数添加文本域。

因此,将所有 .mo.po 文件添加到 app/languages 文件夹就可以了。例如:_e( 'String-to-be-translated')__('String to be translated')

查看this link 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-21
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多