| 45 | 
  45 | 
  
    	{
   | 
  | 46 | 
  46 | 
  
    		$this->sAddon = $sAddon;
 
   | 
  | 47 | 
  47 | 
  
    		$this->sFilePath = str_replace('\\', '/', dirname(dirname(__FILE__)).'/'.$sAddon);
   | 
  | 48 | 
   | 
  
    		$this->sFilePath = rtrim($this->sFilePath, '/').'/languages/';
 
   | 
  | 49 | 
  48 | 
  
    	}
 
   | 
  | 50 | 
  49 | 
  
    /**
 
   | 
  | 51 | 
  50 | 
  
     * Load languagefile
 
   | 
  | ... | ... |  | 
  | 54 | 
  53 | 
  
     */
 
   | 
  | 55 | 
  54 | 
  
    	public function loadLanguage($sLangCode)
 
   | 
  | 56 | 
  55 | 
  
    	{
   | 
   | 
  56 | 
  
    		$this->_getAddonPath();
 
   | 
  | 57 | 
  57 | 
  
    		$aTranslations = array();
 
   | 
  | 58 | 
  58 | 
  
    		$sLangFile = strtolower($sLangCode.'.php');
 
   | 
  | 59 | 
  59 | 
  
    		if( ($aDirContent = scandir($this->sFilePath)) !== false) {
   | 
  | ... | ... |  | 
  | 76 | 
  76 | 
  
     */
 
   | 
  | 77 | 
  77 | 
  
    	public function findFirstLanguage()
 
   | 
  | 78 | 
  78 | 
  
    	{
   | 
   | 
  79 | 
  
    		$this->_getAddonPath();
 
   | 
  | 79 | 
  80 | 
  
    	// search for first available and readable language file
 
   | 
  | 80 | 
  81 | 
  
    		$sRetval = '';
 
   | 
  | 81 | 
  82 | 
  
    		if(is_readable($this->sFilePath)) {
   | 
  | ... | ... |  | 
  | 92 | 
  93 | 
  
    		return $sRetval;
 
   | 
  | 93 | 
  94 | 
  
    	}
 
   | 
  | 94 | 
  95 | 
  
    /**
 
   | 
   | 
  96 | 
  
     * set path to translation files
 
   | 
   | 
  97 | 
  
     * @throws TranslationException
 
   | 
   | 
  98 | 
  
     */
 
   | 
   | 
  99 | 
  
    	private function _getAddonPath()
 
   | 
   | 
  100 | 
  
    	{
   | 
   | 
  101 | 
  
    		$sAddon   = str_replace('\\', '/', $this->sAddon);
   | 
   | 
  102 | 
  
    		$sDirname = str_replace('\\', '/', dirname(dirname(__FILE__))).'/';
   | 
   | 
  103 | 
  
    		$this->sFilePath = $sDirname.$sAddon.'/languages/';
 
   | 
   | 
  104 | 
  
    		if(!is_readable($this->sFilePath) && (strpos('admin', $this->sAddon) === 0)) {
   | 
   | 
  105 | 
  
    		// correct modified admin directory
 
   | 
   | 
  106 | 
  
    			$sTmp = trim(WbAdaptor::getInstance()->AcpDir);
 
   | 
   | 
  107 | 
  
    			$this->sFilePath = $sDirname.preg_replace('/^admin/', $sTmp, $sAddon).'/languages/';
   | 
   | 
  108 | 
  
    			if(!is_readable($this->sFilePath)) {
   | 
   | 
  109 | 
  
    				throw new TranslationException('missing language definitions in: '.$sAddon.'/languages');
   | 
   | 
  110 | 
  
    			}
 
   | 
   | 
  111 | 
  
    		}
 
   | 
   | 
  112 | 
  
    	}
 
   | 
   | 
  113 | 
  
    /**
 
   | 
  | 95 | 
  114 | 
  
     * Import language definitions into array
 
   | 
  | 96 | 
  115 | 
  
     * @param string load language from filename
 
   | 
  | 97 | 
  116 | 
  
     * @return array contains all found translations
 
   | 
 
TranslateAdaptorWbOldStyle now also accepts modified admin directory names