javascript - 尝试制作语言翻译应用程序
问题描述
我正在尝试制作一个翻译应用程序,可以将 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"];
解决方案
对,所以首先,您需要添加一些输入验证以了解用户选择了什么。我建议将它存储在某个地方,然后你应该确保它在正确的范围内。只需使用 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();
推荐阅读
- javascript - Angular - 无法等待可观察的订阅完成以执行 http 拦截器中的其余代码
- python - discord.py 中 on_message 的冷却时间
- reactjs - React - 如何使用动态属性更新状态而不先在状态中定义它?
- sql - 查询 SQL [PSQL]
- postgresql - Dokku Postgres 导入/导出问题
- c# - 没有给出与 'Employee.Employee(string,string, int)' 的所需形式参数 'name' 相对应的参数
- c# - 如何从字典中获取元素并添加到数组中?
- python - 我可以在 PHP 中运行 Python 函数吗
- python - How to format to n decimal places in Python
- node.js - Microsoft Graph List outlookTask not returning immutable ID even if it's in preferred in header