2sxc 中的多语言应用程序 - 一些想法
Multilanguage App in 2sxc - some thoughts
我有一个使用单一语言的 2sxc 应用程序。
我现在需要将它变成一个多语言应用程序,涵盖所有级别:模型、控制器和视图。
2sxc 资源处理最基本的视图内容。但这只是应用程序的 1%。
如何在 database/entity/table 中正确使用两种语言?
一个(很棒的)方法是为每种语言创建一个 "mirror"/copy 实体,并在视图中使用一个简单的 if 子句(如果 lang 是 A,则使用 ent stuffA,否则使用 ent东西B)。由于字段名称相同,因此无需进行更多更改。
我认为正确的方法是复制所需的字段。假设我有实体 Animals,其字段为 animalID 和 animalName。在多语言应用程序中,这将更改为 animalID,animalName_EN,animalName_PT。然而,这将是使用视图的噩梦。对于 animalName 的每次调用,我都需要指定 lang 是其中之一。
一个绝妙的技巧是使用数据库中针对每种语言的查询,但将字段名称从 animalName_EN 更改为 animalName。视图和控制器将只使用该字段的一个版本,不需要更多更改。但我想这不可能吧?
问题是,如何在 table 中正确使用多种语言,而不会在视图和控制器中造成噩梦?
什么都别做! 2sxc 会自动为您完成!说真的——这很简单。只需在 2sxc(在应用程序管理中)中启用其他语言,所有实体立即都是 100% 多语言的。
这是旧的描述(截图很旧)但是原理还是一样的:https://2sxc.org/en/Discover/Multiple-Languages
我有一个使用单一语言的 2sxc 应用程序。 我现在需要将它变成一个多语言应用程序,涵盖所有级别:模型、控制器和视图。
2sxc 资源处理最基本的视图内容。但这只是应用程序的 1%。
如何在 database/entity/table 中正确使用两种语言?
一个(很棒的)方法是为每种语言创建一个 "mirror"/copy 实体,并在视图中使用一个简单的 if 子句(如果 lang 是 A,则使用 ent stuffA,否则使用 ent东西B)。由于字段名称相同,因此无需进行更多更改。
我认为正确的方法是复制所需的字段。假设我有实体 Animals,其字段为 animalID 和 animalName。在多语言应用程序中,这将更改为 animalID,animalName_EN,animalName_PT。然而,这将是使用视图的噩梦。对于 animalName 的每次调用,我都需要指定 lang 是其中之一。
一个绝妙的技巧是使用数据库中针对每种语言的查询,但将字段名称从 animalName_EN 更改为 animalName。视图和控制器将只使用该字段的一个版本,不需要更多更改。但我想这不可能吧?
问题是,如何在 table 中正确使用多种语言,而不会在视图和控制器中造成噩梦?
什么都别做! 2sxc 会自动为您完成!说真的——这很简单。只需在 2sxc(在应用程序管理中)中启用其他语言,所有实体立即都是 100% 多语言的。
这是旧的描述(截图很旧)但是原理还是一样的:https://2sxc.org/en/Discover/Multiple-Languages