有没有办法在Xamarin Studio中NSLocationWhenInUseUsageDescription
本地化Info.plist
?
或者任何本地化完整Info.plist
的可能性也是一种解决方案。
我尝试了以下步骤,因为它看起来类似于 How to localise a string inside the iOS info.plist file?但它对我不起作用。
所以这些是步骤:
同时en.proj
和de.proj
:
我添加了一个空文件InfoPlist.strings
在Info.plist
:
我已经设置了" NSLocationWhenInUseUsageDescription
"的关键到" NSLocationWhenInUseUsageDescriptionMessage
"。
在InfoPlist.strings
:
我添加了" NSLocationWhenInUseUsageDescriptionMessage
"作为字符串文件中的键和每个中的相应转换,但它似乎不起作用 - >原始字符串" NSLocationWhenInUseUsageDescriptionMessage
"当用户被要求获得许可时显示。
答案 0 :(得分:1)
我遇到了类似的问题(只有我用过" Always"而不是" WhenInUse"。这里有什么用的:
在en.lproj和de.lproj中添加文件InfoPlist.strings。每个文件只包含一行:
"NSLocationAlwaysUsageDescription" = "Your location needed, because...";
在Info.plist中,字符串不再重要,因为它将从InfoPlist.string文件中获取。 Info.plist中的相关行如下所示:
<key>NSLocationAlwaysUsageDescription</key>
<string>No text needed here.</string>
也许你忘记了字符串文件中的分号?或者您的两个文件夹名为* .proj而不是* .lproj?
答案 1 :(得分:0)
我们在NSLocationWhenInUseUsageDescription
的本地化方面遇到了类似的问题。翻译显示在iOS模拟器上,但从未在真实设备上显示。在我们将CFBundleLocalizations数组从大写语言代码修复为Info.plist中的小写后,所有语言的权限描述都被正确翻译。
不正确:
<key>CFBundleLocalizations</key>
<array>
<string>EN</string>
<string>DE</string>
<string>BG</string>
<string>PL</string>
<string>FR</string>
<string>CS</string>
</array>
正确:
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>de</string>
<string>bg</string>
<string>pl</string>
<string>fr</string>
<string>cs</string>
</array>