WordPress主题插件汉化教程
使用WordPress的朋友都知道WordPress的主题很多,去网上搜搜就能搜到一大把。有时候找到一个好主题,但是发现居然是英文主题,有点让人失望。今天,我将教你如何汉化英文WordPress主题,这里提供两种方法,你可以自行选择。开始之前,先准备好你要翻译的主题。这里也只以汉化主题为例,汉化插件方法相似。
方法一:使用Poedit生成语言包
最新版的Poedit pro已经支持WordPress主题和插件的翻译,可以不用进行以下第1步和第3步的操作,最新版的Poedit pro请自行到网上搜索下载。
1、生成语言包的好处是不必修改主题代码,不会引起不必要的代码错误。请先自行下载Poedit。安装过程你可以选择中文版,安装完毕,我们开始汉化主题。打开Poedit - 文件 - 新建消息目录文档,填写以下基本信息:
工程信息可以随便填,路径添加一个点 . 即可,关键字添加 _e
、_n
、_x
和 __
即可,注意 __
是两个半角下划线。设置好后确定,会弹出保存窗口,命名为zh_CN.po,保存到主题目录下即可,保存成功会弹出以下窗口,说明Poedit已经探测到这么多要翻译的英文了,确定即可。如果该窗口没有任何内容,说明该主题不支持Poedit翻译,请看方法二:
2、好了,下面的翻译工作你就自己完成吧,翻译好后保存即可。
3、翻译完了,先别乐,还有工作要做,请在主题目录下的functions.php中,将 ?> 改成:
function theme_init() {
load_theme_textdomain('Ludou', get_template_directory());
}
add_action ('init', 'theme_init');
?>
如果你是要汉化插件,请在插件所有php文件中,将 ?> 改成:
// 插件路径,如/wp-content/plugins/login-to-view-all/
load_theme_textdomain('Ludou', '这里填上插件所在的目录路径');
?>
请将以上代码中的 Ludou 改成你的主题或插件的名称。打开主题任意一个文件,查找 _e
,应该可以找到类似代码:_e('Tags', 'Ludou');
,其中的Ludou就是主题名称,不同主题的名称是不一样的。
方法二:直接修改源代码
直接修改源代码的好处是,不需要服务器去解析汉化包,节省了一定的运行时间,也算是WordPress优化的一部分吧。如果你对PHP一窍不通,请不要擅自修改源代码,推荐使用方法一。
其实修改源代码的方法也很简单,用文本编辑器打开主题目录下的所有PHP文件,查找 _e
,应该可以找到很多类似代码:_e('Tags', 'Ludou');
这其中Tags就是你要翻译的内容,Ludou一般是主题的名称,不同主题不一样,将这一句代码改成:echo '标签';
这样Tags的翻译就完成,接着找下一个翻译吧。如果代码是这样类型的:<?php _e('Tags', 'Ludou'); ?>
,你完全可以直接替换成:标签
,这样就略过了PHP解析这一步,在一定程度上可以加速WordPress。
接着用文本编辑器查找__
,注意 __
是两个半角下划线。也可以找到类似代码:
No comments就是你要翻译的内容,将这句代码改成:__('No comments', 'Ludou')
'没有评论'
修改代码的时候,最好改一个就保存一次,刷新你的博客,看主题是否可以正常工作,出现错误了就还原你刚才的操作,这样能够及时地发现错误,也能轻易地找出错误。另外,汉化的时候尽量只更改英文单词,不要去修改主题的其他代码,如 __('% comment', 'Ludou')
,那么你只能将其改成 '% 条评论'
不要去除 %,否则你就破坏了主题的功能。
最后,修改好一个PHP文件之后,请用 UTF-8 编码将其另存为,覆盖原来的PHP文件,否则中文都是一堆乱码!
-- 完 --
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/how-to-translate-wordpress-theme-and-plugin.html
看看这个。
学习了,正在学习做博客中。很高兴学到这个方法。
这是第二次过来看这篇文章,然后决定去试一试
太简单了。
真搞不懂啊,【如果你是要汉化插件,请在插件所有php文件中,将 ?> 改成:】
插件自带语言包,翻译完成直接保存成相应的文件名就行了,为什么要该PHP文件,真搞不懂哦。原理不是这样吗?
@123 这些代码用于加载语言包,并不是语言包放在那里,就能用的。
求教如何汉化主题设置呢
@Chin 方法一也可以。如果不行就方法二,打开主题目录下所有php文件,逐个查找翻译
由主题制作教程下载就好了
谢谢你的文章
想问 有没有方法可以把可翻译的语句 直接倒出来到文本编辑器 ,或Excel 之类的软件
翻译好再倒回去的呢
我试过用软件打开 .po 的纯文字档 但还是没法自动分出要翻译的部分 除非 一个一个要翻译的在头尾加个tab
有工具有这个功能么
谢谢
@samesame 没有
Ludou
我主题想加载官方默认的语言包,wp-content\languages zh_CN.po
我用load_default_textdomain();没有效果哦。 应该怎么加载?
有个问题Poedit 翻译了主题文件的.po .mo 以后如何让主题应用上?
主站已经 define 中文了 然后应用了一个第三方主题
主题是英文的 附带POT文件
已经汉化 汉化后的文件.po .mo 我放到了 wp-content/languages/themes/
前台没变化囧 文件改名为 XXX-zh_CN.mo XXX-zh_CN.po
还有这里/wp-content/themes/XXX/languages/
前台没变化需要再如何设置一下?T_T
还是把翻译的合并到 wp-content/languages/的 zh_CN.po文件里?
@哈哈你猜猜 当前主题根目录下
╮(╯_╰)╭不行
@哈哈你猜猜 注意添加文中的代码
@哈哈你猜猜 或者,主题目录下有languages的话,就放到这个目录,或者POT文件所在目录
load_theme_textdomain( 'quietlover', get_template_directory() . '/languages' );
我在汉化underscores主题,用poedit,汉化完没生效= =
原始文件中是如上写法,主题内有languages文件夹,这个要咋改?跟您写的不太一样…
@yutorpea poedit – 文件 – 从POT/PO文件新建,选择主题目录下的POT文件,然后保存为zh_CN.po,放到languages文件夹
补充一下..内容是从主题自带的POT文件打开的..按理说一切都应该没问题..
function quietlover_setup() {
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
* If you're building a theme based on QuietLover, use a find and replace
* to change 'quietlover' to the name of your theme in all the template files
*/
load_theme_textdomain( 'quietlover', get_template_directory() . '/languages' );
//接下去是一些其他的东西…
The .mo files must use language-only filenames, like languages/de_DE.mo in your theme directory.
额。找到答案了。并且已经生效。
这种路径的翻译文件必须命名为 zh_CN.mo,而不是 主题名-zh_CN.mo 。
还是不会
请问,第二种方法:直接修改源代码。升级以后,还需要再次修改吧?
@提问 肯定要修改