国际化插件,以便可以将字符串翻译为WPML

时间:2012-02-15 作者:rhand

第三方开发人员制作了一个包含标题、正文和缩略图的文本小部件。这个伴随小部件插件尚未国际化,因此字符串不会出现在WPML的字符串翻译管理中。我需要把它们装好。因此,我正在尝试注册插件域,如图所示here, 但我添加的代码:

function accompany_text_init() {
    $plugin_dir = basename(dirname(__FILE__));
    load_plugin_textdomain( \'accompany-text\', false, $plugin_dir );
}
add_action(\'init\', \'accommpany_text_init\');
不加载。小部件似乎未注册。Here is the full code. 我做错了什么?呼叫位置关闭了吗?这里有一位插件编程新手和一位初级PHP er,希望能得到一些帮助。

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

在得到了来自WPML, 特别是@Brooks,我设法修复了代码。icl\\u register\\u strings()函数位于错误的位置,因此WPML将其转换为update()方法,从中可以在小部件使用实例变量之前对其进行清理。icl\\u t()函数放在widget()方法中。widget(),当它出现在您博客的侧栏中时,用于显示widget中的内容。他们还将icl\\u register\\u string($context,$name,$value)的$name参数之一更改为“widget body–”$此->id,以便现在可以为该值存储唯一值。代码如下所示:https://github.com/jasperf/Accompany-Widget

SO网友:fuxia

你必须使用translation functions.

示例:

_e( \'Number\', \'accompany-text\' );

SO网友:Stephen Harris

您需要添加以下内容

$plugin_dir = basename(dirname(__FILE__)); 
load_plugin_textdomain( \'accompany-text\', false, $plugin_dir );
在其中初始化小部件类。在您的示例中AccompanyPostWidget 作用

也就是说,在您链接到的小部件类中似乎没有任何可翻译的文本字符串。例如,翻译单词编号(如托肖的回答)

<?php _e( \'Number\', \'accompany-text\' ); ?>
作为一个更完整的示例,以下内容加载文本域并使小部件描述可翻译:

 function AccompanyPostWidget(){
    $plugin_dir = basename(dirname(__FILE__)); 
    load_plugin_textdomain( \'accompany-text\', false, $plugin_dir );
    $widget_ops = array(\'classname\' => \'AccompanyPostWidget\', \'description\' => __( \'Displays a Accompany post with thumbnail\',\'accompany-text\');
    $this->WP_Widget(\'AccompanyPostWidget\', \'Accompany Text Widget\', $widget_ops);
  }

Side remark

以下内容“通常”足够了,但无法及时加载以翻译小部件的标题和描述:

function accompany_text_init() {
    $plugin_dir = basename(dirname(__FILE__));
    load_plugin_textdomain( \'accompany-text\', false, $plugin_dir );
}
add_action(\'init\', \'accompany_text_init\');

结束

相关推荐

Plugin Localization

我刚刚为wp构建了我的第一个插件,即使它不是一个伟大的“代码诗意”;)它正常工作。这是一个使用GalleryView 3.0 jquery插件转换默认wp库的插件(http://spaceforaname.com/galleryview).我唯一不能做的就是本地化。此插件的本地化意味着转换管理界面,在这里可以配置jquery插件选项来更改结果库的外观。我试着关注网络上数百万的教程,在论坛上阅读了很多关于这个问题的帖子,并遵循了codex的指南。。。但仍然没有运气。这就是我所做的:每个文本行都位于gette