Flutter 多国语言支持,参考 Flutter 2.8.1/Android Studio Bumblebee 2021.1.1多国语支持配置和使用
本地化/国际化应用程序名称 Android
系统与开发环境 macOS Big Sur 11.6.3/Android Studio Bumblebee 2021.1.1
Android下本地化应用程序名比较简单,只需要修改 AndroidManifest.xml 里的 application 标签下的 android:label 即可,如下图:
操作步骤
新建 strings.xml 文件
在多语言下创建对应的 strings.xml 文件,比如简体中文的,内容如下:
1 2 3 |
<resources> <string name="app_name">中文名字</string> </resources> |
详细操作,如下图:
最后修改 AndroidManifest.xml 里的 application 标签下的 android:label 为 @string/app_name 即可,如下图:
本地化/国际化应用程序名称 IOS/macOS
系统与开发环境 macOS Big Sur 11.6.3/Xcode Version 13.2.1 (13C100)
操作步骤:
(1)多语言 Localizations 中新增简体中文;
(2)点击“New” -> “File”然后在弹出窗口左侧选择 IOS 的 Resource 项,在右侧就可以看到“String File”的图标。创建这个文件,命名为“InfoPlist”(一定是这个文件名) 就生成一个 InfoPlist.strings 文件;
(3)选中 InfoPlist.strings 点击右侧的 Localize... ,选中右侧的 English ,Chinese Simplified。然后在 InfoPlist.strings 左边会多出一个三角形,点击展开后可以看到 InfoPlist.strings(English) 和 InfoPlist.strings(Chinese,Simplified) 两个版本的文件;
(4)在 InfoPlist.strings(English) 文件中加入:
1 |
CFBundleDisplayName = "EnglishName"; |
其中“EnglishName”为英文应用程序名称,同理在InfoPlist.strings(Chinese,Simplified)文件中加入:
1 |
CFBundleDisplayName = "中文名字"; |
其中“中文名字”为中文名称,注意:CFBundleDisplayName 加不加双引号都行。
详细的操作如下图:
在IOS目录下打开项目文件:
增加多语言支持:
增加简体中文支持:
点击“New” -> “File”然后在弹出窗口左侧选择 IOS 的 Resource 项,在右侧就可以看到“String File”的图标。创建这个文件,命名为“InfoPlist”(一定是这个文件名) 就生成一个 InfoPlist.strings 文件
选中 InfoPlist.strings 点击右侧的 Localize... 选中右侧的 English ,Chinese Simplified。然后在 InfoPlist.strings 左边会多出一个三角形,点击展开后可以看到 InfoPlist.strings(English) 和 InfoPlist.strings(Chinese,Simplified) 两个版本的文件;
本地化/国际化应用程序名称 Web
Web页面的国际化比较简单,因为Web页面本身没有应用程序名的概念,只存在页面的Title的概念,因此,我们只需要根据当前浏览器语言,动态修改页面的Title属性即可实现国际化,参考 Flutter 2.8.1/Android Studio Bumblebee 2021.1.1多国语支持配置和使用。
只是上述的过程会在刚刚加载的时候,显示出没有国际化的页面Title。这个暂时没有找到有效解决方法。
- 查看 Flutter web 应用的示例,可以试试看 Flutter Gallery。
- 要查看代码实例,请查看 Web 平台示例代码。
- Flutter Gallery