文章目录
- 前言
- 一、Flutter Intl是什么?
- 二、使用步骤(vscode 为例子)
* - 1.安装
- 2.输入命令:
- 3.pubspec.yaml 里面做一些配置
– - 4.在代码里面使用
- 5.其他使用
- 6.新增其他的语言支持,在这边新建一个arb的文件
- 7.如何使用
– - 总结
; 前言
当软件有国际化的需求的时候,你可以就需要多种语言的支持了。如果你使用的ide 支持该插件的话,vscode I,ntelliJ /,Android Studio.,那么你可以使用里面的快速国际化的插件Flutter Intl来快速完成这项工作
一、Flutter Intl是什么?
快速构建国际化功能的插件,如果不使用也可以构建国际化的
二、使用步骤(vscode 为例子)
1.安装
; 2.输入命令:
ctrl+shift+p
Flutter Intl: Initialize
执行之后会自动产生一个文件和文件夹:
lib/l10n/intl_en.arb.
3.pubspec.yaml 里面做一些配置
dependencies:
flutter:
sdk: flutter
flutter_localizations: # 添加这个
sdk: flutter # 添加这个
flutter_intl: # 添加这个
enabled: true # 添加这个
如果你的设备是ios的话,还需要在xcode 里面设置info.plist 添加支持的语言类型:
可以在命令输入ios/Runner/Info.plist 会自动打开xcode的页面,比如下面的添加就是支持英语和德语
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>de_DE</string>
...
</array>
4.在代码里面使用
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'generated/l10n.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
title: 'Flutter Demo',
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
5.其他使用
Intl.getCurrentLocale()
6.新增其他的语言支持,在这边新建一个arb的文件
7.如何使用
英文对应的其他的语言,比如下图:
; 1.简单使用
直接使用,这样就会在该页面上面显示,里面的内容,前提是你手机设备当前语言是你设置语言里面支持的,手机设备切换下中英文,页面显示的就会不一样
S.of(context).myName,
2.如果你的内容是不确定,动态的,你可以使用如下:
arb 文件加入 {} 可以传入参数
{
"myName": "马大帅",
"myFullName": "马大帅 {work} {age}"
}
children: <Widget>[
Text(
' ${S.of(context).myName}',
),
Text(
' ${S.of(context).myFullName('sb 工作', 50)}',
),
],
3.可以选项的内容和复数
复数:
"getMessageTips": "{howMany, plural, zero{你选择的零} two{你选择的二} other{你选择了{howMany}其他}}",
Text(S.of(context).getMessageTips(2)),
可以选项的内容:相当于是一个字典,传入key ,然后传入value 就可以完成
"select": "{select,select, option1{{lastName}, select} option2{{lastName}, select} other{{lastName}, default select}}",
Text(S.of(context).select("option2", "USA"));
Text(S.of(context).select("other", "china"));
总结
欢迎关注,留言,咨询,交流!
Original: https://blog.csdn.net/weixin_43444734/article/details/127816708
Author: DO?OK:NOT
Title: 【Flutter】vscode快速估计插件 Flutter Intl
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/654292/
转载文章受原作者版权保护。转载请注明原作者出处!