mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-28 22:17:48 +02:00
The in-app inbox (sidebar badge, real-time WS updates, settings, inbox page) was already shared and worked on web. The only Desktop-only piece was the native OS banner: handleInboxNew called desktopAPI.showNotification, which is undefined on web, so no banner fired for new inbox items while the app was unfocused. Add the browser equivalent, keeping handleInboxNew as the single decision point (focus + source-workspace mute gating stays shared with desktop): - packages/core/platform/system-notification.ts: browser Notification engine (showWebNotification) + permission helpers + a click-handler registry. Lives in core (the caller does) but injects the click-routing decision so core stays headless. - handleInboxNew: branch desktopAPI (unchanged) → else showWebNotification. - apps/web WebNotificationBridge: registers click routing to the source workspace's inbox (?issue=…), mirroring desktop's DesktopInboxBridge. - Settings → Notifications: web-only opt-in to grant browser permission (hidden on desktop / where the API is unavailable); en/zh-Hans/ja/ko. Permission is an explicit settings opt-in (no auto-prompt on load, per browser best practice). Tests cover the engine and the web path in handleInboxNew. Co-authored-by: J <j@multica.ai> Co-authored-by: multica-agent <github@multica.ai>
381 lines
23 KiB
JSON
381 lines
23 KiB
JSON
{
|
|
"preferences": {
|
|
"theme": {
|
|
"title": "테마",
|
|
"light": "라이트",
|
|
"dark": "다크",
|
|
"system": "시스템"
|
|
},
|
|
"language": {
|
|
"title": "언어",
|
|
"english": "English",
|
|
"chinese": "中文",
|
|
"korean": "한국어",
|
|
"japanese": "日本語",
|
|
"sync_failed": "이 기기에는 언어가 저장되었지만 계정 동기화에 실패했습니다. 다른 기기에서는 이전 언어가 표시될 수 있습니다."
|
|
},
|
|
"timezone": {
|
|
"title": "표시 시간대",
|
|
"browser_suffix": " (브라우저)",
|
|
"hint": "대시보드, 차트, 사용자에게 표시되는 '오늘' 레이블에 사용됩니다. 모든 워크스페이스에 적용되는 개인 설정입니다.",
|
|
"sync_failed": "시간대 설정을 저장하지 못했습니다."
|
|
}
|
|
},
|
|
"page": {
|
|
"title": "설정",
|
|
"my_account": "내 계정",
|
|
"workspace_fallback": "워크스페이스",
|
|
"tabs": {
|
|
"profile": "프로필",
|
|
"preferences": "환경설정",
|
|
"notifications": "알림",
|
|
"tokens": "API 토큰",
|
|
"general": "일반",
|
|
"repositories": "저장소",
|
|
"github": "GitHub",
|
|
"integrations": "연동",
|
|
"labs": "실험실",
|
|
"members": "멤버"
|
|
}
|
|
},
|
|
"account": {
|
|
"section_profile": "프로필",
|
|
"click_avatar_hint": "클릭해서 아바타 업로드",
|
|
"name_label": "이름",
|
|
"profile_description_label": "내 소개",
|
|
"profile_description_hint": "나를 대신해 작업하는 에이전트에게 공유됩니다. 역할, 기술 스택, 선호 방식, 새 협업자에게 첫날 알려줄 만한 내용을 적어 주세요.",
|
|
"profile_description_placeholder": "예: Go와 Postgres를 쓰는 백엔드 엔지니어. 간결한 PR과 변경사항에 맞춘 테스트를 선호합니다.",
|
|
"profile_description_too_long": "프로필이 너무 깁니다(최대 {{max}}자, 현재 {{count}}자).",
|
|
"save": "프로필 업데이트",
|
|
"saving": "업데이트 중...",
|
|
"toast_avatar_updated": "아바타를 업데이트했습니다",
|
|
"toast_avatar_failed": "아바타를 업로드하지 못했습니다",
|
|
"toast_profile_updated": "프로필을 업데이트했습니다",
|
|
"toast_profile_failed": "프로필을 업데이트하지 못했습니다"
|
|
},
|
|
"notifications": {
|
|
"title": "인박스 알림",
|
|
"description": "어떤 이벤트가 인박스 알림을 만들지 제어합니다. 음소거한 이벤트 유형은 조용히 걸러지지만, 이슈를 직접 열면 계속 볼 수 있습니다.",
|
|
"toast_failed": "알림 설정을 업데이트하지 못했습니다",
|
|
"groups": {
|
|
"assignments": {
|
|
"label": "할당",
|
|
"description": "이슈에 할당되거나 할당 해제될 때"
|
|
},
|
|
"status_changes": {
|
|
"label": "상태 변경",
|
|
"description": "팔로우 중인 이슈의 상태가 바뀔 때(예: 할 일, 진행 중, 완료)"
|
|
},
|
|
"comments": {
|
|
"label": "댓글 및 멘션",
|
|
"description": "팔로우 중인 이슈에 새 댓글이 달리거나 누군가 나를 @멘션할 때"
|
|
},
|
|
"updates": {
|
|
"label": "우선순위 및 마감일",
|
|
"description": "팔로우 중인 이슈의 우선순위나 마감일이 바뀔 때"
|
|
},
|
|
"agent_activity": {
|
|
"label": "에이전트 활동",
|
|
"description": "에이전트 작업이 완료되거나 실패할 때"
|
|
}
|
|
},
|
|
"system": {
|
|
"title": "시스템 알림",
|
|
"description": "Multica가 백그라운드에 있을 때 표시되는 운영체제 알림 배너를 제어합니다.",
|
|
"label": "시스템 알림 표시",
|
|
"hint": "앱에 포커스가 없을 때 새 인박스 항목에 대해 운영체제 배너를 표시합니다."
|
|
},
|
|
"browser": {
|
|
"label": "브라우저 알림",
|
|
"hint": "이 브라우저에서 새 인박스 항목에 대한 알림 배너를 표시하도록 허용합니다.",
|
|
"enable": "사용",
|
|
"granted": "이 브라우저에서 알림 배너를 표시할 수 있습니다.",
|
|
"denied": "브라우저에서 차단되었습니다. 브라우저 설정에서 이 사이트의 알림을 허용하세요.",
|
|
"enabled_badge": "사용 중"
|
|
}
|
|
},
|
|
"tokens": {
|
|
"title": "API 토큰",
|
|
"description": "개인 액세스 토큰을 사용하면 CLI와 외부 연동이 내 계정으로 인증할 수 있습니다.",
|
|
"name_placeholder": "토큰 이름(예: 내 CLI)",
|
|
"expiry": {
|
|
"30": "30일",
|
|
"90": "90일",
|
|
"365": "1년",
|
|
"never": "만료 없음"
|
|
},
|
|
"create": "만들기",
|
|
"creating": "만드는 중...",
|
|
"toast_load_failed": "토큰을 불러오지 못했습니다",
|
|
"toast_create_failed": "토큰을 만들지 못했습니다",
|
|
"toast_revoked": "토큰을 폐기했습니다",
|
|
"toast_revoke_failed": "토큰을 폐기하지 못했습니다",
|
|
"metadata_prefix": "{{prefix}}... · {{created}} 생성 · {{lastUsed}}",
|
|
"last_used_with_date": "마지막 사용 {{date}}",
|
|
"last_used_never": "사용된 적 없음",
|
|
"expires_with_date": " · {{date}} 만료",
|
|
"revoke_aria": "{{name}} 폐기",
|
|
"revoke_tooltip": "폐기",
|
|
"revoke_dialog": {
|
|
"title": "토큰 폐기",
|
|
"description": "이 토큰은 영구 폐기되며 더 이상 사용할 수 없습니다. 이 작업은 되돌릴 수 없습니다.",
|
|
"cancel": "취소",
|
|
"confirm": "폐기"
|
|
},
|
|
"created_dialog": {
|
|
"title": "토큰 생성됨",
|
|
"description": "지금 개인 액세스 토큰을 복사하세요. 다시 볼 수 없습니다.",
|
|
"copy_tooltip": "토큰 복사",
|
|
"done": "완료"
|
|
}
|
|
},
|
|
"workspace": {
|
|
"section_general": "일반",
|
|
"change_logo_aria": "워크스페이스 로고 변경",
|
|
"click_logo_hint": "로고를 클릭하여 새 이미지를 업로드하세요",
|
|
"toast_logo_updated": "워크스페이스 로고를 업데이트했습니다",
|
|
"toast_logo_failed": "워크스페이스 로고를 업로드하지 못했습니다",
|
|
"name_label": "이름",
|
|
"description_label": "설명",
|
|
"description_placeholder": "이 워크스페이스는 무엇에 집중하나요?",
|
|
"context_label": "맥락",
|
|
"context_placeholder": "이 워크스페이스에서 작업하는 AI 에이전트가 알아야 할 배경 정보와 맥락",
|
|
"slug_label": "슬러그",
|
|
"issue_prefix_label": "이슈 접두사",
|
|
"issue_prefix_hint": "{{example}} 같은 이슈 번호에 사용됩니다.",
|
|
"prefix_confirm_title": "이슈 접두사를 변경할까요?",
|
|
"prefix_confirm_description": "모든 이슈 번호가 {{oldPrefix}}-N에서 {{newPrefix}}-N으로 다시 매겨집니다. Pull request 제목, 브랜치 이름, 문서와 채팅의 링크처럼 {{oldPrefix}}-N을 사용하는 외부 참조는 더 이상 연결되지 않습니다.",
|
|
"save": "저장",
|
|
"saving": "저장하는 중...",
|
|
"manage_hint": "관리자와 소유자만 워크스페이스 설정을 업데이트할 수 있습니다.",
|
|
"toast_saved": "워크스페이스 설정을 저장했습니다",
|
|
"toast_save_failed": "워크스페이스 설정을 저장하지 못했습니다",
|
|
"danger_zone": "위험 영역",
|
|
"leave_title": "워크스페이스 나가기",
|
|
"leave_sole_owner": "내가 유일한 소유자입니다. 먼저 다른 멤버를 소유자로 승격하거나 워크스페이스를 삭제하세요.",
|
|
"leave_sole_member": "내가 유일한 멤버입니다. 나가려면 워크스페이스를 삭제하세요.",
|
|
"leave_default": "이 워크스페이스에서 내 계정을 제거합니다.",
|
|
"leave_button": "워크스페이스 나가기",
|
|
"leaving": "나가는 중...",
|
|
"leave_confirm_title": "워크스페이스 나가기",
|
|
"leave_confirm_description": "{{name}}에서 나갈까요? 다시 초대받기 전까지 접근할 수 없습니다.",
|
|
"toast_leave_failed": "워크스페이스에서 나가지 못했습니다",
|
|
"delete_title": "워크스페이스 삭제",
|
|
"delete_description": "이 워크스페이스와 데이터를 영구 삭제합니다.",
|
|
"delete_button": "워크스페이스 삭제",
|
|
"deleting": "삭제하는 중...",
|
|
"toast_delete_failed": "워크스페이스를 삭제하지 못했습니다",
|
|
"confirm_cancel": "취소",
|
|
"confirm_action": "확인"
|
|
},
|
|
"delete_workspace_dialog": {
|
|
"title": "워크스페이스 삭제",
|
|
"description": "이 작업은 되돌릴 수 없습니다. 모든 이슈, 에이전트, 데이터가 영구 삭제됩니다.",
|
|
"type_to_confirm_prefix": "확인하려면 아래에",
|
|
"type_to_confirm_suffix": "을(를) 입력하세요.",
|
|
"cancel": "취소",
|
|
"confirm": "워크스페이스 삭제",
|
|
"deleting": "삭제하는 중..."
|
|
},
|
|
"labs": {
|
|
"section_placeholder_title": "아직 실험 기능이 없습니다",
|
|
"section_placeholder_description": "실험적 설정은 출시되는 대로 여기에 표시됩니다. 현재 이 탭은 의도적으로 비어 있습니다.",
|
|
"toast_failed": "설정을 업데이트하지 못했습니다"
|
|
},
|
|
"github": {
|
|
"page_description": "GitHub App을 연결하고, Pull request가 Multica 안에서 표시되는 방식을 제어하며, 에이전트가 커밋 기록에 남기는 정보를 설정합니다.",
|
|
"section_master": "GitHub 기능 사용",
|
|
"master_description_on": "끄면 모든 GitHub UI가 숨겨지고 새로운 부수 효과가 기록되지 않습니다. 기존 데이터는 백엔드에 유지됩니다. 개발팀이 아니라면 여기서 끄면 됩니다.",
|
|
"master_description_off": "GitHub 기능이 꺼져 있습니다. PR 사이드바, Co-authored-by 트레일러, 자동 연결이 일시 중지됩니다. 백엔드 데이터는 삭제되지 않습니다.",
|
|
"section_connection": "연결",
|
|
"connection_title": "GitHub App",
|
|
"connection_description_prefix": "이슈를 Pull request에 자동으로 연결합니다. 브랜치, 제목 또는 본문에",
|
|
"connection_description_suffix": "이(가) 있는 PR이 병합되면 해당 이슈가",
|
|
"connection_description_done": "완료",
|
|
"connection_identifier_example": "MUL-123",
|
|
"connected_to": "{{login}}에 연결됨",
|
|
"connect_github": "GitHub 연결",
|
|
"connect_opening": "여는 중...",
|
|
"connect_disabled_tooltip": "이 서버에 GitHub App이 설정되어 있지 않습니다",
|
|
"disconnect": "연결 해제",
|
|
"disconnecting": "연결 해제 중...",
|
|
"disconnect_confirm_title": "GitHub App 연결 해제",
|
|
"disconnect_confirm_description": "Multica가 이 설치의 Webhook 수신을 중단합니다. 기존 PR 미러와 연결은 유지되며, 언제든 다시 연결해 업데이트를 재개할 수 있습니다.",
|
|
"disconnect_confirm_cancel": "취소",
|
|
"disconnect_confirm_action": "연결 해제",
|
|
"not_configured": "이 배포에는 GitHub 연동이 설정되어 있지 않습니다. 운영자가 다음 값을 설정해야 합니다:",
|
|
"not_configured_and": "및",
|
|
"read_only_hint": "읽기 전용 보기입니다. 워크스페이스 관리자와 소유자만 GitHub를 연결하거나 해제할 수 있습니다.",
|
|
"contact_admin_to_connect": "이 워크스페이스에 GitHub가 연결되어 있지 않습니다. 관리자나 소유자에게 GitHub App 설정을 요청하세요.",
|
|
"connected_by": "{{name}}님이 연결함",
|
|
"toast_not_configured": "이 배포에는 GitHub 연동이 설정되어 있지 않습니다",
|
|
"toast_open_failed": "GitHub 설치 화면을 열지 못했습니다",
|
|
"toast_disconnect_failed": "GitHub App 연결을 해제하지 못했습니다",
|
|
"toast_disconnected": "GitHub App 연결을 해제했습니다",
|
|
"section_features": "기능",
|
|
"feature_pr_sidebar_label": "Pull request 사이드바",
|
|
"feature_pr_sidebar_description": "연결된 Pull request를 이슈 상세 사이드바에 표시합니다.",
|
|
"feature_co_author_label": "Co-authored-by 트레일러",
|
|
"feature_co_author_description_prefix": "에이전트가 작성한 커밋에",
|
|
"feature_co_author_description_suffix": "을(를) 추가합니다.",
|
|
"feature_auto_link_label": "이슈와 PR 자동 연결",
|
|
"feature_auto_link_description": "PR 제목, 본문, 브랜치 이름을 이슈 식별자와 대조해 자동으로 연결합니다.",
|
|
"section_repositories": "저장소",
|
|
"repositories_shortcut_label": "저장소 URL은 저장소 탭에 있습니다",
|
|
"repositories_shortcut_link": "저장소 관리 →",
|
|
"toast_failed": "GitHub 설정을 업데이트하지 못했습니다"
|
|
},
|
|
"repositories": {
|
|
"section_title": "저장소",
|
|
"description": "이 워크스페이스와 연결된 Git 저장소입니다. 에이전트는 이 저장소를 클론해 코드 작업을 합니다.",
|
|
"url_placeholder": "https://git.example.com/org/repo.git 또는 git@git.example.com:org/repo.git",
|
|
"url_empty": "(빈 URL)",
|
|
"description_placeholder": "설명(예: Go 백엔드 + Next.js 프런트엔드)",
|
|
"add": "저장소 추가",
|
|
"save": "저장",
|
|
"saving": "저장하는 중...",
|
|
"saved_hint": "모든 변경사항 저장됨",
|
|
"empty": "아직 저장소가 없습니다.",
|
|
"edit_aria": "저장소 수정",
|
|
"cancel_aria": "수정 취소",
|
|
"delete_aria": "저장소 삭제",
|
|
"manage_hint": "관리자와 소유자만 저장소를 관리할 수 있습니다.",
|
|
"toast_saved": "저장소를 저장했습니다",
|
|
"toast_save_failed": "저장소를 저장하지 못했습니다"
|
|
},
|
|
"desktop": {
|
|
"tabs": {
|
|
"updates": "업데이트"
|
|
},
|
|
"updates": {
|
|
"title": "업데이트",
|
|
"description": "데스크톱 앱은 한 시간에 한 번, 그리고 실행 직후 새 버전을 자동으로 확인하고 백그라운드에서 다운로드합니다. 업데이트가 준비되면 다시 시작하라는 안내가 표시됩니다.",
|
|
"current_version": "현재 버전",
|
|
"check_section_title": "업데이트 확인",
|
|
"check_section_description": "다음 자동 확인을 기다리지 않고 지금 확인합니다. 사용 가능한 업데이트는 백그라운드에서 다운로드되며 준비되면 다시 시작 안내가 표시됩니다.",
|
|
"up_to_date": "최신 버전입니다.",
|
|
"downloading": "v{{version}}을(를) 백그라운드에서 다운로드 중입니다. 설치 준비가 끝나면 알림을 드립니다.",
|
|
"check_now": "지금 확인",
|
|
"checking": "확인 중..."
|
|
}
|
|
},
|
|
"members": {
|
|
"section_title": "멤버 ({{count}})",
|
|
"invite_title": "멤버 초대",
|
|
"invite_email_placeholder": "user@company.com",
|
|
"invite_button": "초대",
|
|
"inviting": "초대하는 중...",
|
|
"toast_invitation_sent": "초대를 보냈습니다",
|
|
"toast_invitation_failed": "초대를 보내지 못했습니다",
|
|
"no_members": "멤버를 찾을 수 없습니다.",
|
|
"pending_title": "대기 중인 초대 ({{count}})",
|
|
"pending_status": "대기 중",
|
|
"revoke_invitation_tooltip": "초대 취소",
|
|
"revoke_invitation_title": "초대 취소",
|
|
"revoke_invitation_description": "{{email}}에 보낸 초대를 취소할까요? 더 이상 이 워크스페이스에 참가할 수 없습니다.",
|
|
"toast_invitation_revoked": "초대를 취소했습니다",
|
|
"toast_invitation_revoke_failed": "초대를 취소하지 못했습니다",
|
|
"toast_role_updated": "역할을 업데이트했습니다",
|
|
"toast_role_failed": "멤버를 업데이트하지 못했습니다",
|
|
"toast_member_removed": "멤버를 제거했습니다",
|
|
"toast_member_remove_failed": "멤버를 제거하지 못했습니다",
|
|
"remove_member_title": "{{name}} 제거",
|
|
"remove_member_description": "{{workspace}}에서 {{name}}님을 제거할까요? 이 워크스페이스에 접근할 수 없게 됩니다.",
|
|
"confirm_cancel": "취소",
|
|
"confirm_action": "확인",
|
|
"change_role": "역할 변경",
|
|
"remove_action": "워크스페이스에서 제거",
|
|
"cannot_demote_last_owner_title": "먼저 다른 멤버를 소유자로 승격하세요. 워크스페이스에는 최소 한 명의 소유자가 필요합니다.",
|
|
"cannot_demote_last_owner": "마지막 소유자는 강등할 수 없습니다",
|
|
"roles": {
|
|
"owner": {
|
|
"label": "소유자",
|
|
"description": "전체 접근 권한, 모든 설정 관리"
|
|
},
|
|
"admin": {
|
|
"label": "관리자",
|
|
"description": "멤버와 설정 관리"
|
|
},
|
|
"member": {
|
|
"label": "멤버",
|
|
"description": "이슈 생성 및 작업"
|
|
}
|
|
}
|
|
},
|
|
"lark": {
|
|
"section_title": "Lark",
|
|
"page_description": "각 Multica 에이전트를 Lark(飞书) PersonalAgent 봇에 연결하세요. 멤버는 봇과 1:1로 대화하거나, 그룹에서 @ 멘션하거나, /issue 를 입력해 새 Multica 이슈를 만들 수 있습니다.",
|
|
"not_enabled_title": "Lark 연동이 비활성화되어 있어요",
|
|
"not_enabled_description_prefix": "Lark 봇 설치를 활성화하려면 서버에",
|
|
"not_enabled_description_suffix": "을(를) 설정하세요.",
|
|
"not_enabled_self_host_hint": "셀프 호스트 운영자: 자세한 내용은 프로젝트 README를 참고하세요.",
|
|
"preview_title": "Lark 봇 설치 곧 출시 예정",
|
|
"preview_description": "암호화 키는 설정되어 있지만, 이 빌드에는 Lark HTTP 클라이언트가 연결되어 있지 않습니다. 후속 릴리스에서 전송 계층이 활성화되면 설치 진입점이 여기에 표시됩니다.",
|
|
"connected_bots": "연결된 봇",
|
|
"loading": "불러오는 중…",
|
|
"empty_title": "아직 연결된 봇이 없어요",
|
|
"empty_description_prefix": "이 워크스페이스의 에이전트를 열고",
|
|
"empty_description_cta": "Lark에 연결",
|
|
"empty_description_suffix": "을(를) 클릭해 봇을 설치하세요.",
|
|
"revoked_badge": "취소됨",
|
|
"region_feishu": "Feishu",
|
|
"region_lark": "Lark",
|
|
"installed_at_label": "{{when}} 설치됨",
|
|
"disconnect": "연결 해제",
|
|
"disconnecting": "연결을 해제하는 중…",
|
|
"disconnect_confirm_title": "이 Lark 봇의 연결을 해제할까요?",
|
|
"disconnect_confirm_description": "봇은 더 이상 Lark 메시지를 받지 않으며 WebSocket 연결도 끊깁니다. 감사 로그를 위해 설치 행은 유지되며, 같은 에이전트에서 다시 설치할 수 있습니다.",
|
|
"disconnect_confirm_cancel": "취소",
|
|
"toast_disconnected": "Lark 봇 연결을 해제했어요",
|
|
"toast_disconnect_failed": "연결 해제에 실패했어요",
|
|
"bind_button": "Lark에 연결",
|
|
"bind_button_title": "{{agent}}을(를) Lark 봇에 연결",
|
|
"bind_button_feishu": "Feishu에 연결",
|
|
"bind_button_lark": "Lark에 연결",
|
|
"bind_button_feishu_title": "{{agent}}을(를) Feishu(중국 본토판) 봇에 연결",
|
|
"bind_button_lark_title": "{{agent}}을(를) Lark(글로벌판) 봇에 연결",
|
|
"agent_bot_connected_label": "Lark에 연결됨",
|
|
"agent_bot_manage_link": "Lark에서 관리",
|
|
"agent_bot_manage_tooltip": "Lark 개발자 콘솔에서 이 봇의 앱 페이지를 열어 스코프 관리, 이름 변경, 추가 권한 신청을 할 수 있어요.",
|
|
"agent_bot_connected_label_feishu": "Feishu에 연결됨",
|
|
"agent_bot_connected_label_lark": "Lark에 연결됨",
|
|
"agent_bot_manage_link_feishu": "Feishu에서 관리",
|
|
"agent_bot_manage_link_lark": "Lark에서 관리",
|
|
"agent_bot_manage_tooltip_feishu": "Feishu 개발자 콘솔에서 이 봇의 앱 페이지를 열어 스코프 관리, 이름 변경, 추가 권한 신청을 할 수 있어요.",
|
|
"agent_bot_manage_tooltip_lark": "Lark 개발자 콘솔에서 이 봇의 앱 페이지를 열어 스코프 관리, 이름 변경, 추가 권한 신청을 할 수 있어요.",
|
|
"agent_bot_disconnect_tooltip": "이 Lark 봇과 에이전트 연결을 해제합니다. 봇은 Lark 메시지 수신을 중단합니다.",
|
|
"install_dialog_title": "Lark에 연결",
|
|
"install_dialog_description": "휴대폰에서 Lark를 열고 아래 코드를 스캔해 PersonalAgent 봇을 만드세요.",
|
|
"install_dialog_description_for_agent": "휴대폰에서 Lark를 열고 아래 코드를 스캔해 {{agent}}용 봇을 만드세요.",
|
|
"install_dialog_title_feishu": "Feishu에 연결",
|
|
"install_dialog_title_lark": "Lark에 연결",
|
|
"install_dialog_description_feishu": "휴대폰에서 Feishu를 열고 아래 코드를 스캔해 PersonalAgent 봇을 만드세요.",
|
|
"install_dialog_description_lark": "휴대폰에서 Lark를 열고 아래 코드를 스캔해 PersonalAgent 봇을 만드세요.",
|
|
"install_dialog_description_for_agent_feishu": "휴대폰에서 Feishu를 열고 아래 코드를 스캔해 {{agent}}용 봇을 만드세요.",
|
|
"install_dialog_description_for_agent_lark": "휴대폰에서 Lark를 열고 아래 코드를 스캔해 {{agent}}용 봇을 만드세요.",
|
|
"install_starting": "QR 코드를 준비하는 중…",
|
|
"install_scan_hint": "Lark → 스캔 → 새 PersonalAgent를 승인하세요.",
|
|
"install_open_link_fallback": "또는 여기를 눌러 Lark에서 열기",
|
|
"install_success": "설치 완료 — 봇이 온라인 상태입니다.",
|
|
"install_success_toast": "Lark 봇이 설치되었어요",
|
|
"install_scan_hint_feishu": "Feishu → 스캔 → 새 PersonalAgent를 승인하세요.",
|
|
"install_scan_hint_lark": "Lark → 스캔 → 새 PersonalAgent를 승인하세요.",
|
|
"install_open_link_fallback_feishu": "또는 여기를 눌러 Feishu에서 열기",
|
|
"install_open_link_fallback_lark": "또는 여기를 눌러 Lark에서 열기",
|
|
"install_success_toast_feishu": "Feishu 봇이 설치되었어요",
|
|
"install_success_toast_lark": "Lark 봇이 설치되었어요",
|
|
"install_close": "닫기",
|
|
"install_retry": "다시 스캔",
|
|
"install_poll_retry": "설치 상태를 확인하는 중 네트워크가 일시적으로 끊겼어요 — 다시 시도합니다.",
|
|
"install_error_expired": "승인 전에 QR이 만료되었어요. 다시 스캔하세요.",
|
|
"install_error_access_denied": "Lark에서 설치가 취소되었어요.",
|
|
"install_error_protocol": "Lark가 설치를 거부했어요 — 다시 시도하세요.",
|
|
"install_error_bot_info": "승인되었지만 Multica가 봇의 식별자를 가져오지 못했어요. 다시 시도하세요.",
|
|
"install_error_conflict": "설치를 저장하지 못했어요. 다른 봇이 이미 이 에이전트에 연결되어 있을 수 있어요.",
|
|
"install_error_installer_bind": "봇은 설치되었지만 Lark 신원을 연결하지 못했어요. 다시 시도하거나 지원팀에 문의하세요.",
|
|
"install_error_session_lost": "설치 세션이 만료되었거나 유실되었어요. 다시 스캔해 처음부터 진행하세요.",
|
|
"install_error_forbidden": "이 워크스페이스에 Lark 봇을 설치할 권한이 더 이상 없어요. 워크스페이스 관리자에게 문의하세요.",
|
|
"install_error_generic": "설치에 실패했어요. 다시 시도하세요."
|
|
}
|
|
}
|