首页 > 解决方案 > 尝试制作语言翻译应用程序

问题描述

我正在尝试制作一个翻译应用程序,可以将 1-30 之间的数字从英语翻译成德语/法语对应物。我认为我在某种程度上走在正确的轨道上,我用所有翻译制作了数组,但我遇到的问题是我不知道如何将用户通过提示输入的数字与其中的一个值相关联数组,例如:

提示用户输入 1-30 之间的数字,提示用户输入语言法语/德语 = 翻译

这就是我想要做的。Bellow 是我到目前为止所拥有的,请随意挑选,但请记住,我是 Javascript 新手,所以可能有很多错误。

function translate() {
    if (lang = "French") {
    
        console.log(frenchTranslation);
    
    } else {
        console.log(germanTranslation);
    }
};
var x=translate

translate(x)

var number=(Number(prompt ("What is your number? Must be between 1-30")));
var lang=(prompt ("What is your language? Must be 'French' or 'German'. Case Sensitive."));

var frenchTranslation = ["Please enter a number between 1-30", "un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf",
                         "vingt","vingt et un","vingt-deux","vingt-trois","vingt-quatre","vingt-cinq","vingt-six","vingt-sept","vingt huit","vingt-neuf","trente"];

var germanTranslation = ["Please enter a number between 1-30","Eins","Zwei","Drei","Vier","Fünf","Sechs","Sieben","Acht","Neun","Zehn","Elf","Zwölf","Dreizehn","Vierzehn","Fünfzehn","Sechzehn","Siebzehn","Achtzehn","Neunzehn",
                         "Zwanzig","Einundzwanzig","Zweiundzwanzig","Dreiundzwanzig","Vierundzwanzig","Fünfundzwanzig","Sechsundzwanzig","Siebenundzwanzig","Achtundzwanzig","Neunundzwanzig","Dreiβig"];


标签: javascriptarraysfunctiontranslation

解决方案


对,所以首先,您需要添加一些输入验证以了解用户选择了什么。我建议将它存储在某个地方,然后你应该确保它在正确的范围内。只需使用 if 语句检查数字是否 >= 0 && <= 30。之后,当您尝试使用 console.log 时,您需要使用正确数字的数组索引。

这是我的解决方案,您可以改进很多。

var frenchTranslation = ["Please enter a number between 1-30", "un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf",
                         "vingt","vingt et un","vingt-deux","vingt-trois","vingt-quatre","vingt-cinq","vingt-six","vingt-sept","vingt huit","vingt-neuf","trente"];

var germanTranslation = ["Please enter a number between 1-30","Eins","Zwei","Drei","Vier","Fünf","Sechs","Sieben","Acht","Neun","Zehn","Elf","Zwölf","Dreizehn","Vierzehn","Fünfzehn","Sechzehn","Siebzehn","Achtzehn","Neunzehn",
                         "Zwanzig","Einundzwanzig","Zweiundzwanzig","Dreiundzwanzig","Vierundzwanzig","Fünfundzwanzig","Sechsundzwanzig","Siebenundzwanzig","Achtundzwanzig","Neunundzwanzig","Dreiβig"];

function translate()
{
const yournumber = Number(prompt("Enter your number (1-30)"));
console.log(yournumber);
const language = prompt("Choose a language - German or French");

if(yournumber < 1 || yournumber > 30) {
    alert("Too hard");
}
else {
    if(language === "French") {
        console.log(frenchTranslation[yournumber]);
    }
    if(language === "German") {
        console.log(germanTranslation[yournumber]);
    }
}

}

translate();

推荐阅读