有些日子以来,我一直在努力解决有关插件翻译的问题。 我有一个免费的插件版本并使用:
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文件的位置..
所以实际上我很困惑.. 有人可以帮忙吗?
答案 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的原因。