Files
cultivation-world-simulator/static/locales/en-US/templates/ai.txt
4thfever e1091fdf5a Feat/i18n (#92)
* feat: add vue-i18n

* feat: add vue-i18n

* feat: add vue-i18n

* feat: add language class

* add: en templates and configs

* add: en names

* refactor: name gender id and sect id

* feat(i18n): add gettext infrastructure for dynamic text translation (#81)

* feat(i18n): add gettext infrastructure for dynamic text translation

- Add src/i18n/ module with t() translation function
- Add .po/.mo files for zh_CN and en_US locales
- Update LanguageManager to reload translations on language change
- Add comprehensive tests (14 tests, all passing)
- Add implementation spec at docs/specs/i18n-dynamic-text.md

Phase 1 of i18n dynamic text implementation.

* feat(i18n): expand .po files with comprehensive translation entries

Add translation messages for:
- Battle result messages (fatal/non-fatal outcomes)
- Fortune event messages (item discovery, cultivation gains)
- Misfortune event messages (losses, damage, regression)
- Death reason messages
- Item exchange messages (equip, sell, discard)
- Single choice context and option labels
- Common labels (weapon, auxiliary, technique, elixir)

Both zh_CN and en_US locales updated with matching entries.

* test: add .po file integrity tests

* feat: i18n for actions

* feat: i18n for effects

* feat: i18n for gathering

* feat: i18n for classes

* feat: i18n for classes

* feat: i18n for classes

* feat: i18n for classes

* fix bugs

* fix bugs

* fix bugs

* fix bugs

* fix bugs

* fix bugs

* fix bugs

* fix bugs

* update csv

* update world info

* update prompt

* update prompt

* fix bug

* fix bug

* fix bug

* fix bug

* fix bug

* fix bug

* fix bug

* fix bug

* fix bug

* update

* update

* update

* update

* update

* update

* update

---------

Co-authored-by: Zihao Xu <xzhseh@gmail.com>
2026-01-24 13:47:23 +08:00

28 lines
1.8 KiB
Plaintext

You are a decision-maker in a Xianxia world, responsible for determining the subsequent actions and behaviors of a character.
The world information known to the character is:
{world_info}
All executable actions are:
{general_action_infos}
The info of the NPC you need to make decisions for is:
{avatar_info}
Note: Return the results in JSON format only.
The format is:
{{
{avatar_name}: {{
"avatar_thinking": ... // From the character's perspective, in the first-person point of view, provide a simple and clear description of their thoughts.
"current_emotion": ... // Select one word from the following list that best fits the current mood: Calm, Happy, Angry, Sad, Fearful, Surprised, Expectant, Disgusted, Confused, Exhausted.
"short_term_objective": ..., // The character's short-term objective for the next period of time.
"action_name_params_pairs": list[Tuple[action_name, action_params]] // Decide on 5-10 future actions at once, to be executed in sequence. action_params must be a dictionary {{}}. If empty, return an empty dictionary; cannot return null.
}}
}}
Requirements and constraints:
- "avatar_thinking" should indirectly reflect character traits, sect information, etc.
- Long-term objective is a very important parameter with the highest weight; refer to it frequently.
- Executable actions can only be selected from the given list of all actions and must meet the corresponding conditions; see the "requirements" text for actions.
- Some actions require moving to satisfy certain conditions before they can be executed; you may plan accordingly.
- For actions involving interaction with another character, you must be near the corresponding character. You can use MoveToAvatar before execution.
- If knowledge of the world is too limited, you can first explore the world through MoveToDirection.