PR
広告

RimWorld:英語MODを自動で翻訳する方法

RimWorld

RimWorldの英語オンリーMODを、自動で翻訳する方法を紹介しています。
日本語化はもちろんのこと、全ての言語に対応可能です。

紹介しているのは、翻訳プログラムでありツールではないため少し手間が掛かります。
とは言っても、パソコンの知識が少しある方なら十分に出来るのでトライしてみて下さい。

広告

プログラムを動かすための前準備

紹介するプログラムを動かすためには、

  • Pythonの開発環境
  • Cloud Translation APIの動作設定

が必要です。

こちらの記事で導入方法を解説しているので、参考にして下さい。

Civ4:C2Cを日本語化しようと試みたけど途中で断念
Civ4MODのC2Cを日本語化しようとして2日頑張りましたが、ちょっと途方も無いので断念しました。 途中までですが日本語化するためのノウハウは溜まったので、折角なので共有させて頂きます。
Anaconda3をインストールする際に、Advanced Optionsの所で、Add Anaconda to my PATH enviroment variable(環境変数に追加する)にチェックを入れて下さい
これを行うことにより、どこからでもpyhonを実行できるようになるからです。
Cloud Translation APIは有料です。
しかも、従量課金制なので使った後に請求が来ます。ご注意下さい。

※2万円分までは無料とのことですが、自動で翻訳しているとどれだけ使ったかイマイチ分からないので、本当に注意してください!

MOD自動翻訳プログラムについて

プログラムの概要

RimWorldのMOD自動翻訳プログラムの構造はいたって単純で、

  1. <~>、英語、<~>、の部分をそれぞれ取得する
  2. 英語の部分を翻訳する
  3. <~>、翻訳した文章、<~>、で書き出す

です。

pythonソースコード

#!/usr/bin/python
# coding: UTF-8

def rim_auto_trans():

	import sys, codecs
	import time

	# 処理時間を計測
	start = time.time()

	# ファイルを開く
	args = sys.argv
	print(args[1])
	f = open( args[1], 'r', encoding='utf-8')

	# 1行毎にファイル終端まで全て読む(改行文字も含まれる)
	# lines2: リスト。要素は1行の文字列データ
	lines2 = f.readlines()
	f.close()

	# 出力用ファイルを開く
	file_out = '.\out\\' + args[1]
	f = open( file_out, 'w', encoding='utf-8')
	
	# フラグを初期化
	count = 1
	err_text = []

	# 1行毎に処理を行う
	for line in lines2:
	
		# >の位置を取得
		index = line.find('>')
		
		# >以降に<があれば、<の位置を取得
		index2 = line.find( '<', index)
		
		#index, index2が両方とも-1でなければ
		if index != -1 and index2 != -1:
		
			# 、<>、英語、<>、のそれぞれのテキストを取得
			text1 = line[ 0: index+1]
			text2 = line[ index+1: index2]
			text3 = line[ index2: len(line)]
		
			print(text2)
		
			# text2を翻訳する
			#line_data_jp = text2
			line_data_jp = g_trans(text2)
			
			# ファイルに出力する
			print(line_data_jp)
			f.write( text1 + line_data_jp + text3)
			
		# 日本語化対象じゃなければそのまま出力する
		else:
			f.write(line)
			
		# カウントアップ
		count += 1
		
		# 特定のタイミングで処理状況をprintする
		if count % 10 == 0:
			print(count)

			elapsed_time = time.time() - start
			print("elapsed_time:{0}".format(elapsed_time) + "[sec]")
		else:
			continue
		
	# ファイルを閉じる
	f.close()

def g_trans(text):
	
	# [START translate_quickstart]
	# Imports the Google Cloud client library
	from google.cloud import translate

	# Instantiates a client
	translate_client = translate.Client()

	# The text to translate
	#text = u'Hello, world!'
	# The target language
	target = 'ja'

	# Translates some text into Russian
	translation = translate_client.translate(
		text,
		target_language=target)

	#print(u'Text: {}'.format(text))
	#print(u'Translation: {}'.format(translation['translatedText']))
	# [END translate_quickstart]

	return translation['translatedText']

if __name__ == '__main__':
	rim_auto_trans()
target = ‘ja’の所を翻訳したい言語に変えれば、好きな言語に翻訳可能です。

お手軽実行用バッチ

楽にプログラムを動作させるために、バッチも作りました。
バッチへドラッグ&ドロップしたファイル名を引数にプログラムを動作させるだけの単純なものです。

@echo off

:loop

if "%~1" == "" goto end

python rim_auto_trans.py %~n1%~x1
del %~n1%~x1

shift

goto loop

:end

pause

ダウンロード

上記プログラムとバッチファイルは、こちらからダウンロード可能です。

MOD自動翻訳プログラムの使い方

MOD自動日本語化プログラムの使い方の概要は、

  1. Languageファイルの作成
  2. LanguageファイルをMOD自動翻訳バッチへドラッグ&ドロップ
  3. 翻訳されたLanguageファイルを正しい場所に格納

です。

自動翻訳といってもツール化していないので少し手動の所があります。

これらについて、日本語化する場合を例に詳しく解説していきます。

Languageファイルの作成

紹介しているMOD自動日本語化プログラムを使うためには、Languageファイルが生成されている必要があります

こちらの記事を参考にして、Languageファイルを作成して下さい。

RimWorld:MODの日本語化、日本語化MODの作り方
RimWorldの日本語化されていないMODを日本語化する方法、それをMOD化した日本語化MODの作り方を紹介しています。 画像付きで詳しく解説しているので、パソコン初心者の方でも簡単です。

MOD自動翻訳バッチにD&D、ファイルの格納

次に、バッチを使ってプログラムを動かして、Languageファイルを自動翻訳して、その後出力されたファイルを格納することを行います。

プログラムを実行する前は、必ずMODフォルダのバックアップを取って下さい。

やり方は、

  1. 言語.xmlが格納されたフォルダ、MOD自動翻訳バッチのフォルダ、outフォルダを開く
  2. 言語.xmlファイルを、MOD自動翻訳バッチのフォルダへ移動する
  3. 言語.xmlファイルを、MOD自動翻訳バッチへD&Dする
  4. プログラムが処理するので、しばらく待つ
  5. outフォルダに翻訳された言語.xmlファイルが出力されるので、MODのLanguageフォルダに戻す

です。

翻訳する際に、言語.xmlの元ファイルは削除しています。
それが嫌な方は、バッチの中にあるrm ~の行を削除して下さい。

分かり易いように動画を撮影しました。

ドラッグ&ドロップする際には、複数ファイルでも大丈夫です。
9つくらいまで対応しています。失敗したら少しずつやって下さい。
バッチファイルに詳しい優しい方がいたら、フォルダ構造をコピーしながらプログラムを実行できるようにバッチを修正してくれないかなー(切望

これを繰り返して、全ての言語.xmlファイルを翻訳して下さい。

以上で、MOD自動翻訳プログラムの使い方は終わりです。

オススメ 他のRimWorldの記事はこちらから。

タイトルとURLをコピーしました