在 JSF 应用程序中针对不同环境使用语言环境变体

Using Locale Variants in JSF application for different environments

我们有一个 JSF 应用程序,它针对它所服务的 4 个不同的商业品牌部署了 4 个不同的版本。目前,我们为每个品牌都有一个单独的代码库,我们会在进行更改时将更改从一个主品牌的代码库复制并粘贴到其他品牌的代码存储库中。

我正在努力转向只为所有服务的品牌提供一个代码库。

我们在资源 属性 文件中有应用程序中使用的文本,XHTML 模板中的所有标签和文本均来自该文件。

我的计划是为每个品牌创建一个单独的 属性 文件,并使用 Locale 变体代码在它们之间切换。所有四个品牌都 en_AU 之后有一个变体,即:

这是完成我想做的事情的合适方法吗?也可以 select 在 运行 时 Java 代码中的 XHTML 模板使用哪个变体?我打算使用 case switch 语句来确定根据服务器名称使用哪个变体。

您可以像这样以编程方式设置它:

FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);

通过 xhtml 中的 bean 进行设置:

<f:view locale="#{user.locale}"/>

其他方式说明here

在区域设置中使用变体是切换不同公司的好方法。否则,您也必须以编程方式执行此操作。但是如果没有其他原因我是不会推荐的