Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[locale] Improve support for meridians #3534

Open
4 of 5 tasks
atjn opened this issue Aug 15, 2024 · 2 comments
Open
4 of 5 tasks

[locale] Improve support for meridians #3534

atjn opened this issue Aug 15, 2024 · 2 comments

Comments

@atjn
Copy link
Contributor

atjn commented Aug 15, 2024

Right now it is impossible to properly implement support for meridians on clocks. You can use require("locale").meridian(new Date()) to get the current meridian and display that somewhere in your clock. This will work in some cases but not in the following cases:

  1. The user's locale includes meridians but the user chose 24 hour clock in settings. In this case, you will still be showing the meridians even though you are displaying a 24-hour clock. To remove the meridians, you must manually read the settings file and check if the setting is set to 12-hour or 24-hour, then you must stop displaying the meridian based on that information. That is not a very nice solution.
  2. The user's locale does not include meridians but the user chose 12 hour clock in settings. All locales that traditionally use 24-hour clocks do not have meridian information. If the user chooses a 12-hour clock here, you have no way of displaying a meridian.

Another issue is that there is no documentation on how to use the meridians. It seems like most clocks have simply opted to never show meridians, probably because they were not aware of it, or because they couldn't figure out how to use it properly.

I think we need the following changes to properly support meridians:

The last one is not as important as the others, but I could imagine that some apps would want to change the layout depending on the clock format.

What do you think?

@bobrippling
Copy link
Collaborator

Tagging @gfwilliams with this being a central change :)

@gfwilliams
Copy link
Member

This seems like a sensible change - just merged those two changes. If you could contribute those improved docs you mention that'd be great.

One thing I was wondering is what if a clock/app wants to get meridian regardless of if 24 hour is specified or not? We'd have the data in the locale module but would then refuse to give it to them.

Maybe instead we should actually have meridian: (d,force) => (force||is12Hours()) ? d.getHours() < 12 ? ${js(locale.ampm[0])}:${js(locale.ampm[1])} : "", is12Hours, so at least it's possible to get meridian.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants