当前位置: 首页>>WEB开发>>正文


使用.po .mo文件翻译插件

webfans WEB开发 , , , 去评论

问题描述

我想翻译this插件。

该插件已经被翻译成其他语言,它有.pot文件用于添加新语言(据我所知,从描述中)。

如何为我的新语言创建.po.mo文件并使其可访问以便插件使用?我已经尝试通过插入以下定义在我的wp-config.php文件中定义俄语:

define ('WPLANG', 'ru_RU');

最佳解决办法

编辑

还有其他,但最常用的是:Poedit,一个cross-platform gettext目录(.po文件)编辑器。

格式

  • .mo代表机器对象 – .po文件的编译导出,由WordPress使用

  • .po代表Portable Object – 带有翻译字符串的可编辑文本文件 – 基于主.pot文件,使用POT文件PoEdit函数更新 – 有些人将其作为主文件分发,但它只应用于翻译

  • .pot代表便携式对象模板 – 可编辑的文本文件,用于从WordPress本身和主题和插件中获取所有可翻译的字符串,使用来自Sources PoEdit函数的更新

步骤

  • 复制.pot文件并将其重命名为plugin-basename-lang_COUNTRY.po

  • 引用插件案例示例:subscribe-reloaded-pt_BR.po – pt_BR表示葡萄牙语巴西语,但许多语言没有国家/地区变体… – 您必须使用自己的语言填写

  • wp-config.php文件中的WPLANG必须设置为您的语言,例如,pt_BR

  • 每次保存.po文件时,PoEdit都会自动生成一个.mo文件,这是WordPress使用的文件,基本上是您需要上传的文件

Observations

  • 如果您进行完整或体面的部分翻译,请将其提交给插件作者,以便将其包含在存储库中,并将其包含在get credited

  • 不要忘记备份您的翻译,因为如果您升级插件,您的文件将会丢失

  • @ user17078插件建议相当不错,但我从未使用过多

次佳解决办法

你可以尝试这个codestyling-localization plugin:。您可以使用此翻译插件和主题。

第三种解决办法

(这是DEUTSCH的翻译示例。将海关更改为您想要的海关。)

在每个插件头中,都有一个唯一的名称。 (例如:

/*
Plugin Name: my-pluginname
.......
*/

然后,在该插件的文件夹中,创建一个文件夹”languages”;

然后,进入你的插件.php文件(在顶部的某个地方),插入初始化代码:

class load_language 
{
    public function __construct()
    {
    add_action('init', array($this, 'load_my_transl'));
    }

     public function load_my_transl()
    {
        load_plugin_textdomain('my-pluginname', FALSE, dirname(plugin_basename(__FILE__)).'/languages/');
    }
}

$zzzz = new load_language;

然后打开任何文本编辑器,然后插入像这样的代码(注意,我们只添加两个示例消息,”hello”和”bye”,因此,您可以添加许多消息,因为您想要使用类似的行)。

# English translations for PACKAGE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: my-pluginname 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 13:46-0400\n"
"PO-Revision-Date: 2013-03-21 11:20+0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"


#: mypluginindex.php:87 (it is just a line of a note, to remind where our code appears)
msgid "mymessage1"
msgstr "Hello"

#: mypluginindex.php:88
msgid "mymessage2"
msgstr "Bye"

然后将此文件另存为”my-pluginname-en_US.po”(注意,.po是文件的扩展名,因此请检查您的文本编辑器程序是否已保存到”my-pluginname-en_US.po.TXT”)。

然后下载POEDIT软件,并打开此文件。然后编辑”translation”字段,然后保存为”my-pluginname-de_DE”将生成两个文件(如果poEdit不自动生成第二个.mo文件,只需转到文件 – >首选项 – >编辑器并选中“自动”框在save“上编译.mo文件,

然后将这两个文件放入”languages”文件夹中。

在此之后,打开wp-config.php并找到以下代码:

define ('WPLANG, '');

并改为

define ('WPLANG, 'de_DE');

就这样。加载WordPress时,它将读取插件语言文件,前缀为-de_DE。

因此,在插件的.php文件中,而不是:

echo "Something string";

你应该使用:

echo __("mymessage1", 'my-pluginname');

成品。现在你应该测试你的插件。

附:二手链接:

第四种办法

您将需要使用POEdit。这是一个用于创建.po /.mo文件的免费应用程序。

我在整个主题here上写了一篇非常棒的in-depth教程。您可以跳到步骤3 – 为文本域创建翻译文件。

第五种办法

我建议也是ttp://poeditor.com/。它是一个web-based翻译工具,可以很好地处理.po,.mo,.pot和其他类型的文件。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2176.html,转载请务必附带本地址声明。