2014-02-25 46 views
3

只是爲了好奇,我有一個問題!SQlite基於語言的表選擇

我的應用程序已準備得差不多。我已經實現了雙語(英語/泰米爾語)當用戶選擇設置THR首選語言,然後整個應用程序被轉換成語言(我使用的自定義區域設置)。一切正常。

我的問題是,我們可以做同樣的SQLite數據庫?它根據表 「country-en」或「country-ta」的語言環境自動獲取數據?有什麼辦法嗎?我聽說thr是一種方法SQLiteOpenHelper.onConfigure(setLocale());在sqlitedatabase中設置語言環境。我想知道它是如何工作的!

+0

當然,是的,**你也可以**。如果您想要使用兩個不同的表格,當您執行查詢時只需附加「en」或「ta」(「SELECT FROM Country_」+ yourLocale +「...」)。或者你可以使用**一個單獨的表**,並且使用整數字段「Language」,並且你傳遞一個int(0 =英文,1 =泰米爾 - 僅用於字母順序,這更易於提醒)...(「.. 。WHERE ... AND Language = 0「)。 –

+1

非常感謝!它真的幫了我:-) btw ..張貼它作爲一個答案,以便我可以放棄大拇指fr yu :-) –

+0

完成。謝謝 –

回答

3

當然,是的,你可以。

當您進行查詢時,只需追加「en」或「ta」即可。
類似於「SELECT FROM Country_」+ yourLocale +「...」 - 如果您想使用兩個不同的表格。

或者你可以使用一個單獨的表的整型字段的「語言」和你傳遞一個int(0 =英文,1 =泰米爾 - 只爲字母順序,哪一個更容易提醒)...

像」:在哪裏和語言= 0"

4

你在上面描述的方法是不相關的語言本地化的客戶端。它與數據庫上的語言環境選項有關(例如,如何處理帶有重音字符的字符串比較)。

無論如何,如果你認爲它...什麼本地化數據庫是什麼意思?您可以本地化結構或數據。對結構進行本地化(表名...)並不會產生敏感,因爲用戶不知道它。本地化數據也沒有意義,因爲這意味着如果用戶更改語言設置,下次他使用您的應用時,他將看不到他的數據!

如果DB只包含靜態數據,你需要爲不同的語言提供了不同的數據庫,你可以使用本地化查找數據庫文件名。

+0

謝謝Merlevede解釋:-) –