Skip to content

Instantly share code, notes, and snippets.

@frank4565
Created January 27, 2015 17:49
Show Gist options
  • Save frank4565/f40cb2e43801d06378d7 to your computer and use it in GitHub Desktop.
Save frank4565/f40cb2e43801d06378d7 to your computer and use it in GitHub Desktop.
Zetero assign Language between Chinese and English
var fieldName = "language";
var en = "en";
var zh = "zh"
var getFieldID = function(item, fieldName) {
var fieldID = Zotero.ItemFields.getID(fieldName);
var mappedFieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(item.itemTypeID, fieldName);
return mappedFieldID ? mappedFieldID : fieldID
}
var setLanguage= function(item, value) {
item.setField(getFieldID(item, fieldName), value);
item.save();
}
var s = new Zotero.Search;
s.addCondition('joinMode', 'all');
s.addCondition('noChildren', 'true')
s.addCondition(fieldName, 'isNot', en);
s.addCondition(fieldName, 'isNot', zh);
var ids = s.search();
var i = 0, j = 0;
if (ids) {
for each(var id in ids) {
var item = Zotero.Items.get(id),
zhRe = /[\u4E00-\u9FBF]/;
title = item.getField("title");
if (item.getType() == 14 || item.getType() == 1) continue;
if (!zhRe.test(title)) {
//EJS_appendToConsole(item.getType());
setLanguage(item, en);
} else {
setLanguage(item, zh);
}
}
//alert(ids.length + " items updated");
EJS_appendToConsole(ids.length);
EJS_appendToConsole(i + j);
}
else {
//alert("No items found");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment