Module: TranslationDiff::Languages
- Defined in:
- lib/translation_diff/languages.rb
Overview
What each provider translates, captured from the vendor and shipped; unknown means no opinion, never a refusal.
Defined Under Namespace
Constant Summary collapse
- DIRECTORY =
File.("../../data/languages", __dir__).freeze
- SHIPPED =
Derived from the directory itself: shipping a new file makes it load without editing this list too.
Dir.children(DIRECTORY).grep(/\.json\z/).map { |file| File.basename(file, ".json").to_sym }.sort.freeze
- NOT_SHIPPED =
Amazon needs AWS credentials most maintainers lack; LibreTranslate's list is one private instance's own.
%i[amazon libretranslate].freeze
Class Method Summary collapse
- .for(provider) ⇒ Object
-
.supports?(provider, from:, to:) ⇒ Boolean
nil, not false: a provider we ship no data for must never refuse a pair.
Class Method Details
.for(provider) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/translation_diff/languages.rb', line 18 def for(provider) name = provider.to_s return nil unless SHIPPED.include?(name.to_sym) sets[name] ||= Set.load(File.join(DIRECTORY, "#{name}.json")) end |
.supports?(provider, from:, to:) ⇒ Boolean
nil, not false: a provider we ship no data for must never refuse a pair.
11 12 13 14 15 16 |
# File 'lib/translation_diff/languages.rb', line 11 def supports?(provider, from:, to:) set = self.for(provider) return nil if set.nil? # rubocop:disable Style/ReturnNilInPredicateMethodDefinition set.supports_source?(from) && set.supports_target?(to) end |