better_translate 0.3.0 → 0.4.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.
@@ -1,17 +1,17 @@
1
1
  BetterTranslate.configure do |config|
2
- # Scegli il provider da utilizzare: :chatgpt oppure :gemini
2
+ # Choose the provider to use: :chatgpt or :gemini
3
3
  config.provider = :chatgpt
4
4
 
5
- # API key per OpenAI
5
+ # API key for OpenAI
6
6
  config.openai_key = ENV.fetch("OPENAI_API_KEY") { "YOUR_OPENAI_API_KEY" }
7
7
 
8
- # API key per Google Gemini
8
+ # API key for Google Gemini
9
9
  config.google_gemini_key = ENV.fetch("GOOGLE_GEMINI_KEY") { "YOUR_GOOGLE_GEMINI_KEY" }
10
10
 
11
- # Lingua sorgente (ad esempio "en" se il file sorgente è in inglese)
11
+ # Source language (for example "en" if the source file is in English)
12
12
  config.source_language = "en"
13
13
 
14
- # Lista delle lingue target (short_name e name)
14
+ # List of target languages (short_name and name)
15
15
  config.target_languages = [
16
16
  # { short_name: 'es', name: 'spagnolo' },
17
17
  # { short_name: 'it', name: 'italiano' },
@@ -21,12 +21,12 @@ BetterTranslate.configure do |config|
21
21
  { short_name: "ru", name: "russian" }
22
22
  ]
23
23
 
24
- # Esclusioni globali (percorsi in dot notation) da escludere per tutte le lingue
24
+ # Global exclusions (paths in dot notation) to exclude for all languages
25
25
  config.global_exclusions = [
26
26
  "key.value"
27
27
  ]
28
28
 
29
- # Esclusioni specifiche per lingua
29
+ # Language-specific exclusions
30
30
  config.exclusions_per_language = {
31
31
  "es" => [],
32
32
  "it" => [],
@@ -36,14 +36,14 @@ BetterTranslate.configure do |config|
36
36
  "ru" => []
37
37
  }
38
38
 
39
- # Percorso del file di input (ad es. en.yml)
39
+ # Input file path (e.g. en.yml)
40
40
  config.input_file = Rails.root.join("config", "locales", "en.yml").to_s
41
41
 
42
- # Cartella di output dove verranno salvati i file tradotti
42
+ # Output folder where translated files will be saved
43
43
  config.output_folder = Rails.root.join("config", "locales", "translated").to_s
44
44
 
45
- # Metodo di traduzione:
46
- # - :override => rigenera tutte le traduzioni
47
- # - :incremental => aggiorna solo le chiavi mancanti (o quelle che hanno subito modifiche)
45
+ # Translation method:
46
+ # - :override => regenerates all translations
47
+ # - :incremental => updates only missing keys (or those that have been modified)
48
48
  config.translation_method = :override
49
49
  end
@@ -3,12 +3,14 @@ require 'rails/generators'
3
3
  module BetterTranslate
4
4
  module Generators
5
5
  class TranslateGenerator < Rails::Generators::Base
6
- desc "Lancia il processo di traduzione configurato in BetterTranslate"
6
+ desc "Starts the translation process configured in BetterTranslate"
7
7
 
8
8
  def run_translation
9
- say_status("Starting", "Esecuzione della traduzione con BetterTranslate...", :green)
9
+ message = "Starting translation with BetterTranslate..."
10
+ BetterTranslate::Utils.logger(message: message)
10
11
  BetterTranslate.magic
11
- say_status("Done", "Traduzione completata.", :green)
12
+ message = "Translation completed."
13
+ BetterTranslate::Utils.logger(message: message)
12
14
  end
13
15
  end
14
16
  end
@@ -0,0 +1,4 @@
1
+ module BetterTranslate
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - alessio_bussolari
7
+ - Alessio Bussolari
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
11
  date: 2025-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: yaml
14
+ name: ruby-progressbar
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.13'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.13'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: httparty
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.21.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.21.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: ruby-progressbar
42
+ name: zeitwerk
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.11'
47
+ version: '2.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.11'
54
+ version: '2.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,35 +80,158 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '13.0'
83
- description: "\nBetterTranslate is a gem that allows you to translate YAML files from
84
- a source language into one or more target languages.\nThe gem supports different
85
- translation providers, currently ChatGPT (OpenAI) and Google Gemini, and allows
86
- you to choose\nthe translation mode: \"override\" to regenerate all translations
87
- or \"incremental\" to update only the missing keys.\n\nThe gem's configuration is
88
- centralized via an initializer, where you can define API keys, target languages,
89
- source language,\nkey exclusions, and the output folder. BetterTranslate also integrates
90
- translation progress tracking using a progress bar.\n "
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.12'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.12'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.50'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.50'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.6'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.6'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop-rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.22'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '2.22'
139
+ - !ruby/object:Gem::Dependency
140
+ name: yard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.9'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.9'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.22'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '0.22'
167
+ - !ruby/object:Gem::Dependency
168
+ name: webmock
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '3.19'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '3.19'
181
+ - !ruby/object:Gem::Dependency
182
+ name: vcr
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '6.1'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '6.1'
195
+ description: |
196
+ BetterTranslate is a powerful Ruby gem for translating YAML files using AI providers.
197
+
198
+ Key features:
199
+ * Multiple AI providers support (ChatGPT and Google Gemini)
200
+ * Smart translation modes (override/incremental)
201
+ * LRU caching for performance
202
+ * Precise key exclusion control
203
+ * Rails integration with generators
204
+ * Progress tracking with progress bar
205
+ * Comprehensive test coverage
206
+
207
+ Perfect for internationalizing Ruby/Rails applications with minimal effort.
91
208
  email:
92
209
  - alessio.bussolari@pandev.it
93
210
  executables: []
94
211
  extensions: []
95
212
  extra_rdoc_files: []
96
213
  files:
214
+ - CHANGELOG.md
215
+ - CODE_OF_CONDUCT.md
97
216
  - LICENSE.txt
98
217
  - README.md
218
+ - Rakefile
99
219
  - lib/better_translate.rb
100
220
  - lib/better_translate/helper.rb
101
221
  - lib/better_translate/providers/base_provider.rb
102
222
  - lib/better_translate/providers/chatgpt_provider.rb
103
223
  - lib/better_translate/providers/gemini_provider.rb
104
224
  - lib/better_translate/service.rb
225
+ - lib/better_translate/similarity_analyzer.rb
105
226
  - lib/better_translate/translator.rb
106
227
  - lib/better_translate/utils.rb
107
228
  - lib/better_translate/version.rb
108
229
  - lib/better_translate/writer.rb
230
+ - lib/generators/better_translate/analyze_generator.rb
109
231
  - lib/generators/better_translate/install_generator.rb
110
232
  - lib/generators/better_translate/templates/better_translate.rb
111
233
  - lib/generators/better_translate/translate_generator.rb
234
+ - sig/better_translate.rbs
112
235
  homepage: https://github.com/alessiobussolari/better_translate
113
236
  licenses:
114
237
  - MIT
@@ -118,6 +241,9 @@ metadata:
118
241
  homepage_uri: https://github.com/alessiobussolari/better_translate
119
242
  source_code_uri: https://github.com/alessiobussolari/better_translate
120
243
  changelog_uri: https://github.com/alessiobussolari/better_translate/blob/main/CHANGELOG.md
244
+ bug_tracker_uri: https://github.com/alessiobussolari/better_translate/issues
245
+ documentation_uri: https://github.com/alessiobussolari/better_translate
246
+ wiki_uri: https://github.com/alessiobussolari/better_translate/wiki
121
247
  post_install_message:
122
248
  rdoc_options: []
123
249
  require_paths:
@@ -136,6 +262,5 @@ requirements: []
136
262
  rubygems_version: 3.5.11
137
263
  signing_key:
138
264
  specification_version: 4
139
- summary: Gem for translating YAML files into multiple languages using providers (ChatGPT
140
- and Gemini)
265
+ summary: AI-powered YAML translation with ChatGPT and Google Gemini
141
266
  test_files: []