【发布时间】:2021-08-26 06:15:51
【问题描述】:
我为英语和罗马尼亚语实现了一些字符串资源。切换区域设置适用于文本字段,但更改语言时抽屉项目的标题不会更改。
我有以下配置:
在 MainActivity 中将语言环境设置为“ro”
private fun setDefaultLocale(lang: String) {
val config = android.content.res.Configuration(resources.configuration)
val locale = Locale(lang)
Locale.setDefault(locale)
config.setLocale(locale)
config.setLayoutDirection(locale)
resources.updateConfiguration(config, resources.displayMetrics)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
setDefaultLocale("ro")
.....
}
菜单资源:
<group android:checkableBehavior="single">
<item
android:icon="@drawable/ic_baseline_home_24"
android:id="@+id/home"
android:title="@string/menu_home" />
<item
android:icon="@drawable/ic_baseline_wallpaper_24"
android:id="@+id/news"
android:title="@string/menu_news" />
<item
android:icon="@drawable/ic_jungle"
android:id="@+id/jungleTimer"
android:title="@string/menu_timer" />
<item
android:icon="@drawable/ic_damage"
android:id="@+id/builds"
android:title="@string/menu_builds" />
<item
android:icon="@drawable/ic_baseline_settings_24"
android:id="@+id/settings"
android:title="@string/menu_settings" />
<item
android:icon="@drawable/ic_baseline_info_24"
android:id="@+id/about"
android:title="@string/menu_about" />
<item
android:icon="@drawable/ic_feedback"
android:id="@+id/feedback"
android:title="@string/menu_feedback" />
<item
android:icon="@drawable/ic_favorite"
android:id="@+id/rateapp"
android:title="@string/menu_rate" />
</group>
默认字符串xml文件:
/* Menu translations */
<string name="menu_home">Home</string>
<string name="menu_news">News</string>
<string name="menu_timer">Jungle Timers</string>
<string name="menu_builds">Guides</string>
<string name="menu_settings">Settings</string>
<string name="menu_about">About</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_rate">Rate the app</string>
罗马尼亚语字符串 xml 文件
/* Menu translations */
<string name="menu_home">Acasă</string>
<string name="menu_news">Noutăți</string>
<string name="menu_timer">Cronometru Junglă</string>
<string name="menu_builds">Ghid Campioni</string>
<string name="menu_settings">Setări</string>
<string name="menu_about">Despre</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_rate">Dă-ne o notă</string>
【问题讨论】:
-
在系统设置中更改语言时是否也会发生同样的情况?
-
更改设备语言确实会更改抽屉语言:D
-
如果是这样,我认为这是您以编程方式更改 Activity 时没有重新启动的问题。
-
我已将此作为答案发布 - 如果它确实有用,请接受它