Internacjonalizacja


Opis

Aplikacja jDesigner posiada zaawansowany mechanizm wsparcia internacjonalizacji. Można dzięki niemu w łatwy sposób w trakcie pisania kodu dodać nowe tłumaczenie do słownika i stawić fragment kodu, który w miejscu wywołania wstawi funkcję generującą odpowiednie tłumaczenie.

Funkcjonalność mechanizmu wsparcia internacjonalizacji realizuje okno internacjonalizacji:

Wywołanie

Wywołanie mechanizmu internacjonalizacji jest proste. W miejscu, gdzie ma być wstawiony String reprezentujący tłumaczenie należy wywołać okno internacjonalizacji. Można to zrobić na dwa sposoby:

  1. Klikając na ikonę Internacjonalizacji w dolnym pasku edytora
  2. Używając skrótu klawiszowego internacjonalizacji (domyślnie Ctrl + I)

Po wypełnieniu odpowiednich pól w oknie i zatwierdzeniu zmian do słownika automatycznie zostaną dopisane nowe tłumaczenia, a w kodzie zostanie wstawiona odpowiednia funkcja z modulu lang zwracajaca odpowiednie, nowe tłumaczenia.

Użycie fragmentu tekstu

Mechanizm internacjonalizacji pozwala używać fragmentów tekstów w tłumaczeniach, przez co w łatwy sposób można modyfikować kod dodając do niego internacjonalizację.

Aby użyć fragment tekstu do internacjonalizacji należy przed wywołaniem okna zaznaczyć fragment tekstu który ma zostać zastąpiony tłumaczeniem (a nie jedynie ustawić kursor w miejscu, w którym chcieliśmy wstawić tłumaczenie) i wywołać okno internacjonalizacji jak to zostało opisane wyżej.

Zaznaczony tekst jest automatycznie wychwytywany przez aplikację jDesigner i jedyne co trzeba zrobić, to z listy języków wybrać obecny język - czyli język w którym jest zaznaczony fragment. Automatycznie zostanie to zapamiętane i przy kolejnych wywołaniach wybrany język będzie domyślnie wybrany. W momencie wybrania języka zaznaczony fragment tekstu jest kopiowany jako tłumaczenie w tym języku w dolnej sekcji, gdzie definiujemy tłumaczenia w kolejnych językach. Tam też istnieje możliwość edycji tego fragmentu.

Po zamknięciu okna internacjonalizacji zaznaczony fragment tekstu jest zastępowany odpowiadającym mu tłumaczeniem automatycznie.

Przegląd tłumaczeń

W oknie internacjonalizacji istnieje możliwość przeglądu zdefiniowanych tłumaczeń i użycie ich zamiast tworzenie nowych.

Zdefiniowane tłumaczenia widzimy w tabeli tłumaczeń. W zależności od wybranej opcji w tabeli widzimy wszystkie tłumaczenia zgodne co do klucza z zaznaczonym w momencie wywołania tekstem, bądź wszystkie tłumaczenia z wybranej kategorii (nie muszą być zgodne z zaznaczonym tekstem).

Dwukrotne kliknięcie w wierszu tabeli kopiuje wybrane tłumaczenia do pól poniżej definiujących odpowiednie dla języków tłumaczenia , natomiast trzykrotne kliknięcie na wiersz zamyka okno i wstawia do kodu wybrane tłumaczenie.

 


Wybrane tłumaczenia

Głównym elementem okna internacjonalizacji jest sekcja "Wybrane tłumaczenia". Można tutaj definiować, klucze tłumaczeń oraz jak ma być reprezentowany klucz w poszczególnych językach.

Oprócz klucza tłumaczeń oraz tłumaczeń w poszczególnych językach należy dodatkowo wybrać kategorię do której ma zostać przypisane tworzone tłumaczenie. Przycisk "Pobierz" pobiera kod aktywnego obiektu i wstawia go, jako kod kategorii. Dodatkowo za pomocą opcji "Dołącz kategorię" można zdecydować, czy wstawiana funkcja tłumaczenia ma posiadać dodatkowo kategorię, czy nie. Domyślnie po pobraniu kodu obiektu jest odznaczana ta opcja - domyślnie i tak jako kategoria zostanie użyty kod obiektu, dlatego dopisywanie go jako parametr jest zbędne.

Ciekawą funkcją tej sekcji jest także kopiowanie klucza jako jedno z tłumaczeń. Wystarczy z listy obok pola klucza wybrać język w którym jest napisany klucz i użyć przycisku "Kopiuj". Automatycznie klucz zostanie skopiowany jako tłumaczenie w wybranej kategorii. Warto zauważyć, że jeśli klucz jest napisany zgodnie z konwencją Camel Case (słowa nie są oddzielane spacjami ale zaczynają się wielkimi literami) aplikacja automatycznie to zdekoduje i wstawi w miejsce tłumaczeń słowa oddzielone spacjami.

Jeśli, przy tworzeniu tłumaczenia podamy klucz, który istnieje już w bazie, ramka wokół pola klucza będzie świecić się na czerwono. Wstawione w ten sposób tłumaczenie nadpisze stare, już istniejące, tłumaczenie. W przeciwnym przypadku ramka klucza będzie się świecić na zielono - znaczy to, że nie istnieje jeszcze tłumaczenie z tym kluczem.

Transformacja

Na samym dole okna widnieje podgląd kodu, jaki zostanie wstawiony do kodu po zamknięciu okna internacjonalizacji. Można oprócz wstawienie funkcji, która będzie zwracała tłumaczenie możliwe jest tutaj ustawienie transformacji, jakiej ma podlegać obiekt tłumaczenia, np. czy ma być reprezentowany jedynie wielkimi literami, czy może tylko z dużych liter itd... Aby zastosować transformację należy wybrać odpowiednią opcję z listy.