feat(mobile): Phase M-2 D3RO 디자인 시스템 모바일 적용

DS 컴포넌트 9개 (ScreenPanel, WaveBars, AppStatusBar, Header, FilterChip 신규),
5개 탭 + 로그인 화면 D3RO 인스트루먼트 미학 적용,
i18n 연결 (I18nProvider + 모바일 전용 키 80+개),
모노레포 workspaces에 apps/mobile 추가.
This commit is contained in:
yunchan8804 2026-04-13 17:32:31 +09:00
parent 541f04d02b
commit 55eb62189a
19 changed files with 10435 additions and 1073 deletions

View file

@ -531,5 +531,87 @@
"theme.nord": "Nord",
"theme.solarized": "Solarized",
"theme.catppuccin": "Catppuccin",
"theme.dracula": "Dracula"
"theme.dracula": "Dracula",
"mobile.dash.title": "D3RO-VOICE",
"mobile.dash.sessionOverview": "SESSION OVERVIEW",
"mobile.dash.today": "TODAY",
"mobile.dash.words": "WORDS",
"mobile.dash.streak": "STREAK",
"mobile.dash.rec": "REC",
"mobile.dash.min": "MIN",
"mobile.dash.backend": "BACKEND",
"mobile.dash.tier": "TIER",
"mobile.dash.free": "FREE",
"mobile.dash.tapToRecord": "Tap REC to start recording",
"mobile.dash.usage": "USAGE",
"mobile.dash.dictation": "Dictation",
"mobile.dash.llmProcess": "LLM Process",
"mobile.dash.premiumQuota": "Premium Quota",
"mobile.dash.unlimited": "Unlimited",
"mobile.hist.title": "HISTORY",
"mobile.hist.all": "ALL",
"mobile.hist.saved": "SAVED",
"mobile.hist.processing": "PROC",
"mobile.hist.empty": "No history yet. Start recording!",
"mobile.rec.title": "RECORDER",
"mobile.rec.session": "REC_SESSION",
"mobile.rec.ready": "READY",
"mobile.rec.recording": "RECORDING",
"mobile.rec.processing": "PROCESSING",
"mobile.rec.done": "DONE",
"mobile.rec.error": "ERROR",
"mobile.rec.start": "START RECORDING",
"mobile.rec.stop": "STOP",
"mobile.rec.cancel": "CANCEL",
"mobile.rec.newRecording": "NEW RECORDING",
"mobile.rec.listening": "LISTENING_",
"mobile.rec.realtime": "REAL-TIME TRANSCRIPT",
"mobile.rec.initLog": "> initializing voice recording protocol...",
"mobile.rec.micDenied": "Microphone permission denied",
"mobile.rec.supabaseNotConfigured": "Supabase not configured",
"mobile.rec.loginRequired": "Login required",
"mobile.talk.title": "TALK",
"mobile.talk.live": "LIVE",
"mobile.talk.you": "YOU",
"mobile.talk.claude": "CLAUDE",
"mobile.talk.placeholder": "Type or speak...",
"mobile.talk.greeting": "Hello! How can I help you today?",
"mobile.set.title": "Settings",
"mobile.set.accountPlan": "ACCOUNT & PLAN",
"mobile.set.backendConfig": "BACKEND CONFIG",
"mobile.set.preferences": "PREFERENCES",
"mobile.set.llmModel": "LLM Model",
"mobile.set.llmDesc": "AI processing backend",
"mobile.set.cloudStt": "Cloud STT",
"mobile.set.cloudSttDesc": "Google Cloud Speech",
"mobile.set.language": "Language",
"mobile.set.autoPolish": "Auto Polish",
"mobile.set.haptic": "Haptic Feedback",
"mobile.set.logout": "LOGOUT",
"mobile.set.logoutConfirm": "Are you sure you want to log out?",
"mobile.set.connected": "CLOUD CONNECTED",
"mobile.login.title": "D3RO-VOICE",
"mobile.login.subtitle": "PRECISION VOICE INTELLIGENCE",
"mobile.login.google": "Sign in with Google",
"mobile.login.apple": "Sign in with Apple",
"mobile.login.github": "Sign in with GitHub",
"mobile.login.or": "or",
"mobile.login.email": "EMAIL",
"mobile.login.password": "PASSWORD",
"mobile.login.signIn": "Sign In",
"mobile.login.noAccount": "Don't have an account?",
"mobile.login.signUp": "Sign Up",
"mobile.login.notConfigured": "Supabase not configured. Set EXPO_PUBLIC_SUPABASE_URL in .env",
"mobile.status.model": "CLOUD CLAUDE",
"mobile.status.link": "PRECISION DATA LINK",
"date.today": "TODAY",
"date.yesterday": "YESTERDAY"
}

View file

@ -531,5 +531,87 @@
"theme.nord": "노드",
"theme.solarized": "솔라라이즈드",
"theme.catppuccin": "카푸치노",
"theme.dracula": "드라큘라"
"theme.dracula": "드라큘라",
"mobile.dash.title": "D3RO-VOICE",
"mobile.dash.sessionOverview": "SESSION OVERVIEW",
"mobile.dash.today": "TODAY",
"mobile.dash.words": "WORDS",
"mobile.dash.streak": "STREAK",
"mobile.dash.rec": "REC",
"mobile.dash.min": "MIN",
"mobile.dash.backend": "BACKEND",
"mobile.dash.tier": "TIER",
"mobile.dash.free": "FREE",
"mobile.dash.tapToRecord": "REC 탭을 눌러 녹음 시작",
"mobile.dash.usage": "USAGE",
"mobile.dash.dictation": "받아쓰기",
"mobile.dash.llmProcess": "LLM 처리",
"mobile.dash.premiumQuota": "프리미엄 쿼터",
"mobile.dash.unlimited": "무제한",
"mobile.hist.title": "HISTORY",
"mobile.hist.all": "ALL",
"mobile.hist.saved": "SAVED",
"mobile.hist.processing": "PROC",
"mobile.hist.empty": "아직 기록이 없습니다. 녹음을 시작해보세요!",
"mobile.rec.title": "RECORDER",
"mobile.rec.session": "REC_SESSION",
"mobile.rec.ready": "READY",
"mobile.rec.recording": "RECORDING",
"mobile.rec.processing": "PROCESSING",
"mobile.rec.done": "DONE",
"mobile.rec.error": "ERROR",
"mobile.rec.start": "START RECORDING",
"mobile.rec.stop": "STOP",
"mobile.rec.cancel": "CANCEL",
"mobile.rec.newRecording": "NEW RECORDING",
"mobile.rec.listening": "LISTENING_",
"mobile.rec.realtime": "REAL-TIME TRANSCRIPT",
"mobile.rec.initLog": "> initializing voice recording protocol...",
"mobile.rec.micDenied": "마이크 권한이 거부되었습니다",
"mobile.rec.supabaseNotConfigured": "Supabase가 설정되지 않았습니다",
"mobile.rec.loginRequired": "로그인이 필요합니다",
"mobile.talk.title": "TALK",
"mobile.talk.live": "LIVE",
"mobile.talk.you": "YOU",
"mobile.talk.claude": "CLAUDE",
"mobile.talk.placeholder": "입력하거나 말하세요...",
"mobile.talk.greeting": "안녕하세요! 무엇을 도와드릴까요?",
"mobile.set.title": "설정",
"mobile.set.accountPlan": "ACCOUNT & PLAN",
"mobile.set.backendConfig": "BACKEND CONFIG",
"mobile.set.preferences": "PREFERENCES",
"mobile.set.llmModel": "LLM Model",
"mobile.set.llmDesc": "AI processing backend",
"mobile.set.cloudStt": "Cloud STT",
"mobile.set.cloudSttDesc": "Google Cloud Speech",
"mobile.set.language": "Language",
"mobile.set.autoPolish": "Auto Polish",
"mobile.set.haptic": "Haptic Feedback",
"mobile.set.logout": "LOGOUT",
"mobile.set.logoutConfirm": "정말 로그아웃 하시겠습니까?",
"mobile.set.connected": "CLOUD CONNECTED",
"mobile.login.title": "D3RO-VOICE",
"mobile.login.subtitle": "PRECISION VOICE INTELLIGENCE",
"mobile.login.google": "Google로 로그인",
"mobile.login.apple": "Apple로 로그인",
"mobile.login.github": "GitHub로 로그인",
"mobile.login.or": "또는",
"mobile.login.email": "EMAIL",
"mobile.login.password": "PASSWORD",
"mobile.login.signIn": "로그인",
"mobile.login.noAccount": "계정이 없으신가요?",
"mobile.login.signUp": "회원가입",
"mobile.login.notConfigured": "Supabase가 설정되지 않았습니다. EXPO_PUBLIC_SUPABASE_URL을 .env에 설정하세요.",
"mobile.status.model": "CLOUD CLAUDE",
"mobile.status.link": "PRECISION DATA LINK",
"date.today": "TODAY",
"date.yesterday": "YESTERDAY"
}