RT-Thread论坛
直播中

刘波

8年用户 1042经验值
私信 关注
[问答]

kconfig里写的英文,setting里面显示的是中文,这是什么原因导致的?

最近在学习artpi2,发现图片显示的这里

这里用的是英文,但是setting这里是中文

gpio的setting上也有类似的现象,请问这是什么原因导致的

回帖(1)

刘敏

2025-9-25 18:17:20

您提到的现象(Kconfig文件中用英文写的配置项,在配置界面如menuconfig中显示为中文)是由RT-Thread的本地化翻译机制实现的。以下是详细原因和解决方法:




原因分析




  1. 多语言支持框架



    • RT-Thread的配置系统(基于Kconfig)内置了多语言翻译机制。开发者用英文编写Kconfig文件(如KconfigKconfig.projbuild),系统会根据用户环境自动翻译成中文或其他语言。

    • 翻译规则存储在.po文件中(如cn.po),位于工程目录的 /tools/kconfig-frontends/po/ 路径下。




  2. 环境变量触发翻译



    • 当您的系统环境变量(如LANGLC_ALL)设置为中文(例如zh_CN.UTF-8)时,RT-Thread的menuconfig会自动加载中文翻译。

    • 示例环境变量:
      export LANG=zh_CN.UTF-8  # Linux/macOS
      set LANG=zh_CN.UTF-8     # Windows (ENV工具)




  3. 未翻译项显示英文



    • 如果某个配置项在.po文件中没有对应的翻译,menuconfig会回退到原始的英文文本。

    • 例如Art-Pi2的图片显示功能或GPIO配置,部分新选项可能尚未加入翻译文件,因此仍显示英文。






解决显示不一致问题


方法1:强制使用英文界面


通过修改环境变量,关闭自动翻译:



  • Linux/macOS
    export LANG=en_US.UTF-8  # 临时生效

  • Windows (ENV工具)
    set LANG=en_US.UTF-8     # 在ENV命令行中执行

  • RT-Thread ENV工具

    1. 打开menuconfig

    2. 进入 Language 选项

    3. 选择 English 并保存



方法2:补充缺失的翻译(开发者)


若需新增翻译项,修改.po文件:




  1. 定位翻译文件:

    art-pi/bsp/art-pi/tools/kconfig-frontends/po/cn.po




  2. 添加翻译条目(格式如下):


    #: 原始Kconfig文件路径
    msgid "Display image in LVGL"  # Kconfig中的英文原文
    msgstr "在LVGL中显示图片"       # 对应的中文翻译



  3. 重新生成翻译缓存:


    scons --menuconfig





Art-Pi2示例分析



  • 图片显示配置项英文

    很可能 LVGL_DEMO_IMAGE 选项未在.po文件中翻译,需手动添加。

  • GPIO配置项中英混合

    部分通用选项(如GPIO Setting)已翻译,新功能选项可能遗漏。




总结






















现象 原因 解决方案
界面显示中文 系统环境为中文,触发自动翻译 设置 LANG=en_US.UTF-8
部分选项仍是英文 .po文件缺少翻译 手动添加翻译条目到cn.po

通过调整语言设置或完善翻译文件,即可统一界面显示语言。优先检查环境变量和menuconfig的Language选项,确保符合您的需求。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分