根据iOS中的区域设置使用不同的数据库

时间:2013-05-27 13:38:39

标签: ios objective-c sql database localization

在我当前的项目中,iOS应用程序将根据位置使用不同的数据库。数据库采用原始SQL,因此每个数据库都表示为数据库文件,并通过创建与数据库的连接来查询。

我知道这可以使用* .lproj文件夹来实现,如果是这样,我对最常用的加载和使用相应数据库的方式感兴趣。

在网上搜索时,我考虑过使用DatabaseHelper类来管理数据库并包含一个NSLocale实例,该实例使用

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

这可以用来确定要加载哪个数据库,还是有更好的方法来执行此操作?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果您正在使用本地化,我认为这很简单。

在您的本地化.strings文件上。为每个数据库文件名添加密钥和值。

例如:英语

"my db" = "englishdb.sqlite";

西班牙文

"my db" = "spanishdb.sqlite";

无论您在何处访问数据库名称,都使用:

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

如果您使用[NSLocale currentLocale];,最好的方法是添加database names as value的{​​{1}}和locale names as key,并根据区域设置从该plist中获取数据库名称