2008-10-10 16 views
117

Jaki jest najlepszy sposób na zlokalizowanie aplikacji ASP.NET MVC?Jak zlokalizować aplikację ASP.NET MVC?

Chciałbym objąć dwie sytuacje: wdrażanie

  • jednej aplikacji w IIS, który będzie obsługiwać wiele języków
  • jeden wdrażania języka/aplikacji.

W pierwszej sytuacji powinieneś pójść z jakimś widokiem opartym na widoku, takim jak ~/View/EN, ~/View/FI, ~/View/SWE lub coś innego?

Co z drugim przypadkiem, po prostu konfiguracja oparta na aplikacji za pomocą narzędzia Web.config i skierowanie tych różnych języków do różnych adresów URL?

+0

Alternatywnie do powielonych widoków, można użyć standardowych plików ResX do przechowywania łańcuchów specyficznych dla kultury. Niestety, zarządzanie i edycja tych plików, szczególnie przez tłumaczy, jest trochę niewygodna i trudna. Można go uprościć, przechowując zasoby w bazie danych i korzystając z zewnętrznego narzędzia lokalizacyjnego. Możesz przejrzeć tę bezpłatną bibliotekę dostarczającą dostawcę zasobów bazy danych: http://globsite.net/GlobsiteGlobalizationLibrary – Kryszal

Odpowiedz

71

można także wziąć tutaj spojrzeć ASP.NET MVC 2 Localization complete guide i ASP.NET MVC 2 Model Validation With Localization te aplecie pomoże, jeśli praca z ASP.NET MVC 2.

+0

Dziękujemy za zaktualizowaną odpowiedź! Rok temu zastosowałem podejście Matta Hawleya, ale wpadłem w poważne problemy z testami jednostkowymi. Próbowałem kpić z kontekstu kontrolera, ale czegoś jeszcze brakowało i dałem sobie spokój. Przejdę przez ten sposób MVC2 i mam nadzieję, że to odkryli. –

+0

Używałem tego podejścia w moich projektach, powinienem powiedzieć, że to podejście jest lepsze. – fyasar

+0

To fantastyczny artykuł - dzięki za publikację. –

22

Lokalizacja aplikacji ASP.NET MVC jest bardzo podobna do klasycznej aplikacji ASP.NET Web Form.

Nie używałbyś różnych stron/widoków dla każdego języka, ale każda strona obsługiwałaby wiele języków za pomocą złożeń satelitarnych.

Możesz zapoznać się z Matt Hawley's blog entry, aby uzyskać więcej wyjaśnień i przykładów.

2

Nigdy nie byłem przekonany o obsłudze lokalizacji w formie, jak sugeruje Eliasz - różne długości i kierunki mogą prowadzić do bardzo skomplikowanych lub zmiennych form patrzenia na zewnątrz.

Dopiero zaczynam od MVC, ale biorąc pod uwagę metodę odłączania, będziesz chciał użyć tego samego kontrolera niezależnie od języka (traktując język tak jak widok) - to dałoby ci wtedy/Controller/Action/language/Formularz

2

Istnieje dobry samouczek z ostatnią aktualizacją dotyczącą lokalizacji aplikacji asp.net mvc obejmującą wszystkie aspekty, w tym lokalizację DisplayName, sprawdzanie poprawności, używanie Routingu (przechowywanie nazwy kultury w adresie URL), problemy z wyjściową pamięcią podręczną i tak dalej ... Alex Adamyan Blog - While my keyboard gently weeps

0

Napisałem ten artykuł jakiś czas temu. Używa niestandardowego mechanizmu wyświetlania. http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/

+1

Podczas gdy twój artykuł może w rzeczywistości odpowiedzieć na pytanie, [byłoby lepiej] (http://meta.stackexchange.com/q/8259), aby dołączyć istotne części odpowiedzi tutaj, i podać link dla odniesienia. Stack Overflow jest tak samo użyteczny jak pytania i odpowiedzi, a jeśli twój blog zostanie przerwany lub twoje adresy URL zostaną poruszone, ta odpowiedź stanie się bezużyteczna. Dzięki! – sarnold

1

Faktycznie udaliśmy się pełna inny z przesłanianie DataAnnotationsMetadaDataProvider. Tam można upewnić się, że wartości DisplayNameAttribute są rozwiązywane na prawidłowy język. Właściwie możesz nawet pozbyć się tego atrybutu i rozwiązać go za pomocą nazw pól, tylko jeśli byłoby to pomocne.