translation 1.4 → 1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd5685e820858ee9272a66b6cefb5d85d82f01d8
4
- data.tar.gz: 547c098280bc7db216d336c6bf676c0ec738a1c3
3
+ metadata.gz: b6ca60fd941e00c41f19220e38e4be7483513b03
4
+ data.tar.gz: e52d363d594a15f637c9d14b81eb9577b83cd4d2
5
5
  SHA512:
6
- metadata.gz: 2f404426ef37f123acbf9957c9d96acc522c6e0f32e749b957ca0c9eca3204a0dba3c8791b109d42e2fcd20687a9902a249bed9f6a9d2bc8ddf230717febd080
7
- data.tar.gz: 90d29c39095fb4234d850f8e34b1d4cf22b1fd06629f057481fe673e8cf78028bd0fd69ff9363c846fa022cfbc7b2e9e4715962048b07e07332bf5f7e3cd6b8f
6
+ metadata.gz: e6ed0c302456c4152e8ace2355d9036494a4d9a498ca924c9f0e8a0a304979cd067682c7f8684b425e08790f8af84c0b74bf03c0608bd9116508e6b686cc0d77
7
+ data.tar.gz: e7a5f82a5e66036dbc09ed1e5c29b408f630e340e6487bf8bb449ac08c02be700e3bd5210d7725025dfee7062f807f3b6583a5e4fe99c9ecfab61d3440233408
data/README.md CHANGED
@@ -8,16 +8,16 @@ Add this gem to your [Rails](http://rubyonrails.org) app to translate it with [T
8
8
 
9
9
  ## Installation
10
10
 
11
- Add the gem to your project's Gemfile :
11
+ Add the gem to your project's Gemfile:
12
12
 
13
13
  gem 'translation'
14
14
 
15
- Then :
15
+ Then:
16
16
 
17
17
  * Create a translation project [from the UI](https://translation.io).
18
18
  * Copy the initializer into your Rails app (`config/initializers/translation.rb`)
19
19
 
20
- The initializer looks like this :
20
+ The initializer looks like this:
21
21
 
22
22
  TranslationIO.configure do |config|
23
23
  config.api_key = 'some api key which is very long'
@@ -25,7 +25,7 @@ The initializer looks like this :
25
25
  config.target_locales = ['fr', 'nl', 'de', 'es']
26
26
  end
27
27
 
28
- And finish by inititalizing your translation project with :
28
+ And finish by inititalizing your translation project with:
29
29
 
30
30
  bundle exec rake translation:init
31
31
 
@@ -34,36 +34,46 @@ If you later need to add/remove target languages, please read our
34
34
 
35
35
  ## Sync
36
36
 
37
- To send new translatable keys/strings and get new translations from Translation.io, simply run :
37
+ To send new translatable keys/strings and get new translations from Translation.io, simply run:
38
38
 
39
39
  bundle exec rake translation:sync
40
40
 
41
41
  ## Sync and Purge
42
42
 
43
- If you also need to remove unused keys/strings from Translation.io using the current branch as reference :
43
+ If you also need to remove unused keys/strings from Translation.io using the current branch as reference:
44
44
 
45
45
  bundle exec rake translation:sync_and_purge
46
46
 
47
47
  As the name says, this operation will also perform a sync at the same time.
48
48
 
49
- Warning : all keys that are not present in the current branch will be **permanently deleted both on Translation.io and in your app**.
49
+ Warning: all keys that are not present in the current branch will be **permanently deleted both on Translation.io and in your app**.
50
50
 
51
51
  ## Advanced Configuration Options
52
52
 
53
53
  The `TranslationIO.configure` block in `config/initializers/translation.rb` can take several optional configuration options.
54
54
 
55
+ ### Disable GetText
55
56
 
57
+ Sometimes, you only want to use YAML and don't want to be bothered by GetText at all.
58
+ For these cases, you just have to add `disable_gettext` in the config file.
59
+
60
+ For example:
61
+
62
+ TranslationIO.configure do |config|
63
+ ...
64
+ config.disable_gettext = true
65
+ ...
66
+ end
56
67
 
57
68
  ### Ignored YAML keys
58
69
 
59
70
  Sometimes you would like to ignore some YAML keys coming from gems or so.
60
71
  You can use the `ignored_key_prefixes` for that.
61
72
 
62
- For example :
73
+ For example:
63
74
 
64
75
  TranslationIO.configure do |config|
65
76
  ...
66
-
67
77
  config.ignored_key_prefixes = [
68
78
  'number.human.',
69
79
  'admin.',
@@ -74,12 +84,13 @@ For example :
74
84
  'views.pagination.',
75
85
  'enumerize.visibility.'
76
86
  ]
87
+ ...
77
88
  end
78
89
 
79
90
  ### Custom localization key prefixes
80
91
 
81
92
  Rails YAML files contain not only translation strings but also localization values (integers, arrays, booleans)
82
- in the same place and that's bad. For example : date formats, number separators, default
93
+ in the same place and that's bad. For example: date formats, number separators, default
83
94
  currency or measure units, etc.
84
95
 
85
96
  A translator is supposed to translate, not localize. That's not his role to choose how you want your dates or
@@ -92,28 +103,28 @@ That's why these localization keys are detected and separated on a dedicated YAM
92
103
  We automatically threat [known localization keys](lib/translation_io/yaml_entry.rb), but if you would like
93
104
  to add some more, use the `localization_key_prefixes` option.
94
105
 
95
- For example :
106
+ For example:
96
107
 
97
108
  TranslationIO.configure do |config|
98
109
  ...
99
-
100
110
  config.localization_key_prefixes = ['my_gem.date.formats']
111
+ ...
101
112
  end
102
113
 
103
114
  ### Paths where locales are stored (not recommended)
104
115
 
105
- You can specify where your GetText and YAML files are on disk :
116
+ You can specify where your GetText and YAML files are on disk:
106
117
 
107
118
  TranslationIO.configure do |config|
108
119
  ...
109
-
110
120
  config.locales_path = 'some/path' # defaults to config/locales/gettext
111
121
  config.yaml_locales_path = 'some/path' # defaults to config/locales
122
+ ...
112
123
  end
113
124
 
114
125
  ## Tests
115
126
 
116
- To run the specs :
127
+ To run the specs:
117
128
 
118
129
  bundle
119
130
  bundle exec rspec
@@ -29,15 +29,32 @@ module TranslationIO
29
29
  create_yaml_pot_files_step = CreateYamlPoFilesStep.new(source_locale, target_locales, yaml_file_paths)
30
30
  create_yaml_pot_files_step.run(params)
31
31
 
32
- all_used_yaml_locales = (create_yaml_pot_files_step.all_used_yaml_locales.to_a.map(&:to_s) - [config.source_locale.to_s]).sort.map(&:to_s)
33
- yaml_locales_difference = (all_used_yaml_locales) - target_locales.sort.map(&:to_s)
32
+ all_used_yaml_locales = (create_yaml_pot_files_step.all_used_yaml_locales.to_a.map(&:to_s) - [source_locale.to_s]).sort.map(&:to_s)
33
+ is_source_locale_unfound = !source_locale.in?(all_used_yaml_locales)
34
+ unfound_target_locales = target_locales - all_used_yaml_locales
34
35
 
35
- if yaml_locales_difference.any?
36
+ if is_source_locale_unfound
36
37
  puts
37
38
  puts "----------"
38
- puts "Your `config.target_locales` are [#{target_locales.join(', ')}]."
39
- puts "We have found some YAML keys for [#{all_used_yaml_locales.join(', ')}] and they don't match."
40
- puts "Some of these locales may be coming from your gems."
39
+ puts "Your `config.source_locale` is \"#{source_locale}\" but no YAML keys were found for this locale."
40
+ puts "Check that you haven't misspelled the locale (ex. 'en-GB' instead of 'en')."
41
+ puts "----------"
42
+ puts "Do you want to continue anyway? (y/N)"
43
+
44
+ print "> "
45
+ input = STDIN.gets.strip
46
+
47
+ if input != 'y' && input != 'Y'
48
+ exit(0)
49
+ end
50
+ end
51
+
52
+ if unfound_target_locales.any?
53
+ puts
54
+ puts "----------"
55
+ puts "Your `config.target_locales` are [#{target_locales.sort.join(', ')}]."
56
+ puts "But we haven't found any YAML key for [#{unfound_target_locales.join(', ')}], is this normal?"
57
+ puts "If not, check that you haven't misspelled the locale (ex. 'en-GB' instead of 'en')."
41
58
  puts "----------"
42
59
  puts "Do you want to continue? (y/N)"
43
60
 
@@ -26,35 +26,39 @@ module TranslationIO
26
26
  flat_yaml_hash = FlatHash.to_flat_hash(yaml_hash)
27
27
 
28
28
  flat_yaml_hash.each do |key, value|
29
- if key == "#{@source_locale}.#{source_edit['key']}" && value == source_edit['old_text']
30
- TranslationIO.info "#{source_edit['key']} | #{source_edit['old_text']} -> #{source_edit['new_text']}", 2, 2
31
-
32
- if locale_file_path_in_project?(file_path)
33
- flat_yaml_hash[key] = source_edit['new_text']
34
-
35
- File.open(file_path, 'w') do |f|
36
- f.write(FlatHash.to_hash(flat_yaml_hash).to_yaml)
37
- end
38
- else
39
- yaml_path = File.join(TranslationIO.config.yaml_locales_path, "#{@source_locale}.yml")
40
-
41
- if File.exists?(yaml_path) # en.yml
42
- yaml_hash = YAML::load(File.read(yaml_path))
43
- flat_yaml_hash = FlatHash.to_flat_hash(yaml_hash)
44
- else
45
- FileUtils::mkdir_p File.dirname(yaml_path)
46
- flat_yaml_hash = {}
29
+ if key == "#{@source_locale}.#{source_edit['key']}"
30
+ if value == source_edit['old_text']
31
+ TranslationIO.info "#{source_edit['key']} | #{source_edit['old_text']} -> #{source_edit['new_text']}", 2, 2
32
+
33
+ if locale_file_path_in_project?(file_path)
34
+ flat_yaml_hash[key] = source_edit['new_text']
35
+
36
+ File.open(file_path, 'w') do |f|
37
+ f.write(FlatHash.to_hash(flat_yaml_hash).to_yaml)
38
+ end
39
+ else # override source text of gem
40
+ yaml_path = File.join(TranslationIO.config.yaml_locales_path, "#{@source_locale}.yml")
41
+
42
+ if File.exists?(yaml_path) # source yaml file
43
+ yaml_hash = YAML::load(File.read(yaml_path))
44
+ flat_yaml_hash = FlatHash.to_flat_hash(yaml_hash)
45
+ else
46
+ FileUtils::mkdir_p File.dirname(yaml_path)
47
+ flat_yaml_hash = {}
48
+ end
49
+
50
+ flat_yaml_hash["#{@source_locale}.#{source_edit['key']}"] = source_edit['new_text']
51
+
52
+ File.open(yaml_path, 'w') do |f|
53
+ f.write(FlatHash.to_hash(flat_yaml_hash).to_yaml)
54
+ end
47
55
  end
48
56
 
49
- flat_yaml_hash["#{@source_locale}.#{source_edit['key']}"] = source_edit['new_text']
50
-
51
- File.open(yaml_path, 'w') do |f|
52
- f.write(FlatHash.to_hash(flat_yaml_hash).to_yaml)
53
- end
57
+ inserted = true
58
+ break
59
+ else
60
+ TranslationIO.info "#{source_edit['key']} | Ignored because translation was updated directly in source YAML file", 2, 2
54
61
  end
55
-
56
- inserted = true
57
- break
58
62
  end
59
63
  end
60
64
 
@@ -64,7 +68,7 @@ module TranslationIO
64
68
  end
65
69
 
66
70
  File.open(TranslationIO.config.metadata_path, 'w') do |f|
67
- f.write({ 'timestamp' => Time.now.getutc.to_i }.to_yaml)
71
+ f.write({ 'timestamp' => Time.now.utc.to_i }.to_yaml)
68
72
  end
69
73
  end
70
74
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: translation
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.4'
4
+ version: '1.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aurelien Malisart
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-12-11 00:00:00.000000000 Z
12
+ date: 2016-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gettext