我的单元测试.pch文件中包含以下内容,以允许我的单元测试为本地化文件找到正确的包,并且在我升级到Xcode8之前它工作正常。#undefNSLocalizedString#defineNSLocalizedString(key,comment)[[NSBundlebundleWithIdentifier:@"Tests-Unit"]localizedStringForKey:(key)value:@""table:nil]现在,我收到警告AmbiguousexpansionofmacroNSLocalizedString这可以解释为什么我的单元测试失败了,因为它们再也找不到本地化的字
我不熟悉iOS的国际化和本地化。我正在运行genstrings:找到。-名称\*.m|xargsgenstrings-oen.lproj生成我的Localizable.strings文件。它按字母顺序(按键)构建文件。为了便于翻译,我希望键和值按它们在.m文件中出现的顺序排序。这可能与genstrings吗?我在它的man页面上找不到相关信息。 最佳答案 你可以这样做:find.-name'*.m'-print|xargs-n1genstrings-a我相信还有更优雅的方式。也许只使用ls*.m而不是查找。这些字符串通过-a开关按文
我有英文、日文、韩文的Localizable.strings文件。我无法从韩国文件中加载一些单词。我也检查了拼写、大写字母或小写字母。它是正确的。我还清理了项目,重置了模拟器并删除了设备上的应用程序。它不适用于某些单词。我可以知道该怎么做吗? 最佳答案 一个常见的问题是:如果您的localisable.strings文件中有错误,则该错误之后的任何内容都将被忽略。您正在检查的线路可能没问题;如果上面的第10行坏了,它就不会工作。如果这是问题所在,例如,下一行中的项目也不会起作用。清理项目、重置模拟器、删除设备上的应用程序,都不会为您
我在调试我的NSLocalizedString实现时遇到了一些问题。应该很简单,但无论我做什么,函数只返回KEY字符串。我正在使用XCode4.5和iOS6,所以我:添加了一个名为File.strings的新文件。在我的项目设置中,我添加了英语和西类牙语作为语言设置。在文件检查器中单击“本地化”,确保选择了英语和西类牙语选项,并选择了我的目标的Target成员身份。将"KEY"="TestEnglish";添加到我的英语File.strings将"KEY"="TestSpanish";添加到我的西类牙语File.strings添加NSLog(@"Localization:%@\n",N
假设我想使用这样的嵌套类或结构对某些东西进行分类。extensionString{structLocalized{structItem{structEdit{structAlert{structTitle{staticvarsomeTitle:String{returnNSLocalizedString("...",comment:"...")}}structMessage{staticvarsomeMessage:String{returnNSLocalizedString("...",comment:"...")}}}}staticvarsomeString:String{retu
如果您将以下简单的代码片段放入Playground中:importFoundationlethumanReadableNames=["test":NSLocalizedString("foo")]你会得到编译器错误:Cannotconfertheexpression'stype'Dictionary'totype'DictionaryLiteralConvertible'Swift函数NSLocalizedString被定义为返回String,所以我不明白为什么这个变量的类型不只是Dictionary. 最佳答案 看来你需要在NSL
我正在使用NotificationSerivceExtension来根据我的需要更改来自服务器的文本。但是,这对普通字符串来说效果很好。但是当我将NSLocalizedString与它一起使用时,它不会显示本地化字符串,而是显示字符串的字段名称。例如:在UNNotificationServiceExtension中:letCompanyViewLM=NSLocalizedString("Notifications.View",comment:"NoComment")在Localizable.strings中,我放置了以下行:Notifications.View="IViewedyour
我无法理解也无法找到任何向我展示NSLocalizedString实际用法的资源。甚至苹果文档..NSLocalizedString(,tableName:,bundle:,value:,comment:)好吧,假设我在一个文件中创建了这个,我该如何为不同的语言编写这个?我是否创建了整个文件的本地化版本,例如:en.thisfile.swift、es.thisfile.swift、fr.thisfile.swift?或者我是否在不同的包或表中创建新语言?NSLocalizedString("hello",tableName:"en",value:"hello",comment:"wtf
如何解决行长违规问题?由于行长违规而不允许的警告消息的相关部分:消息:NSLocalizedString("\n您将被要求使用%@登录。%@不共享任何关于您的信息.发布您的直播视频需要获得许可。”,⚠行应不超过120个字符:当前为208个字符(line_length) 最佳答案 使行更短:message:NSLocalizedString(["\nYouwillberequestedtoUse%@toSignIn.","%@doesn'tshareanyinformationaboutyou.The","permissionisre
我可以在我的其他语言Localizable.strings文件中为未翻译的键使用默认语言(例如英语)吗? 最佳答案 为此,您可以使用英文单词作为Localizable.strings文件中的键。另一种方法是检查NSLocalizedString的结果并返回默认的英文版本(使用“强制”包)以防结果与key相同。它可能看起来像这样extensionNSString{classfuncNSLocalizedStringWithDefault(key:String,comment:String)->String{letmessage=NSL