Koniec i18n w Brewlogu v3

Ten post został napisany ponad 2 lata temu, do wszystkich porad technologicznych w nim zawartych lepiej będzie podejść z dużą rezerwą, bo bardzo możliwe że tego rodzaju informacje są już nieaktualne.

Opublikowano: 27.07.2020

Ostatnia modyfikacja: 07.02.2024

flask

pcp

programowanie

projekty

python

W Brewlogu v3 zrezygnowałem z obsługi wielu języków. Działała ona dobrze, ale zwiększający się udział Javascriptu w aplikacji postawił pod znakiem zapytania integralność rozwiązania opartego na biliotece Babel, dostosowanej tylko dla Pythona.

Sour

Nie żeby nie istniały rozwiązania i18n dla Javascriptu. Wystarczyło kilka minut, bym znalazł ich kilkanaście. Zdecydowałem się jednak zrezygnować z obsługi i18n i l10n - przynajmniej na razie.

Bibliotek i18n dla Javascriptu jest dużo i żadna nie wydaje się być clear winner, przynajmniej na pierwszy rzut oka. Zanim sprawdzę te kilka najpopularniejszych to trochę czasu jeszcze minie. Tak że trzeba przyznać, że w tej chwili nie wiem jak i18n miałoby być zaimplementowane w JS. To jest raz.

A dwa wynika z tego, co zobaczyłem w danych dotyczących użytkowników. Nie mam ani jednego, który by używał innego locale niż pl_PL, więc wydaje mi się, że nie ma co przesadzać.

Brewlog, jak wszystkie pozostałe moje projekty, służył mi również do nauki. Między innymi dlatego jest (lub było) w nim kilka nieoczywistych rozwiązań, jak np użycie raw SQLAlchemy w aplikacji, a nie przez rozszerzenie Flask-SQLAlchemy. Dlatego również we wcześniejszych wersjach zaimplementowałem w nim pełne i18n. Dopóki wszystkie napisy dało się kontrolować przy użyciu Babel, to i nie było się czym przejmować - jedno źródło skutkowało jednym napisem podczas wyświetlenia. Teraz byłoby to trochę utrudnione.

Dlatego Brewlog v3 jest na razie tylko po polsku. Możliwe że w pewnym momencie rozwoju pojawi się potrzeba, żeby zrobić go aplikacją wielojęzyczną/wielokulturową, ale to wtedy będę się tym martwił. A na razie cieszmy się tym co mamy - usunięcie mechanizmu tłumaczeń zmniejszyło zapotrzebowanie na pamięć procesu serwera o jakieś 10%.