diff -bBcPrw openbiblio.orig/catalog/biblio_new_like.php openbiblio/catalog/biblio_new_like.php
*** openbiblio.orig/catalog/biblio_new_like.php	2005-03-13 11:29:40.000000000 +0100
--- openbiblio/catalog/biblio_new_like.php	2005-04-13 16:24:41.000000000 +0200
***************
*** 67,73 ****
    require_once("../shared/header.php");
  
    $cancelLocation = "../shared/biblio_view.php?bibid=".$postVars["bibid"];
!   $headerWording="Edit";
  
  ?>
  
--- 67,73 ----
    require_once("../shared/header.php");
  
    $cancelLocation = "../shared/biblio_view.php?bibid=".$postVars["bibid"];
!   $headerWording=$loc->getText("biblioNewLikeEdit");
  
  ?>
  
diff -bBcPrw openbiblio.orig/classes/DbConnection.php openbiblio/classes/DbConnection.php
*** openbiblio.orig/classes/DbConnection.php	2004-08-01 02:39:50.000000000 +0200
--- openbiblio/classes/DbConnection.php	2005-02-22 13:05:16.000000000 +0100
***************
*** 22,27 ****
--- 22,28 ----
  
  require_once("../shared/global_constants.php");
  require_once("../database_constants.php");
+ require_once("../classes/Localize.php");
  
  /******************************************************************************
   * DbConnection encapsulates all database specific functions for OpenBiblio
***************
*** 39,44 ****
--- 40,49 ----
    var $_dbErrno;
    var $_dbError;
  
+   function DbConnection () {
+     $this->_loc = new Localize(MAIN_LOCALE,"classes");
+   }
+ 
    /****************************************************************************
     * Connects to the database
     *
***************
*** 49,62 ****
    function connect() {
      $this->_link = mysql_connect(OBIB_HOST,OBIB_USERNAME,OBIB_PWD);
      if ($this->_link == false) {
!       $this->_error = "Unable to connect to database";
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
      }
      $rc = mysql_select_db(OBIB_DATABASE, $this->_link);
      if ($rc == false) {
!       $this->_error = "Unable to connect to database";
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
--- 54,67 ----
    function connect() {
      $this->_link = mysql_connect(OBIB_HOST,OBIB_USERNAME,OBIB_PWD);
      if ($this->_link == false) {
!       $this->_error = $this->_loc->getText("DbConnectErr1");
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
      }
      $rc = mysql_select_db(OBIB_DATABASE, $this->_link);
      if ($rc == false) {
!       $this->_error = $this->_loc->getText("DbConnectErr1");
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
***************
*** 72,78 ****
    function close() {
      $rc = mysql_close($this->_link);
      if ($rc == false) {
!       $this->_error = "Unable to close database";
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
--- 77,83 ----
    function close() {
      $rc = mysql_close($this->_link);
      if ($rc == false) {
!       $this->_error = $this->_loc->getText("DbConnectErr2");
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
***************
*** 127,133 ****
    function exec($sql) {
      $this->_result = mysql_query($sql, $this->_link);
      if ($this->_result == false) {
!       $this->_error = "Unable to execute query";
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
--- 132,138 ----
    function exec($sql) {
      $this->_result = mysql_query($sql, $this->_link);
      if ($this->_result == false) {
!       $this->_error = $this->_loc->getText("DbConnectErr3");
        $this->_dbErrno = mysql_errno();
        $this->_dbError = mysql_error();
        return false;
***************
*** 145,151 ****
     */
    function fetchRow($arrayType=OBIB_ASSOC) {
      if ($this->_result == false) {
!       $this->_error = "Invalid result.  Must execute query first.";
        return false;
      }
      switch ($arrayType) {
--- 150,156 ----
     */
    function fetchRow($arrayType=OBIB_ASSOC) {
      if ($this->_result == false) {
!       $this->_error = $this->_loc->getText("DbConnectErr4");
        return false;
      }
      switch ($arrayType) {
diff -bBcPrw openbiblio.orig/classes/InstallQuery.php openbiblio/classes/InstallQuery.php
*** openbiblio.orig/classes/InstallQuery.php	2004-08-01 02:39:50.000000000 +0200
--- openbiblio/classes/InstallQuery.php	2005-02-22 13:19:24.000000000 +0100
***************
*** 32,37 ****
--- 32,42 ----
   ******************************************************************************
   */
  class InstallQuery extends Query {
+ 
+   function InstallQuery () {
+     $this->_loc = new Localize(MAIN_LOCALE,"classes");
+   }
+   
    /****************************************************************************
     * Executes an sql statement
     * @param string $sql sql statement to execute
***************
*** 40,46 ****
     ****************************************************************************
     */
    function exec($sql) {
!     return $this->_query($sql, "Error processing install sql.");
    }
  
  
--- 45,51 ----
     ****************************************************************************
     */
    function exec($sql) {
!     return $this->_query($sql, $this->_loc->getText("InstallQueryErr1"));
    }
  
  
***************
*** 53,59 ****
     */
    function dropTable($tableName) {
      $sql = $this->mkSQL("drop table %I ", $tableName);
!     return $this->_query($sql, "Error dropping table $tableName");
    }
  
  }
--- 58,64 ----
     */
    function dropTable($tableName) {
      $sql = $this->mkSQL("drop table %I ", $tableName);
!     return $this->_query($sql, $this->_loc->getText("InstallQueryErr2")." $tableName");
    }
  
  }
diff -bBcPrw openbiblio.orig/classes/LabelFormat.php openbiblio/classes/LabelFormat.php
*** openbiblio.orig/classes/LabelFormat.php	2005-02-27 08:00:29.000000000 +0100
--- openbiblio/classes/LabelFormat.php	2005-03-01 10:42:18.000000000 +0100
***************
*** 162,170 ****
    }
  
    function getXmlErrorString() {
!     $errStr = "xml error: ".xml_error_string(xml_get_error_code($this->_parser));
!     $errStr = $errStr."\nline number: ".xml_get_current_line_number ($this->_parser);
!     $errStr = $errStr."\ncolumn number: ".xml_get_current_column_number ($this->_parser);
      return $errStr;
    }
  
--- 162,170 ----
    }
  
    function getXmlErrorString() {
!     $errStr = $this->_loc->getText("labelFormatXmlError").xml_error_string(xml_get_error_code($this->_parser));
!     $errStr = $errStr.$this->_loc->getText("labelFormatLine").xml_get_current_line_number ($this->_parser);
!     $errStr = $errStr.$this->_loc->getText("labelFormatColumn").xml_get_current_column_number ($this->_parser);
      return $errStr;
    }
  
diff -bBcPrw openbiblio.orig/classes/LetterFormat.php openbiblio/classes/LetterFormat.php
*** openbiblio.orig/classes/LetterFormat.php	2005-02-27 08:00:29.000000000 +0100
--- openbiblio/classes/LetterFormat.php	2005-03-01 10:42:56.000000000 +0100
***************
*** 161,169 ****
    }
  
    function getXmlErrorString() {
!     $errStr = "xml error: ".xml_error_string(xml_get_error_code($this->_parser));
!     $errStr = $errStr."\nline number: ".xml_get_current_line_number ($this->_parser);
!     $errStr = $errStr."\ncolumn number: ".xml_get_current_column_number ($this->_parser);
      return $errStr;
    }
  
--- 161,169 ----
    }
  
    function getXmlErrorString() {
!     $errStr = $this->_loc->getText("labelFormatXmlError").xml_error_string(xml_get_error_code($this->_parser));
!     $errStr = $errStr.$this->_loc->getText("labelFormatLine").xml_get_current_line_number ($this->_parser);
!     $errStr = $errStr.$this->_loc->getText("labelFormatColumn").xml_get_current_column_number ($this->_parser);
      return $errStr;
    }
  
diff -bBcPrw openbiblio.orig/classes/MemberAccountTransaction.php openbiblio/classes/MemberAccountTransaction.php
*** openbiblio.orig/classes/MemberAccountTransaction.php	2004-04-27 19:04:45.000000000 +0200
--- openbiblio/classes/MemberAccountTransaction.php	2005-02-11 12:50:28.000000000 +0100
***************
*** 62,68 ****
        $this->_amountError = $this->_loc->getText("memberAccountTransError2");
      } else if ($this->_amount <= 0) {
        $valid = FALSE;
!       $this->_amountError = $this->_loc->getText("Amount must be greater than zero.");
      }
      if ($this->_description == "") {
        $valid = false;
--- 62,68 ----
        $this->_amountError = $this->_loc->getText("memberAccountTransError2");
      } else if ($this->_amount <= 0) {
        $valid = FALSE;
!       $this->_amountError = $this->_loc->getText("memberAccountTransError4");
      }
      if ($this->_description == "") {
        $valid = false;
diff -bBcPrw openbiblio.orig/classes/Member.php openbiblio/classes/Member.php
*** openbiblio.orig/classes/Member.php	2003-05-11 23:23:37.000000000 +0200
--- openbiblio/classes/Member.php	2005-03-07 10:44:13.000000000 +0100
***************
*** 21,26 ****
--- 21,27 ----
   */
  
    require_once("../functions/formatFuncs.php");
+   require_once("../classes/Localize.php");
  
  /******************************************************************************
   * Member represents a library member.  Contains business rules for
***************
*** 58,63 ****
--- 59,70 ----
    var $_schoolGrade = "";
    var $_schoolGradeError = "";
    var $_schoolTeacher = "";
+ 
+   function Member () {
+     $this->_loc = new Localize(OBIB_LOCALE,"classes");
+   }
  
    /****************************************************************************
     * @return boolean true if data is valid, otherwise false.
***************
*** 68,109 ****
      $valid = true;
      if ($this->_barcodeNmbr == "") {
        $valid = false;
!       $this->_barcodeNmbrError = "Card number is required.";
      } else if (!ctypeAlnum($this->_barcodeNmbr)) {
        $valid = FALSE;
!       $this->_barcodeNmbrError = "Card number must be all alphabetic and numeric characters.";
      }
      if ($this->_lastName == "") {
        $valid = false;
!       $this->_lastNameError = "Last name is required.";
      }
      if ($this->_firstName == "") {
        $valid = false;
!       $this->_firstNameError = "First name is required.";
      }
      if (!is_numeric($this->_zip)) {
        $valid = false;
!       $this->_zipError = "Zip code number must be numeric.";
      }
      if (strrpos($this->_zip,".")) {
        $valid = false;
!       $this->_zipError = "Zip code number must not contain a decimal point.";
      }
      if (!is_numeric($this->_zipExt)) {
        $valid = false;
!       $this->_zipExtError = "Zip code extension must be numeric.";
      }
      if (strrpos($this->_zipExt,".")) {
        $valid = false;
!       $this->_zipExtError = "Zip code extension must not contain a decimal point.";
      }
      if (!is_numeric($this->_schoolGrade)) {
        $valid = false;
!       $this->_schoolGradeError = "School grade must be numeric.";
      }
      if (strrpos($this->_schoolGrade,".")) {
        $valid = false;
!       $this->_schoolGradeError = "School grade must not contain a decimal point.";
      }
  
      return $valid;
--- 75,125 ----
      $valid = true;
      if ($this->_barcodeNmbr == "") {
        $valid = false;
!       $this->_barcodeNmbrError = $this->_loc->getText("MemberErr1");
      } else if (!ctypeAlnum($this->_barcodeNmbr)) {
        $valid = FALSE;
!       $this->_barcodeNmbrError = $this->_loc->getText("MemberErr2");
      }
      if ($this->_lastName == "") {
        $valid = false;
!       $this->_lastNameError = $this->_loc->getText("MemberErr3");
      }
      if ($this->_firstName == "") {
        $valid = false;
!       $this->_firstNameError = $this->_loc->getText("MemberErr4");
      }
      if (!is_numeric($this->_zip)) {
        $valid = false;
!       $this->_zipError = $this->_loc->getText("MemberErr5");
      }
      if (strrpos($this->_zip,".")) {
        $valid = false;
!       $this->_zipError = $this->_loc->getText("MemberErr6");
      }
      if (!is_numeric($this->_zipExt)) {
        $valid = false;
!       $this->_zipExtError = $this->_loc->getText("MemberErr7");
      }
      if (strrpos($this->_zipExt,".")) {
        $valid = false;
!       $this->_zipExtError = $this->_loc->getText("MemberErr8");
      }
      if (!is_numeric($this->_schoolGrade)) {
        $valid = false;
!       $this->_schoolGradeError = $this->_loc->getText("MemberErr9");
      }
      if (strrpos($this->_schoolGrade,".")) {
        $valid = false;
!       $this->_schoolGradeError = $this->_loc->getText("MemberErr10");
      }
  
      return $valid;
***************
*** openbiblio.orig/classes/MemberQuery.php	2004-08-01 02:39:50.000000000 +0200
--- openbiblio/classes/MemberQuery.php	2005-04-13 18:19:34.000000000 +0200
***************
*** 39,44 ****
--- 39,48 ----
    var $_rowCount = 0;
    var $_pageCount = 0;
  
+   function MemberQuery () {
+     $this->_loc = new Localize(OBIB_LOCALE,"classes");
+   }
+ 
    function setItemsPerPage($value) {
      $this->_itemsPerPage = $value;
    }
***************
*** 89,95 ****
      #echo "sql=[".$sql."]<br>\n";
  
      # Running row count sql statement
!     if (!$this->_query($sqlcount, "Error counting library member search results.")) {
        return false;
      }
  
--- 93,99 ----
      #echo "sql=[".$sql."]<br>\n";
  
      # Running row count sql statement
!     if (!$this->_query($sqlcount, $this->_loc->getText("MemberQueryErr1"))) {
        return false;
      }
  
***************
*** 99,105 ****
      $this->_pageCount = ceil($this->_rowCount / $this->_itemsPerPage);
  
      # Running search sql statement
!     return $this->_query($sql, "Error searching library member information.");
    }
  
    /****************************************************************************
--- 103,109 ----
      $this->_pageCount = ceil($this->_rowCount / $this->_itemsPerPage);
  
      # Running search sql statement
!     return $this->_query($sql, $this->_loc->getText("MemberQueryErr2"));
    }
  
    /****************************************************************************
***************
*** 113,119 ****
      $sql = $this->mkSQL("select member.*, staff.username from member "
                          . "left join staff on member.last_change_userid = staff.userid "
                          . "where mbrid=%N ", $mbrid);
!     return $this->_query($sql, "Error accessing library member information.");
    }
  
    /****************************************************************************
--- 117,123 ----
         $sql = $this->mkSQL("select member.*, staff.username from member "
                          . "left join staff on member.last_change_userid = staff.userid "
  			. "where mbrid=%N ", $mbrid);
!        return $this->_query($sql, $this->_loc->getText("MemberQueryErr3"));
    }
  
    /****************************************************************************
***************
*** 170,176 ****
      $sql = $this->mkSQL("select count(*) from member "
                          . "where barcode_nmbr = %Q and mbrid <> %N",
                          $barcode, $mbrid);
!     if (!$this->_query($sql, "Error checking for dup barcode.")) {
        return false;
      }
      $array = $this->_conn->fetchRow(OBIB_NUM);
--- 175,181 ----
      $sql = $this->mkSQL("select count(*) from member "
                           . "where barcode_nmbr = %Q and mbrid <> %N",
  			 $barcode, $mbrid);
!     if (!$this->_query($sql, $this->_loc->getText("MemberQueryErr4"))) {
          return false;
      }
      $array = $this->_conn->fetchRow(OBIB_NUM);
***************
*** 198,206 ****
                          $mbr->getZip(), $mbr->getZipExt(),
                          $mbr->getHomePhone(), $mbr->getWorkPhone(),
                          $mbr->getEmail(), $mbr->getClassification(),
                          $mbr->getSchoolGrade(), $mbr->getSchoolTeacher());
  
!     if (!$this->_query($sql, "Error inserting new library member information.")) {
        return false;
      }
      $mbrid = $this->_conn->getInsertId();
--- 228,237 ----
  		  $mbr->getZip(), $mbr->getZipExt(),
  		  $mbr->getHomePhone(), $mbr->getWorkPhone(),
  		  $mbr->getEmail(), $mbr->getClassification(),
 		  $mbr->getSchoolGrade(), $mbr->getSchoolTeacher());
  
!     if (!$this->_query($sql, $this->_loc->getText("MemberQueryErr5"))) {
        return false;
      }
      $mbrid = $this->_conn->getInsertId();
***************
*** 231,239 ****
                          $mbr->getHomePhone(), $mbr->getWorkPhone(),
                          $mbr->getEmail(), $mbr->getClassification(),
                          $mbr->getSchoolGrade(), $mbr->getSchoolTeacher(),
                          $mbr->getMbrid());
  
!     return $this->_query($sql, "Error updating library member information.");
    }
  
    /****************************************************************************
--- 262,271 ----
  		 $mbr->getHomePhone(), $mbr->getWorkPhone(),
  		 $mbr->getEmail(), $mbr->getClassification(),
  		 $mbr->getSchoolGrade(), $mbr->getSchoolTeacher(),
 		 $mbr->getMbrid());
     
!     return $this->_query($sql, $this->_loc->getText("MemberQueryErr6"));
         
     }
  
    /****************************************************************************
***************
*** 245,251 ****
     */
    function delete($mbrid) {
      $sql = $this->mkSQL("delete from member where mbrid = %N ", $mbrid);
!     return $this->_query($sql, "Error deleting library member information.");
    }
  
  }
--- 277,283 ----
     */
    function delete($mbrid) {
      $sql = $this->mkSQL("delete from member where mbrid = %N ", $mbrid);
!     return $this->_query($sql, $this->_loc->getText("MemberQueryErr7"));
    }
  
  }
diff -bBcPrw openbiblio.orig/classes/ReportDefinition.php openbiblio/classes/ReportDefinition.php
*** openbiblio.orig/classes/ReportDefinition.php	2005-02-27 06:38:24.000000000 +0100
--- openbiblio/classes/ReportDefinition.php	2005-03-01 10:43:38.000000000 +0100
***************
*** 70,78 ****
    }
  
    function getXmlErrorString() {
!     $errStr = "xml error: ".xml_error_string(xml_get_error_code($this->_parser));
!     $errStr = $errStr."\nline number: ".xml_get_current_line_number ($this->_parser);
!     $errStr = $errStr."\ncolumn number: ".xml_get_current_column_number ($this->_parser);
      return $errStr;
    }
  
--- 70,78 ----
    }
  
    function getXmlErrorString() {
!     $errStr = $this->_loc->getText("labelFormatXmlError").xml_error_string(xml_get_error_code($this->_parser));
!     $errStr = $errStr.$this->_loc->getText("labelFormatLine").xml_get_current_line_number ($this->_parser);
!     $errStr = $errStr.$this->_loc->getText("labelFormatColumn").xml_get_current_column_number ($this->_parser);
      return $errStr;
    }
  
diff -bBcPrw openbiblio.orig/classes/SessionQuery.php openbiblio/classes/SessionQuery.php
*** openbiblio.orig/classes/SessionQuery.php	2004-08-01 02:39:50.000000000 +0200
--- openbiblio/classes/SessionQuery.php	2005-02-11 13:58:50.000000000 +0100
***************
*** 21,26 ****
--- 21,27 ----
   */
  
  require_once("../classes/Query.php");
+ require_once("../classes/Localize.php");
  
  /******************************************************************************
   * SessionQuery data access component for signon sessions
***************
*** 39,50 ****
     * @access public
     ****************************************************************************
     */
    function validToken($userid, $token) {
      $sql = $this->mkSQL("select last_updated_dt, token from session "
                          . "where userid = %N and token = %N"
                          . " and last_updated_dt >= date_sub(sysdate(), interval %N minute)",
                          $userid, $token, OBIB_SESSION_TIMEOUT);
!     if (!$this->_query($sql, "Error accessing session information.")) {
        return false;
      }
      $rowCount = $this->_conn->numRows();
--- 40,56 ----
     * @access public
     ****************************************************************************
     */
+ 
+   function SessionQuery () {
+     $this->_loc = new Localize(OBIB_LOCALE,"classes");
+   }
+    
    function validToken($userid, $token) {
      $sql = $this->mkSQL("select last_updated_dt, token from session "
                          . "where userid = %N and token = %N"
                          . " and last_updated_dt >= date_sub(sysdate(), interval %N minute)",
                          $userid, $token, OBIB_SESSION_TIMEOUT);
!     if (!$this->_query($sql, $this->_loc->getText("SessionQueryErr1"))) {
        return false;
      }
      $rowCount = $this->_conn->numRows();
***************
*** 70,76 ****
      $sql = $this->mkSQL("delete from session where userid = %N"
                          . " and last_updated_dt < date_sub(sysdate(), interval %N minute)",
                          $userid, OBIB_SESSION_TIMEOUT);
!     if (!$this->_query($sql, "Error deleting session information.")) {
        return false;
      }
      srand((double) microtime() * 1000000);
--- 76,82 ----
      $sql = $this->mkSQL("delete from session where userid = %N"
                          . " and last_updated_dt < date_sub(sysdate(), interval %N minute)",
                          $userid, OBIB_SESSION_TIMEOUT);
!     if (!$this->_query($sql, $this->_loc->getText("SessionQueryErr2"))) {
        return false;
      }
      srand((double) microtime() * 1000000);
***************
*** 78,84 ****
      $sql = $this->mkSQL("insert into session "
                          . "values (%N, sysdate(), %N) ",
                          $userid, $token);
!     if (!$this->_query($sql, "Error creating a new session.")) {
        return false;
      }
      return $token;
--- 84,90 ----
      $sql = $this->mkSQL("insert into session "
                          . "values (%N, sysdate(), %N) ",
                          $userid, $token);
!     if (!$this->_query($sql, $this->_loc->getText("SessionQueryErr3"))) {
        return false;
      }
      return $token;
***************
*** 94,100 ****
    function _updateToken($token) {
      $sql = $this->mkSQL("update session set last_updated_dt=sysdate() "
                          . "where token = %Q ", $token);
!     return $this->_query($sql, "Error updating session timeout.");
    }
  }
  
--- 100,106 ----
    function _updateToken($token) {
      $sql = $this->mkSQL("update session set last_updated_dt=sysdate() "
                          . "where token = %Q ", $token);
!     return $this->_query($sql, $this->_loc->getText("SessionQueryErr4"));
    }
  }
  
diff -bBcPrw openbiblio.orig/classes/Settings.php openbiblio/classes/Settings.php
*** openbiblio.orig/classes/Settings.php	2004-04-22 04:52:55.000000000 +0200
--- openbiblio/classes/Settings.php	2005-03-06 12:14:54.000000000 +0100
***************
*** 20,25 ****
--- 20,27 ----
   **********************************************************************************
   */
  
+   require_once("../classes/Localize.php");
+ 
  /******************************************************************************
   * Settings represents the library settings.
   *
***************
*** 49,54 ****
--- 51,60 ----
    var $_charset = "";
    var $_htmlLangAttr = "";
  
+   function Settings () {
+     $this->_loc = new Localize(MAIN_LOCALE,"classes");
+   }
+ 
    /****************************************************************************
    * @return array with code and description of installed locales
    * @access public
***************
*** 82,102 ****
      $valid = true;
      if (!is_numeric($this->_sessionTimeout)) {
        $valid = false;
!       $this->_sessionTimeoutError = "Session timeout must be numeric.";
      } elseif ($this->_sessionTimeout <= 0) {
        $valid = false;
!       $this->_sessionTimeoutError = "Session timeout must be greater than 0.";
      }
      if (!is_numeric($this->_itemsPerPage)) {
        $valid = false;
!       $this->_itemsPerPageError = "Items per page must be numeric.";
      } elseif ($this->_itemsPerPage <= 0) {
        $valid = false;
!       $this->_itemsPerPageError = "Items per page must be greater than 0.";
      }
      if (!is_numeric($this->_purgeHistoryAfterMonths)) {
        $valid = FALSE;
!       $this->_purgeHistoryAfterMonthsError = "Months must be numeric.";
      }
      return $valid;
    }
--- 88,108 ----
      $valid = true;
      if (!is_numeric($this->_sessionTimeout)) {
        $valid = false;
!       $this->_sessionTimeoutError = $this->_loc->getText("SettingsErr1");
      } elseif ($this->_sessionTimeout <= 0) {
        $valid = false;
!       $this->_sessionTimeoutError = $this->_loc->getText("SettingsErr2");
      }
      if (!is_numeric($this->_itemsPerPage)) {
        $valid = false;
!       $this->_itemsPerPageError = $this->_loc->getText("SettingsErr3");
      } elseif ($this->_itemsPerPage <= 0) {
        $valid = false;
!       $this->_itemsPerPageError = $this->_loc->getText("SettingsErr4");
      }
      if (!is_numeric($this->_purgeHistoryAfterMonths)) {
        $valid = FALSE;
!       $this->_purgeHistoryAfterMonthsError = $this->_loc->getText("SettingsErr5");
      }
      return $valid;
    }
diff -bBcPrw openbiblio.orig/classes/SettingsQuery.php openbiblio/classes/SettingsQuery.php
*** openbiblio.orig/classes/SettingsQuery.php	2004-08-01 02:39:50.000000000 +0200
--- openbiblio/classes/SettingsQuery.php	2005-02-22 13:10:41.000000000 +0100
***************
*** 22,27 ****
--- 22,28 ----
  
  require_once("../shared/global_constants.php");
  require_once("../classes/Query.php");
+ require_once("../classes/Localize.php");
  
  /******************************************************************************
   * SettingsQuery data access component for settings table
***************
*** 33,38 ****
--- 34,43 ----
   */
  class SettingsQuery extends Query {
  
+   function SettingsQuery () {
+     $this->_loc = new Localize(MAIN_LOCALE,"classes");
+   }
+ 
    /****************************************************************************
     * Executes a query
     * @return boolean returns false, if error occurs
***************
*** 41,47 ****
     */
    function execSelect() {
      $sql = "select * from settings";
!     return $this->_query($sql, "Error accessing library settings information.");
    }
  
    /****************************************************************************
--- 46,52 ----
     */
    function execSelect() {
      $sql = "select * from settings";
!     return $this->_query($sql, $this->_loc->getText("SettingsQueryErr1"));
    }
  
    /****************************************************************************
***************
*** 110,116 ****
                          $set->getLocale(), $set->getCharset(),
                          $set->getHtmlLangAttr());
  
!     return $this->_query($sql, "Error updating library settings information");
    }
  
    /****************************************************************************
--- 115,121 ----
                          $set->getLocale(), $set->getCharset(),
                          $set->getHtmlLangAttr());
  
!     return $this->_query($sql, $this->_loc->getText("SettingsQueryErr2"));
    }
  
    /****************************************************************************
***************
*** 122,128 ****
     */
    function updateTheme($themeId) {
      $sql = $this->mkSQL("update settings set themeid=%N", $themeId);
!     return $this->_query($sql, "Error updating library theme in use");
    }
  
    function getPurgeHistoryAfterMonths($connection) {
--- 127,133 ----
     */
    function updateTheme($themeId) {
      $sql = $this->mkSQL("update settings set themeid=%N", $themeId);
!     return $this->_query($sql, $this->_loc->getText("SettingsQueryErr3"));
    }
  
    function getPurgeHistoryAfterMonths($connection) {
***************
*** 130,136 ****
      $result = $connection->exec($sql);
      if ($result == false) {
        $this->_errorOccurred = true;
!       $this->_error = "Error updating library theme in use";
        $this->_dbErrno = $this->_conn->getDbErrno();
        $this->_dbError = $this->_conn->getDbError();
        $this->_SQL = $sql;
--- 135,141 ----
      $result = $connection->exec($sql);
      if ($result == false) {
        $this->_errorOccurred = true;
!       $this->_error = $this->_loc->getText("SettingsQueryErr4");
        $this->_dbErrno = $this->_conn->getDbErrno();
        $this->_dbError = $this->_conn->getDbError();
        $this->_SQL = $sql;

diff -bBcPrw openbiblio.orig/classes/Staff.php openbiblio/classes/Staff.php
*** openbiblio.orig/classes/Staff.php	2003-05-11 23:23:37.000000000 +0200
--- openbiblio/classes/Staff.php	2005-02-11 14:59:27.000000000 +0100
***************
*** 20,25 ****
--- 20,27 ----
   **********************************************************************************
   */
  
+   require_once("../classes/Localize.php");
+ 
  /******************************************************************************
   * Staff represents a library staff member.  Contains business rules for
   * staff member data validation.
***************
*** 48,53 ****
--- 50,60 ----
    var $_adminAuth = false;
    var $_reportsAuth = FALSE;
    var $_suspended = false;
+ 
+   function Staff () {
+     $this->_loc = new Localize(OBIB_LOCALE,"classes");
+   }
+   
    /****************************************************************************
     * @return boolean true if data is valid, otherwise false.
     * @access public
***************
*** 57,70 ****
      $valid = true;
      if ($this->_lastName == "") {
        $valid = false;
!       $this->_lastNameError = "Last name is required.";
      }
      if (strlen($this->_username) < 4) {
        $valid = false;
!       $this->_usernameError = "Username must be at least 4 characters.";
      } elseif (substr_count($this->_username, " ") > 0) {
        $valid = false;
!       $this->_usernameError = "Username must not contain any spaces.";
      }
      return $valid;
    }
--- 64,77 ----
      $valid = true;
      if ($this->_lastName == "") {
        $valid = false;
!       $this->_lastNameError = $this->_loc->getText("StaffErr1");
      }
      if (strlen($this->_username) < 4) {
        $valid = false;
!       $this->_usernameError = $this->_loc->getText("StaffErr2");
      } elseif (substr_count($this->_username, " ") > 0) {
        $valid = false;
!       $this->_usernameError = $this->_loc->getText("StaffErr3");
      }
      return $valid;
    }
***************
*** 78,90 ****
      $valid = true;
      if (strlen($this->_pwd) < 4) {
        $valid = false;
!       $this->_pwdError = "Password must be at least 4 characters.";
      } elseif (substr_count($this->_pwd, " ") > 0) {
        $valid = false;
!       $this->_pwdError = "Password must not contain any spaces.";
      } elseif ($this->_pwd != $this->_pwd2) {
        $valid = false;
!       $this->_pwdError = "Passwords do not match.";
      }
      return $valid;
    }
--- 85,97 ----
      $valid = true;
      if (strlen($this->_pwd) < 4) {
        $valid = false;
!       $this->_pwdError = $this->_loc->getText("StaffErr4");
      } elseif (substr_count($this->_pwd, " ") > 0) {
        $valid = false;
!       $this->_pwdError = $this->_loc->getText("StaffErr5");
      } elseif ($this->_pwd != $this->_pwd2) {
        $valid = false;
!       $this->_pwdError = $this->_loc->getText("StaffErr6");
      }
      return $valid;
    }
diff -bBcPrw openbiblio.orig/classes/StaffQuery.php openbiblio/classes/StaffQuery.php
*** openbiblio.orig/classes/StaffQuery.php	2004-08-01 02:39:50.000000000 +0200
--- openbiblio/classes/StaffQuery.php	2005-02-15 15:54:38.000000000 +0100
***************
*** 22,27 ****
--- 22,28 ----
  
  require_once("../shared/global_constants.php");
  require_once("../classes/Query.php");
+ require_once("../classes/Localize.php");
  
  /******************************************************************************
   * StaffQuery data access component for library staff members
***************
*** 32,37 ****
--- 33,43 ----
   ******************************************************************************
   */
  class StaffQuery extends Query {
+ 
+   function StaffQuery () {
+     $this->_loc = new Localize(OBIB_LOCALE,"classes");
+   }
+ 
    /****************************************************************************
     * Executes a query
     * @param string $userid (optional) userid of staff member to select
***************
*** 45,51 ****
        $sql .= $this->mkSQL(" where userid=%N ", $userid);
      }
      $sql .= " order by last_name, first_name";
!     return $this->_query($sql, "Error accessing staff member information.");
    }
    /****************************************************************************
     * Executes a query to verify a signon username and password
--- 51,57 ----
        $sql .= $this->mkSQL(" where userid=%N ", $userid);
      }
      $sql .= " order by last_name, first_name";
!     return $this->_query($sql, $this->_loc->getText("StaffQueryErr1"));
    }
    /****************************************************************************
     * Executes a query to verify a signon username and password
***************
*** 58,66 ****
    function verifySignon($username, $pwd) {
      $sql = $this->mkSQL("select * from staff "
                          . "where username = lower(%Q) "
                          . " and pwd = password(lower(%Q)) ",
                          $username, $pwd);
!     return $this->_query($sql, "Error verifying username and password.");
    }
  
    /****************************************************************************
--- 64,72 ----
    function verifySignon($username, $pwd) {
      $sql = $this->mkSQL("select * from staff "
                          . "where username = lower(%Q) "
                          . " and pwd = password(lower(%Q)) ",
                          $username, $pwd);
!     return $this->_query($sql, $this->_loc->getText("StaffQueryErr2"));
    }
  
    /****************************************************************************
***************
*** 74,80 ****
    {
      $sql = $this->mkSQL("update staff set suspended_flg='Y' "
                          . "where username = lower(%Q)", $username);
!     return $this->_query($sql, "Error suspending staff member.");
    }
  
    /****************************************************************************
--- 80,86 ----
    {
      $sql = $this->mkSQL("update staff set suspended_flg='Y' "
                          . "where username = lower(%Q)", $username);
!     return $this->_query($sql, $this->_loc->getText("StaffQueryErr3"));
    }
  
    /****************************************************************************
***************
*** 135,143 ****
     ****************************************************************************
     */
    function _dupUserName($username, $userid=0) {
      $sql = $this->mkSQL("select count(*) from staff where username = %Q "
                          . " and userid <> %N", $username, $userid);
!     if (!$this->_query($sql, "Error checking for dup username.")) {
        return false;
      }
      $array = $this->_conn->fetchRow(OBIB_NUM);
--- 141,149 ----
     ****************************************************************************
     */
    function _dupUserName($username, $userid=0) {
      $sql = $this->mkSQL("select count(*) from staff where username = %Q "
                          . " and userid <> %N", $username, $userid);
!     if (!$this->_query($sql, $this->_loc->getText("StaffQueryErr4"))) {
        return false;
      }
      $array = $this->_conn->fetchRow(OBIB_NUM);
***************
*** 159,169 ****
      if ($this->errorOccurred()) return false;
      if ($dupUsername) {
        $this->_errorOccurred = true;
!       $this->_error = "Username is already in use.";
        return false;
      }
      $sql = $this->mkSQL("insert into staff values (null, sysdate(), sysdate(), "
                          . "%N, %Q, password(%Q), %Q, ",
                          $staff->getLastChangeUserid(), $staff->getUsername(),
                          $staff->getPwd(), $staff->getLastName());
      if ($staff->getFirstName() == "") {
--- 165,175 ----
      if ($this->errorOccurred()) return false;
      if ($dupUsername) {
        $this->_errorOccurred = true;
!       $this->_error = $this->_loc->getText("StaffQueryErr5");
        return false;
      }
      $sql = $this->mkSQL("insert into staff values (null, sysdate(), sysdate(), "
                          . "%N, %Q, password(%Q), %Q, ",
                          $staff->getLastChangeUserid(), $staff->getUsername(),
                          $staff->getPwd(), $staff->getLastName());
      if ($staff->getFirstName() == "") {
***************
*** 177,183 ****
                           $staff->hasCircMbrAuth() ? "Y" : "N",
                           $staff->hasCatalogAuth() ? "Y" : "N",
                           $staff->hasReportsAuth() ? "Y" : "N");
!     return $this->_query($sql, "Error inserting new staff member information.");
    }
  
    /****************************************************************************
--- 183,189 ----
                           $staff->hasCircMbrAuth() ? "Y" : "N",
                           $staff->hasCatalogAuth() ? "Y" : "N",
                           $staff->hasReportsAuth() ? "Y" : "N");
!     return $this->_query($sql, $this->_loc->getText("StaffQueryErr6"));
    }
  
    /****************************************************************************
***************
*** 195,206 ****
      if ($this->errorOccurred()) return false;
      if ($dupUsername) {
        $this->_errorOccurred = true;
!       $this->_error = "Username is already in use.";
        return false;
      }
  
      $sql = $this->mkSQL("update staff set last_change_dt = sysdate(), "
                          . "last_change_userid=%N, username=%Q, last_name=%Q, ",
                          $staff->getLastChangeUserid(), $staff->getUsername(),
                          $staff->getLastName());
      if ($staff->getFirstName() == "") {
--- 201,212 ----
      if ($this->errorOccurred()) return false;
      if ($dupUsername) {
        $this->_errorOccurred = true;
!       $this->_error = $this->_loc->getText("StaffQueryErr5");
        return false;
      }
  
      $sql = $this->mkSQL("update staff set last_change_dt = sysdate(), "
                          . "last_change_userid=%N, username=%Q, last_name=%Q, ",
                          $staff->getLastChangeUserid(), $staff->getUsername(),
                          $staff->getLastName());
      if ($staff->getFirstName() == "") {
***************
*** 218,224 ****
                           $staff->hasCatalogAuth() ? "Y" : "N",
                           $staff->hasReportsAuth() ? "Y" : "N",
                           $staff->getUserid());
!     return $this->_query($sql, "Error updating staff member information.");
    }
  
    /****************************************************************************
--- 224,230 ----
                           $staff->hasCatalogAuth() ? "Y" : "N",
                           $staff->hasReportsAuth() ? "Y" : "N",
                           $staff->getUserid());
!     return $this->_query($sql, $this->_loc->getText("StaffQueryErr7"));
    }
  
    /****************************************************************************
***************
*** 229,238 ****
     ****************************************************************************
     */
    function resetPwd($staff) {
      $sql = $this->mkSQL("update staff set pwd=password(%Q) "
                          . "where userid=%N ",
                          $staff->getPwd(), $staff->getUserid());
!     return $this->_query($sql, "Error resetting password.");
    }
  
    /****************************************************************************
--- 235,244 ----
     ****************************************************************************
     */
    function resetPwd($staff) {
      $sql = $this->mkSQL("update staff set pwd=password(%Q) "
                          . "where userid=%N ",
                          $staff->getPwd(), $staff->getUserid());
!     return $this->_query($sql, $this->_loc->getText("StaffQueryErr8"));
    }
  
    /****************************************************************************
***************
*** 244,250 ****
     */
    function delete($userid) {
      $sql = $this->mkSQL("delete from staff where userid = %N ", $userid);
!     return $this->_query($sql, "Error deleting staff information.");
    }
  
  }
--- 250,256 ----
     */
    function delete($userid) {
      $sql = $this->mkSQL("delete from staff where userid = %N ", $userid);
!     return $this->_query($sql, $this->_loc->getText("StaffQueryErr9"));
    }
  
  }
diff -bBcPrw openbiblio.orig/classes/Theme.php openbiblio/classes/Theme.php
*** openbiblio.orig/classes/Theme.php	2002-07-10 00:59:30.000000000 +0200
--- openbiblio/classes/Theme.php	2005-02-22 13:11:04.000000000 +0100
***************
*** 20,25 ****
--- 20,27 ----
   **********************************************************************************
   */
  
+   require_once("../classes/Localize.php");
+ 
  /******************************************************************************
   * Theme represents a library look and feel theme.
   *
***************
*** 82,87 ****
--- 84,93 ----
    var $_tablePadding = 1;
    var $_tablePaddingError = "";
  
+   function Theme () {
+     $this->_loc = new Localize(MAIN_LOCALE,"classes");
+   }
+ 
    /****************************************************************************
     * @return boolean true if data is valid, otherwise false.
     * @access public
***************
*** 93,234 ****
      # required field edits
      if ($this->_themeName == "") {
        $valid = false;
!       $this->_themeNameError = "Theme name is required.";
      }
      if ($this->_titleBg == "") {
        $valid = false;
!       $this->_titleBgError = "Title background color is required.";
      }
      if ($this->_titleFontFace == "") {
        $valid = false;
!       $this->_titleFontFaceError = "Title font face is required.";
      }
      if ($this->_titleFontColor == "") {
        $valid = false;
!       $this->_titleFontColorError = "Title font color is required.";
      }
      if ($this->_primaryBg == "") {
        $valid = false;
!       $this->_primaryBgError = "Main body background color is required.";
      }
      if ($this->_primaryFontFace == "") {
        $valid = false;
!       $this->_primaryFontFaceError = "Main body font face is required.";
      }
      if ($this->_primaryFontColor == "") {
        $valid = false;
!       $this->_primaryFontColorError = "Main body font color is required.";
      }
      if ($this->_primaryLinkColor == "") {
        $valid = false;
!       $this->_primaryLinkColorError = "Main body link color is required.";
      }
      if ($this->_primaryErrorColor == "") {
        $valid = false;
!       $this->_primaryErrorColorError = "Main body error color is required.";
      }
      if ($this->_alt1Bg == "") {
        $valid = false;
!       $this->_alt1BgError = "Navigation background color is required.";
      }
      if ($this->_alt1FontFace == "") {
        $valid = false;
!       $this->_alt1FontFaceError = "Navigation font face is required.";
      }
      if ($this->_alt1FontColor == "") {
        $valid = false;
!       $this->_alt1FontColorError = "Navigation font color is required.";
      }
      if ($this->_alt1LinkColor == "") {
        $valid = false;
!       $this->_alt1LinkColorError = "Navigation link color is required.";
      }
      if ($this->_alt2Bg == "") {
        $valid = false;
!       $this->_alt2BgError = "Tab background color is required.";
      }
      if ($this->_alt2FontFace == "") {
        $valid = false;
!       $this->_alt2FontFaceError = "Tab font face is required.";
      }
      if ($this->_alt2FontColor == "") {
        $valid = false;
!       $this->_alt2FontColorError = "Tab font color is required.";
      }
      if ($this->_alt2LinkColor == "") {
        $valid = false;
!       $this->_alt2LinkColorError = "Tab link color is required.";
      }
      if ($this->_borderColor == "") {
        $valid = false;
!       $this->_borderColorError = "Border color is required.";
      }
  
      # numeric checks
      if (!is_numeric($this->_titleFontSize)) {
        $valid = false;
!       $this->_titleFontSizeError = "Title font size must be numeric.";
      } elseif (strrpos($this->_titleFontSize,".")) {
        $valid = false;
!       $this->_titleFontSizeError = "Title font size must not contain a decimal point.";
      } elseif ($this->_titleFontSize <= 0) {
        $valid = false;
!       $this->_titleFontSizeError = "Title font size must be greater than zero.";
      }
  
      if (!is_numeric($this->_primaryFontSize)) {
        $valid = false;
!       $this->_primaryFontSizeError = "Main body font size must be numeric.";
      } elseif (strrpos($this->_primaryFontSize,".")) {
        $valid = false;
!       $this->_primaryFontSizeError = "Main body font size must not contain a decimal point.";
      } elseif ($this->_primaryFontSize <= 0) {
        $valid = false;
!       $this->_primaryFontSizeError = "Main body font size must be greater than zero.";
      }
  
      if (!is_numeric($this->_alt1FontSize)) {
        $valid = false;
!       $this->_alt1FontSizeError = "Navigation font size must be numeric.";
      } elseif (strrpos($this->_alt1FontSize,".")) {
        $valid = false;
!       $this->_alt1FontSizeError = "Navigation font size must not contain a decimal point.";
      } elseif ($this->_alt1FontSize <= 0) {
        $valid = false;
!       $this->_alt1FontSizeError = "Navigation font size must be greater than zero.";
      }
  
      if (!is_numeric($this->_alt2FontSize)) {
        $valid = false;
!       $this->_alt2FontSizeError = "Tab font size must be numeric.";
      } elseif (strrpos($this->_alt2FontSize,".")) {
        $valid = false;
!       $this->_alt2FontSizeError = "Tab font size must not contain a decimal point.";
      } elseif ($this->_alt2FontSize <= 0) {
        $valid = false;
!       $this->_alt2FontSizeError = "Tab font size must be greater than zero.";
      }
  
      if (!is_numeric($this->_borderWidth)) {
        $valid = false;
!       $this->_borderWidthError = "Border width must be numeric.";
      } elseif (strrpos($this->_borderWidth,".")) {
        $valid = false;
!       $this->_borderWidthError = "Border width must not contain a decimal point.";
      } elseif ($this->_borderWidth <= 0) {
        $valid = false;
!       $this->_borderWidthError = "Border width must be greater than zero.";
      }
  
      if (!is_numeric($this->_tablePadding)) {
        $valid = false;
!       $this->_tablePaddingError = "Table padding must be numeric.";
      } elseif (strrpos($this->_tablePadding,".")) {
        $valid = false;
!       $this->_tablePaddingError = "Table padding must not contain a decimal point.";
      } elseif ($this->_tablePadding <= 0) {
        $valid = false;
!       $this->_tablePaddingError = "Table padding must be greater than zero.";
      }
  
      return $valid;
--- 99,240 ----
      # required field edits
      if ($this->_themeName == "") {
        $valid = false;
!       $this->_themeNameError = $this->_loc->getText("ThemeErr1");
      }
      if ($this->_titleBg == "") {
        $valid = false;
!       $this->_titleBgError = $this->_loc->getText("ThemeErr2");
      }
      if ($this->_titleFontFace == "") {
        $valid = false;
!       $this->_titleFontFaceError = $this->_loc->getText("ThemeErr3");
      }
      if ($this->_titleFontColor == "") {
        $valid = false;
!       $this->_titleFontColorError = $this->_loc->getText("ThemeErr4");
      }
      if ($this->_primaryBg == "") {
        $valid = false;
!       $this->_primaryBgError = $this->_loc->getText("ThemeErr5");
      }
      if ($this->_primaryFontFace == "") {
        $valid = false;
!       $this->_primaryFontFaceError = $this->_loc->getText("ThemeErr6");
      }
      if ($this->_primaryFontColor == "") {
        $valid = false;
!       $this->_primaryFontColorError = $this->_loc->getText("ThemeErr7");
      }
      if ($this->_primaryLinkColor == "") {
        $valid = false;
!       $this->_primaryLinkColorError = $this->_loc->getText("ThemeErr8");
      }
      if ($this->_primaryErrorColor == "") {
        $valid = false;
!       $this->_primaryErrorColorError = $this->_loc->getText("ThemeErr9");
      }
      if ($this->_alt1Bg == "") {
        $valid = false;
!       $this->_alt1BgError = $this->_loc->getText("ThemeErr10");
      }
      if ($this->_alt1FontFace == "") {
        $valid = false;
!       $this->_alt1FontFaceError = $this->_loc->getText("ThemeErr11");
      }
      if ($this->_alt1FontColor == "") {
        $valid = false;
!       $this->_alt1FontColorError = $this->_loc->getText("ThemeErr12");
      }
      if ($this->_alt1LinkColor == "") {
        $valid = false;
!       $this->_alt1LinkColorError = $this->_loc->getText("ThemeErr13");
      }
      if ($this->_alt2Bg == "") {
        $valid = false;
!       $this->_alt2BgError = $this->_loc->getText("ThemeErr14");
      }
      if ($this->_alt2FontFace == "") {
        $valid = false;
!       $this->_alt2FontFaceError = $this->_loc->getText("ThemeErr15");
      }
      if ($this->_alt2FontColor == "") {
        $valid = false;
!       $this->_alt2FontColorError = $this->_loc->getText("ThemeErr16");
      }
      if ($this->_alt2LinkColor == "") {
        $valid = false;
!       $this->_alt2LinkColorError = $this->_loc->getText("ThemeErr17");
      }
      if ($this->_borderColor == "") {
        $valid = false;
!       $this->_borderColorError = $this->_loc->getText("ThemeErr18");
      }
  
      # numeric checks
      if (!is_numeric($this->_titleFontSize)) {
        $valid = false;
!       $this->_titleFontSizeError = $this->_loc->getText("ThemeErr19");
      } elseif (strrpos($this->_titleFontSize,".")) {
        $valid = false;
!       $this->_titleFontSizeError = $this->_loc->getText("ThemeErr20");
      } elseif ($this->_titleFontSize <= 0) {
        $valid = false;
!       $this->_titleFontSizeError = $this->_loc->getText("ThemeErr21");
      }
  
      if (!is_numeric($this->_primaryFontSize)) {
        $valid = false;
!       $this->_primaryFontSizeError = $this->_loc->getText("ThemeErr22");
      } elseif (strrpos($this->_primaryFontSize,".")) {
        $valid = false;
!       $this->_primaryFontSizeError = $this->_loc->getText("ThemeErr23");
      } elseif ($this->_primaryFontSize <= 0) {
        $valid = false;
!       $this->_primaryFontSizeError = $this->_loc->getText("ThemeErr24");
      }
  
      if (!is_numeric($this->_alt1FontSize)) {
        $valid = false;
!       $this->_alt1FontSizeError = $this->_loc->getText("ThemeErr25");
      } elseif (strrpos($this->_alt1FontSize,".")) {
        $valid = false;
!       $this->_alt1FontSizeError = $this->_loc->getText("ThemeErr26");
      } elseif ($this->_alt1FontSize <= 0) {
        $valid = false;
!       $this->_alt1FontSizeError = $this->_loc->getText("ThemeErr27");
      }
  
      if (!is_numeric($this->_alt2FontSize)) {
        $valid = false;
!       $this->_alt2FontSizeError = $this->_loc->getText("ThemeErr28");
      } elseif (strrpos($this->_alt2FontSize,".")) {
        $valid = false;
!       $this->_alt2FontSizeError = $this->_loc->getText("ThemeErr29");
      } elseif ($this->_alt2FontSize <= 0) {
        $valid = false;
!       $this->_alt2FontSizeError = $this->_loc->getText("ThemeErr30");
      }
  
      if (!is_numeric($this->_borderWidth)) {
        $valid = false;
!       $this->_borderWidthError = $this->_loc->getText("ThemeErr31");
      } elseif (strrpos($this->_borderWidth,".")) {
        $valid = false;
!       $this->_borderWidthError = $this->_loc->getText("ThemeErr32");
      } elseif ($this->_borderWidth <= 0) {
        $valid = false;
!       $this->_borderWidthError = $this->_loc->getText("ThemeErr33");
      }
  
      if (!is_numeric($this->_tablePadding)) {
        $valid = false;
!       $this->_tablePaddingError = $this->_loc->getText("ThemeErr34");
      } elseif (strrpos($this->_tablePadding,".")) {
        $valid = false;
!       $this->_tablePaddingError = $this->_loc->getText("ThemeErr35");
      } elseif ($this->_tablePadding <= 0) {
        $valid = false;
!       $this->_tablePaddingError = $this->_loc->getText("ThemeErr36");
      }
  
      return $valid;
diff -bBcPrw openbiblio.orig/classes/ThemeQuery.php openbiblio/classes/ThemeQuery.php
*** openbiblio.orig/classes/ThemeQuery.php	2004-08-01 02:39:50.000000000 +0200
--- openbiblio/classes/ThemeQuery.php	2005-02-22 13:11:21.000000000 +0100
***************
*** 22,27 ****
--- 22,28 ----
  
  require_once("../shared/global_constants.php");
  require_once("../classes/Query.php");
+ require_once("../classes/Localize.php");
  
  /******************************************************************************
   * ThemeQuery data access component for library themes
***************
*** 32,37 ****
--- 33,43 ----
   ******************************************************************************
   */
  class ThemeQuery extends Query {
+ 
+   function ThemeQuery () {
+     $this->_loc = new Localize(MAIN_LOCALE,"classes");
+   }
+ 
    /****************************************************************************
     * Executes a query
     * @param string $themeid themeid of theme to select
***************
*** 46,52 ****
        $sql = $this->mkSQL("select * from theme where themeid=%N "
                            . "order by theme_name ", $themeid);
      }
!     return $this->_query($sql, "Error accessing theme information.");
    }
  
    /****************************************************************************
--- 52,58 ----
        $sql = $this->mkSQL("select * from theme where themeid=%N "
                            . "order by theme_name ", $themeid);
      }
!     return $this->_query($sql, $this->_loc->getText("ThemeQueryErr1"));
    }
  
    /****************************************************************************
***************
*** 130,136 ****
                          $theme->getBorderColor(), $theme->getBorderWidth(),
                          $theme->getTablePadding());
  
!     return $this->_query($sql, "Error inserting new library look and feel theme.");
    }
  
    /****************************************************************************
--- 136,142 ----
                          $theme->getBorderColor(), $theme->getBorderWidth(),
                          $theme->getTablePadding());
  
!     return $this->_query($sql, $this->_loc->getText("ThemeQueryErr2"));
    }
  
    /****************************************************************************
***************
*** 173,179 ****
                          $theme->getAlt2FontBold() ? "Y" : "N",
                          $theme->getBorderColor(), $theme->getBorderWidth(),
                          $theme->getTablePadding(), $theme->getThemeid());
!     return $this->_query($sql, "Error updating library look and feel theme.");
    }
  
    /****************************************************************************
--- 179,185 ----
                          $theme->getAlt2FontBold() ? "Y" : "N",
                          $theme->getBorderColor(), $theme->getBorderWidth(),
                          $theme->getTablePadding(), $theme->getThemeid());
!     return $this->_query($sql, $this->_loc->getText("ThemeQueryErr3"));
    }
  
    /****************************************************************************
***************
*** 185,191 ****
     */
    function delete($themeid) {
      $sql = $this->mkSQL("delete from theme where themeid=%N ", $themeid);
!     return $this->_query($sql, "Error deleting library look and feel theme.");
    }
  
  }
--- 191,197 ----
     */
    function delete($themeid) {
      $sql = $this->mkSQL("delete from theme where themeid=%N ", $themeid);
!     return $this->_query($sql, $this->_loc->getText("ThemeQueryErr4"));
    }
  
  }
diff -bBcPrw openbiblio.orig/database_constants.php openbiblio/database_constants.php
*** openbiblio.orig/database_constants.php	2005-03-02 03:04:53.000000000 +0100
--- openbiblio/database_constants.php	2005-03-15 22:03:18.000000000 +0100
***************
*** 1,16 ****
  <?php
  /*********************************************************************************
   *
   *                           A T T E N T I O N !
   *
   *  ||  Please modify the following database connection variables to match  ||
   *  \/  the MySQL database and user that you have created for phpLibLite.   \/
   *********************************************************************************
   */
  define("OBIB_HOST",     "localhost");
  define("OBIB_DATABASE", "OpenBiblio");
  define("OBIB_USERNAME", "obiblio");
  define("OBIB_PWD",      "obiblio");
  /*********************************************************************************
   *  /\                                                                      /\
   *  ||                                                                      ||
--- 1,17 ----
  <?php
  /*********************************************************************************
   *
   *                           A T T E N T I O N !
   *
   *  ||  Please modify the following database connection variables to match  ||
   *  \/  the MySQL database and user that you have created for phpLibLite.   \/
   *********************************************************************************
   */
  define("OBIB_HOST",     "localhost");
  define("OBIB_DATABASE", "OpenBiblio");
  define("OBIB_USERNAME", "obiblio_user");
  define("OBIB_PWD",      "obiblio_passwd");
+ define("MAIN_LOCALE",   "de"); // de oder en
  /*********************************************************************************
   *  /\                                                                      /\
   *  ||                                                                      ||
diff -bBcPrw openbiblio.orig/install/cancel_msg.php openbiblio/install/cancel_msg.php
*** openbiblio.orig/install/cancel_msg.php	2002-07-10 00:57:57.000000000 +0200
--- openbiblio/install/cancel_msg.php	2005-02-22 15:51:09.000000000 +0100
***************
*** 19,31 ****
   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   **********************************************************************************
   */
    include("../install/header.php");
  
  ?>
  <br>
! <h1>OpenBiblio Installation:</h1>
  
! OpenBiblio install process has been cancelled.<br><br>
! <a href="../install_instructions.html">View Install Instructions</a>
  
  <?php include("../install/footer.php"); ?>
--- 19,36 ----
   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   **********************************************************************************
   */
+ 
+ require_once("../database_constants.php");
+ require_once("../classes/Localize.php");
+ $loc = new Localize(MAIN_LOCALE,"install");
+ 
  include("../install/header.php");
  
  ?>
  <br>
! <h1><?php print $loc->getText("installHeadline"); ?></h1>
  
! <?php print $loc->getText("cancelMessage"); ?><br><br>
! <a href="../install_instructions.html"><?php print $loc->getText("cancelShow"); ?></a>
  
  <?php include("../install/footer.php"); ?>
diff -bBcPrw openbiblio.orig/install/index.php openbiblio/install/index.php
*** openbiblio.orig/install/index.php	2004-04-22 05:00:46.000000000 +0200
--- openbiblio/install/index.php	2005-02-22 15:47:31.000000000 +0100
***************
*** 19,24 ****
--- 19,29 ----
   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   **********************************************************************************
   */
+ 
+ require_once("../database_constants.php");
+ require_once("../classes/Localize.php");
+ $loc = new Localize(MAIN_LOCALE,"install");
+  
  include("../install/header.php");
  
  ?>
***************
*** 32,65 ****
    if ($installQ->errorOccurred()) {
      @$installQ->close();
      ?>
!       The connection to the database failed with the following error.
          <pre>
      <?php echo $installQ->getDbError(); ?>
          </pre>
!       Please make sure the following has been done
!       before running this install script.
        <ol>
!         <li>create OpenBiblio database (<a href="../install_instructions.html#step4">step 4</a> of the install instructions)</li>
!         <li>create OpenBiblio database user (<a href="../install_instructions.html#step5">step 5</a> of the install instructions)</li>
!         <li>update openbibilio/database_constants.php with your new database username and password
!           (<a href="../install_instructions.html#step8">step 8</a> of the install instructions)</li>
        </ol>
!       See <a href="../install_instructions.html">Install Instructions</a> for more details.
      <?php
      include("../install/footer.php");
      exit();
    }
    $installQ->close();
!   echo "Database connection is good.  Please choose a language and press the install button.<br>\n";
  
  ?>
  <br>
! <h1>OpenBiblio Installation:</h1>
  <blockquote>
    <form name="installForm" method="POST" action="../install/install.php">
      <table cellpadding=0 cellspacing=0 border=0>
        <tr>
!         <td><font class="primary">Language:</font></td>
          <td><select name="locale">
  <?php
    require_once("../locale/language_list.php");
--- 37,68 ----
    if ($installQ->errorOccurred()) {
      @$installQ->close();
      ?>
!       <?php print $loc->getText("indexErr1"); ?>
          <pre>
      <?php echo $installQ->getDbError(); ?>
          </pre>
!       <?php print $loc->getText("indexErr2"); ?>
        <ol>
!         <li><?php print $loc->getText("indexInstr1"); ?> (<a href="../install_instructions.html#step4"><?php print $loc->getText("indexStep"); ?> 4</a> <?php print $loc->getText("indexInstInstr"); ?>)</li>
!         <li><?php print $loc->getText("indexInstr2"); ?> (<a href="../install_instructions.html#step5"><?php print $loc->getText("indexStep"); ?> 5</a> <?php print $loc->getText("indexInstInstr"); ?>)</li>
!         <li><?php print $loc->getText("indexInstr3"); ?> (<a href="../install_instructions.html#step8"><?php print $loc->getText("indexStep"); ?> 8</a> <?php print $loc->getText("indexInstInstr"); ?>)</li>
        </ol>
!       <?php print $loc->getText("indexInstr4"); ?> <a href="../install_instructions.html"><?php print $loc->getText("indexInstr5"); ?></a> <?php print $loc->getText("indexInstr6"); ?>
      <?php
      include("../install/footer.php");
      exit();
    }
    $installQ->close();
!   echo $loc->getText("indexStart")."<br>\n";
  
  ?>
  <br>
! <h1><?php print $loc->getText("installHeadline"); ?></h1>
  <blockquote>
    <form name="installForm" method="POST" action="../install/install.php">
      <table cellpadding=0 cellspacing=0 border=0>
        <tr>
!         <td><font class="primary"><?php print $loc->getText("indexLang"); ?></font></td>
          <td><select name="locale">
  <?php
    require_once("../locale/language_list.php");
***************
*** 70,90 ****
          </select></td>
        </tr>
        <tr>
!         <td rowspan="2" valign="top"><font class="primary">Install Test Data:</font></td>
          <td><input type="checkbox" name="installTestData" value="yes"></td>
        </tr>
        <tr>
!         <td><input type="submit" value="Install"></td>
        </tr>
      </table>
    </form>
  </blockquote>
  <br>
! <h1>Update Version 0.3.x to Version 0.4.0 / 0.5.0:</h1>
  <blockquote>
!   <font class="error">WARNING - Please back up your database before updating from version 0.3.x to version 0.4.0 / 0.5.0.</font>
    <form name="updateForm" method="POST" action="../install/update030.php">
!   <input type="submit" value="Update"></td>
    </form>
  </blockquote>
  
--- 73,93 ----
          </select></td>
        </tr>
        <tr>
!         <td rowspan="2" valign="top"><font class="primary"><?php print $loc->getText("indexTest"); ?></font></td>
          <td><input type="checkbox" name="installTestData" value="yes"></td>
        </tr>
        <tr>
!         <td><input type="submit" value="<?php print $loc->getText("indexInstall"); ?>"></td>
        </tr>
      </table>
    </form>
  </blockquote>
  <br>
! <h1><?php print $loc->getText("indexUpdateHead"); ?></h1>
  <blockquote>
!   <font class="error"><?php print $loc->getText("indexAttention"); ?></font>
    <form name="updateForm" method="POST" action="../install/update030.php">
!   <input type="submit" value="<?php print $loc->getText("indexUpdate"); ?>"></td>
    </form>
  </blockquote>
  
diff -bBcPrw openbiblio.orig/install/installFuncs.php openbiblio/install/installFuncs.php
*** openbiblio.orig/install/installFuncs.php	2004-04-22 05:00:50.000000000 +0200
--- openbiblio/install/installFuncs.php	2005-02-22 14:25:23.000000000 +0100
***************
*** 20,25 ****
--- 20,28 ----
   **********************************************************************************
   */
  
+ require_once("../classes/Localize.php");
+ $loc = new Localize(MAIN_LOCALE,"install");
+ 
    /**********************************************************************************
     * Function to read through an sql file executing SQL only when ";" is encountered
     **********************************************************************************/
***************
*** 27,33 ****
      $fp = fopen($filename, "r");
      # show error if file could not be opened
      if ($fp == false) {
!       echo "Error reading file ".$filename.".<br>\n";
        return false;
      } else {
        $sqlStmt = "";
--- 30,36 ----
      $fp = fopen($filename, "r");
      # show error if file could not be opened
      if ($fp == false) {
!       echo $loc->getText("FuncsErr1").$filename.".<br>\n";
        return false;
      } else {
        $sqlStmt = "";
diff -bBcPrw openbiblio.orig/install/install.php openbiblio/install/install.php
*** openbiblio.orig/install/install.php	2004-11-16 23:50:16.000000000 +0100
--- openbiblio/install/install.php	2005-02-22 15:50:17.000000000 +0100
***************
*** 25,30 ****
--- 25,34 ----
      exit();
    }
    
+   require_once("../database_constants.php");
+   require_once("../classes/Localize.php");
+   $loc = new Localize(MAIN_LOCALE,"install");
+ 
    include("../install/header.php");
  
    require_once("../classes/InstallQuery.php");
***************
*** 50,56 ****
    
  ?>
  <br>
! <h1>OpenBiblio Installation:</h1>
  
  <!--This install module is still not complete.  Please follow the
  <a href="../install_instructions.html">Install Instructions</a> to install OpenBiblio
--- 54,60 ----
    
  ?>
  <br>
! <h1><?php print $loc->getText("installHeadline"); ?></h1>
  
  <!--This install module is still not complete.  Please follow the
  <a href="../install_instructions.html">Install Instructions</a> to install OpenBiblio
***************
*** 65,78 ****
      displayErrorPage($setQ);
      exit();
    }
!   echo "Database connection is good.<br>\n";
  
    #************************************************************************************
    #* show warning message if database exists.
    #************************************************************************************
    $setQ->execSelect();
    if ($setQ->errorOccurred()) {
!     echo "Building OpenBiblio tables...<br>\n";
    } else {
      $set = @$setQ->fetchRow();
      if (!$set) {
--- 69,82 ----
      displayErrorPage($setQ);
      exit();
    }
!   echo $loc->getText("installOK")."<br>\n";
  
    #************************************************************************************
    #* show warning message if database exists.
    #************************************************************************************
    $setQ->execSelect();
    if ($setQ->errorOccurred()) {
!     echo $loc->getText("installCreate")."<br>\n";
    } else {
      $set = @$setQ->fetchRow();
      if (!$set) {
***************
*** 83,95 ****
      if (!isset($_POST["confirm"]) or ($_POST["confirm"] != "yes")){
        ?>
          <form method="POST" action="../install/install.php">
!         OpenBiblio (version <?php echo $version;?>) is already installed.
!         Are you sure you want to delete all library data and create new OpenBiblio         tables?<br>
          <input type="hidden" name="confirm" value="yes">
          <input type="hidden" name="locale" value="<?php echo $locale; ?>">
          <input type="hidden" name="installTestData" value="<?php if (isset($_POST["installTestData"])) echo "yes"; ?>">
!         <input type="submit" value="Continue">
!         <input type="button" onClick="parent.location='../install/cancel_msg.php'" value="Cancel">
          </form>
        <?php
        $setQ->close();
--- 87,98 ----
      if (!isset($_POST["confirm"]) or ($_POST["confirm"] != "yes")){
        ?>
          <form method="POST" action="../install/install.php">
!         OpenBiblio (version <?php echo $version;?>) <?php print $loc->getText("installAlready"); ?><br>
          <input type="hidden" name="confirm" value="yes">
          <input type="hidden" name="locale" value="<?php echo $locale; ?>">
          <input type="hidden" name="installTestData" value="<?php if (isset($_POST["installTestData"])) echo "yes"; ?>">
!         <input type="submit" value="<?php print $loc->getText("installCont"); ?>">
!         <input type="button" onClick="parent.location='../install/cancel_msg.php'" value="<?php print $loc->getText("installStop"); ?>">
          </form>
        <?php
        $setQ->close();
***************
*** 114,120 ****
        echo "<!-- SQL = ".$installQ->getSQL()."-->\n";
        $installQ->clearErrors();
      } else {
!       print "table ".$tableName." dropped.<br>";
        flush();
      }
  
--- 117,123 ----
        echo "<!-- SQL = ".$installQ->getSQL()."-->\n";
        $installQ->clearErrors();
      } else {
!       print $loc->getText("installTable").$tableName.$loc->getText("installDel")."<br>";
        flush();
      }
  
***************
*** 125,131 ****
        exit();
      }
  
!     print "table ".$tableName." created.<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
--- 128,134 ----
        exit();
      }
  
!     print $loc->getText("installTable").$tableName.$loc->getText("installTaCrea")."<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
***************
*** 138,144 ****
        exit();
      }
  
!     print "domain data for table ".$tableName." inserted.<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
--- 141,147 ----
        exit();
      }
  
!     print $loc->getText("installTable2").$tableName.$loc->getText("installIns")."<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
***************
*** 147,154 ****
  
  ?>
  <br>
! OpenBiblio tables have been created successfully!<br>
! <a href="../home/index.php">start using OpenBiblio</a>
  
  
  <?php include("../install/footer.php"); ?>
--- 150,157 ----
  
  ?>
  <br>
! <?php print $loc->getText("installReady1"); ?><br>
! <a href="../home/index.php"><?php print $loc->getText("installReady2"); ?></a>
  
  
  <?php include("../install/footer.php"); ?>
diff -bBcPrw openbiblio.orig/install/update030.php openbiblio/install/update030.php
*** openbiblio.orig/install/update030.php	2004-11-16 23:50:16.000000000 +0100
--- openbiblio/install/update030.php	2005-02-22 15:49:29.000000000 +0100
***************
*** 20,25 ****
--- 20,29 ----
   **********************************************************************************
   */
  
+ require_once("../database_constants.php");
+ require_once("../classes/Localize.php");
+ $loc = new Localize(MAIN_LOCALE,"install");
+ 
    include("../install/header.php");
  
    require_once("../classes/InstallQuery.php");
***************
*** 37,43 ****
  
  ?>
  <br>
! <h1>OpenBiblio Update:</h1>
  
  <?php
  
--- 41,47 ----
  
  ?>
  <br>
! <h1><?php print $loc->getText("UpdateHead"); ?></h1>
  
  <?php
  
***************
*** 49,61 ****
      displayErrorPage($setQ);
      exit();
    }
!   echo "Database connection is good.<br>\n";
  
    // check for database
    $setQ->execSelect();
    if ($setQ->errorOccurred()) {
      $setQ->close();
!     echo "Version 0.3.0 of the OpenBiblio data could not be found.<br>\n";
      include("../install/footer.php");
      exit();
    }
--- 53,65 ----
      displayErrorPage($setQ);
      exit();
    }
!   echo $loc->getText("UpdateOK")."<br>\n";
  
    // check for database
    $setQ->execSelect();
    if ($setQ->errorOccurred()) {
      $setQ->close();
!     echo $loc->getText("UpdateErr1")."<br>\n";
      include("../install/footer.php");
      exit();
    }
***************
*** 69,75 ****
      $version=$set->getVersion();
    }
    if (substr($version,0,4) != "0.3.") {
!     echo "Version 0.3.0 of the OpenBiblio data could not be found.<br>\n";
      include("../install/footer.php");
      exit();
    }
--- 73,79 ----
      $version=$set->getVersion();
    }
    if (substr($version,0,4) != "0.3.") {
!     echo $loc->getText("UpdateErr1")."<br>\n";
      include("../install/footer.php");
      exit();
    }
***************
*** 78,90 ****
    if (!isset($_POST["confirm"]) or ($_POST["confirm"] != "yes")){
      ?>
        <form method="POST" action="../install/update030.php">
!       OpenBiblio (version <?php echo $version;?>) is currently installed.
!       Are you sure you want to convert all library data to version 0.4.0?<br>
        <input type="hidden" name="confirm" value="yes">
        <input type="hidden" name="locale" value="<?php echo $locale; ?>">
        <input type="hidden" name="installTestData" value="<?php if (isset($_POST["installTestData"])) echo "yes"; ?>">
!       <input type="submit" value="Continue">
!       <input type="button" onClick="parent.location='../install/cancel_msg.php'" value="Cancel">
        </form>
      <?php
      include("../install/footer.php");
--- 82,93 ----
    if (!isset($_POST["confirm"]) or ($_POST["confirm"] != "yes")){
      ?>
        <form method="POST" action="../install/update030.php">
!       OpenBiblio (version <?php echo $version;?>) <?php print $loc->getText("UpdateAlready"); ?><br>
        <input type="hidden" name="confirm" value="yes">
        <input type="hidden" name="locale" value="<?php echo $locale; ?>">
        <input type="hidden" name="installTestData" value="<?php if (isset($_POST["installTestData"])) echo "yes"; ?>">
!       <input type="submit" value="<?php print $loc->getText("UpdateCont"); ?>">
!       <input type="button" onClick="parent.location='../install/cancel_msg.php'" value="<?php print $loc->getText("UpdateStop"); ?>">
        </form>
      <?php
      include("../install/footer.php");
***************
*** 106,112 ****
        echo "<!-- SQL = ".$installQ->getSQL()."-->\n";
        $installQ->clearErrors();
      } else {
!       print "table ".$tempTableName." dropped.<br>";
        flush();
      }
  
--- 109,115 ----
        echo "<!-- SQL = ".$installQ->getSQL()."-->\n";
        $installQ->clearErrors();
      } else {
!       print $loc->getText("UpdateTable").$tempTableName.$loc->getText("UpdateDel")."<br>";
        flush();
      }
  
***************
*** 117,123 ****
        exit();
      }
  
!     print "table ".$tempTableName." created.<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
--- 120,126 ----
        exit();
      }
  
!     print $loc->getText("UpdateTable").$tempTableName.$loc->getText("UpdateTaCrea")."<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
***************
*** 130,136 ****
        exit();
      }
  
!     print "domain data for table ".$tableName." inserted.<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
--- 133,139 ----
        exit();
      }
  
!     print $loc->getText("UpdateTable2").$tableName.$loc->getText("UpdateIns")."<br>";
      for ($i=0; $i<50; $i++) print ("                                                         ");
      flush();
    }
***************
*** 147,153 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "biblio table converted.<br>";
  
    #************************************************************************************
    #* need to also populate marc table here
--- 150,156 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv1")."<br>";
  
    #************************************************************************************
    #* need to also populate marc table here
***************
*** 159,165 ****
        $installQ->close();
        displayErrorPage($installQ);
      }
!     print $tag.$subFieldCd." tags inserted.<br>";
    }
  
    insertBiblioFields($installQ, 250,'a',$tblPrfx."biblio_field","edition");  
--- 162,168 ----
        $installQ->close();
        displayErrorPage($installQ);
      }
!     print $tag.$subFieldCd." tags".$loc->getText("UpdateIns")."<br>";
    }
  
    insertBiblioFields($installQ, 250,'a',$tblPrfx."biblio_field","edition");  
***************
*** 214,220 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "biblio_copy table converted.<br>";
  
    #************************************************************************************
    #* populate member data
--- 217,223 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv2")."<br>";
  
    #************************************************************************************
    #* populate member data
***************
*** 228,234 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "member table converted.<br>";
  
    #************************************************************************************
    #* populate staff data
--- 231,237 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv3")."<br>";
  
    #************************************************************************************
    #* populate staff data
***************
*** 239,245 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "new staff table rows deleted.<br>";
    
    $sql = "insert into ".$tblPrfx."staff ";
    $sql = $sql."select userid, create_dt, last_updated_dt, 1, username, pwd, last_name, first_name, ";
--- 242,248 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv4")."<br>";
    
    $sql = "insert into ".$tblPrfx."staff ";
    $sql = $sql."select userid, create_dt, last_updated_dt, 1, username, pwd, last_name, first_name, ";
***************
*** 250,256 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "staff table converted.<br>";
  
    #************************************************************************************
    #* populate collection data
--- 253,259 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv5")."<br>";
  
    #************************************************************************************
    #* populate collection data
***************
*** 261,267 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "new collection table rows deleted.<br>";
  
    $sql = "insert into ".$tblPrfx."collection_dm ";
    $sql = $sql."select code, description, default_flg, days_due_back, 0.00 ";
--- 264,270 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv6")."<br>";
  
    $sql = "insert into ".$tblPrfx."collection_dm ";
    $sql = $sql."select code, description, default_flg, days_due_back, 0.00 ";
***************
*** 271,277 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "collection_dm table converted.<br>";
  
    #************************************************************************************
    #* populate material type data
--- 274,280 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv7")."<br>";
  
    #************************************************************************************
    #* populate material type data
***************
*** 283,289 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "new material_type table rows deleted.<br>";
  
    $sql = "insert into ".$tblPrfx."material_type_dm ";
    $sql = $sql."select * from material_type_dm";
--- 286,292 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv8")."<br>";
  
    $sql = "insert into ".$tblPrfx."material_type_dm ";
    $sql = $sql."select * from material_type_dm";
***************
*** 292,298 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "material_type_dm table converted.<br>";
  
    #************************************************************************************
    #* convert settings?
--- 295,301 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv9")."<br>";
  
    #************************************************************************************
    #* convert settings?
***************
*** 303,309 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "new settings table rows deleted.<br>";
  
    $sql = "insert into ".$tblPrfx."settings ";
    $sql = $sql."select library_name, library_image_url, use_image_flg, ";
--- 306,312 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv10")."<br>";
  
    $sql = "insert into ".$tblPrfx."settings ";
    $sql = $sql."select library_name, library_image_url, use_image_flg, ";
***************
*** 315,321 ****
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print "settings table converted.<br>";
  
  //exit('stopped here');
  
--- 318,324 ----
      $installQ->close();
      displayErrorPage($installQ);
    }
!   print $loc->getText("UpdateConv11")."<br>";
  
  //exit('stopped here');
  
***************
*** 326,332 ****
    $result = $installQ->dropTable("biblio_hold");
  */
    $result = $installQ->dropTable("biblio_status");
!   print "biblio_status have been dropped.<br>";
  /*  $result = $installQ->dropTable("biblio_status_dm");
    $result = $installQ->dropTable("collection_dm");
    $result = $installQ->dropTable("material_type_dm");
--- 329,335 ----
    $result = $installQ->dropTable("biblio_hold");
  */
    $result = $installQ->dropTable("biblio_status");
!   print $loc->getText("UpdateConv12")."<br>";
  /*  $result = $installQ->dropTable("biblio_status_dm");
    $result = $installQ->dropTable("collection_dm");
    $result = $installQ->dropTable("material_type_dm");
***************
*** 344,350 ****
    #************************************************************************************
    foreach($tables as $tableName) {
      @$result = $installQ->dropTable($tableName);
!     print $tableName." dropped.<br>";
  
      $tempTableName = $tblPrfx.$tableName;
      $sql = "rename table ".$tempTableName." to ".$tableName;
--- 347,353 ----
    #************************************************************************************
    foreach($tables as $tableName) {
      @$result = $installQ->dropTable($tableName);
!     print $tableName.$loc->getText("UpdateDel").".<br>";
  
      $tempTableName = $tblPrfx.$tableName;
      $sql = "rename table ".$tempTableName." to ".$tableName;
***************
*** 353,367 ****
        $installQ->close();
        displayErrorPage($installQ);
      }
!     print $tempTableName." renamed to ".$tableName.".<br>";
    }  
  
    $installQ->close();
  
  ?>
  <br>
! OpenBiblio tables have been created successfully!<br>
! <a href="../home/index.php">start using OpenBiblio</a>
  
  
  <?php include("../install/footer.php"); ?>
--- 356,370 ----
        $installQ->close();
        displayErrorPage($installQ);
      }
!     print $tempTableName.$loc->getText("UpdateRename").$tableName.".<br>";
    }  
  
    $installQ->close();
  
  ?>
  <br>
! <?php print $loc->getText("UpdateReady1"); ?><br>
! <a href="../home/index.php"><?php print $loc->getText("UpdateReady2"); ?></a>
  
  
  <?php include("../install/footer.php"); ?>
diff -bBcPrw openbiblio.orig/locale/en/cataloging.php openbiblio/locale/en/cataloging.php
*** openbiblio.orig/locale/en/cataloging.php	2005-03-13 11:29:42.000000000 +0100
--- openbiblio/locale/en/cataloging.php	2005-04-13 13:51:00.000000000 +0200
***************
*** 73,83 ****
  $trans["indexAuthor"]              = "\$text = 'Author';";
  $trans["indexSubject"]             = "\$text = 'Subject';";
  $trans["indexButton"]              = "\$text = 'Search';";
  
  #****************************************************************************
  #*  Translation text for page biblio_new_form.php
  #****************************************************************************
  $trans["biblioNewFormLabel"]       = "\$text = 'Add New';";
  
  #****************************************************************************
  #*  Translation text for page biblio_fields.php
--- 73,88 ----
  $trans["indexAuthor"]              = "\$text = 'Author';";
  $trans["indexSubject"]             = "\$text = 'Subject';";
  $trans["indexButton"]              = "\$text = 'Search';";
  
  #****************************************************************************
  #*  Translation text for page biblio_new_form.php
  #****************************************************************************
  $trans["biblioNewFormLabel"]       = "\$text = 'Add New';";
+ 
+ #****************************************************************************
+ #*  Translation text for page biblio_fields.php
+ #****************************************************************************
+ $trans["biblioNewLikeEdit"]        = "\$text = 'Edit';";
  
  #****************************************************************************
  #*  Translation text for page biblio_fields.php
diff -bBcPrw openbiblio.orig/locale/en/classes.php openbiblio/locale/en/classes.php
*** openbiblio.orig/locale/en/classes.php	2005-03-13 11:29:42.000000000 +0100
--- openbiblio/locale/en/classes.php	2005-03-07 10:26:07.000000000 +0100
***************
*** 167,172 ****
--- 167,175 ----
  $trans["labelFormatHeightErr"]    = "\$text = 'Invalid height specified in label definition xml.  Height must be numeric.';";
  $trans["labelFormatHeightErr2"]   = "\$text = 'Invalid height specified in label definition xml.  Height must be greater than zero.';";
  $trans["labelFormatNoLabelsErr"]  = "\$text = 'Invalid label lines specified in label definition xml.';";
+ $trans["labelFormatXmlError"]     = "\$text = 'xml error: ';";
+ $trans["labelFormatLine"]         = "\$text = '\nline number: ';";
+ $trans["labelFormatColumn"]       = "\$text = '\ncolumn number: ';";
  
  #****************************************************************************
  #*  Translation text for class BiblioStatusHistQuery
***************
*** 183,188 ****
--- 186,192 ----
  $trans["memberAccountTransError1"]  = "\$text = 'Amount is required.';";
  $trans["memberAccountTransError2"]  = "\$text = 'Amount must be numeric.';";
  $trans["memberAccountTransError3"]  = "\$text = 'Description is required.';";
+ $trans["memberAccountTransError4"]  = "\$text = 'Amount must be greater than zero.';";
  
  #****************************************************************************
  #*  Translation text for class MemberAccountQuery
***************
*** 191,194 ****
--- 195,351 ----
  $trans["memberAccountQueryErr2"]    = "\$text = 'Error inserting member account information.';";
  $trans["memberAccountQueryErr3"]    = "\$text = 'Error deleting member account information.';";
  
+ #****************************************************************************
+ #*  Translation text for class Dm and DmQuery
+ #****************************************************************************
+ 
+ $trans["DmErr1"]                    = "\$text = 'Description is required.';";
+ $trans["DmErr2"]                    = "\$text = 'Days due back must be numeric.';";
+ $trans["DmErr3"]                    = "\$text = 'Days due back can not be less than zero.';";
+ $trans["DmErr4"]                    = "\$text = 'Daily late fee must be numeric.';";
+ $trans["DmErr5"]                    = "\$text = 'Daily late fee can not be less than zero.';";
+ $trans["DmErr6"]                    = "\$text = 'Adult checkout limit must be numeric.';";
+ $trans["DmErr7"]                    = "\$text = 'Adult checkout limit can not be less than zero.';";
+ $trans["DmErr8"]                    = "\$text = 'Adult renewal limit must be numeric.';";
+ $trans["DmErr9"]                    = "\$text = 'Adult renewal limit can not be less than zero.';";
+ $trans["DmErr10"]                   = "\$text = 'Juvenile checkout limit must be numeric.';";
+ $trans["DmErr11"]                   = "\$text = 'Juvenile checkout limit can not be less than zero.';";
+ $trans["DmErr12"]                   = "\$text = 'Juvenile renewal limit must be numeric.';";
+ $trans["DmErr13"]                   = "\$text = 'Juvenile renewal limit can not be less than zero.';";
+ $trans["DmQueryErr1"]               = "\$text = 'Error accessing the %table% domain table.';";
+ $trans["DmQueryErr2"]               = "\$text = 'Can only insert rows on collections and material types.';";
+ $trans["DmQueryErr3"]               = "\$text = 'Error inserting into %table%';";
+ $trans["DmQueryErr4"]               = "\$text = 'Can only retrieve stats on collections and material types.';";
+ $trans["DmQueryErr5"]               = "\$text = 'Can only update rows on collections and material types.';";
+ $trans["DmQueryErr6"]               = "\$text = 'Error updating %table%';";
+ $trans["DmQueryErr7"]               = "\$text = 'Error deleting from %table%';";
+ 
+ #****************************************************************************
+ #*  Translation text for class DbConnection
+ #****************************************************************************
+ 
+ $trans["DbConnectErr1"]             = "\$text = 'Unable to connect to database';";
+ $trans["DbConnectErr2"]             = "\$text = 'Unable to close database';";
+ $trans["DbConnectErr3"]             = "\$text = 'Unable to execute query';";
+ $trans["DbConnectErr4"]             = "\$text = 'Invalid result. Must execute query first.';";
+ 
+ #****************************************************************************
+ #*  Translation text for class Member and MemberQuery
+ #****************************************************************************
+ 
+ $trans["MemberErr1"]                = "\$text = 'Card number is required.';";
+ $trans["MemberErr2"]                = "\$text = 'Card number must be all alphabetic and numeric characters.';";
+ $trans["MemberErr3"]                = "\$text = 'Last name is required.';";
+ $trans["MemberErr4"]                = "\$text = 'First name is required.';";
+ $trans["MemberErr5"]                = "\$text = 'Zip code number must be numeric.';";
+ $trans["MemberErr6"]                = "\$text = 'Zip code number must not contain a decimal point.';";
+ $trans["MemberErr7"]                = "\$text = 'Zip code extension must be numeric.';";
+ $trans["MemberErr8"]                = "\$text = 'Zip code extension must not contain a decimal point.';";
+ $trans["MemberErr9"]                = "\$text = 'School grade must be numeric.';";
+ $trans["MemberErr10"]               = "\$text = 'School grade must not contain a decimal point.';";
+ $trans["MemberErr11"]               = "\$text = 'The enddate isn't valid.';";
+ $trans["MemberQueryErr1"]           = "\$text = 'Error counting library member search results.';";
+ $trans["MemberQueryErr2"]           = "\$text = 'Error searching library member information.';";
+ $trans["MemberQueryErr3"]           = "\$text = 'Error accessing library member information.';";
+ $trans["MemberQueryErr4"]           = "\$text = 'Error checking for dup barcode.';";
+ $trans["MemberQueryErr5"]           = "\$text = 'Error inserting new library member information.';";
+ $trans["MemberQueryErr6"]           = "\$text = 'Error updating library member information.';";
+ $trans["MemberQueryErr7"]           = "\$text = 'Error deleting library member information.';";
+ $trans["MemberQueryErr8"]           = "\$text = 'Error fetching next barcode.';";
+ 
+ #****************************************************************************
+ #*  Translation text for class SessionQuery
+ #****************************************************************************
+ 
+ $trans["SessionQueryErr1"]          = "\$text = 'Error accessing session information.';";
+ $trans["SessionQueryErr2"]          = "\$text = 'Error deleting session information.';";
+ $trans["SessionQueryErr3"]          = "\$text = 'Error creating a new session.';";
+ $trans["SessionQueryErr4"]          = "\$text = 'Error updating session timeout.';";
+ 
+ #****************************************************************************
+ #*  Translation text for class Settings and SettingsQuery
+ #****************************************************************************
+ 
+ $trans["SettingsErr1"]              = "\$text = 'Session timeout must be numeric.';";
+ $trans["SettingsErr2"]              = "\$text = 'Session timeout must be greater than 0.';";
+ $trans["SettingsErr3"]              = "\$text = 'Items per page must be numeric.';";
+ $trans["SettingsErr4"]              = "\$text = 'Items per page must be greater than 0.';";
+ $trans["SettingsErr5"]              = "\$text = 'Months must be numeric.';";
+ $trans["SettingsQueryErr1"]         = "\$text = 'Error accessing library settings information.';";
+ $trans["SettingsQueryErr2"]         = "\$text = 'Error updating library settings information';";
+ $trans["SettingsQueryErr3"]         = "\$text = 'Error updating library theme in use';";
+ $trans["SettingsQueryErr4"]         = "\$text = 'Error updating library theme in use';";
+ 
+ #****************************************************************************
+ #*  Translation text for class Settings and SettingsQuery
+ #****************************************************************************
+ 
+ $trans["StaffErr1"]                = "\$text = 'Last name is required.';";
+ $trans["StaffErr2"]                = "\$text = 'Username must be at least 4 characters.';";
+ $trans["StaffErr3"]                = "\$text = 'Username must not contain any spaces.';";
+ $trans["StaffErr4"]                = "\$text = 'Password must be at least 4 characters.';";
+ $trans["StaffErr5"]                = "\$text = 'Password must not contain any spaces.';";
+ $trans["StaffErr6"]                = "\$text = 'Passwords do not match.';";
+ $trans["StaffQueryErr1"]                = "\$text = 'Error accessing staff member information.';";
+ $trans["StaffQueryErr2"]                = "\$text = 'Error verifying username and password.';";
+ $trans["StaffQueryErr3"]                = "\$text = 'Error suspending staff member.';";
+ $trans["StaffQueryErr4"]                = "\$text = 'Error checking for dup username.';";
+ $trans["StaffQueryErr5"]                = "\$text = 'Username is already in use.';";
+ $trans["StaffQueryErr6"]                = "\$text = 'Error inserting new staff member information.';";
+ $trans["StaffQueryErr7"]                = "\$text = 'Error updating staff member information.';";
+ $trans["StaffQueryErr8"]                = "\$text = 'Error resetting password.';";
+ $trans["StaffQueryErr9"]                = "\$text = 'Error deleting staff information.';";
+ 
+ #****************************************************************************
+ #*  Translation text for class Theme and ThemeQuery
+ #****************************************************************************
+ 
+ $trans["ThemeErr1"]                    = "\$text = 'Theme name is required.';";
+ $trans["ThemeErr2"]                    = "\$text = 'Title background color is required.';";
+ $trans["ThemeErr3"]                    = "\$text = 'Title font face is required.';";
+ $trans["ThemeErr4"]                    = "\$text = 'Title font color is required.';";
+ $trans["ThemeErr5"]                    = "\$text = 'Main body background color is required.';";
+ $trans["ThemeErr6"]                    = "\$text = 'Main body font face is required.';";
+ $trans["ThemeErr7"]                    = "\$text = 'Main body font color is required.';";
+ $trans["ThemeErr8"]                    = "\$text = 'Main body link color is required.';";
+ $trans["ThemeErr9"]                    = "\$text = 'Main body error color is required.';";
+ $trans["ThemeErr10"]                    = "\$text = 'Navigation background color is required.';";
+ $trans["ThemeErr11"]                    = "\$text = 'Navigation font face is required.';";
+ $trans["ThemeErr12"]                    = "\$text = 'Navigation font color is required.';";
+ $trans["ThemeErr13"]                    = "\$text = 'Navigation link color is required.';";
+ $trans["ThemeErr14"]                    = "\$text = 'Tab background color is required.';";
+ $trans["ThemeErr15"]                    = "\$text = 'Tab font face is required.';";
+ $trans["ThemeErr16"]                    = "\$text = 'Tab font color is required.';";
+ $trans["ThemeErr17"]                    = "\$text = 'Tab link color is required.';";
+ $trans["ThemeErr18"]                    = "\$text = 'Border color is required.';";
+ $trans["ThemeErr19"]                    = "\$text = 'Title font size must be numeric.';";
+ $trans["ThemeErr20"]                    = "\$text = 'Title font size must not contain a decimal point.';";
+ $trans["ThemeErr21"]                    = "\$text = 'Title font size must be greater than zero.';";
+ $trans["ThemeErr22"]                    = "\$text = 'Main body font size must be numeric.';";
+ $trans["ThemeErr23"]                    = "\$text = 'Main body font size must not contain a decimal point.';";
+ $trans["ThemeErr24"]                    = "\$text = 'Main body font size must be greater than zero.';";
+ $trans["ThemeErr25"]                    = "\$text = 'Navigation font size must be numeric.';";
+ $trans["ThemeErr26"]                    = "\$text = 'Navigation font size must not contain a decimal point.';";
+ $trans["ThemeErr27"]                    = "\$text = 'Navigation font size must be greater than zero.';";
+ $trans["ThemeErr28"]                    = "\$text = 'Tab font size must be numeric.';";
+ $trans["ThemeErr29"]                    = "\$text = 'Tab font size must not contain a decimal point.';";
+ $trans["ThemeErr30"]                    = "\$text = 'Tab font size must be greater than zero.';";
+ $trans["ThemeErr31"]                    = "\$text = 'Border width must be numeric.';";
+ $trans["ThemeErr32"]                    = "\$text = 'Border width must not contain a decimal point.';";
+ $trans["ThemeErr33"]                    = "\$text = 'Border width must be greater than zero.';";
+ $trans["ThemeErr34"]                    = "\$text = 'Table padding must be numeric.';";
+ $trans["ThemeErr35"]                    = "\$text = 'Table padding must not contain a decimal point.';";
+ $trans["ThemeErr36"]                    = "\$text = 'Table padding must be greater than zero.';";
+ $trans["ThemeQueryErr1"]                = "\$text = 'Error accessing theme information.';";
+ $trans["ThemeQueryErr2"]                = "\$text = 'Error inserting new library look and feel theme.';";
+ $trans["ThemeQueryErr3"]                = "\$text = 'Error updating library look and feel theme.';";
+ $trans["ThemeQueryErr4"]                = "\$text = 'Error deleting library look and feel theme.';";
+ 
+ #****************************************************************************
+ #*  Translation text for class InstallQuery
+ #****************************************************************************
+ 
+ $trans["InstallQueryErr1"]              = "\$text = 'Error processing install sql.';";
+ $trans["InstallQueryErr2"]              = "\$text = 'Error dropping table';";
+ 
  ?>
diff -bBcPrw openbiblio.orig/locale/en/install.php openbiblio/locale/en/install.php
*** openbiblio.orig/locale/en/install.php	1970-01-01 01:00:00.000000000 +0100
--- openbiblio/locale/en/install.php	2005-02-22 15:40:44.000000000 +0100
***************
*** 0 ****
--- 1,138 ----
+ <?php
+ /**********************************************************************************
+  *   Copyright(C) 2002 David Stevens
+  *
+  *   This file is part of OpenBiblio.
+  *
+  *   OpenBiblio is free software; you can redistribute it and/or modify
+  *   it under the terms of the GNU General Public License as published by
+  *   the Free Software Foundation; either version 2 of the License, or
+  *   (at your option) any later version.
+  *
+  *   OpenBiblio is distributed in the hope that it will be useful,
+  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  *   GNU General Public License for more details.
+  *
+  *   You should have received a copy of the GNU General Public License
+  *   along with OpenBiblio; if not, write to the Free Software
+  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  **********************************************************************************
+  */
+ 
+ /**********************************************************************************
+  *   Instructions for translators:
+  *
+  *   All gettext key/value pairs are specified as follows:
+  *     $trans["key"] = "<php translation code to set the $text variable>";
+  *   Allowing translators the ability to execute php code withint the transFunc string
+  *   provides the maximum amount of flexibility to format the languange syntax.
+  *
+  *   Formatting rules:
+  *   - Resulting translation string must be stored in a variable called $text.
+  *   - Input arguments must be surrounded by % characters (i.e. %pageCount%).
+  *   - A backslash ('\') needs to be placed before any special php characters 
+  *     (such as $, ", etc.) within the php translation code.
+  *
+  *   Simple Example:
+  *     $trans["homeWelcome"]       = "\$text='Welcome to OpenBiblio';";
+  *
+  *   Example Containing Argument Substitution:
+  *     $trans["searchResult"]      = "\$text='page %page% of %pages%';";
+  *
+  *   Example Containing a PHP If Statment and Argument Substitution:
+  *     $trans["searchResult"]      = 
+  *       "if (%items% == 1) {
+  *         \$text = '%items% result';
+  *       } else {
+  *         \$text = '%items% results';
+  *       }";
+  *
+  **********************************************************************************
+  */
+ 
+ #****************************************************************************
+ #*  Translation text 
+ #****************************************************************************
+ 
+ $trans["installHeadline"]        = "\$text='OpenBiblio Installation:';";
+ 
+ #****************************************************************************
+ #*  Translation text for page cancel_msg.php
+ #****************************************************************************
+ $trans["cancelMessage"]         = "\$text='OpenBiblio install process has been cancelled.';";
+ $trans["cancelShow"]            = "\$text='View Install Instructions';";
+ 
+ #****************************************************************************
+ #*  Translation text for page index.php
+ #****************************************************************************
+ $trans["indexErr1"]             = "\$text='The connection to the database failed with the following error.';";
+ $trans["indexErr2"]             = "\$text='Please make sure the following has been done before running this install script.';";
+ $trans["indexStep"]             = "\$text='step';";
+ $trans["indexInstInstr"]        = "\$text='of the install instructions';";
+ $trans["indexInstr1"]           = "\$text='create OpenBiblio database';";
+ $trans["indexInstr2"]           = "\$text='create OpenBiblio database user';";
+ $trans["indexInstr3"]           = "\$text='update openbibilio/database_constants.php with your new database username and password';";
+ $trans["indexInstr4"]           = "\$text='See';";
+ $trans["indexInstr5"]           = "\$text='Install Instructions';";
+ $trans["indexInstr6"]           = "\$text='for more details.';";
+ $trans["indexStart"]            = "\$text='Database connection is good.  Please choose a language and press the install button.';";
+ $trans["indexLang"]             = "\$text='Language:';";
+ $trans["indexTest"]             = "\$text='Install Test Data:';";
+ $trans["indexInstall"]          = "\$text='Install';";
+ $trans["indexUpdateHead"]       = "\$text='Update Version 0.3.x to Version 0.4.0 / 0.5.0:';";
+ $trans["indexAttention"]        = "\$text='WARNING - Please back up your database before updating from version 0.3.x to version 0.4.0 / 0.5.0.';";
+ $trans["indexUpdate"]           = "\$text='Update';";
+ 
+ #****************************************************************************
+ #*  Translation text for page installFuncs.php
+ #****************************************************************************
+ $trans["FuncsErr1"]             = "\$text='Error reading file';";
+ 
+ #****************************************************************************
+ #*  Translation text for page install.php
+ #****************************************************************************
+ $trans["installOK"]             = "\$text='Database connection is good.';";
+ $trans["installCreate"]         = "\$text='Building OpenBiblio tables...';";
+ $trans["installAlready"]        = "\$text='is already installed. Are you sure you want to delete all library data and create new OpenBiblio tables?';";
+ $trans["installCont"]           = "\$text='Continue';";
+ $trans["installStop"]           = "\$text='Cancel';";
+ $trans["installTable"]          = "\$text='table ';";
+ $trans["installDel"]            = "\$text=' dropped.';";
+ $trans["installTaCrea"]         = "\$text=' created.';";
+ $trans["installTable2"]         = "\$text='domain data for table ';";
+ $trans["installIns"]            = "\$text=' inserted.';";
+ $trans["installReady1"]         = "\$text='OpenBiblio tables have been created successfully!';";
+ $trans["installReady2"]         = "\$text='start using OpenBiblio';";
+ 
+ #****************************************************************************
+ #*  Translation text for page update030.php
+ #****************************************************************************
+ $trans["UpdateHead"]            = "\$text='OpenBiblio Update:';";
+ $trans["UpdateOK"]              = "\$text='Database connection is good.';";
+ $trans["UpdateErr1"]            = "\$text='Version 0.3.0 of the OpenBiblio data could not be found.';";
+ $trans["UpdateAlready"]         = "\$text='is currently installed. Are you sure you want to convert all library data to version 0.4.0?';";
+ $trans["UpdateCont"]            = "\$text='Continue';";
+ $trans["UpdateStop"]            = "\$text='Cancel';";
+ $trans["UpdateTable"]           = "\$text='table ';";
+ $trans["UpdateDel"]             = "\$text=' dropped.';";
+ $trans["UpdateTaCrea"]          = "\$text=' created.';";
+ $trans["UpdateTable2"]          = "\$text='domain data for table ';";
+ $trans["UpdateIns"]             = "\$text=' inserted.';";
+ $trans["UpdateConv1"]           = "\$text='biblio table converted.';";
+ $trans["UpdateConv2"]           = "\$text='biblio_copy table converted.';";
+ $trans["UpdateConv3"]           = "\$text='member table converted.';";
+ $trans["UpdateConv4"]           = "\$text='new staff table rows deleted.';";
+ $trans["UpdateConv5"]           = "\$text='staff table converted.';";
+ $trans["UpdateConv6"]           = "\$text='new collection table rows deleted.';";
+ $trans["UpdateConv7"]           = "\$text='collection_dm table converted.';";
+ $trans["UpdateConv8"]           = "\$text='new material_type table rows deleted.';";
+ $trans["UpdateConv9"]           = "\$text='material_type_dm table converted.';";
+ $trans["UpdateConv10"]          = "\$text='new settings table rows deleted.';";
+ $trans["UpdateConv11"]          = "\$text='settings table converted.';";
+ $trans["UpdateConv12"]          = "\$text='biblio_status have been dropped.';";
+ $trans["UpdateRename"]          = "\$text=' renamed to ';";
+ $trans["UpdateReady1"]          = "\$text='OpenBiblio tables have been created successfully!';";
+ $trans["UpdateReady2"]          = "\$text='start using OpenBiblio';";
+ 
+ ?>
diff -bBcPrw openbiblio.orig/locale/en/reports.php openbiblio/locale/en/reports.php
*** openbiblio.orig/locale/en/reports.php	2005-03-13 11:29:42.000000000 +0100
--- openbiblio/locale/en/reports.php	2005-04-13 13:57:44.000000000 +0200
***************
*** 69,74 ****
--- 69,75 ----
  $trans["reportListDesc"]           = "\$text = 'Choose from one of the following links to run a report.';";
  $trans["reportListXmlErr"]         = "\$text = 'Error occurred parsing report definition xml.';";
  $trans["reportListCannotRead"]     = "\$text = 'Cannot read label file: %fileName%';";
+ $trans["reportListFileName"]       = "\$text = 'File Name: ';";
  
  #****************************************************************************
  #*  Translation text for page label_list.php
***************
*** 137,158 ****
  #****************************************************************************
  $trans["reportHolds"]              = "\$text = 'Hold Requests Containing Member Contact Info';";
  $trans["reportCheckouts"]          = "\$text = 'Bibliography Checkout Listing';";
- $trans["overdueLetters"]           = "\$text = 'Over Due Letters';";
  $trans["reportLabels"]             = "\$text = 'Label Printing Query (used by labels)';";
! $trans["popularBiblios"]           = "\$text = 'Most Popular Bibliographies';";
  $trans["overdueList"]              = "\$text = 'Over Due Member List';";
  $trans["balanceDueList"]           = "\$text = 'Balance Due Member List';";
  
  #****************************************************************************
  #*  Label Titles
  #****************************************************************************
  $trans["labelsMulti"]              = "\$text = 'Multi Label Example';";
  $trans["labelsSimple"]             = "\$text = 'Simple Label Example';";
  
  #****************************************************************************
  #*  Column Text
  #****************************************************************************
- $trans["biblio.bibid"]             = "\$text = 'Biblio ID';";
  $trans["biblio.create_dt"]         = "\$text = 'Date Added';";
  $trans["biblio.last_change_dt"]    = "\$text = 'Last Changed';";
  $trans["biblio.material_cd"]       = "\$text = 'Material Cd';";
--- 139,171 ----
  #****************************************************************************
  $trans["reportHolds"]              = "\$text = 'Hold Requests Containing Member Contact Info';";
  $trans["reportCheckouts"]          = "\$text = 'Bibliography Checkout Listing';";
  $trans["reportLabels"]             = "\$text = 'Label Printing Query (used by labels)';";
! $trans["popularItems"]             = "\$text = 'Most Popular Items';";
! $trans["PopularBibliographies"]    = "\$text = 'Most Popular Bibliographies';";
! $trans["PopularAuthors"]           = "\$text = 'Most Popular Authors';";
! $trans["PopularCollections"]       = "\$text = 'Most Popular Collections';";
  $trans["overdueList"]              = "\$text = 'Over Due Member List';";
  $trans["balanceDueList"]           = "\$text = 'Balance Due Member List';";
+ $trans["overdueLetters"]           = "\$text = 'Over Due Letters';";
+ $trans["BibliosByMaterialType"]    = "\$text = 'Biblios By Material Type';";
+ $trans["DuplicateTitle"]           = "\$text = 'Duplicate Title - Author combinations';";
+ $trans["DuplicateMemberNames"]     = "\$text = 'Duplicate Member Names';";
+ $trans["InventoryReport"]          = "\$text = 'Inventory Report';";
+ $trans["NewEntries"]               = "\$text = 'New Entries for this month and previous two months';";
+ $trans["PotentialLateFees"]        = "\$text = 'Potential Late Fees';";
+ $trans["CheckoutHistory"]          = "\$text = 'Checkout History';";
+ $trans["reportMembers"]            = "\$text = 'Report Members';";
  
  #****************************************************************************
  #*  Label Titles
  #****************************************************************************
  $trans["labelsMulti"]              = "\$text = 'Multi Label Example';";
  $trans["labelsSimple"]             = "\$text = 'Simple Label Example';";
+ $trans["biblio.bibid"]             = "\$text = 'Bibid';";
  
  #****************************************************************************
  #*  Column Text
  #****************************************************************************
  $trans["biblio.create_dt"]         = "\$text = 'Date Added';";
  $trans["biblio.last_change_dt"]    = "\$text = 'Last Changed';";
  $trans["biblio.material_cd"]       = "\$text = 'Material Cd';";
***************
*** 193,197 ****
--- 206,220 ----
  $trans["author"]                   = "\$text = 'Author';";
  $trans["due_back_dt"]              = "\$text = 'Due Back';";
  $trans["checkoutCount"]            = "\$text = 'Checkout Count';";
+ $trans["date"]                     = "\$text = 'Date';";
+ $trans["material_type_dm.description"] = "\$text = 'Material Type Description';";
+ $trans["collection_dm.description"] = "\$text = 'Collection Description';";
+ $trans["biblio_copy.status_cd"]    = "\$text = 'Status';";
+ $trans["Duplicates"]               = "\$text = 'Duplicates';";
+ $trans["late_fee"]                 = "\$text = 'Late Fee';";
+ $trans["biblio_status_hist.status_begin_dt"] = "\$text = 'Status Begin';";
+ $trans["biblio_status_hist.due_back_dt"] = "\$text = 'Due Back';";
+ $trans["member.classification"]    = "\$text = 'Classification';";
+ $trans["member.school_teacher"]    = "\$text = 'School Teacher';";
  
  ?>
diff -bBcPrw openbiblio.orig/navbars/circulation.php openbiblio/navbars/circulation.php
*** openbiblio.orig/navbars/circulation.php	2004-04-22 05:16:51.000000000 +0200
--- openbiblio/navbars/circulation.php	2005-04-13 14:07:52.000000000 +0200
***************
*** 23,29 ****
    $navloc = new Localize(OBIB_LOCALE,"navbars");
   
  ?>
! <input type="button" onClick="parent.location='../shared/logout.php'" value="<?php echo $navloc->getText("Logout"); ?>" class="navbutton"><br />
  <br />
  
  <?php if ($nav == "searchform") { ?>
--- 23,29 ----
    $navloc = new Localize(OBIB_LOCALE,"navbars");
   
  ?>
! <input type="button" onClick="parent.location='../shared/logout.php'" value="<?php echo $navloc->getText("logout"); ?>" class="navbutton"><br />
  <br />
  
  <?php if ($nav == "searchform") { ?>
diff -bBcPrw openbiblio.orig/navbars/opac.php openbiblio/navbars/opac.php
*** openbiblio.orig/navbars/opac.php	2004-04-22 05:16:51.000000000 +0200
--- openbiblio/navbars/opac.php	2005-02-10 13:29:05.000000000 +0100
***************
*** 39,42 ****
   &raquo; <?php echo $navLoc->getText("catalogBibInfo"); ?><br>
  <?php } ?>
  
! <a href="javascript:popSecondary('../shared/help.php<?php if (isset($helpPage)) echo "?page=".$helpPage; ?>')"><?php echo $navLoc->getText("Help"); ?></a>
--- 39,42 ----
   &raquo; <?php echo $navLoc->getText("catalogBibInfo"); ?><br>
  <?php } ?>
  
! <a href="javascript:popSecondary('../shared/help.php<?php if (isset($helpPage)) echo "?page=".$helpPage; ?>')"><?php echo $navLoc->getText("help"); ?></a>
diff -bBcPrw openbiblio.orig/reports/letterdefs/overdueLetter.xml openbiblio/reports/letterdefs/overdueLetter.xml
*** openbiblio.orig/reports/letterdefs/overdueLetter.xml	2004-04-22 05:29:35.000000000 +0200
--- openbiblio/reports/letterdefs/overdueLetter.xml	2005-02-10 13:29:05.000000000 +0100
***************
*** 45,51 ****
    <id>overdueLetters</id>
    <report_def_filename>overdueLetters.xml</report_def_filename>
    <group_by name="mbrid"/>
!   <title>Over Due Letters</title>
    <font_type>Helvetica</font_type>
    <font_size>10</font_size>
    <unit_of_measure>in</unit_of_measure>
--- 45,51 ----
    <id>overdueLetters</id>
    <report_def_filename>overdueLetters.xml</report_def_filename>
    <group_by name="mbrid"/>
!   <title>overdueLetters</title>
    <font_type>Helvetica</font_type>
    <font_size>10</font_size>
    <unit_of_measure>in</unit_of_measure>
diff -bBcPrw openbiblio.orig/reports/report_list.php openbiblio/reports/report_list.php
*** openbiblio.orig/reports/report_list.php	2005-03-02 01:48:28.000000000 +0100
--- openbiblio/reports/report_list.php	2005-04-13 16:30:17.000000000 +0200
***************
*** 47,53 ****
          $xml = fileGetContents($fileName);
          if ($xml === FALSE) {
            echo '<p><font class="error">';
!           echo $loc->getText('Cannot read report file: %fileName%',
              array('fileName' => basename($fileName)));
            echo '</font></p>';
            continue;
--- 47,53 ----
          $xml = fileGetContents($fileName);
          if ($xml === FALSE) {
            echo '<p><font class="error">';
!           echo $loc->getText('reportListCannotRead',
              array('fileName' => basename($fileName)));
            echo '</font></p>';
            continue;
***************
*** 60,66 ****
            $reportSql[$rptid] = $rptDef->getSql();
          } else {
            echo $loc->getText("reportListXmlErr");
!           echo "<pre>file name: ".$fileName."\n".$rptDef->getXmlErrorString()."</pre>";
            exit();
          }
          $rptDef->destroy();
--- 60,66 ----
            $reportSql[$rptid] = $rptDef->getSql();
          } else {
            echo $loc->getText("reportListXmlErr");
!           echo "<pre>".$loc->getText("reportListFileName").$fileName."\n".$rptDef->getXmlErrorString()."</pre>";
            exit();
          }
          $rptDef->destroy();
