Internacjonalizacja

Internacjonalizacja to, jak ładnie to definiuje słownik języka polskiego, “uznanie czegoś za międzynarodowe lub stanie się międzynarodowym”. I w największym skrócie o to właśnie chodzi w tym procesie o jakże dumnie brzmiącej nazwie: nasza strona ma stać się dzięki niemu międzynarodowa.

Internacjonalizacja często jest prezentowana jako skrótowiec i18n. Pochodzi on od angielskiego słowa internationalization, w którym zostawiono jedynie pierwszą i ostatnią literę, a resztę zamieniono na liczbę liter pomiędzy tą pierwszą i ostatnią. Brzmi to przekombinowanie i takie też jest.

Lokalizacja

Chyba najczęstszym skojarzeniem, gdy słyszy się frazę “międzynarodowa strona”, jest przetłumaczenie jej na różne języki. I nie da się ukryć, że faktycznie, jest to najważniejszy składnik dobrze zrobionej internacjonalizacji. Tylko bardzo szybko okazuje się, że to nie jest takie proste. Jak zauważa Eric Bailey, dosłowne tłumaczenie nie załatwi sprawy. Bardzo często to, jak powinna wyglądać treść prezentowana osobie użytkowniczej, zależy od kontekstu, w którym występuje. Prosty przykład – weźmy dwa zdania po polsku:

  1. Królowa mieszka w zamku.
  2. Ślusarz otworzył zamek.

Dla osoby, która posługuje się biegle językiem polskim, będzie oczywiste, że w pierwszym przypadku chodzi o budowlę obronną, w drugim – o mechanizm służący do zamykania drzwi. Wskazuje na to właśnie kontekst. W końcu królowa mieszkająca w dziurce od klucza nie ma najmniejszego sensu – no, chyba że właśnie opowiadamy dzieciom bajkę na dobranoc. Ale w tłumaczeniu takie rzeczy trzeba wykrywać i odpowiednio reagować. Jasne, taki “zamek” łatwo zauważyć – tylko że to najprostszy przypadek. W językach jest często bardzo dużo idiomów czy frazeologizmów – rzeczy, których nie da się przetłumaczyć wprost. Polskie “nie zasypiaj gruszek w popiele” przetłumaczone wprost jest tak samo nonsensowne jak angielskie rule of thumb przetłumaczone na polski jako “zasada kciuka”. A jeszcze nie doszliśmy do różnic językowych wynikających z różnic kulturowych. Ot, taki bakłażan: dla osoby z USA to eggplant, dla osoby z Wielkiej Brytanii – aubergine. Niby ten sam język, ale różne słowa.

To wciąż jednak tylko wierzchołek góry lodowej. W końcu języki są na tyle różne, że słowa też mają różną długość. Chyba sztandarowym przykładem w tym zakresie jest język niemiecki, w którym słowa lubią być długie. Weźmy choćby motyla – po niemiecku to Schmetterling. Pięć liter kontra trzynaście, niemal 3 razy więcej. Więc gdzieś trzeba to zmieścić. Ale wciąż poruszamy się wśród języków europejskich, które są w miarę spójne – zarówno pod względem alfabetu, jak i kierunku tekstu. Ale już taki arabski jest pisany od prawej do lewej i w zupełnie innym alfabecie. Języki azjatyckie mogą z kolei być pisane także pionowo.  Do tego dochodzą różne zasady przenoszenia wyrazów do nowej linii, inna interpunkcja, zasady gramatyczne (jak choćby tworzenie liczby mnogiej)… A skoro nasza aplikacja ma być międzynarodowa, to powinna sobie z tym radzić.

Tutaj, na szczęście, z pomocą przychodzą nowoczesne technologie sieciowe. CSS ma całkiem dobre wsparcie dla wielu języków. Niemniej żeby CSS mógł sobie poradzić z poprawnym renderowaniem treści w różnych językach, ktoś tę treść musi mimo wszystko przygotować.

Nie tylko język

Niemniej internacjonalizacja to nie tylko język. Sporo rzeczy wynika także z różnic kulturowych. I często są to rzeczy subtelne i mocno nieoczywiste. Weźmy taki przykład: istnieje sobie pewien kraj, w którym wszyscy posługują się jednym i tym samym językiem. I nagle w wyniku jakiegoś wielkiego wewnętrznego konfliktu kraj rozpada się na dwa mniejsze – A i B. MImo to ludzie w obydwu tych krajach wciąż posługują się tym samym językiem. Dziwnym zbiegiem okoliczności akurat wtedy startuje nasza strona internetowa i ma wersję w tym języku. Tylko że menu wyboru języka używa flag i ten język jest oznaczony flagą kraju A. Chyba już można z dużym prawdopodobieństwem założyć, że biznes w kraju B nie będzie nam szedł za dobrze… Zresztą nie trzeba nawet tak ekstremalnego przykładu. Weźmy choćby angielski – jaka flaga powinna go reprezentować? Kandydatów jest co najmniej kilku. Dlatego zdecydowanie bezpieczniej jest operować na nazwach języków.

A problem umiędzynarodowiania rozciąga się też na kwestie pozajęzykowe. Niejako już memem jest stwierdzenie, że osoby z USA użyją absolutnie wszystkiego jako jednostki, byleby nie użyć systemu metrycznego. I po ostatnim pieczeniu ciasteczek z amerykańskiego przepisu trudno mi się z tym nie zgodzić – wszystko było bowiem podane w szklankach zamiast gramach. Na opakowaniach produktów w USA często można znaleźć wagę w uncjach zamiast gramów i wypadałoby, gdyby nasza aplikacja była w stanie taką subtelność obsłużyć. Tak samo jak amerykański format daty, czyli miesiąc/dzień/rok, np. 02/14/2024 – 14 lutego 2024. Dla kogoś spoza USA taki sposób zapisu daty wydawać się może absurdalny, ale dla osób z USA – jest wręcz naturalny. I skoro chcemy do nich dotrzeć, to wypadałoby się dostosować. A czy wspominałem już o różnych walutach…?

Dotąd zajmowaliśmy się kwestią wyświetlania danych, ale przecież osoby użytkownicze mogą też wprowadzać dane. Wszak Sieć na formularzach stoi! I tutaj też czyha wiele pułapek. Ot, choćby wspomniany już format daty – fajnie byłoby, gdyby osoba użytkownicza była w stanie wpisać ją w formacie, którego używa na co dzień. Albo pola na imię i nazwisko. Czy aby jesteśmy pewni, że każda osoba użytkownicza będzie miała imię, które ma minimum 3 litery? Tak samo formaty adresów różnią się mocno między poszczególnymi krajami. Być może więc wypada walidować nieco mniej ostro.

Internacjonalizacja to nie jest prosty temat, dlatego warto w tym względzie zdać się na osoby profesjonalnie się tym zajmujące. A takimi najczęściej są… osoby posługujące się danym językiem jako swoim pierwszym, które są mocno zanurzone w danej kulturze. Innymi słowy: internacjonalizacja bardzo się lubi z inkluzywnym designem.

Źródła

Dodatkowe materiały