我一直在使用 PHP 中的 Gettext MO 文件哈希表。虽然我不确定这个可选表有多重要,但我想确保在生成 MO 文件时尽可能实施完整的规范。
我在 Mac 和 Linux 上"","a","b","c"
使用 Gettext编译了一个简单的 PO 文件,其中包含条目。msgfmt
哈希表有 5 个字节长,但奇怪的是包含大量空字节,如下所示:01 00 00 00 00
运行从 Gettext 源代码中提取的算法,我生成了表格01 00 02 03 04
。
这是我的测试代码:
https://gist.github.com/timwhitlock/8255619(包括示例 PO 文件)
我自己的哈希表编译很可能是错误的,但要理解为什么我想先了解为什么 msgfmt 生成的 MO 文件的哈希表大多是零?
我很确定我正确地从 MO 文件中提取哈希表。我从规范中概述的第六个字节获取表格的大小和位置。
在我的“abc”示例中,没有使用双重哈希,所以我不明白该表是如何正确的,无论我的表是否正确。
这个“abc”示例的正确哈希表是什么?