wordpress相关文章插件

一篇文章带您了解如何实现WordPress主题/插件本地化翻译

要实现WordPress主题和插件的本地化翻译就需要了解什么是国际化和本地化以及WordPress是如何实现国际化和本地化的。

本文涵盖以下内容:

什么是国际化?
如何国际化你的插件
什么是本地化?
本地化文件
如何实现本地化
解读po翻译文件
如何在 WordPress中翻译JavaScript 中的内容
安装WP-CLI
在Windows上安装wp-cli
更新WP-CLI
WP-CLI生成JSON翻译文件
WP-CLI生成POT翻译模板

什么是国际化?

国际化是为软件(在本例中为 WordPress)提供多语言支持的过程。国际化通常缩写为 i18n,其中 18 代表第一个 i 和最后一个 n 之间的字母数。

为您的插件和主题提供 i18n 支持可以使其覆盖尽可能多的受众,即使不需要您提供额外的语言翻译。当您将软件上传到 WordPress.org 时,所有 JS 和 PHP 文件都将自动解析。任何检测到的翻译字符串都会添加到 translate.wordpress.org 中,以允许社区进行翻译,确保 WordPress 插件和主题以尽可能多的语言提供。

对于 PHP,WordPress 有一个由来已久的流程,请参阅如何国际化您的插件。WordPress 5.0 的发布带来了类似的 JavaScript 代码翻译过程。

如何国际化你的插件

为了使字符串在应用程序中可翻译,必须将原始字符串包装在对一组特殊函数之一的调用中。这些函数统称为“gettext”。

什么是本地化?

本地化描述了翻译国际化插件的后续过程。本地化通常缩写为(因为 l 和 n 之间有 10 个字母。l10n

本地化文件POT(可移植对象模板)文件

此文件包含插件中的原始字符串(英文)。

PO (Portable Object)文件

每个翻译人员都会获取文件并将各个部分翻译成他们自己的语言。结果是一个与 格式相同的文件,但带有翻译和一些特定的标头。每种语言都有一个文件。POTmsgstrPOPOTPO

MO (Machine Object)文件

从每个翻译的文件中构建一个文件。这些是 gettext 函数实际使用的机器可读的二进制文件(它们不关心 OR 文件),并且是文件的“编译”版本。转换是使用命令行工具完成的。通常,应用程序可能会相应地使用多个大型逻辑可翻译模块和不同的文件。

以上内容来源于WordPress开发人员资源库,有需要的朋友可以去进行深入的解析和理解。对于新入门的朋友来说可能有些不太好理解,总的来说所谓的国际化就是通过(一系列)函数将文字(字符串、变量、单复数等)标记为可以被翻译的形式,那么相应的本地化就是将已经标记的文字翻译成某种语言。国际化是主题或插件的开发者需要考虑的问题,想要把主题和软件翻译成大美的中文就只需要了解如何本地化即可。

对于如何实现WordPress国际化以及Gettext函数的使用方法可以参考《如何国际化你的插件》

如何实现本地化

本文将着重解释如何实现本地化。

举个例子,当你打开了一个已经完成国际化的主题或者插件的源代码是你应该会看到很多类似

__( ‘Blog Options’, ‘my-plugin’ ); 这样的代码。函数的格式:__(‘文本域’,”路径域”);其中文本域表示可以被翻译的文本也就是前端将会显示的内容,域路径定义插件翻译的位置。

结合之前所说的.pot为模板.po为可以编辑的翻译文件.mo为编译后的翻译文件,简单理解为,当WordPress看到了__( ‘Blog Options’, ‘my-plugin’ );这样一条语句时会在众多的.mo文件中通过my-plugin来进行匹配,当匹配到的mo文件中如果包含了Blog Options的翻译条目时就会把Blog Options替换成翻译后的文本并输出到页面上。

这样是不是就很好理解了呢?那么接下来就看看怎么创建和编辑翻译文件。

当你下载了一个以及国际化的主题或插件,你应该可以找到languages或lang目录,而里面大概率会躺着一个.pot文件或很多.po文件;其他都不重要我们只需要.pot的模板文件,有了翻译模板文件就可以使用Poedit等软件创建对应语言的po文件进行编辑并生成mo文件供WordPress使用了。

解读po翻译文件

如果没有pot文件可以参考本文接下来讲到的如何创建pot模板文件。

接下来展示一个po文件的示例:

# Copyright (C) 2023 # This file is distributed under the GPLv2.msgid ""msgstr """Project-Id-Version: Smush Pro 3.14.0\n""Report-Msgid-Bugs-To: \n""POT-Creation-Date: 2023-07-21 12:47+0800\n""PO-Revision-Date: 2023-08-15 15:14+0800\n""Last-Translator: cnuu <admin@cnuu.net>\n""Language-Team: \n""Language: zh_CN\n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=UTF-8\n""Content-Transfer-Encoding: 8bit\n""Plural-Forms: nplurals=1; plural=0;\n""X-Generator: Poedit 3.3.2\n""X-Domain: wp-smushit\n"#. Plugin Name of the plugin#: app/class-admin.php:285 app/class-admin.php:324#: app/pages/class-dashboard.php:110 app/pages/class-dashboard.php:353#: app/views/directory/meta-box.php:43 core/modules/bulk/class-mail.php:65msgid "Smush Pro"msgstr "Smush 专业版"

这段代码是一个.pot文件的内容,用于国际化。下面是每一行的解释:

"Project-Id-Version: Smush Pro 3.14.0\n": 定义项目的版本号。"Report-Msgid-Bugs-To: \n": 提供报告消息ID和bug的URL。"POT-Creation-Date: 2023-07-21 12:47+0800\n": 创建此模板的日期和时间。"PO-Revision-Date: 2023-08-15 15:14+0800\n": 上次修订此模板的日期和时间。"Last-Translator: cnuu <admin@cnuu.net>\n": 最后翻译此模板的人的名字和电子邮件地址。"Language-Team: \n": 语言团队的名称或标识,通常用于指定负责特定语言的翻译团队。"Language: zh_CN\n": 指定此模板的语言版本,这里是简体中文。"MIME-Version: 1.0\n": MIME版本号。"Content-Type: text/plain; charset=UTF-8\n": 内容类型和字符集,这里是纯文本和UTF-8字符集。"Content-Transfer-Encoding: 8bit\n": 内容传输编码方式,这里是8位编码。"Plural-Forms: nplurals=1; plural=0;\n": 定义复数形式的规则。这里表示该语言只有一种复数形式。"X-Generator: Poedit 3.3.2\n": 用于生成此模板的工具的名称和版本号。"X-Domain: wp-smushit\n": 指定与这个模板相关的域名或项目名称,这里是wp-smushit插件。

然后是双引号包围的字符串,这些是消息ID和对应的原始字符串(msgid)以及翻译后的字符串(msgstr)。例如:

msgid "Smush Pro" 表示原始字符串是 “Smush Pro”。msgstr "Smush 专业版" 表示翻译后的字符串是 “Smush 专业版”。

其中,#: app/class-admin.php:285 app/class-admin.php:324 等行表示这些字符串在哪些源代码文件中出现,以及它们在文件中的具体位置。这对于翻译者来说非常有用,因为他们可以知道这些字符串在哪里使用,以便更好地进行翻译。

如果你理解了上面的内容那么不需要借助其他软件也可以手动创建.po文件了。

文件的命名规则:

例如wp-plugin-name-zh_CN.po

不用说,文件名必须是中文,单词间用-分隔连接,最后zh_CN代表使用ISO 639-1标准规定的语言代码,例如:

en_US(英语)zh_CN(简体中文)fr_FR(法语)de_DE(德语)es_ES(西班牙语)

编辑完成后创建的对应.mo文件应放置在主题或插件目录下的languages文件夹内或者wp-content/languages/对应目录下,不同作者写的方法肯定也不一样,区别对待。

有了以上的知识储备本地化翻译已经不再深奥,相信阅读到这里你已经迫不及待跃跃欲试了,别急,下面的内容可能是你在其他地方找寻不到的实用经验总结。

有可能你会遇到这样的问题,一段文字已经在翻译文件中添加了并且翻译都已生效就是某一部分仍旧无法翻译。

这时候你需要找出这段文字在源代码中出现的位置,确定这段文字(文本)是否已经进行了国际化定义,也就是之前提到的函数__(‘文本域’,”路径域”);,并且路径域是否和你的翻译文件匹配。

如果没有定义函数那么你可以手动修改源代码添加定义函数,你需要了解函数的实用方法以及__()_e()_x()_ex()_n()_nx()等不同函数的区别和用法。如果路径域和你的翻译文件不匹配你也可以修改路径域或者创建一个对应路径域的翻译文件。

还有一种可能就是这段文字最终确定是由JS文件输出的。

如何在 WordPress中翻译JavaScript 中的内容

WordPress 5.0 引入了 wp-i18n JavaScript 包,它提供了添加可翻译字符串所需的功能,就像在 PHP 中一样。原文链接

简单来说,一般情况下由PHP文件输出的文本内容可以直接由mo文件进行翻译,而由JS文件输出的文本内容则需要生成对应的JSON文件才能翻译。

要生成JSON翻译文件可以使用WP-CLI

安装WP-CLI

WP-CLI 是 WordPress 的命令行界面。该项目的目标是为 WordPress 管理员提供一个完整的替代方案;对于您可能想在 WordPress 管理中执行的任何操作,都应该有一个等效的 WP-CLI 命令。

安装 WP-CLI 的推荐方法是下载 Phar 构建(类似于 Java JAR 文件的存档,有关详细信息,请参阅本文),将其标记为可执行文件,并将其放在 PATH 上。

在安装 WP-CLI 之前,请确保您的环境满足最低要求:

类 UNIX 环境(OS X、Linux、FreeBSD、Cygwin);Windows 环境中的有限支持PHP 5.6 或更高版本WordPress 3.7 或更高版本。早于最新 WordPress 版本的版本可能功能降级

验证要求后,使用 或 下载 wp-cli.phar 文件:wgetcurl

curl -O

接下来,检查 Phar 文件以验证它是否正常工作:

php wp-cli.phar --info

要从命令行使用 WP-CLI,请键入 ,使文件可执行并将其移动到 PATH 中的某个位置。例如:wp

chmod +x wp-cli.phar

sudo mv wp-cli.phar /usr/local/bin/wp

如果WP-CLI安装成功,则在运行时应看到如下内容:wp --info

$ wp --info

OS: Linux 5.10.60.1-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64

Shell: /usr/bin/zsh

PHP binary: /usr/bin/php8.1

PHP version: 8.1.0

php.ini used: /etc/php/8.1/cli/php.ini

MySQL binary: /usr/bin/mysql

MySQL version: mysql Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

SQL modes:

WP-CLI root dir: /home/wp-cli/

WP-CLI vendor dir: /home/wp-cli/vendor

WP_CLI phar path:

WP-CLI packages dir: /home/wp-cli/.wp-cli/packages/

WP-CLI global config:

WP-CLI project config: /home/wp-cli/wp-cli.yml

WP-CLI version: 2.9.0

在Windows上安装wp-cli

先安装php然后将php.exe所在的目录添加到系统环境变量Path

然后下载wp-cli.phar放置到指定目录例如我的目录为D:\Tools\wp-cli

在D:\Tools\wp-cli目录下创建wp.bat

输入:

@ECHO OFF

php "D:/Tools/wp-cli/wp-cli.phar" %*

最后在环境变量Path中添加D:\Tools\wp-cli\

更新

您可以使用 (doc) 或重复安装步骤来更新 WP-CLI。wp cli update

如果 WP-CLI 归 root 或其他系统用户所有,则需要运行 .sudo wp cli update

WP-CLI生成JSON翻译文件

wp i18n make-json <po-file-name>.po --no-purge

其中<po-file-name>.po为已经编辑好的po文件。

此命令将生成数个类似plugin-name-zh_CN-[md5].json

md5值不可修改,将生成的json文件放置到对应的目录下即可实现对js输出的文本内容的翻译了。

WP-CLI生成POT翻译模板运行以下命令来生成POT文件:

wp i18n make-pot <pot-file-name>.pot <plugin-or-theme-directory>

在上述命令中,将<pot-file-name>替换为你想要生成的POT文件的名称,例如myplugin。将<plugin-or-theme-directory>替换为你想要提取翻译字符串的插件或主题的目录路径。
2. 执行命令后,WP-CLI将自动扫描你指定的插件或主题目录中的翻译字符串,并将它们提取到指定的POT文件中。
3. 你将得到一个名为<pot-file-name>.pot的文件,其中包含你的WordPress插件或主题的翻译字符串。你可以使用任何文本编辑器打开该文件进行查看和编辑。

wp-cli的安装和使用可访问进行深度的了解和学习。

本文是作者@avenjan对WordPress本地化翻译的一些心得和总结,分享给想要了解此部分知识和技能的朋友,部分内容可能不是十分准确和专业,但也希望能给有需要的朋友带来一些指导和帮助。如有疑问和意见欢迎评论区讨论,感谢关注!

分享4套WordPress主题模板和插件开发视频教程

WordPress是目前比较比较流行的开源的CMS博客网站程序,功能强大,易上手,是很多从事外贸或者个人网站搭建的朋友们使用比较多的网站搭建系统,学会了WordPress就可以自行搭建自己的网站。

我们学习WordPress的目的是能独立搭建网站。这需要我们必须掌握WordPress一些高级仿站开发技能。今天本站整理了4套《WordPress主题模板和插件开发视频教程》分享给大家。适合WordPress二次开发,独立开发WordPress主题,或者WordPress仿站等高级WordPress开发技能。

本套《WordPress主题模板制作插件开发视频教程》 共分为两大部分:WordPress主题模板开发视频教程和WordPress插件开发教程。其中《WordPress主题模板开发视频教程》共2套37课,《WordPress插件开发视频教程》共2套27课。主要内容包括:WordPress的运行机制和原理;WordPress程序各文件的功能;Wordpress文件结构及数据库;WordPress主题模板安装;WordPress常用的调用函数及调用方法;WordPress的fuction函数定义方法;WordPress头部和底部模板开发;WordPress侧边栏开发;WordPress小工具开发;WordPress菜单栏开发;WordPress各个模板调用不同模板调用方法;WordPress各个页面模板制作和调用;WordPress插件开发等。适合对WordPress,php,html等有一定基础的朋友们,二次开发主题模板学习,也适合想用WordPress来仿主题仿站的同学学习。

《WordPress主题模板开发视频教程》课程目录截图 教程获取方法

《WordPress主题模板开发视频教程》获取方法:关注大联笔记头条号,通过下方“了解更多”可以获得本套教程。

WordPress使用和主题插件选择建议

WordPress的确是世界上最强大的网站系统,其可定制性和拓展性是其它系统无法去比的。我从开始接触WP到现在已经有11个年头了,时间也不短。对Wp系统运行,主题的开发,插件的使用有着深刻的理解。再加上长年在运营推广这个领域积累,对网站用户体验,行为习惯有着丰富的经验。所以呀如果你想用它来建站,了解下面几点,你可能会少走更多弯路。

学习基本的Html+css语言

1

html+css是Web前端开发设计最基本的语言,也是非常非常简单,不需要任何语言基础,常人一个星期基本学会。

为了你以后遇到任何网站什么问题,自已都能淡定应对;为了你以后不会因为缺乏这方面了解给人忽悠,html+css是必需要了解的。

不管你是用Wordpress建站还是其它Web系统,了解它,基本网站上下左右一切的延伸你都能淡定解决处理。

WordPress 主题选择

2

主题要选择可以持续永久升级 (免费的没有,收费的有很多)

随着Wordpress系统更新,主题如果不跟着升级就会出现不兼容,所以选择主题时,尽量选择收费的,毕竟有专门的人去维护,升级与定制,说白就是你花了钱,有问题时,能找到一个帮你的人。免费的主题并不是说不好,但就是存在后期维护各方面等短板。

如果你是一个菜鸟,更不要想着免费的模板,花了时间精力,最终还是那样,这叫为什么免费永远是最贵的。

不要经常更换主题,为什么呢?

更换不同主题,网站的整个HTML框架也随之改变,对SEO搜索而言是一个至命打击。

大部分主题都会在数据库产生一部分自定义字段,当你更换主题时,这些字段你不删除,就成了数据库垃圾。

不同主题,设置不一样。换主题后,可能这些设置都要重新去迎合新的主题。举个例子,原先缩略图已经生成固定尺寸,新主题的缩略图要求和这个不一样,就会造成缩略图模糊。要么所有文章重新上传图片,生成新主题的缩略图尺寸,要么就是更改新主题缩略图的尺寸(旧主题的缩略图尺寸,在新主题上未必适合)。

主题界面一定要符合用户体现

符合用户体验我换一句话说就是让用户看得舒服,看得流畅,看出重点。

排版符合常规。例如LOGO放左上角,菜单放LOGO右边或下面,重点或最新的东西用幻灯片展现出来,最新文章放在左侧文章列表等,一切一切尽量符合常理设计。这些常规排版都是经过BAT根据用户看网页习惯的大数据总结出来。真的不要追求个性化,好看不好用,用户看完马上走。你一直以来的感觉良好都是在欺骗你弱小的心灵。

颜色不要超过三种。这个就不多说了,就是模板的色调不要超过三种,多了就会显得有点花,看多了人的视觉就会疲劳,产生厌倦感。

所以开始建站之前,关于主题的选择就要非常慎重,以用户为导向,整站风格事先规划再选择。

关于Wordpress插件使用

3

尽量不要使用任何插件,插件会导致网站运行速度

乱用插件,会让网站数据库产生一堆数据垃圾