У меня есть работающее приложение 2sxc с одним языком.Теперь мне нужно превратить его в мультиязычное приложение на всех уровнях: модель, контроллер и представления. Ресурсы
2sxc позаботятся о самых элементарных элементах представления.Но это только 1% приложения.
Как правильно использовать два языка в базе данных / сущности / таблице?
Один (замечательный) способ сделать это - создать «зеркало»/ копировать сущность для каждого языка и использовать простое условие if в представлении (если lang - A, используйте ent stuffA, иначе используйте ent stuffB).Поскольку имена полей будут одинаковыми, больше никаких изменений не потребуется.
Я думаю, что правильным способом было бы дублировать необходимые поля.Допустим, у меня есть сущность Animals с полями animalID и animalName.В многоязычном приложении это изменится на animalID, animalName_EN, animalName_PT.Это, однако, было бы кошмаром, чтобы использовать представление.Для каждого вызова animalName мне нужно было бы указать, является ли lang одним или другим.
Одна из приятных хитростей заключается в использовании запроса из базы данных для каждого языка, но при изменении имени поля с animalName_ENto animalName.Представление и контроллер будут использовать только одну версию поля, и больше никаких изменений не потребуется.Но я думаю, что это невозможно, верно?
Вопрос в том, как правильно использовать несколько языков в таблице, не вызывая кошмар в представлении и контроллере?