function containsChinese(str) { const regex = /[\u4e00-\u9fa5]/; return regex.test(str); }
const newLanguageCN = "zh-CN"; const newLanguageEN = "en-US";
zoteroPane = Zotero.getActiveZoteroPane(); items = zoteroPane.getSelectedItems(); var cnCount = 0; var enCount = 0; var rn = 0;
for (item of items) { var la = item.getField("language"); var authors = item.getCreators(); var hasChineseName = false; for (const author of authors) { if (containsChinese(author.lastName) || containsChinese(author.firstName)) { hasChineseName = true; break; } }
if (hasChineseName) { item.setField("language", newLanguageCN); cnCount += 1; } else { item.setField("language", newLanguageEN); enCount += 1; } rn += 1; await item.saveTx(); }
return `已替换的条目总数: ${rn}。其中中文条目: ${cnCount},英文条目: ${enCount}`;
|