# 17.8:多语言支持

ArkUI开发框架对 APP 实现多语言的支持比较友好,笔者也在第二章 第 6 节 介绍国际化的时候讲过多语言的做法,本节就实现《极简计算器》项目多语言的功能。

# 17.8.1:创建多语言资源

resources 目录下创建 zh / element 文件夹目录后,添加 string.json 文件,部分多语言添加如下所示:

{
  "string": [
    {
      "name": "calculator",
      "value": "极简计算器"
    },
    {
      "name": "save",
      "value": "存档"
    },
    {
      "name": "clear",
      "value": "清空"
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

base 目录下的 string.json 文件中添加对应的英文如下:

{
  "string": [
    {
      "name": "calculator",
      "value": "Calculator"
    },
    {
      "name": "save",
      "value": "Save"
    },
    {
      "name": "clear",
      "value": "Clear"
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 17.8.2:使用多语言资源

对于资源的访问,笔者在第二章 第 3 节 介绍过资源的访问方式,这里就直接使用,部分代码如下所示:

Text($r("app.string.save")) // 支持多语言
  .height("100%")
  .layoutWeight(1)
  .fontSize(24)
  .fontColor(Color.Black)
  .textAlign(TextAlign.Center)
  .backgroundColor("#aabbcc")
  .onClick(() => {
    this.saveController.open();
  })
Text($r("app.string.clear")) // 支持多语言
  .height("100%")
  .layoutWeight(1)
  .fontSize(24)
  .fontColor(Color.White)
  .textAlign(TextAlign.Center)
  .backgroundColor($r("app.color.main_theme"))
  .onClick(() => {
    this.expressions.splice(0, this.expressions.length);
    this.expression = "0";
  })

TitleBar({titleBarAttribute: {
  // ...
  title: $r("app.string.calculator"), // 支持多语言
  // ...
}})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(adsbygoogle = window.adsbygoogle || []).push({});
请作者喝杯咖啡

津公网安备 12011402001367号

津ICP备2020008934号-2