WP本地化:如何翻译2个合并的pugins?

时间:2017-07-20 16:56:59

标签: wordpress plugins localization

有些日子以来,我一直在努力解决有关插件翻译的问题。 我有一个免费的插件版本并使用:

function my_plugin_l10n(){
load_plugin_textdomain( 'free-plugin', false, dirname(plugin_basename( __FILE__ )).'/languages/');
}
add_action('plugins_loaded','my_plugin_l10n');

然后我有一个依赖于免费版本的附加组件,并为免费版本添加功能和屏幕,有时在免费页面中合并功能,有时会创建新页面。如何组合翻译文件?我一直使用翻译插件,例如' codestyling localization '或' loco翻译'但从来没有处理过这种情况。

我尝试了几种方法,例如:

function addon_l10n(){
 load_plugin_textdomain( "addon", false, dirname(plugin_basename( __FILE__ )).'/languages/');
}

add_action('plugins_loaded','addon_l10n');

OR

function addon_l10n(){
load_plugin_textdomain( "addon", false, ABSPATH . 'wp-content/plugins/my_free_plugin/languages/' );
}
add_action('plugins_loaded','addon_l10n');

我尝试手动合并po字符串但没有成功,在插件页面中只翻译了来自免费版本的字符串(本地化文件" free-plugin- {locale} .po, free-plugin- {locale} .mo "位于/ free / languages / dir中。)

我还尝试在2个插件中使用相同的textdomain,但不知道是否正确以及存储po-mo文件的位置..

所以实际上我很困惑.. 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

每个插件都应该有自己的textdomain和自己的语言文件(.po,.mo),所以你应该像这样重写$(function () { $('#users-table').DataTable({ processing: true, serverSide: true, ajax: { url: accessurl, type: 'post', data: {status: 1, trashed: false} }, columns: [ {data: 'id', name: config + '.id'}, {data: 'first_name', name: config +'.first_name'},], order: [[0, "asc"]], searchDelay: 100 }); });

select Name
from table
group by Name
having min(Age) = 20 and max(Age) = 20

事实上,一个是另一个的插件并不影响这一点。每个插件的.po / .mo文件都应包含相应插件中使用的文本,即使它们看似共享某些字符串。

您可能会说共享字符串需要翻译两次,但这正是大多数翻译工具(如Poedit)实现某种Translation Memory的原因。