##// END OF EJS Templates
Fixed that the project jump box does not preserve current tab after r2304....
Fixed that the project jump box does not preserve current tab after r2304. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2312 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r65:96f83cc8f0f0
r2310:41f3bae9170c
Show More
gloc-dev.rb
97 lines | 3.1 KiB | text/x-ruby | RubyLexer
# Copyright (c) 2005-2006 David Barri
puts "GLoc v#{GLoc::VERSION} running in development mode. Strings can be modified at runtime."
module GLoc
class << self
alias :actual_add_localized_strings :add_localized_strings
def add_localized_strings(lang, symbol_hash, override=true, strings_charset=nil)
_verbose_msg {"dev::add_localized_strings #{lang}, [#{symbol_hash.size}], #{override}, #{strings_charset ? strings_charset : 'nil'}"}
STATE.push [:hash, lang, {}.merge(symbol_hash), override, strings_charset]
_force_refresh
end
alias :actual_load_localized_strings :load_localized_strings
def load_localized_strings(dir=nil, override=true)
_verbose_msg {"dev::load_localized_strings #{dir ? dir : 'nil'}, #{override}"}
STATE.push [:dir, dir, override]
_get_lang_file_list(dir).each {|filename| FILES[filename]= nil}
end
alias :actual_clear_strings :clear_strings
def clear_strings(*languages)
_verbose_msg {"dev::clear_strings #{languages.map{|l|l.to_s}.join(', ')}"}
STATE.push [:clear, languages.clone]
_force_refresh
end
alias :actual_clear_strings_except :clear_strings_except
def clear_strings_except(*languages)
_verbose_msg {"dev::clear_strings_except #{languages.map{|l|l.to_s}.join(', ')}"}
STATE.push [:clear_except, languages.clone]
_force_refresh
end
# Replace methods
[:_l, :_l_rule, :_l_has_string?, :similar_language, :valid_languages, :valid_language?].each do |m|
class_eval <<-EOB
alias :actual_#{m} :#{m}
def #{m}(*args)
_assert_gloc_strings_up_to_date
actual_#{m}(*args)
end
EOB
end
#-------------------------------------------------------------------------
private
STATE= []
FILES= {}
def _assert_gloc_strings_up_to_date
changed= @@force_refresh
# Check if any lang files have changed
unless changed
FILES.each_pair {|f,mtime|
changed ||= (File.stat(f).mtime != mtime)
}
end
return unless changed
puts "GLoc reloading strings..."
@@force_refresh= false
# Update file timestamps
FILES.each_key {|f|
FILES[f]= File.stat(f).mtime
}
# Reload strings
actual_clear_strings
STATE.each {|s|
case s[0]
when :dir then actual_load_localized_strings s[1], s[2]
when :hash then actual_add_localized_strings s[1], s[2], s[3], s[4]
when :clear then actual_clear_strings(*s[1])
when :clear_except then actual_clear_strings_except(*s[1])
else raise "Invalid state id: '#{s[0]}'"
end
}
_verbose_msg :stats
end
@@force_refresh= false
def _force_refresh
@@force_refresh= true
end
alias :super_get_internal_state_vars :_get_internal_state_vars
def _get_internal_state_vars
super_get_internal_state_vars + [ STATE, FILES ]
end
end
end