【问题标题】:How to translate wordpress widget name?如何翻译 wordpress 小部件名称?
【发布时间】:2013-08-24 18:12:37
【问题描述】:

我已经正确创建了一个自定义小部件,除了标题之外,所有的 .po 文件都能很好地翻译。

这是我的代码:

$concert_widget_name = __('Tour Dates', 'concerts');
wp_register_sidebar_widget (
    'tourdates',                 // your unique widget id
    $concert_widget_name,         // widget name
    'tourdates_widget_display',  // callback function to display widget
    array(                       // options
        'description' => 'Displaying upcoming tour dates'
    )
);

有错误吗?另一种翻译小部件名称的方法?

【问题讨论】:

    标签: wordpress widget translate


    【解决方案1】:

    我通常使用register_widget 函数注册我的小部件。在小部件类的构造函数中,我放置以下代码:

    class TourDates extends WP_Widget
    {
        public function __construct()
        {
            $options = array('classname' => 'tour-dates', 'description' => __('Display upcoming tour dates'));
            parent::__construct('tour_dates', __('Tour Dates'), $options);
        }
    }
    

    您还可以查看 WordPress Codex 网站上的 Widgets API。希望这可以帮助您创建自定义小部件。

    另外我通常做的是将我的翻译与从 WordPress 加载的默认翻译合并,如下所示:

    function loadTextDomain() {
        $locale = get_locale();
        $languageDir = dirname(__FILE__) . '/languages';
    
        $domain = 'default';
        $mofile = $languageDir . '/theme.' . $locale . '.mo';
    
        global $l10n;
        $mo = new MO();
        if (!$mo->import_from_file($mofile)) {
            return false;
        }
    
        if (isset($l10n[$domain]) && !empty($l10n[$domain]->entries)) {
            $l10n[$domain]->merge_with($mo);
        } else {
            $l10n[$domain] = $mo;
        }
    }
    add_action('init', 'loadTextDomain');
    

    此代码看起来类似于 WordPress 中的 load_textdomain 函数,但它避免了原始函数中确实存在的所有过滤器,这有助于避免任何 WordPress 挂钩更改您的 $domain 和 $mofile 变量。

    但我会留给你。也许来自 WordPress 的 load_textdomain() 函数也可以正常工作,但如果它没有,这个函数应该可以解决问题。

    现在,如果您使用我在上面粘贴的loadTextDomain() 函数,您只需将languages 文件夹放在与您的functions.php 所在的文件夹相同的文件夹中,您可以在该新文件夹中放置theme.nl_NL.mo 或theme.de_DE.mo 文件取决于您使用的语言。这应该允许翻译您的网站以及管理区域。

    【讨论】:

      猜你喜欢
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 2013-08-22
      • 2013-12-30
      • 2011-01-26
      • 1970-01-01
      相关资源
      最近更新 更多