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

如何在PHP7中将ISO 639-1编码转换为对应本地语言名称

方案1:无依赖数组映射方案(兼容所有PHP 7+环境,无需扩展)

这个方案不需要服务器安装额外扩展,稳定性最高,适合无法修改服务器配置的场景:

  • 你可以直接使用开源社区整理好的完整ISO 639-1编码=>语言名称映射数组,也可以根据你的业务需求只保留用到的编码
  • 示例代码:
// 定义映射数组,可单独存为配置文件按需引入
$langMap = [
    'en' => 'English',
    'es' => 'Español',
    'fr' => 'Français',
    // 其他需要的编码按需补充
];

// 直接取值,不存在时返回默认值
$userlang = $langMap[$lang] ?? 'Unknown Language';
  • 如果需要全量映射,你可以直接搜索现成的ISO 639-1 PHP映射数组,复制后直接使用即可,不需要手动逐个录入。如果后续需要新增语言,只需要在数组中加一行对应关系即可,维护成本远低于多if判断。

方案2:intl扩展原生方案(服务器支持intl扩展时推荐)

你之前找错了函数,正确的语言名称获取函数是locale_get_display_name(),不是获取书写系统的locale_get_display_script()。这个方案可以自动完成所有ISO 639-1编码到对应语言名称的转换,不需要手动维护映射:

  • 首先确认服务器已安装intl扩展(PHP 7默认编译时通常会带,但部分服务商可能会禁用)
  • 示例代码:
// 第二个参数为显示语言,传和第一个参数相同的值即可获取对应语言的原生名称
$userlang = locale_get_display_name($lang, $lang);

// 如果需要统一返回中文的语言名称,改为:
// $userlang = locale_get_display_name($lang, 'zh-CN');

这个方法会自动处理所有标准ISO 639-1编码的转换,不需要手动维护映射表,适合需要支持大量语言的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:54:04