Xamarin.iOS NSLocationWhenInUseUsageDescription的本地化

时间:2014-10-03 08:40:08

标签: ios localization xamarin.ios geolocation

有没有办法在Xamarin Studio中NSLocationWhenInUseUsageDescription本地化Info.plist? 或者任何本地化完整Info.plist的可能性也是一种解决方案。

我尝试了以下步骤,因为它看起来类似于 How to localise a string inside the iOS info.plist file?但它对我不起作用。

所以这些是步骤:
同时en.projde.proj
我添加了一个空文件InfoPlist.strings

Info.plist
我已经设置了" NSLocationWhenInUseUsageDescription"的关键到" NSLocationWhenInUseUsageDescriptionMessage"。

InfoPlist.strings
我添加了" NSLocationWhenInUseUsageDescriptionMessage"作为字符串文件中的键和每个中的相应转换,但它似乎不起作用 - >原始字符串" NSLocationWhenInUseUsageDescriptionMessage"当用户被要求获得许可时显示。

2 个答案:

答案 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>