2012-04-22 71 views
0

在我的應用程序中,我翻譯TextView的內容並將其呈現給用戶。在兩個NSStrings中保留換行符

我的問題是:第一個字符串很好地格式化爲換行期間鬆散的換行符。

識別文本:Picture 1 翻譯文本:Picture 2

我的問題是:怎麼可能以某種方式在同一個地方追加換行符相同數量第一的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的翻譯,圍繞微軟的必應翻譯一個Objective-C的包裝。

+0

你的代碼片段似乎彼此無關。例如,只有第一個引用「myWords」變量。只有第二個提到'lb'。如果你真的處理了由'-componentsSeparatedByCharactersInSet:'返回的數組來轉換每個元素,你可以獲得一個轉換後的元素數組,並用' - [NSArray componentsJoinedByString:]'將它們重新組合成一個字符串。 – 2012-04-22 14:27:00

+0

你是對的,編輯了這個問題。如果我做錯了什麼,請讓我知道。 – mstottrop 2012-04-22 15:25:01

+0

那麼,你用換行符分隔文本,然後用新行加入文本?爲什麼?你爲什麼不把原文傳給譯者? – 2012-04-22 15:38:03

回答

2

我不認爲你真的可以做到這一點,主要是因爲當你做翻譯時,你會經常得到不同於你開始的單詞數量。確定哪些單詞/組匹配前/後字符串中的哪些單詞真的很困難(除非您一次翻譯一個單詞而不翻譯相同的單詞)。如果不是這樣的話,你可以在翻譯的字符串上使用componentsSeparatedByCharactersInSet,然後通過舊數組尋找空字符串,以確定在新數組中添加新行的位置。

順便說一句,而不是創建數組,然後將其寫入到可變的字符串你可以使用:

NSMutableString *mString = [txtView.text mutableCopy]; 

(除非您使用的是陣列其他東西)

+0

我找到了答案,會相應地更新我的答案! – mstottrop 2012-04-22 18:06:43