Связывание слов и их переводы - варианты хранения
Я хотел бы хранить слова и их переводы каким-то ассоциативным способом...
Я думал в ассоциативном массиве... каждый объект - это слово и его перевод.
var holder = [];
holder.push({"chinese" : "Nǐ", "english" : "you"}, {"chinese" : "Wo", "english" : "I"}, etc...);
Затем отобразите перевод текста, над которым вы зависали:
$("#npc_dialog_dictionary_chinese span").on("mouseover", function() {
var word = $(this).text();
$("#currentWord").text(parseHoveredText(word));
}).on("mouseout", function() {
$("#currentWord").empty();
});
Какие звонки:
function parseHoveredText(word) {
for (obj in holder) {
if (word == holder[obj]["ch"]) {
return holder[obj]["en"];
}
}
return "";
}
Это работает: (Вы можете видеть, что завис над Ni
отображает правильный перевод You
Но мой вопрос...
Сохранение пары перевода для каждого слова в объекте, а затем массива, как хороший выбор?
Это только для ОДНОГО языка, но у меня будет несколько разных слов, которые потребуют перевода.
1 ответ
Есть много вопросов для рассмотрения (сколько слов, сколько языков вы планируете поддерживать, какие требования к хранилищу, какие требования времени выполнения).
Задумывались ли вы о хеш-таблице строк, которая хэширует ваше слово в вектор, в котором хранятся переведенные слова. Например, "Ni" может хэшировать в вектор, который хранит его английский, испанский, итальянский перевод. Этот подход также может очень хорошо масштабироваться.