发布于2026-07-09 阅读(0)
扫一扫,手机访问
Composer原生仅支持英文输出,所谓中文界面实为第三方语言包(如csineneo/lang-traditional-chinese)通过字符串替换实现;卸载该类包并清缓存即可恢复纯英文输出,修改LANG或composer.json配置无效。

先说一个容易被忽略的事实:Composer 本身压根就没有内置的中文界面。你看到那些繁体提示,很大程度上只是社区翻译包在“伪装”。
它并不是 Composer 官方出品的功能,而是靠拦截命令行输出、替换英文字符串来实现的。这样做带来的问题是:稳定性差、更新慢,还容易和新版本发生各种奇怪的冲突。
典型的表现包括:运行 composer install 报错,但提示信息全是繁体中文;composer diagnose 输出里混着“錯誤”“無法”这类字眼;甚至执行 composer --help 时,帮助说明也是繁体。如果你遇到类似情况,基本可以判断是装了那个翻译包。
几点需要明确的是:
config.json 里找个字段就能切换语言——Composer 根本没有这个配置项LANG 对 Composer 的命令行输出完全不起作用,它只影响部分 PHP 扩展或底层 libc 的行为最干脆的做法就是直接卸载所有中文语言包,让 Composer 回到最原始的状态。它本身就是英文的,不需要“切换”,只需要“清理”。
先确认是否装了那个繁体包:
composer show csineneo/lang-traditional-chinese
如果返回版本号,说明已经安装。接下来执行:
composer remove csineneo/lang-traditional-chinesecomposer show csineneo/lang-simplified-chinese,如有也一并移除composer clear-cache 清掉可能残留的翻译缓存做完这三步,再跑任何 composer 命令,输出就会变成纯英文。不需要改 config.json,也不需要设 LANG=en_US.UTF-8——后者反而可能在某些系统上引发其他 locale 相关的异常。
LANG 或编辑 composer.json extra.language 没用网上流传的 export LANG=zh_CN.UTF-8 或在 composer.json 里加 "extra": {"language": "en"},对当前主流的 Composer(2.2+)基本无效。
LANG 变量只影响极少数依赖系统 locale 的 PHP 函数(比如 strftime),而 Composer 的命令行文案是硬编码的英文字符串,根本不走这套机制extra.language 是某些老插件(如 fxp-asset-plugin)用的字段,那个插件早在 Composer 1.5 就被废弃了,新版 Composer 完全忽略它composer config --global 写 language 相关键值,会直接报错:Unknown configuration setting这些方法之所以“有时看起来有效”,往往是因为它们触发了语言包的重新加载或缓存刷新,真正起作用的仍然是语言包本身的启用或禁用状态。
目前唯一可行的路径是继续用 csineneo/lang-* 系列包,但必须接受它的缺陷:
真正在意可维护性和协作效率的团队,最终都会回到英文输出——不是因为排斥中文,而是因为它是 Composer 唯一被完整测试、有文档覆盖、并且没有歧义的交互界面。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8