From 6ef19d53f44357d472710442d2e0a2fcbed24085 Mon Sep 17 00:00:00 2001 From: klaus Date: Wed, 3 Dec 2025 15:32:41 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=94=94=EC=98=A4=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EC=A3=BC=EB=AC=B8=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EB=AC=B8=EC=9E=90=EC=97=B4=20=EB=A6=AC=EC=86=8C=EC=8A=A4?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 주문 목록/확인 UI의 텍스트를 ko/en/ja 리소스로 이전 --- .../box/AudioContentBoxActivity.kt | 2 -- .../order/AudioContentOrderConfirmDialog.kt | 32 ++++++++++--------- .../order/AudioContentOrderFragment.kt | 20 ++++++++---- .../order/AudioContentOrderListActivity.kt | 2 +- .../order/AudioContentOrderListFragment.kt | 2 +- .../order/AudioContentOrderListViewModel.kt | 9 +++--- .../dialog_audio_content_order_confirm.xml | 10 +++--- .../layout/fragment_audio_content_order.xml | 8 ++--- .../fragment_audio_content_order_list.xml | 6 ++-- app/src/main/res/values-en/strings.xml | 14 ++++++++ app/src/main/res/values-ja/strings.xml | 14 ++++++++ app/src/main/res/values/strings.xml | 14 ++++++++ 12 files changed, 93 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt index 15f1d32a..7da50755 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/box/AudioContentBoxActivity.kt @@ -1,7 +1,5 @@ package kr.co.vividnext.sodalive.audio_content.box -import android.os.Handler -import android.os.Looper import android.widget.LinearLayout import com.google.android.material.tabs.TabLayout import kr.co.vividnext.sodalive.R diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderConfirmDialog.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderConfirmDialog.kt index 77779934..a62fde44 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderConfirmDialog.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderConfirmDialog.kt @@ -1,6 +1,5 @@ package kr.co.vividnext.sodalive.audio_content.order -import android.annotation.SuppressLint import android.app.Activity import android.graphics.Color import android.graphics.drawable.ColorDrawable @@ -17,7 +16,6 @@ import kr.co.vividnext.sodalive.databinding.DialogAudioContentOrderConfirmBindin import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.moneyFormat -@SuppressLint("SetTextI18n") class AudioContentOrderConfirmDialog( activity: Activity, layoutInflater: LayoutInflater, @@ -38,6 +36,7 @@ class AudioContentOrderConfirmDialog( val dialogView = DialogAudioContentOrderConfirmBinding.inflate(layoutInflater) init { + val context = dialogView.root.context val dialogBuilder = AlertDialog.Builder(activity) dialogBuilder.setView(dialogView.root) @@ -82,7 +81,10 @@ class AudioContentOrderConfirmDialog( dialogView.tvPoint.visibility = View.GONE dialogView.tvPlus.visibility = View.GONE dialogView.ivCan.visibility = View.GONE - dialogView.tvCan.text = "${(price * 110).moneyFormat()}원" + dialogView.tvCan.text = context.getString( + R.string.audio_content_order_price_won_format, + (price * 110).moneyFormat() + ) } else { if (usablePoint > 0) { dialogView.ivPoint.visibility = View.VISIBLE @@ -111,19 +113,19 @@ class AudioContentOrderConfirmDialog( } } - if (SharedPreferenceManager.userId == 17958L) { - dialogView.tvNotice.text = if (orderType == OrderType.RENTAL) { - "콘텐츠를 대여하시겠습니까?" - } else { - "콘텐츠를 소장하시겠습니까?" - } - } else { - dialogView.tvNotice.text = if (orderType == OrderType.RENTAL) { - "콘텐츠를 대여하시겠습니까?\n아래 금액이 차감됩니다." - } else { - "콘텐츠를 소장하시겠습니까?\n아래 금액이 차감됩니다." - } + val noticeResId = when { + SharedPreferenceManager.userId == 17958L && orderType == OrderType.RENTAL -> + R.string.audio_content_order_confirm_notice_rental_simple + + SharedPreferenceManager.userId == 17958L && orderType == OrderType.KEEP -> + R.string.audio_content_order_confirm_notice_keep_simple + + orderType == OrderType.RENTAL -> + R.string.audio_content_order_confirm_notice_rental + + else -> R.string.audio_content_order_confirm_notice_keep } + dialogView.tvNotice.text = dialogView.root.context.getString(noticeResId) dialogView.tvCancel.setOnClickListener { alertDialog.dismiss() diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderFragment.kt index ba10660d..e23a1b66 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderFragment.kt @@ -1,11 +1,11 @@ package kr.co.vividnext.sodalive.audio_content.order -import android.annotation.SuppressLint import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.databinding.FragmentAudioContentOrderBinding import kr.co.vividnext.sodalive.extensions.moneyFormat @@ -28,23 +28,31 @@ class AudioContentOrderFragment( return binding.root } - @SuppressLint("SetTextI18n") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + val context = requireContext() if (SharedPreferenceManager.userId == 17958L) { - binding.tvKeepDate.text = "(이용기간 1년)" + binding.tvKeepDate.text = + context.getString(R.string.audio_content_order_keep_period_special) binding.ivKeepCan.visibility = View.GONE binding.ivRentalCan.visibility = View.GONE } else { - binding.tvKeepDate.text = "(서비스 종료시까지)" + binding.tvKeepDate.text = + context.getString(R.string.audio_content_order_keep_period_default) binding.ivKeepCan.visibility = View.VISIBLE binding.ivRentalCan.visibility = View.VISIBLE } if (SharedPreferenceManager.userId == 17958L) { - binding.tvKeep.text = "${(price * 110).moneyFormat()}원" - binding.tvRental.text = "${(ceil(price * 0.7).toInt() * 110).moneyFormat()}원" + binding.tvKeep.text = context.getString( + R.string.audio_content_order_price_won_format, + (price * 110).moneyFormat() + ) + binding.tvRental.text = context.getString( + R.string.audio_content_order_price_won_format, + (ceil(price * 0.7).toInt() * 110).moneyFormat() + ) } else { binding.tvKeep.text = price.moneyFormat() binding.tvRental.text = ceil(price * 0.7).toInt().moneyFormat() diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderListActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderListActivity.kt index 8a0911fa..7ab67aea 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderListActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/order/AudioContentOrderListActivity.kt @@ -33,7 +33,7 @@ class AudioContentOrderListActivity : BaseActivity Unit)? = null) { + val unknownError = SodaLiveApplicationHolder.get().getString(R.string.common_error_unknown) if (_isLoading.value == false) { _isLoading.value = true compositeDisposable.add( @@ -59,9 +62,7 @@ class AudioContentOrderListViewModel( if (it.message != null) { _toastLiveData.postValue(it.message) } else { - _toastLiveData.postValue( - "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." - ) + _toastLiveData.postValue(unknownError) } if (onFailure != null) { @@ -73,7 +74,7 @@ class AudioContentOrderListViewModel( { _isLoading.value = false it.message?.let { message -> Logger.e(message) } - _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") + _toastLiveData.postValue(unknownError) if (onFailure != null) { onFailure() } diff --git a/app/src/main/res/layout/dialog_audio_content_order_confirm.xml b/app/src/main/res/layout/dialog_audio_content_order_confirm.xml index 6bdf5273..51fdc7d9 100644 --- a/app/src/main/res/layout/dialog_audio_content_order_confirm.xml +++ b/app/src/main/res/layout/dialog_audio_content_order_confirm.xml @@ -15,7 +15,7 @@ android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_bold" android:gravity="center" - android:text="구매확인" + android:text="@string/audio_content_order_confirm_title" android:textColor="@color/color_eeeeee" android:textSize="18.3sp" /> @@ -118,7 +118,7 @@ android:gravity="center" android:textColor="@color/color_eeeeee" android:textSize="13.3sp" - tools:text="콘텐츠를 소장하시겠습니까?\n아래 캔이 차감됩니다." /> + tools:text="@string/audio_content_order_confirm_notice_keep" /> @@ -206,7 +206,7 @@ android:fontFamily="@font/gmarket_sans_bold" android:gravity="center" android:paddingVertical="15.7dp" - android:text="확인" + android:text="@string/confirm" android:textColor="@color/white" android:textSize="18.3sp" /> diff --git a/app/src/main/res/layout/fragment_audio_content_order.xml b/app/src/main/res/layout/fragment_audio_content_order.xml index 315ad164..b1449f3f 100644 --- a/app/src/main/res/layout/fragment_audio_content_order.xml +++ b/app/src/main/res/layout/fragment_audio_content_order.xml @@ -20,7 +20,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_bold" - android:text="대여" + android:text="@string/audio_content_order_label_rental" android:textColor="@color/white" android:textSize="13.3sp" /> @@ -28,7 +28,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_light" - android:text="(이용기간 5일)" + android:text="@string/audio_content_order_label_rental_period" android:textColor="@color/white" android:textSize="12sp" /> @@ -80,7 +80,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_bold" - android:text="소장" + android:text="@string/audio_content_order_label_keep" android:textColor="@color/white" android:textSize="13.3sp" /> @@ -89,7 +89,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_light" - android:text="(이용기간 1년)" + android:text="@string/audio_content_order_keep_period_default" android:textColor="@color/white" android:textSize="12sp" /> diff --git a/app/src/main/res/layout/fragment_audio_content_order_list.xml b/app/src/main/res/layout/fragment_audio_content_order_list.xml index 9972de80..de6a25cf 100644 --- a/app/src/main/res/layout/fragment_audio_content_order_list.xml +++ b/app/src/main/res/layout/fragment_audio_content_order_list.xml @@ -11,8 +11,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="13.3dp" + android:layout_marginEnd="4dp" android:fontFamily="@font/gmarket_sans_medium" - android:text="총 " + android:text="@string/screen_audio_content_order_total_prefix" android:textColor="@color/color_eeeeee" android:textSize="12sp" app:layout_constraintStart_toStartOf="parent" @@ -22,6 +23,7 @@ android:id="@+id/tv_total_count" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginHorizontal="4dp" android:fontFamily="@font/gmarket_sans_medium" android:textColor="@color/color_dd4500" android:textSize="12sp" @@ -33,7 +35,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/gmarket_sans_medium" - android:text=" 개" + android:text="@string/audio_content_total_unit" android:textColor="@color/color_eeeeee" android:textSize="12sp" app:layout_constraintStart_toEndOf="@+id/tv_total_count" diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 12229217..7164a416 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -842,6 +842,20 @@ Price: Low to High Popularity No content to display. + Content library + Total + Rent + (Valid for 5 days) + Own + (Until service ends) + (Valid for 1 year) + ₩%1$s + Purchase confirmation + Rent this content?\nThe amount below will be charged. + Own this content?\nThe amount below will be charged. + Rent this content? + Own this content? + + All items Free diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 0e180886..1252d7f2 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -842,6 +842,20 @@ 価格が低い順 人気順 表示できるコンテンツがありません。 + コンテンツライブラリ + 合計 + レンタル + (利用期間5日) + 購入 + (サービス終了まで) + (利用期間1年) + ₩%1$s + 購入確認 + このコンテンツをレンタルしますか?\n下記の金額が差し引かれます。 + このコンテンツを購入しますか?\n下記の金額が差し引かれます。 + このコンテンツをレンタルしますか? + このコンテンツを購入しますか? + + すべて 無料 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7e2bc01e..dcb99844 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -841,6 +841,20 @@ 낮은 가격순 인기순 표시할 콘텐츠가 없습니다. + 콘텐츠 보관함 + + 대여 + (이용기간 5일) + 소장 + (서비스 종료시까지) + (이용기간 1년) + %1$s원 + 구매확인 + 콘텐츠를 대여하시겠습니까?\n아래 금액이 차감됩니다. + 콘텐츠를 소장하시겠습니까?\n아래 금액이 차감됩니다. + 콘텐츠를 대여하시겠습니까? + 콘텐츠를 소장하시겠습니까? + + 전체 무료