Cra*_*cyD 18 xcode localization nsattributedstring ios
我正在使用故事板,并有一个视图,我已经将一些UITextViews子类化.
我的问题是我正在使用ibtool --generate-strings-file
从故事板中提取字符串进行本地化,然后ibtool -write
在另一个故事板文件上使用以应用翻译的字符串.
当我使用ibtool
任何具有归属文本的UITextView时,ibtool --generate-strings-file
命令会忽略该命令并从结果字符串文件中省略.
是否可以从故事板中提取属性文本以进行本地化?
小智 18
在Xcode 6.1上,最好的方法是将文本视图的属性文本复制到"BASE"RTF文本中(例如使用TextEdit或直接从XCode> New File> ressources> RTF).
通过TextEdit方式,您需要将文本导入项目.显然,如果你是通过Xcode完成的,那么无需导入.
然后只需使用utilies面板找到"localize ..."按钮,它将为您做到这一点.
要导入正确的版本(在viewWillAppear中为ex.),
NSURL *url = [[NSBundle mainBundle] URLForResource:[fileName stringByDeletingPathExtension] withExtension:[fileName pathExtension]];
NSError *error;
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithFileURL:url
options:@{NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType}
documentAttributes:nil
error:&error];
[_originalMessage setAttributedText:attributedString];
Run Code Online (Sandbox Code Playgroud)
Swift 4的更新:
var attrString: NSAttributedString?
let fileUrl: URL = Bundle.main.url(forResource: "mytextfile", withExtension: ".rtf")!
do {
attrString = try NSAttributedString(url: fileUrl, options: [.documentType:NSAttributedString.DocumentType.rtf], documentAttributes: nil)
} catch {
// Somebody do something!!
}
Run Code Online (Sandbox Code Playgroud)
我最后得出的结论是ibtool
,在目前的版本中无法使用它.
相反,我让Textview成为纯文本视图,并使用我的子类解析其text属性,以便我可以创建NSMutableAttributedString
并设置所需的属性.
这使我能够使用ibtool
提取字符串并仍然具有属性textview.
归档时间: |
|
查看次数: |
5962 次 |
最近记录: |