Internationalization 独立应用程序的国际化

Internationalization 独立应用程序的国际化,internationalization,Internationalization,我想本地化我的独立应用程序,即如果我们更改GMT时区为US,那么我的所有应用程序的货币格式、时间格式、数字格式都应该更改为US格式,因此有人可以告诉我需要完成的基本查找,因为我在这个国际化中为0,所以请指导我。。。。我正在开发的桌面应用程序是java和hibernate中用于数据库访问的印度医院ERP。无论何时使用java,无论这是桌面、移动还是web应用程序,都应该注意使用区域设置。也就是说,您应该检测它们 如果要将数据更改为区域设置感知,则需要使用以下命令(Java 7) 在任何情况下,你都

我想本地化我的独立应用程序,即如果我们更改GMT时区为US,那么我的所有应用程序的货币格式、时间格式、数字格式都应该更改为US格式,因此有人可以告诉我需要完成的基本查找,因为我在这个国际化中为0,所以请指导我。。。。我正在开发的桌面应用程序是java和hibernate中用于数据库访问的印度医院ERP。

无论何时使用java,无论这是桌面、移动还是web应用程序,都应该注意使用区域设置。也就是说,您应该检测它们

如果要将数据更改为区域设置感知,则需要使用以下命令(Java 7)

在任何情况下,你都不应该把它和时区联系起来。例如,美国有几个时区,所以这真的没有意义。您必须检查这是否是美国时区(这不是最容易做到的事情),并执行一些糟糕的操作,如分配默认语言环境(这将为在这个JVM上运行的每个程序分配语言环境,这是一个非常糟糕的主意)。 仅仅检测区域设置就足够了(这实际上是i18n的最佳实践)

// Detecting locale in desktop application
Locale fmtLocale = Locale.getDefault(LocaleCategory.FORMAT);
DateFormat dateFmt = DateFormat.getDateTimeInstance(
    DateFormat.DEFAULT, DateFormat.DEFAULT, fmtLocale);
dateFmt.setTimeZone(theTimeZone); // ommited
Date now = new Date();
String formattedDate = dateFmt.format(now);
// do something with formatted date
// Similarily for numbers, percentages and currencies
NumberFormat numberFmt = NumberFormat.getInstance(fmtLocale);
NumberFormat percentFmt = NumberFormat.getPercentInstance(fmtLocale);
NumberFomrat currencyFmt = NumberFormat.getCurrencyInstance(fmtLocale);