Создание переключателя языков - только 2 языка - ASP.NET MVC
Приложение ASP.NET MVC было близко к завершению, после чего было решено, что ему нужен переключатель языка. Это будут просто два языка: английский и японский. Они должны иметь возможность переключаться между двумя, но если один не выбран, он должен выбрать тот, который является языком браузера по умолчанию.
Мне интересно, каким будет лучшее решение в этом случае.
First thought, маршруты! Поэтому я меняю маршруты, чтобы иметь/{l}
в конце каждого маршрута, и по умолчаниюl = ""
, Затем в моем BaseController (каждый контроллер основан на нем), я проверяю переменную l в маршруте. Каждое действие возвращает представление на основе языка.
Я хотел просто иметь возможность взломать / ja-jp в конце URL, и это показало бы представление на японском языке. Похоже, что это не совсем правильно. Затем я был очень плох в своих взглядах и вручную кодировал ссылки ... Я не мог заставить помощника сначала выводить нужные ссылки ... и у меня появилась плохая привычка вручную кодировать их. Таким образом, мне придется заново перекодировать каждую ссылку - чтобы взломать языковую переменную в конце.
Second thought... хорошо, используйте jQuery, чтобы добавить языковую переменную ко всем ссылкам якоря. Это кажется чрезмерно неуклюжим и трудным в определенных ситуациях, когда ссылки скрыты до тех пор, пока они не понадобятся и т. Д.
Итак ... на данный момент я решил просто сделать все, что нужно. Какой самый элегантный способ переключения между двумя языками - без использования файлов ресурсов? Я просто хочу, чтобы действие выбирало между двумя представлениями, основанными на языке.
Переписываю ли я каждую ссылку, чтобы использовать Html-помощник, а затем заставляю работать маршруты? Тогда в BaseController просто установите язык на английский, если их значение не имеет?
Любой совет высоко ценится, спасибо.