다이얼로그 문구를 공통 번역으로 제공

콘텐츠, 라이브, 스플래시 화면의 안내 문구를
공통 번역 키로 제공해 지역화 품질을 개선한다
This commit is contained in:
Yu Sung
2025-12-29 16:44:55 +09:00
parent 64bb5668f4
commit 19380ccc70
18 changed files with 224 additions and 90 deletions

View File

@@ -54,14 +54,14 @@ final class CharacterDetailViewModel: ObservableObject {
if let message = decoded.message {
self?.errorMessage = message
} else {
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
}
self?.isShowPopup = true
}
} catch {
ERROR_LOG(String(describing: error))
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
self?.isShowPopup = true
}
}
@@ -94,14 +94,14 @@ final class CharacterDetailViewModel: ObservableObject {
if let message = decoded.message {
self?.errorMessage = message
} else {
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
}
self?.isShowPopup = true
}
} catch {
ERROR_LOG(String(describing: error))
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
self?.isShowPopup = true
}
}

View File

@@ -78,11 +78,11 @@ struct CharacterDetailGalleryView: View {
.overlay {
if viewModel.isShowPurchaseDialog {
SodaDialog(
title: "구매 확인",
desc: "선택한 이미지를 구매하시겠습니까?",
title: I18n.CharacterDetailGallery.purchaseConfirmTitle,
desc: I18n.CharacterDetailGallery.purchaseConfirmDescription,
confirmButtonTitle: viewModel.selectedItemPrice,
confirmButtonAction: viewModel.onPurchaseConfirm,
cancelButtonTitle: "취소",
cancelButtonTitle: I18n.Common.cancel,
cancelButtonAction: viewModel.onPurchaseCancel
)
}

View File

@@ -44,7 +44,7 @@ final class CharacterDetailGalleryViewModel: ObservableObject {
}
var selectedItemPrice: String {
return "\(selectedItem?.imagePriceCan ?? 0)캔으로 구매"
return I18n.CharacterDetailGallery.purchaseWithCans(selectedItem?.imagePriceCan ?? 0)
}
// MARK: - Public Methods
@@ -112,7 +112,7 @@ final class CharacterDetailGalleryViewModel: ObservableObject {
if let message = decoded.message {
self.errorMessage = message
} else {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
}
self.isShowPopup = true
@@ -124,7 +124,7 @@ final class CharacterDetailGalleryViewModel: ObservableObject {
self.selectedImageIndex = 0
self.selectedItem = nil
ERROR_LOG(String(describing: error))
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowPopup = true
}
}
@@ -172,14 +172,14 @@ final class CharacterDetailGalleryViewModel: ObservableObject {
if let message = decoded.message {
self?.errorMessage = message
} else {
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
}
self?.isShowPopup = true
}
} catch {
ERROR_LOG(String(describing: error))
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
self?.isShowPopup = true
}
}
@@ -219,14 +219,14 @@ final class CharacterDetailGalleryViewModel: ObservableObject {
if let message = decoded.message {
self?.errorMessage = message
} else {
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
}
self?.isShowPopup = true
}
} catch {
ERROR_LOG(String(describing: error))
self?.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self?.errorMessage = I18n.Common.commonError
self?.isShowPopup = true
}
}