Take the 2008 Git User's Survey and help out! [ hide ]

public
Description: Dead simple Rails localization.
Homepage: http://errtheblog.com/posts/55-ya-talkin-gibberish
Clone URL: git://github.com/defunkt/gibberish.git
Search Repo:
Gibberish: Support multiple paths for loading language files [Sean Cribbs] 
[#71 state:resolved]
defunkt (author)
Mon Jul 23 10:41:37 -0700 2007
commit  4266216d463827040aa9e487a76c542946e37f4d
tree    092ec55acace08bc0e78facb691fc4ac6486acd1
parent  303fed63b341e82c1303c88a130f072ca85cd869
...
52
53
54
55
 
 
56
57
58
59
 
 
 
 
60
61
62
...
75
76
77
78
 
79
80
 
81
82
83
...
52
53
54
 
55
56
57
58
59
60
61
62
63
64
65
66
67
...
80
81
82
 
83
84
 
85
86
87
88
0
@@ -52,11 +52,16 @@ module Gibberish
0
     def load_languages!
0
       language_files.each do |file|
0
         key = File.basename(file, '.*').to_sym
0
- @@languages[key] = YAML.load_file(file).symbolize_keys
0
+ @@languages[key] ||= {}
0
+ @@languages[key].merge! YAML.load_file(file).symbolize_keys
0
       end
0
       languages
0
     end
0
 
0
+ @@language_paths = [RAILS_ROOT]
0
+ def language_paths
0
+ @@language_paths ||= []
0
+ end
0
   private
0
     def interpolate_string(string, *args)
0
       if args.last.is_a? Hash
0
@@ -75,9 +80,9 @@ module Gibberish
0
     def interpolate_with_strings(string, strings)
0
       string.gsub(/\{\w+\}/) { strings.shift }
0
     end
0
-
0
+
0
     def language_files
0
- Dir[File.join(RAILS_ROOT, 'lang', '*.{yml,yaml}')]
0
+ @@language_paths.map {|path| Dir[File.join(path, 'lang', '*.{yml,yaml}')]}.flatten
0
     end
0
   end
0
 end
...
7
8
9
 
 
10
11
12
13
14
15
16
...
89
90
91
 
 
 
 
 
 
 
 
 
 
 
 
92
93
94
...
7
8
9
10
11
12
13
14
 
15
16
17
...
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
0
@@ -7,10 +7,11 @@ rescue LoadError
0
 end
0
 
0
 $:.unshift File.dirname(__FILE__) + '/../lib'
0
+RAILS_ROOT = File.dirname(__FILE__) + '/..'
0
+
0
 require 'active_support'
0
 require 'gibberish'
0
 
0
-RAILS_ROOT = File.dirname(__FILE__) + '/..'
0
 Gibberish.load_languages!
0
 
0
 context "After loading languages, Gibberish" do
0
@@ -89,6 +90,18 @@ context "After loading languages, Gibberish" do
0
     Gibberish.add_reserved_key key
0
     Gibberish.reserved_keys.size.should.equal 2
0
   end
0
+
0
+ specify "should have loaded language files from directories other than the default" do
0
+ Gibberish.language_paths << File.dirname(__FILE__)
0
+ Gibberish.load_languages!
0
+ string = "I don't speak Babble."
0
+ Gibberish.use_language :es do
0
+ string[:no_babble].should.equal "No hablo Bable."
0
+ end
0
+ Gibberish.use_language :fr do
0
+ string[:no_babble].should.equal "Je ne parle pas Babble."
0
+ end
0
+ end
0
 end
0
 
0
 context "When no language is set" do

Comments

    No one has commented yet.