Module: DeepL

Extended by:
DeepL
Included in:
DeepL
Defined in:
lib/deepl.rb,
lib/version.rb,
lib/deepl/api.rb,
lib/deepl/document_api.rb,
lib/deepl/glossary_api.rb,
lib/deepl/configuration.rb,
lib/deepl/requests/base.rb,
lib/http_client_options.rb,
lib/deepl/constants/tone.rb,
lib/deepl/requests/usage.rb,
lib/deepl/resources/base.rb,
lib/deepl/resources/text.rb,
lib/deepl/style_rule_api.rb,
lib/deepl/resources/usage.rb,
lib/deepl/exceptions/error.rb,
lib/deepl/requests/rephrase.rb,
lib/deepl/utils/time_parser.rb,
lib/deepl/requests/languages.rb,
lib/deepl/requests/translate.rb,
lib/deepl/resources/glossary.rb,
lib/deepl/resources/language.rb,
lib/deepl/constants/formality.rb,
lib/deepl/utils/backoff_timer.rb,
lib/deepl/constants/model_type.rb,
lib/deepl/exceptions/not_found.rb,
lib/deepl/resources/style_rule.rb,
lib/deepl/constants/tag_handling.rb,
lib/deepl/exceptions/bad_request.rb,
lib/deepl/requests/glossary/find.rb,
lib/deepl/requests/glossary/list.rb,
lib/deepl/translation_memory_api.rb,
lib/deepl/constants/base_constant.rb,
lib/deepl/constants/writing_style.rb,
lib/deepl/exceptions/server_error.rb,
lib/deepl/resources/language_pair.rb,
lib/deepl/utils/exception_builder.rb,
lib/deepl/exceptions/not_supported.rb,
lib/deepl/exceptions/request_error.rb,
lib/deepl/requests/document/upload.rb,
lib/deepl/requests/glossary/create.rb,
lib/deepl/requests/style_rule/find.rb,
lib/deepl/requests/style_rule/list.rb,
lib/deepl/constants/split_sentences.rb,
lib/deepl/exceptions/limit_exceeded.rb,
lib/deepl/exceptions/quota_exceeded.rb,
lib/deepl/requests/glossary/destroy.rb,
lib/deepl/requests/glossary/entries.rb,
lib/deepl/resources/document_handle.rb,
lib/deepl/requests/document/download.rb,
lib/deepl/requests/style_rule/create.rb,
lib/deepl/requests/style_rule/update.rb,
lib/deepl/requests/style_rule/destroy.rb,
lib/deepl/requests/document/get_status.rb,
lib/deepl/resources/translation_memory.rb,
lib/deepl/exceptions/authorization_failed.rb,
lib/deepl/requests/glossary/language_pairs.rb,
lib/deepl/requests/translation_memory/base.rb,
lib/deepl/requests/translation_memory/find.rb,
lib/deepl/requests/translation_memory/list.rb,
lib/deepl/resources/translation_memory_job.rb,
lib/deepl/exceptions/request_entity_too_large.rb,
lib/deepl/requests/translation_memory/destroy.rb,
lib/deepl/resources/translation_memory_export.rb,
lib/deepl/resources/translation_memory_import.rb,
lib/deepl/requests/translation_memory/find_job.rb,
lib/deepl/requests/translation_memory/segments.rb,
lib/deepl/exceptions/document_translation_error.rb,
lib/deepl/resources/document_translation_status.rb,
lib/deepl/resources/translation_memory_segments.rb,
lib/deepl/requests/translation_memory/upload_file.rb,
lib/deepl/requests/translation_memory/storage_base.rb,
lib/deepl/requests/translation_memory/create_export.rb,
lib/deepl/requests/translation_memory/create_import.rb,
lib/deepl/requests/style_rule/find_custom_instruction.rb,
lib/deepl/requests/style_rule/update_configured_rules.rb,
lib/deepl/requests/translation_memory/download_export.rb,
lib/deepl/requests/style_rule/create_custom_instruction.rb,
lib/deepl/requests/style_rule/update_custom_instruction.rb,
lib/deepl/requests/style_rule/destroy_custom_instruction.rb

Overview

Copyright 2026 DeepL SE (https://www.deepl.com) Use of this source code is governed by an MIT license that can be found in the LICENSE.md file. frozen_string_literal: true

Defined Under Namespace

Modules: Constants, Exceptions, Requests, Resources, Utils Classes: API, Configuration, DocumentApi, GlossaryApi, HTTPClientOptions, StyleRuleApi, TranslationMemoryApi

Constant Summary collapse

VERSION =
'3.9.0'

Instance Method Summary collapse

Instance Method Details

#apiObject

-- API shortcuts



110
111
112
# File 'lib/deepl.rb', line 110

def api
  @api ||= API.new(configuration)
end

#configurationObject

-- Configuration



201
202
203
# File 'lib/deepl.rb', line 201

def configuration
  @configuration ||= Configuration.new
end

#configure {|configuration| ... } ⇒ Object

Yields:



205
206
207
208
# File 'lib/deepl.rb', line 205

def configure
  yield configuration if block_given?
  configuration.validate!
end

#document(options = {}) ⇒ Object



140
141
142
143
# File 'lib/deepl.rb', line 140

def document(options = {})
  configure if @configuration.nil?
  DocumentApi.new(api, options)
end

#glossaries(options = {}) ⇒ Object



145
146
147
148
# File 'lib/deepl.rb', line 145

def glossaries(options = {})
  configure if @configuration.nil?
  GlossaryApi.new(api, options)
end

#http_clientObject



172
173
174
# File 'lib/deepl.rb', line 172

def http_client
  @http_client
end

#languages(options = {}) ⇒ Object



114
115
116
# File 'lib/deepl.rb', line 114

def languages(options = {})
  Requests::Languages.new(api, options).request
end

#rephrase(text, target_lang = nil, writing_style = nil, tone = nil, options = {}, additional_headers = {}) ⇒ Object

rubocop:disable Metrics/ParameterLists



160
161
162
163
164
165
# File 'lib/deepl.rb', line 160

def rephrase(text, target_lang = nil, writing_style = nil, tone = nil, options = {}, # rubocop:disable Metrics/ParameterLists
             additional_headers = {})
  configure if @configuration.nil?
  Requests::Rephrase.new(api, text, target_lang, writing_style, tone, options,
                         additional_headers).request
end

#style_rules(options = {}) ⇒ Object



150
151
152
153
# File 'lib/deepl.rb', line 150

def style_rules(options = {})
  configure if @configuration.nil?
  StyleRuleApi.new(api, options)
end

#translate(text, source_lang, target_lang, options = {}, additional_headers = {}) ⇒ DeepL::Resources::Text+

Translates text from source_lang into target_lang.

Parameters:

  • text (String, Array<String>)

    Text(s) to translate.

  • source_lang (String, nil)

    Source language. nil enables automatic detection.

  • target_lang (String)

    Target language.

  • options (Hash) (defaults to: {})

    Additional (body) options for the translation. Notable options:

    • :glossary_id - A single glossary ID (string) to use for the translation. Requires source_lang to be set. Cannot be combined with :glossary_ids.
    • :glossary_ids - An array of up to 5 glossary IDs (strings or DeepL::Resources::Glossary objects) to use for the translation. Glossaries are applied in order (first match wins). Requires source_lang to be set. Cannot be combined with :glossary_id. Raises ArgumentError if these rules are violated or more than 5 IDs are provided.
  • additional_headers (Hash) (defaults to: {})

    Additional HTTP headers for the translation.

Returns:



134
135
136
137
138
# File 'lib/deepl.rb', line 134

def translate(text, source_lang, target_lang, options = {}, additional_headers = {})
  configure if @configuration.nil?
  Requests::Translate.new(api, text, source_lang, target_lang, options,
                          additional_headers).request
end

#translation_memories(options = {}) ⇒ Object



155
156
157
158
# File 'lib/deepl.rb', line 155

def translation_memories(options = {})
  configure if @configuration.nil?
  TranslationMemoryApi.new(api, options)
end

#usage(options = {}) ⇒ Object



167
168
169
170
# File 'lib/deepl.rb', line 167

def usage(options = {})
  configure if @configuration.nil?
  Requests::Usage.new(api, options).request
end

#with_session(client_options = HTTPClientOptions.new()) ⇒ Object

rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity



176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/deepl.rb', line 176

def with_session(client_options = HTTPClientOptions.new()) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
  raise ArgumentError 'This method requires a block to be passed in which contains the actual API calls, see README for example usage.' unless block_given? # rubocop:disable Layout/LineLength

  has_proxy = client_options.proxy.key?('proxy_addr') and client_options.proxy.key?('proxy_port')
  begin
    uri = URI(configuration.host)
    http = Net::HTTP.new(uri.host, uri.port, has_proxy ? client_options.proxy['proxy_addr'] : nil,
                         has_proxy ? client_options.proxy['proxy_port'] : nil)
    http.use_ssl = client_options.enable_ssl_verification
    http.ca_file = client_options.cert_path if client_options.cert_path
    http.open_timeout = client_options.open_timeout unless client_options.open_timeout.nil?
    http.read_timeout = client_options.read_timeout unless client_options.read_timeout.nil?
    http.write_timeout = client_options.write_timeout unless client_options.write_timeout.nil?
    http.ssl_timeout = client_options.ssl_timeout unless client_options.ssl_timeout.nil?
    http.start
    @http_client = http
    api.update_http_client(http)
    yield
  ensure
    http.finish
  end
end