-
Notifications
You must be signed in to change notification settings - Fork 1
π§ [chore] λ€κ΅μ΄ ν€κ° μλ¬Έμ ν΅μΌ #135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
Localizable.strings νμΌμ ν€κ°λ€μ snake_case μλ¬Έμλ‘ ν΅μΌ λ³νλ ν€κ° (μν 20κ°): - Dashboard β dashboard - Catalog β catalog - Collection β collection - Cancel β cancel - Setting β setting - Edit β edit - Reset β reset - Preferences β preferences - North β north - South β south - About β about - Version β version - Fishes β fishes - Sea Creatures β sea_creatures - Bugs β bugs - Fossils β fossils - Art β art - All β all - Name β name - Personality β personality - Gender β gender π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
π WalkthroughWalkthroughThe PR systematically converts localization string keys from Title Case to lowercase or snake_case conventions across English and Korean resource files, and updates all corresponding Swift source code to reference these new lowercase keys, ensuring consistent naming throughout the application. Changes
Estimated code review effortπ― 3 (Moderate) | β±οΈ ~25 minutes Poem
Pre-merge checks and finishing touchesβ Failed checks (1 warning)
β Passed checks (4 passed)
β¨ Finishing touches
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. Comment |
- Localizable.strings ν€κ° μ 리 - UIViewController+extension κ°μ - ItemsViewController λ€κ΅μ΄ μ²λ¦¬ κ°μ π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Catalog, Collection, Personality, Gender μ€λ³΅ ν€ μ κ±° - λμλ¬Έμλ§ λ€λ₯Έ μ€λ³΅ ν€κ° Tuistμμ μΆ©λ λ°μ π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and canβt be posted inline due to platform limitations.
β οΈ Outside diff range comments (2)
Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/Localizable.strings (1)
1-1519: Korean localization file must be updated with matching key changes.The Korean localization file (
ko.lproj/Localizable.strings) has not been updated with the key changes made in the English file. Key mismatches detected:
- Missing from Korean: "Apple", "Birthday", "Cherry", "Jack", "Orange", "Peach", "Pear", "Tom Nook", "neta" (11 keys with casing differences)
- Extra in Korean: "apple", "cherry", "orange", "peach", "pear" (lowercase variants), plus "All villagers", "Find peral", "Fishing", "Isabelle", "Island", "Jingle", "Snowboy", "Pascal", "Pattern", "Whether to buy"
The Korean file has 1394 keys vs. English's 1385 keys. When the app runs in Korean locale, it will fail to load these localized strings, causing missing translations or runtime errors. Update the Korean file to match all key changes made in the English file, and fix the typo "Find peral" β "Find pearl".
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift (1)
58-71: Fix SearchScope enum localization key case mismatch.The
SearchScopeenum raw value"All"doesn't match the localization file key"all"(lowercase). Thetransformfunction will fail to localize this value at runtime. Update the enum to use lowercase"all"to match the existing localization key:enum SearchScope: String, CaseIterable { case all = "all" case notCollected = "Not collected" case collected = "Collected" // ... }The keys
"Collected"and"Not collected"match correctly and don't need changes.
π§Ή Nitpick comments (1)
Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/Localizable.strings (1)
74-74: Consider fixing the typo in the key name.The value correctly fixes the typo ("villager"), but the key still contains the typo: "Obtain DIY from vilager". While keys are internal identifiers, consistent spelling improves maintainability.
Consider renaming the key in a follow-up:
-"Obtain DIY from vilager" = "Obtain DIY from villager"; +"Obtain DIY from villager" = "Obtain DIY from villager";Don't forget to update the corresponding Swift code reference.
π Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
π Files selected for processing (14)
Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/Localizable.stringsAnimal-Crossing-Wiki/Projects/App/Resources/ko.lproj/Localizable.stringsAnimal-Crossing-Wiki/Projects/App/Sources/AppCoordinator.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIViewController+extension.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/Views/NPCDetailView.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/Views/VillagerDetailView.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/NpcsView.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/TodaysTasksView.swiftAnimal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/VillagersView.swift
π§° Additional context used
𧬠Code graph analysis (5)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/Views/NPCDetailView.swift (2)
Animal-Crossing-Wiki/Projects/App/Sources/Models/NPC.swift (1)
name(10-28)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/ViewControllers/NPCViewController.swift (1)
transform(17-23)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/VillagersView.swift (2)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/AppSettingView.swift (1)
configure(33-48)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift (1)
editLabel(56-59)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift (3)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/KeywordCell.swift (1)
setUp(34-36)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift (1)
setUpNavigationItem(40-42)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/PreferencesView.swift (1)
updateHemisphere(141-143)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift (3)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift (1)
setUpNavigationItem(40-42)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift (1)
updateDate(56-58)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/ViewControllers/VillagersViewController.swift (1)
setUpNavigationItem(200-211)
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift (3)
Animal-Crossing-Wiki/Projects/App/Sources/Utility/Items.swift (1)
reset(420-431)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/KeywordCell.swift (1)
setUp(34-36)Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/ViewControllers/NPCViewController.swift (1)
transform(17-23)
π Additional comments (26)
Animal-Crossing-Wiki/Projects/App/Resources/ko.lproj/Localizable.strings (4)
10-19: LGTM! Tab bar and common UI keys properly unified to lowercase.Keys like
dashboard,catalog,collection,cancel,ok,settingare now consistently lowercase, aligning with the PR objective.
265-265: Good catch: Bug fix for time translation.The translation for "11 PM β 8 AM" was incorrectly "μ€ν 11μ β μ€ν 8μ" (PM to PM). This correctly fixes it to "μ€ν 11μ β μ€μ 8μ" (PM to AM).
38-42: Lowercase keys for edit/reset with appropriate duplicate prevention comments.The comment on line 42 noting that "reset" is already defined above helps prevent duplicate key conflicts in Tuist builds.
130-134: Category and filter keys consistently updated to lowercase/snake_case.Keys like
fishes,sea_creatures,bugs,fossils,art,to_catch_now,currently_available,search,all,month,name,personality,genderfollow the new convention.Also applies to: 163-168, 291-293
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift (1)
40-40: LGTM! Navigation title uses lowercase localization key.The change from
"Preferences".localizedto"preferences".localizedaligns with the project-wide lowercase key convention.Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift (1)
38-38: LGTM! Navigation title updated to lowercase key.Consistent with the project-wide localization key standardization.
Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/VillagersView.swift (1)
43-53: LGTM! Reset button uses lowercase localization key.The change to
"reset".localizedis consistent with the standardization effort across the codebase.Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/NpcsView.swift (1)
43-53: LGTM! Reset button uses lowercase localization key.Consistent with the same change in
VillagersView.swift.Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift (1)
21-27: LGTM! Section title uses lowercase localization key.The
"version".localizedchange maintains consistency with the project-wide localization key standardization.Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift (1)
36-46: LGTM! Edit and reset buttons use lowercase localization keys.Both
"edit".localizedand"reset".localizedare consistent with the project-wide standardization to lowercase keys.Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIViewController+extension.swift (2)
30-30: LGTM! Alert button titles updated to lowercase keys.The cancel button now uses the lowercase localization key
"cancel", aligning with the project's new convention.
57-64: LGTM! Alert action titles standardized to lowercase.Both alert actions now use lowercase localization keys (
"cancel"and"ok"), consistent with the PR's standardization effort. These keys exist in all localization files (English and Korean).Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/Views/VillagerDetailView.swift (1)
56-57: LGTM! Item title keys updated to lowercase.The
"personality"and"gender"keys now follow the lowercase convention. Note that other item titles ("Hobby","Birthday", etc.) remain in Title Case, which is expected given this PR's incremental migration strategy. The.capitalizedcalls ensure proper display formatting is preserved.Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Animals/Views/NPCDetailView.swift (1)
56-56: LGTM! Gender title key updated to lowercase.The
"gender"localization key now follows the lowercase convention, consistent with the parallel change inVillagerDetailView.swift. The.capitalizedtransformation ensures proper display formatting.Animal-Crossing-Wiki/Projects/App/Sources/AppCoordinator.swift (3)
32-32: LGTM! Dashboard tab title key updated to lowercase.The dashboard tab now uses the lowercase localization key
"dashboard", consistent with the standardization effort.
38-38: LGTM! Catalog tab title key updated to lowercase.The catalog tab now uses the lowercase localization key
"catalog", aligning with the new convention.
49-49: All tab bar title keys are properly localized in lowercase. All four keys ("dashboard","catalog","animals","collection") exist in the localization files and are correctly referenced in the code.Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift (1)
47-47: Localization key "collection" verified in both en.lproj and ko.lproj files.The lowercase key
"collection"exists in both English ("collection" = "Collection";) and Korean ("collection" = "μμ§ν";) localization files, confirming the standardization is complete and properly localized.Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift (3)
102-102: LGTM!The search placeholder correctly uses the lowercase key "search" which maps to "Search..." in the localization file.
246-258: Navigation title keys are correctly implemented with consistent localization.The new lowercase keys "to_catch_now" and "currently_available" are properly defined in Localizable.strings (lines 160-161) and correctly used in ItemsViewController.swift (lines 252, 255). No old Title Case key references remain in the codebase, confirming the migration is complete and consistent.
29-56: All localization keys referenced in the Menu enum ("all", "month", "name", "Sell", "All Select", "reset") are present in both English and Korean localization files. There is no runtime risk from the key naming inconsistency.Likely an incorrect or invalid review comment.
Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/Localizable.strings (5)
9-14: LGTM!Tab bar title keys correctly converted to lowercase ("dashboard", "catalog", "collection"). The remaining keys ("villagers", "animals") appear to already be lowercase.
16-20: LGTM!Generic keys properly converted to lowercase ("cancel", "ok", "setting") while preserving proper capitalization in the display values.
671-680: LGTM!Housewares tag keys correctly follow the lowercase convention with proper capitalization preserved in display values.
160-169: Verify unconverted keys match Swift code usage.ItemsViewController keys are partially converted. Lines 166-169 retain Title Case for "Sell", "All Select", "Collected", and "Not collected". The Swift code (ItemsViewController.swift lines 34-35, 50-51) actively references these Title Case keys ("Sell" and "All Select"), confirming the partial conversion is necessary and correct. Ensure consistent conversion approach in follow-up PRs.
38-43: Duplicate key consolidation is correct and all call sites properly reference consolidated keys.Each localized string key ("reset", "edit", "Today's Tasks", "Collection Progress") is defined once in the strings file. Swift code across VillagersView, TodaysTasksView, NpcsView, TaskEditViewController, DashboardViewController, CollectionProgressViewController, and ItemsViewController all correctly reference these consolidated keys. No broken references detected.
Summary
λ³νλ ν€κ° λͺ©λ‘
μμ λ νμΌ
ko.lproj/Localizable.strings- νκ΅μ΄ λ¬Έμμ΄en.lproj/Localizable.strings- μμ΄ λ¬Έμμ΄.localizedνΈμΆ λΆλΆ)Test plan
Closes #70
π€ Generated with Claude Code
Summary by CodeRabbit
Bug Fixes
Localization & Internationalization
βοΈ Tip: You can customize this high-level summary in your review settings.