Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
class TkMsgCatalog
# File tk/lib/tk/msgcat.rb, line 58 def self.callback(namespace, locale, src_str, *args) src_str = sprintf(src_str, *args) unless args.empty? cmd_tbl = TkMsgCatalog::UNKNOWN_CBTBL[TkCore::INTERP.__getip] cmd = cmd_tbl[namespace] cmd = cmd_tbl['::'] unless cmd # use global scope as interp default return src_str unless cmd # no cmd -> return src-str (default action) begin cmd.call(locale, src_str) rescue SystemExit exit(0) rescue Interrupt exit!(1) rescue Exception => e begin msg = _toUTF8(e.class.inspect) + ': ' + _toUTF8(e.message) + "\n" + "\n---< backtrace of Ruby side >-----\n" + _toUTF8(e.backtrace.join("\n")) + "\n---< backtrace of Tk side >-------" if TkCore::WITH_ENCODING msg.force_encoding('utf-8') else msg.instance_variable_set(:@encoding, 'utf-8') end rescue Exception msg = e.class.inspect + ': ' + e.message + "\n" + "\n---< backtrace of Ruby side >-----\n" + e.backtrace.join("\n") + "\n---< backtrace of Tk side >-------" end fail(e, msg) end end
# File tk/lib/tk/msgcat.rb, line 291 def self.def_unknown_proc(cmd=Proc.new) TkMsgCatalog::UNKNOWN_CBTBL[TkCore::INTERP.__getip]['::'] = cmd end
# File tk/lib/tk/msgcat.rb, line 234 def self.load(dir) self.load_rb(dir) end
# File tk/lib/tk/msgcat.rb, line 198 def self.load_rb(dir) count = 0 preferences().each{|loc| file = File.join(dir, loc + self::MSGCAT_EXT) if File.readable?(file) count += 1 if TkCore::WITH_ENCODING eval(IO.read(file, :encoding=>"ASCII-8BIT")) else eval(IO.read(file)) end end } count end
# File tk/lib/tk/msgcat.rb, line 194 def self.load_tk(dir) number(tk_call('::msgcat::mcload', dir)) end
# File tk/lib/tk/msgcat.rb, line 173 def self.locale tk_call('::msgcat::mclocale') end
# File tk/lib/tk/msgcat.rb, line 180 def self.locale=(locale) tk_call('::msgcat::mclocale', locale) end
# File tk/lib/tk/msgcat.rb, line 166 def self.maxlen(*src_strings) tk_call('::msgcat::mcmax', *src_strings).to_i end
# File tk/lib/tk/msgcat.rb, line 92 def initialize(namespace = nil) if namespace.kind_of?(TkNamespace) @namespace = namespace elsif namespace == nil @namespace = TkNamespace.new('::') # global namespace else @namespace = TkNamespace.new(namespace) end @path = @namespace.path @msgcat_ext = '.msg' end
# File tk/lib/tk/msgcat.rb, line 27 def self.package_name PACKAGE_NAME end
# File tk/lib/tk/msgcat.rb, line 187 def self.preferences tk_split_simplelist(tk_call('::msgcat::mcpreferences')) end
# File tk/lib/tk/msgcat.rb, line 239 def self.set_translation(locale, src_str, trans_str=None, enc='utf-8') if trans_str && trans_str != None trans_str = Tk.UTF8_String(_toUTF8(trans_str, enc)) Tk.UTF8_String(ip_eval_without_enc("::msgcat::mcset {#{locale}} {#{_get_eval_string(src_str, true)}} {#{trans_str}}")) else Tk.UTF8_String(ip_eval_without_enc("::msgcat::mcset {#{locale}} {#{_get_eval_string(src_str, true)}}")) end end
# File tk/lib/tk/msgcat.rb, line 260 def self.set_translation_list(locale, trans_list, enc='utf-8') # trans_list ::= [ [src, trans], [src, trans], ... ] list = [] trans_list.each{|src, trans| if trans && trans != None list << _get_eval_string(src, true) list << Tk.UTF8_String(_toUTF8(trans, enc)) else list << _get_eval_string(src, true) << '' end } #number(tk_call_without_enc('::msgcat::mcmset', locale, list)) number(ip_eval_without_enc("::msgcat::mcmset {#{locale}} {#{_get_eval_string(list)}}")) end
# File tk/lib/tk/msgcat.rb, line 294 def def_unknown_proc(cmd=Proc.new) TkMsgCatalog::UNKNOWN_CBTBL[TkCore::INTERP.__getip][@namespace.path] = cmd end
# File tk/lib/tk/msgcat.rb, line 218 def load_rb(dir) count = 0 preferences().each{|loc| file = File.join(dir, loc + @msgcat_ext) if File.readable?(file) count += 1 if TkCore::WITH_ENCODING @namespace.eval(IO.read(file, :encoding=>"ASCII-8BIT")) else @namespace.eval(IO.read(file)) end end } count end
# File tk/lib/tk/msgcat.rb, line 214 def load_tk(dir) number(@namespace.eval{tk_call('::msgcat::mcload', dir)}) end
# File tk/lib/tk/msgcat.rb, line 176 def locale @namespace.eval{tk_call('::msgcat::mclocale')} end
# File tk/lib/tk/msgcat.rb, line 183 def locale=(locale) @namespace.eval{tk_call('::msgcat::mclocale', locale)} end
# File tk/lib/tk/msgcat.rb, line 169 def maxlen(*src_strings) @namespace.eval{tk_call('::msgcat::mcmax', *src_strings).to_i} end
# File tk/lib/tk/msgcat.rb, line 106 def method_missing(id, *args) # locale(src, trans) ==> set_translation(locale, src, trans) loc = id.id2name case args.length when 0 # set locale self.locale=(loc) when 1 # src only, or trans_list if args[0].kind_of?(Array) # trans_list #list = args[0].collect{|src, trans| # [ Tk::UTF8_String.new(src), Tk::UTF8_String.new(trans) ] #} self.set_translation_list(loc, args[0]) else # src #self.set_translation(loc, Tk::UTF8_String.new(args[0])) self.set_translation(loc, args[0]) end when 2 # src and trans, or, trans_list and enc if args[0].kind_of?(Array) # trans_list self.set_translation_list(loc, *args) else #self.set_translation(loc, args[0], Tk::UTF8_String.new(args[1])) self.set_translation(loc, *args) end when 3 # src and trans and enc self.set_translation(loc, *args) else super(id, *args) # fail NameError, "undefined method `#{name}' for #{self.to_s}", error_at end end
# File tk/lib/tk/msgcat.rb, line 190 def preferences tk_split_simplelist(@namespace.eval{tk_call('::msgcat::mcpreferences')}) end
# File tk/lib/tk/msgcat.rb, line 247 def set_translation(locale, src_str, trans_str=None, enc='utf-8') if trans_str && trans_str != None trans_str = Tk.UTF8_String(_toUTF8(trans_str, enc)) Tk.UTF8_String(@namespace.eval{ ip_eval_without_enc("::msgcat::mcset {#{locale}} {#{_get_eval_string(src_str, true)}} {#{trans_str}}") }) else Tk.UTF8_String(@namespace.eval{ ip_eval_without_enc("::msgcat::mcset {#{locale}} {#{_get_eval_string(src_str, true)}}") }) end end
# File tk/lib/tk/msgcat.rb, line 274 def set_translation_list(locale, trans_list, enc='utf-8') # trans_list ::= [ [src, trans], [src, trans], ... ] list = [] trans_list.each{|src, trans| if trans && trans != None list << _get_eval_string(src, true) list << Tk.UTF8_String(_toUTF8(trans, enc)) else list << _get_eval_string(src, true) << '' end } number(@namespace.eval{ #tk_call_without_enc('::msgcat::mcmset', locale, list) ip_eval_without_enc("::msgcat::mcmset {#{locale}} {#{_get_eval_string(list)}}") }) end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.