Flutter 如何在Flatter中将键盘上的拉丁字母转换为Thana Unicode?
我正在用我的母语flatter构建一个应用程序,但是,我的语言(在马尔代夫使用的Dhivehi)在flatter本地化包中不受支持 我曾尝试使用本地化包将其添加为一种新语言,但未能成功Flutter 如何在Flatter中将键盘上的拉丁字母转换为Thana Unicode?,flutter,Flutter,我正在用我的母语flatter构建一个应用程序,但是,我的语言(在马尔代夫使用的Dhivehi)在flatter本地化包中不受支持 我曾尝试使用本地化包将其添加为一种新语言,但未能成功 在我的应用程序中有一个文本字段,用户必须在其中键入Dhivehi字母(Thaana),以便在应用程序中搜索内容。如何在颤振应用程序中将键盘上的拉丁字母转换为?您可以将拉丁字母转换为字母,也可以创建自己的自定义键盘 将拉丁语转换为Thaana 您可以使用TextField的onChanged参数获取当前输入,然后使
在我的应用程序中有一个文本字段,用户必须在其中键入Dhivehi字母(Thaana),以便在应用程序中搜索内容。如何在颤振应用程序中将键盘上的拉丁字母转换为?您可以将拉丁字母转换为字母,也可以创建自己的自定义键盘 将拉丁语转换为Thaana 您可以使用
TextField
的onChanged
参数获取当前输入,然后使用带有Map
或switch
语句的循环将拉丁文本转换为Thaana
这是一个粗略的例子:
String\u拉丁语tothaana(String拉丁语文本){
final thaana=StringBuffer();
for(拉丁语文本中的var codeUnit.codeUnits){
final latinChar=String.fromCharCode(codeUnit);
如果(拉丁字符=='a'){
塔阿纳。写(‘އަ’');
}else if(拉丁字符=='b'){
Thana.写('1924;');
}
}
返回thaana.toString();
}
使用一个长的if-else链肯定不是最好的方法,但它显示了一种开始的方法。尽管这种特殊的方法不能很好地处理双字母组合
另一种方法可能是执行搜索和替换:
String\u拉丁语tothaana(String拉丁语文本){
拉丁文
.replaceAll('aa'、'އާ')
.replaceAll('a'、'އަ'')
.replaceAll('b'、'ބ');
}
只要你先换双打再换单打就行了
自定义键盘
或者,您可以创建一个应用程序内键盘,其中包含所需的字符和布局。您可以查看蒙古语键盘作为参考
如果您只想在
TextField
有焦点时显示键盘,您可以监听焦点的变化。请参阅。谢谢,您能告诉我更多关于将拉丁语转换为Thaana的信息吗?我已经尝试实现了一个自定义键盘,问题是现在它总是显示在屏幕上,只有在单击TextField时,我如何才能调用键盘?