Tag: 语言环境

如何获取特定区域设置的数字格式模式?

我有一个简单的问题: 如何使用为特定语言环境创建的NumberFormat来获取用于格式化数字的模式,如下所示: import java.util.Locale; Locale aLocale = new Locale(“fr”,”CA”); NumberFormat numberFormat=NumberFormat.getNumberInstance(aLocale); 在这里,我想知道用于格式化French和Canada国家号码的模式。 例如: 格式化后,将数字123456.7890转换为123 456,789 ,这意味着对于上述语言环境# ###,###模式可能是123 456,789 # ###,### 。

Java覆盖特定区域设置的区域设置

我正在使用NumberFormat.getCurrencyInstance().format(amount)来将货币从BigDecimal格式化为字符串。 这正如预期的那样,问题在于我们的主要目标是荷兰市场,默认的荷兰格式很奇怪。 让我解释一下,当格式化-125时,我得到荷兰语“€125-”(预计为“ – 125欧元”)。 英国按预期工作“ – 125.50英镑”。 我可以检查语言环境是否是荷兰语,然后每次我想格式化小数时提供一个模式。 但我更喜欢一种覆盖荷兰语格式设置的解决方案。 我在考虑以下内容: Locale nlLocale = new Locale(“nl”, “NL”); NumberFormat.getCurrencyInstance(new Locale(“nl”, “NL”)).setFormatPattern(“€ #”); 因此,每次我在格式化时使用荷兰语语言环境时,我都会获得自定义格式。 是否存在类似的解决方案?

带有货币符号的Java String.format

以下forms的一些现有代码用于格式数值: String.format( pattern, value ) 请注意,我无法更改代码本身 – 我只能更改提供给代码的格式模式。 输出默认语言环境的货币符号的格式模式是什么? 基本上,我想实现以下输出: String.format( “…”, 123 ) => $ 123

如何从Android上的Locale对象获取脚本?

从我看到的Android Locale类没有提到有关脚本的任何内容,只提及语言,国家和变体。 Java SE Locale类提到了语言,国家, 脚本 ,变体和扩展,当然还有getScript()方法来获取脚本。 所以,我的问题是: 如何从Android上的Locale对象获取脚本? 还是有其他方法来获取脚本? 我需要这个能够区分繁体中文(zho-Hant)和简体中文(zho-Hans),因为我需要能够从Locale获取脚本,例如Hant或Hans用于语言zho script = ISO 15924 alpha-4脚本代码。 您可以在IANA语言子标签注册表中找到有效脚本代码的完整列表(搜索“类型:脚本”)。 脚本字段不区分大小写,但Locale始终标准化为标题大小写(第一个字母为大写,其余字母为小写)。 格式良好的脚本值的格式为[a-zA-Z] {4}示例:“Latn”(拉丁语),“Cyrl”(西里尔语)

如果您有ISO国家代码`US`,`FR`,您如何获得Locale代码(`Locale.US`,`Locale.FRANCE`)?

如果你有国家代码US , FR (ISO-3166-1 alpha-2国家代码),你如何获得Locale代码( Locale.US , Locale.FRANCE )来做这样的事情: System.out.println(DecimalFormat.getCurrencyInstance(Locale.US).format(12.34)); System.out.println(DecimalFormat.getCurrencyInstance(Locale.FRANCE).format(12.34)); $12.34 12,34 €

有没有一种优雅的方法将ISO 639-2(3个字母)语言代码转换为Java语言环境?

例如eng,spa,ita,ger 我可以迭代所有语言环境并比较代码,但我想知道是否有更优雅和高效的方法来实现这一目标…. 非常感谢任何提示:)

如何扩展可用的Java语言环境列表

我正在寻找一种方法来向Java 1.6中提供的Locales添加更多Locales。 但我想创建的语言环境没有ISO-3166国家/地区代码,也没有ISO-639语言代码。 有什么办法可以做到这一点吗? 我想添加的语言环境只在语言名称上有所不同,但是一个族群越小,他们对自己的身份就越挑剔;-) 所以我考虑扩展现有的Locale,比如 UserDefinedLocale extends Locale { UserDefinedLocale (Locale parentLocale) {…} } 但java.util.Locale是最终的,这使得特别难以破解周围的东西…… 那么,Java Locales列表是否详尽无遗? 我是第一个错过更多Locales的人吗?

使用Java进行语言排序(德语)

使用数字对字符串进行排序的方式不同,从一种语言到另一种语言。 例如,英文数字在升序排序中位于字母之前。 但是,在德语中,数字在字母之后排序。 我尝试使用Collator对字符串进行排序,如下所示: private Collator collator = Collator.getInstance(Locale.GERMANY); collator.compare(str1, str2) 但是上面的比较没有考虑字母后的数字规则。 有没有人知道为什么Java暂时没有考虑这个规则(字母后面的数字)暂时使用RuleBasedCollator ,如下所示: private final String sortOrder = “< a, A < b, B < c, C < d, D < e, E < f, F < g, G < h, H < i, I < j, J < k, K < l, L […]

解析一个没有点的短月份的日期

我有一个字符串,表示法语区域的日期:09-oct-08: 我需要解析那个String,所以我想出了这个SimpleDateFormat: String format2 = “dd-MMM-yy”; 但是我对月份部分有一个问题,似乎预计会有一个结束点: df2.format(new Date()); 给我 : 28-oct.-09 现在什么是让SimpleDateFormat理解的最佳方式(“09-oct-08”)? 完整代码: String format2 = “dd-MMM-yy”; DateFormat df2 = new SimpleDateFormat(format2,Locale.FRENCH); date = df2.parse(“09-oct-08”); 这给了我:java.text.ParseException:Unparseable date:“09-oct-08” 如果我然后尝试记录: df2.format(new Date()); 我明白了:28-oct.-09

国际化Java Swing桌面应用程序的最佳实践是什么?

我确信有很多方法,但建议的方法是什么,对代码的影响最小? 显而易见的是,您创建了属性文件,但是如何在渲染中交换值? 在J2EE中,您只需重新渲染整个页面,这样就很容易了。 但是在Swing应用程序中,您只是在paintComponent(Graphics g)方法中添加.getProperty()的代码吗? 如果是这样的话,它看起来不是很重,因为现在你不得不在你不需要之前的所有地方覆盖这个方法…… 附加:如何设置通知系统以重新渲染所有当前可见的组件而不强制某种注册模式? 我想如果我覆盖paintComponent(Graphics g),我所要做的就是触发一个事件已经改变了,并且将调用paintComponent(Graphics g)方法……