我有一个工作的2sxc应用程序与单一的语言。我现在需要把它变成一个所有级别的多语言应用程序:模型,控制器和视图。
2sxc资源负责最基本的视图内容。但这只占应用程序的1%。
如何在数据库/实体/表中正确使用两种语言?
一种(awefull)方法是为每种语言创建一个“镜像”/copy实体,并在视图中使用一个简单的if子句(如果lang是A,则使用ent stuffA,否则使用ent stuffB)。由于字段名称将是相同的,因此不需要进行更多更改。
我认为正确的方法是复制所需的字段。假设我有实体动物,其字段分别为animalID和animalName。在多语言应用程序中,这将更改为animalID,animalName_EN,animalName_PT。然而,这将是使用视图的噩梦。对于animalName的每次调用,我都需要指定lang是其中之一还是另一个。
一个不错的技巧是对每种语言使用数据库中的查询,但是将字段名称从animalName_EN更改为animalName。视图和控制器将只使用字段的一个版本,并且不需要更多的更改。但我想这是不可能的,对吧?
问题是,我如何在一个表中正确地使用多种语言,而不会在视图和控制器中造成噩梦?
发布于 2019-02-14 15:58:37
什么都不要做!2sxc会自动为你做!说真的,这是不需要动脑筋的。只需在2sxc中启用额外的语言(在apps-management中),所有实体立即都是100%多语言的。
这里是旧的描述(屏幕截图很旧),但原理仍然是一样的:https://2sxc.org/en/Discover/Multiple-Languages
https://stackoverflow.com/questions/54679796
复制相似问题