001 国际化定义
涉及语言及地区差异的适配改造过程。除了翻译文案之外,还需要将货币单位和背景
图等资源也设计成可根据不同地区自适应的变量。即语言差异配置抽取和国际化代码生成。
002 如何实现
国际化插件flutter_localizations,其内部提供了不同语言地区的配置封装,能够帮助我们
自动地从翻译稿生成Dart代码。
使用多个arb文件存储文案在不同语言地区的映射关系,并使用Flutter i18n插件来实现代码自动转换。
关键点:在程序入口为其设置了支持国际化两个重要参数即 localizationsDelegates 与 supportedLocales。前者为应用的翻译回调,而后者则为应用所支持的语言地区属性。
程序中通过 S.of(context),直接获取 arb 文件中翻译的文案。
003 代码
flutter_localizations:
sdk: flutter
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: camel_case_types
// ignore_for_file: prefer_single_quotes
// This file is automatically generated. DO NOT EDIT, all your changes would be lost.
class S implements WidgetsLocalizations {
const S();
static S current;
static const GeneratedLocalizationsDelegate delegate =
GeneratedLocalizationsDelegate();
static S of(BuildContext context) => Localizations.of<S>(context, S);
@override
TextDirection get textDirection => TextDirection.ltr;
String get app_title => "app_title";
String get main_title => "My Main Title";
String message_tip(String count) => "You have pushed the button many times: $count";
}
class $en extends S {
const $en();
}
cla
Flutter应用的国际化实现与最佳实践

本文详细介绍了Flutter应用程序的国际化实现过程,包括使用flutter_localizations插件和arb文件进行多语言支持,以及如何在程序入口设置本地化参数。通过示例代码展示了如何自动从翻译稿生成Dart代码,并在程序中获取翻译文案。此外,还提供了英文和中文的 arb 文件示例,以展示如何定义和使用多语言资源。
最低0.47元/天 解锁文章
1192

被折叠的 条评论
为什么被折叠?



