该插件已被翻译成其他语言,并且它具有
.pot
文件,用于添加新语言(据我的描述)。如何为我的新语言创建
.po
和.mo
文件,并使其可访问以供插件使用?我试图通过在下面的定义中插入wp-config.php
文件来定义俄语:define ('WPLANG', 'ru_RU');
#1 楼
编辑器还有其他,但是最常用的是:Poedit,一个跨平台的gettext目录(.po文件)编辑器。
格式
.mo
代表Machine Object -编译的导出的WordPress使用的
.po
文件.po
代表Portable Object -带有翻译字符串的可编辑文本文件
-基于主要
.pot
文件,使用从POT文件中的更新PoEdit功能-有些人将此文件作为主要文件分发,但应仅用于翻译
用于可移植对象模板的
-可编辑的文本文件,用于从WordPress本身以及主题和插件中获取所有可翻译的字符串,并使用“从源代码更新” PoEdit函数
过程
复制.pot文件并将其重命名为
.pot
引用的插件案例的示例:
plugin-basename-lang_COUNTRY.po
-pt_BR表示葡萄牙语巴西,但许多语言都没有尝试变体...
-您必须使用自己的语言填写
subscribe-reloaded-pt_BR.po
文件中的WPLANG
必须设置为您的语言,例如wp-config.php
每次保存
pt_BR
文件时,PoEdit都会自动生成一个.po
文件,这是WordPress使用的文件,基本上是您唯一需要上传的文件。观察结果
如果您要进行全部或不错的部分翻译,然后将其提交给插件作者,这样他就可以将其包括在存储库中,并且您会因此而得到赞誉
不要忘记备份翻译,因为如果升级该插件将丢失您的文件
@ user17078插件的建议非常好,但是我从没用过它
#2 楼
您可以尝试使用以下代码样式本地化插件:。您可以使用此翻译您的插件和主题。评论
这是我见过的最好的翻译插件。这个插件可以随时拥有poedit,最好的部分是它免费且用户友好。这个答案应该至少被投票通过。
–谷歌
2014年10月2日,9:37
不复存在。
–克里斯·考克斯(Chris Cox)
2015年6月3日,11:27
这看起来是个不错的选择:wordpress.org/plugins/say-what
– jetlej
15年6月10日在18:36
@jetlej有趣,虽然对我的po文件似乎无效://
– Nemo
2015年12月14日下午0:29
#3 楼
(以下是翻译为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”)。 br />
然后下载POEDIT软件,并打开该文件。然后编辑“翻译”字段,然后另存为“ my-pluginname-de_DE”。
将生成两个文件(如果poEdit不会自动生成第二个.mo文件,只需转到“文件”->“首选项”->“编辑器”,然后选中“自动编译.mo文件保存”),
,然后将这两个文件放入“语言”文件夹。
之后,打开wp-config.php并找到以下代码:
define ('WPLANG, '');
并更改为
define ('WPLANG, 'de_DE');
就这样。
加载WordPress时,它将读取您的插件语言文件,其前缀为-de_DE。
因此,在插件的.php文件中,而不是:
echo "Something string";
,您应该使用:
echo __("mymessage1", 'my-pluginname');
完成。现在您应该测试您的插件。
p.s。使用的链接:
codex.wordpress.org/I18n_for_WordPress_Developers
codex.wordpress.org/Translate_WordPress
codex.wordpress.org/Writing_a_Plugin
法典。 wordpress.org/Installing_WordPress_in_Your_Language
评论
我尝试了以我的主题。在header.php中,我有echo __(“ thanks-for-visiting”,'transparent');。在theme \ languages \ transparent-en_US.po中,我有msgid“ thanks-for-visinging” msgstr“您好!谢谢您的光临。环顾四周并订阅”。这会在前端输出“感谢访问”。
–史蒂夫
2014-03-10 6:09
#4 楼
您将要使用POEdit。它是用于创建.po / .mo文件的免费应用程序。我在此处针对整个主题编写了非常深入的教程。您可以跳到步骤3-为文本域创建翻译文件。
#5 楼
我建议也http://poeditor.com/。它是基于Web的翻译工具,可与.po,.mo,.pot和其他类型的文件配合使用。评论
一位访客提出了一项修改,指向该服务的新插件:wordpress.org/extend/plugins/poeditor
–brasofilo
13年5月17日在7:33
poeditor.com不再存在...
–密码
20-04-27在17:15
评论
新的mo / po文件应生效多长时间?
– Nemo
15年12月14日在0:30