词典词典及其在JavaScript中的翻译

考虑以下简单的HTML代码:

<input id="dict_field" type="text"/> <button id="translate_btn" type="button" class="btn">translate</button> 

用户input一些东西,然后点击button触发一个返回翻译的函数。

和JQuery代码:

 $(document).ready(function(){ $('#translate_btn').click(function(){ var word = $('#dict_field').val(); var translation = ""; translation = translate(word (, dictionary?)); // For simplicity for now just display the result in the same input field $('#dict_field').val(translation) }); }); // pseudo code. How to implement this and build the dictionary I need? function translate(word (, dictionary?)){ if word in dictionary.keys() -> return dictionary[word] else return "no such word in dict" } 

鉴于以下情况:

  1. 翻译只需要一种方法(价值的关键)。
  2. 字典是定制的(意味着我必须build立它,我不能指望外部的API,如谷歌的)。
  3. 我估计字典键的大小可能是几千的数量级,比如1到5000。
  4. 不知道是否相关,但最终我希望翻译实时发生(只要用户完成input,而不需要点击button)。 目前这是次要的。

什么是“客观地”build立地图/字典{key:value}来实现翻译function/ API的好方法? 任何细节都可以考虑,比如速度,可扩展性,成本等,同时考虑到我的上述要求。

我对这种事情一点经验也没有,但是我有一些想法,比如:

  1. 使用包含字典的非常长的js文件(可能不是个好主意)
  2. 将所有内容存储在文本文件中,然后从中读取
  3. 看看一些数据库(但不会是矫枉过正?)

欣赏宝贵的build议。 谢谢你的帮助。

将其存储为文本文件,例如CSV。

 foo,bar baz,quux 

然后用ajax把它分开。 你可以优化这个,但不是必需的。

 var dict = text .split('\n') .map(function(x) { return x.split(',') }) .reduce(function(acc, pair) { acc[pair[0]] = pair[1]; return acc }, {}); 

然后dict['bar'] === 'quux'

你可以使用一个对象{"key":"value"}或一个数组[["key", "value"]] array,array [["key", "value"]] array,array,array,array,array,array, [{"key":"value0"}, {"key":"value1"}] ; 如果后两者允许同一个词的多个定义,则处理模棱两可的语言; 以及包括与数组或对象内的单词或术语有关的元数据的能力,例如口语单词的audio表示 。