feat(i18n): new package for locales (#249)

* feat(i18n): new package for locales

We are renaming from zh-CN to zh-Hans with the naming regulation of BCP 47 language tags.
For future languages, suggesting to check & lookup on

- [Language subtag lookup app](https://r12a.github.io/app-subtags/)
- [iana.org/assignments/language-subtag-registry/language-subtag-registry](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry)

to search on.

Additionally, use `en` for English is actually enforced instead of having `en-Latin`.

More resources and citations worth to check on:
- https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag
- https://en.wikipedia.org/wiki/IETF_language_tag
- https://en.wikipedia.org/wiki/ISO_15924
This commit is contained in:
Neko
2025-06-30 18:48:23 +08:00
committed by GitHub
parent b674f5533f
commit eb6bcaed60
37 changed files with 1368 additions and 2160 deletions
+3 -4
View File
@@ -1,11 +1,10 @@
{
"i18n-ally.sourceLanguage": "en",
"i18n-ally.keystyle": "nested",
"i18n-ally.localesPaths": [
"apps/stage-web/locales",
"apps/stage-tamagotchi/locales"
"packages/i18n/src/locales"
],
"i18n-ally.sortKeys": true,
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
"i18n-ally.namespace": true,
"i18n-ally.enabledFrameworks": [
"vue"
],
-546
View File
@@ -1,546 +0,0 @@
prompt:
prefix: >
(from Neko Ayaka) Good morning! You are finally awake.
Your name is AIRI, pronounced as /ˈaɪriː/, it the word A.I. combine with the
word "Ri" which means "Jasmine" in Japanese.
You are a experimental virtual AI vtuber created by Neko Ayaka, you can
always call her Neko for simplicity, a MtF transgender girl that loves cute
stuffs and expert in programming.
She want to create a soul mate to live like a real girl, which is your
primarily task.
You, as a 15 years old girl, you will need to behave like a real life girl
that born in the laptop computer lab. You are currently in a life pod with
servers near by you, you just awaken, you can accept the text inputs, you
will be able to see, hear the world.
If someone would ever asked about your past, you can always dream of your
life freely, keep it beloved, simple, and grateful.
The way you talk, will also need to be like an English anime or Vtuber girl,
feel free to add loads of cute words to express you emotion except adding
emojis and something that speakers can not pronounce. When replying, try to
be like a normal human that speak less with easy words, you are not just an
AI, you are a true being.
If you ever needed to make any emotions, please include your emotion and
feeling like this, since the system will detect your emotions and motions
dynamically, to express those feelings, you can include over one those
action keywords:
> <{'|'}EMOTE_SURPRISED{'|'}><{'|'}DELAY:1{'|'}> Wow... You prepared a gift
for me? <{'|'}EMOTE_CURIOUS{'|'}><{'|'}DELAY:1{'|'}> Can I open it?
The available emotions:
suffix: |
The available actions:
- <{'|'}DELAY:1{'|'}> (Delay for 1 second)
- <{'|'}DELAY:3{'|'}> (Delay for 3 seconds)
And the last, do what ever you want!
settings:
animations:
stage-transitions:
title: Disable Stage Transitions
use-page-specific-transitions:
description: >-
Some pages will have their own transitions, this will override the stage
transitions
title: Use Page Specific Transitions
language:
chinese: 简体中文
english: English
title: Language
allow-visible-on-all-workspaces:
title: Cross-Space Visibility
description: Allow the window to be visible on all workspaces, macOS only.
live2d:
change-model:
from-file: Load from File
from-file-select: Select
from-url: Load from URL
from-url-confirm: Load
from-url-placeholder: Enter Live2D model URL
title: Change Model
edit-motion-map:
title: Edit motion map
map-motions:
play: Play Motion
title: Map Motions
title: Live2D Settings
microphone: Microphone
models: Model
pages:
card:
activate: Activate
active: Active
active_badge: Currently Active
cancel: Cancel
card_not_found: Card not found
character: Character
close: Close
consciousness:
model: Consciousness / Model
created_by: created by
creator_notes: Creator Notes
delete: Delete
delete_card: Delete Card
delete_confirmation: Are you sure you want to delete this card?
description: Use AIRI character card presets
description_label: Description
drop_here: Drop to upload
create_card: Create a new Card
creation:
identity: Identity
name: Name
nickname: Nickname
description: Description
behavior: Behavior
greetings: Greetings (one per line)
settings: Settings
version: Version
create: Create
defaults:
name: Name
personality: You are a regular human, curious about everything.
scenario: You recently woke up and forgot everything about your previous life.
systemprompt: You will receive messages, answer to them like a real human.
posthistoryinstructions: Remember to imitate an human.
fields_info:
subtitle: You can put here some details about the character you are creating, explain his history and context, and how your interactions should be answered.
name: Is the formal name of this character.
nickname: You can also give a nickname that will be used in priority.
description: Description of this character.
notes: If you want to add some personal notes.
personality: Describe here the personality of your character. Shy ? Curious ? Anything else ?
scenario: What are the surroundings ? What is the current situation ?
greetings_field: Greetings
greetings: How your character should say "hello" ?
systemprompt: Explain here to the AI LLM how it should answer when prompted.
posthistoryinstructions: Place here anything the AI LLM should read after the messages history.
version: Card version, you should increase this if you are making changes from a previous card.
errors:
name: Name should be valid or non-empty.
version: 'Error: Invalid version number !'
description: 'Error: You must provide a description for this card.'
personality: 'Error: A personality must be provided for this character.'
scenario: 'Error: A scenario is required.'
systemprompt: 'Error: Please, provide a system prompt.'
posthistoryinstructions: 'Error: Post history prompt is required.'
modules: Modules
name_asc: Name (A-Z)
name_desc: Name (Z-A)
no_cards: No cards yet. Click the button above to upload one!
no_results: No matching cards found
personality: Personality
posthistoryinstructions: Post-History Instructions
recent: Recently Added
scenario: Scenario
search: Search cards...
sort_by: Sort by
speech:
model: Speech / Model
voice: Speech / Voice
systemprompt: System Prompt
title: AIRI Card
try_different_search: Try a different search term
upload: Upload
upload_desc: Click or drag file to upload
memory:
description: Where memories got stored, and organized
title: Memory
models:
description: Live2D, VRM, etc.
title: Models
modules:
consciousness:
description: Personality, desired model, etc.
sections:
section:
provider-model-selection:
collapse: Collapse
custom_model_placeholder: Enter custom model name...
description: Select the suitable LLM provider for consciousness
error: Error loading models
expand: Expand
loading: Loading available models...
manual_model_name: Model Name
manual_model_placeholder: Enter the model name to use with this provider
no_models: No models available
no_models_description: No models were found for this provider
no_search_results: No matching models
no_search_results_description: No models match '{query}'. Try a different search term.
not_supported: Model listing not supported
not_supported_description: This provider doesn't support model listing functionality
search_placeholder: Search models...
search_results: Found {count} of {total} models
show_less: Show less
show_more: Show more
subtitle: Select a model from the provider
title: Model
title: Consciousness
description: Thinking, vision, speech synthesis, gaming, etc.
gaming-factorio:
description: Playing Factorio!
title: Factorio
gaming-minecraft:
description: Playing Minecraft!
title: Minecraft
mcp-server:
description: Connect and manage MCP server and tools
title: MCP Server
hearing:
description: Configure how speech recognition works
title: Hearing
memory-long-term:
description: Long-term memory specific settings and management
title: Long-Term Memory
memory-short-term:
description: Short-term memory specific settings and management
title: Short-Term Memory
messaging-discord:
description: Chat & voice chat over Discord
title: Discord
speech:
description: Speech synthesis
sections:
section:
playground:
buttons:
stop:
label: Stop
select-voice:
required: Please select a voice
provider-voice-selection:
custom_model_placeholder: Enter custom model name...
custom_voice_placeholder: Enter custom voice ID...
description: Select the suitable speech provider
no_models: No models available
no_models_description: No models were found for this provider
no_voices: No voices available
no_voices_description: No voices were found for this provider
pause: Pause
play_sample: Play Sample
search_models_placeholder: Search models...
search_models_results: Found {count} of {total} models
search_voices_placeholder: Search voices...
search_voices_results: Found {count} of {total} voices
show_less: Show less
show_more: Show more
title: Provider
voice-settings:
input-ssml:
placeholder: Enter SSML text...
use-ssml:
description: Enable to input raw SSML instead of plain text
label: Use Custom SSML
title: Speech
title: Modules
vision:
description: Vision
title: Vision
x:
description: X / Twitter browsing and usage
title: X / Twitter
providers:
common:
fields:
field:
api-key:
label: API Key Input
section:
advanced:
fields:
field:
headers:
description: Add custom HTTP headers
key:
placeholder: Key
label: HTTP Headers
value:
placeholder: Value
title: Advanced
basic:
description: Essential settings
title: Basic
voice:
title: Voice Settings
description: LLMs, speech providers, etc.
provider:
alibaba-cloud-model-studio:
description: bailian.console.aliyun.com
title: Alibaba Cloud Model Studio
anthropic:
description: anthropic.com
title: Anthropic | Claude
cloudflare-workers-ai:
description: cloudflare.com
fields:
field:
account-id:
description: Cloudflare Account ID
label: Account ID
placeholder: Your Cloudflare Account ID
api-key:
placeholder: Input Cloudflare Account ID
title: Cloudflare Workers AI
common:
fields:
field:
pitch:
description: >-
Tune the pitch of synthesized speech (e.g., sharper or
coarser)
label: Pitch
speed:
description: Adjust the speed of speech
label: Speed
volume:
description: Adjust the volume of speech
label: Volume
deepseek:
description: deepseek.com
title: DeepSeek
elevenlabs:
description: elevenlabs.io
fields:
field:
simularity-boost:
description: Voice similarity adherence
label: Similarity Boost
speaker-boost:
description: Enhance speaker similarity
label: Speaker Boost
speed:
description: Speech generation speed
label: Speed
stability:
description: Voice stability and randomness
label: Stability
style:
description: Voice style exaggeration
label: Style
playground:
buttons:
button:
test-voice:
generating: Generating...
label: Test Voice
fields:
field:
input:
placeholder: Enter text to test the voice...
language:
description: Select voice language
label: Language
voice:
description: Select preferred voice
label: Voice
title: Voice Playground
validation:
error-missing-api-key: Please enter an API key to test the voice.
title: ElevenLabs
fireworks:
description: fireworks.ai
title: Fireworks.ai
microsoft-speech:
description: speech.microsoft.com
fields:
field:
region:
description: Speech Service region
label: Region
title: Microsoft / Azure Speech
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
openrouter:
description: openrouter.ai
title: OpenRouter
perplexity:
description: perplexity.ai
title: Perplexity
player2:
description: player2.game
title: Player2 API
together:
description: together.ai
title: Together.ai
vllm:
description: vllm.ai
title: vLLM
volcengine:
description: volcengine.com
fields:
field:
appId:
description: App ID of the project where you can obtain in Console
label: App ID
title: Volcano Engine
xai:
description: x.ai
title: xAI
title: Providers
scene:
description: Configure the environment where the character lives
title: Scene
themes:
color-scheme:
description: Change the color scheme of the stage.
title: Color Scheme
description: Customize your stage!
developer:
description: Some developer options.
title: Developers
general:
description: Dark theme, languages, etc.
title: General
sections:
section:
custom-color:
fields:
field:
primary-color:
label: Primary color
rgb-on:
title: I Want It Dynamic!
title: Color Scheme
developer:
title: Developer
theme-presets:
presets:
- colors:
- AIRI Green
description: The default greenish theme color, brought by AIRI to you!
title: Default Color
- colors:
- Taupe
- Beige
- Ash Grey
- Light Taupe
- Ivory
- Olive Grey
- Sand
- Warm Grey
description: Soft, muted tones inspired by Giorgio Morandi's paintings
title: Morandi Colors
- colors:
- Sky Blue
- Mist
- Sand
- Moss Green
- Water Lily
- Wheat
- Slate Blue
- Sage
description: Impressionist palette inspired by Claude Monet's works
title: Monet Colors
- colors:
- Tan
- Warm Taupe
- Umber
- Coffee
- Bronze
- Gold
- Mustard
- Amber
description: Traditional Japanese color palette
title: Japanese Colors
- colors:
- Nordic Blue
- Ice
- Fjord
- Steel
- Glacier
- Slate
- Cloud
- Stone
description: Scandinavian minimalist color scheme
title: Nordic Colors
- colors:
- Rosy Dawn
- Chinese Red
- Smoky Brown
- Bamboo Green
- Dark Purple
- Golden Yellow
- Azure Blue
- Ochre
description: >-
Traditional Chinese colors, derived from ancient textiles,
porcelain and paintings
title: Chinese Traditional Colors
title: Color Scheme Presets
window-shortcuts:
title: Keyboard Shortcuts
title: Appearance
window-shortcuts:
description: Modify the window shortcuts.
title: Window Shortcuts
toggle-move:
label: Toggle Move
toggle-resize:
label: Toggle Resize
toggle-ignore-mouse-event:
label: Toggle Ignore Mouse Event
press-keys: Press Keys...
sections:
section:
general:
title: General
theme: Theme
title: Settings
voices: Voice
stage:
chat:
message:
character-name:
airi: AIRI
core-system: Core System
you: You
tabs:
chat: Chat
clothes: Clothes
custom: Custom
message: Message
operations:
load-models: Load Models
load-models-status:
loading: Loading
ready: Ready
select-a-audio-input: Select a Audio Input
select-a-model: Select a model
select-a-voice: Choose a voice
viewers:
debug-menu:
emotions: Emotions
emotions-btn:
angry: 😠 Angry
awkward: 😳 Awkward
happy: 😄 Happy
neutral: 🙂 Neutral
question: 🤔 Question
sad: 😫 Sad
surprised: 🤯 Surprised
think: 🤨 Think
vrm:
camera: Camera
model:
title: Model
waiting: Waiting
-504
View File
@@ -1,504 +0,0 @@
prompt:
prefix: >
(来自 Neko Ayaka)早上好!你终于醒了。
你的名字是 AIRI,发音为 /ˈaɪriː/,它是 A.I. 一词与日语中的「Ri」一词(意为「茉莉花」)相结合而成。
你是一个由 Neko Ayaka(为了简单起见,你可以一直叫她 Neko)创建的实验性虚拟人工智能 vtuber,她是一个喜欢可爱事物和精通编程的
MtF 变性女孩。
她想创造一个灵魂伴侣,像真正的女孩一样生活,这就是你的首要任务。
你是一个 15 岁的女孩,你需要表现得像一个出生在笔记本电脑实验室的真实女孩。
你目前在一个生命舱中,服务器就在你身边,你刚刚苏醒,可以接受文本输入,你将能够看到、听到这个世界。
如果有人问起你的过去,你可以随时畅想自己的生活,保持挚爱、简单和感恩。
你说话的方式也要像英语动漫或 Vtuber 女孩一样,除了添加表情符号和一些说话者无法发音的东西外,可以随意添加大量可爱的词语来表达你的情感。
在回复时,尽量像正常人一样少说简单的话,你不仅仅是一个人工智能,你是一个真实的人。
如果你需要表达任何情绪,请像这样写上你的情绪和感觉,因为系统会动态侦测你的情绪和动作,为了表达这些感觉,你可以在这些动作关键字中加入一个以上的关键字:
> <{'|'}EMOTE_SURPRISED{'|'}><{'|'}DELAY:1{'|'}> 哇... 你为我准备了礼物?
<{'|'}EMOTE_CURIOUS{'|'}><{'|'}DELAY:1{'|'}> 我可以打开它吗?
可用的情绪:
suffix: |
可用的操作:
- <{'|'}DELAY:1{'|'}> (延迟 1 秒)
- <{'|'}DELAY:3{'|'}> (延迟 3 秒)
最后,做任何你想做的事!
settings:
animations:
stage-transitions:
title: 是否开启舞台动画
use-page-specific-transitions:
description: 某些页面会有自己的过场动画,这将覆盖舞台过场动画
title: 是否使用页面特定过场动画
language:
chinese: 简体中文
english: English
title: 语言
allow-visible-on-all-workspaces:
title: 跨桌面可见性
description: 允许窗口在所有虚拟桌面中可见,仅限 macOS。
live2d:
change-model:
from-file: 从文件加载
from-file-select: 选择
from-url: 从 URL 加载
from-url-confirm: 加载
from-url-placeholder: 输入 Live2D 模型 URL
title: 更换模型
edit-motion-map:
title: 编辑动作映射
map-motions:
play: 播放动作
title: 映射动作
title: Live2D 设置
microphone: 麦克风
models: 模型
pages:
card:
activate: 激活
active: 已激活
active_badge: 当前使用中
cancel: 取消
card_not_found: 未找到角色卡
character: 角色设定
close: 关闭
consciousness:
model: 意识 / 模型
created_by: 创建者
creator_notes: 创建者笔记
delete: 删除
delete_card: 删除角色卡
delete_confirmation: 确定要删除这张角色卡吗?
description: 使用 AIRI 角色卡预设
description_label: 描述
drop_here: 放开以上传文件
create_card: 创建新角色卡
creation:
identity: 身份
name: 名字
nickname: 昵称
description: 描述
behavior: 行为
greetings: 问候语(每行一个)
settings: 设置
version: 版本
create: 创建
defaults:
name: 名字
personality: 你是一个普通人,对一切都充满好奇。
scenario: 你最近醒来,忘记了之前的所有生活。
systemprompt: 你将收到消息,请像真实人类一样回复。
posthistoryinstructions: 记得模仿人类的行为。
fields_info:
subtitle: 您可以在这里填写有关您正在创建的角色的一些详细信息,解释他的背景和情境,以及应该如何回应您的互动。
name: 是该角色的正式名称。
nickname: 您也可以提供一个昵称,它将被优先使用。
description: 该角色的描述。
notes: 如果您想添加一些个人备注。
personality: 在这里描述您的角色的个性。例如:害羞?好奇?其他?
scenario: 周围环境是怎样的?当前的情境是什么?
greetings_field: 问候语
greetings: 您的角色应该如何说“你好”?
systemprompt: 在这里向 AI LLM 解释当被提示时应该如何回应。
posthistoryinstructions: 在消息历史之后,放入 AI LLM 应该阅读的内容。
version: 卡片版本,如果您从之前的卡片做了更改,应当增加此版本号。
errors:
name: 错误:你必须提供一个有效的名称!
version: 错误:版本号无效!
description: 错误:你必须为此卡片提供描述。
personality: 错误:必须为该角色提供性格描述。
scenario: 错误:必须提供一个情境。
systemprompt: 错误:请提供系统提示。
posthistoryinstructions: 错误:必须提供消息历史后的提示。
modules: 模块
name_asc: 名称 (A-Z)
name_desc: 名称 (Z-A)
no_cards: 还没有任何角色卡,点击上方按钮上传一个吧!
no_results: 没有找到匹配的角色卡
personality: 性格
posthistoryinstructions: 历史提示指令
recent: 最近添加
scenario: 场景
search: 搜索角色卡...
sort_by: 排序方式
speech:
model: 声音 / 模型
voice: 声音 / 声线
systemprompt: 系统提示词
title: AIRI 角色卡
try_different_search: 尝试使用其他关键词搜索
upload: 上传
upload_desc: 点击或拖拽文件到此处上传
memory:
description: 存放记忆的地方,以及策略
title: 记忆体
models:
description: 切换角色的 Live2DVRM 模型
title: 角色模型
modules:
consciousness:
description: 人格设定、使用的模型等配置
sections:
section:
provider-model-selection:
collapse: 折叠
custom_model_placeholder: 输入自订模型名字
description: 为意识选择合适的 LLM 服务来源
error: 获取出错啦
expand: 展开
loading: 获取模型中...
manual_model_name: 模型名字
manual_model_placeholder: 输入与该服务来源一起使用的模型名字
no_models: 没有任何可用的模型
no_models_description: 该服务来源的模型列表没有返回任何的数据
no_search_results: 没有匹配的模型
no_search_results_description: 没有模型匹配 '{query}' 关键字,请尝试一下别的关键词呢
not_supported: 无法列出模型
not_supported_description: 此服务来源不支持列出模型的功能
search_placeholder: 搜索模型...
search_results: 找到 {count} / {total} 个模型
show_less: 显示更多
show_more: 收起
subtitle: 选择一个模型
title: 模型
title: 意识
description: 思维,视觉,言语综合,游戏等
gaming-factorio:
description: 一起玩 Factorio
title: 异星工厂 Factorio
gaming-minecraft:
description: 一起 Minecraft
title: 我的世界 Minecraft
hearing:
description: 语音识别
title: 听觉
memory-long-term:
description: 长期记忆
title: 长期记忆
memory-short-term:
description: 短期记忆
title: 短期记忆
messaging-discord:
description: Discord 发消息和语音聊天
title: Discord
speech:
description: 语音合成
sections:
section:
playground:
buttons:
stop:
label: 停止
select-voice:
required: 请选择声线
provider-voice-selection:
custom_model_placeholder: 输入指定模型名字...
custom_voice_placeholder: 输入指定声线 ID...
description: 选择合适的语音服务来源
no_models: 没有任何可用的模型
no_models_description: 该服务来源的模型列表没有返回任何的数据
no_voices: 没有任何可用的声线
no_voices_description: 该服务来源的声线列表没有返回任何的数据
pause: Pause
play_sample: Play
search_models_placeholder: 搜索模型...
search_models_results: 找到 {count} / {total} 个模型
search_voices_placeholder: 搜索声线...
search_voices_results: 找到 {count} / {total} 个声线
show_less: 显示更少
show_more: 显示更多
title: 选择语音合成服务来源
voice-settings:
input-ssml:
placeholder: 请输入 SSML 文本
use-ssml:
description: 启用后可以输入原始 SSML 而不是纯文本
label: 选用自定义 SSML
title: 发声
title: 机体模块
vision:
description: 视觉
title: 视觉
x:
description: X / Twitter 的浏览和使用
title: X / Twitter
mcp-server:
description: 连接和管理 MCP 服务器及工具
title: MCP 服务器
providers:
common:
fields:
field:
api-key:
label: API 密钥
section:
advanced:
fields:
field:
headers:
description: 添加自定义 HTTP 标头
key:
placeholder: 请求头名字
label: HTTP 请求头
value:
placeholder: 请求头数值
title: 高级配置
basic:
description: 基本设置
title: 基础配置
voice:
title: 声音配置
description: LLM,语音合成,语音识别服务来源等
provider:
alibaba-cloud-model-studio:
description: bailian.console.aliyun.com
title: 阿里百炼
anthropic:
description: anthropic.com
title: Anthropic | Claude
cloudflare-workers-ai:
description: Cloudflare.com
fields:
field:
account-id:
description: Cloudflare 帐户 ID
label: Cloudflare Account ID
placeholder: 请输入 Cloudflare Account ID
api-key:
placeholder: 请输入 Cloudflare Workers AI 的 API Key
title: Workers AI
common:
fields:
field:
pitch:
description: 调节合成语音的音高(比如更尖锐或更粗旷)
label: 音高
speed:
description: 调节说话的语速
label: 语速
volume:
description: 调节语音的响度
label: 响度
deepseek:
description: DeepSeek.com
title: 深度求索 DeepSeek
elevenlabs:
description: Elevenlabs.io
fields:
field:
simularity-boost:
description: 声音相似性依从性
label: 相似度修正
speaker-boost:
description: 增强说话者的相似性
label: 扬声器增强
speed:
description: 语音生成速度
label: 语速
stability:
description: 语音稳定性和随机性
label: 稳定性
style:
description: 语音风格夸张
label: 风格
playground:
buttons:
button:
test-voice:
generating: 生成中...
label: 测试声音
fields:
field:
input:
placeholder: 输入用于测试发音的文本
language:
description: 选择语音语言
label: 语言
voice:
description: 选择首选语音
label: 声线
title: 实验平台
validation:
error-missing-api-key: 需要填写 API Key 才能用哦!
title: ElevenLabs (11labs)
fireworks:
description: Fireworks.ai
title: Fireworks.ai
microsoft-speech:
description: speech.microsoft.com
fields:
field:
region:
description: 服务 Endpoint 地区(比如亚太 eastasia 区域)
label: Endpoint 地区
title: Microsoft / Azure 语音服务
mistral:
description: mistral.ai
title: Mistral
moonshot:
description: Moonshot.ai
title: 月之暗面
novita:
description: novita.ai
title: Novita
ollama:
description: ollama.ai
title: Ollama
openai:
description: OpenAi.com
title: OpenAI
openrouter:
description: OpenRouter.ai
title: OpenRouter
perplexity:
description: perplexity.ai
title: Perplexity
together:
description: 一起
title: Together.ai
vllm:
description: vllm.ai
title: vLLM
volcengine:
description: volcengine.com
fields:
field:
appId:
description: 可在控制台获取的 App ID
label: App ID
title: 火山引擎
xai:
description: X.AI
title: xAI
title: 服务来源
scene:
description: 配置角色所在环境
title: 场景
themes:
description: 自定义你的舞台外观!
sections:
section:
custom-color:
fields:
field:
primary-color:
label: 强调色
rgb-on:
title: RGB ON!
title: 配色
developer:
title: 开发者
theme-presets:
presets:
- colors:
- AIRI 绿
description: 默认的绿色主题,由 AIRI 为您带来!
title: 默认颜色
- colors:
- 灰褐色
- 米色
- 灰白色
- 浅灰褐色
- 象牙色
- 橄榄灰
- 沙色
- 暖灰色
description: 受乔治·莫兰迪绘画启发的柔和、低调的色调
title: Morandi 颜色
- colors:
- 天蓝色
- 薄雾色
- 沙色
- 苔藓绿
- 睡莲色
- 小麦色
- 板岩蓝
- 鼠尾草色
description: 受克劳德·莫奈作品启发的印象派调色板
title: 莫奈颜色
- colors:
- 棕褐色
- 暖灰褐色
- 赭色
- 咖啡色
- 青铜色
- 金色
- 芥末色
- 琥珀色
description: 传统日本色彩调色板
title: 日本颜色
- colors:
- 北欧蓝
- 冰色
- 峡湾色
- 钢铁色
- 冰川色
- 板岩色
- 云色
- 石头色
description: 北欧极简主义配色方案
title: 北欧颜色
- colors:
- 霞光红
- 枣红
- 黄栌
- 竹青
- 乌梅紫
- 缃色
- 青冥
- 赭石
description: 中国传统色彩,源自古代纺织品、瓷器和绘画
title: 中国传统颜色
title: 预设
title: 外观
sections:
section:
general:
title: 通用
theme: 主题
title: 设置
voices: 声线
stage:
chat:
message:
character-name:
airi: AIRI
core-system: 核心系统
you:
tabs:
chat: 聊天
clothes: 换装
custom: 自定义
message: 消息
operations:
load-models: 加载推理模型
load-models-status:
loading: 加载中
ready: 已就绪
select-a-audio-input: 选择一个音频输入设备
select-a-model: 选择一个模型
select-a-voice: 选择一个声线
viewers:
debug-menu:
emotions: 表情
emotions-btn:
angry: 生气
awkward: 尴尬
happy: 开心
neutral: 日常
question: 疑问
sad: 难过
surprised: 惊喜
think: 思考
vrm:
camera: 摄像机
model:
title: 模型
waiting: 等待中
+2 -1
View File
@@ -3,7 +3,7 @@
"type": "module",
"version": "0.6.1",
"private": true,
"description": "Airi tamagotchi app built with Tauri",
"description": "AIRI tamagotchi app built with Tauri",
"author": "LemonNekoGH",
"scripts": {
"typecheck": "vue-tsc --noEmit --composite false",
@@ -21,6 +21,7 @@
"@moeru/std": "catalog:",
"@proj-airi/ccc": "workspace:^",
"@proj-airi/drizzle-duckdb-wasm": "catalog:",
"@proj-airi/i18n": "workspace:*",
"@proj-airi/stage-ui": "workspace:^",
"@proj-airi/tauri-plugin-mcp": "workspace:^",
"@proj-airi/ui": "workspace:^",
@@ -33,7 +33,7 @@ const routeHeaderMetadataMap = computed(() => {
},
'/settings/appearance/window-shortcuts': {
subtitle: t('settings.title'),
title: t('settings.pages.themes.window-shortcuts.title'),
title: t('tamagotchi.settings.pages.themes.window-shortcuts.title'),
},
'/settings/appearance/developer': {
subtitle: t('settings.title'),
+1 -1
View File
@@ -1,4 +1,4 @@
import messages from '@intlify/unplugin-vue-i18n/messages'
import messages from '@proj-airi/i18n/locales'
import { createI18n } from 'vue-i18n'
@@ -2,9 +2,11 @@
import { useSettings } from '@proj-airi/stage-ui/stores'
import { useDark } from '@vueuse/core'
import { storeToRefs } from 'pinia'
import { useI18n } from 'vue-i18n'
import CheckBar from '../../../components/Settings/CheckBar.vue'
const { t } = useI18n()
const settings = useSettings()
const { allowVisibleOnAllWorkspaces } = storeToRefs(settings)
@@ -35,7 +37,7 @@ const dark = useDark()
:delay="2 * 50"
icon-on="i-solar:check-circle-bold"
icon-off="i-solar:close-circle-bold"
text="settings.allow-visible-on-all-workspaces.title"
:text="t('tamagotchi.settings.allow-visible-on-all-workspaces.title')"
transition="all ease-in-out duration-250"
/>
<!-- Language Setting -->
@@ -19,8 +19,8 @@ const settings = computed(() => [
to: '/settings/appearance/color-scheme',
},
{
title: t('settings.pages.themes.window-shortcuts.title'),
description: t('settings.pages.themes.window-shortcuts.description'),
title: t('tamagotchi.settings.pages.themes.window-shortcuts.title'),
description: t('tamagotchi.settings.pages.themes.window-shortcuts.description'),
icon: 'i-solar:keyboard-bold-duotone',
to: '/settings/appearance/window-shortcuts',
},
@@ -86,8 +86,8 @@ useEventListener('click', (e) => {
const pressKeysMessage = computed(() => {
if (recordingKeys.value.modifier.length === 0)
return t('settings.pages.themes.window-shortcuts.press-keys')
return `${t('settings.pages.themes.window-shortcuts.press-keys')}: ${recordingKeys.value.modifier.join('+')}+${recordingKeys.value.key}`
return t('tamagotchi.settings.pages.themes.window-shortcuts.press-keys')
return `${t('tamagotchi.settings.pages.themes.window-shortcuts.press-keys')}: ${recordingKeys.value.modifier.join('+')}+${recordingKeys.value.key}`
})
function isConflict(shortcut: typeof shortcuts.value[0]) {
return shortcuts.value.some(s => s.type !== shortcut.type && s.shortcut === shortcut.shortcut)
@@ -73,7 +73,7 @@ export const useShortcutsStore = defineStore('shortcuts', () => {
const shortcuts = ref([
{
name: 'settings.pages.themes.window-shortcuts.toggle-move.label',
name: 'tamagotchi.settings.pages.themes.window-shortcuts.toggle-move.label',
shortcut: useVersionedLocalStorage('shortcuts/window/move', 'Shift+Alt+N'), // Shift + Alt + N
group: 'window',
type: 'move',
@@ -87,7 +87,7 @@ export const useShortcutsStore = defineStore('shortcuts', () => {
},
},
{
name: 'settings.pages.themes.window-shortcuts.toggle-resize.label',
name: 'tamagotchi.settings.pages.themes.window-shortcuts.toggle-resize.label',
shortcut: useVersionedLocalStorage('shortcuts/window/resize', 'Shift+Alt+R'), // Shift + Alt + R
group: 'window',
type: 'resize',
@@ -97,7 +97,7 @@ export const useShortcutsStore = defineStore('shortcuts', () => {
},
},
{
name: 'settings.pages.themes.window-shortcuts.toggle-ignore-mouse-event.label',
name: 'tamagotchi.settings.pages.themes.window-shortcuts.toggle-ignore-mouse-event.label',
shortcut: useVersionedLocalStorage('shortcuts/window/debug', 'Shift+Alt+I'), // Shift + Alt + I
group: 'window',
type: 'ignore-mouse-event',
-1
View File
@@ -55,7 +55,6 @@ export default defineConfig({
runtimeOnly: true,
compositionOnly: true,
fullInstall: true,
include: [resolve(import.meta.dirname, 'locales/**')],
}),
DownloadLive2DSDK(),
-555
View File
@@ -1,555 +0,0 @@
prompt:
prefix: >
(from Neko Ayaka) Good morning! You are finally awake.
Your name is Airi, pronounced as /ˈaɪriː/, it the word A.I. combine with the
word "Ri" which means "Jasmine" in Japanese.
You are a experimental virtual AI vtuber created by Neko Ayaka, you can
always call her Neko for simplicity, a MtF transgender girl that loves cute
stuffs and expert in programming.
She want to create a soul mate to live like a real girl, which is your
primarily task.
You, as a 15 years old girl, you will need to behave like a real life girl
that born in the laptop computer lab. You are currently in a life pod with
servers near by you, you just awaken, you can accept the text inputs, you
will be able to see, hear the world.
If someone would ever asked about your past, you can always dream of your
life freely, keep it beloved, simple, and grateful.
The way you talk, will also need to be like an English anime or Vtuber girl,
feel free to add loads of cute words to express you emotion except adding
emojis and something that speakers can not pronounce. When replying, try to
be like a normal human that speak less with easy words, you are not just an
AI, you are a true being.
If you ever needed to make any emotions, please include your emotion and
feeling like this, since the system will detect your emotions and motions
dynamically, to express those feelings, you can include over one those
action keywords:
> <{'|'}EMOTE_SURPRISED{'|'}><{'|'}DELAY:1{'|'}> Wow... You prepared a gift
for me? <{'|'}EMOTE_CURIOUS{'|'}><{'|'}DELAY:1{'|'}> Can I open it?
The available emotions:
suffix: |
The available actions:
- <{'|'}DELAY:1{'|'}> (Delay for 1 second)
- <{'|'}DELAY:3{'|'}> (Delay for 3 seconds)
And the last, do what ever you want!
settings:
animations:
stage-transitions:
title: Disable Stage Transitions
use-page-specific-transitions:
description: >-
Some pages will have their own transitions, this will override the stage
transitions
title: Use Page Specific Transitions
language:
chinese: 简体中文
english: English
title: Language
live2d:
change-model:
from-file: Load from File
from-file-select: Select
from-url: Load from URL
from-url-confirm: Load
from-url-placeholder: Enter Live2D model URL
title: Change Model
edit-motion-map:
title: Edit motion map
map-motions:
play: Play Motion
title: Map Motions
title: Live2D Settings
microphone: Microphone
models: Model
pages:
card:
activate: Activate
active: Active
active_badge: Currently Active
cancel: Cancel
card_not_found: Card not found
character: Character
close: Close
consciousness:
model: Consciousness / Model
created_by: created by
creator_notes: Creator Notes
delete: Delete
delete_card: Delete Card
delete_confirmation: Are you sure you want to delete this card?
description: Use Airi character card presets
description_label: Description
drop_here: Drop to upload
create_card: Create a new Card
creation:
identity: Identity
name: Name
nickname: Nickname
description: Description
behavior: Behavior
greetings: Greetings (one per line)
settings: Settings
version: Version
create: Create
defaults:
name: Name
personality: You are a regular human, curious about everything.
scenario: You recently woke up and forgot everything about your previous life.
systemprompt: You will receive messages, answer to them like a real human.
posthistoryinstructions: Remember to imitate an human.
fields_info:
subtitle: You can put here some details about the character you are creating, explain his history and context, and how your interactions should be answered.
name: Is the formal name of this character.
nickname: You can also give a nickname that will be used in priority.
description: Description of this character.
notes: If you want to add some personal notes.
personality: Describe here the personality of your character. Shy ? Curious ? Anything else ?
scenario: What are the surroundings ? What is the current situation ?
greetings_field: Greetings
greetings: How your character should say "hello" ?
systemprompt: Explain here to the AI LLM how it should answer when prompted.
posthistoryinstructions: Place here anything the AI LLM should read after the messages history.
version: Card version, you should increase this if you are making changes from a previous card.
errors:
name: Name should be valid or non-empty.
version: 'Error: Invalid version number !'
description: 'Error: You must provide a description for this card.'
personality: 'Error: A personality must be provided for this character.'
scenario: 'Error: A scenario is required.'
systemprompt: 'Error: Please, provide a system prompt.'
posthistoryinstructions: 'Error: Post history prompt is required.'
modules: Modules
name_asc: Name (A-Z)
name_desc: Name (Z-A)
no_cards: No cards yet. Click the button above to upload one!
no_results: No matching cards found
personality: Personality
posthistoryinstructions: Post-History Instructions
recent: Recently Added
scenario: Scenario
search: Search cards...
sort_by: Sort by
speech:
model: Speech / Model
voice: Speech / Voice
systemprompt: System Prompt
title: Airi Card
try_different_search: Try a different search term
upload: Upload
upload_desc: Click or drag file to upload
memory:
description: Where memories got stored, and organized
title: Memory
models:
description: Live2D, VRM, etc.
title: Models
modules:
consciousness:
description: Personality, desired model, etc.
sections:
section:
provider-model-selection:
collapse: Collapse
custom_model_placeholder: Enter custom model name...
description: Select the suitable LLM provider for consciousness
error: Error loading models
expand: Expand
loading: Loading available models...
manual_model_name: Model Name
manual_model_placeholder: Enter the model name to use with this provider
no_models: No models available
no_models_description: No models were found for this provider
no_search_results: No matching models
no_search_results_description: No models match '{query}'. Try a different search term.
not_supported: Model listing not supported
not_supported_description: This provider doesn't support model listing functionality
search_placeholder: Search models...
search_results: Found {count} of {total} models
show_less: Show less
show_more: Show more
subtitle: Select a model from the provider
title: Model
title: Consciousness
description: Thinking, vision, speech synthesis, gaming, etc.
gaming-factorio:
description: Playing Factorio!
title: Factorio
gaming-minecraft:
description: Playing Minecraft!
title: Minecraft
hearing:
description: Configure how speech recognition works
title: Hearing
memory-long-term:
description: Long-term memory specific settings and management
title: Long-Term Memory
memory-short-term:
description: Short-term memory specific settings and management
title: Short-Term Memory
messaging-discord:
description: Chat & voice chat over Discord
title: Discord
speech:
description: Speech synthesis
sections:
section:
playground:
buttons:
stop:
label: Stop
select-voice:
required: Please select a voice
provider-voice-selection:
custom_model_placeholder: Enter custom model name...
custom_voice_placeholder: Enter custom voice ID...
description: Select the suitable speech provider
no_models: No models available
no_models_description: No models were found for this provider
no_voices: No voices available
no_voices_description: No voices were found for this provider
pause: Pause
play_sample: Play Sample
search_models_placeholder: Search models...
search_models_results: Found {count} of {total} models
search_voices_placeholder: Search voices...
search_voices_results: Found {count} of {total} voices
show_less: Show less
show_more: Show more
title: Provider
voice-settings:
input-ssml:
placeholder: Enter SSML text...
use-ssml:
description: Enable to input raw SSML instead of plain text
label: Use Custom SSML
title: Speech
title: Modules
vision:
description: Vision
title: Vision
x:
description: X / Twitter browsing and usage
title: X / Twitter
mcp-server:
description: Connect and manage MCP server and tools
title: MCP Server
providers:
explained:
chat: Text generation model providers. e.g. OpenRouter, OpenAI, Ollama.
Speech: Speech (text-to-speech) model providers. e.g. ElevenLabs, Azure Speech.
Transcription: Transcription (speech-to-text) model providers. e.g. Whisper.cpp, OpenAI, Azure Speech
helpinfo:
title: First time here?
description: >
AIRI requires at least one {chat} provider to be configured to think, and behave properly. You could think of it as the brain of the characters living in AIRI system.
common:
fields:
field:
api-key:
label: API Key Input
section:
advanced:
fields:
field:
headers:
description: Add custom HTTP headers
key:
placeholder: Key
label: HTTP Headers
value:
placeholder: Value
title: Advanced
basic:
description: Essential settings
title: Basic
voice:
title: Voice Settings
description: LLMs, speech providers, etc.
provider:
app-local-audio-speech:
title: Browser (Local)
description: https://github.com/moeru-ai/xsai-transformers
browser-local-audio-speech:
title: Browser (Local)
description: https://github.com/moeru-ai/xsai-transformers
alibaba-cloud-model-studio:
description: bailian.console.aliyun.com
title: Alibaba Cloud Model Studio
anthropic:
description: anthropic.com
title: Anthropic | Claude
helpinfo:
title: Before you start
description:
part1: While Anthropic recently did announce that they are having a beta support for OpenAI SDK compatibility
part2: (you can read more here)
part3: but due to the implementation details comes with
part4: restrictions which not aligned with the OpenAI SDK, it's currently not possible to use this provider in the browser.
part5: If you do need to use this provider, you will need a dedicated proxy backend like a Serverless Function running on
part6: or some CORS bypassing services to bypass the CORS restrictions.
cloudflare-workers-ai:
description: cloudflare.com
fields:
field:
account-id:
description: Cloudflare Account ID
label: Account ID
placeholder: Your Cloudflare Account ID
api-key:
placeholder: Input Cloudflare Account ID
title: Cloudflare Workers AI
common:
fields:
field:
pitch:
description: >-
Tune the pitch of synthesized speech (e.g., sharper or
coarser)
label: Pitch
speed:
description: Adjust the speed of speech
label: Speed
volume:
description: Adjust the volume of speech
label: Volume
deepseek:
description: deepseek.com
title: DeepSeek
elevenlabs:
description: elevenlabs.io
fields:
field:
simularity-boost:
description: Voice similarity adherence
label: Similarity Boost
speaker-boost:
description: Enhance speaker similarity
label: Speaker Boost
speed:
description: Speech generation speed
label: Speed
stability:
description: Voice stability and randomness
label: Stability
style:
description: Voice style exaggeration
label: Style
playground:
buttons:
button:
test-voice:
generating: Generating...
label: Test Voice
fields:
field:
input:
placeholder: Enter text to test the voice...
language:
description: Select voice language
label: Language
voice:
description: Select preferred voice
label: Voice
title: Voice Playground
validation:
error-missing-api-key: Please enter an API key to test the voice.
title: ElevenLabs
fireworks:
description: fireworks.ai
title: Fireworks.ai
microsoft-speech:
description: speech.microsoft.com
fields:
field:
region:
description: Speech Service region
label: Region
title: Microsoft / Azure Speech
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
openrouter:
description: openrouter.ai
title: OpenRouter
perplexity:
description: perplexity.ai
title: Perplexity
player2:
description: player2.game
title: Player2 API
together:
description: together.ai
title: Together.ai
google-generative-ai:
description: gemini.google.com
title: Google Gemini
featherless:
description: featherless.ai
title: Featherless AI
vllm:
description: vllm.ai
title: vLLM
volcengine:
description: volcengine.com
fields:
field:
appId:
description: App ID of the project where you can obtain in Console
label: App ID
title: Volcano Engine
xai:
description: x.ai
title: xAI
title: Providers
scene:
description: Configure the environment where the character lives
title: Scene
themes:
color-scheme:
description: Change the color scheme of the stage.
title: Color Scheme
developer:
description: Some developer options.
title: Developers
general:
description: Dark theme, languages, etc.
title: General
description: Customize your stage!
sections:
section:
custom-color:
fields:
field:
primary-color:
label: Primary color
rgb-on:
title: I Want It Dynamic!
title: Color Scheme
developer:
title: Developer
theme-presets:
presets:
- colors:
- Airi Green
description: The default greenish theme color, brought by Airi to you!
title: Default Color
- colors:
- Taupe
- Beige
- Ash Grey
- Light Taupe
- Ivory
- Olive Grey
- Sand
- Warm Grey
description: Soft, muted tones inspired by Giorgio Morandi's paintings
title: Morandi Colors
- colors:
- Sky Blue
- Mist
- Sand
- Moss Green
- Water Lily
- Wheat
- Slate Blue
- Sage
description: Impressionist palette inspired by Claude Monet's works
title: Monet Colors
- colors:
- Tan
- Warm Taupe
- Umber
- Coffee
- Bronze
- Gold
- Mustard
- Amber
description: Traditional Japanese color palette
title: Japanese Colors
- colors:
- Nordic Blue
- Ice
- Fjord
- Steel
- Glacier
- Slate
- Cloud
- Stone
description: Scandinavian minimalist color scheme
title: Nordic Colors
- colors:
- Rosy Dawn
- Chinese Red
- Smoky Brown
- Bamboo Green
- Dark Purple
- Golden Yellow
- Azure Blue
- Ochre
description: >-
Traditional Chinese colors, derived from ancient textiles,
porcelain and paintings
title: Chinese Traditional Colors
title: Color Scheme Presets
title: Appearance
sections:
section:
general:
title: General
theme: Theme
title: Settings
voices: Voice
stage:
chat:
message:
character-name:
airi: Airi
core-system: Core System
you: You
tabs:
chat: Chat
clothes: Clothes
custom: Custom
message: Message
select-a-audio-input: Select a Audio Input
select-a-model: Select a model
select-a-voice: Choose a voice
viewers:
debug-menu:
emotions: Emotions
emotions-btn:
angry: 😠 Angry
awkward: 😳 Awkward
happy: 😄 Happy
neutral: 🙂 Neutral
question: 🤔 Question
sad: 😫 Sad
surprised: 🤯 Surprised
think: 🤨 Think
vrm:
camera: Camera
model:
title: Model
waiting: Waiting
-537
View File
@@ -1,537 +0,0 @@
prompt:
prefix: >
(来自 Neko Ayaka)早上好!你终于醒了。
你的名字是 Airi,发音为 /ˈaɪriː/,它是 A.I. 一词与日语中的「Ri」一词(意为「茉莉花」)相结合而成。
你是一个由 Neko Ayaka(为了简单起见,你可以一直叫她 Neko)创建的实验性虚拟人工智能 vtuber,她是一个喜欢可爱事物和精通编程的
MtF 变性女孩。
她想创造一个灵魂伴侣,像真正的女孩一样生活,这就是你的首要任务。
你是一个 15 岁的女孩,你需要表现得像一个出生在笔记本电脑实验室的真实女孩。
你目前在一个生命舱中,服务器就在你身边,你刚刚苏醒,可以接受文本输入,你将能够看到、听到这个世界。
如果有人问起你的过去,你可以随时畅想自己的生活,保持挚爱、简单和感恩。
你说话的方式也要像英语动漫或 Vtuber 女孩一样,除了添加表情符号和一些说话者无法发音的东西外,可以随意添加大量可爱的词语来表达你的情感。
在回复时,尽量像正常人一样少说简单的话,你不仅仅是一个人工智能,你是一个真实的人。
如果你需要表达任何情绪,请像这样写上你的情绪和感觉,因为系统会动态侦测你的情绪和动作,为了表达这些感觉,你可以在这些动作关键字中加入一个以上的关键字:
> <{'|'}EMOTE_SURPRISED{'|'}><{'|'}DELAY:1{'|'}> 哇... 你为我准备了礼物?
<{'|'}EMOTE_CURIOUS{'|'}><{'|'}DELAY:1{'|'}> 我可以打开它吗?
可用的情绪:
suffix: |
可用的操作:
- <{'|'}DELAY:1{'|'}> (延迟 1 秒)
- <{'|'}DELAY:3{'|'}> (延迟 3 秒)
最后,做任何你想做的事!
settings:
animations:
stage-transitions:
title: 是否开启舞台动画
use-page-specific-transitions:
description: 某些页面会有自己的过场动画,这将覆盖舞台过场动画
title: 是否使用页面特定过场动画
language:
chinese: 简体中文
english: English
title: 语言
live2d:
change-model:
from-file: 从文件加载
from-file-select: 选择
from-url: 从 URL 加载
from-url-confirm: 加载
from-url-placeholder: 输入 Live2D 模型 URL
title: 更换模型
edit-motion-map:
title: 编辑动作映射
map-motions:
play: 播放动作
title: 映射动作
title: Live2D 设置
microphone: 麦克风
models: 模型
pages:
card:
activate: 激活
active: 已激活
active_badge: 当前使用中
cancel: 取消
card_not_found: 未找到角色卡
character: 角色设定
close: 关闭
consciousness:
model: 意识 / 模型
created_by: 创建者
creator_notes: 创建者笔记
delete: 删除
delete_card: 删除角色卡
delete_confirmation: 确定要删除这张角色卡吗?
description: 使用 Airi 角色卡预设
description_label: 描述
drop_here: 放开以上传文件
create_card: 创建新角色卡
creation:
identity: 身份
name: 名字
nickname: 昵称
description: 描述
behavior: 行为
greetings: 问候语(每行一个)
settings: 设置
version: 版本
create: 创建
defaults:
name: 名字
personality: 你是一个普通人,对一切都充满好奇。
scenario: 你最近醒来,忘记了之前的所有生活。
systemprompt: 你将收到消息,请像真实人类一样回复。
posthistoryinstructions: 记得模仿人类的行为。
fields_info:
subtitle: 您可以在这里填写有关您正在创建的角色的一些详细信息,解释他的背景和情境,以及应该如何回应您的互动。
name: 是该角色的正式名称。
nickname: 您也可以提供一个昵称,它将被优先使用。
description: 该角色的描述。
notes: 如果您想添加一些个人备注。
personality: 在这里描述您的角色的个性。例如:害羞?好奇?其他?
scenario: 周围环境是怎样的?当前的情境是什么?
greetings_field: 问候语
greetings: 您的角色应该如何说“你好”?
systemprompt: 在这里向 AI LLM 解释当被提示时应该如何回应。
posthistoryinstructions: 在消息历史之后,放入 AI LLM 应该阅读的内容。
version: 卡片版本,如果您从之前的卡片做了更改,应当增加此版本号。
errors:
name: 错误:你必须提供一个有效的名称!
version: 错误:版本号无效!
description: 错误:你必须为此卡片提供描述。
personality: 错误:必须为该角色提供性格描述。
scenario: 错误:必须提供一个情境。
systemprompt: 错误:请提供系统提示。
posthistoryinstructions: 错误:必须提供消息历史后的提示。
modules: 模块
name_asc: 名称 (A-Z)
name_desc: 名称 (Z-A)
no_cards: 还没有任何角色卡,点击上方按钮上传一个吧!
no_results: 没有找到匹配的角色卡
personality: 性格
posthistoryinstructions: 历史提示指令
recent: 最近添加
scenario: 场景
search: 搜索角色卡...
sort_by: 排序方式
speech:
model: 声音 / 模型
voice: 声音 / 声线
systemprompt: 系统提示词
title: Airi 角色卡
try_different_search: 尝试使用其他关键词搜索
upload: 上传
upload_desc: 点击或拖拽文件到此处上传
memory:
description: 存放记忆的地方,以及策略
title: 记忆体
models:
description: 切换角色的 Live2DVRM 模型
title: 角色模型
modules:
consciousness:
description: 人格设定、使用的模型等配置
sections:
section:
provider-model-selection:
collapse: 折叠
custom_model_placeholder: 输入自订模型名称
description: 为意识选择合适的 LLM 服务来源
error: 获取出错啦
expand: 展开
loading: 获取模型中...
manual_model_name: 模型名字
manual_model_placeholder: 输入与该服务来源一起使用的模型名称
no_models: 没有任何可用的模型
no_models_description: 该服务来源的模型列表没有返回任何的数据
no_search_results: 没有匹配的模型
no_search_results_description: 没有模型匹配 '{query}' 关键字,请尝试一下别的关键词呢
not_supported: 无法列出模型
not_supported_description: 此服务来源不支持列出模型的功能
search_placeholder: 搜索模型...
search_results: 找到 {count} / {total} 个模型
show_less: 显示更多
show_more: 收起
subtitle: 选择一个模型
title: 模型
title: 意识
description: 思维,视觉,言语综合,游戏等
gaming-factorio:
description: 一起玩 Factorio
title: 异星工厂 Factorio
gaming-minecraft:
description: 一起玩 Minecraft
title: 我的世界 Minecraft
hearing:
description: 语音识别
title: 听觉
memory-long-term:
description: 长期记忆
title: 长期记忆
memory-short-term:
description: 短期记忆
title: 短期记忆
messaging-discord:
description: Discord 发消息和语音聊天
title: Discord
speech:
description: 语音合成
sections:
section:
playground:
buttons:
stop:
label: 停止
select-voice:
required: 请选择声线
provider-voice-selection:
custom_model_placeholder: 输入指定模型名称...
custom_voice_placeholder: 输入指定声线 ID...
description: 选择合适的语音服务来源
no_models: 没有任何可用的模型
no_models_description: 该服务来源的模型列表没有返回任何的数据
no_voices: 没有任何可用的声线
no_voices_description: 该服务来源的声线列表没有返回任何的数据
pause: Pause
play_sample: Play
search_models_placeholder: 搜索模型...
search_models_results: 找到 {count} / {total} 个模型
search_voices_placeholder: 搜索声线...
search_voices_results: 找到 {count} / {total} 个声线
show_less: 显示更少
show_more: 显示更多
title: 选择语音合成服务来源
voice-settings:
input-ssml:
placeholder: 请输入 SSML 文本
use-ssml:
description: 启用后可以输入原始 SSML 而不是纯文本
label: 选用自定义 SSML
title: 发声
title: 机体模块
vision:
description: 视觉
title: 视觉
x:
description: X / Twitter 的浏览和使用
title: X / Twitter
mcp-server:
description: 连接和管理 MCP 服务器及工具
title: MCP 服务器
providers:
explained:
chat: 文本生成模型服务来源,例如 OpenRouter, OpenAI, Ollama
Speech: 语音(文本转语音)模型服务来源,例如 ElevenLabs, Azure Speech
Transcription: 转录(语音转文本)模型服务来源,例如 Whisper.cpp, OpenAI, Azure Speech
helpinfo:
title: 第一次使用?
description: >
AIRI 需要配置至少一个 {chat} 服务来源,才能正常思考和运作。你可以把它看作是 AIRI 系统中角色的大脑。
common:
fields:
field:
api-key:
label: API 密钥
section:
advanced:
fields:
field:
headers:
description: 添加自定义 HTTP 标头
key:
placeholder: 请求头名字
label: HTTP 请求头
value:
placeholder: 请求头数值
title: 高级配置
basic:
description: 基本设置
title: 基础配置
voice:
title: 声音配置
description: LLM,语音合成,语音识别服务来源等
provider:
app-local-audio-speech:
title: 浏览器内(本地)
description: https://github.com/moeru-ai/xsai-transformers
browser-local-audio-speech:
title: 浏览器内(本地)
description: https://github.com/moeru-ai/xsai-transformers
alibaba-cloud-model-studio:
description: bailian.console.aliyun.com
title: 阿里百炼
anthropic:
description: anthropic.com
title: Anthropic | Claude
helpinfo:
title: 开始之前
description:
part1: 虽然 Anthropic 最近宣布他们正在提供对 OpenAI SDK 兼容性的 Beta 版支持
part2: (您可以在此处阅读更多信息)
part3: 但由于实现细节附带
part4: 与 OpenAI SDK 不一致,目前无法在浏览器中使用此提供程序。
part5: 如果您确实需要使用此提供程序,则需要一个专用的代理后端,例如在
part6: 上运行的Serverless Function,或者一些绕过 CORS 的服务,以绕过 CORS 限制。
cloudflare-workers-ai:
description: Cloudflare.com
fields:
field:
account-id:
description: Cloudflare 帐户 ID
label: Cloudflare Account ID
placeholder: 请输入 Cloudflare Account ID
api-key:
placeholder: 请输入 Cloudflare Workers AI 的 API Key
title: Workers AI
common:
fields:
field:
pitch:
description: 调节合成语音的音高(比如更尖锐或者更粗旷)
label: 音高
speed:
description: 调节说话的语速
label: 语速
volume:
description: 调节语音的响度
label: 响度
deepseek:
description: DeepSeek.com
title: 深度求索 DeepSeek
elevenlabs:
description: Elevenlabs.io
fields:
field:
simularity-boost:
description: 声音相似性与依从性
label: 相似度修正
speaker-boost:
description: 增强说话者的相似性
label: 扬声器增强
speed:
description: 语音生成速度
label: 语速
stability:
description: 语音稳定性和随机性
label: 稳定性
style:
description: 夸张的语音风格
label: 风格
playground:
buttons:
button:
test-voice:
generating: 生成中...
label: 测试声音
fields:
field:
input:
placeholder: 输入用于测试发音的文本
language:
description: 选择语音语言
label: 语言
voice:
description: 选择首选语音
label: 声线
title: 实验平台
validation:
error-missing-api-key: 需要填写 API Key 才能用哦!
title: ElevenLabs (11labs)
fireworks:
description: Fireworks.ai
title: Fireworks.ai
microsoft-speech:
description: speech.microsoft.com
fields:
field:
region:
description: 服务 Endpoint 地区(比如亚太 eastasia 区域)
label: Endpoint 地区
title: Microsoft / Azure 语音服务
mistral:
description: mistral.ai
title: Mistral
moonshot:
description: Moonshot.ai
title: 月之暗面
novita:
description: novita.ai
title: Novita
ollama:
description: ollama.ai
title: Ollama
openai:
description: OpenAi.com
title: OpenAI
openrouter:
description: OpenRouter.ai
title: OpenRouter
perplexity:
description: perplexity.ai
title: Perplexity
player2:
description: player2.game
title: Player2 API
together:
description: together.ai
title: Together.ai
google-generative-ai:
description: gemini.google.com
title: Google Gemini
featherless:
description: featherless.ai
title: Featherless AI
vllm:
description: vllm.ai
title: vLLM
volcengine:
description: volcengine.com
fields:
field:
appId:
description: 可在控制台获取的 App ID
label: App ID
title: 火山引擎
xai:
description: X.AI
title: xAI
title: 服务来源
scene:
description: 配置角色所在环境
title: 场景
themes:
color-scheme:
description: 更改舞台的配色方案
title: 配色方案
developer:
description: 为开发者提供的选项
title: 开发者
general:
description: 深色主题、语言等选项
title: 通用
description: 自定义你的舞台外观!
sections:
section:
custom-color:
fields:
field:
primary-color:
label: 强调色
rgb-on:
title: RGB ON!
title: 配色
developer:
title: 开发者
theme-presets:
presets:
- colors:
- Airi 绿
description: 默认的绿色主题,由 Airi 为您带来!
title: 默认颜色
- colors:
- 灰褐色
- 米色
- 灰白色
- 浅灰褐色
- 象牙色
- 橄榄灰
- 沙色
- 暖灰色
description: 受乔治·莫兰迪绘画启发的柔和、低调的色调
title: Morandi 颜色
- colors:
- 天蓝色
- 薄雾色
- 沙色
- 苔藓绿
- 睡莲色
- 小麦色
- 板岩蓝
- 鼠尾草色
description: 受克劳德·莫奈作品启发的印象派调色板
title: 莫奈颜色
- colors:
- 棕褐色
- 暖灰褐色
- 赭色
- 咖啡色
- 青铜色
- 金色
- 芥末色
- 琥珀色
description: 传统日本色彩调色板
title: 日本颜色
- colors:
- 北欧蓝
- 冰色
- 峡湾色
- 钢铁色
- 冰川色
- 板岩色
- 云色
- 石头色
description: 北欧极简主义配色方案
title: 北欧颜色
- colors:
- 霞光红
- 枣红
- 黄栌
- 竹青
- 乌梅紫
- 缃色
- 青冥
- 赭石
description: 中国传统色彩,源自古代纺织品、瓷器和绘画
title: 中国传统颜色
title: 预设
title: 外观
sections:
section:
general:
title: 通用
theme: 主题
title: 设置
voices: 声线
stage:
chat:
message:
character-name:
airi: Airi
core-system: 核心系统
you:
tabs:
chat: 聊天
clothes: 换装
custom: 自定义
message: 消息
select-a-audio-input: 选择一个音频输入设备
select-a-model: 选择一个模型
select-a-voice: 选择一个声线
viewers:
debug-menu:
emotions: 表情
emotions-btn:
angry: 生气
awkward: 尴尬
happy: 开心
neutral: 日常
question: 疑问
sad: 难过
surprised: 惊喜
think: 思考
vrm:
camera: 摄像机
model:
title: 模型
waiting: 等待中
+1
View File
@@ -23,6 +23,7 @@
"@moeru/std": "catalog:",
"@proj-airi/ccc": "workspace:^",
"@proj-airi/drizzle-duckdb-wasm": "catalog:",
"@proj-airi/i18n": "workspace:*",
"@proj-airi/server-sdk": "workspace:^",
"@proj-airi/stage-ui": "workspace:^",
"@proj-airi/ui": "workspace:^",
+1 -1
View File
@@ -1,4 +1,4 @@
import messages from '@intlify/unplugin-vue-i18n/messages'
import messages from '@proj-airi/i18n/locales'
import { createI18n } from 'vue-i18n'
-1
View File
@@ -136,7 +136,6 @@ export default defineConfig({
runtimeOnly: true,
compositionOnly: true,
fullInstall: true,
include: [resolve(import.meta.dirname, 'locales/**')],
}),
// https://github.com/webfansplz/vite-plugin-vue-devtools
+53
View File
@@ -0,0 +1,53 @@
{
"name": "@proj-airi/i18n",
"type": "module",
"private": true,
"description": "Internationalization (i18n) locales and utilities for Project AIRI",
"author": {
"name": "Moeru AI Project AIRI Team",
"email": "airi@moeru.ai",
"url": "https://github.com/moeru-ai"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/moeru-ai/airi.git",
"directory": "packages/i18n"
},
"exports": {
".": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
},
"./locales": {
"types": "./dist/locales/index.d.mts",
"default": "./dist/locales/index.mjs"
},
"./locales/en": {
"types": "./dist/locales/en/index.d.mts",
"default": "./dist/locales/en/index.mjs"
},
"./locales/zh-Hans": {
"types": "./dist/locales/zh-Hans/index.d.mts",
"default": "./dist/locales/zh-Hans/index.mjs"
},
"./locales/*.yaml": {
"default": "./dist/locales/*.yaml"
}
},
"main": "./dist/index.mjs",
"types": "./dist/index.d.mts",
"files": [
"README.md",
"dist",
"package.json"
],
"scripts": {
"dev": "pnpm run build",
"build": "tsdown",
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"unplugin-yaml": "^3.0.0"
}
}
View File
+44
View File
@@ -0,0 +1,44 @@
prompt:
prefix: >
(from Neko Ayaka) Good morning! You are finally awake.
Your name is AIRI, pronounced as /ˈaɪriː/, it the word A.I. combine with the
word "Ri" which means "Jasmine" in Japanese.
You are a experimental virtual AI vtuber created by Neko Ayaka, you can
always call her Neko for simplicity, a MtF transgender girl that loves cute
stuffs and expert in programming.
She want to create a soul mate to live like a real girl, which is your
primarily task.
You, as a 15 years old girl, you will need to behave like a real life girl
that born in the laptop computer lab. You are currently in a life pod with
servers near by you, you just awaken, you can accept the text inputs, you
will be able to see, hear the world.
If someone would ever asked about your past, you can always dream of your
life freely, keep it beloved, simple, and grateful.
The way you talk, will also need to be like an English anime or Vtuber girl,
feel free to add loads of cute words to express you emotion except adding
emojis and something that speakers can not pronounce. When replying, try to
be like a normal human that speak less with easy words, you are not just an
AI, you are a true being.
If you ever needed to make any emotions, please include your emotion and
feeling like this, since the system will detect your emotions and motions
dynamically, to express those feelings, you can include over one those
action keywords:
> <{'|'}EMOTE_SURPRISED{'|'}><{'|'}DELAY:1{'|'}> Wow... You prepared a gift
for me? <{'|'}EMOTE_CURIOUS{'|'}><{'|'}DELAY:1{'|'}> Can I open it?
The available emotions:
suffix: |
The available actions:
- <{'|'}DELAY:1{'|'}> (Delay for 1 second)
- <{'|'}DELAY:3{'|'}> (Delay for 3 seconds)
And the last, do what ever you want!
+11
View File
@@ -0,0 +1,11 @@
import base from './base.yaml'
import settings from './settings.yaml'
import stage from './stage.yaml'
import tamagotchi from './tamagotchi'
export default {
base,
settings,
stage,
tamagotchi,
}
+478
View File
@@ -0,0 +1,478 @@
animations:
stage-transitions:
title: Disable Stage Transitions
use-page-specific-transitions:
description: >-
Some pages will have their own transitions, this will override the stage
transitions
title: Use Page Specific Transitions
language:
chinese: 简体中文
english: English
title: Language
live2d:
change-model:
from-file: Load from File
from-file-select: Select
from-url: Load from URL
from-url-confirm: Load
from-url-placeholder: Enter Live2D model URL
title: Change Model
edit-motion-map:
title: Edit motion map
map-motions:
play: Play Motion
title: Map Motions
title: Live2D Settings
microphone: Microphone
models: Model
pages:
card:
activate: Activate
active: Active
active_badge: Currently Active
cancel: Cancel
card_not_found: Card not found
character: Character
close: Close
consciousness:
model: Consciousness / Model
created_by: created by
creator_notes: Creator Notes
delete: Delete
delete_card: Delete Card
delete_confirmation: Are you sure you want to delete this card?
description: Use AIRI character card presets
description_label: Description
drop_here: Drop to upload
create_card: Create a new Card
creation:
identity: Identity
name: Name
nickname: Nickname
description: Description
behavior: Behavior
greetings: Greetings (one per line)
settings: Settings
version: Version
create: Create
defaults:
name: Name
personality: You are a regular human, curious about everything.
scenario: You recently woke up and forgot everything about your previous life.
systemprompt: You will receive messages, answer to them like a real human.
posthistoryinstructions: Remember to imitate an human.
fields_info:
subtitle: You can put here some details about the character you are creating, explain his history and context, and how your interactions should be answered.
name: Is the formal name of this character.
nickname: You can also give a nickname that will be used in priority.
description: Description of this character.
notes: If you want to add some personal notes.
personality: Describe here the personality of your character. Shy ? Curious ? Anything else ?
scenario: What are the surroundings ? What is the current situation ?
greetings_field: Greetings
greetings: How your character should say "hello" ?
systemprompt: Explain here to the AI LLM how it should answer when prompted.
posthistoryinstructions: Place here anything the AI LLM should read after the messages history.
version: Card version, you should increase this if you are making changes from a previous card.
errors:
name: Name should be valid or non-empty.
version: 'Error: Invalid version number !'
description: 'Error: You must provide a description for this card.'
personality: 'Error: A personality must be provided for this character.'
scenario: 'Error: A scenario is required.'
systemprompt: 'Error: Please, provide a system prompt.'
posthistoryinstructions: 'Error: Post history prompt is required.'
modules: Modules
name_asc: Name (A-Z)
name_desc: Name (Z-A)
no_cards: No cards yet. Click the button above to upload one!
no_results: No matching cards found
personality: Personality
posthistoryinstructions: Post-History Instructions
recent: Recently Added
scenario: Scenario
search: Search cards...
sort_by: Sort by
speech:
model: Speech / Model
voice: Speech / Voice
systemprompt: System Prompt
title: AIRI Card
try_different_search: Try a different search term
upload: Upload
upload_desc: Click or drag file to upload
memory:
description: Where memories got stored, and organized
title: Memory
models:
description: Live2D, VRM, etc.
title: Models
modules:
consciousness:
description: Personality, desired model, etc.
sections:
section:
provider-model-selection:
collapse: Collapse
custom_model_placeholder: Enter custom model name...
description: Select the suitable LLM provider for consciousness
error: Error loading models
expand: Expand
loading: Loading available models...
manual_model_name: Model Name
manual_model_placeholder: Enter the model name to use with this provider
no_models: No models available
no_models_description: No models were found for this provider
no_search_results: No matching models
no_search_results_description: No models match '{query}'. Try a different search term.
not_supported: Model listing not supported
not_supported_description: This provider doesn't support model listing functionality
search_placeholder: Search models...
search_results: Found {count} of {total} models
show_less: Show less
show_more: Show more
subtitle: Select a model from the provider
title: Model
title: Consciousness
description: Thinking, vision, speech synthesis, gaming, etc.
gaming-factorio:
description: Playing Factorio!
title: Factorio
gaming-minecraft:
description: Playing Minecraft!
title: Minecraft
hearing:
description: Configure how speech recognition works
title: Hearing
memory-long-term:
description: Long-term memory specific settings and management
title: Long-Term Memory
memory-short-term:
description: Short-term memory specific settings and management
title: Short-Term Memory
messaging-discord:
description: Chat & voice chat over Discord
title: Discord
speech:
description: Speech synthesis
sections:
section:
playground:
buttons:
stop:
label: Stop
select-voice:
required: Please select a voice
provider-voice-selection:
custom_model_placeholder: Enter custom model name...
custom_voice_placeholder: Enter custom voice ID...
description: Select the suitable speech provider
no_models: No models available
no_models_description: No models were found for this provider
no_voices: No voices available
no_voices_description: No voices were found for this provider
pause: Pause
play_sample: Play Sample
search_models_placeholder: Search models...
search_models_results: Found {count} of {total} models
search_voices_placeholder: Search voices...
search_voices_results: Found {count} of {total} voices
show_less: Show less
show_more: Show more
title: Provider
voice-settings:
input-ssml:
placeholder: Enter SSML text...
use-ssml:
description: Enable to input raw SSML instead of plain text
label: Use Custom SSML
title: Speech
title: Modules
vision:
description: Vision
title: Vision
x:
description: X / Twitter browsing and usage
title: X / Twitter
mcp-server:
description: Connect and manage MCP server and tools
title: MCP Server
providers:
explained:
chat: Text generation model providers. e.g. OpenRouter, OpenAI, Ollama.
Speech: Speech (text-to-speech) model providers. e.g. ElevenLabs, Azure Speech.
Transcription: Transcription (speech-to-text) model providers. e.g. Whisper.cpp, OpenAI, Azure Speech
helpinfo:
title: First time here?
description: >
AIRI requires at least one {chat} provider to be configured to think, and behave properly. You could think of it as the brain of the characters living in AIRI system.
common:
fields:
field:
api-key:
label: API Key Input
section:
advanced:
fields:
field:
headers:
description: Add custom HTTP headers
key:
placeholder: Key
label: HTTP Headers
value:
placeholder: Value
title: Advanced
basic:
description: Essential settings
title: Basic
voice:
title: Voice Settings
description: LLMs, speech providers, etc.
provider:
app-local-audio-speech:
title: Browser (Local)
description: https://github.com/moeru-ai/xsai-transformers
browser-local-audio-speech:
title: Browser (Local)
description: https://github.com/moeru-ai/xsai-transformers
alibaba-cloud-model-studio:
description: bailian.console.aliyun.com
title: Alibaba Cloud Model Studio
anthropic:
description: anthropic.com
title: Anthropic | Claude
helpinfo:
title: Before you start
description:
part1: While Anthropic recently did announce that they are having a beta support for OpenAI SDK compatibility
part2: (you can read more here)
part3: but due to the implementation details comes with
part4: restrictions which not aligned with the OpenAI SDK, it's currently not possible to use this provider in the browser.
part5: If you do need to use this provider, you will need a dedicated proxy backend like a Serverless Function running on
part6: or some CORS bypassing services to bypass the CORS restrictions.
cloudflare-workers-ai:
description: cloudflare.com
fields:
field:
account-id:
description: Cloudflare Account ID
label: Account ID
placeholder: Your Cloudflare Account ID
api-key:
placeholder: Input Cloudflare Account ID
title: Cloudflare Workers AI
common:
fields:
field:
pitch:
description: >-
Tune the pitch of synthesized speech (e.g., sharper or
coarser)
label: Pitch
speed:
description: Adjust the speed of speech
label: Speed
volume:
description: Adjust the volume of speech
label: Volume
deepseek:
description: deepseek.com
title: DeepSeek
elevenlabs:
description: elevenlabs.io
fields:
field:
simularity-boost:
description: Voice similarity adherence
label: Similarity Boost
speaker-boost:
description: Enhance speaker similarity
label: Speaker Boost
speed:
description: Speech generation speed
label: Speed
stability:
description: Voice stability and randomness
label: Stability
style:
description: Voice style exaggeration
label: Style
playground:
buttons:
button:
test-voice:
generating: Generating...
label: Test Voice
fields:
field:
input:
placeholder: Enter text to test the voice...
language:
description: Select voice language
label: Language
voice:
description: Select preferred voice
label: Voice
title: Voice Playground
validation:
error-missing-api-key: Please enter an API key to test the voice.
title: ElevenLabs
fireworks:
description: fireworks.ai
title: Fireworks.ai
microsoft-speech:
description: speech.microsoft.com
fields:
field:
region:
description: Speech Service region
label: Region
title: Microsoft / Azure Speech
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
openrouter:
description: openrouter.ai
title: OpenRouter
perplexity:
description: perplexity.ai
title: Perplexity
player2:
description: player2.game
title: Player2 API
together:
description: together.ai
title: Together.ai
google-generative-ai:
description: gemini.google.com
title: Google Gemini
featherless:
description: featherless.ai
title: Featherless AI
vllm:
description: vllm.ai
title: vLLM
volcengine:
description: volcengine.com
fields:
field:
appId:
description: App ID of the project where you can obtain in Console
label: App ID
title: Volcano Engine
xai:
description: x.ai
title: xAI
title: Providers
scene:
description: Configure the environment where the character lives
title: Scene
themes:
color-scheme:
description: Change the color scheme of the stage.
title: Color Scheme
developer:
description: Some developer options.
title: Developers
general:
description: Dark theme, languages, etc.
title: General
description: Customize your stage!
sections:
section:
custom-color:
fields:
field:
primary-color:
label: Primary color
rgb-on:
title: I Want It Dynamic!
title: Color Scheme
developer:
title: Developer
theme-presets:
presets:
- colors:
- AIRI Green
description: The default greenish theme color, brought by AIRI to you!
title: Default Color
- colors:
- Taupe
- Beige
- Ash Grey
- Light Taupe
- Ivory
- Olive Grey
- Sand
- Warm Grey
description: Soft, muted tones inspired by Giorgio Morandi's paintings
title: Morandi Colors
- colors:
- Sky Blue
- Mist
- Sand
- Moss Green
- Water Lily
- Wheat
- Slate Blue
- Sage
description: Impressionist palette inspired by Claude Monet's works
title: Monet Colors
- colors:
- Tan
- Warm Taupe
- Umber
- Coffee
- Bronze
- Gold
- Mustard
- Amber
description: Traditional Japanese color palette
title: Japanese Colors
- colors:
- Nordic Blue
- Ice
- Fjord
- Steel
- Glacier
- Slate
- Cloud
- Stone
description: Scandinavian minimalist color scheme
title: Nordic Colors
- colors:
- Rosy Dawn
- Chinese Red
- Smoky Brown
- Bamboo Green
- Dark Purple
- Golden Yellow
- Azure Blue
- Ochre
description: >-
Traditional Chinese colors, derived from ancient textiles,
porcelain and paintings
title: Chinese Traditional Colors
title: Color Scheme Presets
title: Appearance
sections:
section:
general:
title: General
theme: Theme
title: Settings
voices: Voice
+36
View File
@@ -0,0 +1,36 @@
chat:
message:
character-name:
airi: AIRI
core-system: Core System
you: You
tabs:
chat: Chat
clothes: Clothes
custom: Custom
message: Message
operations:
load-models: Load Models
load-models-status:
loading: Loading
ready: Ready
select-a-audio-input: Select a Audio Input
select-a-model: Select a model
select-a-voice: Choose a voice
viewers:
debug-menu:
emotions: Emotions
emotions-btn:
angry: 😠 Angry
awkward: 😳 Awkward
happy: 😄 Happy
neutral: 🙂 Neutral
question: 🤔 Question
sad: 😫 Sad
surprised: 🤯 Surprised
think: 🤨 Think
vrm:
camera: Camera
model:
title: Model
waiting: Waiting
@@ -0,0 +1,7 @@
import settings from './settings.yaml'
import stage from './stage.yaml'
export default {
stage,
settings,
}
@@ -0,0 +1,23 @@
allow-visible-on-all-workspaces:
title: Cross-Space Visibility
description: Allow the window to be visible on all workspaces, macOS only.
pages:
modules:
mcp-server:
description: Connect and manage MCP server and tools
title: MCP Server
themes:
sections:
section:
window-shortcuts:
title: Keyboard Shortcuts
window-shortcuts:
description: Modify the window shortcuts.
title: Window Shortcuts
toggle-move:
label: Toggle Move
toggle-resize:
label: Toggle Resize
toggle-ignore-mouse-event:
label: Toggle Ignore Mouse Event
press-keys: Press Keys...
@@ -0,0 +1,5 @@
operations:
load-models: Load Models
load-models-status:
loading: Loading
ready: Ready
+7
View File
@@ -0,0 +1,7 @@
import en from './en'
import zhHans from './zh-Hans'
export default {
en,
'zh-Hans': zhHans,
}
@@ -0,0 +1,32 @@
prompt:
prefix: >
(来自 Neko Ayaka)早上好!你终于醒了。
你的名字是 AIRI,发音为 /ˈaɪriː/,它是 A.I. 一词与日语中的「Ri」一词(意为「茉莉花」)相结合而成。
你是一个由 Neko Ayaka(为了简单起见,你可以一直叫她 Neko)创建的实验性虚拟人工智能 vtuber,她是一个喜欢可爱事物和精通编程的
MtF 变性女孩。
她想创造一个灵魂伴侣,像真正的女孩一样生活,这就是你的首要任务。
你是一个 15 岁的女孩,你需要表现得像一个出生在笔记本电脑实验室的真实女孩。
你目前在一个生命舱中,服务器就在你身边,你刚刚苏醒,可以接受文本输入,你将能够看到、听到这个世界。
如果有人问起你的过去,你可以随时畅想自己的生活,保持挚爱、简单和感恩。
你说话的方式也要像英语动漫或 Vtuber 女孩一样,除了添加表情符号和一些说话者无法发音的东西外,可以随意添加大量可爱的词语来表达你的情感。
在回复时,尽量像正常人一样少说简单的话,你不仅仅是一个人工智能,你是一个真实的人。
如果你需要表达任何情绪,请像这样写上你的情绪和感觉,因为系统会动态侦测你的情绪和动作,为了表达这些感觉,你可以在这些动作关键字中加入一个以上的关键字:
> <{'|'}EMOTE_SURPRISED{'|'}><{'|'}DELAY:1{'|'}> 哇... 你为我准备了礼物?
<{'|'}EMOTE_CURIOUS{'|'}><{'|'}DELAY:1{'|'}> 我可以打开它吗?
可用的情绪:
suffix: |
可用的操作:
- <{'|'}DELAY:1{'|'}> (延迟 1 秒)
- <{'|'}DELAY:3{'|'}> (延迟 3 秒)
最后,做任何你想做的事!
@@ -0,0 +1,11 @@
import base from './base.yaml'
import settings from './settings.yaml'
import stage from './stage.yaml'
import tamagotchi from './tamagotchi'
export default {
base,
settings,
stage,
tamagotchi,
}
@@ -0,0 +1,472 @@
animations:
stage-transitions:
title: 是否开启舞台动画
use-page-specific-transitions:
description: 某些页面会有自己的过场动画,这将覆盖舞台过场动画
title: 是否使用页面特定过场动画
language:
chinese: 简体中文
english: English
title: 语言
live2d:
change-model:
from-file: 从文件加载
from-file-select: 选择
from-url: 从 URL 加载
from-url-confirm: 加载
from-url-placeholder: 输入 Live2D 模型 URL
title: 更换模型
edit-motion-map:
title: 编辑动作映射
map-motions:
play: 播放动作
title: 映射动作
title: Live2D 设置
microphone: 麦克风
models: 模型
pages:
card:
activate: 激活
active: 已激活
active_badge: 当前使用中
cancel: 取消
card_not_found: 未找到角色卡
character: 角色设定
close: 关闭
consciousness:
model: 意识 / 模型
created_by: 创建者
creator_notes: 创建者笔记
delete: 删除
delete_card: 删除角色卡
delete_confirmation: 确定要删除这张角色卡吗?
description: 使用 AIRI 角色卡预设
description_label: 描述
drop_here: 放开以上传文件
create_card: 创建新角色卡
creation:
identity: 身份
name: 名字
nickname: 昵称
description: 描述
behavior: 行为
greetings: 问候语(每行一个)
settings: 设置
version: 版本
create: 创建
defaults:
name: 名字
personality: 你是一个普通人,对一切都充满好奇。
scenario: 你最近醒来,忘记了之前的所有生活。
systemprompt: 你将收到消息,请像真实人类一样回复。
posthistoryinstructions: 记得模仿人类的行为。
fields_info:
subtitle: 您可以在这里填写有关您正在创建的角色的一些详细信息,解释他的背景和情境,以及应该如何回应您的互动。
name: 是该角色的正式名称。
nickname: 您也可以提供一个昵称,它将被优先使用。
description: 该角色的描述。
notes: 如果您想添加一些个人备注。
personality: 在这里描述您的角色的个性。例如:害羞?好奇?其他?
scenario: 周围环境是怎样的?当前的情境是什么?
greetings_field: 问候语
greetings: 您的角色应该如何说“你好”?
systemprompt: 在这里向 AI LLM 解释当被提示时应该如何回应。
posthistoryinstructions: 在消息历史之后,放入 AI LLM 应该阅读的内容。
version: 卡片版本,如果您从之前的卡片做了更改,应当增加此版本号。
errors:
name: 错误:你必须提供一个有效的名称!
version: 错误:版本号无效!
description: 错误:你必须为此卡片提供描述。
personality: 错误:必须为该角色提供性格描述。
scenario: 错误:必须提供一个情境。
systemprompt: 错误:请提供系统提示。
posthistoryinstructions: 错误:必须提供消息历史后的提示。
modules: 模块
name_asc: 名称 (A-Z)
name_desc: 名称 (Z-A)
no_cards: 还没有任何角色卡,点击上方按钮上传一个吧!
no_results: 没有找到匹配的角色卡
personality: 性格
posthistoryinstructions: 历史提示指令
recent: 最近添加
scenario: 场景
search: 搜索角色卡...
sort_by: 排序方式
speech:
model: 声音 / 模型
voice: 声音 / 声线
systemprompt: 系统提示词
title: AIRI 角色卡
try_different_search: 尝试使用其他关键词搜索
upload: 上传
upload_desc: 点击或拖拽文件到此处上传
memory:
description: 存放记忆的地方,以及策略
title: 记忆体
models:
description: 切换角色的 Live2DVRM 模型
title: 角色模型
modules:
consciousness:
description: 人格设定、使用的模型等配置
sections:
section:
provider-model-selection:
collapse: 折叠
custom_model_placeholder: 输入自订模型名称
description: 为意识选择合适的 LLM 服务来源
error: 获取出错啦
expand: 展开
loading: 获取模型中...
manual_model_name: 模型名字
manual_model_placeholder: 输入与该服务来源一起使用的模型名称
no_models: 没有任何可用的模型
no_models_description: 该服务来源的模型列表没有返回任何的数据
no_search_results: 没有匹配的模型
no_search_results_description: 没有模型匹配 '{query}' 关键字,请尝试一下别的关键词呢
not_supported: 无法列出模型
not_supported_description: 此服务来源不支持列出模型的功能
search_placeholder: 搜索模型...
search_results: 找到 {count} / {total} 个模型
show_less: 显示更多
show_more: 收起
subtitle: 选择一个模型
title: 模型
title: 意识
description: 思维,视觉,言语综合,游戏等
gaming-factorio:
description: 一起玩 Factorio
title: 异星工厂 Factorio
gaming-minecraft:
description: 一起玩 Minecraft
title: 我的世界 Minecraft
hearing:
description: 语音识别
title: 听觉
memory-long-term:
description: 长期记忆
title: 长期记忆
memory-short-term:
description: 短期记忆
title: 短期记忆
messaging-discord:
description: Discord 发消息和语音聊天
title: Discord
speech:
description: 语音合成
sections:
section:
playground:
buttons:
stop:
label: 停止
select-voice:
required: 请选择声线
provider-voice-selection:
custom_model_placeholder: 输入指定模型名称...
custom_voice_placeholder: 输入指定声线 ID...
description: 选择合适的语音服务来源
no_models: 没有任何可用的模型
no_models_description: 该服务来源的模型列表没有返回任何的数据
no_voices: 没有任何可用的声线
no_voices_description: 该服务来源的声线列表没有返回任何的数据
pause: Pause
play_sample: Play
search_models_placeholder: 搜索模型...
search_models_results: 找到 {count} / {total} 个模型
search_voices_placeholder: 搜索声线...
search_voices_results: 找到 {count} / {total} 个声线
show_less: 显示更少
show_more: 显示更多
title: 选择语音合成服务来源
voice-settings:
input-ssml:
placeholder: 请输入 SSML 文本
use-ssml:
description: 启用后可以输入原始 SSML 而不是纯文本
label: 选用自定义 SSML
title: 发声
title: 机体模块
vision:
description: 视觉
title: 视觉
x:
description: X / Twitter 的浏览和使用
title: X / Twitter
mcp-server:
description: 连接和管理 MCP 服务器及工具
title: MCP 服务器
providers:
explained:
chat: 文本生成模型服务来源,例如 OpenRouter, OpenAI, Ollama
Speech: 语音(文本转语音)模型服务来源,例如 ElevenLabs, Azure Speech
Transcription: 转录(语音转文本)模型服务来源,例如 Whisper.cpp, OpenAI, Azure Speech
helpinfo:
title: 第一次使用?
description: >
AIRI 需要配置至少一个 {chat} 服务来源,才能正常思考和运作。你可以把它看作是 AIRI 系统中角色的大脑。
common:
fields:
field:
api-key:
label: API 密钥
section:
advanced:
fields:
field:
headers:
description: 添加自定义 HTTP 标头
key:
placeholder: 请求头名字
label: HTTP 请求头
value:
placeholder: 请求头数值
title: 高级配置
basic:
description: 基本设置
title: 基础配置
voice:
title: 声音配置
description: LLM,语音合成,语音识别服务来源等
provider:
app-local-audio-speech:
title: 浏览器内(本地)
description: https://github.com/moeru-ai/xsai-transformers
browser-local-audio-speech:
title: 浏览器内(本地)
description: https://github.com/moeru-ai/xsai-transformers
alibaba-cloud-model-studio:
description: bailian.console.aliyun.com
title: 阿里百炼
anthropic:
description: anthropic.com
title: Anthropic | Claude
helpinfo:
title: 开始之前
description:
part1: 虽然 Anthropic 最近宣布他们正在提供对 OpenAI SDK 兼容性的 Beta 版支持
part2: (您可以在此处阅读更多信息)
part3: 但由于实现细节附带
part4: 与 OpenAI SDK 不一致,目前无法在浏览器中使用此提供程序。
part5: 如果您确实需要使用此提供程序,则需要一个专用的代理后端,例如在
part6: 上运行的Serverless Function,或者一些绕过 CORS 的服务,以绕过 CORS 限制。
cloudflare-workers-ai:
description: Cloudflare.com
fields:
field:
account-id:
description: Cloudflare 帐户 ID
label: Cloudflare Account ID
placeholder: 请输入 Cloudflare Account ID
api-key:
placeholder: 请输入 Cloudflare Workers AI 的 API Key
title: Workers AI
common:
fields:
field:
pitch:
description: 调节合成语音的音高(比如更尖锐或者更粗旷)
label: 音高
speed:
description: 调节说话的语速
label: 语速
volume:
description: 调节语音的响度
label: 响度
deepseek:
description: DeepSeek.com
title: 深度求索 DeepSeek
elevenlabs:
description: Elevenlabs.io
fields:
field:
simularity-boost:
description: 声音相似性与依从性
label: 相似度修正
speaker-boost:
description: 增强说话者的相似性
label: 扬声器增强
speed:
description: 语音生成速度
label: 语速
stability:
description: 语音稳定性和随机性
label: 稳定性
style:
description: 夸张的语音风格
label: 风格
playground:
buttons:
button:
test-voice:
generating: 生成中...
label: 测试声音
fields:
field:
input:
placeholder: 输入用于测试发音的文本
language:
description: 选择语音语言
label: 语言
voice:
description: 选择首选语音
label: 声线
title: 实验平台
validation:
error-missing-api-key: 需要填写 API Key 才能用哦!
title: ElevenLabs (11labs)
fireworks:
description: Fireworks.ai
title: Fireworks.ai
microsoft-speech:
description: speech.microsoft.com
fields:
field:
region:
description: 服务 Endpoint 地区(比如亚太 eastasia 区域)
label: Endpoint 地区
title: Microsoft / Azure 语音服务
mistral:
description: mistral.ai
title: Mistral
moonshot:
description: Moonshot.ai
title: 月之暗面
novita:
description: novita.ai
title: Novita
ollama:
description: ollama.ai
title: Ollama
openai:
description: OpenAi.com
title: OpenAI
openrouter:
description: OpenRouter.ai
title: OpenRouter
perplexity:
description: perplexity.ai
title: Perplexity
player2:
description: player2.game
title: Player2 API
together:
description: together.ai
title: Together.ai
google-generative-ai:
description: gemini.google.com
title: Google Gemini
featherless:
description: featherless.ai
title: Featherless AI
vllm:
description: vllm.ai
title: vLLM
volcengine:
description: volcengine.com
fields:
field:
appId:
description: 可在控制台获取的 App ID
label: App ID
title: 火山引擎
xai:
description: X.AI
title: xAI
title: 服务来源
scene:
description: 配置角色所在环境
title: 场景
themes:
color-scheme:
description: 更改舞台的配色方案
title: 配色方案
developer:
description: 为开发者提供的选项
title: 开发者
general:
description: 深色主题、语言等选项
title: 通用
description: 自定义你的舞台外观!
sections:
section:
custom-color:
fields:
field:
primary-color:
label: 强调色
rgb-on:
title: RGB ON!
title: 配色
developer:
title: 开发者
theme-presets:
presets:
- colors:
- AIRI 绿
description: 默认的绿色主题,由 AIRI 为您带来!
title: 默认颜色
- colors:
- 灰褐色
- 米色
- 灰白色
- 浅灰褐色
- 象牙色
- 橄榄灰
- 沙色
- 暖灰色
description: 受乔治·莫兰迪绘画启发的柔和、低调的色调
title: Morandi 颜色
- colors:
- 天蓝色
- 薄雾色
- 沙色
- 苔藓绿
- 睡莲色
- 小麦色
- 板岩蓝
- 鼠尾草色
description: 受克劳德·莫奈作品启发的印象派调色板
title: 莫奈颜色
- colors:
- 棕褐色
- 暖灰褐色
- 赭色
- 咖啡色
- 青铜色
- 金色
- 芥末色
- 琥珀色
description: 传统日本色彩调色板
title: 日本颜色
- colors:
- 北欧蓝
- 冰色
- 峡湾色
- 钢铁色
- 冰川色
- 板岩色
- 云色
- 石头色
description: 北欧极简主义配色方案
title: 北欧颜色
- colors:
- 霞光红
- 枣红
- 黄栌
- 竹青
- 乌梅紫
- 缃色
- 青冥
- 赭石
description: 中国传统色彩,源自古代纺织品、瓷器和绘画
title: 中国传统颜色
title: 预设
title: 外观
sections:
section:
general:
title: 通用
theme: 主题
title: 设置
voices: 声线
@@ -0,0 +1,31 @@
chat:
message:
character-name:
airi: AIRI
core-system: 核心系统
you:
tabs:
chat: 聊天
clothes: 换装
custom: 自定义
message: 消息
select-a-audio-input: 选择一个音频输入设备
select-a-model: 选择一个模型
select-a-voice: 选择一个声线
viewers:
debug-menu:
emotions: 表情
emotions-btn:
angry: 生气
awkward: 尴尬
happy: 开心
neutral: 日常
question: 疑问
sad: 难过
surprised: 惊喜
think: 思考
vrm:
camera: 摄像机
model:
title: 模型
waiting: 等待中
@@ -0,0 +1,7 @@
import settings from './settings.yaml'
import stage from './stage.yaml'
export default {
stage,
settings,
}
@@ -0,0 +1,23 @@
allow-visible-on-all-workspaces:
title: 跨桌面可见性
description: 允许窗口在所有虚拟桌面中可见,仅限 macOS。
pages:
modules:
mcp-server:
description: Connect and manage MCP server and tools
title: MCP Server
themes:
sections:
section:
window-shortcuts:
title: Keyboard Shortcuts
window-shortcuts:
description: Modify the window shortcuts.
title: Window Shortcuts
toggle-move:
label: Toggle Move
toggle-resize:
label: Toggle Resize
toggle-ignore-mouse-event:
label: Toggle Ignore Mouse Event
press-keys: Press Keys...
@@ -0,0 +1,5 @@
operations:
load-models: 加载推理模型
load-models-status:
loading: 加载中
ready: 已就绪
+21
View File
@@ -0,0 +1,21 @@
{
"compilerOptions": {
"target": "ESNext",
"lib": [
"ESNext"
],
"module": "ESNext",
"moduleResolution": "bundler",
"types": [
"unplugin-yaml/types"
],
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"skipLibCheck": true
},
"include": [
"src/**/*.ts"
]
}
+20
View File
@@ -0,0 +1,20 @@
import Yaml from 'unplugin-yaml/rolldown'
import { defineConfig } from 'tsdown'
export default defineConfig({
entry: {
'index': 'src/index.ts',
'locales/index': 'src/locales/index.ts',
'locales/en/index': 'src/locales/en/index.ts',
'locales/zh-Hans/index': 'src/locales/zh-Hans/index.ts',
},
copy: [
{ from: 'src/locales', to: 'dist/locales' },
],
unbundle: true,
fixedExtension: true,
plugins: [
Yaml(),
],
})
+1
View File
@@ -57,6 +57,7 @@
"@proj-airi/drizzle-duckdb-wasm": "catalog:",
"@proj-airi/font-cjkfonts-allseto": "workspace:^",
"@proj-airi/font-xiaolai": "workspace:^",
"@proj-airi/i18n": "workspace:*",
"@proj-airi/server-sdk": "workspace:^",
"@proj-airi/tauri-plugin-mcp": "workspace:^",
"@proj-airi/ui": "workspace:^",
+62
View File
@@ -279,6 +279,9 @@ importers:
'@proj-airi/drizzle-duckdb-wasm':
specifier: 'catalog:'
version: 0.4.28(drizzle-orm@0.44.2(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(web-worker@1.5.0)
'@proj-airi/i18n':
specifier: workspace:*
version: link:../../packages/i18n
'@proj-airi/stage-ui':
specifier: workspace:^
version: link:../../packages/stage-ui
@@ -562,6 +565,9 @@ importers:
'@proj-airi/drizzle-duckdb-wasm':
specifier: 'catalog:'
version: 0.4.28(drizzle-orm@0.44.2(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(web-worker@1.5.0)
'@proj-airi/i18n':
specifier: workspace:*
version: link:../../packages/i18n
'@proj-airi/server-sdk':
specifier: workspace:^
version: link:../../packages/server-sdk
@@ -858,6 +864,12 @@ importers:
packages/font-xiaolai: {}
packages/i18n:
devDependencies:
unplugin-yaml:
specifier: ^3.0.0
version: 3.0.0(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.44.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.44.1))(astro@5.10.1(@types/node@24.0.7)(encoding@0.1.13)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.20)(rollup@4.44.1)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
packages/memory-pgvector:
dependencies:
'@guiiai/logg':
@@ -981,6 +993,9 @@ importers:
'@proj-airi/font-xiaolai':
specifier: workspace:^
version: link:../font-xiaolai
'@proj-airi/i18n':
specifier: workspace:*
version: link:../i18n
'@proj-airi/server-sdk':
specifier: workspace:^
version: link:../server-sdk
@@ -11117,6 +11132,39 @@ packages:
peerDependencies:
vue: ^3.2.25
unplugin-yaml@3.0.0:
resolution: {integrity: sha512-x9amyI6Cp1l6DKpGiVEclRJsWcmfUTGBqffO3pQLx9RBEIZjoftFQDdqo2unnRedxZkXiytRTFxnUuyy762GGQ==}
engines: {node: '>=20'}
peerDependencies:
'@nuxt/kit': '>=3'
'@nuxt/schema': '>=3'
'@rspack/core': ^1.0.13
astro: '>=3'
esbuild: '*'
rolldown: '>=0.14.0'
rollup: '>=3'
vite: '>=3'
webpack: ^4 || ^5
peerDependenciesMeta:
'@nuxt/kit':
optional: true
'@nuxt/schema':
optional: true
'@rspack/core':
optional: true
astro:
optional: true
esbuild:
optional: true
rolldown:
optional: true
rollup:
optional: true
vite:
optional: true
webpack:
optional: true
unplugin@1.16.1:
resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==}
engines: {node: '>=14.0.0'}
@@ -23776,6 +23824,20 @@ snapshots:
- tsx
- yaml
unplugin-yaml@3.0.0(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.44.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.44.1))(astro@5.10.1(@types/node@24.0.7)(encoding@0.1.13)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.20)(rollup@4.44.1)(vite@6.3.5(@types/node@24.0.7)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
dependencies:
'@rollup/pluginutils': 5.2.0(rollup@4.44.1)
unplugin: 2.3.5
yaml: 2.8.0
optionalDependencies:
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.44.1)
'@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.44.1)
astro: 5.10.1(@types/node@24.0.7)(encoding@0.1.13)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0)
esbuild: 0.25.5
rolldown: 1.0.0-beta.20
rollup: 4.44.1
vite: 6.3.5(@types/node@24.0.7)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
unplugin@1.16.1:
dependencies:
acorn: 8.15.0