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

时间:2012-07-02 作者:Shimon S

我想翻译this 插件。

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

如何创建.po.mo 我的新语言的文件,并使其可访问,以便插件使用?我试着用我的wp-config.php 通过插入以下定义来创建文件:

define (\'WPLANG\', \'ru_RU\');

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

编辑器还有其他编辑器,但这是最常用的:Poedit, 跨平台gettext目录(.po文件)编辑器。

格式.mo 表示机器对象
--编译导出.po WordPress使用的文件.po 表示可移植对象,可编辑文本文件,带翻译字符串,基于母版.pot 文件,使用POT文件更新功能,有些人将其作为主文件分发,但它只能用于翻译.pot 表示可移植对象模板(Portable Object Template)——可编辑文本文件,用于从WordPress本身、主题和插件中获取所有可翻译字符串,使用源更新编辑功能复制。pot文件并将其重命名为plugin-basename-lang_COUNTRY.po引用的插件案例示例:subscribe-reloaded-pt_BR.po
--pt_BR 意思是葡萄牙语巴西,但许多语言没有国家变体
--您必须用自己的语言填写WPLANG 在里面wp-config.php 文件必须设置为您的语言,例如。,pt_BR.po 文件,PoEdit自动生成.mo 文件,这是WordPress使用的一个文件,基本上是您需要上传的唯一一个观察结果。如果您进行了完整或体面的部分翻译,请将其提交给插件作者,以便他可以将其包含在存储库中,然后您可以get credited 因此,别忘了备份你的翻译,因为如果你升级插件,你的文件就会丢失。用户17078插件建议很好,但我从来没有经常使用它

SO网友:Aristeides

你可以试试这个codestyling-localization plugin:. 你可以用这个来翻译插件和主题。

SO网友:T.Todua

(这里有一个翻译成德语的例子。将海关更改为您想要的海关。)

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

/*
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\\u US.po”(注意,.po是文件的扩展名,请检查您的文本编辑器程序是否未保存为“my-pluginname-en\\u US.po.TXT”)。

然后下载POEDIT软件,并打开此文件。然后编辑“翻译”字段,然后另存为“my-pluginname-de\\u de”,将生成两个文件(如果poEdit没有自动生成第二个.mo文件,只需转到文件->首选项->编辑器并选中“保存时自动编译.mo文件”框即可),

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

之后,打开wp config。php并查找以下代码:

define (\'WPLANG, \'\');
并更改为

define (\'WPLANG, \'de_DE\');
仅此而已。加载WordPress时,它将读取您的插件语言文件,前缀为-de\\u de。

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

echo "Something string";
您应该使用:

echo __("mymessage1", \'my-pluginname\');
已完成。现在你应该测试你的插件。

p、 美国使用的链接:

SO网友:Pippin

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

我就整个主题写了一篇相当深入的教程here. 您可以跳到步骤3-为文本域创建翻译文件。

SO网友:Taji M.

我也建议http://poeditor.com/. 这是一个基于web的翻译工具,非常适合。采购订单。mo。pot和其他类型的文件。

结束

相关推荐

Beta Versioning of Plugins

当我为一些bug编写修复程序时,我通常会增加版本并将其发送给bug查找程序,以查看我的修复程序是否有效。如果我有1.2.5 我想创建一个测试版,一旦我提交代码,它将变得多余,我应该使用1.2.5-beta 或1.2.6-beta? 我担心的是1.2.6 <;1.2.6-beta 因此,字符串比较可能有利于beta版,而bug查找程序不会收到发布稳定版本的通知。编辑:如果在不考虑发布类型的情况下对字符串进行绝对比较,则可以使用1.2.5-fix 然后1.2.6. 该问题也概述在http://en.wik