Parent

Included Modules

GetText::LocalePath

Treats locale-path for mo-files.

Constants

CONFIG_PREFIX

The default locale paths.

DEFAULT_RULES

Attributes

locale_paths[R]
supported_locales[R]

Public Class Methods

add_default_rule(path) click to toggle source

Add default locale path. Usually you should use GetText.add_default_locale_path instead.

  • path: a new locale path. (e.g.) “/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo” (‘locale’ => “ja_JP“, ‘name’ => “textdomain”)

  • Returns: the new DEFAULT_LOCALE_PATHS

    # File lib/gettext/runtime/locale_path.rb, line 37
37:       def add_default_rule(path)
38:         DEFAULT_RULES.unshift(path)
39:       end
default_path_rules() click to toggle source

Returns path rules as an Array. (e.g.) [“/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo”, …]

    # File lib/gettext/runtime/locale_path.rb, line 43
43:       def default_path_rules 
44:         default_path_rules = []
45: 
46:         if ENV["GETTEXT_PATH"]
47:           ENV["GETTEXT_PATH"].split(/,/).each {|i| 
48:             default_path_rules = ["#{i}/%{lang}/LC_MESSAGES/%{name}.mo", "#{i}/%{lang}/%{name}.mo"]
49:           }
50:         end
51:         
52:         default_path_rules += DEFAULT_RULES
53:         
54:         load_path = $LOAD_PATH
55:         if defined? ::Gem
56:           load_path += Gem.all_load_paths
57:         end
58:         load_path.map!{|v| v.match(/(.*?)(\/lib)*?$/); $1}
59:         load_path.each {|path|
60:           default_path_rules += [
61:                                  "#{path}/data/locale/%{lang}/LC_MESSAGES/%{name}.mo", 
62:                                  "#{path}/data/locale/%{lang}/%{name}.mo", 
63:                                  "#{path}/locale/%{lang}/%{name}.mo"]
64:         }
65:         # paths existed only.
66:         default_path_rules = default_path_rules.select{|path| 
67:           Dir.glob(path % {:lang => "*", :name => "*"}).size > 0}.uniq
68:         default_path_rules
69:       end
new(name, topdir = nil) click to toggle source

Creates a new GetText::TextDomain.

  • name: the textdomain name.

  • topdir: the locale path (“%{topdir}/%{lang}/LC_MESSAGES/%{name}.mo”) or nil.

    # File lib/gettext/runtime/locale_path.rb, line 78
78:     def initialize(name, topdir = nil)
79:       @name = name
80:       
81:       if topdir
82:         path_rules = ["#{topdir}/%{lang}/LC_MESSAGES/%{name}.mo", "#{topdir}/%{lang}/%{name}.mo"]
83:       else
84:         path_rules = self.class.default_path_rules
85:       end
86: 
87:       @locale_paths = {}
88:       path_rules.each do |rule|
89:         this_path_rules = rule % {:lang => "([^\/]+)", :name => name}
90:         Dir.glob(rule %{:lang => "*", :name => name}).each do |path|
91:           if /#{this_path_rules}/ =~ path
92:             @locale_paths[$1] = path unless @locale_paths[$1]
93:           end
94:         end
95:       end
96:       @supported_locales = @locale_paths.keys.sort
97:     end

Public Instance Methods

current_path(lang) click to toggle source

Gets the current path.

  • lang: a Locale::Tag.

     # File lib/gettext/runtime/locale_path.rb, line 101
101:     def current_path(lang)
102:       lang_candidates = lang.to_posix.candidates
103:       search_files = []
104: 
105:       lang_candidates.each do |tag|
106:         path = @locale_paths[tag.to_s]
107:         warn "GetText::TextDomain#load_mo: mo-file is #{path}" if $DEBUG
108:         return path if path
109:       end
110: 
111:       if $DEBUG
112:         warn "MO file is not found in"
113:         @locale_paths.each do |path|
114:           warn "  #{path[1]}"
115:         end
116:       end
117:       nil
118:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.