오디션 역할 상세 문자열 리소스화

This commit is contained in:
2025-12-01 15:31:26 +09:00
parent 159a5ae8b3
commit 98209d0d5f
6 changed files with 152 additions and 73 deletions

View File

@@ -1,5 +1,6 @@
package kr.co.vividnext.sodalive.audition.role package kr.co.vividnext.sodalive.audition.role
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Rect import android.graphics.Rect
import android.net.Uri import android.net.Uri
@@ -28,6 +29,7 @@ import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.RealPathUtil import kr.co.vividnext.sodalive.common.RealPathUtil
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.databinding.ActivityAuditionRoleDetailBinding import kr.co.vividnext.sodalive.databinding.ActivityAuditionRoleDetailBinding
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
import kr.co.vividnext.sodalive.explorer.profile.creator_community.write.RecordingVoiceFragment import kr.co.vividnext.sodalive.explorer.profile.creator_community.write.RecordingVoiceFragment
@@ -66,14 +68,14 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
} else { } else {
Toast.makeText( Toast.makeText(
this, this,
"잘못된 녹음 파일 입니다.\n다시 선택해 주세요.", getString(R.string.screen_audition_invalid_audio_file),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()
} }
} else { } else {
Toast.makeText( Toast.makeText(
this, this,
"잘못된 녹음 파일 입니다.\n다시 선택해 주세요.", getString(R.string.screen_audition_invalid_audio_file),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()
} }
@@ -87,7 +89,7 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
if (auditionRoleId <= 0) { if (auditionRoleId <= 0) {
Toast.makeText( Toast.makeText(
applicationContext, applicationContext,
"잘못된 요청입니다.\n다시 시도해 주세요.", getString(R.string.screen_audition_error_invalid_request),
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
@@ -137,7 +139,7 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
isOpenInformation = !isOpenInformation isOpenInformation = !isOpenInformation
if (isOpenInformation) { if (isOpenInformation) {
binding.tvInformation.maxLines = Int.MAX_VALUE binding.tvInformation.maxLines = Int.MAX_VALUE
binding.tvOpen.text = "접기" binding.tvOpen.text = getString(R.string.screen_audition_detail_collapse)
binding.tvOpen.setCompoundDrawablesWithIntrinsicBounds( binding.tvOpen.setCompoundDrawablesWithIntrinsicBounds(
R.drawable.ic_live_detail_top, R.drawable.ic_live_detail_top,
0, 0,
@@ -146,7 +148,7 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
) )
} else { } else {
binding.tvInformation.maxLines = 3 binding.tvInformation.maxLines = 3
binding.tvOpen.text = "펼치기" binding.tvOpen.text = getString(R.string.screen_audition_detail_expand)
binding.tvOpen.setCompoundDrawablesWithIntrinsicBounds( binding.tvOpen.setCompoundDrawablesWithIntrinsicBounds(
R.drawable.ic_live_detail_bottom, R.drawable.ic_live_detail_bottom,
0, 0,
@@ -162,9 +164,9 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
SodaDialog( SodaDialog(
activity = this@AuditionRoleDetailActivity, activity = this@AuditionRoleDetailActivity,
layoutInflater = layoutInflater, layoutInflater = layoutInflater,
title = "재지원 안내", title = getString(R.string.dialog_audition_reapply_title),
desc = "재지원 시 이전 지원 내역은 삭제되며 받은 투표수는 무효 처리됩니다.", desc = getString(R.string.dialog_audition_reapply_desc),
confirmButtonTitle = "확인", confirmButtonTitle = getString(R.string.confirm),
confirmButtonClick = { showApplicationMethodDialog() } confirmButtonClick = { showApplicationMethodDialog() }
).show(screenWidth) ).show(screenWidth)
} else { } else {
@@ -174,9 +176,9 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
SodaDialog( SodaDialog(
activity = this@AuditionRoleDetailActivity, activity = this@AuditionRoleDetailActivity,
layoutInflater = layoutInflater, layoutInflater = layoutInflater,
title = "- 본인인증 -", title = getString(R.string.dialog_audition_auth_title),
desc = "마이페이지에서 '본인인증'을 하고 다시 오디션에 지원해 주세요.", desc = getString(R.string.dialog_audition_auth_desc),
confirmButtonTitle = "확인", confirmButtonTitle = getString(R.string.confirm),
confirmButtonClick = {} confirmButtonClick = {}
).show(screenWidth) ).show(screenWidth)
} }
@@ -211,23 +213,23 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
SodaDialog( SodaDialog(
activity = this@AuditionRoleDetailActivity, activity = this@AuditionRoleDetailActivity,
layoutInflater = layoutInflater, layoutInflater = layoutInflater,
"[오디션 응원]", getString(R.string.dialog_audition_vote_title),
"오디션을 응원하셨습니다\n(무료응원 : 1계정당 1일 1회)\n1캔으로 추가 응원을 해보세요.", getString(R.string.dialog_audition_vote_desc),
confirmButtonTitle = "확인", confirmButtonTitle = getString(R.string.confirm),
confirmButtonClick = { confirmButtonClick = {
isShowNotifyVote = false isShowNotifyVote = false
}, },
descGravity = Gravity.CENTER descGravity = Gravity.CENTER
).show(screenWidth) ).show(screenWidth)
} }
}, },
onFailure = { onFailure = {
SodaDialog( SodaDialog(
activity = this@AuditionRoleDetailActivity, activity = this@AuditionRoleDetailActivity,
layoutInflater = layoutInflater, layoutInflater = layoutInflater,
"[오늘 응원 제한]", getString(R.string.dialog_audition_vote_limit_title),
"오늘 응원은 여기까지!\n하루 최대 10회까지 이용이 가능합니다.\n내일 다시 이용해주세요.", getString(R.string.dialog_audition_vote_limit_desc),
confirmButtonTitle = "확인", confirmButtonTitle = getString(R.string.confirm),
confirmButtonClick = {}, confirmButtonClick = {},
descGravity = Gravity.CENTER descGravity = Gravity.CENTER
).show(screenWidth) ).show(screenWidth)
@@ -307,7 +309,7 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
selectAudioActivityResultLauncher.launch( selectAudioActivityResultLauncher.launch(
Intent.createChooser( Intent.createChooser(
intent, intent,
"Select Audio" getString(R.string.screen_audition_select_audio)
) )
) )
}, },
@@ -339,9 +341,15 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
auditionApplyDialogFragment.show(supportFragmentManager, auditionApplyDialogFragment.tag) auditionApplyDialogFragment.show(supportFragmentManager, auditionApplyDialogFragment.tag)
} }
@SuppressLint("SetTextI18n")
private fun bindData() { private fun bindData() {
viewModel.toastLiveData.observe(this) { viewModel.toastLiveData.observe(this) {
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() } it?.let { toastMessage ->
val message = toastMessage.message ?: toastMessage.resId?.let(::getString)
message?.let { text ->
Toast.makeText(applicationContext, text, Toast.LENGTH_LONG).show()
}
}
} }
viewModel.isLoading.observe(this) { viewModel.isLoading.observe(this) {
@@ -381,10 +389,10 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
if (roleDetail.isAlreadyApplicant) { if (roleDetail.isAlreadyApplicant) {
reApplication = true reApplication = true
binding.tvApplicant.text = "오디션 재지원" binding.tvApplicant.text = getString(R.string.screen_audition_apply_again)
} else { } else {
reApplication = false reApplication = false
binding.tvApplicant.text = "오디션 지원" binding.tvApplicant.text = getString(R.string.screen_audition_apply)
} }
} }
@@ -394,7 +402,7 @@ class AuditionRoleDetailActivity : BaseActivity<ActivityAuditionRoleDetailBindin
if (it > 0) { if (it > 0) {
binding.groupApplicant.visibility = View.VISIBLE binding.groupApplicant.visibility = View.VISIBLE
binding.tvApplicantCount.text = "$it" binding.tvApplicantCount.text = " $it"
} else { } else {
binding.groupNoApplicant.visibility = View.VISIBLE binding.groupNoApplicant.visibility = View.VISIBLE
} }

View File

@@ -13,7 +13,9 @@ import kr.co.vividnext.sodalive.audition.applicant.ApplyAuditionRoleRequest
import kr.co.vividnext.sodalive.audition.applicant.GetAuditionRoleApplicantItem import kr.co.vividnext.sodalive.audition.applicant.GetAuditionRoleApplicantItem
import kr.co.vividnext.sodalive.audition.vote.VoteAuditionApplicantRequest import kr.co.vividnext.sodalive.audition.vote.VoteAuditionApplicantRequest
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.R
import okhttp3.MediaType import okhttp3.MediaType
import okhttp3.MediaType.Companion.toMediaType import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MultipartBody import okhttp3.MultipartBody
@@ -24,8 +26,8 @@ import java.io.File
import java.util.TimeZone import java.util.TimeZone
class AuditionRoleDetailViewModel(private val repository: AuditionRepository) : BaseViewModel() { class AuditionRoleDetailViewModel(private val repository: AuditionRepository) : BaseViewModel() {
private val _toastLiveData = MutableLiveData<String?>() private val _toastLiveData = MutableLiveData<ToastMessage?>()
val toastLiveData: LiveData<String?> val toastLiveData: LiveData<ToastMessage?>
get() = _toastLiveData get() = _toastLiveData
private val _isLoading = MutableLiveData(false) private val _isLoading = MutableLiveData(false)
@@ -90,9 +92,10 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
_auditionRoleDetailLiveData.value = roleDetailResponse.data!! _auditionRoleDetailLiveData.value = roleDetailResponse.data!!
} else { } else {
if (roleDetailResponse.message != null) { if (roleDetailResponse.message != null) {
_toastLiveData.value = roleDetailResponse.message _toastLiveData.value = ToastMessage(message = roleDetailResponse.message)
} else { } else {
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." _toastLiveData.value =
ToastMessage(resId = R.string.common_error_unknown)
} }
if (onFailure != null) { if (onFailure != null) {
@@ -113,9 +116,10 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
} }
} else { } else {
if (applicantListResponse.message != null) { if (applicantListResponse.message != null) {
_toastLiveData.value = applicantListResponse.message _toastLiveData.value = ToastMessage(message = applicantListResponse.message)
} else { } else {
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." _toastLiveData.value =
ToastMessage(resId = R.string.common_error_unknown)
} }
if (onFailure != null) { if (onFailure != null) {
@@ -128,7 +132,9 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
{ {
_isLoading.value = false _isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.common_error_unknown)
)
if (onFailure != null) { if (onFailure != null) {
onFailure() onFailure()
} }
@@ -166,9 +172,10 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
} }
} else { } else {
if (it.message != null) { if (it.message != null) {
_toastLiveData.value = it.message _toastLiveData.value = ToastMessage(message = it.message)
} else { } else {
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." _toastLiveData.value =
ToastMessage(resId = R.string.common_error_unknown)
} }
} }
@@ -177,7 +184,9 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
{ {
_isLoading.value = false _isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.common_error_unknown)
)
} }
) )
) )
@@ -186,7 +195,8 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
fun applyAudition(auditionRoleId: Long, phoneNumber: String, onSuccess: () -> Unit) { fun applyAudition(auditionRoleId: Long, phoneNumber: String, onSuccess: () -> Unit) {
if (audioFile == null) { if (audioFile == null) {
_toastLiveData.value = "잘못된 녹음 파일 입니다.\n다시 선택해 주세요." _toastLiveData.value =
ToastMessage(resId = R.string.screen_audition_invalid_audio_file)
return return
} }
@@ -236,10 +246,10 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
onSuccess() onSuccess()
} else { } else {
if (it.message != null) { if (it.message != null) {
_toastLiveData.postValue(it.message) _toastLiveData.postValue(ToastMessage(message = it.message))
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
) )
} }
} }
@@ -248,7 +258,7 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
_isLoading.value = false _isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
) )
} }
) )
@@ -304,11 +314,11 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
) { ) {
onFailure() onFailure()
} else { } else {
_toastLiveData.value = it.message _toastLiveData.value = ToastMessage(message = it.message)
} }
} else { } else {
_toastLiveData.value = _toastLiveData.value =
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
} }
} }
@@ -317,7 +327,8 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) :
{ {
_isLoading.value = false _isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." _toastLiveData.value =
ToastMessage(resId = R.string.common_error_unknown)
} }
) )
) )

View File

@@ -51,13 +51,13 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/bg_round_corner_10_transparent_3bb9f1" android:background="@drawable/bg_round_corner_10_transparent_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:paddingVertical="12dp" android:paddingVertical="12dp"
android:text="원작 보러가기" android:text="@string/screen_audition_role_original_work"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="16sp" /> android:textSize="16sp" />
<TextView <TextView
android:id="@+id/tv_audition_script" android:id="@+id/tv_audition_script"
@@ -65,13 +65,13 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="14dp" android:layout_marginStart="14dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/bg_round_corner_10_transparent_3bb9f1" android:background="@drawable/bg_round_corner_10_transparent_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:paddingVertical="12dp" android:paddingVertical="12dp"
android:text="오디션 대본 확인" android:text="@string/screen_audition_role_script"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="16sp" /> android:textSize="16sp" />
</LinearLayout> </LinearLayout>
<TextView <TextView
@@ -81,7 +81,7 @@
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="15dp" android:layout_marginTop="15dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="오디션 캐릭터 정보" android:text="@string/screen_audition_role_info_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14.7sp" android:textSize="14.7sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -114,7 +114,7 @@
android:drawablePadding="6.7dp" android:drawablePadding="6.7dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="펼치기" android:text="@string/screen_audition_detail_expand"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -132,12 +132,12 @@
app:layout_constraintTop_toBottomOf="@+id/tv_open"> app:layout_constraintTop_toBottomOf="@+id/tv_open">
<TextView <TextView
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_audition_role_applicant_prefix"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="10.7sp" /> android:textSize="10.7sp" />
<TextView <TextView
android:id="@+id/tv_applicant_count" android:id="@+id/tv_applicant_count"
@@ -149,12 +149,12 @@
tools:text=" 24" /> tools:text=" 24" />
<TextView <TextView
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_audition_role_applicant_suffix"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="10.7sp" /> android:textSize="10.7sp" />
</LinearLayout> </LinearLayout>
<TextView <TextView
@@ -163,7 +163,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="13.3dp" android:layout_marginEnd="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="좋아요순" android:text="@string/screen_audition_sort_likes"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="10.7sp" android:textSize="10.7sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -176,7 +176,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="13.3dp" android:layout_marginEnd="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="최신순" android:text="@string/screen_audition_sort_newest"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="10.7sp" android:textSize="10.7sp"
app:layout_constraintEnd_toStartOf="@+id/tv_sort_likes" app:layout_constraintEnd_toStartOf="@+id/tv_sort_likes"
@@ -203,7 +203,7 @@
android:layout_marginTop="30dp" android:layout_marginTop="30dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="지원자가 없습니다." android:text="@string/screen_audition_no_applicant"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="13sp" android:textSize="13sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -235,7 +235,7 @@
android:background="@drawable/bg_round_corner_44_3bb9f1" android:background="@drawable/bg_round_corner_44_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:padding="14dp" android:padding="14dp"
android:text="오디션 지원" android:text="@string/screen_audition_apply"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="15.3sp" android:textSize="15.3sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -199,6 +199,8 @@
<string name="screen_audition_detail_collapse">Collapse</string> <string name="screen_audition_detail_collapse">Collapse</string>
<string name="screen_audition_status_open">Open</string> <string name="screen_audition_status_open">Open</string>
<string name="screen_audition_status_closed">Closed</string> <string name="screen_audition_status_closed">Closed</string>
<string name="screen_audition_invalid_audio_file">Invalid audio file.\nPlease select again.</string>
<string name="screen_audition_select_audio">Select audio</string>
<string name="dialog_audition_method_title">How to apply</string> <string name="dialog_audition_method_title">How to apply</string>
<string name="dialog_audition_method_upload">Upload file</string> <string name="dialog_audition_method_upload">Upload file</string>
<string name="dialog_audition_method_record">Record now</string> <string name="dialog_audition_method_record">Record now</string>
@@ -212,6 +214,24 @@
<string name="dialog_audition_apply_error_invalid_phone">Invalid contact number.\nPlease try again.</string> <string name="dialog_audition_apply_error_invalid_phone">Invalid contact number.\nPlease try again.</string>
<string name="dialog_audition_apply_error_need_agreement">You must agree to the collection and use of contact information to apply for the audition.</string> <string name="dialog_audition_apply_error_need_agreement">You must agree to the collection and use of contact information to apply for the audition.</string>
<string name="screen_audition_play_error">Could not play the content.\nPlease try again.</string> <string name="screen_audition_play_error">Could not play the content.\nPlease try again.</string>
<string name="screen_audition_role_original_work">View original work</string>
<string name="screen_audition_role_script">Check audition script</string>
<string name="screen_audition_role_info_title">Audition character info</string>
<string name="screen_audition_role_applicant_prefix">Applicants </string>
<string name="screen_audition_role_applicant_suffix">people</string>
<string name="screen_audition_sort_newest">Newest</string>
<string name="screen_audition_sort_likes">Most liked</string>
<string name="screen_audition_no_applicant">No applicants yet.</string>
<string name="screen_audition_apply">Apply for audition</string>
<string name="screen_audition_apply_again">Reapply for audition</string>
<string name="dialog_audition_reapply_title">Reapply notice</string>
<string name="dialog_audition_reapply_desc">Reapplying will delete your previous submission and invalidate the votes you received.</string>
<string name="dialog_audition_auth_title">- Verification required -</string>
<string name="dialog_audition_auth_desc">Please complete identity verification in My Page before applying for the audition.</string>
<string name="dialog_audition_vote_title">[Audition cheer]</string>
<string name="dialog_audition_vote_desc">You cheered for this audition.\n(Free cheer: once per day per account)\nTry adding more cheer with 1 Can.</string>
<string name="dialog_audition_vote_limit_title">[Cheer limit reached]</string>
<string name="dialog_audition_vote_limit_desc">You reached todays cheer limit.\nYou can cheer up to 10 times per day.\nTry again tomorrow.</string>
<!-- Settings / Notices / Events --> <!-- Settings / Notices / Events -->
<string name="screen_settings_title">Settings</string> <string name="screen_settings_title">Settings</string>

View File

@@ -199,6 +199,8 @@
<string name="screen_audition_detail_collapse">閉じる</string> <string name="screen_audition_detail_collapse">閉じる</string>
<string name="screen_audition_status_open">募集中</string> <string name="screen_audition_status_open">募集中</string>
<string name="screen_audition_status_closed">募集終了</string> <string name="screen_audition_status_closed">募集終了</string>
<string name="screen_audition_invalid_audio_file">正しくない録音ファイルです。\nもう一度選択してください。</string>
<string name="screen_audition_select_audio">オーディオを選択</string>
<string name="dialog_audition_method_title">オーディション応募方法</string> <string name="dialog_audition_method_title">オーディション応募方法</string>
<string name="dialog_audition_method_upload">ファイルアップロード</string> <string name="dialog_audition_method_upload">ファイルアップロード</string>
<string name="dialog_audition_method_record">すぐ録音</string> <string name="dialog_audition_method_record">すぐ録音</string>
@@ -212,6 +214,24 @@
<string name="dialog_audition_apply_error_invalid_phone">正しくない連絡先です。\nもう一度入力してください。</string> <string name="dialog_audition_apply_error_invalid_phone">正しくない連絡先です。\nもう一度入力してください。</string>
<string name="dialog_audition_apply_error_need_agreement">連絡先の収集および利用に同意する必要があります。</string> <string name="dialog_audition_apply_error_need_agreement">連絡先の収集および利用に同意する必要があります。</string>
<string name="screen_audition_play_error">コンテンツを再生できませんでした。\nもう一度お試しください</string> <string name="screen_audition_play_error">コンテンツを再生できませんでした。\nもう一度お試しください</string>
<string name="screen_audition_role_original_work">原作を見る</string>
<string name="screen_audition_role_script">オーディション台本を確認</string>
<string name="screen_audition_role_info_title">オーディションキャラクター情報</string>
<string name="screen_audition_role_applicant_prefix">参加者 </string>
<string name="screen_audition_role_applicant_suffix"></string>
<string name="screen_audition_sort_newest">最新順</string>
<string name="screen_audition_sort_likes">いいね順</string>
<string name="screen_audition_no_applicant">応募者がいません。</string>
<string name="screen_audition_apply">オーディションに応募</string>
<string name="screen_audition_apply_again">オーディションに再応募</string>
<string name="dialog_audition_reapply_title">再応募の案内</string>
<string name="dialog_audition_reapply_desc">再応募すると以前の応募履歴は削除され、獲得した投票数は無効となります。</string>
<string name="dialog_audition_auth_title">- 本人確認が必要です -</string>
<string name="dialog_audition_auth_desc">マイページで本人確認を完了してからオーディションに応募してください。</string>
<string name="dialog_audition_vote_title">[オーディション応援]</string>
<string name="dialog_audition_vote_desc">オーディションを応援しました。\n(無料応援: アカウントあたり1日1回)\n1缶で追加応援してみてください。</string>
<string name="dialog_audition_vote_limit_title">[本日の応援制限]</string>
<string name="dialog_audition_vote_limit_desc">本日の応援はここまでです。\n1日に最大10回まで応援できます。\n明日またお試しください。</string>
<!-- Settings / Notices / Events --> <!-- Settings / Notices / Events -->
<string name="screen_settings_title">設定</string> <string name="screen_settings_title">設定</string>

View File

@@ -198,6 +198,8 @@
<string name="screen_audition_detail_collapse">접기</string> <string name="screen_audition_detail_collapse">접기</string>
<string name="screen_audition_status_open">모집중</string> <string name="screen_audition_status_open">모집중</string>
<string name="screen_audition_status_closed">모집완료</string> <string name="screen_audition_status_closed">모집완료</string>
<string name="screen_audition_invalid_audio_file">잘못된 녹음 파일 입니다.\n다시 선택해 주세요.</string>
<string name="screen_audition_select_audio">오디오 선택</string>
<string name="dialog_audition_method_title">오디션 지원방식</string> <string name="dialog_audition_method_title">오디션 지원방식</string>
<string name="dialog_audition_method_upload">파일 업로드</string> <string name="dialog_audition_method_upload">파일 업로드</string>
<string name="dialog_audition_method_record">바로 녹음</string> <string name="dialog_audition_method_record">바로 녹음</string>
@@ -211,6 +213,24 @@
<string name="dialog_audition_apply_error_invalid_phone">잘못된 연락처 입니다.\n다시 입력해 주세요.</string> <string name="dialog_audition_apply_error_invalid_phone">잘못된 연락처 입니다.\n다시 입력해 주세요.</string>
<string name="dialog_audition_apply_error_need_agreement">연락처 수집 및 활용에 동의하셔야 오디션 지원이 가능합니다.</string> <string name="dialog_audition_apply_error_need_agreement">연락처 수집 및 활용에 동의하셔야 오디션 지원이 가능합니다.</string>
<string name="screen_audition_play_error">콘텐츠를 재생하지 못했습니다.\n다시 시도해 주세요</string> <string name="screen_audition_play_error">콘텐츠를 재생하지 못했습니다.\n다시 시도해 주세요</string>
<string name="screen_audition_role_original_work">원작 보러가기</string>
<string name="screen_audition_role_script">오디션 대본 확인</string>
<string name="screen_audition_role_info_title">오디션 캐릭터 정보</string>
<string name="screen_audition_role_applicant_prefix">참여자</string>
<string name="screen_audition_role_applicant_suffix"></string>
<string name="screen_audition_sort_newest">최신순</string>
<string name="screen_audition_sort_likes">좋아요순</string>
<string name="screen_audition_no_applicant">지원자가 없습니다.</string>
<string name="screen_audition_apply">오디션 지원</string>
<string name="screen_audition_apply_again">오디션 재지원</string>
<string name="dialog_audition_reapply_title">재지원 안내</string>
<string name="dialog_audition_reapply_desc">재지원 시 이전 지원 내역은 삭제되며 받은 투표수는 무효 처리됩니다.</string>
<string name="dialog_audition_auth_title">- 본인인증 필요 -</string>
<string name="dialog_audition_auth_desc">마이페이지에서 본인인증을 완료한 후 오디션에 지원해 주세요.</string>
<string name="dialog_audition_vote_title">[오디션 응원]</string>
<string name="dialog_audition_vote_desc">오디션을 응원하셨습니다\n(무료응원 : 1계정당 1일 1회)\n1캔으로 추가 응원을 해보세요.</string>
<string name="dialog_audition_vote_limit_title">[오늘 응원 제한]</string>
<string name="dialog_audition_vote_limit_desc">오늘 응원은 여기까지!\n하루 최대 10회까지 이용이 가능합니다.\n내일 다시 이용해주세요.</string>
<!-- Settings / Notices / Events --> <!-- Settings / Notices / Events -->
<string name="screen_settings_title">설정</string> <string name="screen_settings_title">설정</string>