gentooboontoo / js-quantities

JavaScript library for quantity calculation and unit conversion
http://gentooboontoo.github.io/js-quantities/
MIT License
396 stars 102 forks source link

Return full human readable names #9

Open aramk opened 10 years ago

aramk commented 10 years ago

Great library! I'm just not sure if it's possible to get the full name of the unit from looking at the docs and code. e.g. I want to turn "m" into "meters".

gentooboontoo commented 10 years ago

It is not currently possible. Long names of units are only used for parsing, not for formatting.

Could you give me an example of how you would like to use this feature? How would you specify the full name of an unit? There could be several long names for a single unit: for instance "m", "meter", "meters", "metre", "metres" for meters.

aramk commented 10 years ago

I think we could map the units abbreviation "m" to a set of localisations as you mentioned - e.g. en_US would be "meters" and en_UK would be "metres"? When requesting the full name you could provide the localisation, and also configure it as the default. It might also be possible to detect it from the browser environment: http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference

gentooboontoo commented 10 years ago

Not directly related to your issue and just for info, I have begun to externalize formatting from Qty instances to allow client code to customize formatting. Please check out qty-formatter branch (commit 92ffff45f659). To sum up, you can now pass a formatter to #toString accepting scalar and units as parameters and returning formatted string.

It is not yet what you are expecting but perhaps it could help. Could you give some example code of how you are using current version of the library and you would like to configure unit output from your client code?

mefeakengin commented 9 years ago

Thanks for the great library! Adding on that, it would be great to have getting a name. In my case, for some less-used units, I would like other people to be able to get the full name like this: Qty('5 m').fullname = 5 meters or Qty('m').name = meters or Qty('5 m').name = meters Thanks!