2013-03-06 2 views

ответ

2

Вы должны были бы иметь переведённые значения в базе данных.

Если языков нет и не изменится, вы можете добавить столбец для каждого языка (NameEn, NameEs, NameFr и т. Д.). Kinda идет вразрез с нормализацией правил, но облегчает жизнь.

Другой дб подход будет иметь таблицу, которая хранит все переводы:

Localize 
- Field 
- Locale 
- Translation 

Тогда для имени категории вы бы иметь три записи, по одному для каждого языка. Вы просто запрашиваете таблицу по полю и языку.

+0

Я думаю, что это не очень хорошо. Но спасибо. Я хочу управлять всеми ресурсами из одного места. Некоторые из них в базе данных, некоторые из них в файле ресурсов. Это сложно. И я думаю, что это не так просто. Например, что вы можете сказать, чтобы использовать файл ресурсов для каждого значения? И как я могу сделать это программно с базовой системой. –

1

Довольно распространенный подход - локализовать его через вашу базу данных, создав отдельную таблицу перевода для каждой таблицы с по меньшей мере одним столбцом, который нуждается в локализации. Это то, что мы обычно делаем в наших проектах. Данные базы данных -> локализовать в БД. Строки View/UI -> локализовать в файлах resx.

Взгляните на этот ответ здесь: Good database table design for storing localized versions of data

Edit: В отличие от ссылки мы обычно хранят язык «по умолчанию» в исходной таблице, так что нет необходимости на самом деле есть запись перевода.

Например, если ваша таблица «Категории» содержит столбцы «И» и «Имя» вашей соответствующей таблицы переводов «Категории_Трансляция» может содержать столбцы CategoryId, LanguageCode, Name_Tx, тогда как Name_Tx содержит переведенный текст «Name» на языке «LanguageCode ».

Смежные вопросы