我正在启动一个使用表单身份验证的全新站点。每个用户都是公司的成员。每个公司都有不同的样式表应用于站点,因此呈现出不同的外观。我通过在身份验证时在 HTML 标记中应用自定义类来做到这一点。然后,CSS 文件只是寻找.customer #logonname
样式元素。
我正在使用资源文件来处理本地化,因为客户可能会说不同的语言。这是有效的,我可以控制它。我使用自定义命名空间的每个资源文件,这在我的剃刀视图中运行良好。
问题是不同的客户希望出现不同的内容。例如,客户 1 希望登录字段标签显示“用户名”,而客户 2 希望相同的标签显示“登录 ID”。
我想知道资源文件是否是这样做的好方法。我可以为每个客户(和语言)创建单独的资源文件,为每个资源文件分配一个自定义命名空间,然后在视图中引用该命名空间以获得适当的内容。例如,我有两个名为 Customer1.index.resx 和 Customer2.index.resx 的资源文件。这些文件包含每个客户的英文翻译。Customer1.index.resx 正在使用 Customer1.Translation 的命名空间,而 Customer2.index.resx 正在使用 Customer2.Translation 的命名空间。
索引视图中可能有一个名为 lblLogon 的标签。Customer1.index.lblLogon 的值为“UserName”,而 Customer2.index.lblLogon 的值为“Logon ID”。当我使用这些参考中的任何一个时,数据都很好 - 例如
<div>@Customer1.index.lblLogon</div>
输出 -<div>UserName</div>
<div>@Customer2.index.lblLogon</div>
输出 -<div>Logon ID</div>
有没有一种方法可以在身份验证时创建一个“全局”命名空间(称为 Translation),并根据用户的公司成员身份(从身份验证机制返回的数据)将该命名空间映射到 Customer1.Translation 或 Customer2.Translation。那么,我的观点可以只说以下根据公司生成不同的HTML。
<div>@Translation.index.lblLogon</div>
您的帮助将不胜感激。
谢谢史蒂文伍尔斯顿
w: http://www.webdesignwith.net