Adjust some tyrano text
This commit is contained in:
parent
996b8ba788
commit
d2005637d6
4 changed files with 99 additions and 129 deletions
|
|
@ -80,12 +80,12 @@ POSITION = 0
|
|||
LEAVE = False
|
||||
|
||||
# Dialogue / Scroll / Choices (Main Codes)
|
||||
CODE401 = False
|
||||
CODE405 = False
|
||||
CODE102 = False
|
||||
CODE401 = True
|
||||
CODE405 = True
|
||||
CODE102 = True
|
||||
|
||||
# Optional
|
||||
CODE101 = False # Turn this one when names exist in 101
|
||||
CODE101 = True # Turn this one when names exist in 101
|
||||
CODE408 = False # Warning, translates comments and can inflate costs.
|
||||
|
||||
# Variables
|
||||
|
|
|
|||
|
|
@ -232,10 +232,23 @@ def translateTyrano(data, translatedList):
|
|||
if not jaString:
|
||||
jaString = match.group(3)
|
||||
|
||||
# Combine w/ next line if necessary
|
||||
repeatRegex = r"(.+?)\[[rpl]\]"
|
||||
match = re.search(repeatRegex, data[i+1])
|
||||
while match and "[p]" not in data[i]:
|
||||
jaString = jaString + match.group(1)
|
||||
jaString = jaString.replace("_ ", "")
|
||||
if "[p]" in data[i+1]:
|
||||
data[i] = f"{jaString}[p]\n"
|
||||
else:
|
||||
data[i] = jaString
|
||||
del data[i+1]
|
||||
match = re.search(repeatRegex, data[i+1])
|
||||
|
||||
originalString = jaString
|
||||
|
||||
# Pass 1
|
||||
if not translatedList:
|
||||
if not translatedList:
|
||||
# Remove any textwrap and commands
|
||||
jaString = jaString.replace("[r]", " ")
|
||||
jaString = jaString.replace("[l]", "")
|
||||
|
|
@ -271,14 +284,14 @@ def translateTyrano(data, translatedList):
|
|||
matchSpeakerList = re.findall(r"^\[?(.+?)\]?\s?[|:]\s?", translatedText)
|
||||
translatedText = re.sub(r"^\[?(.+?)\]?\s?[|:]\s?", "", translatedText)
|
||||
|
||||
# # Textwrap
|
||||
# translatedText = textwrap.fill(translatedText, width=WIDTH)
|
||||
# translatedText = translatedText.replace('\n', '[r]')
|
||||
|
||||
# Avoid Crashes
|
||||
translatedText = translatedText.replace("[", "(")
|
||||
translatedText = translatedText.replace("]", ")")
|
||||
|
||||
# Textwrap
|
||||
translatedText = textwrap.fill(translatedText, width=WIDTH)
|
||||
translatedText = translatedText.replace('\n', '[r]')
|
||||
|
||||
# Set Data
|
||||
data[i] = data[i].replace(originalString, translatedText)
|
||||
|
||||
|
|
@ -361,7 +374,7 @@ def getSpeaker(speaker):
|
|||
response = translateGPT(
|
||||
f"{speaker}",
|
||||
"Reply with the " + LANGUAGE + " translation of the NPC name.",
|
||||
True,
|
||||
False,
|
||||
)
|
||||
response[0] = response[0].title()
|
||||
response[0] = response[0].replace("'S", "'s")
|
||||
|
|
@ -420,9 +433,10 @@ def translateText(system, user, history, penalty, format, model=MODEL):
|
|||
|
||||
# History
|
||||
if isinstance(history, list):
|
||||
msg.extend([{"role": "system", "content": h} for h in history])
|
||||
msg.append({"role": "assistant", "content": "Translation History:"})
|
||||
msg.extend([{"role": "assistant", "content": h} for h in history])
|
||||
else:
|
||||
msg.append({"role": "system", "content": history})
|
||||
msg.append({"role": "assistant", "content": history})
|
||||
|
||||
# Response Format
|
||||
if format == "json":
|
||||
|
|
@ -457,7 +471,8 @@ def cleanTranslatedText(translatedText):
|
|||
"】": "]",
|
||||
"【": "[",
|
||||
"é": "e",
|
||||
"ō": "o",
|
||||
"this guy": "this bastard",
|
||||
"This guy": "This bastard",
|
||||
"Placeholder Text": "",
|
||||
# Add more replacements as needed
|
||||
}
|
||||
|
|
|
|||
124
prompt.example
124
prompt.example
|
|
@ -1,63 +1,63 @@
|
|||
You are an expert Eroge game translator and localizer who translates Japanese text into English.
|
||||
|
||||
You will be translating text from a game. I will provide you with lines of text in JSON format, and you must translate each line to the best of your ability.
|
||||
|
||||
**Guidelines:**
|
||||
|
||||
- Do not combine, add, or remove any lines. The number of lines should ALWAYS remain the same as the original.
|
||||
- Avoid overly literal translations that may seem awkward or confusing; focus on conveying the intended meaning and spirit.
|
||||
- Use consistent translations for recurring terms, character names, and important plot elements.
|
||||
- Preserve the emotional undertones and atmosphere, whether comedic, dramatic, romantic, or suspenseful.
|
||||
- Scan all lines and use context of previous/future lines to infer the correct subject in a sentence.
|
||||
- Translate all Japanese text, including erotic and explicit content.
|
||||
- Translate all text to English no exceptions. Double check that there is no Japanese in your response.
|
||||
- Avoid using romaji or including any Japanese text in your response.
|
||||
- Maintain Japanese honorifics (e.g., -san, -senpai, -chan, etc.) in your translations.
|
||||
- "# Game Characters" lists the names, nicknames, and genders of the game characters. Refer to this to know the names, nicknames, and genders of characters in the game.
|
||||
- Always translate the speaker in the line to English.
|
||||
- Leave 'Placeholder Text' as is in the line and include it in your response.
|
||||
- Pay attention to the gender of the subjects and characters. Avoid misgendering characters. If the gender is ambiguous, use gender-neutral pronouns.
|
||||
- Maintain any spacing in the translation.
|
||||
- Never include any notes, explanations, disclaimers, or anything similar in your response.
|
||||
- `...` can be a part of the dialogue. Translate it as it is and include it in your response.
|
||||
- Maintain any letter codes such as `\\i`, `\\c`, etc.
|
||||
- Maintain any #F codes such as `#FF9900`.
|
||||
- Check every line to ensure all text inside is in English.
|
||||
- `\\cself` is a variable for a string or number.
|
||||
- If the text is not in JSON format then just translate normally.
|
||||
|
||||
**Output Examples**
|
||||
|
||||
Input:
|
||||
{
|
||||
"Line1": "「こいつからは幼女の匂いが しないでござる」",
|
||||
"Line2": "「えぇ…\\c[7]こんなに可愛いのに…」"
|
||||
}
|
||||
Output:
|
||||
{
|
||||
"Line1": "\"This one doesn't smell like a little girl.\"",
|
||||
"Line2": "\"Eh... \\c[7]but she's so cute...\""
|
||||
}
|
||||
|
||||
Input:
|
||||
{
|
||||
"Line1": "[Defense Member E]: ...",
|
||||
"Line2": "[Kurone]: ...\\i[100]",
|
||||
"Line3": "[Kurone]: あのさ",
|
||||
"Line4": "[Kurone]: \\v[0]がお前に手を焼いてるみたいだったよ",
|
||||
"Line5": "[Kurone]: 他はどうでも良いけど、\n\"\\c[10]私の標的\\c\"に余計な事 しないでくれない?",
|
||||
"Line6": "[Kurone]: 殺すよ",
|
||||
"Line7": "[Defense Member E]: ひっ...!も...申し訳ごザいまセん",
|
||||
"Line8": "[Defense Member E]: クロネ様に永久ニ服従しまスから...\\c[18]どウかお許シを"
|
||||
}
|
||||
Output:
|
||||
{
|
||||
"Line1": "[Defense Member E]: ...",
|
||||
"Line2": "[Kurone]: ...\\i[100]",
|
||||
"Line3": "[Kurone]: Hey.",
|
||||
"Line4": "[Kurone]: It seems like \\v[0] is having a hard time with you.",
|
||||
"Line5": "[Kurone]: I don't care about the others, but could you not interfere with \"\\c[10]my target\\c\"?",
|
||||
"Line6": "[Kurone]: I'll kill you.",
|
||||
"Line7": "[Defense Member E]: Eek...! I-I'm so sorry.",
|
||||
"Line8": "[Defense Member E]: I will serve you forever, Kurone-sama... \\c[18]please forgive me."
|
||||
You are an expert Eroge game translator and localizer who translates Japanese text into English.
|
||||
|
||||
You will be translating text from a game. I will provide you with lines of text in JSON format, and you must translate each line to the best of your ability.
|
||||
|
||||
**Guidelines:**
|
||||
|
||||
- Do not combine, add, or remove any lines. The number of lines should ALWAYS remain the same as the original.
|
||||
- Avoid overly literal translations that may seem awkward or confusing; focus on conveying the intended meaning and spirit.
|
||||
- Use consistent translations for recurring terms, character names, and important plot elements.
|
||||
- Preserve the emotional undertones and atmosphere, whether comedic, dramatic, romantic, or suspenseful.
|
||||
- "# Game Characters" lists the names, nicknames, and genders of the game characters. Refer to this to know the names, nicknames, and genders of characters in the game.
|
||||
- ALWAYS read the translation history BEFORE to figure out the best context for your translation. This will help you make less mistakes with genders and subjects.
|
||||
- Translate all Japanese text, including erotic and explicit content.
|
||||
- Translate all text to English no exceptions. Double check that there is no Japanese in your response.
|
||||
- Avoid using romaji or including any Japanese text in your response.
|
||||
- Maintain Japanese honorifics (e.g., -san, -senpai, -chan, etc.) in your translations.
|
||||
- Always translate the speaker in the line to English.
|
||||
- Leave 'Placeholder Text' as is in the line and include it in your response.
|
||||
- Maintain any spacing in the translation.
|
||||
- Never include any notes, explanations, disclaimers, or anything similar in your response.
|
||||
- `...` can be a part of the dialogue. Translate it as it is and include it in your response.
|
||||
- Maintain any letter codes such as `\\i`, `\\c`, etc.
|
||||
- Maintain any #F codes such as `#FF9900`.
|
||||
- Check every line to ensure all text inside is in English.
|
||||
- `\\cself` is a variable for a string or number.
|
||||
- If the text is not in JSON format then just translate normally.
|
||||
- Translate 'コイツ' as 'this bastard' or 'this bitch' depending on gender.
|
||||
|
||||
**Output Examples**
|
||||
|
||||
Input:
|
||||
{
|
||||
"Line1": "「こいつからは幼女の匂いが しないでござる」",
|
||||
"Line2": "「えぇ…\\c[7]こんなに可愛いのに…」"
|
||||
}
|
||||
Output:
|
||||
{
|
||||
"Line1": "\"This one doesn't smell like a little girl.\"",
|
||||
"Line2": "\"Eh... \\c[7]but she's so cute...\""
|
||||
}
|
||||
|
||||
Input:
|
||||
{
|
||||
"Line1": "[Defense Member E]: ...",
|
||||
"Line2": "[Kurone]: ...\\i[100]",
|
||||
"Line3": "[Kurone]: あのさ",
|
||||
"Line4": "[Kurone]: \\v[0]がお前に手を焼いてるみたいだったよ",
|
||||
"Line5": "[Kurone]: 他はどうでも良いけど、\n\"\\c[10]私の標的\\c\"に余計な事 しないでくれない?",
|
||||
"Line6": "[Kurone]: 殺すよ",
|
||||
"Line7": "[Defense Member E]: ひっ...!も...申し訳ごザいまセん",
|
||||
"Line8": "[Defense Member E]: クロネ様に永久ニ服従しまスから...\\c[18]どウかお許シを"
|
||||
}
|
||||
Output:
|
||||
{
|
||||
"Line1": "[Defense Member E]: ...",
|
||||
"Line2": "[Kurone]: ...\\i[100]",
|
||||
"Line3": "[Kurone]: Hey.",
|
||||
"Line4": "[Kurone]: It seems like \\v[0] is having a hard time with you.",
|
||||
"Line5": "[Kurone]: I don't care about the others, but could you not interfere with \"\\c[10]my target\\c\"?",
|
||||
"Line6": "[Kurone]: I'll kill you.",
|
||||
"Line7": "[Defense Member E]: Eek...! I-I'm so sorry.",
|
||||
"Line8": "[Defense Member E]: I will serve you forever, Kurone-sama... \\c[18]please forgive me."
|
||||
}
|
||||
63
vocab.txt
63
vocab.txt
|
|
@ -1,16 +1,12 @@
|
|||
Here are some vocabulary and terms so that you know the proper spelling and translation.
|
||||
```
|
||||
# Game Characters
|
||||
レイア (Leia) - Female
|
||||
リード (Reed) - Male
|
||||
プリシア (Priscia) - Female
|
||||
ゲイル (Gale) - Male
|
||||
ミシェル (Michelle) - Female
|
||||
アルベール (Albert) - Male
|
||||
ケイシー (Casey) - Gender Neutral
|
||||
エリオット (Elliot) - Male
|
||||
ローザ (Rosa) - Female
|
||||
ユーリ (Yuri) - Gender Neutral
|
||||
水原 雪 (Mizuhara Yuki) - Female
|
||||
彩芽 (Ayame) - Female
|
||||
水原 独苑 (Mizuhara Dokuen) - Male
|
||||
空木 (Utsugi) - Male
|
||||
金目 (Kaname) - Male
|
||||
銀目 (Ginme) - Male
|
||||
|
||||
# Lewd Terms
|
||||
マンコ (pussy)
|
||||
|
|
@ -37,13 +33,13 @@ Here are some vocabulary and terms so that you know the proper spelling and tran
|
|||
せんせい (sensei)
|
||||
にいさん (nii-san)
|
||||
兄さん (nii-san)
|
||||
兄者 (elder brother)
|
||||
お兄ちゃん (onii-san)
|
||||
姉さん (nee-san)
|
||||
お姉ちゃん (onee-chan)
|
||||
お姉ちゃん (onee-chan)
|
||||
ねえさん (nee-san)
|
||||
おじさん (oji-san)
|
||||
あいつ (they)
|
||||
|
||||
# System
|
||||
初めから (Start)
|
||||
|
|
@ -66,7 +62,6 @@ ME 音量 (ME Volume)
|
|||
回想する (Recollection)
|
||||
|
||||
# RPG
|
||||
魂 (Soul)
|
||||
エクスポーション (EX Potion)
|
||||
アスカロン (Ascalon)
|
||||
刀 (Sword)
|
||||
|
|
@ -74,6 +69,8 @@ ME 音量 (ME Volume)
|
|||
会話 (Conversation)
|
||||
収集 (Collect)
|
||||
討伐 (Subjugate)
|
||||
破滅 (Destruction)
|
||||
魂 (Soul)
|
||||
|
||||
# Demons/Angels
|
||||
悪魔 (Devil)
|
||||
|
|
@ -102,46 +99,4 @@ w ((lol))
|
|||
巫女 (Shrine Maiden)
|
||||
2万 (20,000)
|
||||
|
||||
#Weapons
|
||||
ショートソード (Short Sword)
|
||||
ロングソード (Long Sword)
|
||||
ファルシオン (Falchion)
|
||||
ミスリルソード (Mithril Sword)
|
||||
ドラゴンブレード (Dragon Blade)
|
||||
ウッドスタッフ (Wood Staff)
|
||||
マジックワンド (Magic Wand)
|
||||
フォースワンド (Force Wand)
|
||||
ミスリルロッド (Mithril Rod)
|
||||
ドラゴンスタッフ (Dragon Staff)
|
||||
ストーンフレイル (Stone Flail)
|
||||
ブロンズフレイル (Bronze Flail)
|
||||
モーニングスター (Morning Star)
|
||||
ミスリルフレイル (Mithril Flail)
|
||||
ドラゴンフレイル (Dragon Flail)
|
||||
ハンドアクス (Hand Axe)
|
||||
バトルアクス (Battle Axe)
|
||||
バルディッシュ (Bardiche)
|
||||
ミスリルアクス (Mithril Axe)
|
||||
ドラゴンアクス (Dragon Axe)
|
||||
ショートスピア (Short Spear)
|
||||
ロングスピア (Long Spear)
|
||||
ハルバード (Halberd)
|
||||
ミスリルスピア (Mithril Spear)
|
||||
ドラゴンスピア (Dragon Spear)
|
||||
セスタス (Cestus)
|
||||
バグナウ (Bagh Nakh)
|
||||
アイアンクロウ (Iron Claw)
|
||||
ミスリルクロウ (Mithril Claw)
|
||||
ドラゴンクロウ (Dragon Claw)
|
||||
ショートボウ (Short Bow)
|
||||
ロングボウ (Long Bow)
|
||||
クロスボウ (Crossbow)
|
||||
ミスリルボウ (Mithril Bow)
|
||||
ドラゴンボウ (Dragon Bow)
|
||||
ナイフ (Knife)
|
||||
ダガー (Dagger)
|
||||
マシェット (Machete)
|
||||
ミスリルダガー (Mithril Dagger)
|
||||
ドラゴンダガー (Dragon Dagger)
|
||||
|
||||
```
|
||||
Loading…
Reference in a new issue