2017-03-17 58 views
3

我有两个JSON文件(两个命名的国家):一个在raw文件夹内的英语,和一个在raw-fr文件夹内的法国。但无论我在设备上选择何种语言,应用程序始终会将文件加载到raw之下。我加载JSON文件,如下所示:Android的本地化的JSON文件

InputStream inputStream = context.getResources().openRawResource(R.raw.countries); 

的文件夹结构是:

  • 资源
    • 绘制
    • 布局
    • 值 - fr
    • ...
    • 原料-FR

难道我做错了什么?有没有更好的方法来实现这一目标?

+0

@JaydeepPatel:他已经翻译被放在'原始fr'文件夹中的文件中的文本自己在法国。 – Yashasvi

+0

是的,'raw'下的文件是英文的,'raw-fr'下的文件是法文的。该应用程序总是加载一个英文的。 –

+0

只是为了确认,你能在这里发表您的目录结构 – Yashasvi

回答

0

我的猜测是,你没有选择正确的语言。如果它找不到与所选语言相对应的资源目录,则仅选择默认语言。 如果缺省值不存在,则应用程序崩溃(如here所述)。

尝试删除values文件夹,然后看看会发生什么。

OR

尝试重命名valuesvalues-en以便它仅用于英语。

P.S.我刚刚尝试了valuesvalues-fr。当我在我的设备上选择法语时,它会从values-fr中挑选字符串。

+0

我认为我选择正确的语言,因为它也加载正确的'价值观fr'文件。它只是不会加载'raw-fr'上的JSON文件... –

+0

哦,好吧,我会用'raw-fr'来检查并找回给你 – Yashasvi