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>
This commit is contained in:
4thfever
2026-01-24 13:47:23 +08:00
committed by GitHub
parent 6f4b648d6e
commit e1091fdf5a
243 changed files with 18297 additions and 3148 deletions

View File

@@ -54,38 +54,38 @@ You don't need to personally fight monsters or level up. Instead, you observe al
<tr>
<td width="33%" valign="top">
<h4 align="center">Sect System</h4>
<img src="assets/screenshots/宗门.png" width="100%" />
<img src="assets/en-US/screenshots/宗门.png" width="100%" />
<br/><br/>
<h4 align="center">City Region</h4>
<img src="assets/screenshots/城市.png" width="100%" />
<img src="assets/en-US/screenshots/城市.png" width="100%" />
<br/><br/>
<h4 align="center">Life Experiences</h4>
<img src="assets/screenshots/经历.png" width="100%" />
<img src="assets/en-US/screenshots/经历.png" width="100%" />
</td>
<td width="33%" valign="top">
<h4 align="center">Character Panel</h4>
<img src="assets/screenshots/角色.png" width="100%" />
<img src="assets/en-US/screenshots/角色.png" width="100%" />
<br/><br/>
<h4 align="center">Personality Traits</h4>
<img src="assets/screenshots/特质.png" width="100%" />
<img src="assets/en-US/screenshots/特质.png" width="100%" />
<br/><br/>
<h4 align="center">Independent Thinking</h4>
<img src="assets/screenshots/思考.png" width="100%" />
<img src="assets/en-US/screenshots/思考.png" width="100%" />
<br/><br/>
<h4 align="center">Nicknames</h4>
<img src="assets/screenshots/绰号.png" width="100%" />
<img src="assets/en-US/screenshots/绰号.png" width="100%" />
</td>
<td width="33%" valign="top">
<h4 align="center">Dungeon Exploration</h4>
<img src="assets/screenshots/洞府.png" width="100%" />
<img src="assets/en-US/screenshots/洞府.png" width="100%" />
<br/><br/>
<h4 align="center">Short/Long Term Goals</h4>
<img src="assets/screenshots/目标.png" width="100%" />
<img src="assets/en-US/screenshots/目标.png" width="100%" />
<br/><br/>
<h4 align="center">Elixirs/Treasures/Weapons</h4>
<img src="assets/screenshots/丹药.png" width="100%" />
<img src="assets/screenshots/法宝.png" width="100%" />
<img src="assets/screenshots/武器.png" width="100%" />
<img src="assets/en-US/screenshots/丹药.png" width="100%" />
<img src="assets/en-US/screenshots/法宝.png" width="100%" />
<img src="assets/en-US/screenshots/武器.png" width="100%" />
</td>
</tr>
</table>
@@ -136,7 +136,7 @@ You can also join the QQ group for discussion: 1071821688. Verification answer:
You can also configure LLM parameters directly in the frontend:
<img src="assets/llm_config.png" alt="Frontend LLM Config" width="100%">
<img src="assets/en-US/llm_config.png" alt="Frontend LLM Config" width="100%">
4. Run:
```bash
@@ -185,7 +185,7 @@ If you find this project interesting, please give us a Star ⭐! It will motivat
- ✅ Flexible custom LLM interface
- ✅ Support macOS
- [ ] Android support
- [ ] Support multi-language localization
- Support multi-language localization
- ✅ Start Game Page
### 🗺️ World System