gettext_i18n_rails 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +4 -0
- data/Gemfile.lock +15 -0
- data/Readme.md +7 -3
- data/VERSION +1 -1
- data/gettext_i18n_rails.gemspec +6 -3
- data/lib/gettext_i18n_rails/haml_parser.rb +9 -9
- data/lib/gettext_i18n_rails/slim_parser.rb +37 -0
- data/lib/gettext_i18n_rails/tasks.rb +2 -1
- data/spec/gettext_i18n_rails/action_controller_spec.rb +1 -1
- data/spec/gettext_i18n_rails/active_record_spec.rb +1 -1
- data/spec/gettext_i18n_rails/backend_spec.rb +1 -1
- data/spec/gettext_i18n_rails/haml_parser_spec.rb +32 -0
- data/spec/gettext_i18n_rails/slim_parser_spec.rb +32 -0
- data/spec/gettext_i18n_rails/string_interpolate_fix_spec.rb +2 -2
- data/spec/gettext_i18n_rails_spec.rb +1 -1
- data/spec/spec_helper.rb +29 -0
- metadata +12 -9
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -36,13 +36,17 @@ GEM
|
|
36
36
|
diff-lcs (1.1.2)
|
37
37
|
erubis (2.7.0)
|
38
38
|
fast_gettext (0.5.13)
|
39
|
+
gettext (2.1.0)
|
40
|
+
locale (>= 2.0.5)
|
39
41
|
git (1.2.5)
|
42
|
+
haml (3.1.4)
|
40
43
|
hike (1.2.1)
|
41
44
|
i18n (0.6.0)
|
42
45
|
jeweler (1.6.4)
|
43
46
|
bundler (~> 1.0)
|
44
47
|
git (>= 1.2.5)
|
45
48
|
rake
|
49
|
+
locale (2.0.5)
|
46
50
|
mail (2.3.0)
|
47
51
|
i18n (>= 0.4.0)
|
48
52
|
mime-types (~> 1.16)
|
@@ -84,11 +88,18 @@ GEM
|
|
84
88
|
rspec-expectations (2.6.0)
|
85
89
|
diff-lcs (~> 1.1.2)
|
86
90
|
rspec-mocks (2.6.0)
|
91
|
+
ruby_parser (2.3.1)
|
92
|
+
sexp_processor (~> 3.0)
|
93
|
+
sexp_processor (3.0.10)
|
94
|
+
slim (1.1.0)
|
95
|
+
temple (~> 0.3.5)
|
96
|
+
tilt (~> 1.3.2)
|
87
97
|
sprockets (2.0.0)
|
88
98
|
hike (~> 1.2)
|
89
99
|
rack (~> 1.0)
|
90
100
|
tilt (~> 1.1, != 1.3.0)
|
91
101
|
sqlite3 (1.3.4)
|
102
|
+
temple (0.3.5)
|
92
103
|
thor (0.14.6)
|
93
104
|
tilt (1.3.3)
|
94
105
|
treetop (1.4.10)
|
@@ -101,8 +112,12 @@ PLATFORMS
|
|
101
112
|
|
102
113
|
DEPENDENCIES
|
103
114
|
fast_gettext
|
115
|
+
gettext
|
116
|
+
haml
|
104
117
|
jeweler
|
105
118
|
rails (~> 3)
|
106
119
|
rake
|
107
120
|
rspec (~> 2)
|
121
|
+
ruby_parser
|
122
|
+
slim
|
108
123
|
sqlite3 (~> 1.3.4)
|
data/Readme.md
CHANGED
@@ -27,9 +27,13 @@ Setup
|
|
27
27
|
gem 'gettext_i18n_rails'
|
28
28
|
|
29
29
|
##### Optional:
|
30
|
-
|
30
|
+
Add `gettext` if you want to find translations or build .mo files<br/>
|
31
|
+
Add `ruby_parser` if you want to find translations inside haml files
|
32
|
+
|
33
|
+
|
31
34
|
# Gemfile
|
32
35
|
gem 'gettext', '>=1.9.3', :require => false, :group => :development
|
36
|
+
gem 'ruby_parser', :require => false, :group => :development
|
33
37
|
|
34
38
|
#### Rails 2
|
35
39
|
|
@@ -189,13 +193,13 @@ When you run
|
|
189
193
|
|
190
194
|
rake gettext:find
|
191
195
|
|
192
|
-
by default the following files are going to be scanned for translations: {app,lib,config,locale}/**/*.{rb,erb,haml}. If
|
196
|
+
by default the following files are going to be scanned for translations: {app,lib,config,locale}/**/*.{rb,erb,haml,slim}. If
|
193
197
|
you want to specify a different list, you can redefine files_to_translate in the gettext namespace in a file like
|
194
198
|
lib/tasks/gettext.rake:
|
195
199
|
|
196
200
|
namespace :gettext do
|
197
201
|
def files_to_translate
|
198
|
-
Dir.glob("{app,lib,config,locale}/**/*.{rb,erb,haml,rhtml}")
|
202
|
+
Dir.glob("{app,lib,config,locale}/**/*.{rb,erb,haml,slim,rhtml}")
|
199
203
|
end
|
200
204
|
end
|
201
205
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/gettext_i18n_rails.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "gettext_i18n_rails"
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = "2012-01-
|
12
|
+
s.date = "2012-01-10"
|
13
13
|
s.email = "grosser.michael@gmail.com"
|
14
14
|
s.files = [
|
15
15
|
"Gemfile",
|
@@ -29,19 +29,22 @@ Gem::Specification.new do |s|
|
|
29
29
|
"lib/gettext_i18n_rails/model_attributes_finder.rb",
|
30
30
|
"lib/gettext_i18n_rails/railtie.rb",
|
31
31
|
"lib/gettext_i18n_rails/ruby_gettext_extractor.rb",
|
32
|
+
"lib/gettext_i18n_rails/slim_parser.rb",
|
32
33
|
"lib/gettext_i18n_rails/string_interpolate_fix.rb",
|
33
34
|
"lib/gettext_i18n_rails/tasks.rb",
|
34
35
|
"lib/tasks/gettext_rails_i18n.rake",
|
35
36
|
"spec/gettext_i18n_rails/action_controller_spec.rb",
|
36
37
|
"spec/gettext_i18n_rails/active_record_spec.rb",
|
37
38
|
"spec/gettext_i18n_rails/backend_spec.rb",
|
39
|
+
"spec/gettext_i18n_rails/haml_parser_spec.rb",
|
40
|
+
"spec/gettext_i18n_rails/slim_parser_spec.rb",
|
38
41
|
"spec/gettext_i18n_rails/string_interpolate_fix_spec.rb",
|
39
42
|
"spec/gettext_i18n_rails_spec.rb",
|
40
43
|
"spec/spec_helper.rb"
|
41
44
|
]
|
42
45
|
s.homepage = "http://github.com/grosser/gettext_i18n_rails"
|
43
46
|
s.require_paths = ["lib"]
|
44
|
-
s.rubygems_version = "1.8.
|
47
|
+
s.rubygems_version = "1.8.15"
|
45
48
|
s.summary = "Simple FastGettext Rails integration."
|
46
49
|
|
47
50
|
if s.respond_to? :specification_version then
|
@@ -14,18 +14,15 @@ module GettextI18nRails
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def parse(file, msgids = [])
|
17
|
-
return msgids unless
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
haml = Haml::Engine.new(text)
|
23
|
-
code = haml.precompiled
|
24
|
-
return RubyGettextExtractor.parse_string(code, file, msgids)
|
17
|
+
return msgids unless prepare_haml_parsing
|
18
|
+
text = File.read(file)
|
19
|
+
code = Haml::Engine.new(text).precompiled()
|
20
|
+
RubyGettextExtractor.parse_string(code, file, msgids)
|
25
21
|
end
|
26
22
|
|
27
|
-
def
|
23
|
+
def prepare_haml_parsing
|
28
24
|
return true if @haml_loaded
|
25
|
+
|
29
26
|
begin
|
30
27
|
require "#{::Rails.root.to_s}/vendor/plugins/haml/lib/haml"
|
31
28
|
rescue LoadError
|
@@ -36,8 +33,11 @@ module GettextI18nRails
|
|
36
33
|
return false
|
37
34
|
end
|
38
35
|
end
|
36
|
+
|
37
|
+
require 'gettext_i18n_rails/ruby_gettext_extractor'
|
39
38
|
@haml_loaded = true
|
40
39
|
end
|
41
40
|
end
|
42
41
|
end
|
42
|
+
|
43
43
|
GetText::RGetText.add_parser(GettextI18nRails::HamlParser)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'gettext/tools'
|
2
|
+
begin
|
3
|
+
require 'gettext/tools/rgettext'
|
4
|
+
rescue LoadError #version prior to 2.0
|
5
|
+
require 'gettext/rgettext'
|
6
|
+
end
|
7
|
+
|
8
|
+
module GettextI18nRails
|
9
|
+
module SlimParser
|
10
|
+
module_function
|
11
|
+
|
12
|
+
def target?(file)
|
13
|
+
File.extname(file) == '.slim'
|
14
|
+
end
|
15
|
+
|
16
|
+
def parse(file, msgids = [])
|
17
|
+
return msgids unless prepare_slim_parsing
|
18
|
+
text = File.read(file)
|
19
|
+
code = Slim::Engine.new.call(text)
|
20
|
+
RubyGettextExtractor.parse_string(code, file, msgids)
|
21
|
+
end
|
22
|
+
|
23
|
+
def prepare_slim_parsing
|
24
|
+
return true if @slim_loaded
|
25
|
+
begin
|
26
|
+
require 'slim'
|
27
|
+
rescue LoadError
|
28
|
+
puts "A slim file was found, but slim library could not be found, so nothing will be parsed..."
|
29
|
+
return false
|
30
|
+
end
|
31
|
+
require 'gettext_i18n_rails/ruby_gettext_extractor'
|
32
|
+
@slim_loaded = true
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
GetText::RGetText.add_parser(GettextI18nRails::SlimParser)
|
@@ -15,6 +15,7 @@ namespace :gettext do
|
|
15
15
|
load_gettext
|
16
16
|
$LOAD_PATH << File.join(File.dirname(__FILE__),'..','..','lib')
|
17
17
|
require 'gettext_i18n_rails/haml_parser'
|
18
|
+
require 'gettext_i18n_rails/slim_parser'
|
18
19
|
|
19
20
|
|
20
21
|
if GetText.respond_to? :update_pofiles_org
|
@@ -120,6 +121,6 @@ namespace :gettext do
|
|
120
121
|
end
|
121
122
|
|
122
123
|
def files_to_translate
|
123
|
-
Dir.glob("{app,lib,config,#{locale_path}}/**/*.{rb,erb,haml}")
|
124
|
+
Dir.glob("{app,lib,config,#{locale_path}}/**/*.{rb,erb,haml,slim}")
|
124
125
|
end
|
125
126
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "gettext_i18n_rails/haml_parser"
|
3
|
+
|
4
|
+
describe GettextI18nRails::HamlParser do
|
5
|
+
let(:parser){ GettextI18nRails::HamlParser }
|
6
|
+
|
7
|
+
describe "#target?" do
|
8
|
+
it "targets .haml" do
|
9
|
+
parser.target?('foo/bar/xxx.haml').should == true
|
10
|
+
end
|
11
|
+
|
12
|
+
it "does not target anything else" do
|
13
|
+
parser.target?('foo/bar/xxx.erb').should == false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#parse" do
|
18
|
+
it "finds messages in haml" do
|
19
|
+
with_file '= _("xxxx")' do |path|
|
20
|
+
parser.parse(path, []).should == [
|
21
|
+
["xxxx", "#{path}:1"]
|
22
|
+
]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "does not find messages in text" do
|
27
|
+
with_file '_("xxxx")' do |path|
|
28
|
+
parser.parse(path, []).should == []
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "gettext_i18n_rails/slim_parser"
|
3
|
+
|
4
|
+
describe GettextI18nRails::SlimParser do
|
5
|
+
let(:parser){ GettextI18nRails::SlimParser }
|
6
|
+
|
7
|
+
describe "#target?" do
|
8
|
+
it "targets .slim" do
|
9
|
+
parser.target?('foo/bar/xxx.slim').should == true
|
10
|
+
end
|
11
|
+
|
12
|
+
it "does not target anything else" do
|
13
|
+
parser.target?('foo/bar/xxx.erb').should == false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#parse" do
|
18
|
+
it "finds messages in slim" do
|
19
|
+
with_file 'div = _("xxxx")' do |path|
|
20
|
+
parser.parse(path, []).should == [
|
21
|
+
["xxxx", "#{path}:1"]
|
22
|
+
]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "does not find messages in text" do
|
27
|
+
with_file 'div _("xxxx")' do |path|
|
28
|
+
parser.parse(path, []).should == []
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,9 +2,38 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
$LOAD_PATH << File.expand_path("../lib", File.dirname(__FILE__))
|
4
4
|
|
5
|
+
require 'tempfile'
|
5
6
|
require 'active_support'
|
6
7
|
require 'active_record'
|
7
8
|
require 'action_controller'
|
8
9
|
require 'action_mailer'
|
9
10
|
require 'fast_gettext'
|
10
11
|
require 'gettext_i18n_rails'
|
12
|
+
|
13
|
+
begin
|
14
|
+
Gem.all_load_paths
|
15
|
+
rescue
|
16
|
+
puts "Fixing Gem.all_load_paths"
|
17
|
+
module Gem;def self.all_load_paths;[];end;end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Rails
|
21
|
+
def self.root
|
22
|
+
File.dirname(__FILE__)
|
23
|
+
end
|
24
|
+
|
25
|
+
module VERSION
|
26
|
+
MAJOR = 3
|
27
|
+
MINOR = 1
|
28
|
+
PATCH = 0
|
29
|
+
STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def with_file(content)
|
34
|
+
Tempfile.open('gettext_i18n_rails_specs') do |f|
|
35
|
+
f.write(content)
|
36
|
+
f.close
|
37
|
+
yield f.path
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gettext_i18n_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Grosser
|
@@ -15,10 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-10 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
prerelease: false
|
22
|
+
type: :runtime
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
24
|
none: false
|
23
25
|
requirements:
|
24
26
|
- - ">="
|
@@ -27,10 +29,8 @@ dependencies:
|
|
27
29
|
segments:
|
28
30
|
- 0
|
29
31
|
version: "0"
|
30
|
-
requirement: *id001
|
31
|
-
prerelease: false
|
32
|
-
type: :runtime
|
33
32
|
name: fast_gettext
|
33
|
+
version_requirements: *id001
|
34
34
|
description:
|
35
35
|
email: grosser.michael@gmail.com
|
36
36
|
executables: []
|
@@ -57,12 +57,15 @@ files:
|
|
57
57
|
- lib/gettext_i18n_rails/model_attributes_finder.rb
|
58
58
|
- lib/gettext_i18n_rails/railtie.rb
|
59
59
|
- lib/gettext_i18n_rails/ruby_gettext_extractor.rb
|
60
|
+
- lib/gettext_i18n_rails/slim_parser.rb
|
60
61
|
- lib/gettext_i18n_rails/string_interpolate_fix.rb
|
61
62
|
- lib/gettext_i18n_rails/tasks.rb
|
62
63
|
- lib/tasks/gettext_rails_i18n.rake
|
63
64
|
- spec/gettext_i18n_rails/action_controller_spec.rb
|
64
65
|
- spec/gettext_i18n_rails/active_record_spec.rb
|
65
66
|
- spec/gettext_i18n_rails/backend_spec.rb
|
67
|
+
- spec/gettext_i18n_rails/haml_parser_spec.rb
|
68
|
+
- spec/gettext_i18n_rails/slim_parser_spec.rb
|
66
69
|
- spec/gettext_i18n_rails/string_interpolate_fix_spec.rb
|
67
70
|
- spec/gettext_i18n_rails_spec.rb
|
68
71
|
- spec/spec_helper.rb
|
@@ -95,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
98
|
requirements: []
|
96
99
|
|
97
100
|
rubyforge_project:
|
98
|
-
rubygems_version: 1.8.
|
101
|
+
rubygems_version: 1.8.15
|
99
102
|
signing_key:
|
100
103
|
specification_version: 3
|
101
104
|
summary: Simple FastGettext Rails integration.
|