Satellite Assembly – krótkie wprowadenie

Dzisiaj bohaterem mojego posta będzie Satellite Assembly. Jeżeli wiesz co to jest i miałeś już okazję z tego korzystać, to być może Cię rozczaruję, ale nie dowiesz się tutaj nic nowego. Jeżeli jednak jeszcze się z tym nie zetknęliście – zachęcam do krótkiej lektury.

.Net daje nam możliwość zdefiniowania różnych zasobów, w zależności od kultury w kontekście której działa nasza aplikacja. Najczęściej wykorzystywane jest to w aplikacjach wspierających wiele języków. Tworzy się oddzielny zbiór zasobów dla każdej z wspieranych kultur (np. pl-PL, en-US), a następnie wpisuje się tam wszystkie teksty, jakie są używane w aplikacji. W kodzie źródłowym zamiast gotowych tekstów występują odwołania do odpowiednich wartości z zasobów.

Zasób to tak naprawdę plik z rozszerzeniem .resx. Po kompilacji projektu tworzy się z niego oddzielny plik dll. W jego skład mogą wchodzić takie rzeczy jak:

  • string
  • plik
  • zdjęcie
  • ikona
  • dźwięk

Postaram się to przedstawić na bardzo prostym przykładzie. Zbuduję program w stylu Hello world, który w zależności od kontekstu powinien wyświetlić w konsoli „Hello world” lub „Witaj świecie”. Zaczynam od stworzenia nowego projektu w Visual Studio. Następnie klikam prawym przyciskiem myszki na projekcie i dodaję nowy element – Resource file. Nazwa jest dość istotna. Zaczynamy od członu, który będzie identyfikatorem danego zasobu, następnie kropka i identyfikator kultury (np. app.pl-PL.resx). Powtarzam operację, ponieważ chcę mieć wsparcie dla dwóch języków. Po wszystkim mój projekt zawiera dwa nowe pliki:

  • app.pl-PL.resx
  • app.en-US.resx

Przechodzę do edycji obu plików i w każdym z nich dodaję jednego stringa o nazwie ‚hello’ i odpowiedniej wartości.

Teraz kolej na kod źródłowy. Najważniejszy jest tutaj identyfikator zasobu. Bardzo prawdopodobne, że w Twoim przypadku będzie to inna wartość.

Buduję projekt. Warto zaobserwować, że wynik builda jest nieco inny niż zazwyczaj. Pojawiły się dodatkowe foldery dla naszych kultur.

Pozostaje nam teraz przetestować działanie programu. Zmiana języka systemu powinna mieć wpływ na to co zobaczymy na wyjściu w konsoli. Można również zmienić kulturę w kodzie za pomocą takich instrukcji:

To by było na tyle. Mam nadzieję, że udało mi się przedstawić to w jasny sposób. W razie uwag lub wątpliwości zachęcam do dyskusji!

Dodaj komentarz

Twój adres email nie będzie opublikowany. Pola wymagane zostały oznaczone *