[英]Data structure for multi-language dictionary
我正在嘗試制作多語言詞典,讓我們說英語-德語詞典。
我認為我需要一個語言課程和一個單詞課程,但是不同的語言具有不同的單詞類型和動詞時態,例如,德語中的單詞性別不同(男性,女性,中性)。
現在我的問題是如何在代碼中表示不同的語言:
1-語言父類,詞父類2-語言“ a”類,詞“ inLanguageA”類和不同的詞類型和功能3-語言“ b”類,詞“ inLanguageB”類和不同的詞類型和函數
這樣我就能得到wordInLanguageA。意義(inLanguageB)。
以及嵌套語言的類的最佳方法是什么,例如:
德語應該是實現接口語言的新類,還是應該作為父類語言的子類,並且該單詞類型該如何處理? 德語具有這種類型(名詞,動詞,形容詞),每種類型都應該有自己的方法,有時一兩種類型之間可能存在關系(“ gehen”:動詞“ to go”,“ gehend”:形容詞“ going”)
我認為您可以為名詞,動詞...和語言類提供單詞類,這些類可以在不同情況下轉換您的單詞,例如擴展Language的English類,例如具有“ write”值的Word類,那么您可以調用語言類的方法toPastTime(Word“ write”)->寫,或類似的恕我直言。
如果您想使其完美,那么不同的類將是您的最小問題,因為每種語言都有其轉換短語的方法。 英文始終使用SVO,而德語中則可以隨意更改該短語。 在德語中,您將與主格,賓格,和格和屬格作斗爭,而英語僅將其詞與屬格聯系起來。 這些語言的工作方式有很多規則,有一個原因讓您可以在大學學習它們。 我的意思是,甚至Google都無法正確翻譯100%。
因此,由於您可能不需要程序的超級翻譯器,因此我認為手動翻譯所有文本然后創建一個簡單的Text-class會更容易,該類可以使用您喜歡的語言輸出文本。
編輯:因此,如果您只想要字典,則可以使其如下所示:
一本字典
public class Dictionary {
private Word check, it, out;
Dictionary() {
check = new Verb("check", "prüfen", "tester");
it = new Pronoun("it", "es", "le");
out = new Preposition("out", "hinaus", "dehors");
try {
System.out.print(check.translateTo(Language.German));
System.out.print(it.translateTo(Language.German));
System.out.print(out.translateTo(Language.German));
} catch (Exception whatever) {
whatever.printStackTrace();
}
}
}
一個字
public abstract class Word {
private final String english, german, french;
protected Word(String english, String german, String french) {
this.english = english;
this.german = german;
this.french = french;
}
public String translateTo(Language language) throws Exception {
switch(language) {
case English: return english;
case German: return german;
case French: return french;
}
throw new Exception(); //you can write a LanguageNotFoundException
}
}
單詞的不同類型
public class Verb extends Word {
protected Verb(String english, String german, String french) {
super(english, german, french);
}
}
public class Pronoun extends Word {
protected Pronoun(String english, String german, String french) {
super(english, german, french);
}
}
public class Preposition extends Word {
protected Preposition(String english, String german, String french) {
super(english, german, french);
}
}
一種語言
public enum Language {
English,
German,
French;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.