diff --git a/application/net/wiki/namespace.js b/application/net/wiki/namespace.js index 6faec200..fc546cc1 100644 --- a/application/net/wiki/namespace.js +++ b/application/net/wiki/namespace.js @@ -876,15 +876,16 @@ function module_code(library_namespace) { } // console.trace(language); // console.trace(in_session); + // 正規化。 language = String(language // || in_session && in_session.language || get_first_domain_name_of_session(in_session) // else use default language // 警告: 若是沒有輸入,則會直接回傳預設的語言。因此您或許需要先檢測是不是設定了 language。 - || wiki_API.language).trim().toLowerCase() + || wiki_API.language).trim().toLowerCase(); // zh_yue → zh-yue - .replace(/[_ ]/g, '-'); + language = language.replace(/[_ ]/g, '-'); // console.trace(language); var API_URL; diff --git a/application/net/wiki/query.js b/application/net/wiki/query.js index 1c41df35..5bdf53e6 100644 --- a/application/net/wiki/query.js +++ b/application/net/wiki/query.js @@ -1059,10 +1059,31 @@ function module_code(library_namespace) { if (data.warnings) { for ( var action in data.warnings) { - library_namespace.warn('handle_error: ' - + data.warnings[action]['*']); + if (data.warnings[action]['*']) { + library_namespace.warn('handle_error: ' + + data.warnings[action]['*']); + + } else if (Array.isArray(data.warnings[action].messages)) { + library_namespace.warn('handle_error: ' + /** + * + + {"wbeditentity":{"messages":[{"name":"wikibase-conflict-patched","parameters":[],"html":{"*":"Your edit was patched into the latest version."},"type":"warning"}]}} + // https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/repo/i18n/zh-hant.json + + + */ + + data.warnings[action].messages.map(function(line) { + var message = '[' + line.name + ']'; + var text = line.html && line.html['*']; + if (text) + message += ' ' + text; + return message; + }).join('\n')); + } + } - console.trace(data.warnings); + console.trace(JSON.stringify(data.warnings)); } // 檢查 MediaWiki 伺服器是否回應錯誤資訊。