Во-первых, тут json не правильный, потому как или это не объект, а массив, или не нужно никаких "_id".
Как должно быть:
{
"post": {
"en" : {
"post" : "Post",
"news" : "News"
},
"ru" : {
"post" : "Посты",
"news" : "Новости"
}
},
"menu": {
"en" : {
"post" : "menu1",
"news" : "menu2"
},
"ru" : {
"post" : "меню1",
"news" : "меню2"
}
}
}
Во-вторых, если вы используете jquery, зачем вам огороды с XMLHttpRequest? jquery прекрасно поддерживает в человекопонятном виде ajax.
var lang = "ru"; // захардкодил, для простоты
$.get({
url: "lang.json",
dataType: "json",
success: function(data) {
$(".lang").each(function(entry){
var $el = $(this);
var text = data[$el.attr("key")][lang];
$el.text(text);
});
}
})