【问题标题】:Android APP multilanguage SQLite安卓APP多语言SQLite
【发布时间】:2015-04-13 11:12:30
【问题描述】:

我会完全翻译我的 Android 应用程序。 (这包括SQLite在手机上显示的语言)

这就像现在连接;

private static final int DATABASE_VERSION = 5;
    private static final String DATABASE_NAME = "quotes.db";
    private static final String DB_PATH_SUFFIX = "/databases/";
    private static final String TABLE_QUOTES = "quote";
    private static final String KEY_ID = "_id";
    static Context myContext;

    public DataBaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        myContext = context;
    }

我曾想过删除名称字符串数据库并使用 strings.xml 文件将名称数据库传递给它。

super(context, context.getResources ().getString (R.string.DATABASE_NAME), null, DATABASE_VERSION);

同样通过strings.xml寻找查询传递,但是找不到明确的文档。

如果我不指导一点,我将不胜感激。非常感谢。

查询示例:

// Select All Query
        String selectQuery = "SELECT name, COUNT(author_name ) AS count FROM author LEFT JOIN quote ON name = author_name WHERE name LIKE '%"
                + value + "%'  GROUP BY name ORDER BY  name ASC";

【问题讨论】:

  • 如果您根据语言切换使用哪个数据库,那么您也不需要查询来使用strings.xml,结果已经从翻译的数据库中提取,对吗?您是否对粗体行有问题: super(context, context.getResources ().getString (R.string.DATABASE_NAME), null, DATABASE_VERSION);
  • 嗨,是的,这些天我试图通过将数据库名称放在 strings.xml 中来完成,因为我的想法是添加更多语言。 public void openDataBase() throws SQLException { File dbFile = myContext.getDatabasePath(context.getResources (). getString (R.string.DATABASE_NAME)); if (!dbFile.exists()) { try { CopyDataBaseFromAsset(); System.out.println("Copying sucess from Assets folder"); } catch (IOException e) { throw new RuntimeException("Error creating source database", e); } } }
  • 也可以试试:Cursor cursor = db .rawQuery("SELECT quote._id, quote.author_name," + Resources.getSystem().getString(R.string.quer1) + "quote.qte, quote.category_name,fav FROM quote,author WHERE author.name = quote.author_name AND " + KEY_ID + "= " + id, null);试试 {

标签: android sqlite locale multilingual


【解决方案1】:

我修改了表sqlite和代码添加“+Locale.getDefault().getLanguage()+”:

String selectQuery = "SELECT quote._id, quote.author_name_"+ Locale.getDefault().getLanguage()  +", quote.qte_"+ Locale.getDefault().getLanguage()  +
            ", quote.category_name_"+ Locale.getDefault().getLanguage()  +",fav  FROM quote,author where author.name_"+ Locale.getDefault().getLanguage()+
            " = quote.author_name_"+ Locale.getDefault().getLanguage()  +" and quote.category_name_"+ Locale.getDefault().getLanguage()  +
            "!='Tips Romanticos' ORDER BY quote.author_name_"+ Locale.getDefault().getLanguage() +" "+limit;

查询结果为:

选择quote._id,quote.author_name_es,quote.qte_es, quote.category_name_es,fav FROM quote,author where author.name_es = quote.author_name_es 和 quote.category_name_es!='Tips Romanticos' ORDER BY quote.author_name_es 限制 50

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多