gettext_simple_rails 0.0.6 → 0.0.7
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.
- checksums.yaml +4 -4
- data/lib/gettext_simple_rails/translators/active_record_translator.rb +62 -2
- data/lib/gettext_simple_rails/version.rb +1 -1
- data/spec/active_record_spec.rb +28 -0
- data/spec/dummy/app/models/user.rb +4 -0
- data/spec/dummy/lib/gettext_simple_rails/active_record_translator_translations.rb +16 -0
- data/spec/dummy/lib/gettext_simple_rails/date_translator_translations.rb +60 -0
- data/spec/dummy/lib/gettext_simple_rails/number_translator_translations.rb +48 -0
- data/spec/dummy/log/test.log +15 -0
- metadata +12 -8
- data/spec/dummy/lib/gettext_simple_rails/models/role_model_translations.rb +0 -21
- data/spec/dummy/lib/gettext_simple_rails/models/user_model_translations.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d00b567f8c0f4de3190531fe8432c568e5aa26b
|
4
|
+
data.tar.gz: 415e870fcd1c235bf50e63cca42cbaa386ee0683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be227b770df8458a6cda081c1f755c5e63fbf994d30a61535d83e7b702b668b9acbca46483379ea36307b76b191ae068c2171611ae16d942a3aaf2a3f3922707
|
7
|
+
data.tar.gz: c268b48020bde34b23c0d6b147f53f372a61fd11f4e54a8ee918ebfb966703e7e2c57047d1a20c7541f6d4a195438c0db0597692074725f257d6ee5141057e25
|
@@ -4,14 +4,74 @@ class GettextSimpleRails::Translators::ActiveRecordTranslator
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def translations
|
7
|
-
|
7
|
+
@translations_hash = {
|
8
8
|
"activerecord" => {
|
9
9
|
"errors" => {
|
10
10
|
"messages" => {
|
11
11
|
"record_invalid" => "Invalid record"
|
12
|
-
}
|
12
|
+
},
|
13
|
+
"models" => {}
|
13
14
|
}
|
14
15
|
}
|
15
16
|
}
|
17
|
+
|
18
|
+
scan_validation_errors
|
19
|
+
|
20
|
+
return @translations_hash
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def scan_validation_errors
|
26
|
+
GettextSimpleRails::ModelInspector.model_classes do |inspector|
|
27
|
+
clazz_snake_name = StringCases.camel_to_snake(inspector.clazz.name)
|
28
|
+
@translations_hash["activerecord"]["errors"]["models"][clazz_snake_name] = {"attributes" => {}} unless @translations_hash["activerecord"]["errors"]["models"].key?(clazz_snake_name)
|
29
|
+
attributes_hash = @translations_hash["activerecord"]["errors"]["models"][clazz_snake_name]["attributes"]
|
30
|
+
|
31
|
+
inspector.clazz._validators.each do |attribute_name, validators|
|
32
|
+
validators.each do |validator|
|
33
|
+
attributes_hash[attribute_name] = {} unless attributes_hash.key?(attribute_name)
|
34
|
+
attribute_hash = attributes_hash[attribute_name]
|
35
|
+
|
36
|
+
if validator.is_a?(ActiveModel::Validations::LengthValidator)
|
37
|
+
translations_for_length_validator(validator, attribute_hash)
|
38
|
+
elsif validator.is_a?(ActiveModel::Validations::FormatValidator)
|
39
|
+
translations_for_format_validator(validator, attribute_hash)
|
40
|
+
elsif validator.is_a?(ActiveRecord::Validations::UniquenessValidator)
|
41
|
+
translations_for_uniqueness_validator(validator, attribute_hash)
|
42
|
+
elsif validator.is_a?(ActiveRecord::Validations::PresenceValidator)
|
43
|
+
translations_for_presence_Validator(validator, attribute_hash)
|
44
|
+
else
|
45
|
+
puts "Unknown validator: #{validator.class.name}"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def translations_for_length_validator(validator, attribute_hash)
|
53
|
+
if validator.options[:minimum].present?
|
54
|
+
attribute_hash["too_short"] = "is too short. The minimum is %{count}"
|
55
|
+
end
|
56
|
+
|
57
|
+
if validator.options[:maximum].present?
|
58
|
+
attribute_hash["too_long"] = "is too long. The maximum is %{count}"
|
59
|
+
end
|
60
|
+
|
61
|
+
if validator.options[:is].present?
|
62
|
+
attribute_hash["wrong_length"] = "is not the correct length: %{count}"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def translations_for_format_validator(validator, attribute_hash)
|
67
|
+
attribute_hash["invalid"] = "is invalid"
|
68
|
+
end
|
69
|
+
|
70
|
+
def translations_for_uniqueness_validator(validator, attribute_hash)
|
71
|
+
attribute_hash["taken"] = "has already been taken"
|
72
|
+
end
|
73
|
+
|
74
|
+
def translations_for_presence_Validator(validator, attribute_hash)
|
75
|
+
attribute_hash["blank"] = "cannot be blank"
|
16
76
|
end
|
17
77
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe GettextSimpleRails::Translators::ActiveRecordTranslator do
|
4
|
+
before do
|
5
|
+
if !$translations_generated_for_date_translator
|
6
|
+
$translations_generated_for_date_translator = true
|
7
|
+
|
8
|
+
# Make it possible to call the Rake task.
|
9
|
+
::Dummy::Application.load_tasks
|
10
|
+
|
11
|
+
# Clean up any existing translations.
|
12
|
+
FileUtils.rm_r(GettextSimpleRails.translation_dir) if File.exists?(GettextSimpleRails.translation_dir)
|
13
|
+
|
14
|
+
# Generate model translations so we can check them.
|
15
|
+
::Rake::Task["gettext_simple_rails:generate_translator_files"].invoke
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should generate translations for validations" do
|
20
|
+
filepath = "#{GettextSimpleRails.translation_dir}/active_record_translator_translations.rb"
|
21
|
+
cont = File.read(filepath)
|
22
|
+
cont.should include "_('activerecord.errors.models.user.attributes.name.too_short')"
|
23
|
+
cont.should include "_('activerecord.errors.models.user.attributes.name.invalid')"
|
24
|
+
cont.should include "_('activerecord.errors.models.user.attributes.name.blank')"
|
25
|
+
cont.should include "_('activerecord.errors.models.user.attributes.name.taken')"
|
26
|
+
cont.should include "_('activerecord.errors.models.user.attributes.name.invalid')"
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class GettextSimpleRails::MonthNames
|
2
|
+
def translations
|
3
|
+
#. Default value: Invalid record
|
4
|
+
_('activerecord.errors.messages.record_invalid')
|
5
|
+
#. Default value: is too short. The minimum is %{count}
|
6
|
+
_('activerecord.errors.models.user.attributes.name.too_short')
|
7
|
+
#. Default value: is too long. The maximum is %{count}
|
8
|
+
_('activerecord.errors.models.user.attributes.name.too_long')
|
9
|
+
#. Default value: has already been taken
|
10
|
+
_('activerecord.errors.models.user.attributes.name.taken')
|
11
|
+
#. Default value: cannot be blank
|
12
|
+
_('activerecord.errors.models.user.attributes.name.blank')
|
13
|
+
#. Default value: is invalid
|
14
|
+
_('activerecord.errors.models.user.attributes.name.invalid')
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
class GettextSimpleRails::MonthNames
|
2
|
+
def translations
|
3
|
+
#. Default value: %Y-%m-%d
|
4
|
+
_('date.formats.default')
|
5
|
+
#. Default value: %b %d
|
6
|
+
_('date.formats.short')
|
7
|
+
#. Default value: %B %d, %Y
|
8
|
+
_('date.formats.long')
|
9
|
+
_('date.day_names.0')
|
10
|
+
_('date.day_names.1')
|
11
|
+
_('date.day_names.2')
|
12
|
+
_('date.day_names.3')
|
13
|
+
_('date.day_names.4')
|
14
|
+
_('date.day_names.5')
|
15
|
+
_('date.day_names.6')
|
16
|
+
_('date.abbr_day_names.0')
|
17
|
+
_('date.abbr_day_names.1')
|
18
|
+
_('date.abbr_day_names.2')
|
19
|
+
_('date.abbr_day_names.3')
|
20
|
+
_('date.abbr_day_names.4')
|
21
|
+
_('date.abbr_day_names.5')
|
22
|
+
_('date.abbr_day_names.6')
|
23
|
+
_('date.month_names.0')
|
24
|
+
_('date.month_names.1')
|
25
|
+
_('date.month_names.2')
|
26
|
+
_('date.month_names.3')
|
27
|
+
_('date.month_names.4')
|
28
|
+
_('date.month_names.5')
|
29
|
+
_('date.month_names.6')
|
30
|
+
_('date.month_names.7')
|
31
|
+
_('date.month_names.8')
|
32
|
+
_('date.month_names.9')
|
33
|
+
_('date.month_names.10')
|
34
|
+
_('date.month_names.11')
|
35
|
+
_('date.month_names.12')
|
36
|
+
_('date.abbr_month_names.0')
|
37
|
+
_('date.abbr_month_names.1')
|
38
|
+
_('date.abbr_month_names.2')
|
39
|
+
_('date.abbr_month_names.3')
|
40
|
+
_('date.abbr_month_names.4')
|
41
|
+
_('date.abbr_month_names.5')
|
42
|
+
_('date.abbr_month_names.6')
|
43
|
+
_('date.abbr_month_names.7')
|
44
|
+
_('date.abbr_month_names.8')
|
45
|
+
_('date.abbr_month_names.9')
|
46
|
+
_('date.abbr_month_names.10')
|
47
|
+
_('date.abbr_month_names.11')
|
48
|
+
_('date.abbr_month_names.12')
|
49
|
+
#. Default value: %a, %d %b %Y %H:%M:%S %z
|
50
|
+
_('time.formats.default')
|
51
|
+
#. Default value: %d %b %H:%M
|
52
|
+
_('time.formats.short')
|
53
|
+
#. Default value: %B %d, %Y %H:%M
|
54
|
+
_('time.formats.long')
|
55
|
+
#. Default value: am
|
56
|
+
_('time.am')
|
57
|
+
#. Default value: pm
|
58
|
+
_('time.pm')
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
class GettextSimpleRails::MonthNames
|
2
|
+
def translations
|
3
|
+
#. Default value: ,
|
4
|
+
_('number.currency.format.delimiter')
|
5
|
+
#. Default value: %n %u
|
6
|
+
_('number.currency.format.format')
|
7
|
+
#. Default value: .
|
8
|
+
_('number.currency.format.separator')
|
9
|
+
#. Default value: $
|
10
|
+
_('number.currency.format.unit')
|
11
|
+
#. Default value: ,
|
12
|
+
_('number.format.delimiter')
|
13
|
+
#. Default value: .
|
14
|
+
_('number.format.separator')
|
15
|
+
#. Default value: %n %u
|
16
|
+
_('number.human.decimal_units.format')
|
17
|
+
#. Default value: Billion
|
18
|
+
_('number.human.decimal_units.units.billion')
|
19
|
+
#. Default value: Million
|
20
|
+
_('number.human.decimal_units.units.million')
|
21
|
+
#. Default value: Quadrillion
|
22
|
+
_('number.human.decimal_units.units.quadrillion')
|
23
|
+
#. Default value: Thousand
|
24
|
+
_('number.human.decimal_units.units.thousand')
|
25
|
+
#. Default value: Trillion
|
26
|
+
_('number.human.decimal_units.units.trillion')
|
27
|
+
#. Default value:
|
28
|
+
_('number.human.decimal_units.units.unit')
|
29
|
+
#. Default value:
|
30
|
+
_('number.human.format.delimiter')
|
31
|
+
#. Default value: %n %u
|
32
|
+
_('number.human.storage_units.format')
|
33
|
+
#. Default value: Byte
|
34
|
+
_('number.human.storage_units.units.byte.one')
|
35
|
+
#. Default value: Bytes
|
36
|
+
_('number.human.storage_units.units.byte.other')
|
37
|
+
#. Default value: GB
|
38
|
+
_('number.human.storage_units.units.gb')
|
39
|
+
#. Default value: KB
|
40
|
+
_('number.human.storage_units.units.kb')
|
41
|
+
#. Default value: MB
|
42
|
+
_('number.human.storage_units.units.mb')
|
43
|
+
#. Default value: TB
|
44
|
+
_('number.human.storage_units.units.tb')
|
45
|
+
#. Default value:
|
46
|
+
_('number.percentage.format.delimiter')
|
47
|
+
end
|
48
|
+
end
|
data/spec/dummy/log/test.log
CHANGED
@@ -315,3 +315,18 @@
|
|
315
315
|
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
316
316
|
[1m[35m (0.1ms)[0m begin transaction
|
317
317
|
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
318
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
319
|
+
[1m[35m (0.1ms)[0m begin transaction
|
320
|
+
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
321
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
322
|
+
[1m[35m (0.1ms)[0m begin transaction
|
323
|
+
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
324
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
325
|
+
[1m[35m (0.1ms)[0m begin transaction
|
326
|
+
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
327
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
328
|
+
[1m[35m (0.1ms)[0m begin transaction
|
329
|
+
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
330
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
331
|
+
[1m[35m (0.1ms)[0m begin transaction
|
332
|
+
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gettext_simple_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kasper Johansen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.9
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.
|
40
|
+
version: 0.0.9
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: string-cases
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,8 +114,9 @@ files:
|
|
114
114
|
- spec/dummy/config.ru
|
115
115
|
- spec/dummy/README.rdoc
|
116
116
|
- spec/dummy/Rakefile
|
117
|
-
- spec/dummy/lib/gettext_simple_rails/
|
118
|
-
- spec/dummy/lib/gettext_simple_rails/
|
117
|
+
- spec/dummy/lib/gettext_simple_rails/date_translator_translations.rb
|
118
|
+
- spec/dummy/lib/gettext_simple_rails/active_record_translator_translations.rb
|
119
|
+
- spec/dummy/lib/gettext_simple_rails/number_translator_translations.rb
|
119
120
|
- spec/dummy/test/models/user_test.rb
|
120
121
|
- spec/dummy/test/models/role_test.rb
|
121
122
|
- spec/dummy/test/fixtures/users.yml
|
@@ -159,6 +160,7 @@ files:
|
|
159
160
|
- spec/gettext_simple_rails_spec.rb
|
160
161
|
- spec/spec_helper.rb
|
161
162
|
- spec/date_translator_spec.rb
|
163
|
+
- spec/active_record_spec.rb
|
162
164
|
homepage: http://www.github.com/kaspernj/gettext_simple_rails
|
163
165
|
licenses:
|
164
166
|
- MIT
|
@@ -190,8 +192,9 @@ test_files:
|
|
190
192
|
- spec/dummy/config.ru
|
191
193
|
- spec/dummy/README.rdoc
|
192
194
|
- spec/dummy/Rakefile
|
193
|
-
- spec/dummy/lib/gettext_simple_rails/
|
194
|
-
- spec/dummy/lib/gettext_simple_rails/
|
195
|
+
- spec/dummy/lib/gettext_simple_rails/date_translator_translations.rb
|
196
|
+
- spec/dummy/lib/gettext_simple_rails/active_record_translator_translations.rb
|
197
|
+
- spec/dummy/lib/gettext_simple_rails/number_translator_translations.rb
|
195
198
|
- spec/dummy/test/models/user_test.rb
|
196
199
|
- spec/dummy/test/models/role_test.rb
|
197
200
|
- spec/dummy/test/fixtures/users.yml
|
@@ -235,3 +238,4 @@ test_files:
|
|
235
238
|
- spec/gettext_simple_rails_spec.rb
|
236
239
|
- spec/spec_helper.rb
|
237
240
|
- spec/date_translator_spec.rb
|
241
|
+
- spec/active_record_spec.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
class GettextSimpleRails::UserModelTranslations
|
2
|
-
def self.attribute_translations
|
3
|
-
puts _('models.attributes.role.id')
|
4
|
-
puts _('models.attributes.role.role')
|
5
|
-
puts _('models.attributes.role.user_id')
|
6
|
-
puts _('models.attributes.role.created_at')
|
7
|
-
puts _('models.attributes.role.updated_at')
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.relationship_translations
|
11
|
-
puts _('models.attributes.role.user')
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.paperclip_attachments
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.model_name
|
18
|
-
puts _('models.name.role.one')
|
19
|
-
puts _('models.name.role.other')
|
20
|
-
end
|
21
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
class GettextSimpleRails::UserModelTranslations
|
2
|
-
def self.attribute_translations
|
3
|
-
puts _('models.attributes.user.id')
|
4
|
-
puts _('models.attributes.user.name')
|
5
|
-
puts _('models.attributes.user.birthday_at')
|
6
|
-
puts _('models.attributes.user.age')
|
7
|
-
puts _('models.attributes.user.created_at')
|
8
|
-
puts _('models.attributes.user.updated_at')
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.relationship_translations
|
12
|
-
puts _('models.attributes.user.roles')
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.paperclip_attachments
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.model_name
|
19
|
-
puts _('models.name.user.one')
|
20
|
-
puts _('models.name.user.other')
|
21
|
-
end
|
22
|
-
end
|