시리즈 상세 문자열 리소스화

This commit is contained in:
2025-12-03 19:10:59 +09:00
parent 5ef7896f1d
commit f8769e97f9
10 changed files with 156 additions and 49 deletions

View File

@@ -38,7 +38,11 @@ class SeriesDetailActivity : BaseActivity<ActivitySeriesDetailBinding>(
val seriesId = intent.getLongExtra(Constants.EXTRA_SERIES_ID, 0) val seriesId = intent.getLongExtra(Constants.EXTRA_SERIES_ID, 0)
if (seriesId <= 0) { if (seriesId <= 0) {
Toast.makeText(applicationContext, "잘못된 요청입니다.", Toast.LENGTH_LONG).show() Toast.makeText(
applicationContext,
getString(R.string.screen_audio_content_error_invalid_request),
Toast.LENGTH_LONG
).show()
finish() finish()
} }
@@ -57,8 +61,14 @@ class SeriesDetailActivity : BaseActivity<ActivitySeriesDetailBinding>(
private fun setupTab() { private fun setupTab() {
val tabs = binding.tabs val tabs = binding.tabs
tabs.addTab(tabs.newTab().setText("").setTag("home")) tabs.addTab(
tabs.addTab(tabs.newTab().setText("작품소개").setTag("introduction")) tabs.newTab().setText(R.string.screen_series_detail_tab_home).setTag("home")
)
tabs.addTab(
tabs.newTab()
.setText(R.string.screen_series_detail_tab_introduction)
.setTag("introduction")
)
tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) { override fun onTabSelected(tab: TabLayout.Tab) {
@@ -152,7 +162,15 @@ class SeriesDetailActivity : BaseActivity<ActivitySeriesDetailBinding>(
binding.tvTitle.text = seriesDetail.title binding.tvTitle.text = seriesDetail.title
binding.tvGenre.text = seriesDetail.genre binding.tvGenre.text = seriesDetail.genre
binding.tvPublishedDaysOfWeek.text = "${seriesDetail.publishedDaysOfWeek} 연재" val publishedDays = if (seriesDetail.publishedDaysOfWeek == getString(R.string.day_random)) {
getString(R.string.day_random)
} else {
seriesDetail.publishedDaysOfWeek
}
binding.tvPublishedDaysOfWeek.text = getString(
R.string.screen_series_detail_published_days_format,
publishedDays
)
if (seriesDetail.isAdult) { if (seriesDetail.isAdult) {
binding.tvAge19.visibility = View.VISIBLE binding.tvAge19.visibility = View.VISIBLE

View File

@@ -5,8 +5,11 @@ import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.annotation.OptIn
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
import kr.co.vividnext.sodalive.audio_content.series.content.SeriesContentAdapter import kr.co.vividnext.sodalive.audio_content.series.content.SeriesContentAdapter
import kr.co.vividnext.sodalive.audio_content.series.content.SeriesContentAllActivity import kr.co.vividnext.sodalive.audio_content.series.content.SeriesContentAllActivity
@@ -44,9 +47,12 @@ class SeriesDetailHomeFragment : BaseFragment<FragmentSeriesDetailHomeBinding>(
} }
} }
@SuppressLint("SetTextI18n") @OptIn(UnstableApi::class)
private fun setContent() { private fun setContent() {
binding.tvTotalCount.text = "(${seriesDetailResponse!!.contentCount})" binding.tvTotalCount.text = getString(
R.string.screen_series_detail_content_count_format,
seriesDetailResponse!!.contentCount
)
binding.llContentAll.setOnClickListener { binding.llContentAll.setOnClickListener {
startActivity( startActivity(
Intent(requireActivity(), SeriesContentAllActivity::class.java).apply { Intent(requireActivity(), SeriesContentAllActivity::class.java).apply {

View File

@@ -53,22 +53,36 @@ class SeriesDetailIntroductionFragment : BaseFragment<FragmentSeriesDetailIntrod
binding.tvRentalPrice.text = if (rentalMinPrice == rentalMaxPrice) { binding.tvRentalPrice.text = if (rentalMinPrice == rentalMaxPrice) {
if (rentalMaxPrice == 0) { if (rentalMaxPrice == 0) {
"무료(5일)" getString(R.string.screen_series_detail_price_rental_free)
} else { } else {
"$rentalMaxPrice(5일)" getString(R.string.screen_series_detail_price_rental_single, rentalMaxPrice)
} }
} else { } else {
"${if (rentalMinPrice == 0) "무료" else rentalMinPrice} ~ ${rentalMaxPrice}캔 (5일)" val minText = if (rentalMinPrice == 0) {
getString(R.string.audio_content_price_free)
} else {
rentalMinPrice.toString()
}
getString(
R.string.screen_series_detail_price_rental_range,
minText,
rentalMaxPrice
)
} }
binding.tvPrice.text = if (minPrice == maxPrice) { binding.tvPrice.text = if (minPrice == maxPrice) {
if (maxPrice == 0) { if (maxPrice == 0) {
"무료" getString(R.string.audio_content_price_free)
} else { } else {
"$maxPrice" getString(R.string.screen_series_detail_price_keep_single, maxPrice)
} }
} else { } else {
"${if (minPrice == 0) "무료" else minPrice} ~ ${maxPrice}" val minText = if (minPrice == 0) {
getString(R.string.audio_content_price_free)
} else {
minPrice.toString()
}
getString(R.string.screen_series_detail_price_keep_range, minText, maxPrice)
} }
} }
@@ -76,18 +90,21 @@ class SeriesDetailIntroductionFragment : BaseFragment<FragmentSeriesDetailIntrod
private fun setSeriesInfo() { private fun setSeriesInfo() {
binding.tvGenre.text = seriesDetailResponse!!.genre binding.tvGenre.text = seriesDetailResponse!!.genre
binding.tvIsAdult.text = if (seriesDetailResponse!!.isAdult) { binding.tvIsAdult.text = if (seriesDetailResponse!!.isAdult) {
"19세 이상" getString(R.string.screen_series_detail_age_19)
} else { } else {
"전체연령가" getString(R.string.screen_series_detail_age_all)
} }
binding.tvPublishedDate.text = seriesDetailResponse!!.publishedDate binding.tvPublishedDate.text = seriesDetailResponse!!.publishedDate
binding.tvPublishedDaysOfWeek.text = val publishedDays = if (seriesDetailResponse!!.publishedDaysOfWeek == getString(R.string.day_random)) {
if (seriesDetailResponse!!.publishedDaysOfWeek == "랜덤") { getString(R.string.day_random)
seriesDetailResponse!!.publishedDaysOfWeek } else {
} else { seriesDetailResponse!!.publishedDaysOfWeek
seriesDetailResponse!!.publishedDaysOfWeek }
} binding.tvPublishedDaysOfWeek.text = getString(
R.string.screen_series_detail_published_days_format,
publishedDays
)
if (seriesDetailResponse!!.writer != null) { if (seriesDetailResponse!!.writer != null) {
binding.tvWriter.visibility = View.VISIBLE binding.tvWriter.visibility = View.VISIBLE

View File

@@ -5,10 +5,12 @@ import androidx.lifecycle.MutableLiveData
import com.orhanobut.logger.Logger import com.orhanobut.logger.Logger
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.series.SeriesRepository import kr.co.vividnext.sodalive.audio_content.series.SeriesRepository
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.user.UserRepository import kr.co.vividnext.sodalive.user.UserRepository
import kr.co.vividnext.sodalive.common.SodaLiveApplicationHolder
class SeriesDetailViewModel( class SeriesDetailViewModel(
private val repository: SeriesRepository, private val repository: SeriesRepository,
@@ -29,6 +31,8 @@ class SeriesDetailViewModel(
var seriesId = 0L var seriesId = 0L
lateinit var seriesDetailResponse: GetSeriesDetailResponse lateinit var seriesDetailResponse: GetSeriesDetailResponse
private val unknownErrorMessage: String
get() = SodaLiveApplicationHolder.get().getString(R.string.common_error_unknown)
fun getSeriesDetail() { fun getSeriesDetail() {
_isLoading.value = true _isLoading.value = true
@@ -46,18 +50,14 @@ class SeriesDetailViewModel(
seriesDetailResponse = it.data seriesDetailResponse = it.data
_seriesDetailLiveData.value = seriesDetailResponse _seriesDetailLiveData.value = seriesDetailResponse
} else { } else {
if (it.message != null) { _toastLiveData.value = it.message ?: unknownErrorMessage
_toastLiveData.value = it.message
} else {
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
}
} }
_isLoading.value = false _isLoading.value = false
}, },
{ {
_isLoading.value = false _isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(unknownErrorMessage)
} }
) )
) )
@@ -84,20 +84,14 @@ class SeriesDetailViewModel(
if (it.success && it.data != null) { if (it.success && it.data != null) {
onSuccess() onSuccess()
} else { } else {
if (it.message != null) { _toastLiveData.postValue(it.message ?: unknownErrorMessage)
_toastLiveData.postValue(it.message)
} else {
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
)
}
} }
_isLoading.value = false _isLoading.value = false
}, },
{ {
_isLoading.value = false _isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(unknownErrorMessage)
} }
) )
) )

View File

@@ -108,7 +108,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="5.3dp" android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp" android:paddingVertical="3.3dp"
android:text="전체연령가" android:text="@string/screen_series_detail_age_all"
android:textColor="@color/color_d2d2d2" android:textColor="@color/color_d2d2d2"
android:textSize="12sp" /> android:textSize="12sp" />
@@ -121,7 +121,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="5.3dp" android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp" android:paddingVertical="3.3dp"
android:text="19세" android:text="@string/screen_series_detail_age_19_badge"
android:textColor="@color/color_f1291c" android:textColor="@color/color_f1291c"
android:textSize="12sp" /> android:textSize="12sp" />

View File

@@ -20,7 +20,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="전체회차 듣기" android:text="@string/screen_series_content_all_title_default"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="16sp" /> android:textSize="16sp" />

View File

@@ -12,7 +12,7 @@
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="키워드" android:text="@string/screen_series_detail_section_keywords"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -35,7 +35,7 @@
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="작품 소개" android:text="@string/screen_series_detail_section_introduction"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -62,7 +62,7 @@
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="상세정보" android:text="@string/screen_series_detail_section_info"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -82,7 +82,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="장르" android:text="@string/screen_series_detail_label_genre"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -91,7 +91,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="연령제한" android:text="@string/screen_series_detail_label_age"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -101,7 +101,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="작가" android:text="@string/screen_series_detail_label_writer"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -111,7 +111,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="제작사" android:text="@string/screen_series_detail_label_studio"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -120,7 +120,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="연재" android:text="@string/screen_series_detail_label_published_days"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -129,7 +129,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="출시일" android:text="@string/screen_series_detail_label_published_date"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -207,7 +207,7 @@
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="18.7dp" android:layout_marginTop="18.7dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="가격" android:text="@string/screen_series_detail_section_price"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -227,7 +227,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="대여" android:text="@string/screen_series_detail_price_rental_label"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
@@ -236,7 +236,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="소장" android:text="@string/screen_series_detail_price_keep_label"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>

View File

@@ -171,6 +171,30 @@
<string name="screen_series_content_all_title_default">Full episodes</string> <string name="screen_series_content_all_title_default">Full episodes</string>
<string name="screen_series_content_sort_newest">Newest</string> <string name="screen_series_content_sort_newest">Newest</string>
<string name="screen_series_content_sort_oldest">Oldest</string> <string name="screen_series_content_sort_oldest">Oldest</string>
<string name="screen_series_detail_tab_home">Home</string>
<string name="screen_series_detail_tab_introduction">About</string>
<string name="screen_series_detail_published_days_format">Serial on %1$s</string>
<string name="screen_series_detail_age_all">All ages</string>
<string name="screen_series_detail_age_19">19+</string>
<string name="screen_series_detail_age_19_badge">19</string>
<string name="screen_series_detail_section_keywords">Keywords</string>
<string name="screen_series_detail_section_introduction">Introduction</string>
<string name="screen_series_detail_section_info">Details</string>
<string name="screen_series_detail_label_genre">Genre</string>
<string name="screen_series_detail_label_age">Age rating</string>
<string name="screen_series_detail_label_writer">Writer</string>
<string name="screen_series_detail_label_studio">Studio</string>
<string name="screen_series_detail_label_published_days">Schedule</string>
<string name="screen_series_detail_label_published_date">Release date</string>
<string name="screen_series_detail_section_price">Price</string>
<string name="screen_series_detail_price_rental_label">Rent</string>
<string name="screen_series_detail_price_keep_label">Own</string>
<string name="screen_series_detail_price_rental_free">Free (5 days)</string>
<string name="screen_series_detail_price_rental_single">%1$d cans (5 days)</string>
<string name="screen_series_detail_price_rental_range">%1$s ~ %2$d cans (5 days)</string>
<string name="screen_series_detail_price_keep_single">%1$d cans</string>
<string name="screen_series_detail_price_keep_range">%1$s ~ %2$d cans</string>
<string name="screen_series_detail_content_count_format">(%1$d)</string>
<string name="screen_series_main_title">All series</string> <string name="screen_series_main_title">All series</string>
<string name="screen_series_main_tab_home">Home</string> <string name="screen_series_main_tab_home">Home</string>
<string name="screen_series_main_tab_day_of_week">By day</string> <string name="screen_series_main_tab_day_of_week">By day</string>

View File

@@ -171,6 +171,30 @@
<string name="screen_series_content_all_title_default">全話を聴く</string> <string name="screen_series_content_all_title_default">全話を聴く</string>
<string name="screen_series_content_sort_newest">最新順</string> <string name="screen_series_content_sort_newest">最新順</string>
<string name="screen_series_content_sort_oldest">登録順</string> <string name="screen_series_content_sort_oldest">登録順</string>
<string name="screen_series_detail_tab_home">ホーム</string>
<string name="screen_series_detail_tab_introduction">作品紹介</string>
<string name="screen_series_detail_published_days_format">%1$s 連載</string>
<string name="screen_series_detail_age_all">全年齢</string>
<string name="screen_series_detail_age_19">19歳以上</string>
<string name="screen_series_detail_age_19_badge">19歳</string>
<string name="screen_series_detail_section_keywords">キーワード</string>
<string name="screen_series_detail_section_introduction">作品紹介</string>
<string name="screen_series_detail_section_info">詳細情報</string>
<string name="screen_series_detail_label_genre">ジャンル</string>
<string name="screen_series_detail_label_age">年齢制限</string>
<string name="screen_series_detail_label_writer">作家</string>
<string name="screen_series_detail_label_studio">制作会社</string>
<string name="screen_series_detail_label_published_days">連載</string>
<string name="screen_series_detail_label_published_date">リリース日</string>
<string name="screen_series_detail_section_price">価格</string>
<string name="screen_series_detail_price_rental_label">レンタル</string>
<string name="screen_series_detail_price_keep_label">購入</string>
<string name="screen_series_detail_price_rental_free">無料(5日)</string>
<string name="screen_series_detail_price_rental_single">%1$dキャン(5日)</string>
<string name="screen_series_detail_price_rental_range">%1$s ~ %2$dキャン (5日)</string>
<string name="screen_series_detail_price_keep_single">%1$dキャン</string>
<string name="screen_series_detail_price_keep_range">%1$s ~ %2$dキャン</string>
<string name="screen_series_detail_content_count_format">(%1$d)</string>
<string name="screen_series_main_title">シリーズ一覧</string> <string name="screen_series_main_title">シリーズ一覧</string>
<string name="screen_series_main_tab_home">ホーム</string> <string name="screen_series_main_tab_home">ホーム</string>
<string name="screen_series_main_tab_day_of_week">曜日別</string> <string name="screen_series_main_tab_day_of_week">曜日別</string>

View File

@@ -170,6 +170,30 @@
<string name="screen_series_content_all_title_default">전체회차 듣기</string> <string name="screen_series_content_all_title_default">전체회차 듣기</string>
<string name="screen_series_content_sort_newest">최신순</string> <string name="screen_series_content_sort_newest">최신순</string>
<string name="screen_series_content_sort_oldest">등록순</string> <string name="screen_series_content_sort_oldest">등록순</string>
<string name="screen_series_detail_tab_home"></string>
<string name="screen_series_detail_tab_introduction">작품소개</string>
<string name="screen_series_detail_published_days_format">%1$s 연재</string>
<string name="screen_series_detail_age_all">전체연령가</string>
<string name="screen_series_detail_age_19">19세 이상</string>
<string name="screen_series_detail_age_19_badge">19세</string>
<string name="screen_series_detail_section_keywords">키워드</string>
<string name="screen_series_detail_section_introduction">작품 소개</string>
<string name="screen_series_detail_section_info">상세정보</string>
<string name="screen_series_detail_label_genre">장르</string>
<string name="screen_series_detail_label_age">연령제한</string>
<string name="screen_series_detail_label_writer">작가</string>
<string name="screen_series_detail_label_studio">제작사</string>
<string name="screen_series_detail_label_published_days">연재</string>
<string name="screen_series_detail_label_published_date">출시일</string>
<string name="screen_series_detail_section_price">가격</string>
<string name="screen_series_detail_price_rental_label">대여</string>
<string name="screen_series_detail_price_keep_label">소장</string>
<string name="screen_series_detail_price_rental_free">무료(5일)</string>
<string name="screen_series_detail_price_rental_single">%1$d캔(5일)</string>
<string name="screen_series_detail_price_rental_range">%1$s ~ %2$d캔 (5일)</string>
<string name="screen_series_detail_price_keep_single">%1$d캔</string>
<string name="screen_series_detail_price_keep_range">%1$s ~ %2$d캔</string>
<string name="screen_series_detail_content_count_format">(%1$d)</string>
<string name="screen_series_main_title">시리즈 전체보기</string> <string name="screen_series_main_title">시리즈 전체보기</string>
<string name="screen_series_main_tab_home"></string> <string name="screen_series_main_tab_home"></string>
<string name="screen_series_main_tab_day_of_week">요일별</string> <string name="screen_series_main_tab_day_of_week">요일별</string>