gettext_i18n_rails 0.6.6 → 0.7.0
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 +1 -1
- data/Gemfile.lock +12 -7
- data/Rakefile +4 -5
- data/Readme.md +6 -1
- data/gettext_i18n_rails.gemspec +1 -1
- data/lib/gettext_i18n_rails.rb +7 -7
- data/lib/gettext_i18n_rails/base_parser.rb +10 -7
- data/lib/gettext_i18n_rails/gettext_hooks.rb +31 -0
- data/lib/gettext_i18n_rails/haml_parser.rb +0 -2
- data/lib/gettext_i18n_rails/hamlet_parser.rb +0 -3
- data/lib/gettext_i18n_rails/ruby_gettext_extractor.rb +0 -11
- data/lib/gettext_i18n_rails/slim_parser.rb +0 -2
- data/lib/gettext_i18n_rails/tasks.rb +4 -4
- data/lib/gettext_i18n_rails/version.rb +1 -1
- data/spec/gettext_i18n_rails/gettext_hooks_spec.rb +28 -0
- data/spec/spec_helper.rb +5 -1
- metadata +8 -6
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/ruby-gettext/gettext.git
|
3
|
+
revision: 3c4822399d587831a479df7db2b1b28de0216093
|
4
|
+
specs:
|
5
|
+
gettext (2.3.1)
|
6
|
+
locale
|
7
|
+
|
1
8
|
PATH
|
2
9
|
remote: .
|
3
10
|
specs:
|
4
|
-
gettext_i18n_rails (0.
|
5
|
-
fast_gettext
|
11
|
+
gettext_i18n_rails (0.7.0)
|
12
|
+
fast_gettext (>= 0.4.8)
|
6
13
|
|
7
14
|
GEM
|
8
15
|
remote: http://rubygems.org/
|
@@ -38,9 +45,7 @@ GEM
|
|
38
45
|
builder (3.0.0)
|
39
46
|
diff-lcs (1.1.2)
|
40
47
|
erubis (2.7.0)
|
41
|
-
fast_gettext (0.6.
|
42
|
-
gettext (2.1.0)
|
43
|
-
locale (>= 2.0.5)
|
48
|
+
fast_gettext (0.6.9)
|
44
49
|
haml (3.1.4)
|
45
50
|
hamlet (0.1)
|
46
51
|
slim (~> 1.0)
|
@@ -48,7 +53,7 @@ GEM
|
|
48
53
|
i18n (0.6.0)
|
49
54
|
journey (1.0.4)
|
50
55
|
json (1.7.3)
|
51
|
-
locale (2.0.
|
56
|
+
locale (2.0.8)
|
52
57
|
mail (2.4.4)
|
53
58
|
i18n (>= 0.4.0)
|
54
59
|
mime-types (~> 1.16)
|
@@ -112,7 +117,7 @@ PLATFORMS
|
|
112
117
|
ruby
|
113
118
|
|
114
119
|
DEPENDENCIES
|
115
|
-
gettext
|
120
|
+
gettext (= 2.3.1)!
|
116
121
|
gettext_i18n_rails!
|
117
122
|
haml
|
118
123
|
hamlet
|
data/Rakefile
CHANGED
@@ -13,18 +13,17 @@ end
|
|
13
13
|
|
14
14
|
# extracted from https://github.com/grosser/project_template
|
15
15
|
rule /^version:bump:.*/ do |t|
|
16
|
-
|
17
|
-
index = ['major', 'minor','patch'].index(t.name.split(':').last)
|
18
|
-
file = 'lib/gettext_i18n_rails/version.rb'
|
16
|
+
file = "lib/gettext_i18n_rails/version.rb"
|
19
17
|
|
18
|
+
sh "git status | grep 'nothing to commit'" # ensure we are not dirty
|
19
|
+
index = ["major", "minor", "patch"].index(t.name.split(':').last)
|
20
20
|
version_file = File.read(file)
|
21
21
|
old_version, *version_parts = version_file.match(/(\d+)\.(\d+)\.(\d+)/).to_a
|
22
22
|
version_parts[index] = version_parts[index].to_i + 1
|
23
23
|
version_parts[2] = 0 if index < 2 # remove patch for minor
|
24
24
|
version_parts[1] = 0 if index < 1 # remove minor for major
|
25
25
|
new_version = version_parts * '.'
|
26
|
-
File.open(file,'w'){|f| f.write(version_file.sub(old_version, new_version)) }
|
27
26
|
|
27
|
+
File.open(file,"w"){|f| f.write(version_file.sub(old_version, new_version)) }
|
28
28
|
sh "bundle && git add #{file} Gemfile.lock && git commit -m 'bump version to #{new_version}'"
|
29
29
|
end
|
30
|
-
|
data/Readme.md
CHANGED
@@ -203,6 +203,11 @@ lib/tasks/gettext.rake:
|
|
203
203
|
end
|
204
204
|
end
|
205
205
|
|
206
|
+
Using your translations from javascript
|
207
|
+
=======================================
|
208
|
+
|
209
|
+
If want to use your .PO files on client side javascript you should have a look at the [GettextI18nRailsJs](https://github.com/nubis/gettext_i18n_rails_js) extension.
|
210
|
+
|
206
211
|
[Contributors](http://github.com/grosser/gettext_i18n_rails/contributors)
|
207
212
|
======
|
208
213
|
- [ruby gettext extractor](http://github.com/retoo/ruby_gettext_extractor/tree/master) from [retoo](http://github.com/retoo)
|
@@ -227,4 +232,4 @@ lib/tasks/gettext.rake:
|
|
227
232
|
|
228
233
|
[Michael Grosser](http://grosser.it)<br/>
|
229
234
|
grosser.michael@gmail.com<br/>
|
230
|
-
|
235
|
+
License: MIT
|
data/gettext_i18n_rails.gemspec
CHANGED
@@ -9,5 +9,5 @@ Gem::Specification.new name, GettextI18nRails::VERSION do |s|
|
|
9
9
|
s.homepage = "http://github.com/grosser/#{name}"
|
10
10
|
s.files = `git ls-files`.split("\n")
|
11
11
|
s.license = "MIT"
|
12
|
-
s.add_runtime_dependency "fast_gettext"
|
12
|
+
s.add_runtime_dependency "fast_gettext", ">=0.4.8"
|
13
13
|
end
|
data/lib/gettext_i18n_rails.rb
CHANGED
@@ -1,15 +1,11 @@
|
|
1
1
|
require 'gettext_i18n_rails/version'
|
2
|
+
require 'gettext_i18n_rails/gettext_hooks'
|
2
3
|
|
3
4
|
module GettextI18nRails
|
4
|
-
extend self
|
5
5
|
end
|
6
6
|
|
7
|
+
# translate from everywhere
|
7
8
|
require 'fast_gettext'
|
8
|
-
if Gem::Version.new(FastGettext::VERSION) < Gem::Version.new("0.4.8")
|
9
|
-
raise "Please upgrade fast_gettext"
|
10
|
-
end
|
11
|
-
|
12
|
-
# include translations into all the places it needs to go...
|
13
9
|
Object.send(:include, FastGettext::Translation)
|
14
10
|
|
15
11
|
# make translations html_safe if possible and wanted
|
@@ -18,11 +14,14 @@ if "".respond_to?(:html_safe?)
|
|
18
14
|
Object.send(:include, GettextI18nRails::HtmlSafeTranslations)
|
19
15
|
end
|
20
16
|
|
17
|
+
# set up the backend
|
21
18
|
require 'gettext_i18n_rails/backend'
|
22
19
|
I18n.backend = GettextI18nRails::Backend.new
|
23
20
|
|
21
|
+
# make I18n play nice with FastGettext
|
24
22
|
require 'gettext_i18n_rails/i18n_hacks'
|
25
23
|
|
24
|
+
# translate activerecord errors
|
26
25
|
if defined? Rails::Railtie # Rails 3+
|
27
26
|
# load active_model extensions at the correct point in time
|
28
27
|
require 'gettext_i18n_rails/railtie'
|
@@ -34,4 +33,5 @@ else
|
|
34
33
|
end
|
35
34
|
end
|
36
35
|
|
37
|
-
|
36
|
+
# make bundle console work in a rails project
|
37
|
+
require 'gettext_i18n_rails/action_controller' if defined?(ActionController)
|
@@ -1,12 +1,15 @@
|
|
1
|
-
require 'gettext/utils'
|
2
|
-
begin
|
3
|
-
require 'gettext/tools/rgettext'
|
4
|
-
rescue LoadError #version prior to 2.0
|
5
|
-
require 'gettext/rgettext'
|
6
|
-
end
|
7
|
-
|
8
1
|
module GettextI18nRails
|
9
2
|
class BaseParser
|
3
|
+
# copy AS 3 feature so we can play nicely with AS2 and if rails env is not there
|
4
|
+
class << self
|
5
|
+
attr_accessor :parser_descendants
|
6
|
+
end
|
7
|
+
self.parser_descendants = []
|
8
|
+
|
9
|
+
def self.inherited(subclass)
|
10
|
+
parser_descendants << subclass
|
11
|
+
end
|
12
|
+
|
10
13
|
def self.target?(file)
|
11
14
|
File.extname(file) == ".#{extension}"
|
12
15
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module GettextI18nRails
|
2
|
+
module GettextHooks
|
3
|
+
def self.add_parsers_to_gettext
|
4
|
+
return if @add_parsers_to_gettext
|
5
|
+
@add_parsers_to_gettext = true
|
6
|
+
|
7
|
+
require "gettext_i18n_rails/haml_parser"
|
8
|
+
require "gettext_i18n_rails/hamlet_parser"
|
9
|
+
require "gettext_i18n_rails/slim_parser"
|
10
|
+
|
11
|
+
GettextI18nRails::BaseParser.parser_descendants.each do |parser|
|
12
|
+
xgettext.add_parser(parser)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.xgettext
|
17
|
+
@xgettext ||= begin
|
18
|
+
require 'gettext/tools/xgettext' # 2.3+
|
19
|
+
GetText::Tools::XGetText
|
20
|
+
rescue LoadError
|
21
|
+
begin
|
22
|
+
require 'gettext/tools/rgettext' # 2.0 - 2.2
|
23
|
+
GetText::RGetText
|
24
|
+
rescue LoadError # # 1.x
|
25
|
+
require 'gettext/rgettext'
|
26
|
+
GetText::RGetText
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,17 +1,6 @@
|
|
1
1
|
# new ruby parser from retoo, that should help extracting "#{_('xxx')}", which is needed especially when parsing haml files
|
2
|
-
#
|
3
|
-
#!/usr/bin/ruby
|
4
|
-
# parser/ruby.rb - look for gettext msg strings in ruby files
|
5
|
-
|
6
|
-
require 'rubygems'
|
7
2
|
require 'ruby_parser'
|
8
3
|
|
9
|
-
begin
|
10
|
-
require 'gettext/tools/rgettext'
|
11
|
-
rescue LoadError #version prior to 2.0
|
12
|
-
require 'gettext/rgettext'
|
13
|
-
end
|
14
|
-
|
15
4
|
module RubyGettextExtractor
|
16
5
|
extend self
|
17
6
|
|
@@ -2,6 +2,7 @@ namespace :gettext do
|
|
2
2
|
def load_gettext
|
3
3
|
require 'gettext'
|
4
4
|
require 'gettext/utils'
|
5
|
+
require 'gettext_i18n_rails/gettext_hooks'
|
5
6
|
end
|
6
7
|
|
7
8
|
desc "Create mo-files for L10n"
|
@@ -13,11 +14,9 @@ namespace :gettext do
|
|
13
14
|
desc "Update pot/po files."
|
14
15
|
task :find => :environment do
|
15
16
|
load_gettext
|
16
|
-
$LOAD_PATH << File.join(File.dirname(__FILE__),'..','..','lib')
|
17
|
-
require 'gettext_i18n_rails/haml_parser'
|
18
|
-
require 'gettext_i18n_rails/slim_parser'
|
19
|
-
require 'gettext_i18n_rails/hamlet_parser'
|
17
|
+
$LOAD_PATH << File.join(File.dirname(__FILE__),'..','..','lib') # needed when installed as plugin
|
20
18
|
|
19
|
+
GettextI18nRails::GettextHooks.add_parsers_to_gettext
|
21
20
|
|
22
21
|
if GetText.respond_to? :update_pofiles_org
|
23
22
|
if defined?(Rails.application)
|
@@ -120,6 +119,7 @@ namespace :gettext do
|
|
120
119
|
ENV['TEXTDOMAIN'] || (FastGettext.text_domain rescue nil) || "app"
|
121
120
|
end
|
122
121
|
|
122
|
+
# do not rename, gettext_i18n_rails_js overwrites this to inject coffee + js
|
123
123
|
def files_to_translate
|
124
124
|
Dir.glob("{app,lib,config,#{locale_path}}/**/*.{rb,erb,haml,slim}")
|
125
125
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe GettextI18nRails::GettextHooks do
|
4
|
+
describe ".add_parsers_to_gettext" do
|
5
|
+
def parsers
|
6
|
+
GettextI18nRails::GettextHooks.xgettext # load XGetText
|
7
|
+
GettextI18nRails::GettextHooks.instance_variable_set(:@add_parsers_to_gettext, nil) # can add_parsers_to_gettext multiple times
|
8
|
+
GetText::Tools::XGetText.class_variable_get(:@@default_parsers)
|
9
|
+
end
|
10
|
+
|
11
|
+
before do
|
12
|
+
parsers.clear
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should add all parsers to gettext" do
|
16
|
+
expect{
|
17
|
+
GettextI18nRails::GettextHooks.add_parsers_to_gettext
|
18
|
+
}.to change{ parsers.size }.by(+3)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should not add them twice" do
|
22
|
+
expect{
|
23
|
+
GettextI18nRails::GettextHooks.add_parsers_to_gettext
|
24
|
+
GettextI18nRails::GettextHooks.add_parsers_to_gettext
|
25
|
+
}.to change{ parsers.size }.by(+3)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -79,7 +79,11 @@ class Part < ActiveRecord::Base
|
|
79
79
|
end
|
80
80
|
|
81
81
|
class NotConventional < ActiveRecord::Base
|
82
|
-
|
82
|
+
if ActiveRecord::VERSION::MAJOR == 3
|
83
|
+
self.table_name = :not_at_all_conventionals
|
84
|
+
else
|
85
|
+
set_table_name :not_at_all_conventionals
|
86
|
+
end
|
83
87
|
end
|
84
88
|
|
85
89
|
class Idea < ActiveRecord::Base
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gettext_i18n_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fast_gettext
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.4.8
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 0.4.8
|
30
30
|
description:
|
31
31
|
email: michael@grosser.it
|
32
32
|
executables: []
|
@@ -46,6 +46,7 @@ files:
|
|
46
46
|
- lib/gettext_i18n_rails/active_record.rb
|
47
47
|
- lib/gettext_i18n_rails/backend.rb
|
48
48
|
- lib/gettext_i18n_rails/base_parser.rb
|
49
|
+
- lib/gettext_i18n_rails/gettext_hooks.rb
|
49
50
|
- lib/gettext_i18n_rails/haml_parser.rb
|
50
51
|
- lib/gettext_i18n_rails/hamlet_parser.rb
|
51
52
|
- lib/gettext_i18n_rails/html_safe_translations.rb
|
@@ -62,6 +63,7 @@ files:
|
|
62
63
|
- spec/gettext_i18n_rails/active_model_spec.rb
|
63
64
|
- spec/gettext_i18n_rails/active_record_spec.rb
|
64
65
|
- spec/gettext_i18n_rails/backend_spec.rb
|
66
|
+
- spec/gettext_i18n_rails/gettext_hooks_spec.rb
|
65
67
|
- spec/gettext_i18n_rails/haml_parser_spec.rb
|
66
68
|
- spec/gettext_i18n_rails/hamlet_parser_spec.rb
|
67
69
|
- spec/gettext_i18n_rails/model_attributes_finder_spec.rb
|
@@ -84,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
84
86
|
version: '0'
|
85
87
|
segments:
|
86
88
|
- 0
|
87
|
-
hash:
|
89
|
+
hash: 1552868683702405680
|
88
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
91
|
none: false
|
90
92
|
requirements:
|
@@ -93,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
95
|
version: '0'
|
94
96
|
segments:
|
95
97
|
- 0
|
96
|
-
hash:
|
98
|
+
hash: 1552868683702405680
|
97
99
|
requirements: []
|
98
100
|
rubyforge_project:
|
99
101
|
rubygems_version: 1.8.24
|