Skip to content

Add Device number format #10588

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

Open
2 tasks done
jasongitmail opened this issue Jul 21, 2024 · 4 comments
Open
2 tasks done

Add Device number format #10588

jasongitmail opened this issue Jul 21, 2024 · 4 comments
Labels
feature-pending-triage A new feature request pending triage to confirm validity.

Comments

@jasongitmail
Copy link

jasongitmail commented Jul 21, 2024

Is your feature request related to a problem? Please describe.

I'd like to more easily & accurately identify the user's preferred number format, to use when formatting numbers in my app to match this.

Describe the solution you'd like

I'd like to see NativeScript's Device class contain a numberFormat property to expose their OS-level user preference:

Identifying the user's preference is the goal here; not actually reformatting of numbers. Once I have that, I can handle formatting numbers within my app to match their preference.

From iOS Settings -> General -> Language & Region -> Number Format:
Simulator Screenshot - iPhone 15 Pro - 2024-07-21 at 18 05 46

Describe alternatives you've considered

I've tried:

  • Using Intl.NumberFormatter in NativeScript (v8.7.2), but it is broken and always uses a comma thousands separator. The Intl class is not supported currently apparently.
  • I've considered npm's Intl class, but it hasn't been updated in 8 years, and I found errors, shockingly, even in the current NodeJS Intl class for thousands and fractional separators for certain regions. This class is also not consistent with iOS's number formatting for certain regions.
  • I ended up using a Node script to create base data set of thousands and fractional separators, and then manually correcting and handling scenarios such as french-speaking Canada vs English speaking Canada.

However, all of the above are error prone, require maintenance, and are not guaranteed to respect/match the user's system-level preference on iOS.

The ideal solution would be to get this from the user's iOS system preferences, so we can format it to what the user expects.

Anything else?

No response

Please accept these terms

@jasongitmail jasongitmail added the feature-pending-triage A new feature request pending triage to confirm validity. label Jul 21, 2024
@CatchABus
Copy link
Contributor

For the time being, you can make use of formatjs polyfills: https://formatjs.io/docs/polyfills

@jasongitmail
Copy link
Author

Appreciate it; I created my own temporary solution.

For clarity for the maintainers, this issue about getting the preferred number format from the user's device settings--i.e. just knowing what their preferred format is, not about implementing a function to format numbers to it.

@triniwiz
Copy link
Member

@jasongitmail you can check out here or here for android and here for ios

@jasongitmail
Copy link
Author

The feature request is about this being available within NativeScript's Device class.

But those seem like useful links for someone implementing it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-pending-triage A new feature request pending triage to confirm validity.
Projects
None yet
Development

No branches or pull requests

3 participants