PizzaMVC - lokalizowanie zasobów
A miało być tak pięknie… Po świętach miałem zrobić proste zadanie i od razu napisać o tym krótkiego posta. No, ale nieco poległem na dość prostym zadaniu - lokalizacji aplikacji. Tzn. lokalizacja aplikacji była prosta, problemy się narodziły przy lokalizowaniu komunikatów o błędach oraz debugowaniu System.Web.Mvc.dll
. Ale o tym będą inne posty, o ile wcześniej nie zwariuję.
Nic niezwykłego
A teraz króciutko o lokalizacji napisów GUI w PizzaMVC. Użyłem do tego standardowego w .NET mechanizmu zasobów przechowywanych w plikach resx. W Warszawie i Łowiczu na nie narzekają, ale że ja nie stamtąd, to jak na razie mi wystarczają. :P Tworzenie plików jest proste, to że trzeba dodać sufiks z kodem kultury (np. pl-PL
), aby zasoby zostały wczytane dla innych ustawień regionalnych dość intuicyjne. Najtrudniejsze jest oczywiście nazywanie zasobów, tak aby nie stworzyć bałaganu.
Po przemyśleniach zdecydowałem się podzielić zasoby na rodzaje, które odróżniam za pomocą prefiksów. (Odrobina notacji węgierskiej nikomu przecież jeszcze nie zaszkodziła. ;)) Moje prefiksy to:
Prefiks | Opis |
---|---|
DialogButton | przycisk okna dialogowego |
Dialog | tekst na oknie dialogowym |
Editor | element formularza edycji |
FormButton | przycisk formularza |
GridButton | przycisk umiesczony wewnątrz grida |
GridSearch | element wyszukiwarki grida |
LoginPage | tekst na domyślnym widoku logowania |
ChangePassword | tekst na domyślnym widoku zmiany hasła |
ViewTitle | domyślny tytuł widoku |
Link | globalny link |
Nie mówię, że są idealne, ale takie będą do odwołania.
Gotowy plik zasobów wygląda tak:
Ale to nie wszystko
Mając już zlokalizowane teksty elementów GUI, wziąłem się za lokalizowanie domyślnych komunikatów błedów ASP.NET MVC. Okazało się to na tyle skomplikowane, że w końcu wydzieliłem z tego oddzielne issue na GitHubie. Mam zamiar niebawem je skończyć i opisać.