菜鸟教程小白 发表于 2022-12-12 03:55:12

ios - iOS 是否查找特定于区域的 .lproj 目录(例如 en_US.lproj)?


                                            <p><p>根据官方文档<a href="http://developer.apple.com/library/ios/#documentation/MacOSX/Conceptual/BPInternational/Articles/LanguageDesignations.html#//apple_ref/doc/uid/20002144-SW7" rel="noreferrer noopener nofollow">Internationalization Programming Topics</a> :</p>

<blockquote>
<p>if your Mac app had localizations for United States, Great Britain,
and Australian users, the bundle routines would search the appropriate
region directory (en_US.lproj, en_GB.lproj, or en_AU.lproj) first,
followed by the en.lproj directory. <strong>The same application on the
iPhone would look only in the en.lproj directory.</strong></p>
</blockquote>

<p>但我尝试将我的 Localizable.strings 放在 en_US.lproj 目录中,<strong>不是</strong> en.lproj,我仍然可以使用 <code>NSLocalizedString()</code> 找到英文字符串功能。 </p>

<p>有什么问题?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不确定,但这是我有根据的猜测。</p>

<p>首先要认识到 OS X 和 iOS 共享大量代码。您实际上可以找到很多<em>官方</em> OS X 的功能 - 仅在 iOS 上也可以使用。</p>

<p>这是我在手机上观察到的:</p>

<p>如果我只有</p>

<pre><code>- en_US.lproj
    - Localizable.strings
</code></pre>

<p>然后,它会从该文件中读取值,这与您找到的<strong>文档</strong>所说的相矛盾(如您所述)。</p>

<p>但是,如果我有:</p>

<pre><code>- en_US.lproj
    - Localizable.strings
- en.lproj
    - Localizable.strings
</code></pre>

<p>那么,它将采用 <strong>en.lproj</strong> 的值(value),<em>有点</em>尊重文档的精神。</p>

<p>现在,当我以图形方式使用 Xcode 时,它​​只会让我为 <code>en-US</code> 选择本地化,这与 <code>en_US<strong>不</strong> 相同</code>(美国地区)。所以,我猜你(和我一样)离开了 Xcode,手动添加了 <code>en_US.lproj</code> 目录,然后将它添加到了你的 Xcode 项目中。</p>

<p>也许 Apple 的想法是,虽然 iOS 仍然可以识别 <code>en_US.lproj</code>,但由于他们已将 Xcode 配置为不允许您直接创建本地化,应用程序不会在那里结束?因此,您已经(某种程度)侵入了该功能。</p>

<p>还有一点需要注意:如果您像我一样手动创建 .lproj 文件夹,则必须小心,当您在 Xcode 之外更改它们时,它们实际上已经消失了。此外,您可能必须卸载您的应用程序以清除您以这种方式添加(和<em>删除</em>)的旧 .lproj 目录。所以,这是看待奇怪行为的另一种方式。</p>

<p>长话短说,就文档本身而言,我不会向 App Store 提交具有这种本地化类型的应用程序。它可能会被拒绝,或者将来会中断(找不到字符串值),因为它在 iOS 上不受官方支持。也就是说,如果这个功能无限期地继续工作,我也不会感到惊讶。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iOS 是否查找特定于区域的 .lproj 目录(例如 en_US.lproj)?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15848566/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15848566/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iOS 是否查找特定于区域的 .lproj 目录(例如 en_US.lproj)?