amatsuda-i18n_generators 0.0.7 → 0.0.8
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/README.rdoc
CHANGED
@@ -11,25 +11,25 @@ This gem/plugin provides following three script/generate commands.
|
|
11
11
|
|
12
12
|
=== 1. Generate Locale Files for ActiveRecord/ActiveSupport/ActionPack
|
13
13
|
|
14
|
-
% ./script/generate i18n_locales ja
|
14
|
+
% ./script/generate i18n_locales ja (de-AT, pt-BR, etc.)
|
15
15
|
|
16
16
|
This will generate following locale files.
|
17
17
|
|
18
18
|
config/initializers/i18n_config.rb
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
config/locales/action_view_ja.yml
|
20
|
+
config/locales/active_record_ja.yml
|
21
|
+
config/locales/active_support_ja.yml
|
22
22
|
|
23
|
-
Basically, all the generated .yml files in
|
23
|
+
Basically, all the generated .yml files in config/locale directory are copied from en-US.yml files bundled inside Rails framework, and each attribute value is one-to-one localized/translated into the specified locale/language.
|
24
24
|
Also, the generated config file adds the generated .yml files to the I18n load_path, and sets the application default locale to the specified locale.
|
25
25
|
|
26
26
|
=== 2. Generate Models/Attributes Translation Yaml File For All Models
|
27
27
|
|
28
|
-
% ./script/generate i18n_models ja
|
28
|
+
% ./script/generate i18n_models ja (de-AT, pt-BR, etc.)
|
29
29
|
|
30
30
|
This will generate following YAML file.
|
31
31
|
|
32
|
-
|
32
|
+
config/locales/models_ja.yml
|
33
33
|
|
34
34
|
This file contains definitions of all the AR model names and attributes in your app/models directory, so that you don't have to write the YAML skeleton manually or by copy/paste.
|
35
35
|
In addition, the generator tries to translate each of them into the specified language.
|
@@ -37,9 +37,9 @@ The generator doesn't overwrite the existing value so that you can rerun the gen
|
|
37
37
|
|
38
38
|
=== 3. Generate All
|
39
39
|
|
40
|
-
% ./script/generate i18n ja
|
40
|
+
% ./script/generate i18n ja (de-AT, pt-BR, etc.)
|
41
41
|
|
42
|
-
Generates all the i18n_locales and
|
42
|
+
Generates all the i18n_locales and i18n_models files at once.
|
43
43
|
|
44
44
|
== REQUIREMENTS:
|
45
45
|
|
@@ -1,6 +1,6 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'rails_generator'
|
2
3
|
require 'rails_generator/commands'
|
3
|
-
require 'rubygems'
|
4
4
|
require 'gettext'
|
5
5
|
|
6
6
|
class I18nGenerator < Rails::Generator::NamedBase
|
@@ -8,11 +8,11 @@ class I18nGenerator < Rails::Generator::NamedBase
|
|
8
8
|
|
9
9
|
def initialize(runtime_args, runtime_options = {})
|
10
10
|
super
|
11
|
-
unless name =~
|
12
|
-
puts 'ERROR: Wrong locale format. Please input in ??-?? format.'
|
11
|
+
unless name =~ /^[a-zA-Z]{2}([-_][a-zA-Z]{2})?$/
|
12
|
+
puts 'ERROR: Wrong locale format. Please input in ?? or ??-?? format.'
|
13
13
|
exit
|
14
14
|
end
|
15
|
-
@locale_name = "#{name[0..1].downcase}-#{name[3..4].upcase}"
|
15
|
+
@locale_name = name.length == 5 ? "#{name[0..1].downcase}-#{name[3..4].upcase}" : "#{name[0..1].downcase}"
|
16
16
|
GetText.bindtextdomain 'rails'
|
17
17
|
GetText.locale = @locale_name
|
18
18
|
|
@@ -27,9 +27,9 @@ class I18nGenerator < Rails::Generator::NamedBase
|
|
27
27
|
|
28
28
|
def manifest
|
29
29
|
record do |m|
|
30
|
-
m.directory '
|
30
|
+
m.directory 'config/locales'
|
31
31
|
unless self.generate_models_only
|
32
|
-
m.
|
32
|
+
m.generate_configuration
|
33
33
|
m.active_support_yaml
|
34
34
|
m.active_record_yaml
|
35
35
|
m.action_view_yaml
|
@@ -1,6 +1,6 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'rails_generator'
|
2
3
|
require 'rails_generator/commands'
|
3
|
-
require 'rubygems'
|
4
4
|
require 'gettext'
|
5
5
|
require File.join(File.dirname(__FILE__), 'lib/yaml')
|
6
6
|
require File.join(File.dirname(__FILE__), 'lib/cldr')
|
@@ -9,6 +9,18 @@ include I18nLocalesGeneratorModule
|
|
9
9
|
module I18nGenerator::Generator
|
10
10
|
module Commands #:nodoc:
|
11
11
|
module Create
|
12
|
+
def generate_configuration
|
13
|
+
if Rails.configuration.respond_to? :i18n # Edge
|
14
|
+
# edit environment.rb file
|
15
|
+
environment = add_locale_config File.read(File.join(Rails.root, 'config/environment.rb'))
|
16
|
+
File.open File.join(Rails.root, 'config/environment.rb'), 'w' do |f|
|
17
|
+
f.puts environment
|
18
|
+
end
|
19
|
+
else
|
20
|
+
m.template 'i18n:i18n_config.rb', 'config/initializers/i18n_config.rb', :assigns => {:locale_name => locale_name}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
12
24
|
def active_support_yaml
|
13
25
|
open_yaml('active_support') do |yaml|
|
14
26
|
yaml[locale_name].descendant_nodes do |node|
|
@@ -62,11 +74,29 @@ module I18nGenerator::Generator
|
|
62
74
|
end
|
63
75
|
|
64
76
|
private
|
77
|
+
def add_locale_config(environment_contents)
|
78
|
+
(arr = environment_contents.split("\n")).each_with_index do |l, i|
|
79
|
+
if l =~ /^\s*config\.i18n\.default_locale = /
|
80
|
+
arr[i] = " config.i18n.default_locale = '#{locale_name}'"
|
81
|
+
return arr.join("\n")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
arr.each_with_index do |l, i|
|
85
|
+
if l =~ /^\s*#?\s*config\.i18n\.default_locale = /
|
86
|
+
arr[i] = " config.i18n.default_locale = '#{locale_name}'"
|
87
|
+
return arr.join("\n")
|
88
|
+
end
|
89
|
+
end
|
90
|
+
# hope you're all using Ruby >= 1.8.7...
|
91
|
+
end_row = arr.respond_to?(:rindex) ? arr.rindex {|l| l =~ /^\s*end\s*/} : arr.size - 1
|
92
|
+
((arr[0...end_row] << " config.i18n.default_locale = '#{locale_name}'") + arr[end_row..-1]).join("\n")
|
93
|
+
end
|
94
|
+
|
65
95
|
def open_yaml(filename_base)
|
66
|
-
original_yml = I18n.load_path.detect {|lp| lp =~ /\/lib\/#{filename_base}\/locale\/en-US\.yml$/}
|
96
|
+
original_yml = I18n.load_path.detect {|lp| lp =~ /\/lib\/#{filename_base}\/locale\/(en|en-US)\.yml$/}
|
67
97
|
doc = YamlDocument.new(original_yml, locale_name)
|
68
98
|
yield doc
|
69
|
-
file('i18n:base.yml', "
|
99
|
+
file('i18n:base.yml', "config/locales/#{filename_base}_#{locale_name}.yml") do |f|
|
70
100
|
doc.to_s
|
71
101
|
end
|
72
102
|
end
|
@@ -6,7 +6,7 @@ module I18nLocalesGeneratorModule
|
|
6
6
|
@locale_name, @nodes = locale_name, []
|
7
7
|
File.read(yml_path).each_with_index do |line_text, i|
|
8
8
|
n = Node.new(self, i, line_text.chomp)
|
9
|
-
@nodes << (n.key == 'en-US' ? Node.new(self, i, "#{locale_name}:") : n)
|
9
|
+
@nodes << (((n.key == 'en-US') || (n.key == 'en')) ? Node.new(self, i, "#{locale_name}:") : n)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -49,7 +49,7 @@ END
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def generate_yaml(locale_name, models)
|
52
|
-
template 'i18n:models.yml', "
|
52
|
+
template 'i18n:models.yml', "config/locales/models_#{locale_name}.yml", :assigns => {:locale_name => locale_name, :models => models}
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amatsuda-i18n_generators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-11-
|
12
|
+
date: 2008-11-21 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|