Location: PHPKode > projects > oBiblioOPAC for Joomla! > trunk-56/phpTranslator/Translator.php
<?php
	/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
	 
	/**
	 * Arquivo que contem a classe de traducao e outros para a traducao de aplicacoes
	 *
	 * As aplicacoes baseadas nesse arquivo/classe deverao adaptar-se ao modo como este
	 * monta os arquivos de idiomas e seus requisitos de codificacao de idioma.
	 *
	 * PHP versions 4 and 5
	 *
	 * LICENSE: This source file is subject to version 2 of the GNU/GPL license
	 * that is available through the world-wide-web at the following URI:
	 * http://www.gnu.org/copyleft/gpl.html.  If you did not receive a copy of
	 * the GNU/GPL License and are unable to obtain it through the web, please
	 * send a note to hide@address.com so I can mail you a copy immediately.
	 *
	 * Um exemplo de como usar a classe:
	 * <code>
	 *  
	 * define(TRANSLATOR_PATH, "../include/phpTranslator/");
	 * define(TRANSLATOR_PATH_URL, "../include/phpTranslator/");
	 *
	 * if(!@include_once( TRANSLATOR_PATH.'/Translator.php'))
	 *   echo "<h1>There is a trouble with phpTranslator package. 
	 *              It isn't found.</h1>";
	 * 
	 * $_objTranslator = new Translator( USER_LOCALE );
	 *
	 * $_objTranslator->setLangFilePath( "/myapplic_path_lang_files/" );
	 * $_objTranslator->setURLPath( TRANSLATOR_PATH_URL );
	 * $_objTranslator->buildLangArray();
	 * $_objTranslator->buildLangArray( 'target' );  
	 * if(CODING)   
	 *   $_objTranslator->Translate( false );
	 * elseif(TRANSLATING)
	 *   $_objTranslator->Translate();
	 * else   
	 *   echo $_objTranslator->getText( 'some text to translate and
	 *                         be showed after had been registred.' );
	 * </code>
	 * 
	 * @category   PHP-Tool
	 * @package    phpTranslator
	 * @author     Adriano dos Santos Vieira (harpiain) <hide@address.com>
	 * @copyright  2005-2006 Adriano dos Santos Vieira
	 * @license    http://www.gnu.org/copyleft/gpl.html  GNU/GPL License 3.0
	 * @version    subVersion: $Id: phpTranslator, v 0.2.0-40 feb/23/2006 $
	 * @link       http://obiblioopac4j.sourceforge.net
	 * @see        Translator()
	 * @since      File available since Release 0.0.1
	 * @todo  The package TODO/Roadmap are: {@example ToDo.txt}
	 */
	 
	/**
	 * Constrante que define o "ENTER" e o "SALTO DE LINHA" nos arquivos de idiomas
	 * @access private
	 */
	 define ( T_CRLF, chr(13).chr(10) );
	    
	/**
	 * Constrante que define a cor do texto ainda nao traduzido
	 * @access private
	 */
	 define ( T_BG_COLOR_TRADUZ, "#e7d4d4" );

    /**
     * Classe para realizar a traducao de um texto com base em arquivos pre-definidos
     *
     * As aplicacoes baseadas nessa classe deverao adaptar-se ao modo como esta classe <br>
     * monta os arquivos de idiomas e seus requisitos de codificacao de idioma.
     *
     * Um exemplo de como usar a classe:
     * <code>
     *  
     * define(TRANSLATOR_PATH, "../include/phpTranslator/");
     * define(TRANSLATOR_PATH_URL, "../include/phpTranslator/");
     *
     * if(!@include_once( TRANSLATOR_PATH.'/Translator.php'))
     *   echo "<h1>There is a trouble with phpTranslator package. 
     *              It isn't found.</h1>";
     * 
     * $_objTranslator = new Translator( USER_LOCALE );
     *
     * $_objTranslator->setLangFilePath( "/myapplic_path_lang_files/" );
     * $_objTranslator->setURLPath( TRANSLATOR_PATH_URL );
     * $_objTranslator->buildLangArray();
     * $_objTranslator->buildLangArray( 'target' );  
     * if(CODING)   
     *   $_objTranslator->Translate( false );
     * elseif(TRANSLATING)
     *   $_objTranslator->Translate();
     * else   
     *   echo $_objTranslator->getText( 'some text to translate and
     *                         be showed after had been registred.' );
     * </code>
     *
     * @category   PHP-Tool
     * @package    phpTranslator
     * @author     Adriano dos Santos Vieira (harpiain) <hide@address.com>
     */
    Class Translator {
      
      /**
      * path para para a propria classe
      * @access private
      * @var string
      */
      var $class_self_path = "./";
      
      /**
      * path relativo (URL) para a classe
      * @access private
      * @var string
      */
      var $translator_url_path = "./";
      
      /**
      * path para o arquivo de mensagens
      * @access private
      * @var sting
      */
      var $language_file_path = "./";
      
      /**
      * prefixo para o arquivo de mensagens
      * @access private
      * @var $language_file_prefix
      */
      var $language_file_prefix = "language.";
       
      
      /**
      * sufixo para o arquivo de mensagens
      * @access private
      * @var string
      */
      var $language_file_sufix = ".inc.php";
            
      /**
      * contera as mensagens a serem exibidas para a aplicacao de 2 idiomas (source and target)
      * 
      * @access private
      * @var array
      */
      var $translated_text    = "";
    
      /**
      * contera as mensagens padrao
      * 
      * @access private
      * @var array
      */
      var $translated_text_std    = array();
            
      /**
      * contera as mensagens traduzidas (ex: en-us)
      * 
      * @access private
      * @var array
      */
      var $translated_text_tgt    = array();

      /**
      * contera as mensagens da propria classe traduzidas ou padrao
      * 
      * @access private
      * @var array
      * @since v 0.2.0-40
      */
      var $translated_text_self    = array();
            
      /**
      * padrao da aplicacao
      * 
      * @access private
      * @var string
      */
      var $language_std       = "pt-br";
      
      /**
      * preferencia do usuario
      * @access private
      * @var string
      */
      var $language_user      = "";
      
      /**
      * se traduz textos padrao conforme idioma: 
      *    TRUE - tenta traduzir todos os textos;
      *   FALSE - nao traduz os textos
      * 
      * @access private
      * @var boolean
      */
      var $translate_message  = true;
      
      /**
      * se os arquivos de idioma estarao em sub-diretorios, conforme abrevitura ISO I18N
      * ex: pt-br/language.pt-br.inc.php, en/language.en.inc.php ...
      *    TRUE - os arquivos estarao em subdiretorios;
      *   FALSE - os arquivos nao estarao em subdiretorios
      * 
      * @access private
      * @var boolean
      * @since v 0.2.0-40
      */
      var $language_file_subdir = false;
    
      /**
      * se os arquivos de idioma estarao seccionados, conforme contextualizacao
      * ex: prefix.SECTION.sufix == language.admin.pt-br.inc.php ...
      *    TRUE - os arquivos estarao seccionados;
      *   FALSE - os arquivos nao estarao seccionados
      * 
      * @access private
      * @var boolean
      * @since v 0.2.0-40
      */
      var $languageFileInSections = false;
    
      /**
      * devera conter as secoes dos arquivos de idiomas, conforme contextualizacao
      *  
      * <code>
      *  ...
      *  $_lang_sections = array('phpTranslator' => 'textos da classe de traducao',
      *                                         'admin'             => 'Textos da secao administrativa',
      *                                         'home'              => 'textos da secao principal',
      *                                         'and son on'      => 'e assim por diante...');
      *  ...
      * </code>
      * @access private
      * @var array
      * @since v 0.2.0-40
      */
      var $language_sections = array();
    
      /**
      * devera conter a secao ativa a ser mostrada/traduzida, quando fizer uso de secoes
      *  
      * @access private
      * @var array
      * @since v 0.2.0-40
      */
      var $language_section_active = "";
    
      /**
      * possiveis mensagens retornadas pela classe
      * @access private
      * @var string
      */
      var $mensagem = "";
            
      /**
      * se ocorreu erro em um metodo - true = ocorreu erro; false = nao ocorreu erro
      * @access private
      * @var boolean
      */
      var $error = false;
    
      /**
      * Tamanho para o codigo do idioma
      * @var numeric
      * @access private
      */
      var $language_code_len = 10;
            
      /**
      * Tamanho para o codigo da mensagem
      * @var numeric
      * @access private
      */
      var $message_code_len  = 100;
            
      /**
      * Tamanho para o tipo da mensagem
      * @var numeric
      * @access private
      */
      var $message_type_len  = 10;
            
      /**
      * Tamanho para a abreviacao
      * @var numeric
      * @access private
      */
      var $message_abbr_len  = 10;
            
      /**
      * Tamanho para o contextualizacao (ex: admin, config, preferences, front-end etc)
      * @var numeric
      * @access private
      */
      var $message_context_len = 10;
             
      /**
      * contera as mensagens a serem exibidas para traducao
      * 
      * @access private
      * @var array
      */
      var $arrLanguageLang = array();
      
      /**
      * contera as mensagens a serem listadas
      * 
      * @access private
      * @var array
      */
      var $arrLanguageList = array();
       
      /**
      * idioma do browser
      * @var string
      * @access private
      */
      var $_browser_language  = '';

      /**
      * Se mostra todas as mensagens geradas pela aplicacao
      * @var boolean
      * @access private
      */
      var $_debugTranslator = false;
                   
      /**
      * Objeto template
      * @var object
      * @access private
      */
      var $_objTmpl;
             
       /**
        * Metodo contrutor para realizar a traducao de um texto com base em arquivos pre-definidos
        * @access public
        * @name   Translator
        * @param  string $_abbr_i18n_tgt - Deve ser informado o idioma destino para a aplicacao
        * @param  string $_abbr_i18n_src - Deve ser informado o idioma padrao da aplicacao 
        *                                  (padrao "en" = English)
        */
        function Translator( $_abbr_i18n_tgt='', $_abbr_i18n_src='en' ) {
    
             $_browser_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
             if(strpos($_browser_language, ",")) {
                $_browser_language = substr($_browser_language,0,strpos($_browser_language, ","));
             }
             $this->_browser_language = $_browser_language;
             
            $this->class_self_path = dirname(__FILE__);
            
            if(!empty($_abbr_i18n_src))
               $this->SetLanguage($_abbr_i18n_src);

            if(!empty($_abbr_i18n_tgt))
            $this->SetLanguage($_abbr_i18n_tgt,'target');
            
            /*
             * busca a propia traducao
             */
            $this->setLangFilePath( $this->class_self_path."/languages/" );
            $this->translated_text_self = $this->_getLangFile($_abbr_i18n_tgt);
            if($this->error) {
                $this->translated_text_self = $this->_getLangFile($_abbr_i18n_src);
                if($this->error) {
                    $this->translated_text_self = $this->_getLangFile("en-us");
                }
            }
        } // end func: Translator
    
       /**
        * Prove a interface de cadastramento de codigos de mensagems ou a de traducao
        *
        * @param boolean $_translate_only FALSE - Se apenas para traduzir 
        *                                  TRUE - tambem para fazer manutencao (default)
        */ 
        function Translate( $_translate_only=true ) {

           // objeto para o template
           $_objTmpl =& $this->_createTemplate();
           $_objTmpl->setRoot( $this->class_self_path.'/templates' );
    
            // Dados de inicializacao
            //if($_translate_only)
            //   $_POST['mnt_lang_action']['tradutor'] = 'Traduzir';
            if(!isset($_POST['mnt_lang_action'])) $_langAction = 'listar';
            elseif(array_key_exists('tradutor', $_POST['mnt_lang_action'])) $_langAction = 'tradutor';
            elseif(array_key_exists('inserir', $_POST['mnt_lang_action'])) $_langAction = 'inserir';
            elseif(array_key_exists('alterar', $_POST['mnt_lang_action'])) $_langAction = 'alterar';
            elseif(array_key_exists('excluir', $_POST['mnt_lang_action'])) $_langAction = 'excluir';
            elseif(array_key_exists('listar', $_POST['mnt_lang_action'])) $_langAction = 'listar';
            elseif(array_key_exists('salvar', $_POST['mnt_lang_action'])) $_langAction = 'salvar';

           if(!empty($_POST['tag_active']))
              $this->language_section_active = $_POST['tag_active'];
              
           $this->buildLangArray();
           $this->buildLangArray('target');  
           
            $_list_lang = false;
            $_abbr_i18n_save = $this->language_std;
            $_mnt_language = $_POST['mnt_language'];
            $_lang_code_selected = $_POST['mnt_code_selected'];
            $_lang_data_selected[$_lang_code_selected] = ($_POST['mnt_lang_data'][$_lang_code_selected]);
    
           // Variaveis para o Template
    
           // fim de variaveis para o template
    
           // inicio de Montagem pagina HTML
           $_objTmpl->readTemplatesFromInput( 'translate_mnt_tmpl.html' );
           $_objTmpl->addVar( 'ini_page_form', 'class_self_path', $this->class_self_path );
           $_objTmpl->addVar( 'ini_page_form', 'translator_url_path', $this->translator_url_path );
    
           // Se acionado o botao para traduzir, retira-o e mostra o SALVAR/RESTAURAR
           if($_translate_only) {
               $_objTmpl->addVar( 'ini_page_form_btn', 'mnt_btn_show',"translate");
            }
            if(isset($_POST['lang_save'])) {
              $this->_langSave($_POST['lang_target'],$this->language_user);
            }
    
            if(defined( '_VALID_MOS' ))
               $_objTmpl->addVar( 'ini_page_form_mos', 'mos_page',"inside");
       
           if($_langAction == 'excluir' ) {
              $this->_langCodeDelete($_lang_data_selected);
              $_list_lang = true;  
              $this->_langSave($this->translated_text_std,$_abbr_i18n_save);
           }
               
           if($_langAction == 'salvar') {
              $_list_lang = true; 
              $this->translated_text_std[$_mnt_language['code']] = $_mnt_language;
              $this->_langSave($this->translated_text_std,$_abbr_i18n_save);
           }
           
           // (re)constroi os arrays para o template
           if(!empty($_POST['tag_active']))
              $this->language_section_active = $_POST['tag_active'];
              
           $this->buildLangArray();
           $this->buildLangArray('target');  
           $this->buildArrayVars();
           
           $titulo = $this->getText('#phpTranslator_page_title#');
           $_objTmpl->addVar( 'ini_page_form', 'titulo', $titulo );
           $_objTmpl->displayParsedTemplate('ini_page_form');
           $this->showTagHeader(&$_objTmpl);
    
           $_objTmpl->addVar( 'ini_page_form', 'PHPTRANSLATOR_EXCLUIR_CODIGO', 
                                              $this->getText('#phpTranslator_excluir codigo#') );
           $_objTmpl->addVar( 'ini_page_form_btn', 'BTN_INSERIR', 
                                              $this->getText('#phptranslator_inserir#') );
           $_objTmpl->addVar( 'ini_page_form_btn', 'BTN_ALTERAR', 
                                              $this->getText('#phptranslator_alterar#') );
           $_objTmpl->addVar( 'ini_page_form_btn', 'BTN_EXCLUIR', 
                                              $this->getText('#phptranslator_excluir#') );
           $_objTmpl->addVar( 'ini_page_form_btn', 'BTN_LISTAR', 
                                              $this->getText('#phptranslator_listar#') );
           $_objTmpl->addVar( 'ini_page_form_btn', 'BTN_TRADUZIR', 
                                              $this->getText('#phptranslator_traduzir#') );
           $_objTmpl->addVar( 'ini_page_form_btn', 'BTN_SALVAR', 
                                              $this->getText('#phptranslator_salvar#') );
           $_objTmpl->addVar( 'ini_page_form_btn', 'BTN_RESTAURAR', 
                                              $this->getText('#phptranslator_restaurar#') );
                                              
           $_objTmpl->addVar( 'ini_page_form_btn', 'MSG_SELECT_ONE_CHANGE', 
                                        $this->getText('#phptranslator_falta selecionar mensagem a ser alterada#') );
                                        
           $_objTmpl->addVar( 'ini_page_form_btn', 'MSG_SELECT_ONE_DELETE', 
                                        $this->getText('#phptranslator_falta selecionar mensagem a ser excluida#') );
                                        
           $_objTmpl->addVar( 'translate_mnt', 'BTN_SALVAR', 
                                        $this->getText('#phptranslator_salvar#') );
           $_objTmpl->addVar( 'translate_mnt', 'BTN_RESTAURAR', 
                                        $this->getText('#phptranslator_restaurar#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING', 
                                        $this->getText('#phptranslator_codificacao de idioma padrao#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING_CONTEXT', 
                                        $this->getText('#phptranslator_contexto da mensagem#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING_LANG', 
                                        $this->getText('#phptranslator_idioma#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING_MSG_CODE', 
                                        $this->getText('#phptranslator_codigo da mensagem#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING_MSG_TYPE', 
                                        $this->getText('#phptranslator_tipo da mensagem#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING_MSG_ABBR', 
                                        $this->getText('#phptranslator_sigla para a mensagem#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING_MSG', 
                                        $this->getText('#phptranslator_mensagem#') );
           $_objTmpl->addVar( 'translate_mnt', 'STANDARD_LANG_CODING_ADVISE', 
                                        $this->getText('#phptranslator_mnt_code_advise#') );
                                        
           $_objTmpl->addVar( 'translate_list_head', 'STANDARD_LANG_REPORTING', 
                                        $this->getText('#phptranslator_listagem de mensagens padrao codificadas#') );
                                                
           $_objTmpl->displayParsedTemplate('form_buttons');
           
           if($_langAction == 'inserir' or $_langAction == 'alterar') {
               
             $_show_form = true;
             
             $_objTmpl->addVar( 'translate_mnt',"LANG_COUNTRY_LEN", $this->language_code_len);
             $_objTmpl->addVar( 'translate_mnt',"LANG_CODE_LEN", $this->message_code_len );
             $_objTmpl->addVar( 'translate_mnt',"LANG_CONTEXT_LEN",$this->message_context_len);
             $_objTmpl->addVar( 'translate_mnt',"LANG_TYPE_LEN", $this->message_type_len);
             $_objTmpl->addVar( 'translate_mnt',"LANG_ABBR_LEN", $this->message_abbr_len);
               
              if(array_key_exists('alterar', $_POST['mnt_lang_action']) ) {
                 if(empty($_lang_code_selected))
                    $_show_form = false;
            
                 $_objTmpl->addVar( 'translate_mnt',"LANG_COUNTRY", $_lang_data_selected[$_lang_code_selected]['lang'] );
                 $_objTmpl->addVar( 'translate_mnt',"LANG_CODE_DISABLED", 'disabled' );
                 $_objTmpl->addVar( 'translate_mnt',"LANG_CODE", $_lang_code_selected );
                 $_objTmpl->addVar( 'translate_mnt',"LANG_CONTEXT", 
                                                           $_lang_data_selected[$_lang_code_selected]['context'] );
                 $_objTmpl->addVar( 'translate_mnt',"LANG_TYPE", $_lang_data_selected[$_lang_code_selected]['type'] );
                 $_objTmpl->addVar( 'translate_mnt',"LANG_ABBR", $_lang_data_selected[$_lang_code_selected]['abbr'] );
                 $_objTmpl->addVar( 'translate_mnt',"LANG_MESSAGE", $_lang_data_selected[$_lang_code_selected]['text'] );
              }
              else {
                 $_objTmpl->addVar( 'translate_mnt',"LANG_COUNTRY", $this->language_std );        
              }
    
              if($_show_form)
                 $_objTmpl->displayParsedTemplate('translate_mnt');
              $_list_lang = true;  
            }
      
           if(!$_translate_only and ($_langAction == 'listar' or $_list_lang)) {
              $_objTmpl->displayParsedTemplate('translate_list_head');
              if($this->arrLanguageList)
                 foreach($this->arrLanguageList as $_keys => $_key) {
                    $_objTmpl->addVar( 'translate_list_body', 'TAB_CONTEXT', $_keys );
         
                   $_objTmpl->addVar( 'translate_list_body', 'STANDARD_LANG_CODING_LANG', 
                                                $this->getText('#phptranslator_idioma#') );
                   $_objTmpl->addVar( 'translate_list_body', 'STANDARD_LANG_CODING_MSG_CODE', 
                                                $this->getText('#phptranslator_codigo da mensagem#') );
                   $_objTmpl->addVar( 'translate_list_body', 'STANDARD_LANG_CODING_MSG_TYPE', 
                                                $this->getText('#phptranslator_tipo da mensagem#') );
                   $_objTmpl->addVar( 'translate_list_body', 'STANDARD_LANG_CODING_MSG_ABBR', 
                                                $this->getText('#phptranslator_sigla para a mensagem#') );
                   $_objTmpl->addVar( 'translate_list_body', 'STANDARD_LANG_CODING_MSG', 
                                                $this->getText('#phptranslator_mensagem#') );
                                                      
                    $_objTmpl->addRows( 'translate_list_by_context', $this->arrLanguageList[$_keys] );
                    $_objTmpl->displayParsedTemplate('translate_list_body');
                    // limpa dados de template para acrecentar outros dados
                    $_objTmpl->clearTemplate('translate_list_body');
                    $_objTmpl->clearTemplate('translate_list_by_context');
                 }  // end foreach
              else
                 $_objTmpl->addVar('translate_list_foot', 'LIST_MESSAGE', $this->getText('#phptranslator_text#').$this->getText('#phptranslator_not found#'));
      
              $_objTmpl->displayParsedTemplate('translate_list_foot');
            }
    
           if($_translate_only or $_langAction == 'tradutor') {
              // inicio de Montagem pagina do tradutor
              $_objTmpl->readTemplatesFromInput( 'translate_tmpl.html' );
              $_objTmpl->addVar( 'translate_lang_head', 'STANDARD_LANG_TRANSLATION', 
                                        $this->getText('#phptranslator_traducao do idioma padrao#') );
      
              $_objTmpl->displayParsedTemplate('translate_lang_head');
              if(is_array($this->arrLanguageLang ))
                  foreach($this->arrLanguageLang as $_keys => $_key) {
                     $_objTmpl->addVar( 'translate_lang_body', 'STANDARD_TEXT', 
                                        $this->getText('#phptranslator_texto padrao#') );
                     $_objTmpl->addVar( 'translate_lang_body', 'TARGET_TEXT', 
                                        $this->getText('#phptranslator_traduzir para#') );
                     $_objTmpl->addVar( 'translate_lang_body', 'TRANSLATED_TEXT', 
                                        $this->getText('#phptranslator_texto traduzido#') );
                     $_objTmpl->addVar( 'translate_lang_body', 'ABBREVIATION', 
                                        $this->getText('#phptranslator_sigla#')."/".
                                        $this->getText('#phptranslator_simbolo#') );
                     $_objTmpl->addVar( 'translate_lang_body', 'BTN_SALVAR', 
                                        $this->getText('#phptranslator_salvar#') );
                     $_objTmpl->addVar( 'translate_lang_body', 'BTN_RESTAURAR', 
                                        $this->getText('#phptranslator_restaurar#') );
                                              
    
                     $_objTmpl->addVar( 'translate_lang_body', 'TAB_CONTEXT', $_keys );
                     $_objTmpl->addVar( 'translate_lang_body','LANGUAGE_SOURCE',"(".$this->language_std.")");
                     $_objTmpl->addVar( 'translate_lang_body','LANGUAGE_TARGET',"(".$this->_getLanguage().")");
                     $_objTmpl->addRows( 'translate_lang_list_entry', $this->arrLanguageLang[$_keys] );
                     $_objTmpl->displayParsedTemplate('translate_lang_body');
                     // limpa dados de template para acrecentar outros dados
                     $_objTmpl->clearTemplate('translate_lang_body');
                     $_objTmpl->clearTemplate('translate_lang_list_entry');
                  }  // end foreach
      
              $_objTmpl->displayParsedTemplate('translate_lang_foot');
              // fim de Montagem pagina do tradutor
           }
           $_objTmpl->displayParsedTemplate('end_page_form');
    
        } //end func: Translate
    
       /**
        * Busca o texto a ser traduzido
        *
        * Busca a traducao do texto - caso o texto traduzido nao exista retorna o texto padrao e caso este 
        * tambem nao exista retorna o codigo de pesquisa
        *
        * @param string $_msg_code O codigo da mensagem a ser traduzida
        * @param boolean $_sigla Se retorna a sigla em lugar da mensagem completa
        * @param boolean $_text_case Se o texto retorna o texto como cadastrado, em maiusculas ou minusculas
        *                                                1 - maiuscula
        *                                                2 - minuscula
        *                                          outro - como estiver cadastrado
        *
        * @return string  O texto traduzido, o texto padrao ou o codigo da mensagem
        *
        */ 
        function getText( $_msg_code, $_sigla=false, $_text_case=0 ) {
    
                if(!empty($_msg_code) && ($this->translate_message)) {
                   $_msg_text = $this->_getStdText($_msg_code,$_sigla,$_text_case);
                }
                else {
                   $_msg_text = $_msg_code;
                }
    
                return $_msg_text;
    
        } // end func: getText
    
       /**
        * Metodo para retornar a mensagens de erros ocorridas
        * 
        * @access public
        * @name   getMessage
        */
        function getMessage() {
          return $this->mensagem;
        } // end func: getMessage
        
       /**
        * Metodo para retornar se houve erro ou nao na classe
        *
        * @access public
        * @return boolean  TRUE  - houve erro ao processar a classe
        *                             FALSE - nao houve erro
        */
        function isError() {
          return $this->error;
        } // end func: isError
        
     /**
      * Atribui o caminho fisico para os arquivos de idiomas
      * 
      * devera conter as secoes dos arquivos de idiomas, conforme contextualizacao
      * <code>
      *  ...
      *  $_lang_sections = array(
      *                      'phpTranslator' => 'textos da classe de traducao',
      *                      'admin'             => 'Textos da secao administrativa',
      *                      'home'              => 'textos da secao principal',
      *                      'and son on'      => 'e assim por diante...');
      *  
      *  $objTranslator->setLangFileSections($_lang_sections);
      *  ...
      * </code>
      * @param string $_language_file_path O caminho para os arquivos de idiomas
      * @var array
      * @since v 0.2.0-40
      */
      function setLangFileSections($_language_sections=array()) {
          if(empty($_language_sections)) {
              $this->message = "Impossivel processar traducao por secoes, secoes nao informadas.";
              $this->error = true;
          }
          else {
              $this->language_sections = $_language_sections;
              $this->error = false;
          }
        return !$this->error;
      }
     
       /**
        * Atribui o caminho fisico para os arquivos de idiomas
        * 
        * @param string $_language_file_path O caminho para os arquivos de idiomas
        */ 
        function setLangFilePath($_language_file_path="") {
             if (!empty($_language_file_path))
                $this->language_file_path = $_language_file_path;
        } // end func: setLangFilePath
     
       /**
        * Mostra o formulario de selecao de contextos
        * @access private
        * @since v 0.2.0-40
        */ 
        function showTagHeader(&$_objTmpl) {
            if ($this->languageFileInSections)
	            if(!is_object($_objTmpl)) {
	                    $this->mensagem = $this->getText('#phptranslator_objTemplate#').$this->getText('#phptranslator_not found#');
	                    if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
	                    $this->error = true;
	            }
	            else {
                    if(is_array($this->language_sections) and !empty($this->language_sections)) {
                       $_list = array();
                       foreach($this->language_sections as $_tag => $_tag_title) {
                           $_tag_current = '';
                           if($_tag == $this->language_section_active)
                               $_tag_current = 'TagCurrent';
                               
                           $_arrAux = array( 
                                          array( 
                                                 'TAG_NAME' => $_tag,
                                                 'TAG_HEADER_ACTIVE' => $_tag_current,
                                                 'TAG_HEADER' => $this->getText($_tag),
                                                 'TAG_HEADER_TITLE' => $this->getText($_tag_title)
                                                )
                                         );
                         $_list = array_merge($_list,$_arrAux);
                       }
                       /*
                       echo $this->language_section_active;
                       if('tradutor' == $this->language_section_active)
                           $_tag_current = 'TagCurrent';
                               
                        $_list = array_merge($_list,
                                                                    array( 
                                                                      array( 
                                                                             'TAG_NAME' => 'tradutor',
                                                                             'TAG_HEADER_ACTIVE' => $_tag_current,
                                                                             'TAG_HEADER' => $this->getText('tradutor'),
                                                                             'TAG_HEADER_TITLE' => $this->getText('Classe Tradutora')
                                                                            )
                                                                    )
                                        );
                        */
                       $_objTmpl->addRows( 'tmplTagHeader_list', $_list);
                       $_objTmpl->addVar('tmplTagHeader','translator_url_path',$this->translator_url_path);
                       $_objTmpl->addVar('tmplTagHeader','TAG_ACTIVE',$_POST['tag_active']);
                       $_objTmpl->displayParsedTemplate('tmplTagHeader'); 
                    }
                    else {
                        $this->mensagem = $this->getText('#phptranslator_section array not defined#');
                        if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
                        $this->error = true;
                    }
            }
        } // end func: showTagHeader
        
       /**
        * Atribui o caminho (URL) para a classe
        *
        * @param string $_translator_url_path A URL para a classe
        * @since v 0.2.0-40
        */ 
        function setURLPath($_translator_url_path="") {
             if (!empty($_translator_url_path))
                $this->translator_url_path = $_translator_url_path;
        } // end func: setURLPath
    
       /**
        * Atribui o sufixo para o arquivo de idiomas
        *
        * @param string $_file_sufix O sufixo a ser atribuido ao arquivo
        */ 
        function setLangFileSufix($_file_sufix="") {
             if (!empty($_file_sufix))
                $this->language_file_sufix = $_file_sufix;
        } // end func: setLangFileSufix
    
       /**
        * Atribui o prefixo para o arquivo de idiomas
        *
        * @param string $_file_prefix O prefixo a ser atribuido ao arquivo
        */ 
        function setLangFilePrefix($_file_prefix="") {
             if (!empty($_file_prefix))
                $this->language_file_prefix = $_file_prefix;
        } // end func: setLangFilePrefix
    
       /**
        * Atribui os idiomas a serem usado na aplicacao
        * 
        * @access private
        * @param string $_abbr_i18n    ISO do Idioma em questao
        * @param string $_lang_choice Qual o padrao a ser lido e armazenado
        *                                    standard - o padrao para a aplicacao 
        *                                    target   - o idioma destino 
        *                                    user     - o idioma para o usuario 
        */ 
        function setLanguage($_abbr_i18n, $_lang_choice='standard') {
          switch ($_lang_choice) {
            case 'standard': {
                              $this->setLangSrc($_abbr_i18n);
                              break;
                             } 
            case 'target': {
                              $this->setLangTgt($_abbr_i18n);
                              break;
                             } 
            case 'user': {
                              $this->setLangUser($_abbr_i18n);
                              break;
                             } 
          }
        } // end func: setLanguage
    
       /**
        * Le os arquivos de idioma e os armazena em array especificos (padrao ou destino)
        *
        * @param string $_lang_choice Qual o padrao a ser lido e armazenado<br>
        *                                    . standard - o padrao para a aplicacao<br>
        *                                    . target   - o idioma a ser mostrado para o usuario<br>
        */ 
        function buildLangArray($_lang_choice='standard') {
          switch ($_lang_choice) {
            case 'standard': {
                              $this->translated_text_std = $this->_getLangFile();
                              $this->translated_text[$this->language_std] = $this->translated_text_std;
                              break;
                             } 
            case 'target': {
                              $this->translated_text_tgt = $this->_getLangFile($this->language_user);
                              $this->translated_text[$this->language_user] = $this->translated_text_tgt;
                              break;
                             } 
          }
        } // end func: buildLangArray
          
       /**
        * Constroi o array de traducao de idiomas (DE -> PARA)
        *
        * @access private
        */ 
        function getLangArray4Translate() {
            
            $_language_src = $this->translated_text_std;
            $_language_tgt = $this->translated_text_tgt;
            
            if($_language_src) {
               //Idioma a traduzir
               // cria array para cada context
               foreach($_language_src as $_keys => $_key) {
                 if($_key['type'] != 'notran')   
                   $_list[$this->getText($_key['context'])]   =    array();
               }  // end foreach
            
               foreach($_language_src as $_keys => $_key) {
                 if(!empty($_language_tgt[$_keys]['text']) or !empty($_language_tgt[$_keys]['abbr']))
                    $_cor = "";
                 else
                    $_cor = T_BG_COLOR_TRADUZ;
              
                 if($_key['type'] != 'notran')   
                   $_arrAux = array(
                                  array( 'cor' => $_cor,
                                         'lang_src_key' => $_keys,
                                         'lang_language' => $this->language_user,
                                         'lang_context' => $_key['context'],
                                         'lang_type' => $_key['type'],
                                         'lang_src' => $_key['text'],
                                         'lang_tgt' => $_language_tgt[$_keys]['text'],
                                         'lang_tgt_acr' => $_language_tgt[$_keys]['abbr']
                                        )
                                 );
    
                 //$_list = array_merge($_list, $_arrAux);
                 $_list[$this->getText($_key['context'])] = array_merge($_list[$this->getText($_key['context'])],$_arrAux);
               }  // end foreach
            }
    
            if(empty($_list))
               $_list = false;
    
            return $_list;
        } // end Function getLangArray4Translate
    
       /**
        * Constroi o array de listagem de idioma padrao
        *
        * @access private
        */ 
        function getLangArray4List() {
            $_language_src = $this->translated_text_std;
            //Idioma a traduzir
            if(!empty($_language_src)) {
               // cria array para cada context
               foreach($_language_src as $_keys => $_key) {
                 if($_key['type'] != 'notran')   
                   $_list[$this->getText($_key['context'])]   =    array();
               }  // end foreach
            
               foreach($_language_src as $_keys => $_key) {
                 if($_key['type'] != 'notran') {
                   $_arrAux = array( 
                                  array( 
                                         'list_lang' => $this->language_std,
                                         'list_lang_code' => $_keys,
                                         'list_lang_context' => $_key['context'],
                                         'list_lang_type' => $_key['type'],
                                         'list_lang_message' => $_key['text'],
                                         'list_lang_abbr' => $_language_src[$_keys]['abbr']
                                        )
                                 );
    
                   $_list[$this->getText($_key['context'])] = array_merge($_list[$this->getText($_key['context'])],$_arrAux);
                 }   
               }  // end foreach
            }  
            if(empty($_list))
               $_list = false;
    
            return $_list;
        } // end Function getLangArray4List
        
       /**
        *  Constroi os arrays de traducao e listagem de idioma padrao
        *
        * @access private
        */ 
        function buildArrayVars() {
           $this->arrLanguageLang = $this->getLangArray4Translate();
           $this->arrLanguageList = $this->getLangArray4List();
           if(!empty($this->arrLanguageLang))
              ksort($this->arrLanguageLang);
           if(!empty($this->arrLanguageList))
              ksort($this->arrLanguageList);
        } // end Function buildArrayVars
    
       /**
        * Constroi string de conteudo do arquivo a ser salvo
        * 
        * @access private
        * @param array $_lang_tgt_text_file Idioma a ser salvo
        */ 
        function buildStr4File($_lang_tgt_text_file) {
           $_new_target_file = "";
           if(is_array($_lang_tgt_text_file)) {
              foreach($_lang_tgt_text_file as $_keys => $_values) {
                    $_text_test = trim($_values['text'] ). trim($_values['abbr']);
                    if(!empty($_text_test)) {
                        $_new_target_file .= $_values['lang'].
                                             $this->_spaces($this->language_code_len-strlen($_values['lang']));
                        $_new_target_file .= $_keys.
                                             $this->_spaces($this->message_code_len-strlen($_keys));
                        $_new_target_file .= $_values['context'].
                                             $this->_spaces($this->message_context_len-strlen($_values['context']));
                        $_new_target_file .= $_values['type'].
                                             $this->_spaces($this->message_type_len-strlen($_values['type']));
                        $_new_target_file .= $_values['abbr'].
                                             $this->_spaces($this->message_abbr_len-strlen($_values['abbr']));
                        $_new_target_file .= $_values['text']; 
                        $_new_target_file .= T_CRLF ; 
                   }
               }
           }
           else {
             $this->Error = true;
             $this->mensagem = $this->getText('#phptranslator_array parameter required#');
             if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
             $_new_target_file = false;
            }
            
            return $_new_target_file;
        } // end Function buildStr4File
        
       /**
        * Salva o arquivo de idioma conforme definido nos padroes
        * 
        * @access private
        * @param string $_content_to_file Texto/conteudo do arquivo a ser salvo
        * @param string $_abbr_i18n Idioma do arquivo a ser salvo- se nao informado busca o idioma padrao
        * @param boolean $_file_increment Se o conteudo do arquivo sera incrementado - padrao eh sobrescrever
        * @return boolean  se o arquivo foi salvo ou nao
        */ 
        function saveLangFile($_content_to_file, $_abbr_i18n  = "", $_file_increment=false) {
            
            if(empty($_abbr_i18n))
              $_abbr_i18n  = $this->language_std;
            
            $_file_name = $this->_makeFileName($_abbr_i18n);
            
            $this->error = true;
            
            if(is_writable($this->language_file_path)) {
                if (is_writable($_file_name) or !file_exists($_file_name)) {
                    if(($_file_increment) and file_exists($_file_name))
                        $_resource = @fopen($_file_name,'w+');
                    else
                        $_resource = @fopen($_file_name,'w');
                        
                    if($_resource){
                      fwrite($_resource,$_content_to_file);
                      fclose($_resource);
                    }
                    else {
                      $this->mensagem = $this->getText('#phptranslator_file#')." ($_file_name) ".$this->getText('#phptranslator_without write permition#');
                      if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
                      $this->error = false;
                    }
                }
                else {
                  $this->mensagem = $this->getText('#phptranslator_file#')." ($_file_name) ".$this->getText('#phptranslator_without write permition#');
                  if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
                  $this->error = false;
                }
            }
            else {
              $this->mensagem = $this->getText('#phptranslator_directory#')." ($this->language_file_path) ".$this->getText('#phptranslator_without write permition#');
              if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
              $this->error = false;
            }
            
            return $this->error;
        } // end func: SaveFile
    
       /*
        *     Metodos PRIVATE
        */ 
    
       /**
        *  Atribui o idioma padrao para a aplicacao
        *
        * @access private
        * @param string $_abbr_i18n  ISO do Idioma da aplicacao
        */ 
        function setLangSrc($_abbr_i18n) {
            $this->language_std = $_abbr_i18n;
        } // end func: setLangSrc
    
       /**
        *  Atribui o idioma do usuario
        *
        * @access private
        * @param string $_abbr_i18n  ISO do Idioma do usuario
        */ 
        function setLangUser($_abbr_i18n) {
            $this->language_user = $_abbr_i18n;
        } // end func: setLangUser
    
       /**
        *  Atribui o idioma do destino na traducao
        *
        * @access private
        * @param string $_abbr_i18n  ISO do Idioma target
        */ 
        function setLangTgt($_abbr_i18n) {
            $this->setLangUser($_abbr_i18n) ;
        } // end func: setLangTgt
        
       /**
        * Monta o nome do arquivo de idiomas
        * @access private
        *
        * @param string $_abbr_i18n Codigo ISO do idioma a ser usado
        *
        * @return string O nome do arquivo (incluindo o path)
        */ 
        function _makeFileName($_abbr_i18n) {
            if(empty($_abbr_i18n))
              $_abbr_i18n = $this->language_user;
              
            $_file_name  = $this->language_file_path;
            if($this->language_file_subdir)
                $_file_name .= $_abbr_i18n."/";
            
            $_file_name .= $this->language_file_prefix; 
            if ($this->languageFileInSections)
                if(!empty($this->language_section_active))
                  $_file_name .= $this->language_section_active."."; 
                
            $_file_name .= $_abbr_i18n;
            $_file_name .= $this->language_file_sufix;
            $this->error = false;
            
            if(!is_file($_file_name))  {
               $this->mensagem = $this->getText('#phptranslator_file#')." ($_file_name) ".$this->getText('#phptranslator_not found#');
               if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
               $this->error = true;
            }
                            
            return $_file_name;
            
        } // end func: MakeFileName
        
       /**
        * Idioma a ser traduzido para a aplicacao. 
        * Se o preferido pelo usuario ou o do Browser em uso ou o padrao da aplicacao
        * @access private
        */ 
        function _getLanguage() {
    
            // faz insercao dos textos padroes para a aplicacao (conforme o idioma
            $_language = ""; 
            if(!empty($this->language_user))
                $_language = $this->language_user;
            elseif(!empty($this->_browser_language))
                $_language = $this->_browser_language;
            else
                $_language = $this->language_std;
    
           return $_language;
        } // end func: _getLanguage
    
       /**
        * Busca o texto a ser traduzido dentro do array de idiomas
        *
        * Busca a traducao do texto - caso o texto traduzido nao exista retorna o texto padrao e caso este 
        * tambem nao exista retorna o codigo de pesquisa
        *
        * @access private
        * @param string $_msg_code O codigo da mensagem a ser traduzida
        * @param boolean $_sigla Se retorna a sigla em lugar da mensagem completa
        * @param boolean $_text_case Se o texto retorna o texto como cadastrado, em maiusculas ou minusculas
        *                                                1 - maiuscula
        *                                                2 - minuscula
        *                                          outro - como estiver cadastrado
        *
        * @return string  O texto traduzido, o texto padrao ou o codigo da mensagem
        *
        */ 
        function _getStdText($_msg_code='',$_sigla=false,$_text_case=0) {
           if(!empty($_msg_code))
            /*
             * - A chave de procura deve estar em minusculas bem como o conteudo do arquivo de idiomas
             */
             $_key_lower_text = strtolower($_msg_code);
             
             $_lang_array_aux = $this->translated_text[$this->_getLanguage()];
             if(@array_key_exists($_key_lower_text, $_lang_array_aux)) {
                   if(@array_key_exists('text', $_lang_array_aux[$_key_lower_text])) {
                      $_msg_code_aux = $_lang_array_aux[$_key_lower_text]['text'];
                      if($_sigla) 
                        if(@array_key_exists('abbr', $_lang_array_aux[$_key_lower_text]))
                          $_msg_code_aux = $_lang_array_aux[$_key_lower_text]['abbr'];
                   }
             }
             else { 
                $_lang_array_aux = $this->translated_text_std;
                if(@array_key_exists($_key_lower_text, $_lang_array_aux)) {
                   if(@array_key_exists('text', $_lang_array_aux[$_key_lower_text])) {
                      $_msg_code_aux = $_lang_array_aux[$_key_lower_text]['text'];
                      if($_sigla) 
                        if(@array_key_exists('abbr', $_lang_array_aux[$_key_lower_text]))
                          $_msg_code_aux = $_lang_array_aux[$_key_lower_text]['abbr'];
                   }
                }
                else {
                    $_lang_array_aux = $this->translated_text_self;
                    if(@array_key_exists($_key_lower_text, $_lang_array_aux)) {
                        if(@array_key_exists('text', $_lang_array_aux[$_key_lower_text])) {
                            $_msg_code_aux = $_lang_array_aux[$_key_lower_text]['text'];
                            if($_sigla) 
                                if(@array_key_exists('abbr', $_lang_array_aux[$_key_lower_text]))
                                  $_msg_code_aux = $_lang_array_aux[$_key_lower_text]['abbr'];
                        }
                    }
                }
           }
           
           switch ($_text_case) {
                case 1: // tudo em minusculas
                        $_msg_code_aux = strtolower($_msg_code_aux);
                        break;
                case 2: // tudo em maiusculas
                        $_msg_code_aux = strtoupper($_msg_code_aux);
                        break;
            }
            
            if(empty($_msg_code_aux))
               $_msg_code_aux = $_msg_code;

            return $_msg_code_aux;
        } // end func: _getStdText
        
       /**
        * Monta uma string contendo espacos em branco
        * @access private
        * @param int $_num Numero de espacos que a string contera
        * @return string Espacos em branco
        */ 
        function _spaces($_num=0)  {
          if($_num>0)
             for($_inc=1;$_inc<=$_num;$_inc++) {
               $_spaces .= " ";
             }
          return $_spaces;
         } // end func: _spaces
    
       /**
        * cria template para a propria classe usar
        * @access private
        * @return patTemplate
        */
        function &_createTemplate() {
             global $option, $mosConfig_absolute_path;
             
             if(defined( '_VALID_MOS' )) {
                 require_once($mosConfig_absolute_path.'/includes/patTemplate/patTemplate.php' );
                 $tmpl =& patFactory::createTemplate();
                 $tmpl->setRoot( dirname( __FILE__ ) . '/templates' );
             }
             else {
                    require_once( $this->class_self_path.'/classes/pat/patErrorManager.php' );
                    require_once( $this->class_self_path.'/classes/pat/patTemplate.php' );
                    $tmpl = new patTemplate();
                    $tmpl->setNamespace("mos");
             }
             $this->_objTmpl = $tmpl;
             return $tmpl;
        } // end func: _createTemplate
         
    
       /**
        * Salvar dados apos alteracoes ou exclusoes de mensagens codificadas
        * 
        * @access private
        */ 
        function _langSave($_lang_target,$_abbr_i18n_save) {
             $_text4file = $this->buildStr4File($_lang_target);
             if(!is_bool($_text4file)) {
                $_saved = $this->saveLangFile($_text4file,$_abbr_i18n_save);
                if(!$_saved)
                    echo $this->getMessage();
             }
             elseif(!($_text4file))
               echo $this->getMessage();
        } // end func: _langSave
    
       /**
        * Excluir mensagem do idioma padrao
        *
        * @access private
        * @param array $_lang_data_selected Dado do idioma padrao a ser excluido
        * 
        */ 
        function _langCodeDelete($_lang_data_selected) {
          foreach($_lang_data_selected as $_keys => $_key) {
            unset( $this->translated_text_std[$_keys]);
          }
        } // end func: _langCodeDelete
    
       /**
        * Busca o arquivo de idiomas
        *
        * @access private
        * @param string $_abbr_i18n O codigo ISO do idioma a ser tratado
        *
        * @return array Contem os dados do idioma
        */ 
        function _getLangFile($_abbr_i18n="") {
          
            $this->error = false;
    
            if(empty($_abbr_i18n))
              $_abbr_i18n = $this->language_std;
            
            $_src_file_name =   $this->_makeFileName($_abbr_i18n);
            
            if(!file_exists($_src_file_name)) {
               $this->mensagem = $this->getText('#phptranslator_language file#')." ($_src_file_name) ".
                                                $this->getText('#phptranslator_not found#');
               if($this->_debugTranslator) echo "phpTranslator: ".$this->getMessage();
               $this->error = true;
               return false;
            }
            
            $_src_file = file($_src_file_name);
    
            // monta idioma padrao
            foreach($_src_file as $_keys => $_values) {
              $_lang = trim(substr($_values,0,$this->language_code_len));
              $_msg_code = strtolower(trim(substr($_values,$this->language_code_len,$this->message_code_len)));
              
              $_str_start_aux = $this->language_code_len+$this->message_code_len;
              $_msg_context = trim(substr($_values,$_str_start_aux,$this->message_context_len));
              
              $_str_start_aux = $this->language_code_len+$this->message_code_len+$this->message_context_len;
              $_msg_type = trim(substr($_values,$_str_start_aux,$this->message_type_len));
              
              $_str_start_aux = $this->language_code_len+$this->message_code_len+
                                $this->message_context_len+$this->message_type_len;
              $_msg_abbr = trim(substr($_values,$_str_start_aux,$this->message_abbr_len));
              
              $_str_start_aux = $this->language_code_len+$this->message_code_len+
                                $this->message_context_len+$this->message_type_len+$this->message_abbr_len;
              $_msg_text = trim(substr($_values,$_str_start_aux));
              
              $_language_data[$_lang][$_msg_code]['text'] = $_msg_text;
              $_language_data[$_lang][$_msg_code]['context'] = $_msg_context;
              $_language_data[$_lang][$_msg_code]['type'] = $_msg_type;
              $_language_data[$_lang][$_msg_code]['abbr'] = $_msg_abbr;
              $_language_data[$_lang][$_msg_code]['lang'] = $_abbr_i18n;
            }
            
            asort($_language_data[$_abbr_i18n]);

            return $_language_data[$_abbr_i18n];
            
        } // end func: _getLangFile
        
	   /**
	    * Atribui o tamanho do campo de codigo (abbrI18N) do idioma
	    * @access public
	    * @param boolean $_length Tamnho a ser atribuido (default 10)
	    */ 
	    function setLangCountryLength( $_length=10) {
	   		$this->language_code_len = $_length;
	    } // end func: setLangCountryLength
        
	   /**
	    * Atribui o tamanho do campo de codigo da messagem
	    * @access public
	    * @param boolean $_length Tamnho a ser atribuido (default 100)
	    */ 
	    function setLangMsgCodeLength( $_length=100) {
	   		$this->message_code_len = $_length;
	    } // end func: setLangMsgCodeLength
        
	   /**
	    * Atribui o tamanho do campo de tipo da messagem
	    * @access public
	    * @param boolean $_length Tamnho a ser atribuido (default 10)
	    */ 
	    function setLangMsgTypeLength( $_length=10) {
	   		$this->message_type_len = $_length;
	    } // end func: setLangMsgTypeLength
        
	   /**
	    * Atribui o tamanho do campo de contexto da messagem
	    * @access public
	    * @param boolean $_length Tamnho a ser atribuido (default 10)
	    */ 
	    function setLangMsgContextLength( $_length=10) {
	   		$this->message_context_len = $_length;
	    } // end func: setLangMsgContextLength
        
	   /**
	    * Atribui o tamanho do campo da abreviatura  da messagem
	    * @access public
	    * @param boolean $_length Tamnho a ser atribuido (default 10)
	    */ 
	    function setLangMsgAbbrLength( $_length=10) {
	   		$this->message_abbr_len = $_length;
	    } // end func: setLangMsgAbbrLength
             
	   /**
	    * Atribui que o caminho dos arquivos de idiomas ficarao em subdiretorios abbrI18N
	    * @access public
	    * @param boolean $_filesInSubDirs TRUE - em subdiretorio abbrI18N 
	    * 						 	     FALSE - sem subdiretorio abbrI18N (default)
	    */ 
	    function setLangFilesInSubDirs($_filesInSubDirs=false) {
	   		$this->language_file_subdir = $_filesInSubDirs;
	    } // end func: setLangFilesInSubDir
	    
	   /**
	    * Atribui que os arquivos de idiomas serao seccionados conforme contextualizacao
	    * @access public
	    * @param boolean $_filesInSections TRUE - seccionados 
	    * 							      FALSE -  nao seccionados (default)
	    */ 
	    function setLangFilesInSections($_filesInSections=false) {
	       $this->languageFileInSections = $_filesInSections;
	    } // end func: setLangFilesInSections
	    
	   /**
	    * Atribui a secao ativa a ser mostrada a TAG em "showTagHeader"
	    * @access public
	    * @param string $_activeSection O nome da seccao ativa (ex: admin ou setup)
	    * 								Obs: Deve ser o nome interno e nao a traducao
	    */ 
	    function setActiveSection($_activeSection="") {
	       $this->language_section_active = $_activeSection;
	    } // end func: setActiveSection
	    
       /*
        *     Deprecated Methods 
        */ 
        
       /**
        * @access private
        * @deprecated since v 0.1.41
        * @see setURLPath()
        */ 
        function setTabPaneURLPath($_translator_url_path="") {
            $this->setURLPath($_translator_url_path);
        }
        
       /**
        * @access private
        * @deprecated since v 0.1.41
        * @see setLangFilePath()
        */ 
        function setFilePath($_language_file_path="") {
			$this->setLangFilePath($_language_file_path);
        } // end func: setFilePath
     
       /**
        * @access private
        * @deprecated since v 0.1.41
        * @see setLangFileSections()
        */ 
      	function setLangSections($_language_sections=array()) {
      		$this->setLangFileSections($_language_sections);
      	}
        
       /**
        * @access private
        * @deprecated since v 0.1.41
        * @see setLangFilePrefix()
        */ 
        function setFilePrefix($_file_prefix="") {
             $this->setLangFilePrefix($_file_prefix);
        } // end func: setFilePrefix
        
        /*  END OF DEPRECATED METHODS */
        
    } // end Class: Translator

?>
Return current item: oBiblioOPAC for Joomla!