将文本转换为不同的语言

时间:2017-08-03 14:11:29

标签: localization internationalization transliteration

我想用谷歌翻译器制作一些不同语言的单词和短语而不翻译它的实际含义。是否可以将文本转换为其他语言而不是翻译它。

示例:

我希望像剑桥一样进行简单的转换 - كامبردج,कैंब्रिज,cambridge,剑桥,Кембридж

我不想像大学一样翻译 - جامعة,विश्वविद्यालय,universitet,大学, Университет

1 个答案:

答案 0 :(得分:0)

是。这被称为“音译”。根据您使用的编程语言,有多种方法可以以编程方式执行此操作。在这里,为了演示,我在Groovy中使用ICU4J库:

// https://mvnrepository.com/artifact/com.ibm.icu/icu4j
@Grapes(
    @Grab(group='com.ibm.icu', module='icu4j', version='59.1')
)

import com.ibm.icu.text.Transliterator;

String sourceString = "cambridge";
List<String> transformSchemes = ["Latin-Arabic", "Latin-Cyrillic", "Latin-Devanagari", "Latin-Hiragana"]

for (t in transformSchemes) {

    println "${t}: " + Transliterator.getInstance(t).transform(sourceString);

}

返回:

Latin-Arabic: كَمبرِدگِ
Latin-Cyrillic: цамбридге
Latin-Devanagari: चंब्रिद्गॆ
Latin-Hiragana: かんぶりでげ

显然,由于这些是从一种语言到另一种语言的基于规则的转换,它们往往是不完美的。

因此,如果你正在寻找地方的名字(因为你提到“剑桥”作为一个例子),你将有更好的运气使用地名的数据库; ICU有一些城市名称和许多国家名称。您还可以使用Wikidata API来检索此类信息;这是一个示例电话:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q350