Add optional second parameters params to Zotero.getString() to use the stringbundle's formatStringFromName method -- got rid of the silly replace() calls elsewhere in the code

Also localized the "tags" string in the tags tab -- addresses #155, Localize strings
This commit is contained in:
Dan Stillman 2006-10-19 21:05:21 +00:00
parent 79efa85482
commit 00d8fbd117
6 changed files with 29 additions and 16 deletions

View File

@ -200,7 +200,8 @@
count = 0; count = 0;
} }
this.id('tagsNum').value = count + ' tags:'; this.id('tagsNum').value =
Zotero.getString('pane.item.tags.count.' + (count != 1 ? "plural" : "singular"), [count]) + ":";
this.count = count; this.count = count;
]]> ]]>
</body> </body>

View File

@ -1202,14 +1202,14 @@ var ZoteroItemPane = new function()
{ {
var c = _notesList.childNodes.length; var c = _notesList.childNodes.length;
_notesLabel.value = Zotero.getString('pane.item.notes.count.'+(c != 1 ? "plural" : "singular")).replace('%1',c) + ":"; _notesLabel.value = Zotero.getString('pane.item.notes.count.'+(c != 1 ? "plural" : "singular"), [c]) + ":";
} }
function _updateAttachmentCount() function _updateAttachmentCount()
{ {
var c = _attachmentsList.childNodes.length; var c = _attachmentsList.childNodes.length;
_attachmentsLabel.value = Zotero.getString('pane.item.attachments.count.'+(c != 1 ? "plural" : "singular")).replace('%1',c) + ":"; _attachmentsLabel.value = Zotero.getString('pane.item.attachments.count.'+(c != 1 ? "plural" : "singular"), [c]) + ":";
} }
function removeAttachment(id) function removeAttachment(id)

View File

@ -364,7 +364,7 @@ var ZoteroPane = new function()
var label = document.getElementById('zotero-view-selected-label'); var label = document.getElementById('zotero-view-selected-label');
if(itemsView && itemsView.selection.count) if(itemsView && itemsView.selection.count)
label.value = Zotero.getString('pane.item.selected.multiple').replace('%1', itemsView.selection.count); label.value = Zotero.getString('pane.item.selected.multiple', itemsView.selection.count);
else else
label.value = Zotero.getString('pane.item.selected.zero'); label.value = Zotero.getString('pane.item.selected.zero');
} }

View File

@ -552,9 +552,10 @@ Zotero.DB = new function(){
file.append(ZOTERO_CONFIG['DB_FILE']); file.append(ZOTERO_CONFIG['DB_FILE']);
_connection = store.openDatabase(file); _connection = store.openDatabase(file);
Zotero.debug('Database restored', 1); Zotero.debug('Database restored', 1);
var msg = Zotero.getString('db.dbRestored'); var msg = Zotero.getString('db.dbRestored', [
msg = msg.replace('%1', Zotero.Date.getFileDateString(backupFile)) Zotero.Date.getFileDateString(backupFile),
msg = msg.replace('%2', Zotero.Date.getFileTimeString(backupFile)) Zotero.Date.getFileTimeString(backupFile)
]);
alert(msg); alert(msg);
break catchBlock; break catchBlock;

View File

@ -311,11 +311,20 @@ var Zotero = new function(){
} }
function getString(name){ function getString(name, params){
try { try {
if (params){
if (typeof params != 'object'){
params = [params];
}
var l10n = _localizedStringBundle.formatStringFromName(name, params, params.length);
}
else {
var l10n = _localizedStringBundle.GetStringFromName(name); var l10n = _localizedStringBundle.GetStringFromName(name);
} }
}
catch (e){ catch (e){
Zotero.debug(e);
throw ('Localized string not available for ' + name); throw ('Localized string not available for ' + name);
} }
return l10n; return l10n;

View File

@ -19,7 +19,7 @@ pane.items.menu.createBib = Create Bibliography from Selected Item...
pane.items.menu.createBib.multiple = Create Bibliography from Selected Items... pane.items.menu.createBib.multiple = Create Bibliography from Selected Items...
pane.item.selected.zero = No items selected pane.item.selected.zero = No items selected
pane.item.selected.multiple = %1 items selected pane.item.selected.multiple = %s items selected
pane.item.changeType = Are you sure you want to change the item type? Certain fields may be lost. pane.item.changeType = Are you sure you want to change the item type? Certain fields may be lost.
pane.item.defaultFirstName = first pane.item.defaultFirstName = first
@ -27,15 +27,17 @@ pane.item.defaultLastName = last
pane.item.defaultFullName = full name pane.item.defaultFullName = full name
pane.item.notes.untitled = Untitled Note pane.item.notes.untitled = Untitled Note
pane.item.notes.delete.confirm = Are you sure you want to delete this note? pane.item.notes.delete.confirm = Are you sure you want to delete this note?
pane.item.notes.count.singular = %1 note pane.item.notes.count.singular = %s note
pane.item.notes.count.plural = %1 notes pane.item.notes.count.plural = %s notes
pane.item.attachments.view.link = View Page pane.item.attachments.view.link = View Page
pane.item.attachments.view.snapshot = View Snapshot pane.item.attachments.view.snapshot = View Snapshot
pane.item.attachments.view.file = View File pane.item.attachments.view.file = View File
pane.item.attachments.delete.confirm = Are you sure you want to delete this attachment? pane.item.attachments.delete.confirm = Are you sure you want to delete this attachment?
pane.item.attachments.count.singular = %1 attachment pane.item.attachments.count.singular = %s attachment
pane.item.attachments.count.plural = %1 attachments pane.item.attachments.count.plural = %s attachments
pane.item.attachments.select = Select a File pane.item.attachments.select = Select a File
pane.item.tags.count.singular = %s tag
pane.item.tags.count.plural = %s tags
itemTypes.note = Note itemTypes.note = Note
itemTypes.attachment = Attachment itemTypes.attachment = Attachment
@ -107,7 +109,7 @@ itemFields.legislativeBody = Legislative Body
itemFields.history = History itemFields.history = History
itemFields.reporter = Reporter itemFields.reporter = Reporter
itemFields.court = Court itemFields.court = Court
itemFields.numberOfVolumes = Number of Volumes itemFields.numberOfVolumes = # of Volumes
itemFields.committee = Committee itemFields.committee = Committee
itemFields.assignee = Assignee itemFields.assignee = Assignee
itemFields.patentNumber = Patent Number itemFields.patentNumber = Patent Number
@ -175,7 +177,7 @@ ingester.scrapeError = Could Not Save Item.
ingester.scrapeErrorDescription = An error occurred while saving this item. Please try again. If this error persists, contact the translator author. ingester.scrapeErrorDescription = An error occurred while saving this item. Please try again. If this error persists, contact the translator author.
db.dbCorruptedNoBackup = The Zotero database appears to have become corrupted, and no automatic backup is available.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.dbCorruptedNoBackup = The Zotero database appears to have become corrupted, and no automatic backup is available.\n\nA new database file has been created. The damaged file was saved in your Zotero directory.
db.dbRestored = The Zotero database appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %1 at %2. The damaged file was saved in your Zotero directory. db.dbRestored = The Zotero database appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %1$s at %2$s. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed = The Zotero database appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.dbRestoreFailed = The Zotero database appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory.
zotero.preferences.status.positionChange = Position change will take effect in new windows only zotero.preferences.status.positionChange = Position change will take effect in new windows only