Каков наилучший способ локализовать данные, которые поступают из db. Например, имена категорий?Mvc Локализовать значения базы данных
MVC C# .net 4,4.5
Каков наилучший способ локализовать данные, которые поступают из db. Например, имена категорий?Mvc Локализовать значения базы данных
MVC C# .net 4,4.5
Вы должны были бы иметь переведённые значения в базе данных.
Если языков нет и не изменится, вы можете добавить столбец для каждого языка (NameEn, NameEs, NameFr и т. Д.). Kinda идет вразрез с нормализацией правил, но облегчает жизнь.
Другой дб подход будет иметь таблицу, которая хранит все переводы:
Localize
- Field
- Locale
- Translation
Тогда для имени категории вы бы иметь три записи, по одному для каждого языка. Вы просто запрашиваете таблицу по полю и языку.
Довольно распространенный подход - локализовать его через вашу базу данных, создав отдельную таблицу перевода для каждой таблицы с по меньшей мере одним столбцом, который нуждается в локализации. Это то, что мы обычно делаем в наших проектах. Данные базы данных -> локализовать в БД. Строки View/UI -> локализовать в файлах resx.
Взгляните на этот ответ здесь: Good database table design for storing localized versions of data
Edit: В отличие от ссылки мы обычно хранят язык «по умолчанию» в исходной таблице, так что нет необходимости на самом деле есть запись перевода.
Например, если ваша таблица «Категории» содержит столбцы «И» и «Имя» вашей соответствующей таблицы переводов «Категории_Трансляция» может содержать столбцы CategoryId, LanguageCode, Name_Tx, тогда как Name_Tx содержит переведенный текст «Name» на языке «LanguageCode ».
Я думаю, что это не очень хорошо. Но спасибо. Я хочу управлять всеми ресурсами из одного места. Некоторые из них в базе данных, некоторые из них в файле ресурсов. Это сложно. И я думаю, что это не так просто. Например, что вы можете сказать, чтобы использовать файл ресурсов для каждого значения? И как я могу сделать это программно с базовой системой. –