2006-08-24 19:43:48 +00:00
pane.collections.delete = Are you sure you want to delete the selected collection?
2006-08-31 06:27:02 +00:00
pane.collections.deleteSearch = Are you sure you want to delete the selected search?
2006-08-30 19:07:51 +00:00
pane.collections.name = Collection name:
pane.collections.rename = Rename collection:
2006-06-21 23:22:37 +00:00
pane.collections.library = My Library
2006-08-30 19:07:51 +00:00
pane.collections.untitled = Untitled
2006-06-05 17:47:36 +00:00
2006-06-21 23:22:37 +00:00
pane.items.delete = Are you sure you want to delete the selected item?
pane.items.delete.multiple = Are you sure you want to delete the selected items?
2006-08-02 17:57:16 +00:00
pane.items.delete.title = Delete
pane.items.delete.attached = Erase attached notes and files
2006-09-22 09:01:25 +00:00
pane.items.menu.remove = Remove Selected Item
pane.items.menu.remove.multiple = Remove Selected Items
pane.items.menu.erase = Delete Selected Item From Library...
pane.items.menu.erase.multiple = Delete Selected Items From Library...
2006-07-26 15:28:31 +00:00
pane.items.menu.export = Export Selected Item...
pane.items.menu.export.multiple = Export Selected Items...
pane.items.menu.createBib = Create Bibliography From Selected Item...
pane.items.menu.createBib.multiple = Create Bibliography From Selected Items...
2006-06-21 23:22:37 +00:00
pane.item.selected.zero = No items selected
pane.item.selected.multiple = %1 items selected
pane.item.changeType = Are you sure you want to change the item type? Certain fields may be lost.
2006-08-15 03:19:11 +00:00
pane.item.defaultFirstName = first
pane.item.defaultLastName = last
2006-09-08 22:46:49 +00:00
pane.item.defaultFullName = full name
2006-06-21 23:22:37 +00:00
pane.item.notes.untitled = Untitled Note
2006-07-27 18:08:09 +00:00
pane.item.notes.delete.confirm = Are you sure you want to delete this note?
2006-06-21 23:22:37 +00:00
pane.item.notes.count.singular = %1 note
pane.item.notes.count.plural = %1 notes
2006-08-31 22:14:13 +00:00
pane.item.attachments.view.link = View Page
2006-10-02 00:00:50 +00:00
pane.item.attachments.view.snapshot = View Snapshot
2006-08-31 22:14:13 +00:00
pane.item.attachments.view.file = View File
2006-08-12 00:18:20 +00:00
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.plural = %1 attachments
pane.item.attachments.select = Select a File
2006-06-05 17:47:36 +00:00
2006-05-19 13:53:37 +00:00
itemFields.title = Title
itemFields.dateAdded = Date Added
itemFields.dateModified = Modified
itemFields.source = Source
itemFields.rights = Rights
2006-06-08 21:30:22 +00:00
itemFields.notes = Notes
2006-08-13 20:31:11 +00:00
itemFields.series = Series
itemFields.seriesNumber = Series Number
2006-08-06 16:10:28 +00:00
itemFields.seriesTitle = Series Title
2006-08-13 20:31:11 +00:00
itemFields.seriesText = Series Text
2006-05-19 13:53:37 +00:00
itemFields.volume = Volume
2006-08-06 16:10:28 +00:00
itemFields.issue = Issue
2006-05-19 13:53:37 +00:00
itemFields.edition = Edition
itemFields.place = Place
itemFields.publisher = Publisher
itemFields.pages = Pages
itemFields.ISBN = ISBN
2006-08-31 07:52:28 +00:00
itemFields.publicationTitle = Publication
2006-05-19 13:53:37 +00:00
itemFields.ISSN = ISSN
2006-06-24 08:28:37 +00:00
itemFields.date = Date
itemFields.section = Section
2006-08-31 07:52:28 +00:00
itemFields.accessionNumber = Accession No
2006-06-24 08:28:37 +00:00
itemFields.archiveLocation = Location in Archive
itemFields.medium = Medium
itemFields.distributor = Distributor
itemFields.url = URL
itemFields.type = Type
2006-06-25 18:10:27 +00:00
itemFields.callNumber = Call Number
itemFields.extra = Extra
2006-08-31 07:52:28 +00:00
itemFields.journalAbbreviation = Journal Abbr
2006-08-06 16:10:28 +00:00
itemFields.DOI = DOI
2006-08-10 22:46:44 +00:00
itemFields.accessDate = Accessed
2006-05-18 21:15:02 +00:00
Fixes #29, independent notes
- Added 'note' item type
- Updated API to support independent note creation
Notes are, more or less, just regular items, with an item type of 1. They're created through Scholar.Notes.add(text, sourceItemID), which returns the itemID of the new note. sourceItemID is optional--if left out, an independent note will be created. (There's currently nothing stopping you from doing getNewItemByType(1) yourself, but the note would be contentless and broken, so you shouldn't do that.) Note data could've been stuffed into itemData, but I kept it separate in itemNotes to keep metadata searching faster and to keep things cleaner.
Methods calls that can be called on all items:
isNote() (same as testing for itemTypeID 1)
Method calls that can be called on source items only:
numNotes()
getNotes() (array of note itemIDs for a source)
Method calls that can be called on note items only:
updateNote(text)
setNoteSource(sourceItemID) (for changing source--use empty or false to make independent, which is currently what happens when you delete a note--will get option with #91)
getNote() (note content)
getNoteSource() (sourceItemID of a note)
Calling the above methods on the wrong item types will throw an error.
*** This will break note creation/display until David updates interface code. ***
2006-06-27 15:14:07 +00:00
itemTypes.note = Note
2006-05-19 13:53:37 +00:00
itemTypes.book = Book
2006-06-24 08:28:37 +00:00
itemTypes.bookSection = Book Section
2006-05-22 18:51:22 +00:00
itemTypes.journalArticle = Journal Article
2006-06-24 08:28:37 +00:00
itemTypes.magazineArticle = Magazine Article
itemTypes.newspaperArticle = Newspaper Article
itemTypes.thesis = Thesis
itemTypes.letter = Letter
itemTypes.manuscript = Manuscript
itemTypes.interview = Interview
itemTypes.film = Film
itemTypes.artwork = Artwork
2006-10-02 00:00:50 +00:00
itemTypes.webpage = Web Page
2006-08-12 00:18:20 +00:00
itemTypes.attachment = Attachment
2006-05-22 18:51:22 +00:00
creatorTypes.author = Author
creatorTypes.contributor = Contributor
2006-06-02 18:22:34 +00:00
creatorTypes.editor = Editor
2006-07-31 04:31:44 +00:00
creatorTypes.translator = Translator
2006-06-02 18:22:34 +00:00
2006-06-27 02:03:10 +00:00
ingester.scraping = Saving Item...
ingester.scrapeComplete = Item Saved.
ingester.scrapeError = Could Not Save Item.
2006-08-01 23:10:31 +00:00
ingester.scrapeErrorDescription = An error occurred while saving this item. Please try again. If this error persists, contact the translator author.
2006-08-30 07:05:57 +00:00
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.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.
2006-08-02 21:06:58 +00:00
2006-09-23 00:22:29 +00:00
scholar.preferences.status.positionChange = Position change will take effect in new windows only
2006-08-02 21:06:58 +00:00
fileInterface.itemsImported = Importing items...
Closes #7, Add advanced search functionality to data layer
Implemented advanced/saved search architecture -- to use, you create a new search with var search = new Scholar.Search(), add conditions to it with addCondition(condition, operator, value), and run it with search(). The standard conditions with their respective operators can be retrieved with Scholar.SearchConditions.getStandardConditions(). Others are for special search flags and can be specified as follows (condition, operator, value):
'context', null, collectionIDToSearchWithin
'recursive', 'true'|'false' (as strings!--defaults to false if not specified, though, so should probably just be removed if not wanted), null
'joinMode', 'any'|'all', null
For standard conditions, currently only 'title' and the itemData fields are supported -- more coming soon.
Localized strings created for the standard search operators
API:
search.setName(name) -- must be called before save() on new searches
search.load(savedSearchID)
search.save() -- saves search to DB and returns a savedSearchID
search.addCondition(condition, operator, value)
search.updateCondition(searchConditionID, condition, operator, value)
search.removeCondition(searchConditionID)
search.getSearchCondition(searchConditionID) -- returns a specific search condition used in the search
search.getSearchConditions() -- returns search conditions used in the search
search.search() -- runs search and returns an array of item ids for results
search.getSQL() -- will be used by Dan for search-within-search
Scholar.Searches.getAll() -- returns an array of saved searches with 'id' and 'name', in alphabetical order
Scholar.Searches.erase(savedSearchID) -- deletes a given saved search from the DB
Scholar.SearchConditions.get(condition) -- get condition data (operators, etc.)
Scholar.SearchConditions.getStandardConditions() -- retrieve conditions for use in drop-down menu (as opposed to special search flags)
Scholar.SearchConditions.hasOperator() -- used by Dan for error-checking
2006-08-08 02:04:02 +00:00
fileInterface.itemsExported = Exporting items...
2006-08-30 19:57:23 +00:00
fileInterface.import = Import
fileInterface.export = Export
fileInterface.exportedItems = Exported Items
fileInterface.imported = Imported
fileInterface.fileFormatUnsupported = No translator could be found for the given file.
fileInterface.untitledBibliography = Untitled Bibliography
fileInterface.bibliographyHTMLTitle = Bibliography
2006-09-05 02:03:59 +00:00
fileInterface.importError = An error occurred while trying to import the selected file. Please ensure that the file is valid and try again.
fileInterface.noReferencesError = The items you have selected contain no references. Please select one or more references and try again.
fileInterface.bibliographyGenerationError = An error occurred generating your bibliography. Please try again.
fileInterface.exportError = An error occurred while trying to export the selected file.
Closes #7, Add advanced search functionality to data layer
Implemented advanced/saved search architecture -- to use, you create a new search with var search = new Scholar.Search(), add conditions to it with addCondition(condition, operator, value), and run it with search(). The standard conditions with their respective operators can be retrieved with Scholar.SearchConditions.getStandardConditions(). Others are for special search flags and can be specified as follows (condition, operator, value):
'context', null, collectionIDToSearchWithin
'recursive', 'true'|'false' (as strings!--defaults to false if not specified, though, so should probably just be removed if not wanted), null
'joinMode', 'any'|'all', null
For standard conditions, currently only 'title' and the itemData fields are supported -- more coming soon.
Localized strings created for the standard search operators
API:
search.setName(name) -- must be called before save() on new searches
search.load(savedSearchID)
search.save() -- saves search to DB and returns a savedSearchID
search.addCondition(condition, operator, value)
search.updateCondition(searchConditionID, condition, operator, value)
search.removeCondition(searchConditionID)
search.getSearchCondition(searchConditionID) -- returns a specific search condition used in the search
search.getSearchConditions() -- returns search conditions used in the search
search.search() -- runs search and returns an array of item ids for results
search.getSQL() -- will be used by Dan for search-within-search
Scholar.Searches.getAll() -- returns an array of saved searches with 'id' and 'name', in alphabetical order
Scholar.Searches.erase(savedSearchID) -- deletes a given saved search from the DB
Scholar.SearchConditions.get(condition) -- get condition data (operators, etc.)
Scholar.SearchConditions.getStandardConditions() -- retrieve conditions for use in drop-down menu (as opposed to special search flags)
Scholar.SearchConditions.hasOperator() -- used by Dan for error-checking
2006-08-08 02:04:02 +00:00
searchOperator.is = is
searchOperator.isNot = is not
searchOperator.contains = contains
searchOperator.doesNotContain = does not contain
2006-08-28 20:49:24 +00:00
searchOperator.isLessThan = is less than
searchOperator.isGreaterThan = is greater than
Closes #7, Add advanced search functionality to data layer
Implemented advanced/saved search architecture -- to use, you create a new search with var search = new Scholar.Search(), add conditions to it with addCondition(condition, operator, value), and run it with search(). The standard conditions with their respective operators can be retrieved with Scholar.SearchConditions.getStandardConditions(). Others are for special search flags and can be specified as follows (condition, operator, value):
'context', null, collectionIDToSearchWithin
'recursive', 'true'|'false' (as strings!--defaults to false if not specified, though, so should probably just be removed if not wanted), null
'joinMode', 'any'|'all', null
For standard conditions, currently only 'title' and the itemData fields are supported -- more coming soon.
Localized strings created for the standard search operators
API:
search.setName(name) -- must be called before save() on new searches
search.load(savedSearchID)
search.save() -- saves search to DB and returns a savedSearchID
search.addCondition(condition, operator, value)
search.updateCondition(searchConditionID, condition, operator, value)
search.removeCondition(searchConditionID)
search.getSearchCondition(searchConditionID) -- returns a specific search condition used in the search
search.getSearchConditions() -- returns search conditions used in the search
search.search() -- runs search and returns an array of item ids for results
search.getSQL() -- will be used by Dan for search-within-search
Scholar.Searches.getAll() -- returns an array of saved searches with 'id' and 'name', in alphabetical order
Scholar.Searches.erase(savedSearchID) -- deletes a given saved search from the DB
Scholar.SearchConditions.get(condition) -- get condition data (operators, etc.)
Scholar.SearchConditions.getStandardConditions() -- retrieve conditions for use in drop-down menu (as opposed to special search flags)
Scholar.SearchConditions.hasOperator() -- used by Dan for error-checking
2006-08-08 02:04:02 +00:00
searchOperator.isBefore = is before
2006-08-08 23:00:33 +00:00
searchOperator.isAfter = is after
2006-08-21 05:08:11 +00:00
searchConditions.collectionID = Collection
searchConditions.itemTypeID = Item Type
searchConditions.tag = Tag
searchConditions.note = Note
searchConditions.creator = Creator
searchConditions.thesisType = Thesis Type
2006-08-28 20:49:24 +00:00
searchConditions.dateModified = Date Modified
Fulltext search support
There are currently two types of fulltext searching: an SQL-based word index and a file scanner. They each have their advantages and drawbacks.
The word index is very fast to search and is currently used for the find-as-you-type quicksearch. However, indexing files takes some time, so we should probably offer a preference to turn it off ("Index attachment content for quicksearch" or something). There's also an issue with Chinese characters (which are indexed by character rather than word, since there are no spaces to go by, so a search for a word with common characters could produce erroneous results). The quicksearch doesn't use a left-bound index (since that would probably upset German speakers searching for "musik" in "nachtmusik," though I don't know for sure how they think of words) but still seems pretty fast.
* Note: There will be a potentially long delay when you start Firefox with this revision as it builds a fulltext word index of your existing items. We obviously need a notification/option for this. *
The file scanner, used in the Attachment Content condition of the search dialog, offers phrase searching as well as regex support (both case-sensitive and not, and defaulting to multiline). It doesn't require an index, though it should probably be optimized to use the word index, if available, for narrowing the results when not in regex mode. (It does only scan files that pass all the other search conditions, which speeds it up considerably for multi-condition searches, and skips non-text files unless instructed otherwise, but it's still relatively slow.)
Both convert HTML to text before searching (with the exception of the binary file scanning mode).
There are some issues with which files get indexed and which don't that we can't do much about and that will probably confuse users immensely. Dan C. suggested some sort of indicator (say, a green dot) to show which files are indexed.
Also added (very ugly) charset detection (anybody want to figure out getCharsetFromString(str)?), a setTimeout() replacement in the XPCOM service, an arrayToHash() method, and a new header to timedtextarea.xml, since it's really not copyright CHNM (it's really just a few lines off from the toolkit timed-textbox binding--I tried to change it to extend timed-textbox and just ignore Return keypress events so that we didn't need to duplicate the Mozilla code, but timed-textbox's reliance on html:input instead of html:textarea made things rather difficult).
To do:
- Pref/buttons to disable/clear/rebuild fulltext index
- Hidden prefs to set maximum file size to index/scan
- Don't index words of fewer than 3 non-Asian characters
- MRU cache for saved searches
- Use word index if available to narrow search scope of fulltext scanner
- Cache attachment info methods
- Show content excerpt in search results (at least in advanced search window, when it exists)
- Notification window (a la scraping) to show when indexing
- Indicator of indexed status
- Context menu option to index
- Indicator that a file scanning search is in progress, if possible
- Find other ways to make it index the NYT front page in under 10 seconds
- Probably fix lots of bugs, which you will likely start telling me about...now.
2006-09-21 00:10:29 +00:00
searchConditions.fulltextContent = Attachment Content
2006-08-21 05:08:11 +00:00
2006-08-08 23:00:33 +00:00
exportOptions.exportNotes = Export Notes
2006-09-06 07:04:02 +00:00
exportOptions.exportFileData = Export Files
2006-09-11 01:05:26 +00:00
date.daySuffixes = st, nd, rd, th
citation.multipleSources = Multiple Sources...
citation.singleSource = Single Source...