Как лучше сделать многоязычность в приложении? На данный момент использую файлы ресурсов и там перевожу нужные мне слова на разные языки, но для длинного текста делать это неудобно. Я прочитал, что есть несколько способов реализации многоязычности:
View
.Я хочу использовать 3 вариант.
Вопрос: Как правильно выводить нужный View
, если выбранный язык хранится в Cookies
? И как быть с новостями, они у меня хранятся в БД на английском. Надо делать другую таблицу для новостей на русском?
В asp.net mvc 5 настроить зависимость view от контекста запроса (в том числе и от cookie) можно через DisplayModeProvider в файле Global.asax
protected void Application_Start()
{
RegisterLanguageDisplayModeProvider("Ru");
RegisterLanguageDisplayModeProvider("En");
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void RegisterLanguageDisplayModeProvider(string languageName)
{
DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode(languageName)
{
ContextCondition = context => context.Request.Cookies["Language"] != null && context.Request.Cookies["Language"].Value.ToString() == languageName
});
}
Теперь в названиях разных версий view можно указывать Ru.ViewName.cshtml En.ViewName.cshtml. Это же работает и для layout-ов
По поводу дизайна базы данных есть хорошая статья. Там используется MySql, но подходы спокойно применяются и для MsSql
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как подключиться, читать и писать сообщения в телеграме, но через свою программу, только используя телеграм api?
Я вот недавно учил js и различные его проявления ,и вот теперь решил усиленно учить c# , вопрос, как не забывать при этом уже выученное по js, не путаться...
В C#, начиная с версии 60, метод, который только возвращает значение:
Организовал связь один к одному между двумя таблицами базы данных, одна таблица Users, вторая UserProfilesМодели следущие: