心配ない!それよりも多くのテキストのように見えます;-)ですので、読み続けてください!
主な質問は次のとおりです。
- エラー:無効なラベルはどういう意味ですか?
- スクリプトのエラーはどこにありますか?
今、こっけいなものが始まります;-):
現在の言語の言語配列の項目(jsのlang_keysを介して定義された項目-上記を参照)をサーバー(サーバーはその配列のJSONバージョンを提供します)からロードするスクリプトがあります。
JStranslate("<synonym>");
関数を使用すると、現在の言語で必要なテキストを取得できます。更新:jquery 1.5が縮小されていません(古い:jquery.js(v1.4.1 --minified))が読み込まれ、lang.jsも読み込まれます。
だから私はエラーが発生しますが、それは私には見つかりません
追加する必要がありtranslate()
ます。関数はエラーなしで機能し、JSは中断されません。すべての機能は希望どおりに機能します。
他にエラーはなく、すべてのJSは正常に動作します...しかし、将来的に驚いたくないので、そのエラーを取り除く必要があります。
Chromeでのコンソール出力(ajaxリクエスト[/ query / js_lang / json]の後にリストされています):
Uncaught SyntaxError: Unexpected token : jQuery.jQuery.extend.globalEvaljquery.js:602
jQuery.ajaxSetup.converters.text scriptjquery.js:6992
ajaxConvert jquery.js:6884
done jquery.js:6454
jQuery.ajaxTransport.send.callback jquery.js:7252
jQuery.ajaxTransport.send jquery.js:7261
jQuery.extend.ajax jquery.js:6646
(anonymous function) lang.js:116
Firefoxでのコンソール出力(ajaxリクエスト[/ query / js_lang / json]の後にリストされています):
invalid label
{"js_accept_terms":"Du musst unseren A...:"Kontaktname","js_agent_email":"Konta
invalid label
誰かがエラーの意味を正確に教えてもらえますか?
私のスクリプト(lang.js)は次のようになります。
var month_names = new Array();
var day_names = new Array();
var lang_keys = new Array(
"js_accept_terms",
...
"nope"
);
var translations = new Array();
function translate(key, replace){
var translated = translations[key];
if(replace != undefined){
for(var i=0; i<replace.length; i++){
translated = translated.replace(/\%1/, replace);
}
}
return translated;
}
$.ajax({ //this is line 116
url: "/query/js_lang/json",
type: "post",
data: {keys: JSON.stringify(lang_keys)},
timeout: 7000,
success: function(data){
var trans = jQuery.parseJSON(data);
for(var key in trans){
translations[key.replace(/^js\_/, "")] = trans[key];
}
month_names = new Array(translate("jan"), translate("feb"), translate("mar"), translate("apr"), translate("may"), translate("jun"), translate("jul"), translate("aug"), translate("sep"), translate("oct"), translate("nov"), translate("dec"));
day_names = new Array(translate("sun"), translate("mon"), translate("tue"), translate("wed"), translate("thu"), translate("fri"), translate("sat"));
},
error: function(){
out_message("Error. No Language loaded!", "Error");
},
async: false
});
out_message()
cssスタイルのdivを表示します。私はその機能をウェブサイトの他の部分で使用していますが、問題なく機能します。
lang_keys
戻り値に「:」、ウムラウト、スラッシュなどの特殊文字が含まれているアイテムを削除しました...例:英数字の値のみでテストしたところ、同じエラーが発生しました。
私の英語をごめんなさい;-)そしてあなたの助けに感謝します