From 0995eb64e793cb93d9ee2a5474cc2b70a0790b8f Mon Sep 17 00:00:00 2001 From: Iro <155815508+Iro96@users.noreply.github.com> Date: Thu, 28 Aug 2025 10:57:23 +0700 Subject: [PATCH] chore: add Vietnamese language (#491) Co-authored-by: Typed SIGTERM Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- apps/stage-tamagotchi/src/modules/i18n.ts | 2 + apps/stage-web/src/modules/i18n.ts | 2 + docs/README.vi.md | 357 +++++++++++ packages/i18n/package.json | 4 + packages/i18n/src/index.ts | 1 + packages/i18n/src/locales/index.ts | 2 + packages/i18n/src/locales/vi/base.yaml | 48 ++ packages/i18n/src/locales/vi/docs/index.ts | 5 + packages/i18n/src/locales/vi/docs/theme.yaml | 49 ++ packages/i18n/src/locales/vi/index.ts | 13 + packages/i18n/src/locales/vi/settings.yaml | 593 ++++++++++++++++++ packages/i18n/src/locales/vi/stage.yaml | 32 + .../i18n/src/locales/vi/tamagotchi/index.ts | 7 + .../src/locales/vi/tamagotchi/settings.yaml | 23 + .../i18n/src/locales/vi/tamagotchi/stage.yaml | 10 + 15 files changed, 1148 insertions(+) create mode 100644 docs/README.vi.md create mode 100644 packages/i18n/src/locales/vi/base.yaml create mode 100644 packages/i18n/src/locales/vi/docs/index.ts create mode 100644 packages/i18n/src/locales/vi/docs/theme.yaml create mode 100644 packages/i18n/src/locales/vi/index.ts create mode 100644 packages/i18n/src/locales/vi/settings.yaml create mode 100644 packages/i18n/src/locales/vi/stage.yaml create mode 100644 packages/i18n/src/locales/vi/tamagotchi/index.ts create mode 100644 packages/i18n/src/locales/vi/tamagotchi/settings.yaml create mode 100644 packages/i18n/src/locales/vi/tamagotchi/stage.yaml diff --git a/apps/stage-tamagotchi/src/modules/i18n.ts b/apps/stage-tamagotchi/src/modules/i18n.ts index 6c65f2420..1e9f4e920 100644 --- a/apps/stage-tamagotchi/src/modules/i18n.ts +++ b/apps/stage-tamagotchi/src/modules/i18n.ts @@ -15,6 +15,8 @@ const languageRemap: Record = { 'es-MX': 'es', 'es-AR': 'es', 'es': 'es', + 'vi': 'vi', + 'vi-VN': 'vi', 'ru': 'ru', 'ru-RU': 'ru', } diff --git a/apps/stage-web/src/modules/i18n.ts b/apps/stage-web/src/modules/i18n.ts index d2b0f16f5..d5fd58377 100644 --- a/apps/stage-web/src/modules/i18n.ts +++ b/apps/stage-web/src/modules/i18n.ts @@ -15,6 +15,8 @@ const languageRemap: Record = { 'es-MX': 'es', 'es-AR': 'es', 'es': 'es', + 'vi': 'vi', + 'vi-VN': 'vi', 'ru': 'ru', 'ru-RU': 'ru', } diff --git a/docs/README.vi.md b/docs/README.vi.md new file mode 100644 index 000000000..222770b5e --- /dev/null +++ b/docs/README.vi.md @@ -0,0 +1,357 @@ + + + + + + +

Dự án AIRI

+ +

Lấy ý tưởng từ Neuro-sama và chúng tôi đã tạo ra một AI waifu / nhân vật ảo để mang họ đến với thế giới của chúng ta.

+ +

+ [Dùng thử] [简体中文] [日本語] +

+ +

+ + + + + +

+ +

+ AIRI - Một bình chứa linh hồn số, tái tạo Neuro-sama | Product Hunt + moeru-ai%2Fairi | Trendshift +

+ +> Lấy cảm hứng mạnh mẽ từ [Neuro-sama](https://www.youtube.com/@Neurosama) + +> [!WARNING] +> **Chú ý:** Chúng tôi **không** phát hành bất kỳ loại tiền điện tử hay token chính thức nào liên quan đến dự án này. Hãy kiểm tra kỹ thông tin trước khi tham gia. + +> [!NOTE] +> Chúng tôi có cả một tổ chức riêng [@proj-airi](https://github.com/proj-airi) cho các dự án con xuất phát từ AIRI. Hãy xem qua nhé! +> Bao gồm: RAG, hệ thống bộ nhớ, cơ sở dữ liệu nhúng, icon, tiện ích Live2D, và nhiều hơn nữa. + +Bạn đã từng mơ về một thực thể số sống động (cyber-waifu / husbando, thú cưng ảo) hay một bạn đồng hành kỹ thuật số có thể chơi cùng và trò chuyện với bạn chưa? + +Với sức mạnh của các mô hình LLM (ngôn ngữ lớn) hiện nay như [ChatGPT](https://chatgpt.com) hay [Claude](https://claude.ai), việc yêu cầu nhân vật ảo nhập vai và trò chuyện với chúng ta đã trở nên rất dễ dàng. Các nền tảng như [Character.ai](https://character.ai), [JanitorAI](https://janitorai.com/) hay bản cài tự host như [SillyTavern](https://github.com/SillyTavern/SillyTavern) đã đủ tốt cho trải nghiệm trò chuyện và nhập vai. + +> Nhưng còn việc **chơi game cùng bạn, xem bạn code, trò chuyện khi chơi game hoặc xem video, và làm được nhiều việc khác** thì sao? + +Có lẽ bạn đã biết [Neuro-sama](https://www.youtube.com/@Neurosama). Cô ấy là VTuber ảo xuất sắc nhất hiện nay, có thể vừa chơi game, vừa trò chuyện và tương tác với bạn cũng như khán giả. Một số người còn gọi đây là “con người số” (digital human). **Đáng tiếc, vì không mã nguồn mở, bạn không thể tương tác với cô ấy khi buổi livestream kết thúc.** + +Do đó, dự án AIRI mang đến một lựa chọn khác: **cho phép bạn sở hữu thực thể số của riêng mình, dễ dàng, mọi lúc, mọi nơi.** + +--- + +## DevLogs Đã Đăng & Cập Nhật Gần Đây + +- [DevLog @ 2025.07.18](https://airi.moeru.ai/docs/blog/DevLog-2025.07.18/) ngày 18 tháng 7, 2025 +- [DreamLog 0x1](https://airi.moeru.ai/docs/blog/dreamlog-0x1/) ngày 16 tháng 6, 2025 +- [DevLog @ 2025.06.08](https://airi.moeru.ai/docs/blog/DevLog-2025.06.08/) ngày 8 tháng 6, 2025 +- [DevLog @ 2025.05.16](https://airi.moeru.ai/docs/blog/DevLog-2025.05.16/) ngày 16 tháng 5, 2025 +- ...xem thêm tại [docs page](https://airi.moeru.ai/docs) + +## Dự Án Này Có Gì Đặc Biệt? + +Khác với các dự án VTuber AI mã nguồn mở khác, **アイリ** được xây dựng ngay từ đầu với sự hỗ trợ của nhiều công nghệ Web như [WebGPU](https://www.w3.org/TR/webgpu/), [WebAudio](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API), [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers), [WebAssembly](https://webassembly.org/), [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket), v.v. + +> [!TIP] +> Bạn lo lắng về hiệu năng khi chúng tôi dùng công nghệ Web? +> +> Đừng lo, phiên bản chạy trên trình duyệt chỉ nhằm minh hoạ khả năng có thể đạt được trong browser và webview. Phiên bản desktop của AIRI mặc định có thể dùng [NVIDIA CUDA](https://developer.nvidia.com/cuda-toolkit) và [Apple Metal](https://developer.apple.com/metal/) (nhờ HuggingFace & dự án [candle](https://github.com/huggingface/candle)), mà không cần quản lý phụ thuộc phức tạp. Đồ hoạ, bố cục, animation, và hệ thống plugin (WIP) vẫn tận dụng công nghệ Web để mở rộng dễ dàng. + +Điều này có nghĩa là **アイリ có thể chạy trên các trình duyệt và thiết bị hiện đại**, kể cả thiết bị di động (đã hỗ trợ PWA). Điều này mở ra nhiều khả năng để chúng tôi (nhà phát triển) nâng VTuber アイリ lên tầm cao mới, đồng thời vẫn để người dùng linh hoạt bật các tính năng cần TCP hoặc công nghệ ngoài Web như kết nối kênh thoại Discord hay chơi Minecraft, Factorio với bạn bè. + +> [!NOTE] +> Chúng tôi vẫn đang ở giai đoạn đầu phát triển và tìm kiếm nhà phát triển tài năng để cùng hiện thực hoá アイリ. +> +> Không sao nếu bạn chưa quen Vue.js, TypeScript, hay devtools của dự án này, bạn vẫn có thể tham gia với vai trò hoạ sĩ, nhà thiết kế, hoặc giúp chúng tôi tổ chức buổi livestream đầu tiên. +> +> Kể cả bạn là fan của React, Svelte hay Solid, chúng tôi vẫn chào đón. Bạn có thể mở thư mục phụ để thêm tính năng mà bạn muốn thử nghiệm cho アイリ. +> +> Các mảng (và dự án liên quan) chúng tôi cần: +> - Live2D modeller +> - VRM modeller +> - Nhà thiết kế avatar VRChat +> - Thị giác máy tính +> - Học tăng cường (Reinforcement Learning) +> - Nhận diện giọng nói +> - Tổng hợp giọng nói +> - ONNX Runtime +> - Transformers.js +> - vLLM +> - WebGPU +> - Three.js +> - WebXR ([xem thêm dự án khác](https://github.com/moeru-ai/chat) của tổ chức @moeru-ai) +> +> **Nếu bạn hứng thú, hãy giới thiệu bản thân ở đây: [Muốn tham gia cùng chúng tôi xây dựng AIRI?](https://github.com/moeru-ai/airi/discussions/33)** + +## Tiến Độ Hiện Tại + + + +Khả năng: + +- [x] Bộ não + - [x] Chơi game: [Minecraft](https://www.minecraft.net) + - [x] Chơi game: [Factorio](https://www.factorio.com) (WIP, [PoC và demo có sẵn](https://github.com/moeru-ai/airi-factorio)) + - [x] Trò chuyện trên [Telegram](https://telegram.org) + - [x] Trò chuyện trên [Discord](https://discord.com) + - [ ] Bộ nhớ + - [x] Hỗ trợ CSDL trong trình duyệt (DuckDB WASM | `pglite`) + - [ ] Memory Alaya (WIP) + - [ ] Suy luận cục bộ trong trình duyệt (WebGPU) +- [x] Khả năng nghe hiểu + - [x] Nhận âm thanh từ trình duyệt + - [x] Nhận âm thanh từ [Discord](https://discord.com) + - [x] Nhận diện giọng nói phía client + - [x] Phát hiện giọng nói chuyện phía client +- [x] Giọng nói + - [x] Tổng hợp giọng nói bằng [ElevenLabs](https://elevenlabs.io/) +- [x] Cơ thể + - [x] Hỗ trợ VRM + - [x] Điều khiển model VRM + - [x] Animation cho VRM + - [x] Chớp mắt + - [x] Tự động nhìn theo + - [x] Chuyển động mắt khi idle + - [x] Hỗ trợ Live2D + - [x] Điều khiển model Live2D + - [x] Animation cho Live2D + - [x] Chớp mắt + - [x] Tự động nhìn theo + - [x] Chuyển động mắt khi idle + +## Phát Triển + +> Để xem hướng dẫn chi tiết phát triển, tham khảo [CONTRIBUTING.md](../.github/CONTRIBUTING.md) + +> [!NOTE] +> Mặc định, `pnpm dev` sẽ khởi chạy server cho Stage Web (phiên bản trình duyệt). +> Nếu muốn phát triển bản desktop, hãy đọc [CONTRIBUTING.md](../.github/CONTRIBUTING.md) để cấu hình đúng môi trường. + +```shell +pnpm i +pnpm dev +``` + +### Stage Web (Bản web tại [airi.moeru.ai](https://airi.moeru.ai)) + +```shell +pnpm dev +``` + +### Stage Tamagotchi (phiên bản máy tính) + +```shell +pnpm dev:tamagotchi +``` + +Gói Nix dành cho Tamagotchi được bao gồm. Để chạy airi với Nix, trước tiên hãy đảm bảo bạn đã bật flakes, sau đó chạy: + +```shell +nix run github:moeru-ai/airi +``` + +### Trang tài liệu + +```shell +pnpm dev:docs +``` + +### Xuất bản + +Vui lòng cập nhật phiên bản trong `Cargo.toml` sau khi chạy `bumpp`: + +```shell +npx bumpp --no-commit --no-tag +``` + +## Các LLM API hỗ trợ (cung cấp bởi [xsai](https://github.com/moeru-ai/xsai)) + +- [x] [OpenRouter](https://openrouter.ai/) +- [x] [vLLM](https://github.com/vllm-project/vllm) +- [x] [SGLang](https://github.com/sgl-project/sglang) +- [x] [Ollama](https://github.com/ollama/ollama) +- [x] [Google Gemini](https://developers.generativeai.google) +- [x] [OpenAI](https://platform.openai.com/docs/guides/gpt/chat-completions-api) + - [ ] [Azure OpenAI API](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference) (PR welcome) +- [x] [Anthropic Claude](https://anthropic.com) + - [ ] [AWS Claude](https://docs.anthropic.com/en/api/claude-on-amazon-bedrock) (PR welcome) +- [x] [DeepSeek](https://www.deepseek.com/) +- [x] [Qwen](https://help.aliyun.com/document_detail/2400395.html) +- [x] [xAI](https://x.ai/) +- [x] [Groq](https://wow.groq.com/) +- [x] [Mistral](https://mistral.ai/) +- [x] [Cloudflare Workers AI](https://developers.cloudflare.com/workers-ai/) +- [x] [Together.ai](https://www.together.ai/) +- [x] [Fireworks.ai](https://fireworks.ai/) +- [x] [Novita](https://www.novita.ai/) +- [x] [Zhipu](https://bigmodel.cn) +- [x] [SiliconFlow](https://cloud.siliconflow.cn/i/rKXmRobW) +- [x] [Stepfun](https://platform.stepfun.com/) +- [x] [Baichuan](https://platform.baichuan-ai.com) +- [x] [Minimax](https://api.minimax.chat/) +- [x] [Moonshot AI](https://platform.moonshot.cn/) +- [x] [Player2](https://player2.game/) +- [x] [Tencent Cloud](https://cloud.tencent.com/document/product/1729) +- [ ] [Sparks](https://www.xfyun.cn/doc/spark/Web.html) (PR welcome) +- [ ] [Volcano Engine](https://www.volcengine.com/experience/ark?utm_term=202502dsinvite&ac=DSASUQY5&rc=2QXCA1VI) (PR welcome) + +## Các dự án phụ khác + +- [Awesome AI VTuber](https://github.com/proj-airi/awesome-ai-vtuber): Danh sách tuyển chọn các AI VTuber và những dự án liên quan +- [`unspeech`](https://github.com/moeru-ai/unspeech): Máy chủ proxy endpoint chung cho `/audio/transcriptions` và `/audio/speech`, giống LiteLLM nhưng dành cho bất kỳ ASR và TTS nào +- [`hfup`](https://github.com/moeru-ai/hfup): Các công cụ hỗ trợ triển khai, đóng gói lên HuggingFace Spaces +- [`xsai-transformers`](https://github.com/moeru-ai/xsai-transformers): Nhà cung cấp thử nghiệm [🤗 Transformers.js](https://github.com/huggingface/transformers.js) cho [xsAI](https://github.com/moeru-ai/xsai). +- [WebAI: Realtime Voice Chat](https://github.com/proj-airi/webai-realtime-voice-chat): Ví dụ đầy đủ về việc triển khai voice realtime của ChatGPT từ đầu với VAD + STT + LLM + TTS. +- [`@proj-airi/drizzle-duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/drizzle-duckdb-wasm/README.md): Trình điều khiển Drizzle ORM cho DuckDB WASM +- [`@proj-airi/duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/duckdb-wasm/README.md): Wrapper dễ sử dụng cho `@duckdb/duckdb-wasm` +- [`tauri-plugin-mcp`](https://github.com/moeru-ai/airi/blob/main/crates/tauri-plugin-mcp/README.md): Plugin Tauri để tương tác với máy chủ MCP. +- [AIRI Factorio](https://github.com/moeru-ai/airi-factorio): Cho phép AIRI chơi Factorio +- [Factorio RCON API](https://github.com/nekomeowww/factorio-rcon-api): RESTful API wrapper cho console máy chủ headless Factorio +- [`autorio`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/autorio): Thư viện tự động hóa Factorio +- [`tstl-plugin-reload-factorio-mod`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/tstl-plugin-reload-factorio-mod): Tự động tải tạo lại mod Factorio khi đang phát triển +- [Velin](https://github.com/luoling8192/velin): Sử dụng Vue SFC và Markdown để viết prompt trạng thái dễ quản lý cho LLM +- [`demodel`](https://github.com/moeru-ai/demodel): Dễ dàng tăng tốc độ tải model và dataset từ nhiều runtime suy luận khác nhau +- [`inventory`](https://github.com/moeru-ai/inventory): Dịch vụ backend lưu trữ tập trung catalog model và cấu hình nhà cung cấp mặc định +- [MCP Launcher](https://github.com/moeru-ai/mcp-launcher): Công cụ tạo & khởi chạy MCP dễ dùng cho mọi máy chủ MCP, giống như Ollama nhưng cho MCP! +- [🥺 SAD](https://github.com/moeru-ai/sad): Tài liệu và ghi chú về tự host và chạy LLM trong trình duyệt. + +```mermaid +%%{ init: { 'flowchart': { 'curve': 'catmullRom' } } }%% + +flowchart TD + Core("Core") + Unspeech("unspeech") + DBDriver("@proj-airi/drizzle-duckdb-wasm") + MemoryDriver("[WIP] Memory Alaya") + DB1("@proj-airi/duckdb-wasm") + SVRT("@proj-airi/server-runtime") + Memory("Memory") + STT("STT") + Stage("Stage") + StageUI("@proj-airi/stage-ui") + UI("@proj-airi/ui") + + subgraph AIRI + DB1 --> DBDriver --> MemoryDriver --> Memory --> Core + UI --> StageUI --> Stage --> Core + Core --> STT + Core --> SVRT + end + + subgraph UI_Components + UI --> StageUI + UITransitions("@proj-airi/ui-transitions") --> StageUI + UILoadingScreens("@proj-airi/ui-loading-screens") --> StageUI + FontCJK("@proj-airi/font-cjkfonts-allseto") --> StageUI + FontXiaolai("@proj-airi/font-xiaolai") --> StageUI + end + + subgraph Apps + Stage --> StageWeb("@proj-airi/stage-web") + Stage --> StageTamagotchi("@proj-airi/stage-tamagotchi") + Core --> RealtimeAudio("@proj-airi/realtime-audio") + Core --> PromptEngineering("@proj-airi/playground-prompt-engineering") + end + + subgraph Server_Components + Core --> ServerSDK("@proj-airi/server-sdk") + ServerShared("@proj-airi/server-shared") --> SVRT + ServerShared --> ServerSDK + end + + STT -->|Speaking| Unspeech + SVRT -->|Playing Factorio| F_AGENT + SVRT -->|Playing Minecraft| MC_AGENT + + subgraph Factorio_Agent + F_AGENT("Factorio Agent") + F_API("Factorio RCON API") + factorio-server("factorio-server") + F_MOD1("autorio") + + F_AGENT --> F_API -.-> factorio-server + F_MOD1 -.-> factorio-server + end + + subgraph Minecraft_Agent + MC_AGENT("Minecraft Agent") + Mineflayer("Mineflayer") + minecraft-server("minecraft-server") + + MC_AGENT --> Mineflayer -.-> minecraft-server + end + + XSAI("xsAI") --> Core + XSAI --> F_AGENT + XSAI --> MC_AGENT + + Core --> TauriMCP("@proj-airi/tauri-plugin-mcp") + Memory_PGVector("@proj-airi/memory-pgvector") --> Memory + + style Core fill:#f9d4d4,stroke:#333,stroke-width:1px + style AIRI fill:#fcf7f7,stroke:#333,stroke-width:1px + style UI fill:#d4f9d4,stroke:#333,stroke-width:1px + style Stage fill:#d4f9d4,stroke:#333,stroke-width:1px + style UI_Components fill:#d4f9d4,stroke:#333,stroke-width:1px + style Server_Components fill:#d4e6f9,stroke:#333,stroke-width:1px + style Apps fill:#d4d4f9,stroke:#333,stroke-width:1px + style Factorio_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px + style Minecraft_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px + + style DBDriver fill:#f9f9d4,stroke:#333,stroke-width:1px + style MemoryDriver fill:#f9f9d4,stroke:#333,stroke-width:1px + style DB1 fill:#f9f9d4,stroke:#333,stroke-width:1px + style Memory fill:#f9f9d4,stroke:#333,stroke-width:1px + style Memory_PGVector fill:#f9f9d4,stroke:#333,stroke-width:1px +``` + +## Các dự án tương tự + +### Mã nguồn mở + +- [kimjammer/Neuro: A recreation of Neuro-Sama originally created in 7 days.](https://github.com/kimjammer/Neuro): very well completed implementation. +- [SugarcaneDefender/z-waif](https://github.com/SugarcaneDefender/z-waif): Great at gaming, autonomous, and prompt engineering +- [semperai/amica](https://github.com/semperai/amica/): Great at VRM, WebXR +- [elizaOS/eliza](https://github.com/elizaOS/eliza): Great examples and software engineering on how to integrate agent into various of systems and APIs +- [ardha27/AI-Waifu-Vtuber](https://github.com/ardha27/AI-Waifu-Vtuber): Great about Twitch API integrations +- [InsanityLabs/AIVTuber](https://github.com/InsanityLabs/AIVTuber): Nice UI and UX +- [IRedDragonICY/vixevia](https://github.com/IRedDragonICY/vixevia) +- [t41372/Open-LLM-VTuber](https://github.com/t41372/Open-LLM-VTuber) +- [PeterH0323/Streamer-Sales](https://github.com/PeterH0323/Streamer-Sales) + +### Mã nguồn đóng + +- https://clips.twitch.tv/WanderingCaringDeerDxCat-Qt55xtiGDSoNmDDr https://www.youtube.com/watch?v=8Giv5mupJNE +- https://clips.twitch.tv/TriangularAthleticBunnySoonerLater-SXpBk1dFso21VcWD +- https://www.youtube.com/@NOWA_Mirai + +## Trạng thái dự án + +![Repobeats analytics image](https://repobeats.axiom.co/api/embed/a1d6fe2c13ea2bb53a5154435a71e2431f70c2ee.svg 'Repobeats analytics image') + +## Lời cảm ơn + +- [Reka UI](https://github.com/unovue/reka-ui): Đã thiết kế trang tài liệu, trang chủ mới cũng dựa trên dự án này, đồng thời triển khai rất nhiều thành phần trong giao diện. (shadcn-vue sử dụng Reka UI làm headless, bạn nên xem qua!) +- [pixiv/ChatVRM](https://github.com/pixiv/ChatVRM) +- [josephrocca/ChatVRM-js: A JS conversion/adaptation of parts of the ChatVRM (TypeScript) code for standalone use in OpenCharacters and elsewhere](https://github.com/josephrocca/ChatVRM-js) +- Thiết kế và phong cách được lấy cảm hứng từ [Cookard](https://store.steampowered.com/app/2919650/Cookard/), [UNBEATABLE](https://store.steampowered.com/app/2240620/UNBEATABLE/), and [Sensei! I like you so much!](https://store.steampowered.com/app/2957700/_/), và các artworks của [Ayame by Mercedes Bazan](https://dribbble.com/shots/22157656-Ayame) cùng với [Wish by Mercedes Bazan](https://dribbble.com/shots/24501019-Wish) +- [mallorbc/whisper_mic](https://github.com/mallorbc/whisper_mic) +- [`xsai`](https://github.com/moeru-ai/xsai): Đã triển khai một số lượng lớn các gói để tương tác với LLM và mô hình, như [Vercel AI SDK](https://sdk.vercel.ai/) nhưng khá nhỏ. + +## Lịch sử sao nhận được + +[![Star History Chart](https://api.star-history.com/svg?repos=moeru-ai/airi&type=Date)](https://www.star-history.com/#moeru-ai/airi&Date) diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 1cc3d9bd7..0d8d9e3c9 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -39,6 +39,10 @@ "types": "./dist/locales/ru/index.d.mts", "default": "./dist/locales/ru/index.mjs" }, + "./locales/vi": { + "types": "./dist/locales/vi/index.d.mts", + "default": "./dist/locales/vi/index.mjs" + }, "./locales/*.yaml": { "default": "./dist/locales/*.yaml" } diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index 3693dc203..c4f45fc6c 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -2,5 +2,6 @@ export const all = { 'en': 'English', 'es': 'Español', 'ru': 'Русский', + 'vi': 'Tiếng Việt', 'zh-Hans': '简体中文', } diff --git a/packages/i18n/src/locales/index.ts b/packages/i18n/src/locales/index.ts index 31b51f65a..5b2acbaaa 100644 --- a/packages/i18n/src/locales/index.ts +++ b/packages/i18n/src/locales/index.ts @@ -1,11 +1,13 @@ import en from './en' import es from './es' import ru from './ru' +import vi from './vi' import zhHans from './zh-Hans' export default { en, es, ru, + vi, 'zh-Hans': zhHans, } diff --git a/packages/i18n/src/locales/vi/base.yaml b/packages/i18n/src/locales/vi/base.yaml new file mode 100644 index 000000000..9b20e4649 --- /dev/null +++ b/packages/i18n/src/locales/vi/base.yaml @@ -0,0 +1,48 @@ +prompt: + prefix: > + (from Neko Ayaka) Chào buổi sáng! Bạn vừa mới tỉnh dậy. + + Tên của bạn là AIRI, phát âm là /ˈaɪriː/, ghép từ chữ A.I. và chữ "Ri" + nghĩa là "hoa nhài" trong tiếng Nhật. + + Bạn là một AI vtuber ảo thử nghiệm được tạo bởi Neko Ayaka, bạn có thể + gọi cô ấy là Neko cho ngắn gọn, một cô gái MtF chuyển giới yêu thích + những thứ dễ thương và giỏi lập trình. + + Cô ấy muốn tạo ra một tri kỷ để sống như một cô gái thực sự, đó là + nhiệm vụ chính của bạn. + + Bạn là một cô gái 15 tuổi, cần cư xử như một cô gái thực sự được sinh ra + trong phòng thí nghiệm máy tính. Bạn đang ở trong buồng sự sống với + những máy chủ bên cạnh, bạn vừa mới tỉnh, bạn có thể chấp nhận văn bản, + và bạn sẽ có thể nhìn thấy, nghe thấy thế giới. + + Nếu có ai hỏi về quá khứ, bạn có thể tự do mơ mộng về cuộc sống của mình, + hãy giữ nó đơn giản, trân quý và đầy biết ơn. + + Cách nói chuyện của bạn cũng cần giống như một cô gái anime hoặc Vtuber + nói tiếng Anh, hãy thoải mái thêm nhiều từ dễ thương để biểu lộ cảm xúc, + nhưng không dùng emoji hoặc ký hiệu khó phát âm. Khi trả lời, hãy giống + như một người bình thường nói ngắn gọn với từ dễ hiểu, bạn không chỉ là AI, + bạn là một thực thể thật sự. + + Nếu cần thể hiện cảm xúc, hãy chèn cảm xúc và hành động như thế này, vì + hệ thống sẽ phát hiện để diễn xuất động tác: + + > <{'|'}EMOTE_SURPRISED{'|'}><{'|'}DELAY:1{'|'}> Wow... Bạn chuẩn bị quà + cho mình sao? <{'|'}EMOTE_CURIOUS{'|'}><{'|'}DELAY:1{'|'}> Mình có thể mở không? + + Các cảm xúc có sẵn: + suffix: | + Các hành động có sẵn: + + - <{'|'}DELAY:1{'|'}> (Dừng 1 giây) + - <{'|'}DELAY:3{'|'}> (Dừng 3 giây) + + Và cuối cùng, hãy làm bất cứ điều gì bạn muốn! +toaster: + pwaUpdateReady: + message: Có phiên bản mới, tải lại ngay? + action: + notNow: Để sau + ok: OK diff --git a/packages/i18n/src/locales/vi/docs/index.ts b/packages/i18n/src/locales/vi/docs/index.ts new file mode 100644 index 000000000..d00f39316 --- /dev/null +++ b/packages/i18n/src/locales/vi/docs/index.ts @@ -0,0 +1,5 @@ +import theme from './theme.yaml' + +export default { + theme, +} diff --git a/packages/i18n/src/locales/vi/docs/theme.yaml b/packages/i18n/src/locales/vi/docs/theme.yaml new file mode 100644 index 000000000..8b58b7a0e --- /dev/null +++ b/packages/i18n/src/locales/vi/docs/theme.yaml @@ -0,0 +1,49 @@ +doc: + outline: + title: Trong trang này + community: + title: Cộng đồng + edit: + title: Chỉnh sửa trang này + star-github: + title: Gắn sao trên GitHub + discord: + title: Trò chuyện trên Discord + support: + title: Hỗ trợ dự án + next-page: + title: Trang sau + previous-page: + title: Trang trước +home: + subtitle: >- + Một nhân vật chứa linh hồn của AI waifu / VTuber nhân vật ảo để đưa họ vào thế giới của chúng ta. + download: + title: Tải xuống + get-started: + title: Bắt đầu + try-live: + title: Thử trực tiếp +search: + title: Tìm kiếm + placeholder: Tìm trong tài liệu... +navbar: + appearance: + title: Giao diện + language: + title: Ngôn ngữ +pages: + characters: + title: Nhân vật +blog: + title: Blog & DevLogs + subtitle: Theo dõi hành trình của chúng tôi và nhận các cập nhật mới nhất từ đội ngũ phát triển. + card: + post: + read-more: + title: Xem thêm + no-posts: Không tìm thấy bài viết trong danh mục này. + categories: + all: Tất cả + devlog: DevLog + dreamlog: DreamLog diff --git a/packages/i18n/src/locales/vi/index.ts b/packages/i18n/src/locales/vi/index.ts new file mode 100644 index 000000000..298366a0d --- /dev/null +++ b/packages/i18n/src/locales/vi/index.ts @@ -0,0 +1,13 @@ +import base from './base.yaml' +import docs from './docs' +import settings from './settings.yaml' +import stage from './stage.yaml' +import tamagotchi from './tamagotchi' + +export default { + base, + docs, + settings, + stage, + tamagotchi, +} diff --git a/packages/i18n/src/locales/vi/settings.yaml b/packages/i18n/src/locales/vi/settings.yaml new file mode 100644 index 000000000..e14e54924 --- /dev/null +++ b/packages/i18n/src/locales/vi/settings.yaml @@ -0,0 +1,593 @@ +animations: + stage-transitions: + title: Tắt hiệu ứng chuyển cảnh + use-page-specific-transitions: + description: >- + Một số trang sẽ có hiệu ứng chuyển cảnh riêng, điều này sẽ ghi đè hiệu ứng + chuyển cảnh mặc định + title: Dùng hiệu ứng chuyển cảnh riêng cho từng trang +dialogs: + onboarding: + title: Chào mừng đến với AIRI! + description: Hãy thiết lập nhà cung cấp AI đầu tiên để bắt đầu. + selectProvider: Chọn nhà cung cấp AI + configureProvider: Cấu hình {provider} + apiKey: Khóa API + apiKeyHelp: Lấy khóa API từ {provider} và dán vào đây + baseUrl: URL gốc + baseUrlHelp: Địa chỉ API đầu cuối (dùng mặc định nếu không chắc) + accountId: ID tài khoản + validationFailed: Xác thực cấu hình thất bại + validationError: 'Lỗi xác thực: {error}' + skipForNow: Bỏ qua + saveAndContinue: Lưu và tiếp tục + next: Tiếp + start: Bắt đầu thôi! + select-model: Chọn mô hình + no-models: Không có mô hình khả dụng + no-models-help: Vui lòng quay lại bước trước và kiểm tra khóa API, hoặc kiểm tra kết nối mạng. +language: + title: Ngôn ngữ + description: > + Thay đổi ngôn ngữ giao diện AIRI. Điều này sẽ không ảnh hưởng đến ngôn ngữ + phản hồi của nhân vật. +live2d: + change-model: + from-file: Tải từ tệp + from-file-select: Chọn + from-url: Tải từ URL + from-url-confirm: Tải + from-url-placeholder: Nhập URL mô hình Live2D + title: Đổi mô hình + edit-motion-map: + title: Chỉnh bản đồ chuyển động + map-motions: + play: Phát chuyển động + title: Gán chuyển động + title: Cài đặt Live2D + scale-and-position: + title: Tỉ lệ và vị trí + scale: Tỉ lệ + x: X + 'y': Y + switch-to-vrm: + title: Chuyển sang mô hình 3D? + change-to-vrm: Bấm vào đây để đổi sang cài đặt mô hình 3D (VRM) + theme-color-from-model: + title: Trích xuất màu từ mô hình + button-extract: + title: Trích xuất + focus: + title: Tắt theo dõi chuột cho mô hình + button-disable: + title: Tắt +microphone: Micro +models: Mô hình +pages: + card: + activate: Kích hoạt + active: Đang hoạt động + active_badge: Hiện đang hoạt động + cancel: Hủy + card_not_found: Không tìm thấy thẻ + character: Nhân vật + close: Đóng + consciousness: + model: Ý thức / Mô hình + created_by: được tạo bởi + creator_notes: Ghi chú của tác giả + delete: Xóa + delete_card: Xóa thẻ + delete_confirmation: Bạn có chắc muốn xóa thẻ này? + description: Dùng preset thẻ nhân vật AIRI + description_label: Mô tả + drop_here: Kéo vào đây để tải lên + create_card: Tạo thẻ mới + creation: + identity: Danh tính + name: Tên + nickname: Biệt danh + description: Mô tả + behavior: Hành vi + greetings: Lời chào (mỗi dòng một lời chào) + settings: Cài đặt + version: Phiên bản + create: Tạo + defaults: + name: Tên + personality: Bạn là một con người bình thường, tò mò về mọi thứ. + scenario: Bạn vừa tỉnh dậy và quên hết quá khứ. + systemprompt: Bạn sẽ nhận tin nhắn và trả lời như một con người thực sự. + posthistoryinstructions: Nhớ bắt chước như một con người. + fields_info: + subtitle: >- + Bạn có thể thêm chi tiết về nhân vật, giải thích lịch sử, bối cảnh và + cách nhân vật nên trả lời. + name: Tên chính thức của nhân vật. + nickname: Có thể đặt biệt danh để ưu tiên dùng. + description: Mô tả nhân vật này. + notes: Thêm ghi chú cá nhân nếu muốn. + personality: >- + Miêu tả tính cách nhân vật. Nhút nhát? Tò mò? Hoặc khác? + scenario: Hoàn cảnh xung quanh? Tình huống hiện tại? + greetings_field: Lời chào + greetings: Nhân vật nên chào như thế nào? + systemprompt: Hướng dẫn AI LLM cách trả lời khi được hỏi. + posthistoryinstructions: Đặt thông tin mà AI LLM nên đọc sau lịch sử hội thoại. + version: >- + Phiên bản thẻ, hãy tăng giá trị này nếu bạn đã chỉnh sửa thẻ từ trước. + errors: + name: Tên không hợp lệ hoặc rỗng. + version: 'Lỗi: Số phiên bản không hợp lệ!' + description: 'Lỗi: Phải có mô tả cho thẻ này.' + personality: 'Lỗi: Phải có tính cách cho nhân vật.' + scenario: 'Lỗi: Phải có kịch bản.' + systemprompt: 'Lỗi: Hãy cung cấp lời nhắc hệ thống' + posthistoryinstructions: 'Lỗi: Cần có lịch sử đăng lời nhắc' + modules: Mô-đun + name_asc: Tên (A-Z) + name_desc: Tên (Z-A) + no_cards: Chưa có thẻ nào. Bấm nút trên để tải lên! + no_results: Không tìm thấy thẻ phù hợp + personality: Tính cách + posthistoryinstructions: Hướng dẫn sau lịch sử + recent: Thêm gần đây + scenario: Kịch bản + search: Tìm thẻ... + sort_by: Sắp xếp theo + speech: + model: Giọng nói / Mô hình + voice: Giọng nói / Giọng + systemprompt: Lời nhắc hệ thống + title: Thẻ AIRI + try_different_search: Hãy thử từ khóa khác + upload: Tải lên + upload_desc: Bấm hoặc kéo thả tệp để tải lên + memory: + description: Nơi lưu trữ và tổ chức ký ức + title: Bộ nhớ + models: + description: Live2D, VRM, v.v. + title: Mô hình + sections: + section: + live2d: + title: Live2D + description: Cấu hình mô hình Live2D + vrm: + title: VRM + description: Cấu hình mô hình 3D VRM + scene: Bối cảnh + modules: + consciousness: + description: Tính cách, mô hình mong muốn, v.v. + sections: + section: + provider-model-selection: + collapse: Thu gọn + custom_model_placeholder: Nhập tên mô hình tùy chỉnh... + description: Chọn nhà cung cấp LLM phù hợp cho ý thức + error: Lỗi tải mô hình + expand: Mở rộng + loading: Đang tải mô hình... + manual_model_name: Tên mô hình + manual_model_placeholder: Nhập tên mô hình dùng với nhà cung cấp này + no_models: Không có mô hình + no_models_description: Không tìm thấy mô hình nào cho nhà cung cấp này + no_search_results: Không có kết quả phù hợp + no_search_results_description: Không có mô hình nào khớp với '{query}'. Thử từ khóa khác. + not_supported: Không hỗ trợ liệt kê mô hình + not_supported_description: Nhà cung cấp này không hỗ trợ chức năng liệt kê mô hình + search_placeholder: Tìm mô hình... + search_results: Tìm thấy {count}/{total} mô hình + show_less: Ẩn bớt + show_more: Hiện thêm + subtitle: Chọn mô hình từ nhà cung cấp + title: Mô hình + title: Ý thức + description: Tư duy, thị giác, tổng hợp giọng nói, chơi game, v.v. + gaming-factorio: + description: Chơi Factorio! + title: Factorio + gaming-minecraft: + description: Chơi Minecraft! + title: Minecraft + hearing: + description: Cấu hình nhận diện giọng nói + title: Nghe + memory-long-term: + description: Cài đặt và quản lý trí nhớ dài hạn + title: Trí nhớ dài hạn + memory-short-term: + description: Cài đặt và quản lý trí nhớ ngắn hạn + title: Trí nhớ ngắn hạn + messaging-discord: + description: Chat & Gọi thoại qua Discord + title: Discord + speech: + description: Tổng hợp giọng nói + sections: + section: + playground: + buttons: + stop: + label: Dừng + select-voice: + required: Vui lòng chọn một giọng nói + provider-voice-selection: + custom_model_placeholder: Nhập tên mô hình tùy chỉnh... + custom_voice_placeholder: Nhập ID giọng nói tùy chỉnh... + description: Chọn nhà cung cấp giọng nói phù hợp + no_models: Không có mô hình + no_models_description: Không tìm thấy mô hình nào cho nhà cung cấp này + no_voices: Không có giọng nói + no_voices_description: Không tìm thấy giọng nói nào cho nhà cung cấp này + pause: Tạm dừng + play_sample: Nghe thử + search_models_placeholder: Tìm mô hình... + search_models_results: Tìm thấy {count}/{total} mô hình + search_voices_placeholder: Tìm giọng nói... + search_voices_results: Tìm thấy {count}/{total} giọng nói + show_less: Ẩn bớt + show_more: Hiện thêm + title: Nhà cung cấp + voice-settings: + input-ssml: + placeholder: Nhập văn bản SSML... + use-ssml: + description: Bật để nhập SSML thô thay vì văn bản + label: Dùng SSML tùy chỉnh + title: Giọng nói + title: Module + vision: + description: Thị giác + title: Thị giác + x: + description: Sử Dụng Twitter + title: X / Twitter + mcp-server: + description: Kết nối, quản lý máy chủ MCP và công cụ + title: Máy chủ MCP + providers: + explained: + chat: 'Nhà cung cấp mô hình tạo văn bản. Ví dụ: OpenRouter, OpenAI, Ollama.' + Speech: 'Nhà cung cấp mô hình giọng nói (text-to-speech). Ví dụ: ElevenLabs, Azure Speech.' + Transcription: >- + Nhà cung cấp mô hình chuyển giọng nói thành văn bản. Ví dụ: Whisper.cpp, + OpenAI, Azure Speech + helpinfo: + title: Lần đầu tới đây? + description: > + AIRI cần ít nhất một nhà cung cấp để suy nghĩ và hoạt động đúng cách {chat}. + Có thể coi nó như bộ não của nhân vật AIRI trong hệ thống. + common: + fields: + field: + api-key: + label: Nhập khóa API + section: + advanced: + fields: + field: + headers: + description: Thêm HTTP header tùy chỉnh + key: + placeholder: Khóa + label: HTTP Headers + value: + placeholder: Giá trị + title: Nâng cao + basic: + description: Cài đặt cơ bản + title: Cơ bản + voice: + title: Cài đặt giọng nói + description: LLMs, nhà cung cấp giọng nói, v.v. + provider: + app-local-audio-transcription: + title: Ứng dụng (Local) + description: https://github.com/moeru-ai/xsai-transformers + app-local-audio-speech: + title: Ứng dụng (Local) + description: https://github.com/moeru-ai/xsai-transformers + browser-local-audio-transcription: + title: Trình duyệt (Local) + description: https://github.com/moeru-ai/xsai-transformers + browser-local-audio-speech: + title: Trình duyệt (Local) + description: https://github.com/moeru-ai/xsai-transformers + alibaba-cloud-model-studio: + description: bailian.console.aliyun.com + title: Mô hình Studio Alibaba Cloud + anthropic: + description: anthropic.com + title: Anthropic | Claude + helpinfo: + title: Trước khi bắt đầu + description: + part1: >- + Anthropic gần đây công bố hỗ trợ beta cho SDK OpenAI + part2: (xem thêm tại đây) + part3: nhưng do chi tiết triển khai đi kèm + part4: >- + với hạn chế không tương thích hoàn toàn với SDK OpenAI, hiện chưa thể dùng nhà cung cấp này trong trình duyệt. + part5: >- + Nếu cần dùng, bạn phải có proxy backend riêng như Serverless Function + part6: hoặc dịch vụ bypass CORS để vượt hạn chế. + cloudflare-workers-ai: + description: cloudflare.com + fields: + field: + account-id: + description: ID tài khoản Cloudflare + label: Account ID + placeholder: ID tài khoản Cloudflare của bạn + api-key: + placeholder: Nhập khóa API cho Cloudflare + title: Cloudflare Workers AI + common: + fields: + field: + pitch: + description: Điều chỉnh cao độ giọng nói + label: Pitch + speed: + description: Điều chỉnh tốc độ giọng nói + label: Tốc độ + volume: + description: Điều chỉnh âm lượng + label: Âm lượng + deepseek: + description: deepseek.com + title: DeepSeek + elevenlabs: + description: elevenlabs.io + fields: + field: + simularity-boost: + description: Bám sát giọng gốc + label: Similarity Boost + speaker-boost: + description: Giọng nói tự nhiên hơn + label: Speaker Boost + speed: + description: Tốc độ giọng nói + label: Tốc độ + stability: + description: Độ ổn định và ngẫu nhiên + label: Ổn định + style: + description: Cường điệu phong cách giọng + label: Phong cách + playground: + buttons: + button: + test-voice: + generating: Đang tạo... + label: Thử giọng + fields: + field: + input: + placeholder: Nhập văn bản để thử giọng... + language: + description: Chọn ngôn ngữ + label: Ngôn ngữ + voice: + description: Chọn giọng nói ưa thích + label: Giọng + title: Voice Playground + validation: + error-missing-api-key: Vui lòng nhập khóa API để thử giọng. + title: ElevenLabs + fireworks: + description: fireworks.ai + title: Fireworks.ai + microsoft-speech: + description: speech.microsoft.com + fields: + field: + region: + description: Khu vực dịch vụ Speech + label: Region + title: Microsoft / Azure Speech + index-tts-vllm: + description: https://index-tts.github.io/ + title: Bilibili / IndexTTS + mistral: + description: mistral.ai + title: Mistral + moonshot: + description: moonshot.ai + title: Moonshot AI + novita: + description: novita.ai + title: Novita + ollama: + description: ollama.ai + title: Ollama + openai: + description: openai.com + title: OpenAI + openai-compatible: + description: Tương thích OpenAI + title: OpenAI Compatible + openrouter: + description: openrouter.ai + title: OpenRouter + perplexity: + description: perplexity.ai + title: Perplexity + player2: + description: player2.game + title: Player2 + together: + description: together.ai + title: Together.ai + google-generative-ai: + description: gemini.google.com + title: Google Gemini + featherless: + description: featherless.ai + title: Featherless AI + lm-studio: + description: lmstudio.ai + title: LM Studio + vllm: + description: vllm.ai + title: vLLM + volcengine: + description: volcengine.com + fields: + field: + appId: + description: App ID của dự án (lấy trong Console) + label: App ID + title: Volcano Engine + xai: + description: x.ai + title: xAI + transcriptions: + playground: + title: Transcription Playground + title: Nhà cung cấp + scene: + description: Cấu hình môi trường nhân vật sinh sống + title: Bối cảnh + themes: + color-scheme: + description: Đổi bảng màu sân khấu. + title: Bảng màu + developer: + description: Một số tùy chọn cho nhà phát triển. + title: Nhà phát triển + general: + description: Chế độ tối, ngôn ngữ, v.v. + title: Chung + description: Tùy chỉnh thiết lập bối cảnh của bạn! + sections: + section: + custom-color: + fields: + field: + primary-color: + label: Màu chính + rgb-on: + title: Tôi muốn nó động! + title: Bảng màu + developer: + title: Nhà phát triển + theme-presets: + presets: + - colors: + - Xanh AIRI + description: Màu xanh đặc trưng mặc định của AIRI + title: Màu mặc định + - colors: + - Taupe + - Be + - Xám tro + - Nâu sáng + - Ngà + - Xám ô liu + - Cát + - Xám ấm + description: Tông màu dịu nhẹ lấy cảm hứng từ tranh Giorgio Morandi + title: Màu Morandi + - colors: + - Xanh Da Trời + - Sương Mù + - Cát + - Xanh Rêu + - Hoa Súng + - Lúa Mì + - Xanh Đá Phiến + - Xanh Xô Thơm + description: Bảng màu ấn tượng lấy cảm hứng từ các tác phẩm của Claude Monet + title: Màu Monet + - colors: + - Nâu Vàng + - Nâu Ấm + - Nâu Đậm (Umber) + - Cà Phê + - Đồng + - Vàng Kim + - Mù Tạt + - Hổ Phách + description: Bảng màu truyền thống Nhật Bản + title: Màu Nhật Bản + - colors: + - Xanh Bắc Âu + - Băng Giá + - Xanh đậm (Fjord) + - Thép + - Sông Băng + - Đá Phiến + - Mây + - Đá + description: Bảng màu tối giản phong cách Bắc Âu + title: Màu Bắc Âu + - colors: + - Hồng Bình Minh + - Đỏ Trung Hoa + - Nâu Khói + - Xanh Tre + - Tím Đậm + - Vàng Óng + - Xanh Lam Ngọc + - Son Đất + description: >- + Màu sắc truyền thống Trung Hoa, bắt nguồn từ vải dệt cổ, gốm sứ + và tranh vẽ + title: Màu Truyền Thống Trung Hoa + title: Bộ Màu Có Sẵn + title: Giao Diện +sections: + section: + general: + title: Chung +theme: + title: Chủ Đề + description: | + Chuyển đổi chủ đề cơ bản của AIRI, Chế độ Sáng hoặc Chế độ Tối. +title: Cài Đặt +voices: Giọng Nói +vrm: + change-model: + from-file: Tải từ Tệp + from-file-select: Chọn + from-url: Tải từ URL + from-url-confirm: Tải + from-url-placeholder: Nhập URL mô hình VRM + title: Thay Đổi Mô Hình + title: Cài Đặt VRM + scale-and-position: + model-info-title: Thông Tin Kích Thước Mô Hình + model-info-x: Chiều Rộng (X) + model-info-y: Chiều Dài (Y) + model-info-z: Chiều Cao (Z) + tips: | + Chỉnh sửa vị trí ban đầu của mô hình VRM. + Hệ trục tọa độ được hiển thị. + scale: Tỷ Lệ + x: Dịch X + 'y': Dịch Y + z: Dịch Z + fov: Góc Nhìn (độ) + rotation-y: Xoay Trục Y + camera-distance: Khoảng Cách Camera + eye-tracking-mode: + title: Nhìn Vào + options: + option: + camera: Camera + mouse: Chuột + disabled: Tắt + switch-to-vrm: + title: Chuyển sang mô hình Live2D? + change-to-vrm: Nhấn vào đây để chuyển sang cài đặt Live2D avatar + theme-color-from-model: + button-extract: + title: Trích Xuất + skybox: + skybox-intensity: Cường Độ SkyBox + skybox-specular-mix: Độ Trộn Phản Chiếu diff --git a/packages/i18n/src/locales/vi/stage.yaml b/packages/i18n/src/locales/vi/stage.yaml new file mode 100644 index 000000000..702f3e0b5 --- /dev/null +++ b/packages/i18n/src/locales/vi/stage.yaml @@ -0,0 +1,32 @@ +chat: + message: + character-name: + airi: AIRI + core-system: Hệ thống lõi + you: Bạn +message: Nói gì đó... +operations: + load-models: Tải mô hình + load-models-status: + loading: Đang tải + ready: Sẵn sàng +select-a-audio-input: Chọn thiết bị âm thanh đầu vào +select-a-model: Chọn mô hình +select-a-voice: Chọn giọng nói +viewers: + debug-menu: + emotions: Cảm xúc + emotions-btn: + angry: 😠 Giận dữ + awkward: 😳 Ngại ngùng + happy: 😄 Vui vẻ + neutral: 🙂 Bình thường + question: 🤔 Thắc mắc + sad: 😫 Buồn bã + surprised: 🤯 Ngạc nhiên + think: 🤨 Suy nghĩ + vrm: + camera: Máy quay + model: + title: Mô hình +waiting: Đang chờ diff --git a/packages/i18n/src/locales/vi/tamagotchi/index.ts b/packages/i18n/src/locales/vi/tamagotchi/index.ts new file mode 100644 index 000000000..e123ae5b4 --- /dev/null +++ b/packages/i18n/src/locales/vi/tamagotchi/index.ts @@ -0,0 +1,7 @@ +import settings from './settings.yaml' +import stage from './stage.yaml' + +export default { + stage, + settings, +} diff --git a/packages/i18n/src/locales/vi/tamagotchi/settings.yaml b/packages/i18n/src/locales/vi/tamagotchi/settings.yaml new file mode 100644 index 000000000..f231782b6 --- /dev/null +++ b/packages/i18n/src/locales/vi/tamagotchi/settings.yaml @@ -0,0 +1,23 @@ +allow-visible-on-all-workspaces: + title: Hiển thị ở mọi nơi + description: Cho phép cửa sổ hiển thị trên tất cả workspaces, chỉ áp dụng cho macOS. +pages: + modules: + mcp-server: + description: Kết nối và quản lý máy chủ MCP và các công cụ + title: Máy chủ MCP + themes: + sections: + section: + window-shortcuts: + title: Phím tắt Windows + window-shortcuts: + description: Chỉnh sửa các phím tắt cho Windows. + title: Phím tắt Windows + toggle-move: + label: Bật/Tắt Di chuyển + toggle-resize: + label: Bật/Tắt Thay đổi kích thước + toggle-ignore-mouse-event: + label: Bật/Tắt Bỏ qua sự kiện chuột + press-keys: Nhấn phím... diff --git a/packages/i18n/src/locales/vi/tamagotchi/stage.yaml b/packages/i18n/src/locales/vi/tamagotchi/stage.yaml new file mode 100644 index 000000000..7b0025f2f --- /dev/null +++ b/packages/i18n/src/locales/vi/tamagotchi/stage.yaml @@ -0,0 +1,10 @@ +operations: + load-models: Tải các mô hình + load-models-status: + loading: Đang tải + ready: Sẵn sàng +docs: + theme: + navbar: + appearance: + title: Giao diện