Class: ModpackLocalizer::JAR::Performer

Inherits:
Object
  • Object
show all
Defined in:
lib/modpack_localizer/jar/performer.rb

Overview

.jarの翻訳を実行するクラス JpTranslatorFromGptを使用して翻訳を行う

Instance Method Summary collapse

Constructor Details

#initialize(output_logs: true, except_words: [], language: "Japanese", country: "Japan", locale_code: nil, display_help: true) ⇒ ModpackLocalizer::JAR::Performer

locale_codeを指定する場合、countryの指定は不要

Parameters:

  • output_logs (Boolean) (defaults to: true)

    APIのログを出力するか

  • except_words (Array<String>) (defaults to: [])

    翻訳しない単語

  • language (String) (defaults to: "Japanese")

    言語

  • country (String) (defaults to: "Japan")

  • locale_code (String) (defaults to: nil)

    ロケールコード (例: “ja_jp”)

  • display_help (Boolean) (defaults to: true)

    ヘルプを表示するか



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/modpack_localizer/jar/performer.rb', line 22

def initialize(
  output_logs: true, except_words: [], language: "Japanese",
  country: "Japan", locale_code: nil, display_help: true
)
  @translator = JpTranslatorFromGpt::Translator.new(
    output_logs: output_logs,
    except_words: except_words,
    exchange_language: language
  )
  @language, @country_name, @locale_code = language, country, locale_code
  @reader, @writer, @progress_bar, @loggable, @tierdown = nil

  ModpackLocalizer.help if display_help
end

Instance Method Details

#perform(file_path, loggable: true, tierdown: true) ⇒ void

This method returns an undefined value.

.jarファイルを翻訳してリソースパックを作成する

Parameters:

  • file_path (String)

    ファイルのパス

  • loggable (Boolean) (defaults to: true)

    翻訳ログを出力するか

  • tierdown (Boolean) (defaults to: true)

    リソースパック作成後に不要なファイルを削除するか



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/modpack_localizer/jar/performer.rb', line 43

def perform(file_path, loggable: true, tierdown: true)
  @loggable, @tierdown = loggable, tierdown
  file_path = File.expand_path(file_path)
  validate_path(file_path)

  init_reader_and_writer(file_path)
  lang_data = @reader.
  init_progress_bar(file_path, lang_data.json.length) if @loggable

  need_translation?(lang_data) ? translate(lang_data) : feedback_unnecessary_translation(lang_data)
end

#perform_directory(dir_path: "mods", loggable: true) ⇒ void

This method returns an undefined value.

ディレクトリ内の.jarファイルを翻訳してリソースパックを作成する

Parameters:

  • dir_path (String) (defaults to: "mods")

    ディレクトリのパス

  • loggable (Boolean) (defaults to: true)

    翻訳ログを出力するか



60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/modpack_localizer/jar/performer.rb', line 60

def perform_directory(dir_path: "mods", loggable: true)
  puts "Performing directory: #{dir_path}" unless loggable
  dir_path = File.expand_path(dir_path)
  validate_path(dir_path)

  jar_files = Dir.glob("#{dir_path}/*.jar")
  if jar_files.empty?
    puts "JAR files not found in: #{dir_path}"
    return
  end

  jar_files.each { |file_path| perform(file_path, loggable: loggable, tierdown: false) }
  @writer.remove_before_zipping_directory
end

#validate_path(path) ⇒ void

This method returns an undefined value.

ファイルの存在性のバリデーション

Parameters:

  • path (String)

    ファイルのパス

Raises:



79
80
81
82
# File 'lib/modpack_localizer/jar/performer.rb', line 79

def validate_path(path)
  path = File.expand_path(path)
  raise ModpackLocalizer::PathNotFoundError.new(path) unless File.exist?(path)
end