załóżmy, że mamy pewną aplikację o średniej złożoności. Potrzebuje utworzyć praktycznie jej kopię dla innego locale, ale:
z zupełnie innym layoutem
kilku drobnych rzeczy ma nie być widać (np facebook likebox ma zniknąć, niektóre zewnętrzne linki) - raczej kosmetyka
kilka drobnych rzeczy ma się pojawić (również zewnętrzne urle, i inne drobiazgi które wpływają tylko na widoki)
I teraz zastanawiam się jak to rozwiązać. Dałoby się na pewno ustawić inne cssy ze względu na locale, oczywiście same translacje itd. Ale chciałbym uniknąć kodu typu:
[code=ruby]- if wersja_polska
= likebox
…
if wersja_angielska
= costam[/code]
w sumie można i tak, ale jak pojawi się kolejne locale będzie kiszka
zastanawiam sie jeszcze czy nie zrobic oddzielnej gałęzi na gicie
if feature_enabled_for_locale?("facebook_like", current_locale)
...
end
W jakimś konfigu definiujesz sobie odpowiednio, że dany język x ma włączone/wyłączone jakieś ficzery.
Osobne szablony dla każdego języka to najgorsze z możliwych rozwiązań. Osobne gałęzie to już w ogóle zła droga.
+1 dla rozwiązania radarka, wszystkie inne, które znam po dłuższym czasie robią się bardzo ciężkie w utrzymaniu.
I jak później klient przyjdzie i powie: “no… to może dorzucimy jeszcze jeden język”, to będzie wystarczyło odpowiednio wszystko ustawić i dodać tłumaczenia, zamiast kopiować pińcet widoków.