gettext 3.3.0 → 3.3.1
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/doc/text/news.md +23 -0
- data/lib/gettext/tools/msginit.rb +5 -4
- data/lib/gettext/tools/parser/gtk_builder_ui_definitions.rb +129 -0
- data/lib/gettext/tools/parser/ruby.rb +48 -22
- data/lib/gettext/tools/xgettext.rb +6 -6
- data/lib/gettext/version.rb +1 -1
- data/locale/ja/LC_MESSAGES/gettext.mo +0 -0
- data/po/bg/gettext.edit.po +12 -4
- data/po/bg/gettext.po +7 -3
- data/po/bs/gettext.edit.po +12 -4
- data/po/bs/gettext.po +7 -3
- data/po/ca/gettext.edit.po +12 -4
- data/po/ca/gettext.po +7 -3
- data/po/cs/gettext.edit.po +12 -4
- data/po/cs/gettext.po +7 -3
- data/po/de/gettext.edit.po +12 -4
- data/po/de/gettext.po +7 -3
- data/po/el/gettext.edit.po +12 -4
- data/po/el/gettext.po +7 -3
- data/po/eo/gettext.edit.po +12 -4
- data/po/eo/gettext.po +7 -3
- data/po/es/gettext.edit.po +12 -4
- data/po/es/gettext.po +7 -3
- data/po/et/gettext.edit.po +12 -4
- data/po/et/gettext.po +7 -3
- data/po/fr/gettext.edit.po +12 -4
- data/po/fr/gettext.po +7 -3
- data/po/gettext.pot +15 -9
- data/po/hr/gettext.edit.po +12 -4
- data/po/hr/gettext.po +7 -3
- data/po/hu/gettext.edit.po +12 -4
- data/po/hu/gettext.po +7 -3
- data/po/it/gettext.edit.po +12 -4
- data/po/it/gettext.po +7 -3
- data/po/ja/gettext.edit.po +14 -6
- data/po/ja/gettext.po +9 -5
- data/po/ko/gettext.edit.po +12 -4
- data/po/ko/gettext.po +7 -3
- data/po/lv/gettext.edit.po +12 -4
- data/po/lv/gettext.po +7 -3
- data/po/nb/gettext.edit.po +12 -4
- data/po/nb/gettext.po +7 -3
- data/po/nl/gettext.edit.po +12 -4
- data/po/nl/gettext.po +7 -3
- data/po/pt_BR/gettext.edit.po +12 -4
- data/po/pt_BR/gettext.po +7 -3
- data/po/ru/gettext.edit.po +12 -4
- data/po/ru/gettext.po +7 -3
- data/po/sr/gettext.edit.po +12 -4
- data/po/sr/gettext.po +7 -3
- data/po/sv/gettext.edit.po +12 -4
- data/po/sv/gettext.po +7 -3
- data/po/uk/gettext.edit.po +12 -4
- data/po/uk/gettext.po +7 -3
- data/po/vi/gettext.edit.po +12 -4
- data/po/vi/gettext.po +7 -3
- data/po/zh/gettext.edit.po +12 -4
- data/po/zh/gettext.po +7 -3
- data/po/zh_TW/gettext.edit.po +12 -4
- data/po/zh_TW/gettext.po +7 -3
- data/samples/cgi/po/helloerb1.pot +3 -3
- data/samples/cgi/po/helloerb2.pot +3 -3
- data/samples/cgi/po/hellolib.pot +3 -3
- data/samples/cgi/po/main.pot +3 -3
- data/samples/po/hello.pot +3 -3
- data/samples/po/hello2.pot +4 -4
- data/samples/po/hello_glade2.pot +4 -4
- data/samples/po/hello_gtk2.pot +4 -4
- data/samples/po/hello_gtk_builder.pot +5 -4
- data/samples/po/hello_noop.pot +4 -4
- data/samples/po/hello_plural.pot +4 -4
- data/samples/po/hello_tk.pot +4 -4
- data/test/fixtures/_/backtick.rb +30 -0
- data/test/fixtures/_/block_parameter.rb +2 -2
- data/test/fixtures/_/double_quote_in_double_quote.rb +2 -2
- data/test/fixtures/_/double_quote_in_single_quote.rb +2 -2
- data/test/fixtures/_/literal_concatenation_with_continuation_line.rb +2 -2
- data/test/fixtures/_/middle_new_line.rb +2 -2
- data/test/fixtures/_/multiple_lines_literal.rb +2 -2
- data/test/fixtures/_/multiple_messages_in_same_line.rb +2 -2
- data/test/fixtures/_/multiple_same_messages.rb +2 -2
- data/test/fixtures/_/one_line.rb +2 -2
- data/test/fixtures/_/one_new_line.rb +2 -2
- data/test/{gettext-test-utils.rb → fixtures/_/percent_strings.rb} +21 -26
- data/test/fixtures/_/quoted_symbol.rb +34 -0
- data/test/fixtures/gtk_builder_ui_definitions.ui +68 -0
- data/test/fixtures/ns_/custom.rb +2 -2
- data/test/fixtures/s_/custom.rb +2 -2
- data/test/helper.rb +99 -0
- data/test/po/_.pot +2 -6
- data/test/po/backslash.pot +4 -6
- data/test/po/hello.pot +3 -3
- data/test/po/ja/_.edit.po +0 -4
- data/test/po/ja/hello.edit.po +1 -0
- data/test/po/non_ascii.pot +4 -4
- data/test/po/np_.pot +5 -8
- data/test/po/ns_.pot +4 -6
- data/test/po/p_.pot +3 -3
- data/test/po/s_.pot +4 -6
- data/test/po/untranslated.pot +4 -4
- data/test/run-test.rb +2 -2
- data/test/test_parser.rb +11 -10
- data/test/test_po_parser.rb +2 -2
- data/test/test_string.rb +1 -1
- data/test/tools/parser/test_gtk_builder_ui_definitions.rb +45 -0
- data/test/tools/parser/test_ruby.rb +26 -39
- data/test/tools/test_msgmerge.rb +3 -3
- data/test/tools/test_xgettext.rb +2 -2
- metadata +20 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d22629a729714a92e020579fcf8b6958a81f167a5c8126971383584f4cf20767
|
|
4
|
+
data.tar.gz: 01cd63601bbe76f52566d20015be66891e02022ce5c02691350a5d2da3980f6f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 071e7bc118369c5eaffb4b7ba1653572e22a007fb4035e2620ad3bf3c152dd5fe25fafe0c8404b78fade0af264125fd716fc3fd8fa0bd3a70815837a63cc2587
|
|
7
|
+
data.tar.gz: 7d725646addcf0a3c3dd5460dac0dc8adfe0211190cc91164e25232a9dd392c3903fd98f55feb31ad824e3a6fa23e19202ef2e9b7fa519fbdc1b6aee91887563
|
data/doc/text/news.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# News
|
|
2
2
|
|
|
3
|
+
## 3.3.1: 2020-01-12 {#version-3-3-1}
|
|
4
|
+
|
|
5
|
+
### Improvements
|
|
6
|
+
|
|
7
|
+
* Stopped detecting string interpolation literal.
|
|
8
|
+
[GitHub#21][Reported by Remo]
|
|
9
|
+
|
|
10
|
+
* `rxgettext`: Added support for adding a new parser by `--require`.
|
|
11
|
+
|
|
12
|
+
* Added support for GtkBuilder UI definitions file.
|
|
13
|
+
[GitHub#63][Reported by Alex]
|
|
14
|
+
|
|
15
|
+
* Improved percent literal parsing.
|
|
16
|
+
[GitHub#67][Patch by KITAITI Makoto]
|
|
17
|
+
|
|
18
|
+
### Thanks
|
|
19
|
+
|
|
20
|
+
* Remo
|
|
21
|
+
|
|
22
|
+
* Alex
|
|
23
|
+
|
|
24
|
+
* KITAITI Makoto
|
|
25
|
+
|
|
3
26
|
## 3.3.0: 2020-01-08 {#version-3-3-0}
|
|
4
27
|
|
|
5
28
|
### Improvements
|
|
@@ -156,7 +156,7 @@ module GetText
|
|
|
156
156
|
else
|
|
157
157
|
unless File.exist?(@input_file)
|
|
158
158
|
raise(ValidationError,
|
|
159
|
-
_("file '%s' does not exist." % @input_file)
|
|
159
|
+
_("file '%s' does not exist.") % @input_file)
|
|
160
160
|
end
|
|
161
161
|
end
|
|
162
162
|
|
|
@@ -168,8 +168,9 @@ module GetText
|
|
|
168
168
|
|
|
169
169
|
unless valid_locale?(language_tag)
|
|
170
170
|
raise(ValidationError,
|
|
171
|
-
_("Locale '
|
|
172
|
-
|
|
171
|
+
_("Locale '%s' is invalid. " +
|
|
172
|
+
"Please check if your specified locale is usable.") %
|
|
173
|
+
language_tag)
|
|
173
174
|
end
|
|
174
175
|
@locale = language_tag.to_simple.to_s
|
|
175
176
|
@language = language_tag.language
|
|
@@ -177,7 +178,7 @@ module GetText
|
|
|
177
178
|
@output_file ||= "#{@locale}.po"
|
|
178
179
|
if File.exist?(@output_file)
|
|
179
180
|
raise(ValidationError,
|
|
180
|
-
_("file '%s' has already existed." % @output_file)
|
|
181
|
+
_("file '%s' has already existed.") % @output_file)
|
|
181
182
|
end
|
|
182
183
|
end
|
|
183
184
|
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Copyright (C) 2020 Sutou Kouhei <kou@clear-code.com>
|
|
2
|
+
#
|
|
3
|
+
# License: Ruby's or LGPL
|
|
4
|
+
#
|
|
5
|
+
# This library is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This library is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU Lesser General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
require "English"
|
|
19
|
+
require "cgi"
|
|
20
|
+
require "strscan"
|
|
21
|
+
|
|
22
|
+
require "gettext/po_entry"
|
|
23
|
+
|
|
24
|
+
module GetText
|
|
25
|
+
class GtkBuilderUIDefinitionsParser
|
|
26
|
+
@config = {
|
|
27
|
+
:extnames => [".ui"]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
class << self
|
|
31
|
+
# Sets some preferences to parse GtkBuilder UI definitions files.
|
|
32
|
+
# * config: a Hash of the config. It can takes some values below:
|
|
33
|
+
# * :extnames: An Array of target files extension. Default is [".ui"].
|
|
34
|
+
def init(config)
|
|
35
|
+
config.each do |k, v|
|
|
36
|
+
@config[k] = v
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def target?(file) # :nodoc:
|
|
41
|
+
@config[:extnames].each do |extname|
|
|
42
|
+
return true if File.extname(file) == extname
|
|
43
|
+
end
|
|
44
|
+
false
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def parse(path, options={})
|
|
48
|
+
parser = new(path, options)
|
|
49
|
+
parser.parse
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
TARGET1 = /<property.*translatable="yes">(.*)/
|
|
54
|
+
TARGET2 = /(.*)<\/property>/
|
|
55
|
+
|
|
56
|
+
def initialize(path, options={})
|
|
57
|
+
@path = path
|
|
58
|
+
@options = options
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def parse # :nodoc:
|
|
62
|
+
File.open(@path) do |file|
|
|
63
|
+
po = []
|
|
64
|
+
start_line_no = nil
|
|
65
|
+
property = nil
|
|
66
|
+
file.each_line do |line|
|
|
67
|
+
case line
|
|
68
|
+
when /<property/
|
|
69
|
+
property = $POSTMATCH
|
|
70
|
+
start_line_no = file.lineno
|
|
71
|
+
if /<\/property>/ =~ property
|
|
72
|
+
property << $PREMATCH
|
|
73
|
+
add_po_entry(po, property, start_line_no)
|
|
74
|
+
property = nil
|
|
75
|
+
end
|
|
76
|
+
when /<\/property>/
|
|
77
|
+
property << $PREMATCH
|
|
78
|
+
add_po_entry(po, property, start_line_no)
|
|
79
|
+
property = nil
|
|
80
|
+
else
|
|
81
|
+
property << line if property
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
po
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
private
|
|
89
|
+
def add_po_entry(po, property, line_no)
|
|
90
|
+
raw_attributes, raw_data_and_close_tag = property.split(">", 2)
|
|
91
|
+
raw_data, _close_tag = raw_data_and_close_tag.split("<", 2)
|
|
92
|
+
return if raw_data.empty?
|
|
93
|
+
|
|
94
|
+
attributes = parse_attributes(raw_attributes)
|
|
95
|
+
return unless attributes["translatable"] == "yes"
|
|
96
|
+
|
|
97
|
+
data = CGI.unescapeHTML(raw_data)
|
|
98
|
+
context = attributes["context"]
|
|
99
|
+
if context
|
|
100
|
+
po_entry = POEntry.new(:msgctxt)
|
|
101
|
+
po_entry.msgctxt = context
|
|
102
|
+
else
|
|
103
|
+
po_entry = POEntry.new(:normal)
|
|
104
|
+
end
|
|
105
|
+
po_entry.msgid = data
|
|
106
|
+
po_entry.references << "#{@path}:#{line_no}"
|
|
107
|
+
po << po_entry
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def parse_attributes(raw_attributes)
|
|
111
|
+
scanner = StringScanner.new(raw_attributes)
|
|
112
|
+
attributes = {}
|
|
113
|
+
loop do
|
|
114
|
+
scanner.scan(/\s*/m)
|
|
115
|
+
break if scanner.eos?
|
|
116
|
+
name = scanner.scan(/[^=]+/)
|
|
117
|
+
break if name.nil?
|
|
118
|
+
break unless scanner.scan(/=/)
|
|
119
|
+
quote = scanner.scan(/["']/)
|
|
120
|
+
break if quote.nil?
|
|
121
|
+
value = scanner.scan(/[^#{Regexp.escape(quote)}]+/m)
|
|
122
|
+
break if value.nil?
|
|
123
|
+
break unless scanner.scan(/#{Regexp.escape(quote)}/)
|
|
124
|
+
attributes[name] = CGI.unescapeHTML(value)
|
|
125
|
+
end
|
|
126
|
+
attributes
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
@@ -38,7 +38,6 @@ module GetText
|
|
|
38
38
|
@comment_tag = nil
|
|
39
39
|
@last_comment = ""
|
|
40
40
|
@reset_comment = false
|
|
41
|
-
@embed_expression_level = 0
|
|
42
41
|
@string_mark_stack = []
|
|
43
42
|
@string_stack = []
|
|
44
43
|
end
|
|
@@ -67,11 +66,6 @@ module GetText
|
|
|
67
66
|
end
|
|
68
67
|
|
|
69
68
|
def process_on_ident(token, po)
|
|
70
|
-
if @embed_expression_level > 0
|
|
71
|
-
@string_stack.last << token
|
|
72
|
-
return po
|
|
73
|
-
end
|
|
74
|
-
|
|
75
69
|
store_po_entry(po)
|
|
76
70
|
|
|
77
71
|
return po if @in_block_arguments
|
|
@@ -127,13 +121,22 @@ module GetText
|
|
|
127
121
|
end
|
|
128
122
|
|
|
129
123
|
def process_on_tstring_beg(token, po)
|
|
130
|
-
|
|
124
|
+
if token.start_with?("%Q")
|
|
125
|
+
@string_mark_stack << "\""
|
|
126
|
+
elsif token.start_with?("%q")
|
|
127
|
+
@string_mark_stack << "'"
|
|
128
|
+
elsif token.start_with?("%")
|
|
129
|
+
@string_mark_stack << "\""
|
|
130
|
+
else
|
|
131
|
+
@string_mark_stack << token
|
|
132
|
+
end
|
|
131
133
|
@string_stack << ""
|
|
132
134
|
po
|
|
133
135
|
end
|
|
134
136
|
|
|
135
137
|
def process_on_tstring_content(token, po)
|
|
136
|
-
|
|
138
|
+
case @string_mark_stack.last
|
|
139
|
+
when "\"", "`"
|
|
137
140
|
@string_stack.last << token.gsub(/\\./) do |data|
|
|
138
141
|
case data
|
|
139
142
|
when "\\n"
|
|
@@ -167,12 +170,15 @@ module GetText
|
|
|
167
170
|
|
|
168
171
|
def process_on_tstring_end(token, po)
|
|
169
172
|
@ignore_next_comma = false
|
|
170
|
-
@string_mark_stack.pop
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
string_mark = @string_mark_stack.pop
|
|
174
|
+
case string_mark
|
|
175
|
+
when "\"", "'"
|
|
176
|
+
last_string = @string_stack.pop
|
|
177
|
+
if @current_po_entry and last_string
|
|
178
|
+
@current_po_entry[@current_po_entry_nth_attribute] =
|
|
179
|
+
(@current_po_entry[@current_po_entry_nth_attribute] || "") +
|
|
180
|
+
last_string
|
|
181
|
+
end
|
|
176
182
|
end
|
|
177
183
|
po
|
|
178
184
|
end
|
|
@@ -198,14 +204,8 @@ module GetText
|
|
|
198
204
|
end
|
|
199
205
|
|
|
200
206
|
def process_on_embexpr_beg(token, po)
|
|
201
|
-
@
|
|
202
|
-
@
|
|
203
|
-
po
|
|
204
|
-
end
|
|
205
|
-
|
|
206
|
-
def process_on_embexpr_end(token, po)
|
|
207
|
-
@embed_expression_level -= 1
|
|
208
|
-
@string_stack.last << token
|
|
207
|
+
@current_po_entry = nil
|
|
208
|
+
@current_po_entry_nth_attribute = 0
|
|
209
209
|
po
|
|
210
210
|
end
|
|
211
211
|
|
|
@@ -239,6 +239,32 @@ module GetText
|
|
|
239
239
|
po
|
|
240
240
|
end
|
|
241
241
|
|
|
242
|
+
def process_on_symbeg(token, po)
|
|
243
|
+
if token.start_with?("%s") or [":'", ":\""].include?(token)
|
|
244
|
+
@string_mark_stack << ":"
|
|
245
|
+
@string_stack << ""
|
|
246
|
+
end
|
|
247
|
+
po
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
def process_on_backtick(token, po)
|
|
251
|
+
@string_mark_stack << "`"
|
|
252
|
+
@string_stack << ""
|
|
253
|
+
po
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
def process_on_qsymbols_beg(token, po)
|
|
257
|
+
@string_mark_stack << token
|
|
258
|
+
@string_stack << ""
|
|
259
|
+
po
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
def process_on_qwords_beg(token, po)
|
|
263
|
+
@string_mark_stack << token
|
|
264
|
+
@string_stack << ""
|
|
265
|
+
po
|
|
266
|
+
end
|
|
267
|
+
|
|
242
268
|
def on_default(event, token, po)
|
|
243
269
|
trace(event, token) do
|
|
244
270
|
process_method = "process_#{event}"
|
|
@@ -52,15 +52,15 @@ module GetText
|
|
|
52
52
|
# @api private
|
|
53
53
|
@@default_parsers = []
|
|
54
54
|
builtin_parser_info_list = [
|
|
55
|
-
["
|
|
55
|
+
["ruby", "RubyParser"], # Default parser.
|
|
56
56
|
["erb", "ErbParser"],
|
|
57
|
-
|
|
58
|
-
["
|
|
57
|
+
["gtk_builder_ui_definitions", "GtkBuilderUIDefinitionsParser"],
|
|
58
|
+
["glade", "GladeParser"],
|
|
59
59
|
]
|
|
60
60
|
builtin_parser_info_list.each do |f, klass|
|
|
61
61
|
begin
|
|
62
62
|
require "gettext/tools/parser/#{f}"
|
|
63
|
-
|
|
63
|
+
add_parser(GetText.const_get(klass))
|
|
64
64
|
rescue
|
|
65
65
|
$stderr.puts(_("'%{klass}' is ignored.") % {:klass => klass})
|
|
66
66
|
$stderr.puts($!) if $DEBUG
|
|
@@ -74,7 +74,7 @@ module GetText
|
|
|
74
74
|
attr_reader :parse_options
|
|
75
75
|
|
|
76
76
|
def initialize #:nodoc:
|
|
77
|
-
@parsers =
|
|
77
|
+
@parsers = []
|
|
78
78
|
|
|
79
79
|
@input_files = nil
|
|
80
80
|
@output = nil
|
|
@@ -357,7 +357,7 @@ Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;
|
|
|
357
357
|
end
|
|
358
358
|
|
|
359
359
|
def parse_path(path, po)
|
|
360
|
-
@parsers.each do |parser|
|
|
360
|
+
(@parsers + @@default_parsers).each do |parser|
|
|
361
361
|
next unless parser.target?(path)
|
|
362
362
|
|
|
363
363
|
# For backward compatibility
|
data/lib/gettext/version.rb
CHANGED
|
Binary file
|
data/po/bg/gettext.edit.po
CHANGED
|
@@ -192,18 +192,18 @@ msgid "file '%s' does not exist."
|
|
|
192
192
|
msgstr "Файлът '%s' съществува."
|
|
193
193
|
|
|
194
194
|
#: ../lib/gettext/tools/msginit.rb:171
|
|
195
|
-
msgid "Locale '
|
|
195
|
+
msgid "Locale '%s' is invalid. Please check if your specified locale is usable."
|
|
196
196
|
msgstr ""
|
|
197
197
|
|
|
198
|
-
#: ../lib/gettext/tools/msginit.rb:
|
|
198
|
+
#: ../lib/gettext/tools/msginit.rb:181
|
|
199
199
|
msgid "file '%s' has already existed."
|
|
200
200
|
msgstr "Файлът '%s' съществува."
|
|
201
201
|
|
|
202
|
-
#: ../lib/gettext/tools/msginit.rb:
|
|
202
|
+
#: ../lib/gettext/tools/msginit.rb:223
|
|
203
203
|
msgid "Please enter your full name"
|
|
204
204
|
msgstr ""
|
|
205
205
|
|
|
206
|
-
#: ../lib/gettext/tools/msginit.rb:
|
|
206
|
+
#: ../lib/gettext/tools/msginit.rb:252
|
|
207
207
|
msgid "Please enter your email address"
|
|
208
208
|
msgstr ""
|
|
209
209
|
|
|
@@ -469,6 +469,10 @@ msgid ""
|
|
|
469
469
|
"Here document2\n"
|
|
470
470
|
msgstr ""
|
|
471
471
|
|
|
472
|
+
#: ../test/fixtures/_.rb:109
|
|
473
|
+
msgid "in_quote"
|
|
474
|
+
msgstr ""
|
|
475
|
+
|
|
472
476
|
#. TRANSLATORS: This is a proper name. See the gettext
|
|
473
477
|
#. manual, section Names. Note this is actually a non-ASCII
|
|
474
478
|
#. name: The first name is (with Unicode escapes)
|
|
@@ -537,6 +541,10 @@ msgid ""
|
|
|
537
541
|
"one new line\n"
|
|
538
542
|
msgstr ""
|
|
539
543
|
|
|
544
|
+
#: ../test/fixtures/_/percent_strings.rb:34
|
|
545
|
+
msgid "hello world"
|
|
546
|
+
msgstr ""
|
|
547
|
+
|
|
540
548
|
#: ../test/fixtures/backslash.rb:27
|
|
541
549
|
msgid "You should escape '\\' as '\\\\'."
|
|
542
550
|
msgstr ""
|
data/po/bg/gettext.po
CHANGED
|
@@ -158,9 +158,7 @@ msgstr ""
|
|
|
158
158
|
msgid "file '%s' does not exist."
|
|
159
159
|
msgstr "Файлът '%s' съществува."
|
|
160
160
|
|
|
161
|
-
msgid ""
|
|
162
|
-
"Locale '#{language_tag}' is invalid. Please check if your specified locale is "
|
|
163
|
-
"usable."
|
|
161
|
+
msgid "Locale '%s' is invalid. Please check if your specified locale is usable."
|
|
164
162
|
msgstr ""
|
|
165
163
|
|
|
166
164
|
msgid "file '%s' has already existed."
|
|
@@ -389,6 +387,9 @@ msgid ""
|
|
|
389
387
|
"Here document2\n"
|
|
390
388
|
msgstr ""
|
|
391
389
|
|
|
390
|
+
msgid "in_quote"
|
|
391
|
+
msgstr ""
|
|
392
|
+
|
|
392
393
|
#. TRANSLATORS: This is a proper name. See the gettext
|
|
393
394
|
#. manual, section Names. Note this is actually a non-ASCII
|
|
394
395
|
#. name: The first name is (with Unicode escapes)
|
|
@@ -443,6 +444,9 @@ msgid ""
|
|
|
443
444
|
"one new line\n"
|
|
444
445
|
msgstr ""
|
|
445
446
|
|
|
447
|
+
msgid "hello world"
|
|
448
|
+
msgstr ""
|
|
449
|
+
|
|
446
450
|
msgid "You should escape '\\' as '\\\\'."
|
|
447
451
|
msgstr ""
|
|
448
452
|
|
data/po/bs/gettext.edit.po
CHANGED
|
@@ -194,18 +194,18 @@ msgid "file '%s' does not exist."
|
|
|
194
194
|
msgstr "Datoteka '%s' već postoji."
|
|
195
195
|
|
|
196
196
|
#: ../lib/gettext/tools/msginit.rb:171
|
|
197
|
-
msgid "Locale '
|
|
197
|
+
msgid "Locale '%s' is invalid. Please check if your specified locale is usable."
|
|
198
198
|
msgstr ""
|
|
199
199
|
|
|
200
|
-
#: ../lib/gettext/tools/msginit.rb:
|
|
200
|
+
#: ../lib/gettext/tools/msginit.rb:181
|
|
201
201
|
msgid "file '%s' has already existed."
|
|
202
202
|
msgstr "Datoteka '%s' već postoji."
|
|
203
203
|
|
|
204
|
-
#: ../lib/gettext/tools/msginit.rb:
|
|
204
|
+
#: ../lib/gettext/tools/msginit.rb:223
|
|
205
205
|
msgid "Please enter your full name"
|
|
206
206
|
msgstr ""
|
|
207
207
|
|
|
208
|
-
#: ../lib/gettext/tools/msginit.rb:
|
|
208
|
+
#: ../lib/gettext/tools/msginit.rb:252
|
|
209
209
|
msgid "Please enter your email address"
|
|
210
210
|
msgstr ""
|
|
211
211
|
|
|
@@ -474,6 +474,10 @@ msgid ""
|
|
|
474
474
|
"Here document2\n"
|
|
475
475
|
msgstr ""
|
|
476
476
|
|
|
477
|
+
#: ../test/fixtures/_.rb:109
|
|
478
|
+
msgid "in_quote"
|
|
479
|
+
msgstr ""
|
|
480
|
+
|
|
477
481
|
#. TRANSLATORS: This is a proper name. See the gettext
|
|
478
482
|
#. manual, section Names. Note this is actually a non-ASCII
|
|
479
483
|
#. name: The first name is (with Unicode escapes)
|
|
@@ -542,6 +546,10 @@ msgid ""
|
|
|
542
546
|
"one new line\n"
|
|
543
547
|
msgstr ""
|
|
544
548
|
|
|
549
|
+
#: ../test/fixtures/_/percent_strings.rb:34
|
|
550
|
+
msgid "hello world"
|
|
551
|
+
msgstr ""
|
|
552
|
+
|
|
545
553
|
#: ../test/fixtures/backslash.rb:27
|
|
546
554
|
msgid "You should escape '\\' as '\\\\'."
|
|
547
555
|
msgstr ""
|