Tag: 本地化

JSF语言环境:浏览器定义的语言似乎被忽略了

目前我的团队正在用java开发一个web 2.0应用程序,我们正在使用JSF作为表示层。 我们从表示层开始,所以我们还没有添加业务和数据层。 我们使用的技术: – JSF(Mojarra 2.0.3) – Primefaces 2.1(JSF组件库) – Spring Security 3.0.5 – jBoss 5.1 我被要求为应用添加区域设置支持。 所以我配置了faces-config.xml文件,如下所示: en pt en es com…i18n.MessageBundle 我创建了MessageBundle后缀文件并部署了应用程序。 我读到JSF使用三个条件来选择语言环境:1)请求语言环境(Accept-Language请求标头)和支持的语言环境之间的匹配2)faces配置文件中定义的应用程序默认语言环境3)JVM默认语言环境 当我尝试在浏览器选项中更改语言时,应用程序不会更改区域设置。 即使我只配置一种语言而不是默认语言。 我在这里错过了什么吗? 这是预期的,或者实际上它应该在我更改浏览器语言时改变内容(假设它是受支持的语言)? 我非常感谢任何提示或至少指示我在哪里可以找到答案,因为我已经谷歌搜索没有运气。 提前致谢。

如何使用DateTimeFormatter解析非标准月份名称

我需要解析(德语)以下列forms的日期: 10. Jan. 18:14 8. Feb. 19:02 1. Mär. 19:40 4. Apr. 18:55 2. Mai 21:55 5. Juni 08:25 5. Juli 20:09 1. Aug. 13:42 […] 如您所见,如果月份超过4个字符,则会删除月份名称。 甚至更奇怪,不要问我为什么,三月份缩短为Mär. 虽然全名都是März 。 我如何用java.time解析这个? (日期的格式基于创建日期列表的Android设备的本地化。但是,我没有在Android上解析它) 我的方法是创建一个这样的DateTimeFormatter : DateTimeFormatter.ofPattern(“d. MMMM HH:mm”).withLocale(Locale.GERMAN); // or DateTimeFormatter.ofPattern(“d. MMMMM HH:mm”).withLocale(Locale.GERMAN); 但MMMM和MMMMM模式都不适合缩短的日期。 当然,我可以有以下模式d. MMM. HH:mm d. MMM. HH:mm d. MMM. HH:mm以匹配缩短的月份,但后来我无法匹配3个月和4个月的月份。 我知道我可以有两个格式化程序( MMM. and […]

我应该将java.text.MessageFormat用于没有占位符的本地化消息吗?

我们正在为在Java 5上运行的Web应用程序本地化用户界面文本,并且我们如何输出在属性文件中定义的消息( java.util.Properties使用的类型)的困境。 某些消息包含将使用java.text.MessageFormat填充的占位符。 例如: search.summary = Your search for {0} found {1} items. MessageFormat很烦人,因为单引号是一个特殊字符,尽管在英文文本中很常见。 你必须输入两个文字单引号: warning.item = This item”s {0} is not valid. 但是,应用程序的1000个左右的消息中有四分之三不包含占位符。 这意味着我们可以直接输出它们,避免使用MessageFormat,并保留单引号: help.url = The web page’s URL 问题:我们应该为所有消息使用MessageFormat,以获得一致的语法,还是尽可能避免使用MessageFormat,因此大多数消息都不需要转义? 无论哪种方式都有明显的优点和缺点。 请注意,MessageFormat的API文档确认了该问题,并建议使用非解决方案: 遗憾的是,在消息格式模式中使用引号的规则已经显得有些混乱。 特别是,对于本地化者来说,单引号是否需要加倍并不总是显而易见的。 确保通知本地化程序有关规则,并告诉它们(例如,通过在资源包源文件中使用注释)MessageFormat将处理哪些字符串。

如何让java输出英文错误而不是其他语言?

我的系统是中文的,当我的java程序出现错误时,它可能会输出不可读的非英文错误消息: Caused by: java.io.IOException: CreateProcess error=2, 系统脮也禄碌陆指露 要么: IOException occured : Cannot run program “cmd /C tsc hello.ts”: CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ 有可能让java总是输出英文错误信息吗?

将语言环境正确设置为JFileChooser

我在运行时更改Locale时遇到了一些问题。 目标 我必须根据配置文件更改我的应用程序语言的Locale。 此语言环境不一定与主机/ OS语言环境和JVM默认语言环境相同。 而且,当我调用应用程序时,我无法修改user.language 。 然后,我必须在运行时这样做。 问题 总结我的代码,我读取配置文件并获取不同的选项(包括语言环境)。 之后,我根据这些配置的选项初始化应用程序环境。 之后,我构建我的框架并启动应用程序生命周期。 public static void main(String[] args) { File fichier; Ini ini; //Ini4J object Modele modele = new Modele(); //My Model class: it stores configuration and other stuff try { fichier = new File(Modele.CONFIGURATION); ini = new Ini(fichier); modele.setLocaleLang(ini.get(Modele.LOCALE, Modele.LANG, String.class)); // read more options […]

java本地timeformat没有年份

我喜欢将本地时间格式格式化为没有年份的字符串。 目前我能够显示包含年份的本地格式: java.text.DateFormat df = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT); String dateString = df.format(date); 因此我收到一个时间字符串输出,如 12.03.2012 03/12/2012 适用于不同的国家。 现在我想得到一个简短的表格 12.03. 03/12 我该怎么做? 谢谢你的帮助!

Java偏好和国际化(i18n)

Java教程建议在Properties文件上使用Preferences API。 属性文件和ResourceBundle是处理应用程序中的内部化要求的推荐方法。 我正在考虑将两者用于桌面应用程序,该应用程序将以特定于语言环境的方式显示首选项。 任何人都可以指出这种方法的问题吗? 也许我应该只使用属性文件期间?

如何从日历中获取UTC时间戳?

在Java中我使用Calendar.getInstance(); 我得到了当前时区的Calendar对象。 但java.sql.Timestamp通常以UTC时间存储,而不是以本地时间存储。 那么如何从Calendar实例获取UTC时间? DateFormat df = DateFormat.getTimeInstance(); Calendar cal = Calendar.getInstance(); Timestamp time = new Timestamp(cal.getTimeInMillis()); // Prints local time System.out.println(df.format(new Date(time.getTime()))); // Printe local time, but I want UTT Time System.out.println(“timestamp: ” + time);

Spring Boot本地化问题 – Accept-Language标头

我们正在使用Spring Boot作为应用程序。 在ApplicationConfig.java中,我有以下代码 @Bean public LocaleResolver localeResolver() { return new SmartLocaleResolver(); } 并且SmartLocaleResolver.java位于下方 public class SmartLocaleResolver extends SessionLocaleResolver { @Override public Locale resolveLocale(HttpServletRequest request) { final String acceptLanguage = request.getHeader(“Accept-Language”); if (acceptLanguage.contains(“,”)) { String[] aheader = acceptLanguage.split(“,[ ]*”); for (String locale : aheader) { if (ApplicationConstants.LOCALE.contains(locale)) { locale.trim(); return Locale.forLanguageTag(locale); } } } else if […]

如何在Android上逐一填充/显示旁遮普字母

如何在Android上逐一填充/显示旁遮普字母。 我必须逐个显示一种语言的单个字母表,然后必须在其上绘制以用于学习目的。