import { useState, useEffect } from 'react';
import { getStatus } from './api';

// ---------------------------------------------------------------------------
// Translation dictionaries
// ---------------------------------------------------------------------------

export type Locale = 'ar' | 'bn' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'fi' | 'fr' | 'he' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'nb' | 'nl' | 'pl' | 'pt' | 'ro' | 'ru' | 'sv' | 'th' | 'tl' | 'tr' | 'uk' | 'ur' | 'vi' | 'zh';

const translations: Record<Locale, Record<string, string>> = {
  zh: {
    // Navigation
    'nav.dashboard': '仪表盘',
    'nav.agent': '智能体',
    'nav.tools': '工具',
    'nav.cron': '定时任务',
    'nav.integrations': '集成',
    'nav.modelswitch': '模型配置',
    'nav.skills': '技能',
    'nav.history': '历史对话',
    'nav.general': '常规',
    'nav.memory': '记忆',
    'nav.config': 'Config',
    'nav.cost': '成本追踪',
    'nav.logs': '日志',
    'nav.doctor': '诊断',
    'nav.canvas': '画布',

    // Dashboard
    'dashboard.title': '仪表盘',
    'dashboard.provider': '提供商',
    'dashboard.model': '模型',
    'dashboard.uptime': '运行时间',
    'dashboard.temperature': '温度',
    'dashboard.gateway_port': '网关端口',
    'dashboard.memory_backend': '记忆后端',
    'dashboard.paired': '已配对',
    'dashboard.channels': '频道',
    'dashboard.health': '健康状态',
    'dashboard.status': '状态',
    'dashboard.overview': '概览',
    'dashboard.system_info': '系统信息',
    'dashboard.quick_actions': '快速操作',

    // Agent / Chat
    'agent.title': '智能体对话',
    'agent.send': '发送',
    'agent.placeholder': '输入任务或问我任何问题',
    'agent.start_conversation': '发送消息开始对话',
    'agent.type_message': '输入消息...',
    'agent.light_greeting_title': '你好，我是麒灵！',
    'agent.light_greeting_subtitle': '描述你的任务，我将为你自动执行，让复杂工作变得简单。',
    'agent.light_try_label': '你可以尝试：',
    'agent.light_refresh_label': '换一换',
    'agent.light_card_recommended': '推荐问题',
    'agent.light_card_knowledge': '知识库',
    'agent.light_card_knowledge_prompt': '帮我总结知识库里的重点内容。',
    'agent.light_suggestion_one': '如何去除白色衣服上的咖啡渍？',
    'agent.light_suggestion_two': '有哪些适合团队破冰的小游戏？',
    'agent.light_suggestion_three': '帮我写一封简短的客户跟进邮件。',
    'agent.light_suggestion_four': '如何把一篇长文章总结成要点？',
    'agent.light_suggestion_five': 'Excel 里怎么按条件求和？',
    'agent.light_suggestion_six': '帮我写一段产品上线的通知文案。',
    'agent.light_suggestion_seven': '初学者如何开始学习编程？',
    'agent.light_suggestion_eight': '出差三天需要带什么清单？',
    'agent.light_suggestion_nine': '用通俗语言解释什么是 API。',
    'agent.light_type_message': '输入任务或问我任何问题',
    'agent.light_tool_model': '智能模型调度',
    'agent.light_tool_expand': '深度思考',
    'agent.light_tool_search': '联网搜索',
    'agent.model_selector_title': '选择模型',
    'agent.model_selector_trial': '试用模型',
    'agent.model_selector_configured': '已配置模型',
    'agent.model_selector_no_trial': '无可用试用模型',
    'agent.model_selector_no_configured': '未配置其他模型',
    'agent.connecting': '连接中...',
    'agent.connected': '已连接',
    'agent.disconnected': '已断开',
    'agent.reconnecting': '重新连接中...',
    'agent.thinking': '思考中...',
    'agent.tool_call': '工具调用',
    'agent.tool_result': '工具结果',
    'agent.connection_error': '连接错误，正在尝试重连...',
    'agent.tool_call_prefix': '[工具调用]',
    'agent.tool_result_prefix': '[工具结果]',
    'agent.error_prefix': '[错误]',
    'agent.unknown_error': '未知错误',
    'agent.send_error': '发送消息失败，请重试。',
    'agent.copy_message': '复制消息',
    'agent.show_json': '展开 JSON',
    'agent.hide_json': '收起 JSON',
    'agent.toggle_system_messages': '切换系统消息显示',
    'agent.connected_status': '已连接',
    'agent.disconnected_status': '已断开',
    'agent.model_switching': '切换中...',
    'agent.model_loading': '加载中...',
    'agent.select_model': '选择模型',
    'agent.connection_closed': '连接意外关闭',
    'agent.check_configuration': '请检查您的配置',
    'agent.configuration_error': '配置错误',
    'agent.check_provider_settings': '请检查您的提供商设置（API 密钥、模型等）',
    'agent.message_error': '消息错误',
    'agent.failed_switch_model': '切换模型失败',
    'agent.model_switch_timeout': '模型切换超时，请检查网络后重试',
    'agent.generating_block_tip': '正在生成回答，请完成后再试',
    'agent.tool_activity_show': '显示工具活动',
    'agent.tool_activity_hide': '隐藏工具活动',
    'header.new_session': '开启新对话',
    'header.window_pin': '置顶',
    'header.window_minimize': '最小化',
    'header.window_maximize': '最大化',
    'header.window_close': '关闭',
    'modelswitch.tab.general': '常规',
    'modelswitch.tab.model': '模型配置',
    'modelswitch.always_on_top': '窗口置顶',
    'modelswitch.close_action': '关闭窗口时',
    'modelswitch.close_action_hide': '隐藏窗口',
    'modelswitch.close_action_exit': '直接退出',

    // Tools
    'tools.title': '可用工具',
    'tools.name': '名称',
    'tools.description': '描述',
    'tools.parameters': '参数',
    'tools.search': '搜索工具...',
    'tools.empty': '暂无可用工具。',
    'tools.count': '工具总数',
    'tools.agent_tools': '智能体工具箱',
    'tools.cli_tools': 'CLI 工具箱',
    'tools.parameter_schema': '参数结构',
    'tools.path': '路径',
    'tools.version': '版本',
    'tools.category': '类别',
    'tools.load_error': '加载工具失败',

    // Cron
    'cron.title': '定时任务',
    'cron.scheduled_tasks': '定时任务',
    'cron.add': '添加任务',
    'cron.add_job': '添加任务',
    'cron.add_modal_title': '添加 Cron 任务',
    'cron.delete': '删除',
    'cron.enable': '启用',
    'cron.disable': '禁用',
    'cron.name': '名称',
    'cron.name_optional': '名称（可选）',
    'cron.command': '命令',
    'cron.command_required': '命令',
    'cron.schedule': '计划',
    'cron.schedule_required': '计划',
    'cron.next_run': '下次执行',
    'cron.last_run': '上次执行',
    'cron.last_status': '上次状态',
    'cron.enabled': '已启用',
    'cron.enabled_status': '启用',
    'cron.disabled_status': '禁用',
    'cron.empty': '暂无定时任务。',
    'cron.confirm_delete': '确定要删除此任务吗？',
    'cron.load_error': '加载定时任务失败',
    'cron.validation_error': '计划和命令是必需的。',
    'cron.add_error': '添加任务失败',
    'cron.delete_error': '删除任务失败',
    'cron.cancel': '取消',
    'cron.adding': '添加中...',
    'cron.id': 'ID',
    'cron.actions': '操作',
    'cron.loading_run_history': '加载运行历史...',
    'cron.load_run_history_error': '加载运行历史失败',
    'cron.no_runs': '暂无运行记录。',
    'cron.recent_runs': '最近运行',
    'cron.yes': '是',
    'cron.no': '否',
    'cron.edit': '编辑',
    'cron.edit_modal_title': '编辑 Cron 任务',
    'cron.edit_error': '更新任务失败',
    'cron.saving': '保存中...',
    'cron.save': '保存',

    // Integrations
    'integrations.title': '集成',
    'integrations.available': '可用',
    'integrations.active': '活跃',
    'integrations.category': '类别',
    'integrations.status': '状态',
    'integrations.search': '搜索集成...',
    'integrations.empty': '未找到集成。',
    'integrations.activate': '激活',
    'integrations.deactivate': '停用',
    'integrations.load_error': '加载集成失败',
    'integrations.status_active': '活跃',
    'integrations.status_available': '可用',

    // Model Switch
    'modelswitch.title': '模型配置',
    'modelswitch.all': '全部',
    'modelswitch.empty': '未找到模型。',
    'modelswitch.status_active': '已激活',
    'modelswitch.status_available': '可用',
    'modelswitch.status_coming_soon': '即将推出',

    // Skills
    'skills.title': '技能',
    'skills.all': '全部',
    'skills.empty': '未找到技能。',
    'skills.enabled': '已启用',
    'skills.disabled': '已禁用',
    'skills.status_active': '已激活',
    'skills.status_available': '可用',
    'skills.status_coming_soon': '即将推出',

    // Memory
    'memory.title': '记忆存储',
    'memory.memory_title': '记忆',
    'memory.search': '搜索记忆...',
    'memory.search_placeholder': '搜索记忆条目...',
    'memory.add': '存储记忆',
    'memory.add_memory': '添加记忆',
    'memory.add_modal_title': '添加记忆',
    'memory.delete': '删除',
    'memory.key': '键',
    'memory.key_required': '键',
    'memory.content': '内容',
    'memory.content_required': '内容',
    'memory.category': '类别',
    'memory.category_optional': '类别（可选）',
    'memory.timestamp': '时间戳',
    'memory.session': '会话',
    'memory.score': '分数',
    'memory.empty': '未找到记忆条目。',
    'memory.confirm_delete': '确定要删除此记忆条目吗？',
    'memory.all_categories': '所有类别',
    'memory.search_button': '搜索',
    'memory.load_error': '加载记忆失败',
    'memory.saving': '保存中...',
    'memory.validation_error': '键和内容是必需的。',
    'memory.store_error': '保存记忆失败',
    'memory.delete_error': '删除记忆失败',
    'memory.delete_confirm': '删除？',
    'memory.yes': '是',
    'memory.no': '否',
    'memory.cancel': '取消',

    // Config

    // Cost
    'cost.title': '成本追踪',
    'cost.session': '会话成本',
    'cost.daily': '每日成本',
    'cost.monthly': '每月成本',
    'cost.total_tokens': '总 Tokens',
    'cost.request_count': '请求数',
    'cost.by_model': '按模型统计',
    'cost.model': '模型',
    'cost.tokens': 'Token',
    'cost.requests': '请求',
    'cost.usd': '成本（美元）',
    'cost.load_error': '加载成本数据失败',
    'cost.session_cost': '会话成本',
    'cost.daily_cost': '每日成本',
    'cost.monthly_cost': '每月成本',
    'cost.total_requests': '总请求数',
    'cost.token_statistics': 'Token 统计',
    'cost.avg_tokens_per_request': '平均 Token / 请求',
    'cost.cost_per_1k_tokens': '每 1K Token 成本',
    'cost.model_breakdown': '模型细分',
    'cost.no_model_data': '没有模型数据可用。',
    'cost.cost': '成本',
    'cost.share': '占比',

    // Logs
    'logs.title': '实时日志',
    'logs.live_logs': '实时日志',
    'logs.clear': '清除',
    'logs.pause': '暂停',
    'logs.resume': '继续',
    'logs.filter': '筛选日志...',
    'logs.filter_label': '筛选',
    'logs.empty': '暂无日志条目。',
    'logs.connected': '已连接',
    'logs.disconnected': '已断开',
    'logs.events': '事件',
    'logs.jump_to_bottom': '跳转到底部',
    'logs.paused_hint': '日志流已暂停。',
    'logs.waiting_hint': '等待事件...',

    // Doctor
    'doctor.title': '系统诊断',
    'doctor.diagnostics_title': '系统诊断',
    'doctor.run': '运行诊断',
    'doctor.run_diagnostics': '运行诊断',
    'doctor.running': '正在运行诊断...',
    'doctor.running_btn': '运行中...',
    'doctor.running_desc': '正在运行诊断...',
    'doctor.running_hint': '这可能需要几秒钟。',
    'doctor.ok': '正常',
    'doctor.warn': '警告',
    'doctor.error': '错误',
    'doctor.severity': '严重程度',
    'doctor.category': '类别',
    'doctor.message': '消息',
    'doctor.empty': '尚未运行诊断。',
    'doctor.summary': '诊断摘要',
    'doctor.issues_found': '发现问题',
    'doctor.warnings_summary': '警告',
    'doctor.all_clear': '一切正常',
    'doctor.system_diagnostics': '系统诊断',
    'doctor.empty_hint': '点击"运行诊断"检查您的 KylinBot 安装。',

    // Auth / Pairing
    'auth.pair': '配对设备',
    'auth.pairing_code': '配对码',
    'auth.pair_button': '配对',
    'auth.logout': '退出',
    'auth.pairing_success': '配对成功！',
    'auth.pairing_failed': '配对失败，请重试。',
    'auth.enter_code': '请输入配对码以连接到智能体。',
    'pairing.title': '设备配对',
    'pairing.pair_new_device': '配对新设备',
    'pairing.pairing_code': '配对码',
    'pairing.code_hint': '在新设备上输入此码',
    'pairing.paired_devices': '已配对设备',
    'pairing.no_devices': '暂无已配对设备。',
    'pairing.name': '名称',
    'pairing.type': '类型',
    'pairing.paired': '配对时间',
    'pairing.last_seen': '最后在线',
    'pairing.actions': '操作',
    'pairing.load_error': '加载设备失败',
    'pairing.generate_error': '生成配对码失败',
    'pairing.revoke_error': '撤销设备失败',

    // Common
    'common.loading': '加载中...',
    'common.error': '发生错误。',
    'common.retry': '重试',
    'common.cancel': '取消',
    'common.confirm': '确认',
    'common.save': '保存',
    'common.delete': '删除',
    'common.edit': '编辑',
    'common.close': '关闭',
    'common.yes': '是',
    'common.no': '否',
    'common.search': '搜索...',
    'common.no_data': '暂无数据。',
    'common.refresh': '刷新',
    'common.back': '返回',
    'common.actions': '操作',
    'common.name': '名称',
    'common.description': '描述',
    'common.status': '状态',
    'common.created': '创建时间',
    'common.updated': '更新时间',

    // Health
    'health.title': '系统健康',
    'health.component': '组件',
    'health.status': '状态',
    'health.last_ok': '上次正常',
    'health.last_error': '上次错误',
    'health.restart_count': '重启次数',
    'health.pid': '进程 ID',
    'health.uptime': '运行时间',
    'health.updated_at': '最后更新',

    // Dashboard specific labels
    'dashboard.provider_model': '提供商 / 模型',
    'dashboard.since_last_restart': '自上次重启',
    'dashboard.paired_yes': '是',
    'dashboard.paired_no': '否',
    'dashboard.cost_overview': '成本概览',
    'dashboard.active_channels': '活跃频道',
    'dashboard.filter_active': '活跃',
    'dashboard.filter_all': '全部',
    'dashboard.no_active_channels': '没有活跃频道',
    'dashboard.component_health': '组件健康',
    'dashboard.load_error': '加载仪表盘失败',
    'dashboard.session_label': '会话',
    'dashboard.daily_label': '每日',
    'dashboard.monthly_label': '每月',
    'dashboard.total_tokens_label': '总 Tokens',
    'dashboard.requests_label': '请求',
    'dashboard.no_channels': '未配置频道',
    'dashboard.active': '活跃',
    'dashboard.inactive': '非活跃',
    'dashboard.no_components': '没有组件报告',
    'dashboard.restarts': '重启次数',
    'dashboard.tab_overview': '概览',
    'dashboard.tab_sessions': '会话',
    'dashboard.tab_channels': '频道',
    'dashboard.sessions_title': '活跃会话',
    'dashboard.no_sessions': '没有活跃会话',
    'dashboard.session_id': '会话 ID',
    'dashboard.session_started': '开始时间',
    'dashboard.session_last_activity': '最近活动',
    'dashboard.session_messages': '消息数',
    'dashboard.session_details': '会话详情',
    'dashboard.session_history': '查看历史',
    'dashboard.channels_title': '频道状态',
    'dashboard.no_channels_detail': '没有频道详情',
    'dashboard.channel_type': '类型',
    'dashboard.channel_messages': '消息数',
    'dashboard.channel_last_message': '最近消息',
    'dashboard.channel_config': '配置摘要',
    'dashboard.channel_enabled': '已启用',
    'dashboard.channel_disabled': '已禁用',
    'dashboard.loading_sessions': '加载会话中...',
    'dashboard.loading_channels': '加载频道中...',
    'dashboard.load_sessions_error': '加载会话失败',
    'dashboard.load_channels_error': '加载频道失败',
    'dashboard.never': '从未',
    'dashboard.agents_title': '智能体',
    'dashboard.agents_empty': '未配置委托智能体。',
    'dashboard.agent_general_purpose': '通用型',
    'dashboard.agent_not_running': '-',
    'dashboard.agentic': 'Agentic',
    'dashboard.single_turn': '单轮',
    'dashboard.depth': '深度',
    'dashboard.iterations': '轮',
    'dashboard.current_task': '当前任务',
    'dashboard.run_time': '运行时长',
    'dashboard.progress': '进度',
    'dashboard.last_active': '最近活动',
    'dashboard.capabilities': '能力',
    'dashboard.no_tool_allowlist': '未显式限制工具白名单',
    'dashboard.idle': '空闲',
    'dashboard.primary_agent_title': '主智能体',
    'dashboard.primary_agent_status': '运行中',
    'dashboard.primary_agent_style': '默认交互智能体，负责处理 Web 对话与工具调用。',
    'dashboard.primary_agent_kind': 'Web 对话',
    'dashboard.primary_agent_tooling': '工具已启用',
    'dashboard.primary_agent_task': '始终可用',
    'dashboard.primary_agent_progress': '就绪',
    'dashboard.primary_agent_last_active': '持续运行',
    'dashboard.delegate_agents_title': '子代理',

    // Settings
    'settings.title': '设置',
    'settings.theme_title': '主题设置',
    'settings.tab.appearance': '外观',
    'settings.tab.typography': '排版',
    'settings.dark_presets': '深色主题',
    'settings.light_presets': '浅色主题',
    'settings.appearance': '外观设置',
    'settings.typography': '字体设置',
    'settings.fontUi': '界面字体',
    'settings.fontMono': '代码字体',
    'settings.fontSize': '界面字号',
    'settings.fontMonoSize': '代码字号',
    'settings.preview': '预览',
    'settings.previewText': '界面字体预览文本',
    'settings.fontNote': '字体设置需要刷新页面后生效',
    'settings.language': '界面语言',

    // Theme
    'theme.mode': '主题模式',
    'theme.accent': '强调色',
    'theme.system': '跟随系统',
    'theme.dark': '深色',
    'theme.light': '浅色',
    'theme.oled': '纯黑',
  },

  en: {
    // Navigation
    'nav.dashboard': 'Dashboard',
    'nav.agent': 'Agent',
    'nav.tools': 'Tools',
    'nav.cron': 'Scheduled Jobs',
    'nav.integrations': 'Integrations',
    'nav.modelswitch': 'Model Switch',
    'nav.skills': 'Skills',
    'nav.history': 'History',
    'nav.general': 'General',
    'nav.memory': 'Memory',
    'nav.config': 'Config',
    'nav.cost': 'Cost Tracker',
    'nav.logs': 'Logs',
    'nav.doctor': 'Doctor',
    'nav.canvas': 'Canvas',
    'nav.onboard': 'Onboard',

    // Dashboard
    'dashboard.title': 'Dashboard',
    'dashboard.provider': 'Provider',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Uptime',
    'dashboard.temperature': 'Temperature',
    'dashboard.gateway_port': 'Gateway Port',
    'dashboard.memory_backend': 'Memory Backend',
    'dashboard.paired': 'Paired',
    'dashboard.channels': 'Channels',
    'dashboard.health': 'Health',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Overview',
    'dashboard.system_info': 'System Information',
    'dashboard.quick_actions': 'Quick Actions',

    // Agent / Chat
    'agent.title': 'Agent Chat',
    'agent.send': 'Send',
    'agent.placeholder': 'Type a message...',
    'agent.start_conversation': 'Send a message to start the conversation',
    'agent.type_message': 'Type a message...',
    'agent.light_greeting_title': 'Hello, I am KylinBot!',
    'agent.light_greeting_subtitle': 'I can help with questions, writing, summaries, retrieval, and everyday task coordination.',
    'agent.light_try_label': 'You can try:',
    'agent.light_refresh_label': 'Refresh',
    'agent.light_card_recommended': 'Recommended prompts',
    'agent.light_card_knowledge': 'Knowledge base',
    'agent.light_card_knowledge_prompt': 'Summarize the key points from my knowledge base.',
    'agent.light_suggestion_one': 'How do I remove coffee stains from a white shirt?',
    'agent.light_suggestion_two': 'What are good icebreaker games for a team meetup?',
    'agent.light_suggestion_three': 'Draft a short follow-up email for a client.',
    'agent.light_suggestion_four': 'How can I summarize a long article into bullet points?',
    'agent.light_suggestion_five': 'How do I sum values conditionally in Excel?',
    'agent.light_suggestion_six': 'Write a short launch announcement for a product release.',
    'agent.light_suggestion_seven': 'How should a beginner start learning to program?',
    'agent.light_suggestion_eight': 'What should I pack for a three-day business trip?',
    'agent.light_suggestion_nine': 'Explain what an API is in simple terms.',
    'agent.light_type_message': 'Ask a question or type "/" to use skills',
    'agent.light_tool_model': 'Smart model routing',
    'agent.light_tool_expand': 'Deep reasoning',
    'agent.light_tool_search': 'Web search',
    'agent.model_selector_title': 'Select Model',
    'agent.model_selector_trial': 'Trial Models',
    'agent.model_selector_configured': 'Configured Models',
    'agent.model_selector_no_trial': 'No trial models available',
    'agent.model_selector_no_configured': 'No other models configured',
    'agent.connecting': 'Connecting...',
    'agent.connected': 'Connected',
    'agent.disconnected': 'Disconnected',
    'agent.reconnecting': 'Reconnecting...',
    'agent.thinking': 'Thinking...',
    'agent.tool_call': 'Tool Call',
    'agent.tool_result': 'Tool Result',
    'agent.connection_error': 'Connection error. Attempting to reconnect...',
    'agent.tool_call_prefix': '[Tool Call]',
    'agent.tool_result_prefix': '[Tool Result]',
    'agent.error_prefix': '[Error]',
    'agent.unknown_error': 'Unknown error',
    'agent.send_error': 'Failed to send message. Please try again.',
    'agent.copy_message': 'Copy message',
    'agent.show_json': 'Show JSON',
    'agent.hide_json': 'Hide JSON',
    'agent.toggle_system_messages': 'Toggle system messages',
    'agent.connected_status': 'Connected',
    'agent.disconnected_status': 'Disconnected',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',
    'agent.generating_block_tip': 'Generating answer, please try again after completion',
    'agent.clear_all': 'Clear all',
    'agent.delete_message': 'Delete message',
    'agent.compact_mode': 'Compact',
    'agent.tool_activity_show': 'Show tool activity',
    'agent.tool_activity_hide': 'Hide tool activity',
    'agent.running': 'Running…',
    'agent.stop': 'Stop',
    'header.new_session': 'New Session',
    'header.window_pin': 'Pin on Top',
    'header.window_minimize': 'Minimize',
    'header.window_maximize': 'Maximize',
    'header.window_close': 'Close',

    // Tools
    'tools.title': 'Available Tools',
    'tools.name': 'Name',
    'tools.description': 'Description',
    'tools.parameters': 'Parameters',
    'tools.search': 'Search tools...',
    'tools.empty': 'No tools available.',
    'tools.count': 'Total tools',
    'tools.agent_tools': 'Agent Tools',
    'tools.cli_tools': 'CLI Tools',
    'tools.parameter_schema': 'Parameter Schema',
    'tools.path': 'Path',
    'tools.version': 'Version',
    'tools.category': 'Category',
    'tools.load_error': 'Failed to load tools',

    // Cron
    'cron.title': 'Scheduled Jobs',
    'cron.scheduled_tasks': 'Scheduled Tasks',
    'cron.add': 'Add Job',
    'cron.add_job': 'Add Job',
    'cron.add_modal_title': 'Add Cron Job',
    'cron.delete': 'Delete',
    'cron.enable': 'Enable',
    'cron.disable': 'Disable',
    'cron.name': 'Name',
    'cron.name_optional': 'Name (optional)',
    'cron.command': 'Command',
    'cron.command_required': 'Command',
    'cron.schedule': 'Schedule',
    'cron.schedule_required': 'Schedule',
    'cron.next_run': 'Next Run',
    'cron.last_run': 'Last Run',
    'cron.last_status': 'Last Status',
    'cron.enabled': 'Enabled',
    'cron.enabled_status': 'Enabled',
    'cron.disabled_status': 'Disabled',
    'cron.empty': 'No scheduled jobs.',
    'cron.confirm_delete': 'Are you sure you want to delete this job?',
    'cron.load_error': 'Failed to load cron jobs',
    'cron.validation_error': 'Schedule and command are required.',
    'cron.add_error': 'Failed to add job',
    'cron.delete_error': 'Failed to delete job',
    'cron.cancel': 'Cancel',
    'cron.adding': 'Adding...',
    'cron.id': 'ID',
    'cron.actions': 'Actions',
    'cron.loading_run_history': 'Loading run history...',
    'cron.load_run_history_error': 'Failed to load run history',
    'cron.no_runs': 'No runs recorded yet.',
    'cron.recent_runs': 'Recent Runs',
    'cron.yes': 'Yes',
    'cron.no': 'No',
    'cron.edit': 'Edit',
    'cron.edit_modal_title': 'Edit Cron Job',
    'cron.edit_error': 'Failed to update job',
    'cron.saving': 'Saving...',
    'cron.save': 'Save',

    // Integrations
    'integrations.title': 'Integrations',
    'integrations.available': 'Available',
    'integrations.active': 'Active',
    'integrations.category': 'Category',
    'integrations.status': 'Status',
    'integrations.search': 'Search integrations...',
    'integrations.empty': 'No integrations found.',
    'integrations.activate': 'Activate',
    'integrations.deactivate': 'Deactivate',
    'integrations.load_error': 'Failed to load integrations',
    'integrations.status_active': 'Active',
    'integrations.status_available': 'Available',

    // Model Switch
    'modelswitch.title': 'Model Switch',
    'modelswitch.all': 'All',
    'modelswitch.empty': 'No models found.',
    'modelswitch.status_active': 'Active',
    'modelswitch.status_available': 'Available',
    'modelswitch.status_coming_soon': 'Coming Soon',

    // Skills
    'skills.title': 'Skills',
    'skills.all': 'All',
    'skills.empty': 'No skills found.',
    'skills.enabled': 'Enabled',
    'skills.disabled': 'Disabled',
    'skills.status_active': 'Active',
    'skills.status_available': 'Available',
    'skills.status_coming_soon': 'Coming Soon',

    // Memory
    'memory.title': 'Memory Store',
    'memory.memory_title': 'Memory',
    'memory.search': 'Search memory...',
    'memory.search_placeholder': 'Search memory entries...',
    'memory.add': 'Store Memory',
    'memory.add_memory': 'Add Memory',
    'memory.add_modal_title': 'Add Memory',
    'memory.delete': 'Delete',
    'memory.key': 'Key',
    'memory.key_required': 'Key',
    'memory.content': 'Content',
    'memory.content_required': 'Content',
    'memory.category': 'Category',
    'memory.category_optional': 'Category (optional)',
    'memory.timestamp': 'Timestamp',
    'memory.session': 'Session',
    'memory.score': 'Score',
    'memory.empty': 'No memory entries found.',
    'memory.confirm_delete': 'Are you sure you want to delete this memory entry?',
    'memory.all_categories': 'All Categories',
    'memory.search_button': 'Search',
    'memory.load_error': 'Failed to load memory',
    'memory.saving': 'Saving...',
    'memory.validation_error': 'Key and content are required.',
    'memory.store_error': 'Failed to store memory',
    'memory.delete_error': 'Failed to delete memory',
    'memory.delete_confirm': 'Delete?',
    'memory.yes': 'Yes',
    'memory.no': 'No',
    'memory.cancel': 'Cancel',

    // Config

    // Cost
    'cost.title': 'Cost Tracker',
    'cost.session': 'Session Cost',
    'cost.daily': 'Daily Cost',
    'cost.monthly': 'Monthly Cost',
    'cost.total_tokens': 'Total Tokens',
    'cost.request_count': 'Requests',
    'cost.by_model': 'Cost by Model',
    'cost.model': 'Model',
    'cost.tokens': 'Tokens',
    'cost.requests': 'Requests',
    'cost.usd': 'Cost (USD)',
    'cost.load_error': 'Failed to load cost data',
    'cost.session_cost': 'Session Cost',
    'cost.daily_cost': 'Daily Cost',
    'cost.monthly_cost': 'Monthly Cost',
    'cost.total_requests': 'Total Requests',
    'cost.token_statistics': 'Token Statistics',
    'cost.avg_tokens_per_request': 'Avg Tokens / Request',
    'cost.cost_per_1k_tokens': 'Cost per 1K Tokens',
    'cost.model_breakdown': 'Model Breakdown',
    'cost.no_model_data': 'No model data available.',
    'cost.cost': 'Cost',
    'cost.share': 'Share',

    // Logs
    'logs.title': 'Live Logs',
    'logs.live_logs': 'Live Logs',
    'logs.clear': 'Clear',
    'logs.pause': 'Pause',
    'logs.resume': 'Resume',
    'logs.filter': 'Filter logs...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'No log entries.',
    'logs.connected': 'Connected',
    'logs.disconnected': 'Disconnected',
    'logs.events': 'events',
    'logs.jump_to_bottom': 'Jump to bottom',
    'logs.paused_hint': 'Log streaming is paused.',
    'logs.waiting_hint': 'Waiting for events...',

    // Doctor
    'doctor.title': 'System Diagnostics',
    'doctor.diagnostics_title': 'Diagnostics',
    'doctor.run': 'Run Diagnostics',
    'doctor.run_diagnostics': 'Run Diagnostics',
    'doctor.running': 'Running diagnostics...',
    'doctor.running_btn': 'Running...',
    'doctor.running_desc': 'Running diagnostics...',
    'doctor.running_hint': 'This may take a few seconds.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Warning',
    'doctor.error': 'Error',
    'doctor.severity': 'Severity',
    'doctor.category': 'Category',
    'doctor.message': 'Message',
    'doctor.empty': 'No diagnostics have been run yet.',
    'doctor.summary': 'Diagnostic Summary',
    'doctor.issues_found': 'Issues Found',
    'doctor.warnings_summary': 'Warnings',
    'doctor.all_clear': 'All Clear',
    'doctor.system_diagnostics': 'System Diagnostics',
    'doctor.empty_hint': 'Click "Run Diagnostics" to check your KylinBot installation.',

    // Auth / Pairing
    'auth.pair': 'Pair Device',
    'auth.pairing_code': 'Pairing Code',
    'auth.pair_button': 'Pair',
    'auth.logout': 'Logout',
    'auth.pairing_success': 'Pairing successful!',
    'auth.pairing_failed': 'Pairing failed. Please try again.',
    'auth.enter_code': 'Enter your pairing code to connect to the agent.',
    'pairing.title': 'Device Pairing',
    'pairing.pair_new_device': 'Pair New Device',
    'pairing.pairing_code': 'Pairing Code',
    'pairing.code_hint': 'Enter this code on the new device',
    'pairing.paired_devices': 'Paired Devices',
    'pairing.no_devices': 'No paired devices.',
    'pairing.name': 'Name',
    'pairing.type': 'Type',
    'pairing.paired': 'Paired',
    'pairing.last_seen': 'Last Seen',
    'pairing.actions': 'Actions',
    'pairing.load_error': 'Failed to load devices',
    'pairing.generate_error': 'Failed to generate pairing code',
    'pairing.revoke_error': 'Failed to revoke device',

    // Common
    'common.loading': 'Loading...',
    'common.error': 'An error occurred.',
    'common.retry': 'Retry',
    'common.cancel': 'Cancel',
    'common.confirm': 'Confirm',
    'common.save': 'Save',
    'common.delete': 'Delete',
    'common.edit': 'Edit',
    'common.close': 'Close',
    'common.yes': 'Yes',
    'common.no': 'No',
    'common.search': 'Search...',
    'common.no_data': 'No data available.',
    'common.refresh': 'Refresh',
    'common.back': 'Back',
    'common.actions': 'Actions',
    'common.name': 'Name',
    'common.description': 'Description',
    'common.status': 'Status',
    'common.created': 'Created',
    'common.updated': 'Updated',

    // Health
    'health.title': 'System Health',
    'health.component': 'Component',
    'health.status': 'Status',
    'health.last_ok': 'Last OK',
    'health.last_error': 'Last Error',
    'health.restart_count': 'Restarts',
    'health.pid': 'Process ID',
    'health.uptime': 'Uptime',
    'health.updated_at': 'Last Updated',

    // Dashboard specific labels
    'dashboard.provider_model': 'Provider / Model',
    'dashboard.since_last_restart': 'Since last restart',
    'dashboard.paired_yes': 'Yes',
    'dashboard.paired_no': 'No',
    'dashboard.cost_overview': 'Cost Overview',
    'dashboard.active_channels': 'Active Channels',
    'dashboard.filter_active': 'Active',
    'dashboard.filter_all': 'All',
    'dashboard.no_active_channels': 'No active channels',
    'dashboard.component_health': 'Component Health',
    'dashboard.load_error': 'Failed to load dashboard',
    'dashboard.session_label': 'Session',
    'dashboard.daily_label': 'Daily',
    'dashboard.monthly_label': 'Monthly',
    'dashboard.total_tokens_label': 'Total Tokens',
    'dashboard.requests_label': 'Requests',
    'dashboard.no_channels': 'No channels configured',
    'dashboard.active': 'Active',
    'dashboard.inactive': 'Inactive',
    'dashboard.no_components': 'No components reporting',
    'dashboard.restarts': 'Restarts',
    'dashboard.tab_overview': 'Overview',
    'dashboard.tab_sessions': 'Sessions',
    'dashboard.tab_channels': 'Channels',
    'dashboard.sessions_title': 'Active Sessions',
    'dashboard.no_sessions': 'No active sessions',
    'dashboard.session_id': 'Session ID',
    'dashboard.session_started': 'Started',
    'dashboard.session_last_activity': 'Last Activity',
    'dashboard.session_messages': 'Messages',
    'dashboard.session_details': 'Session Details',
    'dashboard.session_history': 'View History',
    'dashboard.channels_title': 'Channel Status',
    'dashboard.no_channels_detail': 'No channel details available',
    'dashboard.channel_type': 'Type',
    'dashboard.channel_messages': 'Messages',
    'dashboard.channel_last_message': 'Last Message',
    'dashboard.channel_config': 'Configuration',
    'dashboard.channel_enabled': 'Enabled',
    'dashboard.channel_disabled': 'Disabled',
    'dashboard.loading_sessions': 'Loading sessions...',
    'dashboard.loading_channels': 'Loading channels...',
    'dashboard.load_sessions_error': 'Failed to load sessions',
    'dashboard.load_channels_error': 'Failed to load channels',
    'dashboard.never': 'Never',
    'dashboard.agents_title': 'Agents',
    'dashboard.agents_empty': 'No delegate agents configured.',
    'dashboard.agent_general_purpose': 'General purpose',
    'dashboard.agent_not_running': '-',
    'dashboard.agentic': 'Agentic',
    'dashboard.single_turn': 'Single turn',
    'dashboard.depth': 'depth',
    'dashboard.iterations': 'iters',
    'dashboard.current_task': 'Current task',
    'dashboard.run_time': 'Run time',
    'dashboard.progress': 'Progress',
    'dashboard.last_active': 'Last active',
    'dashboard.capabilities': 'Capabilities',
    'dashboard.no_tool_allowlist': 'No explicit tool allowlist',
    'dashboard.idle': 'Idle',
    'dashboard.primary_agent_title': 'Primary Agent',
    'dashboard.primary_agent_status': 'Running',
    'dashboard.primary_agent_style': 'Default interactive agent for web chat and tool-enabled turns.',
    'dashboard.primary_agent_kind': 'Web chat',
    'dashboard.primary_agent_tooling': 'Tool-enabled',
    'dashboard.primary_agent_task': 'Always available',
    'dashboard.primary_agent_progress': 'Ready',
    'dashboard.primary_agent_last_active': 'Always on',
    'dashboard.delegate_agents_title': 'Delegate Agents',

    // Settings
    'settings.title': 'Settings',
    'settings.theme_title': 'Theme Settings',
    'settings.tab.appearance': 'Appearance',
    'settings.tab.typography': 'Typography',
    'settings.dark_presets': 'Dark Themes',
    'settings.light_presets': 'Light Themes',
    'settings.appearance': 'Appearance',
    'settings.typography': 'Typography',
    'settings.fontUi': 'UI Font',
    'settings.fontMono': 'Code Font',
    'settings.fontSize': 'UI Font Size',
    'settings.fontMonoSize': 'Code Font Size',
    'settings.preview': 'Preview',
    'settings.previewText': 'The quick brown fox jumps over the lazy dog.',
    'settings.fontNote': 'Font changes apply on page reload.',
    'settings.language': 'Language',

    // Theme
    'theme.mode': 'Theme Mode',
    'theme.accent': 'Accent Color',
    'theme.system': 'System',
    'theme.dark': 'Dark',
    'theme.light': 'Light',
    'theme.oled': 'OLED Black',
  },

  tr: {
    // Navigation
    'nav.dashboard': 'Kontrol Paneli',
    'nav.agent': 'Ajan',
    'nav.tools': 'Araçlar',
    'nav.cron': 'Zamanlanmış Görevler',
    'nav.integrations': 'Entegrasyonlar',
    'nav.modelswitch': 'Model Değiştirme',
    'nav.skills': 'Beceriler',
    'nav.history': 'Geçmiş',
    'nav.memory': 'Hafıza',
    'nav.config': 'Config',
    'nav.cost': 'Maliyet Takibi',
    'nav.logs': 'Kayıtlar',
    'nav.doctor': 'Doktor',
    'nav.canvas': 'Tuval',

    // Dashboard
    'dashboard.title': 'Kontrol Paneli',
    'dashboard.provider': 'Sağlayıcı',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Çalışma Süresi',
    'dashboard.temperature': 'Sıcaklık',
    'dashboard.gateway_port': 'Ağ Geçidi Portu',
    'dashboard.memory_backend': 'Hafıza Motoru',
    'dashboard.paired': 'Eşleştirilmiş',
    'dashboard.channels': 'Kanallar',
    'dashboard.health': 'Sağlık',
    'dashboard.status': 'Durum',
    'dashboard.overview': 'Genel Bakış',
    'dashboard.system_info': 'Sistem Bilgisi',
    'dashboard.quick_actions': 'Hızlı İşlemler',
    'dashboard.provider_model': 'Sağlayıcı / Model',
    'dashboard.since_last_restart': 'Son Yeniden Başlatmadan Beri',
    'dashboard.paired_yes': 'Evet',
    'dashboard.paired_no': 'Hayır',
    'dashboard.cost_overview': 'Maliyet Genel Bakışı',
    'dashboard.active_channels': 'Aktif Kanallar',
    'dashboard.filter_active': 'Aktif',
    'dashboard.filter_all': 'Tümü',
    'dashboard.no_active_channels': 'Aktif kanal yok',
    'dashboard.component_health': 'Bileşen Sağlığı',
    'dashboard.load_error': 'Kontrol paneli yüklenemedi',
    'dashboard.session_label': 'Oturum',
    'dashboard.daily_label': 'Günlük',
    'dashboard.monthly_label': 'Aylık',
    'dashboard.total_tokens_label': 'Toplam Token',
    'dashboard.requests_label': 'İstekler',
    'dashboard.no_channels': 'Kanal yapılandırılmamış',
    'dashboard.active': 'Aktif',
    'dashboard.inactive': 'Aktif Değil',
    'dashboard.no_components': 'Bileşen raporlamıyor',
    'dashboard.restarts': 'Yeniden Başlatmalar',
    'dashboard.tab_overview': 'Genel Bakış',
    'dashboard.tab_sessions': 'Oturumlar',
    'dashboard.tab_channels': 'Kanallar',
    'dashboard.sessions_title': 'Aktif Oturumlar',
    'dashboard.no_sessions': 'Aktif oturum yok',
    'dashboard.session_id': 'Oturum Kimliği',
    'dashboard.session_started': 'Başlangıç',
    'dashboard.session_last_activity': 'Son Etkinlik',
    'dashboard.session_messages': 'Mesajlar',
    'dashboard.session_details': 'Oturum Ayrıntıları',
    'dashboard.session_history': 'Geçmişi Görüntüle',
    'dashboard.channels_title': 'Kanal Durumu',
    'dashboard.no_channels_detail': 'Kanal ayrıntısı yok',
    'dashboard.channel_type': 'Tür',
    'dashboard.channel_messages': 'Mesajlar',
    'dashboard.channel_last_message': 'Son Mesaj',
    'dashboard.channel_config': 'Yapılandırma',
    'dashboard.channel_enabled': 'Etkin',
    'dashboard.channel_disabled': 'Devre Dışı',
    'dashboard.loading_sessions': 'Oturumlar yükleniyor...',
    'dashboard.loading_channels': 'Kanallar yükleniyor...',
    'dashboard.load_sessions_error': 'Oturumlar yüklenemedi',
    'dashboard.load_channels_error': 'Kanallar yüklenemedi',
    'dashboard.never': 'Hiç',
    'dashboard.agents_title': 'Ajanlar',
    'dashboard.agents_empty': 'Yapılandırılmış temsilci ajan yok.',
    'dashboard.agent_general_purpose': 'Genel amaçlı',
    'dashboard.agent_not_running': '-',
    'dashboard.agentic': 'Ajanik',
    'dashboard.single_turn': 'Tek tur',
    'dashboard.depth': 'derinlik',
    'dashboard.iterations': 'tur',
    'dashboard.current_task': 'Geçerli görev',
    'dashboard.run_time': 'Çalışma süresi',
    'dashboard.progress': 'İlerleme',
    'dashboard.last_active': 'Son etkinlik',
    'dashboard.capabilities': 'Yetenekler',
    'dashboard.no_tool_allowlist': 'Açık araç izin listesi yok',
    'dashboard.idle': 'Boşta',
    'dashboard.primary_agent_title': 'Birincil Ajan',
    'dashboard.primary_agent_status': 'Çalışıyor',
    'dashboard.primary_agent_style': 'Web sohbeti ve araç kullanımlı dönüşler için varsayılan etkileşimli ajan.',
    'dashboard.primary_agent_kind': 'Web sohbeti',
    'dashboard.primary_agent_tooling': 'Araç etkin',
    'dashboard.primary_agent_task': 'Her zaman hazır',
    'dashboard.primary_agent_progress': 'Hazır',
    'dashboard.primary_agent_last_active': 'Sürekli çalışıyor',
    'dashboard.delegate_agents_title': 'Alt Ajanlar',

    // Agent / Chat
    'agent.title': 'Ajan Sohbeti',
    'agent.send': 'Gönder',
    'agent.placeholder': 'Bir mesaj yazın...',
    'agent.start_conversation': 'Sohbeti başlatmak için mesaj gönderin',
    'agent.type_message': 'Bir mesaj yazın...',
    'agent.light_greeting_title': 'Merhaba, ben KylinBot!',
    'agent.light_greeting_subtitle': 'Sorular, yazma, özetleme, bilgi erişimi ve günlük görevlerde yardımcı olabilirim.',
    'agent.light_try_label': 'Şunları deneyebilirsiniz:',
    'agent.light_refresh_label': 'Değiştir',
    'agent.light_card_recommended': 'Önerilen istemler',
    'agent.light_card_knowledge': 'Bilgi tabanı',
    'agent.light_card_knowledge_prompt': 'Bilgi tabanımdaki temel noktaları özetle.',
    'agent.light_suggestion_one': 'Beyaz bir gömlekten kahve lekesi nasıl çıkarılır?',
    'agent.light_suggestion_two': 'Takım buluşması için iyi buz kırıcı oyunlar nelerdir?',
    'agent.light_suggestion_three': 'Bir müşteri için kısa bir takip e-postası yaz.',
    'agent.light_suggestion_four': 'Uzun bir makaleyi madde madde nasıl özetlerim?',
    'agent.light_suggestion_five': "Excel'de koşullu toplam nasıl alınır?",
    'agent.light_suggestion_six': 'Kısa bir ürün lansmanı duyuru metni yaz.',
    'agent.light_suggestion_seven': 'Programlamaya yeni başlayan biri nereden başlamalı?',
    'agent.light_suggestion_eight': 'Üç günlük iş seyahati için neleri paketlemeliyim?',
    'agent.light_suggestion_nine': 'API nedir, basit bir dille açıkla.',
    'agent.light_type_message': 'Bir soru sorun veya becerileri kullanmak için "/" yazın',
    'agent.light_tool_model': 'Akıllı model yönlendirme',
    'agent.light_tool_expand': 'Derin düşünme',
    'agent.light_tool_search': 'Web arama',
    'agent.model_selector_title': 'Model Seç',
    'agent.model_selector_trial': 'Deneme Modelleri',
    'agent.model_selector_configured': 'Yapılandırılmış Modeller',
    'agent.model_selector_no_trial': 'Kullanılabilir deneme modeli yok',
    'agent.model_selector_no_configured': 'Başka model yapılandırılmamış',
    'agent.connecting': 'Bağlanıyor...',
    'agent.connected': 'Bağlandı',
    'agent.disconnected': 'Bağlantı kesildi',
    'agent.reconnecting': 'Yeniden bağlanıyor...',
    'agent.thinking': 'Düşünüyor...',
    'agent.tool_call': 'Araç Çağrısı',
    'agent.tool_result': 'Araç Sonucu',
    'agent.connection_error': 'Bağlantı hatası. Yeniden bağlanmaya çalışılıyor...',
    'agent.tool_call_prefix': '[Araç Çağrısı]',
    'agent.tool_result_prefix': '[Araç Sonucu]',
    'agent.error_prefix': '[Hata]',
    'agent.unknown_error': 'Bilinmeyen hata',
    'agent.send_error': 'Mesaj gönderilemedi. Lütfen tekrar deneyin.',
    'agent.copy_message': 'Mesajı kopyala',
    'agent.show_json': 'JSON Goster',
    'agent.hide_json': 'JSON Gizle',
    'agent.toggle_system_messages': 'Sistem mesajlarini goster/gizle',
    'agent.connected_status': 'Bağlandı',
    'agent.disconnected_status': 'Bağlantı kesildi',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',
    'agent.generating_block_tip': 'Yanıt oluşturuluyor, lütfen tamamlandıktan sonra tekrar deneyin',
    'header.new_session': 'Yeni Oturum',
    'header.window_pin': 'Üste Sabitle',
    'header.window_minimize': 'Simge Durumuna Küçült',
    'header.window_maximize': 'Büyüt',
    'header.window_close': 'Kapat',

    // Tools
    'tools.title': 'Mevcut Araçlar',
    'tools.name': 'Ad',
    'tools.description': 'Açıklama',
    'tools.parameters': 'Parametreler',
    'tools.search': 'Araç ara...',
    'tools.empty': 'Araç bulunamadı.',
    'tools.count': 'Toplam araç',
    'tools.agent_tools': 'Ajan Araçları',
    'tools.cli_tools': 'CLI Araçları',
    'tools.parameter_schema': 'Parametre Şeması',
    'tools.path': 'Yol',
    'tools.version': 'Sürüm',
    'tools.category': 'Kategori',
    'tools.load_error': 'Araçlar yüklenemedi',

    // Cron
    'cron.title': 'Zamanlanmış Görevler',
    'cron.scheduled_tasks': 'Zamanlanmış Görevler',
    'cron.add': 'Görev Ekle',
    'cron.add_job': 'Görev Ekle',
    'cron.add_modal_title': 'Cron Görevi Ekle',
    'cron.delete': 'Sil',
    'cron.enable': 'Etkinleştir',
    'cron.disable': 'Devre Dışı Bırak',
    'cron.name': 'Ad',
    'cron.name_optional': 'Ad (isteğe bağlı)',
    'cron.command': 'Komut',
    'cron.command_required': 'Komut',
    'cron.schedule': 'Zamanlama',
    'cron.schedule_required': 'Zamanlama',
    'cron.next_run': 'Sonraki Çalıştırma',
    'cron.last_run': 'Son Çalıştırma',
    'cron.last_status': 'Son Durum',
    'cron.enabled': 'Etkin',
    'cron.enabled_status': 'Etkin',
    'cron.disabled_status': 'Devre Dışı',
    'cron.empty': 'Zamanlanmış görev bulunamadı.',
    'cron.confirm_delete': 'Bu görevi silmek istediğinizden emin misiniz?',
    'cron.load_error': 'Cron görevleri yüklenemedi',
    'cron.validation_error': 'Zamanlama ve komut gereklidir.',
    'cron.add_error': 'Görev eklenemedi',
    'cron.delete_error': 'Görev silinemedi',
    'cron.cancel': 'İptal',
    'cron.adding': 'Ekleniyor...',
    'cron.id': 'ID',
    'cron.actions': 'İşlemler',
    'cron.loading_run_history': 'Çalıştırma geçmişi yükleniyor...',
    'cron.load_run_history_error': 'Çalıştırma geçmişi yüklenemedi',
    'cron.no_runs': 'Henüz çalıştırma kaydı yok.',
    'cron.recent_runs': 'Son Çalıştırmalar',
    'cron.yes': 'Evet',
    'cron.no': 'Hayır',
    'cron.edit': 'Düzenle',
    'cron.edit_modal_title': 'Cron Görevini Düzenle',
    'cron.edit_error': 'Görev güncellenemedi',
    'cron.saving': 'Kaydediliyor...',
    'cron.save': 'Kaydet',

    // Integrations
    'integrations.title': 'Entegrasyonlar',
    'integrations.available': 'Mevcut',
    'integrations.active': 'Aktif',
    'integrations.category': 'Kategori',
    'integrations.status': 'Durum',
    'integrations.search': 'Entegrasyon ara...',
    'integrations.empty': 'Entegrasyon bulunamadı.',
    'integrations.activate': 'Etkinleştir',
    'integrations.deactivate': 'Devre Dışı Bırak',
    'integrations.load_error': 'Entegrasyonlar yüklenemedi',
    'integrations.status_active': 'Aktif',
    'integrations.status_available': 'Mevcut',

    // Model Switch
    'modelswitch.title': 'Model Değiştirme',
    'modelswitch.all': 'Tümü',
    'modelswitch.empty': 'Model bulunamadı.',
    'modelswitch.status_active': 'Aktif',
    'modelswitch.status_available': 'Mevcut',
    'modelswitch.status_coming_soon': 'Yakında',

    // Skills
    'skills.title': 'Beceriler',
    'skills.all': 'Tümü',
    'skills.empty': 'Beceri bulunamadı.',
    'skills.enabled': 'Etkin',
    'skills.disabled': 'Devre Dışı',
    'skills.status_active': 'Aktif',
    'skills.status_available': 'Mevcut',
    'skills.status_coming_soon': 'Yakında',

    // Memory
    'memory.title': 'Hafıza Deposu',
    'memory.memory_title': 'Hafıza',
    'memory.search': 'Hafıza ara...',
    'memory.search_placeholder': 'Hafıza girişleri ara...',
    'memory.add': 'Hafıza Ekle',
    'memory.add_memory': 'Hafıza Ekle',
    'memory.add_modal_title': 'Hafıza Ekle',
    'memory.delete': 'Sil',
    'memory.key': 'Anahtar',
    'memory.key_required': 'Anahtar',
    'memory.content': 'İçerik',
    'memory.content_required': 'İçerik',
    'memory.category': 'Kategori',
    'memory.category_optional': 'Kategori (isteğe bağlı)',
    'memory.timestamp': 'Zaman Damgası',
    'memory.session': 'Oturum',
    'memory.score': 'Puan',
    'memory.empty': 'Hafıza girişi bulunamadı.',
    'memory.confirm_delete': 'Bu hafıza girişini silmek istediğinizden emin misiniz?',
    'memory.all_categories': 'Tüm Kategoriler',
    'memory.search_button': 'Ara',
    'memory.load_error': 'Hafıza yüklenemedi',
    'memory.saving': 'Kaydediliyor...',
    'memory.validation_error': 'Anahtar ve içerik gereklidir.',
    'memory.store_error': 'Hafıza kaydedilemedi',
    'memory.delete_error': 'Hafıza silinemedi',
    'memory.delete_confirm': 'Sil?',
    'memory.yes': 'Evet',
    'memory.no': 'Hayır',
    'memory.cancel': 'İptal',

    // Config

    // Cost
    'cost.title': 'Maliyet Takibi',
    'cost.session': 'Oturum Maliyeti',
    'cost.daily': 'Günlük Maliyet',
    'cost.monthly': 'Aylık Maliyet',
    'cost.total_tokens': 'Toplam Token',
    'cost.request_count': 'İstek Sayısı',
    'cost.by_model': 'Modele Göre Maliyet',
    'cost.model': 'Model',
    'cost.tokens': 'Token',
    'cost.requests': 'İstekler',
    'cost.usd': 'Maliyet (USD)',
    'cost.load_error': 'Maliyet verileri yüklenemedi',
    'cost.session_cost': 'Oturum Maliyeti',
    'cost.daily_cost': 'Günlük Maliyet',
    'cost.monthly_cost': 'Aylık Maliyet',
    'cost.total_requests': 'Toplam İstek',
    'cost.token_statistics': 'Token İstatistikleri',
    'cost.avg_tokens_per_request': 'Ortalama Token / İstek',
    'cost.cost_per_1k_tokens': '1K Token Başına Maliyet',
    'cost.model_breakdown': 'Model Detayı',
    'cost.no_model_data': 'Model verisi mevcut değil.',
    'cost.cost': 'Maliyet',
    'cost.share': 'Pay',

    // Logs
    'logs.title': 'Canlı Kayıtlar',
    'logs.live_logs': 'Canlı Kayıtlar',
    'logs.clear': 'Temizle',
    'logs.pause': 'Duraklat',
    'logs.resume': 'Devam Et',
    'logs.filter': 'Kayıtları filtrele...',
    'logs.filter_label': 'Filtre',
    'logs.empty': 'Kayıt girişi bulunamadı.',
    'logs.connected': 'Bağlandı',
    'logs.disconnected': 'Bağlantı kesildi',
    'logs.events': 'olay',
    'logs.jump_to_bottom': 'En alta atla',
    'logs.paused_hint': 'Kayıt akışı duraklatıldı.',
    'logs.waiting_hint': 'Olay bekleniyor...',

    // Doctor
    'doctor.title': 'Sistem Tanıları',
    'doctor.diagnostics_title': 'Tanılar',
    'doctor.run': 'Tanı Çalıştır',
    'doctor.run_diagnostics': 'Tanı Çalıştır',
    'doctor.running': 'Tanı çalıştırılıyor...',
    'doctor.running_btn': 'Çalıştırılıyor...',
    'doctor.running_desc': 'Tanı çalıştırılıyor...',
    'doctor.running_hint': 'Bu birkaç saniye sürebilir.',
    'doctor.ok': 'Tamam',
    'doctor.warn': 'Uyarı',
    'doctor.error': 'Hata',
    'doctor.severity': 'Şiddet',
    'doctor.category': 'Kategori',
    'doctor.message': 'Mesaj',
    'doctor.empty': 'Henüz tanı çalıştırılmadı.',
    'doctor.summary': 'Tanı Özeti',
    'doctor.issues_found': 'Sorunlar Bulundu',
    'doctor.warnings_summary': 'Uyarılar',
    'doctor.all_clear': 'Her Şey Yolunda',
    'doctor.system_diagnostics': 'Sistem Tanıları',
    'doctor.empty_hint': 'KylinBot kurulumunuzu kontrol etmek için "Tanı Çalıştır" düğmesine tıklayın.',

    // Auth / Pairing
    'auth.pair': 'Cihaz Eşleştir',
    'auth.pairing_code': 'Eşleştirme Kodu',
    'auth.pair_button': 'Eşleştir',
    'auth.logout': 'Çıkış Yap',
    'auth.pairing_success': 'Eşleştirme başarılı!',
    'auth.pairing_failed': 'Eşleştirme başarısız. Lütfen tekrar deneyin.',
    'auth.enter_code': 'Akıllı birine bağlanmak için eşleştirme kodunuzu girin.',
    'pairing.title': 'Cihaz Eşleştirme',
    'pairing.pair_new_device': 'Yeni Cihaz Eşleştir',
    'pairing.pairing_code': 'Eşleştirme Kodu',
    'pairing.code_hint': 'Bu kodu yeni cihazda girin',
    'pairing.paired_devices': 'Eşleştirilmiş Cihazlar',
    'pairing.no_devices': 'Eşleştirilmiş cihaz yok.',
    'pairing.name': 'Ad',
    'pairing.type': 'Tür',
    'pairing.paired': 'Eşleştirilme',
    'pairing.last_seen': 'Son Görülme',
    'pairing.actions': 'İşlemler',
    'pairing.load_error': 'Cihazlar yüklenemedi',
    'pairing.generate_error': 'Eşleştirme kodu oluşturulamadı',
    'pairing.revoke_error': 'Cihaz iptal edilemedi',

    // Common
    'common.loading': 'Yükleniyor...',
    'common.error': 'Bir hata oluştu.',
    'common.retry': 'Tekrar Dene',
    'common.cancel': 'İptal',
    'common.confirm': 'Onayla',
    'common.save': 'Kaydet',
    'common.delete': 'Sil',
    'common.edit': 'Düzenle',
    'common.close': 'Kapat',
    'common.yes': 'Evet',
    'common.no': 'Hayır',
    'common.search': 'Ara...',
    'common.no_data': 'Veri mevcut değil.',
    'common.refresh': 'Yenile',
    'common.back': 'Geri',
    'common.actions': 'İşlemler',
    'common.name': 'Ad',
    'common.description': 'Açıklama',
    'common.status': 'Durum',
    'common.created': 'Oluşturulma',
    'common.updated': 'Güncellenme',

    // Health
    'health.title': 'Sistem Sağlığı',
    'health.component': 'Bileşen',
    'health.status': 'Durum',
    'health.last_ok': 'Son Başarılı',
    'health.last_error': 'Son Hata',
    'health.restart_count': 'Yeniden Başlatmalar',
    'health.pid': 'İşlem Kimliği',
    'health.uptime': 'Çalışma Süresi',
    'health.updated_at': 'Son Güncelleme',

    // Settings
    'settings.title': 'Ayarlar',
    'settings.theme_title': 'Tema Ayarları',
    'settings.tab.appearance': 'Görünüm',
    'settings.tab.typography': 'Tipografi',
    'settings.dark_presets': 'Koyu Temalar',
    'settings.light_presets': 'Açık Temalar',
    'settings.appearance': 'Görünüm',
    'settings.typography': 'Tipografi',
    'settings.fontUi': 'Arayüz Yazı Tipi',
    'settings.fontMono': 'Kod Yazı Tipi',
    'settings.fontSize': 'Arayüz Boyutu',
    'settings.fontMonoSize': 'Kod Boyutu',
    'settings.preview': 'Önizleme',
    'settings.previewText': 'Tembel köpek üzerinde hızlı kahverengi tilki zıplar.',
    'settings.fontNote': 'Yazı tipi değişiklikleri sayfa yeniden yüklendikten sonra geçerli olur.',
    'settings.language': 'Dil',

    // Theme
    'theme.mode': 'Tema Modu',
    'theme.accent': 'Vurgu Rengi',
    'theme.system': 'Sistem',
    'theme.dark': 'Koyu',
    'theme.light': 'Açık',
    'theme.oled': 'OLED Siyah',
  },

  ar: {
    // Navigation
    'nav.dashboard': 'لوحة التحكم',
    'nav.agent': 'الوكيل',
    'nav.tools': 'الأدوات',
    'nav.cron': 'المهام المجدولة',
    'nav.integrations': 'التكاملات',
    'nav.memory': 'الذاكرة',
    'nav.config': 'Config',
    'nav.cost': 'متتبع التكاليف',
    'nav.logs': 'السجلات',
    'nav.doctor': 'التشخيص',
    'nav.canvas': 'اللوحة',

    // Dashboard
    'dashboard.title': 'لوحة التحكم',
    'dashboard.provider': 'المزوّد',
    'dashboard.model': 'النموذج',
    'dashboard.uptime': 'وقت التشغيل',
    'dashboard.temperature': 'درجة الحرارة',
    'dashboard.gateway_port': 'منفذ البوابة',
    'dashboard.memory_backend': 'واجهة الذاكرة الخلفية',
    'dashboard.paired': 'مقترن',
    'dashboard.channels': 'القنوات',
    'dashboard.health': 'الصحة',
    'dashboard.status': 'الحالة',
    'dashboard.overview': 'نظرة عامة',
    'dashboard.system_info': 'معلومات النظام',
    'dashboard.quick_actions': 'إجراءات سريعة',

    // Agent / Chat
    'agent.title': 'محادثة الوكيل',
    'agent.send': 'إرسال',
    'agent.placeholder': 'اكتب رسالة...',
    'agent.start_conversation': 'أرسل رسالة لبدء المحادثة',
    'agent.type_message': 'اكتب رسالة...',
    'agent.connecting': 'جارٍ الاتصال...',
    'agent.connected': 'متصل',
    'agent.disconnected': 'غير متصل',
    'agent.reconnecting': 'جارٍ إعادة الاتصال...',
    'agent.thinking': 'جارٍ التفكير...',
    'agent.tool_call': 'استدعاء أداة',
    'agent.tool_result': 'نتيجة الأداة',
    'agent.connection_error': 'خطأ في الاتصال. جارٍ محاولة إعادة الاتصال...',
    'agent.tool_call_prefix': '[استدعاء أداة]',
    'agent.tool_result_prefix': '[نتيجة الأداة]',
    'agent.error_prefix': '[خطأ]',
    'agent.unknown_error': 'خطأ غير معروف',
    'agent.send_error': 'فشل إرسال الرسالة. يرجى المحاولة مرة أخرى.',
    'agent.copy_message': 'نسخ الرسالة',
    'agent.connected_status': 'متصل',
    'agent.disconnected_status': 'غير متصل',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'الأدوات المتاحة',
    'tools.name': 'الاسم',
    'tools.description': 'الوصف',
    'tools.parameters': 'المعلمات',
    'tools.search': 'البحث في الأدوات...',
    'tools.empty': 'لا توجد أدوات متاحة.',
    'tools.count': 'إجمالي الأدوات',
    'tools.agent_tools': 'أدوات الوكيل',
    'tools.cli_tools': 'أدوات CLI',
    'tools.parameter_schema': 'مخطط المعلمات',
    'tools.path': 'المسار',
    'tools.version': 'الإصدار',
    'tools.category': 'الفئة',
    'tools.load_error': 'فشل تحميل الأدوات',

    // Cron
    'cron.title': 'المهام المجدولة',
    'cron.scheduled_tasks': 'المهام المجدولة',
    'cron.add': 'إضافة مهمة',
    'cron.add_job': 'إضافة مهمة',
    'cron.add_modal_title': 'إضافة مهمة Cron',
    'cron.delete': 'حذف',
    'cron.enable': 'تفعيل',
    'cron.disable': 'تعطيل',
    'cron.name': 'الاسم',
    'cron.name_optional': 'الاسم (اختياري)',
    'cron.command': 'الأمر',
    'cron.command_required': 'الأمر',
    'cron.schedule': 'الجدول',
    'cron.schedule_required': 'الجدول',
    'cron.next_run': 'التشغيل التالي',
    'cron.last_run': 'آخر تشغيل',
    'cron.last_status': 'آخر حالة',
    'cron.enabled': 'مفعّل',
    'cron.enabled_status': 'مفعّل',
    'cron.disabled_status': 'معطّل',
    'cron.empty': 'لا توجد مهام مجدولة.',
    'cron.confirm_delete': 'هل أنت متأكد أنك تريد حذف هذه المهمة؟',
    'cron.load_error': 'فشل تحميل مهام Cron',
    'cron.validation_error': 'الجدول والأمر مطلوبان.',
    'cron.add_error': 'فشل إضافة المهمة',
    'cron.delete_error': 'فشل حذف المهمة',
    'cron.cancel': 'إلغاء',
    'cron.adding': 'جارٍ الإضافة...',
    'cron.id': 'ID',
    'cron.actions': 'الإجراءات',
    'cron.loading_run_history': 'جارٍ تحميل سجل التشغيل...',
    'cron.load_run_history_error': 'فشل تحميل سجل التشغيل',
    'cron.no_runs': 'لم يتم تسجيل أي عمليات تشغيل بعد.',
    'cron.recent_runs': 'عمليات التشغيل الأخيرة',
    'cron.yes': 'نعم',
    'cron.no': 'لا',
    'cron.edit': 'تعديل',
    'cron.edit_modal_title': 'تعديل مهمة Cron',
    'cron.edit_error': 'فشل تحديث المهمة',
    'cron.saving': 'جارٍ الحفظ...',
    'cron.save': 'حفظ',

    // Integrations
    'integrations.title': 'التكاملات',
    'integrations.available': 'متاح',
    'integrations.active': 'نشط',
    'integrations.category': 'الفئة',
    'integrations.status': 'الحالة',
    'integrations.search': 'البحث في التكاملات...',
    'integrations.empty': 'لم يتم العثور على تكاملات.',
    'integrations.activate': 'تفعيل',
    'integrations.deactivate': 'إلغاء التفعيل',
    'integrations.load_error': 'فشل تحميل التكاملات',
    'integrations.status_active': 'نشط',
    'integrations.status_available': 'متاح',

    // Memory
    'memory.title': 'مخزن الذاكرة',
    'memory.memory_title': 'الذاكرة',
    'memory.search': 'البحث في الذاكرة...',
    'memory.search_placeholder': 'البحث في إدخالات الذاكرة...',
    'memory.add': 'تخزين ذاكرة',
    'memory.add_memory': 'إضافة ذاكرة',
    'memory.add_modal_title': 'إضافة ذاكرة',
    'memory.delete': 'حذف',
    'memory.key': 'المفتاح',
    'memory.key_required': 'المفتاح',
    'memory.content': 'المحتوى',
    'memory.content_required': 'المحتوى',
    'memory.category': 'الفئة',
    'memory.category_optional': 'الفئة (اختياري)',
    'memory.timestamp': 'الطابع الزمني',
    'memory.session': 'الجلسة',
    'memory.score': 'الدرجة',
    'memory.empty': 'لم يتم العثور على إدخالات ذاكرة.',
    'memory.confirm_delete': 'هل أنت متأكد أنك تريد حذف إدخال الذاكرة هذا؟',
    'memory.all_categories': 'جميع الفئات',
    'memory.search_button': 'بحث',
    'memory.load_error': 'فشل تحميل الذاكرة',
    'memory.saving': 'جارٍ الحفظ...',
    'memory.validation_error': 'المفتاح والمحتوى مطلوبان.',
    'memory.store_error': 'فشل تخزين الذاكرة',
    'memory.delete_error': 'فشل حذف الذاكرة',
    'memory.delete_confirm': 'حذف؟',
    'memory.yes': 'نعم',
    'memory.no': 'لا',
    'memory.cancel': 'إلغاء',

    // Config

    // Cost
    'cost.title': 'متتبع التكاليف',
    'cost.session': 'تكلفة الجلسة',
    'cost.daily': 'التكلفة اليومية',
    'cost.monthly': 'التكلفة الشهرية',
    'cost.total_tokens': 'إجمالي Token',
    'cost.request_count': 'الطلبات',
    'cost.by_model': 'التكلفة حسب النموذج',
    'cost.model': 'النموذج',
    'cost.tokens': 'Token',
    'cost.requests': 'الطلبات',
    'cost.usd': 'التكلفة (USD)',
    'cost.load_error': 'فشل تحميل بيانات التكاليف',
    'cost.session_cost': 'تكلفة الجلسة',
    'cost.daily_cost': 'التكلفة اليومية',
    'cost.monthly_cost': 'التكلفة الشهرية',
    'cost.total_requests': 'إجمالي الطلبات',
    'cost.token_statistics': 'إحصائيات Token',
    'cost.avg_tokens_per_request': 'متوسط Token لكل طلب',
    'cost.cost_per_1k_tokens': 'التكلفة لكل 1000 Token',
    'cost.model_breakdown': 'تفصيل النماذج',
    'cost.no_model_data': 'لا تتوفر بيانات نماذج.',
    'cost.cost': 'التكلفة',
    'cost.share': 'مشاركة',

    // Logs
    'logs.title': 'السجلات المباشرة',
    'logs.live_logs': 'السجلات المباشرة',
    'logs.clear': 'مسح',
    'logs.pause': 'إيقاف مؤقت',
    'logs.resume': 'استئناف',
    'logs.filter': 'تصفية السجلات...',
    'logs.filter_label': 'تصفية',
    'logs.empty': 'لا توجد إدخالات سجل.',
    'logs.connected': 'متصل',
    'logs.disconnected': 'غير متصل',
    'logs.events': 'أحداث',
    'logs.jump_to_bottom': 'الانتقال إلى الأسفل',
    'logs.paused_hint': 'بث السجلات متوقف مؤقتًا.',
    'logs.waiting_hint': 'في انتظار الأحداث...',

    // Doctor
    'doctor.title': 'تشخيصات النظام',
    'doctor.diagnostics_title': 'التشخيصات',
    'doctor.run': 'تشغيل التشخيصات',
    'doctor.run_diagnostics': 'تشغيل التشخيصات',
    'doctor.running': 'جارٍ تشغيل التشخيصات...',
    'doctor.running_btn': 'جارٍ التشغيل...',
    'doctor.running_desc': 'جارٍ تشغيل التشخيصات...',
    'doctor.running_hint': 'قد يستغرق هذا بضع ثوانٍ.',
    'doctor.ok': 'موافق',
    'doctor.warn': 'تحذير',
    'doctor.error': 'خطأ',
    'doctor.severity': 'الخطورة',
    'doctor.category': 'الفئة',
    'doctor.message': 'الرسالة',
    'doctor.empty': 'لم يتم إجراء أي تشخيصات بعد.',
    'doctor.summary': 'ملخص التشخيص',
    'doctor.issues_found': 'تم العثور على مشكلات',
    'doctor.warnings_summary': 'تحذيرات',
    'doctor.all_clear': 'كل شيء على ما يرام',
    'doctor.system_diagnostics': 'تشخيصات النظام',
    'doctor.empty_hint': 'انقر على "تشغيل التشخيصات" للتحقق من تثبيت KylinBot.',

    // Auth / Pairing
    'auth.pair': 'إقران الجهاز',
    'auth.pairing_code': 'رمز الإقران',
    'auth.pair_button': 'إقران',
    'auth.logout': 'تسجيل الخروج',
    'auth.pairing_success': 'تم الإقران بنجاح!',
    'auth.pairing_failed': 'فشل الإقران. يرجى المحاولة مرة أخرى.',
    'auth.enter_code': 'أدخل رمز الإقران للاتصال بالوكيل.',

    // Common
    'common.loading': 'جارٍ التحميل...',
    'common.error': 'حدث خطأ.',
    'common.retry': 'إعادة المحاولة',
    'common.cancel': 'إلغاء',
    'common.confirm': 'تأكيد',
    'common.save': 'حفظ',
    'common.delete': 'حذف',
    'common.edit': 'تعديل',
    'common.close': 'إغلاق',
    'common.yes': 'نعم',
    'common.no': 'لا',
    'common.search': 'بحث...',
    'common.no_data': 'لا تتوفر بيانات.',
    'common.refresh': 'تحديث',
    'common.back': 'رجوع',
    'common.actions': 'الإجراءات',
    'common.name': 'الاسم',
    'common.description': 'الوصف',
    'common.status': 'الحالة',
    'common.created': 'تاريخ الإنشاء',
    'common.updated': 'تاريخ التحديث',

    // Health
    'health.title': 'صحة النظام',
    'health.component': 'المكوّن',
    'health.status': 'الحالة',
    'health.last_ok': 'آخر حالة سليمة',
    'health.last_error': 'آخر خطأ',
    'health.restart_count': 'مرات إعادة التشغيل',
    'health.pid': 'معرّف العملية',
    'health.uptime': 'وقت التشغيل',
    'health.updated_at': 'آخر تحديث',

    // Dashboard
    'dashboard.provider_model': 'المزوّد / النموذج',
    'dashboard.since_last_restart': 'منذ آخر إعادة تشغيل',
    'dashboard.paired_yes': 'نعم',
    'dashboard.paired_no': 'لا',
    'dashboard.cost_overview': 'نظرة عامة على التكاليف',
    'dashboard.active_channels': 'القنوات النشطة',
    'dashboard.filter_active': 'نشط',
    'dashboard.filter_all': 'الكل',
    'dashboard.no_active_channels': 'لا توجد قنوات نشطة',
    'dashboard.component_health': 'صحة المكوّنات',
    'dashboard.load_error': 'فشل تحميل لوحة التحكم',
    'dashboard.session_label': 'الجلسة',
    'dashboard.daily_label': 'يومي',
    'dashboard.monthly_label': 'شهري',
    'dashboard.total_tokens_label': 'إجمالي Token',
    'dashboard.requests_label': 'الطلبات',
    'dashboard.no_channels': 'لم يتم تكوين قنوات',
    'dashboard.active': 'نشط',
    'dashboard.inactive': 'غير نشط',
    'dashboard.no_components': 'لا توجد مكوّنات تقدم تقارير',
    'dashboard.restarts': 'مرات إعادة التشغيل',
    'dashboard.tab_overview': 'نظرة عامة',
    'dashboard.tab_sessions': 'الجلسات',
    'dashboard.tab_channels': 'القنوات',
    'dashboard.sessions_title': 'الجلسات النشطة',
    'dashboard.no_sessions': 'لا توجد جلسات نشطة',
    'dashboard.session_id': 'معرّف الجلسة',
    'dashboard.session_started': 'بدأت',
    'dashboard.session_last_activity': 'آخر نشاط',
    'dashboard.session_messages': 'الرسائل',
    'dashboard.session_details': 'تفاصيل الجلسة',
    'dashboard.session_history': 'عرض السجل',
    'dashboard.channels_title': 'حالة القنوات',
    'dashboard.no_channels_detail': 'لا تتوفر تفاصيل القنوات',
    'dashboard.channel_type': 'النوع',
    'dashboard.channel_messages': 'الرسائل',
    'dashboard.channel_last_message': 'آخر رسالة',
    'dashboard.channel_config': 'الإعدادات',
    'dashboard.channel_enabled': 'مفعّل',
    'dashboard.channel_disabled': 'معطّل',
    'dashboard.loading_sessions': 'جارٍ تحميل الجلسات...',
    'dashboard.loading_channels': 'جارٍ تحميل القنوات...',
    'dashboard.load_sessions_error': 'فشل تحميل الجلسات',
    'dashboard.load_channels_error': 'فشل تحميل القنوات',
    'dashboard.never': 'أبدًا',

    // Settings
    'settings.title': 'الإعدادات',
    'settings.tab.appearance': 'المظهر',
    'settings.tab.typography': 'الخطوط',
    'settings.appearance': 'المظهر',
    'settings.typography': 'الخطوط',
    'settings.fontUi': 'خط الواجهة',
    'settings.fontMono': 'خط الكود',
    'settings.fontSize': 'حجم خط الواجهة',
    'settings.fontMonoSize': 'حجم خط الكود',
    'settings.preview': 'معاينة',
    'settings.previewText': 'نص المعاينة لاختبار الخطوط والأحجام.',
    'settings.fontNote': 'تُطبَّق تغييرات الخطوط عند إعادة تحميل الصفحة.',
    'settings.language': 'اللغة',

    // Theme
    'theme.mode': 'وضع السمة',
    'theme.accent': 'لون التمييز',
    'theme.system': 'النظام',
    'theme.dark': 'داكن',
    'theme.light': 'فاتح',
    'theme.oled': 'OLED أسود',
  },

  bn: {
    // Navigation
    'nav.dashboard': 'ড্যাশবোর্ড',
    'nav.agent': 'এজেন্ট',
    'nav.tools': 'টুলস',
    'nav.cron': 'নির্ধারিত কাজ',
    'nav.integrations': 'ইন্টিগ্রেশন',
    'nav.memory': 'মেমরি',
    'nav.config': 'Config',
    'nav.cost': 'খরচ ট্র্যাকার',
    'nav.logs': 'লগ',
    'nav.doctor': 'ডক্টর',
    'nav.canvas': 'ক্যানভাস',

    // Dashboard
    'dashboard.title': 'ড্যাশবোর্ড',
    'dashboard.provider': 'প্রোভাইডার',
    'dashboard.model': 'মডেল',
    'dashboard.uptime': 'আপটাইম',
    'dashboard.temperature': 'তাপমাত্রা',
    'dashboard.gateway_port': 'গেটওয়ে পোর্ট',
    'dashboard.memory_backend': 'মেমরি ব্যাকএন্ড',
    'dashboard.paired': 'যুক্ত',
    'dashboard.channels': 'চ্যানেল',
    'dashboard.health': 'স্বাস্থ্য',
    'dashboard.status': 'স্থিতি',
    'dashboard.overview': 'সংক্ষিপ্ত বিবরণ',
    'dashboard.system_info': 'সিস্টেম তথ্য',
    'dashboard.quick_actions': 'দ্রুত কার্যক্রম',

    // Agent / Chat
    'agent.title': 'এজেন্ট চ্যাট',
    'agent.send': 'পাঠান',
    'agent.placeholder': 'একটি বার্তা লিখুন...',
    'agent.start_conversation': 'কথোপকথন শুরু করতে একটি বার্তা পাঠান',
    'agent.type_message': 'একটি বার্তা লিখুন...',
    'agent.connecting': 'সংযোগ হচ্ছে...',
    'agent.connected': 'সংযুক্ত',
    'agent.disconnected': 'সংযোগ বিচ্ছিন্ন',
    'agent.reconnecting': 'পুনরায় সংযোগ হচ্ছে...',
    'agent.thinking': 'চিন্তা করছে...',
    'agent.tool_call': 'টুল কল',
    'agent.tool_result': 'টুল ফলাফল',
    'agent.connection_error': 'সংযোগ ত্রুটি। পুনরায় সংযোগের চেষ্টা করা হচ্ছে...',
    'agent.tool_call_prefix': '[টুল কল]',
    'agent.tool_result_prefix': '[টুল ফলাফল]',
    'agent.error_prefix': '[ত্রুটি]',
    'agent.unknown_error': 'অজানা ত্রুটি',
    'agent.send_error': 'বার্তা পাঠাতে ব্যর্থ। অনুগ্রহ করে আবার চেষ্টা করুন।',
    'agent.copy_message': 'বার্তা কপি করুন',
    'agent.connected_status': 'সংযুক্ত',
    'agent.disconnected_status': 'সংযোগ বিচ্ছিন্ন',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'উপলব্ধ টুলস',
    'tools.name': 'নাম',
    'tools.description': 'বিবরণ',
    'tools.parameters': 'প্যারামিটার',
    'tools.search': 'টুলস খুঁজুন...',
    'tools.empty': 'কোনো টুল উপলব্ধ নেই।',
    'tools.count': 'মোট টুলস',
    'tools.agent_tools': 'এজেন্ট টুলস',
    'tools.cli_tools': 'CLI টুলস',
    'tools.parameter_schema': 'প্যারামিটার স্কিমা',
    'tools.path': 'পাথ',
    'tools.version': 'সংস্করণ',
    'tools.category': 'বিভাগ',
    'tools.load_error': 'টুলস লোড করতে ব্যর্থ',

    // Cron
    'cron.title': 'নির্ধারিত কাজ',
    'cron.scheduled_tasks': 'নির্ধারিত কাজ',
    'cron.add': 'কাজ যোগ করুন',
    'cron.add_job': 'কাজ যোগ করুন',
    'cron.add_modal_title': 'Cron কাজ যোগ করুন',
    'cron.delete': 'মুছুন',
    'cron.enable': 'সক্রিয় করুন',
    'cron.disable': 'নিষ্ক্রিয় করুন',
    'cron.name': 'নাম',
    'cron.name_optional': 'নাম (ঐচ্ছিক)',
    'cron.command': 'কমান্ড',
    'cron.command_required': 'কমান্ড',
    'cron.schedule': 'সময়সূচি',
    'cron.schedule_required': 'সময়সূচি',
    'cron.next_run': 'পরবর্তী রান',
    'cron.last_run': 'শেষ রান',
    'cron.last_status': 'শেষ স্থিতি',
    'cron.enabled': 'সক্রিয়',
    'cron.enabled_status': 'সক্রিয়',
    'cron.disabled_status': 'নিষ্ক্রিয়',
    'cron.empty': 'কোনো নির্ধারিত কাজ নেই।',
    'cron.confirm_delete': 'আপনি কি এই কাজটি মুছে ফেলতে চান?',
    'cron.load_error': 'Cron কাজ লোড করতে ব্যর্থ',
    'cron.validation_error': 'সময়সূচি এবং কমান্ড আবশ্যক।',
    'cron.add_error': 'কাজ যোগ করতে ব্যর্থ',
    'cron.delete_error': 'কাজ মুছতে ব্যর্থ',
    'cron.cancel': 'বাতিল',
    'cron.adding': 'যোগ হচ্ছে...',
    'cron.id': 'ID',
    'cron.actions': 'কার্যক্রম',
    'cron.loading_run_history': 'রান ইতিহাস লোড হচ্ছে...',
    'cron.load_run_history_error': 'রান ইতিহাস লোড করতে ব্যর্থ',
    'cron.no_runs': 'এখনো কোনো রান রেকর্ড হয়নি।',
    'cron.recent_runs': 'সাম্প্রতিক রান',
    'cron.yes': 'হ্যাঁ',
    'cron.no': 'না',
    'cron.edit': 'সম্পাদনা',
    'cron.edit_modal_title': 'Cron কাজ সম্পাদনা করুন',
    'cron.edit_error': 'কাজ আপডেট করতে ব্যর্থ',
    'cron.saving': 'সংরক্ষণ হচ্ছে...',
    'cron.save': 'সংরক্ষণ',

    // Integrations
    'integrations.title': 'ইন্টিগ্রেশন',
    'integrations.available': 'উপলব্ধ',
    'integrations.active': 'সক্রিয়',
    'integrations.category': 'বিভাগ',
    'integrations.status': 'স্থিতি',
    'integrations.search': 'ইন্টিগ্রেশন খুঁজুন...',
    'integrations.empty': 'কোনো ইন্টিগ্রেশন পাওয়া যায়নি।',
    'integrations.activate': 'সক্রিয় করুন',
    'integrations.deactivate': 'নিষ্ক্রিয় করুন',
    'integrations.load_error': 'ইন্টিগ্রেশন লোড করতে ব্যর্থ',
    'integrations.status_active': 'সক্রিয়',
    'integrations.status_available': 'উপলব্ধ',

    // Memory
    'memory.title': 'মেমরি স্টোর',
    'memory.memory_title': 'মেমরি',
    'memory.search': 'মেমরিতে খুঁজুন...',
    'memory.search_placeholder': 'মেমরি এন্ট্রি খুঁজুন...',
    'memory.add': 'মেমরি সংরক্ষণ করুন',
    'memory.add_memory': 'মেমরি যোগ করুন',
    'memory.add_modal_title': 'মেমরি যোগ করুন',
    'memory.delete': 'মুছুন',
    'memory.key': 'কী',
    'memory.key_required': 'কী',
    'memory.content': 'বিষয়বস্তু',
    'memory.content_required': 'বিষয়বস্তু',
    'memory.category': 'বিভাগ',
    'memory.category_optional': 'বিভাগ (ঐচ্ছিক)',
    'memory.timestamp': 'টাইমস্ট্যাম্প',
    'memory.session': 'সেশন',
    'memory.score': 'স্কোর',
    'memory.empty': 'কোনো মেমরি এন্ট্রি পাওয়া যায়নি।',
    'memory.confirm_delete': 'আপনি কি এই মেমরি এন্ট্রিটি মুছে ফেলতে চান?',
    'memory.all_categories': 'সমস্ত বিভাগ',
    'memory.search_button': 'খুঁজুন',
    'memory.load_error': 'মেমরি লোড করতে ব্যর্থ',
    'memory.saving': 'সংরক্ষণ হচ্ছে...',
    'memory.validation_error': 'কী এবং বিষয়বস্তু আবশ্যক।',
    'memory.store_error': 'মেমরি সংরক্ষণ করতে ব্যর্থ',
    'memory.delete_error': 'মেমরি মুছতে ব্যর্থ',
    'memory.delete_confirm': 'মুছবেন?',
    'memory.yes': 'হ্যাঁ',
    'memory.no': 'না',
    'memory.cancel': 'বাতিল',

    // Config

    // Cost
    'cost.title': 'খরচ ট্র্যাকার',
    'cost.session': 'সেশন খরচ',
    'cost.daily': 'দৈনিক খরচ',
    'cost.monthly': 'মাসিক খরচ',
    'cost.total_tokens': 'মোট Token',
    'cost.request_count': 'অনুরোধ',
    'cost.by_model': 'মডেল অনুসারে খরচ',
    'cost.model': 'মডেল',
    'cost.tokens': 'Token',
    'cost.requests': 'অনুরোধ',
    'cost.usd': 'খরচ (USD)',
    'cost.load_error': 'খরচের তথ্য লোড করতে ব্যর্থ',
    'cost.session_cost': 'সেশন খরচ',
    'cost.daily_cost': 'দৈনিক খরচ',
    'cost.monthly_cost': 'মাসিক খরচ',
    'cost.total_requests': 'মোট অনুরোধ',
    'cost.token_statistics': 'Token পরিসংখ্যান',
    'cost.avg_tokens_per_request': 'প্রতি অনুরোধে গড় Token',
    'cost.cost_per_1k_tokens': 'প্রতি 1K Token খরচ',
    'cost.model_breakdown': 'মডেল বিশ্লেষণ',
    'cost.no_model_data': 'কোনো মডেল তথ্য উপলব্ধ নেই।',
    'cost.cost': 'খরচ',
    'cost.share': 'শেয়ার',

    // Logs
    'logs.title': 'লাইভ লগ',
    'logs.live_logs': 'লাইভ লগ',
    'logs.clear': 'মুছুন',
    'logs.pause': 'বিরতি',
    'logs.resume': 'পুনরায় শুরু',
    'logs.filter': 'লগ ফিল্টার করুন...',
    'logs.filter_label': 'ফিল্টার',
    'logs.empty': 'কোনো লগ এন্ট্রি নেই।',
    'logs.connected': 'সংযুক্ত',
    'logs.disconnected': 'সংযোগ বিচ্ছিন্ন',
    'logs.events': 'ইভেন্ট',
    'logs.jump_to_bottom': 'নিচে যান',
    'logs.paused_hint': 'লগ স্ট্রিমিং বিরতি দেওয়া হয়েছে।',
    'logs.waiting_hint': 'ইভেন্টের জন্য অপেক্ষা করা হচ্ছে...',

    // Doctor
    'doctor.title': 'সিস্টেম ডায়াগনস্টিকস',
    'doctor.diagnostics_title': 'ডায়াগনস্টিকস',
    'doctor.run': 'ডায়াগনস্টিকস চালান',
    'doctor.run_diagnostics': 'ডায়াগনস্টিকস চালান',
    'doctor.running': 'ডায়াগনস্টিকস চলছে...',
    'doctor.running_btn': 'চলছে...',
    'doctor.running_desc': 'ডায়াগনস্টিকস চলছে...',
    'doctor.running_hint': 'এটি কয়েক সেকেন্ড সময় নিতে পারে।',
    'doctor.ok': 'ঠিক আছে',
    'doctor.warn': 'সতর্কতা',
    'doctor.error': 'ত্রুটি',
    'doctor.severity': 'তীব্রতা',
    'doctor.category': 'বিভাগ',
    'doctor.message': 'বার্তা',
    'doctor.empty': 'এখনো কোনো ডায়াগনস্টিকস চালানো হয়নি।',
    'doctor.summary': 'ডায়াগনস্টিক সারাংশ',
    'doctor.issues_found': 'সমস্যা পাওয়া গেছে',
    'doctor.warnings_summary': 'সতর্কতা',
    'doctor.all_clear': 'সব ঠিক আছে',
    'doctor.system_diagnostics': 'সিস্টেম ডায়াগনস্টিকস',
    'doctor.empty_hint': 'আপনার KylinBot ইনস্টলেশন পরীক্ষা করতে "ডায়াগনস্টিকস চালান" ক্লিক করুন।',

    // Auth / Pairing
    'auth.pair': 'ডিভাইস পেয়ার করুন',
    'auth.pairing_code': 'পেয়ারিং কোড',
    'auth.pair_button': 'পেয়ার',
    'auth.logout': 'লগআউট',
    'auth.pairing_success': 'পেয়ারিং সফল!',
    'auth.pairing_failed': 'পেয়ারিং ব্যর্থ। অনুগ্রহ করে আবার চেষ্টা করুন।',
    'auth.enter_code': 'এজেন্টের সাথে সংযোগ করতে আপনার পেয়ারিং কোড দিন।',

    // Common
    'common.loading': 'লোড হচ্ছে...',
    'common.error': 'একটি ত্রুটি ঘটেছে।',
    'common.retry': 'পুনরায় চেষ্টা',
    'common.cancel': 'বাতিল',
    'common.confirm': 'নিশ্চিত করুন',
    'common.save': 'সংরক্ষণ',
    'common.delete': 'মুছুন',
    'common.edit': 'সম্পাদনা',
    'common.close': 'বন্ধ',
    'common.yes': 'হ্যাঁ',
    'common.no': 'না',
    'common.search': 'খুঁজুন...',
    'common.no_data': 'কোনো তথ্য উপলব্ধ নেই।',
    'common.refresh': 'রিফ্রেশ',
    'common.back': 'পিছনে',
    'common.actions': 'কার্যক্রম',
    'common.name': 'নাম',
    'common.description': 'বিবরণ',
    'common.status': 'স্থিতি',
    'common.created': 'তৈরি হয়েছে',
    'common.updated': 'আপডেট হয়েছে',

    // Health
    'health.title': 'সিস্টেম স্বাস্থ্য',
    'health.component': 'উপাদান',
    'health.status': 'স্থিতি',
    'health.last_ok': 'শেষ সুস্থ',
    'health.last_error': 'শেষ ত্রুটি',
    'health.restart_count': 'পুনরায় চালু',
    'health.pid': 'প্রসেস ID',
    'health.uptime': 'আপটাইম',
    'health.updated_at': 'সর্বশেষ আপডেট',

    // Dashboard
    'dashboard.provider_model': 'প্রোভাইডার / মডেল',
    'dashboard.since_last_restart': 'শেষ রিস্টার্টের পর থেকে',
    'dashboard.paired_yes': 'হ্যাঁ',
    'dashboard.paired_no': 'না',
    'dashboard.cost_overview': 'খরচের সংক্ষিপ্ত বিবরণ',
    'dashboard.active_channels': 'সক্রিয় চ্যানেল',
    'dashboard.filter_active': 'সক্রিয়',
    'dashboard.filter_all': 'সমস্ত',
    'dashboard.no_active_channels': 'কোনো সক্রিয় চ্যানেল নেই',
    'dashboard.component_health': 'উপাদানের স্বাস্থ্য',
    'dashboard.load_error': 'ড্যাশবোর্ড লোড করতে ব্যর্থ',
    'dashboard.session_label': 'সেশন',
    'dashboard.daily_label': 'দৈনিক',
    'dashboard.monthly_label': 'মাসিক',
    'dashboard.total_tokens_label': 'মোট Token',
    'dashboard.requests_label': 'অনুরোধ',
    'dashboard.no_channels': 'কোনো চ্যানেল কনফিগার করা হয়নি',
    'dashboard.active': 'সক্রিয়',
    'dashboard.inactive': 'নিষ্ক্রিয়',
    'dashboard.no_components': 'কোনো উপাদান রিপোর্ট করছে না',
    'dashboard.restarts': 'পুনরায় চালু',
    'dashboard.tab_overview': 'সংক্ষিপ্ত বিবরণ',
    'dashboard.tab_sessions': 'সেশন',
    'dashboard.tab_channels': 'চ্যানেল',
    'dashboard.sessions_title': 'সক্রিয় সেশন',
    'dashboard.no_sessions': 'কোনো সক্রিয় সেশন নেই',
    'dashboard.session_id': 'সেশন ID',
    'dashboard.session_started': 'শুরু হয়েছে',
    'dashboard.session_last_activity': 'শেষ কার্যকলাপ',
    'dashboard.session_messages': 'বার্তা',
    'dashboard.session_details': 'সেশন বিবরণ',
    'dashboard.session_history': 'ইতিহাস দেখুন',
    'dashboard.channels_title': 'চ্যানেল স্থিতি',
    'dashboard.no_channels_detail': 'কোনো চ্যানেল বিবরণ উপলব্ধ নেই',
    'dashboard.channel_type': 'ধরন',
    'dashboard.channel_messages': 'বার্তা',
    'dashboard.channel_last_message': 'শেষ বার্তা',
    'dashboard.channel_config': 'কনফিগারেশন',
    'dashboard.channel_enabled': 'সক্রিয়',
    'dashboard.channel_disabled': 'নিষ্ক্রিয়',
    'dashboard.loading_sessions': 'সেশন লোড হচ্ছে...',
    'dashboard.loading_channels': 'চ্যানেল লোড হচ্ছে...',
    'dashboard.load_sessions_error': 'সেশন লোড করতে ব্যর্থ',
    'dashboard.load_channels_error': 'চ্যানেল লোড করতে ব্যর্থ',
    'dashboard.never': 'কখনো না',

    // Settings
    'settings.title': 'সেটিংস',
    'settings.tab.appearance': 'চেহারা',
    'settings.tab.typography': 'টাইপোগ্রাফি',
    'settings.appearance': 'চেহারা',
    'settings.typography': 'টাইপোগ্রাফি',
    'settings.fontUi': 'UI ফন্ট',
    'settings.fontMono': 'কোড ফন্ট',
    'settings.fontSize': 'UI ফন্ট সাইজ',
    'settings.fontMonoSize': 'কোড ফন্ট সাইজ',
    'settings.preview': 'প্রিভিউ',
    'settings.previewText': 'দ্রুত বাদামি শিয়াল অলস কুকুরের উপর দিয়ে লাফ দেয়।',
    'settings.fontNote': 'ফন্ট পরিবর্তন পৃষ্ঠা রিলোডে প্রযোজ্য হবে।',
    'settings.language': 'ভাষা',

    // Theme
    'theme.mode': 'থিম মোড',
    'theme.accent': 'অ্যাকসেন্ট রঙ',
    'theme.system': 'সিস্টেম',
    'theme.dark': 'ডার্ক',
    'theme.light': 'লাইট',
    'theme.oled': 'OLED কালো',
  },

  cs: {
    // Navigation
    'nav.dashboard': 'Přehled',
    'nav.agent': 'Agent',
    'nav.tools': 'Nástroje',
    'nav.cron': 'Plánované úlohy',
    'nav.integrations': 'Integrace',
    'nav.memory': 'Paměť',
    'nav.config': 'Config',
    'nav.cost': 'Sledování nákladů',
    'nav.logs': 'Protokoly',
    'nav.doctor': 'Diagnostika',
    'nav.canvas': 'Plátno',

    // Dashboard
    'dashboard.title': 'Přehled',
    'dashboard.provider': 'Poskytovatel',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Doba provozu',
    'dashboard.temperature': 'Teplota',
    'dashboard.gateway_port': 'Port brány',
    'dashboard.memory_backend': 'Backend paměti',
    'dashboard.paired': 'Spárováno',
    'dashboard.channels': 'Kanály',
    'dashboard.health': 'Stav',
    'dashboard.status': 'Stav',
    'dashboard.overview': 'Přehled',
    'dashboard.system_info': 'Systémové informace',
    'dashboard.quick_actions': 'Rychlé akce',

    // Agent / Chat
    'agent.title': 'Chat s agentem',
    'agent.send': 'Odeslat',
    'agent.placeholder': 'Napište zprávu...',
    'agent.start_conversation': 'Pošlete zprávu pro zahájení konverzace',
    'agent.type_message': 'Napište zprávu...',
    'agent.connecting': 'Připojování...',
    'agent.connected': 'Připojeno',
    'agent.disconnected': 'Odpojeno',
    'agent.reconnecting': 'Opětovné připojování...',
    'agent.thinking': 'Přemýšlení...',
    'agent.tool_call': 'Volání nástroje',
    'agent.tool_result': 'Výsledek nástroje',
    'agent.connection_error': 'Chyba připojení. Pokus o opětovné připojení...',
    'agent.tool_call_prefix': '[Volání nástroje]',
    'agent.tool_result_prefix': '[Výsledek nástroje]',
    'agent.error_prefix': '[Chyba]',
    'agent.unknown_error': 'Neznámá chyba',
    'agent.send_error': 'Odeslání zprávy se nezdařilo. Zkuste to prosím znovu.',
    'agent.copy_message': 'Kopírovat zprávu',
    'agent.connected_status': 'Připojeno',
    'agent.disconnected_status': 'Odpojeno',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Dostupné nástroje',
    'tools.name': 'Název',
    'tools.description': 'Popis',
    'tools.parameters': 'Parametry',
    'tools.search': 'Hledat nástroje...',
    'tools.empty': 'Žádné nástroje nejsou k dispozici.',
    'tools.count': 'Celkem nástrojů',
    'tools.agent_tools': 'Nástroje agenta',
    'tools.cli_tools': 'Nástroje CLI',
    'tools.parameter_schema': 'Schéma parametrů',
    'tools.path': 'Cesta',
    'tools.version': 'Verze',
    'tools.category': 'Kategorie',
    'tools.load_error': 'Nepodařilo se načíst nástroje',

    // Cron
    'cron.title': 'Plánované úlohy',
    'cron.scheduled_tasks': 'Plánované úlohy',
    'cron.add': 'Přidat úlohu',
    'cron.add_job': 'Přidat úlohu',
    'cron.add_modal_title': 'Přidat úlohu Cron',
    'cron.delete': 'Smazat',
    'cron.enable': 'Povolit',
    'cron.disable': 'Zakázat',
    'cron.name': 'Název',
    'cron.name_optional': 'Název (volitelné)',
    'cron.command': 'Příkaz',
    'cron.command_required': 'Příkaz',
    'cron.schedule': 'Plán',
    'cron.schedule_required': 'Plán',
    'cron.next_run': 'Příští spuštění',
    'cron.last_run': 'Poslední spuštění',
    'cron.last_status': 'Poslední stav',
    'cron.enabled': 'Povoleno',
    'cron.enabled_status': 'Povoleno',
    'cron.disabled_status': 'Zakázáno',
    'cron.empty': 'Žádné plánované úlohy.',
    'cron.confirm_delete': 'Opravdu chcete tuto úlohu smazat?',
    'cron.load_error': 'Nepodařilo se načíst úlohy Cron',
    'cron.validation_error': 'Plán a příkaz jsou povinné.',
    'cron.add_error': 'Nepodařilo se přidat úlohu',
    'cron.delete_error': 'Nepodařilo se smazat úlohu',
    'cron.cancel': 'Zrušit',
    'cron.adding': 'Přidávání...',
    'cron.id': 'ID',
    'cron.actions': 'Akce',
    'cron.loading_run_history': 'Načítání historie spuštění...',
    'cron.load_run_history_error': 'Nepodařilo se načíst historii spuštění',
    'cron.no_runs': 'Zatím nebyly zaznamenány žádné spuštění.',
    'cron.recent_runs': 'Nedávná spuštění',
    'cron.yes': 'Ano',
    'cron.no': 'Ne',
    'cron.edit': 'Upravit',
    'cron.edit_modal_title': 'Upravit úlohu Cron',
    'cron.edit_error': 'Nepodařilo se aktualizovat úlohu',
    'cron.saving': 'Ukládání...',
    'cron.save': 'Uložit',

    // Integrations
    'integrations.title': 'Integrace',
    'integrations.available': 'Dostupné',
    'integrations.active': 'Aktivní',
    'integrations.category': 'Kategorie',
    'integrations.status': 'Stav',
    'integrations.search': 'Hledat integrace...',
    'integrations.empty': 'Nebyly nalezeny žádné integrace.',
    'integrations.activate': 'Aktivovat',
    'integrations.deactivate': 'Deaktivovat',
    'integrations.load_error': 'Nepodařilo se načíst integrace',
    'integrations.status_active': 'Aktivní',
    'integrations.status_available': 'Dostupné',

    // Memory
    'memory.title': 'Úložiště paměti',
    'memory.memory_title': 'Paměť',
    'memory.search': 'Hledat v paměti...',
    'memory.search_placeholder': 'Hledat záznamy v paměti...',
    'memory.add': 'Uložit do paměti',
    'memory.add_memory': 'Přidat paměť',
    'memory.add_modal_title': 'Přidat paměť',
    'memory.delete': 'Smazat',
    'memory.key': 'Klíč',
    'memory.key_required': 'Klíč',
    'memory.content': 'Obsah',
    'memory.content_required': 'Obsah',
    'memory.category': 'Kategorie',
    'memory.category_optional': 'Kategorie (volitelné)',
    'memory.timestamp': 'Časové razítko',
    'memory.session': 'Relace',
    'memory.score': 'Skóre',
    'memory.empty': 'Nebyly nalezeny žádné záznamy v paměti.',
    'memory.confirm_delete': 'Opravdu chcete tento záznam paměti smazat?',
    'memory.all_categories': 'Všechny kategorie',
    'memory.search_button': 'Hledat',
    'memory.load_error': 'Nepodařilo se načíst paměť',
    'memory.saving': 'Ukládání...',
    'memory.validation_error': 'Klíč a obsah jsou povinné.',
    'memory.store_error': 'Nepodařilo se uložit paměť',
    'memory.delete_error': 'Nepodařilo se smazat paměť',
    'memory.delete_confirm': 'Smazat?',
    'memory.yes': 'Ano',
    'memory.no': 'Ne',
    'memory.cancel': 'Zrušit',

    // Config

    // Cost
    'cost.title': 'Sledování nákladů',
    'cost.session': 'Náklady relace',
    'cost.daily': 'Denní náklady',
    'cost.monthly': 'Měsíční náklady',
    'cost.total_tokens': 'Celkem Token',
    'cost.request_count': 'Požadavky',
    'cost.by_model': 'Náklady podle modelu',
    'cost.model': 'Model',
    'cost.tokens': 'Token',
    'cost.requests': 'Požadavky',
    'cost.usd': 'Náklady (USD)',
    'cost.load_error': 'Nepodařilo se načíst údaje o nákladech',
    'cost.session_cost': 'Náklady relace',
    'cost.daily_cost': 'Denní náklady',
    'cost.monthly_cost': 'Měsíční náklady',
    'cost.total_requests': 'Celkem požadavků',
    'cost.token_statistics': 'Statistiky Token',
    'cost.avg_tokens_per_request': 'Průměr Token na požadavek',
    'cost.cost_per_1k_tokens': 'Náklady na 1K Token',
    'cost.model_breakdown': 'Rozpis modelů',
    'cost.no_model_data': 'Žádné údaje o modelech nejsou k dispozici.',
    'cost.cost': 'Náklady',
    'cost.share': 'Sdílet',

    // Logs
    'logs.title': 'Živé protokoly',
    'logs.live_logs': 'Živé protokoly',
    'logs.clear': 'Vymazat',
    'logs.pause': 'Pozastavit',
    'logs.resume': 'Pokračovat',
    'logs.filter': 'Filtrovat protokoly...',
    'logs.filter_label': 'Filtr',
    'logs.empty': 'Žádné záznamy v protokolu.',
    'logs.connected': 'Připojeno',
    'logs.disconnected': 'Odpojeno',
    'logs.events': 'události',
    'logs.jump_to_bottom': 'Přejít na konec',
    'logs.paused_hint': 'Streamování protokolů je pozastaveno.',
    'logs.waiting_hint': 'Čekání na události...',

    // Doctor
    'doctor.title': 'Diagnostika systému',
    'doctor.diagnostics_title': 'Diagnostika',
    'doctor.run': 'Spustit diagnostiku',
    'doctor.run_diagnostics': 'Spustit diagnostiku',
    'doctor.running': 'Probíhá diagnostika...',
    'doctor.running_btn': 'Probíhá...',
    'doctor.running_desc': 'Probíhá diagnostika...',
    'doctor.running_hint': 'Může to trvat několik sekund.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Varování',
    'doctor.error': 'Chyba',
    'doctor.severity': 'Závažnost',
    'doctor.category': 'Kategorie',
    'doctor.message': 'Zpráva',
    'doctor.empty': 'Diagnostika zatím nebyla spuštěna.',
    'doctor.summary': 'Souhrn diagnostiky',
    'doctor.issues_found': 'Nalezené problémy',
    'doctor.warnings_summary': 'Varování',
    'doctor.all_clear': 'Vše v pořádku',
    'doctor.system_diagnostics': 'Diagnostika systému',
    'doctor.empty_hint': 'Klikněte na "Spustit diagnostiku" pro kontrolu instalace KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Spárovat zařízení',
    'auth.pairing_code': 'Párovací kód',
    'auth.pair_button': 'Spárovat',
    'auth.logout': 'Odhlásit se',
    'auth.pairing_success': 'Párování bylo úspěšné!',
    'auth.pairing_failed': 'Párování se nezdařilo. Zkuste to prosím znovu.',
    'auth.enter_code': 'Zadejte párovací kód pro připojení k agentovi.',

    // Common
    'common.loading': 'Načítání...',
    'common.error': 'Došlo k chybě.',
    'common.retry': 'Zkusit znovu',
    'common.cancel': 'Zrušit',
    'common.confirm': 'Potvrdit',
    'common.save': 'Uložit',
    'common.delete': 'Smazat',
    'common.edit': 'Upravit',
    'common.close': 'Zavřít',
    'common.yes': 'Ano',
    'common.no': 'Ne',
    'common.search': 'Hledat...',
    'common.no_data': 'Žádná data nejsou k dispozici.',
    'common.refresh': 'Obnovit',
    'common.back': 'Zpět',
    'common.actions': 'Akce',
    'common.name': 'Název',
    'common.description': 'Popis',
    'common.status': 'Stav',
    'common.created': 'Vytvořeno',
    'common.updated': 'Aktualizováno',

    // Health
    'health.title': 'Stav systému',
    'health.component': 'Komponenta',
    'health.status': 'Stav',
    'health.last_ok': 'Naposledy v pořádku',
    'health.last_error': 'Poslední chyba',
    'health.restart_count': 'Restarty',
    'health.pid': 'ID procesu',
    'health.uptime': 'Doba provozu',
    'health.updated_at': 'Naposledy aktualizováno',

    // Dashboard
    'dashboard.provider_model': 'Poskytovatel / Model',
    'dashboard.since_last_restart': 'Od posledního restartu',
    'dashboard.paired_yes': 'Ano',
    'dashboard.paired_no': 'Ne',
    'dashboard.cost_overview': 'Přehled nákladů',
    'dashboard.active_channels': 'Aktivní kanály',
    'dashboard.filter_active': 'Aktivní',
    'dashboard.filter_all': 'Vše',
    'dashboard.no_active_channels': 'Žádné aktivní kanály',
    'dashboard.component_health': 'Stav komponent',
    'dashboard.load_error': 'Nepodařilo se načíst přehled',
    'dashboard.session_label': 'Relace',
    'dashboard.daily_label': 'Denní',
    'dashboard.monthly_label': 'Měsíční',
    'dashboard.total_tokens_label': 'Celkem Token',
    'dashboard.requests_label': 'Požadavky',
    'dashboard.no_channels': 'Žádné nakonfigurované kanály',
    'dashboard.active': 'Aktivní',
    'dashboard.inactive': 'Neaktivní',
    'dashboard.no_components': 'Žádné komponenty nehlásí stav',
    'dashboard.restarts': 'Restarty',
    'dashboard.tab_overview': 'Přehled',
    'dashboard.tab_sessions': 'Relace',
    'dashboard.tab_channels': 'Kanály',
    'dashboard.sessions_title': 'Aktivní relace',
    'dashboard.no_sessions': 'Žádné aktivní relace',
    'dashboard.session_id': 'ID relace',
    'dashboard.session_started': 'Zahájeno',
    'dashboard.session_last_activity': 'Poslední aktivita',
    'dashboard.session_messages': 'Zprávy',
    'dashboard.session_details': 'Podrobnosti relace',
    'dashboard.session_history': 'Zobrazit historii',
    'dashboard.channels_title': 'Stav kanálů',
    'dashboard.no_channels_detail': 'Žádné podrobnosti o kanálech nejsou k dispozici',
    'dashboard.channel_type': 'Typ',
    'dashboard.channel_messages': 'Zprávy',
    'dashboard.channel_last_message': 'Poslední zpráva',
    'dashboard.channel_config': 'Konfigurace',
    'dashboard.channel_enabled': 'Povoleno',
    'dashboard.channel_disabled': 'Zakázáno',
    'dashboard.loading_sessions': 'Načítání relací...',
    'dashboard.loading_channels': 'Načítání kanálů...',
    'dashboard.load_sessions_error': 'Nepodařilo se načíst relace',
    'dashboard.load_channels_error': 'Nepodařilo se načíst kanály',
    'dashboard.never': 'Nikdy',

    // Settings
    'settings.title': 'Nastavení',
    'settings.tab.appearance': 'Vzhled',
    'settings.tab.typography': 'Typografie',
    'settings.appearance': 'Vzhled',
    'settings.typography': 'Typografie',
    'settings.fontUi': 'Písmo rozhraní',
    'settings.fontMono': 'Písmo kódu',
    'settings.fontSize': 'Velikost písma rozhraní',
    'settings.fontMonoSize': 'Velikost písma kódu',
    'settings.preview': 'Náhled',
    'settings.previewText': 'Příliš žluťoučký kůň úpěl ďábelské ódy.',
    'settings.fontNote': 'Změny písma se projeví po opětovném načtení stránky.',
    'settings.language': 'Jazyk',

    // Theme
    'theme.mode': 'Režim motivu',
    'theme.accent': 'Barva zvýraznění',
    'theme.system': 'Systém',
    'theme.dark': 'Tmavý',
    'theme.light': 'Světlý',
    'theme.oled': 'OLED černá',
  },

  da: {
    // Navigation
    'nav.dashboard': 'Dashboard',
    'nav.agent': 'Agent',
    'nav.tools': 'Værktøjer',
    'nav.cron': 'Planlagte opgaver',
    'nav.integrations': 'Integrationer',
    'nav.memory': 'Hukommelse',
    'nav.config': 'Config',
    'nav.cost': 'Omkostningssporing',
    'nav.logs': 'Logfiler',
    'nav.doctor': 'Diagnostik',
    'nav.canvas': 'Lærred',

    // Dashboard
    'dashboard.title': 'Dashboard',
    'dashboard.provider': 'Udbyder',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Oppetid',
    'dashboard.temperature': 'Temperatur',
    'dashboard.gateway_port': 'Gateway-port',
    'dashboard.memory_backend': 'Hukommelsesbackend',
    'dashboard.paired': 'Parret',
    'dashboard.channels': 'Kanaler',
    'dashboard.health': 'Sundhed',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Oversigt',
    'dashboard.system_info': 'Systemoplysninger',
    'dashboard.quick_actions': 'Hurtige handlinger',

    // Agent / Chat
    'agent.title': 'Agentchat',
    'agent.send': 'Send',
    'agent.placeholder': 'Skriv en besked...',
    'agent.start_conversation': 'Send en besked for at starte samtalen',
    'agent.type_message': 'Skriv en besked...',
    'agent.connecting': 'Forbinder...',
    'agent.connected': 'Forbundet',
    'agent.disconnected': 'Afbrudt',
    'agent.reconnecting': 'Genopretter forbindelse...',
    'agent.thinking': 'Tænker...',
    'agent.tool_call': 'Værktøjskald',
    'agent.tool_result': 'Værktøjsresultat',
    'agent.connection_error': 'Forbindelsesfejl. Forsøger at genoprette forbindelsen...',
    'agent.tool_call_prefix': '[Værktøjskald]',
    'agent.tool_result_prefix': '[Værktøjsresultat]',
    'agent.error_prefix': '[Fejl]',
    'agent.unknown_error': 'Ukendt fejl',
    'agent.send_error': 'Kunne ikke sende besked. Prøv venligst igen.',
    'agent.copy_message': 'Kopiér besked',
    'agent.connected_status': 'Forbundet',
    'agent.disconnected_status': 'Afbrudt',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Tilgængelige værktøjer',
    'tools.name': 'Navn',
    'tools.description': 'Beskrivelse',
    'tools.parameters': 'Parametre',
    'tools.search': 'Søg i værktøjer...',
    'tools.empty': 'Ingen værktøjer tilgængelige.',
    'tools.count': 'Antal værktøjer',
    'tools.agent_tools': 'Agentværktøjer',
    'tools.cli_tools': 'CLI-værktøjer',
    'tools.parameter_schema': 'Parameterskema',
    'tools.path': 'Sti',
    'tools.version': 'Version',
    'tools.category': 'Kategori',
    'tools.load_error': 'Kunne ikke indlæse værktøjer',

    // Cron
    'cron.title': 'Planlagte opgaver',
    'cron.scheduled_tasks': 'Planlagte opgaver',
    'cron.add': 'Tilføj opgave',
    'cron.add_job': 'Tilføj opgave',
    'cron.add_modal_title': 'Tilføj Cron-opgave',
    'cron.delete': 'Slet',
    'cron.enable': 'Aktivér',
    'cron.disable': 'Deaktivér',
    'cron.name': 'Navn',
    'cron.name_optional': 'Navn (valgfrit)',
    'cron.command': 'Kommando',
    'cron.command_required': 'Kommando',
    'cron.schedule': 'Tidsplan',
    'cron.schedule_required': 'Tidsplan',
    'cron.next_run': 'Næste kørsel',
    'cron.last_run': 'Sidste kørsel',
    'cron.last_status': 'Sidste status',
    'cron.enabled': 'Aktiveret',
    'cron.enabled_status': 'Aktiveret',
    'cron.disabled_status': 'Deaktiveret',
    'cron.empty': 'Ingen planlagte opgaver.',
    'cron.confirm_delete': 'Er du sikker på, at du vil slette denne opgave?',
    'cron.load_error': 'Kunne ikke indlæse Cron-opgaver',
    'cron.validation_error': 'Tidsplan og kommando er påkrævet.',
    'cron.add_error': 'Kunne ikke tilføje opgave',
    'cron.delete_error': 'Kunne ikke slette opgave',
    'cron.cancel': 'Annuller',
    'cron.adding': 'Tilføjer...',
    'cron.id': 'ID',
    'cron.actions': 'Handlinger',
    'cron.loading_run_history': 'Indlæser kørselshistorik...',
    'cron.load_run_history_error': 'Kunne ikke indlæse kørselshistorik',
    'cron.no_runs': 'Ingen kørsler registreret endnu.',
    'cron.recent_runs': 'Seneste kørsler',
    'cron.yes': 'Ja',
    'cron.no': 'Nej',
    'cron.edit': 'Redigér',
    'cron.edit_modal_title': 'Redigér Cron-opgave',
    'cron.edit_error': 'Kunne ikke opdatere opgave',
    'cron.saving': 'Gemmer...',
    'cron.save': 'Gem',

    // Integrations
    'integrations.title': 'Integrationer',
    'integrations.available': 'Tilgængelig',
    'integrations.active': 'Aktiv',
    'integrations.category': 'Kategori',
    'integrations.status': 'Status',
    'integrations.search': 'Søg i integrationer...',
    'integrations.empty': 'Ingen integrationer fundet.',
    'integrations.activate': 'Aktivér',
    'integrations.deactivate': 'Deaktivér',
    'integrations.load_error': 'Kunne ikke indlæse integrationer',
    'integrations.status_active': 'Aktiv',
    'integrations.status_available': 'Tilgængelig',

    // Memory
    'memory.title': 'Hukommelseslager',
    'memory.memory_title': 'Hukommelse',
    'memory.search': 'Søg i hukommelse...',
    'memory.search_placeholder': 'Søg i hukommelsesposter...',
    'memory.add': 'Gem i hukommelse',
    'memory.add_memory': 'Tilføj hukommelse',
    'memory.add_modal_title': 'Tilføj hukommelse',
    'memory.delete': 'Slet',
    'memory.key': 'Nøgle',
    'memory.key_required': 'Nøgle',
    'memory.content': 'Indhold',
    'memory.content_required': 'Indhold',
    'memory.category': 'Kategori',
    'memory.category_optional': 'Kategori (valgfrit)',
    'memory.timestamp': 'Tidsstempel',
    'memory.session': 'Session',
    'memory.score': 'Score',
    'memory.empty': 'Ingen hukommelsesposter fundet.',
    'memory.confirm_delete': 'Er du sikker på, at du vil slette denne hukommelsespost?',
    'memory.all_categories': 'Alle kategorier',
    'memory.search_button': 'Søg',
    'memory.load_error': 'Kunne ikke indlæse hukommelse',
    'memory.saving': 'Gemmer...',
    'memory.validation_error': 'Nøgle og indhold er påkrævet.',
    'memory.store_error': 'Kunne ikke gemme i hukommelse',
    'memory.delete_error': 'Kunne ikke slette hukommelse',
    'memory.delete_confirm': 'Slet?',
    'memory.yes': 'Ja',
    'memory.no': 'Nej',
    'memory.cancel': 'Annuller',

    // Config

    // Cost
    'cost.title': 'Omkostningssporing',
    'cost.session': 'Sessionsomkostning',
    'cost.daily': 'Daglig omkostning',
    'cost.monthly': 'Månedlig omkostning',
    'cost.total_tokens': 'Token i alt',
    'cost.request_count': 'Forespørgsler',
    'cost.by_model': 'Omkostning pr. model',
    'cost.model': 'Model',
    'cost.tokens': 'Token',
    'cost.requests': 'Forespørgsler',
    'cost.usd': 'Omkostning (USD)',
    'cost.load_error': 'Kunne ikke indlæse omkostningsdata',
    'cost.session_cost': 'Sessionsomkostning',
    'cost.daily_cost': 'Daglig omkostning',
    'cost.monthly_cost': 'Månedlig omkostning',
    'cost.total_requests': 'Forespørgsler i alt',
    'cost.token_statistics': 'Token-statistik',
    'cost.avg_tokens_per_request': 'Gns. Token pr. forespørgsel',
    'cost.cost_per_1k_tokens': 'Omkostning pr. 1K Token',
    'cost.model_breakdown': 'Modelopdeling',
    'cost.no_model_data': 'Ingen modeldata tilgængelig.',
    'cost.cost': 'Omkostning',
    'cost.share': 'Del',

    // Logs
    'logs.title': 'Live logfiler',
    'logs.live_logs': 'Live logfiler',
    'logs.clear': 'Ryd',
    'logs.pause': 'Pause',
    'logs.resume': 'Genoptag',
    'logs.filter': 'Filtrer logfiler...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'Ingen logposter.',
    'logs.connected': 'Forbundet',
    'logs.disconnected': 'Afbrudt',
    'logs.events': 'hændelser',
    'logs.jump_to_bottom': 'Gå til bunden',
    'logs.paused_hint': 'Logstreaming er sat på pause.',
    'logs.waiting_hint': 'Venter på hændelser...',

    // Doctor
    'doctor.title': 'Systemdiagnostik',
    'doctor.diagnostics_title': 'Diagnostik',
    'doctor.run': 'Kør diagnostik',
    'doctor.run_diagnostics': 'Kør diagnostik',
    'doctor.running': 'Kører diagnostik...',
    'doctor.running_btn': 'Kører...',
    'doctor.running_desc': 'Kører diagnostik...',
    'doctor.running_hint': 'Dette kan tage et par sekunder.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Advarsel',
    'doctor.error': 'Fejl',
    'doctor.severity': 'Alvorlighed',
    'doctor.category': 'Kategori',
    'doctor.message': 'Besked',
    'doctor.empty': 'Der er endnu ikke kørt nogen diagnostik.',
    'doctor.summary': 'Diagnostikoversigt',
    'doctor.issues_found': 'Fundne problemer',
    'doctor.warnings_summary': 'Advarsler',
    'doctor.all_clear': 'Alt i orden',
    'doctor.system_diagnostics': 'Systemdiagnostik',
    'doctor.empty_hint': 'Klik på "Kør diagnostik" for at kontrollere din KylinBot-installation.',

    // Auth / Pairing
    'auth.pair': 'Par enhed',
    'auth.pairing_code': 'Parringskode',
    'auth.pair_button': 'Par',
    'auth.logout': 'Log ud',
    'auth.pairing_success': 'Parring lykkedes!',
    'auth.pairing_failed': 'Parring mislykkedes. Prøv venligst igen.',
    'auth.enter_code': 'Indtast din parringskode for at oprette forbindelse til agenten.',

    // Common
    'common.loading': 'Indlæser...',
    'common.error': 'Der opstod en fejl.',
    'common.retry': 'Prøv igen',
    'common.cancel': 'Annuller',
    'common.confirm': 'Bekræft',
    'common.save': 'Gem',
    'common.delete': 'Slet',
    'common.edit': 'Redigér',
    'common.close': 'Luk',
    'common.yes': 'Ja',
    'common.no': 'Nej',
    'common.search': 'Søg...',
    'common.no_data': 'Ingen data tilgængelig.',
    'common.refresh': 'Opdater',
    'common.back': 'Tilbage',
    'common.actions': 'Handlinger',
    'common.name': 'Navn',
    'common.description': 'Beskrivelse',
    'common.status': 'Status',
    'common.created': 'Oprettet',
    'common.updated': 'Opdateret',

    // Health
    'health.title': 'Systemsundhed',
    'health.component': 'Komponent',
    'health.status': 'Status',
    'health.last_ok': 'Sidst OK',
    'health.last_error': 'Sidste fejl',
    'health.restart_count': 'Genstarter',
    'health.pid': 'Proces-ID',
    'health.uptime': 'Oppetid',
    'health.updated_at': 'Sidst opdateret',

    // Dashboard
    'dashboard.provider_model': 'Udbyder / Model',
    'dashboard.since_last_restart': 'Siden sidste genstart',
    'dashboard.paired_yes': 'Ja',
    'dashboard.paired_no': 'Nej',
    'dashboard.cost_overview': 'Omkostningsoversigt',
    'dashboard.active_channels': 'Aktive kanaler',
    'dashboard.filter_active': 'Aktiv',
    'dashboard.filter_all': 'Alle',
    'dashboard.no_active_channels': 'Ingen aktive kanaler',
    'dashboard.component_health': 'Komponentsundhed',
    'dashboard.load_error': 'Kunne ikke indlæse dashboard',
    'dashboard.session_label': 'Session',
    'dashboard.daily_label': 'Daglig',
    'dashboard.monthly_label': 'Månedlig',
    'dashboard.total_tokens_label': 'Token i alt',
    'dashboard.requests_label': 'Forespørgsler',
    'dashboard.no_channels': 'Ingen kanaler konfigureret',
    'dashboard.active': 'Aktiv',
    'dashboard.inactive': 'Inaktiv',
    'dashboard.no_components': 'Ingen komponenter rapporterer',
    'dashboard.restarts': 'Genstarter',
    'dashboard.tab_overview': 'Oversigt',
    'dashboard.tab_sessions': 'Sessioner',
    'dashboard.tab_channels': 'Kanaler',
    'dashboard.sessions_title': 'Aktive sessioner',
    'dashboard.no_sessions': 'Ingen aktive sessioner',
    'dashboard.session_id': 'Sessions-ID',
    'dashboard.session_started': 'Startet',
    'dashboard.session_last_activity': 'Sidste aktivitet',
    'dashboard.session_messages': 'Beskeder',
    'dashboard.session_details': 'Sessionsdetaljer',
    'dashboard.session_history': 'Vis historik',
    'dashboard.channels_title': 'Kanalstatus',
    'dashboard.no_channels_detail': 'Ingen kanaldetaljer tilgængelige',
    'dashboard.channel_type': 'Type',
    'dashboard.channel_messages': 'Beskeder',
    'dashboard.channel_last_message': 'Sidste besked',
    'dashboard.channel_config': 'Konfiguration',
    'dashboard.channel_enabled': 'Aktiveret',
    'dashboard.channel_disabled': 'Deaktiveret',
    'dashboard.loading_sessions': 'Indlæser sessioner...',
    'dashboard.loading_channels': 'Indlæser kanaler...',
    'dashboard.load_sessions_error': 'Kunne ikke indlæse sessioner',
    'dashboard.load_channels_error': 'Kunne ikke indlæse kanaler',
    'dashboard.never': 'Aldrig',

    // Settings
    'settings.title': 'Indstillinger',
    'settings.tab.appearance': 'Udseende',
    'settings.tab.typography': 'Typografi',
    'settings.appearance': 'Udseende',
    'settings.typography': 'Typografi',
    'settings.fontUi': 'UI-skrifttype',
    'settings.fontMono': 'Kodeskrifttype',
    'settings.fontSize': 'UI-skriftstørrelse',
    'settings.fontMonoSize': 'Kodeskriftstørrelse',
    'settings.preview': 'Forhåndsvisning',
    'settings.previewText': 'Den hurtige brune ræv springer over den dovne hund.',
    'settings.fontNote': 'Skrifttypeændringer træder i kraft ved genindlæsning af siden.',
    'settings.language': 'Sprog',

    // Theme
    'theme.mode': 'Tematilstand',
    'theme.accent': 'Accentfarve',
    'theme.system': 'System',
    'theme.dark': 'Mørk',
    'theme.light': 'Lys',
    'theme.oled': 'OLED sort',
  },

  de: {
    // Navigation
    'nav.dashboard': 'Dashboard',
    'nav.agent': 'Agent',
    'nav.tools': 'Werkzeuge',
    'nav.cron': 'Geplante Aufgaben',
    'nav.integrations': 'Integrationen',
    'nav.memory': 'Speicher',
    'nav.config': 'Config',
    'nav.cost': 'Kostenübersicht',
    'nav.logs': 'Protokolle',
    'nav.doctor': 'Diagnose',
    'nav.canvas': 'Leinwand',

    // Dashboard
    'dashboard.title': 'Dashboard',
    'dashboard.provider': 'Anbieter',
    'dashboard.model': 'Modell',
    'dashboard.uptime': 'Betriebszeit',
    'dashboard.temperature': 'Temperatur',
    'dashboard.gateway_port': 'Gateway-Port',
    'dashboard.memory_backend': 'Speicher-Backend',
    'dashboard.paired': 'Gekoppelt',
    'dashboard.channels': 'Kanäle',
    'dashboard.health': 'Zustand',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Übersicht',
    'dashboard.system_info': 'Systeminformationen',
    'dashboard.quick_actions': 'Schnellaktionen',

    // Agent / Chat
    'agent.title': 'Agent-Chat',
    'agent.send': 'Senden',
    'agent.placeholder': 'Nachricht eingeben...',
    'agent.start_conversation': 'Senden Sie eine Nachricht, um das Gespräch zu beginnen',
    'agent.type_message': 'Nachricht eingeben...',
    'agent.connecting': 'Verbindung wird hergestellt...',
    'agent.connected': 'Verbunden',
    'agent.disconnected': 'Getrennt',
    'agent.reconnecting': 'Verbindung wird wiederhergestellt...',
    'agent.thinking': 'Denkt nach...',
    'agent.tool_call': 'Werkzeugaufruf',
    'agent.tool_result': 'Werkzeugergebnis',
    'agent.connection_error': 'Verbindungsfehler. Verbindung wird wiederhergestellt...',
    'agent.tool_call_prefix': '[Werkzeugaufruf]',
    'agent.tool_result_prefix': '[Werkzeugergebnis]',
    'agent.error_prefix': '[Fehler]',
    'agent.unknown_error': 'Unbekannter Fehler',
    'agent.send_error': 'Nachricht konnte nicht gesendet werden. Bitte versuchen Sie es erneut.',
    'agent.copy_message': 'Nachricht kopieren',
    'agent.connected_status': 'Verbunden',
    'agent.disconnected_status': 'Getrennt',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Verfügbare Werkzeuge',
    'tools.name': 'Name',
    'tools.description': 'Beschreibung',
    'tools.parameters': 'Parameter',
    'tools.search': 'Werkzeuge suchen...',
    'tools.empty': 'Keine Werkzeuge verfügbar.',
    'tools.count': 'Werkzeuge gesamt',
    'tools.agent_tools': 'Agent-Werkzeuge',
    'tools.cli_tools': 'CLI-Werkzeuge',
    'tools.parameter_schema': 'Parameterschema',
    'tools.path': 'Pfad',
    'tools.version': 'Version',
    'tools.category': 'Kategorie',
    'tools.load_error': 'Werkzeuge konnten nicht geladen werden',

    // Cron
    'cron.title': 'Geplante Aufgaben',
    'cron.scheduled_tasks': 'Geplante Aufgaben',
    'cron.add': 'Aufgabe hinzufügen',
    'cron.add_job': 'Aufgabe hinzufügen',
    'cron.add_modal_title': 'Cron-Aufgabe hinzufügen',
    'cron.delete': 'Löschen',
    'cron.enable': 'Aktivieren',
    'cron.disable': 'Deaktivieren',
    'cron.name': 'Name',
    'cron.name_optional': 'Name (optional)',
    'cron.command': 'Befehl',
    'cron.command_required': 'Befehl',
    'cron.schedule': 'Zeitplan',
    'cron.schedule_required': 'Zeitplan',
    'cron.next_run': 'Nächste Ausführung',
    'cron.last_run': 'Letzte Ausführung',
    'cron.last_status': 'Letzter Status',
    'cron.enabled': 'Aktiviert',
    'cron.enabled_status': 'Aktiviert',
    'cron.disabled_status': 'Deaktiviert',
    'cron.empty': 'Keine geplanten Aufgaben.',
    'cron.confirm_delete': 'Möchten Sie diese Aufgabe wirklich löschen?',
    'cron.load_error': 'Cron-Aufgaben konnten nicht geladen werden',
    'cron.validation_error': 'Zeitplan und Befehl sind erforderlich.',
    'cron.add_error': 'Aufgabe konnte nicht hinzugefügt werden',
    'cron.delete_error': 'Aufgabe konnte nicht gelöscht werden',
    'cron.cancel': 'Abbrechen',
    'cron.adding': 'Wird hinzugefügt...',
    'cron.id': 'ID',
    'cron.actions': 'Aktionen',
    'cron.loading_run_history': 'Ausführungsverlauf wird geladen...',
    'cron.load_run_history_error': 'Ausführungsverlauf konnte nicht geladen werden',
    'cron.no_runs': 'Noch keine Ausführungen aufgezeichnet.',
    'cron.recent_runs': 'Letzte Ausführungen',
    'cron.yes': 'Ja',
    'cron.no': 'Nein',
    'cron.edit': 'Bearbeiten',
    'cron.edit_modal_title': 'Cron-Aufgabe bearbeiten',
    'cron.edit_error': 'Aufgabe konnte nicht aktualisiert werden',
    'cron.saving': 'Wird gespeichert...',
    'cron.save': 'Speichern',

    // Integrations
    'integrations.title': 'Integrationen',
    'integrations.available': 'Verfügbar',
    'integrations.active': 'Aktiv',
    'integrations.category': 'Kategorie',
    'integrations.status': 'Status',
    'integrations.search': 'Integrationen suchen...',
    'integrations.empty': 'Keine Integrationen gefunden.',
    'integrations.activate': 'Aktivieren',
    'integrations.deactivate': 'Deaktivieren',
    'integrations.load_error': 'Integrationen konnten nicht geladen werden',
    'integrations.status_active': 'Aktiv',
    'integrations.status_available': 'Verfügbar',

    // Memory
    'memory.title': 'Speicherverwaltung',
    'memory.memory_title': 'Speicher',
    'memory.search': 'Speicher durchsuchen...',
    'memory.search_placeholder': 'Speichereinträge durchsuchen...',
    'memory.add': 'Speicher anlegen',
    'memory.add_memory': 'Speicher hinzufügen',
    'memory.add_modal_title': 'Speicher hinzufügen',
    'memory.delete': 'Löschen',
    'memory.key': 'Schlüssel',
    'memory.key_required': 'Schlüssel',
    'memory.content': 'Inhalt',
    'memory.content_required': 'Inhalt',
    'memory.category': 'Kategorie',
    'memory.category_optional': 'Kategorie (optional)',
    'memory.timestamp': 'Zeitstempel',
    'memory.session': 'Sitzung',
    'memory.score': 'Bewertung',
    'memory.empty': 'Keine Speichereinträge gefunden.',
    'memory.confirm_delete': 'Möchten Sie diesen Speichereintrag wirklich löschen?',
    'memory.all_categories': 'Alle Kategorien',
    'memory.search_button': 'Suchen',
    'memory.load_error': 'Speicher konnte nicht geladen werden',
    'memory.saving': 'Wird gespeichert...',
    'memory.validation_error': 'Schlüssel und Inhalt sind erforderlich.',
    'memory.store_error': 'Speicher konnte nicht gespeichert werden',
    'memory.delete_error': 'Speicher konnte nicht gelöscht werden',
    'memory.delete_confirm': 'Löschen?',
    'memory.yes': 'Ja',
    'memory.no': 'Nein',
    'memory.cancel': 'Abbrechen',

    // Config

    // Cost
    'cost.title': 'Kostenübersicht',
    'cost.session': 'Sitzungskosten',
    'cost.daily': 'Tageskosten',
    'cost.monthly': 'Monatskosten',
    'cost.total_tokens': 'Token gesamt',
    'cost.request_count': 'Anfragen',
    'cost.by_model': 'Kosten nach Modell',
    'cost.model': 'Modell',
    'cost.tokens': 'Token',
    'cost.requests': 'Anfragen',
    'cost.usd': 'Kosten (USD)',
    'cost.load_error': 'Kostendaten konnten nicht geladen werden',
    'cost.session_cost': 'Sitzungskosten',
    'cost.daily_cost': 'Tageskosten',
    'cost.monthly_cost': 'Monatskosten',
    'cost.total_requests': 'Anfragen gesamt',
    'cost.token_statistics': 'Token-Statistiken',
    'cost.avg_tokens_per_request': 'Durchschn. Token pro Anfrage',
    'cost.cost_per_1k_tokens': 'Kosten pro 1K Token',
    'cost.model_breakdown': 'Modellaufschlüsselung',
    'cost.no_model_data': 'Keine Modelldaten verfügbar.',
    'cost.cost': 'Kosten',
    'cost.share': 'Teilen',

    // Logs
    'logs.title': 'Live-Protokolle',
    'logs.live_logs': 'Live-Protokolle',
    'logs.clear': 'Leeren',
    'logs.pause': 'Pausieren',
    'logs.resume': 'Fortsetzen',
    'logs.filter': 'Protokolle filtern...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'Keine Protokolleinträge.',
    'logs.connected': 'Verbunden',
    'logs.disconnected': 'Getrennt',
    'logs.events': 'Ereignisse',
    'logs.jump_to_bottom': 'Zum Ende springen',
    'logs.paused_hint': 'Protokoll-Streaming ist pausiert.',
    'logs.waiting_hint': 'Warten auf Ereignisse...',

    // Doctor
    'doctor.title': 'Systemdiagnose',
    'doctor.diagnostics_title': 'Diagnose',
    'doctor.run': 'Diagnose ausführen',
    'doctor.run_diagnostics': 'Diagnose ausführen',
    'doctor.running': 'Diagnose wird ausgeführt...',
    'doctor.running_btn': 'Wird ausgeführt...',
    'doctor.running_desc': 'Diagnose wird ausgeführt...',
    'doctor.running_hint': 'Dies kann einige Sekunden dauern.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Warnung',
    'doctor.error': 'Fehler',
    'doctor.severity': 'Schweregrad',
    'doctor.category': 'Kategorie',
    'doctor.message': 'Nachricht',
    'doctor.empty': 'Es wurden noch keine Diagnosen durchgeführt.',
    'doctor.summary': 'Diagnosezusammenfassung',
    'doctor.issues_found': 'Probleme gefunden',
    'doctor.warnings_summary': 'Warnungen',
    'doctor.all_clear': 'Alles in Ordnung',
    'doctor.system_diagnostics': 'Systemdiagnose',
    'doctor.empty_hint': 'Klicken Sie auf "Diagnose ausführen", um Ihre KylinBot-Installation zu überprüfen.',

    // Auth / Pairing
    'auth.pair': 'Gerät koppeln',
    'auth.pairing_code': 'Kopplungscode',
    'auth.pair_button': 'Koppeln',
    'auth.logout': 'Abmelden',
    'auth.pairing_success': 'Kopplung erfolgreich!',
    'auth.pairing_failed': 'Kopplung fehlgeschlagen. Bitte versuchen Sie es erneut.',
    'auth.enter_code': 'Geben Sie Ihren Kopplungscode ein, um sich mit dem Agenten zu verbinden.',

    // Common
    'common.loading': 'Laden...',
    'common.error': 'Ein Fehler ist aufgetreten.',
    'common.retry': 'Erneut versuchen',
    'common.cancel': 'Abbrechen',
    'common.confirm': 'Bestätigen',
    'common.save': 'Speichern',
    'common.delete': 'Löschen',
    'common.edit': 'Bearbeiten',
    'common.close': 'Schließen',
    'common.yes': 'Ja',
    'common.no': 'Nein',
    'common.search': 'Suchen...',
    'common.no_data': 'Keine Daten verfügbar.',
    'common.refresh': 'Aktualisieren',
    'common.back': 'Zurück',
    'common.actions': 'Aktionen',
    'common.name': 'Name',
    'common.description': 'Beschreibung',
    'common.status': 'Status',
    'common.created': 'Erstellt',
    'common.updated': 'Aktualisiert',

    // Health
    'health.title': 'Systemzustand',
    'health.component': 'Komponente',
    'health.status': 'Status',
    'health.last_ok': 'Zuletzt OK',
    'health.last_error': 'Letzter Fehler',
    'health.restart_count': 'Neustarts',
    'health.pid': 'Prozess-ID',
    'health.uptime': 'Betriebszeit',
    'health.updated_at': 'Zuletzt aktualisiert',

    // Dashboard
    'dashboard.provider_model': 'Anbieter / Modell',
    'dashboard.since_last_restart': 'Seit letztem Neustart',
    'dashboard.paired_yes': 'Ja',
    'dashboard.paired_no': 'Nein',
    'dashboard.cost_overview': 'Kostenübersicht',
    'dashboard.active_channels': 'Aktive Kanäle',
    'dashboard.filter_active': 'Aktiv',
    'dashboard.filter_all': 'Alle',
    'dashboard.no_active_channels': 'Keine aktiven Kanäle',
    'dashboard.component_health': 'Komponentenzustand',
    'dashboard.load_error': 'Dashboard konnte nicht geladen werden',
    'dashboard.session_label': 'Sitzung',
    'dashboard.daily_label': 'Täglich',
    'dashboard.monthly_label': 'Monatlich',
    'dashboard.total_tokens_label': 'Token gesamt',
    'dashboard.requests_label': 'Anfragen',
    'dashboard.no_channels': 'Keine Kanäle konfiguriert',
    'dashboard.active': 'Aktiv',
    'dashboard.inactive': 'Inaktiv',
    'dashboard.no_components': 'Keine Komponenten melden Status',
    'dashboard.restarts': 'Neustarts',
    'dashboard.tab_overview': 'Übersicht',
    'dashboard.tab_sessions': 'Sitzungen',
    'dashboard.tab_channels': 'Kanäle',
    'dashboard.sessions_title': 'Aktive Sitzungen',
    'dashboard.no_sessions': 'Keine aktiven Sitzungen',
    'dashboard.session_id': 'Sitzungs-ID',
    'dashboard.session_started': 'Gestartet',
    'dashboard.session_last_activity': 'Letzte Aktivität',
    'dashboard.session_messages': 'Nachrichten',
    'dashboard.session_details': 'Sitzungsdetails',
    'dashboard.session_history': 'Verlauf anzeigen',
    'dashboard.channels_title': 'Kanalstatus',
    'dashboard.no_channels_detail': 'Keine Kanaldetails verfügbar',
    'dashboard.channel_type': 'Typ',
    'dashboard.channel_messages': 'Nachrichten',
    'dashboard.channel_last_message': 'Letzte Nachricht',
    'dashboard.channel_config': 'Konfiguration',
    'dashboard.channel_enabled': 'Aktiviert',
    'dashboard.channel_disabled': 'Deaktiviert',
    'dashboard.loading_sessions': 'Sitzungen werden geladen...',
    'dashboard.loading_channels': 'Kanäle werden geladen...',
    'dashboard.load_sessions_error': 'Sitzungen konnten nicht geladen werden',
    'dashboard.load_channels_error': 'Kanäle konnten nicht geladen werden',
    'dashboard.never': 'Nie',

    // Settings
    'settings.title': 'Einstellungen',
    'settings.tab.appearance': 'Erscheinungsbild',
    'settings.tab.typography': 'Typografie',
    'settings.appearance': 'Erscheinungsbild',
    'settings.typography': 'Typografie',
    'settings.fontUi': 'UI-Schriftart',
    'settings.fontMono': 'Code-Schriftart',
    'settings.fontSize': 'UI-Schriftgröße',
    'settings.fontMonoSize': 'Code-Schriftgröße',
    'settings.preview': 'Vorschau',
    'settings.previewText': 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.',
    'settings.fontNote': 'Schriftartänderungen werden nach dem Neuladen der Seite wirksam.',
    'settings.language': 'Sprache',

    // Theme
    'theme.mode': 'Design-Modus',
    'theme.accent': 'Akzentfarbe',
    'theme.system': 'System',
    'theme.dark': 'Dunkel',
    'theme.light': 'Hell',
    'theme.oled': 'OLED Schwarz',
  },

  el: {
    // Navigation
    'nav.dashboard': 'Πίνακας ελέγχου',
    'nav.agent': 'Πράκτορας',
    'nav.tools': 'Εργαλεία',
    'nav.cron': 'Προγραμματισμένες εργασίες',
    'nav.integrations': 'Ενσωματώσεις',
    'nav.memory': 'Μνήμη',
    'nav.config': 'Config',
    'nav.cost': 'Παρακολούθηση κόστους',
    'nav.logs': 'Αρχεία καταγραφής',
    'nav.doctor': 'Διαγνωστικά',
    'nav.canvas': 'Καμβάς',

    // Dashboard
    'dashboard.title': 'Πίνακας ελέγχου',
    'dashboard.provider': 'Πάροχος',
    'dashboard.model': 'Μοντέλο',
    'dashboard.uptime': 'Χρόνος λειτουργίας',
    'dashboard.temperature': 'Θερμοκρασία',
    'dashboard.gateway_port': 'Θύρα πύλης',
    'dashboard.memory_backend': 'Backend μνήμης',
    'dashboard.paired': 'Συζευγμένο',
    'dashboard.channels': 'Κανάλια',
    'dashboard.health': 'Υγεία',
    'dashboard.status': 'Κατάσταση',
    'dashboard.overview': 'Επισκόπηση',
    'dashboard.system_info': 'Πληροφορίες συστήματος',
    'dashboard.quick_actions': 'Γρήγορες ενέργειες',

    // Agent / Chat
    'agent.title': 'Συνομιλία πράκτορα',
    'agent.send': 'Αποστολή',
    'agent.placeholder': 'Πληκτρολογήστε ένα μήνυμα...',
    'agent.start_conversation': 'Στείλτε ένα μήνυμα για να ξεκινήσετε τη συνομιλία',
    'agent.type_message': 'Πληκτρολογήστε ένα μήνυμα...',
    'agent.connecting': 'Σύνδεση...',
    'agent.connected': 'Συνδεδεμένο',
    'agent.disconnected': 'Αποσυνδεδεμένο',
    'agent.reconnecting': 'Επανασύνδεση...',
    'agent.thinking': 'Σκέφτεται...',
    'agent.tool_call': 'Κλήση εργαλείου',
    'agent.tool_result': 'Αποτέλεσμα εργαλείου',
    'agent.connection_error': 'Σφάλμα σύνδεσης. Γίνεται προσπάθεια επανασύνδεσης...',
    'agent.tool_call_prefix': '[Κλήση εργαλείου]',
    'agent.tool_result_prefix': '[Αποτέλεσμα εργαλείου]',
    'agent.error_prefix': '[Σφάλμα]',
    'agent.unknown_error': 'Άγνωστο σφάλμα',
    'agent.send_error': 'Αποτυχία αποστολής μηνύματος. Παρακαλώ δοκιμάστε ξανά.',
    'agent.copy_message': 'Αντιγραφή μηνύματος',
    'agent.connected_status': 'Συνδεδεμένο',
    'agent.disconnected_status': 'Αποσυνδεδεμένο',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Διαθέσιμα εργαλεία',
    'tools.name': 'Όνομα',
    'tools.description': 'Περιγραφή',
    'tools.parameters': 'Παράμετροι',
    'tools.search': 'Αναζήτηση εργαλείων...',
    'tools.empty': 'Δεν υπάρχουν διαθέσιμα εργαλεία.',
    'tools.count': 'Σύνολο εργαλείων',
    'tools.agent_tools': 'Εργαλεία πράκτορα',
    'tools.cli_tools': 'Εργαλεία CLI',
    'tools.parameter_schema': 'Σχήμα παραμέτρων',
    'tools.path': 'Διαδρομή',
    'tools.version': 'Έκδοση',
    'tools.category': 'Κατηγορία',
    'tools.load_error': 'Αποτυχία φόρτωσης εργαλείων',

    // Cron
    'cron.title': 'Προγραμματισμένες εργασίες',
    'cron.scheduled_tasks': 'Προγραμματισμένες εργασίες',
    'cron.add': 'Προσθήκη εργασίας',
    'cron.add_job': 'Προσθήκη εργασίας',
    'cron.add_modal_title': 'Προσθήκη εργασίας Cron',
    'cron.delete': 'Διαγραφή',
    'cron.enable': 'Ενεργοποίηση',
    'cron.disable': 'Απενεργοποίηση',
    'cron.name': 'Όνομα',
    'cron.name_optional': 'Όνομα (προαιρετικό)',
    'cron.command': 'Εντολή',
    'cron.command_required': 'Εντολή',
    'cron.schedule': 'Πρόγραμμα',
    'cron.schedule_required': 'Πρόγραμμα',
    'cron.next_run': 'Επόμενη εκτέλεση',
    'cron.last_run': 'Τελευταία εκτέλεση',
    'cron.last_status': 'Τελευταία κατάσταση',
    'cron.enabled': 'Ενεργοποιημένο',
    'cron.enabled_status': 'Ενεργοποιημένο',
    'cron.disabled_status': 'Απενεργοποιημένο',
    'cron.empty': 'Δεν υπάρχουν προγραμματισμένες εργασίες.',
    'cron.confirm_delete': 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την εργασία;',
    'cron.load_error': 'Αποτυχία φόρτωσης εργασιών Cron',
    'cron.validation_error': 'Το πρόγραμμα και η εντολή είναι υποχρεωτικά.',
    'cron.add_error': 'Αποτυχία προσθήκης εργασίας',
    'cron.delete_error': 'Αποτυχία διαγραφής εργασίας',
    'cron.cancel': 'Ακύρωση',
    'cron.adding': 'Προσθήκη...',
    'cron.id': 'ID',
    'cron.actions': 'Ενέργειες',
    'cron.loading_run_history': 'Φόρτωση ιστορικού εκτελέσεων...',
    'cron.load_run_history_error': 'Αποτυχία φόρτωσης ιστορικού εκτελέσεων',
    'cron.no_runs': 'Δεν έχουν καταγραφεί εκτελέσεις ακόμα.',
    'cron.recent_runs': 'Πρόσφατες εκτελέσεις',
    'cron.yes': 'Ναι',
    'cron.no': 'Όχι',
    'cron.edit': 'Επεξεργασία',
    'cron.edit_modal_title': 'Επεξεργασία εργασίας Cron',
    'cron.edit_error': 'Αποτυχία ενημέρωσης εργασίας',
    'cron.saving': 'Αποθήκευση...',
    'cron.save': 'Αποθήκευση',

    // Integrations
    'integrations.title': 'Ενσωματώσεις',
    'integrations.available': 'Διαθέσιμο',
    'integrations.active': 'Ενεργό',
    'integrations.category': 'Κατηγορία',
    'integrations.status': 'Κατάσταση',
    'integrations.search': 'Αναζήτηση ενσωματώσεων...',
    'integrations.empty': 'Δεν βρέθηκαν ενσωματώσεις.',
    'integrations.activate': 'Ενεργοποίηση',
    'integrations.deactivate': 'Απενεργοποίηση',
    'integrations.load_error': 'Αποτυχία φόρτωσης ενσωματώσεων',
    'integrations.status_active': 'Ενεργό',
    'integrations.status_available': 'Διαθέσιμο',

    // Memory
    'memory.title': 'Αποθήκη μνήμης',
    'memory.memory_title': 'Μνήμη',
    'memory.search': 'Αναζήτηση στη μνήμη...',
    'memory.search_placeholder': 'Αναζήτηση εγγραφών μνήμης...',
    'memory.add': 'Αποθήκευση μνήμης',
    'memory.add_memory': 'Προσθήκη μνήμης',
    'memory.add_modal_title': 'Προσθήκη μνήμης',
    'memory.delete': 'Διαγραφή',
    'memory.key': 'Κλειδί',
    'memory.key_required': 'Κλειδί',
    'memory.content': 'Περιεχόμενο',
    'memory.content_required': 'Περιεχόμενο',
    'memory.category': 'Κατηγορία',
    'memory.category_optional': 'Κατηγορία (προαιρετικό)',
    'memory.timestamp': 'Χρονοσφραγίδα',
    'memory.session': 'Συνεδρία',
    'memory.score': 'Βαθμολογία',
    'memory.empty': 'Δεν βρέθηκαν εγγραφές μνήμης.',
    'memory.confirm_delete': 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την εγγραφή μνήμης;',
    'memory.all_categories': 'Όλες οι κατηγορίες',
    'memory.search_button': 'Αναζήτηση',
    'memory.load_error': 'Αποτυχία φόρτωσης μνήμης',
    'memory.saving': 'Αποθήκευση...',
    'memory.validation_error': 'Το κλειδί και το περιεχόμενο είναι υποχρεωτικά.',
    'memory.store_error': 'Αποτυχία αποθήκευσης μνήμης',
    'memory.delete_error': 'Αποτυχία διαγραφής μνήμης',
    'memory.delete_confirm': 'Διαγραφή;',
    'memory.yes': 'Ναι',
    'memory.no': 'Όχι',
    'memory.cancel': 'Ακύρωση',

    // Config

    // Cost
    'cost.title': 'Παρακολούθηση κόστους',
    'cost.session': 'Κόστος συνεδρίας',
    'cost.daily': 'Ημερήσιο κόστος',
    'cost.monthly': 'Μηνιαίο κόστος',
    'cost.total_tokens': 'Σύνολο Token',
    'cost.request_count': 'Αιτήματα',
    'cost.by_model': 'Κόστος ανά μοντέλο',
    'cost.model': 'Μοντέλο',
    'cost.tokens': 'Token',
    'cost.requests': 'Αιτήματα',
    'cost.usd': 'Κόστος (USD)',
    'cost.load_error': 'Αποτυχία φόρτωσης δεδομένων κόστους',
    'cost.session_cost': 'Κόστος συνεδρίας',
    'cost.daily_cost': 'Ημερήσιο κόστος',
    'cost.monthly_cost': 'Μηνιαίο κόστος',
    'cost.total_requests': 'Σύνολο αιτημάτων',
    'cost.token_statistics': 'Στατιστικά Token',
    'cost.avg_tokens_per_request': 'Μέσος όρος Token ανά αίτημα',
    'cost.cost_per_1k_tokens': 'Κόστος ανά 1K Token',
    'cost.model_breakdown': 'Ανάλυση μοντέλων',
    'cost.no_model_data': 'Δεν υπάρχουν διαθέσιμα δεδομένα μοντέλων.',
    'cost.cost': 'Κόστος',
    'cost.share': 'Κοινοποίηση',

    // Logs
    'logs.title': 'Ζωντανά αρχεία καταγραφής',
    'logs.live_logs': 'Ζωντανά αρχεία καταγραφής',
    'logs.clear': 'Εκκαθάριση',
    'logs.pause': 'Παύση',
    'logs.resume': 'Συνέχεια',
    'logs.filter': 'Φιλτράρισμα αρχείων καταγραφής...',
    'logs.filter_label': 'Φίλτρο',
    'logs.empty': 'Δεν υπάρχουν εγγραφές καταγραφής.',
    'logs.connected': 'Συνδεδεμένο',
    'logs.disconnected': 'Αποσυνδεδεμένο',
    'logs.events': 'συμβάντα',
    'logs.jump_to_bottom': 'Μετάβαση στο τέλος',
    'logs.paused_hint': 'Η ροή αρχείων καταγραφής είναι σε παύση.',
    'logs.waiting_hint': 'Αναμονή για συμβάντα...',

    // Doctor
    'doctor.title': 'Διαγνωστικά συστήματος',
    'doctor.diagnostics_title': 'Διαγνωστικά',
    'doctor.run': 'Εκτέλεση διαγνωστικών',
    'doctor.run_diagnostics': 'Εκτέλεση διαγνωστικών',
    'doctor.running': 'Εκτέλεση διαγνωστικών...',
    'doctor.running_btn': 'Εκτελείται...',
    'doctor.running_desc': 'Εκτέλεση διαγνωστικών...',
    'doctor.running_hint': 'Αυτό μπορεί να διαρκέσει μερικά δευτερόλεπτα.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Προειδοποίηση',
    'doctor.error': 'Σφάλμα',
    'doctor.severity': 'Σοβαρότητα',
    'doctor.category': 'Κατηγορία',
    'doctor.message': 'Μήνυμα',
    'doctor.empty': 'Δεν έχουν εκτελεστεί διαγνωστικά ακόμα.',
    'doctor.summary': 'Σύνοψη διαγνωστικών',
    'doctor.issues_found': 'Βρέθηκαν προβλήματα',
    'doctor.warnings_summary': 'Προειδοποιήσεις',
    'doctor.all_clear': 'Όλα εντάξει',
    'doctor.system_diagnostics': 'Διαγνωστικά συστήματος',
    'doctor.empty_hint': 'Κάντε κλικ στο "Εκτέλεση διαγνωστικών" για να ελέγξετε την εγκατάσταση του KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Σύζευξη συσκευής',
    'auth.pairing_code': 'Κωδικός σύζευξης',
    'auth.pair_button': 'Σύζευξη',
    'auth.logout': 'Αποσύνδεση',
    'auth.pairing_success': 'Η σύζευξη ήταν επιτυχής!',
    'auth.pairing_failed': 'Η σύζευξη απέτυχε. Παρακαλώ δοκιμάστε ξανά.',
    'auth.enter_code': 'Εισαγάγετε τον κωδικό σύζευξης για σύνδεση με τον πράκτορα.',

    // Common
    'common.loading': 'Φόρτωση...',
    'common.error': 'Παρουσιάστηκε σφάλμα.',
    'common.retry': 'Επανάληψη',
    'common.cancel': 'Ακύρωση',
    'common.confirm': 'Επιβεβαίωση',
    'common.save': 'Αποθήκευση',
    'common.delete': 'Διαγραφή',
    'common.edit': 'Επεξεργασία',
    'common.close': 'Κλείσιμο',
    'common.yes': 'Ναι',
    'common.no': 'Όχι',
    'common.search': 'Αναζήτηση...',
    'common.no_data': 'Δεν υπάρχουν διαθέσιμα δεδομένα.',
    'common.refresh': 'Ανανέωση',
    'common.back': 'Πίσω',
    'common.actions': 'Ενέργειες',
    'common.name': 'Όνομα',
    'common.description': 'Περιγραφή',
    'common.status': 'Κατάσταση',
    'common.created': 'Δημιουργήθηκε',
    'common.updated': 'Ενημερώθηκε',

    // Health
    'health.title': 'Υγεία συστήματος',
    'health.component': 'Στοιχείο',
    'health.status': 'Κατάσταση',
    'health.last_ok': 'Τελευταίο OK',
    'health.last_error': 'Τελευταίο σφάλμα',
    'health.restart_count': 'Επανεκκινήσεις',
    'health.pid': 'ID διεργασίας',
    'health.uptime': 'Χρόνος λειτουργίας',
    'health.updated_at': 'Τελευταία ενημέρωση',

    // Dashboard
    'dashboard.provider_model': 'Πάροχος / Μοντέλο',
    'dashboard.since_last_restart': 'Από την τελευταία επανεκκίνηση',
    'dashboard.paired_yes': 'Ναι',
    'dashboard.paired_no': 'Όχι',
    'dashboard.cost_overview': 'Επισκόπηση κόστους',
    'dashboard.active_channels': 'Ενεργά κανάλια',
    'dashboard.filter_active': 'Ενεργό',
    'dashboard.filter_all': 'Όλα',
    'dashboard.no_active_channels': 'Δεν υπάρχουν ενεργά κανάλια',
    'dashboard.component_health': 'Υγεία στοιχείων',
    'dashboard.load_error': 'Αποτυχία φόρτωσης πίνακα ελέγχου',
    'dashboard.session_label': 'Συνεδρία',
    'dashboard.daily_label': 'Ημερήσιο',
    'dashboard.monthly_label': 'Μηνιαίο',
    'dashboard.total_tokens_label': 'Σύνολο Token',
    'dashboard.requests_label': 'Αιτήματα',
    'dashboard.no_channels': 'Δεν έχουν ρυθμιστεί κανάλια',
    'dashboard.active': 'Ενεργό',
    'dashboard.inactive': 'Ανενεργό',
    'dashboard.no_components': 'Δεν αναφέρονται στοιχεία',
    'dashboard.restarts': 'Επανεκκινήσεις',
    'dashboard.tab_overview': 'Επισκόπηση',
    'dashboard.tab_sessions': 'Συνεδρίες',
    'dashboard.tab_channels': 'Κανάλια',
    'dashboard.sessions_title': 'Ενεργές συνεδρίες',
    'dashboard.no_sessions': 'Δεν υπάρχουν ενεργές συνεδρίες',
    'dashboard.session_id': 'ID συνεδρίας',
    'dashboard.session_started': 'Ξεκίνησε',
    'dashboard.session_last_activity': 'Τελευταία δραστηριότητα',
    'dashboard.session_messages': 'Μηνύματα',
    'dashboard.session_details': 'Λεπτομέρειες συνεδρίας',
    'dashboard.session_history': 'Προβολή ιστορικού',
    'dashboard.channels_title': 'Κατάσταση καναλιών',
    'dashboard.no_channels_detail': 'Δεν υπάρχουν διαθέσιμες λεπτομέρειες καναλιών',
    'dashboard.channel_type': 'Τύπος',
    'dashboard.channel_messages': 'Μηνύματα',
    'dashboard.channel_last_message': 'Τελευταίο μήνυμα',
    'dashboard.channel_config': 'Ρυθμίσεις',
    'dashboard.channel_enabled': 'Ενεργοποιημένο',
    'dashboard.channel_disabled': 'Απενεργοποιημένο',
    'dashboard.loading_sessions': 'Φόρτωση συνεδριών...',
    'dashboard.loading_channels': 'Φόρτωση καναλιών...',
    'dashboard.load_sessions_error': 'Αποτυχία φόρτωσης συνεδριών',
    'dashboard.load_channels_error': 'Αποτυχία φόρτωσης καναλιών',
    'dashboard.never': 'Ποτέ',

    // Settings
    'settings.title': 'Ρυθμίσεις',
    'settings.tab.appearance': 'Εμφάνιση',
    'settings.tab.typography': 'Τυπογραφία',
    'settings.appearance': 'Εμφάνιση',
    'settings.typography': 'Τυπογραφία',
    'settings.fontUi': 'Γραμματοσειρά UI',
    'settings.fontMono': 'Γραμματοσειρά κώδικα',
    'settings.fontSize': 'Μέγεθος γραμματοσειράς UI',
    'settings.fontMonoSize': 'Μέγεθος γραμματοσειράς κώδικα',
    'settings.preview': 'Προεπισκόπηση',
    'settings.previewText': 'Ξεσκεπάζω τη ψυχοφθόρα βδελυγμία.',
    'settings.fontNote': 'Οι αλλαγές γραμματοσειράς εφαρμόζονται κατά την επαναφόρτωση της σελίδας.',
    'settings.language': 'Γλώσσα',

    // Theme
    'theme.mode': 'Λειτουργία θέματος',
    'theme.accent': 'Χρώμα τονισμού',
    'theme.system': 'Σύστημα',
    'theme.dark': 'Σκοτεινό',
    'theme.light': 'Φωτεινό',
    'theme.oled': 'OLED Μαύρο',
  },

  es: {
    // Navigation
    'nav.dashboard': 'Panel de control',
    'nav.agent': 'Agente',
    'nav.tools': 'Herramientas',
    'nav.cron': 'Tareas programadas',
    'nav.integrations': 'Integraciones',
    'nav.memory': 'Memoria',
    'nav.config': 'Config',
    'nav.cost': 'Seguimiento de costos',
    'nav.logs': 'Registros',
    'nav.doctor': 'Diagnóstico',
    'nav.canvas': 'Lienzo',

    // Dashboard
    'dashboard.title': 'Panel de control',
    'dashboard.provider': 'Proveedor',
    'dashboard.model': 'Modelo',
    'dashboard.uptime': 'Tiempo de actividad',
    'dashboard.temperature': 'Temperatura',
    'dashboard.gateway_port': 'Puerto de la puerta de enlace',
    'dashboard.memory_backend': 'Backend de memoria',
    'dashboard.paired': 'Emparejado',
    'dashboard.channels': 'Canales',
    'dashboard.health': 'Salud',
    'dashboard.status': 'Estado',
    'dashboard.overview': 'Resumen',
    'dashboard.system_info': 'Información del sistema',
    'dashboard.quick_actions': 'Acciones rápidas',

    // Agent / Chat
    'agent.title': 'Chat del agente',
    'agent.send': 'Enviar',
    'agent.placeholder': 'Escriba un mensaje...',
    'agent.start_conversation': 'Envíe un mensaje para iniciar la conversación',
    'agent.type_message': 'Escriba un mensaje...',
    'agent.connecting': 'Conectando...',
    'agent.connected': 'Conectado',
    'agent.disconnected': 'Desconectado',
    'agent.reconnecting': 'Reconectando...',
    'agent.thinking': 'Pensando...',
    'agent.tool_call': 'Llamada a herramienta',
    'agent.tool_result': 'Resultado de herramienta',
    'agent.connection_error': 'Error de conexión. Intentando reconectar...',
    'agent.tool_call_prefix': '[Llamada a herramienta]',
    'agent.tool_result_prefix': '[Resultado de herramienta]',
    'agent.error_prefix': '[Error]',
    'agent.unknown_error': 'Error desconocido',
    'agent.send_error': 'No se pudo enviar el mensaje. Por favor, inténtelo de nuevo.',
    'agent.copy_message': 'Copiar mensaje',
    'agent.connected_status': 'Conectado',
    'agent.disconnected_status': 'Desconectado',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Herramientas disponibles',
    'tools.name': 'Nombre',
    'tools.description': 'Descripción',
    'tools.parameters': 'Parámetros',
    'tools.search': 'Buscar herramientas...',
    'tools.empty': 'No hay herramientas disponibles.',
    'tools.count': 'Total de herramientas',
    'tools.agent_tools': 'Herramientas del agente',
    'tools.cli_tools': 'Herramientas CLI',
    'tools.parameter_schema': 'Esquema de parámetros',
    'tools.path': 'Ruta',
    'tools.version': 'Versión',
    'tools.category': 'Categoría',
    'tools.load_error': 'No se pudieron cargar las herramientas',

    // Cron
    'cron.title': 'Tareas programadas',
    'cron.scheduled_tasks': 'Tareas programadas',
    'cron.add': 'Agregar tarea',
    'cron.add_job': 'Agregar tarea',
    'cron.add_modal_title': 'Agregar tarea Cron',
    'cron.delete': 'Eliminar',
    'cron.enable': 'Activar',
    'cron.disable': 'Desactivar',
    'cron.name': 'Nombre',
    'cron.name_optional': 'Nombre (opcional)',
    'cron.command': 'Comando',
    'cron.command_required': 'Comando',
    'cron.schedule': 'Programación',
    'cron.schedule_required': 'Programación',
    'cron.next_run': 'Próxima ejecución',
    'cron.last_run': 'Última ejecución',
    'cron.last_status': 'Último estado',
    'cron.enabled': 'Activado',
    'cron.enabled_status': 'Activado',
    'cron.disabled_status': 'Desactivado',
    'cron.empty': 'No hay tareas programadas.',
    'cron.confirm_delete': '¿Está seguro de que desea eliminar esta tarea?',
    'cron.load_error': 'No se pudieron cargar las tareas Cron',
    'cron.validation_error': 'La programación y el comando son obligatorios.',
    'cron.add_error': 'No se pudo agregar la tarea',
    'cron.delete_error': 'No se pudo eliminar la tarea',
    'cron.cancel': 'Cancelar',
    'cron.adding': 'Agregando...',
    'cron.id': 'ID',
    'cron.actions': 'Acciones',
    'cron.loading_run_history': 'Cargando historial de ejecuciones...',
    'cron.load_run_history_error': 'No se pudo cargar el historial de ejecuciones',
    'cron.no_runs': 'Aún no se han registrado ejecuciones.',
    'cron.recent_runs': 'Ejecuciones recientes',
    'cron.yes': 'Sí',
    'cron.no': 'No',
    'cron.edit': 'Editar',
    'cron.edit_modal_title': 'Editar tarea Cron',
    'cron.edit_error': 'No se pudo actualizar la tarea',
    'cron.saving': 'Guardando...',
    'cron.save': 'Guardar',

    // Integrations
    'integrations.title': 'Integraciones',
    'integrations.available': 'Disponible',
    'integrations.active': 'Activo',
    'integrations.category': 'Categoría',
    'integrations.status': 'Estado',
    'integrations.search': 'Buscar integraciones...',
    'integrations.empty': 'No se encontraron integraciones.',
    'integrations.activate': 'Activar',
    'integrations.deactivate': 'Desactivar',
    'integrations.load_error': 'No se pudieron cargar las integraciones',
    'integrations.status_active': 'Activo',
    'integrations.status_available': 'Disponible',

    // Memory
    'memory.title': 'Almacén de memoria',
    'memory.memory_title': 'Memoria',
    'memory.search': 'Buscar en la memoria...',
    'memory.search_placeholder': 'Buscar entradas de memoria...',
    'memory.add': 'Almacenar memoria',
    'memory.add_memory': 'Agregar memoria',
    'memory.add_modal_title': 'Agregar memoria',
    'memory.delete': 'Eliminar',
    'memory.key': 'Clave',
    'memory.key_required': 'Clave',
    'memory.content': 'Contenido',
    'memory.content_required': 'Contenido',
    'memory.category': 'Categoría',
    'memory.category_optional': 'Categoría (opcional)',
    'memory.timestamp': 'Marca de tiempo',
    'memory.session': 'Sesión',
    'memory.score': 'Puntuación',
    'memory.empty': 'No se encontraron entradas de memoria.',
    'memory.confirm_delete': '¿Está seguro de que desea eliminar esta entrada de memoria?',
    'memory.all_categories': 'Todas las categorías',
    'memory.search_button': 'Buscar',
    'memory.load_error': 'No se pudo cargar la memoria',
    'memory.saving': 'Guardando...',
    'memory.validation_error': 'La clave y el contenido son obligatorios.',
    'memory.store_error': 'No se pudo almacenar la memoria',
    'memory.delete_error': 'No se pudo eliminar la memoria',
    'memory.delete_confirm': '¿Eliminar?',
    'memory.yes': 'Sí',
    'memory.no': 'No',
    'memory.cancel': 'Cancelar',

    // Config

    // Cost
    'cost.title': 'Seguimiento de costos',
    'cost.session': 'Costo de sesión',
    'cost.daily': 'Costo diario',
    'cost.monthly': 'Costo mensual',
    'cost.total_tokens': 'Token totales',
    'cost.request_count': 'Solicitudes',
    'cost.by_model': 'Costo por modelo',
    'cost.model': 'Modelo',
    'cost.tokens': 'Token',
    'cost.requests': 'Solicitudes',
    'cost.usd': 'Costo (USD)',
    'cost.load_error': 'No se pudieron cargar los datos de costos',
    'cost.session_cost': 'Costo de sesión',
    'cost.daily_cost': 'Costo diario',
    'cost.monthly_cost': 'Costo mensual',
    'cost.total_requests': 'Total de solicitudes',
    'cost.token_statistics': 'Estadísticas de Token',
    'cost.avg_tokens_per_request': 'Promedio de Token por solicitud',
    'cost.cost_per_1k_tokens': 'Costo por 1K Token',
    'cost.model_breakdown': 'Desglose por modelo',
    'cost.no_model_data': 'No hay datos de modelo disponibles.',
    'cost.cost': 'Costo',
    'cost.share': 'Compartir',

    // Logs
    'logs.title': 'Registros en vivo',
    'logs.live_logs': 'Registros en vivo',
    'logs.clear': 'Limpiar',
    'logs.pause': 'Pausar',
    'logs.resume': 'Reanudar',
    'logs.filter': 'Filtrar registros...',
    'logs.filter_label': 'Filtro',
    'logs.empty': 'No hay entradas de registro.',
    'logs.connected': 'Conectado',
    'logs.disconnected': 'Desconectado',
    'logs.events': 'eventos',
    'logs.jump_to_bottom': 'Ir al final',
    'logs.paused_hint': 'La transmisión de registros está en pausa.',
    'logs.waiting_hint': 'Esperando eventos...',

    // Doctor
    'doctor.title': 'Diagnóstico del sistema',
    'doctor.diagnostics_title': 'Diagnósticos',
    'doctor.run': 'Ejecutar diagnósticos',
    'doctor.run_diagnostics': 'Ejecutar diagnósticos',
    'doctor.running': 'Ejecutando diagnósticos...',
    'doctor.running_btn': 'Ejecutando...',
    'doctor.running_desc': 'Ejecutando diagnósticos...',
    'doctor.running_hint': 'Esto puede tardar unos segundos.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Advertencia',
    'doctor.error': 'Error',
    'doctor.severity': 'Gravedad',
    'doctor.category': 'Categoría',
    'doctor.message': 'Mensaje',
    'doctor.empty': 'Aún no se han ejecutado diagnósticos.',
    'doctor.summary': 'Resumen de diagnóstico',
    'doctor.issues_found': 'Problemas encontrados',
    'doctor.warnings_summary': 'Advertencias',
    'doctor.all_clear': 'Todo en orden',
    'doctor.system_diagnostics': 'Diagnóstico del sistema',
    'doctor.empty_hint': 'Haga clic en "Ejecutar diagnósticos" para verificar su instalación de KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Emparejar dispositivo',
    'auth.pairing_code': 'Código de emparejamiento',
    'auth.pair_button': 'Emparejar',
    'auth.logout': 'Cerrar sesión',
    'auth.pairing_success': '¡Emparejamiento exitoso!',
    'auth.pairing_failed': 'El emparejamiento falló. Por favor, inténtelo de nuevo.',
    'auth.enter_code': 'Ingrese su código de emparejamiento para conectarse al agente.',

    // Common
    'common.loading': 'Cargando...',
    'common.error': 'Ocurrió un error.',
    'common.retry': 'Reintentar',
    'common.cancel': 'Cancelar',
    'common.confirm': 'Confirmar',
    'common.save': 'Guardar',
    'common.delete': 'Eliminar',
    'common.edit': 'Editar',
    'common.close': 'Cerrar',
    'common.yes': 'Sí',
    'common.no': 'No',
    'common.search': 'Buscar...',
    'common.no_data': 'No hay datos disponibles.',
    'common.refresh': 'Actualizar',
    'common.back': 'Volver',
    'common.actions': 'Acciones',
    'common.name': 'Nombre',
    'common.description': 'Descripción',
    'common.status': 'Estado',
    'common.created': 'Creado',
    'common.updated': 'Actualizado',

    // Health
    'health.title': 'Salud del sistema',
    'health.component': 'Componente',
    'health.status': 'Estado',
    'health.last_ok': 'Último OK',
    'health.last_error': 'Último error',
    'health.restart_count': 'Reinicios',
    'health.pid': 'ID de proceso',
    'health.uptime': 'Tiempo de actividad',
    'health.updated_at': 'Última actualización',

    // Dashboard
    'dashboard.provider_model': 'Proveedor / Modelo',
    'dashboard.since_last_restart': 'Desde el último reinicio',
    'dashboard.paired_yes': 'Sí',
    'dashboard.paired_no': 'No',
    'dashboard.cost_overview': 'Resumen de costos',
    'dashboard.active_channels': 'Canales activos',
    'dashboard.filter_active': 'Activo',
    'dashboard.filter_all': 'Todos',
    'dashboard.no_active_channels': 'No hay canales activos',
    'dashboard.component_health': 'Salud de componentes',
    'dashboard.load_error': 'No se pudo cargar el panel de control',
    'dashboard.session_label': 'Sesión',
    'dashboard.daily_label': 'Diario',
    'dashboard.monthly_label': 'Mensual',
    'dashboard.total_tokens_label': 'Token totales',
    'dashboard.requests_label': 'Solicitudes',
    'dashboard.no_channels': 'No hay canales configurados',
    'dashboard.active': 'Activo',
    'dashboard.inactive': 'Inactivo',
    'dashboard.no_components': 'No hay componentes reportando',
    'dashboard.restarts': 'Reinicios',
    'dashboard.tab_overview': 'Resumen',
    'dashboard.tab_sessions': 'Sesiones',
    'dashboard.tab_channels': 'Canales',
    'dashboard.sessions_title': 'Sesiones activas',
    'dashboard.no_sessions': 'No hay sesiones activas',
    'dashboard.session_id': 'ID de sesión',
    'dashboard.session_started': 'Iniciada',
    'dashboard.session_last_activity': 'Última actividad',
    'dashboard.session_messages': 'Mensajes',
    'dashboard.session_details': 'Detalles de la sesión',
    'dashboard.session_history': 'Ver historial',
    'dashboard.channels_title': 'Estado de los canales',
    'dashboard.no_channels_detail': 'No hay detalles de canales disponibles',
    'dashboard.channel_type': 'Tipo',
    'dashboard.channel_messages': 'Mensajes',
    'dashboard.channel_last_message': 'Último mensaje',
    'dashboard.channel_config': 'Configuración',
    'dashboard.channel_enabled': 'Activado',
    'dashboard.channel_disabled': 'Desactivado',
    'dashboard.loading_sessions': 'Cargando sesiones...',
    'dashboard.loading_channels': 'Cargando canales...',
    'dashboard.load_sessions_error': 'No se pudieron cargar las sesiones',
    'dashboard.load_channels_error': 'No se pudieron cargar los canales',
    'dashboard.never': 'Nunca',

    // Settings
    'settings.title': 'Configuración',
    'settings.tab.appearance': 'Apariencia',
    'settings.tab.typography': 'Tipografía',
    'settings.appearance': 'Apariencia',
    'settings.typography': 'Tipografía',
    'settings.fontUi': 'Fuente de interfaz',
    'settings.fontMono': 'Fuente de código',
    'settings.fontSize': 'Tamaño de fuente de interfaz',
    'settings.fontMonoSize': 'Tamaño de fuente de código',
    'settings.preview': 'Vista previa',
    'settings.previewText': 'El veloz murciélago hindú comía feliz cardillo y kiwi.',
    'settings.fontNote': 'Los cambios de fuente se aplican al recargar la página.',
    'settings.language': 'Idioma',

    // Theme
    'theme.mode': 'Modo del tema',
    'theme.accent': 'Color de acento',
    'theme.system': 'Sistema',
    'theme.dark': 'Oscuro',
    'theme.light': 'Claro',
    'theme.oled': 'OLED Negro',
  },

  fi: {
    // Navigation
    'nav.dashboard': 'Hallintapaneeli',
    'nav.agent': 'Agentti',
    'nav.tools': 'Työkalut',
    'nav.cron': 'Ajastetut tehtävät',
    'nav.integrations': 'Integraatiot',
    'nav.memory': 'Muisti',
    'nav.config': 'Config',
    'nav.cost': 'Kustannusseuranta',
    'nav.logs': 'Lokit',
    'nav.doctor': 'Diagnostiikka',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Hallintapaneeli',
    'dashboard.provider': 'Palveluntarjoaja',
    'dashboard.model': 'Malli',
    'dashboard.uptime': 'Käyttöaika',
    'dashboard.temperature': 'Lämpötila',
    'dashboard.gateway_port': 'Yhdyskäytäväportti',
    'dashboard.memory_backend': 'Muistitaustajärjestelmä',
    'dashboard.paired': 'Yhdistetty',
    'dashboard.channels': 'Kanavat',
    'dashboard.health': 'Kunto',
    'dashboard.status': 'Tila',
    'dashboard.overview': 'Yleiskatsaus',
    'dashboard.system_info': 'Järjestelmätiedot',
    'dashboard.quick_actions': 'Pikatoiminnot',

    // Agent / Chat
    'agent.title': 'Agenttikeskustelu',
    'agent.send': 'Lähetä',
    'agent.placeholder': 'Kirjoita viesti...',
    'agent.start_conversation': 'Lähetä viesti aloittaaksesi keskustelun',
    'agent.type_message': 'Kirjoita viesti...',
    'agent.connecting': 'Yhdistetään...',
    'agent.connected': 'Yhdistetty',
    'agent.disconnected': 'Yhteys katkaistu',
    'agent.reconnecting': 'Yhdistetään uudelleen...',
    'agent.thinking': 'Ajattelee...',
    'agent.tool_call': 'Työkalukutsu',
    'agent.tool_result': 'Työkalun tulos',
    'agent.connection_error': 'Yhteysvirhe. Yritetään yhdistää uudelleen...',
    'agent.tool_call_prefix': '[Työkalukutsu]',
    'agent.tool_result_prefix': '[Työkalun tulos]',
    'agent.error_prefix': '[Virhe]',
    'agent.unknown_error': 'Tuntematon virhe',
    'agent.send_error': 'Viestin lähetys epäonnistui. Yritä uudelleen.',
    'agent.copy_message': 'Kopioi viesti',
    'agent.connected_status': 'Yhdistetty',
    'agent.disconnected_status': 'Yhteys katkaistu',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Käytettävissä olevat työkalut',
    'tools.name': 'Nimi',
    'tools.description': 'Kuvaus',
    'tools.parameters': 'Parametrit',
    'tools.search': 'Hae työkaluja...',
    'tools.empty': 'Ei käytettävissä olevia työkaluja.',
    'tools.count': 'Työkaluja yhteensä',
    'tools.agent_tools': 'Agentin työkalut',
    'tools.cli_tools': 'CLI-työkalut',
    'tools.parameter_schema': 'Parametriskeema',
    'tools.path': 'Polku',
    'tools.version': 'Versio',
    'tools.category': 'Kategoria',
    'tools.load_error': 'Työkalujen lataus epäonnistui',

    // Cron
    'cron.title': 'Ajastetut tehtävät',
    'cron.scheduled_tasks': 'Ajastetut tehtävät',
    'cron.add': 'Lisää tehtävä',
    'cron.add_job': 'Lisää tehtävä',
    'cron.add_modal_title': 'Lisää Cron-tehtävä',
    'cron.delete': 'Poista',
    'cron.enable': 'Ota käyttöön',
    'cron.disable': 'Poista käytöstä',
    'cron.name': 'Nimi',
    'cron.name_optional': 'Nimi (valinnainen)',
    'cron.command': 'Komento',
    'cron.command_required': 'Komento',
    'cron.schedule': 'Aikataulu',
    'cron.schedule_required': 'Aikataulu',
    'cron.next_run': 'Seuraava ajo',
    'cron.last_run': 'Viimeisin ajo',
    'cron.last_status': 'Viimeisin tila',
    'cron.enabled': 'Käytössä',
    'cron.enabled_status': 'Käytössä',
    'cron.disabled_status': 'Pois käytöstä',
    'cron.empty': 'Ei ajastettuja tehtäviä.',
    'cron.confirm_delete': 'Haluatko varmasti poistaa tämän tehtävän?',
    'cron.load_error': 'Cron-tehtävien lataus epäonnistui',
    'cron.validation_error': 'Aikataulu ja komento ovat pakollisia.',
    'cron.add_error': 'Tehtävän lisäys epäonnistui',
    'cron.delete_error': 'Tehtävän poisto epäonnistui',
    'cron.cancel': 'Peruuta',
    'cron.adding': 'Lisätään...',
    'cron.id': 'ID',
    'cron.actions': 'Toiminnot',
    'cron.loading_run_history': 'Ladataan ajohistoriaa...',
    'cron.load_run_history_error': 'Ajohistorian lataus epäonnistui',
    'cron.no_runs': 'Ei vielä tallennettuja ajoja.',
    'cron.recent_runs': 'Viimeisimmät ajot',
    'cron.yes': 'Kyllä',
    'cron.no': 'Ei',
    'cron.edit': 'Muokkaa',
    'cron.edit_modal_title': 'Muokkaa Cron-tehtävää',
    'cron.edit_error': 'Tehtävän päivitys epäonnistui',
    'cron.saving': 'Tallennetaan...',
    'cron.save': 'Tallenna',

    // Integrations
    'integrations.title': 'Integraatiot',
    'integrations.available': 'Saatavilla',
    'integrations.active': 'Aktiivinen',
    'integrations.category': 'Kategoria',
    'integrations.status': 'Tila',
    'integrations.search': 'Hae integraatioita...',
    'integrations.empty': 'Integraatioita ei löytynyt.',
    'integrations.activate': 'Aktivoi',
    'integrations.deactivate': 'Poista käytöstä',
    'integrations.load_error': 'Integraatioiden lataus epäonnistui',
    'integrations.status_active': 'Aktiivinen',
    'integrations.status_available': 'Saatavilla',

    // Memory
    'memory.title': 'Muistivarasto',
    'memory.memory_title': 'Muisti',
    'memory.search': 'Hae muistista...',
    'memory.search_placeholder': 'Hae muistimerkintöjä...',
    'memory.add': 'Tallenna muistiin',
    'memory.add_memory': 'Lisää muisti',
    'memory.add_modal_title': 'Lisää muisti',
    'memory.delete': 'Poista',
    'memory.key': 'Avain',
    'memory.key_required': 'Avain',
    'memory.content': 'Sisältö',
    'memory.content_required': 'Sisältö',
    'memory.category': 'Kategoria',
    'memory.category_optional': 'Kategoria (valinnainen)',
    'memory.timestamp': 'Aikaleima',
    'memory.session': 'Istunto',
    'memory.score': 'Pisteet',
    'memory.empty': 'Muistimerkintöjä ei löytynyt.',
    'memory.confirm_delete': 'Haluatko varmasti poistaa tämän muistimerkinnän?',
    'memory.all_categories': 'Kaikki kategoriat',
    'memory.search_button': 'Hae',
    'memory.load_error': 'Muistin lataus epäonnistui',
    'memory.saving': 'Tallennetaan...',
    'memory.validation_error': 'Avain ja sisältö ovat pakollisia.',
    'memory.store_error': 'Muistin tallennus epäonnistui',
    'memory.delete_error': 'Muistin poisto epäonnistui',
    'memory.delete_confirm': 'Poistetaanko?',
    'memory.yes': 'Kyllä',
    'memory.no': 'Ei',
    'memory.cancel': 'Peruuta',

    // Config

    // Cost
    'cost.title': 'Kustannusseuranta',
    'cost.session': 'Istuntokustannus',
    'cost.daily': 'Päivittäiskustannus',
    'cost.monthly': 'Kuukausikustannus',
    'cost.total_tokens': 'Tokenit yhteensä',
    'cost.request_count': 'Pyynnöt',
    'cost.by_model': 'Kustannus malleittain',
    'cost.model': 'Malli',
    'cost.tokens': 'Tokenit',
    'cost.requests': 'Pyynnöt',
    'cost.usd': 'Kustannus (USD)',
    'cost.load_error': 'Kustannustietojen lataus epäonnistui',
    'cost.session_cost': 'Istuntokustannus',
    'cost.daily_cost': 'Päivittäiskustannus',
    'cost.monthly_cost': 'Kuukausikustannus',
    'cost.total_requests': 'Pyynnöt yhteensä',
    'cost.token_statistics': 'Token-tilastot',
    'cost.avg_tokens_per_request': 'Tokenit / pyyntö keskim.',
    'cost.cost_per_1k_tokens': 'Kustannus / 1K tokenia',
    'cost.model_breakdown': 'Mallikohtainen erittely',
    'cost.no_model_data': 'Mallitietoja ei saatavilla.',
    'cost.cost': 'Kustannus',
    'cost.share': 'Jaa',

    // Logs
    'logs.title': 'Reaaliaikaiset lokit',
    'logs.live_logs': 'Reaaliaikaiset lokit',
    'logs.clear': 'Tyhjennä',
    'logs.pause': 'Keskeytä',
    'logs.resume': 'Jatka',
    'logs.filter': 'Suodata lokeja...',
    'logs.filter_label': 'Suodatin',
    'logs.empty': 'Ei lokimerkintöjä.',
    'logs.connected': 'Yhdistetty',
    'logs.disconnected': 'Yhteys katkaistu',
    'logs.events': 'tapahtumaa',
    'logs.jump_to_bottom': 'Siirry alas',
    'logs.paused_hint': 'Lokien suoratoisto on keskeytetty.',
    'logs.waiting_hint': 'Odotetaan tapahtumia...',

    // Doctor
    'doctor.title': 'Järjestelmädiagnostiikka',
    'doctor.diagnostics_title': 'Diagnostiikka',
    'doctor.run': 'Suorita diagnostiikka',
    'doctor.run_diagnostics': 'Suorita diagnostiikka',
    'doctor.running': 'Suoritetaan diagnostiikkaa...',
    'doctor.running_btn': 'Suoritetaan...',
    'doctor.running_desc': 'Suoritetaan diagnostiikkaa...',
    'doctor.running_hint': 'Tämä voi kestää muutaman sekunnin.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Varoitus',
    'doctor.error': 'Virhe',
    'doctor.severity': 'Vakavuus',
    'doctor.category': 'Kategoria',
    'doctor.message': 'Viesti',
    'doctor.empty': 'Diagnostiikkaa ei ole vielä suoritettu.',
    'doctor.summary': 'Diagnostiikan yhteenveto',
    'doctor.issues_found': 'Ongelmia löytyi',
    'doctor.warnings_summary': 'Varoitukset',
    'doctor.all_clear': 'Kaikki kunnossa',
    'doctor.system_diagnostics': 'Järjestelmädiagnostiikka',
    'doctor.empty_hint': 'Napsauta "Suorita diagnostiikka" tarkistaaksesi KylinBot-asennuksen.',

    // Auth / Pairing
    'auth.pair': 'Yhdistä laite',
    'auth.pairing_code': 'Yhdistämiskoodi',
    'auth.pair_button': 'Yhdistä',
    'auth.logout': 'Kirjaudu ulos',
    'auth.pairing_success': 'Yhdistäminen onnistui!',
    'auth.pairing_failed': 'Yhdistäminen epäonnistui. Yritä uudelleen.',
    'auth.enter_code': 'Syötä yhdistämiskoodi muodostaaksesi yhteyden agenttiin.',

    // Common
    'common.loading': 'Ladataan...',
    'common.error': 'Tapahtui virhe.',
    'common.retry': 'Yritä uudelleen',
    'common.cancel': 'Peruuta',
    'common.confirm': 'Vahvista',
    'common.save': 'Tallenna',
    'common.delete': 'Poista',
    'common.edit': 'Muokkaa',
    'common.close': 'Sulje',
    'common.yes': 'Kyllä',
    'common.no': 'Ei',
    'common.search': 'Hae...',
    'common.no_data': 'Tietoja ei saatavilla.',
    'common.refresh': 'Päivitä',
    'common.back': 'Takaisin',
    'common.actions': 'Toiminnot',
    'common.name': 'Nimi',
    'common.description': 'Kuvaus',
    'common.status': 'Tila',
    'common.created': 'Luotu',
    'common.updated': 'Päivitetty',

    // Health
    'health.title': 'Järjestelmän kunto',
    'health.component': 'Komponentti',
    'health.status': 'Tila',
    'health.last_ok': 'Viimeisin OK',
    'health.last_error': 'Viimeisin virhe',
    'health.restart_count': 'Uudelleenkäynnistykset',
    'health.pid': 'Prosessitunnus',
    'health.uptime': 'Käyttöaika',
    'health.updated_at': 'Viimeksi päivitetty',

    // Dashboard
    'dashboard.provider_model': 'Palveluntarjoaja / Malli',
    'dashboard.since_last_restart': 'Viimeisimmästä uudelleenkäynnistyksestä',
    'dashboard.paired_yes': 'Kyllä',
    'dashboard.paired_no': 'Ei',
    'dashboard.cost_overview': 'Kustannusyhteenveto',
    'dashboard.active_channels': 'Aktiiviset kanavat',
    'dashboard.filter_active': 'Aktiiviset',
    'dashboard.filter_all': 'Kaikki',
    'dashboard.no_active_channels': 'Ei aktiivisia kanavia',
    'dashboard.component_health': 'Komponenttien kunto',
    'dashboard.load_error': 'Hallintapaneelin lataus epäonnistui',
    'dashboard.session_label': 'Istunto',
    'dashboard.daily_label': 'Päivittäinen',
    'dashboard.monthly_label': 'Kuukausittainen',
    'dashboard.total_tokens_label': 'Tokenit yhteensä',
    'dashboard.requests_label': 'Pyynnöt',
    'dashboard.no_channels': 'Kanavia ei ole määritetty',
    'dashboard.active': 'Aktiivinen',
    'dashboard.inactive': 'Ei aktiivinen',
    'dashboard.no_components': 'Komponentit eivät raportoi',
    'dashboard.restarts': 'Uudelleenkäynnistykset',
    'dashboard.tab_overview': 'Yleiskatsaus',
    'dashboard.tab_sessions': 'Istunnot',
    'dashboard.tab_channels': 'Kanavat',
    'dashboard.sessions_title': 'Aktiiviset istunnot',
    'dashboard.no_sessions': 'Ei aktiivisia istuntoja',
    'dashboard.session_id': 'Istuntotunnus',
    'dashboard.session_started': 'Aloitettu',
    'dashboard.session_last_activity': 'Viimeisin toiminta',
    'dashboard.session_messages': 'Viestit',
    'dashboard.session_details': 'Istunnon tiedot',
    'dashboard.session_history': 'Näytä historia',
    'dashboard.channels_title': 'Kanavien tila',
    'dashboard.no_channels_detail': 'Kanavatietoja ei saatavilla',
    'dashboard.channel_type': 'Tyyppi',
    'dashboard.channel_messages': 'Viestit',
    'dashboard.channel_last_message': 'Viimeisin viesti',
    'dashboard.channel_config': 'Asetukset',
    'dashboard.channel_enabled': 'Käytössä',
    'dashboard.channel_disabled': 'Pois käytöstä',
    'dashboard.loading_sessions': 'Ladataan istuntoja...',
    'dashboard.loading_channels': 'Ladataan kanavia...',
    'dashboard.load_sessions_error': 'Istuntojen lataus epäonnistui',
    'dashboard.load_channels_error': 'Kanavien lataus epäonnistui',
    'dashboard.never': 'Ei koskaan',

    // Settings
    'settings.title': 'Asetukset',
    'settings.tab.appearance': 'Ulkoasu',
    'settings.tab.typography': 'Typografia',
    'settings.appearance': 'Ulkoasu',
    'settings.typography': 'Typografia',
    'settings.fontUi': 'Käyttöliittymän fontti',
    'settings.fontMono': 'Koodin fontti',
    'settings.fontSize': 'Käyttöliittymän fonttikoko',
    'settings.fontMonoSize': 'Koodin fonttikoko',
    'settings.preview': 'Esikatselu',
    'settings.previewText': 'Pistransen piansen pansen pansen pansen.',
    'settings.fontNote': 'Fonttimuutokset tulevat voimaan sivun uudelleenlatauksen yhteydessä.',
    'settings.language': 'Kieli',

    // Theme
    'theme.mode': 'Teeman tila',
    'theme.accent': 'Korostusväri',
    'theme.system': 'Järjestelmä',
    'theme.dark': 'Tumma',
    'theme.light': 'Vaalea',
    'theme.oled': 'OLED musta',
  },

  fr: {
    // Navigation
    'nav.dashboard': 'Tableau de bord',
    'nav.agent': 'Agent',
    'nav.tools': 'Outils',
    'nav.cron': 'Tâches planifiées',
    'nav.integrations': 'Intégrations',
    'nav.memory': 'Mémoire',
    'nav.config': 'Config',
    'nav.cost': 'Suivi des coûts',
    'nav.logs': 'Journaux',
    'nav.doctor': 'Diagnostic',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Tableau de bord',
    'dashboard.provider': 'Fournisseur',
    'dashboard.model': 'Modèle',
    'dashboard.uptime': 'Temps de fonctionnement',
    'dashboard.temperature': 'Température',
    'dashboard.gateway_port': 'Port de la passerelle',
    'dashboard.memory_backend': 'Backend mémoire',
    'dashboard.paired': 'Appairé',
    'dashboard.channels': 'Canaux',
    'dashboard.health': 'Santé',
    'dashboard.status': 'Statut',
    'dashboard.overview': 'Vue d\'ensemble',
    'dashboard.system_info': 'Informations système',
    'dashboard.quick_actions': 'Actions rapides',

    // Agent / Chat
    'agent.title': 'Chat agent',
    'agent.send': 'Envoyer',
    'agent.placeholder': 'Saisissez un message...',
    'agent.start_conversation': 'Envoyez un message pour démarrer la conversation',
    'agent.type_message': 'Saisissez un message...',
    'agent.connecting': 'Connexion...',
    'agent.connected': 'Connecté',
    'agent.disconnected': 'Déconnecté',
    'agent.reconnecting': 'Reconnexion...',
    'agent.thinking': 'Réflexion...',
    'agent.tool_call': 'Appel d\'outil',
    'agent.tool_result': 'Résultat de l\'outil',
    'agent.connection_error': 'Erreur de connexion. Tentative de reconnexion...',
    'agent.tool_call_prefix': '[Appel d\'outil]',
    'agent.tool_result_prefix': '[Résultat de l\'outil]',
    'agent.error_prefix': '[Erreur]',
    'agent.unknown_error': 'Erreur inconnue',
    'agent.send_error': 'Échec de l\'envoi du message. Veuillez réessayer.',
    'agent.copy_message': 'Copier le message',
    'agent.connected_status': 'Connecté',
    'agent.disconnected_status': 'Déconnecté',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Outils disponibles',
    'tools.name': 'Nom',
    'tools.description': 'Description',
    'tools.parameters': 'Paramètres',
    'tools.search': 'Rechercher des outils...',
    'tools.empty': 'Aucun outil disponible.',
    'tools.count': 'Total des outils',
    'tools.agent_tools': 'Outils de l\'agent',
    'tools.cli_tools': 'Outils CLI',
    'tools.parameter_schema': 'Schéma des paramètres',
    'tools.path': 'Chemin',
    'tools.version': 'Version',
    'tools.category': 'Catégorie',
    'tools.load_error': 'Échec du chargement des outils',

    // Cron
    'cron.title': 'Tâches planifiées',
    'cron.scheduled_tasks': 'Tâches planifiées',
    'cron.add': 'Ajouter une tâche',
    'cron.add_job': 'Ajouter une tâche',
    'cron.add_modal_title': 'Ajouter une tâche Cron',
    'cron.delete': 'Supprimer',
    'cron.enable': 'Activer',
    'cron.disable': 'Désactiver',
    'cron.name': 'Nom',
    'cron.name_optional': 'Nom (facultatif)',
    'cron.command': 'Commande',
    'cron.command_required': 'Commande',
    'cron.schedule': 'Planification',
    'cron.schedule_required': 'Planification',
    'cron.next_run': 'Prochaine exécution',
    'cron.last_run': 'Dernière exécution',
    'cron.last_status': 'Dernier statut',
    'cron.enabled': 'Activé',
    'cron.enabled_status': 'Activé',
    'cron.disabled_status': 'Désactivé',
    'cron.empty': 'Aucune tâche planifiée.',
    'cron.confirm_delete': 'Êtes-vous sûr de vouloir supprimer cette tâche ?',
    'cron.load_error': 'Échec du chargement des tâches Cron',
    'cron.validation_error': 'La planification et la commande sont requises.',
    'cron.add_error': 'Échec de l\'ajout de la tâche',
    'cron.delete_error': 'Échec de la suppression de la tâche',
    'cron.cancel': 'Annuler',
    'cron.adding': 'Ajout...',
    'cron.id': 'ID',
    'cron.actions': 'Actions',
    'cron.loading_run_history': 'Chargement de l\'historique d\'exécution...',
    'cron.load_run_history_error': 'Échec du chargement de l\'historique d\'exécution',
    'cron.no_runs': 'Aucune exécution enregistrée.',
    'cron.recent_runs': 'Exécutions récentes',
    'cron.yes': 'Oui',
    'cron.no': 'Non',
    'cron.edit': 'Modifier',
    'cron.edit_modal_title': 'Modifier la tâche Cron',
    'cron.edit_error': 'Échec de la mise à jour de la tâche',
    'cron.saving': 'Enregistrement...',
    'cron.save': 'Enregistrer',

    // Integrations
    'integrations.title': 'Intégrations',
    'integrations.available': 'Disponible',
    'integrations.active': 'Actif',
    'integrations.category': 'Catégorie',
    'integrations.status': 'Statut',
    'integrations.search': 'Rechercher des intégrations...',
    'integrations.empty': 'Aucune intégration trouvée.',
    'integrations.activate': 'Activer',
    'integrations.deactivate': 'Désactiver',
    'integrations.load_error': 'Échec du chargement des intégrations',
    'integrations.status_active': 'Actif',
    'integrations.status_available': 'Disponible',

    // Memory
    'memory.title': 'Stockage mémoire',
    'memory.memory_title': 'Mémoire',
    'memory.search': 'Rechercher dans la mémoire...',
    'memory.search_placeholder': 'Rechercher des entrées mémoire...',
    'memory.add': 'Stocker en mémoire',
    'memory.add_memory': 'Ajouter une mémoire',
    'memory.add_modal_title': 'Ajouter une mémoire',
    'memory.delete': 'Supprimer',
    'memory.key': 'Clé',
    'memory.key_required': 'Clé',
    'memory.content': 'Contenu',
    'memory.content_required': 'Contenu',
    'memory.category': 'Catégorie',
    'memory.category_optional': 'Catégorie (facultatif)',
    'memory.timestamp': 'Horodatage',
    'memory.session': 'Session',
    'memory.score': 'Score',
    'memory.empty': 'Aucune entrée mémoire trouvée.',
    'memory.confirm_delete': 'Êtes-vous sûr de vouloir supprimer cette entrée mémoire ?',
    'memory.all_categories': 'Toutes les catégories',
    'memory.search_button': 'Rechercher',
    'memory.load_error': 'Échec du chargement de la mémoire',
    'memory.saving': 'Enregistrement...',
    'memory.validation_error': 'La clé et le contenu sont requis.',
    'memory.store_error': 'Échec du stockage de la mémoire',
    'memory.delete_error': 'Échec de la suppression de la mémoire',
    'memory.delete_confirm': 'Supprimer ?',
    'memory.yes': 'Oui',
    'memory.no': 'Non',
    'memory.cancel': 'Annuler',

    // Config

    // Cost
    'cost.title': 'Suivi des coûts',
    'cost.session': 'Coût de la session',
    'cost.daily': 'Coût quotidien',
    'cost.monthly': 'Coût mensuel',
    'cost.total_tokens': 'Total des tokens',
    'cost.request_count': 'Requêtes',
    'cost.by_model': 'Coût par modèle',
    'cost.model': 'Modèle',
    'cost.tokens': 'Tokens',
    'cost.requests': 'Requêtes',
    'cost.usd': 'Coût (USD)',
    'cost.load_error': 'Échec du chargement des données de coût',
    'cost.session_cost': 'Coût de la session',
    'cost.daily_cost': 'Coût quotidien',
    'cost.monthly_cost': 'Coût mensuel',
    'cost.total_requests': 'Total des requêtes',
    'cost.token_statistics': 'Statistiques des tokens',
    'cost.avg_tokens_per_request': 'Tokens moyens / requête',
    'cost.cost_per_1k_tokens': 'Coût pour 1K tokens',
    'cost.model_breakdown': 'Détail par modèle',
    'cost.no_model_data': 'Aucune donnée de modèle disponible.',
    'cost.cost': 'Coût',
    'cost.share': 'Partager',

    // Logs
    'logs.title': 'Journaux en direct',
    'logs.live_logs': 'Journaux en direct',
    'logs.clear': 'Effacer',
    'logs.pause': 'Pause',
    'logs.resume': 'Reprendre',
    'logs.filter': 'Filtrer les journaux...',
    'logs.filter_label': 'Filtre',
    'logs.empty': 'Aucune entrée de journal.',
    'logs.connected': 'Connecté',
    'logs.disconnected': 'Déconnecté',
    'logs.events': 'événements',
    'logs.jump_to_bottom': 'Aller en bas',
    'logs.paused_hint': 'La diffusion des journaux est en pause.',
    'logs.waiting_hint': 'En attente d\'événements...',

    // Doctor
    'doctor.title': 'Diagnostics système',
    'doctor.diagnostics_title': 'Diagnostics',
    'doctor.run': 'Exécuter les diagnostics',
    'doctor.run_diagnostics': 'Exécuter les diagnostics',
    'doctor.running': 'Exécution des diagnostics...',
    'doctor.running_btn': 'Exécution...',
    'doctor.running_desc': 'Exécution des diagnostics...',
    'doctor.running_hint': 'Cela peut prendre quelques secondes.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Avertissement',
    'doctor.error': 'Erreur',
    'doctor.severity': 'Sévérité',
    'doctor.category': 'Catégorie',
    'doctor.message': 'Message',
    'doctor.empty': 'Aucun diagnostic n\'a encore été exécuté.',
    'doctor.summary': 'Résumé du diagnostic',
    'doctor.issues_found': 'Problèmes trouvés',
    'doctor.warnings_summary': 'Avertissements',
    'doctor.all_clear': 'Tout est en ordre',
    'doctor.system_diagnostics': 'Diagnostics système',
    'doctor.empty_hint': 'Cliquez sur "Exécuter les diagnostics" pour vérifier votre installation KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Appairer l\'appareil',
    'auth.pairing_code': 'Code d\'appairage',
    'auth.pair_button': 'Appairer',
    'auth.logout': 'Déconnexion',
    'auth.pairing_success': 'Appairage réussi !',
    'auth.pairing_failed': 'Échec de l\'appairage. Veuillez réessayer.',
    'auth.enter_code': 'Saisissez votre code d\'appairage pour vous connecter à l\'agent.',
    'pairing.title': 'Jumelage d\'appareil',
    'pairing.pair_new_device': 'Jumeler un nouvel appareil',
    'pairing.pairing_code': 'Code de jumelage',
    'pairing.code_hint': 'Entrez ce code sur le nouvel appareil',
    'pairing.paired_devices': 'Appareils jumelés',
    'pairing.no_devices': 'Aucun appareil jumelé.',
    'pairing.name': 'Nom',
    'pairing.type': 'Type',
    'pairing.paired': 'Jumelé',
    'pairing.last_seen': 'Dernière connexion',
    'pairing.actions': 'Actions',
    'pairing.load_error': 'Impossible de charger les appareils',
    'pairing.generate_error': 'Impossible de générer le code de jumelage',
    'pairing.revoke_error': 'Impossible de révoquer l\'appareil',

    // Common
    'common.loading': 'Chargement...',
    'common.error': 'Une erreur est survenue.',
    'common.retry': 'Réessayer',
    'common.cancel': 'Annuler',
    'common.confirm': 'Confirmer',
    'common.save': 'Enregistrer',
    'common.delete': 'Supprimer',
    'common.edit': 'Modifier',
    'common.close': 'Fermer',
    'common.yes': 'Oui',
    'common.no': 'Non',
    'common.search': 'Rechercher...',
    'common.no_data': 'Aucune donnée disponible.',
    'common.refresh': 'Actualiser',
    'common.back': 'Retour',
    'common.actions': 'Actions',
    'common.name': 'Nom',
    'common.description': 'Description',
    'common.status': 'Statut',
    'common.created': 'Créé',
    'common.updated': 'Mis à jour',

    // Health
    'health.title': 'Santé du système',
    'health.component': 'Composant',
    'health.status': 'Statut',
    'health.last_ok': 'Dernier OK',
    'health.last_error': 'Dernière erreur',
    'health.restart_count': 'Redémarrages',
    'health.pid': 'ID de processus',
    'health.uptime': 'Temps de fonctionnement',
    'health.updated_at': 'Dernière mise à jour',

    // Dashboard
    'dashboard.provider_model': 'Fournisseur / Modèle',
    'dashboard.since_last_restart': 'Depuis le dernier redémarrage',
    'dashboard.paired_yes': 'Oui',
    'dashboard.paired_no': 'Non',
    'dashboard.cost_overview': 'Aperçu des coûts',
    'dashboard.active_channels': 'Canaux actifs',
    'dashboard.filter_active': 'Actifs',
    'dashboard.filter_all': 'Tous',
    'dashboard.no_active_channels': 'Aucun canal actif',
    'dashboard.component_health': 'Santé des composants',
    'dashboard.load_error': 'Échec du chargement du tableau de bord',
    'dashboard.session_label': 'Session',
    'dashboard.daily_label': 'Quotidien',
    'dashboard.monthly_label': 'Mensuel',
    'dashboard.total_tokens_label': 'Total des tokens',
    'dashboard.requests_label': 'Requêtes',
    'dashboard.no_channels': 'Aucun canal configuré',
    'dashboard.active': 'Actif',
    'dashboard.inactive': 'Inactif',
    'dashboard.no_components': 'Aucun composant ne rapporte',
    'dashboard.restarts': 'Redémarrages',
    'dashboard.tab_overview': 'Vue d\'ensemble',
    'dashboard.tab_sessions': 'Sessions',
    'dashboard.tab_channels': 'Canaux',
    'dashboard.sessions_title': 'Sessions actives',
    'dashboard.no_sessions': 'Aucune session active',
    'dashboard.session_id': 'ID de session',
    'dashboard.session_started': 'Démarré',
    'dashboard.session_last_activity': 'Dernière activité',
    'dashboard.session_messages': 'Messages',
    'dashboard.session_details': 'Détails de la session',
    'dashboard.session_history': 'Voir l\'historique',
    'dashboard.channels_title': 'État des canaux',
    'dashboard.no_channels_detail': 'Aucun détail de canal disponible',
    'dashboard.channel_type': 'Type',
    'dashboard.channel_messages': 'Messages',
    'dashboard.channel_last_message': 'Dernier message',
    'dashboard.channel_config': 'Configuration',
    'dashboard.channel_enabled': 'Activé',
    'dashboard.channel_disabled': 'Désactivé',
    'dashboard.loading_sessions': 'Chargement des sessions...',
    'dashboard.loading_channels': 'Chargement des canaux...',
    'dashboard.load_sessions_error': 'Échec du chargement des sessions',
    'dashboard.load_channels_error': 'Échec du chargement des canaux',
    'dashboard.never': 'Jamais',

    // Settings
    'settings.title': 'Paramètres',
    'settings.tab.appearance': 'Apparence',
    'settings.tab.typography': 'Typographie',
    'settings.appearance': 'Apparence',
    'settings.typography': 'Typographie',
    'settings.fontUi': 'Police de l\'interface',
    'settings.fontMono': 'Police de code',
    'settings.fontSize': 'Taille de police de l\'interface',
    'settings.fontMonoSize': 'Taille de police de code',
    'settings.preview': 'Aperçu',
    'settings.previewText': 'Le vif renard brun saute par-dessus le chien paresseux.',
    'settings.fontNote': 'Les changements de police s\'appliquent au rechargement de la page.',
    'settings.language': 'Langue',

    // Theme
    'theme.mode': 'Mode du thème',
    'theme.accent': 'Couleur d\'accentuation',
    'theme.system': 'Système',
    'theme.dark': 'Sombre',
    'theme.light': 'Clair',
    'theme.oled': 'Noir OLED',
  },

  he: {
    // Navigation
    'nav.dashboard': 'לוח בקרה',
    'nav.agent': 'סוכן',
    'nav.tools': 'כלים',
    'nav.cron': 'משימות מתוזמנות',
    'nav.integrations': 'אינטגרציות',
    'nav.memory': 'זיכרון',
    'nav.config': 'Config',
    'nav.cost': 'מעקב עלויות',
    'nav.logs': 'יומנים',
    'nav.doctor': 'אבחון',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'לוח בקרה',
    'dashboard.provider': 'ספק',
    'dashboard.model': 'מודל',
    'dashboard.uptime': 'זמן פעילות',
    'dashboard.temperature': 'טמפרטורה',
    'dashboard.gateway_port': 'פורט שער',
    'dashboard.memory_backend': 'מנוע זיכרון',
    'dashboard.paired': 'מותאם',
    'dashboard.channels': 'ערוצים',
    'dashboard.health': 'תקינות',
    'dashboard.status': 'סטטוס',
    'dashboard.overview': 'סקירה כללית',
    'dashboard.system_info': 'מידע מערכת',
    'dashboard.quick_actions': 'פעולות מהירות',

    // Agent / Chat
    'agent.title': 'צ\'אט סוכן',
    'agent.send': 'שלח',
    'agent.placeholder': 'הקלד הודעה...',
    'agent.start_conversation': 'שלח הודעה כדי להתחיל את השיחה',
    'agent.type_message': 'הקלד הודעה...',
    'agent.connecting': 'מתחבר...',
    'agent.connected': 'מחובר',
    'agent.disconnected': 'מנותק',
    'agent.reconnecting': 'מתחבר מחדש...',
    'agent.thinking': 'חושב...',
    'agent.tool_call': 'קריאת כלי',
    'agent.tool_result': 'תוצאת כלי',
    'agent.connection_error': 'שגיאת חיבור. מנסה להתחבר מחדש...',
    'agent.tool_call_prefix': '[קריאת כלי]',
    'agent.tool_result_prefix': '[תוצאת כלי]',
    'agent.error_prefix': '[שגיאה]',
    'agent.unknown_error': 'שגיאה לא ידועה',
    'agent.send_error': 'שליחת ההודעה נכשלה. אנא נסה שוב.',
    'agent.copy_message': 'העתק הודעה',
    'agent.connected_status': 'מחובר',
    'agent.disconnected_status': 'מנותק',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'כלים זמינים',
    'tools.name': 'שם',
    'tools.description': 'תיאור',
    'tools.parameters': 'פרמטרים',
    'tools.search': 'חפש כלים...',
    'tools.empty': 'אין כלים זמינים.',
    'tools.count': 'סך הכלים',
    'tools.agent_tools': 'כלי סוכן',
    'tools.cli_tools': 'כלי CLI',
    'tools.parameter_schema': 'סכמת פרמטרים',
    'tools.path': 'נתיב',
    'tools.version': 'גרסה',
    'tools.category': 'קטגוריה',
    'tools.load_error': 'טעינת הכלים נכשלה',

    // Cron
    'cron.title': 'משימות מתוזמנות',
    'cron.scheduled_tasks': 'משימות מתוזמנות',
    'cron.add': 'הוסף משימה',
    'cron.add_job': 'הוסף משימה',
    'cron.add_modal_title': 'הוסף משימת Cron',
    'cron.delete': 'מחק',
    'cron.enable': 'הפעל',
    'cron.disable': 'השבת',
    'cron.name': 'שם',
    'cron.name_optional': 'שם (אופציונלי)',
    'cron.command': 'פקודה',
    'cron.command_required': 'פקודה',
    'cron.schedule': 'תזמון',
    'cron.schedule_required': 'תזמון',
    'cron.next_run': 'ריצה הבאה',
    'cron.last_run': 'ריצה אחרונה',
    'cron.last_status': 'סטטוס אחרון',
    'cron.enabled': 'מופעל',
    'cron.enabled_status': 'מופעל',
    'cron.disabled_status': 'מושבת',
    'cron.empty': 'אין משימות מתוזמנות.',
    'cron.confirm_delete': 'האם אתה בטוח שברצונך למחוק משימה זו?',
    'cron.load_error': 'טעינת משימות Cron נכשלה',
    'cron.validation_error': 'תזמון ופקודה הם שדות חובה.',
    'cron.add_error': 'הוספת המשימה נכשלה',
    'cron.delete_error': 'מחיקת המשימה נכשלה',
    'cron.cancel': 'ביטול',
    'cron.adding': 'מוסיף...',
    'cron.id': 'ID',
    'cron.actions': 'פעולות',
    'cron.loading_run_history': 'טוען היסטוריית ריצות...',
    'cron.load_run_history_error': 'טעינת היסטוריית הריצות נכשלה',
    'cron.no_runs': 'אין ריצות מתועדות עדיין.',
    'cron.recent_runs': 'ריצות אחרונות',
    'cron.yes': 'כן',
    'cron.no': 'לא',
    'cron.edit': 'ערוך',
    'cron.edit_modal_title': 'ערוך משימת Cron',
    'cron.edit_error': 'עדכון המשימה נכשל',
    'cron.saving': 'שומר...',
    'cron.save': 'שמור',

    // Integrations
    'integrations.title': 'אינטגרציות',
    'integrations.available': 'זמין',
    'integrations.active': 'פעיל',
    'integrations.category': 'קטגוריה',
    'integrations.status': 'סטטוס',
    'integrations.search': 'חפש אינטגרציות...',
    'integrations.empty': 'לא נמצאו אינטגרציות.',
    'integrations.activate': 'הפעל',
    'integrations.deactivate': 'השבת',
    'integrations.load_error': 'טעינת האינטגרציות נכשלה',
    'integrations.status_active': 'פעיל',
    'integrations.status_available': 'זמין',

    // Memory
    'memory.title': 'מאגר זיכרון',
    'memory.memory_title': 'זיכרון',
    'memory.search': 'חפש בזיכרון...',
    'memory.search_placeholder': 'חפש רשומות זיכרון...',
    'memory.add': 'שמור בזיכרון',
    'memory.add_memory': 'הוסף זיכרון',
    'memory.add_modal_title': 'הוסף זיכרון',
    'memory.delete': 'מחק',
    'memory.key': 'מפתח',
    'memory.key_required': 'מפתח',
    'memory.content': 'תוכן',
    'memory.content_required': 'תוכן',
    'memory.category': 'קטגוריה',
    'memory.category_optional': 'קטגוריה (אופציונלי)',
    'memory.timestamp': 'חותמת זמן',
    'memory.session': 'סשן',
    'memory.score': 'ציון',
    'memory.empty': 'לא נמצאו רשומות זיכרון.',
    'memory.confirm_delete': 'האם אתה בטוח שברצונך למחוק רשומת זיכרון זו?',
    'memory.all_categories': 'כל הקטגוריות',
    'memory.search_button': 'חפש',
    'memory.load_error': 'טעינת הזיכרון נכשלה',
    'memory.saving': 'שומר...',
    'memory.validation_error': 'מפתח ותוכן הם שדות חובה.',
    'memory.store_error': 'שמירת הזיכרון נכשלה',
    'memory.delete_error': 'מחיקת הזיכרון נכשלה',
    'memory.delete_confirm': 'למחוק?',
    'memory.yes': 'כן',
    'memory.no': 'לא',
    'memory.cancel': 'ביטול',

    // Config

    // Cost
    'cost.title': 'מעקב עלויות',
    'cost.session': 'עלות סשן',
    'cost.daily': 'עלות יומית',
    'cost.monthly': 'עלות חודשית',
    'cost.total_tokens': 'סך הטוקנים',
    'cost.request_count': 'בקשות',
    'cost.by_model': 'עלות לפי מודל',
    'cost.model': 'מודל',
    'cost.tokens': 'טוקנים',
    'cost.requests': 'בקשות',
    'cost.usd': 'עלות (USD)',
    'cost.load_error': 'טעינת נתוני העלות נכשלה',
    'cost.session_cost': 'עלות סשן',
    'cost.daily_cost': 'עלות יומית',
    'cost.monthly_cost': 'עלות חודשית',
    'cost.total_requests': 'סך הבקשות',
    'cost.token_statistics': 'סטטיסטיקות טוקנים',
    'cost.avg_tokens_per_request': 'טוקנים ממוצעים / בקשה',
    'cost.cost_per_1k_tokens': 'עלות ל-1K טוקנים',
    'cost.model_breakdown': 'פירוט לפי מודל',
    'cost.no_model_data': 'אין נתוני מודל זמינים.',
    'cost.cost': 'עלות',
    'cost.share': 'שתף',

    // Logs
    'logs.title': 'יומנים חיים',
    'logs.live_logs': 'יומנים חיים',
    'logs.clear': 'נקה',
    'logs.pause': 'השהה',
    'logs.resume': 'המשך',
    'logs.filter': 'סנן יומנים...',
    'logs.filter_label': 'מסנן',
    'logs.empty': 'אין רשומות יומן.',
    'logs.connected': 'מחובר',
    'logs.disconnected': 'מנותק',
    'logs.events': 'אירועים',
    'logs.jump_to_bottom': 'קפוץ למטה',
    'logs.paused_hint': 'הזרמת היומנים מושהית.',
    'logs.waiting_hint': 'ממתין לאירועים...',

    // Doctor
    'doctor.title': 'אבחון מערכת',
    'doctor.diagnostics_title': 'אבחון',
    'doctor.run': 'הפעל אבחון',
    'doctor.run_diagnostics': 'הפעל אבחון',
    'doctor.running': 'מריץ אבחון...',
    'doctor.running_btn': 'מריץ...',
    'doctor.running_desc': 'מריץ אבחון...',
    'doctor.running_hint': 'פעולה זו עשויה להימשך מספר שניות.',
    'doctor.ok': 'OK',
    'doctor.warn': 'אזהרה',
    'doctor.error': 'שגיאה',
    'doctor.severity': 'חומרה',
    'doctor.category': 'קטגוריה',
    'doctor.message': 'הודעה',
    'doctor.empty': 'טרם בוצע אבחון.',
    'doctor.summary': 'סיכום אבחון',
    'doctor.issues_found': 'בעיות שנמצאו',
    'doctor.warnings_summary': 'אזהרות',
    'doctor.all_clear': 'הכל תקין',
    'doctor.system_diagnostics': 'אבחון מערכת',
    'doctor.empty_hint': 'לחץ על "הפעל אבחון" כדי לבדוק את התקנת KylinBot שלך.',

    // Auth / Pairing
    'auth.pair': 'צמד מכשיר',
    'auth.pairing_code': 'קוד צימוד',
    'auth.pair_button': 'צמד',
    'auth.logout': 'התנתק',
    'auth.pairing_success': 'הצימוד הצליח!',
    'auth.pairing_failed': 'הצימוד נכשל. אנא נסה שוב.',
    'auth.enter_code': 'הזן את קוד הצימוד שלך כדי להתחבר לסוכן.',

    // Common
    'common.loading': 'טוען...',
    'common.error': 'אירעה שגיאה.',
    'common.retry': 'נסה שוב',
    'common.cancel': 'ביטול',
    'common.confirm': 'אשר',
    'common.save': 'שמור',
    'common.delete': 'מחק',
    'common.edit': 'ערוך',
    'common.close': 'סגור',
    'common.yes': 'כן',
    'common.no': 'לא',
    'common.search': 'חפש...',
    'common.no_data': 'אין נתונים זמינים.',
    'common.refresh': 'רענן',
    'common.back': 'חזרה',
    'common.actions': 'פעולות',
    'common.name': 'שם',
    'common.description': 'תיאור',
    'common.status': 'סטטוס',
    'common.created': 'נוצר',
    'common.updated': 'עודכן',

    // Health
    'health.title': 'תקינות המערכת',
    'health.component': 'רכיב',
    'health.status': 'סטטוס',
    'health.last_ok': 'OK אחרון',
    'health.last_error': 'שגיאה אחרונה',
    'health.restart_count': 'הפעלות מחדש',
    'health.pid': 'מזהה תהליך',
    'health.uptime': 'זמן פעילות',
    'health.updated_at': 'עודכן לאחרונה',

    // Dashboard
    'dashboard.provider_model': 'ספק / מודל',
    'dashboard.since_last_restart': 'מאז ההפעלה מחדש האחרונה',
    'dashboard.paired_yes': 'כן',
    'dashboard.paired_no': 'לא',
    'dashboard.cost_overview': 'סקירת עלויות',
    'dashboard.active_channels': 'ערוצים פעילים',
    'dashboard.filter_active': 'פעילים',
    'dashboard.filter_all': 'הכל',
    'dashboard.no_active_channels': 'אין ערוצים פעילים',
    'dashboard.component_health': 'תקינות רכיבים',
    'dashboard.load_error': 'טעינת לוח הבקרה נכשלה',
    'dashboard.session_label': 'סשן',
    'dashboard.daily_label': 'יומי',
    'dashboard.monthly_label': 'חודשי',
    'dashboard.total_tokens_label': 'סך הטוקנים',
    'dashboard.requests_label': 'בקשות',
    'dashboard.no_channels': 'לא הוגדרו ערוצים',
    'dashboard.active': 'פעיל',
    'dashboard.inactive': 'לא פעיל',
    'dashboard.no_components': 'אין רכיבים מדווחים',
    'dashboard.restarts': 'הפעלות מחדש',
    'dashboard.tab_overview': 'סקירה כללית',
    'dashboard.tab_sessions': 'סשנים',
    'dashboard.tab_channels': 'ערוצים',
    'dashboard.sessions_title': 'סשנים פעילים',
    'dashboard.no_sessions': 'אין סשנים פעילים',
    'dashboard.session_id': 'מזהה סשן',
    'dashboard.session_started': 'התחיל',
    'dashboard.session_last_activity': 'פעילות אחרונה',
    'dashboard.session_messages': 'הודעות',
    'dashboard.session_details': 'פרטי סשן',
    'dashboard.session_history': 'צפה בהיסטוריה',
    'dashboard.channels_title': 'מצב ערוצים',
    'dashboard.no_channels_detail': 'אין פרטי ערוצים זמינים',
    'dashboard.channel_type': 'סוג',
    'dashboard.channel_messages': 'הודעות',
    'dashboard.channel_last_message': 'הודעה אחרונה',
    'dashboard.channel_config': 'הגדרות',
    'dashboard.channel_enabled': 'מופעל',
    'dashboard.channel_disabled': 'מושבת',
    'dashboard.loading_sessions': 'טוען סשנים...',
    'dashboard.loading_channels': 'טוען ערוצים...',
    'dashboard.load_sessions_error': 'טעינת הסשנים נכשלה',
    'dashboard.load_channels_error': 'טעינת הערוצים נכשלה',
    'dashboard.never': 'אף פעם',

    // Settings
    'settings.title': 'הגדרות',
    'settings.tab.appearance': 'מראה',
    'settings.tab.typography': 'טיפוגרפיה',
    'settings.appearance': 'מראה',
    'settings.typography': 'טיפוגרפיה',
    'settings.fontUi': 'גופן ממשק',
    'settings.fontMono': 'גופן קוד',
    'settings.fontSize': 'גודל גופן ממשק',
    'settings.fontMonoSize': 'גודל גופן קוד',
    'settings.preview': 'תצוגה מקדימה',
    'settings.previewText': 'דג סקרן שט לו בים זך אך לפתע פגש חבורה נחמדה.',
    'settings.fontNote': 'שינויי גופן ייכנסו לתוקף בטעינת הדף מחדש.',
    'settings.language': 'שפה',

    // Theme
    'theme.mode': 'מצב ערכת נושא',
    'theme.accent': 'צבע הדגשה',
    'theme.system': 'מערכת',
    'theme.dark': 'כהה',
    'theme.light': 'בהיר',
    'theme.oled': 'שחור OLED',
  },

  hi: {
    // Navigation
    'nav.dashboard': 'डैशबोर्ड',
    'nav.agent': 'एजेंट',
    'nav.tools': 'उपकरण',
    'nav.cron': 'शेड्यूल्ड कार्य',
    'nav.integrations': 'इंटीग्रेशन',
    'nav.memory': 'मेमोरी',
    'nav.config': 'Config',
    'nav.cost': 'लागत ट्रैकर',
    'nav.logs': 'लॉग',
    'nav.doctor': 'डॉक्टर',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'डैशबोर्ड',
    'dashboard.provider': 'प्रदाता',
    'dashboard.model': 'मॉडल',
    'dashboard.uptime': 'अपटाइम',
    'dashboard.temperature': 'तापमान',
    'dashboard.gateway_port': 'गेटवे पोर्ट',
    'dashboard.memory_backend': 'मेमोरी बैकएंड',
    'dashboard.paired': 'पेयर किया गया',
    'dashboard.channels': 'चैनल',
    'dashboard.health': 'स्वास्थ्य',
    'dashboard.status': 'स्थिति',
    'dashboard.overview': 'अवलोकन',
    'dashboard.system_info': 'सिस्टम जानकारी',
    'dashboard.quick_actions': 'त्वरित कार्रवाइयाँ',

    // Agent / Chat
    'agent.title': 'एजेंट चैट',
    'agent.send': 'भेजें',
    'agent.placeholder': 'संदेश लिखें...',
    'agent.start_conversation': 'बातचीत शुरू करने के लिए संदेश भेजें',
    'agent.type_message': 'संदेश लिखें...',
    'agent.connecting': 'कनेक्ट हो रहा है...',
    'agent.connected': 'कनेक्टेड',
    'agent.disconnected': 'डिस्कनेक्टेड',
    'agent.reconnecting': 'फिर से कनेक्ट हो रहा है...',
    'agent.thinking': 'सोच रहा है...',
    'agent.tool_call': 'टूल कॉल',
    'agent.tool_result': 'टूल परिणाम',
    'agent.connection_error': 'कनेक्शन त्रुटि। पुनः कनेक्ट करने का प्रयास...',
    'agent.tool_call_prefix': '[टूल कॉल]',
    'agent.tool_result_prefix': '[टूल परिणाम]',
    'agent.error_prefix': '[त्रुटि]',
    'agent.unknown_error': 'अज्ञात त्रुटि',
    'agent.send_error': 'संदेश भेजने में विफल। कृपया पुनः प्रयास करें।',
    'agent.copy_message': 'संदेश कॉपी करें',
    'agent.connected_status': 'कनेक्टेड',
    'agent.disconnected_status': 'डिस्कनेक्टेड',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'उपलब्ध उपकरण',
    'tools.name': 'नाम',
    'tools.description': 'विवरण',
    'tools.parameters': 'पैरामीटर',
    'tools.search': 'उपकरण खोजें...',
    'tools.empty': 'कोई उपकरण उपलब्ध नहीं।',
    'tools.count': 'कुल उपकरण',
    'tools.agent_tools': 'एजेंट उपकरण',
    'tools.cli_tools': 'CLI उपकरण',
    'tools.parameter_schema': 'पैरामीटर स्कीमा',
    'tools.path': 'पथ',
    'tools.version': 'संस्करण',
    'tools.category': 'श्रेणी',
    'tools.load_error': 'उपकरण लोड करने में विफल',

    // Cron
    'cron.title': 'शेड्यूल्ड कार्य',
    'cron.scheduled_tasks': 'शेड्यूल्ड कार्य',
    'cron.add': 'कार्य जोड़ें',
    'cron.add_job': 'कार्य जोड़ें',
    'cron.add_modal_title': 'Cron कार्य जोड़ें',
    'cron.delete': 'हटाएँ',
    'cron.enable': 'सक्षम करें',
    'cron.disable': 'अक्षम करें',
    'cron.name': 'नाम',
    'cron.name_optional': 'नाम (वैकल्पिक)',
    'cron.command': 'कमांड',
    'cron.command_required': 'कमांड',
    'cron.schedule': 'शेड्यूल',
    'cron.schedule_required': 'शेड्यूल',
    'cron.next_run': 'अगला रन',
    'cron.last_run': 'पिछला रन',
    'cron.last_status': 'अंतिम स्थिति',
    'cron.enabled': 'सक्षम',
    'cron.enabled_status': 'सक्षम',
    'cron.disabled_status': 'अक्षम',
    'cron.empty': 'कोई शेड्यूल्ड कार्य नहीं।',
    'cron.confirm_delete': 'क्या आप वाकई इस कार्य को हटाना चाहते हैं?',
    'cron.load_error': 'Cron कार्य लोड करने में विफल',
    'cron.validation_error': 'शेड्यूल और कमांड आवश्यक हैं।',
    'cron.add_error': 'कार्य जोड़ने में विफल',
    'cron.delete_error': 'कार्य हटाने में विफल',
    'cron.cancel': 'रद्द करें',
    'cron.adding': 'जोड़ रहा है...',
    'cron.id': 'ID',
    'cron.actions': 'कार्रवाइयाँ',
    'cron.loading_run_history': 'रन इतिहास लोड हो रहा है...',
    'cron.load_run_history_error': 'रन इतिहास लोड करने में विफल',
    'cron.no_runs': 'अभी तक कोई रन रिकॉर्ड नहीं।',
    'cron.recent_runs': 'हाल के रन',
    'cron.yes': 'हाँ',
    'cron.no': 'नहीं',
    'cron.edit': 'संपादित करें',
    'cron.edit_modal_title': 'Cron कार्य संपादित करें',
    'cron.edit_error': 'कार्य अपडेट करने में विफल',
    'cron.saving': 'सहेज रहा है...',
    'cron.save': 'सहेजें',

    // Integrations
    'integrations.title': 'इंटीग्रेशन',
    'integrations.available': 'उपलब्ध',
    'integrations.active': 'सक्रिय',
    'integrations.category': 'श्रेणी',
    'integrations.status': 'स्थिति',
    'integrations.search': 'इंटीग्रेशन खोजें...',
    'integrations.empty': 'कोई इंटीग्रेशन नहीं मिला।',
    'integrations.activate': 'सक्रिय करें',
    'integrations.deactivate': 'निष्क्रिय करें',
    'integrations.load_error': 'इंटीग्रेशन लोड करने में विफल',
    'integrations.status_active': 'सक्रिय',
    'integrations.status_available': 'उपलब्ध',

    // Memory
    'memory.title': 'मेमोरी स्टोर',
    'memory.memory_title': 'मेमोरी',
    'memory.search': 'मेमोरी में खोजें...',
    'memory.search_placeholder': 'मेमोरी प्रविष्टियाँ खोजें...',
    'memory.add': 'मेमोरी स्टोर करें',
    'memory.add_memory': 'मेमोरी जोड़ें',
    'memory.add_modal_title': 'मेमोरी जोड़ें',
    'memory.delete': 'हटाएँ',
    'memory.key': 'कुंजी',
    'memory.key_required': 'कुंजी',
    'memory.content': 'सामग्री',
    'memory.content_required': 'सामग्री',
    'memory.category': 'श्रेणी',
    'memory.category_optional': 'श्रेणी (वैकल्पिक)',
    'memory.timestamp': 'टाइमस्टैम्प',
    'memory.session': 'सत्र',
    'memory.score': 'स्कोर',
    'memory.empty': 'कोई मेमोरी प्रविष्टि नहीं मिली।',
    'memory.confirm_delete': 'क्या आप वाकई इस मेमोरी प्रविष्टि को हटाना चाहते हैं?',
    'memory.all_categories': 'सभी श्रेणियाँ',
    'memory.search_button': 'खोजें',
    'memory.load_error': 'मेमोरी लोड करने में विफल',
    'memory.saving': 'सहेज रहा है...',
    'memory.validation_error': 'कुंजी और सामग्री आवश्यक हैं।',
    'memory.store_error': 'मेमोरी स्टोर करने में विफल',
    'memory.delete_error': 'मेमोरी हटाने में विफल',
    'memory.delete_confirm': 'हटाएँ?',
    'memory.yes': 'हाँ',
    'memory.no': 'नहीं',
    'memory.cancel': 'रद्द करें',

    // Config

    // Cost
    'cost.title': 'लागत ट्रैकर',
    'cost.session': 'सत्र लागत',
    'cost.daily': 'दैनिक लागत',
    'cost.monthly': 'मासिक लागत',
    'cost.total_tokens': 'कुल टोकन',
    'cost.request_count': 'अनुरोध',
    'cost.by_model': 'मॉडल के अनुसार लागत',
    'cost.model': 'मॉडल',
    'cost.tokens': 'टोकन',
    'cost.requests': 'अनुरोध',
    'cost.usd': 'लागत (USD)',
    'cost.load_error': 'लागत डेटा लोड करने में विफल',
    'cost.session_cost': 'सत्र लागत',
    'cost.daily_cost': 'दैनिक लागत',
    'cost.monthly_cost': 'मासिक लागत',
    'cost.total_requests': 'कुल अनुरोध',
    'cost.token_statistics': 'टोकन आँकड़े',
    'cost.avg_tokens_per_request': 'औसत टोकन / अनुरोध',
    'cost.cost_per_1k_tokens': '1K टोकन प्रति लागत',
    'cost.model_breakdown': 'मॉडल विश्लेषण',
    'cost.no_model_data': 'कोई मॉडल डेटा उपलब्ध नहीं।',
    'cost.cost': 'लागत',
    'cost.share': 'शेयर करें',

    // Logs
    'logs.title': 'लाइव लॉग',
    'logs.live_logs': 'लाइव लॉग',
    'logs.clear': 'साफ़ करें',
    'logs.pause': 'रोकें',
    'logs.resume': 'जारी रखें',
    'logs.filter': 'लॉग फ़िल्टर करें...',
    'logs.filter_label': 'फ़िल्टर',
    'logs.empty': 'कोई लॉग प्रविष्टि नहीं।',
    'logs.connected': 'कनेक्टेड',
    'logs.disconnected': 'डिस्कनेक्टेड',
    'logs.events': 'इवेंट',
    'logs.jump_to_bottom': 'नीचे जाएँ',
    'logs.paused_hint': 'लॉग स्ट्रीमिंग रुकी हुई है।',
    'logs.waiting_hint': 'इवेंट की प्रतीक्षा...',

    // Doctor
    'doctor.title': 'सिस्टम डायग्नोस्टिक्स',
    'doctor.diagnostics_title': 'डायग्नोस्टिक्स',
    'doctor.run': 'डायग्नोस्टिक्स चलाएँ',
    'doctor.run_diagnostics': 'डायग्नोस्टिक्स चलाएँ',
    'doctor.running': 'डायग्नोस्टिक्स चल रहा है...',
    'doctor.running_btn': 'चल रहा है...',
    'doctor.running_desc': 'डायग्नोस्टिक्स चल रहा है...',
    'doctor.running_hint': 'इसमें कुछ सेकंड लग सकते हैं।',
    'doctor.ok': 'OK',
    'doctor.warn': 'चेतावनी',
    'doctor.error': 'त्रुटि',
    'doctor.severity': 'गंभीरता',
    'doctor.category': 'श्रेणी',
    'doctor.message': 'संदेश',
    'doctor.empty': 'अभी तक कोई डायग्नोस्टिक्स नहीं चलाया गया।',
    'doctor.summary': 'डायग्नोस्टिक सारांश',
    'doctor.issues_found': 'समस्याएँ मिलीं',
    'doctor.warnings_summary': 'चेतावनियाँ',
    'doctor.all_clear': 'सब ठीक है',
    'doctor.system_diagnostics': 'सिस्टम डायग्नोस्टिक्स',
    'doctor.empty_hint': 'अपनी KylinBot स्थापना की जाँच करने के लिए "डायग्नोस्टिक्स चलाएँ" पर क्लिक करें।',

    // Auth / Pairing
    'auth.pair': 'डिवाइस पेयर करें',
    'auth.pairing_code': 'पेयरिंग कोड',
    'auth.pair_button': 'पेयर करें',
    'auth.logout': 'लॉगआउट',
    'auth.pairing_success': 'पेयरिंग सफल!',
    'auth.pairing_failed': 'पेयरिंग विफल। कृपया पुनः प्रयास करें।',
    'auth.enter_code': 'एजेंट से कनेक्ट करने के लिए अपना पेयरिंग कोड दर्ज करें।',

    // Common
    'common.loading': 'लोड हो रहा है...',
    'common.error': 'एक त्रुटि हुई।',
    'common.retry': 'पुनः प्रयास करें',
    'common.cancel': 'रद्द करें',
    'common.confirm': 'पुष्टि करें',
    'common.save': 'सहेजें',
    'common.delete': 'हटाएँ',
    'common.edit': 'संपादित करें',
    'common.close': 'बंद करें',
    'common.yes': 'हाँ',
    'common.no': 'नहीं',
    'common.search': 'खोजें...',
    'common.no_data': 'कोई डेटा उपलब्ध नहीं।',
    'common.refresh': 'रिफ़्रेश करें',
    'common.back': 'वापस',
    'common.actions': 'कार्रवाइयाँ',
    'common.name': 'नाम',
    'common.description': 'विवरण',
    'common.status': 'स्थिति',
    'common.created': 'बनाया गया',
    'common.updated': 'अपडेट किया गया',

    // Health
    'health.title': 'सिस्टम स्वास्थ्य',
    'health.component': 'घटक',
    'health.status': 'स्थिति',
    'health.last_ok': 'अंतिम OK',
    'health.last_error': 'अंतिम त्रुटि',
    'health.restart_count': 'पुनः आरंभ',
    'health.pid': 'प्रक्रिया ID',
    'health.uptime': 'अपटाइम',
    'health.updated_at': 'अंतिम अपडेट',

    // Dashboard
    'dashboard.provider_model': 'प्रदाता / मॉडल',
    'dashboard.since_last_restart': 'अंतिम पुनः आरंभ के बाद से',
    'dashboard.paired_yes': 'हाँ',
    'dashboard.paired_no': 'नहीं',
    'dashboard.cost_overview': 'लागत अवलोकन',
    'dashboard.active_channels': 'सक्रिय चैनल',
    'dashboard.filter_active': 'सक्रिय',
    'dashboard.filter_all': 'सभी',
    'dashboard.no_active_channels': 'कोई सक्रिय चैनल नहीं',
    'dashboard.component_health': 'घटक स्वास्थ्य',
    'dashboard.load_error': 'डैशबोर्ड लोड करने में विफल',
    'dashboard.session_label': 'सत्र',
    'dashboard.daily_label': 'दैनिक',
    'dashboard.monthly_label': 'मासिक',
    'dashboard.total_tokens_label': 'कुल टोकन',
    'dashboard.requests_label': 'अनुरोध',
    'dashboard.no_channels': 'कोई चैनल कॉन्फ़िगर नहीं',
    'dashboard.active': 'सक्रिय',
    'dashboard.inactive': 'निष्क्रिय',
    'dashboard.no_components': 'कोई घटक रिपोर्ट नहीं कर रहा',
    'dashboard.restarts': 'पुनः आरंभ',
    'dashboard.tab_overview': 'अवलोकन',
    'dashboard.tab_sessions': 'सत्र',
    'dashboard.tab_channels': 'चैनल',
    'dashboard.sessions_title': 'सक्रिय सत्र',
    'dashboard.no_sessions': 'कोई सक्रिय सत्र नहीं',
    'dashboard.session_id': 'सत्र ID',
    'dashboard.session_started': 'शुरू हुआ',
    'dashboard.session_last_activity': 'अंतिम गतिविधि',
    'dashboard.session_messages': 'संदेश',
    'dashboard.session_details': 'सत्र विवरण',
    'dashboard.session_history': 'इतिहास देखें',
    'dashboard.channels_title': 'चैनल स्थिति',
    'dashboard.no_channels_detail': 'कोई चैनल विवरण उपलब्ध नहीं',
    'dashboard.channel_type': 'प्रकार',
    'dashboard.channel_messages': 'संदेश',
    'dashboard.channel_last_message': 'अंतिम संदेश',
    'dashboard.channel_config': 'कॉन्फ़िगरेशन',
    'dashboard.channel_enabled': 'सक्षम',
    'dashboard.channel_disabled': 'अक्षम',
    'dashboard.loading_sessions': 'सत्र लोड हो रहे हैं...',
    'dashboard.loading_channels': 'चैनल लोड हो रहे हैं...',
    'dashboard.load_sessions_error': 'सत्र लोड करने में विफल',
    'dashboard.load_channels_error': 'चैनल लोड करने में विफल',
    'dashboard.never': 'कभी नहीं',

    // Settings
    'settings.title': 'सेटिंग्स',
    'settings.tab.appearance': 'दिखावट',
    'settings.tab.typography': 'टाइपोग्राफी',
    'settings.appearance': 'दिखावट',
    'settings.typography': 'टाइपोग्राफी',
    'settings.fontUi': 'UI फ़ॉन्ट',
    'settings.fontMono': 'कोड फ़ॉन्ट',
    'settings.fontSize': 'UI फ़ॉन्ट आकार',
    'settings.fontMonoSize': 'कोड फ़ॉन्ट आकार',
    'settings.preview': 'पूर्वावलोकन',
    'settings.previewText': 'तेज़ भूरी लोमड़ी आलसी कुत्ते के ऊपर कूदती है।',
    'settings.fontNote': 'फ़ॉन्ट परिवर्तन पेज रीलोड पर लागू होते हैं।',
    'settings.language': 'भाषा',

    // Theme
    'theme.mode': 'थीम मोड',
    'theme.accent': 'एक्सेंट रंग',
    'theme.system': 'सिस्टम',
    'theme.dark': 'डार्क',
    'theme.light': 'लाइट',
    'theme.oled': 'OLED ब्लैक',
  },

  hu: {
    // Navigation
    'nav.dashboard': 'Vezérlőpult',
    'nav.agent': 'Ügynök',
    'nav.tools': 'Eszközök',
    'nav.cron': 'Ütemezett feladatok',
    'nav.integrations': 'Integrációk',
    'nav.memory': 'Memória',
    'nav.config': 'Config',
    'nav.cost': 'Költségkövetés',
    'nav.logs': 'Naplók',
    'nav.doctor': 'Diagnosztika',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Vezérlőpult',
    'dashboard.provider': 'Szolgáltató',
    'dashboard.model': 'Modell',
    'dashboard.uptime': 'Üzemidő',
    'dashboard.temperature': 'Hőmérséklet',
    'dashboard.gateway_port': 'Átjáró port',
    'dashboard.memory_backend': 'Memória backend',
    'dashboard.paired': 'Párosítva',
    'dashboard.channels': 'Csatornák',
    'dashboard.health': 'Állapot',
    'dashboard.status': 'Státusz',
    'dashboard.overview': 'Áttekintés',
    'dashboard.system_info': 'Rendszerinformációk',
    'dashboard.quick_actions': 'Gyors műveletek',

    // Agent / Chat
    'agent.title': 'Ügynök chat',
    'agent.send': 'Küldés',
    'agent.placeholder': 'Írjon üzenetet...',
    'agent.start_conversation': 'Küldjön üzenetet a beszélgetés indításához',
    'agent.type_message': 'Írjon üzenetet...',
    'agent.connecting': 'Csatlakozás...',
    'agent.connected': 'Csatlakoztatva',
    'agent.disconnected': 'Leválasztva',
    'agent.reconnecting': 'Újracsatlakozás...',
    'agent.thinking': 'Gondolkodik...',
    'agent.tool_call': 'Eszközhívás',
    'agent.tool_result': 'Eszköz eredmény',
    'agent.connection_error': 'Csatlakozási hiba. Újracsatlakozás...',
    'agent.tool_call_prefix': '[Eszközhívás]',
    'agent.tool_result_prefix': '[Eszköz eredmény]',
    'agent.error_prefix': '[Hiba]',
    'agent.unknown_error': 'Ismeretlen hiba',
    'agent.send_error': 'Az üzenet küldése sikertelen. Kérjük, próbálja újra.',
    'agent.copy_message': 'Üzenet másolása',
    'agent.connected_status': 'Csatlakoztatva',
    'agent.disconnected_status': 'Leválasztva',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Elérhető eszközök',
    'tools.name': 'Név',
    'tools.description': 'Leírás',
    'tools.parameters': 'Paraméterek',
    'tools.search': 'Eszközök keresése...',
    'tools.empty': 'Nincsenek elérhető eszközök.',
    'tools.count': 'Összes eszköz',
    'tools.agent_tools': 'Ügynök eszközök',
    'tools.cli_tools': 'CLI eszközök',
    'tools.parameter_schema': 'Paraméter séma',
    'tools.path': 'Útvonal',
    'tools.version': 'Verzió',
    'tools.category': 'Kategória',
    'tools.load_error': 'Eszközök betöltése sikertelen',

    // Cron
    'cron.title': 'Ütemezett feladatok',
    'cron.scheduled_tasks': 'Ütemezett feladatok',
    'cron.add': 'Feladat hozzáadása',
    'cron.add_job': 'Feladat hozzáadása',
    'cron.add_modal_title': 'Cron feladat hozzáadása',
    'cron.delete': 'Törlés',
    'cron.enable': 'Engedélyezés',
    'cron.disable': 'Letiltás',
    'cron.name': 'Név',
    'cron.name_optional': 'Név (opcionális)',
    'cron.command': 'Parancs',
    'cron.command_required': 'Parancs',
    'cron.schedule': 'Ütemezés',
    'cron.schedule_required': 'Ütemezés',
    'cron.next_run': 'Következő futás',
    'cron.last_run': 'Utolsó futás',
    'cron.last_status': 'Utolsó státusz',
    'cron.enabled': 'Engedélyezve',
    'cron.enabled_status': 'Engedélyezve',
    'cron.disabled_status': 'Letiltva',
    'cron.empty': 'Nincsenek ütemezett feladatok.',
    'cron.confirm_delete': 'Biztosan törölni szeretné ezt a feladatot?',
    'cron.load_error': 'Cron feladatok betöltése sikertelen',
    'cron.validation_error': 'Az ütemezés és a parancs kötelező.',
    'cron.add_error': 'Feladat hozzáadása sikertelen',
    'cron.delete_error': 'Feladat törlése sikertelen',
    'cron.cancel': 'Mégse',
    'cron.adding': 'Hozzáadás...',
    'cron.id': 'ID',
    'cron.actions': 'Műveletek',
    'cron.loading_run_history': 'Futási előzmények betöltése...',
    'cron.load_run_history_error': 'Futási előzmények betöltése sikertelen',
    'cron.no_runs': 'Még nincsenek rögzített futások.',
    'cron.recent_runs': 'Legutóbbi futások',
    'cron.yes': 'Igen',
    'cron.no': 'Nem',
    'cron.edit': 'Szerkesztés',
    'cron.edit_modal_title': 'Cron feladat szerkesztése',
    'cron.edit_error': 'Feladat frissítése sikertelen',
    'cron.saving': 'Mentés...',
    'cron.save': 'Mentés',

    // Integrations
    'integrations.title': 'Integrációk',
    'integrations.available': 'Elérhető',
    'integrations.active': 'Aktív',
    'integrations.category': 'Kategória',
    'integrations.status': 'Státusz',
    'integrations.search': 'Integrációk keresése...',
    'integrations.empty': 'Nem található integráció.',
    'integrations.activate': 'Aktiválás',
    'integrations.deactivate': 'Deaktiválás',
    'integrations.load_error': 'Integrációk betöltése sikertelen',
    'integrations.status_active': 'Aktív',
    'integrations.status_available': 'Elérhető',

    // Memory
    'memory.title': 'Memóriatár',
    'memory.memory_title': 'Memória',
    'memory.search': 'Keresés a memóriában...',
    'memory.search_placeholder': 'Memóriabejegyzések keresése...',
    'memory.add': 'Memória tárolása',
    'memory.add_memory': 'Memória hozzáadása',
    'memory.add_modal_title': 'Memória hozzáadása',
    'memory.delete': 'Törlés',
    'memory.key': 'Kulcs',
    'memory.key_required': 'Kulcs',
    'memory.content': 'Tartalom',
    'memory.content_required': 'Tartalom',
    'memory.category': 'Kategória',
    'memory.category_optional': 'Kategória (opcionális)',
    'memory.timestamp': 'Időbélyeg',
    'memory.session': 'Munkamenet',
    'memory.score': 'Pontszám',
    'memory.empty': 'Nem található memóriabejegyzés.',
    'memory.confirm_delete': 'Biztosan törölni szeretné ezt a memóriabejegyzést?',
    'memory.all_categories': 'Összes kategória',
    'memory.search_button': 'Keresés',
    'memory.load_error': 'Memória betöltése sikertelen',
    'memory.saving': 'Mentés...',
    'memory.validation_error': 'A kulcs és a tartalom kötelező.',
    'memory.store_error': 'Memória tárolása sikertelen',
    'memory.delete_error': 'Memória törlése sikertelen',
    'memory.delete_confirm': 'Törlés?',
    'memory.yes': 'Igen',
    'memory.no': 'Nem',
    'memory.cancel': 'Mégse',

    // Config

    // Cost
    'cost.title': 'Költségkövetés',
    'cost.session': 'Munkamenet költség',
    'cost.daily': 'Napi költség',
    'cost.monthly': 'Havi költség',
    'cost.total_tokens': 'Összes token',
    'cost.request_count': 'Kérések',
    'cost.by_model': 'Költség modellenként',
    'cost.model': 'Modell',
    'cost.tokens': 'Tokenek',
    'cost.requests': 'Kérések',
    'cost.usd': 'Költség (USD)',
    'cost.load_error': 'Költségadatok betöltése sikertelen',
    'cost.session_cost': 'Munkamenet költség',
    'cost.daily_cost': 'Napi költség',
    'cost.monthly_cost': 'Havi költség',
    'cost.total_requests': 'Összes kérés',
    'cost.token_statistics': 'Token statisztikák',
    'cost.avg_tokens_per_request': 'Átlag token / kérés',
    'cost.cost_per_1k_tokens': 'Költség / 1K token',
    'cost.model_breakdown': 'Modell szerinti bontás',
    'cost.no_model_data': 'Nincs elérhető modelladat.',
    'cost.cost': 'Költség',
    'cost.share': 'Megosztás',

    // Logs
    'logs.title': 'Élő naplók',
    'logs.live_logs': 'Élő naplók',
    'logs.clear': 'Törlés',
    'logs.pause': 'Szünet',
    'logs.resume': 'Folytatás',
    'logs.filter': 'Naplók szűrése...',
    'logs.filter_label': 'Szűrő',
    'logs.empty': 'Nincsenek naplóbejegyzések.',
    'logs.connected': 'Csatlakoztatva',
    'logs.disconnected': 'Leválasztva',
    'logs.events': 'események',
    'logs.jump_to_bottom': 'Ugrás az aljára',
    'logs.paused_hint': 'A naplófolyam szünetel.',
    'logs.waiting_hint': 'Várakozás eseményekre...',

    // Doctor
    'doctor.title': 'Rendszer diagnosztika',
    'doctor.diagnostics_title': 'Diagnosztika',
    'doctor.run': 'Diagnosztika futtatása',
    'doctor.run_diagnostics': 'Diagnosztika futtatása',
    'doctor.running': 'Diagnosztika futtatása...',
    'doctor.running_btn': 'Futtatás...',
    'doctor.running_desc': 'Diagnosztika futtatása...',
    'doctor.running_hint': 'Ez néhány másodpercig tarthat.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Figyelmeztetés',
    'doctor.error': 'Hiba',
    'doctor.severity': 'Súlyosság',
    'doctor.category': 'Kategória',
    'doctor.message': 'Üzenet',
    'doctor.empty': 'Még nem futtattak diagnosztikát.',
    'doctor.summary': 'Diagnosztikai összefoglalás',
    'doctor.issues_found': 'Talált problémák',
    'doctor.warnings_summary': 'Figyelmeztetések',
    'doctor.all_clear': 'Minden rendben',
    'doctor.system_diagnostics': 'Rendszer diagnosztika',
    'doctor.empty_hint': 'Kattintson a "Diagnosztika futtatása" gombra a KylinBot telepítés ellenőrzéséhez.',

    // Auth / Pairing
    'auth.pair': 'Eszköz párosítása',
    'auth.pairing_code': 'Párosítási kód',
    'auth.pair_button': 'Párosítás',
    'auth.logout': 'Kijelentkezés',
    'auth.pairing_success': 'Párosítás sikeres!',
    'auth.pairing_failed': 'Párosítás sikertelen. Kérjük, próbálja újra.',
    'auth.enter_code': 'Adja meg a párosítási kódot az ügynökhöz való csatlakozáshoz.',

    // Common
    'common.loading': 'Betöltés...',
    'common.error': 'Hiba történt.',
    'common.retry': 'Újrapróbálkozás',
    'common.cancel': 'Mégse',
    'common.confirm': 'Megerősítés',
    'common.save': 'Mentés',
    'common.delete': 'Törlés',
    'common.edit': 'Szerkesztés',
    'common.close': 'Bezárás',
    'common.yes': 'Igen',
    'common.no': 'Nem',
    'common.search': 'Keresés...',
    'common.no_data': 'Nincs elérhető adat.',
    'common.refresh': 'Frissítés',
    'common.back': 'Vissza',
    'common.actions': 'Műveletek',
    'common.name': 'Név',
    'common.description': 'Leírás',
    'common.status': 'Státusz',
    'common.created': 'Létrehozva',
    'common.updated': 'Frissítve',

    // Health
    'health.title': 'Rendszer állapot',
    'health.component': 'Komponens',
    'health.status': 'Státusz',
    'health.last_ok': 'Utolsó OK',
    'health.last_error': 'Utolsó hiba',
    'health.restart_count': 'Újraindítások',
    'health.pid': 'Folyamatazonosító',
    'health.uptime': 'Üzemidő',
    'health.updated_at': 'Utolsó frissítés',

    // Dashboard
    'dashboard.provider_model': 'Szolgáltató / Modell',
    'dashboard.since_last_restart': 'Az utolsó újraindítás óta',
    'dashboard.paired_yes': 'Igen',
    'dashboard.paired_no': 'Nem',
    'dashboard.cost_overview': 'Költségáttekintés',
    'dashboard.active_channels': 'Aktív csatornák',
    'dashboard.filter_active': 'Aktív',
    'dashboard.filter_all': 'Összes',
    'dashboard.no_active_channels': 'Nincsenek aktív csatornák',
    'dashboard.component_health': 'Komponens állapot',
    'dashboard.load_error': 'Vezérlőpult betöltése sikertelen',
    'dashboard.session_label': 'Munkamenet',
    'dashboard.daily_label': 'Napi',
    'dashboard.monthly_label': 'Havi',
    'dashboard.total_tokens_label': 'Összes token',
    'dashboard.requests_label': 'Kérések',
    'dashboard.no_channels': 'Nincsenek konfigurált csatornák',
    'dashboard.active': 'Aktív',
    'dashboard.inactive': 'Inaktív',
    'dashboard.no_components': 'Nincs jelentő komponens',
    'dashboard.restarts': 'Újraindítások',
    'dashboard.tab_overview': 'Áttekintés',
    'dashboard.tab_sessions': 'Munkamenetek',
    'dashboard.tab_channels': 'Csatornák',
    'dashboard.sessions_title': 'Aktív munkamenetek',
    'dashboard.no_sessions': 'Nincsenek aktív munkamenetek',
    'dashboard.session_id': 'Munkamenet ID',
    'dashboard.session_started': 'Elindítva',
    'dashboard.session_last_activity': 'Utolsó tevékenység',
    'dashboard.session_messages': 'Üzenetek',
    'dashboard.session_details': 'Munkamenet részletei',
    'dashboard.session_history': 'Előzmények megtekintése',
    'dashboard.channels_title': 'Csatorna állapot',
    'dashboard.no_channels_detail': 'Nincs elérhető csatorna részlet',
    'dashboard.channel_type': 'Típus',
    'dashboard.channel_messages': 'Üzenetek',
    'dashboard.channel_last_message': 'Utolsó üzenet',
    'dashboard.channel_config': 'Konfiguráció',
    'dashboard.channel_enabled': 'Engedélyezve',
    'dashboard.channel_disabled': 'Letiltva',
    'dashboard.loading_sessions': 'Munkamenetek betöltése...',
    'dashboard.loading_channels': 'Csatornák betöltése...',
    'dashboard.load_sessions_error': 'Munkamenetek betöltése sikertelen',
    'dashboard.load_channels_error': 'Csatornák betöltése sikertelen',
    'dashboard.never': 'Soha',

    // Settings
    'settings.title': 'Beállítások',
    'settings.tab.appearance': 'Megjelenés',
    'settings.tab.typography': 'Tipográfia',
    'settings.appearance': 'Megjelenés',
    'settings.typography': 'Tipográfia',
    'settings.fontUi': 'Felhasználói felület betűtípus',
    'settings.fontMono': 'Kód betűtípus',
    'settings.fontSize': 'Felhasználói felület betűméret',
    'settings.fontMonoSize': 'Kód betűméret',
    'settings.preview': 'Előnézet',
    'settings.previewText': 'Árvíztűrő tükörfúrógép.',
    'settings.fontNote': 'A betűtípus-változtatások az oldal újratöltésekor lépnek érvénybe.',
    'settings.language': 'Nyelv',

    // Theme
    'theme.mode': 'Téma mód',
    'theme.accent': 'Kiemelő szín',
    'theme.system': 'Rendszer',
    'theme.dark': 'Sötét',
    'theme.light': 'Világos',
    'theme.oled': 'OLED fekete',
  },

  id: {
    // Navigation
    'nav.dashboard': 'Dasbor',
    'nav.agent': 'Agen',
    'nav.tools': 'Alat',
    'nav.cron': 'Tugas Terjadwal',
    'nav.integrations': 'Integrasi',
    'nav.memory': 'Memori',
    'nav.config': 'Config',
    'nav.cost': 'Pelacak Biaya',
    'nav.logs': 'Log',
    'nav.doctor': 'Dokter',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Dasbor',
    'dashboard.provider': 'Penyedia',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Waktu Aktif',
    'dashboard.temperature': 'Suhu',
    'dashboard.gateway_port': 'Port Gateway',
    'dashboard.memory_backend': 'Backend Memori',
    'dashboard.paired': 'Dipasangkan',
    'dashboard.channels': 'Saluran',
    'dashboard.health': 'Kesehatan',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Ringkasan',
    'dashboard.system_info': 'Informasi Sistem',
    'dashboard.quick_actions': 'Tindakan Cepat',

    // Agent / Chat
    'agent.title': 'Chat Agen',
    'agent.send': 'Kirim',
    'agent.placeholder': 'Ketik pesan...',
    'agent.start_conversation': 'Kirim pesan untuk memulai percakapan',
    'agent.type_message': 'Ketik pesan...',
    'agent.connecting': 'Menghubungkan...',
    'agent.connected': 'Terhubung',
    'agent.disconnected': 'Terputus',
    'agent.reconnecting': 'Menghubungkan ulang...',
    'agent.thinking': 'Berpikir...',
    'agent.tool_call': 'Panggilan Alat',
    'agent.tool_result': 'Hasil Alat',
    'agent.connection_error': 'Kesalahan koneksi. Mencoba menghubungkan ulang...',
    'agent.tool_call_prefix': '[Panggilan Alat]',
    'agent.tool_result_prefix': '[Hasil Alat]',
    'agent.error_prefix': '[Kesalahan]',
    'agent.unknown_error': 'Kesalahan tidak diketahui',
    'agent.send_error': 'Gagal mengirim pesan. Silakan coba lagi.',
    'agent.copy_message': 'Salin pesan',
    'agent.connected_status': 'Terhubung',
    'agent.disconnected_status': 'Terputus',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Alat yang Tersedia',
    'tools.name': 'Nama',
    'tools.description': 'Deskripsi',
    'tools.parameters': 'Parameter',
    'tools.search': 'Cari alat...',
    'tools.empty': 'Tidak ada alat yang tersedia.',
    'tools.count': 'Total alat',
    'tools.agent_tools': 'Alat Agen',
    'tools.cli_tools': 'Alat CLI',
    'tools.parameter_schema': 'Skema Parameter',
    'tools.path': 'Jalur',
    'tools.version': 'Versi',
    'tools.category': 'Kategori',
    'tools.load_error': 'Gagal memuat alat',

    // Cron
    'cron.title': 'Tugas Terjadwal',
    'cron.scheduled_tasks': 'Tugas Terjadwal',
    'cron.add': 'Tambah Tugas',
    'cron.add_job': 'Tambah Tugas',
    'cron.add_modal_title': 'Tambah Tugas Cron',
    'cron.delete': 'Hapus',
    'cron.enable': 'Aktifkan',
    'cron.disable': 'Nonaktifkan',
    'cron.name': 'Nama',
    'cron.name_optional': 'Nama (opsional)',
    'cron.command': 'Perintah',
    'cron.command_required': 'Perintah',
    'cron.schedule': 'Jadwal',
    'cron.schedule_required': 'Jadwal',
    'cron.next_run': 'Eksekusi Berikutnya',
    'cron.last_run': 'Eksekusi Terakhir',
    'cron.last_status': 'Status Terakhir',
    'cron.enabled': 'Diaktifkan',
    'cron.enabled_status': 'Diaktifkan',
    'cron.disabled_status': 'Dinonaktifkan',
    'cron.empty': 'Tidak ada tugas terjadwal.',
    'cron.confirm_delete': 'Apakah Anda yakin ingin menghapus tugas ini?',
    'cron.load_error': 'Gagal memuat tugas Cron',
    'cron.validation_error': 'Jadwal dan perintah wajib diisi.',
    'cron.add_error': 'Gagal menambah tugas',
    'cron.delete_error': 'Gagal menghapus tugas',
    'cron.cancel': 'Batal',
    'cron.adding': 'Menambahkan...',
    'cron.id': 'ID',
    'cron.actions': 'Tindakan',
    'cron.loading_run_history': 'Memuat riwayat eksekusi...',
    'cron.load_run_history_error': 'Gagal memuat riwayat eksekusi',
    'cron.no_runs': 'Belum ada eksekusi tercatat.',
    'cron.recent_runs': 'Eksekusi Terbaru',
    'cron.yes': 'Ya',
    'cron.no': 'Tidak',
    'cron.edit': 'Edit',
    'cron.edit_modal_title': 'Edit Tugas Cron',
    'cron.edit_error': 'Gagal memperbarui tugas',
    'cron.saving': 'Menyimpan...',
    'cron.save': 'Simpan',

    // Integrations
    'integrations.title': 'Integrasi',
    'integrations.available': 'Tersedia',
    'integrations.active': 'Aktif',
    'integrations.category': 'Kategori',
    'integrations.status': 'Status',
    'integrations.search': 'Cari integrasi...',
    'integrations.empty': 'Tidak ada integrasi ditemukan.',
    'integrations.activate': 'Aktifkan',
    'integrations.deactivate': 'Nonaktifkan',
    'integrations.load_error': 'Gagal memuat integrasi',
    'integrations.status_active': 'Aktif',
    'integrations.status_available': 'Tersedia',

    // Memory
    'memory.title': 'Penyimpanan Memori',
    'memory.memory_title': 'Memori',
    'memory.search': 'Cari di memori...',
    'memory.search_placeholder': 'Cari entri memori...',
    'memory.add': 'Simpan Memori',
    'memory.add_memory': 'Tambah Memori',
    'memory.add_modal_title': 'Tambah Memori',
    'memory.delete': 'Hapus',
    'memory.key': 'Kunci',
    'memory.key_required': 'Kunci',
    'memory.content': 'Konten',
    'memory.content_required': 'Konten',
    'memory.category': 'Kategori',
    'memory.category_optional': 'Kategori (opsional)',
    'memory.timestamp': 'Stempel Waktu',
    'memory.session': 'Sesi',
    'memory.score': 'Skor',
    'memory.empty': 'Tidak ada entri memori ditemukan.',
    'memory.confirm_delete': 'Apakah Anda yakin ingin menghapus entri memori ini?',
    'memory.all_categories': 'Semua Kategori',
    'memory.search_button': 'Cari',
    'memory.load_error': 'Gagal memuat memori',
    'memory.saving': 'Menyimpan...',
    'memory.validation_error': 'Kunci dan konten wajib diisi.',
    'memory.store_error': 'Gagal menyimpan memori',
    'memory.delete_error': 'Gagal menghapus memori',
    'memory.delete_confirm': 'Hapus?',
    'memory.yes': 'Ya',
    'memory.no': 'Tidak',
    'memory.cancel': 'Batal',

    // Config

    // Cost
    'cost.title': 'Pelacak Biaya',
    'cost.session': 'Biaya Sesi',
    'cost.daily': 'Biaya Harian',
    'cost.monthly': 'Biaya Bulanan',
    'cost.total_tokens': 'Total Token',
    'cost.request_count': 'Permintaan',
    'cost.by_model': 'Biaya per Model',
    'cost.model': 'Model',
    'cost.tokens': 'Token',
    'cost.requests': 'Permintaan',
    'cost.usd': 'Biaya (USD)',
    'cost.load_error': 'Gagal memuat data biaya',
    'cost.session_cost': 'Biaya Sesi',
    'cost.daily_cost': 'Biaya Harian',
    'cost.monthly_cost': 'Biaya Bulanan',
    'cost.total_requests': 'Total Permintaan',
    'cost.token_statistics': 'Statistik Token',
    'cost.avg_tokens_per_request': 'Rata-rata Token / Permintaan',
    'cost.cost_per_1k_tokens': 'Biaya per 1K Token',
    'cost.model_breakdown': 'Rincian per Model',
    'cost.no_model_data': 'Tidak ada data model tersedia.',
    'cost.cost': 'Biaya',
    'cost.share': 'Bagikan',

    // Logs
    'logs.title': 'Log Langsung',
    'logs.live_logs': 'Log Langsung',
    'logs.clear': 'Bersihkan',
    'logs.pause': 'Jeda',
    'logs.resume': 'Lanjutkan',
    'logs.filter': 'Filter log...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'Tidak ada entri log.',
    'logs.connected': 'Terhubung',
    'logs.disconnected': 'Terputus',
    'logs.events': 'peristiwa',
    'logs.jump_to_bottom': 'Loncat ke bawah',
    'logs.paused_hint': 'Streaming log dijeda.',
    'logs.waiting_hint': 'Menunggu peristiwa...',

    // Doctor
    'doctor.title': 'Diagnostik Sistem',
    'doctor.diagnostics_title': 'Diagnostik',
    'doctor.run': 'Jalankan Diagnostik',
    'doctor.run_diagnostics': 'Jalankan Diagnostik',
    'doctor.running': 'Menjalankan diagnostik...',
    'doctor.running_btn': 'Menjalankan...',
    'doctor.running_desc': 'Menjalankan diagnostik...',
    'doctor.running_hint': 'Ini mungkin memerlukan beberapa detik.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Peringatan',
    'doctor.error': 'Kesalahan',
    'doctor.severity': 'Tingkat Keparahan',
    'doctor.category': 'Kategori',
    'doctor.message': 'Pesan',
    'doctor.empty': 'Belum ada diagnostik yang dijalankan.',
    'doctor.summary': 'Ringkasan Diagnostik',
    'doctor.issues_found': 'Masalah Ditemukan',
    'doctor.warnings_summary': 'Peringatan',
    'doctor.all_clear': 'Semua Baik',
    'doctor.system_diagnostics': 'Diagnostik Sistem',
    'doctor.empty_hint': 'Klik "Jalankan Diagnostik" untuk memeriksa instalasi KylinBot Anda.',

    // Auth / Pairing
    'auth.pair': 'Pasangkan Perangkat',
    'auth.pairing_code': 'Kode Pemasangan',
    'auth.pair_button': 'Pasangkan',
    'auth.logout': 'Keluar',
    'auth.pairing_success': 'Pemasangan berhasil!',
    'auth.pairing_failed': 'Pemasangan gagal. Silakan coba lagi.',
    'auth.enter_code': 'Masukkan kode pemasangan Anda untuk terhubung ke agen.',

    // Common
    'common.loading': 'Memuat...',
    'common.error': 'Terjadi kesalahan.',
    'common.retry': 'Coba Lagi',
    'common.cancel': 'Batal',
    'common.confirm': 'Konfirmasi',
    'common.save': 'Simpan',
    'common.delete': 'Hapus',
    'common.edit': 'Edit',
    'common.close': 'Tutup',
    'common.yes': 'Ya',
    'common.no': 'Tidak',
    'common.search': 'Cari...',
    'common.no_data': 'Tidak ada data tersedia.',
    'common.refresh': 'Segarkan',
    'common.back': 'Kembali',
    'common.actions': 'Tindakan',
    'common.name': 'Nama',
    'common.description': 'Deskripsi',
    'common.status': 'Status',
    'common.created': 'Dibuat',
    'common.updated': 'Diperbarui',

    // Health
    'health.title': 'Kesehatan Sistem',
    'health.component': 'Komponen',
    'health.status': 'Status',
    'health.last_ok': 'OK Terakhir',
    'health.last_error': 'Kesalahan Terakhir',
    'health.restart_count': 'Restart',
    'health.pid': 'ID Proses',
    'health.uptime': 'Waktu Aktif',
    'health.updated_at': 'Terakhir Diperbarui',

    // Dashboard
    'dashboard.provider_model': 'Penyedia / Model',
    'dashboard.since_last_restart': 'Sejak restart terakhir',
    'dashboard.paired_yes': 'Ya',
    'dashboard.paired_no': 'Tidak',
    'dashboard.cost_overview': 'Ringkasan Biaya',
    'dashboard.active_channels': 'Saluran Aktif',
    'dashboard.filter_active': 'Aktif',
    'dashboard.filter_all': 'Semua',
    'dashboard.no_active_channels': 'Tidak ada saluran aktif',
    'dashboard.component_health': 'Kesehatan Komponen',
    'dashboard.load_error': 'Gagal memuat dasbor',
    'dashboard.session_label': 'Sesi',
    'dashboard.daily_label': 'Harian',
    'dashboard.monthly_label': 'Bulanan',
    'dashboard.total_tokens_label': 'Total Token',
    'dashboard.requests_label': 'Permintaan',
    'dashboard.no_channels': 'Tidak ada saluran terkonfigurasi',
    'dashboard.active': 'Aktif',
    'dashboard.inactive': 'Tidak Aktif',
    'dashboard.no_components': 'Tidak ada komponen yang melapor',
    'dashboard.restarts': 'Restart',
    'dashboard.tab_overview': 'Ringkasan',
    'dashboard.tab_sessions': 'Sesi',
    'dashboard.tab_channels': 'Saluran',
    'dashboard.sessions_title': 'Sesi Aktif',
    'dashboard.no_sessions': 'Tidak ada sesi aktif',
    'dashboard.session_id': 'ID Sesi',
    'dashboard.session_started': 'Dimulai',
    'dashboard.session_last_activity': 'Aktivitas Terakhir',
    'dashboard.session_messages': 'Pesan',
    'dashboard.session_details': 'Detail Sesi',
    'dashboard.session_history': 'Lihat Riwayat',
    'dashboard.channels_title': 'Status Saluran',
    'dashboard.no_channels_detail': 'Tidak ada detail saluran tersedia',
    'dashboard.channel_type': 'Tipe',
    'dashboard.channel_messages': 'Pesan',
    'dashboard.channel_last_message': 'Pesan Terakhir',
    'dashboard.channel_config': 'Konfigurasi',
    'dashboard.channel_enabled': 'Diaktifkan',
    'dashboard.channel_disabled': 'Dinonaktifkan',
    'dashboard.loading_sessions': 'Memuat sesi...',
    'dashboard.loading_channels': 'Memuat saluran...',
    'dashboard.load_sessions_error': 'Gagal memuat sesi',
    'dashboard.load_channels_error': 'Gagal memuat saluran',
    'dashboard.never': 'Tidak pernah',

    // Settings
    'settings.title': 'Pengaturan',
    'settings.tab.appearance': 'Tampilan',
    'settings.tab.typography': 'Tipografi',
    'settings.appearance': 'Tampilan',
    'settings.typography': 'Tipografi',
    'settings.fontUi': 'Font UI',
    'settings.fontMono': 'Font Kode',
    'settings.fontSize': 'Ukuran Font UI',
    'settings.fontMonoSize': 'Ukuran Font Kode',
    'settings.preview': 'Pratinjau',
    'settings.previewText': 'Rubah cokelat cepat melompati anjing yang malas.',
    'settings.fontNote': 'Perubahan font berlaku saat halaman dimuat ulang.',
    'settings.language': 'Bahasa',

    // Theme
    'theme.mode': 'Mode Tema',
    'theme.accent': 'Warna Aksen',
    'theme.system': 'Sistem',
    'theme.dark': 'Gelap',
    'theme.light': 'Terang',
    'theme.oled': 'Hitam OLED',
  },

  it: {
    // Navigation
    'nav.dashboard': 'Pannello di controllo',
    'nav.agent': 'Agente',
    'nav.tools': 'Strumenti',
    'nav.cron': 'Attività pianificate',
    'nav.integrations': 'Integrazioni',
    'nav.memory': 'Memoria',
    'nav.config': 'Config',
    'nav.cost': 'Monitoraggio costi',
    'nav.logs': 'Log',
    'nav.doctor': 'Diagnostica',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Pannello di controllo',
    'dashboard.provider': 'Provider',
    'dashboard.model': 'Modello',
    'dashboard.uptime': 'Tempo di attività',
    'dashboard.temperature': 'Temperatura',
    'dashboard.gateway_port': 'Porta gateway',
    'dashboard.memory_backend': 'Backend memoria',
    'dashboard.paired': 'Associato',
    'dashboard.channels': 'Canali',
    'dashboard.health': 'Salute',
    'dashboard.status': 'Stato',
    'dashboard.overview': 'Panoramica',
    'dashboard.system_info': 'Informazioni di sistema',
    'dashboard.quick_actions': 'Azioni rapide',

    // Agent / Chat
    'agent.title': 'Chat agente',
    'agent.send': 'Invia',
    'agent.placeholder': 'Scrivi un messaggio...',
    'agent.start_conversation': 'Invia un messaggio per avviare la conversazione',
    'agent.type_message': 'Scrivi un messaggio...',
    'agent.connecting': 'Connessione...',
    'agent.connected': 'Connesso',
    'agent.disconnected': 'Disconnesso',
    'agent.reconnecting': 'Riconnessione...',
    'agent.thinking': 'Elaborazione...',
    'agent.tool_call': 'Chiamata strumento',
    'agent.tool_result': 'Risultato strumento',
    'agent.connection_error': 'Errore di connessione. Tentativo di riconnessione...',
    'agent.tool_call_prefix': '[Chiamata strumento]',
    'agent.tool_result_prefix': '[Risultato strumento]',
    'agent.error_prefix': '[Errore]',
    'agent.unknown_error': 'Errore sconosciuto',
    'agent.send_error': 'Invio del messaggio non riuscito. Riprova.',
    'agent.copy_message': 'Copia messaggio',
    'agent.connected_status': 'Connesso',
    'agent.disconnected_status': 'Disconnesso',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Strumenti disponibili',
    'tools.name': 'Nome',
    'tools.description': 'Descrizione',
    'tools.parameters': 'Parametri',
    'tools.search': 'Cerca strumenti...',
    'tools.empty': 'Nessuno strumento disponibile.',
    'tools.count': 'Totale strumenti',
    'tools.agent_tools': 'Strumenti agente',
    'tools.cli_tools': 'Strumenti CLI',
    'tools.parameter_schema': 'Schema parametri',
    'tools.path': 'Percorso',
    'tools.version': 'Versione',
    'tools.category': 'Categoria',
    'tools.load_error': 'Caricamento strumenti non riuscito',

    // Cron
    'cron.title': 'Attività pianificate',
    'cron.scheduled_tasks': 'Attività pianificate',
    'cron.add': 'Aggiungi attività',
    'cron.add_job': 'Aggiungi attività',
    'cron.add_modal_title': 'Aggiungi attività Cron',
    'cron.delete': 'Elimina',
    'cron.enable': 'Abilita',
    'cron.disable': 'Disabilita',
    'cron.name': 'Nome',
    'cron.name_optional': 'Nome (facoltativo)',
    'cron.command': 'Comando',
    'cron.command_required': 'Comando',
    'cron.schedule': 'Pianificazione',
    'cron.schedule_required': 'Pianificazione',
    'cron.next_run': 'Prossima esecuzione',
    'cron.last_run': 'Ultima esecuzione',
    'cron.last_status': 'Ultimo stato',
    'cron.enabled': 'Abilitato',
    'cron.enabled_status': 'Abilitato',
    'cron.disabled_status': 'Disabilitato',
    'cron.empty': 'Nessuna attività pianificata.',
    'cron.confirm_delete': 'Sei sicuro di voler eliminare questa attività?',
    'cron.load_error': 'Caricamento attività Cron non riuscito',
    'cron.validation_error': 'Pianificazione e comando sono obbligatori.',
    'cron.add_error': 'Aggiunta attività non riuscita',
    'cron.delete_error': 'Eliminazione attività non riuscita',
    'cron.cancel': 'Annulla',
    'cron.adding': 'Aggiunta...',
    'cron.id': 'ID',
    'cron.actions': 'Azioni',
    'cron.loading_run_history': 'Caricamento cronologia esecuzioni...',
    'cron.load_run_history_error': 'Caricamento cronologia esecuzioni non riuscito',
    'cron.no_runs': 'Nessuna esecuzione registrata.',
    'cron.recent_runs': 'Esecuzioni recenti',
    'cron.yes': 'Sì',
    'cron.no': 'No',
    'cron.edit': 'Modifica',
    'cron.edit_modal_title': 'Modifica attività Cron',
    'cron.edit_error': 'Aggiornamento attività non riuscito',
    'cron.saving': 'Salvataggio...',
    'cron.save': 'Salva',

    // Integrations
    'integrations.title': 'Integrazioni',
    'integrations.available': 'Disponibile',
    'integrations.active': 'Attivo',
    'integrations.category': 'Categoria',
    'integrations.status': 'Stato',
    'integrations.search': 'Cerca integrazioni...',
    'integrations.empty': 'Nessuna integrazione trovata.',
    'integrations.activate': 'Attiva',
    'integrations.deactivate': 'Disattiva',
    'integrations.load_error': 'Caricamento integrazioni non riuscito',
    'integrations.status_active': 'Attivo',
    'integrations.status_available': 'Disponibile',

    // Memory
    'memory.title': 'Archivio memoria',
    'memory.memory_title': 'Memoria',
    'memory.search': 'Cerca nella memoria...',
    'memory.search_placeholder': 'Cerca voci di memoria...',
    'memory.add': 'Salva in memoria',
    'memory.add_memory': 'Aggiungi memoria',
    'memory.add_modal_title': 'Aggiungi memoria',
    'memory.delete': 'Elimina',
    'memory.key': 'Chiave',
    'memory.key_required': 'Chiave',
    'memory.content': 'Contenuto',
    'memory.content_required': 'Contenuto',
    'memory.category': 'Categoria',
    'memory.category_optional': 'Categoria (facoltativo)',
    'memory.timestamp': 'Marca temporale',
    'memory.session': 'Sessione',
    'memory.score': 'Punteggio',
    'memory.empty': 'Nessuna voce di memoria trovata.',
    'memory.confirm_delete': 'Sei sicuro di voler eliminare questa voce di memoria?',
    'memory.all_categories': 'Tutte le categorie',
    'memory.search_button': 'Cerca',
    'memory.load_error': 'Caricamento memoria non riuscito',
    'memory.saving': 'Salvataggio...',
    'memory.validation_error': 'Chiave e contenuto sono obbligatori.',
    'memory.store_error': 'Salvataggio memoria non riuscito',
    'memory.delete_error': 'Eliminazione memoria non riuscita',
    'memory.delete_confirm': 'Eliminare?',
    'memory.yes': 'Sì',
    'memory.no': 'No',
    'memory.cancel': 'Annulla',

    // Config

    // Cost
    'cost.title': 'Monitoraggio costi',
    'cost.session': 'Costo sessione',
    'cost.daily': 'Costo giornaliero',
    'cost.monthly': 'Costo mensile',
    'cost.total_tokens': 'Token totali',
    'cost.request_count': 'Richieste',
    'cost.by_model': 'Costo per modello',
    'cost.model': 'Modello',
    'cost.tokens': 'Token',
    'cost.requests': 'Richieste',
    'cost.usd': 'Costo (USD)',
    'cost.load_error': 'Caricamento dati di costo non riuscito',
    'cost.session_cost': 'Costo sessione',
    'cost.daily_cost': 'Costo giornaliero',
    'cost.monthly_cost': 'Costo mensile',
    'cost.total_requests': 'Richieste totali',
    'cost.token_statistics': 'Statistiche token',
    'cost.avg_tokens_per_request': 'Token medi / richiesta',
    'cost.cost_per_1k_tokens': 'Costo per 1K token',
    'cost.model_breakdown': 'Dettaglio per modello',
    'cost.no_model_data': 'Nessun dato modello disponibile.',
    'cost.cost': 'Costo',
    'cost.share': 'Condividi',

    // Logs
    'logs.title': 'Log in tempo reale',
    'logs.live_logs': 'Log in tempo reale',
    'logs.clear': 'Cancella',
    'logs.pause': 'Pausa',
    'logs.resume': 'Riprendi',
    'logs.filter': 'Filtra log...',
    'logs.filter_label': 'Filtro',
    'logs.empty': 'Nessuna voce di log.',
    'logs.connected': 'Connesso',
    'logs.disconnected': 'Disconnesso',
    'logs.events': 'eventi',
    'logs.jump_to_bottom': 'Vai in fondo',
    'logs.paused_hint': 'Lo streaming dei log è in pausa.',
    'logs.waiting_hint': 'In attesa di eventi...',

    // Doctor
    'doctor.title': 'Diagnostica di sistema',
    'doctor.diagnostics_title': 'Diagnostica',
    'doctor.run': 'Esegui diagnostica',
    'doctor.run_diagnostics': 'Esegui diagnostica',
    'doctor.running': 'Esecuzione diagnostica...',
    'doctor.running_btn': 'Esecuzione...',
    'doctor.running_desc': 'Esecuzione diagnostica...',
    'doctor.running_hint': 'L\'operazione potrebbe richiedere alcuni secondi.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Avviso',
    'doctor.error': 'Errore',
    'doctor.severity': 'Gravità',
    'doctor.category': 'Categoria',
    'doctor.message': 'Messaggio',
    'doctor.empty': 'Nessuna diagnostica eseguita.',
    'doctor.summary': 'Riepilogo diagnostica',
    'doctor.issues_found': 'Problemi trovati',
    'doctor.warnings_summary': 'Avvisi',
    'doctor.all_clear': 'Tutto a posto',
    'doctor.system_diagnostics': 'Diagnostica di sistema',
    'doctor.empty_hint': 'Clicca su "Esegui diagnostica" per verificare l\'installazione di KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Associa dispositivo',
    'auth.pairing_code': 'Codice di associazione',
    'auth.pair_button': 'Associa',
    'auth.logout': 'Esci',
    'auth.pairing_success': 'Associazione riuscita!',
    'auth.pairing_failed': 'Associazione non riuscita. Riprova.',
    'auth.enter_code': 'Inserisci il codice di associazione per connetterti all\'agente.',

    // Common
    'common.loading': 'Caricamento...',
    'common.error': 'Si è verificato un errore.',
    'common.retry': 'Riprova',
    'common.cancel': 'Annulla',
    'common.confirm': 'Conferma',
    'common.save': 'Salva',
    'common.delete': 'Elimina',
    'common.edit': 'Modifica',
    'common.close': 'Chiudi',
    'common.yes': 'Sì',
    'common.no': 'No',
    'common.search': 'Cerca...',
    'common.no_data': 'Nessun dato disponibile.',
    'common.refresh': 'Aggiorna',
    'common.back': 'Indietro',
    'common.actions': 'Azioni',
    'common.name': 'Nome',
    'common.description': 'Descrizione',
    'common.status': 'Stato',
    'common.created': 'Creato',
    'common.updated': 'Aggiornato',

    // Health
    'health.title': 'Salute del sistema',
    'health.component': 'Componente',
    'health.status': 'Stato',
    'health.last_ok': 'Ultimo OK',
    'health.last_error': 'Ultimo errore',
    'health.restart_count': 'Riavvii',
    'health.pid': 'ID processo',
    'health.uptime': 'Tempo di attività',
    'health.updated_at': 'Ultimo aggiornamento',

    // Dashboard
    'dashboard.provider_model': 'Provider / Modello',
    'dashboard.since_last_restart': 'Dall\'ultimo riavvio',
    'dashboard.paired_yes': 'Sì',
    'dashboard.paired_no': 'No',
    'dashboard.cost_overview': 'Panoramica costi',
    'dashboard.active_channels': 'Canali attivi',
    'dashboard.filter_active': 'Attivi',
    'dashboard.filter_all': 'Tutti',
    'dashboard.no_active_channels': 'Nessun canale attivo',
    'dashboard.component_health': 'Salute dei componenti',
    'dashboard.load_error': 'Caricamento pannello di controllo non riuscito',
    'dashboard.session_label': 'Sessione',
    'dashboard.daily_label': 'Giornaliero',
    'dashboard.monthly_label': 'Mensile',
    'dashboard.total_tokens_label': 'Token totali',
    'dashboard.requests_label': 'Richieste',
    'dashboard.no_channels': 'Nessun canale configurato',
    'dashboard.active': 'Attivo',
    'dashboard.inactive': 'Inattivo',
    'dashboard.no_components': 'Nessun componente attivo',
    'dashboard.restarts': 'Riavvii',
    'dashboard.tab_overview': 'Panoramica',
    'dashboard.tab_sessions': 'Sessioni',
    'dashboard.tab_channels': 'Canali',
    'dashboard.sessions_title': 'Sessioni attive',
    'dashboard.no_sessions': 'Nessuna sessione attiva',
    'dashboard.session_id': 'ID sessione',
    'dashboard.session_started': 'Avviata',
    'dashboard.session_last_activity': 'Ultima attività',
    'dashboard.session_messages': 'Messaggi',
    'dashboard.session_details': 'Dettagli sessione',
    'dashboard.session_history': 'Visualizza cronologia',
    'dashboard.channels_title': 'Stato dei canali',
    'dashboard.no_channels_detail': 'Nessun dettaglio canale disponibile',
    'dashboard.channel_type': 'Tipo',
    'dashboard.channel_messages': 'Messaggi',
    'dashboard.channel_last_message': 'Ultimo messaggio',
    'dashboard.channel_config': 'Configurazione',
    'dashboard.channel_enabled': 'Abilitato',
    'dashboard.channel_disabled': 'Disabilitato',
    'dashboard.loading_sessions': 'Caricamento sessioni...',
    'dashboard.loading_channels': 'Caricamento canali...',
    'dashboard.load_sessions_error': 'Caricamento sessioni non riuscito',
    'dashboard.load_channels_error': 'Caricamento canali non riuscito',
    'dashboard.never': 'Mai',

    // Settings
    'settings.title': 'Impostazioni',
    'settings.tab.appearance': 'Aspetto',
    'settings.tab.typography': 'Tipografia',
    'settings.appearance': 'Aspetto',
    'settings.typography': 'Tipografia',
    'settings.fontUi': 'Font interfaccia',
    'settings.fontMono': 'Font codice',
    'settings.fontSize': 'Dimensione font interfaccia',
    'settings.fontMonoSize': 'Dimensione font codice',
    'settings.preview': 'Anteprima',
    'settings.previewText': 'La volpe marrone veloce salta sopra il cane pigro.',
    'settings.fontNote': 'Le modifiche al font si applicano al ricaricamento della pagina.',
    'settings.language': 'Lingua',

    // Theme
    'theme.mode': 'Modalità tema',
    'theme.accent': 'Colore accento',
    'theme.system': 'Sistema',
    'theme.dark': 'Scuro',
    'theme.light': 'Chiaro',
    'theme.oled': 'Nero OLED',
  },

  ja: {
    // Navigation
    'nav.dashboard': 'ダッシュボード',
    'nav.agent': 'エージェント',
    'nav.tools': 'ツール',
    'nav.cron': 'スケジュールジョブ',
    'nav.integrations': 'インテグレーション',
    'nav.memory': 'メモリ',
    'nav.config': 'Config',
    'nav.cost': 'コストトラッカー',
    'nav.logs': 'ログ',
    'nav.doctor': '診断',
    'nav.canvas': 'キャンバス',

    // Dashboard
    'dashboard.title': 'ダッシュボード',
    'dashboard.provider': 'プロバイダー',
    'dashboard.model': 'モデル',
    'dashboard.uptime': '稼働時間',
    'dashboard.temperature': '温度',
    'dashboard.gateway_port': 'ゲートウェイポート',
    'dashboard.memory_backend': 'メモリバックエンド',
    'dashboard.paired': 'ペアリング済み',
    'dashboard.channels': 'チャンネル',
    'dashboard.health': 'ヘルス',
    'dashboard.status': 'ステータス',
    'dashboard.overview': '概要',
    'dashboard.system_info': 'システム情報',
    'dashboard.quick_actions': 'クイックアクション',

    // Agent / Chat
    'agent.title': 'エージェントチャット',
    'agent.send': '送信',
    'agent.placeholder': 'メッセージを入力...',
    'agent.start_conversation': 'メッセージを送信して会話を開始してください',
    'agent.type_message': 'メッセージを入力...',
    'agent.connecting': '接続中...',
    'agent.connected': '接続済み',
    'agent.disconnected': '切断済み',
    'agent.reconnecting': '再接続中...',
    'agent.thinking': '考え中...',
    'agent.tool_call': 'ツール呼び出し',
    'agent.tool_result': 'ツール結果',
    'agent.connection_error': '接続エラー。再接続を試みています...',
    'agent.tool_call_prefix': '[ツール呼び出し]',
    'agent.tool_result_prefix': '[ツール結果]',
    'agent.error_prefix': '[エラー]',
    'agent.unknown_error': '不明なエラー',
    'agent.send_error': 'メッセージの送信に失敗しました。もう一度お試しください。',
    'agent.copy_message': 'メッセージをコピー',
    'agent.connected_status': '接続済み',
    'agent.disconnected_status': '切断済み',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': '利用可能なツール',
    'tools.name': '名前',
    'tools.description': '説明',
    'tools.parameters': 'パラメータ',
    'tools.search': 'ツールを検索...',
    'tools.empty': '利用可能なツールがありません。',
    'tools.count': 'ツール合計',
    'tools.agent_tools': 'エージェントツール',
    'tools.cli_tools': 'CLI ツール',
    'tools.parameter_schema': 'パラメータスキーマ',
    'tools.path': 'パス',
    'tools.version': 'バージョン',
    'tools.category': 'カテゴリ',
    'tools.load_error': 'ツールの読み込みに失敗しました',

    // Cron
    'cron.title': 'スケジュールジョブ',
    'cron.scheduled_tasks': 'スケジュールタスク',
    'cron.add': 'ジョブを追加',
    'cron.add_job': 'ジョブを追加',
    'cron.add_modal_title': 'Cron ジョブを追加',
    'cron.delete': '削除',
    'cron.enable': '有効にする',
    'cron.disable': '無効にする',
    'cron.name': '名前',
    'cron.name_optional': '名前（任意）',
    'cron.command': 'コマンド',
    'cron.command_required': 'コマンド',
    'cron.schedule': 'スケジュール',
    'cron.schedule_required': 'スケジュール',
    'cron.next_run': '次回実行',
    'cron.last_run': '前回実行',
    'cron.last_status': '前回のステータス',
    'cron.enabled': '有効',
    'cron.enabled_status': '有効',
    'cron.disabled_status': '無効',
    'cron.empty': 'スケジュールジョブがありません。',
    'cron.confirm_delete': 'このジョブを削除してもよろしいですか？',
    'cron.load_error': 'Cron ジョブの読み込みに失敗しました',
    'cron.validation_error': 'スケジュールとコマンドは必須です。',
    'cron.add_error': 'ジョブの追加に失敗しました',
    'cron.delete_error': 'ジョブの削除に失敗しました',
    'cron.cancel': 'キャンセル',
    'cron.adding': '追加中...',
    'cron.id': 'ID',
    'cron.actions': 'アクション',
    'cron.loading_run_history': '実行履歴を読み込み中...',
    'cron.load_run_history_error': '実行履歴の読み込みに失敗しました',
    'cron.no_runs': 'まだ実行記録がありません。',
    'cron.recent_runs': '最近の実行',
    'cron.yes': 'はい',
    'cron.no': 'いいえ',
    'cron.edit': '編集',
    'cron.edit_modal_title': 'Cron ジョブを編集',
    'cron.edit_error': 'ジョブの更新に失敗しました',
    'cron.saving': '保存中...',
    'cron.save': '保存',

    // Integrations
    'integrations.title': 'インテグレーション',
    'integrations.available': '利用可能',
    'integrations.active': 'アクティブ',
    'integrations.category': 'カテゴリ',
    'integrations.status': 'ステータス',
    'integrations.search': 'インテグレーションを検索...',
    'integrations.empty': 'インテグレーションが見つかりません。',
    'integrations.activate': '有効にする',
    'integrations.deactivate': '無効にする',
    'integrations.load_error': 'インテグレーションの読み込みに失敗しました',
    'integrations.status_active': 'アクティブ',
    'integrations.status_available': '利用可能',

    // Memory
    'memory.title': 'メモリストア',
    'memory.memory_title': 'メモリ',
    'memory.search': 'メモリを検索...',
    'memory.search_placeholder': 'メモリエントリを検索...',
    'memory.add': 'メモリを保存',
    'memory.add_memory': 'メモリを追加',
    'memory.add_modal_title': 'メモリを追加',
    'memory.delete': '削除',
    'memory.key': 'キー',
    'memory.key_required': 'キー',
    'memory.content': 'コンテンツ',
    'memory.content_required': 'コンテンツ',
    'memory.category': 'カテゴリ',
    'memory.category_optional': 'カテゴリ（任意）',
    'memory.timestamp': 'タイムスタンプ',
    'memory.session': 'セッション',
    'memory.score': 'スコア',
    'memory.empty': 'メモリエントリが見つかりません。',
    'memory.confirm_delete': 'このメモリエントリを削除してもよろしいですか？',
    'memory.all_categories': 'すべてのカテゴリ',
    'memory.search_button': '検索',
    'memory.load_error': 'メモリの読み込みに失敗しました',
    'memory.saving': '保存中...',
    'memory.validation_error': 'キーとコンテンツは必須です。',
    'memory.store_error': 'メモリの保存に失敗しました',
    'memory.delete_error': 'メモリの削除に失敗しました',
    'memory.delete_confirm': '削除しますか？',
    'memory.yes': 'はい',
    'memory.no': 'いいえ',
    'memory.cancel': 'キャンセル',

    // Config

    // Cost
    'cost.title': 'コストトラッカー',
    'cost.session': 'セッションコスト',
    'cost.daily': '日次コスト',
    'cost.monthly': '月次コスト',
    'cost.total_tokens': '合計 Token 数',
    'cost.request_count': 'リクエスト数',
    'cost.by_model': 'モデル別コスト',
    'cost.model': 'モデル',
    'cost.tokens': 'Token',
    'cost.requests': 'リクエスト',
    'cost.usd': 'コスト (USD)',
    'cost.load_error': 'コストデータの読み込みに失敗しました',
    'cost.session_cost': 'セッションコスト',
    'cost.daily_cost': '日次コスト',
    'cost.monthly_cost': '月次コスト',
    'cost.total_requests': '合計リクエスト数',
    'cost.token_statistics': 'Token 統計',
    'cost.avg_tokens_per_request': 'リクエストあたりの平均 Token 数',
    'cost.cost_per_1k_tokens': '1K Token あたりのコスト',
    'cost.model_breakdown': 'モデル内訳',
    'cost.no_model_data': 'モデルデータがありません。',
    'cost.cost': 'コスト',
    'cost.share': '共有',

    // Logs
    'logs.title': 'ライブログ',
    'logs.live_logs': 'ライブログ',
    'logs.clear': 'クリア',
    'logs.pause': '一時停止',
    'logs.resume': '再開',
    'logs.filter': 'ログをフィルタ...',
    'logs.filter_label': 'フィルタ',
    'logs.empty': 'ログエントリがありません。',
    'logs.connected': '接続済み',
    'logs.disconnected': '切断済み',
    'logs.events': 'イベント',
    'logs.jump_to_bottom': '最下部に移動',
    'logs.paused_hint': 'ログストリーミングは一時停止中です。',
    'logs.waiting_hint': 'イベントを待機中...',

    // Doctor
    'doctor.title': 'システム診断',
    'doctor.diagnostics_title': '診断',
    'doctor.run': '診断を実行',
    'doctor.run_diagnostics': '診断を実行',
    'doctor.running': '診断を実行中...',
    'doctor.running_btn': '実行中...',
    'doctor.running_desc': '診断を実行中...',
    'doctor.running_hint': '数秒かかる場合があります。',
    'doctor.ok': 'OK',
    'doctor.warn': '警告',
    'doctor.error': 'エラー',
    'doctor.severity': '重要度',
    'doctor.category': 'カテゴリ',
    'doctor.message': 'メッセージ',
    'doctor.empty': 'まだ診断は実行されていません。',
    'doctor.summary': '診断サマリー',
    'doctor.issues_found': '検出された問題',
    'doctor.warnings_summary': '警告',
    'doctor.all_clear': '問題なし',
    'doctor.system_diagnostics': 'システム診断',
    'doctor.empty_hint': '「診断を実行」をクリックして KylinBot のインストールを確認してください。',

    // Auth / Pairing
    'auth.pair': 'デバイスをペアリング',
    'auth.pairing_code': 'ペアリングコード',
    'auth.pair_button': 'ペアリング',
    'auth.logout': 'ログアウト',
    'auth.pairing_success': 'ペアリングに成功しました！',
    'auth.pairing_failed': 'ペアリングに失敗しました。もう一度お試しください。',
    'auth.enter_code': 'ペアリングコードを入力してエージェントに接続してください。',
    'pairing.title': 'デバイスのペアリング',
    'pairing.pair_new_device': '新しいデバイスをペアリング',
    'pairing.pairing_code': 'ペアリングコード',
    'pairing.code_hint': '新しいデバイスにこのコードを入力してください',
    'pairing.paired_devices': 'ペアリング済みデバイス',
    'pairing.no_devices': 'ペアリング済みデバイスはありません。',
    'pairing.name': '名前',
    'pairing.type': 'タイプ',
    'pairing.paired': 'ペアリング日時',
    'pairing.last_seen': '最終確認',
    'pairing.actions': '操作',
    'pairing.load_error': 'デバイスの読み込みに失敗しました',
    'pairing.generate_error': 'ペアリングコードの生成に失敗しました',
    'pairing.revoke_error': 'デバイスの取り消しに失敗しました',

    // Common
    'common.loading': '読み込み中...',
    'common.error': 'エラーが発生しました。',
    'common.retry': '再試行',
    'common.cancel': 'キャンセル',
    'common.confirm': '確認',
    'common.save': '保存',
    'common.delete': '削除',
    'common.edit': '編集',
    'common.close': '閉じる',
    'common.yes': 'はい',
    'common.no': 'いいえ',
    'common.search': '検索...',
    'common.no_data': 'データがありません。',
    'common.refresh': '更新',
    'common.back': '戻る',
    'common.actions': 'アクション',
    'common.name': '名前',
    'common.description': '説明',
    'common.status': 'ステータス',
    'common.created': '作成日',
    'common.updated': '更新日',

    // Health
    'health.title': 'システムヘルス',
    'health.component': 'コンポーネント',
    'health.status': 'ステータス',
    'health.last_ok': '最終正常',
    'health.last_error': '最終エラー',
    'health.restart_count': '再起動回数',
    'health.pid': 'プロセス ID',
    'health.uptime': '稼働時間',
    'health.updated_at': '最終更新',

    // Dashboard
    'dashboard.provider_model': 'プロバイダー / モデル',
    'dashboard.since_last_restart': '最後の再起動以降',
    'dashboard.paired_yes': 'はい',
    'dashboard.paired_no': 'いいえ',
    'dashboard.cost_overview': 'コスト概要',
    'dashboard.active_channels': 'アクティブチャンネル',
    'dashboard.filter_active': 'アクティブ',
    'dashboard.filter_all': 'すべて',
    'dashboard.no_active_channels': 'アクティブなチャンネルがありません',
    'dashboard.component_health': 'コンポーネントヘルス',
    'dashboard.load_error': 'ダッシュボードの読み込みに失敗しました',
    'dashboard.session_label': 'セッション',
    'dashboard.daily_label': '日次',
    'dashboard.monthly_label': '月次',
    'dashboard.total_tokens_label': '合計 Token 数',
    'dashboard.requests_label': 'リクエスト',
    'dashboard.no_channels': 'チャンネルが設定されていません',
    'dashboard.active': 'アクティブ',
    'dashboard.inactive': '非アクティブ',
    'dashboard.no_components': 'レポートしているコンポーネントがありません',
    'dashboard.restarts': '再起動',
    'dashboard.tab_overview': '概要',
    'dashboard.tab_sessions': 'セッション',
    'dashboard.tab_channels': 'チャンネル',
    'dashboard.sessions_title': 'アクティブセッション',
    'dashboard.no_sessions': 'アクティブなセッションがありません',
    'dashboard.session_id': 'セッション ID',
    'dashboard.session_started': '開始日時',
    'dashboard.session_last_activity': '最終アクティビティ',
    'dashboard.session_messages': 'メッセージ',
    'dashboard.session_details': 'セッション詳細',
    'dashboard.session_history': '履歴を表示',
    'dashboard.channels_title': 'チャンネルステータス',
    'dashboard.no_channels_detail': 'チャンネルの詳細がありません',
    'dashboard.channel_type': 'タイプ',
    'dashboard.channel_messages': 'メッセージ',
    'dashboard.channel_last_message': '最終メッセージ',
    'dashboard.channel_config': '設定',
    'dashboard.channel_enabled': '有効',
    'dashboard.channel_disabled': '無効',
    'dashboard.loading_sessions': 'セッションを読み込み中...',
    'dashboard.loading_channels': 'チャンネルを読み込み中...',
    'dashboard.load_sessions_error': 'セッションの読み込みに失敗しました',
    'dashboard.load_channels_error': 'チャンネルの読み込みに失敗しました',
    'dashboard.never': 'なし',

    // Settings
    'settings.title': '設定',
    'settings.tab.appearance': '外観',
    'settings.tab.typography': 'タイポグラフィ',
    'settings.appearance': '外観',
    'settings.typography': 'タイポグラフィ',
    'settings.fontUi': 'UI フォント',
    'settings.fontMono': 'コードフォント',
    'settings.fontSize': 'UI フォントサイズ',
    'settings.fontMonoSize': 'コードフォントサイズ',
    'settings.preview': 'プレビュー',
    'settings.previewText': '素早い茶色の狐が怠惰な犬を飛び越える。',
    'settings.fontNote': 'フォントの変更はページの再読み込み後に適用されます。',
    'settings.language': '言語',

    // Theme
    'theme.mode': 'テーマモード',
    'theme.accent': 'アクセントカラー',
    'theme.system': 'システム',
    'theme.dark': 'ダーク',
    'theme.light': 'ライト',
    'theme.oled': 'OLED ブラック',
  },

  ko: {
    // Navigation
    'nav.dashboard': '대시보드',
    'nav.agent': '에이전트',
    'nav.tools': '도구',
    'nav.cron': '예약 작업',
    'nav.integrations': '통합',
    'nav.memory': '메모리',
    'nav.config': 'Config',
    'nav.cost': '비용 추적기',
    'nav.logs': '로그',
    'nav.doctor': '진단',
    'nav.canvas': '캔버스',

    // Dashboard
    'dashboard.title': '대시보드',
    'dashboard.provider': '프로바이더',
    'dashboard.model': '모델',
    'dashboard.uptime': '가동 시간',
    'dashboard.temperature': '온도',
    'dashboard.gateway_port': '게이트웨이 포트',
    'dashboard.memory_backend': '메모리 백엔드',
    'dashboard.paired': '페어링됨',
    'dashboard.channels': '채널',
    'dashboard.health': '상태',
    'dashboard.status': '상태',
    'dashboard.overview': '개요',
    'dashboard.system_info': '시스템 정보',
    'dashboard.quick_actions': '빠른 작업',

    // Agent / Chat
    'agent.title': '에이전트 채팅',
    'agent.send': '전송',
    'agent.placeholder': '메시지를 입력하세요...',
    'agent.start_conversation': '메시지를 보내 대화를 시작하세요',
    'agent.type_message': '메시지를 입력하세요...',
    'agent.connecting': '연결 중...',
    'agent.connected': '연결됨',
    'agent.disconnected': '연결 끊김',
    'agent.reconnecting': '재연결 중...',
    'agent.thinking': '생각 중...',
    'agent.tool_call': '도구 호출',
    'agent.tool_result': '도구 결과',
    'agent.connection_error': '연결 오류. 재연결을 시도하고 있습니다...',
    'agent.tool_call_prefix': '[도구 호출]',
    'agent.tool_result_prefix': '[도구 결과]',
    'agent.error_prefix': '[오류]',
    'agent.unknown_error': '알 수 없는 오류',
    'agent.send_error': '메시지 전송에 실패했습니다. 다시 시도해 주세요.',
    'agent.copy_message': '메시지 복사',
    'agent.connected_status': '연결됨',
    'agent.disconnected_status': '연결 끊김',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': '사용 가능한 도구',
    'tools.name': '이름',
    'tools.description': '설명',
    'tools.parameters': '매개변수',
    'tools.search': '도구 검색...',
    'tools.empty': '사용 가능한 도구가 없습니다.',
    'tools.count': '전체 도구 수',
    'tools.agent_tools': '에이전트 도구',
    'tools.cli_tools': 'CLI 도구',
    'tools.parameter_schema': '매개변수 스키마',
    'tools.path': '경로',
    'tools.version': '버전',
    'tools.category': '카테고리',
    'tools.load_error': '도구를 불러오지 못했습니다',

    // Cron
    'cron.title': '예약 작업',
    'cron.scheduled_tasks': '예약된 작업',
    'cron.add': '작업 추가',
    'cron.add_job': '작업 추가',
    'cron.add_modal_title': 'Cron 작업 추가',
    'cron.delete': '삭제',
    'cron.enable': '활성화',
    'cron.disable': '비활성화',
    'cron.name': '이름',
    'cron.name_optional': '이름 (선택사항)',
    'cron.command': '명령어',
    'cron.command_required': '명령어',
    'cron.schedule': '스케줄',
    'cron.schedule_required': '스케줄',
    'cron.next_run': '다음 실행',
    'cron.last_run': '마지막 실행',
    'cron.last_status': '마지막 상태',
    'cron.enabled': '활성화됨',
    'cron.enabled_status': '활성화됨',
    'cron.disabled_status': '비활성화됨',
    'cron.empty': '예약된 작업이 없습니다.',
    'cron.confirm_delete': '이 작업을 삭제하시겠습니까?',
    'cron.load_error': 'Cron 작업을 불러오지 못했습니다',
    'cron.validation_error': '스케줄과 명령어는 필수입니다.',
    'cron.add_error': '작업 추가에 실패했습니다',
    'cron.delete_error': '작업 삭제에 실패했습니다',
    'cron.cancel': '취소',
    'cron.adding': '추가 중...',
    'cron.id': 'ID',
    'cron.actions': '작업',
    'cron.loading_run_history': '실행 기록을 불러오는 중...',
    'cron.load_run_history_error': '실행 기록을 불러오지 못했습니다',
    'cron.no_runs': '아직 실행 기록이 없습니다.',
    'cron.recent_runs': '최근 실행',
    'cron.yes': '예',
    'cron.no': '아니오',
    'cron.edit': '편집',
    'cron.edit_modal_title': 'Cron 작업 편집',
    'cron.edit_error': '작업 업데이트에 실패했습니다',
    'cron.saving': '저장 중...',
    'cron.save': '저장',

    // Integrations
    'integrations.title': '통합',
    'integrations.available': '사용 가능',
    'integrations.active': '활성',
    'integrations.category': '카테고리',
    'integrations.status': '상태',
    'integrations.search': '통합 검색...',
    'integrations.empty': '통합을 찾을 수 없습니다.',
    'integrations.activate': '활성화',
    'integrations.deactivate': '비활성화',
    'integrations.load_error': '통합을 불러오지 못했습니다',
    'integrations.status_active': '활성',
    'integrations.status_available': '사용 가능',

    // Memory
    'memory.title': '메모리 저장소',
    'memory.memory_title': '메모리',
    'memory.search': '메모리 검색...',
    'memory.search_placeholder': '메모리 항목 검색...',
    'memory.add': '메모리 저장',
    'memory.add_memory': '메모리 추가',
    'memory.add_modal_title': '메모리 추가',
    'memory.delete': '삭제',
    'memory.key': '키',
    'memory.key_required': '키',
    'memory.content': '내용',
    'memory.content_required': '내용',
    'memory.category': '카테고리',
    'memory.category_optional': '카테고리 (선택사항)',
    'memory.timestamp': '타임스탬프',
    'memory.session': '세션',
    'memory.score': '점수',
    'memory.empty': '메모리 항목을 찾을 수 없습니다.',
    'memory.confirm_delete': '이 메모리 항목을 삭제하시겠습니까?',
    'memory.all_categories': '전체 카테고리',
    'memory.search_button': '검색',
    'memory.load_error': '메모리를 불러오지 못했습니다',
    'memory.saving': '저장 중...',
    'memory.validation_error': '키와 내용은 필수입니다.',
    'memory.store_error': '메모리 저장에 실패했습니다',
    'memory.delete_error': '메모리 삭제에 실패했습니다',
    'memory.delete_confirm': '삭제하시겠습니까?',
    'memory.yes': '예',
    'memory.no': '아니오',
    'memory.cancel': '취소',

    // Config

    // Cost
    'cost.title': '비용 추적기',
    'cost.session': '세션 비용',
    'cost.daily': '일일 비용',
    'cost.monthly': '월간 비용',
    'cost.total_tokens': '전체 Token 수',
    'cost.request_count': '요청 수',
    'cost.by_model': '모델별 비용',
    'cost.model': '모델',
    'cost.tokens': 'Token',
    'cost.requests': '요청',
    'cost.usd': '비용 (USD)',
    'cost.load_error': '비용 데이터를 불러오지 못했습니다',
    'cost.session_cost': '세션 비용',
    'cost.daily_cost': '일일 비용',
    'cost.monthly_cost': '월간 비용',
    'cost.total_requests': '전체 요청 수',
    'cost.token_statistics': 'Token 통계',
    'cost.avg_tokens_per_request': '요청당 평균 Token 수',
    'cost.cost_per_1k_tokens': '1K Token당 비용',
    'cost.model_breakdown': '모델 내역',
    'cost.no_model_data': '모델 데이터가 없습니다.',
    'cost.cost': '비용',
    'cost.share': '공유',

    // Logs
    'logs.title': '실시간 로그',
    'logs.live_logs': '실시간 로그',
    'logs.clear': '지우기',
    'logs.pause': '일시 정지',
    'logs.resume': '재개',
    'logs.filter': '로그 필터...',
    'logs.filter_label': '필터',
    'logs.empty': '로그 항목이 없습니다.',
    'logs.connected': '연결됨',
    'logs.disconnected': '연결 끊김',
    'logs.events': '이벤트',
    'logs.jump_to_bottom': '맨 아래로 이동',
    'logs.paused_hint': '로그 스트리밍이 일시 정지되었습니다.',
    'logs.waiting_hint': '이벤트를 기다리는 중...',

    // Doctor
    'doctor.title': '시스템 진단',
    'doctor.diagnostics_title': '진단',
    'doctor.run': '진단 실행',
    'doctor.run_diagnostics': '진단 실행',
    'doctor.running': '진단 실행 중...',
    'doctor.running_btn': '실행 중...',
    'doctor.running_desc': '진단 실행 중...',
    'doctor.running_hint': '몇 초 정도 걸릴 수 있습니다.',
    'doctor.ok': 'OK',
    'doctor.warn': '경고',
    'doctor.error': '오류',
    'doctor.severity': '심각도',
    'doctor.category': '카테고리',
    'doctor.message': '메시지',
    'doctor.empty': '아직 진단이 실행되지 않았습니다.',
    'doctor.summary': '진단 요약',
    'doctor.issues_found': '발견된 문제',
    'doctor.warnings_summary': '경고',
    'doctor.all_clear': '문제 없음',
    'doctor.system_diagnostics': '시스템 진단',
    'doctor.empty_hint': '"진단 실행"을 클릭하여 KylinBot 설치를 확인하세요.',

    // Auth / Pairing
    'auth.pair': '장치 페어링',
    'auth.pairing_code': '페어링 코드',
    'auth.pair_button': '페어링',
    'auth.logout': '로그아웃',
    'auth.pairing_success': '페어링에 성공했습니다!',
    'auth.pairing_failed': '페어링에 실패했습니다. 다시 시도해 주세요.',
    'auth.enter_code': '페어링 코드를 입력하여 에이전트에 연결하세요.',

    // Common
    'common.loading': '로딩 중...',
    'common.error': '오류가 발생했습니다.',
    'common.retry': '재시도',
    'common.cancel': '취소',
    'common.confirm': '확인',
    'common.save': '저장',
    'common.delete': '삭제',
    'common.edit': '편집',
    'common.close': '닫기',
    'common.yes': '예',
    'common.no': '아니오',
    'common.search': '검색...',
    'common.no_data': '사용 가능한 데이터가 없습니다.',
    'common.refresh': '새로고침',
    'common.back': '뒤로',
    'common.actions': '작업',
    'common.name': '이름',
    'common.description': '설명',
    'common.status': '상태',
    'common.created': '생성일',
    'common.updated': '수정일',

    // Health
    'health.title': '시스템 상태',
    'health.component': '구성 요소',
    'health.status': '상태',
    'health.last_ok': '마지막 정상',
    'health.last_error': '마지막 오류',
    'health.restart_count': '재시작 횟수',
    'health.pid': '프로세스 ID',
    'health.uptime': '가동 시간',
    'health.updated_at': '마지막 업데이트',

    // Dashboard
    'dashboard.provider_model': '프로바이더 / 모델',
    'dashboard.since_last_restart': '마지막 재시작 이후',
    'dashboard.paired_yes': '예',
    'dashboard.paired_no': '아니오',
    'dashboard.cost_overview': '비용 개요',
    'dashboard.active_channels': '활성 채널',
    'dashboard.filter_active': '활성',
    'dashboard.filter_all': '전체',
    'dashboard.no_active_channels': '활성 채널이 없습니다',
    'dashboard.component_health': '구성 요소 상태',
    'dashboard.load_error': '대시보드를 불러오지 못했습니다',
    'dashboard.session_label': '세션',
    'dashboard.daily_label': '일일',
    'dashboard.monthly_label': '월간',
    'dashboard.total_tokens_label': '전체 Token 수',
    'dashboard.requests_label': '요청',
    'dashboard.no_channels': '설정된 채널이 없습니다',
    'dashboard.active': '활성',
    'dashboard.inactive': '비활성',
    'dashboard.no_components': '보고 중인 구성 요소가 없습니다',
    'dashboard.restarts': '재시작',
    'dashboard.tab_overview': '개요',
    'dashboard.tab_sessions': '세션',
    'dashboard.tab_channels': '채널',
    'dashboard.sessions_title': '활성 세션',
    'dashboard.no_sessions': '활성 세션이 없습니다',
    'dashboard.session_id': '세션 ID',
    'dashboard.session_started': '시작 시간',
    'dashboard.session_last_activity': '마지막 활동',
    'dashboard.session_messages': '메시지',
    'dashboard.session_details': '세션 상세',
    'dashboard.session_history': '기록 보기',
    'dashboard.channels_title': '채널 상태',
    'dashboard.no_channels_detail': '채널 상세 정보가 없습니다',
    'dashboard.channel_type': '유형',
    'dashboard.channel_messages': '메시지',
    'dashboard.channel_last_message': '마지막 메시지',
    'dashboard.channel_config': '설정',
    'dashboard.channel_enabled': '활성화됨',
    'dashboard.channel_disabled': '비활성화됨',
    'dashboard.loading_sessions': '세션을 불러오는 중...',
    'dashboard.loading_channels': '채널을 불러오는 중...',
    'dashboard.load_sessions_error': '세션을 불러오지 못했습니다',
    'dashboard.load_channels_error': '채널을 불러오지 못했습니다',
    'dashboard.never': '없음',

    // Settings
    'settings.title': '설정',
    'settings.tab.appearance': '외관',
    'settings.tab.typography': '타이포그래피',
    'settings.appearance': '외관',
    'settings.typography': '타이포그래피',
    'settings.fontUi': 'UI 글꼴',
    'settings.fontMono': '코드 글꼴',
    'settings.fontSize': 'UI 글꼴 크기',
    'settings.fontMonoSize': '코드 글꼴 크기',
    'settings.preview': '미리보기',
    'settings.previewText': '다람쥐 헌 쳇바퀴에 타고파.',
    'settings.fontNote': '글꼴 변경은 페이지 새로고침 후 적용됩니다.',
    'settings.language': '언어',

    // Theme
    'theme.mode': '테마 모드',
    'theme.accent': '강조 색상',
    'theme.system': '시스템',
    'theme.dark': '다크',
    'theme.light': '라이트',
    'theme.oled': 'OLED 블랙',
  },

  nb: {
    // Navigation
    'nav.dashboard': 'Dashbord',
    'nav.agent': 'Agent',
    'nav.tools': 'Verktøy',
    'nav.cron': 'Planlagte jobber',
    'nav.integrations': 'Integrasjoner',
    'nav.memory': 'Minne',
    'nav.config': 'Config',
    'nav.cost': 'Kostnadssporing',
    'nav.logs': 'Logger',
    'nav.doctor': 'Diagnose',
    'nav.canvas': 'Lerret',

    // Dashboard
    'dashboard.title': 'Dashbord',
    'dashboard.provider': 'Leverandør',
    'dashboard.model': 'Modell',
    'dashboard.uptime': 'Oppetid',
    'dashboard.temperature': 'Temperatur',
    'dashboard.gateway_port': 'Gateway-port',
    'dashboard.memory_backend': 'Minnebackend',
    'dashboard.paired': 'Paret',
    'dashboard.channels': 'Kanaler',
    'dashboard.health': 'Helse',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Oversikt',
    'dashboard.system_info': 'Systeminformasjon',
    'dashboard.quick_actions': 'Hurtighandlinger',

    // Agent / Chat
    'agent.title': 'Agentchat',
    'agent.send': 'Send',
    'agent.placeholder': 'Skriv en melding...',
    'agent.start_conversation': 'Send en melding for å starte samtalen',
    'agent.type_message': 'Skriv en melding...',
    'agent.connecting': 'Kobler til...',
    'agent.connected': 'Tilkoblet',
    'agent.disconnected': 'Frakoblet',
    'agent.reconnecting': 'Kobler til igjen...',
    'agent.thinking': 'Tenker...',
    'agent.tool_call': 'Verktøykall',
    'agent.tool_result': 'Verktøyresultat',
    'agent.connection_error': 'Tilkoblingsfeil. Forsøker å koble til igjen...',
    'agent.tool_call_prefix': '[Verktøykall]',
    'agent.tool_result_prefix': '[Verktøyresultat]',
    'agent.error_prefix': '[Feil]',
    'agent.unknown_error': 'Ukjent feil',
    'agent.send_error': 'Kunne ikke sende meldingen. Vennligst prøv igjen.',
    'agent.copy_message': 'Kopier melding',
    'agent.connected_status': 'Tilkoblet',
    'agent.disconnected_status': 'Frakoblet',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Tilgjengelige verktøy',
    'tools.name': 'Navn',
    'tools.description': 'Beskrivelse',
    'tools.parameters': 'Parametere',
    'tools.search': 'Søk etter verktøy...',
    'tools.empty': 'Ingen verktøy tilgjengelig.',
    'tools.count': 'Totalt antall verktøy',
    'tools.agent_tools': 'Agentverktøy',
    'tools.cli_tools': 'CLI-verktøy',
    'tools.parameter_schema': 'Parameterskjema',
    'tools.path': 'Sti',
    'tools.version': 'Versjon',
    'tools.category': 'Kategori',
    'tools.load_error': 'Kunne ikke laste verktøy',

    // Cron
    'cron.title': 'Planlagte jobber',
    'cron.scheduled_tasks': 'Planlagte oppgaver',
    'cron.add': 'Legg til jobb',
    'cron.add_job': 'Legg til jobb',
    'cron.add_modal_title': 'Legg til Cron-jobb',
    'cron.delete': 'Slett',
    'cron.enable': 'Aktiver',
    'cron.disable': 'Deaktiver',
    'cron.name': 'Navn',
    'cron.name_optional': 'Navn (valgfritt)',
    'cron.command': 'Kommando',
    'cron.command_required': 'Kommando',
    'cron.schedule': 'Tidsplan',
    'cron.schedule_required': 'Tidsplan',
    'cron.next_run': 'Neste kjøring',
    'cron.last_run': 'Siste kjøring',
    'cron.last_status': 'Siste status',
    'cron.enabled': 'Aktivert',
    'cron.enabled_status': 'Aktivert',
    'cron.disabled_status': 'Deaktivert',
    'cron.empty': 'Ingen planlagte jobber.',
    'cron.confirm_delete': 'Er du sikker på at du vil slette denne jobben?',
    'cron.load_error': 'Kunne ikke laste Cron-jobber',
    'cron.validation_error': 'Tidsplan og kommando er påkrevd.',
    'cron.add_error': 'Kunne ikke legge til jobb',
    'cron.delete_error': 'Kunne ikke slette jobb',
    'cron.cancel': 'Avbryt',
    'cron.adding': 'Legger til...',
    'cron.id': 'ID',
    'cron.actions': 'Handlinger',
    'cron.loading_run_history': 'Laster kjørehistorikk...',
    'cron.load_run_history_error': 'Kunne ikke laste kjørehistorikk',
    'cron.no_runs': 'Ingen kjøringer registrert ennå.',
    'cron.recent_runs': 'Siste kjøringer',
    'cron.yes': 'Ja',
    'cron.no': 'Nei',
    'cron.edit': 'Rediger',
    'cron.edit_modal_title': 'Rediger Cron-jobb',
    'cron.edit_error': 'Kunne ikke oppdatere jobb',
    'cron.saving': 'Lagrer...',
    'cron.save': 'Lagre',

    // Integrations
    'integrations.title': 'Integrasjoner',
    'integrations.available': 'Tilgjengelig',
    'integrations.active': 'Aktiv',
    'integrations.category': 'Kategori',
    'integrations.status': 'Status',
    'integrations.search': 'Søk etter integrasjoner...',
    'integrations.empty': 'Ingen integrasjoner funnet.',
    'integrations.activate': 'Aktiver',
    'integrations.deactivate': 'Deaktiver',
    'integrations.load_error': 'Kunne ikke laste integrasjoner',
    'integrations.status_active': 'Aktiv',
    'integrations.status_available': 'Tilgjengelig',

    // Memory
    'memory.title': 'Minnelager',
    'memory.memory_title': 'Minne',
    'memory.search': 'Søk i minne...',
    'memory.search_placeholder': 'Søk i minneoppføringer...',
    'memory.add': 'Lagre minne',
    'memory.add_memory': 'Legg til minne',
    'memory.add_modal_title': 'Legg til minne',
    'memory.delete': 'Slett',
    'memory.key': 'Nøkkel',
    'memory.key_required': 'Nøkkel',
    'memory.content': 'Innhold',
    'memory.content_required': 'Innhold',
    'memory.category': 'Kategori',
    'memory.category_optional': 'Kategori (valgfritt)',
    'memory.timestamp': 'Tidsstempel',
    'memory.session': 'Sesjon',
    'memory.score': 'Poeng',
    'memory.empty': 'Ingen minneoppføringer funnet.',
    'memory.confirm_delete': 'Er du sikker på at du vil slette denne minneoppføringen?',
    'memory.all_categories': 'Alle kategorier',
    'memory.search_button': 'Søk',
    'memory.load_error': 'Kunne ikke laste minne',
    'memory.saving': 'Lagrer...',
    'memory.validation_error': 'Nøkkel og innhold er påkrevd.',
    'memory.store_error': 'Kunne ikke lagre minne',
    'memory.delete_error': 'Kunne ikke slette minne',
    'memory.delete_confirm': 'Slette?',
    'memory.yes': 'Ja',
    'memory.no': 'Nei',
    'memory.cancel': 'Avbryt',

    // Config

    // Cost
    'cost.title': 'Kostnadssporing',
    'cost.session': 'Sesjonskostnad',
    'cost.daily': 'Daglig kostnad',
    'cost.monthly': 'Månedlig kostnad',
    'cost.total_tokens': 'Totale Token',
    'cost.request_count': 'Forespørsler',
    'cost.by_model': 'Kostnad per modell',
    'cost.model': 'Modell',
    'cost.tokens': 'Token',
    'cost.requests': 'Forespørsler',
    'cost.usd': 'Kostnad (USD)',
    'cost.load_error': 'Kunne ikke laste kostnadsdata',
    'cost.session_cost': 'Sesjonskostnad',
    'cost.daily_cost': 'Daglig kostnad',
    'cost.monthly_cost': 'Månedlig kostnad',
    'cost.total_requests': 'Totale forespørsler',
    'cost.token_statistics': 'Token-statistikk',
    'cost.avg_tokens_per_request': 'Gj.snitt Token per forespørsel',
    'cost.cost_per_1k_tokens': 'Kostnad per 1K Token',
    'cost.model_breakdown': 'Modellfordeling',
    'cost.no_model_data': 'Ingen modelldata tilgjengelig.',
    'cost.cost': 'Kostnad',
    'cost.share': 'Del',

    // Logs
    'logs.title': 'Sanntidslogger',
    'logs.live_logs': 'Sanntidslogger',
    'logs.clear': 'Tøm',
    'logs.pause': 'Pause',
    'logs.resume': 'Fortsett',
    'logs.filter': 'Filtrer logger...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'Ingen loggoppføringer.',
    'logs.connected': 'Tilkoblet',
    'logs.disconnected': 'Frakoblet',
    'logs.events': 'hendelser',
    'logs.jump_to_bottom': 'Hopp til bunnen',
    'logs.paused_hint': 'Loggstrømming er pauset.',
    'logs.waiting_hint': 'Venter på hendelser...',

    // Doctor
    'doctor.title': 'Systemdiagnostikk',
    'doctor.diagnostics_title': 'Diagnostikk',
    'doctor.run': 'Kjør diagnostikk',
    'doctor.run_diagnostics': 'Kjør diagnostikk',
    'doctor.running': 'Kjører diagnostikk...',
    'doctor.running_btn': 'Kjører...',
    'doctor.running_desc': 'Kjører diagnostikk...',
    'doctor.running_hint': 'Dette kan ta noen sekunder.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Advarsel',
    'doctor.error': 'Feil',
    'doctor.severity': 'Alvorlighetsgrad',
    'doctor.category': 'Kategori',
    'doctor.message': 'Melding',
    'doctor.empty': 'Ingen diagnostikk er kjørt ennå.',
    'doctor.summary': 'Diagnostikksammendrag',
    'doctor.issues_found': 'Problemer funnet',
    'doctor.warnings_summary': 'Advarsler',
    'doctor.all_clear': 'Alt i orden',
    'doctor.system_diagnostics': 'Systemdiagnostikk',
    'doctor.empty_hint': 'Klikk "Kjør diagnostikk" for å sjekke KylinBot-installasjonen din.',

    // Auth / Pairing
    'auth.pair': 'Par enhet',
    'auth.pairing_code': 'Paringskode',
    'auth.pair_button': 'Par',
    'auth.logout': 'Logg ut',
    'auth.pairing_success': 'Paring vellykket!',
    'auth.pairing_failed': 'Paring mislyktes. Vennligst prøv igjen.',
    'auth.enter_code': 'Skriv inn paringskoden for å koble til agenten.',

    // Common
    'common.loading': 'Laster...',
    'common.error': 'Det oppstod en feil.',
    'common.retry': 'Prøv igjen',
    'common.cancel': 'Avbryt',
    'common.confirm': 'Bekreft',
    'common.save': 'Lagre',
    'common.delete': 'Slett',
    'common.edit': 'Rediger',
    'common.close': 'Lukk',
    'common.yes': 'Ja',
    'common.no': 'Nei',
    'common.search': 'Søk...',
    'common.no_data': 'Ingen data tilgjengelig.',
    'common.refresh': 'Oppdater',
    'common.back': 'Tilbake',
    'common.actions': 'Handlinger',
    'common.name': 'Navn',
    'common.description': 'Beskrivelse',
    'common.status': 'Status',
    'common.created': 'Opprettet',
    'common.updated': 'Oppdatert',

    // Health
    'health.title': 'Systemhelse',
    'health.component': 'Komponent',
    'health.status': 'Status',
    'health.last_ok': 'Siste OK',
    'health.last_error': 'Siste feil',
    'health.restart_count': 'Omstarter',
    'health.pid': 'Prosess-ID',
    'health.uptime': 'Oppetid',
    'health.updated_at': 'Sist oppdatert',

    // Dashboard
    'dashboard.provider_model': 'Leverandør / Modell',
    'dashboard.since_last_restart': 'Siden siste omstart',
    'dashboard.paired_yes': 'Ja',
    'dashboard.paired_no': 'Nei',
    'dashboard.cost_overview': 'Kostnadsoversikt',
    'dashboard.active_channels': 'Aktive kanaler',
    'dashboard.filter_active': 'Aktive',
    'dashboard.filter_all': 'Alle',
    'dashboard.no_active_channels': 'Ingen aktive kanaler',
    'dashboard.component_health': 'Komponenthelse',
    'dashboard.load_error': 'Kunne ikke laste dashbordet',
    'dashboard.session_label': 'Sesjon',
    'dashboard.daily_label': 'Daglig',
    'dashboard.monthly_label': 'Månedlig',
    'dashboard.total_tokens_label': 'Totale Token',
    'dashboard.requests_label': 'Forespørsler',
    'dashboard.no_channels': 'Ingen kanaler konfigurert',
    'dashboard.active': 'Aktiv',
    'dashboard.inactive': 'Inaktiv',
    'dashboard.no_components': 'Ingen komponenter rapporterer',
    'dashboard.restarts': 'Omstarter',
    'dashboard.tab_overview': 'Oversikt',
    'dashboard.tab_sessions': 'Sesjoner',
    'dashboard.tab_channels': 'Kanaler',
    'dashboard.sessions_title': 'Aktive sesjoner',
    'dashboard.no_sessions': 'Ingen aktive sesjoner',
    'dashboard.session_id': 'Sesjons-ID',
    'dashboard.session_started': 'Startet',
    'dashboard.session_last_activity': 'Siste aktivitet',
    'dashboard.session_messages': 'Meldinger',
    'dashboard.session_details': 'Sesjonsdetaljer',
    'dashboard.session_history': 'Vis historikk',
    'dashboard.channels_title': 'Kanalstatus',
    'dashboard.no_channels_detail': 'Ingen kanaldetaljer tilgjengelig',
    'dashboard.channel_type': 'Type',
    'dashboard.channel_messages': 'Meldinger',
    'dashboard.channel_last_message': 'Siste melding',
    'dashboard.channel_config': 'Konfigurasjon',
    'dashboard.channel_enabled': 'Aktivert',
    'dashboard.channel_disabled': 'Deaktivert',
    'dashboard.loading_sessions': 'Laster sesjoner...',
    'dashboard.loading_channels': 'Laster kanaler...',
    'dashboard.load_sessions_error': 'Kunne ikke laste sesjoner',
    'dashboard.load_channels_error': 'Kunne ikke laste kanaler',
    'dashboard.never': 'Aldri',

    // Settings
    'settings.title': 'Innstillinger',
    'settings.tab.appearance': 'Utseende',
    'settings.tab.typography': 'Typografi',
    'settings.appearance': 'Utseende',
    'settings.typography': 'Typografi',
    'settings.fontUi': 'UI-skrifttype',
    'settings.fontMono': 'Kodeskrifttype',
    'settings.fontSize': 'UI-skriftstørrelse',
    'settings.fontMonoSize': 'Kodeskriftstørrelse',
    'settings.preview': 'Forhåndsvisning',
    'settings.previewText': 'Den raske brune reven hopper over den late hunden.',
    'settings.fontNote': 'Skrifttypeendringer trer i kraft ved sideinnlasting.',
    'settings.language': 'Språk',

    // Theme
    'theme.mode': 'Temamodus',
    'theme.accent': 'Aksentfarge',
    'theme.system': 'System',
    'theme.dark': 'Mørk',
    'theme.light': 'Lys',
    'theme.oled': 'OLED Svart',
  },

  nl: {
    // Navigation
    'nav.dashboard': 'Dashboard',
    'nav.agent': 'Agent',
    'nav.tools': 'Gereedschappen',
    'nav.cron': 'Geplande taken',
    'nav.integrations': 'Integraties',
    'nav.memory': 'Geheugen',
    'nav.config': 'Config',
    'nav.cost': 'Kostentracker',
    'nav.logs': 'Logboeken',
    'nav.doctor': 'Diagnose',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Dashboard',
    'dashboard.provider': 'Provider',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Uptime',
    'dashboard.temperature': 'Temperatuur',
    'dashboard.gateway_port': 'Gatewaypoort',
    'dashboard.memory_backend': 'Geheugenbackend',
    'dashboard.paired': 'Gekoppeld',
    'dashboard.channels': 'Kanalen',
    'dashboard.health': 'Gezondheid',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Overzicht',
    'dashboard.system_info': 'Systeeminformatie',
    'dashboard.quick_actions': 'Snelle acties',

    // Agent / Chat
    'agent.title': 'Agentchat',
    'agent.send': 'Verzenden',
    'agent.placeholder': 'Typ een bericht...',
    'agent.start_conversation': 'Stuur een bericht om het gesprek te starten',
    'agent.type_message': 'Typ een bericht...',
    'agent.connecting': 'Verbinden...',
    'agent.connected': 'Verbonden',
    'agent.disconnected': 'Niet verbonden',
    'agent.reconnecting': 'Opnieuw verbinden...',
    'agent.thinking': 'Nadenken...',
    'agent.tool_call': 'Gereedschapsaanroep',
    'agent.tool_result': 'Gereedschapsresultaat',
    'agent.connection_error': 'Verbindingsfout. Probeert opnieuw te verbinden...',
    'agent.tool_call_prefix': '[Gereedschapsaanroep]',
    'agent.tool_result_prefix': '[Gereedschapsresultaat]',
    'agent.error_prefix': '[Fout]',
    'agent.unknown_error': 'Onbekende fout',
    'agent.send_error': 'Bericht verzenden mislukt. Probeer het opnieuw.',
    'agent.copy_message': 'Bericht kopiëren',
    'agent.connected_status': 'Verbonden',
    'agent.disconnected_status': 'Niet verbonden',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Beschikbare gereedschappen',
    'tools.name': 'Naam',
    'tools.description': 'Beschrijving',
    'tools.parameters': 'Parameters',
    'tools.search': 'Gereedschappen zoeken...',
    'tools.empty': 'Geen gereedschappen beschikbaar.',
    'tools.count': 'Totaal gereedschappen',
    'tools.agent_tools': 'Agentgereedschappen',
    'tools.cli_tools': 'CLI-gereedschappen',
    'tools.parameter_schema': 'Parameterschema',
    'tools.path': 'Pad',
    'tools.version': 'Versie',
    'tools.category': 'Categorie',
    'tools.load_error': 'Kan gereedschappen niet laden',

    // Cron
    'cron.title': 'Geplande taken',
    'cron.scheduled_tasks': 'Geplande taken',
    'cron.add': 'Taak toevoegen',
    'cron.add_job': 'Taak toevoegen',
    'cron.add_modal_title': 'Cron-taak toevoegen',
    'cron.delete': 'Verwijderen',
    'cron.enable': 'Inschakelen',
    'cron.disable': 'Uitschakelen',
    'cron.name': 'Naam',
    'cron.name_optional': 'Naam (optioneel)',
    'cron.command': 'Opdracht',
    'cron.command_required': 'Opdracht',
    'cron.schedule': 'Planning',
    'cron.schedule_required': 'Planning',
    'cron.next_run': 'Volgende uitvoering',
    'cron.last_run': 'Laatste uitvoering',
    'cron.last_status': 'Laatste status',
    'cron.enabled': 'Ingeschakeld',
    'cron.enabled_status': 'Ingeschakeld',
    'cron.disabled_status': 'Uitgeschakeld',
    'cron.empty': 'Geen geplande taken.',
    'cron.confirm_delete': 'Weet u zeker dat u deze taak wilt verwijderen?',
    'cron.load_error': 'Kan Cron-taken niet laden',
    'cron.validation_error': 'Planning en opdracht zijn verplicht.',
    'cron.add_error': 'Kan taak niet toevoegen',
    'cron.delete_error': 'Kan taak niet verwijderen',
    'cron.cancel': 'Annuleren',
    'cron.adding': 'Toevoegen...',
    'cron.id': 'ID',
    'cron.actions': 'Acties',
    'cron.loading_run_history': 'Uitvoeringsgeschiedenis laden...',
    'cron.load_run_history_error': 'Kan uitvoeringsgeschiedenis niet laden',
    'cron.no_runs': 'Nog geen uitvoeringen geregistreerd.',
    'cron.recent_runs': 'Recente uitvoeringen',
    'cron.yes': 'Ja',
    'cron.no': 'Nee',
    'cron.edit': 'Bewerken',
    'cron.edit_modal_title': 'Cron-taak bewerken',
    'cron.edit_error': 'Kan taak niet bijwerken',
    'cron.saving': 'Opslaan...',
    'cron.save': 'Opslaan',

    // Integrations
    'integrations.title': 'Integraties',
    'integrations.available': 'Beschikbaar',
    'integrations.active': 'Actief',
    'integrations.category': 'Categorie',
    'integrations.status': 'Status',
    'integrations.search': 'Integraties zoeken...',
    'integrations.empty': 'Geen integraties gevonden.',
    'integrations.activate': 'Activeren',
    'integrations.deactivate': 'Deactiveren',
    'integrations.load_error': 'Kan integraties niet laden',
    'integrations.status_active': 'Actief',
    'integrations.status_available': 'Beschikbaar',

    // Memory
    'memory.title': 'Geheugenopslag',
    'memory.memory_title': 'Geheugen',
    'memory.search': 'Geheugen doorzoeken...',
    'memory.search_placeholder': 'Geheugenitems doorzoeken...',
    'memory.add': 'Geheugen opslaan',
    'memory.add_memory': 'Geheugen toevoegen',
    'memory.add_modal_title': 'Geheugen toevoegen',
    'memory.delete': 'Verwijderen',
    'memory.key': 'Sleutel',
    'memory.key_required': 'Sleutel',
    'memory.content': 'Inhoud',
    'memory.content_required': 'Inhoud',
    'memory.category': 'Categorie',
    'memory.category_optional': 'Categorie (optioneel)',
    'memory.timestamp': 'Tijdstempel',
    'memory.session': 'Sessie',
    'memory.score': 'Score',
    'memory.empty': 'Geen geheugenitems gevonden.',
    'memory.confirm_delete': 'Weet u zeker dat u dit geheugenitem wilt verwijderen?',
    'memory.all_categories': 'Alle categorieën',
    'memory.search_button': 'Zoeken',
    'memory.load_error': 'Kan geheugen niet laden',
    'memory.saving': 'Opslaan...',
    'memory.validation_error': 'Sleutel en inhoud zijn verplicht.',
    'memory.store_error': 'Kan geheugen niet opslaan',
    'memory.delete_error': 'Kan geheugen niet verwijderen',
    'memory.delete_confirm': 'Verwijderen?',
    'memory.yes': 'Ja',
    'memory.no': 'Nee',
    'memory.cancel': 'Annuleren',

    // Config

    // Cost
    'cost.title': 'Kostentracker',
    'cost.session': 'Sessiekosten',
    'cost.daily': 'Dagelijkse kosten',
    'cost.monthly': 'Maandelijkse kosten',
    'cost.total_tokens': 'Totale Token',
    'cost.request_count': 'Verzoeken',
    'cost.by_model': 'Kosten per model',
    'cost.model': 'Model',
    'cost.tokens': 'Token',
    'cost.requests': 'Verzoeken',
    'cost.usd': 'Kosten (USD)',
    'cost.load_error': 'Kan kostengegevens niet laden',
    'cost.session_cost': 'Sessiekosten',
    'cost.daily_cost': 'Dagelijkse kosten',
    'cost.monthly_cost': 'Maandelijkse kosten',
    'cost.total_requests': 'Totale verzoeken',
    'cost.token_statistics': 'Token-statistieken',
    'cost.avg_tokens_per_request': 'Gem. Token per verzoek',
    'cost.cost_per_1k_tokens': 'Kosten per 1K Token',
    'cost.model_breakdown': 'Modeloverzicht',
    'cost.no_model_data': 'Geen modelgegevens beschikbaar.',
    'cost.cost': 'Kosten',
    'cost.share': 'Delen',

    // Logs
    'logs.title': 'Live logboeken',
    'logs.live_logs': 'Live logboeken',
    'logs.clear': 'Wissen',
    'logs.pause': 'Pauzeren',
    'logs.resume': 'Hervatten',
    'logs.filter': 'Logboeken filteren...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'Geen logboekitems.',
    'logs.connected': 'Verbonden',
    'logs.disconnected': 'Niet verbonden',
    'logs.events': 'gebeurtenissen',
    'logs.jump_to_bottom': 'Naar beneden springen',
    'logs.paused_hint': 'Logstreaming is gepauzeerd.',
    'logs.waiting_hint': 'Wachten op gebeurtenissen...',

    // Doctor
    'doctor.title': 'Systeemdiagnostiek',
    'doctor.diagnostics_title': 'Diagnostiek',
    'doctor.run': 'Diagnostiek uitvoeren',
    'doctor.run_diagnostics': 'Diagnostiek uitvoeren',
    'doctor.running': 'Diagnostiek uitvoeren...',
    'doctor.running_btn': 'Uitvoeren...',
    'doctor.running_desc': 'Diagnostiek uitvoeren...',
    'doctor.running_hint': 'Dit kan enkele seconden duren.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Waarschuwing',
    'doctor.error': 'Fout',
    'doctor.severity': 'Ernst',
    'doctor.category': 'Categorie',
    'doctor.message': 'Bericht',
    'doctor.empty': 'Er is nog geen diagnostiek uitgevoerd.',
    'doctor.summary': 'Diagnostisch overzicht',
    'doctor.issues_found': 'Problemen gevonden',
    'doctor.warnings_summary': 'Waarschuwingen',
    'doctor.all_clear': 'Alles in orde',
    'doctor.system_diagnostics': 'Systeemdiagnostiek',
    'doctor.empty_hint': 'Klik op "Diagnostiek uitvoeren" om uw KylinBot-installatie te controleren.',

    // Auth / Pairing
    'auth.pair': 'Apparaat koppelen',
    'auth.pairing_code': 'Koppelingscode',
    'auth.pair_button': 'Koppelen',
    'auth.logout': 'Uitloggen',
    'auth.pairing_success': 'Koppeling geslaagd!',
    'auth.pairing_failed': 'Koppeling mislukt. Probeer het opnieuw.',
    'auth.enter_code': 'Voer uw koppelingscode in om verbinding te maken met de agent.',

    // Common
    'common.loading': 'Laden...',
    'common.error': 'Er is een fout opgetreden.',
    'common.retry': 'Opnieuw proberen',
    'common.cancel': 'Annuleren',
    'common.confirm': 'Bevestigen',
    'common.save': 'Opslaan',
    'common.delete': 'Verwijderen',
    'common.edit': 'Bewerken',
    'common.close': 'Sluiten',
    'common.yes': 'Ja',
    'common.no': 'Nee',
    'common.search': 'Zoeken...',
    'common.no_data': 'Geen gegevens beschikbaar.',
    'common.refresh': 'Vernieuwen',
    'common.back': 'Terug',
    'common.actions': 'Acties',
    'common.name': 'Naam',
    'common.description': 'Beschrijving',
    'common.status': 'Status',
    'common.created': 'Aangemaakt',
    'common.updated': 'Bijgewerkt',

    // Health
    'health.title': 'Systeemgezondheid',
    'health.component': 'Component',
    'health.status': 'Status',
    'health.last_ok': 'Laatste OK',
    'health.last_error': 'Laatste fout',
    'health.restart_count': 'Herstarts',
    'health.pid': 'Proces-ID',
    'health.uptime': 'Uptime',
    'health.updated_at': 'Laatst bijgewerkt',

    // Dashboard
    'dashboard.provider_model': 'Provider / Model',
    'dashboard.since_last_restart': 'Sinds laatste herstart',
    'dashboard.paired_yes': 'Ja',
    'dashboard.paired_no': 'Nee',
    'dashboard.cost_overview': 'Kostenoverzicht',
    'dashboard.active_channels': 'Actieve kanalen',
    'dashboard.filter_active': 'Actief',
    'dashboard.filter_all': 'Alle',
    'dashboard.no_active_channels': 'Geen actieve kanalen',
    'dashboard.component_health': 'Componentgezondheid',
    'dashboard.load_error': 'Kan dashboard niet laden',
    'dashboard.session_label': 'Sessie',
    'dashboard.daily_label': 'Dagelijks',
    'dashboard.monthly_label': 'Maandelijks',
    'dashboard.total_tokens_label': 'Totale Token',
    'dashboard.requests_label': 'Verzoeken',
    'dashboard.no_channels': 'Geen kanalen geconfigureerd',
    'dashboard.active': 'Actief',
    'dashboard.inactive': 'Inactief',
    'dashboard.no_components': 'Geen componenten rapporteren',
    'dashboard.restarts': 'Herstarts',
    'dashboard.tab_overview': 'Overzicht',
    'dashboard.tab_sessions': 'Sessies',
    'dashboard.tab_channels': 'Kanalen',
    'dashboard.sessions_title': 'Actieve sessies',
    'dashboard.no_sessions': 'Geen actieve sessies',
    'dashboard.session_id': 'Sessie-ID',
    'dashboard.session_started': 'Gestart',
    'dashboard.session_last_activity': 'Laatste activiteit',
    'dashboard.session_messages': 'Berichten',
    'dashboard.session_details': 'Sessiedetails',
    'dashboard.session_history': 'Geschiedenis bekijken',
    'dashboard.channels_title': 'Kanaalstatus',
    'dashboard.no_channels_detail': 'Geen kanaaldetails beschikbaar',
    'dashboard.channel_type': 'Type',
    'dashboard.channel_messages': 'Berichten',
    'dashboard.channel_last_message': 'Laatste bericht',
    'dashboard.channel_config': 'Configuratie',
    'dashboard.channel_enabled': 'Ingeschakeld',
    'dashboard.channel_disabled': 'Uitgeschakeld',
    'dashboard.loading_sessions': 'Sessies laden...',
    'dashboard.loading_channels': 'Kanalen laden...',
    'dashboard.load_sessions_error': 'Kan sessies niet laden',
    'dashboard.load_channels_error': 'Kan kanalen niet laden',
    'dashboard.never': 'Nooit',

    // Settings
    'settings.title': 'Instellingen',
    'settings.tab.appearance': 'Uiterlijk',
    'settings.tab.typography': 'Typografie',
    'settings.appearance': 'Uiterlijk',
    'settings.typography': 'Typografie',
    'settings.fontUi': 'UI-lettertype',
    'settings.fontMono': 'Codelettertype',
    'settings.fontSize': 'UI-lettergrootte',
    'settings.fontMonoSize': 'Codelettergrootte',
    'settings.preview': 'Voorbeeld',
    'settings.previewText': 'De snelle bruine vos springt over de luie hond.',
    'settings.fontNote': 'Lettertypewijzigingen worden toegepast bij het herladen van de pagina.',
    'settings.language': 'Taal',

    // Theme
    'theme.mode': 'Themamodus',
    'theme.accent': 'Accentkleur',
    'theme.system': 'Systeem',
    'theme.dark': 'Donker',
    'theme.light': 'Licht',
    'theme.oled': 'OLED Zwart',
  },

  pl: {
    // Navigation
    'nav.dashboard': 'Panel',
    'nav.agent': 'Agent',
    'nav.tools': 'Narzędzia',
    'nav.cron': 'Zaplanowane zadania',
    'nav.integrations': 'Integracje',
    'nav.memory': 'Pamięć',
    'nav.config': 'Config',
    'nav.cost': 'Śledzenie kosztów',
    'nav.logs': 'Logi',
    'nav.doctor': 'Diagnostyka',
    'nav.canvas': 'Płótno',

    // Dashboard
    'dashboard.title': 'Panel',
    'dashboard.provider': 'Dostawca',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Czas działania',
    'dashboard.temperature': 'Temperatura',
    'dashboard.gateway_port': 'Port bramy',
    'dashboard.memory_backend': 'Backend pamięci',
    'dashboard.paired': 'Sparowany',
    'dashboard.channels': 'Kanały',
    'dashboard.health': 'Kondycja',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Przegląd',
    'dashboard.system_info': 'Informacje o systemie',
    'dashboard.quick_actions': 'Szybkie akcje',

    // Agent / Chat
    'agent.title': 'Czat z agentem',
    'agent.send': 'Wyślij',
    'agent.placeholder': 'Wpisz wiadomość...',
    'agent.start_conversation': 'Wyślij wiadomość, aby rozpocząć rozmowę',
    'agent.type_message': 'Wpisz wiadomość...',
    'agent.connecting': 'Łączenie...',
    'agent.connected': 'Połączono',
    'agent.disconnected': 'Rozłączono',
    'agent.reconnecting': 'Ponowne łączenie...',
    'agent.thinking': 'Myślenie...',
    'agent.tool_call': 'Wywołanie narzędzia',
    'agent.tool_result': 'Wynik narzędzia',
    'agent.connection_error': 'Błąd połączenia. Próba ponownego połączenia...',
    'agent.tool_call_prefix': '[Wywołanie narzędzia]',
    'agent.tool_result_prefix': '[Wynik narzędzia]',
    'agent.error_prefix': '[Błąd]',
    'agent.unknown_error': 'Nieznany błąd',
    'agent.send_error': 'Nie udało się wysłać wiadomości. Spróbuj ponownie.',
    'agent.copy_message': 'Kopiuj wiadomość',
    'agent.connected_status': 'Połączono',
    'agent.disconnected_status': 'Rozłączono',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Dostępne narzędzia',
    'tools.name': 'Nazwa',
    'tools.description': 'Opis',
    'tools.parameters': 'Parametry',
    'tools.search': 'Szukaj narzędzi...',
    'tools.empty': 'Brak dostępnych narzędzi.',
    'tools.count': 'Łączna liczba narzędzi',
    'tools.agent_tools': 'Narzędzia agenta',
    'tools.cli_tools': 'Narzędzia CLI',
    'tools.parameter_schema': 'Schemat parametrów',
    'tools.path': 'Ścieżka',
    'tools.version': 'Wersja',
    'tools.category': 'Kategoria',
    'tools.load_error': 'Nie udało się załadować narzędzi',

    // Cron
    'cron.title': 'Zaplanowane zadania',
    'cron.scheduled_tasks': 'Zaplanowane zadania',
    'cron.add': 'Dodaj zadanie',
    'cron.add_job': 'Dodaj zadanie',
    'cron.add_modal_title': 'Dodaj zadanie Cron',
    'cron.delete': 'Usuń',
    'cron.enable': 'Włącz',
    'cron.disable': 'Wyłącz',
    'cron.name': 'Nazwa',
    'cron.name_optional': 'Nazwa (opcjonalnie)',
    'cron.command': 'Polecenie',
    'cron.command_required': 'Polecenie',
    'cron.schedule': 'Harmonogram',
    'cron.schedule_required': 'Harmonogram',
    'cron.next_run': 'Następne uruchomienie',
    'cron.last_run': 'Ostatnie uruchomienie',
    'cron.last_status': 'Ostatni status',
    'cron.enabled': 'Włączone',
    'cron.enabled_status': 'Włączone',
    'cron.disabled_status': 'Wyłączone',
    'cron.empty': 'Brak zaplanowanych zadań.',
    'cron.confirm_delete': 'Czy na pewno chcesz usunąć to zadanie?',
    'cron.load_error': 'Nie udało się załadować zadań Cron',
    'cron.validation_error': 'Harmonogram i polecenie są wymagane.',
    'cron.add_error': 'Nie udało się dodać zadania',
    'cron.delete_error': 'Nie udało się usunąć zadania',
    'cron.cancel': 'Anuluj',
    'cron.adding': 'Dodawanie...',
    'cron.id': 'ID',
    'cron.actions': 'Akcje',
    'cron.loading_run_history': 'Ładowanie historii uruchomień...',
    'cron.load_run_history_error': 'Nie udało się załadować historii uruchomień',
    'cron.no_runs': 'Brak zarejestrowanych uruchomień.',
    'cron.recent_runs': 'Ostatnie uruchomienia',
    'cron.yes': 'Tak',
    'cron.no': 'Nie',
    'cron.edit': 'Edytuj',
    'cron.edit_modal_title': 'Edytuj zadanie Cron',
    'cron.edit_error': 'Nie udało się zaktualizować zadania',
    'cron.saving': 'Zapisywanie...',
    'cron.save': 'Zapisz',

    // Integrations
    'integrations.title': 'Integracje',
    'integrations.available': 'Dostępne',
    'integrations.active': 'Aktywne',
    'integrations.category': 'Kategoria',
    'integrations.status': 'Status',
    'integrations.search': 'Szukaj integracji...',
    'integrations.empty': 'Nie znaleziono integracji.',
    'integrations.activate': 'Aktywuj',
    'integrations.deactivate': 'Dezaktywuj',
    'integrations.load_error': 'Nie udało się załadować integracji',
    'integrations.status_active': 'Aktywna',
    'integrations.status_available': 'Dostępna',

    // Memory
    'memory.title': 'Magazyn pamięci',
    'memory.memory_title': 'Pamięć',
    'memory.search': 'Szukaj w pamięci...',
    'memory.search_placeholder': 'Szukaj wpisów pamięci...',
    'memory.add': 'Zapisz pamięć',
    'memory.add_memory': 'Dodaj pamięć',
    'memory.add_modal_title': 'Dodaj pamięć',
    'memory.delete': 'Usuń',
    'memory.key': 'Klucz',
    'memory.key_required': 'Klucz',
    'memory.content': 'Treść',
    'memory.content_required': 'Treść',
    'memory.category': 'Kategoria',
    'memory.category_optional': 'Kategoria (opcjonalnie)',
    'memory.timestamp': 'Znacznik czasu',
    'memory.session': 'Sesja',
    'memory.score': 'Wynik',
    'memory.empty': 'Nie znaleziono wpisów pamięci.',
    'memory.confirm_delete': 'Czy na pewno chcesz usunąć ten wpis pamięci?',
    'memory.all_categories': 'Wszystkie kategorie',
    'memory.search_button': 'Szukaj',
    'memory.load_error': 'Nie udało się załadować pamięci',
    'memory.saving': 'Zapisywanie...',
    'memory.validation_error': 'Klucz i treść są wymagane.',
    'memory.store_error': 'Nie udało się zapisać pamięci',
    'memory.delete_error': 'Nie udało się usunąć pamięci',
    'memory.delete_confirm': 'Usunąć?',
    'memory.yes': 'Tak',
    'memory.no': 'Nie',
    'memory.cancel': 'Anuluj',

    // Config

    // Cost
    'cost.title': 'Śledzenie kosztów',
    'cost.session': 'Koszt sesji',
    'cost.daily': 'Koszt dzienny',
    'cost.monthly': 'Koszt miesięczny',
    'cost.total_tokens': 'Łączna liczba Token',
    'cost.request_count': 'Żądania',
    'cost.by_model': 'Koszt według modelu',
    'cost.model': 'Model',
    'cost.tokens': 'Token',
    'cost.requests': 'Żądania',
    'cost.usd': 'Koszt (USD)',
    'cost.load_error': 'Nie udało się załadować danych kosztów',
    'cost.session_cost': 'Koszt sesji',
    'cost.daily_cost': 'Koszt dzienny',
    'cost.monthly_cost': 'Koszt miesięczny',
    'cost.total_requests': 'Łączna liczba żądań',
    'cost.token_statistics': 'Statystyki Token',
    'cost.avg_tokens_per_request': 'Śr. Token na żądanie',
    'cost.cost_per_1k_tokens': 'Koszt za 1K Token',
    'cost.model_breakdown': 'Podział według modeli',
    'cost.no_model_data': 'Brak danych modelu.',
    'cost.cost': 'Koszt',
    'cost.share': 'Udostępnij',

    // Logs
    'logs.title': 'Logi na żywo',
    'logs.live_logs': 'Logi na żywo',
    'logs.clear': 'Wyczyść',
    'logs.pause': 'Wstrzymaj',
    'logs.resume': 'Wznów',
    'logs.filter': 'Filtruj logi...',
    'logs.filter_label': 'Filtr',
    'logs.empty': 'Brak wpisów w logu.',
    'logs.connected': 'Połączono',
    'logs.disconnected': 'Rozłączono',
    'logs.events': 'zdarzenia',
    'logs.jump_to_bottom': 'Przejdź na dół',
    'logs.paused_hint': 'Strumieniowanie logów jest wstrzymane.',
    'logs.waiting_hint': 'Oczekiwanie na zdarzenia...',

    // Doctor
    'doctor.title': 'Diagnostyka systemu',
    'doctor.diagnostics_title': 'Diagnostyka',
    'doctor.run': 'Uruchom diagnostykę',
    'doctor.run_diagnostics': 'Uruchom diagnostykę',
    'doctor.running': 'Uruchamianie diagnostyki...',
    'doctor.running_btn': 'Uruchamianie...',
    'doctor.running_desc': 'Uruchamianie diagnostyki...',
    'doctor.running_hint': 'To może potrwać kilka sekund.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Ostrzeżenie',
    'doctor.error': 'Błąd',
    'doctor.severity': 'Ważność',
    'doctor.category': 'Kategoria',
    'doctor.message': 'Wiadomość',
    'doctor.empty': 'Diagnostyka nie została jeszcze uruchomiona.',
    'doctor.summary': 'Podsumowanie diagnostyki',
    'doctor.issues_found': 'Znalezione problemy',
    'doctor.warnings_summary': 'Ostrzeżenia',
    'doctor.all_clear': 'Wszystko w porządku',
    'doctor.system_diagnostics': 'Diagnostyka systemu',
    'doctor.empty_hint': 'Kliknij "Uruchom diagnostykę", aby sprawdzić instalację KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Sparuj urządzenie',
    'auth.pairing_code': 'Kod parowania',
    'auth.pair_button': 'Sparuj',
    'auth.logout': 'Wyloguj',
    'auth.pairing_success': 'Parowanie zakończone sukcesem!',
    'auth.pairing_failed': 'Parowanie nie powiodło się. Spróbuj ponownie.',
    'auth.enter_code': 'Wprowadź kod parowania, aby połączyć się z agentem.',

    // Common
    'common.loading': 'Ładowanie...',
    'common.error': 'Wystąpił błąd.',
    'common.retry': 'Ponów',
    'common.cancel': 'Anuluj',
    'common.confirm': 'Potwierdź',
    'common.save': 'Zapisz',
    'common.delete': 'Usuń',
    'common.edit': 'Edytuj',
    'common.close': 'Zamknij',
    'common.yes': 'Tak',
    'common.no': 'Nie',
    'common.search': 'Szukaj...',
    'common.no_data': 'Brak dostępnych danych.',
    'common.refresh': 'Odśwież',
    'common.back': 'Wstecz',
    'common.actions': 'Akcje',
    'common.name': 'Nazwa',
    'common.description': 'Opis',
    'common.status': 'Status',
    'common.created': 'Utworzono',
    'common.updated': 'Zaktualizowano',

    // Health
    'health.title': 'Kondycja systemu',
    'health.component': 'Komponent',
    'health.status': 'Status',
    'health.last_ok': 'Ostatnie OK',
    'health.last_error': 'Ostatni błąd',
    'health.restart_count': 'Restarty',
    'health.pid': 'ID procesu',
    'health.uptime': 'Czas działania',
    'health.updated_at': 'Ostatnia aktualizacja',

    // Dashboard
    'dashboard.provider_model': 'Dostawca / Model',
    'dashboard.since_last_restart': 'Od ostatniego restartu',
    'dashboard.paired_yes': 'Tak',
    'dashboard.paired_no': 'Nie',
    'dashboard.cost_overview': 'Przegląd kosztów',
    'dashboard.active_channels': 'Aktywne kanały',
    'dashboard.filter_active': 'Aktywne',
    'dashboard.filter_all': 'Wszystkie',
    'dashboard.no_active_channels': 'Brak aktywnych kanałów',
    'dashboard.component_health': 'Kondycja komponentów',
    'dashboard.load_error': 'Nie udało się załadować panelu',
    'dashboard.session_label': 'Sesja',
    'dashboard.daily_label': 'Dzienny',
    'dashboard.monthly_label': 'Miesięczny',
    'dashboard.total_tokens_label': 'Łączna liczba Token',
    'dashboard.requests_label': 'Żądania',
    'dashboard.no_channels': 'Nie skonfigurowano kanałów',
    'dashboard.active': 'Aktywny',
    'dashboard.inactive': 'Nieaktywny',
    'dashboard.no_components': 'Brak raportujących komponentów',
    'dashboard.restarts': 'Restarty',
    'dashboard.tab_overview': 'Przegląd',
    'dashboard.tab_sessions': 'Sesje',
    'dashboard.tab_channels': 'Kanały',
    'dashboard.sessions_title': 'Aktywne sesje',
    'dashboard.no_sessions': 'Brak aktywnych sesji',
    'dashboard.session_id': 'ID sesji',
    'dashboard.session_started': 'Rozpoczęto',
    'dashboard.session_last_activity': 'Ostatnia aktywność',
    'dashboard.session_messages': 'Wiadomości',
    'dashboard.session_details': 'Szczegóły sesji',
    'dashboard.session_history': 'Zobacz historię',
    'dashboard.channels_title': 'Status kanałów',
    'dashboard.no_channels_detail': 'Brak szczegółów kanału',
    'dashboard.channel_type': 'Typ',
    'dashboard.channel_messages': 'Wiadomości',
    'dashboard.channel_last_message': 'Ostatnia wiadomość',
    'dashboard.channel_config': 'Konfiguracja',
    'dashboard.channel_enabled': 'Włączony',
    'dashboard.channel_disabled': 'Wyłączony',
    'dashboard.loading_sessions': 'Ładowanie sesji...',
    'dashboard.loading_channels': 'Ładowanie kanałów...',
    'dashboard.load_sessions_error': 'Nie udało się załadować sesji',
    'dashboard.load_channels_error': 'Nie udało się załadować kanałów',
    'dashboard.never': 'Nigdy',

    // Settings
    'settings.title': 'Ustawienia',
    'settings.tab.appearance': 'Wygląd',
    'settings.tab.typography': 'Typografia',
    'settings.appearance': 'Wygląd',
    'settings.typography': 'Typografia',
    'settings.fontUi': 'Czcionka UI',
    'settings.fontMono': 'Czcionka kodu',
    'settings.fontSize': 'Rozmiar czcionki UI',
    'settings.fontMonoSize': 'Rozmiar czcionki kodu',
    'settings.preview': 'Podgląd',
    'settings.previewText': 'Pchnąć w tę łódź jeża lub ośm skrzyń fig.',
    'settings.fontNote': 'Zmiany czcionki zostaną zastosowane po przeładowaniu strony.',
    'settings.language': 'Język',

    // Theme
    'theme.mode': 'Tryb motywu',
    'theme.accent': 'Kolor akcentu',
    'theme.system': 'Systemowy',
    'theme.dark': 'Ciemny',
    'theme.light': 'Jasny',
    'theme.oled': 'OLED Czarny',
  },

  pt: {
    // Navigation
    'nav.dashboard': 'Painel',
    'nav.agent': 'Agente',
    'nav.tools': 'Ferramentas',
    'nav.cron': 'Tarefas Agendadas',
    'nav.integrations': 'Integrações',
    'nav.memory': 'Memória',
    'nav.config': 'Config',
    'nav.cost': 'Rastreador de Custos',
    'nav.logs': 'Logs',
    'nav.doctor': 'Diagnóstico',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Painel',
    'dashboard.provider': 'Provedor',
    'dashboard.model': 'Modelo',
    'dashboard.uptime': 'Tempo de atividade',
    'dashboard.temperature': 'Temperatura',
    'dashboard.gateway_port': 'Porta do Gateway',
    'dashboard.memory_backend': 'Backend de Memória',
    'dashboard.paired': 'Pareado',
    'dashboard.channels': 'Canais',
    'dashboard.health': 'Saúde',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Visão geral',
    'dashboard.system_info': 'Informações do Sistema',
    'dashboard.quick_actions': 'Ações Rápidas',

    // Agent / Chat
    'agent.title': 'Chat do Agente',
    'agent.send': 'Enviar',
    'agent.placeholder': 'Digite uma mensagem...',
    'agent.start_conversation': 'Envie uma mensagem para iniciar a conversa',
    'agent.type_message': 'Digite uma mensagem...',
    'agent.connecting': 'Conectando...',
    'agent.connected': 'Conectado',
    'agent.disconnected': 'Desconectado',
    'agent.reconnecting': 'Reconectando...',
    'agent.thinking': 'Pensando...',
    'agent.tool_call': 'Chamada de Ferramenta',
    'agent.tool_result': 'Resultado da Ferramenta',
    'agent.connection_error': 'Erro de conexão. Tentando reconectar...',
    'agent.tool_call_prefix': '[Chamada de Ferramenta]',
    'agent.tool_result_prefix': '[Resultado da Ferramenta]',
    'agent.error_prefix': '[Erro]',
    'agent.unknown_error': 'Erro desconhecido',
    'agent.send_error': 'Falha ao enviar mensagem. Por favor, tente novamente.',
    'agent.copy_message': 'Copiar mensagem',
    'agent.connected_status': 'Conectado',
    'agent.disconnected_status': 'Desconectado',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Ferramentas Disponíveis',
    'tools.name': 'Nome',
    'tools.description': 'Descrição',
    'tools.parameters': 'Parâmetros',
    'tools.search': 'Pesquisar ferramentas...',
    'tools.empty': 'Nenhuma ferramenta disponível.',
    'tools.count': 'Total de ferramentas',
    'tools.agent_tools': 'Ferramentas do Agente',
    'tools.cli_tools': 'Ferramentas CLI',
    'tools.parameter_schema': 'Esquema de Parâmetros',
    'tools.path': 'Caminho',
    'tools.version': 'Versão',
    'tools.category': 'Categoria',
    'tools.load_error': 'Falha ao carregar ferramentas',

    // Cron
    'cron.title': 'Tarefas Agendadas',
    'cron.scheduled_tasks': 'Tarefas Agendadas',
    'cron.add': 'Adicionar Tarefa',
    'cron.add_job': 'Adicionar Tarefa',
    'cron.add_modal_title': 'Adicionar Tarefa Cron',
    'cron.delete': 'Excluir',
    'cron.enable': 'Ativar',
    'cron.disable': 'Desativar',
    'cron.name': 'Nome',
    'cron.name_optional': 'Nome (opcional)',
    'cron.command': 'Comando',
    'cron.command_required': 'Comando',
    'cron.schedule': 'Agendamento',
    'cron.schedule_required': 'Agendamento',
    'cron.next_run': 'Próxima Execução',
    'cron.last_run': 'Última Execução',
    'cron.last_status': 'Último Status',
    'cron.enabled': 'Ativado',
    'cron.enabled_status': 'Ativado',
    'cron.disabled_status': 'Desativado',
    'cron.empty': 'Nenhuma tarefa agendada.',
    'cron.confirm_delete': 'Tem certeza de que deseja excluir esta tarefa?',
    'cron.load_error': 'Falha ao carregar tarefas Cron',
    'cron.validation_error': 'Agendamento e comando são obrigatórios.',
    'cron.add_error': 'Falha ao adicionar tarefa',
    'cron.delete_error': 'Falha ao excluir tarefa',
    'cron.cancel': 'Cancelar',
    'cron.adding': 'Adicionando...',
    'cron.id': 'ID',
    'cron.actions': 'Ações',
    'cron.loading_run_history': 'Carregando histórico de execuções...',
    'cron.load_run_history_error': 'Falha ao carregar histórico de execuções',
    'cron.no_runs': 'Nenhuma execução registrada ainda.',
    'cron.recent_runs': 'Execuções Recentes',
    'cron.yes': 'Sim',
    'cron.no': 'Não',
    'cron.edit': 'Editar',
    'cron.edit_modal_title': 'Editar Tarefa Cron',
    'cron.edit_error': 'Falha ao atualizar tarefa',
    'cron.saving': 'Salvando...',
    'cron.save': 'Salvar',

    // Integrations
    'integrations.title': 'Integrações',
    'integrations.available': 'Disponível',
    'integrations.active': 'Ativa',
    'integrations.category': 'Categoria',
    'integrations.status': 'Status',
    'integrations.search': 'Pesquisar integrações...',
    'integrations.empty': 'Nenhuma integração encontrada.',
    'integrations.activate': 'Ativar',
    'integrations.deactivate': 'Desativar',
    'integrations.load_error': 'Falha ao carregar integrações',
    'integrations.status_active': 'Ativa',
    'integrations.status_available': 'Disponível',

    // Memory
    'memory.title': 'Armazenamento de Memória',
    'memory.memory_title': 'Memória',
    'memory.search': 'Pesquisar memória...',
    'memory.search_placeholder': 'Pesquisar entradas de memória...',
    'memory.add': 'Armazenar Memória',
    'memory.add_memory': 'Adicionar Memória',
    'memory.add_modal_title': 'Adicionar Memória',
    'memory.delete': 'Excluir',
    'memory.key': 'Chave',
    'memory.key_required': 'Chave',
    'memory.content': 'Conteúdo',
    'memory.content_required': 'Conteúdo',
    'memory.category': 'Categoria',
    'memory.category_optional': 'Categoria (opcional)',
    'memory.timestamp': 'Marca temporal',
    'memory.session': 'Sessão',
    'memory.score': 'Pontuação',
    'memory.empty': 'Nenhuma entrada de memória encontrada.',
    'memory.confirm_delete': 'Tem certeza de que deseja excluir esta entrada de memória?',
    'memory.all_categories': 'Todas as Categorias',
    'memory.search_button': 'Pesquisar',
    'memory.load_error': 'Falha ao carregar memória',
    'memory.saving': 'Salvando...',
    'memory.validation_error': 'Chave e conteúdo são obrigatórios.',
    'memory.store_error': 'Falha ao armazenar memória',
    'memory.delete_error': 'Falha ao excluir memória',
    'memory.delete_confirm': 'Excluir?',
    'memory.yes': 'Sim',
    'memory.no': 'Não',
    'memory.cancel': 'Cancelar',

    // Config

    // Cost
    'cost.title': 'Rastreador de Custos',
    'cost.session': 'Custo da Sessão',
    'cost.daily': 'Custo Diário',
    'cost.monthly': 'Custo Mensal',
    'cost.total_tokens': 'Total de Token',
    'cost.request_count': 'Requisições',
    'cost.by_model': 'Custo por Modelo',
    'cost.model': 'Modelo',
    'cost.tokens': 'Token',
    'cost.requests': 'Requisições',
    'cost.usd': 'Custo (USD)',
    'cost.load_error': 'Falha ao carregar dados de custo',
    'cost.session_cost': 'Custo da Sessão',
    'cost.daily_cost': 'Custo Diário',
    'cost.monthly_cost': 'Custo Mensal',
    'cost.total_requests': 'Total de Requisições',
    'cost.token_statistics': 'Estatísticas de Token',
    'cost.avg_tokens_per_request': 'Média de Token por Requisição',
    'cost.cost_per_1k_tokens': 'Custo por 1K Token',
    'cost.model_breakdown': 'Detalhamento por Modelo',
    'cost.no_model_data': 'Nenhum dado de modelo disponível.',
    'cost.cost': 'Custo',
    'cost.share': 'Compartilhar',

    // Logs
    'logs.title': 'Logs em Tempo Real',
    'logs.live_logs': 'Logs em Tempo Real',
    'logs.clear': 'Limpar',
    'logs.pause': 'Pausar',
    'logs.resume': 'Retomar',
    'logs.filter': 'Filtrar logs...',
    'logs.filter_label': 'Filtro',
    'logs.empty': 'Nenhuma entrada de log.',
    'logs.connected': 'Conectado',
    'logs.disconnected': 'Desconectado',
    'logs.events': 'eventos',
    'logs.jump_to_bottom': 'Ir para o final',
    'logs.paused_hint': 'A transmissão de logs está pausada.',
    'logs.waiting_hint': 'Aguardando eventos...',

    // Doctor
    'doctor.title': 'Diagnóstico do Sistema',
    'doctor.diagnostics_title': 'Diagnóstico',
    'doctor.run': 'Executar Diagnóstico',
    'doctor.run_diagnostics': 'Executar Diagnóstico',
    'doctor.running': 'Executando diagnóstico...',
    'doctor.running_btn': 'Executando...',
    'doctor.running_desc': 'Executando diagnóstico...',
    'doctor.running_hint': 'Isso pode levar alguns segundos.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Aviso',
    'doctor.error': 'Erro',
    'doctor.severity': 'Severidade',
    'doctor.category': 'Categoria',
    'doctor.message': 'Mensagem',
    'doctor.empty': 'Nenhum diagnóstico foi executado ainda.',
    'doctor.summary': 'Resumo do Diagnóstico',
    'doctor.issues_found': 'Problemas Encontrados',
    'doctor.warnings_summary': 'Avisos',
    'doctor.all_clear': 'Tudo certo',
    'doctor.system_diagnostics': 'Diagnóstico do Sistema',
    'doctor.empty_hint': 'Clique em "Executar Diagnóstico" para verificar sua instalação do KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Parear Dispositivo',
    'auth.pairing_code': 'Código de Pareamento',
    'auth.pair_button': 'Parear',
    'auth.logout': 'Sair',
    'auth.pairing_success': 'Pareamento realizado com sucesso!',
    'auth.pairing_failed': 'Falha no pareamento. Por favor, tente novamente.',
    'auth.enter_code': 'Digite seu código de pareamento para conectar ao agente.',

    // Common
    'common.loading': 'Carregando...',
    'common.error': 'Ocorreu um erro.',
    'common.retry': 'Tentar novamente',
    'common.cancel': 'Cancelar',
    'common.confirm': 'Confirmar',
    'common.save': 'Salvar',
    'common.delete': 'Excluir',
    'common.edit': 'Editar',
    'common.close': 'Fechar',
    'common.yes': 'Sim',
    'common.no': 'Não',
    'common.search': 'Pesquisar...',
    'common.no_data': 'Nenhum dado disponível.',
    'common.refresh': 'Atualizar',
    'common.back': 'Voltar',
    'common.actions': 'Ações',
    'common.name': 'Nome',
    'common.description': 'Descrição',
    'common.status': 'Status',
    'common.created': 'Criado',
    'common.updated': 'Atualizado',

    // Health
    'health.title': 'Saúde do Sistema',
    'health.component': 'Componente',
    'health.status': 'Status',
    'health.last_ok': 'Último OK',
    'health.last_error': 'Último Erro',
    'health.restart_count': 'Reinícios',
    'health.pid': 'ID do Processo',
    'health.uptime': 'Tempo de atividade',
    'health.updated_at': 'Última Atualização',

    // Dashboard
    'dashboard.provider_model': 'Provedor / Modelo',
    'dashboard.since_last_restart': 'Desde o último reinício',
    'dashboard.paired_yes': 'Sim',
    'dashboard.paired_no': 'Não',
    'dashboard.cost_overview': 'Visão Geral de Custos',
    'dashboard.active_channels': 'Canais Ativos',
    'dashboard.filter_active': 'Ativos',
    'dashboard.filter_all': 'Todos',
    'dashboard.no_active_channels': 'Nenhum canal ativo',
    'dashboard.component_health': 'Saúde dos Componentes',
    'dashboard.load_error': 'Falha ao carregar painel',
    'dashboard.session_label': 'Sessão',
    'dashboard.daily_label': 'Diário',
    'dashboard.monthly_label': 'Mensal',
    'dashboard.total_tokens_label': 'Total de Token',
    'dashboard.requests_label': 'Requisições',
    'dashboard.no_channels': 'Nenhum canal configurado',
    'dashboard.active': 'Ativo',
    'dashboard.inactive': 'Inativo',
    'dashboard.no_components': 'Nenhum componente reportando',
    'dashboard.restarts': 'Reinícios',
    'dashboard.tab_overview': 'Visão Geral',
    'dashboard.tab_sessions': 'Sessões',
    'dashboard.tab_channels': 'Canais',
    'dashboard.sessions_title': 'Sessões Ativas',
    'dashboard.no_sessions': 'Nenhuma sessão ativa',
    'dashboard.session_id': 'ID da Sessão',
    'dashboard.session_started': 'Iniciado',
    'dashboard.session_last_activity': 'Última Atividade',
    'dashboard.session_messages': 'Mensagens',
    'dashboard.session_details': 'Detalhes da Sessão',
    'dashboard.session_history': 'Ver Histórico',
    'dashboard.channels_title': 'Status dos Canais',
    'dashboard.no_channels_detail': 'Nenhum detalhe de canal disponível',
    'dashboard.channel_type': 'Tipo',
    'dashboard.channel_messages': 'Mensagens',
    'dashboard.channel_last_message': 'Última Mensagem',
    'dashboard.channel_config': 'Configuração',
    'dashboard.channel_enabled': 'Ativado',
    'dashboard.channel_disabled': 'Desativado',
    'dashboard.loading_sessions': 'Carregando sessões...',
    'dashboard.loading_channels': 'Carregando canais...',
    'dashboard.load_sessions_error': 'Falha ao carregar sessões',
    'dashboard.load_channels_error': 'Falha ao carregar canais',
    'dashboard.never': 'Nunca',

    // Settings
    'settings.title': 'Configurações',
    'settings.tab.appearance': 'Aparência',
    'settings.tab.typography': 'Tipografia',
    'settings.appearance': 'Aparência',
    'settings.typography': 'Tipografia',
    'settings.fontUi': 'Fonte da UI',
    'settings.fontMono': 'Fonte de Código',
    'settings.fontSize': 'Tamanho da Fonte da UI',
    'settings.fontMonoSize': 'Tamanho da Fonte de Código',
    'settings.preview': 'Pré-visualização',
    'settings.previewText': 'A rápida raposa marrom pula sobre o cachorro preguiçoso.',
    'settings.fontNote': 'As alterações de fonte serão aplicadas ao recarregar a página.',
    'settings.language': 'Idioma',

    // Theme
    'theme.mode': 'Modo do Tema',
    'theme.accent': 'Cor de Destaque',
    'theme.system': 'Sistema',
    'theme.dark': 'Escuro',
    'theme.light': 'Claro',
    'theme.oled': 'OLED Preto',
  },

  ro: {
    // Navigation
    'nav.dashboard': 'Panou de control',
    'nav.agent': 'Agent',
    'nav.tools': 'Instrumente',
    'nav.cron': 'Sarcini programate',
    'nav.integrations': 'Integrări',
    'nav.memory': 'Memorie',
    'nav.config': 'Config',
    'nav.cost': 'Urmărire costuri',
    'nav.logs': 'Jurnale',
    'nav.doctor': 'Diagnosticare',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Panou de control',
    'dashboard.provider': 'Furnizor',
    'dashboard.model': 'Model',
    'dashboard.uptime': 'Timp de funcționare',
    'dashboard.temperature': 'Temperatură',
    'dashboard.gateway_port': 'Port Gateway',
    'dashboard.memory_backend': 'Backend Memorie',
    'dashboard.paired': 'Împerecheat',
    'dashboard.channels': 'Canale',
    'dashboard.health': 'Sănătate',
    'dashboard.status': 'Stare',
    'dashboard.overview': 'Prezentare generală',
    'dashboard.system_info': 'Informații despre sistem',
    'dashboard.quick_actions': 'Acțiuni rapide',

    // Agent / Chat
    'agent.title': 'Chat Agent',
    'agent.send': 'Trimite',
    'agent.placeholder': 'Scrie un mesaj...',
    'agent.start_conversation': 'Trimite un mesaj pentru a începe conversația',
    'agent.type_message': 'Scrie un mesaj...',
    'agent.connecting': 'Se conectează...',
    'agent.connected': 'Conectat',
    'agent.disconnected': 'Deconectat',
    'agent.reconnecting': 'Se reconectează...',
    'agent.thinking': 'Se gândește...',
    'agent.tool_call': 'Apel instrument',
    'agent.tool_result': 'Rezultat instrument',
    'agent.connection_error': 'Eroare de conexiune. Se încearcă reconectarea...',
    'agent.tool_call_prefix': '[Apel instrument]',
    'agent.tool_result_prefix': '[Rezultat instrument]',
    'agent.error_prefix': '[Eroare]',
    'agent.unknown_error': 'Eroare necunoscută',
    'agent.send_error': 'Nu s-a putut trimite mesajul. Vă rugăm încercați din nou.',
    'agent.copy_message': 'Copiază mesajul',
    'agent.connected_status': 'Conectat',
    'agent.disconnected_status': 'Deconectat',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Instrumente disponibile',
    'tools.name': 'Nume',
    'tools.description': 'Descriere',
    'tools.parameters': 'Parametri',
    'tools.search': 'Caută instrumente...',
    'tools.empty': 'Nu sunt instrumente disponibile.',
    'tools.count': 'Total instrumente',
    'tools.agent_tools': 'Instrumente agent',
    'tools.cli_tools': 'Instrumente CLI',
    'tools.parameter_schema': 'Schema parametrilor',
    'tools.path': 'Cale',
    'tools.version': 'Versiune',
    'tools.category': 'Categorie',
    'tools.load_error': 'Nu s-au putut încărca instrumentele',

    // Cron
    'cron.title': 'Sarcini programate',
    'cron.scheduled_tasks': 'Sarcini programate',
    'cron.add': 'Adaugă sarcină',
    'cron.add_job': 'Adaugă sarcină',
    'cron.add_modal_title': 'Adaugă sarcină Cron',
    'cron.delete': 'Șterge',
    'cron.enable': 'Activează',
    'cron.disable': 'Dezactivează',
    'cron.name': 'Nume',
    'cron.name_optional': 'Nume (opțional)',
    'cron.command': 'Comandă',
    'cron.command_required': 'Comandă',
    'cron.schedule': 'Program',
    'cron.schedule_required': 'Program',
    'cron.next_run': 'Următoarea rulare',
    'cron.last_run': 'Ultima rulare',
    'cron.last_status': 'Ultima stare',
    'cron.enabled': 'Activat',
    'cron.enabled_status': 'Activat',
    'cron.disabled_status': 'Dezactivat',
    'cron.empty': 'Nu există sarcini programate.',
    'cron.confirm_delete': 'Sunteți sigur că doriți să ștergeți această sarcină?',
    'cron.load_error': 'Nu s-au putut încărca sarcinile Cron',
    'cron.validation_error': 'Programul și comanda sunt obligatorii.',
    'cron.add_error': 'Nu s-a putut adăuga sarcina',
    'cron.delete_error': 'Nu s-a putut șterge sarcina',
    'cron.cancel': 'Anulare',
    'cron.adding': 'Se adaugă...',
    'cron.id': 'ID',
    'cron.actions': 'Acțiuni',
    'cron.loading_run_history': 'Se încarcă istoricul rulărilor...',
    'cron.load_run_history_error': 'Nu s-a putut încărca istoricul rulărilor',
    'cron.no_runs': 'Nicio rulare înregistrată încă.',
    'cron.recent_runs': 'Rulări recente',
    'cron.yes': 'Da',
    'cron.no': 'Nu',
    'cron.edit': 'Editează',
    'cron.edit_modal_title': 'Editează sarcina Cron',
    'cron.edit_error': 'Nu s-a putut actualiza sarcina',
    'cron.saving': 'Se salvează...',
    'cron.save': 'Salvează',

    // Integrations
    'integrations.title': 'Integrări',
    'integrations.available': 'Disponibil',
    'integrations.active': 'Activ',
    'integrations.category': 'Categorie',
    'integrations.status': 'Stare',
    'integrations.search': 'Caută integrări...',
    'integrations.empty': 'Nu s-au găsit integrări.',
    'integrations.activate': 'Activează',
    'integrations.deactivate': 'Dezactivează',
    'integrations.load_error': 'Nu s-au putut încărca integrările',
    'integrations.status_active': 'Activ',
    'integrations.status_available': 'Disponibil',

    // Memory
    'memory.title': 'Depozit de memorie',
    'memory.memory_title': 'Memorie',
    'memory.search': 'Caută în memorie...',
    'memory.search_placeholder': 'Caută intrări în memorie...',
    'memory.add': 'Stochează memorie',
    'memory.add_memory': 'Adaugă memorie',
    'memory.add_modal_title': 'Adaugă memorie',
    'memory.delete': 'Șterge',
    'memory.key': 'Cheie',
    'memory.key_required': 'Cheie',
    'memory.content': 'Conținut',
    'memory.content_required': 'Conținut',
    'memory.category': 'Categorie',
    'memory.category_optional': 'Categorie (opțional)',
    'memory.timestamp': 'Marcaj temporal',
    'memory.session': 'Sesiune',
    'memory.score': 'Scor',
    'memory.empty': 'Nu s-au găsit intrări în memorie.',
    'memory.confirm_delete': 'Sunteți sigur că doriți să ștergeți această intrare din memorie?',
    'memory.all_categories': 'Toate categoriile',
    'memory.search_button': 'Caută',
    'memory.load_error': 'Nu s-a putut încărca memoria',
    'memory.saving': 'Se salvează...',
    'memory.validation_error': 'Cheia și conținutul sunt obligatorii.',
    'memory.store_error': 'Nu s-a putut stoca memoria',
    'memory.delete_error': 'Nu s-a putut șterge memoria',
    'memory.delete_confirm': 'Ștergeți?',
    'memory.yes': 'Da',
    'memory.no': 'Nu',
    'memory.cancel': 'Anulare',

    // Config

    // Cost
    'cost.title': 'Urmărire costuri',
    'cost.session': 'Cost sesiune',
    'cost.daily': 'Cost zilnic',
    'cost.monthly': 'Cost lunar',
    'cost.total_tokens': 'Total Token',
    'cost.request_count': 'Cereri',
    'cost.by_model': 'Cost per model',
    'cost.model': 'Model',
    'cost.tokens': 'Token',
    'cost.requests': 'Cereri',
    'cost.usd': 'Cost (USD)',
    'cost.load_error': 'Nu s-au putut încărca datele de cost',
    'cost.session_cost': 'Cost sesiune',
    'cost.daily_cost': 'Cost zilnic',
    'cost.monthly_cost': 'Cost lunar',
    'cost.total_requests': 'Total cereri',
    'cost.token_statistics': 'Statistici Token',
    'cost.avg_tokens_per_request': 'Media Token per cerere',
    'cost.cost_per_1k_tokens': 'Cost per 1K Token',
    'cost.model_breakdown': 'Defalcare pe model',
    'cost.no_model_data': 'Nu sunt date de model disponibile.',
    'cost.cost': 'Cost',
    'cost.share': 'Partajează',

    // Logs
    'logs.title': 'Jurnale în timp real',
    'logs.live_logs': 'Jurnale în timp real',
    'logs.clear': 'Șterge',
    'logs.pause': 'Pauză',
    'logs.resume': 'Reia',
    'logs.filter': 'Filtrează jurnale...',
    'logs.filter_label': 'Filtru',
    'logs.empty': 'Nu există intrări în jurnal.',
    'logs.connected': 'Conectat',
    'logs.disconnected': 'Deconectat',
    'logs.events': 'evenimente',
    'logs.jump_to_bottom': 'Salt la final',
    'logs.paused_hint': 'Transmisia jurnalelor este în pauză.',
    'logs.waiting_hint': 'Se așteaptă evenimente...',

    // Doctor
    'doctor.title': 'Diagnosticarea sistemului',
    'doctor.diagnostics_title': 'Diagnosticare',
    'doctor.run': 'Rulează diagnosticarea',
    'doctor.run_diagnostics': 'Rulează diagnosticarea',
    'doctor.running': 'Se rulează diagnosticarea...',
    'doctor.running_btn': 'Se rulează...',
    'doctor.running_desc': 'Se rulează diagnosticarea...',
    'doctor.running_hint': 'Aceasta poate dura câteva secunde.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Avertisment',
    'doctor.error': 'Eroare',
    'doctor.severity': 'Severitate',
    'doctor.category': 'Categorie',
    'doctor.message': 'Mesaj',
    'doctor.empty': 'Nu s-a rulat nicio diagnosticare încă.',
    'doctor.summary': 'Rezumatul diagnosticării',
    'doctor.issues_found': 'Probleme găsite',
    'doctor.warnings_summary': 'Avertismente',
    'doctor.all_clear': 'Totul în regulă',
    'doctor.system_diagnostics': 'Diagnosticarea sistemului',
    'doctor.empty_hint': 'Faceți clic pe "Rulează diagnosticarea" pentru a verifica instalarea KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Împerechere dispozitiv',
    'auth.pairing_code': 'Cod de împerechere',
    'auth.pair_button': 'Împerechere',
    'auth.logout': 'Deconectare',
    'auth.pairing_success': 'Împerecherea a reușit!',
    'auth.pairing_failed': 'Împerecherea a eșuat. Vă rugăm încercați din nou.',
    'auth.enter_code': 'Introduceți codul de împerechere pentru a vă conecta la agent.',

    // Common
    'common.loading': 'Se încarcă...',
    'common.error': 'A apărut o eroare.',
    'common.retry': 'Reîncearcă',
    'common.cancel': 'Anulare',
    'common.confirm': 'Confirmă',
    'common.save': 'Salvează',
    'common.delete': 'Șterge',
    'common.edit': 'Editează',
    'common.close': 'Închide',
    'common.yes': 'Da',
    'common.no': 'Nu',
    'common.search': 'Caută...',
    'common.no_data': 'Nu sunt date disponibile.',
    'common.refresh': 'Reîmprospătează',
    'common.back': 'Înapoi',
    'common.actions': 'Acțiuni',
    'common.name': 'Nume',
    'common.description': 'Descriere',
    'common.status': 'Stare',
    'common.created': 'Creat',
    'common.updated': 'Actualizat',

    // Health
    'health.title': 'Sănătatea sistemului',
    'health.component': 'Component',
    'health.status': 'Stare',
    'health.last_ok': 'Ultimul OK',
    'health.last_error': 'Ultima eroare',
    'health.restart_count': 'Reporniri',
    'health.pid': 'ID proces',
    'health.uptime': 'Timp de funcționare',
    'health.updated_at': 'Ultima actualizare',

    // Dashboard
    'dashboard.provider_model': 'Furnizor / Model',
    'dashboard.since_last_restart': 'De la ultima repornire',
    'dashboard.paired_yes': 'Da',
    'dashboard.paired_no': 'Nu',
    'dashboard.cost_overview': 'Prezentare generală costuri',
    'dashboard.active_channels': 'Canale active',
    'dashboard.filter_active': 'Active',
    'dashboard.filter_all': 'Toate',
    'dashboard.no_active_channels': 'Nu există canale active',
    'dashboard.component_health': 'Sănătatea componentelor',
    'dashboard.load_error': 'Nu s-a putut încărca panoul de control',
    'dashboard.session_label': 'Sesiune',
    'dashboard.daily_label': 'Zilnic',
    'dashboard.monthly_label': 'Lunar',
    'dashboard.total_tokens_label': 'Total Token',
    'dashboard.requests_label': 'Cereri',
    'dashboard.no_channels': 'Nu sunt canale configurate',
    'dashboard.active': 'Activ',
    'dashboard.inactive': 'Inactiv',
    'dashboard.no_components': 'Nu sunt componente care raportează',
    'dashboard.restarts': 'Reporniri',
    'dashboard.tab_overview': 'Prezentare generală',
    'dashboard.tab_sessions': 'Sesiuni',
    'dashboard.tab_channels': 'Canale',
    'dashboard.sessions_title': 'Sesiuni active',
    'dashboard.no_sessions': 'Nu există sesiuni active',
    'dashboard.session_id': 'ID sesiune',
    'dashboard.session_started': 'Început',
    'dashboard.session_last_activity': 'Ultima activitate',
    'dashboard.session_messages': 'Mesaje',
    'dashboard.session_details': 'Detalii sesiune',
    'dashboard.session_history': 'Vezi istoricul',
    'dashboard.channels_title': 'Starea canalelor',
    'dashboard.no_channels_detail': 'Nu sunt detalii despre canal disponibile',
    'dashboard.channel_type': 'Tip',
    'dashboard.channel_messages': 'Mesaje',
    'dashboard.channel_last_message': 'Ultimul mesaj',
    'dashboard.channel_config': 'Configurare',
    'dashboard.channel_enabled': 'Activat',
    'dashboard.channel_disabled': 'Dezactivat',
    'dashboard.loading_sessions': 'Se încarcă sesiunile...',
    'dashboard.loading_channels': 'Se încarcă canalele...',
    'dashboard.load_sessions_error': 'Nu s-au putut încărca sesiunile',
    'dashboard.load_channels_error': 'Nu s-au putut încărca canalele',
    'dashboard.never': 'Niciodată',

    // Settings
    'settings.title': 'Setări',
    'settings.tab.appearance': 'Aspect',
    'settings.tab.typography': 'Tipografie',
    'settings.appearance': 'Aspect',
    'settings.typography': 'Tipografie',
    'settings.fontUi': 'Font UI',
    'settings.fontMono': 'Font cod',
    'settings.fontSize': 'Dimensiune font UI',
    'settings.fontMonoSize': 'Dimensiune font cod',
    'settings.preview': 'Previzualizare',
    'settings.previewText': 'Vulpea maro și rapidă sare peste câinele leneș.',
    'settings.fontNote': 'Modificările fontului se aplică la reîncărcarea paginii.',
    'settings.language': 'Limbă',

    // Theme
    'theme.mode': 'Mod temă',
    'theme.accent': 'Culoare de accent',
    'theme.system': 'Sistem',
    'theme.dark': 'Întunecat',
    'theme.light': 'Luminos',
    'theme.oled': 'OLED Negru',
  },

  ru: {
    // Navigation
    'nav.dashboard': 'Панель управления',
    'nav.agent': 'Агент',
    'nav.tools': 'Инструменты',
    'nav.cron': 'Запланированные задачи',
    'nav.integrations': 'Интеграции',
    'nav.memory': 'Память',
    'nav.config': 'Config',
    'nav.cost': 'Учёт расходов',
    'nav.logs': 'Журналы',
    'nav.doctor': 'Диагностика',
    'nav.canvas': 'Холст',

    // Dashboard
    'dashboard.title': 'Панель управления',
    'dashboard.provider': 'Провайдер',
    'dashboard.model': 'Модель',
    'dashboard.uptime': 'Время работы',
    'dashboard.temperature': 'Температура',
    'dashboard.gateway_port': 'Порт шлюза',
    'dashboard.memory_backend': 'Бэкенд памяти',
    'dashboard.paired': 'Сопряжено',
    'dashboard.channels': 'Каналы',
    'dashboard.health': 'Состояние',
    'dashboard.status': 'Статус',
    'dashboard.overview': 'Обзор',
    'dashboard.system_info': 'Информация о системе',
    'dashboard.quick_actions': 'Быстрые действия',

    // Agent / Chat
    'agent.title': 'Чат с агентом',
    'agent.send': 'Отправить',
    'agent.placeholder': 'Введите сообщение...',
    'agent.start_conversation': 'Отправьте сообщение, чтобы начать разговор',
    'agent.type_message': 'Введите сообщение...',
    'agent.connecting': 'Подключение...',
    'agent.connected': 'Подключено',
    'agent.disconnected': 'Отключено',
    'agent.reconnecting': 'Переподключение...',
    'agent.thinking': 'Думаю...',
    'agent.tool_call': 'Вызов инструмента',
    'agent.tool_result': 'Результат инструмента',
    'agent.connection_error': 'Ошибка соединения. Попытка переподключения...',
    'agent.tool_call_prefix': '[Вызов инструмента]',
    'agent.tool_result_prefix': '[Результат инструмента]',
    'agent.error_prefix': '[Ошибка]',
    'agent.unknown_error': 'Неизвестная ошибка',
    'agent.send_error': 'Не удалось отправить сообщение. Пожалуйста, попробуйте снова.',
    'agent.copy_message': 'Скопировать сообщение',
    'agent.connected_status': 'Подключено',
    'agent.disconnected_status': 'Отключено',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Доступные инструменты',
    'tools.name': 'Название',
    'tools.description': 'Описание',
    'tools.parameters': 'Параметры',
    'tools.search': 'Поиск инструментов...',
    'tools.empty': 'Нет доступных инструментов.',
    'tools.count': 'Всего инструментов',
    'tools.agent_tools': 'Инструменты агента',
    'tools.cli_tools': 'Инструменты CLI',
    'tools.parameter_schema': 'Схема параметров',
    'tools.path': 'Путь',
    'tools.version': 'Версия',
    'tools.category': 'Категория',
    'tools.load_error': 'Не удалось загрузить инструменты',

    // Cron
    'cron.title': 'Запланированные задачи',
    'cron.scheduled_tasks': 'Запланированные задачи',
    'cron.add': 'Добавить задачу',
    'cron.add_job': 'Добавить задачу',
    'cron.add_modal_title': 'Добавить задачу Cron',
    'cron.delete': 'Удалить',
    'cron.enable': 'Включить',
    'cron.disable': 'Отключить',
    'cron.name': 'Название',
    'cron.name_optional': 'Название (необязательно)',
    'cron.command': 'Команда',
    'cron.command_required': 'Команда',
    'cron.schedule': 'Расписание',
    'cron.schedule_required': 'Расписание',
    'cron.next_run': 'Следующий запуск',
    'cron.last_run': 'Последний запуск',
    'cron.last_status': 'Последний статус',
    'cron.enabled': 'Включено',
    'cron.enabled_status': 'Включено',
    'cron.disabled_status': 'Отключено',
    'cron.empty': 'Нет запланированных задач.',
    'cron.confirm_delete': 'Вы уверены, что хотите удалить эту задачу?',
    'cron.load_error': 'Не удалось загрузить задачи Cron',
    'cron.validation_error': 'Расписание и команда обязательны.',
    'cron.add_error': 'Не удалось добавить задачу',
    'cron.delete_error': 'Не удалось удалить задачу',
    'cron.cancel': 'Отмена',
    'cron.adding': 'Добавление...',
    'cron.id': 'ID',
    'cron.actions': 'Действия',
    'cron.loading_run_history': 'Загрузка истории запусков...',
    'cron.load_run_history_error': 'Не удалось загрузить историю запусков',
    'cron.no_runs': 'Записей о запусках пока нет.',
    'cron.recent_runs': 'Последние запуски',
    'cron.yes': 'Да',
    'cron.no': 'Нет',
    'cron.edit': 'Редактировать',
    'cron.edit_modal_title': 'Редактировать задачу Cron',
    'cron.edit_error': 'Не удалось обновить задачу',
    'cron.saving': 'Сохранение...',
    'cron.save': 'Сохранить',

    // Integrations
    'integrations.title': 'Интеграции',
    'integrations.available': 'Доступно',
    'integrations.active': 'Активно',
    'integrations.category': 'Категория',
    'integrations.status': 'Статус',
    'integrations.search': 'Поиск интеграций...',
    'integrations.empty': 'Интеграции не найдены.',
    'integrations.activate': 'Активировать',
    'integrations.deactivate': 'Деактивировать',
    'integrations.load_error': 'Не удалось загрузить интеграции',
    'integrations.status_active': 'Активно',
    'integrations.status_available': 'Доступно',

    // Memory
    'memory.title': 'Хранилище памяти',
    'memory.memory_title': 'Память',
    'memory.search': 'Поиск в памяти...',
    'memory.search_placeholder': 'Поиск записей памяти...',
    'memory.add': 'Сохранить в память',
    'memory.add_memory': 'Добавить запись',
    'memory.add_modal_title': 'Добавить запись',
    'memory.delete': 'Удалить',
    'memory.key': 'Ключ',
    'memory.key_required': 'Ключ',
    'memory.content': 'Содержимое',
    'memory.content_required': 'Содержимое',
    'memory.category': 'Категория',
    'memory.category_optional': 'Категория (необязательно)',
    'memory.timestamp': 'Время',
    'memory.session': 'Сессия',
    'memory.score': 'Оценка',
    'memory.empty': 'Записей памяти не найдено.',
    'memory.confirm_delete': 'Вы уверены, что хотите удалить эту запись памяти?',
    'memory.all_categories': 'Все категории',
    'memory.search_button': 'Поиск',
    'memory.load_error': 'Не удалось загрузить память',
    'memory.saving': 'Сохранение...',
    'memory.validation_error': 'Ключ и содержимое обязательны.',
    'memory.store_error': 'Не удалось сохранить запись',
    'memory.delete_error': 'Не удалось удалить запись',
    'memory.delete_confirm': 'Удалить?',
    'memory.yes': 'Да',
    'memory.no': 'Нет',
    'memory.cancel': 'Отмена',

    // Config

    // Cost
    'cost.title': 'Учёт расходов',
    'cost.session': 'Стоимость сессии',
    'cost.daily': 'Дневная стоимость',
    'cost.monthly': 'Месячная стоимость',
    'cost.total_tokens': 'Всего токенов',
    'cost.request_count': 'Запросы',
    'cost.by_model': 'Стоимость по модели',
    'cost.model': 'Модель',
    'cost.tokens': 'Токены',
    'cost.requests': 'Запросы',
    'cost.usd': 'Стоимость (USD)',
    'cost.load_error': 'Не удалось загрузить данные о расходах',
    'cost.session_cost': 'Стоимость сессии',
    'cost.daily_cost': 'Дневная стоимость',
    'cost.monthly_cost': 'Месячная стоимость',
    'cost.total_requests': 'Всего запросов',
    'cost.token_statistics': 'Статистика токенов',
    'cost.avg_tokens_per_request': 'Среднее кол-во токенов / запрос',
    'cost.cost_per_1k_tokens': 'Стоимость за 1K токенов',
    'cost.model_breakdown': 'Разбивка по моделям',
    'cost.no_model_data': 'Нет данных по моделям.',
    'cost.cost': 'Стоимость',
    'cost.share': 'Поделиться',

    // Logs
    'logs.title': 'Журнал в реальном времени',
    'logs.live_logs': 'Журнал в реальном времени',
    'logs.clear': 'Очистить',
    'logs.pause': 'Пауза',
    'logs.resume': 'Продолжить',
    'logs.filter': 'Фильтр журналов...',
    'logs.filter_label': 'Фильтр',
    'logs.empty': 'Нет записей в журнале.',
    'logs.connected': 'Подключено',
    'logs.disconnected': 'Отключено',
    'logs.events': 'события',
    'logs.jump_to_bottom': 'Перейти вниз',
    'logs.paused_hint': 'Потоковая передача журналов приостановлена.',
    'logs.waiting_hint': 'Ожидание событий...',

    // Doctor
    'doctor.title': 'Диагностика системы',
    'doctor.diagnostics_title': 'Диагностика',
    'doctor.run': 'Запустить диагностику',
    'doctor.run_diagnostics': 'Запустить диагностику',
    'doctor.running': 'Выполняется диагностика...',
    'doctor.running_btn': 'Выполняется...',
    'doctor.running_desc': 'Выполняется диагностика...',
    'doctor.running_hint': 'Это может занять несколько секунд.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Предупреждение',
    'doctor.error': 'Ошибка',
    'doctor.severity': 'Серьёзность',
    'doctor.category': 'Категория',
    'doctor.message': 'Сообщение',
    'doctor.empty': 'Диагностика ещё не проводилась.',
    'doctor.summary': 'Сводка диагностики',
    'doctor.issues_found': 'Обнаруженные проблемы',
    'doctor.warnings_summary': 'Предупреждения',
    'doctor.all_clear': 'Всё в порядке',
    'doctor.system_diagnostics': 'Диагностика системы',
    'doctor.empty_hint': 'Нажмите «Запустить диагностику», чтобы проверить установку KylinBot.',

    // Auth / Pairing
    'auth.pair': 'Сопряжение устройства',
    'auth.pairing_code': 'Код сопряжения',
    'auth.pair_button': 'Сопрячь',
    'auth.logout': 'Выйти',
    'auth.pairing_success': 'Сопряжение выполнено успешно!',
    'auth.pairing_failed': 'Сопряжение не удалось. Пожалуйста, попробуйте снова.',
    'auth.enter_code': 'Введите код сопряжения для подключения к агенту.',
    'pairing.title': 'Сопряжение устройств',
    'pairing.pair_new_device': 'Сопрячь новое устройство',
    'pairing.pairing_code': 'Код сопряжения',
    'pairing.code_hint': 'Введите этот код на новом устройстве',
    'pairing.paired_devices': 'Сопряжённые устройства',
    'pairing.no_devices': 'Нет сопряжённых устройств.',
    'pairing.name': 'Название',
    'pairing.type': 'Тип',
    'pairing.paired': 'Сопряжено',
    'pairing.last_seen': 'Последний раз в сети',
    'pairing.actions': 'Действия',
    'pairing.load_error': 'Не удалось загрузить устройства',
    'pairing.generate_error': 'Не удалось создать код сопряжения',
    'pairing.revoke_error': 'Не удалось отозвать устройство',

    // Common
    'common.loading': 'Загрузка...',
    'common.error': 'Произошла ошибка.',
    'common.retry': 'Повторить',
    'common.cancel': 'Отмена',
    'common.confirm': 'Подтвердить',
    'common.save': 'Сохранить',
    'common.delete': 'Удалить',
    'common.edit': 'Редактировать',
    'common.close': 'Закрыть',
    'common.yes': 'Да',
    'common.no': 'Нет',
    'common.search': 'Поиск...',
    'common.no_data': 'Нет данных.',
    'common.refresh': 'Обновить',
    'common.back': 'Назад',
    'common.actions': 'Действия',
    'common.name': 'Название',
    'common.description': 'Описание',
    'common.status': 'Статус',
    'common.created': 'Создано',
    'common.updated': 'Обновлено',

    // Health
    'health.title': 'Состояние системы',
    'health.component': 'Компонент',
    'health.status': 'Статус',
    'health.last_ok': 'Последнее OK',
    'health.last_error': 'Последняя ошибка',
    'health.restart_count': 'Перезапуски',
    'health.pid': 'ID процесса',
    'health.uptime': 'Время работы',
    'health.updated_at': 'Последнее обновление',

    // Dashboard
    'dashboard.provider_model': 'Провайдер / Модель',
    'dashboard.since_last_restart': 'С последнего перезапуска',
    'dashboard.paired_yes': 'Да',
    'dashboard.paired_no': 'Нет',
    'dashboard.cost_overview': 'Обзор расходов',
    'dashboard.active_channels': 'Активные каналы',
    'dashboard.filter_active': 'Активные',
    'dashboard.filter_all': 'Все',
    'dashboard.no_active_channels': 'Нет активных каналов',
    'dashboard.component_health': 'Состояние компонентов',
    'dashboard.load_error': 'Не удалось загрузить панель управления',
    'dashboard.session_label': 'Сессия',
    'dashboard.daily_label': 'Дневная',
    'dashboard.monthly_label': 'Месячная',
    'dashboard.total_tokens_label': 'Всего токенов',
    'dashboard.requests_label': 'Запросы',
    'dashboard.no_channels': 'Каналы не настроены',
    'dashboard.active': 'Активно',
    'dashboard.inactive': 'Неактивно',
    'dashboard.no_components': 'Нет отчётов от компонентов',
    'dashboard.restarts': 'Перезапуски',
    'dashboard.tab_overview': 'Обзор',
    'dashboard.tab_sessions': 'Сессии',
    'dashboard.tab_channels': 'Каналы',
    'dashboard.sessions_title': 'Активные сессии',
    'dashboard.no_sessions': 'Нет активных сессий',
    'dashboard.session_id': 'ID сессии',
    'dashboard.session_started': 'Начало',
    'dashboard.session_last_activity': 'Последняя активность',
    'dashboard.session_messages': 'Сообщения',
    'dashboard.session_details': 'Детали сессии',
    'dashboard.session_history': 'Просмотр истории',
    'dashboard.channels_title': 'Статус каналов',
    'dashboard.no_channels_detail': 'Нет данных о каналах',
    'dashboard.channel_type': 'Тип',
    'dashboard.channel_messages': 'Сообщения',
    'dashboard.channel_last_message': 'Последнее сообщение',
    'dashboard.channel_config': 'Конфигурация',
    'dashboard.channel_enabled': 'Включён',
    'dashboard.channel_disabled': 'Отключён',
    'dashboard.loading_sessions': 'Загрузка сессий...',
    'dashboard.loading_channels': 'Загрузка каналов...',
    'dashboard.load_sessions_error': 'Не удалось загрузить сессии',
    'dashboard.load_channels_error': 'Не удалось загрузить каналы',
    'dashboard.never': 'Никогда',

    // Settings
    'settings.title': 'Настройки',
    'settings.tab.appearance': 'Внешний вид',
    'settings.tab.typography': 'Типографика',
    'settings.appearance': 'Внешний вид',
    'settings.typography': 'Типографика',
    'settings.fontUi': 'Шрифт интерфейса',
    'settings.fontMono': 'Шрифт кода',
    'settings.fontSize': 'Размер шрифта интерфейса',
    'settings.fontMonoSize': 'Размер шрифта кода',
    'settings.preview': 'Предпросмотр',
    'settings.previewText': 'Съешь ещё этих мягких французских булок, да выпей чаю.',
    'settings.fontNote': 'Изменения шрифта применяются при перезагрузке страницы.',
    'settings.language': 'Язык',

    // Theme
    'theme.mode': 'Режим темы',
    'theme.accent': 'Цвет акцента',
    'theme.system': 'Системная',
    'theme.dark': 'Тёмная',
    'theme.light': 'Светлая',
    'theme.oled': 'OLED чёрная',
  },

  sv: {
    // Navigation
    'nav.dashboard': 'Instrumentpanel',
    'nav.agent': 'Agent',
    'nav.tools': 'Verktyg',
    'nav.cron': 'Schemalagda jobb',
    'nav.integrations': 'Integrationer',
    'nav.memory': 'Minne',
    'nav.config': 'Config',
    'nav.cost': 'Kostnadsspårning',
    'nav.logs': 'Loggar',
    'nav.doctor': 'Diagnostik',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Instrumentpanel',
    'dashboard.provider': 'Leverantör',
    'dashboard.model': 'Modell',
    'dashboard.uptime': 'Drifttid',
    'dashboard.temperature': 'Temperatur',
    'dashboard.gateway_port': 'Gateway-port',
    'dashboard.memory_backend': 'Minnesbakände',
    'dashboard.paired': 'Parkopplad',
    'dashboard.channels': 'Kanaler',
    'dashboard.health': 'Hälsa',
    'dashboard.status': 'Status',
    'dashboard.overview': 'Översikt',
    'dashboard.system_info': 'Systeminformation',
    'dashboard.quick_actions': 'Snabbåtgärder',

    // Agent / Chat
    'agent.title': 'Agentchatt',
    'agent.send': 'Skicka',
    'agent.placeholder': 'Skriv ett meddelande...',
    'agent.start_conversation': 'Skicka ett meddelande för att starta konversationen',
    'agent.type_message': 'Skriv ett meddelande...',
    'agent.connecting': 'Ansluter...',
    'agent.connected': 'Ansluten',
    'agent.disconnected': 'Frånkopplad',
    'agent.reconnecting': 'Återansluter...',
    'agent.thinking': 'Tänker...',
    'agent.tool_call': 'Verktygsanrop',
    'agent.tool_result': 'Verktygsresultat',
    'agent.connection_error': 'Anslutningsfel. Försöker återansluta...',
    'agent.tool_call_prefix': '[Verktygsanrop]',
    'agent.tool_result_prefix': '[Verktygsresultat]',
    'agent.error_prefix': '[Fel]',
    'agent.unknown_error': 'Okänt fel',
    'agent.send_error': 'Kunde inte skicka meddelandet. Försök igen.',
    'agent.copy_message': 'Kopiera meddelande',
    'agent.connected_status': 'Ansluten',
    'agent.disconnected_status': 'Frånkopplad',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Tillgängliga verktyg',
    'tools.name': 'Namn',
    'tools.description': 'Beskrivning',
    'tools.parameters': 'Parametrar',
    'tools.search': 'Sök verktyg...',
    'tools.empty': 'Inga verktyg tillgängliga.',
    'tools.count': 'Totalt antal verktyg',
    'tools.agent_tools': 'Agentverktyg',
    'tools.cli_tools': 'CLI-verktyg',
    'tools.parameter_schema': 'Parameterschema',
    'tools.path': 'Sökväg',
    'tools.version': 'Version',
    'tools.category': 'Kategori',
    'tools.load_error': 'Kunde inte ladda verktyg',

    // Cron
    'cron.title': 'Schemalagda jobb',
    'cron.scheduled_tasks': 'Schemalagda uppgifter',
    'cron.add': 'Lägg till jobb',
    'cron.add_job': 'Lägg till jobb',
    'cron.add_modal_title': 'Lägg till Cron-jobb',
    'cron.delete': 'Ta bort',
    'cron.enable': 'Aktivera',
    'cron.disable': 'Inaktivera',
    'cron.name': 'Namn',
    'cron.name_optional': 'Namn (valfritt)',
    'cron.command': 'Kommando',
    'cron.command_required': 'Kommando',
    'cron.schedule': 'Schema',
    'cron.schedule_required': 'Schema',
    'cron.next_run': 'Nästa körning',
    'cron.last_run': 'Senaste körning',
    'cron.last_status': 'Senaste status',
    'cron.enabled': 'Aktiverad',
    'cron.enabled_status': 'Aktiverad',
    'cron.disabled_status': 'Inaktiverad',
    'cron.empty': 'Inga schemalagda jobb.',
    'cron.confirm_delete': 'Är du säker på att du vill ta bort detta jobb?',
    'cron.load_error': 'Kunde inte ladda Cron-jobb',
    'cron.validation_error': 'Schema och kommando krävs.',
    'cron.add_error': 'Kunde inte lägga till jobb',
    'cron.delete_error': 'Kunde inte ta bort jobb',
    'cron.cancel': 'Avbryt',
    'cron.adding': 'Lägger till...',
    'cron.id': 'ID',
    'cron.actions': 'Åtgärder',
    'cron.loading_run_history': 'Laddar körhistorik...',
    'cron.load_run_history_error': 'Kunde inte ladda körhistorik',
    'cron.no_runs': 'Inga körningar registrerade ännu.',
    'cron.recent_runs': 'Senaste körningar',
    'cron.yes': 'Ja',
    'cron.no': 'Nej',
    'cron.edit': 'Redigera',
    'cron.edit_modal_title': 'Redigera Cron-jobb',
    'cron.edit_error': 'Kunde inte uppdatera jobb',
    'cron.saving': 'Sparar...',
    'cron.save': 'Spara',

    // Integrations
    'integrations.title': 'Integrationer',
    'integrations.available': 'Tillgänglig',
    'integrations.active': 'Aktiv',
    'integrations.category': 'Kategori',
    'integrations.status': 'Status',
    'integrations.search': 'Sök integrationer...',
    'integrations.empty': 'Inga integrationer hittades.',
    'integrations.activate': 'Aktivera',
    'integrations.deactivate': 'Inaktivera',
    'integrations.load_error': 'Kunde inte ladda integrationer',
    'integrations.status_active': 'Aktiv',
    'integrations.status_available': 'Tillgänglig',

    // Memory
    'memory.title': 'Minneslagring',
    'memory.memory_title': 'Minne',
    'memory.search': 'Sök i minnet...',
    'memory.search_placeholder': 'Sök minnesposter...',
    'memory.add': 'Spara minne',
    'memory.add_memory': 'Lägg till minne',
    'memory.add_modal_title': 'Lägg till minne',
    'memory.delete': 'Ta bort',
    'memory.key': 'Nyckel',
    'memory.key_required': 'Nyckel',
    'memory.content': 'Innehåll',
    'memory.content_required': 'Innehåll',
    'memory.category': 'Kategori',
    'memory.category_optional': 'Kategori (valfritt)',
    'memory.timestamp': 'Tidsstämpel',
    'memory.session': 'Session',
    'memory.score': 'Poäng',
    'memory.empty': 'Inga minnesposter hittades.',
    'memory.confirm_delete': 'Är du säker på att du vill ta bort denna minnespost?',
    'memory.all_categories': 'Alla kategorier',
    'memory.search_button': 'Sök',
    'memory.load_error': 'Kunde inte ladda minnet',
    'memory.saving': 'Sparar...',
    'memory.validation_error': 'Nyckel och innehåll krävs.',
    'memory.store_error': 'Kunde inte spara minne',
    'memory.delete_error': 'Kunde inte ta bort minne',
    'memory.delete_confirm': 'Ta bort?',
    'memory.yes': 'Ja',
    'memory.no': 'Nej',
    'memory.cancel': 'Avbryt',

    // Config

    // Cost
    'cost.title': 'Kostnadsspårning',
    'cost.session': 'Sessionskostnad',
    'cost.daily': 'Daglig kostnad',
    'cost.monthly': 'Månadskostnad',
    'cost.total_tokens': 'Totalt antal token',
    'cost.request_count': 'Förfrågningar',
    'cost.by_model': 'Kostnad per modell',
    'cost.model': 'Modell',
    'cost.tokens': 'Token',
    'cost.requests': 'Förfrågningar',
    'cost.usd': 'Kostnad (USD)',
    'cost.load_error': 'Kunde inte ladda kostnadsdata',
    'cost.session_cost': 'Sessionskostnad',
    'cost.daily_cost': 'Daglig kostnad',
    'cost.monthly_cost': 'Månadskostnad',
    'cost.total_requests': 'Totalt antal förfrågningar',
    'cost.token_statistics': 'Tokenstatistik',
    'cost.avg_tokens_per_request': 'Genomsnittliga token / förfrågan',
    'cost.cost_per_1k_tokens': 'Kostnad per 1K token',
    'cost.model_breakdown': 'Uppdelning per modell',
    'cost.no_model_data': 'Ingen modelldata tillgänglig.',
    'cost.cost': 'Kostnad',
    'cost.share': 'Dela',

    // Logs
    'logs.title': 'Realtidsloggar',
    'logs.live_logs': 'Realtidsloggar',
    'logs.clear': 'Rensa',
    'logs.pause': 'Pausa',
    'logs.resume': 'Återuppta',
    'logs.filter': 'Filtrera loggar...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'Inga loggposter.',
    'logs.connected': 'Ansluten',
    'logs.disconnected': 'Frånkopplad',
    'logs.events': 'händelser',
    'logs.jump_to_bottom': 'Hoppa till botten',
    'logs.paused_hint': 'Loggströmning är pausad.',
    'logs.waiting_hint': 'Väntar på händelser...',

    // Doctor
    'doctor.title': 'Systemdiagnostik',
    'doctor.diagnostics_title': 'Diagnostik',
    'doctor.run': 'Kör diagnostik',
    'doctor.run_diagnostics': 'Kör diagnostik',
    'doctor.running': 'Kör diagnostik...',
    'doctor.running_btn': 'Kör...',
    'doctor.running_desc': 'Kör diagnostik...',
    'doctor.running_hint': 'Detta kan ta några sekunder.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Varning',
    'doctor.error': 'Fel',
    'doctor.severity': 'Allvarlighetsgrad',
    'doctor.category': 'Kategori',
    'doctor.message': 'Meddelande',
    'doctor.empty': 'Ingen diagnostik har körts ännu.',
    'doctor.summary': 'Diagnostiksammanfattning',
    'doctor.issues_found': 'Problem hittade',
    'doctor.warnings_summary': 'Varningar',
    'doctor.all_clear': 'Allt klart',
    'doctor.system_diagnostics': 'Systemdiagnostik',
    'doctor.empty_hint': 'Klicka på "Kör diagnostik" för att kontrollera din KylinBot-installation.',

    // Auth / Pairing
    'auth.pair': 'Parkoppla enhet',
    'auth.pairing_code': 'Parkopplingskod',
    'auth.pair_button': 'Parkoppla',
    'auth.logout': 'Logga ut',
    'auth.pairing_success': 'Parkopplingen lyckades!',
    'auth.pairing_failed': 'Parkopplingen misslyckades. Försök igen.',
    'auth.enter_code': 'Ange din parkopplingskod för att ansluta till agenten.',

    // Common
    'common.loading': 'Laddar...',
    'common.error': 'Ett fel uppstod.',
    'common.retry': 'Försök igen',
    'common.cancel': 'Avbryt',
    'common.confirm': 'Bekräfta',
    'common.save': 'Spara',
    'common.delete': 'Ta bort',
    'common.edit': 'Redigera',
    'common.close': 'Stäng',
    'common.yes': 'Ja',
    'common.no': 'Nej',
    'common.search': 'Sök...',
    'common.no_data': 'Ingen data tillgänglig.',
    'common.refresh': 'Uppdatera',
    'common.back': 'Tillbaka',
    'common.actions': 'Åtgärder',
    'common.name': 'Namn',
    'common.description': 'Beskrivning',
    'common.status': 'Status',
    'common.created': 'Skapad',
    'common.updated': 'Uppdaterad',

    // Health
    'health.title': 'Systemhälsa',
    'health.component': 'Komponent',
    'health.status': 'Status',
    'health.last_ok': 'Senaste OK',
    'health.last_error': 'Senaste fel',
    'health.restart_count': 'Omstarter',
    'health.pid': 'Process-ID',
    'health.uptime': 'Drifttid',
    'health.updated_at': 'Senast uppdaterad',

    // Dashboard
    'dashboard.provider_model': 'Leverantör / Modell',
    'dashboard.since_last_restart': 'Sedan senaste omstart',
    'dashboard.paired_yes': 'Ja',
    'dashboard.paired_no': 'Nej',
    'dashboard.cost_overview': 'Kostnadsöversikt',
    'dashboard.active_channels': 'Aktiva kanaler',
    'dashboard.filter_active': 'Aktiva',
    'dashboard.filter_all': 'Alla',
    'dashboard.no_active_channels': 'Inga aktiva kanaler',
    'dashboard.component_health': 'Komponenthälsa',
    'dashboard.load_error': 'Kunde inte ladda instrumentpanelen',
    'dashboard.session_label': 'Session',
    'dashboard.daily_label': 'Daglig',
    'dashboard.monthly_label': 'Månadsvis',
    'dashboard.total_tokens_label': 'Totalt antal token',
    'dashboard.requests_label': 'Förfrågningar',
    'dashboard.no_channels': 'Inga kanaler konfigurerade',
    'dashboard.active': 'Aktiv',
    'dashboard.inactive': 'Inaktiv',
    'dashboard.no_components': 'Inga komponenter rapporterar',
    'dashboard.restarts': 'Omstarter',
    'dashboard.tab_overview': 'Översikt',
    'dashboard.tab_sessions': 'Sessioner',
    'dashboard.tab_channels': 'Kanaler',
    'dashboard.sessions_title': 'Aktiva sessioner',
    'dashboard.no_sessions': 'Inga aktiva sessioner',
    'dashboard.session_id': 'Sessions-ID',
    'dashboard.session_started': 'Startad',
    'dashboard.session_last_activity': 'Senaste aktivitet',
    'dashboard.session_messages': 'Meddelanden',
    'dashboard.session_details': 'Sessionsdetaljer',
    'dashboard.session_history': 'Visa historik',
    'dashboard.channels_title': 'Kanalstatus',
    'dashboard.no_channels_detail': 'Inga kanaldetaljer tillgängliga',
    'dashboard.channel_type': 'Typ',
    'dashboard.channel_messages': 'Meddelanden',
    'dashboard.channel_last_message': 'Senaste meddelande',
    'dashboard.channel_config': 'Konfiguration',
    'dashboard.channel_enabled': 'Aktiverad',
    'dashboard.channel_disabled': 'Inaktiverad',
    'dashboard.loading_sessions': 'Laddar sessioner...',
    'dashboard.loading_channels': 'Laddar kanaler...',
    'dashboard.load_sessions_error': 'Kunde inte ladda sessioner',
    'dashboard.load_channels_error': 'Kunde inte ladda kanaler',
    'dashboard.never': 'Aldrig',

    // Settings
    'settings.title': 'Inställningar',
    'settings.tab.appearance': 'Utseende',
    'settings.tab.typography': 'Typografi',
    'settings.appearance': 'Utseende',
    'settings.typography': 'Typografi',
    'settings.fontUi': 'Gränssnittstypsnitt',
    'settings.fontMono': 'Kodtypsnitt',
    'settings.fontSize': 'Gränssnittstypsnittsstorlek',
    'settings.fontMonoSize': 'Kodtypsnittsstorlek',
    'settings.preview': 'Förhandsgranskning',
    'settings.previewText': 'Flygande bäckasiner söka hwila på mjuka tuvor.',
    'settings.fontNote': 'Typsnittsändringar tillämpas vid sidomladdning.',
    'settings.language': 'Språk',

    // Theme
    'theme.mode': 'Temaläge',
    'theme.accent': 'Accentfärg',
    'theme.system': 'System',
    'theme.dark': 'Mörkt',
    'theme.light': 'Ljust',
    'theme.oled': 'OLED svart',
  },

  th: {
    // Navigation
    'nav.dashboard': 'แดชบอร์ด',
    'nav.agent': 'เอเจนต์',
    'nav.tools': 'เครื่องมือ',
    'nav.cron': 'งานตามกำหนดเวลา',
    'nav.integrations': 'การเชื่อมต่อ',
    'nav.memory': 'หน่วยความจำ',
    'nav.config': 'Config',
    'nav.cost': 'ติดตามค่าใช้จ่าย',
    'nav.logs': 'บันทึก',
    'nav.doctor': 'วินิจฉัย',
    'nav.canvas': 'แคนวาส',

    // Dashboard
    'dashboard.title': 'แดชบอร์ด',
    'dashboard.provider': 'ผู้ให้บริการ',
    'dashboard.model': 'โมเดล',
    'dashboard.uptime': 'เวลาทำงาน',
    'dashboard.temperature': 'อุณหภูมิ',
    'dashboard.gateway_port': 'พอร์ตเกตเวย์',
    'dashboard.memory_backend': 'แบ็กเอนด์หน่วยความจำ',
    'dashboard.paired': 'จับคู่แล้ว',
    'dashboard.channels': 'ช่องทาง',
    'dashboard.health': 'สถานะสุขภาพ',
    'dashboard.status': 'สถานะ',
    'dashboard.overview': 'ภาพรวม',
    'dashboard.system_info': 'ข้อมูลระบบ',
    'dashboard.quick_actions': 'การดำเนินการด่วน',

    // Agent / Chat
    'agent.title': 'แชทกับเอเจนต์',
    'agent.send': 'ส่ง',
    'agent.placeholder': 'พิมพ์ข้อความ...',
    'agent.start_conversation': 'ส่งข้อความเพื่อเริ่มการสนทนา',
    'agent.type_message': 'พิมพ์ข้อความ...',
    'agent.connecting': 'กำลังเชื่อมต่อ...',
    'agent.connected': 'เชื่อมต่อแล้ว',
    'agent.disconnected': 'ตัดการเชื่อมต่อ',
    'agent.reconnecting': 'กำลังเชื่อมต่อใหม่...',
    'agent.thinking': 'กำลังคิด...',
    'agent.tool_call': 'เรียกใช้เครื่องมือ',
    'agent.tool_result': 'ผลลัพธ์เครื่องมือ',
    'agent.connection_error': 'เกิดข้อผิดพลาดในการเชื่อมต่อ กำลังพยายามเชื่อมต่อใหม่...',
    'agent.tool_call_prefix': '[เรียกใช้เครื่องมือ]',
    'agent.tool_result_prefix': '[ผลลัพธ์เครื่องมือ]',
    'agent.error_prefix': '[ข้อผิดพลาด]',
    'agent.unknown_error': 'ข้อผิดพลาดที่ไม่ทราบสาเหตุ',
    'agent.send_error': 'ไม่สามารถส่งข้อความได้ กรุณาลองอีกครั้ง',
    'agent.copy_message': 'คัดลอกข้อความ',
    'agent.connected_status': 'เชื่อมต่อแล้ว',
    'agent.disconnected_status': 'ตัดการเชื่อมต่อ',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'เครื่องมือที่ใช้ได้',
    'tools.name': 'ชื่อ',
    'tools.description': 'คำอธิบาย',
    'tools.parameters': 'พารามิเตอร์',
    'tools.search': 'ค้นหาเครื่องมือ...',
    'tools.empty': 'ไม่มีเครื่องมือที่ใช้ได้',
    'tools.count': 'จำนวนเครื่องมือทั้งหมด',
    'tools.agent_tools': 'เครื่องมือเอเจนต์',
    'tools.cli_tools': 'เครื่องมือ CLI',
    'tools.parameter_schema': 'สคีมาพารามิเตอร์',
    'tools.path': 'เส้นทาง',
    'tools.version': 'เวอร์ชัน',
    'tools.category': 'หมวดหมู่',
    'tools.load_error': 'ไม่สามารถโหลดเครื่องมือได้',

    // Cron
    'cron.title': 'งานตามกำหนดเวลา',
    'cron.scheduled_tasks': 'งานตามกำหนดเวลา',
    'cron.add': 'เพิ่มงาน',
    'cron.add_job': 'เพิ่มงาน',
    'cron.add_modal_title': 'เพิ่มงาน Cron',
    'cron.delete': 'ลบ',
    'cron.enable': 'เปิดใช้งาน',
    'cron.disable': 'ปิดใช้งาน',
    'cron.name': 'ชื่อ',
    'cron.name_optional': 'ชื่อ (ไม่บังคับ)',
    'cron.command': 'คำสั่ง',
    'cron.command_required': 'คำสั่ง',
    'cron.schedule': 'กำหนดเวลา',
    'cron.schedule_required': 'กำหนดเวลา',
    'cron.next_run': 'การรันถัดไป',
    'cron.last_run': 'การรันล่าสุด',
    'cron.last_status': 'สถานะล่าสุด',
    'cron.enabled': 'เปิดใช้งาน',
    'cron.enabled_status': 'เปิดใช้งาน',
    'cron.disabled_status': 'ปิดใช้งาน',
    'cron.empty': 'ไม่มีงานตามกำหนดเวลา',
    'cron.confirm_delete': 'คุณแน่ใจหรือไม่ว่าต้องการลบงานนี้?',
    'cron.load_error': 'ไม่สามารถโหลดงาน Cron ได้',
    'cron.validation_error': 'กำหนดเวลาและคำสั่งเป็นข้อมูลจำเป็น',
    'cron.add_error': 'ไม่สามารถเพิ่มงานได้',
    'cron.delete_error': 'ไม่สามารถลบงานได้',
    'cron.cancel': 'ยกเลิก',
    'cron.adding': 'กำลังเพิ่ม...',
    'cron.id': 'ID',
    'cron.actions': 'การดำเนินการ',
    'cron.loading_run_history': 'กำลังโหลดประวัติการรัน...',
    'cron.load_run_history_error': 'ไม่สามารถโหลดประวัติการรันได้',
    'cron.no_runs': 'ยังไม่มีบันทึกการรัน',
    'cron.recent_runs': 'การรันล่าสุด',
    'cron.yes': 'ใช่',
    'cron.no': 'ไม่',
    'cron.edit': 'แก้ไข',
    'cron.edit_modal_title': 'แก้ไขงาน Cron',
    'cron.edit_error': 'ไม่สามารถอัปเดตงานได้',
    'cron.saving': 'กำลังบันทึก...',
    'cron.save': 'บันทึก',

    // Integrations
    'integrations.title': 'การเชื่อมต่อ',
    'integrations.available': 'พร้อมใช้งาน',
    'integrations.active': 'ใช้งานอยู่',
    'integrations.category': 'หมวดหมู่',
    'integrations.status': 'สถานะ',
    'integrations.search': 'ค้นหาการเชื่อมต่อ...',
    'integrations.empty': 'ไม่พบการเชื่อมต่อ',
    'integrations.activate': 'เปิดใช้งาน',
    'integrations.deactivate': 'ปิดใช้งาน',
    'integrations.load_error': 'ไม่สามารถโหลดการเชื่อมต่อได้',
    'integrations.status_active': 'ใช้งานอยู่',
    'integrations.status_available': 'พร้อมใช้งาน',

    // Memory
    'memory.title': 'คลังหน่วยความจำ',
    'memory.memory_title': 'หน่วยความจำ',
    'memory.search': 'ค้นหาในหน่วยความจำ...',
    'memory.search_placeholder': 'ค้นหารายการหน่วยความจำ...',
    'memory.add': 'บันทึกหน่วยความจำ',
    'memory.add_memory': 'เพิ่มหน่วยความจำ',
    'memory.add_modal_title': 'เพิ่มหน่วยความจำ',
    'memory.delete': 'ลบ',
    'memory.key': 'คีย์',
    'memory.key_required': 'คีย์',
    'memory.content': 'เนื้อหา',
    'memory.content_required': 'เนื้อหา',
    'memory.category': 'หมวดหมู่',
    'memory.category_optional': 'หมวดหมู่ (ไม่บังคับ)',
    'memory.timestamp': 'เวลา',
    'memory.session': 'เซสชัน',
    'memory.score': 'คะแนน',
    'memory.empty': 'ไม่พบรายการหน่วยความจำ',
    'memory.confirm_delete': 'คุณแน่ใจหรือไม่ว่าต้องการลบรายการหน่วยความจำนี้?',
    'memory.all_categories': 'ทุกหมวดหมู่',
    'memory.search_button': 'ค้นหา',
    'memory.load_error': 'ไม่สามารถโหลดหน่วยความจำได้',
    'memory.saving': 'กำลังบันทึก...',
    'memory.validation_error': 'คีย์และเนื้อหาเป็นข้อมูลจำเป็น',
    'memory.store_error': 'ไม่สามารถบันทึกหน่วยความจำได้',
    'memory.delete_error': 'ไม่สามารถลบหน่วยความจำได้',
    'memory.delete_confirm': 'ลบ?',
    'memory.yes': 'ใช่',
    'memory.no': 'ไม่',
    'memory.cancel': 'ยกเลิก',

    // Config

    // Cost
    'cost.title': 'ติดตามค่าใช้จ่าย',
    'cost.session': 'ค่าใช้จ่ายเซสชัน',
    'cost.daily': 'ค่าใช้จ่ายรายวัน',
    'cost.monthly': 'ค่าใช้จ่ายรายเดือน',
    'cost.total_tokens': 'Token ทั้งหมด',
    'cost.request_count': 'คำขอ',
    'cost.by_model': 'ค่าใช้จ่ายตามโมเดล',
    'cost.model': 'โมเดล',
    'cost.tokens': 'Token',
    'cost.requests': 'คำขอ',
    'cost.usd': 'ค่าใช้จ่าย (USD)',
    'cost.load_error': 'ไม่สามารถโหลดข้อมูลค่าใช้จ่ายได้',
    'cost.session_cost': 'ค่าใช้จ่ายเซสชัน',
    'cost.daily_cost': 'ค่าใช้จ่ายรายวัน',
    'cost.monthly_cost': 'ค่าใช้จ่ายรายเดือน',
    'cost.total_requests': 'คำขอทั้งหมด',
    'cost.token_statistics': 'สถิติ Token',
    'cost.avg_tokens_per_request': 'Token เฉลี่ย / คำขอ',
    'cost.cost_per_1k_tokens': 'ค่าใช้จ่ายต่อ 1K Token',
    'cost.model_breakdown': 'รายละเอียดตามโมเดล',
    'cost.no_model_data': 'ไม่มีข้อมูลโมเดล',
    'cost.cost': 'ค่าใช้จ่าย',
    'cost.share': 'แชร์',

    // Logs
    'logs.title': 'บันทึกแบบเรียลไทม์',
    'logs.live_logs': 'บันทึกแบบเรียลไทม์',
    'logs.clear': 'ล้าง',
    'logs.pause': 'หยุดชั่วคราว',
    'logs.resume': 'ดำเนินการต่อ',
    'logs.filter': 'กรองบันทึก...',
    'logs.filter_label': 'ตัวกรอง',
    'logs.empty': 'ไม่มีรายการบันทึก',
    'logs.connected': 'เชื่อมต่อแล้ว',
    'logs.disconnected': 'ตัดการเชื่อมต่อ',
    'logs.events': 'เหตุการณ์',
    'logs.jump_to_bottom': 'ข้ามไปด้านล่าง',
    'logs.paused_hint': 'การสตรีมบันทึกถูกหยุดชั่วคราว',
    'logs.waiting_hint': 'กำลังรอเหตุการณ์...',

    // Doctor
    'doctor.title': 'การวินิจฉัยระบบ',
    'doctor.diagnostics_title': 'การวินิจฉัย',
    'doctor.run': 'เรียกใช้การวินิจฉัย',
    'doctor.run_diagnostics': 'เรียกใช้การวินิจฉัย',
    'doctor.running': 'กำลังวินิจฉัย...',
    'doctor.running_btn': 'กำลังดำเนินการ...',
    'doctor.running_desc': 'กำลังวินิจฉัย...',
    'doctor.running_hint': 'อาจใช้เวลาสักครู่',
    'doctor.ok': 'OK',
    'doctor.warn': 'คำเตือน',
    'doctor.error': 'ข้อผิดพลาด',
    'doctor.severity': 'ความรุนแรง',
    'doctor.category': 'หมวดหมู่',
    'doctor.message': 'ข้อความ',
    'doctor.empty': 'ยังไม่ได้เรียกใช้การวินิจฉัย',
    'doctor.summary': 'สรุปการวินิจฉัย',
    'doctor.issues_found': 'พบปัญหา',
    'doctor.warnings_summary': 'คำเตือน',
    'doctor.all_clear': 'ทุกอย่างปกติ',
    'doctor.system_diagnostics': 'การวินิจฉัยระบบ',
    'doctor.empty_hint': 'คลิก "เรียกใช้การวินิจฉัย" เพื่อตรวจสอบการติดตั้ง KylinBot ของคุณ',

    // Auth / Pairing
    'auth.pair': 'จับคู่อุปกรณ์',
    'auth.pairing_code': 'รหัสจับคู่',
    'auth.pair_button': 'จับคู่',
    'auth.logout': 'ออกจากระบบ',
    'auth.pairing_success': 'จับคู่สำเร็จ!',
    'auth.pairing_failed': 'การจับคู่ล้มเหลว กรุณาลองอีกครั้ง',
    'auth.enter_code': 'ป้อนรหัสจับคู่เพื่อเชื่อมต่อกับเอเจนต์',

    // Common
    'common.loading': 'กำลังโหลด...',
    'common.error': 'เกิดข้อผิดพลาด',
    'common.retry': 'ลองอีกครั้ง',
    'common.cancel': 'ยกเลิก',
    'common.confirm': 'ยืนยัน',
    'common.save': 'บันทึก',
    'common.delete': 'ลบ',
    'common.edit': 'แก้ไข',
    'common.close': 'ปิด',
    'common.yes': 'ใช่',
    'common.no': 'ไม่',
    'common.search': 'ค้นหา...',
    'common.no_data': 'ไม่มีข้อมูล',
    'common.refresh': 'รีเฟรช',
    'common.back': 'กลับ',
    'common.actions': 'การดำเนินการ',
    'common.name': 'ชื่อ',
    'common.description': 'คำอธิบาย',
    'common.status': 'สถานะ',
    'common.created': 'สร้างเมื่อ',
    'common.updated': 'อัปเดตเมื่อ',

    // Health
    'health.title': 'สถานะสุขภาพระบบ',
    'health.component': 'คอมโพเนนต์',
    'health.status': 'สถานะ',
    'health.last_ok': 'OK ล่าสุด',
    'health.last_error': 'ข้อผิดพลาดล่าสุด',
    'health.restart_count': 'จำนวนรีสตาร์ท',
    'health.pid': 'ID กระบวนการ',
    'health.uptime': 'เวลาทำงาน',
    'health.updated_at': 'อัปเดตล่าสุด',

    // Dashboard
    'dashboard.provider_model': 'ผู้ให้บริการ / โมเดล',
    'dashboard.since_last_restart': 'ตั้งแต่การรีสตาร์ทล่าสุด',
    'dashboard.paired_yes': 'ใช่',
    'dashboard.paired_no': 'ไม่',
    'dashboard.cost_overview': 'ภาพรวมค่าใช้จ่าย',
    'dashboard.active_channels': 'ช่องทางที่ใช้งานอยู่',
    'dashboard.filter_active': 'ใช้งานอยู่',
    'dashboard.filter_all': 'ทั้งหมด',
    'dashboard.no_active_channels': 'ไม่มีช่องทางที่ใช้งานอยู่',
    'dashboard.component_health': 'สถานะสุขภาพคอมโพเนนต์',
    'dashboard.load_error': 'ไม่สามารถโหลดแดชบอร์ดได้',
    'dashboard.session_label': 'เซสชัน',
    'dashboard.daily_label': 'รายวัน',
    'dashboard.monthly_label': 'รายเดือน',
    'dashboard.total_tokens_label': 'Token ทั้งหมด',
    'dashboard.requests_label': 'คำขอ',
    'dashboard.no_channels': 'ไม่มีช่องทางที่ตั้งค่าไว้',
    'dashboard.active': 'ใช้งานอยู่',
    'dashboard.inactive': 'ไม่ใช้งาน',
    'dashboard.no_components': 'ไม่มีคอมโพเนนต์ที่รายงาน',
    'dashboard.restarts': 'รีสตาร์ท',
    'dashboard.tab_overview': 'ภาพรวม',
    'dashboard.tab_sessions': 'เซสชัน',
    'dashboard.tab_channels': 'ช่องทาง',
    'dashboard.sessions_title': 'เซสชันที่ใช้งานอยู่',
    'dashboard.no_sessions': 'ไม่มีเซสชันที่ใช้งานอยู่',
    'dashboard.session_id': 'ID เซสชัน',
    'dashboard.session_started': 'เริ่มต้น',
    'dashboard.session_last_activity': 'กิจกรรมล่าสุด',
    'dashboard.session_messages': 'ข้อความ',
    'dashboard.session_details': 'รายละเอียดเซสชัน',
    'dashboard.session_history': 'ดูประวัติ',
    'dashboard.channels_title': 'สถานะช่องทาง',
    'dashboard.no_channels_detail': 'ไม่มีรายละเอียดช่องทาง',
    'dashboard.channel_type': 'ประเภท',
    'dashboard.channel_messages': 'ข้อความ',
    'dashboard.channel_last_message': 'ข้อความล่าสุด',
    'dashboard.channel_config': 'การตั้งค่า',
    'dashboard.channel_enabled': 'เปิดใช้งาน',
    'dashboard.channel_disabled': 'ปิดใช้งาน',
    'dashboard.loading_sessions': 'กำลังโหลดเซสชัน...',
    'dashboard.loading_channels': 'กำลังโหลดช่องทาง...',
    'dashboard.load_sessions_error': 'ไม่สามารถโหลดเซสชันได้',
    'dashboard.load_channels_error': 'ไม่สามารถโหลดช่องทางได้',
    'dashboard.never': 'ไม่เคย',

    // Settings
    'settings.title': 'การตั้งค่า',
    'settings.tab.appearance': 'ลักษณะที่ปรากฏ',
    'settings.tab.typography': 'ตัวอักษร',
    'settings.appearance': 'ลักษณะที่ปรากฏ',
    'settings.typography': 'ตัวอักษร',
    'settings.fontUi': 'ฟอนต์ UI',
    'settings.fontMono': 'ฟอนต์โค้ด',
    'settings.fontSize': 'ขนาดฟอนต์ UI',
    'settings.fontMonoSize': 'ขนาดฟอนต์โค้ด',
    'settings.preview': 'ตัวอย่าง',
    'settings.previewText': 'นายสมชายชอบกินข้าวผัดกระเพราไก่ไข่ดาวทุกวัน',
    'settings.fontNote': 'การเปลี่ยนฟอนต์จะมีผลเมื่อโหลดหน้าใหม่',
    'settings.language': 'ภาษา',

    // Theme
    'theme.mode': 'โหมดธีม',
    'theme.accent': 'สีเน้น',
    'theme.system': 'ระบบ',
    'theme.dark': 'มืด',
    'theme.light': 'สว่าง',
    'theme.oled': 'OLED ดำ',
  },

  tl: {
    // Navigation
    'nav.dashboard': 'Dashboard',
    'nav.agent': 'Ahente',
    'nav.tools': 'Mga Kagamitan',
    'nav.cron': 'Mga Nakaiskedyul na Gawain',
    'nav.integrations': 'Mga Integrasyon',
    'nav.memory': 'Memorya',
    'nav.config': 'Config',
    'nav.cost': 'Tagasubaybay ng Gastos',
    'nav.logs': 'Mga Log',
    'nav.doctor': 'Diagnostiko',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Dashboard',
    'dashboard.provider': 'Tagapagbigay',
    'dashboard.model': 'Modelo',
    'dashboard.uptime': 'Oras ng Pagpapatakbo',
    'dashboard.temperature': 'Temperatura',
    'dashboard.gateway_port': 'Port ng Gateway',
    'dashboard.memory_backend': 'Backend ng Memorya',
    'dashboard.paired': 'Nakapares',
    'dashboard.channels': 'Mga Channel',
    'dashboard.health': 'Kalusugan',
    'dashboard.status': 'Katayuan',
    'dashboard.overview': 'Pangkalahatang-tanaw',
    'dashboard.system_info': 'Impormasyon ng Sistema',
    'dashboard.quick_actions': 'Mga Mabilisang Aksyon',

    // Agent / Chat
    'agent.title': 'Chat ng Ahente',
    'agent.send': 'Ipadala',
    'agent.placeholder': 'Mag-type ng mensahe...',
    'agent.start_conversation': 'Magpadala ng mensahe upang simulan ang pag-uusap',
    'agent.type_message': 'Mag-type ng mensahe...',
    'agent.connecting': 'Kumokonekta...',
    'agent.connected': 'Konektado',
    'agent.disconnected': 'Hindi Konektado',
    'agent.reconnecting': 'Muling kumokonekta...',
    'agent.thinking': 'Nag-iisip...',
    'agent.tool_call': 'Tawag sa Kagamitan',
    'agent.tool_result': 'Resulta ng Kagamitan',
    'agent.connection_error': 'Error sa koneksyon. Sinusubukang kumonekta muli...',
    'agent.tool_call_prefix': '[Tawag sa Kagamitan]',
    'agent.tool_result_prefix': '[Resulta ng Kagamitan]',
    'agent.error_prefix': '[Error]',
    'agent.unknown_error': 'Hindi kilalang error',
    'agent.send_error': 'Hindi maipadala ang mensahe. Pakisubukan muli.',
    'agent.copy_message': 'Kopyahin ang mensahe',
    'agent.connected_status': 'Konektado',
    'agent.disconnected_status': 'Hindi Konektado',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Mga Magagamit na Kagamitan',
    'tools.name': 'Pangalan',
    'tools.description': 'Paglalarawan',
    'tools.parameters': 'Mga Parameter',
    'tools.search': 'Maghanap ng mga kagamitan...',
    'tools.empty': 'Walang magagamit na kagamitan.',
    'tools.count': 'Kabuuang mga kagamitan',
    'tools.agent_tools': 'Mga Kagamitan ng Ahente',
    'tools.cli_tools': 'Mga Kagamitan ng CLI',
    'tools.parameter_schema': 'Schema ng Parameter',
    'tools.path': 'Landas',
    'tools.version': 'Bersyon',
    'tools.category': 'Kategorya',
    'tools.load_error': 'Hindi ma-load ang mga kagamitan',

    // Cron
    'cron.title': 'Mga Nakaiskedyul na Gawain',
    'cron.scheduled_tasks': 'Mga Nakaiskedyul na Gawain',
    'cron.add': 'Magdagdag ng Gawain',
    'cron.add_job': 'Magdagdag ng Gawain',
    'cron.add_modal_title': 'Magdagdag ng Cron Job',
    'cron.delete': 'Tanggalin',
    'cron.enable': 'I-enable',
    'cron.disable': 'I-disable',
    'cron.name': 'Pangalan',
    'cron.name_optional': 'Pangalan (opsyonal)',
    'cron.command': 'Utos',
    'cron.command_required': 'Utos',
    'cron.schedule': 'Iskedyul',
    'cron.schedule_required': 'Iskedyul',
    'cron.next_run': 'Susunod na Pagpapatakbo',
    'cron.last_run': 'Huling Pagpapatakbo',
    'cron.last_status': 'Huling Katayuan',
    'cron.enabled': 'Naka-enable',
    'cron.enabled_status': 'Naka-enable',
    'cron.disabled_status': 'Naka-disable',
    'cron.empty': 'Walang nakaiskedyul na gawain.',
    'cron.confirm_delete': 'Sigurado ka bang gusto mong tanggalin ang gawaing ito?',
    'cron.load_error': 'Hindi ma-load ang mga Cron job',
    'cron.validation_error': 'Kinakailangan ang iskedyul at utos.',
    'cron.add_error': 'Hindi maidagdag ang gawain',
    'cron.delete_error': 'Hindi matanggal ang gawain',
    'cron.cancel': 'Kanselahin',
    'cron.adding': 'Idinadagdag...',
    'cron.id': 'ID',
    'cron.actions': 'Mga Aksyon',
    'cron.loading_run_history': 'Nilo-load ang kasaysayan ng pagpapatakbo...',
    'cron.load_run_history_error': 'Hindi ma-load ang kasaysayan ng pagpapatakbo',
    'cron.no_runs': 'Wala pang naitatalang pagpapatakbo.',
    'cron.recent_runs': 'Mga Kamakailang Pagpapatakbo',
    'cron.yes': 'Oo',
    'cron.no': 'Hindi',
    'cron.edit': 'I-edit',
    'cron.edit_modal_title': 'I-edit ang Cron Job',
    'cron.edit_error': 'Hindi ma-update ang gawain',
    'cron.saving': 'Sine-save...',
    'cron.save': 'I-save',

    // Integrations
    'integrations.title': 'Mga Integrasyon',
    'integrations.available': 'Magagamit',
    'integrations.active': 'Aktibo',
    'integrations.category': 'Kategorya',
    'integrations.status': 'Katayuan',
    'integrations.search': 'Maghanap ng mga integrasyon...',
    'integrations.empty': 'Walang nahanap na integrasyon.',
    'integrations.activate': 'I-activate',
    'integrations.deactivate': 'I-deactivate',
    'integrations.load_error': 'Hindi ma-load ang mga integrasyon',
    'integrations.status_active': 'Aktibo',
    'integrations.status_available': 'Magagamit',

    // Memory
    'memory.title': 'Imbakan ng Memorya',
    'memory.memory_title': 'Memorya',
    'memory.search': 'Maghanap sa memorya...',
    'memory.search_placeholder': 'Maghanap ng mga entry sa memorya...',
    'memory.add': 'Mag-imbak ng Memorya',
    'memory.add_memory': 'Magdagdag ng Memorya',
    'memory.add_modal_title': 'Magdagdag ng Memorya',
    'memory.delete': 'Tanggalin',
    'memory.key': 'Susi',
    'memory.key_required': 'Susi',
    'memory.content': 'Nilalaman',
    'memory.content_required': 'Nilalaman',
    'memory.category': 'Kategorya',
    'memory.category_optional': 'Kategorya (opsyonal)',
    'memory.timestamp': 'Timestamp',
    'memory.session': 'Sesyon',
    'memory.score': 'Iskor',
    'memory.empty': 'Walang nahanap na entry sa memorya.',
    'memory.confirm_delete': 'Sigurado ka bang gusto mong tanggalin ang entry na ito sa memorya?',
    'memory.all_categories': 'Lahat ng Kategorya',
    'memory.search_button': 'Maghanap',
    'memory.load_error': 'Hindi ma-load ang memorya',
    'memory.saving': 'Sine-save...',
    'memory.validation_error': 'Kinakailangan ang susi at nilalaman.',
    'memory.store_error': 'Hindi ma-save ang memorya',
    'memory.delete_error': 'Hindi matanggal ang memorya',
    'memory.delete_confirm': 'Tanggalin?',
    'memory.yes': 'Oo',
    'memory.no': 'Hindi',
    'memory.cancel': 'Kanselahin',

    // Config

    // Cost
    'cost.title': 'Tagasubaybay ng Gastos',
    'cost.session': 'Gastos ng Sesyon',
    'cost.daily': 'Araw-araw na Gastos',
    'cost.monthly': 'Buwanang Gastos',
    'cost.total_tokens': 'Kabuuang Token',
    'cost.request_count': 'Mga Kahilingan',
    'cost.by_model': 'Gastos ayon sa Modelo',
    'cost.model': 'Modelo',
    'cost.tokens': 'Token',
    'cost.requests': 'Mga Kahilingan',
    'cost.usd': 'Gastos (USD)',
    'cost.load_error': 'Hindi ma-load ang datos ng gastos',
    'cost.session_cost': 'Gastos ng Sesyon',
    'cost.daily_cost': 'Araw-araw na Gastos',
    'cost.monthly_cost': 'Buwanang Gastos',
    'cost.total_requests': 'Kabuuang Mga Kahilingan',
    'cost.token_statistics': 'Mga Istatistika ng Token',
    'cost.avg_tokens_per_request': 'Avg Token / Kahilingan',
    'cost.cost_per_1k_tokens': 'Gastos bawat 1K Token',
    'cost.model_breakdown': 'Detalye ayon sa Modelo',
    'cost.no_model_data': 'Walang magagamit na datos ng modelo.',
    'cost.cost': 'Gastos',
    'cost.share': 'Ibahagi',

    // Logs
    'logs.title': 'Mga Live na Log',
    'logs.live_logs': 'Mga Live na Log',
    'logs.clear': 'I-clear',
    'logs.pause': 'I-pause',
    'logs.resume': 'Ituloy',
    'logs.filter': 'I-filter ang mga log...',
    'logs.filter_label': 'Filter',
    'logs.empty': 'Walang mga entry sa log.',
    'logs.connected': 'Konektado',
    'logs.disconnected': 'Hindi Konektado',
    'logs.events': 'mga event',
    'logs.jump_to_bottom': 'Pumunta sa ibaba',
    'logs.paused_hint': 'Naka-pause ang log streaming.',
    'logs.waiting_hint': 'Naghihintay ng mga event...',

    // Doctor
    'doctor.title': 'Diagnostiko ng Sistema',
    'doctor.diagnostics_title': 'Diagnostiko',
    'doctor.run': 'Patakbuhin ang Diagnostiko',
    'doctor.run_diagnostics': 'Patakbuhin ang Diagnostiko',
    'doctor.running': 'Pinapatakbo ang diagnostiko...',
    'doctor.running_btn': 'Pinapatakbo...',
    'doctor.running_desc': 'Pinapatakbo ang diagnostiko...',
    'doctor.running_hint': 'Maaaring tumagal ng ilang segundo.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Babala',
    'doctor.error': 'Error',
    'doctor.severity': 'Kalubhaan',
    'doctor.category': 'Kategorya',
    'doctor.message': 'Mensahe',
    'doctor.empty': 'Wala pang naipatakbong diagnostiko.',
    'doctor.summary': 'Buod ng Diagnostiko',
    'doctor.issues_found': 'Mga Nahanap na Isyu',
    'doctor.warnings_summary': 'Mga Babala',
    'doctor.all_clear': 'Walang Problema',
    'doctor.system_diagnostics': 'Diagnostiko ng Sistema',
    'doctor.empty_hint': 'I-click ang "Patakbuhin ang Diagnostiko" upang suriin ang iyong KylinBot installation.',

    // Auth / Pairing
    'auth.pair': 'Ipares ang Device',
    'auth.pairing_code': 'Code ng Pagpapares',
    'auth.pair_button': 'Ipares',
    'auth.logout': 'Mag-logout',
    'auth.pairing_success': 'Matagumpay ang pagpapares!',
    'auth.pairing_failed': 'Nabigo ang pagpapares. Pakisubukan muli.',
    'auth.enter_code': 'Ilagay ang iyong code ng pagpapares upang kumonekta sa ahente.',

    // Common
    'common.loading': 'Nilo-load...',
    'common.error': 'May naganap na error.',
    'common.retry': 'Subukan Muli',
    'common.cancel': 'Kanselahin',
    'common.confirm': 'Kumpirmahin',
    'common.save': 'I-save',
    'common.delete': 'Tanggalin',
    'common.edit': 'I-edit',
    'common.close': 'Isara',
    'common.yes': 'Oo',
    'common.no': 'Hindi',
    'common.search': 'Maghanap...',
    'common.no_data': 'Walang magagamit na datos.',
    'common.refresh': 'I-refresh',
    'common.back': 'Bumalik',
    'common.actions': 'Mga Aksyon',
    'common.name': 'Pangalan',
    'common.description': 'Paglalarawan',
    'common.status': 'Katayuan',
    'common.created': 'Ginawa',
    'common.updated': 'Na-update',

    // Health
    'health.title': 'Kalusugan ng Sistema',
    'health.component': 'Komponent',
    'health.status': 'Katayuan',
    'health.last_ok': 'Huling OK',
    'health.last_error': 'Huling Error',
    'health.restart_count': 'Mga Restart',
    'health.pid': 'Process ID',
    'health.uptime': 'Oras ng Pagpapatakbo',
    'health.updated_at': 'Huling Na-update',

    // Dashboard
    'dashboard.provider_model': 'Tagapagbigay / Modelo',
    'dashboard.since_last_restart': 'Mula sa huling restart',
    'dashboard.paired_yes': 'Oo',
    'dashboard.paired_no': 'Hindi',
    'dashboard.cost_overview': 'Pangkalahatang-tanaw ng Gastos',
    'dashboard.active_channels': 'Mga Aktibong Channel',
    'dashboard.filter_active': 'Aktibo',
    'dashboard.filter_all': 'Lahat',
    'dashboard.no_active_channels': 'Walang aktibong channel',
    'dashboard.component_health': 'Kalusugan ng Komponent',
    'dashboard.load_error': 'Hindi ma-load ang dashboard',
    'dashboard.session_label': 'Sesyon',
    'dashboard.daily_label': 'Araw-araw',
    'dashboard.monthly_label': 'Buwanan',
    'dashboard.total_tokens_label': 'Kabuuang Token',
    'dashboard.requests_label': 'Mga Kahilingan',
    'dashboard.no_channels': 'Walang naka-configure na channel',
    'dashboard.active': 'Aktibo',
    'dashboard.inactive': 'Hindi Aktibo',
    'dashboard.no_components': 'Walang nag-uulat na komponent',
    'dashboard.restarts': 'Mga Restart',
    'dashboard.tab_overview': 'Pangkalahatang-tanaw',
    'dashboard.tab_sessions': 'Mga Sesyon',
    'dashboard.tab_channels': 'Mga Channel',
    'dashboard.sessions_title': 'Mga Aktibong Sesyon',
    'dashboard.no_sessions': 'Walang aktibong sesyon',
    'dashboard.session_id': 'Session ID',
    'dashboard.session_started': 'Nagsimula',
    'dashboard.session_last_activity': 'Huling Aktibidad',
    'dashboard.session_messages': 'Mga Mensahe',
    'dashboard.session_details': 'Detalye ng Sesyon',
    'dashboard.session_history': 'Tingnan ang Kasaysayan',
    'dashboard.channels_title': 'Katayuan ng Channel',
    'dashboard.no_channels_detail': 'Walang magagamit na detalye ng channel',
    'dashboard.channel_type': 'Uri',
    'dashboard.channel_messages': 'Mga Mensahe',
    'dashboard.channel_last_message': 'Huling Mensahe',
    'dashboard.channel_config': 'Kompigurasyon',
    'dashboard.channel_enabled': 'Naka-enable',
    'dashboard.channel_disabled': 'Naka-disable',
    'dashboard.loading_sessions': 'Nilo-load ang mga sesyon...',
    'dashboard.loading_channels': 'Nilo-load ang mga channel...',
    'dashboard.load_sessions_error': 'Hindi ma-load ang mga sesyon',
    'dashboard.load_channels_error': 'Hindi ma-load ang mga channel',
    'dashboard.never': 'Hindi Kailanman',

    // Settings
    'settings.title': 'Mga Setting',
    'settings.tab.appearance': 'Hitsura',
    'settings.tab.typography': 'Tipograpiya',
    'settings.appearance': 'Hitsura',
    'settings.typography': 'Tipograpiya',
    'settings.fontUi': 'Font ng UI',
    'settings.fontMono': 'Font ng Code',
    'settings.fontSize': 'Laki ng Font ng UI',
    'settings.fontMonoSize': 'Laki ng Font ng Code',
    'settings.preview': 'Preview',
    'settings.previewText': 'Ang mabilis na kayumangging soro ay tumalon sa tamad na aso.',
    'settings.fontNote': 'Ang mga pagbabago sa font ay mag-aapply kapag ni-reload ang pahina.',
    'settings.language': 'Wika',

    // Theme
    'theme.mode': 'Mode ng Tema',
    'theme.accent': 'Kulay ng Accent',
    'theme.system': 'Sistema',
    'theme.dark': 'Madilim',
    'theme.light': 'Maliwanag',
    'theme.oled': 'OLED Itim',
  },

  uk: {
    // Navigation
    'nav.dashboard': 'Панель керування',
    'nav.agent': 'Агент',
    'nav.tools': 'Інструменти',
    'nav.cron': 'Заплановані завдання',
    'nav.integrations': 'Інтеграції',
    'nav.memory': 'Пам\'ять',
    'nav.config': 'Config',
    'nav.cost': 'Облік витрат',
    'nav.logs': 'Журнали',
    'nav.doctor': 'Діагностика',
    'nav.canvas': 'Полотно',

    // Dashboard
    'dashboard.title': 'Панель керування',
    'dashboard.provider': 'Провайдер',
    'dashboard.model': 'Модель',
    'dashboard.uptime': 'Час роботи',
    'dashboard.temperature': 'Температура',
    'dashboard.gateway_port': 'Порт шлюзу',
    'dashboard.memory_backend': 'Бекенд пам\'яті',
    'dashboard.paired': 'З\'єднано',
    'dashboard.channels': 'Канали',
    'dashboard.health': 'Стан',
    'dashboard.status': 'Статус',
    'dashboard.overview': 'Огляд',
    'dashboard.system_info': 'Інформація про систему',
    'dashboard.quick_actions': 'Швидкі дії',

    // Agent / Chat
    'agent.title': 'Чат з агентом',
    'agent.send': 'Надіслати',
    'agent.placeholder': 'Введіть повідомлення...',
    'agent.start_conversation': 'Надішліть повідомлення, щоб розпочати розмову',
    'agent.type_message': 'Введіть повідомлення...',
    'agent.connecting': 'Підключення...',
    'agent.connected': 'Підключено',
    'agent.disconnected': 'Відключено',
    'agent.reconnecting': 'Перепідключення...',
    'agent.thinking': 'Думаю...',
    'agent.tool_call': 'Виклик інструменту',
    'agent.tool_result': 'Результат інструменту',
    'agent.connection_error': 'Помилка з\'єднання. Спроба перепідключення...',
    'agent.tool_call_prefix': '[Виклик інструменту]',
    'agent.tool_result_prefix': '[Результат інструменту]',
    'agent.error_prefix': '[Помилка]',
    'agent.unknown_error': 'Невідома помилка',
    'agent.send_error': 'Не вдалося надіслати повідомлення. Будь ласка, спробуйте знову.',
    'agent.copy_message': 'Скопіювати повідомлення',
    'agent.connected_status': 'Підключено',
    'agent.disconnected_status': 'Відключено',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Доступні інструменти',
    'tools.name': 'Назва',
    'tools.description': 'Опис',
    'tools.parameters': 'Параметри',
    'tools.search': 'Пошук інструментів...',
    'tools.empty': 'Немає доступних інструментів.',
    'tools.count': 'Загалом інструментів',
    'tools.agent_tools': 'Інструменти агента',
    'tools.cli_tools': 'Інструменти CLI',
    'tools.parameter_schema': 'Схема параметрів',
    'tools.path': 'Шлях',
    'tools.version': 'Версія',
    'tools.category': 'Категорія',
    'tools.load_error': 'Не вдалося завантажити інструменти',

    // Cron
    'cron.title': 'Заплановані завдання',
    'cron.scheduled_tasks': 'Заплановані завдання',
    'cron.add': 'Додати завдання',
    'cron.add_job': 'Додати завдання',
    'cron.add_modal_title': 'Додати завдання Cron',
    'cron.delete': 'Видалити',
    'cron.enable': 'Увімкнути',
    'cron.disable': 'Вимкнути',
    'cron.name': 'Назва',
    'cron.name_optional': 'Назва (необов\'язково)',
    'cron.command': 'Команда',
    'cron.command_required': 'Команда',
    'cron.schedule': 'Розклад',
    'cron.schedule_required': 'Розклад',
    'cron.next_run': 'Наступний запуск',
    'cron.last_run': 'Останній запуск',
    'cron.last_status': 'Останній статус',
    'cron.enabled': 'Увімкнено',
    'cron.enabled_status': 'Увімкнено',
    'cron.disabled_status': 'Вимкнено',
    'cron.empty': 'Немає запланованих завдань.',
    'cron.confirm_delete': 'Ви впевнені, що хочете видалити це завдання?',
    'cron.load_error': 'Не вдалося завантажити завдання Cron',
    'cron.validation_error': 'Розклад і команда є обов\'язковими.',
    'cron.add_error': 'Не вдалося додати завдання',
    'cron.delete_error': 'Не вдалося видалити завдання',
    'cron.cancel': 'Скасувати',
    'cron.adding': 'Додавання...',
    'cron.id': 'ID',
    'cron.actions': 'Дії',
    'cron.loading_run_history': 'Завантаження історії запусків...',
    'cron.load_run_history_error': 'Не вдалося завантажити історію запусків',
    'cron.no_runs': 'Записів про запуски ще немає.',
    'cron.recent_runs': 'Останні запуски',
    'cron.yes': 'Так',
    'cron.no': 'Ні',
    'cron.edit': 'Редагувати',
    'cron.edit_modal_title': 'Редагувати завдання Cron',
    'cron.edit_error': 'Не вдалося оновити завдання',
    'cron.saving': 'Збереження...',
    'cron.save': 'Зберегти',

    // Integrations
    'integrations.title': 'Інтеграції',
    'integrations.available': 'Доступно',
    'integrations.active': 'Активно',
    'integrations.category': 'Категорія',
    'integrations.status': 'Статус',
    'integrations.search': 'Пошук інтеграцій...',
    'integrations.empty': 'Інтеграцій не знайдено.',
    'integrations.activate': 'Активувати',
    'integrations.deactivate': 'Деактивувати',
    'integrations.load_error': 'Не вдалося завантажити інтеграції',
    'integrations.status_active': 'Активно',
    'integrations.status_available': 'Доступно',

    // Memory
    'memory.title': 'Сховище пам\'яті',
    'memory.memory_title': 'Пам\'ять',
    'memory.search': 'Пошук у пам\'яті...',
    'memory.search_placeholder': 'Пошук записів пам\'яті...',
    'memory.add': 'Зберегти в пам\'ять',
    'memory.add_memory': 'Додати запис',
    'memory.add_modal_title': 'Додати запис',
    'memory.delete': 'Видалити',
    'memory.key': 'Ключ',
    'memory.key_required': 'Ключ',
    'memory.content': 'Вміст',
    'memory.content_required': 'Вміст',
    'memory.category': 'Категорія',
    'memory.category_optional': 'Категорія (необов\'язково)',
    'memory.timestamp': 'Мітка часу',
    'memory.session': 'Сесія',
    'memory.score': 'Оцінка',
    'memory.empty': 'Записів пам\'яті не знайдено.',
    'memory.confirm_delete': 'Ви впевнені, що хочете видалити цей запис пам\'яті?',
    'memory.all_categories': 'Усі категорії',
    'memory.search_button': 'Пошук',
    'memory.load_error': 'Не вдалося завантажити пам\'ять',
    'memory.saving': 'Збереження...',
    'memory.validation_error': 'Ключ і вміст є обов\'язковими.',
    'memory.store_error': 'Не вдалося зберегти запис',
    'memory.delete_error': 'Не вдалося видалити запис',
    'memory.delete_confirm': 'Видалити?',
    'memory.yes': 'Так',
    'memory.no': 'Ні',
    'memory.cancel': 'Скасувати',

    // Config

    // Cost
    'cost.title': 'Облік витрат',
    'cost.session': 'Вартість сесії',
    'cost.daily': 'Щоденна вартість',
    'cost.monthly': 'Щомісячна вартість',
    'cost.total_tokens': 'Загалом токенів',
    'cost.request_count': 'Запити',
    'cost.by_model': 'Вартість за моделлю',
    'cost.model': 'Модель',
    'cost.tokens': 'Токени',
    'cost.requests': 'Запити',
    'cost.usd': 'Вартість (USD)',
    'cost.load_error': 'Не вдалося завантажити дані про витрати',
    'cost.session_cost': 'Вартість сесії',
    'cost.daily_cost': 'Щоденна вартість',
    'cost.monthly_cost': 'Щомісячна вартість',
    'cost.total_requests': 'Загалом запитів',
    'cost.token_statistics': 'Статистика токенів',
    'cost.avg_tokens_per_request': 'Середня кількість токенів / запит',
    'cost.cost_per_1k_tokens': 'Вартість за 1K токенів',
    'cost.model_breakdown': 'Розбивка за моделями',
    'cost.no_model_data': 'Дані за моделями відсутні.',
    'cost.cost': 'Вартість',
    'cost.share': 'Поділитися',

    // Logs
    'logs.title': 'Журнал у реальному часі',
    'logs.live_logs': 'Журнал у реальному часі',
    'logs.clear': 'Очистити',
    'logs.pause': 'Пауза',
    'logs.resume': 'Продовжити',
    'logs.filter': 'Фільтр журналів...',
    'logs.filter_label': 'Фільтр',
    'logs.empty': 'Немає записів у журналі.',
    'logs.connected': 'Підключено',
    'logs.disconnected': 'Відключено',
    'logs.events': 'подій',
    'logs.jump_to_bottom': 'Перейти донизу',
    'logs.paused_hint': 'Потокову передачу журналів призупинено.',
    'logs.waiting_hint': 'Очікування подій...',

    // Doctor
    'doctor.title': 'Діагностика системи',
    'doctor.diagnostics_title': 'Діагностика',
    'doctor.run': 'Запустити діагностику',
    'doctor.run_diagnostics': 'Запустити діагностику',
    'doctor.running': 'Виконується діагностика...',
    'doctor.running_btn': 'Виконується...',
    'doctor.running_desc': 'Виконується діагностика...',
    'doctor.running_hint': 'Це може зайняти кілька секунд.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Попередження',
    'doctor.error': 'Помилка',
    'doctor.severity': 'Серйозність',
    'doctor.category': 'Категорія',
    'doctor.message': 'Повідомлення',
    'doctor.empty': 'Діагностику ще не проводили.',
    'doctor.summary': 'Підсумок діагностики',
    'doctor.issues_found': 'Виявлені проблеми',
    'doctor.warnings_summary': 'Попередження',
    'doctor.all_clear': 'Все гаразд',
    'doctor.system_diagnostics': 'Діагностика системи',
    'doctor.empty_hint': 'Натисніть «Запустити діагностику», щоб перевірити встановлення KylinBot.',

    // Auth / Pairing
    'auth.pair': 'З\'єднати пристрій',
    'auth.pairing_code': 'Код з\'єднання',
    'auth.pair_button': 'З\'єднати',
    'auth.logout': 'Вийти',
    'auth.pairing_success': 'З\'єднання успішне!',
    'auth.pairing_failed': 'З\'єднання не вдалося. Будь ласка, спробуйте знову.',
    'auth.enter_code': 'Введіть код з\'єднання для підключення до агента.',

    // Common
    'common.loading': 'Завантаження...',
    'common.error': 'Сталася помилка.',
    'common.retry': 'Повторити',
    'common.cancel': 'Скасувати',
    'common.confirm': 'Підтвердити',
    'common.save': 'Зберегти',
    'common.delete': 'Видалити',
    'common.edit': 'Редагувати',
    'common.close': 'Закрити',
    'common.yes': 'Так',
    'common.no': 'Ні',
    'common.search': 'Пошук...',
    'common.no_data': 'Дані відсутні.',
    'common.refresh': 'Оновити',
    'common.back': 'Назад',
    'common.actions': 'Дії',
    'common.name': 'Назва',
    'common.description': 'Опис',
    'common.status': 'Статус',
    'common.created': 'Створено',
    'common.updated': 'Оновлено',

    // Health
    'health.title': 'Стан системи',
    'health.component': 'Компонент',
    'health.status': 'Статус',
    'health.last_ok': 'Останнє OK',
    'health.last_error': 'Остання помилка',
    'health.restart_count': 'Перезапуски',
    'health.pid': 'ID процесу',
    'health.uptime': 'Час роботи',
    'health.updated_at': 'Останнє оновлення',

    // Dashboard
    'dashboard.provider_model': 'Провайдер / Модель',
    'dashboard.since_last_restart': 'З останнього перезапуску',
    'dashboard.paired_yes': 'Так',
    'dashboard.paired_no': 'Ні',
    'dashboard.cost_overview': 'Огляд витрат',
    'dashboard.active_channels': 'Активні канали',
    'dashboard.filter_active': 'Активні',
    'dashboard.filter_all': 'Усі',
    'dashboard.no_active_channels': 'Немає активних каналів',
    'dashboard.component_health': 'Стан компонентів',
    'dashboard.load_error': 'Не вдалося завантажити панель керування',
    'dashboard.session_label': 'Сесія',
    'dashboard.daily_label': 'Щоденна',
    'dashboard.monthly_label': 'Щомісячна',
    'dashboard.total_tokens_label': 'Загалом токенів',
    'dashboard.requests_label': 'Запити',
    'dashboard.no_channels': 'Канали не налаштовані',
    'dashboard.active': 'Активно',
    'dashboard.inactive': 'Неактивно',
    'dashboard.no_components': 'Немає звітів від компонентів',
    'dashboard.restarts': 'Перезапуски',
    'dashboard.tab_overview': 'Огляд',
    'dashboard.tab_sessions': 'Сесії',
    'dashboard.tab_channels': 'Канали',
    'dashboard.sessions_title': 'Активні сесії',
    'dashboard.no_sessions': 'Немає активних сесій',
    'dashboard.session_id': 'ID сесії',
    'dashboard.session_started': 'Розпочато',
    'dashboard.session_last_activity': 'Остання активність',
    'dashboard.session_messages': 'Повідомлення',
    'dashboard.session_details': 'Деталі сесії',
    'dashboard.session_history': 'Переглянути історію',
    'dashboard.channels_title': 'Статус каналів',
    'dashboard.no_channels_detail': 'Немає даних про канали',
    'dashboard.channel_type': 'Тип',
    'dashboard.channel_messages': 'Повідомлення',
    'dashboard.channel_last_message': 'Останнє повідомлення',
    'dashboard.channel_config': 'Конфігурація',
    'dashboard.channel_enabled': 'Увімкнено',
    'dashboard.channel_disabled': 'Вимкнено',
    'dashboard.loading_sessions': 'Завантаження сесій...',
    'dashboard.loading_channels': 'Завантаження каналів...',
    'dashboard.load_sessions_error': 'Не вдалося завантажити сесії',
    'dashboard.load_channels_error': 'Не вдалося завантажити канали',
    'dashboard.never': 'Ніколи',

    // Settings
    'settings.title': 'Налаштування',
    'settings.tab.appearance': 'Зовнішній вигляд',
    'settings.tab.typography': 'Типографіка',
    'settings.appearance': 'Зовнішній вигляд',
    'settings.typography': 'Типографіка',
    'settings.fontUi': 'Шрифт інтерфейсу',
    'settings.fontMono': 'Шрифт коду',
    'settings.fontSize': 'Розмір шрифту інтерфейсу',
    'settings.fontMonoSize': 'Розмір шрифту коду',
    'settings.preview': 'Попередній перегляд',
    'settings.previewText': 'Чуєш їх, доцю, — Loss ґедзь, щей фах, шик, бар.',
    'settings.fontNote': 'Зміни шрифту застосовуються при перезавантаженні сторінки.',
    'settings.language': 'Мова',

    // Theme
    'theme.mode': 'Режим теми',
    'theme.accent': 'Колір акценту',
    'theme.system': 'Системна',
    'theme.dark': 'Темна',
    'theme.light': 'Світла',
    'theme.oled': 'OLED чорна',
  },

  ur: {
    // Navigation
    'nav.dashboard': 'ڈیش بورڈ',
    'nav.agent': 'ایجنٹ',
    'nav.tools': 'ٹولز',
    'nav.cron': 'شیڈول شدہ کام',
    'nav.integrations': 'انٹیگریشنز',
    'nav.memory': 'میموری',
    'nav.config': 'Config',
    'nav.cost': 'لاگت ٹریکر',
    'nav.logs': 'لاگز',
    'nav.doctor': 'تشخیص',
    'nav.canvas': 'کینوس',

    // Dashboard
    'dashboard.title': 'ڈیش بورڈ',
    'dashboard.provider': 'فراہم کنندہ',
    'dashboard.model': 'ماڈل',
    'dashboard.uptime': 'اپ ٹائم',
    'dashboard.temperature': 'درجہ حرارت',
    'dashboard.gateway_port': 'گیٹ وے پورٹ',
    'dashboard.memory_backend': 'میموری بیک اینڈ',
    'dashboard.paired': 'جوڑا بنایا گیا',
    'dashboard.channels': 'چینلز',
    'dashboard.health': 'صحت',
    'dashboard.status': 'حالت',
    'dashboard.overview': 'جائزہ',
    'dashboard.system_info': 'سسٹم کی معلومات',
    'dashboard.quick_actions': 'فوری اقدامات',

    // Agent / Chat
    'agent.title': 'ایجنٹ چیٹ',
    'agent.send': 'بھیجیں',
    'agent.placeholder': 'پیغام لکھیں...',
    'agent.start_conversation': 'بات چیت شروع کرنے کے لیے پیغام بھیجیں',
    'agent.type_message': 'پیغام لکھیں...',
    'agent.connecting': 'جوڑ رہا ہے...',
    'agent.connected': 'جڑا ہوا',
    'agent.disconnected': 'منقطع',
    'agent.reconnecting': 'دوبارہ جوڑ رہا ہے...',
    'agent.thinking': 'سوچ رہا ہے...',
    'agent.tool_call': 'ٹول کال',
    'agent.tool_result': 'ٹول نتیجہ',
    'agent.connection_error': 'کنکشن میں خرابی۔ دوبارہ جوڑنے کی کوشش...',
    'agent.tool_call_prefix': '[ٹول کال]',
    'agent.tool_result_prefix': '[ٹول نتیجہ]',
    'agent.error_prefix': '[خرابی]',
    'agent.unknown_error': 'نامعلوم خرابی',
    'agent.send_error': 'پیغام بھیجنے میں ناکامی۔ براہ کرم دوبارہ کوشش کریں۔',
    'agent.copy_message': 'پیغام کاپی کریں',
    'agent.connected_status': 'جڑا ہوا',
    'agent.disconnected_status': 'منقطع',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'دستیاب ٹولز',
    'tools.name': 'نام',
    'tools.description': 'تفصیل',
    'tools.parameters': 'پیرامیٹرز',
    'tools.search': 'ٹولز تلاش کریں...',
    'tools.empty': 'کوئی ٹول دستیاب نہیں۔',
    'tools.count': 'کل ٹولز',
    'tools.agent_tools': 'ایجنٹ ٹولز',
    'tools.cli_tools': 'CLI ٹولز',
    'tools.parameter_schema': 'پیرامیٹر اسکیما',
    'tools.path': 'راستہ',
    'tools.version': 'ورژن',
    'tools.category': 'زمرہ',
    'tools.load_error': 'ٹولز لوڈ کرنے میں ناکامی',

    // Cron
    'cron.title': 'شیڈول شدہ کام',
    'cron.scheduled_tasks': 'شیڈول شدہ کام',
    'cron.add': 'کام شامل کریں',
    'cron.add_job': 'کام شامل کریں',
    'cron.add_modal_title': 'Cron کام شامل کریں',
    'cron.delete': 'حذف کریں',
    'cron.enable': 'فعال کریں',
    'cron.disable': 'غیر فعال کریں',
    'cron.name': 'نام',
    'cron.name_optional': 'نام (اختیاری)',
    'cron.command': 'کمانڈ',
    'cron.command_required': 'کمانڈ',
    'cron.schedule': 'شیڈول',
    'cron.schedule_required': 'شیڈول',
    'cron.next_run': 'اگلا عمل',
    'cron.last_run': 'آخری عمل',
    'cron.last_status': 'آخری حالت',
    'cron.enabled': 'فعال',
    'cron.enabled_status': 'فعال',
    'cron.disabled_status': 'غیر فعال',
    'cron.empty': 'کوئی شیڈول شدہ کام نہیں۔',
    'cron.confirm_delete': 'کیا آپ واقعی یہ کام حذف کرنا چاہتے ہیں؟',
    'cron.load_error': 'Cron کام لوڈ کرنے میں ناکامی',
    'cron.validation_error': 'شیڈول اور کمانڈ ضروری ہیں۔',
    'cron.add_error': 'کام شامل کرنے میں ناکامی',
    'cron.delete_error': 'کام حذف کرنے میں ناکامی',
    'cron.cancel': 'منسوخ کریں',
    'cron.adding': 'شامل ہو رہا ہے...',
    'cron.id': 'ID',
    'cron.actions': 'اقدامات',
    'cron.loading_run_history': 'عمل کی تاریخ لوڈ ہو رہی ہے...',
    'cron.load_run_history_error': 'عمل کی تاریخ لوڈ کرنے میں ناکامی',
    'cron.no_runs': 'ابھی تک کوئی عمل ریکارڈ نہیں ہوا۔',
    'cron.recent_runs': 'حالیہ عمل',
    'cron.yes': 'ہاں',
    'cron.no': 'نہیں',
    'cron.edit': 'ترمیم کریں',
    'cron.edit_modal_title': 'Cron کام میں ترمیم کریں',
    'cron.edit_error': 'کام اپ ڈیٹ کرنے میں ناکامی',
    'cron.saving': 'محفوظ ہو رہا ہے...',
    'cron.save': 'محفوظ کریں',

    // Integrations
    'integrations.title': 'انٹیگریشنز',
    'integrations.available': 'دستیاب',
    'integrations.active': 'فعال',
    'integrations.category': 'زمرہ',
    'integrations.status': 'حالت',
    'integrations.search': 'انٹیگریشنز تلاش کریں...',
    'integrations.empty': 'کوئی انٹیگریشن نہیں ملی۔',
    'integrations.activate': 'فعال کریں',
    'integrations.deactivate': 'غیر فعال کریں',
    'integrations.load_error': 'انٹیگریشنز لوڈ کرنے میں ناکامی',
    'integrations.status_active': 'فعال',
    'integrations.status_available': 'دستیاب',

    // Memory
    'memory.title': 'میموری اسٹور',
    'memory.memory_title': 'میموری',
    'memory.search': 'میموری میں تلاش کریں...',
    'memory.search_placeholder': 'میموری اندراجات تلاش کریں...',
    'memory.add': 'میموری محفوظ کریں',
    'memory.add_memory': 'میموری شامل کریں',
    'memory.add_modal_title': 'میموری شامل کریں',
    'memory.delete': 'حذف کریں',
    'memory.key': 'کلید',
    'memory.key_required': 'کلید',
    'memory.content': 'مواد',
    'memory.content_required': 'مواد',
    'memory.category': 'زمرہ',
    'memory.category_optional': 'زمرہ (اختیاری)',
    'memory.timestamp': 'ٹائم اسٹیمپ',
    'memory.session': 'سیشن',
    'memory.score': 'اسکور',
    'memory.empty': 'کوئی میموری اندراج نہیں ملا۔',
    'memory.confirm_delete': 'کیا آپ واقعی یہ میموری اندراج حذف کرنا چاہتے ہیں؟',
    'memory.all_categories': 'تمام زمرے',
    'memory.search_button': 'تلاش کریں',
    'memory.load_error': 'میموری لوڈ کرنے میں ناکامی',
    'memory.saving': 'محفوظ ہو رہا ہے...',
    'memory.validation_error': 'کلید اور مواد ضروری ہیں۔',
    'memory.store_error': 'میموری محفوظ کرنے میں ناکامی',
    'memory.delete_error': 'میموری حذف کرنے میں ناکامی',
    'memory.delete_confirm': 'حذف کریں؟',
    'memory.yes': 'ہاں',
    'memory.no': 'نہیں',
    'memory.cancel': 'منسوخ کریں',

    // Config

    // Cost
    'cost.title': 'لاگت ٹریکر',
    'cost.session': 'سیشن لاگت',
    'cost.daily': 'روزانہ لاگت',
    'cost.monthly': 'ماہانہ لاگت',
    'cost.total_tokens': 'کل ٹوکنز',
    'cost.request_count': 'درخواستیں',
    'cost.by_model': 'ماڈل کے مطابق لاگت',
    'cost.model': 'ماڈل',
    'cost.tokens': 'ٹوکنز',
    'cost.requests': 'درخواستیں',
    'cost.usd': 'لاگت (USD)',
    'cost.load_error': 'لاگت کا ڈیٹا لوڈ کرنے میں ناکامی',
    'cost.session_cost': 'سیشن لاگت',
    'cost.daily_cost': 'روزانہ لاگت',
    'cost.monthly_cost': 'ماہانہ لاگت',
    'cost.total_requests': 'کل درخواستیں',
    'cost.token_statistics': 'ٹوکن کے اعداد و شمار',
    'cost.avg_tokens_per_request': 'اوسط ٹوکنز / درخواست',
    'cost.cost_per_1k_tokens': '1K ٹوکنز فی لاگت',
    'cost.model_breakdown': 'ماڈل کی تفصیل',
    'cost.no_model_data': 'ماڈل کا ڈیٹا دستیاب نہیں۔',
    'cost.cost': 'لاگت',
    'cost.share': 'شیئر کریں',

    // Logs
    'logs.title': 'لائیو لاگز',
    'logs.live_logs': 'لائیو لاگز',
    'logs.clear': 'صاف کریں',
    'logs.pause': 'روکیں',
    'logs.resume': 'جاری رکھیں',
    'logs.filter': 'لاگز فلٹر کریں...',
    'logs.filter_label': 'فلٹر',
    'logs.empty': 'کوئی لاگ اندراج نہیں۔',
    'logs.connected': 'جڑا ہوا',
    'logs.disconnected': 'منقطع',
    'logs.events': 'واقعات',
    'logs.jump_to_bottom': 'نیچے جائیں',
    'logs.paused_hint': 'لاگ سٹریمنگ روکی گئی ہے۔',
    'logs.waiting_hint': 'واقعات کا انتظار...',

    // Doctor
    'doctor.title': 'سسٹم تشخیص',
    'doctor.diagnostics_title': 'تشخیص',
    'doctor.run': 'تشخیص چلائیں',
    'doctor.run_diagnostics': 'تشخیص چلائیں',
    'doctor.running': 'تشخیص چل رہی ہے...',
    'doctor.running_btn': 'چل رہا ہے...',
    'doctor.running_desc': 'تشخیص چل رہی ہے...',
    'doctor.running_hint': 'اس میں چند سیکنڈ لگ سکتے ہیں۔',
    'doctor.ok': 'OK',
    'doctor.warn': 'انتباہ',
    'doctor.error': 'خرابی',
    'doctor.severity': 'شدت',
    'doctor.category': 'زمرہ',
    'doctor.message': 'پیغام',
    'doctor.empty': 'ابھی تک کوئی تشخیص نہیں چلائی گئی۔',
    'doctor.summary': 'تشخیصی خلاصہ',
    'doctor.issues_found': 'مسائل پائے گئے',
    'doctor.warnings_summary': 'انتباہات',
    'doctor.all_clear': 'سب ٹھیک ہے',
    'doctor.system_diagnostics': 'سسٹم تشخیص',
    'doctor.empty_hint': 'اپنی KylinBot تنصیب کی جانچ کے لیے "تشخیص چلائیں" پر کلک کریں۔',

    // Auth / Pairing
    'auth.pair': 'ڈیوائس جوڑیں',
    'auth.pairing_code': 'جوڑنے کا کوڈ',
    'auth.pair_button': 'جوڑیں',
    'auth.logout': 'لاگ آؤٹ',
    'auth.pairing_success': 'جوڑنا کامیاب رہا!',
    'auth.pairing_failed': 'جوڑنا ناکام رہا۔ براہ کرم دوبارہ کوشش کریں۔',
    'auth.enter_code': 'ایجنٹ سے جڑنے کے لیے اپنا جوڑنے کا کوڈ درج کریں۔',

    // Common
    'common.loading': 'لوڈ ہو رہا ہے...',
    'common.error': 'ایک خرابی ہوئی۔',
    'common.retry': 'دوبارہ کوشش کریں',
    'common.cancel': 'منسوخ کریں',
    'common.confirm': 'تصدیق کریں',
    'common.save': 'محفوظ کریں',
    'common.delete': 'حذف کریں',
    'common.edit': 'ترمیم کریں',
    'common.close': 'بند کریں',
    'common.yes': 'ہاں',
    'common.no': 'نہیں',
    'common.search': 'تلاش کریں...',
    'common.no_data': 'کوئی ڈیٹا دستیاب نہیں۔',
    'common.refresh': 'تازہ کریں',
    'common.back': 'واپس',
    'common.actions': 'اقدامات',
    'common.name': 'نام',
    'common.description': 'تفصیل',
    'common.status': 'حالت',
    'common.created': 'بنایا گیا',
    'common.updated': 'اپ ڈیٹ ہوا',

    // Health
    'health.title': 'سسٹم صحت',
    'health.component': 'جزو',
    'health.status': 'حالت',
    'health.last_ok': 'آخری OK',
    'health.last_error': 'آخری خرابی',
    'health.restart_count': 'ری سٹارٹس',
    'health.pid': 'پروسیس ID',
    'health.uptime': 'اپ ٹائم',
    'health.updated_at': 'آخری اپ ڈیٹ',

    // Dashboard
    'dashboard.provider_model': 'فراہم کنندہ / ماڈل',
    'dashboard.since_last_restart': 'آخری ری سٹارٹ سے',
    'dashboard.paired_yes': 'ہاں',
    'dashboard.paired_no': 'نہیں',
    'dashboard.cost_overview': 'لاگت کا جائزہ',
    'dashboard.active_channels': 'فعال چینلز',
    'dashboard.filter_active': 'فعال',
    'dashboard.filter_all': 'سب',
    'dashboard.no_active_channels': 'کوئی فعال چینل نہیں',
    'dashboard.component_health': 'اجزاء کی صحت',
    'dashboard.load_error': 'ڈیش بورڈ لوڈ کرنے میں ناکامی',
    'dashboard.session_label': 'سیشن',
    'dashboard.daily_label': 'روزانہ',
    'dashboard.monthly_label': 'ماہانہ',
    'dashboard.total_tokens_label': 'کل ٹوکنز',
    'dashboard.requests_label': 'درخواستیں',
    'dashboard.no_channels': 'کوئی چینل ترتیب نہیں دیا گیا',
    'dashboard.active': 'فعال',
    'dashboard.inactive': 'غیر فعال',
    'dashboard.no_components': 'کوئی جزو رپورٹ نہیں کر رہا',
    'dashboard.restarts': 'ری سٹارٹس',
    'dashboard.tab_overview': 'جائزہ',
    'dashboard.tab_sessions': 'سیشنز',
    'dashboard.tab_channels': 'چینلز',
    'dashboard.sessions_title': 'فعال سیشنز',
    'dashboard.no_sessions': 'کوئی فعال سیشن نہیں',
    'dashboard.session_id': 'سیشن ID',
    'dashboard.session_started': 'شروع ہوا',
    'dashboard.session_last_activity': 'آخری سرگرمی',
    'dashboard.session_messages': 'پیغامات',
    'dashboard.session_details': 'سیشن کی تفصیلات',
    'dashboard.session_history': 'تاریخ دیکھیں',
    'dashboard.channels_title': 'چینل کی حالت',
    'dashboard.no_channels_detail': 'چینل کی تفصیلات دستیاب نہیں',
    'dashboard.channel_type': 'قسم',
    'dashboard.channel_messages': 'پیغامات',
    'dashboard.channel_last_message': 'آخری پیغام',
    'dashboard.channel_config': 'ترتیب',
    'dashboard.channel_enabled': 'فعال',
    'dashboard.channel_disabled': 'غیر فعال',
    'dashboard.loading_sessions': 'سیشنز لوڈ ہو رہے ہیں...',
    'dashboard.loading_channels': 'چینلز لوڈ ہو رہے ہیں...',
    'dashboard.load_sessions_error': 'سیشنز لوڈ کرنے میں ناکامی',
    'dashboard.load_channels_error': 'چینلز لوڈ کرنے میں ناکامی',
    'dashboard.never': 'کبھی نہیں',

    // Settings
    'settings.title': 'ترتیبات',
    'settings.tab.appearance': 'ظاہری شکل',
    'settings.tab.typography': 'ٹائپوگرافی',
    'settings.appearance': 'ظاہری شکل',
    'settings.typography': 'ٹائپوگرافی',
    'settings.fontUi': 'UI فونٹ',
    'settings.fontMono': 'کوڈ فونٹ',
    'settings.fontSize': 'UI فونٹ سائز',
    'settings.fontMonoSize': 'کوڈ فونٹ سائز',
    'settings.preview': 'پیش نظارہ',
    'settings.previewText': 'تیز بھوری لومڑی سست کتے کے اوپر سے کود گئی۔',
    'settings.fontNote': 'فونٹ کی تبدیلیاں صفحہ دوبارہ لوڈ ہونے پر لاگو ہوں گی۔',
    'settings.language': 'زبان',

    // Theme
    'theme.mode': 'تھیم موڈ',
    'theme.accent': 'ایکسنٹ رنگ',
    'theme.system': 'سسٹم',
    'theme.dark': 'ڈارک',
    'theme.light': 'لائٹ',
    'theme.oled': 'OLED سیاہ',
  },

  vi: {
    // Navigation
    'nav.dashboard': 'Bảng điều khiển',
    'nav.agent': 'Tác nhân',
    'nav.tools': 'Công cụ',
    'nav.cron': 'Tác vụ đã lên lịch',
    'nav.integrations': 'Tích hợp',
    'nav.memory': 'Bộ nhớ',
    'nav.config': 'Config',
    'nav.cost': 'Theo dõi chi phí',
    'nav.logs': 'Nhật ký',
    'nav.doctor': 'Chẩn đoán',
    'nav.canvas': 'Canvas',

    // Dashboard
    'dashboard.title': 'Bảng điều khiển',
    'dashboard.provider': 'Nhà cung cấp',
    'dashboard.model': 'Mô hình',
    'dashboard.uptime': 'Thời gian hoạt động',
    'dashboard.temperature': 'Nhiệt độ',
    'dashboard.gateway_port': 'Cổng gateway',
    'dashboard.memory_backend': 'Backend bộ nhớ',
    'dashboard.paired': 'Đã ghép nối',
    'dashboard.channels': 'Kênh',
    'dashboard.health': 'Sức khỏe',
    'dashboard.status': 'Trạng thái',
    'dashboard.overview': 'Tổng quan',
    'dashboard.system_info': 'Thông tin hệ thống',
    'dashboard.quick_actions': 'Thao tác nhanh',

    // Agent / Chat
    'agent.title': 'Trò chuyện với tác nhân',
    'agent.send': 'Gửi',
    'agent.placeholder': 'Nhập tin nhắn...',
    'agent.start_conversation': 'Gửi tin nhắn để bắt đầu cuộc trò chuyện',
    'agent.type_message': 'Nhập tin nhắn...',
    'agent.connecting': 'Đang kết nối...',
    'agent.connected': 'Đã kết nối',
    'agent.disconnected': 'Đã ngắt kết nối',
    'agent.reconnecting': 'Đang kết nối lại...',
    'agent.thinking': 'Đang suy nghĩ...',
    'agent.tool_call': 'Gọi công cụ',
    'agent.tool_result': 'Kết quả công cụ',
    'agent.connection_error': 'Lỗi kết nối. Đang thử kết nối lại...',
    'agent.tool_call_prefix': '[Gọi công cụ]',
    'agent.tool_result_prefix': '[Kết quả công cụ]',
    'agent.error_prefix': '[Lỗi]',
    'agent.unknown_error': 'Lỗi không xác định',
    'agent.send_error': 'Không thể gửi tin nhắn. Vui lòng thử lại.',
    'agent.copy_message': 'Sao chép tin nhắn',
    'agent.connected_status': 'Đã kết nối',
    'agent.disconnected_status': 'Đã ngắt kết nối',
    'agent.model_switching': 'Switching...',
    'agent.model_loading': 'Loading...',
    'agent.select_model': 'Select model',
    'agent.connection_closed': 'Connection closed unexpectedly',
    'agent.check_configuration': 'Please check your configuration',
    'agent.configuration_error': 'Configuration error',
    'agent.check_provider_settings': 'Please check your provider settings (API key, model, etc.)',
    'agent.message_error': 'Message error',
    'agent.failed_switch_model': 'Failed to switch model',
    'agent.model_switch_timeout': 'Model switch timed out. Please check your connection and try again.',

    // Tools
    'tools.title': 'Công cụ khả dụng',
    'tools.name': 'Tên',
    'tools.description': 'Mô tả',
    'tools.parameters': 'Tham số',
    'tools.search': 'Tìm kiếm công cụ...',
    'tools.empty': 'Không có công cụ khả dụng.',
    'tools.count': 'Tổng số công cụ',
    'tools.agent_tools': 'Công cụ tác nhân',
    'tools.cli_tools': 'Công cụ CLI',
    'tools.parameter_schema': 'Sơ đồ tham số',
    'tools.path': 'Đường dẫn',
    'tools.version': 'Phiên bản',
    'tools.category': 'Danh mục',
    'tools.load_error': 'Không thể tải công cụ',

    // Cron
    'cron.title': 'Tác vụ đã lên lịch',
    'cron.scheduled_tasks': 'Tác vụ đã lên lịch',
    'cron.add': 'Thêm tác vụ',
    'cron.add_job': 'Thêm tác vụ',
    'cron.add_modal_title': 'Thêm tác vụ Cron',
    'cron.delete': 'Xóa',
    'cron.enable': 'Bật',
    'cron.disable': 'Tắt',
    'cron.name': 'Tên',
    'cron.name_optional': 'Tên (tùy chọn)',
    'cron.command': 'Lệnh',
    'cron.command_required': 'Lệnh',
    'cron.schedule': 'Lịch trình',
    'cron.schedule_required': 'Lịch trình',
    'cron.next_run': 'Lần chạy tiếp theo',
    'cron.last_run': 'Lần chạy cuối',
    'cron.last_status': 'Trạng thái cuối',
    'cron.enabled': 'Đã bật',
    'cron.enabled_status': 'Đã bật',
    'cron.disabled_status': 'Đã tắt',
    'cron.empty': 'Không có tác vụ đã lên lịch.',
    'cron.confirm_delete': 'Bạn có chắc chắn muốn xóa tác vụ này không?',
    'cron.load_error': 'Không thể tải tác vụ Cron',
    'cron.validation_error': 'Lịch trình và lệnh là bắt buộc.',
    'cron.add_error': 'Không thể thêm tác vụ',
    'cron.delete_error': 'Không thể xóa tác vụ',
    'cron.cancel': 'Hủy',
    'cron.adding': 'Đang thêm...',
    'cron.id': 'ID',
    'cron.actions': 'Hành động',
    'cron.loading_run_history': 'Đang tải lịch sử chạy...',
    'cron.load_run_history_error': 'Không thể tải lịch sử chạy',
    'cron.no_runs': 'Chưa có lần chạy nào được ghi nhận.',
    'cron.recent_runs': 'Các lần chạy gần đây',
    'cron.yes': 'Có',
    'cron.no': 'Không',
    'cron.edit': 'Chỉnh sửa',
    'cron.edit_modal_title': 'Chỉnh sửa tác vụ Cron',
    'cron.edit_error': 'Không thể cập nhật tác vụ',
    'cron.saving': 'Đang lưu...',
    'cron.save': 'Lưu',

    // Integrations
    'integrations.title': 'Tích hợp',
    'integrations.available': 'Khả dụng',
    'integrations.active': 'Đang hoạt động',
    'integrations.category': 'Danh mục',
    'integrations.status': 'Trạng thái',
    'integrations.search': 'Tìm kiếm tích hợp...',
    'integrations.empty': 'Không tìm thấy tích hợp nào.',
    'integrations.activate': 'Kích hoạt',
    'integrations.deactivate': 'Hủy kích hoạt',
    'integrations.load_error': 'Không thể tải tích hợp',
    'integrations.status_active': 'Đang hoạt động',
    'integrations.status_available': 'Khả dụng',

    // Memory
    'memory.title': 'Kho bộ nhớ',
    'memory.memory_title': 'Bộ nhớ',
    'memory.search': 'Tìm kiếm trong bộ nhớ...',
    'memory.search_placeholder': 'Tìm kiếm mục bộ nhớ...',
    'memory.add': 'Lưu vào bộ nhớ',
    'memory.add_memory': 'Thêm bộ nhớ',
    'memory.add_modal_title': 'Thêm bộ nhớ',
    'memory.delete': 'Xóa',
    'memory.key': 'Khóa',
    'memory.key_required': 'Khóa',
    'memory.content': 'Nội dung',
    'memory.content_required': 'Nội dung',
    'memory.category': 'Danh mục',
    'memory.category_optional': 'Danh mục (tùy chọn)',
    'memory.timestamp': 'Thời gian',
    'memory.session': 'Phiên',
    'memory.score': 'Điểm',
    'memory.empty': 'Không tìm thấy mục bộ nhớ nào.',
    'memory.confirm_delete': 'Bạn có chắc chắn muốn xóa mục bộ nhớ này không?',
    'memory.all_categories': 'Tất cả danh mục',
    'memory.search_button': 'Tìm kiếm',
    'memory.load_error': 'Không thể tải bộ nhớ',
    'memory.saving': 'Đang lưu...',
    'memory.validation_error': 'Khóa và nội dung là bắt buộc.',
    'memory.store_error': 'Không thể lưu bộ nhớ',
    'memory.delete_error': 'Không thể xóa bộ nhớ',
    'memory.delete_confirm': 'Xóa?',
    'memory.yes': 'Có',
    'memory.no': 'Không',
    'memory.cancel': 'Hủy',

    // Config

    // Cost
    'cost.title': 'Theo dõi chi phí',
    'cost.session': 'Chi phí phiên',
    'cost.daily': 'Chi phí hàng ngày',
    'cost.monthly': 'Chi phí hàng tháng',
    'cost.total_tokens': 'Tổng số token',
    'cost.request_count': 'Yêu cầu',
    'cost.by_model': 'Chi phí theo mô hình',
    'cost.model': 'Mô hình',
    'cost.tokens': 'Token',
    'cost.requests': 'Yêu cầu',
    'cost.usd': 'Chi phí (USD)',
    'cost.load_error': 'Không thể tải dữ liệu chi phí',
    'cost.session_cost': 'Chi phí phiên',
    'cost.daily_cost': 'Chi phí hàng ngày',
    'cost.monthly_cost': 'Chi phí hàng tháng',
    'cost.total_requests': 'Tổng số yêu cầu',
    'cost.token_statistics': 'Thống kê token',
    'cost.avg_tokens_per_request': 'Token trung bình / yêu cầu',
    'cost.cost_per_1k_tokens': 'Chi phí mỗi 1K token',
    'cost.model_breakdown': 'Phân tích theo mô hình',
    'cost.no_model_data': 'Không có dữ liệu mô hình.',
    'cost.cost': 'Chi phí',
    'cost.share': 'Chia sẻ',

    // Logs
    'logs.title': 'Nhật ký trực tiếp',
    'logs.live_logs': 'Nhật ký trực tiếp',
    'logs.clear': 'Xóa',
    'logs.pause': 'Tạm dừng',
    'logs.resume': 'Tiếp tục',
    'logs.filter': 'Lọc nhật ký...',
    'logs.filter_label': 'Bộ lọc',
    'logs.empty': 'Không có mục nhật ký.',
    'logs.connected': 'Đã kết nối',
    'logs.disconnected': 'Đã ngắt kết nối',
    'logs.events': 'sự kiện',
    'logs.jump_to_bottom': 'Chuyển xuống cuối',
    'logs.paused_hint': 'Luồng nhật ký đã tạm dừng.',
    'logs.waiting_hint': 'Đang chờ sự kiện...',

    // Doctor
    'doctor.title': 'Chẩn đoán hệ thống',
    'doctor.diagnostics_title': 'Chẩn đoán',
    'doctor.run': 'Chạy chẩn đoán',
    'doctor.run_diagnostics': 'Chạy chẩn đoán',
    'doctor.running': 'Đang chạy chẩn đoán...',
    'doctor.running_btn': 'Đang chạy...',
    'doctor.running_desc': 'Đang chạy chẩn đoán...',
    'doctor.running_hint': 'Quá trình này có thể mất vài giây.',
    'doctor.ok': 'OK',
    'doctor.warn': 'Cảnh báo',
    'doctor.error': 'Lỗi',
    'doctor.severity': 'Mức độ',
    'doctor.category': 'Danh mục',
    'doctor.message': 'Thông báo',
    'doctor.empty': 'Chưa có chẩn đoán nào được chạy.',
    'doctor.summary': 'Tóm tắt chẩn đoán',
    'doctor.issues_found': 'Vấn đề phát hiện',
    'doctor.warnings_summary': 'Cảnh báo',
    'doctor.all_clear': 'Mọi thứ bình thường',
    'doctor.system_diagnostics': 'Chẩn đoán hệ thống',
    'doctor.empty_hint': 'Nhấn "Chạy chẩn đoán" để kiểm tra cài đặt KylinBot của bạn.',

    // Auth / Pairing
    'auth.pair': 'Ghép nối thiết bị',
    'auth.pairing_code': 'Mã ghép nối',
    'auth.pair_button': 'Ghép nối',
    'auth.logout': 'Đăng xuất',
    'auth.pairing_success': 'Ghép nối thành công!',
    'auth.pairing_failed': 'Ghép nối thất bại. Vui lòng thử lại.',
    'auth.enter_code': 'Nhập mã ghép nối để kết nối với tác nhân.',
    'pairing.title': 'Ghép nối thiết bị',
    'pairing.pair_new_device': 'Ghép nối thiết bị mới',
    'pairing.pairing_code': 'Mã ghép nối',
    'pairing.code_hint': 'Nhập mã này trên thiết bị mới',
    'pairing.paired_devices': 'Thiết bị đã ghép nối',
    'pairing.no_devices': 'Không có thiết bị nào được ghép nối.',
    'pairing.name': 'Tên',
    'pairing.type': 'Loại',
    'pairing.paired': 'Đã ghép nối',
    'pairing.last_seen': 'Lần cuối thấy',
    'pairing.actions': 'Hành động',
    'pairing.load_error': 'Không thể tải thiết bị',
    'pairing.generate_error': 'Không thể tạo mã ghép nối',
    'pairing.revoke_error': 'Không thể thu hồi thiết bị',

    // Common
    'common.loading': 'Đang tải...',
    'common.error': 'Đã xảy ra lỗi.',
    'common.retry': 'Thử lại',
    'common.cancel': 'Hủy',
    'common.confirm': 'Xác nhận',
    'common.save': 'Lưu',
    'common.delete': 'Xóa',
    'common.edit': 'Chỉnh sửa',
    'common.close': 'Đóng',
    'common.yes': 'Có',
    'common.no': 'Không',
    'common.search': 'Tìm kiếm...',
    'common.no_data': 'Không có dữ liệu.',
    'common.refresh': 'Làm mới',
    'common.back': 'Quay lại',
    'common.actions': 'Hành động',
    'common.name': 'Tên',
    'common.description': 'Mô tả',
    'common.status': 'Trạng thái',
    'common.created': 'Đã tạo',
    'common.updated': 'Đã cập nhật',

    // Health
    'health.title': 'Sức khỏe hệ thống',
    'health.component': 'Thành phần',
    'health.status': 'Trạng thái',
    'health.last_ok': 'OK cuối cùng',
    'health.last_error': 'Lỗi cuối cùng',
    'health.restart_count': 'Số lần khởi động lại',
    'health.pid': 'ID tiến trình',
    'health.uptime': 'Thời gian hoạt động',
    'health.updated_at': 'Cập nhật lần cuối',

    // Dashboard
    'dashboard.provider_model': 'Nhà cung cấp / Mô hình',
    'dashboard.since_last_restart': 'Kể từ lần khởi động lại cuối',
    'dashboard.paired_yes': 'Có',
    'dashboard.paired_no': 'Không',
    'dashboard.cost_overview': 'Tổng quan chi phí',
    'dashboard.active_channels': 'Kênh đang hoạt động',
    'dashboard.filter_active': 'Đang hoạt động',
    'dashboard.filter_all': 'Tất cả',
    'dashboard.no_active_channels': 'Không có kênh đang hoạt động',
    'dashboard.component_health': 'Sức khỏe thành phần',
    'dashboard.load_error': 'Không thể tải bảng điều khiển',
    'dashboard.session_label': 'Phiên',
    'dashboard.daily_label': 'Hàng ngày',
    'dashboard.monthly_label': 'Hàng tháng',
    'dashboard.total_tokens_label': 'Tổng số token',
    'dashboard.requests_label': 'Yêu cầu',
    'dashboard.no_channels': 'Chưa cấu hình kênh nào',
    'dashboard.active': 'Đang hoạt động',
    'dashboard.inactive': 'Không hoạt động',
    'dashboard.no_components': 'Không có thành phần nào báo cáo',
    'dashboard.restarts': 'Khởi động lại',
    'dashboard.tab_overview': 'Tổng quan',
    'dashboard.tab_sessions': 'Phiên',
    'dashboard.tab_channels': 'Kênh',
    'dashboard.sessions_title': 'Phiên đang hoạt động',
    'dashboard.no_sessions': 'Không có phiên đang hoạt động',
    'dashboard.session_id': 'ID phiên',
    'dashboard.session_started': 'Bắt đầu',
    'dashboard.session_last_activity': 'Hoạt động cuối',
    'dashboard.session_messages': 'Tin nhắn',
    'dashboard.session_details': 'Chi tiết phiên',
    'dashboard.session_history': 'Xem lịch sử',
    'dashboard.channels_title': 'Trạng thái kênh',
    'dashboard.no_channels_detail': 'Không có chi tiết kênh',
    'dashboard.channel_type': 'Loại',
    'dashboard.channel_messages': 'Tin nhắn',
    'dashboard.channel_last_message': 'Tin nhắn cuối',
    'dashboard.channel_config': 'Cấu hình',
    'dashboard.channel_enabled': 'Đã bật',
    'dashboard.channel_disabled': 'Đã tắt',
    'dashboard.loading_sessions': 'Đang tải phiên...',
    'dashboard.loading_channels': 'Đang tải kênh...',
    'dashboard.load_sessions_error': 'Không thể tải phiên',
    'dashboard.load_channels_error': 'Không thể tải kênh',
    'dashboard.never': 'Chưa bao giờ',

    // Settings
    'settings.title': 'Cài đặt',
    'settings.tab.appearance': 'Giao diện',
    'settings.tab.typography': 'Kiểu chữ',
    'settings.appearance': 'Giao diện',
    'settings.typography': 'Kiểu chữ',
    'settings.fontUi': 'Phông chữ giao diện',
    'settings.fontMono': 'Phông chữ mã',
    'settings.fontSize': 'Cỡ phông giao diện',
    'settings.fontMonoSize': 'Cỡ phông mã',
    'settings.preview': 'Xem trước',
    'settings.previewText': 'Con cáo nâu nhanh nhẹn nhảy qua con chó lười biếng.',
    'settings.fontNote': 'Thay đổi phông chữ sẽ được áp dụng khi tải lại trang.',
    'settings.language': 'Ngôn ngữ',

    // Theme
    'theme.mode': 'Chế độ giao diện',
    'theme.accent': 'Màu nhấn',
    'theme.system': 'Hệ thống',
    'theme.dark': 'Tối',
    'theme.light': 'Sáng',
    'theme.oled': 'OLED đen',
  },
};

// ---------------------------------------------------------------------------
// Current locale state
// ---------------------------------------------------------------------------

let currentLocale: Locale = 'en';

export function getLocale(): Locale {
  return currentLocale;
}

export function setLocale(locale: Locale): void {
  currentLocale = locale;
}

// ---------------------------------------------------------------------------
// Translation function
// ---------------------------------------------------------------------------

/**
 * Translate a key using the current locale. Returns the key itself if no
 * translation is found.
 */
export function t(key: string): string {
  return translations[currentLocale]?.[key] ?? translations.en[key] ?? key;
}

/**
 * Get the translation for a specific locale. Falls back to English, then to the
 * raw key.
 */
export function tLocale(key: string, locale: Locale): string {
  return translations[locale]?.[key] ?? translations.en[key] ?? key;
}

// ---------------------------------------------------------------------------
// Supported locales
// ---------------------------------------------------------------------------

export const SUPPORTED_LOCALES: { code: Locale; name: string }[] = [
  { code: 'ar', name: 'العربية' },
  { code: 'bn', name: 'বাংলা' },
  { code: 'cs', name: 'Čeština' },
  { code: 'da', name: 'Dansk' },
  { code: 'de', name: 'Deutsch' },
  { code: 'el', name: 'Ελληνικά' },
  { code: 'en', name: 'English' },
  { code: 'es', name: 'Español' },
  { code: 'fi', name: 'Suomi' },
  { code: 'fr', name: 'Français' },
  { code: 'he', name: 'עברית' },
  { code: 'hi', name: 'हिन्दी' },
  { code: 'hu', name: 'Magyar' },
  { code: 'id', name: 'Bahasa Indonesia' },
  { code: 'it', name: 'Italiano' },
  { code: 'ja', name: '日本語' },
  { code: 'ko', name: '한국어' },
  { code: 'nb', name: 'Norsk' },
  { code: 'nl', name: 'Nederlands' },
  { code: 'pl', name: 'Polski' },
  { code: 'pt', name: 'Português' },
  { code: 'ro', name: 'Română' },
  { code: 'ru', name: 'Русский' },
  { code: 'sv', name: 'Svenska' },
  { code: 'th', name: 'ไทย' },
  { code: 'tl', name: 'Filipino' },
  { code: 'tr', name: 'Türkçe' },
  { code: 'uk', name: 'Українська' },
  { code: 'ur', name: 'اردو' },
  { code: 'vi', name: 'Tiếng Việt' },
  { code: 'zh', name: '中文' },
];

// ---------------------------------------------------------------------------
// React hook
// ---------------------------------------------------------------------------

/**
 * React hook that fetches the locale from /api/status on mount and keeps the
 * i18n module in sync. Returns the current locale and a `t` helper bound to it.
 */
export function useLocale(): { locale: Locale; t: (key: string) => string } {
  const [locale, setLocaleState] = useState<Locale>(currentLocale);

  useEffect(() => {
    let cancelled = false;

    getStatus()
      .then((status) => {
        if (cancelled) return;
        const raw = (status.locale || 'en').toLowerCase().replace(/-.*/, '').replace(/_.*/, '');
        const detected: Locale = (raw in translations) ? (raw as Locale) : 'en';
        setLocale(detected);
        setLocaleState(detected);
      })
      .catch(() => {
        // Keep default locale on error
      });

    return () => {
      cancelled = true;
    };
  }, []);

  return {
    locale,
    t: (key: string) => tLocale(key, locale),
  };
}
