gettext 3.2.9 → 3.4.9
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/README.md +276 -198
- data/Rakefile +7 -4
- data/doc/text/news.md +451 -0
- data/gettext.gemspec +10 -7
- data/lib/gettext/locale_path.rb +17 -9
- data/lib/gettext/mo.rb +12 -19
- data/lib/gettext/po.rb +4 -4
- data/lib/gettext/po_entry.rb +47 -27
- data/lib/gettext/po_parser.rb +65 -59
- data/lib/gettext/text_domain.rb +1 -1
- data/lib/gettext/text_domain_manager.rb +6 -5
- data/lib/gettext/tools/msgcat.rb +9 -2
- data/lib/gettext/tools/msginit.rb +226 -54
- data/lib/gettext/tools/msgmerge.rb +24 -6
- data/lib/gettext/tools/parser/erb.rb +9 -1
- data/lib/gettext/tools/parser/erubi.rb +88 -0
- data/lib/gettext/tools/parser/glade.rb +38 -40
- data/lib/gettext/tools/parser/gtk_builder_ui_definitions.rb +129 -0
- data/lib/gettext/tools/parser/ruby.rb +288 -221
- data/lib/gettext/tools/task.rb +4 -5
- data/lib/gettext/tools/xgettext.rb +21 -10
- data/lib/gettext/version.rb +3 -3
- data/locale/bg/LC_MESSAGES/gettext.mo +0 -0
- data/locale/bs/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ca/LC_MESSAGES/gettext.mo +0 -0
- data/locale/cs/LC_MESSAGES/gettext.mo +0 -0
- data/locale/de/LC_MESSAGES/gettext.mo +0 -0
- data/locale/el/LC_MESSAGES/gettext.mo +0 -0
- data/locale/eo/LC_MESSAGES/gettext.mo +0 -0
- data/locale/es/LC_MESSAGES/gettext.mo +0 -0
- data/locale/et/LC_MESSAGES/gettext.mo +0 -0
- data/locale/fr/LC_MESSAGES/gettext.mo +0 -0
- data/locale/hr/LC_MESSAGES/gettext.mo +0 -0
- data/locale/hu/LC_MESSAGES/gettext.mo +0 -0
- data/locale/it/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ja/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ko/LC_MESSAGES/gettext.mo +0 -0
- data/locale/lv/LC_MESSAGES/gettext.mo +0 -0
- data/locale/nb/LC_MESSAGES/gettext.mo +0 -0
- data/locale/nl/LC_MESSAGES/gettext.mo +0 -0
- data/locale/pt_BR/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ru/LC_MESSAGES/gettext.mo +0 -0
- data/locale/sr/LC_MESSAGES/gettext.mo +0 -0
- data/locale/uk/LC_MESSAGES/gettext.mo +0 -0
- data/locale/vi/LC_MESSAGES/gettext.mo +0 -0
- data/locale/zh/LC_MESSAGES/gettext.mo +0 -0
- data/locale/zh_TW/LC_MESSAGES/gettext.mo +0 -0
- data/po/bg/gettext.edit.po +81 -572
- data/po/bg/gettext.po +7 -409
- data/po/bs/gettext.edit.po +81 -572
- data/po/bs/gettext.po +7 -409
- data/po/ca/gettext.edit.po +81 -572
- data/po/ca/gettext.po +7 -409
- data/po/cs/gettext.edit.po +81 -572
- data/po/cs/gettext.po +7 -409
- data/po/de/gettext.edit.po +81 -572
- data/po/de/gettext.po +7 -409
- data/po/el/gettext.edit.po +81 -572
- data/po/el/gettext.po +7 -409
- data/po/eo/gettext.edit.po +81 -572
- data/po/eo/gettext.po +7 -409
- data/po/es/gettext.edit.po +81 -572
- data/po/es/gettext.po +7 -409
- data/po/et/gettext.edit.po +81 -572
- data/po/et/gettext.po +7 -409
- data/po/fr/gettext.edit.po +81 -572
- data/po/fr/gettext.po +7 -409
- data/po/gettext.pot +93 -645
- data/po/hr/gettext.edit.po +81 -572
- data/po/hr/gettext.po +7 -409
- data/po/hu/gettext.edit.po +81 -572
- data/po/hu/gettext.po +7 -409
- data/po/it/gettext.edit.po +81 -572
- data/po/it/gettext.po +7 -409
- data/po/ja/gettext.edit.po +83 -574
- data/po/ja/gettext.po +9 -411
- data/po/ko/gettext.edit.po +81 -572
- data/po/ko/gettext.po +7 -409
- data/po/lv/gettext.edit.po +81 -572
- data/po/lv/gettext.po +7 -409
- data/po/nb/gettext.edit.po +81 -572
- data/po/nb/gettext.po +7 -409
- data/po/nl/gettext.edit.po +81 -572
- data/po/nl/gettext.po +7 -409
- data/po/pt_BR/gettext.edit.po +81 -572
- data/po/pt_BR/gettext.po +7 -409
- data/po/ru/gettext.edit.po +81 -572
- data/po/ru/gettext.po +7 -409
- data/po/sr/gettext.edit.po +81 -572
- data/po/sr/gettext.po +7 -409
- data/po/sv/gettext.edit.po +81 -572
- data/po/sv/gettext.po +7 -409
- data/po/uk/gettext.edit.po +81 -572
- data/po/uk/gettext.po +7 -409
- data/po/vi/gettext.edit.po +81 -572
- data/po/vi/gettext.po +7 -409
- data/po/zh/gettext.edit.po +81 -572
- data/po/zh/gettext.po +7 -409
- data/po/zh_TW/gettext.edit.po +81 -572
- data/po/zh_TW/gettext.po +7 -409
- 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/bg/hello_gtk_builder.edit.po +15 -0
- data/samples/po/bg/hello_gtk_builder.po +12 -0
- data/samples/po/bs/hello_gtk_builder.edit.po +15 -0
- data/samples/po/bs/hello_gtk_builder.po +12 -0
- data/samples/po/ca/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ca/hello_gtk_builder.po +12 -0
- data/samples/po/cs/hello_gtk_builder.edit.po +15 -0
- data/samples/po/cs/hello_gtk_builder.po +12 -0
- data/samples/po/de/hello_gtk_builder.edit.po +15 -0
- data/samples/po/de/hello_gtk_builder.po +12 -0
- data/samples/po/el/hello_gtk_builder.edit.po +15 -0
- data/samples/po/el/hello_gtk_builder.po +12 -0
- data/samples/po/eo/hello_gtk_builder.edit.po +15 -0
- data/samples/po/eo/hello_gtk_builder.po +12 -0
- data/samples/po/es/hello_gtk_builder.edit.po +15 -0
- data/samples/po/es/hello_gtk_builder.po +12 -0
- data/samples/po/fr/hello_gtk_builder.edit.po +15 -0
- data/samples/po/fr/hello_gtk_builder.po +12 -0
- data/samples/po/hello.pot +3 -3
- data/samples/po/hello2.pot +4 -4
- data/samples/po/hello_glade2.pot +8 -5
- data/samples/po/hello_gtk2.pot +4 -4
- data/samples/po/hello_gtk_builder.pot +18 -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/samples/po/hr/hello_gtk_builder.edit.po +15 -0
- data/samples/po/hr/hello_gtk_builder.po +12 -0
- data/samples/po/hu/hello_gtk_builder.edit.po +15 -0
- data/samples/po/hu/hello_gtk_builder.po +12 -0
- data/samples/po/it/hello_gtk_builder.edit.po +15 -0
- data/samples/po/it/hello_gtk_builder.po +12 -0
- data/samples/po/ja/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ja/hello_gtk_builder.po +12 -0
- data/samples/po/ko/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ko/hello_gtk_builder.po +12 -0
- data/samples/po/lv/hello_gtk_builder.edit.po +15 -0
- data/samples/po/lv/hello_gtk_builder.po +12 -0
- data/samples/po/nb/hello_gtk_builder.edit.po +15 -0
- data/samples/po/nb/hello_gtk_builder.po +12 -0
- data/samples/po/nl/hello_gtk_builder.edit.po +15 -0
- data/samples/po/nl/hello_gtk_builder.po +12 -0
- data/samples/po/pt_BR/hello_gtk_builder.edit.po +15 -0
- data/samples/po/pt_BR/hello_gtk_builder.po +12 -0
- data/samples/po/ru/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ru/hello_gtk_builder.po +12 -0
- data/samples/po/sr/hello_gtk_builder.edit.po +15 -0
- data/samples/po/sr/hello_gtk_builder.po +12 -0
- data/samples/po/sv/hello_gtk_builder.edit.po +15 -0
- data/samples/po/sv/hello_gtk_builder.po +12 -0
- data/samples/po/uk/hello_gtk_builder.edit.po +15 -0
- data/samples/po/uk/hello_gtk_builder.po +12 -0
- data/samples/po/vi/hello_gtk_builder.edit.po +15 -0
- data/samples/po/vi/hello_gtk_builder.po +12 -0
- data/samples/po/zh/hello_gtk_builder.edit.po +15 -0
- data/samples/po/zh/hello_gtk_builder.po +12 -0
- data/samples/po/zh_TW/hello_gtk_builder.edit.po +15 -0
- data/samples/po/zh_TW/hello_gtk_builder.po +12 -0
- data/src/po_parser.ry +48 -42
- 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/fixtures/_/percent_strings.rb +55 -0
- data/test/fixtures/_/pipe.rb +32 -0
- data/test/{gettext-test-utils.rb → fixtures/_/quoted_symbol.rb} +13 -23
- data/test/fixtures/_.rb +10 -1
- data/test/fixtures/erb/case.rhtml +16 -0
- data/test/fixtures/erb/minus.rhtml +12 -0
- data/test/fixtures/erb/non_ascii.rhtml +1 -0
- data/test/fixtures/glade/3.glade +63 -0
- data/test/fixtures/gtk_builder_ui_definitions.ui +68 -0
- data/test/fixtures/multi_text_domain.rb +12 -12
- data/test/fixtures/np_.rb +1 -1
- data/test/fixtures/ns_/custom.rb +2 -2
- data/test/fixtures/ns_.rb +1 -1
- data/test/fixtures/p_.rb +1 -1
- data/test/fixtures/ruby/percent_lower_i.rb +1 -0
- data/test/fixtures/ruby/percent_lower_w.rb +1 -0
- data/test/fixtures/ruby/percent_upper_i.rb +1 -0
- data/test/fixtures/ruby/percent_upper_w.rb +1 -0
- data/test/fixtures/s_/custom.rb +2 -2
- data/test/fixtures/s_.rb +1 -1
- data/test/fixtures/simple.rb +5 -1
- data/test/fixtures/upper_nn_.rb +77 -0
- data/test/helper.rb +99 -0
- data/test/locale/fr/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/fr_BE/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/fr_BE_Foo/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/_.mo +0 -0
- data/test/po/_.pot +28 -4
- data/test/po/backslash.pot +6 -4
- data/test/po/fr/plural_error.po +7 -0
- data/test/po/fr/test1.po +7 -0
- data/test/po/fr_BE/test1.po +24 -0
- data/test/po/fr_BE_Foo/test1.po +20 -0
- data/test/po/hello.pot +3 -3
- data/test/po/ja/_.edit.po +27 -3
- data/test/po/ja/_.po +20 -2
- data/test/po/ja/hello.edit.po +0 -1
- data/test/po/non_ascii.pot +4 -4
- data/test/po/np_.pot +8 -5
- data/test/po/ns_.pot +6 -4
- data/test/po/p_.pot +3 -3
- data/test/po/s_.pot +6 -4
- data/test/po/untranslated.pot +4 -4
- data/test/run-test.rb +2 -3
- data/test/test_class_info.rb +8 -9
- data/test/test_gettext.rb +30 -1
- data/test/test_locale_path.rb +12 -4
- data/test/test_parser.rb +113 -25
- data/test/test_po_entry.rb +21 -17
- data/test/test_po_parser.rb +49 -4
- data/test/test_string.rb +9 -5
- data/test/tools/parser/test_glade.rb +91 -0
- data/test/tools/parser/test_gtk_builder_ui_definitions.rb +63 -0
- data/test/tools/parser/test_ruby.rb +76 -39
- data/test/tools/test_msgcat.rb +21 -1
- data/test/tools/test_msginit.rb +82 -3
- data/test/tools/test_msgmerge.rb +81 -6
- data/test/tools/test_xgettext.rb +106 -5
- metadata +82 -34
- data/lib/gettext/tools/parser/haml.rb +0 -61
- /data/test/fixtures/{gladeparser.glade → glade/2.glade} +0 -0
data/doc/text/news.md
CHANGED
|
@@ -1,5 +1,302 @@
|
|
|
1
1
|
# News
|
|
2
2
|
|
|
3
|
+
## 3.4.9: 2023-10-22 {#version-3-4-9}
|
|
4
|
+
|
|
5
|
+
### Improvements
|
|
6
|
+
|
|
7
|
+
* `rmsgcat`, `rmsgmerge`, `rxgettext`: Added
|
|
8
|
+
`--use-one-line-per-reference` option.
|
|
9
|
+
|
|
10
|
+
## 3.4.8: 2023-10-22 {#version-3-4-8}
|
|
11
|
+
|
|
12
|
+
### Fixes
|
|
13
|
+
|
|
14
|
+
* doc: Fixed a wrong description for interpolation.
|
|
15
|
+
* GH-102
|
|
16
|
+
* Patch by Ilmari Karonen
|
|
17
|
+
|
|
18
|
+
* po: Fixed a parser bug that flags aren't parsed correctly. If a
|
|
19
|
+
normal comment has "fuzzy", the entry is also treated as a fuzzy
|
|
20
|
+
entry.
|
|
21
|
+
|
|
22
|
+
* po: Fixed an output bug that flags aren't formatted correctly.
|
|
23
|
+
* GH-105
|
|
24
|
+
* Patch by Yoshikazu Nojima
|
|
25
|
+
|
|
26
|
+
### Thanks
|
|
27
|
+
|
|
28
|
+
* Ilmari Karonen
|
|
29
|
+
|
|
30
|
+
* Yoshikazu Nojima
|
|
31
|
+
|
|
32
|
+
## 3.4.7: 2023-08-17 {#version-3-4-7}
|
|
33
|
+
|
|
34
|
+
### Fixes
|
|
35
|
+
|
|
36
|
+
* po: Fixed a parser bug that it may add a `fuzzy` flag to non-fuzzy
|
|
37
|
+
entry with `ignore_fuzzy: true`.
|
|
38
|
+
|
|
39
|
+
Example PO:
|
|
40
|
+
|
|
41
|
+
```po
|
|
42
|
+
#, fuzzy
|
|
43
|
+
#: file.rb:10
|
|
44
|
+
msgid "hello"
|
|
45
|
+
msgstr "bonjour"
|
|
46
|
+
|
|
47
|
+
msgid "non-fuzzy"
|
|
48
|
+
msgstr "non-fuzzy string"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`hello` entry is ignored because `ignore_fuzzy` is `true`. The
|
|
52
|
+
`fuzzy` flag in the `hello` entry is added to `non-fuzzy` entry.
|
|
53
|
+
|
|
54
|
+
## 3.4.6: 2023-07-12 {#version-3-4-6}
|
|
55
|
+
|
|
56
|
+
### Fixes
|
|
57
|
+
|
|
58
|
+
* po: Fixed a bug that parsed `msgid`/`msgstr`/`msgctxt` in `.po`
|
|
59
|
+
may be too much unescaped.
|
|
60
|
+
|
|
61
|
+
## 3.4.5: 2023-07-12 {#version-3-4-5}
|
|
62
|
+
|
|
63
|
+
### Improvements
|
|
64
|
+
|
|
65
|
+
* po: Added support for escaping `\r` in `msgid`/`msgstr`.
|
|
66
|
+
|
|
67
|
+
## 3.4.4: 2023-06-11 {#version-3-4-4}
|
|
68
|
+
|
|
69
|
+
### Improvements
|
|
70
|
+
|
|
71
|
+
* Added `racc` to runtime dependencies because Ruby 3.3 doesn't
|
|
72
|
+
include `racc/parser`.
|
|
73
|
+
|
|
74
|
+
## 3.4.3: 2022-05-20 {#version-3-4-3}
|
|
75
|
+
|
|
76
|
+
### Improvements
|
|
77
|
+
|
|
78
|
+
* Added support for Erubi to parse `.erb`
|
|
79
|
+
[GitHub#91][Patch by Michaël Hoste]
|
|
80
|
+
|
|
81
|
+
### Thanks
|
|
82
|
+
|
|
83
|
+
* Michaël Hoste
|
|
84
|
+
|
|
85
|
+
## 3.4.2: 2022-01-11 {#version-3-4-2}
|
|
86
|
+
|
|
87
|
+
### Improvements
|
|
88
|
+
|
|
89
|
+
* Added support for fallback for specific locale.
|
|
90
|
+
e.g.: `fr_BE_Foo` -> `fr_BE` -> `fr`
|
|
91
|
+
[GitHub#90][Patch by Michaël Hoste]
|
|
92
|
+
|
|
93
|
+
* Added support for Ruby 3.1.
|
|
94
|
+
[GitHub#92][Reported by ahiru]
|
|
95
|
+
|
|
96
|
+
### Thanks
|
|
97
|
+
|
|
98
|
+
* Michaël Hoste
|
|
99
|
+
|
|
100
|
+
* ahiru
|
|
101
|
+
|
|
102
|
+
## 3.4.1: 2021-09-08 {#version-3-4-1}
|
|
103
|
+
|
|
104
|
+
### Improvements
|
|
105
|
+
|
|
106
|
+
* Listed licenses separately in gemspec.
|
|
107
|
+
[GitHub#88][Patch by Josh Cooper]
|
|
108
|
+
|
|
109
|
+
### Thanks
|
|
110
|
+
|
|
111
|
+
* Josh Cooper
|
|
112
|
+
|
|
113
|
+
## 3.4.0: 2021-08-26 {#version-3-4-0}
|
|
114
|
+
|
|
115
|
+
### Improvements
|
|
116
|
+
|
|
117
|
+
* test: Added missing Red Datasets availability check.
|
|
118
|
+
[GitHub#87][Reported by Mamoru TASAKA]
|
|
119
|
+
|
|
120
|
+
### Thanks
|
|
121
|
+
|
|
122
|
+
* Mamoru TASAKA
|
|
123
|
+
|
|
124
|
+
## 3.3.9: 2021-08-26 {#version-3-3-9}
|
|
125
|
+
|
|
126
|
+
### Improvements
|
|
127
|
+
|
|
128
|
+
* msginit: Made Red Datasets dependency optional.
|
|
129
|
+
[GitHub:red-datatools/red-datasets#105][Suggested by Mamoru TASAKA]
|
|
130
|
+
|
|
131
|
+
### Thanks
|
|
132
|
+
|
|
133
|
+
* Mamoru TASAKA
|
|
134
|
+
|
|
135
|
+
## 3.3.8: 2021-06-09 {#version-3-3-8}
|
|
136
|
+
|
|
137
|
+
### Improvements
|
|
138
|
+
|
|
139
|
+
* msginit: Added support for generating plural forms with
|
|
140
|
+
Unicode's CLDR plural rules data.
|
|
141
|
+
[GitHub#85][Suggested by Michaël Hoste]
|
|
142
|
+
|
|
143
|
+
* rxgettext ui: Added support for GtkBuilder UI definitions format
|
|
144
|
+
with `.glade` extension.
|
|
145
|
+
[GitHub#74][Reported by dorle-o]
|
|
146
|
+
|
|
147
|
+
### Fixes
|
|
148
|
+
|
|
149
|
+
* rxgettext ruby: Fixed a bug that `Nn_` isn't extracted.
|
|
150
|
+
[GitHub#86][Reported by Kai Ramuenke]
|
|
151
|
+
|
|
152
|
+
### Thanks
|
|
153
|
+
|
|
154
|
+
* Kai Ramuenke
|
|
155
|
+
|
|
156
|
+
* Michaël Hoste
|
|
157
|
+
|
|
158
|
+
* dorle-o
|
|
159
|
+
|
|
160
|
+
## 3.3.7: 2021-01-18 {#version-3-3-7}
|
|
161
|
+
|
|
162
|
+
### Improvements
|
|
163
|
+
|
|
164
|
+
* msgmerge: Added `--no-report-warning` option.
|
|
165
|
+
[GitHub#81][Reported by Akim Demaille]
|
|
166
|
+
|
|
167
|
+
### Thanks
|
|
168
|
+
|
|
169
|
+
* Akim Demaille
|
|
170
|
+
|
|
171
|
+
## 3.3.6: 2020-08-04 {#version-3-3-6}
|
|
172
|
+
|
|
173
|
+
### Improvements
|
|
174
|
+
|
|
175
|
+
* erb: Added support for `-%>`.
|
|
176
|
+
[GitHub#77][Reported by lremes]
|
|
177
|
+
|
|
178
|
+
* Removed ChangeLog.
|
|
179
|
+
[GitHub#76][Reported by Will Stephenson]
|
|
180
|
+
|
|
181
|
+
* Don't assume `RbConfig::CONFIG["datadir"]` is available. For
|
|
182
|
+
example, TruffleRuby doesn't provide it.
|
|
183
|
+
|
|
184
|
+
### Thanks
|
|
185
|
+
|
|
186
|
+
* lremes
|
|
187
|
+
|
|
188
|
+
* Will Stephenson
|
|
189
|
+
|
|
190
|
+
## 3.3.5: 2020-02-15 {#version-3-3-5}
|
|
191
|
+
|
|
192
|
+
### Improvements
|
|
193
|
+
|
|
194
|
+
* Added support for `|` method.
|
|
195
|
+
[GitHub#73][Reported by dorle-o]
|
|
196
|
+
|
|
197
|
+
### Thanks
|
|
198
|
+
|
|
199
|
+
* dorle-o
|
|
200
|
+
|
|
201
|
+
## 3.3.4: 2020-02-12 {#version-3-3-4}
|
|
202
|
+
|
|
203
|
+
### Improvements
|
|
204
|
+
|
|
205
|
+
* Added support for `%W`.
|
|
206
|
+
[GitHub#72][Reported by Michaël Hoste]
|
|
207
|
+
|
|
208
|
+
### Thanks
|
|
209
|
+
|
|
210
|
+
* Michaël Hoste
|
|
211
|
+
|
|
212
|
+
## 3.3.3: 2020-02-05 {#version-3-3-3}
|
|
213
|
+
|
|
214
|
+
### Improvements
|
|
215
|
+
|
|
216
|
+
* Added support for `%I`.
|
|
217
|
+
[GitHub#71][Reported by Kai Ramuenke]
|
|
218
|
+
|
|
219
|
+
### Thanks
|
|
220
|
+
|
|
221
|
+
* Kai Ramuenke
|
|
222
|
+
|
|
223
|
+
## 3.3.2: 2020-01-13 {#version-3-3-2}
|
|
224
|
+
|
|
225
|
+
### Fixes
|
|
226
|
+
|
|
227
|
+
* Fixed a bug that `rake gettext:po:add]` raises an error.
|
|
228
|
+
[GitHub#70][Patch by KITAITI Makoto]
|
|
229
|
+
|
|
230
|
+
### Thanks
|
|
231
|
+
|
|
232
|
+
* KITAITI Makoto
|
|
233
|
+
|
|
234
|
+
## 3.3.1: 2020-01-12 {#version-3-3-1}
|
|
235
|
+
|
|
236
|
+
### Improvements
|
|
237
|
+
|
|
238
|
+
* Stopped detecting string interpolation literal.
|
|
239
|
+
[GitHub#21][Reported by Remo]
|
|
240
|
+
|
|
241
|
+
* `rxgettext`: Added support for adding a new parser by `--require`.
|
|
242
|
+
|
|
243
|
+
* Added support for GtkBuilder UI definitions file.
|
|
244
|
+
[GitHub#63][Reported by Alex]
|
|
245
|
+
|
|
246
|
+
* Improved percent literal parsing.
|
|
247
|
+
[GitHub#67][Patch by KITAITI Makoto]
|
|
248
|
+
|
|
249
|
+
### Thanks
|
|
250
|
+
|
|
251
|
+
* Remo
|
|
252
|
+
|
|
253
|
+
* Alex
|
|
254
|
+
|
|
255
|
+
* KITAITI Makoto
|
|
256
|
+
|
|
257
|
+
## 3.3.0: 2020-01-08 {#version-3-3-0}
|
|
258
|
+
|
|
259
|
+
### Improvements
|
|
260
|
+
|
|
261
|
+
* Fixed README markup.
|
|
262
|
+
[GitHub#57][Patch by Alexander Paukste]
|
|
263
|
+
|
|
264
|
+
* Suppressed warnings.
|
|
265
|
+
[GitHub#58][Patch by 284km]
|
|
266
|
+
|
|
267
|
+
* Improved README.
|
|
268
|
+
[GitHub#62][Patch by Robert Graff]
|
|
269
|
+
|
|
270
|
+
* Added support for finding `racc` of Ruby 2.7.
|
|
271
|
+
[GitHub#65][Patch by KITAITI Makoto]
|
|
272
|
+
|
|
273
|
+
* Added support for Ruby 2.7.
|
|
274
|
+
[GitHub#64][Reported by Anatol Pomozov]
|
|
275
|
+
|
|
276
|
+
* Dropped support for Ruby 2.4.
|
|
277
|
+
|
|
278
|
+
### Fixes
|
|
279
|
+
|
|
280
|
+
* Fixed a bug that `n_` may return nil.
|
|
281
|
+
[GitHub#60][Patch by Michaël Hoste]
|
|
282
|
+
|
|
283
|
+
* Fixed a sort by msgid bug.
|
|
284
|
+
[GitHub#61][Patch by Robert Graff]
|
|
285
|
+
|
|
286
|
+
### Thanks
|
|
287
|
+
|
|
288
|
+
* Alexander Paukste
|
|
289
|
+
|
|
290
|
+
* 284km
|
|
291
|
+
|
|
292
|
+
* Michaël Hoste
|
|
293
|
+
|
|
294
|
+
* Robert Graff
|
|
295
|
+
|
|
296
|
+
* KITAITI Makoto
|
|
297
|
+
|
|
298
|
+
* Anatol Pomozov
|
|
299
|
+
|
|
3
300
|
## 3.2.9: 2018-03-05 {#version-3-2-9}
|
|
4
301
|
|
|
5
302
|
### Fixes
|
|
@@ -740,3 +1037,157 @@ Ruby 1.9 support release.
|
|
|
740
1037
|
* Gunnar Wolf
|
|
741
1038
|
* Ivan Pirlik
|
|
742
1039
|
* Tatsuki Sugiura
|
|
1040
|
+
|
|
1041
|
+
## 2.2.1: 2012-05-20
|
|
1042
|
+
|
|
1043
|
+
### Changes
|
|
1044
|
+
|
|
1045
|
+
* Supported non ASCII string in msgid. [GitHub#1]
|
|
1046
|
+
[Patch by Urban Hafner]
|
|
1047
|
+
* Stopped overriding String#% on Ruby 1.9.
|
|
1048
|
+
* Fixed a bug that "\" is too escaped.
|
|
1049
|
+
* Removed GetText.bindtext dependency from GetText::PoParser.
|
|
1050
|
+
* Ranamed GetText::MOFile to GetText::MoFile but GetText::MOFile
|
|
1051
|
+
is still available.
|
|
1052
|
+
|
|
1053
|
+
### Thanks
|
|
1054
|
+
|
|
1055
|
+
* Urban Hafner
|
|
1056
|
+
|
|
1057
|
+
## 2.2.0: 2012-03-11
|
|
1058
|
+
|
|
1059
|
+
### Changes
|
|
1060
|
+
|
|
1061
|
+
* Supported ruby-1.9. [Patch by hallelujah]
|
|
1062
|
+
* Supported $SAFE=1. [Patch by bon]
|
|
1063
|
+
* Improved argument check. [Suggested by Morus Walter]
|
|
1064
|
+
* Supported ruby-1.8.6 again. [Bug#27447] [Reported by Mamoru Tasaka]
|
|
1065
|
+
* Fixed Ukrainan translation path. [Bug#28277] [Reported by Gunnar Wolf]
|
|
1066
|
+
* Fixed a bug that only the last path in GETTEXT_PATH environment
|
|
1067
|
+
variable is used. [Bug#28345] [Reported by Ivan Pirlik]
|
|
1068
|
+
* Fixed a bug that Ruby-GetText-Package modifies $LOAD_PATH. [Bug#28094]
|
|
1069
|
+
[Reported by Tatsuki Sugiura]
|
|
1070
|
+
|
|
1071
|
+
### Thanks
|
|
1072
|
+
|
|
1073
|
+
* hallelujah
|
|
1074
|
+
* bon
|
|
1075
|
+
* Morus Walter
|
|
1076
|
+
* Mamoru Tasaka
|
|
1077
|
+
* Gunnar Wolf
|
|
1078
|
+
* Ivan Pirlik
|
|
1079
|
+
* Tatsuki Sugiura
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
## 2.1.0: 2009-11-14
|
|
1083
|
+
|
|
1084
|
+
### Changes
|
|
1085
|
+
|
|
1086
|
+
* Implemented parsing of translator comments (GNU gettext feature)
|
|
1087
|
+
[by Vladimir Dobriakov]
|
|
1088
|
+
* Refactor the directory structure.
|
|
1089
|
+
* Move files for runtime to lib/gettext/runtime/*.
|
|
1090
|
+
* Move files for development(rgettext/rmsgfmt) to
|
|
1091
|
+
lib/gettext/tools/*.
|
|
1092
|
+
* Refactor parsers for po. po-message object is defined as GetText::PoMessage
|
|
1093
|
+
class. [by Vladimir Dobriakov, Masao Mutoh]
|
|
1094
|
+
* Speed up when lots of objects are created to share the textdomain in each
|
|
1095
|
+
objects. [Reported by Gaël Séchaud.]
|
|
1096
|
+
* Fix "%{foo.bar}" %{"foo.bar".to_sym => "a"} doesn't work.
|
|
1097
|
+
[Bug#26663, Reported by Danilo Castilho]
|
|
1098
|
+
* lib/gettext.rb: Fixed to work unless gem. [Reported by Vladimir Dobriakov]
|
|
1099
|
+
* Fixed a wrong String literal in a CGI sample.
|
|
1100
|
+
[Bug #26531, by Eugene Mikhailov]
|
|
1101
|
+
* Update license information(explicit to use ruby's or LGPL).
|
|
1102
|
+
[Pointed out by Masateru Yoshikawa]
|
|
1103
|
+
* Code cleanup.
|
|
1104
|
+
* Update minor version.
|
|
1105
|
+
|
|
1106
|
+
## 2.0.4: 2009-05-23
|
|
1107
|
+
|
|
1108
|
+
### Changes
|
|
1109
|
+
|
|
1110
|
+
* Fix String#% return nil when the string have no place holders. [by okkez]
|
|
1111
|
+
* Update pofiles and remove old messages.
|
|
1112
|
+
* suppress some warnings on Ruby 1.9.x. [by Nobuhiro IMAI]
|
|
1113
|
+
* Fix not to run tests on Win32.
|
|
1114
|
+
|
|
1115
|
+
## 2.0.3: 2009-05-09
|
|
1116
|
+
|
|
1117
|
+
### Changes
|
|
1118
|
+
|
|
1119
|
+
* Fixed the dependencies. [Reported by Hans de Graaff]
|
|
1120
|
+
|
|
1121
|
+
## 2.0.2: 2009-05-04
|
|
1122
|
+
|
|
1123
|
+
### Changes
|
|
1124
|
+
|
|
1125
|
+
* Support ruby-1.9.1 style format string such as `%<foo>d`.
|
|
1126
|
+
* Apply new `Locale.set_app_language_tags` and Locale.candidates.
|
|
1127
|
+
[Suggested by Vladimir Dobriakov]
|
|
1128
|
+
* Enhance to support ruby-1.9.x [by OZAWA Sakuro]
|
|
1129
|
+
* poparser work with proper encoding.
|
|
1130
|
+
* string.rb: #bytesize alias to #size in older ruby version such as 1.8.5.
|
|
1131
|
+
* Fixed bugs
|
|
1132
|
+
* `n_()` to work when Plural-Forms line in po-file is not correct.
|
|
1133
|
+
[Reported by Sava Chankov (Bug#25570)]
|
|
1134
|
+
* GetText::Locale.default_rules_path : $LOAD_PATH is not well parsed.
|
|
1135
|
+
[by hallelujah]
|
|
1136
|
+
* locale_path.rb: Fixed warning message.
|
|
1137
|
+
|
|
1138
|
+
### Thanks
|
|
1139
|
+
|
|
1140
|
+
* hallelujah
|
|
1141
|
+
* Sava Chankov
|
|
1142
|
+
* OZAWA Sakuro
|
|
1143
|
+
* Vladimir Dobriakov
|
|
1144
|
+
|
|
1145
|
+
## 2.0.1: 2009-04-17
|
|
1146
|
+
|
|
1147
|
+
### Changes
|
|
1148
|
+
|
|
1149
|
+
* Fixed bugs
|
|
1150
|
+
* doesn't work with ruby-1.8.5. [Reported by Dan Coutu]
|
|
1151
|
+
* GetText.locale= can't keep the locale. [Reported by Adam Ilan]
|
|
1152
|
+
* Break backward compatibility of bindtextdomain
|
|
1153
|
+
[Reported by Mamoru Tasaka(#24947), Mathieu Blondel]
|
|
1154
|
+
* Other trivial fixes/improvement.
|
|
1155
|
+
* 1.8 times faster than 2.0.0.
|
|
1156
|
+
* GetText::LocalePath is separated from GetText::TextDomainManager.
|
|
1157
|
+
Improve to find the locale path.
|
|
1158
|
+
* Enhance to support ruby-1.9.x [by OZAWA Sakuro]
|
|
1159
|
+
|
|
1160
|
+
### Thanks
|
|
1161
|
+
|
|
1162
|
+
* OZAWA Sakuro
|
|
1163
|
+
* Tietew
|
|
1164
|
+
* Adam Ilan
|
|
1165
|
+
* Mamoru Tasaka
|
|
1166
|
+
* Mathieu Blondel
|
|
1167
|
+
|
|
1168
|
+
## 2.0.0: 2009-03-21
|
|
1169
|
+
|
|
1170
|
+
### Changes
|
|
1171
|
+
|
|
1172
|
+
* Separate this library to locale and rails-support to locale,
|
|
1173
|
+
locale\_rails, gettext\_activerecord, gettext\_rails.
|
|
1174
|
+
* Depends on locale(ruby-locale).
|
|
1175
|
+
* Removes to support rails.
|
|
1176
|
+
* A lot of referctoring, improvements.
|
|
1177
|
+
* Thread safe.
|
|
1178
|
+
* New APIs for gettext/tools instead of gettext/utils.
|
|
1179
|
+
* Move to github.com.
|
|
1180
|
+
|
|
1181
|
+
### Special thanks
|
|
1182
|
+
|
|
1183
|
+
* Michael Grosser: A lot of improvement.
|
|
1184
|
+
|
|
1185
|
+
### Thanks
|
|
1186
|
+
|
|
1187
|
+
* Tietew
|
|
1188
|
+
* Kazuhiro NISHIYAMA
|
|
1189
|
+
* Fabio M.A.
|
|
1190
|
+
* Tuptus
|
|
1191
|
+
* Morus Walter
|
|
1192
|
+
* Vladimir Dobriakov
|
|
1193
|
+
* Ramsey
|
data/gettext.gemspec
CHANGED
|
@@ -15,8 +15,7 @@ So you can use GNU gettext tools for maintaining.
|
|
|
15
15
|
EOD
|
|
16
16
|
s.authors = ["Kouhei Sutou", "Masao Mutoh"]
|
|
17
17
|
s.email = ["kou@clear-code.com", "mutomasa at gmail.com"]
|
|
18
|
-
s.homepage = "
|
|
19
|
-
s.rubyforge_project = "gettext"
|
|
18
|
+
s.homepage = "https://ruby-gettext.github.io/"
|
|
20
19
|
s.require_paths = ["lib"]
|
|
21
20
|
Dir.chdir(base_dir) do
|
|
22
21
|
s.files = Dir.glob("{locale,bin,data,doc/text,lib,po,samples,src,test}/**/*")
|
|
@@ -28,14 +27,18 @@ So you can use GNU gettext tools for maintaining.
|
|
|
28
27
|
s.test_files = Dir.glob("test/test_*.rb")
|
|
29
28
|
end
|
|
30
29
|
|
|
30
|
+
s.required_ruby_version = ">= 2.5.0"
|
|
31
|
+
|
|
32
|
+
s.add_runtime_dependency("erubi")
|
|
31
33
|
s.add_runtime_dependency("locale", ">= 2.0.5")
|
|
34
|
+
s.add_runtime_dependency("prime")
|
|
35
|
+
s.add_runtime_dependency("racc")
|
|
32
36
|
s.add_runtime_dependency("text", ">= 1.3.0")
|
|
33
|
-
s.add_development_dependency("rake")
|
|
34
|
-
s.add_development_dependency("racc")
|
|
35
|
-
s.add_development_dependency("yard")
|
|
36
37
|
s.add_development_dependency("kramdown")
|
|
38
|
+
s.add_development_dependency("rake")
|
|
39
|
+
s.add_development_dependency("red-datasets")
|
|
37
40
|
s.add_development_dependency("test-unit")
|
|
38
|
-
s.add_development_dependency("test-unit-notify")
|
|
39
41
|
s.add_development_dependency("test-unit-rr")
|
|
40
|
-
s.
|
|
42
|
+
s.add_development_dependency("yard")
|
|
43
|
+
s.licenses = ["Ruby", "LGPL-3.0+"]
|
|
41
44
|
end
|
data/lib/gettext/locale_path.rb
CHANGED
|
@@ -17,14 +17,18 @@ module GetText
|
|
|
17
17
|
class LocalePath
|
|
18
18
|
# The default locale paths.
|
|
19
19
|
CONFIG_PREFIX = RbConfig::CONFIG['prefix'].gsub(/\/local/, "")
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
default_rules_candidates = [
|
|
21
|
+
"./locale/%{lang}/LC_MESSAGES/%{name}.mo",
|
|
22
|
+
"./locale/%{lang}/%{name}.mo",
|
|
23
|
+
]
|
|
24
|
+
data_dir = RbConfig::CONFIG["datadir"]
|
|
25
|
+
if data_dir
|
|
26
|
+
default_rules_candidates << "#{data_dir}/locale/%{lang}/LC_MESSAGES/%{name}.mo"
|
|
27
|
+
default_rules_candidates << "#{data_dir.gsub(/\/local/, "")}/locale/%{lang}/LC_MESSAGES/%{name}.mo"
|
|
28
|
+
end
|
|
29
|
+
default_rules_candidates << "#{CONFIG_PREFIX}/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
|
|
30
|
+
default_rules_candidates << "#{CONFIG_PREFIX}/local/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
|
|
31
|
+
DEFAULT_RULES = default_rules_candidates.uniq
|
|
28
32
|
|
|
29
33
|
class << self
|
|
30
34
|
# Add default locale path. Usually you should use GetText.add_default_locale_path instead.
|
|
@@ -85,7 +89,11 @@ module GetText
|
|
|
85
89
|
this_path_rules = rule % {:lang => "([^\/]+)", :name => name}
|
|
86
90
|
Dir.glob(rule % {:lang => "*", :name => name}).each do |path|
|
|
87
91
|
if /#{this_path_rules}/ =~ path
|
|
88
|
-
|
|
92
|
+
locale_path = $1
|
|
93
|
+
unless @locale_paths[locale_path]
|
|
94
|
+
path.untaint if RUBY_VERSION < "2.7"
|
|
95
|
+
@locale_paths[locale_path] = path
|
|
96
|
+
end
|
|
89
97
|
end
|
|
90
98
|
end
|
|
91
99
|
end
|
data/lib/gettext/mo.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
=begin
|
|
4
4
|
mo.rb - A simple class for operating GNU MO file.
|
|
5
5
|
|
|
6
|
-
Copyright (C) 2012-
|
|
6
|
+
Copyright (C) 2012-2022 Sutou Kouhei <kou@clear-code.com>
|
|
7
7
|
Copyright (C) 2003-2009 Masao Mutoh
|
|
8
8
|
Copyright (C) 2002 Masahiro Sakai, Masao Mutoh
|
|
9
9
|
Copyright (C) 2001 Masahiro Sakai
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
|
|
20
20
|
require 'stringio'
|
|
21
21
|
|
|
22
|
+
require 'prime'
|
|
23
|
+
|
|
22
24
|
module GetText
|
|
23
25
|
class MO < Hash
|
|
24
26
|
class InvalidFormat < RuntimeError; end;
|
|
@@ -168,19 +170,8 @@ module GetText
|
|
|
168
170
|
('1' * number) !~ /^1?$|^(11+?)\1+$/
|
|
169
171
|
end
|
|
170
172
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
def next_prime(seed)
|
|
174
|
-
Prime.instance.find{|x| x > seed }
|
|
175
|
-
end
|
|
176
|
-
rescue LoadError
|
|
177
|
-
def next_prime(seed)
|
|
178
|
-
require 'mathn'
|
|
179
|
-
prime = Prime.new
|
|
180
|
-
while current = prime.succ
|
|
181
|
-
return current if current > seed
|
|
182
|
-
end
|
|
183
|
-
end
|
|
173
|
+
def next_prime(seed)
|
|
174
|
+
Prime.instance.find{|x| x > seed }
|
|
184
175
|
end
|
|
185
176
|
|
|
186
177
|
HASHWORDBITS = 32
|
|
@@ -278,11 +269,13 @@ module GetText
|
|
|
278
269
|
|
|
279
270
|
def load_from_file(filename)
|
|
280
271
|
@filename = filename
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
e
|
|
285
|
-
|
|
272
|
+
File.open(filename, 'rb') do |f|
|
|
273
|
+
begin
|
|
274
|
+
load_from_stream(f)
|
|
275
|
+
rescue => e
|
|
276
|
+
e.set_backtrace(["#{filename}:#{f.lineno}"] + e.backtrace)
|
|
277
|
+
raise e
|
|
278
|
+
end
|
|
286
279
|
end
|
|
287
280
|
end
|
|
288
281
|
|
data/lib/gettext/po.rb
CHANGED
|
@@ -222,11 +222,11 @@ module GetText
|
|
|
222
222
|
def sort(entries)
|
|
223
223
|
case @order
|
|
224
224
|
when :reference, :references # :references is deprecated.
|
|
225
|
-
|
|
225
|
+
sort_by_reference(entries)
|
|
226
226
|
when :msgid
|
|
227
|
-
|
|
227
|
+
sort_by_msgid(entries)
|
|
228
228
|
else
|
|
229
|
-
|
|
229
|
+
entries.to_a
|
|
230
230
|
end
|
|
231
231
|
end
|
|
232
232
|
|
|
@@ -268,7 +268,7 @@ module GetText
|
|
|
268
268
|
def sort_by_msgid(entries)
|
|
269
269
|
entries.sort_by do |msgid_entry|
|
|
270
270
|
# msgid_entry = [[msgctxt, msgid], POEntry]
|
|
271
|
-
msgid_entry[0]
|
|
271
|
+
msgid_entry[0][1]
|
|
272
272
|
end
|
|
273
273
|
end
|
|
274
274
|
end
|