ios - 应用程序本地化显示键而不是 iOS 中的值

标签 ios objective-c localization nslocalizedstring localizable.strings

我一直在我的应用程序中使用本地化,但由于某种原因,一些字符串(不是全部)不会翻译,我看到的是键而不是值。我试图通过这样做来检查应用程序是否找到了本地化文件:

NSString *enPath = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *hePath = [[NSBundle mainBundle] pathForResource:@"he" ofType:@"lproj"];
NSString *ruPath = [[NSBundle mainBundle] pathForResource:@"ru" ofType:@"lproj"];
NSString *esPath = [[NSBundle mainBundle] pathForResource:@"es" ofType:@"lproj"];
NSString *frPath = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
NSString *arPath = [[NSBundle mainBundle] pathForResource:@"ar" ofType:@"lproj"];

而且没有一个是 nil。

我已经检查了本地化文件的名称,它应该是 Localizable.strings。 还检查了 key 是否存在于 Localizable.strings 文件中并且确实存在。

我也试过:

  • 清空缓存
  • 清理所有目标
  • 删除派生数据文件夹
  • 重启
  • 重置模拟器
  • 转换为 UTF-16
  • 删除所有本地化文件并重新创建它们。

还尝试执行 this 中的所有操作问题。

重要的是要说这不仅仅是模拟器/缓存问题。它还显示在下载该应用程序的设备上。 (我有企业帐户)。

我还能做些什么来识别或解决问题?

最佳答案

所以我发现了问题,我猜是谁为我翻译了 Localizable.strings 文件是个 SCSS 。在我的字符串文件的 4 个地方有一行如下:

"KEY" ;= "Value"

这一行导致某种崩溃,但由于某种原因让编译器成功构建。这就是为什么我找不到错误的原因,只有当我决定采用最后一个未翻译的键和值并将它们移动到 Localizable.strings 文件的顶部时。然后我能够理解并看到问题出在文件中间的某个地方,并且顶部的键和值翻译得很好。

关于ios - 应用程序本地化显示键而不是 iOS 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34264355/

相关文章:

javascript - 在 Javascript 中本地化字符串

localization - Typo3 7.6 extbase 存储库匹配仅影响非本地化记录

ios - 在 tableviewheader 中使用 UITextField 进行 self.view.endEditing 时崩溃

ios - cocos2d画线

ios - 插页式 DFP 广告未填满屏幕

objective-c - 如何查看 AFNetworking 的版本?

javascript - Sailsjs 更改本地化

objective-c - 将数据从 iPhone 应用程序发送到 Node.js Web 服务器

iphone - 仅在屏幕的有限区域内保持 UIView 可见

ios - 在页面 View Controller 中以编程方式使用 Storyboard 中的 View Controller