Utrzymywanie dwóch prawie bliźniaczych aplikacji

Hej,

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

http://guides.rubyonrails.org/i18n.html#localized-views

thx :slight_smile:

Pomyśl jeszcze nad takim rozwiązaniem:

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.