【发布时间】:2014-11-04 11:00:49
【问题描述】:
我一直在研究这个问题的解决方案,但找不到合适的解决方案。我得到的最接近的是来自stackoverflow 的this 条目。但由于这是 4 年前提出的(实际上不是我的问题,尽管它可以帮助解决我的问题),我会再次询问,看看现在是否有更好的解决方法。
背景: 我想在多个国家/地区发布我的 android 应用程序。目前仅在西班牙有售。我已阅读所有有关本地化的 android 开发人员文档。很明显,在将代码呈现给用户时,所有关于代码的动态本地化信息都应该基于“系统语言环境”。
问题: 当用户手动更改设置的语言并且我想显示基于系统区域设置偏好的货币的价格(由应用程序生成)时,就会出现问题。例如,假设我住在西班牙,我将设备语言和输入/语言设置为英语(美国)。当我这样做时,我的应用程序以美元 ($) 显示价格,但我希望它继续显示欧元 (€),因为我在西班牙。我如何实现这一目标?
这是基于系统区域设置向用户显示“本地化”价格的实际代码:
Locale currentLocale = Locale.getDefault();
priceFormat = NumberFormat.getInstance(currentLocale);
localCurrency = Currency.getInstance(current);
//...
//doubleValueCost is independent from currency but the I want to add the proper currency symbol
costTextView.setText(priceFormat.format(doubleValueCost) + " " + localCurrency.getSymbol());
此代码将添加用户根据偏好选择的系统区域设置的货币符号,而不是设备所在国家/地区的实际货币符号。
欢迎任何建议。提前致谢。
【问题讨论】:
标签: android localization