【问题标题】:Internationalization of measuring units in AndroidAndroid中计量单位的国际化
【发布时间】:2012-06-24 04:34:10
【问题描述】:

在我的应用程序中,有长度、重量等输入。不同国家/地区遵循不同的测量准则,例如美国的英里、加仑和英国的公里、升。 android Locale 是否支持在语言环境更改时进行此类转换,或者我们是否必须对其进行显式编码。

【问题讨论】:

  • 实际上,在英国它是英里(对于任何基于道路/长途的东西,每小时英里的速度等)但通常是其他所有东西的度量(重量 - 公斤,体积 - L,温度- 摄氏度等)

标签: android internationalization units-of-measurement


【解决方案1】:

你可以这样做:

 if (locale.getCountry().equals("US")){
 // Code to compute weight based on USA format
 }

 else {
 // Code to compute weight based on metric system
 }

除美国以外,缅甸和利比里亚都有非公制格式

【讨论】:

    【解决方案2】:

    这不是一个有用的功能!不,我担心您可以依靠Locale 来帮助您使用适当的分组字符格式化十进制数字。您必须编写代码来对数据进行数字转换,并且可能使用设备上的默认 Locale 来确定向用户显示哪些单位。

    【讨论】:

    • 是的,我认为我们必须在代码中明确提及公制转换,但就十进制数而言,我发现我们可以使用 DecimalFormat 的对象。它根据语言环境管理数字系统中的逗号和句点。例如:999999.09 在美国将显示为 999,999.00,在欧洲国家(德国、意大利等)显示为 999.999,00。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    相关资源
    最近更新 更多