Wiele języków w ASP.NET aplikacja MVC?
Jaki jest najlepszy sposób obsługi wielu języków interfejsu w ASP.NET aplikacja MVC? Widziałem, jak ludzie używają plików zasobów do innych aplikacji. Czy to nadal najlepszy sposób?
6 answers
Jeśli używasz domyślnych silników widoków, wtedy lokalne zasoby działają w widokach. Jeśli jednak chcesz pobrać ciągi zasobów w ramach akcji kontrolera, nie możesz uzyskać zasobów lokalnych i musisz użyć zasobów globalnych.
Ma to sens, gdy o tym pomyślisz, ponieważ zasoby lokalne są lokalne dla strony aspx, a w kontrolerze nawet nie wybrałeś widoku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-07 03:04:04
Znalazłem ten zasób jest bardzo pomocny
Jest owijarką wokół HttpContext.Aktualne.GetGlobalResourceString i HttpContext.Aktualne.GetLocalResourceString , który pozwala na wywołanie zasobów w ten sposób...
// default global resource
Html.Resource("GlobalResource, ResourceName")
// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")
// default local resource
Html.Resource("ResourceName")
// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")
Jedyny problem jaki znalazłem to to, że kontrolery nie mają dostępu do lokalnych łańcuchów resouce.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-18 12:17:17
Tak zasoby są nadal najlepszym sposobem na obsługę wielu języków w środowisku. NET. Ponieważ są łatwe do odwołania i jeszcze łatwiejsze do dodania nowych języków.
Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...
Więc masz rację nadal używać plików zasobów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-06 21:48:20
Projekt Orchard używa metody skrótu o nazwie "T" do wykonywania wszystkich tłumaczeń ciągów na stronie. Więc zobaczysz tagi z @T ("ciąg do przetłumaczenia").
Zamierzam przyjrzeć się, jak to jest realizowane za kulisami i potencjalnie wykorzystać go w przyszłych projektach. Skrócona nazwa zachowuje czystość kodu, ponieważ będzie on używany dużo .
To, co lubię w tym podejściu, to oryginalny ciąg znaków (w tym przypadku angielski) jest nadal łatwo widoczny w kodzie i nie wymaga wyszukaj w narzędziu zasobów lub w innej lokalizacji, aby zdekodować, jaki powinien być rzeczywisty ciąg znaków.
Zobacz http://orchardproject.net aby uzyskać więcej informacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-13 18:44:31
Niektóre z innych rozwiązań wymienionych jako answer Nie działają dla wydanej wersji MVC (współpracowały z poprzednimi wersjami alpha/beta).
Oto dobry artykuł opisujący sposób implementacji lokalizacji, która będzie mocno wpisana i nie złamie testów jednostkowych kontrolerów i widoków: localization guide for MVC v1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-09 14:24:50
Jest to kolejna opcja, a w kontrolerze będziesz miał dostęp do bieżącej informacji:
Sprawdź MVC3-multi-language
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-29 05:59:27