Usuário:Chicocvenancio/Zotero-pt.js: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
nova página: { "translatorID":"3f50aaac-7acc-4350-acd0-59cb77faf620", "translatorType":2, "label":"Wikipedia Citation Templates", "creator":"Simon Kornblith", "target":"txt", "minVersion":... |
iniciando, muito trabalho de tradução ainda |
||
Linha 16: | Linha 16: | ||
var fieldMap = { |
var fieldMap = { |
||
edition:"edition", |
edition:"edition", |
||
publisher:" |
publisher:"publicado", |
||
doi:"DOI", |
doi:"DOI", |
||
isbn:"ISBN", |
isbn:"ISBN", |
||
Linha 22: | Linha 22: | ||
conference:"conferenceName", |
conference:"conferenceName", |
||
volume:"volume", |
volume:"volume", |
||
issue:" |
issue:"edicao", |
||
pages:" |
pages:"paginas", |
||
number:"episodeNumber" |
number:"episodeNumber" |
||
}; |
}; |
||
var typeMap = { |
var typeMap = { |
||
book:" |
book:"Citar Livro", |
||
bookSection:" |
bookSection:"Citar Livro", |
||
journalArticle:"Cite journal", |
journalArticle:"Cite journal", |
||
magazineArticle:"Cite news", |
magazineArticle:"Cite news", |
||
Linha 39: | Linha 39: | ||
film:"Cite AV media", |
film:"Cite AV media", |
||
artwork:"Cite", |
artwork:"Cite", |
||
webpage:" |
webpage:"Citar web", |
||
report:"Cite conference", |
report:"Cite conference", |
||
bill:"Cite", |
bill:"Cite", |
||
Linha 47: | Linha 47: | ||
email:"Cite email", |
email:"Cite email", |
||
map:"Cite", |
map:"Cite", |
||
blogPost:" |
blogPost:"Citar web", |
||
instantMessage:"Cite", |
instantMessage:"Cite", |
||
forumPost:" |
forumPost:"Citar web", |
||
audioRecording:"Cite", |
audioRecording:"Cite", |
||
presentation:"Cite paper", |
presentation:"Cite paper", |
||
Linha 134: | Linha 134: | ||
// make first authors first, last |
// make first authors first, last |
||
properties. |
properties.autor = formatFirstAuthor(item.creators); |
||
// add supplemental authors |
// add supplemental authors |
||
if(item.creators.length) { |
if(item.creators.length) { |
||
properties. |
properties.autor += ", "+formatAuthors(item.creators); |
||
} |
} |
||
} else if(type == "Cite interview") { |
} else if(type == "Cite interview") { |
||
Linha 252: | Linha 252: | ||
} |
} |
||
if(type == " |
if(type == "Citar web" && item.type) { |
||
properties.format = item.type; |
properties.format = item.type; |
||
} |
} |
Edição atual tal como às 16h33min de 20 de abril de 2016
{
"translatorID":"3f50aaac-7acc-4350-acd0-59cb77faf620",
"translatorType":2,
"label":"Wikipedia Citation Templates",
"creator":"Simon Kornblith",
"target":"txt",
"minVersion":"1.0.0b4.r1",
"maxVersion":"",
"priority":100,
"displayOptions":{"exportCharset":"UTF-8"},
"browserSupport":"gcs",
"inRepository":true,
"lastUpdated":"2015-02-21 07:16:26"
}
var fieldMap = {
edition:"edition",
publisher:"publicado",
doi:"DOI",
isbn:"ISBN",
issn:"ISSN",
conference:"conferenceName",
volume:"volume",
issue:"edicao",
pages:"paginas",
number:"episodeNumber"
};
var typeMap = {
book:"Citar Livro",
bookSection:"Citar Livro",
journalArticle:"Cite journal",
magazineArticle:"Cite news",
newspaperArticle:"Cite news",
thesis:"Cite paper",
letter:"Cite",
manuscript:"Cite book",
interview:"Cite interview",
film:"Cite AV media",
artwork:"Cite",
webpage:"Citar web",
report:"Cite conference",
bill:"Cite",
hearing:"Cite",
patent:"Cite",
statute:"Cite",
email:"Cite email",
map:"Cite",
blogPost:"Citar web",
instantMessage:"Cite",
forumPost:"Citar web",
audioRecording:"Cite",
presentation:"Cite paper",
videoRecording:"Cite AV media",
tvBroadcast:"Cite episode",
radioBroadcast:"Cite episode",
podcast:"Cite podcast",
computerProgram:"Cite",
conferencePaper:"Cite conference",
document:"Cite",
encyclopediaArticle:"Cite encyclopedia",
dictionaryEntry:"Cite encyclopedia"
};
function formatAuthors(authors, useTypes) {
var text = "";
for (var i=0; i<authors.length; i++) {
var author = authors[i];
text += ", "+author.firstName;
if(author.firstName && author.lastName) text += " ";
text += author.lastName;
if(useTypes) text += " ("+Zotero.Utilities.getLocalizedCreatorType(author.creatorType)+")";
}
return text.substr(2);
}
function formatFirstAuthor(authors, useTypes) {
var firstCreator = authors.shift();
var field = firstCreator.lastName;
if(firstCreator.lastName && firstCreator.firstName) field += ", ";
field += firstCreator.firstName;
if(useTypes) field += " ("+Zotero.Utilities.getLocalizedCreatorType(firstCreator.creatorType)+")";
return field;
}
function formatDate(date) {
var date = date.substr(0, date.indexOf(" "));
if(date.substr(4, 3) == "-00") {
date = date.substr(0, 4);
} else if(date.substr(7, 3) == "-00") {
date = date.substr(0, 7);
}
return date;
}
function doExport() {
var first = true;
while(item = Zotero.nextItem()) {
// determine type
var type = typeMap[item.itemType];
if(!type) type = "Cite";
var properties = new Object();
for(var wikiField in fieldMap) {
var zoteroField = fieldMap[wikiField];
if(item[zoteroField]) properties[wikiField] = item[zoteroField];
}
if(item.creators && item.creators.length) {
if(type == "Cite episode") {
// now add additional creators
properties.credits = formatAuthors(item.creators, true);
} else if(type == "Cite AV media") {
properties.people = "";
// make first creator first, last
properties.people = formatFirstAuthor(item.creators, true);
// now add additional creators
if(item.creators.length) properties.people += ", "+formatAuthors(item.creators, true);
// use type
if(item.type) {
properties.medium = item.type;
}
} else if(type == "Cite email") {
// get rid of non-authors
for(var i=0; i<item.creators.length; i++) {
if(item.creators[i].creatorType != "author") {
// drop contributors
item.creators.splice(i--, 1);
}
}
// make first authors first, last
properties.autor = formatFirstAuthor(item.creators);
// add supplemental authors
if(item.creators.length) {
properties.autor += ", "+formatAuthors(item.creators);
}
} else if(type == "Cite interview") {
// check for an interviewer or translator
var interviewers = [];
var translators = [];
for(var i=0; i<item.creators.length; i++) {
if(item.creators[i].creatorType == "translator") {
translators.push(item.creators.splice(i--,1)[0]);
} else if(item.creators[i].creatorType == "interviewer") {
interviewers.push(item.creators.splice(i--,1)[0]);
} else if(item.creators[i].creatorType == "contributor") {
// drop contributors
item.creators.splice(i--,1);
}
}
// interviewers
if(interviewers.length) {
properties.interviewer = formatAuthors([interviewers.shift()]);
if(interviewers.length) properties.cointerviewers = formatAuthors(interviewers);
}
// translators
if(translators.length) {
properties.cointerviewers = (properties.cointerviewers ? properties.cointerviewers+", " : "");
properties.cointerviewers += formatAuthors(translators);
}
// interviewees
if(item.creators.length) {
// take up to 4 interviewees
var i = 1;
while((interviewee = item.creators.shift()) && i <= 4) {
var lastKey = "last";
var firstKey = "first";
if(i != 1) {
lastKey += i;
firstKey += i;
}
properties[lastKey] = interviewee.lastName;
properties[firstKey] = interviewee.firstName;
}
}
// medium
if(item.medium) {
properties.type = item.medium
}
} else {
// check for an editor or translator
var editors = [];
var translators = [];
for(var i=0; i < item.creators.length; i++) {
var creator = item.creators[i];
if(creator.creatorType == "translator") {
translators.push(item.creators.splice(i--,1)[0]);
} else if(creator.creatorType == "editor") {
editors.push(item.creators.splice(i--,1)[0]);
} else if(creator.creatorType == "contributor") {
// drop contributors
item.creators.splice(i--, 1);
}
}
// editors
var others = "";
if(editors.length) {
var editorText = formatAuthors(editors)+(editors.length == 1 ? " (ed.)" : " (eds.)");
if(item.itemType == "bookSection" || type == "Cite conference" || type == "Cite encyclopedia") {
// as per docs, use editor only for chapters
properties.editors = editorText;
} else {
others = editorText;
}
}
// translators
if(translators.length) {
if(others) others += ", ";
others += formatAuthors(translators)+" (trans.)";
}
// We need to be certain that these come out in the right order, so
// deal with it when actually writing output
if (item.creators.length) {
properties.authors = item.creators.map(function(c) {
return {
last: c.lastName,
first: c.firstName
};
});
}
// attach others
if(others) {
properties.others = others;
}
}
}
if(item.itemType == "bookSection") {
properties.title = item.publicationTitle;
properties.chapter = item.title;;
} else {
properties.title = item.title;
if(type == "Cite journal") {
properties.journal = item.publicationTitle;
} else if(type == "Cite conference") {
properties.booktitle = item.publicationTitle;
} else if(type == "Cite encyclopedia") {
properties.encyclopedia = item.publicationTitle;
} else {
properties.work = item.publicationTitle;
}
}
if(type == "Citar web" && item.type) {
properties.format = item.type;
}
if(item.place) {
if(type == "Cite episode") {
properties.city = item.place;
} else {
properties.location = item.place;
}
}
if(item.series) {
properties.series = item.series;
} else if(item.seriesTitle) {
properties.series = item.seriesTitle;
} else if(item.seriesText) {
properties.series = item.seriesText;
}
// Don't include access date for journals with no URL
if(item.accessDate && !(item.itemType == 'journalArticle' && !item.url)) {
properties.accessdate = formatDate(item.accessDate);
}
if(item.date) {
if(type == "Cite email") {
properties.senddate = formatDate(item.date);
} else {
var date = Zotero.Utilities.strToDate(item.date);
if (date["year"] != undefined) {
var mm = "00";
if (date.month !== undefined) {
mm = date["month"];
mm = ZU.lpad(mm + 1, '0', 2);
}
var dd = "00";
if (date["day"] !== undefined) {
dd = ZU.lpad(date.day, '0', 2);
}
var yyyy = ZU.lpad(date.year.toString(), '0', 4);
var date = formatDate(yyyy + '-' + mm + '-' + dd + ' ');
if(type == "Cite email") {
properties.senddate = date;
} else {
properties.date = date;
}
}
}
}
if(item.runningTime) {
if(type == "Cite episode") {
properties.minutes = item.runningTime;
} else {
properties.time = item.runningTime;
}
}
if(item.url && item.accessDate) {
if(item.itemType == "bookSection") {
properties.chapterurl = item.url;
} else {
properties.url = item.url;
}
}
if(properties.pages) {
properties.pages = properties.pages.replace(/[^0-9]+/,"–")//separate page numbers with en dash
}
if(item.extra) {
// automatically fill in PMCID, PMID, and JSTOR fields
var extraFields={
pmid: /^PMID\s*\:\s*([0-9]+)/m,
pmc: /^PMCID\s*\:\s*((?:PMC)?[0-9]+)/m
};
for(var f in extraFields){
var match = item.extra.match(extraFields[f]);
if(match) properties[f] = match[1];
}
}
if(item.url) {
//try to extract missing fields from URL
var libraryURLs={
pmid:/www\.ncbi\.nlm\.nih\.gov\/pubmed\/([0-9]+)/i,
pmc:/www\.ncbi\.nlm\.nih\.gov\/pmc\/articles\/((?:PMC)?[0-9]+)/i,
jstor:/www\.jstor\.org\/stable\/([^?#]+)/i
};
for(var f in libraryURLs){
if(properties[f]) continue; //don't overwrite from extra field
var match = item.url.match(libraryURLs[f]);
if(match) properties[f] = match[1];
}
}
// write out properties
Zotero.write((first ? "" : "\r\n") + "{{"+type);
for(var key in properties) {
if (!properties[key]) continue;
if (key == 'authors') {
var index = properties.authors.length > 1;
for (var i=0; i<properties.authors.length; i++) {
Zotero.write('| last' + (i|| index ? i+1 : '') + ' = ' + properties.authors[i].last);
if (properties.authors[i].first) {
Zotero.write('| first' + (i || index ? i+1 : '') + ' = ' + properties.authors[i].first);
}
}
} else {
Zotero.write("| "+key+" = "+properties[key]);
}
}
Zotero.write("}}");
first = false;
}
}