class TkMsgCatalog
Methods
- #
- C
- D
- L
- M
-
- maxlen,
- maxlen,
- mc,
- mc,
- method_missing
- N
- P
- S
- T
Included Modules
Constants
TkCommandNames | = | [ '::msgcat::mc'.freeze, '::msgcat::mcmax'.freeze, '::msgcat::mclocale'.freeze, '::msgcat::mcpreferences'.freeze, '::msgcat::mcload'.freeze, '::msgcat::mcset'.freeze, '::msgcat::mcmset'.freeze, '::msgcat::mcunknown'.freeze ].freeze |
extend TkMsgCatalog |
||
PACKAGE_NAME | = | 'msgcat'.freeze |
MSGCAT_EXT | = | '.msg' |
UNKNOWN_CBTBL | = | TkUtil.untrust(Hash.new{|hash,key| hash[key] = {}}) |
Attributes
[RW] | msgcat_ext |
Class Public methods
callback(namespace, locale, src_str, *args)
Link
# File ext/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
def_unknown_proc(cmd=Proc.new)
Link
load(dir)
Link
load_rb(dir)
Link
# File ext/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
load_tk(dir)
Link
locale()
Link
locale=(locale)
Link
maxlen(*src_strings)
Link
new(namespace = nil)
Link
# File ext/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
package_name()
Link
preferences()
Link
set_translation(locale, src_str, trans_str=None, enc='utf-8')
Link
# File ext/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
set_translation_list(locale, trans_list, enc='utf-8')
Link
# File ext/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
translate(*args)
Link
*args ::= form, arg, arg, …
Instance Public methods
def_unknown_proc(cmd=Proc.new)
Link
load_rb(dir)
Link
Also aliased as: load
# File ext/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
load_tk(dir)
Link
locale()
Link
locale=(locale)
Link
maxlen(*src_strings)
Link
method_missing(id, *args)
Link
# File ext/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
preferences()
Link
set_translation(locale, src_str, trans_str=None, enc='utf-8')
Link
# File ext/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
set_translation_list(locale, trans_list, enc='utf-8')
Link
# File ext/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