안드로이드 국가별 번역 문구 추가하기 – @Composable/Android
res/values 폴더에서 마우스 오른쪽 버튼을 누른 후, New -> Values Resource File 을 선택해줍니다.

창이 뜨면, Locale을 선택한 후 >> 버튼을 눌러줍니다.

국가를 선택하고, 파일 이름을 strings.xml을 입력 후 OK 버튼을 눌러줍니다.

저는 영어와 한국어를 적용해보았습니다.

아래와 같이 작성하면 모바일 언어에 맞게 알아서 번역문구를 보여줄 수 있습니다.
@Composable
fun WelcomeMessage() {
val welcomeMessage = stringResource(id = R.string.welcome_message)
Text(text = welcomeMessage)
}
하지만, 앱 내부 설정으로 언어를 변경하고 싶다면?!
SharedPreference를 사용하면 됩니다!
@Composable
fun WelcomeMessage() {
val context = LocalContext.current
val selectedLanguage = remember { SharedPreferencesUtil.getSelectedLanguage(context) }
val welcomeMessage = when (selectedLanguage) {
"ko" -> stringResource(id = R.string.welcome_message_ko)
"en" -> stringResource(id = R.string.welcome_message_en)
else -> stringResource(id = R.string.welcome_message_default)
}
Text(text = welcomeMessage)
}
여기서 사용하고있는 SharedPreferencesUtil 코드는 아래에 첨부해 두겠습니다.
object SharedPreferencesUtil {
private const val PREFS_NAME = "MyAppPrefs"
private const val KEY_SELECTED_LANGUAGE = "selectedLanguage"
fun getSelectedLanguage(context: Context): String {
val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
return prefs.getString(KEY_SELECTED_LANGUAGE, Locale.getDefault().language) ?: Locale.getDefault().language
}
fun setSelectedLanguage(context: Context, language: String) {
val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
prefs.edit().putString(KEY_SELECTED_LANGUAGE, language).apply()
}
}