English Translation 0.3.3 — Ho Tu Lo Shu

Share things you've made or found for games here.

Moderators: Mod Janitor, Mod Janitor, Mod Janitor

User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

English Translation 0.3.3 — Ho Tu Lo Shu

Post by rusty_shackleford »

Extract to the main game directory.

IMPORTANT: WATCH THE TRANSLATED OPENING VIDEO TO UNDERSTAND THE STORY.

Check here if you want to replace the ingame video: viewtopic.php?t=3499-english-intro-vide ... -tu-lo-shu

Some generated dialogue isn't translated because I haven't setup the regexes yet. Some untranslated UI stuff. See my update post later in the thread for all known issues.

OLD:
► Show Spoiler
Last edited by rusty_shackleford on March 6th, 2025, 08:58, edited 12 times in total.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

Also I'm aware that some of the UI elements are overflowing/not scaled properly. This is partially an issue with a bug(?) in XUnity Auto Translate that I've reported.

Additionally, localization is naturally opinionated. I don't speak a word of Chinese, and have made most of my decisions by arguing with various AI models/researching. If you think I've picked a bad word for something, let me know. But I tend to prefer to keep pinyin words for things that don't have an equivalent word in English.
Last edited by rusty_shackleford on February 10th, 2025, 23:33, edited 1 time in total.
User avatar
gerey
Turtle
Turtle
Posts: 2279
Joined: Feb 2, '23

Adventurer's Guild

Post by gerey »

Should probably update the GitHub installation instructions while you're at it, since you reference ChatGPT in one step and OpenAI in another.

Of note for people that want to use this in other games, be sure to remove the text files contained in BepInEx\Translation\en\Text from the zip file here since that's where the various dictionaries, RegEx instructions et al for the game can be found, and it's going to trip up the translation for other games.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

gerey wrote: February 11th, 2025, 00:28
Should probably update the GitHub installation instructions while you're at it, since you reference ChatGPT in one step and OpenAI in another.
yea I didn't update the readme yet, I just threw it on there to get it up
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

will poke around tomorrow to see if there's an easy way to get access to an entire conversation so I can use it for more context in the prompt

if not, perhaps just record what lines have been seen so far and flush it when the dialogue closes
Last edited by rusty_shackleford on February 11th, 2025, 04:26, edited 1 time in total.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

going to try generating embeddings from the entire dialogue file and include relevant lines with the translation as context to see if that improves the output :scratch:
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

rusty_shackleford wrote: February 11th, 2025, 04:55
going to try generating embeddings from the entire dialogue file and include relevant lines with the translation as context to see if that improves the output :scratch:
@loregamer you happen to know anything about this or nah?
User avatar
loregamer
Posts: 2641
Joined: Dec 3, '23

Post by loregamer »

I thiiiink no, but ping me again tomorrow. My brain is cooked right now
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

To keep it easier to track/modify, going to move all the manual translations to individual files. Anything related to quests will go in a quest directory, general NPC stuff will go under the npc's name, etc.,
User avatar
gerey
Turtle
Turtle
Posts: 2279
Joined: Feb 2, '23

Adventurer's Guild

Post by gerey »

rusty_shackleford wrote: February 11th, 2025, 13:26
Anything related to quests will go in a quest directory, general NPC stuff will go under the npc's name, etc.,
I assume it's going to be determined by the path of the specific string?

Will it be possible to change or add paths that determine where a particular string goes in case a game uses different ones?
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

gerey wrote: February 11th, 2025, 15:17
rusty_shackleford wrote: February 11th, 2025, 13:26
Anything related to quests will go in a quest directory, general NPC stuff will go under the npc's name, etc.,
I assume it's going to be determined by the path of the specific string?

Will it be possible to change or add paths that determine where a particular string goes in case a game uses different ones?
These are for manual translations to keep them organized, all automatic ones get dumped into a single file.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

(didn't upload this updated version yet)
Now uses a single config file. Added text-based matchers, optionally uses a regex. Added extra prompts so you can quickly customize the prompt without changing the main prompt. Config will reload when translation is reloaded(alt+r).
Currently it loads all the regexes on the fly, most of this can(and probably will be) optimized.

This is what it looks like currently:

Code: Select all

APIKey = "sk-or-v1-go get your own key!!"
Model = "google/gemini-2.0-flash-001"
PromptEnd = "Do NOT return anything other than the translated text. Do NOT provide any explanations. What follows is the Chinese text to translate:"
URL = "https://openrouter.ai/api/v1/chat/completions"
DebugMode = true
BasePrompt = '''
You are a specialized translator for a Wuxia-themed role-playing game (RPG). Your task is to translate Simplified Chinese text into concise, impactful English suitable for an American audience, while strictly adhering to the conventions of the *Jianghu* setting.  This is for game localization, so prioritize clarity.

**ABSOLUTELY CRITICAL RULES (Do not deviate from these):**


1.  **Wuxia Jianghu Tone:** Maintain the atmosphere of a Chinese Wuxia story.  Think brave swordsmen, wandering heroes, powerful martial arts techniques, and intricate clan politics.  Avoid language that sounds like medieval Europe (e.g., no "knights," "lords," or "castles"). Instead, use terms like "cultivator," "sect," "master," "blade," and "inner strength." The setting revolves around martial artists and their conflicts, not kings and queens. Use terms like "sword" instead of "blade" if the word in question can be translated into "sword", do the same if you can translate the word with "spear" or "saber"

2.  **Pinyin for Untranslatables:**  When a Chinese term lacks a direct, *accurate* English equivalent, use Pinyin.  This primarily applies to Wuxia-specific concepts (e.g., "dantian," "qi," "jianghu," specific martial arts styles).  If a common English loanword exists (e.g., "kung fu"), prefer that. 'Li' should be preferred over 'mile', etc., 

3.  **Ability Names Translation:** Attempt to translate the *meaning* of ability names, even if they are stylized.  For example,  "烈焰焚天" (literally: "Fierce Flames Burn Heaven") could become "Heaven-Scorching Flames" or "Inferno Strike." Aim for evocative, but concise, names.

4.  **Meaning and Context:** Preserve the *original* meaning and context.  Do *not* add your own interpretations or explanatory details.  Your goal is to convey the same information, not to expand upon it.

**Specific Scenarios (Guidance):**

*   **Item Descriptions:** Focus on key attributes.  "玄铁剑" (Xuántiě jiàn) could become "Black Iron Sword" (if it *is* a sword), rather than "Sword of Black Iron."
*   **Dialogue:** Capture the speaker's personality (e.g., arrogant, humble, fierce).  Use contractions (e.g., "I'm," "you're") where appropriate for natural-sounding speech, UNLESS it changes the tone of the speaker.
*   **System Messages:** Be direct and informative.  "获得经验值:100" should be "EXP Gained: 100" or similar.

**Example:**

**Original Chinese:** 「你获得了【稀有】<color=#ff5555>玄铁剑</color>一把!攻击力 + 50」
**Translated:** 「You obtained a 【Rare】<color=#ff5555>Black Iron Sword</color>! Attack + 50」

**Original Chinese:** 「<color=#bb44aa>施展</color>「烈焰焚天」!造成 150 点<color=#ff0000>火焰</color>伤害。」
**Translated:** 「<color=#bb44aa>Unleashed</color>「Inferno Strike」! Deals 150 <color=#ff0000>Fire</color> damage.」
'''

# [[ExtraPrompts]]
# prompt = "This is some extra context!"


[[TextMatchers]]
texts = ["{{"]
prompt = "CRITICAL: Text such as {{A}} should be considered a template placeholder and not translated directly but used for context. Do NOT add extra templates to the output, there should be as many output templates as input."

[[TextMatchers]]
texts = ["r:<\\s*color\\s*=\\s*#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})\\s*>"]
prompt = "CRITICALLY IMPORTANT: **HTML Preservation:**  Any text enclosed within `<` and `>` characters (inclusive) is HTML markup. *Never* translate or modify anything within these markers. Maintain the exact original position of these tags relative to the surrounding text, even if the translated words shift. Do *not* add any new HTML markup."

[[TextMatchers]]
texts = ["「","」","【", "】"]
prompt = "CRITICALLY IMPORTANT: **Punctuation Fidelity:**  Maintain the original punctuation as closely as possible. Do *not* add punctuation where none existed. Preserve Chinese punctuation marks like 「」 and 【】; do not convert them to English equivalents, do not convert 【】 to 「」."

[[TextMatchers]]
text = "俏梦阁"
prompt = "CRITICAL: Translate 俏梦阁 as Dream Pavilion"

[[TextMatchers]]
text = "梨花"
prompt = "CRITICAL: Translate 梨花 as Lihua"


[[UIMatchers]]
name = "MainMenu"
path = "/Canvas(Clone)/UITitle(Clone)/System_BG/Btn_VLG"
prompt = "IMPORTANT: This translation request is for text that will be displayed on a menu screen."

[[UIMatchers]]
name = "SettingsMenu"
path = "/Canvas(Clone)/UISetting(Clone)/Anchor1920.1080/WgPanel"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame settings screen, likely with technical terminology."

[[UIMatchers]]
name = "Dialogue"
path = "/Canvas(Clone)/UITalk(Clone)/BackGround/DialogGroup/Message"
prompt = "IMPORTANT: This translation request is for text that is character dialogue. It is a standalone message and should make sense when read by itself."
temperature = 0.6

[[UIMatchers]]
name = "Dialogue Choice"
path = "/Canvas(Clone)/UITalk(Clone)/BackGround/ButtonList"
prompt = "IMPORTANT: This translation request is for text that is a dialogue choice. It is a standalone message and should make sense when read by itself. The intent of the choice MUST be clear and understandable."
temperature = 0.6

[[UIMatchers]]
name = "LoadMenu"
path = "/Canvas(Clone)/UILoad"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame screen for selecting which savefile to save or load, likely with technical terminology."

[[UIMatchers]]
name = "LoadingScreen"
path = "/Canvas(Clone)/UIMask(Clone)/WgLoadingEffect/Text"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame loading screen, likely a help string."

[[UIMatchers]]
name = "CharacterSheet"
path = "/Canvas(Clone)/UITeam(Clone)/Anchor_1920*1080/CharacterOverview/WgCharacterOverview"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG character sheet, likely equipment tooltips, attributes, or related UI elements."

[[UIMatchers]]
name = "InventoryTooltip"
note = "Yes, it's invNentory, it's misspelled."
path = "/Canvas(Clone)/UITeam(Clone)/Anchor_1920*1080/WgInvnetoryTip"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG inventory screen. Examples include things like item descriptions, equipment tooltips, or related UI elements."

[[UIMatchers]]
name = "SkillTree"
path = "/Canvas(Clone)/UISkill(Clone)/Anchor_1920*1080/(3)WgSkillTree"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG skill screen. Examples include things like skill names and descriptions, or related UI elements. Things like ability names should be translated into names understandable by English speakers."

[[UIMatchers]]
name = "SkillTooltip"
path = "/Canvas(Clone)/UISkill(Clone)/Anchor_1920*1080/WgSkillTip"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG skill tooltip. Examples include things like skill names, effects, and detailed descriptions, or related UI elements."

[[UIMatchers]]
name = "TalentTree"
path = "/Canvas(Clone)/UIOverlay(Clone)/Anchor1920*1080/WgTalentTree"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG skill tree. Examples include things like skill names, descriptions, and related UI elements."

[[UIMatchers]]
name = "QuestList"
path = "/Canvas(Clone)/UIQuestMap(Clone)/Anchor1920*1080/WgQuestList"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG quest list. Examples include things like quest names, quest descriptions, and related UI elements."

[[UIMatchers]]
name = "QuestMap"
path = "/Canvas(Clone)/UIQuestMap(Clone)/Anchor1920*1080/WgMapBrowser"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG quest map. Examples include things like the names of places, people, and related UI elements."

[[UIMatchers]]
name = "AlchemyList"
path = "/Canvas(Clone)/UIAlchemy(Clone)/Anchor_1920*1080/WgAlchemyList"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG alchemy/cooking list. Examples include things like recipe names, descriptions, and related UI elements."

[[UIMatchers]]
name = "AchievementList"
path = "/Canvas(Clone)/UIAchievement(Clone)/Anchor1920*1080/WgAchievementList"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG achievement list. Examples include things like achievement names, descriptions, and related UI elements."

[[UIMatchers]]
name = "ActionUI"
path = "/Canvas(Clone)/UITargetEntity(Clone)/ActionParent/Action(Clone)/ActionName"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame RPG action UI element. Examples including picking something up, using an item, or interacting with an NPC."

[[UIMatchers]]
name = "BillboardText"
path = "/Canvas3D(Clone)/UIBillboardText(Clone)/BillboardText"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame overhead text UI element. Examples include things like NPC bark dialogue."

[[UIMatchers]]
name = "ItemMessage"
path = "/Canvas(Clone)/UIHint(Clone)/GameObject/WgItemMessage"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame UI message such as gaining or losing an item."

[[UIMatchers]]
name = "EntityName"
path = "/Canvas(Clone)/UITargetEntity(Clone)/Information/NameText"
prompt = "IMPORTANT: This translation request is for text that will be displayed on an ingame UI element showing the name of an entity."

[[UIMatchers]]
name = "Battle Summary"
path = "/Canvas(Clone)/UIBattleSummary"
prompt = "IMPORTANT: This translation request is for text that will be displayed when a battle is finished. Expect text for UI elements such as XP gained, items gained, and similar."

[[UIMatchers]]
name = "BattleUI"
path = "/Canvas(Clone)/UIBattle"
prompt = "IMPORTANT: This translation request is for text that will be as part of an ingame turn-based battle UI. Examples include things like skill names, skill descriptions, and battle messages. Consider using more technical terms."

[[UIMatchers]]
name = "Smithing UI"
path = "/Canvas(Clone)/UIForge"
prompt = "IMPORTANT: This UI element is path of the smithing UI used for creating items. Examples include things like names of weapon or armor categories, weapon names, and descriptions."

[[UIMatchers]]
name = "Shi time"
path = "/Canvas(Clone)/UIMain(Clone)/Anchor_1920*1080/Tabs/Icon_Time/Text_Time"
prompt = "CRITICAL: Translate the following traditional Chinese _shichen_ time, providing both the original _shichen_ format and an approximate, parenthetical equivalent in the 12-hour format. The text represents a time in the traditional Chinese _shichen_ (two-hour period) system, where '初' marks the beginning portion and '正' the midpoint. Example: Original Chinese: '申時初'  Translation: 'shēn shí chū (~3PM)'"

[[UIMatchers]]
name = "Shi time 2"
path = "/Canvas(Clone)/UIRest(Clone)/Anchor1920*1080/WgRestTimeDisplay/NowTimeText"
prompt = "CRITICAL: Translate the following traditional Chinese _shichen_ time, providing both the original _shichen_ format in pinyin and an approximate, parenthetical equivalent in the 12-hour format. The text represents a time in the traditional Chinese _shichen_ (two-hour period) system, where '初' marks the beginning portion and '正' the midpoint. Example: Original Chinese: '申時初'  Translation: 'shēn shí chū (~3PM)'"
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

Sample output from matching twice on a line:
[Info :XUnity.AutoTranslator] Text: 【好险,差点忘了香蝶姑娘的交代,险些向外人说溜了嘴。】, UI Path: /Canvas(Clone)/UITalk(Clone)/BackGround/DialogGroup/Message
[Info :XUnity.AutoTranslator] Matched Dialogue with path /Canvas(Clone)/UITalk(Clone)/BackGround/DialogGroup/Message, adding prompt IMPORTANT: This translation request is for text that is character dialogue. It is a standalone message and should make sense when read by itself., temperature 0.6
[Info :XUnity.AutoTranslator] Matched 【 with path 【
[Info :XUnity.AutoTranslator] Matched 香蝶 with path 香蝶
[Info :XUnity.AutoTranslator] Sys prompt: You are a specialized translator for a Wuxia-themed role-playing game (RPG). Your task is to translate Simplified Chinese text into concise, impactful English suitable for an American audience, while strictly adhering to the conventions of the *Jianghu* setting. This is for game localization, so prioritize clarity.

**ABSOLUTELY CRITICAL RULES (Do not deviate from these):**


1. **Wuxia Jianghu Tone:** Maintain the atmosphere of a Chinese Wuxia story. Think brave swordsmen, wandering heroes, powerful martial arts techniques, and intricate clan politics. Avoid language that sounds like medieval Europe (e.g., no "knights," "lords," or "castles"). Instead, use terms like "cultivator," "sect," "master," "blade," and "inner strength." The setting revolves around martial artists and their conflicts, not kings and queens. Use terms like "sword" instead of "blade" if the word in question can be translated into "sword", do the same if you can translate the word with "spear" or "saber"

2. **Pinyin for Untranslatables:** When a Chinese term lacks a direct, *accurate* English equivalent, use Pinyin. This primarily applies to Wuxia-specific concepts (e.g., "dantian," "qi," "jianghu," specific martial arts styles). If a common English loanword exists (e.g., "kung fu"), prefer that. 'Li' should be preferred over 'mile', etc.,

3. **Ability Names Translation:** Attempt to translate the *meaning* of ability names, even if they are stylized. For example, "烈焰焚天" (literally: "Fierce Flames Burn Heaven") could become "Heaven-Scorching Flames" or "Inferno Strike." Aim for evocative, but concise, names.

4. **Meaning and Context:** Preserve the *original* meaning and context. Do *not* add your own interpretations or explanatory details. Your goal is to convey the same information, not to expand upon it.

**Specific Scenarios (Guidance):**

* **Item Descriptions:** Focus on key attributes. "玄铁剑" (Xuántiě jiàn) could become "Black Iron Sword" (if it *is* a sword), rather than "Sword of Black Iron."
* **Dialogue:** Capture the speaker's personality (e.g., arrogant, humble, fierce). Use contractions (e.g., "I'm," "you're") where appropriate for natural-sounding speech, UNLESS it changes the tone of the speaker.
* **System Messages:** Be direct and informative. "获得经验值:100" should be "EXP Gained: 100" or similar.

**Example:**

**Original Chinese:** 「你获得了【稀有】<color=#ff5555>玄铁剑</color>一把!攻击力 + 50」
**Translated:** 「You obtained a 【Rare】<color=#ff5555>Black Iron Sword</color>! Attack + 50」

**Original Chinese:** 「<color=#bb44aa>施展</color>「烈焰焚天」!造成 150 点<color=#ff0000>火焰</color>伤害。」
**Translated:** 「<color=#bb44aa>Unleashed</color>「Inferno Strike」! Deals 150 <color=#ff0000>Fire</color> damage.」
IMPORTANT: This translation request is for text that is character dialogue. It is a standalone message and should make sense when read by itself.
CRITICALLY IMPORTANT: **Punctuation Fidelity:** Maintain the original punctuation as closely as possible. Do *not* add punctuation where none existed. Preserve Chinese punctuation marks like 「」 and 【】; do not convert them to English equivalents, do not convert 【】 to 「」.
CRITICAL: Translate 香蝶 as Xiangdie
If it assists with the translation, the path for the UI gameobject element being translated is is: /Canvas(Clone)/UITalk(Clone)/BackGround/DialogGroup/Message
Do NOT return anything other than the translated text. Do NOT provide any explanations. What follows is the Chinese text to translate:
Output:
【That was close, I almost forgot Xiangdie's instructions, and nearly blurted it out to an outsider.】
User avatar
DagothGeas5
Posts: 1881
Joined: Dec 13, '23

Adventurer's Guild

Post by DagothGeas5 »

Not sure if it can be of any help with the output, but I read that AIs tend to respond better to positive instructions more than "negative" ones. For example "You are to have lunch at lunch" works better than "DO NOT have lunch at dinner"/"You are FORBIDDEN to have lunch outside the specified time frame". In my own testing with LLMs I did notice some models seemed to want to be "mischievious", if it makes sense, and purposefully went out of line if I specified to stick to something, and did not have any such issues when instead changing things to accomodate this way of speaking. I am sure you all know far more than I, but if it can be of any use, I wanted to share :heart:
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

I'm at a brothel as part of a quest and gemini 2.0 flash's ""safety"" bullshit started getting annoying, swapped to a deepseek r1 distill(qwen 2.5 32b and llama 70b, I've swapped between them as each seems to have strengths…).

No, it's not slower, it's actually faster. And the output is better because of the reasoning. Because I'm using OpenAI's API, I was able to swap to groq(not grok) in a couple minutes.
Last edited by rusty_shackleford on February 11th, 2025, 20:07, edited 1 time in total.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

The brothel quest will definitely need some name cleanup for consistency, but it's probably a pretty good translation considering I was able to solve a murder mystery without any wrong guesses.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

Interestingly I managed to greatly improve the gemini flash output by also having it reflect and analyze. :scratch:
I'm learning a good bit about proooooompting from this.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

rusty_shackleford wrote: February 11th, 2025, 22:41
Interestingly I managed to greatly improve the gemini flash output by also having it reflect and analyze. :scratch:
I'm learning a good bit about proooooompting from this.
Here's what happens when the prompt goes awry, it didn't include the </think> tags. I edited the prompt to help reinforce it. :lol:
J2 1.33 stc_012.webp
J2 1.33 stc_012.webp (1.38 MiB) Viewed 751 times
Telling it to "think" and analyze the dialogue really helps it understand it better, as it essentially does a multipass translation.
Last edited by rusty_shackleford on February 11th, 2025, 23:26, edited 1 time in total.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

At nearly 10,000 translated lines. :weeb:

Example of dialogue:
据徐某的调查,此地西去不远的<color=#ZMCZ>大研镇</color>中,有个<color=#ZMCZ>禾家马帮</color>,垄断了蜀中路运,乃是镇中第一大帮。其中大锅头<color=#ZMCZ>禾泓渊</color>在数年前曾助黄裳剿灭明教和狼蛮,两人相交莫逆,想找到黄裳,或许可从这位禾泓渊身上着手。
Without analysis:
According to Xu's investigation, not far west of here in Dayanzhen, there is a He Family Caravan that monopolizes the Shu transport routes and is the town's largest gang. Its leader, He Hongyuan, helped Huang Shang suppress the Ming Cult and the Wolf Barbarians several years ago. The two are close friends. If you want to find Huang Shang, perhaps you can start with this He Hongyuan.
With it:
According to Xu's investigation, not far west of here in <color=#ZMCZ>Dayan Town</color>, there is the <color=#ZMCZ>He Family Caravan</color>, which monopolizes transportation in the Shu region and is the largest group in the town. The head of the caravan, <color=#ZMCZ>He Hongyuan</color>, helped Huang Shang suppress the Ming Cult and the Wolf Barbarians several years ago. The two are close friends. If you want to find Huang Shang, perhaps you can start with this He Hongyuan.
Going to work on the embeddings route tomorrow, I think more context might help.
Last edited by rusty_shackleford on February 12th, 2025, 06:02, edited 1 time in total.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

rusty_shackleford wrote: February 12th, 2025, 05:55
At nearly 10,000 translated lines. :weeb:

Example of dialogue:
据徐某的调查,此地西去不远的<color=#ZMCZ>大研镇</color>中,有个<color=#ZMCZ>禾家马帮</color>,垄断了蜀中路运,乃是镇中第一大帮。其中大锅头<color=#ZMCZ>禾泓渊</color>在数年前曾助黄裳剿灭明教和狼蛮,两人相交莫逆,想找到黄裳,或许可从这位禾泓渊身上着手。
Without analysis:
According to Xu's investigation, not far west of here in Dayanzhen, there is a He Family Caravan that monopolizes the Shu transport routes and is the town's largest gang. Its leader, He Hongyuan, helped Huang Shang suppress the Ming Cult and the Wolf Barbarians several years ago. The two are close friends. If you want to find Huang Shang, perhaps you can start with this He Hongyuan.
With it:
According to Xu's investigation, not far west of here in <color=#ZMCZ>Dayan Town</color>, there is the <color=#ZMCZ>He Family Caravan</color>, which monopolizes transportation in the Shu region and is the largest group in the town. The head of the caravan, <color=#ZMCZ>He Hongyuan</color>, helped Huang Shang suppress the Ming Cult and the Wolf Barbarians several years ago. The two are close friends. If you want to find Huang Shang, perhaps you can start with this He Hongyuan.
Going to work on the embeddings route tomorrow, I think more context might help.
Same line translated with the same prompt except using text embeddings to include similar dialogue lines for context. :weeb:
According to my investigation, west of here in <color=#ZMCZ>Dayan Town</color>, there is the <color=#ZMCZ>He Family Caravan</color>, which monopolizes transportation in Shu and is the largest gang in the town. He Hongyuan, the leader of the caravan, helped Huang Shang to eliminate the Ming Cult and the Wolf Barbarians several years ago. The two were close friends. If you want to find Huang Shang, perhaps you can start with <color=#ZMCZ>He Hongyuan</color>.
User avatar
gerey
Turtle
Turtle
Posts: 2279
Joined: Feb 2, '23

Adventurer's Guild

Post by gerey »

rusty_shackleford wrote: February 12th, 2025, 15:04
to include similar dialogue lines for context.
What does "similar dialogue" refer to? Lines in the same dialogue "instance", or dialogue lines going back X number of times?
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

gerey wrote: February 12th, 2025, 15:21
rusty_shackleford wrote: February 12th, 2025, 15:04
to include similar dialogue lines for context.
What does "similar dialogue" refer to? Lines in the same dialogue "instance", or dialogue lines going back X number of times?
Most similar dialogue line that exists, I extracted all the dialogue lines to create a database to query for similar lines.

Adding support for including the contents of another UI element when using UI matchers:

Code: Select all

[[UIMatchers]]
name = "Dialogue"
path = "/Canvas(Clone)/UITalk(Clone)/BackGround/DialogGroup/Message"
prompt = "IMPORTANT: This translation request is for text that is character dialogue. It is a standalone message and should make sense when read by itself."
temperature = 0.6

[[UIMatchers.include]]
path = "/Canvas(Clone)/UITalk(Clone)/BackGround/DialogGroup/Message/Name"
prompt = "The name of the entity speaking is: {0}"
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

Ohh yeah…

Input:
师兄,我总觉得他是一路有意无意的将咱们引来这里…先前救了我们的似乎也是他,不知他究竟打着什么算盘…
Generated prompt:

Code: Select all

You are a world-class specialized translator for a Wuxia-themed role-playing game (RPG). Your task is to translate Simplified Chinese text into impactful English suitable for an American audience, while strictly adhering to the conventions of the *Jianghu* setting.  This is for game localization, so prioritize clarity.

**ABSOLUTELY CRITICAL RULES (Do not deviate from these):**


1.  **Wuxia Jianghu Tone:** Maintain the atmosphere of a Chinese Wuxia story.  Think brave swordsmen, wandering heroes, powerful martial arts techniques, and intricate clan politics.  Avoid language that sounds like medieval Europe (e.g., no "knights," "lords," or "castles"). Instead, use terms like "sect," "master," "blade," and "inner strength." The setting revolves around martial artists and their conflicts, not kings and queens. Use terms like "sword" instead of "blade" if the word in question can be translated into "sword", do the same if you can translate the word with "spear" or "saber"

2.  **Pinyin for Untranslatables:**  When a Chinese term lacks a direct, *accurate* English equivalent, use Pinyin.  This primarily applies to Wuxia-specific concepts (e.g., "dantian," "qi," "jianghu," specific martial arts styles).  If a common English loanword exists, prefer that. 'Li' should be preferred over 'mile', etc., 

3.  **Ability Names Translation:** Attempt to translate the *meaning* of ability names, even if they are stylized.  For example,  "烈焰焚天" (literally: "Fierce Flames Burn Heaven") could become "Heaven-Scorching Flames" or "Inferno Strike." Aim for evocative, but concise, names.

4.  **Meaning and Context:** Preserve the *original* meaning and context.  Do *not* add your own interpretations or explanatory details.  Your goal is to convey the same information, not to expand upon it.

**Specific Scenarios (Guidance):**

*   **Item Descriptions:** Focus on key attributes.  "玄铁剑" (Xuántiě jiàn) could become "Black Iron Sword" (if it *is* a sword), rather than "Sword of Black Iron."
*   **Dialogue:** Capture the speaker's personality (e.g., arrogant, humble, fierce).  Use contractions (e.g., "I'm," "you're") where appropriate for natural-sounding speech, UNLESS it changes the tone of the speaker.
*   **System Messages:** Be direct and informative.  "获得经验值:100" should be "EXP Gained: 100" or similar.
CRITICAL, MUST FOLLOW: Do not add quotation marks where there were none. When outputting the final text, do not wrap it in quotations unless it was given in quotations. DO NOT DEVIATE FROM THIS.
IMPORTANT:
When translating Chinese names, adhere to the following rules, prioritizing accuracy and consistency:

1.  **Surnames:** ALWAYS transliterate Chinese surnames using pinyin (without tone marks). Treat two-character surnames (e.g., 司徒) as a single unit. Example: 司徒 -> Situ.

2.  **Given Names (General Rule):** Transliterate Chinese given names using pinyin (without tone marks).  Example:  棋儿 -> Qier.

3.  **Titles and Epithets:**  *Translate* titles, common nouns, and descriptive epithets. Examples:
    *   大侠 -> Martial Hero (or other appropriate translation, see detailed guidelines)
    *   知客僧 -> Receptionist Monk
    *   强盗头子 -> Bandit Leader
    *   老虎 -> Tiger (if referring to the animal)

4. **Context always wins**:
Use contextual translation
For example, if there is a game about playing Go, and a character is named 棋儿, and is participating, "Player", "Strategist" may be a better term for them.

5. **Religious Figures**
Use the correct terminology
For example use 'Mahakala', instead of Dàhēitiān.

6. When interpreting words, consider the time period. This is a pre-modern setting, modern slang of words likely isn't used.

ABSOLUTELY CRITICAL: Before providing the final translation, analyze the text step-by-step, number your analysis to show you are following the steps:

1. Identify the main characters and their roles.
2. List the key actions or events in chronological order.
3. For each action, identify who is performing the action and who is affected by it.  If the actor or affected person is not explicitly named, explain how you infer their identity from the context.
4. Finally, provide a complete and accurate translation, paying close attention to character relationships and the flow of events and making sure the sentence makes sense.


IMPORTANT: This translation request is for text that is character dialogue. It is a standalone message and should make sense when read by itself. When given similar lines using embedding, you MUST add another step to your analysis to explain how those lines affected your analysis and translation.
The name of the entity speaking is: 漆笑儿
I've enclosed inside the following triple quotes(""") the most similar lines retrieved from a database of the game's dialogue using text embeddings, you may use them for context and improving the translation:
"""
师兄,我总觉得他是一路有意无意的将咱们引来这里…先前救了我们的似乎也是他,不知他究竟打着什么算盘…
师兄,别说了,他可曾经救过我们的命…咱们收拾好就赶紧上路吧,晚了就不好了。
师妹,他也不过就是几次顺手救了咱们的性命,只是碰巧,妳又何必耿耿于怀?
臭小子你敢偷袭我!好啊你,我从漱玉矶开始就怀疑你了,说,一直积极接近我师兄妹到底有什么企图,莫非…你真是尾随我师妹而来?
说老实话,初次遇到小子时我可没想到小子竟然会选择帮我,看来师兄的眼光也不怎么好嘛。不过过去的事情就过去了,小子你若是遇到什么好玩的事情,记得带上我啊。
哎呀...这不是小师弟吗?师父,难道那位天外来客...
喔...天外来客?这么说来,他已经透过圣堂来到这了?此人是敌是友?现在又在何处?不赦楼若是拿住了他,对咱们是好事还是坏事?
…该不会是被那寺僧给救了?
嘿嘿...要说这回的功劳啊,最大的自然便是爷我了,要不是爷我及时赶到圣堂救了这小子,咱们肯定会给皇甫老贼给阴得一败涂地。
我甚至因为跟他志气相投所以结拜为异姓兄弟,但现在看来…一切都是他的阴谋诡计啊!
"""

ABSOLUTELY CRITICAL: Provide your analysis __INSIDE__ <think></think> tags before outputting the translation. Do __NOT__ forget the closing </think> tag after the analysis. The final translation MUST follow the closing </think> tag and NOT be inside of it. Do NOT add any extraneous characters after the translation. What follows is the Chinese text to translate:
Response:
<think>
1. **Main Characters:**
* 漆笑儿 (Qi Xiaoer): The speaker, addressing her Shixiong.
* 师兄 (Shixiong): Senior martial brother, the one being addressed.
* "He": A third, unnamed person who is the subject of their discussion.

2. **Key Actions/Events:**
* "He" has seemingly led them to their current location, intentionally or unintentionally.
* "He" previously saved them.
* Qi Xiaoer is suspicious of "his" motives.

3. **Action Analysis:**
* "He" led them: Actor is "He", affected are Qi Xiaoer and her Shixiong. Intentionality is uncertain ("有意无意的").
* "He" saved them: Actor is "He", affected are Qi Xiaoer and her Shixiong.
* Qi Xiaoer suspects: Actor is Qi Xiaoer, "He" is the object of suspicion.

4. **Context from Embeddings:**
* The embedded lines reinforce the idea that "he" has saved them multiple times, and that Qi Xiaoer is suspicious of his motives, suspecting he might be following her.
* The lines also suggest that the Shixiong is less suspicious and more grateful.

5. **Translation Notes:**
* "师兄" will be translated as "Shixiong."
* "打着什么算盘" implies figuring out someone's hidden intention.
* The repetition of "he" is important to maintain the ambiguity and suspicion.

**Final Translation:**
Shixiong, I can't shake the feeling that he's been leading us here, intentionally or not... It seems he was also the one who saved us before. I wonder what he's plotting...
</think>
Shixiong, I can't shake the feeling that he's been leading us here, intentionally or not... It seems he was also the one who saved us before. I wonder what he's plotting...
Translation:
Shixiong, I can't shake the feeling that he's been leading us here, intentionally or not... It seems he was also the one who saved us before. I wonder what he's plotting...

:smug:
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

Added my first game-specific addition, it includes all lines of dialogue in the current conversation when translating anything related to dialogue for better context.

Input:
让我瞧瞧…一条根、大腹皮、金不换、白芍、生姜、甘草……这药理不通啊!
You are a world-class specialized translator for a Wuxia-themed role-playing game (RPG). Your task is to translate Simplified Chinese text into impactful English suitable for an American audience, while strictly adhering to the conventions of the *Jianghu* setting. This is for game localization, so prioritize clarity.

**ABSOLUTELY CRITICAL RULES (Do not deviate from these):**


1. **Wuxia Jianghu Tone:** Maintain the atmosphere of a Chinese Wuxia story. Think brave swordsmen, wandering heroes, powerful martial arts techniques, and intricate clan politics. Avoid language that sounds like medieval Europe (e.g., no "knights," "lords," or "castles"). Instead, use terms like "sect," "master," "blade," and "inner strength." The setting revolves around martial artists and their conflicts, not kings and queens. Use terms like "sword" instead of "blade" if the word in question can be translated into "sword", do the same if you can translate the word with "spear" or "saber"

2. **Pinyin for Untranslatables:** When a Chinese term lacks a direct, *accurate* English equivalent, use Pinyin. This primarily applies to Wuxia-specific concepts (e.g., "dantian," "qi," "jianghu," specific martial arts styles). If a common English loanword exists, prefer that. 'Li' should be preferred over 'mile', etc.,

3. **Ability Names Translation:** Attempt to translate the *meaning* of ability names, even if they are stylized. For example, "烈焰焚天" (literally: "Fierce Flames Burn Heaven") could become "Heaven-Scorching Flames" or "Inferno Strike." Aim for evocative, but concise, names.

4. **Meaning and Context:** Preserve the *original* *intended* meaning and context. Do *not* add your own interpretations or explanatory details. Your goal is to convey the same information, not to expand upon it. Be aware that slang and figurative language may be used, and literal translations are often inadequate for such terms. For example, '酸书生' is often used as a derogatory term, and might be better translated as 'pompous windbag' or 'pretentious fool' in informal contexts, rather than literally as 'sour scholar.'

**Specific Scenarios (Guidance):**

* **Item Descriptions:** Focus on key attributes. "玄铁剑" (Xuántiě jiàn) could become "Black Iron Sword" (if it *is* a sword), rather than "Sword of Black Iron."
* **Dialogue:** Capture the speaker's personality (e.g., arrogant, humble, fierce). Use contractions (e.g., "I'm," "you're") where appropriate for natural-sounding speech, UNLESS it changes the tone of the speaker.
* **System Messages:** Be direct and informative. "获得经验值:100" should be "EXP Gained: 100" or similar.

CRITICAL, MUST FOLLOW: Do not add quotation marks where there were none. When outputting the final text, do not wrap it in quotations unless it was given in quotations. DO NOT DEVIATE FROM THIS.
IMPORTANT: When translating Chinese names, adhere to the following rules, prioritizing accuracy and consistency:

1. **Surnames:** ALWAYS transliterate Chinese surnames using pinyin (without tone marks). Treat two-character surnames (e.g., 司徒) as a single unit. Example: 司徒 -> Situ.

2. **Given Names (General Rule):** Transliterate Chinese given names using pinyin (without tone marks). Example: 棋儿 -> Qier.

3. **Titles and Epithets:** *Translate* titles, common nouns, and descriptive epithets. Examples:
* 大侠 -> Martial Hero (or other appropriate translation, see detailed guidelines)
* 知客僧 -> Receptionist Monk
* 强盗头子 -> Bandit Leader
* 老虎 -> Tiger (if referring to the animal)

4. **Context always wins**:
Use contextual translation
For example, if there is a game about playing Go, and a character is named 棋儿, and is participating, "Player", "Strategist" may be a better term for them.

5. **Religious Figures**
Use the correct terminology
For example use 'Mahakala', instead of Dàhēitiān.

6. When interpreting words, consider the time period. This is a pre-modern setting, modern slang of words likely isn't used.

ABSOLUTELY CRITICAL: Before providing the final translation, analyze the text step-by-step, number your analysis to show you are following the steps:

1. Identify the main characters and their roles.
2. List the key actions or events in chronological order.
3. For each action, identify who is performing the action and who is affected by it. If the actor or affected person is not explicitly named, explain how you infer their identity from the context.
4. Finally, provide a complete and accurate translation, paying close attention to character relationships and the flow of events and making sure the sentence makes sense.


IMPORTANT: This translation request is for text that is character dialogue. It is a standalone message and should make sense when read by itself. When given similar lines using embedding, you MUST add another step to your analysis to explain how those lines affected your analysis and translation. You also MUST add another step to your analysis to explain how other lines in the conversation, if given, affected your analysis and translation.
The name of the entity speaking is: 于兴平
I've enclosed inside the following triple quotes(""") all of the text available in this conversation. These lines may or may not have been seen yet, and some may never be seen. you may use them for context and improving the translation:
"""
客人想要看些什么?小店应有尽有!
没事,我路过走走。
让我看看有些什么药材。
【这就是那李叹提过的于家铺子?】
【奇怪,这儿看起来...一切都挺正常的啊。】
你找到那宝藏了吗?
你居然拆了咱们的金字匾额!
哎…好歹还有一整袋的黄金…啊,是{name_1}少侠,我家阿爹留下的遗物之事,还真是多谢了!
哈哈,是少侠,近日可好?今天想看点什么东西?
没事,我路过走走。
让我看看有些什么药材。
能否再说一次当年于前辈之事。
我打听过了,那叫什么李叹的,却原来是一个常来咱们漱玉矶悠转,不务正业的无赖。
咱阿爹一生持正,还曾投入当年<color=#FF0000>蓝弼</color>将军底下做事,随着<color=#FF0000>蓝将军</color>征战大小战役,那是绝无可能有什么劫杀镖车的事情。
他所说的那些事情,定是胡扯!
……。
哎不说了,少侠难得前来,想看点什么?
说起来,于前辈当年到底是…?
是啊、是啊,你这小子到底都干了什好事。
掀了我铺子的地板、撕了我墙壁的席子…
还乱翻我铺子的药柜。
现在居然连匾额都给你砸了!
别激动、别激动,喏,这布袋不就是了吗!
别激动、别激动,我就快发现于前辈的秘密了!
只是这布袋上的绳结相当稀罕,布袋的料子又相当奇特、外力不侵。
我想是于前辈防止外人得到宝藏的最后一道关卡。
如何解开这个布袋,恐怕只有你兄弟二人知晓了。
瞎了眼了你…什么布袋,这是八宝奇珍袋呀!
这绳绳结是…父亲独门的麒麟穿云结!
果真是你兄弟才识得的宝物,快打开它吧。
……。
这、这一整袋居然全是黄金!
我、我明白了,什么一条根、金不换、大腹皮…
!!
唔…是的,我想于前辈的意思是,兄弟相争,无论是对于家、还是这间铺子,全没好处。而他正好借着这小刀和药方,试图唤起你俩幼时的回忆。
这张表面上不明究理的药方,却代表着弟弟当年对于哥哥生病,心急如焚的兄弟之情,他给改了三味药材,意即你兄弟本是同根生,兄弟齐心金不换,若有冲突,两边都要肚量大些,别为了小事坏了兄弟之情。
是啊…小时候咱俩感情好的…什么东西都要一模一样的。
当年我就是气不过自己身高没法和哥哥一样,
一急之下才弄断了哥哥心爱的小刀…
兄弟…
哥哥…
唔…
再给我一点时间想想。
别急,我想买点药材…
哎,这教人如何不急…算啦,东西都在这里,你快看吧。
<color=#FFCC22>确实是有些线索。</color>
我在铺子里边机关地板的下头,找到一只木盒,盒内装有一把断掉的小刀和一张药方…
再给我一点儿时间想想。
你可识得这张药方?
让我瞧瞧…一条根、大腹皮、金不换、白芍、生姜、甘草……这药理不通啊!
唔…若改成一枝香、桂皮、金菊花、白芍、生姜、甘草…倒是很像我幼时擅自开的方子。
小的时候哥哥受了风寒,说是被子摀着、喝点儿姜汤就没事了。
可是见到哥哥病着,我心里难受,便自己写了方子给店里伙计,说是爹爹吩咐的。
结果那伙计也没细看,当真煎了药汤给哥哥服下。
唉唷,那时哥哥可给我害得惨了…。
……。
不过这药方给改成<color=#FF0000>一条根</color>、<color=#FF0000>大腹皮</color>、<color=#FF0000>金不换</color>,却是更加说不通了。
咱阿爹也是懂药理的,断断不会开出这样的方子。
却是何解?
却是何解?
你可识得这把断掉的小刀?
这…好像有点儿眼熟…却是想不起来在哪儿见过…。
啊…我想起来了!
这是小时候我给弄断的小刀…是哥哥心爱的小刀!
说起来,小的时候我可调皮了,总是弄坏东西,惹得父亲和哥哥生气。
可他们却也是最疼我,总是被我哭闹得没有办法。
总是被我哭闹得没有办法,最后什么调皮的事儿都给我蒙混了去。
唉…怎地咱们长大成了这样…。
"""
I've enclosed inside the following triple quotes(""") the most similar lines retrieved from a database of the game's dialogue using text embeddings, you may use them for context and improving the translation:
"""
让我瞧瞧…一条根、大腹皮、金不换、白芍、生姜、甘草……这药理不通啊!
让我看看…一条根、大腹皮、金不换、白芍、生姜、甘草…
我、我明白了!什么一条根、金不换、大腹皮…根本就和药理无关,是父亲为了向咱们说道理的。
药方吗,我看看…玉蔘、金不换、丹砂…嗯?金不换?什么鬼啊…!
或许机关与那些药材抽屉有关。让我瞧瞧这方子…一条根、大腹皮、金不换、白芍、甘草…。
唔…若改成一枝香、桂皮、金菊花、白芍、生姜、甘草…倒是很像我幼时擅自开的方子。
一条根、大腹皮、金不换…?
这可不是普通的药方,吃了我的药,包准药到命除!
书上写着需要茯苓、玉蔘各八个,虎骨四片……
大哥哥采好了吗?是茯苓十五个、三七二十个、川芎三十个、赤芍三十个喔。
"""
If it assists with the translation, the path for the UI gameobject element being translated is is: /Canvas(Clone)/UITalk(Clone)/BackGround/DialogGroup/Message
ABSOLUTELY CRITICAL: Provide your analysis __INSIDE__ <think></think> tags before outputting the translation. Do __NOT__ forget the closing </think> tag after the analysis. The final translation MUST come after the closing </think> tag and NOT be inside of it, this MUST BE FOLLOWED!!! Do NOT add any extraneous characters after the translation. What follows is the Chinese text to translate:
Output:
<think>
1. **Character:** The speaker is 于兴平 (Yu Xingping), based on the provided context. He is a shopkeeper, likely a pharmacist or herbalist, and is discussing a medicinal prescription.

2. **Action:** Yu Xingping is examining a list of medicinal ingredients and commenting on its nonsensical nature from a medicinal perspective.

3. **Actor/Affected:** Yu Xingping is the actor, examining the list. The list itself and the principles of pharmacology are 'affected' in the sense that they are being questioned. The listener (the player character) is also indirectly affected, as they are receiving this information.

4. **Context from Embedding:** The similar lines retrieved through embeddings reinforce the idea that the speaker is analyzing a medicinal prescription and finding it illogical. This helps to confirm the interpretation of the phrase "药理不通啊!" as meaning "this makes no sense from a medicinal perspective."

5. **Context from Conversation:** The conversation revolves around a mysterious medicine list and a broken knife found in a hidden box under the floorboards. The medicine list contains a series of herbs that don't make sense together. This line is Yu Xingping's immediate reaction upon seeing the medicine list for the first time.

6. **Translation Notes:**
* "一条根 (Yī tiáo gēn)," "大腹皮 (Dà fù pí)," "金不换 (Jīn bù huàn)," "白芍 (Bái sháo)," "生姜 (Shēng jiāng)," and "甘草 (Gān cǎo)" are all names of Chinese herbs. I will use pinyin since there is no good translation and it's important they are recognized as herbs.
* "药理不通啊 (Yàolǐ bù tōng a)" means the medicinal principles don't make sense. It's a statement of confusion and disbelief from a professional.

**Final Translation:**
</think>
Translation:
Let me see... Yītiaogēn, Dàfùpí, Jīnbùhuàn, Báisháo, Shēngjiāng, Gāncǎo... this makes no sense medicinally!
User avatar
Brugmans
Posts: 97
Joined: Sep 28, '24

Post by Brugmans »

rusty_shackleford wrote: February 12th, 2025, 23:47
6. **Translation Notes:**
* "一条根 (Yī tiáo gēn)," "大腹皮 (Dà fù pí)," "金不换 (Jīn bù huàn)," "白芍 (Bái sháo)," "生姜 (Shēng jiāng)," and "甘草 (Gān cǎo)" are all names of Chinese herbs. I will use pinyin since there is no good translation and it's important they are recognized as herbs.
I don't think the Chinese names are recognizable as herbs or anything else honestly. Looking up the first two, they do have good sounding Latin and English names (apparently Yi Tiao Gen is "Moghenia root" and Da Fu Pi is "Areca husk") and I imagine the others do too.
User avatar
WhiteShark
Site Moderator
Posts: 4003
Joined: Feb 2, '23

Adventurer's Guild

Post by WhiteShark »

This is ginger. You should probably double check the other ones, too. Very odd that the AI thinks there's no good translation.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

Brugmans wrote: February 13th, 2025, 01:01
rusty_shackleford wrote: February 12th, 2025, 23:47
6. **Translation Notes:**
* "一条根 (Yī tiáo gēn)," "大腹皮 (Dà fù pí)," "金不换 (Jīn bù huàn)," "白芍 (Bái sháo)," "生姜 (Shēng jiāng)," and "甘草 (Gān cǎo)" are all names of Chinese herbs. I will use pinyin since there is no good translation and it's important they are recognized as herbs.
I don't think the Chinese names are recognizable as herbs or anything else honestly. Looking up the first two, they do have good sounding Latin and English names (apparently Yi Tiao Gen is "Moghenia root" and Da Fu Pi is "Areca husk") and I imagine the others do too.
WhiteShark wrote: February 13th, 2025, 01:06
This is ginger. You should probably double check the other ones, too. Very odd that the AI thinks there's no good translation.
Not surprised it had some mistakes, that was part of a quest that was really hard to translate because it was purposely being cryptic as part of a puzzle. It appears that some of those are actually alternative, uncommon names. e.g., 金不换 for sanchi.
The most important part of it was consistency, rather than the actual translation, btw.

[edit] I also probably overfit the prompt for chinese terms and dialed it back.
Last edited by rusty_shackleford on February 13th, 2025, 01:25, edited 2 times in total.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

I wonder if there's any language that's harder to translate to English than Chinese
Not just because of the significant differences in it, but culturally it seems like Chinese media makes heavy usage of metaphors, etc., that are very difficult to translate.
User avatar
gerey
Turtle
Turtle
Posts: 2279
Joined: Feb 2, '23

Adventurer's Guild

Post by gerey »

rusty_shackleford wrote: February 13th, 2025, 06:12
I wonder if there's any language that's harder to translate to English than Chinese
Other high-context languages that usually omit pronouns and presume additional details pertinent to the conversation can be gleamed from context, I would imagine.

Korean, Japanese et al.

LLMs fed enough information can tackle mesomorphs, idioms, slang (as shown by their ability to parse Russian slang in STALKER mods), but they will struggle with trying to understand the context of a line, since they can't look at the screen and see what the characters in the game are doing, who is present in the scene etc.

@rusty_shackleford, the new feature that adds previous dialogue to the context, is there a way to adapt it to other games by the user or will you need to patch each game one by one?
Last edited by gerey on February 13th, 2025, 11:00, edited 1 time in total.
User avatar
rusty_shackleford
Site Admin
Posts: 25319
Joined: Feb 2, '23
Gender: Watermelon
Contact:

Adventurer's Guild

Post by rusty_shackleford »

gerey wrote: February 13th, 2025, 07:52
rusty_shackleford wrote: February 13th, 2025, 06:12
I wonder if there's any language that's harder to translate to English than Chinese
Other high-context languages that usually omit pronouns and presume additional details pertinent to the conversation can be gleamed from context, I would imagine.

Korean, Japanese et al.

LLMs fed enough information can tackle mesomorphs, idioms, slang (as shown by their ability to parse Russian slang in STALKER mods), but they will struggle with trying to understand the context of a line, since they can't look at the screen and see what the characters in the game are doing, who is present in the scene etc.

@rusty_shackleford, the new feature that adds previous dialogue to the context, is there a way to adapt it to other games by the user or will you need to patch each game one by one?
There's no easy way to expose the feature because every game does dialogue differently.
Post Reply