2015-07-20 57 views
1

我有一個Localizable.strings(基地)文件用,例如,下面的字符串:如何處理部分翻譯的Localizable.strings文件

「程序hello_world」= 「Hello World」 的;
「hello_world2」=「Hello World」;

它被翻譯成多種語言。所以,我也有以下幾點:

  • Localizable.strings(中國(簡體))
  • Localizable.strings(俄羅斯)

現在的問題隨着項目的增長,我們增加了越來越多的新字符串。但我們不希望等到翻譯人員在我們發佈應用程序之前完全翻譯所有字符串。因此,我們最終爲這個Localizable.strings(中國(簡體))其中hello_world2丟失:

「程序hello_world」= 「你好世界」;

默認情況下,未翻譯的字符串將在應用程序中顯示爲鍵「hello_world2」。 問題:有沒有辦法說,如果關鍵詞「hello_world2」的翻譯不存在,請使用基本翻譯呢?


附加信息:

我知道,故事板文件,如果是部分翻譯,那麼它將只使用基本翻譯沒有翻譯的字符串。但是,其他一般.strings文件不會發生相同(很好)的行爲。真的想找一個優雅的方式來解決這個問題。

+0

爲什麼不用英文文本填寫中文.strings文件中缺失的文本鍵呢?不需要額外的代碼。 – BdR

+0

@BdR,感謝您的建議!是的,這是一個選項。但是我們有很多字符串並且支持很多語言(目前的5種,但在將來肯定會更多)。所以我希望除了要求開發人員在添加(或修改)新字符串時爲所有語言填充字符串之外,還有一種更自動的方式來處理此問題。 –

+0

那麼您如何管理您的翻譯,只需編輯.strings文件?如果是這樣,那麼也許在這裏看看這個問題http://stackoverflow.com/questions/20324967/localize-multi-plattform-projects-consolidate-string-files/20330497#20330497 – BdR

回答

1

我發現最簡單的方法來處理這個是使用默認字符串作爲關鍵。所以,你可能有:

基地:

"Hello World" = "Hello World"; 
"Hello World 2" = "Hello World 2"; 

中國:

"Hello World" = "Hello World in Chinese"; 

如果你還沒有,你只需要在文件中都有至少一個佔位符字符串,以避免任何翻譯編譯錯誤,例如對於雙空間:

俄羅斯:

/* Placeholder */ 
" " = " "; 

這也使得翻譯人員的工作變得更容易!

+0

我認爲這是正確的做法。對於「...你只需要在文件中至少有一個佔位符字符串,以避免編譯錯誤」,在這種情況下,我只是完全刪除該語言的應用程序。 –