W jaki sposób mogę umiędzynarodowić wypowiedzieć tabelę kategorii (z kolumną z nazwą) na różne języki. Co powiesz na tabelę produktów (składającą się z kolumn nazwy i opisu). Jaki jest najlepszy sposób na internacjonalizację zawartości tych tabel baz danych za pomocą Ruby on Rails?Jak umiędzynarodowić zawartość ruby na szynach?
Odpowiedz
Brałeś okiem na: http://guides.rubyonrails.org/i18n.html
Opisuje dość szczegółowo, jak umiędzynarodowienie aplikacji i
„zapewnia łatwy w obsłudze i elastyczny ramy tłumacząc swoją aplikacja do pojedynczego niestandardowego języka innego niż angielski lub do zapewniającego wsparcie w wielu językach w aplikacji . "
Przydatne linki:
Jeśli chcesz przechowywać wartości dla różnych języków w db obok standardowych szynach i18n (yml), możesz zrobić coś takiego:
Produkty nazwa tabeli pole:
- name_en
- name_fr
- name_nl
Fetch prawidłową wartość:
def i18n_db_value(object, attribute)
object.send("#{attribute.to_s}_#{I18n.locale}") if object
end
„Store wiele wersji treści w modelu i mieć jedną witrynę "vs. „magazynu tylko jedna wersja treści w modelu, ale mają wiele witryn”
Na RailsCasts jest ładny artykuł o, używając gem nazwie Globalize3. Że tylko pozwalają określić, które będą tłumaczone modele i zarządzać tłumaczyć tabel dla każdego modelu i działa podobnie jak i18n jest statycznych stron ...
Spójrz
http://railscasts.com/episodes/338-globalize3?view=asciicast
Można nadpisać Metoda "nazwa" w kategorii modelu umożliwia wyszukanie poprawnego tłumaczenia w innej tabeli.
Tak więc, w tabeli kategorii, powinieneś mieć w polu "nazwa" przetłumaczony domyślny język, na przykład "Inne". A następnie wyszukaj "Inne" w tabeli:
transtations table
en_text "Other" <--- You search this (default language)
es_text "Otros" ---> You retrun this
ca_text "Altres" ---> or this
# Category table
class Category < ActiveRecord::Base
def name
Translation.translate(read_attribute("name"))
end
end
# Your transltation model
class Translation < ActiveRecord::Base
def self.translate(text)
locale=I18n.locale
if locale!="en" # default locale: what is on the table "category"
trad=self.find_by_en_text(text)
if trad
return eval("trad.#{locale}_text")
end
end
return text
end
end
- 1. Profilowanie aplikacji ruby / ruby na szynach
- 2. Pomocników ścieżki Ruby na szynach
- 3. Jak zmienić trasę w ruby na szynach?
- 4. Jak przesłać plik w Ruby na szynach?
- 5. Jak manipulować DOM z Ruby na szynach
- 6. Jak umiędzynarodowić kierownicę + widok kręgosłupa?
- 7. Automatyczne skojarzenia w urządzeniach ruby na szynach
- 8. Jak prekompilować aktywa w środowisku programistycznym na ruby na szynach?
- 9. Mahout Plugin do ruby na szynach
- 10. Ruby na szynach: Zagnieżdżone atrybuty, belongs_to relacja
- 11. web based ide do ruby na szynach?
- 12. Ruby na szynach, wielokrotne sprawdzanie zerowych atrybutów
- 13. Jak umiędzynarodowić ciąg używany w kodzie javascript?
- 14. Jak uzyskać listę kontrolerów i działań w ruby na szynach?
- 15. Jak dodać potwierdzenie z linkiem do Ruby na szynach
- 16. Jak debugować ruby na szynach w pluginach eclipse aptana
- 17. Jak mogę skopiować bazę danych mySQL w ruby na szynach?
- 18. Jak zmienić liczbę symboli w Ruby (na szynach)?
- 19. ruby na szynach, jak radzić sobie z NaN
- 20. Jak usunąć pojedynczy wpis z sesji ruby na szynach?
- 21. Jak przelecieć przez miesiące w Ruby na szynach
- 22. ruby na szynach: renderowania partials na każdej pozycji na liście
- 23. Nie można przekonwertować zakresu na liczbę całkowitą (Ruby na szynach)
- 24. Jak uzyskać zawartość żądania http w Ruby?
- 25. Zapobieganie Ruby na szynach 3 z parsowania JSON post
- 26. ruby na szynach 3.1 przenieść .swf do potoku aktywów?
- 27. logika ruby na szynach dla częściowego w układzie
- 28. zmienić domyślny format daty w ruby na szynach?
- 29. ruby na szynach, zamień ostatni znak, jeśli jest to znak *
- 30. wybierz i zmień w formularzu Ruby na szynach
Wszystkie te odniesienia nie mówią o tłumaczeniu zawartości bazy danych ...jak klejnot Globalize3 –