feat(locale): Phase 2 — 모든 사용자 노출 Korean 문자열 → strings.xml 추출 + 영문 번역

Sub-agent 작업 결과:
- values/strings.xml + values-ko/strings.xml 각각 71 → 194 줄 (약 85 신규 string)
- 17 파일 수정 (UI views 9개, components 3개, managers 1개, services 2개)

상세:
- ui/views/{home, consent, registration, reminder, monitoring (3), personalization, connection}
- components/{BatteryWarningBanner, FirmwareWarningBanner, LockableSlider}
- managers/AlignmentAdvisorV2 — Out/AdvisorState 에 msgKey + msgArgs 추가 (UI 가 context.getString 으로 localize)
- services/{ReminderService, BleForegroundService}

의도적으로 skip:
- ClinicalHomeView / ClinicalLiveView (R&D-only dev mode)
- PiezoMonitoring dev panel labels (dev 도구)
- AlignmentAdvice / 2-phase AlignGuide (UI 미사용)
- 이미 영어인 파일들 (Onboarding, Pin, SensorSelect, Calibration 등)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-26 17:27:05 +09:00
parent bc7843809e
commit 2cf4f4db2f
17 changed files with 409 additions and 110 deletions
+123
View File
@@ -68,4 +68,127 @@
<string name="too_dark">이미지가 너무 어둡습니다</string>
<string name="not_enough_marks">눈금 부족</string>
<string name="detection_fail">감지 실패</string>
<!-- Home / Language Dialog -->
<string name="language_dialog_title">언어</string>
<string name="language_system_default">시스템 기본</string>
<string name="language_korean">한국어</string>
<string name="language_english">English</string>
<!-- Consent -->
<string name="consent_title">이용 동의</string>
<string name="consent_intro">서비스 이용을 위해 아래 항목에 동의해 주세요.</string>
<string name="consent_agree_all">전체 동의</string>
<string name="consent_personal_title">[필수] 개인정보 수집 및 이용 동의</string>
<string name="consent_personal_desc">이름, 나이, 성별, 신체정보(키·체중)를 앱 내 기능 제공 목적으로 수집합니다. 수집된 정보는 기기에만 저장되며 외부로 전송되지 않습니다.</string>
<string name="consent_medical_title">[필수] 의료정보 활용 동의</string>
<string name="consent_medical_desc">방광 측정 데이터, 배뇨일지, NIRS 산소포화도 등 건강 관련 데이터를 모니터링 및 기록 목적으로 활용합니다.</string>
<string name="consent_data_title">[필수] 데이터 저장 동의</string>
<string name="consent_data_desc">측정 기록 및 배뇨일지 데이터가 기기 내부 저장소에 저장됩니다. 앱 삭제 시 모든 데이터가 삭제됩니다.</string>
<string name="consent_continue">동의하고 계속하기</string>
<!-- Registration -->
<string name="sex_male">남성</string>
<string name="sex_female">여성</string>
<!-- Reminder Settings -->
<string name="reminder_title">배뇨 알리미</string>
<string name="reminder_enable">알림 활성화</string>
<string name="reminder_enabled_desc">정해진 간격으로 배뇨 알림을 받습니다</string>
<string name="reminder_disabled_desc">알림이 꺼져 있습니다</string>
<string name="reminder_interval_label">알림 간격</string>
<string name="reminder_active_hours">알림 시간대</string>
<string name="reminder_start">시작</string>
<string name="reminder_end">종료</string>
<string name="reminder_hour_format">%d시</string>
<string name="reminder_flexible_title">유동 스케줄링</string>
<string name="reminder_flexible_desc">마지막 기록 기준으로 다음 알림을 조정합니다</string>
<string name="reminder_method_label">알림 방식</string>
<string name="reminder_sound">소리</string>
<string name="reminder_vibration">진동</string>
<string name="reminder_popup">팝업</string>
<string name="reminder_summary">요약</string>
<string name="reminder_active_hours_summary">활성 시간: %1$d시 ~ %2$d시</string>
<string name="reminder_interval_summary">매 %s 간격</string>
<string name="reminder_permission_needed">알림 권한 필요</string>
<string name="reminder_permission_desc">설정에서 알림 권한을 허용해주세요</string>
<string name="settings">설정</string>
<string name="format_hours_minutes">%1$d시간 %2$d분</string>
<string name="format_hours">%d시간</string>
<string name="format_minutes">%d분</string>
<!-- Voiding Diary additions -->
<string name="average_ml">평균 %d ml</string>
<string name="count_times">%d회</string>
<string name="volume_ml_short">%d ml</string>
<string name="medical_metrics_24h">24시간 의료 지표</string>
<string name="metric_total_count">총 횟수</string>
<string name="metric_daytime">주간</string>
<string name="metric_nighttime">야간</string>
<!-- Placement Guide / Sensor Detach -->
<string name="sensor_detached_title">센서가 분리되었습니다</string>
<string name="sensor_detached_subtitle">Sensor detached</string>
<string name="sensor_detached_desc">치골 위쪽에 다시 위치시켜 주세요</string>
<string name="press_start_hint">센서를 치골 위에 두고 Start 를 누르세요</string>
<!-- Wakeup / Walking Alarm -->
<string name="alarm_patient_woke_up">환자가 일어났습니다</string>
<string name="alarm_patient_woke_up_en">Patient is getting up</string>
<string name="alarm_lying_duration">누운 시간 %1$d분 %2$d초</string>
<string name="alarm_patient_walking">환자가 걷고 있습니다</string>
<string name="alarm_patient_walking_en">Patient is walking — fall risk</string>
<string name="alarm_immediate_check">즉시 환자 상태 확인 필요</string>
<!-- Voiding Record additions -->
<string name="estimated_volume">추정 용량</string>
<!-- Device Scan -->
<string name="unpair_title">페어링 해제</string>
<string name="unpair_message">%s 의 페어링을 해제합니다. 다시 사용하려면 PIN 재입력이 필요합니다.</string>
<string name="unpair_confirm">해제</string>
<!-- Reminder Notifications -->
<string name="notification_channel_name">배뇨 알림</string>
<string name="notification_channel_desc">배뇨 알리미 알림</string>
<string name="notification_title">VesiScan 알림</string>
<string name="reminder_msg_1">배뇨 시간입니다! 도뇨 준비를 해주세요.</string>
<string name="reminder_msg_2">규칙적인 배뇨는 건강의 기본입니다!</string>
<string name="reminder_msg_3">화장실에 다녀오세요! 💧</string>
<string name="reminder_msg_4">배뇨 시간이에요. 건강한 습관을 유지하세요!</string>
<string name="reminder_msg_5">잊지 마세요! 화장실 갈 시간입니다.</string>
<!-- BLE Foreground Service -->
<string name="ble_service_channel_desc">BLE 기기 연결 유지</string>
<string name="ble_service_connecting">BLE 기기 연결 중...</string>
<!-- Battery / Firmware Warnings -->
<string name="battery_critical_title">기기 배터리 위급</string>
<string name="battery_low_title">기기 배터리 부족</string>
<string name="battery_critical_desc">현재 %d%% · 측정이 갑자기 중단될 수 있습니다. 즉시 충전하세요.</string>
<string name="battery_low_desc">현재 %d%% · 곧 충전이 필요합니다.</string>
<string name="firmware_outdated_title">펌웨어 업데이트 필요</string>
<string name="firmware_no_response_title">기기 응답 없음</string>
<string name="firmware_outdated_desc">현재: %1$s · 필요: VBTFW%2$04d 이상. 측정이 정상 동작하지 않을 수 있습니다.</string>
<!-- Lockable Slider -->
<string name="slider_unlocked_desc">잠금 해제됨 — 다시 탭하여 잠금</string>
<string name="slider_locked_desc">잠김 — 탭하여 해제 후 조정</string>
<!-- Personalization -->
<string name="wakeup_alarm_title">기상 알람</string>
<string name="wakeup_alarm_desc">환자가 일어나면 빨간 팝업으로 알림 (낙상 예방)</string>
<string name="voiding_reminder_threshold_desc">방광이 이 정도 차오르면 알림</string>
<!-- Alignment Advisor V2 hints -->
<string name="align_hold_still">잠시 그대로 두세요 (%1$d/%2$d)</string>
<string name="align_move_up">↑ 위로 조금씩 올리세요</string>
<string name="align_recover_up">↑ 살짝 놓침 — 다시 위로</string>
<string name="align_hold_position">✓ 좋아요! 그 위치 유지 (%1$d/%2$d)</string>
<string name="align_recover_up_short">↑ 위치 살짝 벗어남 — 위로 약간</string>
<string name="align_recover_down_short">↓ 위치 살짝 벗어남 — 아래로 약간</string>
<string name="align_complete">✓ 정렬 완료! 그대로 측정 가능</string>
<string name="align_left">← 왼쪽으로 살짝</string>
<string name="align_right">→ 오른쪽으로 살짝</string>
<string name="align_probe_lr">↔ 좌우로 천천히 움직여 보세요</string>
</resources>