Internacjonalizacja
Internacjonalizacja (ang. internationalization, w skrócie i18n
) to proces przygotowania aplikacji do obsługi różnych języków i regionów. Dzięki internacjonalizacji możemy tworzyć aplikacje, które są dostępne i użyteczne dla użytkowników na całym świecie.
Internacjonalizacja to nie tylko tłumaczenie tekstów, ale również dostosowanie całej aplikacji (lub w naszym przypadku komponentów) do różnych kulturowych kontekstów użytkowników.
Podstawowe zasady internacjonalizacji:
Rozdzielanie treści od kodu
Wszystkie teksty, komunikaty i etykiety powinny być oddzielone od kodu aplikacji. Zamiast wstawiać teksty bezpośrednio w kodzie, przechowujemy je w plikach językowych (np. plikach json
), co ułatwia ich tłumaczenie i zarządzanie. W zależności od użytych bibliotek, nasze komponenty powinny brać to pod uwagę.
Używanie bibliotek do internacjonalizacji
Istnieje wiele bibliotek, które ułatwiają proces internacjonalizacji w aplikacjach React. Popularne opcje to formatjs, i18next i react-i18next.
Samodzielna implementacja tego rodzaju rozwiązania jest dość trudna i czasochłonna, więc warto skorzystać tutaj z gotowców.
Obsługa wielu języków
Aplikacja powinna być przygotowana do obsługi wielu języków. Oznacza to, że użytkownik powinien mieć możliwość wyboru języka, a aplikacja powinna dynamicznie ładować odpowiednie tłumaczenia.
Formatowanie dat, liczb i walut
Różne języki i regiony mają różne formaty dat, liczb i walut. Biblioteki takie jak react-intl
oferują funkcje do formatowania tych wartości zgodnie z lokalnymi standardami. Nie zawsze jednak trzeba sięgać po zewnętrzne biblioteki. Przeglądarki posiadają również bardzo pomocne API o nazwie Intl.
Internacjonalizacja (i18n
) vs. Lokalizacja (l10n
)
Internacjonalizacja (i18n
) i lokalizacja (l10n
) to dwa powiązane, ale różne i często mylone pojęcia, które pozwalają nam tworzyć aplikacje dostępne dla użytkowników na całym świecie.
Internacjonalizacja to proces przygotowania aplikacji do obsługi różnych języków i regionów. To trochę jak budowanie fundamentów domu, które umożliwiają późniejsze dostosowanie aplikacji do konkretnych języków i kultur.
Internacjonalizacja obejmuje:
- Tworzenie struktury: Zorganizowanie aplikacji tak, aby mogła obsługiwać różne języki (np. przez użycie plików tłumaczeń).
- Usunięcie barier językowych: Oddzielenie tekstu od kodu, aby teksty mogły być łatwo tłumaczone.
- Obsługa formatów: Przygotowanie aplikacji do pracy z różnymi formatami dat, liczb, walut itp.
Lokalizacja to proces dostosowania internacjonalizowanej aplikacji do konkretnego języka i kultury. To jak dekorowanie wspomnianego już wcześniej, ale tym razem wybudowanego domu.
Lokalizacja obejmuje:
- Tłumaczenie tekstów: Przetłumaczenie wszystkich widocznych tekstów na dany język.
- Dostosowanie formatów: Użycie odpowiednich formatów dat, liczb, walut zgodnie z lokalnymi standardami.
- Kulturowe dostosowanie: Uwzględnienie lokalnych zwyczajów, symboli, kolorów itp.
Przykładem może tutaj być przetłumaczenie przycisku Submit
na Wyślij
w polskiej wersji aplikacji oraz dostosowanie formatu daty na dd.mm.rrrr
zamiast mm/dd/yyyy
.
Podsumowanie różnic
- Internacjonalizacja (
i18n
): Przygotowanie aplikacji do obsługi różnych języków i regionów. To proces techniczny, który tworzy strukturę umożliwiającą późniejszą lokalizację. - Lokalizacja (
l10n
): Dostosowanie internacjonalizowanej aplikacji do konkretnego języka i kultury. To proces dostosowywania treści i formatów, aby były one zgodne z lokalnymi oczekiwaniami użytkowników.