【发布时间】:2017-07-19 05:15:27
【问题描述】:
考虑以下简单的 HTML 代码:
<input id="dict_field" type="text"/>
<button id="translate_btn" type="button" class="btn">translate</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"
}
鉴于以下情况:
- 翻译只需要一种方式(价值的关键)。
- 字典是定制的(这意味着我必须构建它,我不能指望外部 API,例如 Google 的)。
- 我估计字典键的大小可能在数千个数量级,例如在 1 到 5000 之间。
- 不确定是否相关,但最终我希望翻译实时进行(只要用户完成输入而无需单击按钮)。目前这是次要的。
什么是“客观地”构建地图/字典 {key:value} 以实现翻译功能/API 的好方法?可以考虑任何细节,例如速度、可扩展性、成本等,同时考虑我的上述要求。
我对这类事情的经验很少,但我有一些想法,例如:
- 使用包含字典的很长的 js 文件(可能不是一个好主意)
- 将所有内容存储在文本文件中并从那里读取
- 查看一些数据库(但这会不会有点矫枉过正?)
感谢宝贵的建议。感谢您的帮助。
【问题讨论】:
-
字典只包含单词?您是否打算在翻译的同时添加更多描述、帮助材料、链接等?
-
好点。现在我认为单词应该没问题(例如只是一个 translate('foo') = 'bar')。显然,越灵活越好,我想我将来是否应该决定添加更多内容。
-
只需使用适合您的任何结构的 JSON 文件。
-
经过@TalhaAwan 的善意编辑,这个问题是否仍然过于宽泛?
-
@Tommy,我不知道编辑后如何以及何时删除保留。我认为这个问题的答案仍然是基于意见的,但这确实是一个好问题。我想回答这个问题,但我现在不能。也许尝试另一个有针对性的问题。如果你这样做,请在此处标记我。谢谢
标签: javascript jquery node.js dictionary