i18n-context-generator 0.3.0 → 0.5.0
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 +163 -26
- data/lib/i18n_context_generator/android_resource.rb +209 -0
- data/lib/i18n_context_generator/apple_string_literal.rb +28 -0
- data/lib/i18n_context_generator/cache.rb +40 -8
- data/lib/i18n_context_generator/changed_location.rb +55 -0
- data/lib/i18n_context_generator/cli.rb +165 -73
- data/lib/i18n_context_generator/config/cli_values.rb +33 -0
- data/lib/i18n_context_generator/config/defaults.rb +35 -0
- data/lib/i18n_context_generator/config/schema.rb +225 -0
- data/lib/i18n_context_generator/config/serialization.rb +64 -0
- data/lib/i18n_context_generator/config/validation.rb +249 -0
- data/lib/i18n_context_generator/config.rb +315 -105
- data/lib/i18n_context_generator/context_extractor/cache_identity.rb +65 -0
- data/lib/i18n_context_generator/context_extractor/extraction_result.rb +46 -0
- data/lib/i18n_context_generator/context_extractor/run_logging.rb +65 -0
- data/lib/i18n_context_generator/context_extractor/source_entries.rb +103 -0
- data/lib/i18n_context_generator/context_extractor/source_filters.rb +104 -0
- data/lib/i18n_context_generator/context_extractor/translation_filters.rb +91 -0
- data/lib/i18n_context_generator/context_extractor/workflow.rb +118 -0
- data/lib/i18n_context_generator/context_extractor.rb +218 -164
- data/lib/i18n_context_generator/file_classifier.rb +72 -0
- data/lib/i18n_context_generator/generated_comment.rb +32 -0
- data/lib/i18n_context_generator/git_diff/xml_changes.rb +235 -0
- data/lib/i18n_context_generator/git_diff.rb +280 -88
- data/lib/i18n_context_generator/llm/anthropic.rb +65 -38
- data/lib/i18n_context_generator/llm/client.rb +294 -92
- data/lib/i18n_context_generator/llm/openai.rb +92 -51
- data/lib/i18n_context_generator/llm/openai_compatible.rb +20 -0
- data/lib/i18n_context_generator/llm/prompt_evidence.rb +47 -0
- data/lib/i18n_context_generator/llm/request_policy.rb +147 -0
- data/lib/i18n_context_generator/localization_syntax.rb +246 -0
- data/lib/i18n_context_generator/parsers/android_xml_parser.rb +47 -8
- data/lib/i18n_context_generator/parsers/base.rb +7 -4
- data/lib/i18n_context_generator/parsers/json_parser.rb +4 -0
- data/lib/i18n_context_generator/parsers/xcstrings_parser.rb +79 -0
- data/lib/i18n_context_generator/parsers/yaml_parser.rb +20 -7
- data/lib/i18n_context_generator/path_policy.rb +107 -0
- data/lib/i18n_context_generator/platform_validator.rb +24 -50
- data/lib/i18n_context_generator/run_metrics.rb +47 -0
- data/lib/i18n_context_generator/searcher/comment_masking.rb +115 -0
- data/lib/i18n_context_generator/searcher/match_filtering.rb +52 -0
- data/lib/i18n_context_generator/searcher/source_discovery.rb +232 -0
- data/lib/i18n_context_generator/searcher.rb +69 -201
- data/lib/i18n_context_generator/supplemental_context.rb +77 -0
- data/lib/i18n_context_generator/translation_comment_index.rb +121 -0
- data/lib/i18n_context_generator/version.rb +1 -1
- data/lib/i18n_context_generator/writers/android_xml_writer.rb +48 -18
- data/lib/i18n_context_generator/writers/atomic_file.rb +37 -0
- data/lib/i18n_context_generator/writers/csv_writer.rb +43 -18
- data/lib/i18n_context_generator/writers/helpers.rb +7 -29
- data/lib/i18n_context_generator/writers/json_writer.rb +31 -6
- data/lib/i18n_context_generator/writers/preview.rb +80 -0
- data/lib/i18n_context_generator/writers/result_serialization.rb +30 -0
- data/lib/i18n_context_generator/writers/strings_writer.rb +23 -12
- data/lib/i18n_context_generator/writers/swift_writer.rb +16 -54
- data/lib/i18n_context_generator/writers/xcstrings_writer.rb +57 -0
- data/lib/i18n_context_generator/xcstrings_document.rb +218 -0
- data/lib/i18n_context_generator/xml_scanner.rb +38 -0
- data/lib/i18n_context_generator.rb +20 -4
- metadata +62 -12
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: i18n-context-generator
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Automattic
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-07-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: concurrent-ruby
|
|
@@ -24,6 +24,20 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '1.2'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: csv
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '3.3'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '3.3'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
42
|
name: dotstrings
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,14 +86,14 @@ dependencies:
|
|
|
72
86
|
requirements:
|
|
73
87
|
- - "~>"
|
|
74
88
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '1.
|
|
89
|
+
version: '1.5'
|
|
76
90
|
type: :runtime
|
|
77
91
|
prerelease: false
|
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
93
|
requirements:
|
|
80
94
|
- - "~>"
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '1.
|
|
96
|
+
version: '1.5'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: tty-progressbar
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -112,30 +126,30 @@ dependencies:
|
|
|
112
126
|
name: rubocop-rake
|
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
|
114
128
|
requirements:
|
|
115
|
-
- - "
|
|
129
|
+
- - "~>"
|
|
116
130
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
131
|
+
version: '0.7'
|
|
118
132
|
type: :development
|
|
119
133
|
prerelease: false
|
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
135
|
requirements:
|
|
122
|
-
- - "
|
|
136
|
+
- - "~>"
|
|
123
137
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
138
|
+
version: '0.7'
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: rubocop-rspec
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
128
142
|
requirements:
|
|
129
|
-
- - "
|
|
143
|
+
- - "~>"
|
|
130
144
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
145
|
+
version: '3.9'
|
|
132
146
|
type: :development
|
|
133
147
|
prerelease: false
|
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
149
|
requirements:
|
|
136
|
-
- - "
|
|
150
|
+
- - "~>"
|
|
137
151
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
152
|
+
version: '3.9'
|
|
139
153
|
description: A CLI tool that analyzes source code to extract contextual information
|
|
140
154
|
for translation keys, improving translation quality with AI-powered analysis.
|
|
141
155
|
email: mobile@automattic.com
|
|
@@ -148,28 +162,64 @@ files:
|
|
|
148
162
|
- README.md
|
|
149
163
|
- exe/i18n-context-generator
|
|
150
164
|
- lib/i18n_context_generator.rb
|
|
165
|
+
- lib/i18n_context_generator/android_resource.rb
|
|
166
|
+
- lib/i18n_context_generator/apple_string_literal.rb
|
|
151
167
|
- lib/i18n_context_generator/cache.rb
|
|
168
|
+
- lib/i18n_context_generator/changed_location.rb
|
|
152
169
|
- lib/i18n_context_generator/cli.rb
|
|
153
170
|
- lib/i18n_context_generator/config.rb
|
|
171
|
+
- lib/i18n_context_generator/config/cli_values.rb
|
|
172
|
+
- lib/i18n_context_generator/config/defaults.rb
|
|
173
|
+
- lib/i18n_context_generator/config/schema.rb
|
|
174
|
+
- lib/i18n_context_generator/config/serialization.rb
|
|
175
|
+
- lib/i18n_context_generator/config/validation.rb
|
|
154
176
|
- lib/i18n_context_generator/context_extractor.rb
|
|
177
|
+
- lib/i18n_context_generator/context_extractor/cache_identity.rb
|
|
178
|
+
- lib/i18n_context_generator/context_extractor/extraction_result.rb
|
|
179
|
+
- lib/i18n_context_generator/context_extractor/run_logging.rb
|
|
180
|
+
- lib/i18n_context_generator/context_extractor/source_entries.rb
|
|
181
|
+
- lib/i18n_context_generator/context_extractor/source_filters.rb
|
|
182
|
+
- lib/i18n_context_generator/context_extractor/translation_filters.rb
|
|
183
|
+
- lib/i18n_context_generator/context_extractor/workflow.rb
|
|
184
|
+
- lib/i18n_context_generator/file_classifier.rb
|
|
185
|
+
- lib/i18n_context_generator/generated_comment.rb
|
|
155
186
|
- lib/i18n_context_generator/git_diff.rb
|
|
187
|
+
- lib/i18n_context_generator/git_diff/xml_changes.rb
|
|
156
188
|
- lib/i18n_context_generator/llm/anthropic.rb
|
|
157
189
|
- lib/i18n_context_generator/llm/client.rb
|
|
158
190
|
- lib/i18n_context_generator/llm/openai.rb
|
|
191
|
+
- lib/i18n_context_generator/llm/openai_compatible.rb
|
|
192
|
+
- lib/i18n_context_generator/llm/prompt_evidence.rb
|
|
193
|
+
- lib/i18n_context_generator/llm/request_policy.rb
|
|
194
|
+
- lib/i18n_context_generator/localization_syntax.rb
|
|
159
195
|
- lib/i18n_context_generator/parsers/android_xml_parser.rb
|
|
160
196
|
- lib/i18n_context_generator/parsers/base.rb
|
|
161
197
|
- lib/i18n_context_generator/parsers/json_parser.rb
|
|
162
198
|
- lib/i18n_context_generator/parsers/strings_parser.rb
|
|
199
|
+
- lib/i18n_context_generator/parsers/xcstrings_parser.rb
|
|
163
200
|
- lib/i18n_context_generator/parsers/yaml_parser.rb
|
|
201
|
+
- lib/i18n_context_generator/path_policy.rb
|
|
164
202
|
- lib/i18n_context_generator/platform_validator.rb
|
|
203
|
+
- lib/i18n_context_generator/run_metrics.rb
|
|
165
204
|
- lib/i18n_context_generator/searcher.rb
|
|
205
|
+
- lib/i18n_context_generator/searcher/comment_masking.rb
|
|
206
|
+
- lib/i18n_context_generator/searcher/match_filtering.rb
|
|
207
|
+
- lib/i18n_context_generator/searcher/source_discovery.rb
|
|
208
|
+
- lib/i18n_context_generator/supplemental_context.rb
|
|
209
|
+
- lib/i18n_context_generator/translation_comment_index.rb
|
|
166
210
|
- lib/i18n_context_generator/version.rb
|
|
167
211
|
- lib/i18n_context_generator/writers/android_xml_writer.rb
|
|
212
|
+
- lib/i18n_context_generator/writers/atomic_file.rb
|
|
168
213
|
- lib/i18n_context_generator/writers/csv_writer.rb
|
|
169
214
|
- lib/i18n_context_generator/writers/helpers.rb
|
|
170
215
|
- lib/i18n_context_generator/writers/json_writer.rb
|
|
216
|
+
- lib/i18n_context_generator/writers/preview.rb
|
|
217
|
+
- lib/i18n_context_generator/writers/result_serialization.rb
|
|
171
218
|
- lib/i18n_context_generator/writers/strings_writer.rb
|
|
172
219
|
- lib/i18n_context_generator/writers/swift_writer.rb
|
|
220
|
+
- lib/i18n_context_generator/writers/xcstrings_writer.rb
|
|
221
|
+
- lib/i18n_context_generator/xcstrings_document.rb
|
|
222
|
+
- lib/i18n_context_generator/xml_scanner.rb
|
|
173
223
|
homepage: https://github.com/Automattic/i18n-context-generator
|
|
174
224
|
licenses:
|
|
175
225
|
- MPL-2.0
|