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