簡體   English   中英

多語言字典的數據結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM