feat(locale): Phase 3 — 전수 sweep, 노인 사용자 기준 영어 잔여 텍스트 한글화

이전 Phase 2 에서 'already English-only' 라며 skip 했던 화면들 — 노인 사용자에게는 영어로
보이면 안 됨. 전체 다시 훑어 모든 user-visible 영어 hardcoded text 를 strings.xml 로 추출.

11 파일 수정:
- MainActivity (Exit dialog)
- HomeView (Smart Bladder Monitoring / Start / Connected / Clinical Mode / dev toast)
- OnboardingView (Welcome, Get Started 등)
- CalibrationView (모든 status + Retry/Skip/Continue)
- SensorSelectView (title, descriptions)
- ShuffledKeypad (Delete contentDescription)
- MeasurementHistoryView (title, tabs, empty state, Today/Yesterday)
- VivamyoMonitoringView (전체 status)
- PiezoMonitoringView (사용자 영역 — Auto/Single Scan, Voiding/Catheterization, 측정 카드, dialog 등)
- PlacementGuideView (V1 hints, Step indicator, Start/Skip/Complete Alignment, In position/Position lost)

추출 strings: ~170 (각 언어). strings.xml 194 → 365 라인.

skip 유지:
- ClinicalHomeView / ClinicalLiveView (R&D dev mode)
- PiezoMonitoring dev panel sliders (3-tap 활성화 dev 도구)
- PlacementGuide dev settings overlay + Echo Waveforms (isDevMode gated)
- BLE Debug Log / Scan Log dialog (dev 전용)
- 브랜드명 (VesiScan-Basic, Vivamyo, Bladdy)
- DEMO 배지, IMU debug 문자열, Log.d / debugLogger 출력

Korean coverage: ~95% (일반 사용자가 절대 보지 않는 dev surface 만 영어 유지).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-29 09:17:23 +09:00
parent 2cf4f4db2f
commit 59d4ac0e81
12 changed files with 587 additions and 200 deletions
+171
View File
@@ -191,4 +191,175 @@
<string name="align_left">← Slightly to the left</string>
<string name="align_right">→ Slightly to the right</string>
<string name="align_probe_lr">↔ Move slowly side to side</string>
<!-- Exit Dialog -->
<string name="exit_app_title">Exit App</string>
<string name="exit_app_message">Are you sure you want to exit?</string>
<string name="exit_app_confirm">Exit</string>
<!-- Home View -->
<string name="home_subtitle">Smart Bladder Monitoring</string>
<string name="home_start">Start</string>
<string name="home_connected_resume">● Connected — Start to resume</string>
<string name="home_clinical_mode_dev">Clinical Mode (Dev)</string>
<string name="home_dev_mode_on">Developer mode ON</string>
<string name="home_dev_mode_off">Developer mode OFF</string>
<string name="home_language_icon_desc">Language</string>
<!-- Onboarding -->
<string name="onboarding_welcome">Welcome to VesiScan-Basic</string>
<string name="onboarding_subtitle">Smart bladder monitoring\nfor better quality of life</string>
<string name="onboarding_get_started">Get Started</string>
<!-- PIN View -->
<string name="pin_setup">Set PIN</string>
<string name="pin_setup_reenter">Re-enter PIN</string>
<string name="pin_enter">Enter PIN</string>
<string name="pin_mismatch">PINs don\'t match. Try again.</string>
<string name="pin_incorrect">Incorrect PIN</string>
<string name="pin_delete">Delete</string>
<!-- Sensor Select -->
<string name="sensor_select_title">Select Sensor</string>
<string name="sensor_select_subtitle">Choose your measurement mode</string>
<string name="sensor_nirs_desc">Near-Infrared Spectroscopy\nTissue oxygenation monitoring</string>
<string name="sensor_piezo_desc">Ultrasound Echo\nBladder volume measurement</string>
<!-- Calibration -->
<string name="calibration_initializing">Initializing…</string>
<string name="calibration_complete_status">NIRS Calibrated</string>
<string name="calibration_no_response">No response from device. Check the device is powered on and nearby.</string>
<string name="calibration_powering_on">Powering on NIRS transducer…</string>
<string name="calibration_activating">Activating sensor…</string>
<string name="calibration_reading_gain">Reading gain calibration…</string>
<string name="calibration_failed">Calibration Failed</string>
<string name="calibration_complete">Calibration Complete</string>
<string name="calibration_in_progress">Calibrating NIRS…</string>
<string name="calibration_skip">Skip</string>
<string name="calibration_continue">Continue</string>
<!-- Measurement History -->
<string name="history_title">History</string>
<string name="history_records_count">%d records</string>
<string name="history_tab_history">History</string>
<string name="history_tab_trends">Trends</string>
<string name="history_no_measurements">No measurements yet</string>
<string name="history_tap_spot_hint">Tap Spot to start measuring</string>
<string name="history_chart_bladder_level">Bladder Level</string>
<string name="history_chart_estimated_volume">Estimated Volume</string>
<string name="history_catheterization_log">Catheterization Log</string>
<string name="history_at_level">at Lv.%d</string>
<string name="history_no_data">No measurement data</string>
<string name="history_pinch_hint">Pinch to zoom • Tap point for details</string>
<string name="history_catheterization">Catheterization</string>
<string name="history_measurement">Measurement</string>
<string name="history_yesterday">Yesterday</string>
<string name="history_today">Today</string>
<!-- Vivamyo (NIRS Monitoring) -->
<string name="vivamyo_title">Vivamyo</string>
<string name="vivamyo_subtitle">NIRS Monitoring</string>
<string name="vivamyo_clear_title">Clear all data?</string>
<string name="vivamyo_clear_message">All collected NIRS data will be permanently deleted.</string>
<string name="vivamyo_clear_button">Clear Data</string>
<string name="vivamyo_status_low">Low</string>
<string name="vivamyo_status_caution">Caution</string>
<string name="vivamyo_status_normal">Normal</string>
<string name="vivamyo_status_check">Check</string>
<string name="vivamyo_samples_label">Samples: %d</string>
<string name="vivamyo_window_label">4Hz | 60s window</string>
<string name="vivamyo_filtered">Filtered</string>
<string name="vivamyo_no_data">No data</string>
<string name="vivamyo_clear">Clear</string>
<string name="vivamyo_stop">Stop</string>
<string name="vivamyo_start">Start</string>
<string name="vivamyo_home_desc">Home</string>
<!-- Piezo Monitoring -->
<string name="piezo_recorded">Recorded</string>
<string name="piezo_add_catheters_title">Add Catheters</string>
<string name="piezo_add_catheters_message">Enter the number of catheters to add:</string>
<string name="piezo_add_catheters_count_label">Count</string>
<string name="piezo_add">Add</string>
<string name="piezo_reset_level_title">Reset bladder level?</string>
<string name="piezo_reset_level_message">This will reset the bladder level to 0. This action cannot be undone.</string>
<string name="piezo_catheterize">Catheterize</string>
<string name="piezo_quick_save">Quick Save</string>
<string name="piezo_catheter_left">left</string>
<string name="piezo_disconnect">Disconnect</string>
<string name="piezo_disconnect_desc">Disconnected</string>
<string name="piezo_voiding_catheterization">Voiding / Catheterization</string>
<string name="piezo_stop_scan">Stop Scan</string>
<string name="piezo_auto_scan">Auto Scan</string>
<string name="piezo_single_scan">Single Scan</string>
<string name="piezo_current_measurement">Current Measurement</string>
<string name="piezo_realign_title">Position Lost or Insufficient Gel</string>
<string name="piezo_realign_message">Position lost or gel may be insufficient. Please check.</string>
<string name="piezo_realign_button">Realign</string>
<string name="piezo_dismiss">Dismiss</string>
<string name="piezo_delete_pairing_title">Delete Pairing</string>
<string name="piezo_delete_pairing_message">Disconnect and remove pairing.</string>
<string name="piezo_posture_lying">Lying</string>
<string name="piezo_posture_upright">Upright</string>
<string name="piezo_posture_walking">Walking</string>
<string name="piezo_posture_detecting">Detecting</string>
<string name="piezo_home_desc">Home</string>
<string name="piezo_placement_desc">Placement</string>
<string name="piezo_catheter_desc">Catheter</string>
<string name="piezo_settings_desc">Settings</string>
<!-- Placement Guide -->
<string name="placement_title">Sensor Alignment</string>
<string name="placement_press_start">Place VesiScan above the pubic bone, then press Start</string>
<string name="placement_initial_hint">Place the sensor just above the pubic bone</string>
<string name="placement_sweep_initial">Place sensor near navel, slide down ↓</string>
<string name="placement_step_format">Step %1$d/%2$d</string>
<string name="placement_start_alignment">Start Alignment</string>
<string name="placement_complete_alignment">Complete Alignment</string>
<string name="placement_start_scanning">Start Scanning</string>
<string name="placement_skip">Skip</string>
<string name="placement_in_position">In position!</string>
<string name="placement_position_lost">Position lost. Restart above pubic bone.</string>
<string name="placement_detached_restart">Sensor detached. Restart above pubic bone.</string>
<string name="placement_signal_lost">Signal lost — slide up ↑</string>
<string name="placement_sweep_start">Start near navel, slide down slowly ↓</string>
<string name="placement_too_far">Too far — slide up ↑</string>
<string name="placement_position_ok">Position OK! Final check…</string>
<string name="placement_slide_left">Slide left ←</string>
<string name="placement_slide_right">Slide right →</string>
<string name="placement_checking">Checking</string>
<string name="placement_slide_down_slight">Slide down slightly ↓</string>
<string name="placement_slide_down">Slide down ↓</string>
<string name="placement_slide_further_down">Slide further down ↓</string>
<string name="placement_hold_still">Hold still</string>
<string name="placement_slide_up">Slide up ↑</string>
<string name="placement_slide_up_slight">Slide up slightly ↑</string>
<string name="placement_final_check">Final check…</string>
<string name="placement_move_left">Move sensor left ←</string>
<string name="placement_move_right">Move sensor right →</string>
<string name="placement_try_right">Try moving right →</string>
<string name="placement_symmetry_ok">Symmetry OK! Final check…</string>
<string name="placement_restart_pubic">Start over from above the pubic bone</string>
<string name="placement_adjust_multiple">Adjust position — multiple channels missing</string>
<string name="placement_slide_up_ch3">Slide up slightly ↑ (ch3 missing)</string>
<string name="placement_slide_down_ch0">Slide down slightly ↓ (ch0 missing)</string>
<string name="placement_adjust_center">Adjust position slightly — center channel missing</string>
<string name="placement_adjust_lr">Adjust left or right</string>
<string name="placement_optimizing">Optimizing</string>
<string name="placement_back_desc">Back</string>
<string name="placement_ready_desc">Ready</string>
<string name="placement_body_desc">Body silhouette</string>
<!-- Piezo Settings -->
<string name="piezo_settings_bladder_capacity">Bladder Capacity</string>
<string name="piezo_settings_catheter_threshold">Catheter Threshold</string>
<string name="piezo_settings_auto_scan_interval">Auto Scan Interval</string>
<string name="piezo_settings_level_format">Level %d</string>
<string name="piezo_settings_unit_sec">sec</string>
<string name="piezo_settings_unit_min">min</string>
<string name="piezo_settings_app">App</string>
<string name="piezo_settings_device">Device</string>
<string name="piezo_settings_firmware">Firmware</string>
<string name="piezo_logs_charts">Logs &amp; Charts</string>
<string name="piezo_developer_tools">Developer Tools</string>
</resources>