2014-11-24 20 views

回答

0

鍵入內容時對字符串進行本地化可能是一個挑戰,因爲您應該避免逐字逐句翻譯,而不是用短語或句子進行翻譯。不過,我相信你要找的是NSLocalizedString。我建議首先構建應用程序,它可以在按下按鈕時轉換輸入的文本字段。

UPDATE:我錯誤地介紹了NSLocalizedString,它將代碼中的預定義文本轉換爲其他語言,以緩解本地化/國際化的壓力。相反,下面是一個使用Microsoft API翻譯文本的開源項目示例,它與ARC兼容,並可隨時與您的應用程序集成。

然後,您可以在用戶文本發生變化時開始跟蹤用戶文本,查找完整的句子,並在用戶完成每個句子時翻譯它們。由於UIKit不能保證符合KVO(鍵值觀察)標準,因此您可能無法跟蹤UITextField的文本屬性,但您可以在View Controller中實施<UITextFieldDelegate>協議來跟蹤編輯屬性,也可以還使用庫像ReactiveCocoa跟蹤文本字段的變化,一拉

在你的VC界面, ...

​​3210

在您的viewDidLoad或其他適當的方法 ...

[[self.myTextField.rac_textSignal filter:^BOOL(NSString *text) { 
    // check if a full sentence has been typed since last time, 
    // using regular expressions or another method, 
    // return YES or NO; the next block will run accordingly. 
}] subscribeNext:^(NSString *latestText) { 
    // some regular expression again to get last sentence _here_ 
    NSString *lastSentence = ...; 

    // add the last sentence to a string with the full english version 
    self.plainEnglishText = [self.plainEnglishText stringByAppendingString:lastSentence]; 

    // use NSLocalizedString on full plain text _here_ 
    NSString *localizedString = ...; 

    // update text field with new text. 
    self.myTextField.text = localizedString; 
}]; 

我剛剛寫了這段代碼,但無論您決定跟蹤更改並更新文本字段,該代碼片段(無論是否具有ReactiveCocoa框架知識)都應該具有足夠的意義來了解如何無論文本字段如何被跟蹤,都要去做事情。

建議歡迎。最好。

+0

嗨,非常感謝您的建議,但我在談論unicode,並且您正在回答我的本地化字符串。例如,如果我用英文寫東西,那麼使用unicode以其他語言更改它。對於本地化的字符串,我必須創建一個字符串文件,我認爲和做的東西。但我想用unicode。 – user1495387 2014-11-24 08:00:43

2

Unicode與您的任何語言無關。爲了將英文轉換成中文,你需要一本龐大的字典,對這兩種語言的結構進行十年的研究,然後你就可以開始了。在運行時翻譯不完整的句子是無稽之談。語言翻譯不會那樣工作。

相關問題