文章列表文字截断失效

2023年11月8日,WordPress 6.4 发布,更新后会造成主题文章列表文字截断失效,原因是WP官方中文语言包翻译有重大错误。

这个问题一年前也有出现过,之前经过我纠正已解决。这次又再次出现同样的问题,目前我已提交了正确的翻译,等待审核通过。

目前提交的修正翻译已通过,问题解决,可以点击仪表盘 → 更新 → 翻译 → 更新翻译,如没有更新提示,可以多刷新几下,有提示更新,直接更新就行了。

目前的解决办法,用我修改的语言包替换即可。

使用方法:
解压下载的语言包,将里面的 zh_CN.mo 和 zh_CN.po 两个文件上传替换wp-content\languages目录同名文件即可。

可以通过查看:https://translate.wordpress.org/projects/wp/dev/zh-cn/default/
什么时候看到我提交的翻译(颜色为黄色的条目)通过了,就可以正常在后台更新语言包了

文章列表文字截断失效-图片1

正确的翻译是:characters_excluding_spaces

否则会造成文字截断函数 wp_trim_words 失效。

上面明确写着Word count type. Do not translate! (字数统计,不要翻译!),眼神不好,就别装大尾巴狼,老实呆着得了。

看了一下繁体的这条翻译是正确的,翻译简体的就是个废柴,又要害我几天时间,不停地回复这个问题,真想问候它八辈祖宗....

还有新翻译,非得翻译成“撰写新文章”,就不能译成“撰写文章”或者“发表文章”,非要多加个字?

为防止WP自动更新语言文件,可以在主题函数模板 functions.php

// 自定义代码加到此行下面

下面添加:

add_filter( 'auto_update_translation', '__return_false' );

禁用翻译文件的自动更新。

 

 

这是上次的

目前,问题已解决

问题原因,8月1日WP官方语言包翻译出现重大问题,未按要求翻译,造成文章列表文字截断失效。

下图,上面是错误的翻译,下面是正确的,由我提交。

 

WP官方于8月3日,已通过我提交的纠正后的简体中文语言包,如果后台有提示更新语言翻译,可以正常更新,如果没有自动更新,手动点一下。

未出现新的语言翻译更新提示,那就不停刷新更新页面,直到出现,然后点更新。

被用户折磨了两天,我也可以休息了。

结果是,这两天后台天天提示更新语言包,不知道在干什么...

最后发现不知道什么时候,之前一直没翻译的一些关键地方也终于翻译全了

下面内容不用看了,如果想学学技术,也可以看看

 

大概是这两天(8月1日),WP后台自己更新了语言包,造成文章列表文字截断失效。

判断是WP官方语言包有问题。

解决办法:

不升级语言包。

当然它自己偷偷升级了,只能用原始WP6.01的语言包替换。

解压后,将里面的 zh_CN.mo zh_CN.po 仅上传 zh_CN.mo 即可)文件FTP覆盖替换wp-content\languages目录中同名文件。

有用户居然说没有这两个文件,那就只上传,没有覆盖替换。

如有安装静态缓存之类的插件,清空一下。

为防止WP再次自动更新语言文件,可以在主题函数模板 functions.php

// 自定义代码加到此行下面

下面添加:

add_filter( 'auto_update_translation', '__return_false' );

禁用翻译文件的自动更新。

 

或者安装更新管理插件:Easy Updates Manager

安装插件后,进入WP后台 → 仪表盘 → Updates options,进入插件设置页面,在下面找到“Translation updates”,选择“Disable translation updates”,禁止翻译更新。

 

其它只能寄希望WP官方能尽快修复这个BUG。

我还特意到官方语言翻译页面:

https://translate.wordpress.org/projects/wp/dev/zh-cn/default/

看了一下出错这句翻译的最后更新日期,是由一个叫“smile32”于8月1日最后更新的,正是这天大家都遇到这个问题。

上面明确写着不需要翻译,结果翻译者可能没睡醒,直接把原文words加到翻译里,正常应该是“characters_ exclude_spaces ”,翻译帮助中写的也很清楚。

 

我已提交了正确的翻译,正在等待官方确认,确认后正常更新就无此问题了。

文章列表文字截断失效-图片2

什么时候打开这个页面:https://translate.wordpress.org/projects/wp/dev/zh-cn/default/

看到黄色等待审核的那条通过了或者上面的翻译变成“characters_ exclude_spaces ”就可以正常更新了。

文章列表文字截断失效-图片3

 


从WP6.0开始,WP程序有许多常见位置未翻译,虽然已多次更新语言文件,但这些并无变化。

至于如何找哪个文件有问题,方法很简单很原始,反复逐个文件替换,找出哪个文件有问题,与正常的文件对比一下。

目前查出是核心的zh_CN.mo语言文件有问题,用文本编辑器打开zh_CN.po文件,大概第56行:

msgstr "words"

修改为:

msgstr "characters_excluding_spaces"

保存

然后用语言包编辑器Poedit打开zh_CN.po文件保存一下,将生成的zh_CN.mo文件替换一下就行了。

上面的那句“characters_excluding_spaces”正是用于判断中文字数,上述问题仅存在于简体中文版。

也只针对使用WP标准文字截断函数wp_trim_words,如果主题使用通用PHP截断函数mb_strimwidth不受影响。