mi2-warsaw / CzasDojazdu

https://hub.docker.com/r/marcinkosinski/czasdojazdu/builds/
5 stars 1 forks source link

Wielojęzyczna aplikacja #35

Closed krzyslom closed 7 years ago

krzyslom commented 7 years ago

Efektywniej będzie utrzymywać jedną aplikację, do której ładowany będzie plik JSON z tłumaczeniem. Nowa wersja znajduje się w folderze app. W środku są skrypty do tworzenia plików JSON oraz folder lang, w którym leżą te drugie.

Obecnie problem obejmuje wczytywanie kodu z plików znajdujących się w folderze elements w taki sposób, aby dynamicznie, po wybraniu języka z menu, zostało załadowane odpowiednie tłumacznie. Dodatkowo we wszystkich plikach dashboard nie powinny być ładowane dane (powinien wystarczyć raz w app.R).

krzyslom commented 7 years ago

Najnowsza wersja aplikacji znajduje się już na serwerze. Obecnie można zmienić język w menu po lewej. UI zostaje wtedy wyrenderowane ponownie.

W folderze app/ znajdują się pliki z pomocniczymi funkcjami oraz szablonami do tworzenia nowych tłumaczeń. W podfolderze lang znajdują się wygenerowane za ich pomocą pliki json z tłumaczeniem UI. Wraz z nimi przebywają tłumaczenia do DataTable.

W folderze app/templates znajdują się pliki z szablonami pomagające stworzyć nowe pozycje w menu. W folderach app/header/ oraz app/sidebar/ znajdują się już wygenerowane pliki json. Niestety obiektów menuItem w sidebar nie można zasilić listą argumentów z elementami menuSubItem. Dlatego struktura pliku dashboardSidebar.R wciąż jest "oryginalna" (w przeciwieństwie do pliku dashboardHeader.R, gdzie można z powodzeniem wykorzystać funkcję do.call).