i18n_generators 0.8.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.
Files changed (44) hide show
  1. data/.gitignore +1 -0
  2. data/History.txt +104 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.rdoc +104 -0
  5. data/Rakefile +38 -0
  6. data/VERSION +1 -0
  7. data/generators/i18n/USAGE +13 -0
  8. data/generators/i18n/i18n_generator.rb +85 -0
  9. data/generators/i18n/lib/yaml.rb +187 -0
  10. data/generators/i18n/templates/base.yml +0 -0
  11. data/generators/i18n/templates/i18n_config.rb +5 -0
  12. data/generators/i18n/templates/translation.yml +1 -0
  13. data/generators/i18n_locale/USAGE +12 -0
  14. data/generators/i18n_locale/i18n_locale_command.rb +135 -0
  15. data/generators/i18n_locale/i18n_locale_generator.rb +9 -0
  16. data/generators/i18n_locale/lib/cldr.rb +139 -0
  17. data/generators/i18n_scaffold/i18n_scaffold_generator.rb +3 -0
  18. data/generators/i18n_scaffold/templates/controller.rb +85 -0
  19. data/generators/i18n_scaffold/templates/functional_test.rb +45 -0
  20. data/generators/i18n_scaffold/templates/helper.rb +2 -0
  21. data/generators/i18n_scaffold/templates/helper_test.rb +4 -0
  22. data/generators/i18n_scaffold/templates/layout.html.erb +17 -0
  23. data/generators/i18n_scaffold/templates/style.css +54 -0
  24. data/generators/i18n_scaffold/templates/view_edit.html.erb +18 -0
  25. data/generators/i18n_scaffold/templates/view_index.html.erb +24 -0
  26. data/generators/i18n_scaffold/templates/view_new.html.erb +17 -0
  27. data/generators/i18n_scaffold/templates/view_show.html.erb +10 -0
  28. data/generators/i18n_translation/USAGE +9 -0
  29. data/generators/i18n_translation/i18n_translation_command.rb +121 -0
  30. data/generators/i18n_translation/i18n_translation_generator.rb +9 -0
  31. data/generators/i18n_translation/lib/erb_executer.rb +31 -0
  32. data/generators/i18n_translation/lib/recording_backend.rb +16 -0
  33. data/generators/i18n_translation/lib/through_ryoku.rb +8 -0
  34. data/generators/i18n_translation/lib/translator.rb +28 -0
  35. data/i18n_generators.gemspec +87 -0
  36. data/spec/cldr_spec.rb +54 -0
  37. data/spec/data/cldr/ja.html +3112 -0
  38. data/spec/data/yml/active_record/en-US.yml +54 -0
  39. data/spec/i18n_locale_command_spec.rb +63 -0
  40. data/spec/i18n_translation_command_spec.rb +24 -0
  41. data/spec/spec_helper.rb +39 -0
  42. data/spec/translator_spec.rb +46 -0
  43. data/spec/yaml_spec.rb +59 -0
  44. metadata +114 -0
@@ -0,0 +1,54 @@
1
+ en-US:
2
+ activerecord:
3
+ errors:
4
+ # The values :model, :attribute and :value are always available for interpolation
5
+ # The value :count is available when applicable. Can be used for pluralization.
6
+ messages:
7
+ inclusion: "is not included in the list"
8
+ exclusion: "is reserved"
9
+ invalid: "is invalid"
10
+ confirmation: "doesn't match confirmation"
11
+ accepted: "must be accepted"
12
+ empty: "can't be empty"
13
+ blank: "can't be blank"
14
+ too_long: "is too long (maximum is {{count}} characters)"
15
+ too_short: "is too short (minimum is {{count}} characters)"
16
+ wrong_length: "is the wrong length (should be {{count}} characters)"
17
+ taken: "has already been taken"
18
+ not_a_number: "is not a number"
19
+ greater_than: "must be greater than {{count}}"
20
+ greater_than_or_equal_to: "must be greater than or equal to {{count}}"
21
+ equal_to: "must be equal to {{count}}"
22
+ less_than: "must be less than {{count}}"
23
+ less_than_or_equal_to: "must be less than or equal to {{count}}"
24
+ odd: "must be odd"
25
+ even: "must be even"
26
+ # Append your own errors here or at the model/attributes scope.
27
+
28
+ # You can define own errors for models or model attributes.
29
+ # The values :model, :attribute and :value are always available for interpolation.
30
+ #
31
+ # For example,
32
+ # models:
33
+ # user:
34
+ # blank: "This is a custom blank message for {{model}}: {{attribute}}"
35
+ # attributes:
36
+ # login:
37
+ # blank: "This is a custom blank message for User login"
38
+ # Will define custom blank validation message for User model and
39
+ # custom blank validation message for login attribute of User model.
40
+ models:
41
+
42
+ # Translate model names. Used in Model.human_name().
43
+ #models:
44
+ # For example,
45
+ # user: "Dude"
46
+ # will translate User model name to "Dude"
47
+
48
+ # Translate model attribute names. Used in Model.human_attribute_name(attribute).
49
+ #attributes:
50
+ # For example,
51
+ # user:
52
+ # login: "Handle"
53
+ # will translate User attribute "login" as "Handle"
54
+
@@ -0,0 +1,63 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+ require File.join(File.dirname(__FILE__), '/../generators/i18n_locale/i18n_locale_command')
3
+
4
+ describe I18nGenerator::Generator::Commands::Create do
5
+ before do
6
+ (@command = Object.new).extend I18nGenerator::Generator::Commands::Create
7
+ @command.stub!(:locale_name).and_return('ja')
8
+ end
9
+
10
+ describe 'add_locale_config' do
11
+ describe 'when i18n.default_locale is configured in environment.rb' do
12
+ before do
13
+ @config = "
14
+ Rails::Initializer.run do |config|
15
+ config.i18n.default_locale = :de
16
+ end"
17
+ end
18
+
19
+ it 'rewrites the existing default_locale to locale_name value' do
20
+ @command.send(:add_locale_config, @config).should == "
21
+ Rails::Initializer.run do |config|
22
+ config.i18n.default_locale = 'ja'
23
+ end"
24
+ end
25
+ end
26
+
27
+ describe 'when i18n.default_locale config is commented in environment.rb' do
28
+ before do
29
+ @config = "
30
+ Rails::Initializer.run do |config|
31
+ # config.i18n.default_locale = :de
32
+ end"
33
+ end
34
+
35
+ it 'uncomments the existing commented i18n config and sets locale_name value' do
36
+ @command.send(:add_locale_config, @config).should == "
37
+ Rails::Initializer.run do |config|
38
+ config.i18n.default_locale = 'ja'
39
+ end"
40
+ end
41
+ end
42
+
43
+ describe 'when i18n.default_locale is not written in environment.rb' do
44
+ before do
45
+ @config = "
46
+ Rails::Initializer.run do |config|
47
+ something goes here.
48
+ bla bla bla...
49
+ end"
50
+ end
51
+
52
+ it 'adds the default_locale config inside the config block and sets locale_name value' do
53
+ @command.send(:add_locale_config, @config).should == "
54
+ Rails::Initializer.run do |config|
55
+ config.i18n.default_locale = 'ja'
56
+ something goes here.
57
+ bla bla bla...
58
+ end"
59
+ end
60
+ end
61
+ end
62
+ end
63
+
@@ -0,0 +1,24 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+ require File.join(File.dirname(__FILE__), '/../generators/i18n_translation/i18n_translation_command')
3
+
4
+ describe I18nGenerator::Generator::Commands::Create do
5
+ before do
6
+ (@command = Object.new).extend I18nGenerator::Generator::Commands::Create
7
+ @command.stub!(:locale_name).and_return('ja')
8
+ end
9
+
10
+ describe 'each_value' do
11
+ it 'iterates through each value' do
12
+ hash = ActiveSupport::OrderedHash.new
13
+ hash[:parent1] = ActiveSupport::OrderedHash.new
14
+ hash[:parent1][:child1] = 'child one'
15
+ hash[:parent2] = ActiveSupport::OrderedHash.new
16
+ hash[:parent2][:child2] = 'child two'
17
+ hash[:parent2][:child3] = 'child three'
18
+ @command.__send__(:each_value, [], hash) do |parents, value|
19
+ p "#{parents.join('.')} #{value}"
20
+ end
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,39 @@
1
+ # This file is copied to ~/spec when you run 'ruby script/generate rspec'
2
+ # from the project root directory.
3
+ require 'rubygems'
4
+ require 'spec'
5
+ require 'activesupport'
6
+
7
+ Spec::Runner.configure do |config|
8
+ # == Fixtures
9
+ #
10
+ # You can declare fixtures for each example_group like this:
11
+ # describe "...." do
12
+ # fixtures :table_a, :table_b
13
+ #
14
+ # Alternatively, if you prefer to declare them only once, you can
15
+ # do so right here. Just uncomment the next line and replace the fixture
16
+ # names with your fixtures.
17
+ #
18
+ # config.global_fixtures = :table_a, :table_b
19
+ #
20
+ # If you declare global fixtures, be aware that they will be declared
21
+ # for all of your examples, even those that don't use them.
22
+ #
23
+ # You can also declare which fixtures to use (for example fixtures for test/fixtures):
24
+ #
25
+ # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
26
+ #
27
+ # == Mock Framework
28
+ #
29
+ # RSpec uses it's own mocking framework by default. If you prefer to
30
+ # use mocha, flexmock or RR, uncomment the appropriate line:
31
+ #
32
+ # config.mock_with :mocha
33
+ # config.mock_with :flexmock
34
+ # config.mock_with :rr
35
+ #
36
+ # == Notes
37
+ #
38
+ # For more information take a look at Spec::Example::Configuration and Spec::Runner
39
+ end
@@ -0,0 +1,46 @@
1
+ $KCODE = 'U'
2
+
3
+ require File.join(File.dirname(__FILE__), 'spec_helper')
4
+ require File.join(File.dirname(__FILE__), '../generators/i18n_translation/lib/translator')
5
+ include I18nTranslationGeneratorModule
6
+
7
+ describe Translator do
8
+ before(:each) do
9
+ @translator = Translator.new 'ja'
10
+ end
11
+
12
+ describe 'when successfully translated' do
13
+ before do
14
+ res_200 = mock('res_200')
15
+ res_200.stub!(:read).and_return('{"responseData": {"translatedText":"こんにちは"}, "responseDetails": null, "responseStatus": 200}')
16
+ OpenURI.stub!(:open_uri).and_return(res_200)
17
+ end
18
+
19
+ it 'returns translated text' do
20
+ @translator.translate('hello').should == 'こんにちは'
21
+ end
22
+ end
23
+
24
+ describe 'when translation failed with error code' do
25
+ before do
26
+ res_500 = mock('res_500')
27
+ res_500.stub!(:read).and_return('{"responseData": {"translatedText":"こんにちは?"}, "responseDetails": null, "responseStatus": 500}')
28
+ OpenURI.stub!(:open_uri).and_return(res_500)
29
+ end
30
+
31
+ it 'returns the original text' do
32
+ @translator.translate('hello').should == 'hello'
33
+ end
34
+ end
35
+
36
+ describe 'when translation raised an error' do
37
+ before do
38
+ OpenURI.stub!(:open_uri).and_raise('ERROR!')
39
+ end
40
+
41
+ it 'returns the original text' do
42
+ @translator.translate('hello').should == 'hello'
43
+ end
44
+ end
45
+ end
46
+
data/spec/yaml_spec.rb ADDED
@@ -0,0 +1,59 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+ require File.join(File.dirname(__FILE__), '/../generators/i18n/lib/yaml')
3
+
4
+ include I18nLocaleGeneratorModule
5
+
6
+ describe 'Yaml' do
7
+ before :each do
8
+ @yaml = YamlDocument.new File.join(File.dirname(__FILE__), 'data/yml/active_record/en-US.yml'), 'ja'
9
+ end
10
+
11
+ describe YamlDocument do
12
+ it 'should return the top level node with the square bracket method' do
13
+ node = @yaml['ja']
14
+ node.should be_an_instance_of(Node)
15
+ node.key.should == 'ja'
16
+ end
17
+
18
+ it 'should generate a path string on the top node' do
19
+ @yaml['ja'].path.should == '/ja'
20
+ end
21
+ end
22
+
23
+ describe Node do
24
+ before do
25
+ @node = Node.new @yaml, 100, 'foo: bar'
26
+ end
27
+
28
+ it 'should return a key string from input text' do
29
+ @node.key.should == 'foo'
30
+ end
31
+
32
+ it 'should return a value string from input text' do
33
+ @node.value.should == 'bar'
34
+ end
35
+
36
+ it 'should generate a path string on any node' do
37
+ @yaml['ja']['activerecord']['errors']['messages'].path.should == '/ja/activerecord/errors/messages'
38
+ end
39
+
40
+ describe '[] method' do
41
+ describe 'when a child with the specified key exists' do
42
+ it 'should return a child which has the specified key'
43
+
44
+ it 'should not modify the YAML contents'
45
+ end
46
+
47
+ describe 'when a child with the specified key exists' do
48
+ it 'should return a new node with the specified key'
49
+
50
+ it 'should append the created node under the current node'
51
+
52
+ it 'should append the created line to the YAML document'
53
+
54
+ it 'should increment the line number of the succeeding lines of the newly added line'
55
+ end
56
+ end
57
+ end
58
+ end
59
+
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: i18n_generators
3
+ version: !ruby/object:Gem::Version
4
+ hash: 63
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 8
9
+ - 0
10
+ version: 0.8.0
11
+ platform: ruby
12
+ authors:
13
+ - Akira Matsuda
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-08-26 00:00:00 +09:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: A Rails generator plugin & gem that generates Rails 2.2 and 2.3 I18n locale files for almost every known locale.
23
+ email: ronnie@dio.jp
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files:
29
+ - README.rdoc
30
+ files:
31
+ - .gitignore
32
+ - History.txt
33
+ - MIT-LICENSE
34
+ - README.rdoc
35
+ - Rakefile
36
+ - VERSION
37
+ - generators/i18n/USAGE
38
+ - generators/i18n/i18n_generator.rb
39
+ - generators/i18n/lib/yaml.rb
40
+ - generators/i18n/templates/base.yml
41
+ - generators/i18n/templates/i18n_config.rb
42
+ - generators/i18n/templates/translation.yml
43
+ - generators/i18n_locale/USAGE
44
+ - generators/i18n_locale/i18n_locale_command.rb
45
+ - generators/i18n_locale/i18n_locale_generator.rb
46
+ - generators/i18n_locale/lib/cldr.rb
47
+ - generators/i18n_scaffold/i18n_scaffold_generator.rb
48
+ - generators/i18n_scaffold/templates/controller.rb
49
+ - generators/i18n_scaffold/templates/functional_test.rb
50
+ - generators/i18n_scaffold/templates/helper.rb
51
+ - generators/i18n_scaffold/templates/helper_test.rb
52
+ - generators/i18n_scaffold/templates/layout.html.erb
53
+ - generators/i18n_scaffold/templates/style.css
54
+ - generators/i18n_scaffold/templates/view_edit.html.erb
55
+ - generators/i18n_scaffold/templates/view_index.html.erb
56
+ - generators/i18n_scaffold/templates/view_new.html.erb
57
+ - generators/i18n_scaffold/templates/view_show.html.erb
58
+ - generators/i18n_translation/USAGE
59
+ - generators/i18n_translation/i18n_translation_command.rb
60
+ - generators/i18n_translation/i18n_translation_generator.rb
61
+ - generators/i18n_translation/lib/erb_executer.rb
62
+ - generators/i18n_translation/lib/recording_backend.rb
63
+ - generators/i18n_translation/lib/through_ryoku.rb
64
+ - generators/i18n_translation/lib/translator.rb
65
+ - i18n_generators.gemspec
66
+ - spec/cldr_spec.rb
67
+ - spec/data/cldr/ja.html
68
+ - spec/data/yml/active_record/en-US.yml
69
+ - spec/i18n_locale_command_spec.rb
70
+ - spec/i18n_translation_command_spec.rb
71
+ - spec/spec_helper.rb
72
+ - spec/translator_spec.rb
73
+ - spec/yaml_spec.rb
74
+ has_rdoc: true
75
+ homepage: http://github.com/amatsuda/i18n_generators/
76
+ licenses: []
77
+
78
+ post_install_message:
79
+ rdoc_options:
80
+ - --charset=UTF-8
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ hash: 3
98
+ segments:
99
+ - 0
100
+ version: "0"
101
+ requirements: []
102
+
103
+ rubyforge_project:
104
+ rubygems_version: 1.3.7
105
+ signing_key:
106
+ specification_version: 3
107
+ summary: Generates I18n locale files for Rails 2.2 and 2.3
108
+ test_files:
109
+ - spec/cldr_spec.rb
110
+ - spec/i18n_locale_command_spec.rb
111
+ - spec/i18n_translation_command_spec.rb
112
+ - spec/spec_helper.rb
113
+ - spec/translator_spec.rb
114
+ - spec/yaml_spec.rb