这时,才想到认真研究下wordpress汉化的问题。
wordpress使用GNU的gettext方式进行汉化。在wp-content下有languages目录,里面有zh_CN.po文件是汉化对应表。而在wordpress内所有字串代码,都加有__()或_e()函数。前者返回本地化的串。后者直接打印本地化的串。查看zh_CN.po,里面有Leave a Reply且有对应中文串。而在前面的注释行也正确指出了comments-template.php文件中的两次出现Leave a Reply的行数。看来,代码这部份没什么问题啊?为什么其它部份汉化正确而这句不行呢?
试着将这两处改为中文,刷新页面,倒,没有变化,还是英文,看来找错了地方,冤枉了wordpress。
那就还是在主题文件夹里。再搜索,发现了comments.php,里面有Leave a Reply,以前虽然看到过,但是认为是其它标记而忽略了。改了,再试,成功了。看来还真是在这里。
那么如何汉化这个主题呢?WP的主题汉化也有一套规则。由于此英文主题未提供languages模板(没有XXX.pot文件),而代码中也未加__或_e等函数,以常规方式汉化有些麻烦。首先要将所有主题代码中的字串表示加上__或_e,然后用poedit抽取字串,然后汉化,最后保存到主题上的languages文件夹下的zh_CN.po文件中,并编译成zh_CN.mo文件。同时代码里也要略作改动。
既然确认了所有未汉化字串都在主题目录下,而不需改动wordpress主程序,省事起见,就直接在代码中翻成中文好了,因为省掉了多余的处理,据说效率还会高一些。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/457.html