根据上下文加载ResourceBundle

时间:2014-08-18 09:19:20

标签: java resourcebundle

我有一个在多个上下文中分隔的应用程序,每个上下文都有相同的布局,但是有不同的消息。

上下文示例" A":

  

TITLE

     

标签:文字

上下文示例" B":

  

TITLE B

     

标签:文字B

请注意"标签"在每个背景和背景下是相同的" A"是默认上下文。

我需要为每个上下文设置一个属性文件:

  • resources.properties(上下文A - 默认)
  

title = TITLE

     

label = Label

     

文本=文本

  • resources_b.properties(上下文B)
  

title = TITLE B

     

text = text B

我想根据上下文加载好的属性文件。

我找到的第一个解决方案是使用Locale,如下所示:

// context is either "A", "B"...
resources = ResourceBundle.getBundle(config, new Locale(context));

这样,如果在 resources_b.properties 中找不到该消息,它将按预期返回 resources.properties 中的消息。

什么是最好的方式来拥有一个漂亮的"每个上下文的资源加载不使用Locale

该应用程序目前仅以英文显示,但将来可能会发生变化......

1 个答案:

答案 0 :(得分:0)

不要将区域设置用作上下文。您可以使用以下语言环境变体:

de_DE_<variant>, e.g., de_DE_A, de_DE_B

但请注意,没有国家/地区就无法使用变体。