十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
文字默认是英文,需要设置 Flutter 国际化来处理
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、网站空间、营销软件、网站建设、天水网站维护、网站推广。
在 pubspec.yaml 中集成 flutter_localizations
然后在 main.dart --- MaterialApp 中设置本地化代理和支持的语言类型
我最开始的时候没加,在iOS上长按会报错,需要加上这一行
如果 pubspec.yaml 集成插件因为版本问题报错,自己又不知道使用哪个版本,可以使用any集成,它会自己寻找合适的版本
项目中存在一个输入框,只能提交中文字符串,于是使用了如下的方法实现
但是上线运行之后,发现在iOS原生拼音输入法中,只能一个字一个字输入,每次输入超过一个字就会直接变成拼音字母,并且长度限制在遇到中文拼音输入法后也会失效
于是通过自定义过滤器的方法,解决了这个问题
关键方法在于判断当前输入框是否存在未完成的字符串,如果存在,则不做限制,否则根据参数进行限制
但是属性 composing 听说还存在bug,使用的时候要注意,很有可能还有坑等着????
参考:
解决方案:
顿悟:
感谢???? Alex 大神!!!
上一篇讲到如果解决ios长按输入框报错的问题,但是最终没有达到我们的要求,因为我们想实现中文的提示,那么本篇文章讲讲如何来实现多语言配置;
1.首先在pubspec.yaml的dependencies下加入这个
flutter_localizations:
sdk: flutter
如图:
2.然后在MaterialApp设置一下localizationsDelegates如图:
3.写一个类继承一下CupertinoLocalizations,在项目中 我这个类名叫ChineseCupertinoLocalizations(没错,就是localizationsDelegates中的第三个),如图:
上次提到报错的原因就是因为cutButtonLabel,copyButtonLabel,pasteButtonLabel,selectAllButtonLabel 这几个按钮没有实现,所以继承CupertinoLocalizations一定要为这几个按钮赋值,这里是那种语言,那么,赋值就对应那种语言,同时要注意locale.languageCode也要填写,如果你是中文,那么locale.languageCode =='zh';
4.在ios工程中,在项目的info设置语言环境
添加 Localization native development region---china
添加一个Localizations 为array类型的,并且设置值为 Chinese (simplified)
效果图:( 注意:请把手机环境调试成中文的语言环境 )
Android
ios 效果图
我公司用flutter做了一个《柚品生活》的app,感兴趣的朋友可以去看看,Android和ios都已经上架了
最后附上GitHub项目地址 GitHub - hxxsocket/flutter_lg_demo: flutter多语言配置之中文
想要在WPS表格中把汉字转换成拼音或小写字母,只需要运用模块代码编辑功能就能轻松解决,具体操作方法如下:
步骤1、打开要转换成拼音的excel表格,按“Alt+F11”组合键,进入Visual Basic编辑状态。也就是看到的这个灰色的编辑界面。
步骤2、执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态。
步骤3、看到如下界面。
步骤4、把下面的所有内容复制,粘贴到步骤4中的空白处。
Function pinyin(p As String) As String
i = Asc(p)
Select Case i
Case -20319 To -20318: pinyin = "a "
Case -20317 To -20305: pinyin = "ai "
Case -20304 To -20296: pinyin = "an "
Case -20295 To -20293: pinyin = "ang "
Case -20292 To -20284: pinyin = "ao "
Case -20283 To -20266: pinyin = "ba "
Case -20265 To -20258: pinyin = "bai "
Case -20257 To -20243: pinyin = "ban "
Case -20242 To -20231: pinyin = "bang "
Case -20230 To -20052: pinyin = "bao "
Case -20051 To -20037: pinyin = "bei "
Case -20036 To -20033: pinyin = "ben "
Case -20032 To -20027: pinyin = "beng "
Case -20026 To -20003: pinyin = "bi "
Case -20002 To -19991: pinyin = "bian "
Case -19990 To -19987: pinyin = "biao "
Case -19986 To -19983: pinyin = "bie "
Case -19982 To -19977: pinyin = "bin "
Case -19976 To -19806: pinyin = "bing "
Case -19805 To -19785: pinyin = "bo "
Case -19784 To -19776: pinyin = "bu "
Case -19775 To -19775: pinyin = "ca "
Case -17721 To -17704: pinyin = "he "
Case -17703 To -17702: pinyin = "hei "
Case -17701 To -17698: pinyin = "hen "
Case -17697 To -17693: pinyin = "heng "
Case -17692 To -17684: pinyin = "hong "
Case -17683 To -17677: pinyin = "hou "
Case -17676 To -17497: pinyin = "hu "
步骤5、按下ALT+Q关闭Visual Basic编辑窗口,返回Excel编辑状态。
步骤6、选中转换后的拼音需要放在哪个列,例如要把B列的第2行的内容转换成拼音,放在D列的第2个单元格,输入公式:=getpy(B2),这里的B2,是指源头单元格的坐标。
步骤7、如果要去除拼音之间的空格。去掉空格的拼音放在E列,如果这个未去掉空格的数据原来在D2单元格,去掉空格之后的拼音放在E2单元格,则在E2单元格输: =SUBSTITUTE(D2," ","")。
flutter web有三种渲染模式,auto 、html 和 canvaskit。
flutter build web命令默认的渲染模式为auto,这种模式在移动端使用html渲染,在pc端使用canvaskit渲染。
目前我的flutter版本是2.5.2,pc端浏览器使用canvaskit渲染时中文会出现短暂的乱码(方块叉号),像这样:
我们可以指定渲染模式为html,就不会有这个问题了,命令如下:
指定渲染模式为canvaskit的命令为:
2021.10.21:flutter web对中文的支持貌似不太好,在手机浏览器调试web项目时,textfield hinttext有中文输入会有卡顿bug