2021年1月16日更新:パワーアップしたスクリプトについてはこちらへ。
ヴァイオレット・エヴァーガーデン世界で使用されているテルシス語を英語へ翻訳するPythonスクリプトがあります。
それを少し改造して、日本語へ翻訳できるようにしました。
(英語ブログから流用しました。)
使用するにはgoogle_trans_newライブラリーが必要です。
pip3 install google_trans_newGoogle翻訳APIサービスは有料ですが、
google_trans_newは無料で使わせてくれるみたいです。
でも、商用では使えません。ご注意ください。
現在、ターゲット言語を日本語に設定しました。例えば、英語にしたい場合、
target_language = 'ja'
を以下のように書き換えてください。
target_language = 'en'
スクリプトの実行
python3 nunkish_translator_2.py
スクリプト(ファイルネーム:nunkish_translator_2.py)
-----------------
from google_trans_new import google_translator
import requests
translator = google_translator()
alphabet = {
'a': 'u',
'b': '',
'c': 'y',
'd': '',
'e': 'o',
'f': '',
'g': 'v',
'h': 't',
'i': 'i',
'j': '',
'k': 'r',
'l': 'i',
'm': 'p',
'n': 'n',
'o': 'e',
'p': 'm',
'q': 'l',
'r': 'k',
's': 'y',
't': 'h',
'u': 'a',
'v': 'g',
'w': '',
'x': '',
'y': 'c',
'z': '',
'A': 'U',
'B': '',
'C': 'Y',
'D': '',
'E': 'O',
'F': '',
'G': 'V',
'H': 'T',
'I': 'I',
'J': '',
'K': 'R',
'L': 'I',
'M': 'P',
'N': 'N',
'O': 'E',
'P': 'M',
'Q': 'L',
'R': 'K',
'S': 'Y',
'T': 'H',
'U': 'A',
'V': 'G',
'W': '',
'X': '',
'Y': 'C',
'Z': '',
' ': ' ',
'0': '0',
'1': '1',
'2': '2',
'3': '3',
'4': '4',
'5': '5',
'6': '6',
'7': '7',
'8': '8',
'9': '9',
}
tamil_script_url = 'https://inputtools.google.com/request?text={text}&itc=ta-t-i0-und'
source_language = 'ta'
target_language = 'ja'
def trans(nunkish):
tamil = ""
for char in nunkish:
if char not in alphabet:
tamil += char
else:
tchar = alphabet[char]
if tchar:
tamil += tchar
else:
tamil += "?"
print(f"Converted to tamil: {tamil}")
tamil_res = requests.get(tamil_script_url.format(text=tamil), headers={
'Content-Type': 'application/json'
}).json()
if (tamil_res[0] == 'SUCCESS'):
tamil_script = tamil_res[1][0][1][0]
print(f"In Tamil script: {tamil_script}")
return translator.translate(f'{tamil_script}', lang_src=source_language, lang_tgt=target_language)
while True:
nunkish = input("Input nunkish: ")
print(f"You entered: {nunkish}")
print(trans(nunkish.replace('\n', ' ').replace('\r', '')))
import requests
translator = google_translator()
alphabet = {
'a': 'u',
'b': '',
'c': 'y',
'd': '',
'e': 'o',
'f': '',
'g': 'v',
'h': 't',
'i': 'i',
'j': '',
'k': 'r',
'l': 'i',
'm': 'p',
'n': 'n',
'o': 'e',
'p': 'm',
'q': 'l',
'r': 'k',
's': 'y',
't': 'h',
'u': 'a',
'v': 'g',
'w': '',
'x': '',
'y': 'c',
'z': '',
'A': 'U',
'B': '',
'C': 'Y',
'D': '',
'E': 'O',
'F': '',
'G': 'V',
'H': 'T',
'I': 'I',
'J': '',
'K': 'R',
'L': 'I',
'M': 'P',
'N': 'N',
'O': 'E',
'P': 'M',
'Q': 'L',
'R': 'K',
'S': 'Y',
'T': 'H',
'U': 'A',
'V': 'G',
'W': '',
'X': '',
'Y': 'C',
'Z': '',
' ': ' ',
'0': '0',
'1': '1',
'2': '2',
'3': '3',
'4': '4',
'5': '5',
'6': '6',
'7': '7',
'8': '8',
'9': '9',
}
tamil_script_url = 'https://inputtools.google.com/request?text={text}&itc=ta-t-i0-und'
source_language = 'ta'
target_language = 'ja'
def trans(nunkish):
tamil = ""
for char in nunkish:
if char not in alphabet:
tamil += char
else:
tchar = alphabet[char]
if tchar:
tamil += tchar
else:
tamil += "?"
print(f"Converted to tamil: {tamil}")
tamil_res = requests.get(tamil_script_url.format(text=tamil), headers={
'Content-Type': 'application/json'
}).json()
if (tamil_res[0] == 'SUCCESS'):
tamil_script = tamil_res[1][0][1][0]
print(f"In Tamil script: {tamil_script}")
return translator.translate(f'{tamil_script}', lang_src=source_language, lang_tgt=target_language)
while True:
nunkish = input("Input nunkish: ")
print(f"You entered: {nunkish}")
print(trans(nunkish.replace('\n', ' ').replace('\r', '')))
---------------------
I'm the person who wrote the code and one of the people who decrypted the language. Glad to see people still talking about it!
返信削除Hi danny, thank you for your nice script. We actually needed to look back at how to decode/translate the Telsis language because Director Ishidate, in an event when Violet Evergarden the Movie was launched in Japan, mentioned that the last line of Violet's letter to Gilbert was very important.
返信削除Please see this blog post for some information: Watching Violet Evergarden the Movie again