Skip to content

Feature/#87 - 앱 전체 한국어/영어 로컬라이제이션 적용 - #114

Merged
yeseonglee merged 1 commit into
developfrom
feature/#87
Aug 18, 2026
Merged

Feature/#87 - 앱 전체 한국어/영어 로컬라이제이션 적용#114
yeseonglee merged 1 commit into
developfrom
feature/#87

Conversation

@yeseonglee

@yeseonglee yeseonglee commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

✨ What's this PR?

📌 관련 이슈 (Related Issue)


🧶 주요 변경 내용 (Summary)

String Catalog 인프라

  • Localizable.xcstrings에 ko/en 두 언어를 등록하고, 기존에 빌드가 자동 추출만 해두고 번역이 하나도 없던 상태를 실제 문구로 채웠습니다.
  • 브랜드명·로고 조각 문자열("De", "LOGO" 등)은 번역 대상에서 제외했습니다.

하드코딩 문자열 → 카탈로그 이전

  • SecretListView(정렬 메뉴, 컨텍스트 메뉴, 빈 상태, 로드 실패), SidebarView/SidebarFeature(프로젝트 삭제·이름변경 관련 alert, 로드 실패 문구), OnboardingView/LockView, CreateProjectView/CreateProjectFeature, CreateSecretFeature/CreateSecretError/ProjectLoadError, SecretDetailView/SecretDetailFeature/SecretDetailError, AboutSettingsView, SecurityNotification+Module, ICloudSyncAlert 등 화면 전반의 하드코딩 한국어/영어 문자열을 .module(...) / String.module(...)로 이전했습니다.
  • 기존에 마침표가 빠져 있던 alert 메시지·에러 문구를 문장부호까지 통일했습니다("Required""Required.", "Failed to load projects""Failed to load projects." 등 다수).
  • AboutSettingsView"Devault" 오탈자를 "DeVault"로 함께 바로잡았습니다.
  • SecretListView에 검색창 placeholder(searchPromptText: .module("Search"))를 추가했습니다.

🧪 테스트 / 검증 내역

  • DVPresentation 테스트 통과 확인
  • 전 스킴 빌드 성공 확인
  • 시스템 언어를 한국어/영어로 전환하며 주요 화면 실제 동작 확인

💬 기타 공유 사항


🙇🏻‍♀️ 리뷰 가이드 (선택)

  • SidebarFeature.swiftSidebarFilter.title을 꼭 확인해 주세요. 이번 커밋에서 case .all: .module("All") 형태였던 것이 case .all: "All"처럼 .module(...) 래핑이 제거된 것으로 보입니다. SidebarView에서 이 값을 그대로 DVCategory(title:)에 넘기기 때문에, 이대로면 사이드바 필터명(All/Star/Notice/Expired/Deleted)이 로케일과 무관하게 항상 영어로 고정될 가능성이 있습니다 — 의도한 것인지 확인 부탁드립니다.
  • Localizable.xcstrings는 diff가 5,800줄 넘게 커서 리뷰 시 실제 화면별 코드 변경(위 Summary에 나열한 파일들)을 먼저 보고, 카탈로그는 키 존재 여부 위주로 훑는 걸 추천합니다.

@yeseonglee yeseonglee self-assigned this Aug 18, 2026
@yeseonglee yeseonglee linked an issue Aug 18, 2026 that may be closed by this pull request
9 tasks
@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@dlguszoo, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

Limit details: You’ve used all 1 included review currently available under your plan.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 12d8a81e-5b30-4709-b18e-afb01bc93104

📥 Commits

Reviewing files that changed from the base of the PR and between bc05233 and 501f880.

📒 Files selected for processing (31)
  • Projects/DVPresentation/Resources/Localizable.xcstrings
  • Projects/DVPresentation/Sources/Features/CreateProject/CreateProjectFeature.swift
  • Projects/DVPresentation/Sources/Features/CreateProject/CreateProjectView.swift
  • Projects/DVPresentation/Sources/Features/CreateSecret/CreateSecretFeature.swift
  • Projects/DVPresentation/Sources/Features/CreateSecret/Model/CreateSecretError.swift
  • Projects/DVPresentation/Sources/Features/CreateSecret/Model/ProjectLoadError.swift
  • Projects/DVPresentation/Sources/Features/Lock/LockView.swift
  • Projects/DVPresentation/Sources/Features/Onboarding/OnboardingView.swift
  • Projects/DVPresentation/Sources/Features/SecretDetail/Components/DetailSSLRequiredFieldView.swift
  • Projects/DVPresentation/Sources/Features/SecretDetail/Model/SecretDetailError.swift
  • Projects/DVPresentation/Sources/Features/SecretDetail/SecretDetailFeature.swift
  • Projects/DVPresentation/Sources/Features/SecretDetail/SecretDetailView.swift
  • Projects/DVPresentation/Sources/Features/SecretList/SecretListFeature.swift
  • Projects/DVPresentation/Sources/Features/SecretList/SecretListView.swift
  • Projects/DVPresentation/Sources/Features/Settings/About/AboutSettingsView.swift
  • Projects/DVPresentation/Sources/Features/Settings/Components/SettingsValueRow.swift
  • Projects/DVPresentation/Sources/Features/Settings/Data/DataSettingsFeature.swift
  • Projects/DVPresentation/Sources/Features/Settings/ICloud/ICloudSettingsView.swift
  • Projects/DVPresentation/Sources/Features/Settings/Notifications/NotificationSettingsFeature.swift
  • Projects/DVPresentation/Sources/Features/Sidebar/SidebarFeature.swift
  • Projects/DVPresentation/Sources/Features/Sidebar/SidebarView.swift
  • Projects/DVPresentation/Sources/Localization/SecurityNotification+Module.swift
  • Projects/DVPresentation/Sources/Support/ICloudSyncAlert.swift
  • Projects/DVPresentation/Tests/CreateProject/CreateProjectFeatureTests.swift
  • Projects/DVPresentation/Tests/Features/CreateSecret/CreateSecretFeatureTests.swift
  • Projects/DVPresentation/Tests/Onboarding/OnboardingFeatureTests.swift
  • Projects/DVPresentation/Tests/SecretDetail/SecretDetailFeatureTests.swift
  • Projects/DVPresentation/Tests/SecretList/SecretListFeatureTests.swift
  • Projects/DVPresentation/Tests/Settings/Data/DataSettingsFeatureTests.swift
  • Projects/DVPresentation/Tests/Settings/Notifications/NotificationSettingsFeatureTests.swift
  • Projects/DVPresentation/Tests/Sidebar/SidebarFeatureTests.swift

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@dlguszoo dlguszoo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

큰거 왔다!

- String Catalog에 ko/en 언어 등록, 로고 조각·브랜드명 등 번역 제외 처리
- 소스 언어(en)와 어긋나던 한국어 하드코딩 alert 문구를 영어 키 + 번역으로 전환
- SecretList/CreateProject/Lock 화면의 남은 하드코딩 문자열을 .module 패턴으로 마이그레이션
- 알림 본문 문장의 영어/한국어 온점 표기를 통일
@yeseonglee
yeseonglee merged commit 40c3408 into develop Aug 18, 2026
1 check was pending
@doyeonk429
doyeonk429 deleted the feature/#87 branch August 18, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Localization (ko/en) 적용

2 participants