文章列表文字截断失效

目前,问题已解决

问题原因,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 ”,翻译帮助中写的也很清楚。

文章列表文字截断失效

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

文章列表文字截断失效

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

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

文章列表文字截断失效

 


从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不受影响。