Я занимаюсь разработкой ASP. NET Core MVC приложения и мне нужно разработать многоязычные значения для сущностей. Существует много информации о том, как поддерживать локализацию на страницах пользовательского интерфейса с помощью .resx. Я ищу какой-то общий шаблон поддержки локализации для объектов (не для содержимого stati c на веб-странице), который может редактировать пользователь.
Допустим, в таблице базы данных есть простой словарь со статусами
Id Name
----------------------------------------------
1 Not processed
2 To be cancelled
3 To be corrected
4 Processed
5 Rejected
Пользователь может создать новый статус или добавить перевод для другого языка. Вопрос в том, как создавать таблицы и как хранить переводы для других языков?
Пока у меня есть несколько подходов
1) создать таблицу Languages
со всеми поддерживаемыми языками. Создайте таблицу Translations
Id LanguageId Key Value
------------------------------------------------
1 en NotProcessed Not processed
2 pl NotProcessed Nie przetworzony
3 de NotProcessed Nicht verarbeitet
4 en ToBeCancelled To be cancelled
5 de ToBeCancelled Zu stornieren
, в которой таблица состояния будет
Id Name TranslationKey
----------------------------------------------
1 Not processed NotProcessed
2 To be cancelled ToBeCancelled
, затем с помощью соответствующего языка выберите надлежащие переводы, которые будут показываться пользователю.
2) не создавайте таблицу переводов, но добавьте столбец
Id Name Translations
----------------------------------------------
1 Not processed en:Not processed;pl:Nie przetworzony;de:Nicht verarbeitet
2 To be cancelled en:To be cancelled;de:Zu stornieren
Что вы думаете об этом? Я не знаю, как сохранить переводы для моих сущностей, может быть, есть несколько надежных способов. Пожалуйста, предложите.