菜鸟教程小白 发表于 2022-12-12 18:32:44

ios - 试图读取 InfoPlist.strings 文件...获取 key (?)


                                            <p><p>许多人不知道,在 iOS 和 OSX 上本地化应用程序名称的方法是将 <code>InfoPlist.strings</code> 文件添加到包中并本地化该文件。人们将此文件与 <code>Info.Plist</code> 文件混合使用。本地化不是在 <code>Info.plist</code> 中完成的,而是在 <code>InfoPlist.strings</code> 文件中完成的。 </p>

<p>也就是说,我用两个键创建了这个文件:<code>CFBundleDisplayName</code> 和 <code>CFBundleName</code>,就像我一直做的那样。这非常有效,您可以在不同的本地化中为您的应用程序定义不同的名称。该文件可以无缝运行。您无需执行任何操作,只需将文件添加到项目中并进行本地化即可。</p>

<p><code>InfoPlist.strings</code> 是这样的字符串文件:</p>

<pre><code>&#34;CFBundleDisplayName&#34; = &#34;My Localized App Name&#34;;
&#34;CFBundleName&#34; = &#34;My Localized App Name&#34;;
</code></pre>

<p>对于这个项目,我还必须在运行时读取 <code>CFBundleDisplayName</code> 的值。</p>

<p>我已尝试使用此代码:</p>

<pre><code>NSString *appName = [ localizedStringForKey:@&#34;CFBundleDisplayName&#34; value:nil table:@&#34;InfoPlist&#34;];
</code></pre>

<p>读取 <code>CFBundleDisplayName</code> 键,但我得到的值是 <code>CFBundleDisplayName</code>。换句话说,我提供 key 并接收返回的 key ,而不是值。我应该会收到 <code>My Localized App Name</code>。</p>

<p>我错过了什么? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我在 Swift 中完全做到了这一点,它按预期工作。</p>

<pre><code>let appname = NSBundle.mainBundle().localizedStringForKey(&#34;CFBundleDisplayName&#34;, value: nil, table: &#34;InfoPlist&#34;)
</code></pre>

<p>但是,如果我从相应的 <code>InfoPlist.strings</code> 文件中删除本地化字符串,它会返回 <strong>"CFBundleDisplayName"</strong>。</p>

<p>因此,请检查您的 <code>.strings</code> 文件中是否缺少某些内容</p>

<blockquote>
<p><strong>After trying several possibilities..</strong></p>
</blockquote>

<p>BUG 是<strong>“项目中的 InfoPlist.strings 的第二个副本”</strong></p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 试图读取 InfoPlist.strings 文件...获取 key(?),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/35348982/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/35348982/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 试图读取 InfoPlist.strings 文件...获取 key (?)