在Yocto中更改语言环境设置

4

这是出现的错误

由于Yocto的默认区域设置为POSIX,我遇到了如图所示的错误。现在我的问题是我不知道如何将区域设置更改为en_US.utf-8。


你使用哪个操作系统? - Mahesh Kumar Kodanda
请分享更多细节,例如完整和准确的错误信息以及您的调试尝试。 - Nico Haase
2个回答

3

我也在使用Yocto。当我尝试在Python3上运行脚本时,出现了以下错误:

Traceback (most recent call last): ... RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Either switch to Python 2 or consult http://click.pocoo.org/python3/ for mitigation steps.

为了解决这个问题,首先我必须在local.conf中启用UTF-8。

GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"

然后,在目标机器上运行locale -a时,我得到了类似以下的内容。

C
en_GB
en_US
POSIX

为了确保本地文件是UTF-8编码,我使用了来自link的C程序,并得到了如下结果:
C ->ANSI_X3.4-1968
en_GB ->UTF-8
en_US ->UTF-8
POSIX ->ANSI_X3.4-1968

最终

export LC_ALL=en_US
export LANG=en_US

之后,我就没有关于本地化的错误了。希望能对你们中的任何人有所帮助。

1
您可以使用profile.d并编写以下配方:
DESCRIPTION = "Copy scripts to profile.d"
LICENSE = "CLOSED"
SRC_URI = "file://*"

GLIBC_GENERATE_LOCALES="en_GB.UTF-8 en_US.UTF-8"
IMAGE_LINGUAS = "en-us"

RDEPENDS_${PN} = "bash"

do_install () {
        install -d ${D}/etc/profile.d
        install -m755 ${WORKDIR}/lang.sh ${D}/etc/profile.d
}

您需要在shell脚本所在的文件夹中创建一个子文件夹,名称不重要,因为这行代码:

SRC_URI = "file://*"

源自子文件夹。

shell脚本lang.sh

#!/bin/bash

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

将Shell脚本放入该子文件夹中,并将食谱名称添加到您的图像目标 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接