wp i18n make-pot命令无法生成主题可翻译文本问题及解决方案
WordPress主题翻译模板生成失败修复方案
问题描述
在主题目录下执行以下3条命令生成翻译模板均失败:
wp i18n make-pot . languages/text-domain-locale.potwp i18n make-pot . languages/text-domain-locale.pot --slug=text-domainwp i18n make-pot . languages/text-domain-locale.pot --domain=text-domain
失效原因为主题内翻译函数的文本域使用常量格式,无法被命令识别,当时的写法如下:
__( 'source text', TEXT_DOMAIN );_e( 'source text', TEXT_DOMAIN );
解决方案
WordPress翻译函数的文本域参数必须使用字符串格式,不可用常量定义,修正后的正确写法如下:
__( 'source text', 'text-domain' );_e( 'source text', 'text-domain' );
调整代码后执行以下命令,即可正常生成.pot模板文件:
wp i18n make-pot . languages/text-domain-locale.pot --domain=text-domain
后续配置操作
- 将生成的.pot文件重命名为.po格式,存放在
wp-content/languages/theme/目录下 - 完成所有文本翻译后,执行以下命令编译为可被WordPress识别的.mo文件:
wp i18n make-mo wp-content/languages/theme/text-domain-locale.po wp-content/languages/theme/text-domain-locale.mo
配置完成后主题即可自动切换为目标语言展示对应翻译内容。
备注
可在主题中调用get_locale()函数获取当前站点的语言区域代码。
内容的提问来源于stack exchange,提问作者Cskt Coop
相关产品推荐
相关产品推荐

