在我的应用程序中,我翻译TextView的内容并将其呈现给用户。
我的问题是:第一个字符串很好地格式化了Newline字符,在翻译过程中松散了。
我的问题是:如何以相同的方式在第一个NSString中的相同位置添加相同数量的换行符,以使其看起来像第一个字符串?
翻译:
[[MSBingTranslator sharedTranslator] initWithDelegate:self andTranslateText:txtView.text fromLan:detectedLanguage toLan:@"de"];
- (void) MSBingTranslator:(MSBingTranslator *)cls translatedText:(NSString *) text {
txtView.text = text;
}
- (void) MSBingTranslator:(MSBingTranslator *)cls detectedLanguage:(NSString *)lan {
detectedLanguage = lan;
}
- (void) MSBingTranslator:(MSBingTranslator *)cls failedWithError:(NSString *) error {
}
我正在使用https://github.com/moeseth/Bing-Translator进行翻译,这是围绕微软Bing翻译的客观包装。
答案 0 :(得分:2)
我认为你不能真正做到这一点,主要是因为当你进行翻译时,你会经常得到比你开始时更多的单词。确定哪些单词/组与前/后字符串中的哪些单词匹配将非常困难(除非您一次翻译一个单词并且不会翻译相同的单词)。如果不是这样的话,你可以在翻译的字符串上使用componentsSeparatedByCharactersInSet,然后通过旧数组查找空字符串,以确定在新数组中添加新行的位置。
顺便说一句,不是创建数组然后将其写入可变字符串,您可以使用:
NSMutableString *mString = [txtView.text mutableCopy];
(除非您将数组用于其他内容)