【问题标题】:Android localized JSON filesAndroid 本地化 JSON 文件
【发布时间】:2017-03-17 12:58:46
【问题描述】:

我有两个 JSON 文件(都命名为国家/地区):一个在 raw 文件夹中为英文,另一个在 raw-fr 文件夹中为法文。但无论我在设备上选择哪种语言,应用程序始终会加载raw 下的文件。我正在按如下方式加载 JSON 文件:

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

文件夹结构为:

  • 资源
    • 可绘制
    • 布局
    • 价值观
    • 值-fr
    • ...
    • 原始
    • 原汁原味

我做错了吗?有没有更好的方法来实现这一点?

【问题讨论】:

  • @JaydeepPatel:他已经在raw-fr文件夹中的文件中自己翻译了法文文本。
  • 是的,raw下的文件是英文的,raw-fr下的文件是法文的。该应用程序始终加载英文版本。
  • 只是为了确认,你可以在这里发布你的目录结构
  • 似乎它正在为您选择默认值。您能否将您的 raw 文件夹重命名为 raw-en 并检查发生了什么?
  • @Yashasvi:用文件夹结构更新了问题。我已经把raw文件夹改成了raw-en,它仍然一直使用英文文件。

标签: android json localization


【解决方案1】:

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

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

尝试将values 重命名为values-en,使其仅用于英语。

附:我刚刚尝试使用valuesvalues-fr。当我在设备上选择法语时,它会从values-fr 中提取字符串。

【讨论】:

  • 我认为我选择了正确的语言,因为它还加载了正确的 values-fr 文件。它只是不会在raw-fr 上加载 JSON 文件…
  • 哦,好的,我会检查 `raw-fr' 并回复你
猜你喜欢
  • 2014-04-09
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
相关资源
最近更新 更多