* 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>
38 lines
875 B
JSON
38 lines
875 B
JSON
{
|
|
"name": "web",
|
|
"private": true,
|
|
"license": "CC-BY-NC-SA-4.0",
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest",
|
|
"test:run": "vitest run",
|
|
"test:coverage": "vitest run --coverage"
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/vue": "^8.1.0",
|
|
"@vitejs/plugin-vue": "^5.2.4",
|
|
"@vitest/coverage-v8": "^2.1.8",
|
|
"@vue/test-utils": "^2.4.6",
|
|
"jsdom": "^25.0.1",
|
|
"msw": "^2.7.0",
|
|
"sass": "^1.94.1",
|
|
"typescript": "~5.9.3",
|
|
"vite": "^5.4.21",
|
|
"vitest": "^2.1.8"
|
|
},
|
|
"dependencies": {
|
|
"@vueuse/core": "^14.0.0",
|
|
"naive-ui": "^2.43.2",
|
|
"pinia": "^3.0.4",
|
|
"pixi-viewport": "^6.0.3",
|
|
"pixi.js": "^8.14.2",
|
|
"vfonts": "^0.0.3",
|
|
"vue-i18n": "^9.14.5",
|
|
"vue3-pixi": "^1.0.0-beta.3"
|
|
}
|
|
}
|