Class: RosettAi::Documentation::Translator
- Inherits:
-
Object
- Object
- RosettAi::Documentation::Translator
- Defined in:
- lib/rosett_ai/documentation/translator.rb
Overview
Produces draft translations of documentation files using the Claude API.
Reads source documentation, sends to API with a translation prompt, and writes the result to doc/locales/locale/.
Constant Summary collapse
- MODEL =
'claude-sonnet-4-20250514'
Instance Method Summary collapse
-
#initialize(doc_dir: nil) ⇒ Translator
constructor
A new instance of Translator.
- #translate(source_file, from:, to:) ⇒ Object
Constructor Details
#initialize(doc_dir: nil) ⇒ Translator
Returns a new instance of Translator.
17 18 19 |
# File 'lib/rosett_ai/documentation/translator.rb', line 17 def initialize(doc_dir: nil) @doc_dir = doc_dir || RosettAi.root.join('doc') end |
Instance Method Details
#translate(source_file, from:, to:) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rosett_ai/documentation/translator.rb', line 21 def translate(source_file, from:, to:) content = File.read(source_file) basename = File.basename(source_file) translated = call_api(content, from: from, to: to) output_dir = @doc_dir.join('locales', to) FileUtils.mkdir_p(output_dir) output_path = output_dir.join(basename) File.open(output_path, 'w', 0o644) { |f| f.write(translated) } output_path.to_s end |