eklememiz gereken Gem:
gem 'rails-i18n', '~> 4.0.0'
$ bundle
config/application.rb
module Project
class Application < Rails::Application
config.i18n.default_locale = :tr
end
end
controller/application_controller.rb
before_action :set_locale
def set_locale
pl = params[:locale]
I18n.locale = pl || I18n.locale
end
config/en.yml oluşturalım
en:
welcome: "welcome"
config/tr.yml oluşturalım
tr:
welcome: "Hoşgeldiniz"
yml dosyalarında girintiler önemli, üst sınıflardan alt sınıflara gecmek gibi..
view/application_html.erb
Daha önceden eklediğimiz navbarın sağ üst köşesine dropdwn ile dil seçeneklerini ekleyelim:
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<%if I18n.locale==:en %> <%= image_tag("en.png",size: "30x20")%>
<%else%>
<%= image_tag("tr.png",size: "30x20")%>
<%end%>
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><%= link_to image_tag("en.png", alt: "English")+" "+"English", locale: "en" %></li>
<li><%= link_to image_tag("tr.png", alt: "Turkish")+" "+"Türkçe", locale: "tr" %> </li>
</ul>
</li>
</ul>
navbarımızda bu şekilde görünmeli
Projemizin assets/images altında iki ulkenin bayrağı belirtilen isimlerde olmalı, internetten indirip bu kalsör altına yerleştirin
index.html.erb sayfasına hoşgeldiniz yazdıralım
<h3> <%=t("welcome")%></h3>
eğer yml dosyamız
tr:
welcome:
index: "hoşgeldiniz" olsaydı( alt sınıflarında ) . ile devam ederdik
<h3> <%=t("welcome.index")%></h3>
İngilizceyi sectiğimizde:
Türkçeyi sectiğimizde
Diğer alanlarıda bu şekilde tek tek yazmamız gerekiyor. Bu gem sabit sayfa yazılarını değiştiriyor. veri modelinden gelen verileri dile göre ayarlamak için Globalize yazısına bakın