[open-ils-commits] r7650 - in trunk/Open-ILS: web/opac/locale/en-US xul/staff_client/chrome/content/circ xul/staff_client/chrome/content/main xul/staff_client/chrome/locale/en-US

svn at svn.open-ils.org svn at svn.open-ils.org
Thu Aug 9 10:51:42 EDT 2007


Author: miker
Date: 2007-08-09 10:48:38 -0400 (Thu, 09 Aug 2007)
New Revision: 7650

Modified:
   trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
   trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline.xul
   trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.js
   trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul
   trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.js
   trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.xul
   trunk/Open-ILS/xul/staff_client/chrome/content/main/lang.js
   trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/common.properties
Log:
(initial, partly broken) offline stringbundle patch from Dan Scott

Modified: trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
===================================================================
--- trunk/Open-ILS/web/opac/locale/en-US/lang.dtd	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/web/opac/locale/en-US/lang.dtd	2007-08-09 14:48:38 UTC (rev 7650)
@@ -2,6 +2,8 @@
 <!ENTITY lang.description "English">
 <!ENTITY lang.author "PINES">
 
+<!ENTITY common.enter "Enter">
+<!ENTITY common.enter.accesskey "E">
 <!ENTITY common.title "Title">
 <!ENTITY common.author "Author">
 <!ENTITY common.subject "Subject">
@@ -21,6 +23,10 @@
 <!ENTITY common.password "Password">
 <!ENTITY common.submit "Submit">
 <!ENTITY common.user_not_found "User not found">
+<!ENTITY common.unimplemented 'Not Yet Implemented'>
+<!ENTITY common.delete_transactions.label 'Delete selected transaction'>
+<!ENTITY common.save_transactions.accesskey 'S'>
+<!ENTITY common.save_transactions.label 'Save these transactions'>
 
 <!ENTITY ilsevent.1000 "Login failed.  The username or password entered was incorrect.">
 <!ENTITY ilsevent.1001 "Login session has timed out or does not exist">
@@ -296,6 +302,57 @@
 <!ENTITY staff.checkin_patron.retrieve 'Retrieve Patron'>
 <!ENTITY staff.checkin_patron.retrieve.accesskey 'R'>
 <!ENTITY staff.checkout_interface_label "CHECK OUT">
+<!ENTITY staff.circ.offline.main.label 'Evergreen Offline'>
+<!ENTITY staff.circ.offline.server_time.tooltiptext 'Estimated Server Time - Click to adjust'>
+<!ENTITY staff.circ.offline.cmd_checkout.accesskey 'C'>
+<!ENTITY staff.circ.offline.cmd_checkout.label 'Check Out'>
+<!ENTITY staff.circ.offline.cmd_renew.accesskey 'r'>
+<!ENTITY staff.circ.offline.cmd_renew.label 'Renew'>
+<!ENTITY staff.circ.offline.cmd_in_house_use.accesskey 'h'>
+<!ENTITY staff.circ.offline.cmd_in_house_use.label 'In House Use'>
+<!ENTITY staff.circ.offline.cmd_checkin.accesskey 'i'>
+<!ENTITY staff.circ.offline.cmd_checkin.label 'Check In'>
+<!ENTITY staff.circ.offline.cmd_register_patron.accesskey 'p'>
+<!ENTITY staff.circ.offline.cmd_register_patron.label 'Register Patron'>
+<!ENTITY staff.circ.offline.cmd_print_last_receipt.accesskey 'l'>
+<!ENTITY staff.circ.offline.cmd_print_last_receipt.label 'Last Receipt'>
+<!ENTITY staff.circ.offline.cmd_exit.accesskey 'x'>
+<!ENTITY staff.circ.offline.cmd_exit.label 'Exit'>
+<!ENTITY staff.circ.offline_checkin.main.label 'Standalone Check In'>
+<!ENTITY staff.circ.offline_checkin.step1.description "Check today's date above.">
+<!ENTITY staff.circ.offline_checkin.step1.label 'Step 1)'>
+<!ENTITY staff.circ.offline_checkin.step2.accesskey '2'>
+<!ENTITY staff.circ.offline_checkin.step2.description 'Enter the item barcode:'>
+<!ENTITY staff.circ.offline_checkin.step2.label 'Step 2)'>
+<!ENTITY staff.circ.offline_checkin.step2a.accesskey 'E'>
+<!ENTITY staff.circ.offline_checkin.step2a.label 'Enter'>
+<!ENTITY staff.circ.offline_checkin.step2b.label 'Check barcode?'>
+<!ENTITY staff.circ.offline_checkin.step3.description 'Repeat Steps 2 until done.'>
+<!ENTITY staff.circ.offline_checkin.step3.label 'Step 3)'>
+<!ENTITY staff.circ.offline.finish.description 'Finish'>
+<!ENTITY staff.circ.offline_checkin.step4.label 'Step 4)'>
+<!ENTITY staff.circ.offline.print.description 'Print receipt?'>
+<!ENTITY staff.circ.offline_checkout.main.label 'Standalone Check Out'>
+<!ENTITY staff.circ.offline_checkout.step1.description "Check today's date above.">
+<!ENTITY staff.circ.offline_checkout.step1.label 'Step 1)'>
+<!ENTITY staff.circ.offline_checkout.step2.accesskey '2'>
+<!ENTITY staff.circ.offline_checkout.step2.description "Enter the patron's barcode:">
+<!ENTITY staff.circ.offline_checkout.step2.label 'Step 2)'>
+<!ENTITY staff.circ.offline_checkout.step3.accesskey '3'>
+<!ENTITY staff.circ.offline_checkout.step3.description 'Enter the item due date:'>
+<!ENTITY staff.circ.offline_checkout.step3.label 'Step 3)'>
+<!ENTITY staff.circ.offline_checkout.step4.accesskey '4'>
+<!ENTITY staff.circ.offline_checkout.step4.description 'Enter the item barcode:'>
+<!ENTITY staff.circ.offline_checkout.step4.label 'Step 4)'>
+<!ENTITY staff.circ.offline_checkout.step5.description 'Repeat Steps 3 and 4 until done.'>
+<!ENTITY staff.circ.offline_checkout.step5.label 'Step 5)'>
+<!ENTITY staff.circ.offline_checkout.step6.label 'Step 6)'>
+<!ENTITY staff.circ.offline_checkout.date_helper 'or choose one of these'>
+<!ENTITY staff.circ.offline_checkout.date_helper.3_days 'Today + 3 days'>
+<!ENTITY staff.circ.offline_checkout.date_helper.7_days 'Today + 7 days'>
+<!ENTITY staff.circ.offline_checkout.date_helper.14_days 'Today + 14 days'>
+<!ENTITY staff.circ.offline_checkout.date_helper.30_days 'Today + 30 days'>
+<!ENTITY staff.circ.offline_checkout.strict_barcode.label 'Check barcode?'>
 <!ENTITY staff.circ.checkin.caption 'Check In'>
 <!ENTITY staff.circ.checkin.scan_label 'Enter Barcode:'>
 <!ENTITY staff.circ.checkin.scan_label.accesskey 'a'>

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline.xul	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline.xul	2007-08-09 14:48:38 UTC (rev 7650)
@@ -30,17 +30,20 @@
 	<script type="text/javascript" src="chrome://open_ils_staff_client/content/main/JSAN.js"/>
 	<script>
 	<![CDATA[
+		var circStrings = document.getElementById('circStrings');
+		var commonStrings = document.getElementById('commonStrings');
+
 		function my_init() {
 			try {
 				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-		                if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
+		                if (typeof JSAN == 'undefined') { throw(commonStrings.getString('common.jsan.missing')); }
 				JSAN.errorLevel = "die"; // none, warn, or die
 				JSAN.addRepository('..');
 				JSAN.use('util.error'); g.error = new util.error();
 				g.error.sdump('D_TRACE','my_init() for offline.xul');
 
 				if (typeof window.xulG == 'object' && typeof window.xulG.set_tab_name == 'function') {
-					try { window.xulG.set_tab_name('Standalone'); } catch(E) { alert(E); }
+					try { window.xulG.set_tab_name(circStrings.getString('circ.standalone')); } catch(E) { alert(E); }
 				}
 
 				g.cgi = new CGI();
@@ -53,6 +56,7 @@
 				JSAN.use('util.date');
 				
 				function update_clock() {
+					/* I18N to-do: enable localized date formats */
 					var today = util.date.formatted_date(new Date(),"%F %H:%M:%s");
 					document.getElementById('today').setAttribute('label',today);
 					setTimeout(update_clock,1);
@@ -61,8 +65,7 @@
 				update_clock();
 
 			} catch(E) {
-				var err_msg = "!! This software has encountered an error.  Please tell your friendly " +
-					"system administrator or software developer the following:\ncirc/offline.xul\n" + E + '\n';
+				var err_msg = commonStrings.getFormattedString('common.exception', ["circ/offline.xul", E]);
 				try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
 				alert(err_msg);
 			}
@@ -71,18 +74,23 @@
 	]]>
 	</script>
 
+	<stringbundleset id="circBundleSet">
+		<stringbundle id="commonStrings" src="chrome://open_ils_staff_client/locale/common.properties"/>
+		<stringbundle id="circStrings" src="chrome://open_ils_staff_client/locale/circ.properties"/>
+	</stringbundleset>
+
 	<groupbox flex="1" class="my_overflow">
-		<caption label="Evergreen Offline"/>
+		<caption label="&staff.circ.offline.main.label;"/>
 		<hbox id="nav">
-			<button id="today" onclick="alert('Not Yet Implemented');" tooltiptext="Estimated Server Time - Click to adjust"/>
+			<button id="today" onclick="alert('&common.unimplemented;');" tooltiptext="&staff.circ.offline.server_time.tooltiptext;"/>
 			<spacer flex="1"/>
-			<button id="cmd_checkout" label="Check Out" accesskey="C"/>
-			<button id="cmd_renew" label="Renew" accesskey="r"/>
-			<button id="cmd_in_house_use" label="In House Use" accesskey="h"/>
-			<button id="cmd_checkin" label="Check In" accesskey="i"/>
-			<button id="cmd_register_patron" label="Register Patron" accesskey="p"/>
-			<button id="cmd_print_last_receipt" label="Last Receipt" accesskey="l"/>
-			<button id="cmd_exit" label="Exit" accesskey="x"/>
+			<button id="cmd_checkout" label="&staff.circ.offline.cmd_checkout.label;" accesskey="&staff.circ.offline.cmd_checkout.accesskey;"/>
+			<button id="cmd_renew" label="&staff.circ.offline.cmd_renew.label;" accesskey="&staff.circ.offline.cmd_renew.accesskey;"/>
+			<button id="cmd_in_house_use" label="&staff.circ.offline.cmd_in_house_use.label;" accesskey="&staff.circ.offline.cmd_in_house_use.accesskey;"/>
+			<button id="cmd_checkin" label="&staff.circ.offline.cmd_checkin.label;" accesskey="&staff.circ.offline.cmd_checkin.accesskey;"/>
+			<button id="cmd_register_patron" label="&staff.circ.offline.cmd_register_patron.label;" accesskey="&staff.circ.offline.cmd_register_patron.accesskey;"/>
+			<button id="cmd_print_last_receipt" label="&staff.circ.offline.cmd_print_last_receipt.label;" accesskey="&staff.circ.offline.cmd_print_last_receipt.accesskey;"/>
+			<button id="cmd_exit" label="&staff.circ.offline.cmd_exit.label;" accesskey="&staff.circ.offline.cmd_exit.accesskey;"/>
 		</hbox>
 		<deck id="main" style="border: solid thin red; background-color: #FFAAAA;" flex="1">
 			<vbox flex="1">

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.js	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.js	2007-08-09 14:48:38 UTC (rev 7650)
@@ -1,14 +1,16 @@
+var commonStrings = document.getElementById('commonStrings');
+var circStrings = document.getElementById('circStrings');
 function my_init() {
 	try {
 		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-		if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
+		if (typeof JSAN == 'undefined') { throw(commonStrings.getString('common.jsan.missing')); }
 		JSAN.errorLevel = "die"; // none, warn, or die
 		JSAN.addRepository('..');
 		JSAN.use('util.error'); g.error = new util.error();
 		g.error.sdump('D_TRACE','my_init() for offline_checkin.xul');
 
 		if (typeof window.xulG == 'object' && typeof window.xulG.set_tab_name == 'function') {
-			try { window.xulG.set_tab_name('Standalone'); } catch(E) { alert(E); }
+			try { window.xulG.set_tab_name(circStrings.getString('circ.standalone')); } catch(E) { alert(E); }
 		}
 
 		JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'});
@@ -34,8 +36,7 @@
 		if (file._file.exists()) { g.delta = file.get_object()[0]; file.close(); } else { g.delta = 0; }
 
 	} catch(E) {
-		var err_msg = "!! This software has encountered an error.  Please tell your friendly " +
-			"system administrator or software developer the following:\ncirc/offline_checkin.xul\n" + E + '\n';
+		var err_msg = commonStrings.getFormattedMessage('common.exception', ["circ/offline_checkin.xul", E]);
 		try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
 		alert(err_msg);
 	}
@@ -54,7 +55,7 @@
 function handle_enter(ev) {
 	JSAN.use('util.barcode');
 	if ( ($('strict_i_barcode').checked) && (! util.barcode.check($('i_barcode').value)) ) {
-		var r = g.error.yns_alert('This barcode has a bad checkdigit.','Barcode Warning','Ok','Clear',null,'Check here to confirm this message');
+		var r = g.error.yns_alert(circStrings.getString('circ.bad_checkdigit'),circStrings.getString('circ.barcode.warning'),commonStrings.getString('common.ok'),commonStrings.getString('common.clear'),null,commonStrings.getString('common.confirm'));
 		if (r == 1) {
 			setTimeout(
 				function() {
@@ -78,6 +79,7 @@
 
 		my.type = 'checkin';
 		my.timestamp = parseInt( new Date().getTime() / 1000) + g.delta;
+		/* I18N to-do: enable localized date formats */
 		my.backdate = util.date.formatted_date(new Date(),"%F %H:%M:%s");
 
 		var i_barcode = $('i_barcode').value;

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul	2007-08-09 14:48:38 UTC (rev 7650)
@@ -29,44 +29,49 @@
 	<script type="text/javascript" src="chrome://open_ils_staff_client/content/main/JSAN.js"/>
 	<script type="text/javascript" src="offline_checkin.js"/>
 
+	<stringbundleset id="circBundleSet">
+		<stringbundle id="commonStrings" src="chrome://open_ils_staff_client/locale/common.properties"/>
+		<stringbundle id="circStrings" src="chrome://open_ils_staff_client/locale/circ.properties"/>
+	</stringbundleset>
+
 	<groupbox flex="1">
-		<caption label="Standalone Check In"/>
+		<caption label="&staff.circ.offline_checkin.main.label;"/>
 		<hbox flex="1">
 			<vbox flex="1">
 				<hbox>
-					<label value="Step 1)" style="font-weight: bold" />
-					<description>Check today's date above.</description>
+					<label value="&staff.circ.offline_checkin.step1.label;" style="font-weight: bold" />
+					<description>&staff.circ.offline_checkin.step1.description;</description>
 				</hbox>
 				<hbox>
-					<label value="Step 2)" style="font-weight: bold" accesskey="2" control="i_barcode"/>
-					<description>Enter the item barcode:</description>
+					<label value="&staff.circ.offline_checkin.step2.label;" style="font-weight: bold" accesskey="&staff.circ.offline_checkin.step2.accesskey;" control="i_barcode"/>
+					<description>&staff.circ.offline_checkin.step2.description;</description>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<hbox><textbox id="i_barcode"/><button id="enter" label="Enter" accesskey="E"/></hbox>
+					<hbox><textbox id="i_barcode"/><button id="enter" label="&staff.circ.offline_checkin.step2a.label;" accesskey="&staff.circ.offline_checkin.step2a.accesskey;"/></hbox>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<description>Check barcode?</description>
+					<description>&staff.circ.offline_checkin.step2b.label;</description>
 					<checkbox id="strict_i_barcode" persist="checked"/>
 				</hbox>
 				<hbox>
-					<label value="Step 3)" style="font-weight: bold"/>
-					<description>Repeat Steps 2 until done.</description>
+					<label value="&staff.circ.offline_checkin.step3.label;" style="font-weight: bold"/>
+					<description>&staff.circ.offline_checkin.step3.description;</description>
 				</hbox>
 				<hbox>
-					<label value="Step 4)" style="font-weight: bold"/>
-					<description>Finish</description>
+					<label value="&staff.circ.offline_checkin.step4.label;" style="font-weight: bold"/>
+					<description>&staff.circ.offline.finish.description;</description>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<description>Print receipt?</description>
+					<description>&staff.circ.offline.print.description;</description>
 					<checkbox id="print_receipt" persist="checked"/>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<button id="cancel" label="Cancel" oncommand="g.list.clear()"/>
-					<button id="submit" label="Save these transactions" accesskey="S" />
+					<button id="cancel" label="&common.cancel;" oncommand="g.list.clear()"/>
+					<button id="submit" label="&common.save_transactions.label;" accesskey="&common.save_transactions.accesskey;" />
 				</hbox>
 			</vbox>
 			<splitter>
@@ -76,7 +81,7 @@
 				<tree id="checkin_list" flex="1" enableColumnDrag="true"/>
 				<hbox id="checkin_bottom_ui">
 					<spacer flex="1"/>
-					<button id="delete" label="Delete selected transaction" oncommand="alert('Not Yet Implemented');"/>
+					<button id="delete" label="&common.delete_transactions.label;" oncommand="alert('&common.unimplemented;');"/>
 				</hbox>
 			</vbox>
 		</hbox>

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.js	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.js	2007-08-09 14:48:38 UTC (rev 7650)
@@ -1,7 +1,10 @@
+var commonStrings = document.getElementById('commonStrings');
+var circStrings = document.getElementById('circStrings');
+
 function my_init() {
 	try {
 		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-		if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
+		if (typeof JSAN == 'undefined') { throw(commonStrings.getString('common.jsan.missing')); }
 		JSAN.errorLevel = "die"; // none, warn, or die
 		JSAN.addRepository('..');
 		JSAN.use('util.error'); g.error = new util.error();
@@ -10,7 +13,7 @@
 		JSAN.use('util.widgets'); JSAN.use('util.file');
 
 		if (typeof window.xulG == 'object' && typeof window.xulG.set_tab_name == 'function') {
-			try { window.xulG.set_tab_name('Standalone'); } catch(E) { alert(E); }
+			try { window.xulG.set_tab_name(circStrings.getString('circ.standalone')); } catch(E) { alert(E); }
 		}
 
 		JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'});
@@ -53,29 +56,28 @@
 		if (file._file.exists()) {
 			list_data = file.get_object(); file.close();
 			ml = util.widgets.make_menulist( 
-				[ ['or choose a non-barcoded option...', ''] ].concat(list_data[0]), 
+				[ [circStrings.getString('circ.offline_checkout.nonbarcoded'), ''] ].concat(list_data[0]), 
 				list_data[1] 
 			);
 			ml.setAttribute('id','noncat_type_menu'); $('x_noncat_type').appendChild(ml);
 			ml.addEventListener(
 				'command',
 				function(ev) { 
-					var count = window.prompt('Enter the number of items:',1,ml.getAttribute('label'));
+					var count = window.prompt(circStrings.getString('circ.offline_checkout.items'),1,ml.getAttribute('label'));
 					append_to_list('noncat',count);	
 					ml.value = '';
 				},
 				false
 			);
 		} else {
-			alert('WARNING: The non-barcode types have not been downloaded from the server.  You should log in to retrieve these.');
+			alert(circStrings.getString('circ.offline_checkout.download.warning'));
 		}
 
 		var file = new util.file('offline_delta'); 
 		if (file._file.exists()) { g.delta = file.get_object()[0]; file.close(); } else { g.delta = 0; }
 
 	} catch(E) {
-		var err_msg = "!! This software has encountered an error.  Please tell your friendly " +
-			"system administrator or software developer the following:\ncirc/offline_checkout.xul\n" + E + '\n';
+		var err_msg = commonStrings.getFormattedMessage('common.exception', ["circ/offline_checkout.xul", E]);
 		try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
 		alert(err_msg);
 	}
@@ -88,7 +90,7 @@
 		var barcode = ev.target.value;
 		JSAN.use('util.barcode');
 		if ( ($('strict_p_barcode').checked) && (! util.barcode.check(barcode)) ) {
-			var r = g.error.yns_alert('This barcode has a bad checkdigit.','Barcode Warning','Ok','Clear',null,'Check here to confirm this message');
+			var r = g.error.yns_alert(circStrings.getString('circ.bad_checkdigit'),circStrings.getString('circ.barcode.warning'),commonStrings.getString('common.ok'),commonStrings.getString('common.clear'),null,commonStrings.getString('common.confirm'));
 			if (r == 1) {
 				setTimeout(
 					function() {
@@ -100,15 +102,15 @@
 
 		}
 		if (g.data.bad_patrons[barcode]) {
-			var msg = 'Warning: As of ' + g.data.bad_patrons_date.substr(0,15) + ', this barcode (' + barcode + ') was flagged ';
+			var msg = '';
 			switch(g.data.bad_patrons[barcode]) {
-				case 'L' : msg += 'Lost'; break;
-				case 'E' : msg += 'Expired'; break;
-				case 'B' : msg += 'Barred'; break;
-				case 'D' : msg += 'Blocked'; break;
-				default : msg += ' with an unknown code: ' + g.data.bad_patrons[barcode]; break;
+				case 'L' : msg = circStrings.getFormattedString('circ.offline_checkout.barcode.flagged.lost', [g.data.bad_patrons_date.substr(0,15), barcode]); break;
+				case 'E' : msg = circStrings.getFormattedString('circ.offline_checkout.barcode.flagged.expired', [g.data.bad_patrons_date.substr(0,15), barcode]); break;
+				case 'B' : msg = circStrings.getFormattedString('circ.offline_checkout.barcode.flagged.barred', [g.data.bad_patrons_date.substr(0,15), barcode]); break;
+				case 'D' : msg = circStrings.getFormattedString('circ.offline_checkout.barcode.flagged.blocked', [g.data.bad_patrons_date.substr(0,15), barcode]); break;
+				default : msg = circStrings.getFormattedString('circ.offline_checkout.barcode.flagged.unknown', [g.data.bad_patrons_date.substr(0,15), barcode, g.data.bad_patrons[barcode]]); break;
 			}
-			var r = g.error.yns_alert(msg,'Barcode Warning','Ok','Clear',null,'Check here to confirm this message');
+			var r = g.error.yns_alert(msg,circStrings.getString('circ.barcode.warning'),commonStrings.getString('common.ok'),commonStrings.getString('common.clear'),null,commonStrings.getString('common.confirm'));
 			if (r == 1) {
 				setTimeout(
 					function() {
@@ -126,9 +128,9 @@
 function check_date(ev) {
 	JSAN.use('util.date');
 	try {
-		if (! util.date.check('YYYY-MM-DD',ev.target.value) ) { throw('Invalid Date'); }
-		if (util.date.check_past('YYYY-MM-DD',ev.target.value) ) { throw('Due date needs to be after today.'); }
-		if ( util.date.formatted_date(new Date(),'%F') == ev.target.value) { throw('Due date needs to be after today.'); }
+		if (! util.date.check('YYYY-MM-DD',ev.target.value) ) { throw(circStrings.getString('circ.offline_checkout.date.invalid')); }
+		if (util.date.check_past('YYYY-MM-DD',ev.target.value) ) { throw(circStrings.getString('circ.offline_checkout.date.early')); }
+		if (util.date.formatted_date(new Date(),'%F') == ev.target.value) { throw(circStrings.getString('circ.offline_checkout.date.early')); }
 	} catch(E) {
 		alert(E);
 		var today = new Date();
@@ -150,7 +152,7 @@
 function handle_enter(ev) {
 	JSAN.use('util.barcode');
 	if ( ($('strict_i_barcode').checked) && (! util.barcode.check($('i_barcode').value)) ) {
-		var r = g.error.yns_alert('This barcode has a bad checkdigit.','Barcode Warning','Ok','Clear',null,'Check here to confirm this message');
+		var r = g.error.yns_alert(circStrings.getString('circ.bad_checkdigit'),circStrings.getString('circ.barcode.warning'),commonStrings.getString('common.ok'),commonStrings.getString('common.clear'),null,commonStrings.getString('common.confirm'));
 		if (r == 1) {
 			setTimeout(
 				function() {
@@ -189,7 +191,7 @@
 
 		var p_barcode = $('p_barcode').value;
 		if (! p_barcode) {
-			g.error.yns_alert('Please enter a patron barcode first.','Required Field','Ok',null,null,'Check here to confirm this message');
+			g.error.yns_alert(circStrings.getString('circ.barcode.enter'),circStrings.getString('circ.offline_checkout.required_field'),commonStrings.getString('common.ok'),null,null,commonStrings.getString('common.confirm'));
 			return;
 		} else {
 
@@ -208,7 +210,7 @@
 				var rows = g.list.dump_with_keys();
 				for (var i = 0; i < rows.length; i++) {
 					if (rows[i].barcode == i_barcode) {
-						g.error.yns_alert('This barcode has already been scanned.','Duplicate Scan','Ok',null,null,'Check here to confirm this message');
+						g.error.yns_alert(circStrings.getString('circ.duplicate_scan.msg'),circStrings.getString('circ.duplicate_scan.field'),commonStrings.getString('common.ok'),null,null,commonStrings.getString('common.confirm'));
 						return;
 					}
 				}
@@ -217,7 +219,7 @@
 			break;
 			case 'noncat' :
 				count = parseInt(count); if (! (count>0) ) {
-					g.error.yns_alert("Please try again and enter a valid count.",'Required Value','Ok',null,null,'Check here to confirm this message');
+					g.error.yns_alert(circStrings.getString('circ.offline_checkout.valid_count'),circStrings.getString('circ.offline_checkout.required_value'),commonStrings.getString('common.ok'),null,null,commonStrings.getString('common.confirm'));
 					return;
 				}
 				my.barcode = $('noncat_type_menu').getAttribute('label');
@@ -225,7 +227,7 @@
 				my.noncat_type = JSON2js($('noncat_type_menu').value)[0];
 				my.noncat_count = count;
 			break;
-			default: alert("Please report that this happened."); break;
+			default: alert(commonStrings.getString('common.error.default')); break;
 		}
 	
 		g.list.append( { 'row' : { 'my' : my }, 'to_top' : true } );

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.xul	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.xul	2007-08-09 14:48:38 UTC (rev 7650)
@@ -29,17 +29,22 @@
 	<script type="text/javascript" src="chrome://open_ils_staff_client/content/main/JSAN.js"/>
 	<script type="text/javascript" src="offline_checkout.js"/>
 
+	<stringbundleset id="circBundleSet">
+		<stringbundle id="commonStrings" src="chrome://open_ils_staff_client/locale/common.properties"/>
+		<stringbundle id="circStrings" src="chrome://open_ils_staff_client/locale/circ.properties"/>
+	</stringbundleset>
+
 	<groupbox flex="1">
-		<caption label="Standalone Check Out"/>
+		<caption label="&staff.circ.offline_checkout.main.label;"/>
 		<hbox flex="1">
 			<vbox flex="1">
 				<hbox>
-					<label value="Step 1)" style="font-weight: bold" />
-					<description>Check today's date above.</description>
+					<label value="&staff.circ.offline_checkout.step1.label;" style="font-weight: bold" />
+					<description>&staff.circ.offline_checkout.step1.description;</description>
 				</hbox>
 				<hbox>
-					<label value="Step 2)" style="font-weight: bold" accesskey="2" control="p_barcode"/>
-					<description>Enter the patron's barcode:</description>
+					<label value="&staff.circ.offline_checkout.step2.label;" style="font-weight: bold" accesskey="&staff.circ.offline_checkout.step2.accesskey;" control="p_barcode"/>
+					<description>&staff.circ.offline_checkout.step2.description;</description>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
@@ -47,12 +52,12 @@
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<description>Check barcode?</description>
+					<description>&staff.circ.offline_checkout.strict_barcode.label;</description>
 					<checkbox id="strict_p_barcode" persist="checked"/>
 				</hbox>
 				<hbox>
-					<label value="Step 3)" style="font-weight: bold" accesskey="3" control="duedate"/>
-					<description>Enter the item due date:</description>
+					<label value="&staff.circ.offline_checkout.step3.label;" style="font-weight: bold" accesskey="&staff.circ.offline_checkout.step3.accesskey;" control="duedate"/>
+					<description>&staff.circ.offline_checkout.step3.description;</description>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
@@ -62,21 +67,21 @@
 					<spacer flex="1"/>
 					<menulist id="duedate_menu">
 						<menupopup>
-							<menuitem label="or choose one of these" value="0"/>
-							<menuitem label="Today + 3 days" value="3"/>
-							<menuitem label="Today + 7 days" value="7"/>
-							<menuitem label="Today + 14 days" value="14"/>
-							<menuitem label="Today + 30 days" value="30"/>
+							<menuitem label="&staff.circ.offline_checkout.date_helper;" value="0"/>
+							<menuitem label="&staff.circ.offline_checkout.date_helper.3_days;" value="3"/>
+							<menuitem label="&staff.circ.offline_checkout.date_helper.7_days;" value="7"/>
+							<menuitem label="&staff.circ.offline_checkout.date_helper.14_days;" value="14"/>
+							<menuitem label="&staff.circ.offline_checkout.date_helper.30_days;" value="30"/>
 						</menupopup>
 					</menulist>
 				</hbox>
 				<hbox>
-					<label value="Step 4)" style="font-weight: bold" accesskey="4" control="i_barcode"/>
-					<description>Enter the item barcode:</description>
+					<label value="&staff.circ.offline_checkout.step4.label;" style="font-weight: bold" accesskey="&staff.circ.offline_checkout.step4.accesskey;" control="i_barcode"/>
+					<description>&staff.circ.offline_checkout.step4.description;</description>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<hbox><textbox id="i_barcode"/><button id="enter" label="Enter" accesskey="E"/></hbox>
+					<hbox><textbox id="i_barcode"/><button id="enter" label="&common.enter;" accesskey="&common.enter.accesskey;"/></hbox>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
@@ -84,26 +89,26 @@
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<description>Check barcode?</description>
+					<description>&staff.circ.offline_checkout.strict_barcode.label;</description>
 					<checkbox id="strict_i_barcode" persist="checked"/>
 				</hbox>
 				<hbox>
-					<label value="Step 5)" style="font-weight: bold"/>
-					<description>Repeat Steps 3 and 4 until done.</description>
+					<label value="&staff.circ.offline_checkout.step5.label;" style="font-weight: bold"/>
+					<description>&staff.circ.offline_checkout.step5.description;</description>
 				</hbox>
 				<hbox>
-					<label value="Step 6)" style="font-weight: bold"/>
-					<description>Finish</description>
+					<label value="&staff.circ.offline_checkout.step6.label;" style="font-weight: bold"/>
+					<description>&staff.circ.offline.finish.description;</description>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<description>Print receipt?</description>
+					<description>&staff.circ.offline.print.description;</description>
 					<checkbox id="print_receipt" persist="checked"/>
 				</hbox>
 				<hbox>
 					<spacer flex="1"/>
-					<button id="cancel" label="Cancel" />
-					<button id="submit" label="Save these transactions" accesskey="S" />
+					<button id="cancel" label="&common.cancel;" />
+					<button id="submit" label="&common.save_transactions.label;" accesskey="&common.save_transactions.accesskey;" />
 				</hbox>
 			</vbox>
 			<splitter>
@@ -113,7 +118,7 @@
 				<tree id="checkout_list" flex="1" enableColumnDrag="true"/>
 				<hbox id="checkout_bottom_ui">
 					<spacer flex="1"/>
-					<button id="delete" label="Delete selected transaction" oncommand="alert('Not Yet Implemented');"/>
+					<button id="delete" label="&common.delete_transactions.label;" oncommand="alert('&common.unimplemented;');"/>
 				</hbox>
 			</vbox>
 		</hbox>

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/lang.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/lang.js	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/lang.js	2007-08-09 14:48:38 UTC (rev 7650)
@@ -1,6 +1,8 @@
 var entities = {};entities['lang.version'] = "remote v1";
 entities['lang.description'] = "English";
 entities['lang.author'] = "PINES";
+entities['common.enter'] = "Enter";
+entities['common.enter.accesskey'] = "E";
 entities['common.title'] = "Title";
 entities['common.author'] = "Author";
 entities['common.subject'] = "Subject";
@@ -16,14 +18,23 @@
 entities['common.cancel'] = "Cancel";
 entities['common.library'] = "Library";
 entities['common.username'] = "Username";
+entities['common.username.label'] = "Username:";
 entities['common.password'] = "Password";
 entities['common.submit'] = "Submit";
 entities['common.user_not_found'] = "User not found";
+entities['common.unimplemented'] = 'Not Yet Implemented';
+entities['common.delete_transactions.label'] = 'Delete selected transaction';
+entities['common.save_transactions.accesskey'] = 'S';
+entities['common.save_transactions.label'] = 'Save these transactions';
 entities['ilsevent.1000'] = "Login failed.  The username or password entered was incorrect.";
 entities['ilsevent.1001'] = "Login session has timed out or does not exist";
 entities['ilsevent.1002'] = "User was not found in the database";
 entities['ilsevent.5000'] = "Permission Denied";
 entities['ilsperm.CREATE_HOLD'] = "User is not allowed to create holds for other users at this location";
+entities['common.cancel.accesskey'] = "C";
+entities['common.login.accesskey'] = "L";
+entities['common.password.accesskey'] = "P";
+entities['common.username.accesskey'] = "U";
 entities['staff.about.title'] = "About";
 entities['staff.acp_label_barcode'] = "Barcode";
 entities['staff.acp_label_call_number'] = "Call Number";
@@ -112,12 +123,25 @@
 entities['staff.au_survey_responses_label'] = "Survey Responses";
 entities['staff.au_usrgroup_label'] = "Usrgroup";
 entities['staff.au_usrname_label'] = "Usrname";
+entities['staff.admin.survey.available.label'] = "Available to:";
+entities['staff.admin.survey.description.label'] = "Description:";
+entities['staff.admin.survey.end.label'] = "End:";
+entities['staff.admin.survey.format.label'] = "Poll Format:";
+entities['staff.admin.survey.name.label'] = "Name:";
+entities['staff.admin.survey.opac_visible.label'] = "OPAC Visible:";
+entities['staff.admin.survey.required.label'] = "Required:";
+entities['staff.admin.survey.save_question.accesskey'] = "q";
+entities['staff.admin.survey.save_question.label'] = "Save this Question";
+entities['staff.admin.survey.staff_client.label'] = "Staff Client:";
+entities['staff.admin.survey.start.label'] = "Start:";
 entities['staff.auth.login_header'] = "Login";
 entities['staff.auth.logoff_prompt'] = "Log Off";
+entities['staff.auth.logoff_prompt.accesskey'] = "f";
 entities['staff.auth.logoff_prompt.key'] = "L";
 entities['staff.auth.name_prompt'] = "Name:";
 entities['staff.auth.name_prompt.key'] = "N";
 entities['staff.auth.password_prompt'] = "Password:";
+entities['staff.auth.password_prompt.accesskey'] = "P";
 entities['staff.auth.password_prompt.key'] = "P";
 entities['staff.auth.quit_prompt'] = "Exit Evergreen";
 entities['staff.auth.quit_prompt.key'] = "x";
@@ -172,6 +196,34 @@
 entities['staff.cat.fixed.SER.key'] = "S";
 entities['staff.cat.fixed.VIS'] = "VIS";
 entities['staff.cat.fixed.VIS.key'] = "V";
+entities['staff.cat.opac.add_bucket.accesskey'] = "B";
+entities['staff.cat.opac.add_bucket.label'] = "Add to Bucket";
+entities['staff.cat.opac.bib_in_new_tab.label'] = "Duplicate in New Tab";
+entities['staff.cat.opac.copy_browse.accesskey'] = "H";
+entities['staff.cat.opac.copy_browse.label'] = "Holdings Maintenance";
+entities['staff.cat.opac.default.label'] = "Set bottom interface as Default";
+entities['staff.cat.opac.marc_edit.accesskey'] = "E";
+entities['staff.cat.opac.marc_edit.label'] = "MARC Edit";
+entities['staff.cat.opac.marc_view.accesskey'] = "V";
+entities['staff.cat.opac.marc_view.label'] = "MARC View";
+entities['staff.cat.opac.mark_for_overlay.accesskey'] = "M";
+entities['staff.cat.opac.mark_for_overlay.label'] = "Mark for Overlay";
+entities['staff.cat.opac.menu.accesskey'] = "A";
+entities['staff.cat.opac.menu.label'] = "Actions for this Record";
+entities['staff.cat.opac.opac_view.accesskey'] = "O";
+entities['staff.cat.opac.opac_view.label'] = "OPAC View";
+entities['staff.cat.opac.record_end.accesskey'] = "E";
+entities['staff.cat.opac.record_end.label'] = "End";
+entities['staff.cat.opac.record_next.accesskey'] = "N";
+entities['staff.cat.opac.record_next.label'] = "Next";
+entities['staff.cat.opac.record_prev.accesskey'] = "P";
+entities['staff.cat.opac.record_prev.label'] = "Previous";
+entities['staff.cat.opac.record_start.accesskey'] = "S";
+entities['staff.cat.opac.record_start.label'] = "Start";
+entities['staff.cat.opac.refresh_me.label'] = "Reset Display";
+entities['staff.cat.opac.remove_me.label'] = "Remove this Frame";
+entities['staff.cat.opac.view_holds.accesskey'] = "s";
+entities['staff.cat.opac.view_holds.label'] = "View Holds";
 entities['staff.cat.popup.add_to_bucket'] = "Add to Bucket";
 entities['staff.cat.popup.add_to_bucket.key'] = "";
 entities['staff.cat.popup.browse.record.tab.key'] = "";
@@ -244,6 +296,57 @@
 entities['staff.checkin_patron.retrieve'] = 'Retrieve Patron';
 entities['staff.checkin_patron.retrieve.accesskey'] = 'R';
 entities['staff.checkout_interface_label'] = "CHECK OUT";
+entities['staff.circ.offline.main.label'] = 'Evergreen Offline';
+entities['staff.circ.offline.server_time.tooltiptext'] = 'Estimated Server Time - Click to adjust';
+entities['staff.circ.offline.cmd_checkout.accesskey'] = 'C';
+entities['staff.circ.offline.cmd_checkout.label'] = 'Check Out';
+entities['staff.circ.offline.cmd_renew.accesskey'] = 'r';
+entities['staff.circ.offline.cmd_renew.label'] = 'Renew';
+entities['staff.circ.offline.cmd_in_house_use.accesskey'] = 'h';
+entities['staff.circ.offline.cmd_in_house_use.label'] = 'In House Use';
+entities['staff.circ.offline.cmd_checkin.accesskey'] = 'i';
+entities['staff.circ.offline.cmd_checkin.label'] = 'Check In';
+entities['staff.circ.offline.cmd_register_patron.accesskey'] = 'p';
+entities['staff.circ.offline.cmd_register_patron.label'] = 'Register Patron';
+entities['staff.circ.offline.cmd_print_last_receipt.accesskey'] = 'l';
+entities['staff.circ.offline.cmd_print_last_receipt.label'] = 'Last Receipt';
+entities['staff.circ.offline.cmd_exit.accesskey'] = 'x';
+entities['staff.circ.offline.cmd_exit.label'] = 'Exit';
+entities['staff.circ.offline_checkin.main.label'] = 'Standalone Check In';
+entities['staff.circ.offline_checkin.step1.description'] = "Check today's date above.";
+entities['staff.circ.offline_checkin.step1.label'] = 'Step 1)';
+entities['staff.circ.offline_checkin.step2.accesskey'] = '2';
+entities['staff.circ.offline_checkin.step2.description'] = 'Enter the item barcode:';
+entities['staff.circ.offline_checkin.step2.label'] = 'Step 2)';
+entities['staff.circ.offline_checkin.step2a.accesskey'] = 'E';
+entities['staff.circ.offline_checkin.step2a.label'] = 'Enter';
+entities['staff.circ.offline_checkin.step2b.label'] = 'Check barcode?';
+entities['staff.circ.offline_checkin.step3.description'] = 'Repeat Steps 2 until done.';
+entities['staff.circ.offline_checkin.step3.label'] = 'Step 3)';
+entities['staff.circ.offline.finish.description'] = 'Finish';
+entities['staff.circ.offline_checkin.step4.label'] = 'Step 4)';
+entities['staff.circ.offline.print.description'] = 'Print receipt?';
+entities['staff.circ.offline_checkout.main.label'] = 'Standalone Check Out';
+entities['staff.circ.offline_checkout.step1.description'] = "Check today's date above.";
+entities['staff.circ.offline_checkout.step1.label'] = 'Step 1)';
+entities['staff.circ.offline_checkout.step2.accesskey'] = '2';
+entities['staff.circ.offline_checkout.step2.description'] = "Enter the patron's barcode:";
+entities['staff.circ.offline_checkout.step2.label'] = 'Step 2)';
+entities['staff.circ.offline_checkout.step3.accesskey'] = '3';
+entities['staff.circ.offline_checkout.step3.description'] = 'Enter the item due date:';
+entities['staff.circ.offline_checkout.step3.label'] = 'Step 3)';
+entities['staff.circ.offline_checkout.step4.accesskey'] = '4';
+entities['staff.circ.offline_checkout.step4.description'] = 'Enter the item barcode:';
+entities['staff.circ.offline_checkout.step4.label'] = 'Step 4)';
+entities['staff.circ.offline_checkout.step5.description'] = 'Repeat Steps 3 and 4 until done.';
+entities['staff.circ.offline_checkout.step5.label'] = 'Step 5)';
+entities['staff.circ.offline_checkout.step6.label'] = 'Step 6)';
+entities['staff.circ.offline_checkout.date_helper'] = 'or choose one of these';
+entities['staff.circ.offline_checkout.date_helper.3_days'] = 'Today + 3 days';
+entities['staff.circ.offline_checkout.date_helper.7_days'] = 'Today + 7 days';
+entities['staff.circ.offline_checkout.date_helper.14_days'] = 'Today + 14 days';
+entities['staff.circ.offline_checkout.date_helper.30_days'] = 'Today + 30 days';
+entities['staff.circ.offline_checkout.strict_barcode.label'] = 'Check barcode?';
 entities['staff.circ.checkin.caption'] = 'Check In';
 entities['staff.circ.checkin.scan_label'] = 'Enter Barcode:';
 entities['staff.circ.checkin.scan_label.accesskey'] = 'a';
@@ -401,10 +504,69 @@
 entities['staff.items_out_interface_label'] = "ITEMS OUT";
 entities['staff.javascript_console_label'] = "CONSOLE";
 entities['staff.javascript_shell_label'] = "JS SHELL";
+entities['staff.main.auth.caption'] = "Authentication";
+entities['staff.main.auth.caption'] = "Startup / Shutdown";
+entities['staff.main.auth.debug.caption'] = "Debug Options";
+entities['staff.main.auth.debug.clear'] = "Clear Cache";
+entities['staff.main.auth.debug.clear.accesskey'] = "C";
+entities['staff.main.auth.debug.javascript'] = "Javascript Console";
+entities['staff.main.auth.debug.javascript.accesskey'] = "J";
+entities['staff.main.auth.hostname'] = "Hostname";
+entities['staff.main.auth.hostname.accesskey'] = "H";
+entities['staff.main.auth.offline.caption'] = "Offline Use";
+entities['staff.main.auth.offline.export'] = "Export Transactions";
+entities['staff.main.auth.offline.import'] = "Import Transactions";
+entities['staff.main.auth.offline.interface'] = "Standalone Interface";
+entities['staff.main.auth.offline.interface.accesskey'] = "S";
+entities['staff.main.auth.retest'] = "Re-Test Server";
+entities['staff.main.auth.retest.accesskey'] = "R";
+entities['staff.main.auth.server'] = "Server";
+entities['staff.main.auth.status'] = "Status";
+entities['staff.main.auth.version'] = "Version";
+entities['staff.main.auth.workstation'] = "Workstation";
 entities['staff.main.menu.acquisitions.key'] = "q";
 entities['staff.main.menu.acquisitions.label'] = "Acquisitions";
+entities['staff.main.menu.admin.accesskey'] = "-";
+entities['staff.main.menu.admin.browse_holds.accesskey'] = "B";
+entities['staff.main.menu.admin.browse_holds.label'] = "Browse Unfulfilled Holds for this Pickup Lib";
+entities['staff.main.menu.admin.change_session.label'] = "Operator Change: New";
+entities['staff.main.menu.admin.clear_cache.accesskey'] = "3";
+entities['staff.main.menu.admin.clear_cache.label'] = "Clear Cache";
+entities['staff.main.menu.admin.cmd_console.accesskey'] = "J";
+entities['staff.main.menu.admin.cmd_console.label'] = "Javascript Console";
+entities['staff.main.menu.admin.cmd_shell.accesskey'] = "H";
+entities['staff.main.menu.admin.cmd_shell.label'] = "Javascript Shell";
+entities['staff.main.menu.admin.cmd_test.label'] = "Test Module";
+entities['staff.main.menu.admin.copy_location_edit.accesskey'] = "L";
+entities['staff.main.menu.admin.copy_location_edit.label'] = "Copy Location Editor";
+entities['staff.main.menu.admin.developer.accesskey'] = "-";
+entities['staff.main.menu.admin.developer.label'] = "For developers...";
+entities['staff.main.menu.admin.download_patrons.accesskey'] = "D";
+entities['staff.main.menu.admin.download_patrons.label'] = "Download Offline Patron List";
+entities['staff.main.menu.admin.fieldmapper.accesskey'] = "m";
+entities['staff.main.menu.admin.fieldmapper.label'] = "Fieldmapper";
 entities['staff.main.menu.admin.key'] = "i";
 entities['staff.main.menu.admin.label'] = "Admin";
+entities['staff.main.menu.admin.local_admin.accesskey'] = "L";
+entities['staff.main.menu.admin.local_admin.label'] = "Local System Administration";
+entities['staff.main.menu.admin.non_cat_type_edit.accesskey'] = "n";
+entities['staff.main.menu.admin.non_cat_type_edit.label'] = "Non-Cataloged Type Editor";
+entities['staff.main.menu.admin.offline_xacts.accesskey'] = "T";
+entities['staff.main.menu.admin.offline_xacts.label'] = "Offline Transaction Management";
+entities['staff.main.menu.admin.public_opac.accesskey'] = "p";
+entities['staff.main.menu.admin.public_opac.label'] = "Public OPAC";
+entities['staff.main.menu.admin.restore_all_tabs.label'] = "Unhide Tabs";
+entities['staff.main.menu.admin.stat_cat_edit.accesskey'] = "C";
+entities['staff.main.menu.admin.stat_cat_edit.label'] = "Statistical Category Editor";
+entities['staff.main.menu.admin.survey_wizard.accesskey'] = "S";
+entities['staff.main.menu.admin.survey_wizard.label'] = "Survey Wizard";
+entities['staff.main.menu.admin.template_edit.accesskey'] = "R";
+entities['staff.main.menu.admin.template_edit.label'] = "Receipt Template Editor";
+entities['staff.main.menu.admin.user_edit.accesskey'] = "U";
+entities['staff.main.menu.admin.user_edit.label'] = "User Permission Editor";
+entities['staff.main.menu.admin.xuleditor.accesskey'] = "X";
+entities['staff.main.menu.admin.xuleditor.label'] = "XUL Test";
+entities['staff.main.menu.cat.accesskey'] = "g";
 entities['staff.main.menu.cat.add_bib.key'] = "B";
 entities['staff.main.menu.cat.add_bib.label'] = "Add Bib Record";
 entities['staff.main.menu.cat.add_copy.key'] = "I";
@@ -412,29 +574,54 @@
 entities['staff.main.menu.cat.add_volume.key'] = "V";
 entities['staff.main.menu.cat.add_volume.label'] = "Add Volume";
 entities['staff.main.menu.cat.bib_search.key'] = "S";
-entities['staff.main.menu.cat.bib_search.label'] = "Search Catalog";
+entities['staff.main.menu.cat.bib_search.label'] = "Search the Catalog";
 entities['staff.main.menu.cat.bib_status.key'] = "B";
 entities['staff.main.menu.cat.bib_status.label'] = "Display Bib Record";
+entities['staff.main.menu.cat.copy_status.accesskey'] = "B";
 entities['staff.main.menu.cat.copy_status.key'] = "I";
 entities['staff.main.menu.cat.copy_status.label'] = "Display Item";
+entities['staff.main.menu.cat.create_marc.accesskey'] = "N";
+entities['staff.main.menu.cat.create_marc.label'] = "Create New Marc Record";
 entities['staff.main.menu.cat.dedup.key'] = "M";
 entities['staff.main.menu.cat.dedup.label'] = "Merge/Transfer Interface";
+entities['staff.main.menu.cat.edit_copy_buckets.accesskey'] = "B";
+entities['staff.main.menu.cat.edit_copy_buckets.label'] = "Manage Copy Buckets";
+entities['staff.main.menu.cat.edit_record_buckets.accesskey'] = "R";
+entities['staff.main.menu.cat.edit_record_buckets.label'] = "Manage Record Buckets";
+entities['staff.main.menu.cat.edit_volume_buckets.accesskey'] = "V";
+entities['staff.main.menu.cat.edit_volume_buckets.label'] = "Manage Volume Buckets";
 entities['staff.main.menu.cat.key'] = "a";
 entities['staff.main.menu.cat.label'] = "Cataloging";
+entities['staff.main.menu.cat.retrieve_last_record.accesskey'] = "L";
+entities['staff.main.menu.cat.retrieve_last_record.label'] = "Retrieve Last Record";
+entities['staff.main.menu.cat.search_tcn.accesskey'] = "T";
+entities['staff.main.menu.cat.search_tcn.label'] = "Retrieve record by TCN";
 entities['staff.main.menu.cat.volume_status.key'] = "V";
 entities['staff.main.menu.cat.volume_status.label'] = "Display Volume";
+entities['staff.main.menu.cat.z39_50_import.accesskey'] = "Z";
+entities['staff.main.menu.cat.z39_50_import.label'] = "Import Record from Z39.50";
+entities['staff.main.menu.circ.barcode.retrieve_patron'] = "Retrieve Patron by Barcode";
+entities['staff.main.menu.circ.barcode.retrieve_patron.accesskey'] = "P";
+entities['staff.main.menu.circ.barcode.show_item'] = "Show Item Status by Barcode";
+entities['staff.main.menu.circ.barcode.show_item.accesskey'] = "B";
 entities['staff.main.menu.circ.checkin.key'] = "C";
-entities['staff.main.menu.circ.checkin.label'] = "Check In";
+entities['staff.main.menu.circ.checkin.label'] = "Check In Items";
 entities['staff.main.menu.circ.checkout.key'] = "O";
-entities['staff.main.menu.circ.checkout.label'] = "Check Out";
+entities['staff.main.menu.circ.checkout.label'] = "Check Out Items";
 entities['staff.main.menu.circ.claimed_returned.key'] = "C";
 entities['staff.main.menu.circ.claimed_returned.label'] = 'Mark as "Claimed Returned"';
 entities['staff.main.menu.circ.copy_status.key'] = "I";
 entities['staff.main.menu.circ.copy_status.label'] = "Display Item";
 entities['staff.main.menu.circ.found.key'] = "F";
 entities['staff.main.menu.circ.found.label'] = "Mark Found";
+entities['staff.main.menu.circ.hold_browse.accesskey'] = "B";
+entities['staff.main.menu.circ.hold_browse.label'] = "Browse Holds Shelf";
 entities['staff.main.menu.circ.hold_capture.key'] = "H";
 entities['staff.main.menu.circ.hold_capture.label'] = "Capture Holds";
+entities['staff.main.menu.circ.hold_pull.accesskey'] = "S";
+entities['staff.main.menu.circ.hold_pull.label'] = "Pull List for Hold Requests";
+entities['staff.main.menu.circ.in_house.accesskey'] = "I";
+entities['staff.main.menu.circ.in_house.label'] = "Record In-House Use";
 entities['staff.main.menu.circ.key'] = "C";
 entities['staff.main.menu.circ.label'] = "Circulation";
 entities['staff.main.menu.circ.lost.key'] = "L";
@@ -443,20 +630,33 @@
 entities['staff.main.menu.circ.mark_used.label'] = "Mark Used";
 entities['staff.main.menu.circ.missing.key'] = "M";
 entities['staff.main.menu.circ.missing.label'] = "Mark Missing";
+entities['staff.main.menu.circ.offline.accesskey'] = "f";
+entities['staff.main.menu.circ.offline.label'] = "Enter Offline Interface";
 entities['staff.main.menu.circ.patron_registration.key'] = "R";
 entities['staff.main.menu.circ.patron_registration.label'] = "Register Patron";
+entities['staff.main.menu.circ.patron_retrieve.accesskey'] = "L";
+entities['staff.main.menu.circ.patron_retrieve.label'] = "Retrieve Last Patron";
 entities['staff.main.menu.circ.patron_status.key'] = "P";
 entities['staff.main.menu.circ.patron_status.label'] = "Display Patron";
+entities['staff.main.menu.circ.place_hold.accesskey'] = "H";
 entities['staff.main.menu.circ.place_hold.key'] = "H";
 entities['staff.main.menu.circ.place_hold.label'] = "Place Hold";
 entities['staff.main.menu.circ.quick_add.key'] = "Q";
 entities['staff.main.menu.circ.quick_add.label'] = "Quick Add";
 entities['staff.main.menu.circ.renew.key'] = "n";
 entities['staff.main.menu.circ.renew.label'] = "Renew";
+entities['staff.main.menu.circ.reprint.accesskey'] = "L";
+entities['staff.main.menu.circ.reprint.label'] = "Re-Print Last";
 entities['staff.main.menu.circ.special.key'] = "S";
 entities['staff.main.menu.circ.special.label'] = "Special Circulation";
+entities['staff.main.menu.edit.buckets.copies'] = "Copy Buckets";
+entities['staff.main.menu.edit.buckets.copies.accesskey'] = "B";
 entities['staff.main.menu.edit.buckets.key'] = "B";
 entities['staff.main.menu.edit.buckets.label'] = "Manage Buckets";
+entities['staff.main.menu.edit.buckets.records'] = "Record Buckets";
+entities['staff.main.menu.edit.buckets.records.accesskey'] = "R";
+entities['staff.main.menu.edit.buckets.volumes'] = "Volume Buckets";
+entities['staff.main.menu.edit.buckets.volumes.accesskey'] = "V";
 entities['staff.main.menu.edit.copy.key'] = "C";
 entities['staff.main.menu.edit.copy.label'] = "Copy";
 entities['staff.main.menu.edit.cut.key'] = "t";
@@ -486,8 +686,10 @@
 entities['staff.main.menu.entity.patron.register.key'] = "R";
 entities['staff.main.menu.entity.volume.key'] = "";
 entities['staff.main.menu.entity.volume.label'] = "Volumes";
+entities['staff.main.menu.file.close.accesskey'] = "W";
 entities['staff.main.menu.file.close.key'] = "C";
 entities['staff.main.menu.file.close.label'] = "Close Window";
+entities['staff.main.menu.file.close_tab.accesskey'] = "C";
 entities['staff.main.menu.file.close_tab.key'] = "";
 entities['staff.main.menu.file.close_tab.label'] = "Close Tab";
 entities['staff.main.menu.file.key'] = "F";
@@ -502,13 +704,33 @@
 entities['staff.main.menu.file.save.label'] = "Save Session";
 entities['staff.main.menu.help.key'] = "H";
 entities['staff.main.menu.help.label'] = "Help";
+entities['staff.main.menu.quit'] = "Quit Program";
+entities['staff.main.menu.quit.accesskey'] = "Q";
+entities['staff.main.menu.replace_barcode.label'] = "Replace Barcode";
 entities['staff.main.menu.reports.key'] = "";
 entities['staff.main.menu.reports.label'] = "Reports";
+entities['staff.main.menu.search.catalog.accesskey'] = "C";
+entities['staff.main.menu.search.catalog.label'] = "the Catalog";
+entities['staff.main.menu.search.copies.accesskey'] = "B";
+entities['staff.main.menu.search.copies.label'] = "for copies by Barcode";
 entities['staff.main.menu.search.key'] = "r";
 entities['staff.main.menu.search.label'] = "Search";
+entities['staff.main.menu.search.patrons.accesskey'] = "P";
+entities['staff.main.menu.search.patrons.label'] = "for Patrons";
+entities['staff.main.menu.search.patrons_barcode.accesskey'] = "n";
+entities['staff.main.menu.search.patrons_barcode.label'] = "for patron by Barcode";
+entities['staff.main.menu.search.record.accesskey'] = "T";
+entities['staff.main.menu.search.record.label'] = "for record by TCN";
 entities['staff.main.menu.serials.key'] = "l";
 entities['staff.main.menu.serials.label'] = "Serials";
+entities['staff.main.menu.tabs.close'] = "Close All Tabs";
+entities['staff.main.menu.tabs.close.accesskey'] = "A";
 entities['staff.main.menu.title'] = "Evergreen Staff Client";
+entities['staff.main.simple_auth.authorization.label'] = "Authorization";
+entities['staff.main.simple_auth.authorize.accesskey'] = "A";
+entities['staff.main.simple_auth.authorize.label'] = "Authorization";
+entities['staff.main.simple_auth.exception.label'] = "Exception";
+entities['staff.main.test.example_template.label'] = "Hello world!";
 entities['staff.marc.008.BKS.MAP.indx.desc'] = "Index";
 entities['staff.marc.008.BKS.MAP.indx.field'] = "008";
 entities['staff.marc.008.BKS.MAP.indx.field_end_pos'] = "31";
@@ -933,4 +1155,24 @@
 entities['staff.volume.wizard.page4'] = "Entering Copy-Level Attribute Defaults";
 entities['staff.volume.wizard.title'] = "Batch Add Volumes/Copies Wizard";
 entities['staff.xuleditor_label'] = "XUL TEST";
+entities['staff.z39_50.search_class.author'] = "Author";
+entities['staff.z39_50.search_class.isbn'] = "ISBN";
+entities['staff.z39_50.search_class.issn'] = "ISSN";
+entities['staff.z39_50.search_class.item_type'] = "Item Type";
+entities['staff.z39_50.search_class.item_type.all'] = "All Formats";
+entities['staff.z39_50.search_class.item_type.art'] = "Papers/Articles";
+entities['staff.z39_50.search_class.item_type.bks'] = "Books";
+entities['staff.z39_50.search_class.item_type.com'] = "Computer files";
+entities['staff.z39_50.search_class.item_type.map'] = "Maps";
+entities['staff.z39_50.search_class.item_type.mix'] = "Mixed material";
+entities['staff.z39_50.search_class.item_type.rec'] = "Sound recordings";
+entities['staff.z39_50.search_class.item_type.sco'] = "Musical scores";
+entities['staff.z39_50.search_class.item_type.ser'] = "Serials";
+entities['staff.z39_50.search_class.item_type.url'] = "Internet Resources";
+entities['staff.z39_50.search_class.item_type.vis'] = "Visual materials";
+entities['staff.z39_50.search_class.lccn'] = "LCCN";
+entities['staff.z39_50.search_class.pubdate'] = "PubDate";
+entities['staff.z39_50.search_class.publisher'] = "Publisher";
+entities['staff.z39_50.search_class.tcn'] = "Accession #";
+entities['staff.z39_50.search_class.title'] = "Title";
 entities['staff.z39_50_import_interface_label'] = "Z39.50 IMPORT";

Modified: trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/common.properties
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/common.properties	2007-08-08 19:22:28 UTC (rev 7649)
+++ trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/common.properties	2007-08-09 14:48:38 UTC (rev 7650)
@@ -1,2 +1,6 @@
 common.exception=!! This software has encountered an error.  Please tell your friendly system administrator or software developer the following:\n%1$S\n%2$S\n
 common.jsan.missing=The JSAN library object is missing.
+common.ok=Ok
+common.clear=Clear
+common.confirm=Check here to confirm this message.
+common.error.default=Please report that this happened.



More information about the open-ils-commits mailing list