ben

OMÜ , Bilgisayar Mühendisliği, 13'

10 Ocak 2016 Pazar

Globalize translate


Veri Modelinden gelen verilerin sayfadaki dil tercihine göre değişmesi için globalize gemini kullanmamız gerekir. Fakat buraya not düşmekte fayda var. Bu gem sayfayı kendisi translate etmiyor,  sayfanın dilini değiştirip yazıları o dilde yazıp güncellediğiniz takdirde arka planda tutulan bir migration dosyasında o dile ait o verinin karşılığı tutuluyor ve siz sayfanın dilini değiştirdiğinizde o migration dosyasındaki dile karşılık gelen alan gösteriliyor.

Bir önceki i18n yazısında kalan projeden devam ediyorum.

eklememiz gereken gem:

gem 'globalize', '~> 5.0.0'


Model/movies.rb

  translates :name, :director



Migration dosyamızı oluşturalım:

$ rails g migration create_translate_movies

migrate yapmadan önce dosyamızı düzenlememiz gerekiyor



application.rb


    config.i18n.fallbacks = true


db/migration/20160110122957_create_translate_movies.rb

class CreateTranslateMovies < ActiveRecord::Migration
  def self.up
    Movie.create_translation_table!({
      :name => :string,
      :director=>:string
    }, {
      :migrate_data => true
    })
  end

  def self.down
    Movie.drop_translation_table! :migrate_data => true
  end
end

burada cevrilecek alanları girmemiz gerekiyor, name, director  movie modelimin attribute ları.


terminal
$rake db:migrate




index sayfamıza bakalım dil türkçe iken:

 Dil ingilizce iken