Gem Globalize

Witam,

Mam pewien problem z tym gemem Globalize (wersja 4.0.2) - mianowicie mam 2 tłumaczenia w bazie danych. Chciałbym mieć możliwość edycji tych tłumaczeń i tu pojawia się mój problem. Gdy próbuję w widoku wyświetlić te tłumaczenia przykładowo w taki sposób:

<% @examples.each do |e| %><%= e.example %>, <% end %>

Gdzie:

@examples = Example.with_translations

To wyświetlają mi się powielone tłumaczenia z aktualnie używanego języka. Przykładowo mam takie tłumaczenia:

polski, angielski

Wyświetla mi się to:

 polski, polski

A powinno wyświetlać się to:

 polski, angielski

To się dzieje, gdy mam ustawiony język polski (:pl). Z kolei jak ustawię język angielski (:en) to wyświetla mi się to:

angielski, angielski

W jaki sposób wyświetlić wszystkie tłumaczenia bez względu na to, który język jest aktualnie używany. Trochę się z tym już męczę i byłbym wdzięczny za rozwiązanie tego problemu.

Pozdrawiam,
brando.

sprawdź gem batch_translations - chyba tego szukasz

1 Like

Lub gem https://github.com/globalize/globalize-accessors

1 Like

@brando dokładnie tak jak pisze @qrooel jeśli chcesz jednocześnie wyświetlać tłumaczenia dla kilku języków, to chyba dobrym wyjściem jest wykorzystanie globalize-accessors

2 Likes

Dzięki wszystkim za odpowiedzi - użyłem gemu globalize-accessors i wszystko działa jak należy :slight_smile:

1 Like

A czy jest możliwość walidacji tłumaczonych wartości, czyli np. dla pola title walidacja title_pl, title_en itd.? Próbowałem to osiągnąć gemem globalize-validations, ale nie zauważyłem, aby była możliwość ustalenia np. że pole title ma minimalną długość 2, musi wystąpić itd.

można to zrobić na przykład tak:

class Post
  I18n.available_locales.each do |locale|
    validates "title_#{locale}", presence: true
  end
end

ale to zapewne nie jedyne rozwiązanie i pewnie znajdą się lepsze.

1 Like