groovy 将任何语言音译为拉丁语

瓦西尔·科伊切夫

我想将文本字符串 UTF 的 groovy 音译为拉丁字符(用于 URL 目的)。我检查了几个库,有些正在工作,有些则没有。

目前我正在使用此代码:

@Grab(group='com.ibm.icu', module='icu4j', version='58.2')
import com.ibm.icu.text.Transliterator;

String cyrilic      = "ш щ ч ц х ф г я ";
String id = "Bulgarian-Latin/BGN";
String id1 = "Latin";

String latin = Transliterator.getInstance(id).transform(cyrilic);
println "ok : " + latin;
String latin1 = Transliterator.getInstance(id1).transform(cyrilic);
println "nok : " + latin1;

结果

ok : sh sht ch ts kh f g ya 
nok : š ŝ č c h f g â 

问题是我无法检测到字符串的正确标识符。

我想为任意语言做这件事:日语、中文、德语

舍文

用途Any

@Grab(group='com.ibm.icu', module='icu4j', version='58.2')
import com.ibm.icu.text.Transliterator;

String anything = "ш щ ч ц х ф г я चंब्रिद्गॆ цамбридге كَمبرِدگِ かんぶりでげ";
String id = "Any-Latin";

println Transliterator.getInstance(id).transform(anything);

每条评论更新:

@Grab(group='com.ibm.icu', module='icu4j', version='58.2')
import com.ibm.icu.text.Transliterator;

String anything = "ш ч с";
String id = "Cyrillic-Latin";

Transliterator.getInstance(id).transform(anything);

上面的代码片段返回š č sš在拉丁文字中,音译结果确实是“sh”音的表示这同样适用于č 这是“CH”с在这里提供是为了显示s它返回的区别

ICU4J 进行Cyrillic-Latin音译的规则记录在 CLDR 项目中(例如,参见Cyrillic to Latin 的规则)。

要获得您想要的输出,您可以使用自己的自定义规则进行另一个转换:

@Grab(group='com.ibm.icu', module='icu4j', version='58.2')
import com.ibm.icu.text.Transliterator;

String anything = "ш ч с";
String id = "Cyrillic-Latin";

String myRules = "š>sh; č>ch";
Transliterator myTransliterator = Transliterator.createFromRules("myRules", myRules, Transliterator.FORWARD);

myTransliterator.transform(Transliterator.getInstance(id).transform(anything));

哪个输出sh ch s.

如果您认为更适合您的目的,您也可以决定从头开始为西里尔文定义所有规则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么wprintf在Linux上将Unicode的俄语文本音译为拉丁语?

来自分类Dev

PHP:检查任何基于拉丁语的语言的字母字符吗?

来自分类Dev

电子表格中从希腊语到拉丁语的音译

来自分类Dev

解析变形的非单词顺序语言(例如拉丁语)

来自分类Dev

在Ruby中将字符串中的西里尔字母音译成拉丁语?

来自分类Dev

在Ruby中将字符串中的西里尔字母音译成拉丁语?

来自分类Dev

将拉丁文音译为古希腊字母

来自分类Dev

将句子转换为猪拉丁语?

来自分类Dev

猪拉丁语翻译

来自分类Dev

猪拉丁语编码

来自分类Dev

将Mvel脚本翻译为Groovy时出错

来自分类Dev

猪拉丁语中各组的总结

来自分类Dev

在猪拉丁语中选择行

来自分类Dev

将groovy脚本写入文件

来自分类Dev

Groovy:如何将.groovy转换为.exe

来自分类Dev

用c将句子翻译成猪拉丁语

来自分类Dev

拉丁语 HTML 主题将文本翻译成英语

来自分类Dev

Groovy与Groovy ++

来自分类Dev

groovy是Android的潜在开发语言吗

来自分类Dev

Groovy编程语言是否存在正式规范?

来自分类Dev

将Groovy TemplateEngine与任何变量名称绑定

来自分类Dev

PIG拉丁语-不显示DUMP命令

来自分类Dev

猪拉丁语翻译器-查找辅音簇。

来自分类Dev

Apache Pig拉丁语中的月份名称

来自分类Dev

C ++猪拉丁语翻译器

来自分类Dev

PIG拉丁语-不显示DUMP命令

来自分类Dev

匹配字母数字字符,包括拉丁语 unicode

来自分类Dev

猪拉丁语翻译器不处理元音“a”

来自分类Dev

将每个groovy嵌套{}在find {}内部