【发布时间】:2019-02-13 21:34:27
【问题描述】:
我有一个使用单一语言的 2sxc 应用程序。 我现在需要把它变成一个多语言应用程序:模型、控制器和视图。
2sxc 资源负责最基本的视图内容。但这只是应用程序的 1%。
如何在数据库/实体/表中正确使用两种语言?
一种(令人敬畏的)方法是为每种语言创建一个“镜像”/复制实体,并在视图中使用一个简单的 if 子句(如果 lang 是 A,则使用 ent stuffA,否则使用 ent stuffB)。由于字段名称相同,因此无需进行更多更改。
我认为正确的方法是复制所需的字段。假设我有具有字段 animalID 和 animalName 的实体 Animals。在多语言应用程序中,这将更改为 animalID、animalName_EN、animalName_PT。然而,使用视图将是一场噩梦。对于每次调用 animalName,我都需要指定 lang 是否是其中一个。
一个巧妙的技巧是对每种语言使用数据库中的查询,但将字段名称从 animalName_EN 更改为 animalName。视图和控制器将只使用该字段的一个版本,并且不需要进行更多更改。但我想这是不可能的吧?
问题是,如何在一个表中正确使用多种语言,而不会在视图和控制器中造成噩梦?
【问题讨论】:
标签: dotnetnuke 2sxc