Tag: 国际化

为en-US和en_US创建区域设置有什么区别?

我在表中拥有所有resourcebundle值,并根据要求进行格式化。我必须根据页面顶部的下拉列表中的用户选择更改网站中的语言。 如果我使用语言代码作为en_US,那么它的工作正常。 如果我使用en-Us作为语言代码,那么它不起作用。 可能是什么问题。 哪个是正确的?

登录时更改区域设置

我想在登录到使用Spring Security(3.0)的用户帐户Spring MVC Application(3.0)中存储的默认语言环境后更改语言环境。 我已经使用了LocaleChangeInterceptor因此(未登录,以及登录)用户可以更改其语言环境(默认来自accept标头)。 但客户真的希望该帐户具体默认。 所以我的问题是,登录后更改语言环境的最佳方法是什么,或者Spring / Security中是否已经有一些内置function?

Struts 2(版本2.3.28)仅接受已注册的区域设置

在Struts 2版本2.3.28中, i18n拦截器只接受注册到jvm的语言环境,该语句由Locale.getAvailableLocales()返回。 好吧,虽然我可以扩展可用的Java语言环境列表,如上所述如何扩展可用的Java语言环境列表 ,是否设置此拦截器接受所有字符串作为语言环境的简短方法(例如fa_IR )? 请注意:将默认语言环境设置为fa_IR ( )可以正常工作。

数据库表中的多语言字段

我有一个应用程序需要支持多语言界面,确切地说是五种语言。 对于接口的主要部分,可以使用标准ResourceBundle方法来处理此问题。 但是,数据库包含许多表,其元素包含人类可读的名称,描述,摘要等。需要能够以所有五种语言输入其中的每一个。 虽然我想我可以简单地在每张桌子上都有字段 NameLang1 NameLang2 … 我觉得在编写代表每个表的bean时会导致大量相同的代码。 从纯粹面向对象的角度来看,解决方案很简单。 每个类只有一个Text对象,其中包含每种语言中的相关文本。 这进一步有用,因为只有一种语言是强制性的,其他语言具有回退规则(例如,如果语言4缺少返回语言2,其返回到必须的语言1)。 不幸的是,将其映射回关系数据库,意味着我最终得到了一个表,其中有大约10-12个其他表FK(实际上有些表有多个FK)。 这种方法似乎有效,我已经能够使用Hibernate将数据映射到POJO。 关于你唯一不能做的是从Text对象映射到它的父对象(因为你无法知道你应该链接到哪个表),但几乎没有必要这样做。 所以,总的来说这似乎有效,但让多个表像这样引用一个表只是感觉不对。 有人有更好的主意吗? 如果重要我正在使用MySQL …

在动作类中获取i18n拦截器检测到的用户区域设置

我有一个使用Struts 2的webapp。我使用i18n拦截器和所有默认设置。 我认为这个拦截器的工作原理如下: 如果存在参数request_locale,请删除此参数并将此区域设置放在会话中以供将来使用。 如果没有参数,请在httpheader中搜索语言环境,并将此语言环境放在会话中以备将来使用。 所以在我的动作类(实现sessionAware)中,我有以下方法: public String getUserLocale() { return (String) session.get(“WW_TRANS_I18N_LOCALE”); } 但是,此方法在情境#2中不起作用,它只返回null。 所以我的问题是:如果没有明确的请求参数,我怎么能让我的行动知道i18n拦截器检测到的用户区域设置? 因为它没有存储在会话中?

如何使用JSTL标记检查资源包密钥是否不存在?

我有一个资源文件,将有一些可选键。 如果不存在可选资源键,我会设置默认值。 似乎没有简单的方法来确定资源包中是否存在密钥。 所以这就是我正在做的事情。 有没有更好的办法?

保持i18n资源同步

我正在寻找一个i18n属性文件的编辑器/比较器,它可以帮助我保持不同的语言文件同步。 基本上,可以比较一堆属性文件并显示特定语言中不存在哪些键。 一个属性看起来像 component.titlepage.title = hello world 由于右侧与语言不同,因此不可能进行简单的差异化。 目前的基础设施: Java应用程序 使用maven2构建 系统的不同组件的不同i18n属性文件。 (每个组件每种语言1个属性文件)

在JSP中使用资源包属性进行国际化,非拉丁文本成为Mojibake

我有以下index.jsp: 和属性文件messages_ru_RU.properties: login = Логин 问题是我在输出中得到了垃圾unicode字符: Ëîãèí 更新 将.properies文件编码更改为UTF-8。 最新产品:Ðогин 请帮助我,将其更改为正常的西里尔字母。 属性文件: messages_ru_RU.properties

Java邮件编码非英文字符

使用下面的代码,我可以发送一封用非英语写的电子邮件,虽然主题正确显示,但是正文显得很乱。 有任何想法吗? 谢谢 public void postMail(String recipient, String subject, String message, String from) throws MessagingException, UnsupportedEncodingException { //Set the host smtp address Properties props = new Properties(); props.put(“mail.smtp.host”, “mail.infodim.gr”); // create some properties and get the default Session Session session = Session.getDefaultInstance(props, null); // create a message Message msg = new MimeMessage(session); // set the […]

在Swing中改变运行时的语言环境

我希望能够在运行时更改我的Swing应用程序中的语言环境,并让屏幕上的所有文本元素都使用新语言环境的ResourceBundle中的本地化文本进行更新。 这可以在不自定义swing组件或为处理渲染本地化文本的所有组件创建UIDelegates的情况下完成吗? 如果不是,那么我可以考虑实施什么是好的解决方案?