• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 03:55:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

根据官方文档Internationalization Programming Topics :

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. The same application on the iPhone would look only in the en.lproj directory.

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

有什么问题?



Best Answer-推荐答案


我不确定,但这是我有根据的猜测。

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

这是我在手机上观察到的:

如果我只有

- en_US.lproj
    - Localizable.strings

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

但是,如果我有:

- en_US.lproj
    - Localizable.strings
- en.lproj
    - Localizable.strings

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

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

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

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

长话短说,就文档本身而言,我不会向 App Store 提交具有这种本地化类型的应用程序。它可能会被拒绝,或者将来会中断(找不到字符串值),因为它在 iOS 上不受官方支持。也就是说,如果这个功能无限期地继续工作,我也不会感到惊讶。

关于ios - iOS 是否查找特定于区域的 .lproj 目录(例如 en_US.lproj)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15848566/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap