为什么 bash 翻译文件不包含所有错误文本?

为什么 bash 翻译文件不包含所有错误文本?

我从以下网址下载了最新版本(目前为 4.4)的 Bash 源代码:GNU 网站

我从目录中打开法语翻译文件(fr.popo并搜索“权限被拒绝”。没有结果。

当我打开终端并运行时,cd /var/log/apache2出现错误:bash: cd: /var/log/apache2: Permission denied。所以它是一个 Bash 错误,但它没有包含在提到的文件中。另外,当我grep -rn . -e "denied"在 bash 源目录中时,我只得到 2 个结果,这两个结果都来自文件“COPYING”。

此外,当我使用此命令更改 Bash 语言时:export LC_ALL=fr_FR我得到bash: cd: /var/log/apache2: Permission non accordée.更改 Bash 语言会更改此错误,因此这是这确实是 Bash 消息的另一个证据。

有谁知道为什么这个错误不包含在 po 文件中?

答案1

该字符串来自strerror(3),映射错误号到消息。在本例中,它是映射EACCES。字符串(及其翻译)包含在您的 C 库中。

相关内容