gpt4 book ai didi

android - 当 i18n.locale 更改时更改原生 android 上的启动图像

转载 作者:行者123 更新时间:2023-11-29 23:20:00 27 4
gpt4 key购买 nike

我正在开发我的第一个 React native 应用程序。首先对我的长问题感到抱歉。

我使用 i18n 支持英语和日语 (en,jp) .我有一个设置屏幕,我们可以在这两种语言之间切换。切换到另一种语言时,我正在使用 react-native-restart 重新启动我的整个应用程序。 .在我的应用程序的所有屏幕上一切正常。

但是,我添加了原生 android 启动图像以避免启动 react-native-app 时出现白屏。现在,问题是,在更改 i18n.locale = 'en' 时不更改 native android 语言环境。我有两个初始图像(一个用于“en”,另一个用于“jp”)。我总是将第一张图片(添加为“en”)作为我的启动画面。

我试过的解决方案

我将 splash.png 放在所有 mipmap-(mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi) 中以表示“en”。并为“jp”创建了另一个文件夹 mipmap-jp-(mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi) 并放置了另一张图像。

下面是我支持“jp”和“en”的文件夹结构。

结果:

->值(value)观

->值(value)观-日本

->mipmap-hdpi,mdpi,xhdpi,xxhdpi,xxxhdpi

->mipmap-jp-hdpi,mdpi,xhdpi,xxhdpi,xxxhdpi

i18n.js

import RNLanguages from 'react-native-languages';
import i18n from 'i18n-js';

import en from './en';
import jp from './jp';

i18n.locale = RNLanguages.language;
i18n.fallbacks = true;
i18n.translations = {en,jp};

RNLanguages.addEventListener('change', ({ language }) => {
i18n.locale = language
})

export default i18n;

Settings.js

...
onChange(value){
if(value === 'USA English'){
setLanguage('en').then().catch(err=>{
console.log(err);
});
i18n.locale = 'en';
}
else{
setLanguage('jp').then().catch(err=>{
console.log(err);
});
i18n.locale = 'jp';

}
}
...

strings.xml

<resources>
<string name="app_name">appname in eng</string>
</resources>

styles.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:datePickerDialogTheme">@style/MyDialogTheme</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@mipmap/splash</item>
<item name="android:statusBarColor">@color/theme</item>
</style>
<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#00c786</item>
</style>

</resources>

我只是在 values-jp 文件夹下更改了 strings.xml 和 styles.xml 中的 app_name 具有相同的内容。

我已经尝试了我知道的方法。我想在更改语言时设置 android 语言环境,以便它会根据语言更改启动图像和 app_name。有人请帮助我!

最佳答案

你需要制作 .不同的图像文件夹作为标准本地化就像制作不同的string.xml文件一样

Localize your app

假设某个应用包含一组默认图形和另外两组图形,每组都针对不同的设备设置进行了优化:

res/drawable/

包含默认图形。

res/drawable-small-land-stylus/

包含针对需要手写笔输入并具有横向 QVGA 低密度屏幕的设备使用而优化的图形。

res/drawable-ja/

包含针对日语使用而优化的图形。

关于android - 当 i18n.locale 更改时更改原生 android 上的启动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54512342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com