Back to ComponentAdapter class

Method loadLanguage

public void
loadLanguage
(mixed $path = null)
Custom loadLanguage method
Parameters
  • string $path The path language files are on.
Returns
  • void
Since
  • 3.1

Method loadLanguage - Source code

/**
 * 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);
}