Ruby On Rails ile uygulama geliÅ?tirirken mutlaka kullanılması gereken “muhteÅ?em” özelliklerinden biridir ActiveRecord’un alansal hata kontrol mekanizmaları. Lakin, varsayılan olarak hatalar İngilizce’dir. Bunları TürkçeleÅ?tirmek için ActiveRecord modülündeki Errors sınıfında bulunan @@default_error_messages “Hash” deÄ?iÅ?keni düzenlenmelidir.
Varsayılan durumlarda kullanılan mesajları, Ruby sınıfının tarihsel deÄ?iÅ?kenlerini ayrıca hata penceresi mesajlarını TürkçeleÅ?tiren turkce.rb dosyasını kullanıma sunuyorum, buyrun.
Kullanmak için tasarınızda herhangi bir yere kaydedip daha sonra “environment.rb” dosyasına bu dosyayı ekleyebilirsiniz.
Ã?rneÄ?in; app klasöründe turkce.rb adıyla kaydederseniz environment.rb dosyasına
eklemeniz gerekli ayarları yapacaktır.
Yazının devamında gerekli dosya içeriÄ?ini bulabilirsiniz.
Not: Yerel sunucuda dosyayı kurduktan sonra ayarların etkili olabilmesi için sunucuyu kapatıp/açmalısınız.
# muarifer, murat.celiker@gmail.com
# ikinoktayazilim.com/wordpress
# ActiveRecord Hataları DönüÅ?türgeçi
module ActiveRecord
class Errors
begin
@@default_error_messages.update( {
:inclusion => "listede seçenek bulunamadı",
:exclusion => "kabul görmedi",
:invalid => "giriÅ?i hatalı",
:confirmation => "onaylanmalı",
:accepted => "mutlaka kabul edilmeli",
:empty => "boÅ? bırakılamaz",
:blank => "boÅ? bırakılamaz",
:too_long => "çok fazla (azami %d karakter giriÅ?i)",
:too_short => "çok kısa (asgari %d karakter giriÅ?i)",
:wrong_length => "karakter uzunluÄ?u hatalı (%d karakter olmak zorunda)",
:taken => "daha önceden kayıt edilmiÅ?",
:not_a_number => "bir sayı deÄ?il, sayı olmak zorunda."
}
)
end
end
end
# There were.. cümle dönüÅ?türgeçi
module ActionView
module Helpers
module ActiveRecordHelper
def error_messages_for(object_name, options = {})
options = options.symbolize_keys
object = instance_variable_get("@#{object_name}")
unless object.errors.empty?
content_tag("div",
content_tag(
options[:header_tag] || "h2",
"#{object.errors.count} adet hata #{object_name.to_s.gsub("_", " ")} kaydını engelledi!"
) +
content_tag("p", "Hata(lar) ve sebepleri Å?u Å?ekilde:") +
content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) }),
"id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
)
end
end
end
end
end
# Tarihsel DönüÅ?türgeç
require 'date'
class Date
ABBR_DAYNAMES = %w(Pzr Pzt Sal Car Per Cum Cts)
ABRR_DAYS = {'pzr' => 0, 'pzt' => 1, 'sal' => 2, 'car' => 3, 'per' => 4, 'cum' => 5, 'cts' => 6}
ABBR_MONTHNAMES = [nil] + %w(OCK Å?UB MAR NİS MAY HAZ TEM AÄ?T EYL EKM KAS ARL)
ABRR_MONTHS = {'ock' => 1, 'Å?ub' => 2, 'mar' => 3, 'nis' => 4, 'may' => 5, 'haz' => 6, 'tem' => 7,
'aÄ?t' => 8, 'eyl' => 9, 'ekm' => 10, 'kas' => 11, 'arl' => 12}
DAYNAMES = %w(Pazar Pazartesi Salı Ã?arÅ?amba PerÅ?embe Cuma)
DAYS = {'pazar' => 0, 'pazartesi' => 1, 'salı' => 2, 'çarÅ?amba' => 3, 'perÅ?embe' => 4, 'cuma' => 5, 'cumartesi' => 6}
MONTHNAMES = [nil] + %w(Ocak, Å?ubat, Mart, Nisan, Mayıs, Haziran, Temmuz, AÄ?ustos, Eylül, Ekim, Kasım, Aralık)
MONTHS = {'ocak' => 1, 'Å?ubat' => 2, 'mart' => 3, 'nisan' => 4, 'mayıs' => 5, 'haziran' => 6, 'temmuz' => 7,
'aÄ?ustos' => 8, 'eylül' => 9, 'ekim' => 10, 'kasım' => 11, 'aralık' => 12}
end








Ellerine saÄ?lık güzel olmuÅ? :)
TeÅ?ekkürler.
Fakat ayların kısaltmalı biçimde yazılan Å?ekillerinin yanlıÅ? olma ihtimali yüksek diye tahmin ediyorum.
Aralık için “arl” mesela :)
DoÄ?ru Å?ekillerini en kısa zamanda bulup düzeltme(k|m) lazım.
ellerine sağlık çok güzel olmuş