espruino / BangleApps

Bangle.js App Loader (and Apps)
https://banglejs.com/apps
MIT License
478 stars 1.14k forks source link

Support more granular format lengths in `locale` #3272

Closed atjn closed 1 week ago

atjn commented 5 months ago

In #3268 I suggest using the CLDR data to autogenerate locale information. But the current locale data only provides a short and long option. The CLDR data supports four lengths: short, medium, long and full. You can see an example here: https://www.npmjs.com/package/cldr#cldrextractdateformatslocaleidroot-calendaridgregorian

The current locale formats roughly correspond to the short and medium formats in CLDR. I suggest adding the long and full formats as well. Given that banglejs is first and foremost a watch, it makes sense to me that there is extensive support for datetime formats. I can also see that some of the locales use longer formats in the long version. I have mentioned in #3268 that we probably need to make those shorter to ensure compat with apps, but we could still allow apps to explicitly opt in to a longer format by supporting all four CLDR formats.

Because the data is autogenerated from CLDR data, this change can be applied by me for all locales.

gfwilliams commented 5 months ago

I'm not too sure on this... I feel like this is a feature nobody has actually asked for or needed to date?

It's also going to be tricky to do in a backwards compatible way as there's a default Locale built into the Bangle.js firmware