Я настроил приложение, чтобы содержимое считывалось из разных файлов RESX в соответствии с шаблоном, который распознает маршрутизатор. Каждая страница доступна на определенном языке в зависимости от первой части URL-адреса.Как обрабатывать несколько языков в приложении MVC?
routes.MapRoute(
name: "Localization",
url: "{lang}/{controller}/{action}/{id}", ...
);
Когда я проверяю, не спецификации, я получаю в английской версии моих Lingo.REXS и когда я ставлю в таковой, я получаю в шведской версии, т.е. Lingo.se.RESX. Все в порядке.
Однако я не уверен, как разрешить пользователю управлять настройкой языка. Я не хочу, чтобы он был автоматическим и не предполагался на основе настроек браузера, геоданных и т. Д. Я в основном хочу, чтобы три флажка (элементы управления img) каким-то магическим способом установили, что пользователь (или, по крайней мере, этот сеанс браузера) должен быть маршрутизируемым с префиксом, соответствующим языку щелкнутого флага.
Итак, у нас есть/se/Home/About and/ge/Home/About. Пользователь нажимает на флаг Германии - как мы направляем их к последнему? И если они нажмут на шведский флаг - как мы будем направлять их на первый?
Я проверил с this blog, но он не затрагивает фактическую проблему с тем, как маршрутизировать на определенный язык в зависимости от щелкнутого изображения флага. Я также нашел this blog, но я просто не понимаю, как они это делают. Я вижу кучу звонков в БД, поэтому я подозреваю, что это не основано на файлах RESX (и я понимаю, что это правильный путь), хотя есть также ссылка на @TestResource.
Прямо сейчас я смущен и неопределен. Любые предложения или разъяснения?
Хм ... Я признаю прозорливость ваших ответов, так что (теперь, что сосание вверх поставляется) Интересно, если вы имеете в виду, что я сделал слишком много, реализовав специальный атрибут маршрута и локализации. Вы говорите, что мне нужно только установить связь с культурой для трех языков где-то в * _Layout.cshtml *, и как только пользователь щелкнет там (следовательно, выбрав культуру), он будет жить? Это не может быть так просто ... Не так ли? –
Да, это правильно. Это так просто.Но это зависит от того, существует ли маршрут для соответствия стоимости маршрута (который вы указали в своем вопросе). См. Мой ответ на вопрос, как обращаться с языком по умолчанию. – NightOwl888
Это ужасно. Это похоже на ошибку (в этом случае это очень полезно), но глупая повторная маршрутизация обрабатывает только суффикс ** после ** второй косой черты. Замечательно! Благодарю. –