You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React Native中使用i18n-iso-countries?依赖冲突及替代方案

解决React Native中i18n-iso-countries依赖冲突及使用方案

一、解决依赖冲突的方法

  • 强制忽略peer依赖冲突:针对小版本差异的冲突,可执行以下命令之一完成安装
    • npm install i18n-iso-countries --force:强制跳过版本冲突检查完成安装
    • npm install i18n-iso-countries --legacy-peer-deps:采用npm旧版的peer依赖解析逻辑,绕过严格版本校验
  • 统一React Native版本:
    • 升级项目主依赖的react-native到0.70.5:npm install react-native@0.70.5
    • 降级dev依赖中的react-native到0.70.3:修改package.json内devDependencies里的react-native版本为0.70.3,再执行npm install

二、React Native中使用i18n-iso-countries的步骤

安装完成后,按以下方式集成多语言国家名称功能:

import countries from 'i18n-iso-countries';
// 按需导入语言包,支持数十种主流语言
import countriesEn from 'i18n-iso-countries/langs/en.json';
import countriesZh from 'i18n-iso-countries/langs/zh.json';

// 注册语言包
countries.registerLocale(countriesEn);
countries.registerLocale(countriesZh);

// 获取指定语言的完整国家官方名称列表
const countryListEn = countries.getNames('en', { select: 'official' });
const countryListZh = countries.getNames('zh', { select: 'official' });

// 根据ISO 3166-1 alpha-2代码获取对应语言的国家名称
const chinaName = countries.getName('CN', 'zh'); // 输出:中国

三、同类替代库

若不想处理依赖冲突,可选择以下替代方案:

  • countries-list + react-native-localize
    轻量组合,countries-list提供基础多语言国家数据,react-native-localize自动适配设备语言:
    import { getLocales } from 'react-native-localize';
    import { countries } from 'countries-list';
    
    // 获取当前设备语言代码
    const currentLang = getLocales()[0].languageCode;
    // 生成适配当前语言的国家列表,无对应语言时 fallback 到英文
    const localizedCountries = Object.entries(countries).map(([code, info]) => ({
      code,
      name: info.names[currentLang] || info.names.en
    }));
    
  • world-countries
    包含更全面的国家信息(时区、货币、地理坐标等),原生支持多语言名称:
    import countries from 'world-countries';
    
    // 生成中文国家列表,优先取官方中文名称
    const chineseCountries = countries.map(country => ({
      code: country.cca2,
      name: country.name.zh || country.name.common
    }));
    

内容的提问来源于stack exchange,提问作者Maria Nabil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:25:28