菜鸟教程小白 发表于 2022-12-12 12:11:54

ios - 使用 NSLocale 使用 Xcode 6.1 翻译语言代码


                                            <p><p>自上次更新以来,我无法将语言代码(en、fr 等...)翻译成各自的名称(英语、法语等...)。</p>

<p>它适用于真实设备,但不适用于模拟器。它使用以前版本的 Xcode 工作。我知道在发行说明中写到 <code></code> 在某些情况下可能会返回 <code>en_US</code> ,但这并不能解释为什么它们不再被“翻译” ”。我使用此代码:</p>

<pre><code>NSString* lang = @&#34;en&#34;;
NSLog(@&#34;%@&#34;,
    [
      displayNameForKey:NSLocaleIdentifier
      value:lang]
);
</code></pre>

<p>显示 <code>(null)</code>,而不是 <code>English</code>。</p>

<p>问题是我的应用程序因此在某些地方崩溃,所以我想知道是否有解决方法。</p>

<p>奇怪的是,Apple 给出的以下示例运行良好。</p>

<pre><code>NSLocale *frLocale = [ initWithLocaleIdentifier:@&#34;fr_FR&#34;];
NSString *displayNameString = ;
NSLog(@&#34;displayNameString fr_FR: %@&#34;, displayNameString);
displayNameString = ;
NSLog(@&#34;displayNameString en_US: %@&#34;, displayNameString);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>来自 <a href="https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW1" rel="noreferrer noopener nofollow">Xcode release note</a> </p>

<blockquote>
<p>In some situations, may return en_US instead
of the chosen locale in the iOS 8.1 simulator. (18512161)</p>
</blockquote>

<pre><code>+ (NSLocale *)autoupdatingCurrentLocale NS_AVAILABLE(10_5, 2_0); // generally you should use this method

+ (NSLocale *)currentLocale;    // an object representing the user&#39;s current locale
</code></pre>

<p>一种解决方法是使用第一个。在 currentLocal 实例上使用 objectForKey 有效。</p>

<pre><code>NSString* lang = @&#34;en_US&#34;;
NSLocale *currentLocal = ;
//get the localeIdentifier and create a new NSLocale.
id localIdentifier = ;
NSLocale *theLocal = ;
NSLog(@&#34;%@&#34;,[theLocal displayNameForKey:NSLocaleIdentifier
                                                value:lang]
      );
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用 NSLocale 使用 Xcode 6.1 翻译语言代码,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26570195/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26570195/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用 NSLocale 使用 Xcode 6.1 翻译语言代码