gettext-setup 0.30 → 0.31
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 12e71aa5e0dfcabd81f9815b7288de5edea56295600b5b82fce740614374b948
|
4
|
+
data.tar.gz: c42ce6ef320c3999fcfa6895d9c2d7ceaab93980459cfd8985a19a389eb6a08a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ee5e91fd99697e94de0f11bf162c5353e32cb86d273da51e6188e821a95065674d68aaad626c0c21a3f6e2c1ef10999c74228b62e2eb18c87b84ef97e55148a
|
7
|
+
data.tar.gz: 5b384a1a0ef825e3d591fba2ce46a6356a0fb2cdfe6b03b0de89b1863db66ccc3666bb1aa79643f64974ba2f911fd81c1ba83fb26152ed390eef710c392c0302
|
@@ -58,6 +58,7 @@ module GettextSetup
|
|
58
58
|
|
59
59
|
def self.config?
|
60
60
|
raise NoConfigFoundError, File.join(locales_path, 'config.yaml') unless @config
|
61
|
+
|
61
62
|
@config
|
62
63
|
end
|
63
64
|
|
@@ -113,9 +114,11 @@ module GettextSetup
|
|
113
114
|
# return the default locale
|
114
115
|
def self.negotiate_locale(accept_header)
|
115
116
|
unless @config
|
116
|
-
raise ArgumentError, 'No config.yaml found! Use
|
117
|
+
raise ArgumentError, 'No config.yaml found! Use ' \
|
118
|
+
'`GettextSetup.initialize(locales_path)` to locate your config.yaml'
|
117
119
|
end
|
118
120
|
return FastGettext.default_locale if accept_header.nil?
|
121
|
+
|
119
122
|
available_locales = accept_header.split(',').map do |locale|
|
120
123
|
pair = locale.strip.split(';q=')
|
121
124
|
pair << '1.0' unless pair.size == 2
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'erb'
|
2
2
|
require 'json'
|
3
|
+
require 'date'
|
3
4
|
|
4
5
|
module GettextSetup
|
5
6
|
module MetadataPot
|
@@ -13,7 +14,7 @@ module GettextSetup
|
|
13
14
|
|
14
15
|
def self.metadata(metadata_file = 'metadata.json')
|
15
16
|
if File.exist?(metadata_file)
|
16
|
-
file = open(metadata_file)
|
17
|
+
file = File.open(metadata_file)
|
17
18
|
json = file.read
|
18
19
|
JSON.parse(json)
|
19
20
|
else
|
@@ -28,7 +29,7 @@ module GettextSetup
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def self.generate_metadata_pot(pot_metadata = metadata, path = metadata_path)
|
31
|
-
open(path, 'w') do |f|
|
32
|
+
File.open(path, 'w') do |f|
|
32
33
|
f << pot_string(pot_metadata)
|
33
34
|
end
|
34
35
|
end
|
data/lib/gettext-setup/pot.rb
CHANGED
@@ -25,28 +25,39 @@ module GettextSetup
|
|
25
25
|
|
26
26
|
def self.pot_file_path
|
27
27
|
return if GettextSetup.locales_path.nil?
|
28
|
+
|
28
29
|
return if GettextSetup.config['project_name'].nil?
|
30
|
+
|
29
31
|
File.join(GettextSetup.locales_path, GettextSetup.config['project_name'] + '.pot')
|
30
32
|
end
|
31
33
|
|
32
34
|
def self.po_file_path(language)
|
33
35
|
return if GettextSetup.locales_path.nil?
|
36
|
+
|
34
37
|
return if GettextSetup.config['project_name'].nil?
|
38
|
+
|
35
39
|
return if language.nil?
|
40
|
+
|
36
41
|
File.join(GettextSetup.locales_path, language, GettextSetup.config['project_name'] + '.po')
|
37
42
|
end
|
38
43
|
|
39
44
|
def self.string_changes?(old_pot, new_pot)
|
40
45
|
# Warnings will be in another language if locale is not set to en_US
|
41
46
|
_, stderr, status = Open3.capture3("LANG=en_US msgcmp --use-untranslated '#{old_pot}' '#{new_pot}'")
|
42
|
-
if status.exitstatus == 1 ||
|
47
|
+
return true if status.exitstatus == 1 || \
|
48
|
+
/this message is not used/.match(stderr) || \
|
49
|
+
/this message is used but not defined/.match(stderr)
|
50
|
+
|
51
|
+
if stderr =~ /msgcmp: command not found/
|
52
|
+
puts 'Warning - msgcmp is not present on the system'
|
43
53
|
return true
|
44
54
|
end
|
45
|
-
|
55
|
+
|
56
|
+
false
|
46
57
|
rescue IOError
|
47
58
|
# probably means msgcmp is not present on the system
|
48
59
|
# so return true to be on the safe side
|
49
|
-
|
60
|
+
true
|
50
61
|
end
|
51
62
|
|
52
63
|
# @param [:locales_path] opts
|
@@ -176,6 +187,7 @@ module GettextSetup
|
|
176
187
|
_, _, _, wait = Open3.popen3(cmd)
|
177
188
|
exitstatus = wait.value
|
178
189
|
raise 'PO files failed to merge' unless exitstatus.success?
|
190
|
+
|
179
191
|
puts "PO files have been successfully merged, #{target_filename} has been created."
|
180
192
|
exitstatus
|
181
193
|
end
|
@@ -164,7 +164,7 @@ describe GettextSetup::Pot do
|
|
164
164
|
before :all do
|
165
165
|
{ 'ruby' => 'ruby.pot', 'puppet' => 'puppet.pot', 'metadata' => 'metadata.pot' }.each do |pot_type, pot_name|
|
166
166
|
File.open(File.join(merge_locales_path, pot_name), 'w') do |file|
|
167
|
-
file.write
|
167
|
+
file.write <<POT
|
168
168
|
# Copyright (C) 2017 Puppet, Inc.
|
169
169
|
# This file is distributed under the same license as the puppetlabs-mysql package.
|
170
170
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2017.
|
@@ -186,7 +186,7 @@ describe GettextSetup::Pot do
|
|
186
186
|
#: ../lib/puppet/parser/functions/mysql_strip_hash.rb:11
|
187
187
|
msgid "this is a #{pot_type} string"
|
188
188
|
msgstr ""
|
189
|
-
|
189
|
+
POT
|
190
190
|
end
|
191
191
|
end
|
192
192
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gettext-setup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.31'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fast_gettext
|
@@ -223,32 +223,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
223
|
- !ruby/object:Gem::Version
|
224
224
|
version: '0'
|
225
225
|
requirements: []
|
226
|
-
|
227
|
-
rubygems_version: 2.5.1
|
226
|
+
rubygems_version: 3.0.3
|
228
227
|
signing_key:
|
229
228
|
specification_version: 4
|
230
229
|
summary: A gem to ease internationalization with fast_gettext
|
231
230
|
test_files:
|
231
|
+
- spec/spec_helper.rb
|
232
|
+
- spec/lib/tasks/gettext_rake_spec.rb
|
233
|
+
- spec/lib/gettext-setup/pot_spec.rb
|
234
|
+
- spec/lib/gettext-setup/metadata_pot_spec.rb
|
235
|
+
- spec/lib/gettext-setup/gettext_setup_spec.rb
|
236
|
+
- spec/fixtures/fixture_locales/test_strings.rb
|
232
237
|
- spec/fixtures/fixture_locales/config.yaml
|
233
238
|
- spec/fixtures/fixture_locales/fixture_locales.pot
|
234
239
|
- spec/fixtures/fixture_locales/jp/fixture_locales.po
|
235
|
-
- spec/fixtures/
|
240
|
+
- spec/fixtures/locales/sinatra-i18n.pot
|
236
241
|
- spec/fixtures/locales/config.yaml
|
237
242
|
- spec/fixtures/locales/de/sinatra-i18n.po
|
238
|
-
- spec/fixtures/locales/sinatra-i18n.pot
|
239
243
|
- spec/fixtures/merge_locales/config.yaml
|
240
|
-
- spec/fixtures/spec_locales/config.yaml
|
241
|
-
- spec/fixtures/spec_locales/sinatra-i18n.pot
|
242
|
-
- spec/fixtures/string_changes/add.pot
|
243
|
-
- spec/fixtures/string_changes/change.pot
|
244
244
|
- spec/fixtures/string_changes/non_string_changes.pot
|
245
|
-
- spec/fixtures/string_changes/old.pot
|
246
245
|
- spec/fixtures/string_changes/remove.pot
|
246
|
+
- spec/fixtures/string_changes/old.pot
|
247
|
+
- spec/fixtures/string_changes/change.pot
|
248
|
+
- spec/fixtures/string_changes/add.pot
|
249
|
+
- spec/fixtures/spec_locales/sinatra-i18n.pot
|
250
|
+
- spec/fixtures/spec_locales/config.yaml
|
251
|
+
- spec/fixtures/tmp_locales/sinatra-i18n.pot
|
247
252
|
- spec/fixtures/tmp_locales/config.yaml
|
248
253
|
- spec/fixtures/tmp_locales/de/sinatra-i18n.po
|
249
|
-
- spec/fixtures/tmp_locales/sinatra-i18n.pot
|
250
|
-
- spec/lib/gettext-setup/gettext_setup_spec.rb
|
251
|
-
- spec/lib/gettext-setup/metadata_pot_spec.rb
|
252
|
-
- spec/lib/gettext-setup/pot_spec.rb
|
253
|
-
- spec/lib/tasks/gettext_rake_spec.rb
|
254
|
-
- spec/spec_helper.rb
|