hustcc / timeago.js

:clock8: :hourglass: timeago.js is a tiny(2.0 kb) library used to format date with `*** time ago` statement.
https://timeago.org
MIT License
5.29k stars 411 forks source link

locale 是否可以兼容支持小写? #263

Open ZhangChengLin opened 1 year ago

ZhangChengLin commented 1 year ago

场景: 在网页端,生产环境有的是会压缩输出页面的代码,以利于gzip压缩,也许其他压缩也会相关吧。 gzip压缩规则里如果只包含小写字符,没有大写字符,会提高压缩率。 根据rfc5646,页面中的字符都是小写字符,不是大写字符,包括lang属性值,虽然是大写,但不是有特定意义。

lowercase tags, attributes and some values to enhance gzip compression

另外,参考dayjs也是支持的小写字符,原因并没有去找。 https://github.com/iamkun/dayjs/blob/00c223b7e92970d07557133994fcb225a6d4c960/src/index.js#L15

https://github.com/iamkun/dayjs/tree/1c267321a1a01b4947e1482bac67d67ebc7c3dfa/src/locale

希望作者也可以考虑一下是否可以兼容支持小写的locale字符。

ZhangChengLin commented 1 year ago

@hustcc

hustcc commented 1 year ago

挺有道理,可以代码中加一个 toLowerCase 兼容一下。

ZhangChengLin commented 1 year ago

挺有道理,可以代码中加一个 toLowerCase 兼容一下。 目前dayjs里面,文件名中的是使用的小写。 你的代码是默认包含2种语言,所以涉及了包含默认2种语言时的代码。

https://github.com/hustcc/timeago.js/blob/3ce10ccf46eea2f8009c7c274a22fea2f8952f23/src/index.ts#L11-L12

嗯,记得如果未来的一天,HTML规范里,或者lang属性值中都是必须全部小写字符了,就不需要兼容了。 总之记得为什么兼容就可以了。