我错误地修复了遗留Symfony 1.4项目以符合最新的ICU I18N数据。自2010年以来,世界各国的名单和货币等相关数据发生了一些变化。
我发现了Symfony的作者an article和blog post,脚本应该将ICU locale data-files转换为适合Symfony的格式。指令在那里,但我很难让转换脚本生成输出文件。我甚至不确定我必须使用哪些确切的输入文件才能使其正常工作。
有没有人有将ICU区域设置数据转换为Symfony 1.4格式的经验?
答案 0 :(得分:0)
看起来ICU格式自Fabien上次使用以来有一些变化,所以你必须修改他的脚本。
对于要使用的ICU输入文件,您可以检查转换脚本实际读取的文件:
我注意到运行脚本存在一个问题。您应该从
更改第126行$yml = str_replace('ExemplarCharacters:','ExemplarCharacters: |', $yml);
到
$yml = preg_replace('/ExemplarCharacters:\s*$/m', 'ExemplarCharacters: |', $yml);
由于并非所有带ExemplarCharacters:
键的行都需要管道末尾。
对metaZones.txt
文件进行了一些更改,您应该考虑这些更改。我认为您需要做的是做Fabien之前做过的同样的研究:反序列化root.dat
文件。 metaZones.yml
的内容正在进行后处理并附加到此文件中(来自第202行的代码)。现在看来这个文件中有更多信息,而且格式不同会导致转换脚本失败。