我一直在开发登机牌,一切都很顺利,但是当我试图国际化时,存折不会加载字符串。传递工作正常但没有获得本地化字符串。奇怪的是,它在传递查看器上工作正常,但在iphone和ipad上却没有。
这是我的manifest.json文件:
{
"pass.json": "41ea636799de90475196cdf17f879653aa256e61",
"icon.png": "6762942886bae7b11ad45f268faf082dcfe15ea7",
"icon@2x.png": "d9de89daee9f8b24d6059018ab107b33e9efb744",
"logo.png": "d63334e60ad0548b1bf07a0d6e133a8ccdb09f52",
"logo@2x.png": "0ff3913da7f122a9f5d44ff3ad8c44e2fc06f24c",
"en.lproj/pass.strings": "64c8e3def5193f82be5bea65ae10e2d0eb4ba3fa",
"es.lproj/pass.strings": "beb344e5657994008bd1be5bda8c20347420b389"
}
当我尝试国际化字符串时,这是pass.json的一部分。
"headerFields": [
{
"key": "seat",
"label": "seat_str",
"value": "{seat}",
"textAlignment": "PKTextAlignmentNatural"
}
],
这是en.lproj / pass.strings
"flight_str" = "FLIGHT";
"seat_str" = "SEAT";
"depart_str" = "DEPART";
"gate_str" = "GATE";
"plane_str" = "PLANE";
"passenger_str" = "PASSENGER";
将en.lproj包含在清单文件中是否正确?我错过了pass.json文件中的内容吗?
编辑:最后我发现了问题,它不在传递本身,问题在于我制作zip文件的方式。我在.net中生成了zip文件,并以这种方式添加了pass.strings
var englishLocalizationEntry = archive.CreateEntry(@"en.lproj\pass.strings");
使用windows文件系统路径分隔符。为了使其正常工作,我不得不将其更改为
var englishLocalizationEntry = archive.CreateEntry(@"en.lproj/pass.strings");