/**
* Custom loadLanguage method
*
* @param string $path The path language files are on.
*
* @return void
*
* @since 3.1
*/
public function loadLanguage($path = null)
{
$source = $this->parent->getPath('source');
switch ($this->parent->extension->client_id) {
case 0:
$client = JPATH_SITE;
break;
case 1:
$client = JPATH_ADMINISTRATOR;
break;
case 3:
$client = JPATH_API;
break;
default:
throw new \InvalidArgumentException(sprintf('Unsupported client ID %d for component %s', $this->parent->extension->client_id, $this->parent->extension->element));
}
if (!$source) {
$this->parent->setPath('source', $client . '/components/' . $this->parent->extension->element);
}
$extension = $this->getElement();
$source = $path ?: $client . '/components/' . $extension;
if ($this->getManifest()->administration->files) {
$element = $this->getManifest()->administration->files;
} elseif ($this->getManifest()->api->files) {
$element = $this->getManifest()->api->files;
} elseif ($this->getManifest()->files) {
$element = $this->getManifest()->files;
} else {
$element = null;
}
if ($element) {
$folder = (string) $element->attributes()->folder;
if ($folder && file_exists($path . '/' . $folder)) {
$source = $path . '/' . $folder;
}
}
$this->doLoadLanguage($extension, $source);
}