国际化是指设计软件时使用特定语言和区域分解软件的过程。当将软件移植到不同的语言领域时,软件本身无需在内部工程中进行更改或更正。
本地化是指移植软件时与特定领域相关的信息和翻译文件的过程。尽管国际化和本地化之间的差异很微妙,但这很重要。国际化意味着产品具有任何地方的潜力。本地化将更适合使用特定位置,并添加其他特征。根据产品的术语,国际化仅需要一次,但是必须在不同领域进行一次本地化。两者是互补的,并且两者的组合可以使系统适用于各个地方。
在开发软件时,国际化和本地化对于开发人员来说是一项具有挑战性的任务,尤其是当软件在设计软件时不考虑此问题时。通常的方法是将文本的资源与其他环境的资源与程序代码分开。方式,只要修改资源,就无需修改代码,这大大简化了工作。
扑动的国际化包括扑动成分的国际化和其他文本的国际化;
Flutter向我们提供的小部件是默认情况下支持国际化,但是在特殊设置之前,无论哪种环境,它们都会以英语显示。
如果要添加其他语言,则您的应用程序必须指定其他材料应用属性并添加一个单独的软件包,称为它。
截至2020年11月,该软件包支持了78种语言。
如果要使用Flutter_localizations,我们需要将其添加到文件中:
注意:如果要指定语言代码,文本代码和国家代码,则可以执行以下指定方法:
该类用于定义我们需要本地化字符串和其他信息的字符串:
上面的类定义在哪里,我们在哪里初始化?我们可以像Flutter小部件中的国际化方法一样初始化它们;也就是说,我们还定义了对象的代表类,并将其传递到interizationsdelegates中;
Hylocalizationsdelegate需要从ertinizationsdelegate继承,并且有三种方法可以重写:
如果我们的数据不是异步的,例如从JSON文件或服务器中,我该怎么办?
如果代码在类中:以下代码:
在qwlocalizationsdelegate中使用异步来加载异步:
然后,我们可以在代码中使用HyLepalization类。
目前,我们可以通过加载相应的JSON文件来本地化。
但是还有另一个问题。在国际化过程中,以下代码仍然需要基于JSON文件:
有更好的方法,让我们快速更改本地化的文件点代码文件吗?答案是ARB文件
使用IDE插件转换ARB和DART文件之间的转换
选择工具-Flutter intl -Initializize项目
完成上述操作后,将自动生成以下文件目录:
配置由在interizationsdelegates中配置的生成,名称为s
因为我们没有相应的本地化字符串,所以我们需要在intl_en.arb文件中写入:
只需在代码中使用
如果要添加中文支持:添加本地
我们会发现相应的intl_zh.arb和messages_zh.dart文件
如果我们想在使用本地化的过程中传递一些参数:
修改相应的ARB文件:
使用时,传递相应的参数:
文本的本质是根据系统提供的本地信息获得相应的文本和UI的相应操作(指从左到右或从右或向左向左或从左右左右)。语言信息信息指的是在本地需要完成的工作是根据{国家代码:{常规文本:本地化文案写作}}格式组织文案写作。通常是英语。最后一个过程是基于本地信息和通用文本获得本地化文本值的过程。
参考:扑打国际化