菜鸟教程小白 发表于 2022-12-12 20:06:01

ios - 在 Xcode 上导出 xliff 文件行为异常


                                            <p><p>所以我有一个过去已经本地化的项目。但是我们创建了一些新的键,我们希望将它们单独翻译。</p>

<p>此外,在某些语言中,一些键丢失了,所以我也想找到它们。所以我所做的是使用 Xcode 的导出工具导出 xliff 文件进行翻译。我在我的项目中到处使用 NSLocalizedString,所以理论上应该涵盖我。</p>

<p>但是当我打开一个导出的 xliff 文件(比如说意大利语)时,我遇到了以下问题:</p>

<p>xliff 文件中可本地化文件的部分列出了两次。第一次是这样的:</p>

<p><strong>projectName/Localizable.strings 的翻译</strong></p>

<p>在 xliff 文件的这一部分中,所有翻译都丢失了,即使可本地化的文件包含大多数键的翻译值。</p>

<p>那么同一个可本地化的文件被列为两次:</p>

<p><strong>projectName/en.lproj/Localizable.strings 的翻译</strong></p>

<p>在这种情况下,所有键都有其翻译后的值,但如果英语可本地化文件中缺少某个键,则此处也缺少该键。</p>

<p>这对我来说是一个巨大的痛苦,因为我只是在寻找缺少翻译的键,但这意味着我必须再次检查英文列表以确保没有键丢失。</p>

<p>这对我来说似乎不正常或不实际。有人知道我可能做错了什么吗?</p>

<p>顺便说一句,翻译后的键在应用程序本身上都可以正常工作,在设备和模拟器上都试过了。</p>

<p>感谢您的帮助。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不使用 <code>xliff</code> 导出的文件来管理我的翻译,所以我无法使用它给你答案。</p>

<p>但是,您可以使用 <code>Localization.strings</code> 文件解决查找缺失本地化的问题。</p>

<p>您可以使用 <code>genstrings</code> 命令生成一个 <code>Localizable.strings</code> 文件,该文件将包含您的代码中的所有 <code>NSLocalizedString</code>。
为此,您必须将所有源文件传递给 <code>genstrings</code>。
例如,如果你有一个只有 swift 的项目,你可以在项目的根目录下运行这个命令:</p>

<pre><code>find . -name &#34;*.swift&#34; | xargs genstrings
</code></pre>

<p>这将生成一个 <code>Localizable.strings</code> 文件,然后您可以使用 FileMerge 等文件比较工具与现有的 <code>Localizable.strings</code> 文件进行比较。为了使其有效,您可能需要对所有 <code>Localizable.strings</code> 文件中的键进行排序,我知道很多编辑器都可以这样做(SublimeText 就是其中之一)。</p>

<p>如您所见,上述解决方案是手动的,如果您需要多次执行此操作,则容易出错。过去,我使用 python 脚本自动执行此操作,该脚本在生成 <code>Localizable.strings</code> 和本地化 <code>strings</code> 文件的情况下执行以下操作:</p>

<ol>
<li>解析 <code>Localizable.strings</code> 以获取所有引用键</li>
<li>解析给定的本地化 <code>strings</code> 文件以获取本地化键</li>
<li>输出未使用的键和未翻译的键</li>
</ol>

<p>希望这会有所帮助!</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 Xcode 上导出 xliff 文件行为异常,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/37319458/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/37319458/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 Xcode 上导出 xliff 文件行为异常