From 217929a3ea59949e195b92f4b1daf65577891b5d Mon Sep 17 00:00:00 2001
From: gracile-fr <gracile@gmx.com>
Date: Thu, 28 Feb 2013 23:31:07 +0100
Subject: [PATCH] more localization

---
 chrome/content/zotero/errorReport.xul         | 11 +++---
 chrome/content/zotero/fileInterface.js        |  7 ++--
 chrome/content/zotero/upgrade.xul             |  3 +-
 .../zotero/xpcom/collectionTreeView.js        |  2 +-
 chrome/content/zotero/xpcom/sync.js           | 15 ++++----
 chrome/content/zotero/xpcom/zotero.js         | 36 ++++++-------------
 chrome/locale/en-US/zotero/zotero.dtd         |  2 ++
 chrome/locale/en-US/zotero/zotero.properties  | 24 +++++++++++--
 8 files changed, 49 insertions(+), 51 deletions(-)

diff --git a/chrome/content/zotero/errorReport.xul b/chrome/content/zotero/errorReport.xul
index ea4f6f0b48..868edb5b3f 100644
--- a/chrome/content/zotero/errorReport.xul
+++ b/chrome/content/zotero/errorReport.xul
@@ -5,9 +5,8 @@
 
 <!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
 
-<!-- TODO: localize -->
 <wizard xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-	id="zotero-error-report" title="Zotero Error Report">
+	id="zotero-error-report" title="&zotero.errorReport.title;">
 	
 	<script>
 	<![CDATA[
@@ -69,14 +68,14 @@
 				if (!xmlhttp.responseXML){
 					try {
 						if (xmlhttp.status>1000){
-							alert('No network connection');
+							alert(Zotero.getString('errorReport.noNetworkConnection'));
 						}
 						else {
-							alert('Invalid response from repository');
+							alert(Zotero.getString('errorReport.invalidResponseRepository'));
 						}
 					}
 					catch (e){
-						alert('Repository cannot be contacted');
+						alert(Zotero.getString('errorReport.repoCannotBeContacted'));
 					}
 					
 					wizard.rewind();
@@ -86,7 +85,7 @@
 				
 				var reported = xmlhttp.responseXML.getElementsByTagName('reported');
 				if (reported.length != 1) {
-					alert('Invalid response from repository');
+					alert(Zotero.getString('errorReport.invalidResponseRepository'));
 					wizard.rewind();
 					return;
 				}
diff --git a/chrome/content/zotero/fileInterface.js b/chrome/content/zotero/fileInterface.js
index c0291fea82..107e805113 100644
--- a/chrome/content/zotero/fileInterface.js
+++ b/chrome/content/zotero/fileInterface.js
@@ -364,9 +364,6 @@ var Zotero_File_Interface = new function() {
 				translation.translate(libraryID);
 			}, 0);
 		} else {
-			// TODO: localize and remove fileInterface.fileFormatUnsupported string
-			var unsupportedFormat = "The selected file is not in a supported format.";
-			var viewSupportedFormats = "View Supported Formats...";
 			
 			var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
 									.getService(Components.interfaces.nsIPromptService);
@@ -375,10 +372,10 @@ var Zotero_File_Interface = new function() {
 			var index = ps.confirmEx(
 				null,
 				"",
-				unsupportedFormat,
+				Zotero.getString("fileInterface.unsupportedFormat"),
 				buttonFlags,
 				null,
-				viewSupportedFormats,
+				Zotero.getString("fileInterface.viewSupportedFormats"),
 				null, null, {}
 			);
 			if (index == 1) {
diff --git a/chrome/content/zotero/upgrade.xul b/chrome/content/zotero/upgrade.xul
index 615512d0b9..fe44b4a35f 100644
--- a/chrome/content/zotero/upgrade.xul
+++ b/chrome/content/zotero/upgrade.xul
@@ -5,8 +5,7 @@
 
 <!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
 
-<!-- TODO: localize -->
-<wizard id="zotero-schema-upgrade" title="Zotero Upgrade Wizard"
+<wizard id="zotero-schema-upgrade" title="&zotero.upgrade.title;"
 		xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 	
 	<script>
diff --git a/chrome/content/zotero/xpcom/collectionTreeView.js b/chrome/content/zotero/xpcom/collectionTreeView.js
index cbf10fbd3f..8c58454c9b 100644
--- a/chrome/content/zotero/xpcom/collectionTreeView.js
+++ b/chrome/content/zotero/xpcom/collectionTreeView.js
@@ -161,7 +161,7 @@ Zotero.CollectionTreeView.prototype.refresh = function()
 		this._showRow(new Zotero.ItemGroup('separator', false));
 		var header = {
 			id: "group-libraries-header",
-			label: "Group Libraries", // TODO: localize
+			label: Zotero.getString('pane.collections.groupLibraries'),
 			expand: function (beforeRow, groups) {
 				if (!groups) {
 					var groups = Zotero.Groups.getAll();
diff --git a/chrome/content/zotero/xpcom/sync.js b/chrome/content/zotero/xpcom/sync.js
index 7ca6553ba1..454b4fc2bc 100644
--- a/chrome/content/zotero/xpcom/sync.js
+++ b/chrome/content/zotero/xpcom/sync.js
@@ -524,7 +524,7 @@ Zotero.Sync.Runner = new function () {
 		
 		if (Zotero.HTTP.browserIsOffline()){
 			this.clearSyncTimeout(); // DEBUG: necessary?
-			var msg = "Zotero cannot sync while " + Zotero.appName + " is in offline mode.";
+			var msg = "Zotero cannot sync because " + Zotero.getString('general.browserIsOffline', Zotero.appName);
 			var e = new Zotero.Error(msg, 0, { dialogButtonText: null })
 			Components.utils.reportError(e);
 			Zotero.debug(e, 1);
@@ -1838,12 +1838,12 @@ Zotero.Sync.Server = new function () {
 						Zotero.debug(e);
 					}
 					// TODO: localize
-					_error("SSL certificate error connecting to " + host
-						+ "\n\nSee http://zotero.org/support/kb/ssl_certificate_error for more information.",
+					_error(Zotero.getString('sync.storage.error.webdav.sslCertificateError', host) 
+						+ Zotero.getString('sync.error.seeCertificateErrorDoc'),
 						false, noReloadOnFailure);
 				}
 				else if ((secInfo.securityState & Ci.nsIWebProgressListener.STATE_IS_BROKEN) == Ci.nsIWebProgressListener.STATE_IS_BROKEN) {
-					_error("SSL connection error", false, noReloadOnFailure);
+					_error(Zotero.getString('sync.error.sslConnectionError'), false, noReloadOnFailure);
 				}
 			}
 			// TODO: localize
@@ -3179,10 +3179,9 @@ Zotero.Sync.Server.Data = new function() {
 				if (Zotero.Sync.Runner.background) {
 					Zotero.Sync.Server.manualSyncRequired = true;
 					
-					// TODO: localize again
-					//Zotero.getString('sync.error.manualInterventionRequired')
-					//Zotero.getString('sync.error.clickSyncIcon')
-					var msg = "Conflicts have suspended automatic syncing.\n\nClick the sync icon to resolve them.";
+					var msg = Zotero.getString('sync.error.manualInterventionRequired')
+					  + "\n\n"
+					  + Zotero.getString('sync.error.clickSyncIcon');
 					var e = new Zotero.Error(msg, 0, { dialogButtonText: null });
 					throw (e);
 				}
diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js
index c8cd887c91..91693dd7fd 100644
--- a/chrome/content/zotero/xpcom/zotero.js
+++ b/chrome/content/zotero/xpcom/zotero.js
@@ -555,17 +555,7 @@ Components.utils.import("resource://gre/modules/Services.jsm");
 			
 			var dir = Zotero.getProfileDirectory();
 			dir.append('zotero');
-			
-			var zs = Zotero.getString('app.standalone');
-			var zf = Zotero.getString('app.firefox');
-			// TODO: localize
-			var msg = "The currently selected data directory is not compatible "
-					+ "with " + zs + ", which can share a database only with "
-					+ zf + " 2.1b3 or later."
-					+ "\n\n"
-					+ "Upgrade to the latest version of " + zf + " first or select a "
-					+ "different data directory for use with " + zs + ".";
-					
+
 			var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
 						.createInstance(Components.interfaces.nsIPromptService);
 			var buttonFlags = (ps.BUTTON_POS_0) * (ps.BUTTON_TITLE_IS_STRING)
@@ -574,13 +564,12 @@ Components.utils.import("resource://gre/modules/Services.jsm");
 				+ ps.BUTTON_POS_2_DEFAULT;
 			var index = ps.confirmEx(
 				null,
-				// TODO: localize
-				"Incompatible Database Version",
-				msg,
+				Zotero.getString('dataDir.incompatibleDbVersion.title'),
+				Zotero.getString('dataDir.incompatibleDbVersion.text'),
 				buttonFlags,
-				"Use Default",
+				Zotero.getString('general.useDefault'),
 				Zotero.getString('dataDir.standaloneMigration.selectCustom'),
-				"Quit",
+				Zotero.getString('general.quit'),
 				null,
 				{}
 			);
@@ -1079,13 +1068,8 @@ Components.utils.import("resource://gre/modules/Services.jsm");
 					else {
 						var buttonFlags = ps.STD_YES_NO_BUTTONS;
 						var index = ps.confirmEx(null,
-							//Zotero.getString('dataDir.selectedDirEmpty.title'),
-							//Zotero.getString('dataDir.selectedDirEmpty.text'),
-							'Directory Empty',
-							'The directory you selected is empty. To move an existing Zotero data directory, '
-							+ 'you will need to manually copy files from the existing data directory to the new location. '
-							+ 'See http://zotero.org/support/zotero_data for more information.\n\nUse the new directory?',
-							
+							Zotero.getString('dataDir.selectedDirEmpty.title'),
+							Zotero.getString('dataDir.selectedDirEmpty.text'),
 							buttonFlags, null, null, null, null, {});
 						
 						// Not OK -- return to file picker
@@ -1733,15 +1717,15 @@ Components.utils.import("resource://gre/modules/Services.jsm");
 		
 		var modes = {
 			titleCreatorYear: {
-				label: "Title, Creator, Year"
+				label: Zotero.getString('quickSearch.mode.titleCreatorYear')
 			},
 			
 			fields: {
-				label: "All Fields & Tags"
+				label: Zotero.getString('quickSearch.mode.fieldsAndTags')
 			},
 			
 			everything: {
-				label: "Everything"
+				label: Zotero.getString('quickSearch.mode.everything')
 			}
 		};
 		
diff --git a/chrome/locale/en-US/zotero/zotero.dtd b/chrome/locale/en-US/zotero/zotero.dtd
index 19ace9481d..e0be718b87 100644
--- a/chrome/locale/en-US/zotero/zotero.dtd
+++ b/chrome/locale/en-US/zotero/zotero.dtd
@@ -5,6 +5,7 @@
 <!ENTITY zotero.general.edit								"Edit">
 <!ENTITY zotero.general.delete 								"Delete">
 
+<!ENTITY zotero.errorReport.title							"Zotero Error Report">
 <!ENTITY zotero.errorReport.unrelatedMessages				"The error log may include messages unrelated to Zotero.">
 <!ENTITY zotero.errorReport.submissionInProgress			"Please wait while the error report is submitted.">
 <!ENTITY zotero.errorReport.submitted						"Your error report has been submitted.">
@@ -12,6 +13,7 @@
 <!ENTITY zotero.errorReport.postToForums					"Please post a message to the Zotero forums (forums.zotero.org) with this Report ID, a description of the problem, and any steps necessary to reproduce it.">
 <!ENTITY zotero.errorReport.notReviewed					"Error reports are not reviewed unless referred to in the forums.">
 
+<!ENTITY zotero.upgrade.title							"Zotero Upgrade Wizard">
 <!ENTITY zotero.upgrade.newVersionInstalled				"You have installed a new version of Zotero.">
 <!ENTITY zotero.upgrade.upgradeRequired					"Your Zotero database must be upgraded to work with the new version.">
 <!ENTITY zotero.upgrade.autoBackup							"Your existing database will be backed up automatically before any changes are made.">
diff --git a/chrome/locale/en-US/zotero/zotero.properties b/chrome/locale/en-US/zotero/zotero.properties
index 899b6f7451..ccb7138ab4 100644
--- a/chrome/locale/en-US/zotero/zotero.properties
+++ b/chrome/locale/en-US/zotero/zotero.properties
@@ -38,6 +38,8 @@ general.enable						= Enable
 general.disable						= Disable
 general.remove						= Remove
 general.reset						= Reset
+general.quit						= Quit
+general.useDefault					= Use Default
 general.openDocumentation			= Open Documentation
 general.numMore                    = %S more…
 
@@ -71,6 +73,10 @@ errorReport.advanceMessage			= Press %S to send an error report to the Zotero de
 errorReport.stepsToReproduce		= Steps to Reproduce:
 errorReport.expectedResult			= Expected result:
 errorReport.actualResult			= Actual result:
+errorReport.noNetworkConnection		= No network connection
+errorReport.invalidResponseRepository	= Invalid response from repository
+errorReport.repoCannotBeContacted	= Repository cannot be contacted
+
 
 attachmentBasePath.selectDir                                   = Choose Base Directory
 attachmentBasePath.chooseNewPath.title                         = Confirm New Base Directory
@@ -90,6 +96,10 @@ dataDir.useProfileDir				= Use %S profile directory
 dataDir.selectDir					= Select a Zotero data directory
 dataDir.selectedDirNonEmpty.title		= Directory Not Empty
 dataDir.selectedDirNonEmpty.text		= The directory you selected is not empty and does not appear to be a Zotero data directory.\n\nCreate Zotero files in this directory anyway?
+dataDir.selectedDirEmpty.title			= Directory Empty
+dataDir.selectedDirEmpty.text			= The directory you selected is empty. To move an existing Zotero data directory, you will need to manually copy files from the existing data directory to the new location. See http://zotero.org/support/zotero_data for more information.\n\nUse the new directory?
+dataDir.incompatibleDbVersion.title		= Incompatible Database Version
+dataDir.incompatibleDbVersion.text		= The currently selected data directory is not compatible with Zotero Standalone, which can share a database only with Zotero for Firefox 2.1b3 or later.\n\nUpgrade to the latest version of Zotero for Firefox first or select a different data directory for use with Zotero Standalone.
 dataDir.standaloneMigration.title				= Existing Zotero Library Found
 dataDir.standaloneMigration.description			= This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
 dataDir.standaloneMigration.multipleProfiles	= %1$S will share its data directory with the most recently used profile.
@@ -129,6 +139,7 @@ pane.collections.newSavedSeach	= New Saved Search
 pane.collections.savedSearchName = Enter a name for this saved search:
 pane.collections.rename			= Rename collection:
 pane.collections.library		= My Library
+pane.collections.groupLibraries	= Group Libraries
 pane.collections.trash			= Trash
 pane.collections.untitled		= Untitled
 pane.collections.unfiled		= Unfiled Items
@@ -534,7 +545,8 @@ 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.unsupportedFormat = The selected file is not in a supported format.
+fileInterface.viewSupportedFormats = View Supported Formats…
 fileInterface.untitledBibliography = Untitled Bibliography
 fileInterface.bibliographyHTMLTitle = Bibliography
 fileInterface.importError 		= An error occurred while trying to import the selected file. Please ensure that the file is valid and try again.
@@ -543,6 +555,10 @@ fileInterface.noReferencesError	= The items you have selected contain no referen
 fileInterface.bibliographyGenerationError = An error occurred generating your bibliography. Please try again.
 fileInterface.exportError = An error occurred while trying to export the selected file.
 
+quickSearch.mode.titleCreatorYear	= Title, Creator, Year
+quickSearch.mode.fieldsAndTags 		= All Fields & Tags
+quickSearch.mode.everything 		= Everything
+
 advancedSearchMode				= Advanced search mode — press Enter to search.
 searchInProgress					= Search in progress — please wait.
 
@@ -712,8 +728,10 @@ sync.error.syncInProgress.wait		= Wait for the previous sync to complete or rest
 sync.error.writeAccessLost			= You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
 sync.error.groupWillBeReset			= If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
 sync.error.copyChangedItems			= If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
-sync.error.manualInterventionRequired	= An automatic sync resulted in a conflict that requires manual intervention.
-sync.error.clickSyncIcon			= Click the sync icon to sync manually.
+sync.error.manualInterventionRequired	= Conflicts have suspended automatic syncing.
+sync.error.clickSyncIcon			= Click the sync icon to resolve them.
+sync.error.seeCertificateErrorDoc	= \n\nSee http://zotero.org/support/kb/ssl_certificate_error for more information.
+sync.error.sslConnectionError 		= SSL connection error
 
 sync.status.notYetSynced			= Not yet synced
 sync.status.lastSync				= Last sync: