标签: nslocalizedstring

除了基本定位之外,我是否需要英语,其中包含完全相同的"翻译"?

我希望基本文件包含我的英语单词,因为我的项目已将"Localization native development region"设置为英语.

更新 - 澄清我的问题:

在此输入图像描述

xcode localization nslocalizedstring

32
推荐指数
3
解决办法
1万
查看次数

objective-c本地化字符串文件中的多行字符串

我有一个电子邮件的模板,我已经放入一个本地化的字符串文件,我正在加载NSLocalizedString宏的字符串.

我宁愿不使用唯一键使每一行成为自己的字符串.在Objective-C中,我可以创建一个人类可读的多行字符串,如下所示:

NSString *email = @"Hello %@,\n"
    "\n"
    "Check out %@.\n"
    "\n"
    "Sincerely,\n"
    "\n"
    "%@";
Run Code Online (Sandbox Code Playgroud)

我试着把它放在.strings文件中:

"email" = "Hello %@,\n"
    "\n"
    "Check out %@.\n"
    "\n"
    "Sincerely,\n"
    "\n"
    "%@";
Run Code Online (Sandbox Code Playgroud)

但是我在构建时遇到以下错误:

CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary.
email-template.strings: Unexpected character " at line 1
Command /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copystrings failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

我可以像这样将它连接在一起:

"email" = "Hello %@,\n\nCheck out %@.\n\nSincerely,\n\n%@";
Run Code Online (Sandbox Code Playgroud)

但这将是一个混乱的维护,特别是随着电子邮件变得更长.

有没有办法在本地化的字符串文件中执行此操作?我已经尝试在每一行的末尾添加反斜杠,但无济于事.

iphone localization objective-c nslocalizedstring

30
推荐指数
1
解决办法
1万
查看次数

如何使iOS应用程序名称可本地化?

我正在尝试找到本地化我的应用程序的最简单方法.我正在使用sqlite,所以我基本上只需要切换我的数据库名称.问题是应用程序名称 - 它是否可以从代码本地化,或者我必须为x语言制作x应用程序,因此任何人都将使用他/她的母语应用程序名称?后者似乎已经拒绝了app给我......有人吗?

iphone xcode localization nslocalizedstring ios

19
推荐指数
1
解决办法
2万
查看次数

后备语言iOS(包含不完整的Localizable.strings文件)

我有一个本地化为16种语言的iOS项目.只有一些单词没有本地化(主要是那些进入更新并且本地化办公室没有及时交付的单词).对于我的钥匙,我使用英语措辞,因为如果翻译人员愿意,这也会改变.所以现在如果我没有语言的翻译,如果我回到我使用的密钥.但由于这个关键不是"人类可读的"或至少不是"人类阅读的乐趣",这是一个问题.

我做了一些研究,但无法找到解决我确切问题的方法.我有:

Localizable.strings in en.lproj
@"Key1" = @"Value 1"
@"Key2" = @"Value 2"

Localizable.strings in de.lproj
@"Key1" = @"Wert 1"
// Note that @"Key2" is missing here in my de.lproj

I would expect that if I make NSLocalizedString(@"Key2", ...)
and am running on a german phone, it falls back to the english
translation for this key as it exists...
Run Code Online (Sandbox Code Playgroud)

所以现在我只是将英文翻译复制到缺少的Localizable.strings文件中.但这是一个大黑客!而且使用英语单词作为键似乎对我来说是一个黑客!

有没有办法告诉我的应用程序,如果没有给定密钥的值,它应该使用fe english作为后备?我尝试添加基本本地化但这没有帮助...

非常感谢

localization nslocalizedstring ios

18
推荐指数
2
解决办法
3719
查看次数

应用程序本地化显示密钥而不是iOS中的值

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

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"];
Run Code Online (Sandbox Code Playgroud)

而且没有一个是零.

我已经检查了本地化文件的名称,Localizable.strings它应该是这样的.还要检查文件中是否存在密钥Localizable.strings,确实存在.

我也尝试过:

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

也尝试做这个问题的一切.

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

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

localization objective-c localizable.strings nslocalizedstring ios

17
推荐指数
1
解决办法
1109
查看次数

单元测试使用NSLocalizedString的iPhone代码

我有一个使用本地化字符串的iPhone iOS4.1应用程序.我刚刚开始使用SenTestingKit构建单元测试.我已经能够成功测试许多不同类型的值.

我无法正确测试任何使用NSLocalizedString调用的代码,因为当代码在我的LogicTests目标中运行时,我的所有NSLocalizedString调用都只返回字符串键.

我已将Localizable.strings文件添加到LogicTests目标.

我的问题是:如何配置我的LogicTests目标,以便对NSLocalizedString的调用将返回本地化字符串而不是字符串键.

iphone unit-testing nslocalizedstring

16
推荐指数
2
解决办法
4593
查看次数

iPhone/iOS:如何在我的应用程序本地化的所有语言中获取本地化字符串列表?

我需要向服务器发送特定字符串的本地化列表.

这意味着,如果我的应用程序有一个字符串Foo,其本地化为英语为@"Foo",俄语为@"Фу",我想向服务器发送如下列表:

  • String Foo:
    • 英语:"Foo"
    • 俄语:"Фу"

我认为我需要做的是:

  1. 枚举我的应用程序本地化的每种语言的本地化字符串
  2. 获取每种语言的本地化版本的Foo

我该怎么做(1)我该怎么做(2)?

iphone localization nslocalizedstring ios

16
推荐指数
1
解决办法
1万
查看次数

如何使用存储在CocoaTouch Framework中的Localizable.strings?

我想为CocoaTouch框架添加多语言支持.

问题:我创建的Localizable.strings文件只有当它是主应用程序及其目标的一部分时才被NSLocalizedString使用.我想将它存储在Framework中以保持分离.

放置在CocoaTouch框架内时,如何使用Localizable.strings

multilingual localization nslocalizedstring ios swift

15
推荐指数
2
解决办法
4844
查看次数

iPhone:界面构建器中的NSLocalizedString?

有没有办法在界面构建器中插入NSLocalizedString.例如,将标签文本设置为本地化字符串而不是静态字符串?

我真的很讨厌为每个需要本地化字符串的项目创建属性.

iphone interface-builder nslocalizedstring

14
推荐指数
1
解决办法
1万
查看次数

XCode 9本地化导出/导入不包括NSLocalizedString()或注释

情况:

我们使用XCode导出/导入工具为我们的翻译生成可本地化的文件.这在XCode 8中运行良好.由于我们更新到XCode 9,我们发现了一些问题.

问题:

  1. 通过编辑器导出本地化 - >导出以进行本地化... - >仅限开发语言时,根据此文档,它不包含 NSLocalizedString()键/值:When you export localizations, Xcode searches your code for the macros and includes the strings files in the exported localization file for translation.
  2. 添加到Localizable.strings开发语言文件的注释似乎在导出.xliff文件中不存在.
  3. 导入翻译.xliff文件时,XCode似乎删除了文件中的所有注释.它被取代"(No Comment)"

组态:

  • XCode 9.0(9A235)
  • 开发语言:NL
  • 本地化语言:Base,NL,DE,BE,LU
  • Objective-C&Swift混合项目

我尝试过的:

  • 我曾尝试查看XCode 9文档或更改日志以查看本地化中发生的变化,但我无法找到提及此更改的内容
  • NSLocalizedString()当我第一次Localizable.strings手动生成开发文件时,我可以通过使用命令行命令将我的字符串显示在导出中find ./ -name "*.m" -print0 | xargs -0 xcrun extractLocStrings -o .(我为.swift文件运行第二次,因为我的项目是swift/objc混合).然后结合结果,让我的字符串显示在导出中,但没有注释,这是翻译人员的指南.

题:

这是一个XCode 9错误吗?我是否错过了本地化导出/导入的任何文档或新功能/选项?有变通方法吗?

xcode localization export nslocalizedstring ios

14
推荐指数
1
解决办法
1640
查看次数