如何在裸React Native项目中本地化应用名称?能否用Redux实现?
应用名称本地化及Redux实现方案
一、Android端本地化应用名称
- 在
android/src/main/res/目录下创建对应语言的values子文件夹,比如英文对应values-en,简体中文对应values-zh-rCN - 每个子文件夹内新建
strings.xml,定义同名的app_name字符串,填入对应语言的名称:<!-- values-en/strings.xml --> <string name="app_name">New App Name</string> <!-- values-zh-rCN/strings.xml --> <string name="app_name">新应用名称</string> - 系统会自动根据设备当前语言,加载对应文件夹下的
app_name作为桌面显示名称
二、iOS端本地化应用名称
- 在Xcode中选中
Info.plist,右键选择Open As > Source Code - 将
CFBundleDisplayName的固定值改为引用本地化字符串:<key>CFBundleDisplayName</key> <string>$(APP_DISPLAY_NAME)</string> - 创建
InfoPlist.strings文件,添加需要支持的语言本地化条目:// InfoPlist.strings (English) "CFBundleDisplayName" = "New App Name"; // InfoPlist.strings (Chinese) "CFBundleDisplayName" = "新应用名称"; - 确保
InfoPlist.strings已添加到对应语言的本地化目标中,系统会自动根据设备语言切换桌面显示名称
三、Redux Store实现应用名称本地化的说明
- 无法通过Redux修改桌面图标名称:桌面显示名称由系统读取原生配置文件(Android的strings.xml、iOS的InfoPlist.strings)决定,Redux是前端状态管理工具,运行在应用内部,无法干预系统层面的配置读取逻辑。
- 应用内显示的名称可通过Redux动态切换:如果是应用界面内展示的名称(非桌面图标),可以这么做:
- 在Redux Store中维护当前语言状态,比如
currentLanguage: 'en'或'zh' - 定义多语言名称映射对象:
const appNameMap = { en: 'New App Name', zh: '新应用名称' }; - 在需要展示名称的组件中,从Redux获取当前语言,匹配对应的名称渲染:
const currentAppName = useSelector(state => appNameMap[state.currentLanguage]); - 用户切换语言时,更新Redux中的
currentLanguage状态,应用内的名称会自动同步切换
- 在Redux Store中维护当前语言状态,比如
内容的提问来源于stack exchange,提问作者Mir Stephen
相关产品推荐
相关产品推荐

