0

我有一个网站,用户应该可以使用英语和瑞典语。我的问题是:我如何决定向用户显示什么语言(以及什么数字格式等)。

该接口javax.servlet.ServletRequest定义了该方法getLocale(),并表示它将根据Accept-languageHTTP 请求中的标头返回语言环境。但这意味着,如果使用德语浏览器的人访问我的网站,则该Locale对象将是德国人。而且由于我的网站不支持德语,因此请求中的语言环境与我的任何语言文件都不匹配。

有没有办法配置它,还是我需要覆盖该getLocale()方法的功能才能做到这一点?

用于确定向用户显示哪种语言的正确方法是getLocale()正确的方法,还是应该用于其他目的的方法?

需要明确的是,我想要的是:如果我的网站支持浏览器提供的语言环境,则使用该语言环境。否则,为我的网站使用默认的(英文)。

4

1 回答 1

1

getLocale()方法是正确的,但没有必要扩展它。Java 的正常国际化支持已经以一种更简单、更简洁的方式为您提供了您想要的行为。

例如,假设您提供以下语言文件:

  • MyStrings.properties
  • MyStrings_sv_SE.properties

第一个文件有您的英文文本,第二个文件有您的瑞典语文本。如果语言环境是瑞典,将使用瑞典语文件;否则将使用没有语言扩展名的文件。

要检索您的文本,您可以执行以下操作:

ResourceBundle strings = ResourceBundle.getBundle("MyStrings");
String hello = strings.getString("HELLO_USER");
于 2012-05-24T20:24:46.550 回答