我希望基本文件包含我的英语单词,因为我的项目已将"Localization native development region"设置为英语.
更新 - 澄清我的问题:

我有一个电子邮件的模板,我已经放入一个本地化的字符串文件,我正在加载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)
但这将是一个混乱的维护,特别是随着电子邮件变得更长.
有没有办法在本地化的字符串文件中执行此操作?我已经尝试在每一行的末尾添加反斜杠,但无济于事.
我正在尝试找到本地化我的应用程序的最简单方法.我正在使用sqlite,所以我基本上只需要切换我的数据库名称.问题是应用程序名称 - 它是否可以从代码本地化,或者我必须为x语言制作x应用程序,因此任何人都将使用他/她的母语应用程序名称?后者似乎已经拒绝了app给我......有人吗?
我有一个本地化为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作为后备?我尝试添加基本本地化但这没有帮助...
非常感谢
我一直在我的应用程序中使用本地化,但由于某种原因,一些字符串(不是所有字符串)都不会翻译,我看到键而不是值.我试图通过这样做来检查应用程序是否找到了本地化文件:
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,确实存在.
我也尝试过:
也尝试做这个问题的一切.
重要的是要说这不仅仅是模拟器/缓存问题.它也在下载应用程序的设备上显示.(我有企业帐户).
我还能做些什么来识别或解决问题?
localization objective-c localizable.strings nslocalizedstring ios
我有一个使用本地化字符串的iPhone iOS4.1应用程序.我刚刚开始使用SenTestingKit构建单元测试.我已经能够成功测试许多不同类型的值.
我无法正确测试任何使用NSLocalizedString调用的代码,因为当代码在我的LogicTests目标中运行时,我的所有NSLocalizedString调用都只返回字符串键.
我已将Localizable.strings文件添加到LogicTests目标.
我的问题是:如何配置我的LogicTests目标,以便对NSLocalizedString的调用将返回本地化字符串而不是字符串键.
我需要向服务器发送特定字符串的本地化列表.
这意味着,如果我的应用程序有一个字符串Foo,其本地化为英语为@"Foo",俄语为@"Фу",我想向服务器发送如下列表:
我认为我需要做的是:
我该怎么做(1)我该怎么做(2)?
我想为CocoaTouch框架添加多语言支持.
问题:我创建的Localizable.strings文件只有当它是主应用程序及其目标的一部分时才被NSLocalizedString使用.我想将它存储在Framework中以保持分离.
放置在CocoaTouch框架内时,如何使用Localizable.strings?
有没有办法在界面构建器中插入NSLocalizedString.例如,将标签文本设置为本地化字符串而不是静态字符串?
我真的很讨厌为每个需要本地化字符串的项目创建属性.
情况:
我们使用XCode导出/导入工具为我们的翻译生成可本地化的文件.这在XCode 8中运行良好.由于我们更新到XCode 9,我们发现了一些问题.
问题:
NSLocalizedString()键/值:When you export localizations, Xcode searches your code for the macros and includes the strings files in the exported localization file for translation..xliff文件中不存在..xliff文件时,XCode似乎删除了文件中的所有注释.它被取代"(No Comment)"组态:
我尝试过的:
NSLocalizedString()当我第一次Localizable.strings手动生成开发文件时,我可以通过使用命令行命令将我的字符串显示在导出中find ./ -name "*.m" -print0 | xargs -0 xcrun extractLocStrings -o .(我为.swift文件运行第二次,因为我的项目是swift/objc混合).然后结合结果,让我的字符串显示在导出中,但没有注释,这是翻译人员的指南. 题:
这是一个XCode 9错误吗?我是否错过了本地化导出/导入的任何文档或新功能/选项?有变通方法吗?
localization ×8
ios ×6
iphone ×5
xcode ×3
objective-c ×2
export ×1
multilingual ×1
swift ×1
unit-testing ×1