commit dee75dd41732f8f88d7bb308cf527ed83ad5a846
parent 020eaf2d470af493000daa2c71d26cd5d822ac01
Author: Dan Stillman <dstillman@zotero.org>
Date: Wed, 19 Sep 2012 04:19:30 -0400
Save translator names as ASCII during repo updates as well
Refs #459, Non-ascii translator names
Diffstat:
2 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/chrome/content/zotero/xpcom/schema.js b/chrome/content/zotero/xpcom/schema.js
@@ -692,12 +692,9 @@ Zotero.Schema = new function(){
}
}
- var fileName = Zotero.Utilities.removeDiacritics(
- Zotero.File.getValidFileName(entry.label)) + fileExt;
- // Use translatorID if name still isn't ASCII (e.g., Cyrillic)
- if (!fileName.match(/^[\x00-\x7f]+$/)) {
- fileName = translatorID + fileExt;
- }
+ var fileName = Zotero.Translators.getFileNameFromLabel(
+ entry.label, translatorID
+ );
var destFile = destDir.clone();
destFile.append(fileName);
@@ -820,12 +817,9 @@ Zotero.Schema = new function(){
}
if (mode == 'translator') {
- var fileName = Zotero.Utilities.removeDiacritics(
- Zotero.File.getValidFileName(newObj[titleField])) + fileExt;
- // Use translatorID if name still isn't ASCII (e.g., Cyrillic)
- if (!fileName.match(/^[\x00-\x7f]+$/)) {
- fileName = newObj.translatorID + fileExt;
- }
+ var fileName = Zotero.Translators.getFileNameFromLabel(
+ newObj[titleField], newObj.translatorID
+ );
}
else if (mode == 'style') {
var fileName = file.leafName;
diff --git a/chrome/content/zotero/xpcom/translation/translator.js b/chrome/content/zotero/xpcom/translation/translator.js
@@ -305,8 +305,14 @@ Zotero.Translators = new function() {
* @param {String} label
* @return {String}
*/
- this.getFileNameFromLabel = function(label) {
- return Zotero.File.getValidFileName(label) + ".js";
+ this.getFileNameFromLabel = function(label, alternative) {
+ var fileName = Zotero.Utilities.removeDiacritics(
+ Zotero.File.getValidFileName(label)) + ".js";
+ // Use translatorID if name still isn't ASCII (e.g., Cyrillic)
+ if (alternative && !fileName.match(/^[\x00-\x7f]+$/)) {
+ fileName = alternative + ".js";
+ }
+ return fileName;
}
/**
@@ -361,7 +367,9 @@ Zotero.Translators = new function() {
throw ("code not provided in Zotero.Translators.save()");
}
- var fileName = Zotero.Translators.getFileNameFromLabel(metadata.label);
+ var fileName = Zotero.Translators.getFileNameFromLabel(
+ metadata.label, metadata.translatorID
+ );
var destFile = Zotero.getTranslatorsDirectory();
destFile.append(fileName);