2012-04-22 9 views
0

私のアプリケーションでは、TextViewの内容を翻訳してユーザに提示します。2つのNSString内で改行文字を保持する

私の問題は:最初の文字列は、翻訳中に緩んでいる改行文字できれいにフォーマットされています。

認識されたテキスト: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、MicrosoftのBingの翻訳周りのObjective-Cのラッパーを使用しています。

+0

あなたのコードスニペット(あなたが何か他のもののために、配列を使用していない限り)お互いに無関係のようです。例えば、最初のものだけが 'myWords'変数を参照します。 2番目のものだけが 'lb'を参照します。 '-componentsSeparatedByCharactersInSet:'で返された配列を実際に処理して各要素を変換する場合、変換された要素の配列をとり、それらを ' - [NSArray componentsJoinedByString:]'で文字列に再結合することができます。 –

+0

あなたは正しく、質問を編集しました。私が何か悪いことをしたら、私に教えてください。 – mstottrop

+0

したがって、改行でテキストを区切り、改行でテキストを結合しますか?どうして?元のテキストを翻訳者に渡すだけではいかがですか? –

答えて

2

私はあなたが本当にこれを行うことができるとは思わない、なぜなら、あなたが翻訳をするときには、あなたが始まった単語とはかなり異なることが多いからです。前/後の文字列のどの単語と一致する単語/グループを決定するのは本当に難しいでしょう(同じ単語を翻訳しない単語を一度に翻訳しない限り)。そうでない場合は、componentsSeparatedByCharactersInSetを翻訳された文字列に使用して、古い配列から空の文字列を探して、新しい配列に新しい行を追加する場所を決定します。ところで

、代わりに配列を作成して、変更可能な文字列にそれを書くのあなただけ使用することができます。

NSMutableString *mString = [txtView.text mutableCopy]; 

+0

私は答えを見つけたので、それに応じて私の答えを更新します! – mstottrop

関連する問題