2013-05-27 45 views
1

在我當前的項目中,iOS應用程序將根據位置使用不同的數據庫。數據庫處於原始SQL中,因此每個數據庫都表示爲數據庫文件,並通過創建到數據庫的連接來查詢。根據iOS中的語言環境使用其他數據庫

我知道這可以使用* .lproj文件夾來實現,如果是這樣的話,我對加載和使用相應的數據庫的建議方式感興趣。

當搜索網頁,我曾經考慮使用DatabaseHelper類,它管理的數據庫,並且包括NSLocale的一個實例,其使用設定

- (void) initWithLocale { 
    [super init]; 
    locale = [NSLocale currentLocale]; 
} 

可這被用來確定要裝入的數據庫,還是有更好的方法來做到這一點?

在此先感謝。

+0

[This answer](http://stackoverflow.com/a/12919534/1187415)解釋了本地化「index.html」文件的過程,應該很容易修改本地化的「db.sqlite」文件。 –

回答

2

如果您使用本地化,我認爲這很簡單。

在您的本地化.strings文件。爲每個數據庫文件名添加一個鍵和值。

如:爲英語

"my db" = "englishdb.sqlite"; 

西班牙

"my db" = "spanishdb.sqlite"; 

無論您正在訪問的數據庫名稱使用:

NSString *dbName = NSLocalizedString(@"my db", @""); 

如果您使用的是[NSLocale currentLocale];,最好的方法是添加一個plistdatabase names as valuelocale names as key,並根據語言環境從該plist獲取數據庫名稱。

+1

更好的是去本地化字符串cuz有基地本地化你可以指定默認文件名。如果你去的地區,那麼你必須確保你有每個地區的數據庫文件;-) – Oleg

+0

@ Oleg:是的,你是正確的。如果語言環境不是plist,它會對你的邏輯造成巨大的損害。所以最好去本地化 –

相關問題