gettext-setup 0.28 → 0.29
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gettext-setup/gettext_setup.rb +13 -7
- data/lib/gettext-setup/metadata_pot.rb +0 -2
- data/lib/gettext-setup/pot.rb +19 -11
- data/lib/tasks/gettext.rake +0 -2
- data/spec/lib/gettext-setup/gettext_setup_spec.rb +0 -1
- data/spec/lib/gettext-setup/pot_spec.rb +13 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8da8fd9251397ed014f16b48dea5b14640d800c
|
4
|
+
data.tar.gz: d627fbab3ccae583c2762a035138446afb01648e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e628881df88dfc63c0626b1aa807175c8a3d9cb12a42da9e10fef82beb7fd8fb7b7e3f7c4c032eeea1cf58397eccdb9bf8da94f34174a4d810d07c6ab839b56
|
7
|
+
data.tar.gz: 22de28a46e580a41f0e8322b0ebf88349f8de4ac46124537b579d8406ce837a0ebd52cb8021765e59a1879fb9981f6fc4e54dbddde3396b4477300ae3b74dbcf
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
1
|
require 'fast_gettext'
|
4
2
|
require 'yaml'
|
5
3
|
require 'locale'
|
@@ -23,11 +21,7 @@ module GettextSetup
|
|
23
21
|
# valid `options` fields:
|
24
22
|
# :file_format - one of the supported backends for fast_gettext (e.g. :po, :mo, :yaml, etc.)
|
25
23
|
def self.initialize(locales_path = 'locales', options = {})
|
26
|
-
|
27
|
-
File.exist?(config_path) || raise(NoConfigFoundError, config_path)
|
28
|
-
|
29
|
-
@config = YAML.load_file(config_path)['gettext']
|
30
|
-
@locales_path = locales_path
|
24
|
+
GettextSetup.initialize_config(locales_path)
|
31
25
|
|
32
26
|
# Make the translation methods available everywhere
|
33
27
|
Object.send(:include, FastGettext::Translation)
|
@@ -49,6 +43,18 @@ module GettextSetup
|
|
49
43
|
Locale.set_default(default_locale)
|
50
44
|
end
|
51
45
|
|
46
|
+
# Sets up the config class variables.
|
47
|
+
#
|
48
|
+
# Call this without calling initialize when you only need to deal with the
|
49
|
+
# translation files and you don't need runtime translation.
|
50
|
+
def self.initialize_config(locales_path = 'locales')
|
51
|
+
config_path = File.absolute_path('config.yaml', locales_path)
|
52
|
+
File.exist?(config_path) || raise(NoConfigFoundError, config_path)
|
53
|
+
|
54
|
+
@config = YAML.load_file(config_path)['gettext']
|
55
|
+
@locales_path = locales_path
|
56
|
+
end
|
57
|
+
|
52
58
|
def self.config?
|
53
59
|
raise NoConfigFoundError, File.join(locales_path, 'config.yaml') unless @config
|
54
60
|
@config
|
data/lib/gettext-setup/pot.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
1
|
require 'open3'
|
4
2
|
require 'English'
|
3
|
+
require 'tempfile'
|
5
4
|
|
6
5
|
module GettextSetup
|
7
6
|
module Pot
|
@@ -54,10 +53,18 @@ module GettextSetup
|
|
54
53
|
# The directory for the locales.
|
55
54
|
# @param [:target_path] opts
|
56
55
|
# The output path for the new POT file.
|
56
|
+
# @param [:header_only] opts
|
57
|
+
# Set to true to create a .pot file with only a header
|
57
58
|
def self.generate_new_pot(opts = {})
|
58
59
|
locales_path = opts[:locales_path] || GettextSetup.locales_path
|
59
|
-
GettextSetup.
|
60
|
+
GettextSetup.initialize_config(locales_path)
|
60
61
|
target_path = opts[:target_path] || pot_file_path
|
62
|
+
input_files = if opts[:header_only]
|
63
|
+
tmpfile = Tempfile.new('gettext-setup.tmp')
|
64
|
+
tmpfile.path
|
65
|
+
else
|
66
|
+
files_to_translate.join(' ')
|
67
|
+
end
|
61
68
|
config = GettextSetup.config
|
62
69
|
package_name = config['package_name']
|
63
70
|
bugs_address = config['bugs_address']
|
@@ -69,14 +76,15 @@ module GettextSetup
|
|
69
76
|
"--add-comments#{comments_tag.to_s == '' ? '' : '=' + comments_tag} --msgid-bugs-address '#{bugs_address}' " \
|
70
77
|
"--package-name '#{package_name}' " \
|
71
78
|
"--package-version '#{version}' " \
|
72
|
-
"--copyright-holder='#{copyright_holder}' --copyright-year=#{Time.now.year} "
|
73
|
-
|
79
|
+
"--copyright-holder='#{copyright_holder}' --copyright-year=#{Time.now.year} " \
|
80
|
+
"#{input_files}")
|
81
|
+
tmpfile.unlink if tmpfile
|
74
82
|
$CHILD_STATUS.success?
|
75
83
|
end
|
76
84
|
|
77
85
|
def self.generate_new_po(language, locales_path = GettextSetup.locales_path,
|
78
86
|
pot_file = nil, po_file = nil)
|
79
|
-
GettextSetup.
|
87
|
+
GettextSetup.initialize_config(locales_path)
|
80
88
|
language ||= ENV['LANGUAGE']
|
81
89
|
pot_file ||= GettextSetup::Pot.pot_file_path
|
82
90
|
po_file ||= GettextSetup::Pot.po_file_path(language)
|
@@ -116,7 +124,7 @@ module GettextSetup
|
|
116
124
|
end
|
117
125
|
|
118
126
|
def self.update_pot(locales_path = GettextSetup.locales_path, path = nil)
|
119
|
-
GettextSetup.
|
127
|
+
GettextSetup.initialize_config(locales_path)
|
120
128
|
path ||= pot_file_path
|
121
129
|
|
122
130
|
if !File.exist? path
|
@@ -147,7 +155,7 @@ module GettextSetup
|
|
147
155
|
# The directory for the locales.
|
148
156
|
def self.merge(opts = {})
|
149
157
|
locales_path = opts[:locales_path] || GettextSetup.locales_path
|
150
|
-
GettextSetup.
|
158
|
+
GettextSetup.initialize_config(locales_path)
|
151
159
|
target_filename = GettextSetup.config['project_name'] + '.pot'
|
152
160
|
target_path = File.expand_path(target_filename, locales_path)
|
153
161
|
oldpot_dir = File.expand_path('oldpot', locales_path)
|
@@ -156,9 +164,9 @@ module GettextSetup
|
|
156
164
|
if File.exist? target_path
|
157
165
|
FileUtils.mkdir_p(oldpot_dir)
|
158
166
|
begin
|
159
|
-
FileUtils.
|
160
|
-
rescue
|
161
|
-
raise "There was a problem creating .pot backup #{oldpot_path}, merge failed."
|
167
|
+
FileUtils.cp(target_path, oldpot_path)
|
168
|
+
rescue Errno::ENOENT => e
|
169
|
+
raise "There was a problem creating .pot backup #{oldpot_path}, merge failed: #{e.message}"
|
162
170
|
end
|
163
171
|
puts "Warning - #{target_filename} already exists and will be relocated to oldpot/old_#{target_filename}."
|
164
172
|
end
|
data/lib/tasks/gettext.rake
CHANGED
@@ -62,6 +62,17 @@ describe GettextSetup::Pot do
|
|
62
62
|
expect(contents).to match(/Puppet, LLC/)
|
63
63
|
expect(contents).to match(/test_strings.rb:1/)
|
64
64
|
end
|
65
|
+
it 'builds a POT file with :header_only' do
|
66
|
+
path = File.join(Dir.mktmpdir, 'new.pot')
|
67
|
+
expect do
|
68
|
+
GettextSetup::Pot.generate_new_pot(locales_path: fixture_locales_path, target_path: path, header_only: true)
|
69
|
+
end.to output('').to_stdout # STDOUT is determined in `update_pot`
|
70
|
+
contents = File.read(path)
|
71
|
+
expect(contents).to_not match(/Hello, world/)
|
72
|
+
expect(contents).to match(/Fixture locales/)
|
73
|
+
expect(contents).to match(/docs@puppetlabs.com/)
|
74
|
+
expect(contents).to match(/Puppet, LLC/)
|
75
|
+
end
|
65
76
|
end
|
66
77
|
|
67
78
|
context 'generate_new_po' do
|
@@ -153,7 +164,7 @@ describe GettextSetup::Pot do
|
|
153
164
|
before :all do
|
154
165
|
{ 'ruby' => 'ruby.pot', 'puppet' => 'puppet.pot', 'metadata' => 'metadata.pot' }.each do |pot_type, pot_name|
|
155
166
|
File.open(File.join(merge_locales_path, pot_name), 'w') do |file|
|
156
|
-
file.write <<-
|
167
|
+
file.write <<-POT
|
157
168
|
# Copyright (C) 2017 Puppet, Inc.
|
158
169
|
# This file is distributed under the same license as the puppetlabs-mysql package.
|
159
170
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2017.
|
@@ -175,7 +186,7 @@ describe GettextSetup::Pot do
|
|
175
186
|
#: ../lib/puppet/parser/functions/mysql_strip_hash.rb:11
|
176
187
|
msgid "this is a #{pot_type} string"
|
177
188
|
msgstr ""
|
178
|
-
|
189
|
+
POT
|
179
190
|
end
|
180
191
|
end
|
181
192
|
end
|
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.29'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fast_gettext
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '3.1'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: rubocop
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - ">="
|
@@ -151,7 +151,7 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: simplecov
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - ">="
|
@@ -224,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
224
|
version: '0'
|
225
225
|
requirements: []
|
226
226
|
rubyforge_project:
|
227
|
-
rubygems_version: 2.5.
|
227
|
+
rubygems_version: 2.5.1
|
228
228
|
signing_key:
|
229
229
|
specification_version: 4
|
230
230
|
summary: A gem to ease internationalization with fast_gettext
|