标签: nslocalizedstring

localizedStringWithFormat如何工作?

请注意

我不是在问NSLocalizedString()宏.我问的是NSString班级功能+ (instancetype)localizedStringWithFormat:(NSString *)format, ....

这是两件不同的事情.

我正在尝试使用NSString类方法,localizedStringWithFormat但我无法弄清楚我应该如何使用它.

无论我尝试什么,我似乎都没有使用Xcode 6在翻译文件中出现这些词export for localization.我在这里尝试了前两种变化,但没有.

文档中的示例显示......

NSString *myString = [NSString localizedStringWithFormat:@"%@:  %f", @"Cost", 1234.56];
Run Code Online (Sandbox Code Playgroud)

这是否意味着我必须将翻译的单词与数字分开?即我不能只使用......

NSString *myString = [NSString localizedStringWithFormat:@"Cost:  %f", 1234.56];
Run Code Online (Sandbox Code Playgroud)

如果我可以使用这个翻译的短语是什么,翻译会是什么?

如果没有,那么为什么要使用它呢?为什么不用...

NSString *myString = [NSString stringWithFormat:@"%@:  %f", NSLocalizedString(@"Cost"), 1234.56];
Run Code Online (Sandbox Code Playgroud)

最后一个有什么不同?

无论哪种方式,有人可以告诉我如何获得翻译的实际单词.

更新

好吧,目前我正在使用一个愚蠢的工作,似乎是在滥用一切lol.

如果我做...

NSString *myString = [NSString stringWithFormat:@"%@:  %f", NSLocalizedString(@"Cost"), 1234.56];
Run Code Online (Sandbox Code Playgroud)

然后它翻译了"成本"这个词,但没有使用正确的数字区域设置.

如果我用...

NSString *myString = [NSString localizedStringWithFormat:@"%@:  %f", @"Cost", 1234.56];
// or
NSString *myString = [NSString …
Run Code Online (Sandbox Code Playgroud)

objective-c nsstring stringwithformat nslocalizedstring ios

13
推荐指数
1
解决办法
7349
查看次数

翻译属性字符串

我有一个带有属性字符串的UILabel.这是它的打印屏幕:

在此输入图像描述

现在,我必须将这个属性字符串翻译成英语和意大利语.我正在寻找一种方法来做到这一点.我可以逐个代码地在代码中构建这个属性字符串吗?我只找到了一个解决方案,其中设置了整个字符串,然后通过范围设置属性.但是当我翻译字符串时,我不再知道范围,因为这些字词更长或更小.

xcode localization nsattributedstring nslocalizedstring ios

12
推荐指数
1
解决办法
6685
查看次数

适用于Xcode 6的XLIFF本地化工具

Xcode 6引入了一个新的本地化工作流程,它使用了开放的.XLIFF格式.Xcode从NSLocalizedString中提取字符串,在storyboards/XIB文件中提取字符串,并为每个本地化创建一个XLIFF文件.

我正在寻找好的本地化工具,翻译人员可以用它来打开和编辑Xcode导出的文件.

翻译后的文件需要保存为.XLIFF,然后导入Xcode.Xcode为XLIFF文件中指定的目标语言创建新的本地化或更新现有的本地化.

您推荐哪种本地化工具?

xcode localization nslocalizedstring xliff

11
推荐指数
1
解决办法
4608
查看次数

iOS获取特定语言的字符串的本地化版本

我正在为iOS构建一个以英语和法语提供的应用程序.我已经阅读了一些关于国际化的教程,并且我了解它是如何工作的以及我需要做什么.

我遇到的问题是有一个特定的情况,我想为英语用户加载法语字符串.

我知道可以为整个应用程序设置语言,但是它需要在应用程序生效之前重新启动它.我想避免这种情况,而是能够根据需要选择加载法语或英语字符串.

是否可以通过编程方式从特定语言的.strings文件中加载字符串?

xcode localization internationalization nslocalizedstring ios

11
推荐指数
2
解决办法
3818
查看次数

自定义每个目标的Mainstoryboard.strings

我有2个目标的应用程序.应用程序中的字符串资源分散在代码和故事板文件中.现在我需要为两个目标完全不同的字符串集合(虽然对于两个目标都使用英语).我能够在此链接后为每个字符串创建2个不同版本的Localized.strings - 相同应用程序的不同目标的替代字符串 - 使用NSLocalizedString?

但我找不到任何类似的方法来隔离每个目标的Mainstoryboard.strings文件.我应该制作2份MAinstoryboard.strings文件并为每个目标分配.我没有尝试这个,但有些东西告诉我,这可能不是最好的方法.

令人惊讶的是,在Apple教程中没有任何内容.有什么建议 ?

xcode cocoa-touch localization nslocalizedstring ios

11
推荐指数
1
解决办法
176
查看次数

NslocalizedString返回键而不是值

我创建两个Localizable.strings文件,一个用于英语,第二个用于阿拉伯语:

/* The number 1 */
"LABEL_ONE" = "label number one";
Run Code Online (Sandbox Code Playgroud)

我使用此代码来获取字符串值:

[self.Lable1 setText:NSLocalizedString(@"LABEL_ONE", @"The number 1")];
Run Code Online (Sandbox Code Playgroud)

但应用程序显示"LABEL_ONE"而不是"标签第一"?有什么问题 ?谢谢

nslocalizedstring ios

10
推荐指数
3
解决办法
5135
查看次数

Xcode 7崩溃:[NSLocalizableString length] 30000

该应用程序只挂在iOS7,8,9上,对[NSLocalizableString length]进行30000次调用cpu最大.

看到https://forums.developer.apple.com/thread/16001

(lldb) bt 
* thread #1: tid = 0x2cb4df, 0x0349065c Foundation`-[NSLocalizableString length] + 6, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0xbf728ffc) 
  * frame #0: 0x0349065c Foundation`-[NSLocalizableString length] + 6 
    frame #1: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #2: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #3: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #4: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #5: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #6: 0x03490680 Foundation`-[NSLocalizableString length] + 42 
    frame #7: 0x03490680 …
Run Code Online (Sandbox Code Playgroud)

crash nslocalizedstring ios xcode7

10
推荐指数
1
解决办法
2370
查看次数

使用nsattributedstring和nslocalizedstring

我的旧代码使用NSLocalizedString来显示以下内容,其中outputText是一个NSMutableString,在单个输出会话中包含许多这样的行:

[outputText appendFormat: NSLocalizedString(@"\n\n%@ and %@ are identical.  No comparison required.", @"\n\n%@ and %@ are identical.  No comparison required."), self.ipAddress, secAddress.ipAddress];
Run Code Online (Sandbox Code Playgroud)

我正在尝试更改各种ipAddress字符串的颜色,但在使用NSMutableAttributedString时找不到类似的方法.

我面临的最大问题是,由于整个字符串将被本地化,我无法在不分解格式化输出的每个部分的情况下可靠地设置NSRange.

我是否需要剖析此字符串的每个部分,将其转换为NSAttributedString并将每个部分附加到outputText?

nsattributedstring nslocalizedstring ios

9
推荐指数
1
解决办法
2479
查看次数

iOS本地化:最佳实践

关于iOS本地化的最佳实践是什么?我一直在使用本地化工作,但感觉不够好并且可扩展.需要有一些更好的方法.这是我目前的做法:

使用.strings文件+ NSLocalizedString

  • 这很好用.特别是在将字符串文件拆分成更小的部分时.但如果它是许多小文件.添加另一种语言可能会很乏味.

将.stringsdict用于零,一,多等字符串

  • 这也很有效.缺点是对于一个单词来说是相当多的"代码".

使用故事板的.strings文件

  • 这是最棘手的部分.从故事板本身生成.string文件并不难.但由于某种原因,不可能更新字符串?所以.如果在storyboard文件中添加更多字符串,则无法在不重新生成的情况下将新字符串放入旧字符串中.这意味着您的所有旧翻译都将丢失.
  • 我已经阅读并测试了FileMerge.(工作正常,但似乎还有很长的路要走)
  • 我已经阅读并测试了一些python脚本.(根本不工作)

我试图从Xcode创建一个xliff文件,但从来没有让它工作.始终无法导出文件.

错误消息:无法读取字符串文件./..../Localizable.strings/无法读取数据,因为格式不正确.

那么..你如何处理iOS中的Localizedstrings?特别.有关本地化故事板文件的方法是什么?我见过人们在代码中设置所有的本地化字符串.但是IBOutlets为这个原因创造很多东西感觉就像是一个不必要的步骤.

xcode localization storyboard nslocalizedstring ios

9
推荐指数
1
解决办法
2453
查看次数

iOS有一种方法可以将本地化字符串从IB /故事板分配给UILable

我想NSLocalizedString(key, comment)从故事板分配到UILabel而不为它创建一个插座.

uilabel iboutlet nslocalizedstring ios uistoryboard

9
推荐指数
1
解决办法
4207
查看次数