JSF2国际化属性文件

时间:2011-01-12 10:11:05

标签: java jsf internationalization jsf-2

我正在尝试将以下示例实现到我的jsf2应用程序中:

http://www.mkyong.com/jsf2/jsf-2-internationalization-example/

但我不明白应用程序如何知道属性文件属于哪种语言。

请你解释一下: - )

1 个答案:

答案 0 :(得分:3)

这是由ResourceBundle API完成的,而不是由JSF完成的。资源包文件名应遵循以下模式name_ll_CC.properties_ll部分应为小写ISO 693-1语言代码。它是可选的,仅在_CC部分存在时才需要。 _CC部分应为大写ISO 3166-1 Alpha-2国家/地区代码。它是可选的,通常仅用于区分特定国家/地区的语言,如美式英语(_en_US)和英式英语(_en_UK)。

根据当前请求的Locale确定正确的文件。 JSF会将UIViewRoot#getLocale()之一传递给ResourceBundle。如果name_ll_CC.properties文件不存在,则ResourceBundle将扫描name_ll.properties文件。如果它也不存在,那么ResourceBundle将回退到默认属性文件,您可以在<default-locale>中将其区域设置指定为faces-config.xml条目。如果条目也不存在,那么它最终将扫描name.properties

另见: