Budowanie przełącznika języków - tylko 2 języki - ASP.NET MVC

Aplikacja ASP.NET MVC, bliska ukończenia, zdecydowano, że potrzebny jest przełącznik językowy. Będą to po prostu dwa języki: angielski i japoński. Powinni być w stanie przełączać się między nimi, ale jeśli nie jest wybrany, powinien wybrać domyślny język przeglądarki.

Zastanawiam się, jakie byłoby najlepsze rozwiązanie w tym przypadku.

Pierwsza myśl, trasy! Więc zmieniam trasy, aby mieć/{l} na końcu każdej trasy i domyślniel = "". Następnie w moim BaseControllerze (każdy kontroler jest od niego oparty) sprawdzam zmienną l na trasie. Każda akcja zwraca widok oparty na języku.

Chciałem po prostu móc włamać się / ja-jp na końcu adresu URL, a to pokazałoby widok w języku japońskim. Wydawało się, że nie kieruje się prawidłowo. Wtedy byłem naprawdę zły w moich widokach i ręcznie zakodowałem linki ... Nie mogłem całkiem sprawić, że helper najpierw wypisał odpowiednie linki ... i wpadł w zły nawyk ręcznego kodowania ich. Więc musiałbym ponownie zakodować każdy link - aby zhakować zmienną języka na końcu.

Druga myśl... ok, użyj jQuery, aby dodać zmienną języka do wszystkich href kotwicy. Wydaje się to nadmiernie niezdarne i trudne w pewnych sytuacjach, gdy hrefs są ukryte, dopóki nie będą potrzebne, itd ...

Więc ... w tym momencie postanowiłem zrobić wszystko, co trzeba. Jaki jest najbardziej elegancki sposób przełączania między dwoma językami - bez korzystania z plików zasobów? Po prostu chcę, aby akcja wybierała między 2 widokami, w oparciu o język.

Czy przepisuję każdy link, który muszę użyć pomocnika HTML, a następnie uruchomię trasy? Następnie w BaseController ustaw język na angielski, jeśli nie ma wartości?

Każda rada jest bardzo ceniona, dziękuję.

questionAnswers(3)

yourAnswerToTheQuestion