2012-10-02 84 views
0

我不確定這是否是一個愚蠢的問題,但我有一個應用程序,我需要提供給其他語言。我已閱讀了很多關於此的內容,但我對如何解決這個問題感到困惑。我是否真的需要將整個應用翻譯成任何我想要的語言或系統會這樣做的語言?我閱讀了關於使用本地化(Android docs)和許多論壇帖子的Android文檔。我已閱讀有關更改應用程序中的配置,但即使更改設備上的區域設置也不起作用。任何人都可以請爲我指出正確的方向嗎?我希望用戶能夠更改應用程序本身的語言,因爲它可能會在具有不同偏好的人之間傳遞。提前致謝!在應用程序中的多語言支持

+0

我猜你有翻譯在W或者你可以使用一些語言翻譯器(我不知道該怎麼做),例如facebook上的翻譯器(由Bing翻譯)。 –

+0

您閱讀的文檔中哪一部分不明白? strings.xml很容易實現。 – Simon

+0

據我所知,本地化功能只是讓你自己完成翻譯後在不同語言之間進行切換。因此,例如,如果設備本地化爲英語並且「Le App Ze Awesome」,則可以創建名爲「title」的字符串資源,而不是將「My Awesome App」硬編碼爲應用程序的標題C'est Moi「,如果是法語的話。但操作系統不會爲你翻譯任何文本,所以我當然希望你用法語寫作比我更好。 – Andy

回答

3

基本上你需要把你想轉換成文件

res/values/strings.xml 

默認的連接區域,然後例如串通過Resources.getString(R.string.theId)或在其他xml文件中通過@string/theId, 參考代碼中的這樣的條目,其中theId代表例如條目的ID。在

<string name="theId">Username</string> 

在xml文件中。

現在你創造更多的

res/values-<lc>/strings.xml 

文件,其中代表各2個字母的地區代碼翻譯它。

+0

感謝您的回覆。我有默認的strings.xml文件。我希望翻譯整個應用程序,而不是某些字符串。所以,主要問題是我必須執行所有翻譯(或使用程序)並將它們放入每種語言的res/values- /strings.xml文件中,否則操作系統會執行翻譯嗎? – codeMagic

+0

你必須做翻譯。如果操作系統可以做到這一點,它不需要res/values- /strings/xml :) – Simon

+0

@Simon我明白這個邏輯,但我知道這些文件是需要的,以防萬一你有一個資源除了文本以外,還可以改變尺寸或其他屬性。我只是想,也許這是可能的,值得探索與所有具有多語言功能的應用程序。猜猜我錯了,但感謝回覆 – codeMagic

0

要添加對更多語言環境的支持,請在res /中創建其他目錄。每個目錄的名稱應該遵循以下格式:

-b + [+]例如,values-b + es /包含語言代碼爲es的語言環境的字符串資源。類似地,mipmap-b + es + ES /包含具有es語言代碼和ES國家代碼的語言環境的圖標。 Android在運行時根據設備的區域設置加載適當的資源。

例如,以下是不同語言的一些不同的資源文件:英文字符串(默認語言環境),/values/strings.xml:

<resources> 
    <string name="hello">Hello</string> 
</resources> 

法國字符串(FR區域),/值-FR /strings.xml:

<resources> 
    <string name="hello">Bonjour</string> 
</resources> 

使用的資源在你的應用程序:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" />