2014-10-03 51 views
2

有沒有辦法在Xamarin Studio中本地化中的NSLocationWhenInUseUsageDescription? 或者本地化完整的Info.plist的任何可能性也是一個解決方案。Xamarin.iOS本地化的NSLocationWhenInUseUsageDescription

我嘗試了以下步驟,因爲它看起來與 How to localise a string inside the iOS info.plist file?類似,但它對我不起作用。

因此,這些步驟如下:
在這兩個en.projde.proj
我添加了一個空文件InfoPlist.strings

Info.plist
我已經設置的 「NSLocationWhenInUseUsageDescription」 的關鍵在於 「NSLocationWhenInUseUsageDescriptionMessage」。

InfoPlist.strings
我添加了「NSLocationWhenInUseUsageDescriptionMessage」作爲字符串的文件中的每個相應的轉換鍵,但似乎沒有工作 - >當用戶要求顯示在原始字符串「NSLocationWhenInUseUsageDescriptionMessage」許可。 。

回答

1

我有類似的問題(我只用「永遠」,而不是「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> 

也許你忘記了strings-files中的分號?或者你的兩個文件夾被命名爲* .proj而不是* .lproj?

+0

謝謝你的建議。我會盡快嘗試iOS8版本的應用程序。目前我停止在iOS8版本上工作,因爲那裏有很多iOS7設備,這個字符串在iOS7上不需要。 – 2014-11-28 14:04:53

+0

這似乎不適用於我的情況。當用戶使用NSLocationWhenInUseUsageDescription消息提示時,會顯示Info.plist中的消息(在您的示例中:「此處不需要任何文本」)。我已經添加了這些文件:Resources \ en.lproj \ InfoPlist.strings(在我的情況下爲fr.lproj),並將以下內容作爲測試:「NSLocationWhenInUseUsageDescription」=「bbbb」; – Frank 2016-11-02 17:53:52

0

我們面臨着NSLocationWhenInUseUsageDescription本地化的類似問題。該翻譯顯示在iOS模擬器上,但從未在真實設備上顯示。在Info.plist中將我們的CFBundleLocalizations數組從大寫語言代碼修復爲小寫後,所有語言的權限描述都被正確翻譯。

不正確:

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