不明白如何本地化 iOS react-native 应用的 plist
Posted
技术标签:
【中文标题】不明白如何本地化 iOS react-native 应用的 plist【英文标题】:Don't understand how to localize plist of iOS react-native app 【发布时间】:2018-08-06 10:02:03 【问题描述】:我有一个 ReactNative 项目,我想本地化 Infos.plist 的权限描述用法。我已经阅读了不同的 SO 答案,但我不明白如何让它发挥作用。
我创建了InfosPlist.strings
,但不明白我应该做什么,并且我看不到任何添加/选择语言的能力,就像这里的屏幕截图中看到的那样:How to localise a string inside the ios info.plist file?
实际上我什至不明白我应该如何在我的应用程序中添加语言,因为这里没有可供选择的文件,并且按完成不会将法语添加到本地化语言列表中。
谁能告诉我应该如何为我的 ReactNative 应用程序添加法语支持?也许这个问题是 ReactNative 应用程序特有的,因为大部分翻译都是在 JS 中完成的?
【问题讨论】:
【参考方案1】:在 Project Navigator 中选择您的项目文件,然后在项目和目标列表中选择您的项目。打开信息选项卡,然后单击本地化部分下的“+”按钮。然后从显示的下拉列表中选择您想要支持的语言。
XCode 打开一个对话框,显示要为新语言添加的资源。按完成按钮将在名为 [New Language].lproj 的新语言项目文件夹下生成这些文件。 (在本例中我添加了日语支持,因此创建了 ja.lproj 文件夹。)
Localizable.strings 文件是您将翻译数据作为键值对添加的位置。 早期版本的 XCode 用于默认生成 Localizable.strings 文件,我们能够轻松地为其他语言复制 Localizable.strings 文件。 默认情况下,最新版本的 XCode 不会创建 Localizable.strings 文件。 要添加 Localizable.strings 文件,请转到 File->New->File ,在 iOS 的 Resource 选项卡下选择 Strings File ,将其命名为 Localizable.strings ,然后创建文件。
我们现在有两个 Localizable.strings 文件 — 一个在 Base.lproj 文件夹下,另一个在 ja.lproj 文件夹下。 让我们将应用中使用的单词和短语添加到 Base 的 Localizable.strings 文件中。 下面是我添加“Welcome”=“Welcome”的示例; 左侧是所谓的 Key,稍后 NSLocalizedString 方法使用它来提取右侧的文本。这是键值对类型的数据。
例子:let alertTitle = NSLocalizedString("Welcome", comment: "")
【讨论】:
要本地化应用程序标题或 Info.plist 文件中定义的其他内容,请创建 InfoPlist.strings 文件。转到 File->New->File ,在 iOS 的 Resource 选项卡下选择 Strings File,将其命名为 InfoPlist.strings。选择 Base.lproj 文件夹作为 InfoPlist.strings 文件的位置。 (通过这样做,这个 InfoPlist.strings 文件被 XCode 识别为基本语言的文件。)通常我们有兴趣在 info.plist 文件中本地化这两个值。 CFBundleDisplayName — 主屏幕上显示的应用名称 NSHumanReadableCopyright 在我的截图中显示,当我在本地化部分按“+”添加法语时,没有文件可供选择,按完成实际上没有任何作用(语言未添加到列表中) .我无法按照下一个说明进行操作,因为似乎没有在任何地方创建法语文件夹 我不想翻译 swift/objective-c 代码,因为我的应用程序已经用 javascript 翻译了,我只是在寻找 Infos.plist 权限密钥的翻译 我会接受答案,因为该链接实际上很有帮助。创建 le strings 文件后,重要的部分是单击右侧的“本地化”按钮。之后,我可以在列表中添加一种语言并在之前为空的弹出窗口中选择此文件【参考方案2】:请看这个截图
【讨论】:
如上所述:我无法在此列表中添加语言,因为在以下弹出窗口中没有可供选择的资源文件(显示在我的屏幕截图中)。那我该怎么办??? 点击此链接。 hackernoon.com/…以上是关于不明白如何本地化 iOS react-native 应用的 plist的主要内容,如果未能解决你的问题,请参考以下文章
React-native:如何从 Windows 构建 ios
使用 react-native 创建本地推送通知 - IOS
React-Native之IOS本地模块的应用实践分享(仅此一篇足以...)
使用 fastlane 匹配方法在本地 iOS 设备上运行 react-native 应用程序