2017-10-08 146 views
0

我試圖做一個多語言詞典讓我們說英語 - 德語字典。數據結構多語言詞典

我認爲我需要一個語言課程和一個單詞課程,但不同的語言有不同的單詞類型和動詞時態,例如德語有不同的單詞性別(男性,女性,中性)。

現在我的問題是,如何在代碼中表示了不同的語言:

1-語言父類,文字父類 2 - 語言「A」級,字「inLanguageA」級和不同的詞類型和功能 3-語言「b」類,單詞「inLanguageB」類和不同的單詞類型和功能

這樣我就能夠獲得wordInLanguageA.meaning(inLanguageB)。

,什麼是最好的方式,以巢例如語言類:

應德國是實現這個字類型如何界面語言或父類語言的孩子,有什麼新的類我可以處理嗎? 德國有這種類型(名詞,動詞,形容詞),每個類型都應該有自己的方法,有時關係會一個,二類(「gehen」之間存在:動詞「走」,「gehend」:形容詞「走出去」 )

回答

0

如果你想做到盡善盡美,那麼diferent類將是你最小的問題,因爲每一種語言都有它的方法來改變一個短語。英語總是使用SVO,而在德語中,您可以以任何喜歡的方式扭曲詞組。在德國,你會用主格,賓格,與格和屬格掙扎,而英語只有將其輸入單詞,所有格。關於這些語言如何工作的規則非常多,並且有一個原因可以讓你在大學學習。我的意思是,即使Google設法正確翻譯100%。

因此,您可能不需要爲您的程序使用超級翻譯器,我認爲只需手動翻譯所有文本然後創建一個簡單的文本類即可以使用該語言輸出其文本你喜歡。

編輯: 所以,如果你只想要一本字典,你可以使它看起來像這樣:

字典

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 
    } 
} 

Diferent類型的詞

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; 
} 
+0

我不想讓詞組翻譯它只是一本詞典 –

0

我認爲你可以有像名詞,動詞...和語言類,它會改變你的字不同的情況下,這樣的擴展語言類英語單詞類,例如類單詞與價值「寫入」 ,那麼你可以調用方法從語言類toPastTime(Word「寫」) - >寫道,或者這樣的恕我直言。