Jueves, 27 Abril 2017

Error: No core pack exist for the language

A raíz de algunas consultas por email sobre este error en particular que da Joomla al momento de instalar paquetes de idioma, explico brevemente qué significa y cómo funciona el CMS en este sentido.
El error sucede porque o bien no tenemos el paquete básico de idioma instalado que se corresponde con el idioma de la extensión, o bien pasa cuando no tenemos la carpeta que se corresponde con el idioma que estamos queriendo instalar. Explicado desde otro ángulo y viendo un ejemplo, es un error frecuente cuando utilizamos instaladores de idioma por ejemplo de jDownload, jEvents, etc...

Estos componentes, como muchos otros, utilizan instaladores de idioma, es decir, paquetes zipeados (comprimidos) que tienen dentro un archivo XML que le dice al core de Joomla dónde tienen que ir los archivos.

Si vemos el archivo XML dentro del  paquete de jDownload por ejemplo, veremos, un código similiar a este (aquí resumido):


es-ES.com_jdownloads
es-ES
...

es-ES.com_jdownloads.ini
es-ES.com_jdownloads.menu.ini       
index.html


es-ES.com_jdownloads.ini
es-ES.mod_jdownloads_top.ini
index.html

...

La etiqueta tag es la que dice en qué carpeta debe ir el lenguaje.
Luego las etiquetas administration y site le dice que lo primero va dentro de "raízjoomla/administrator/lenguage/es-ES" (administración) y los segundo dentro de "raízjoomla/lenguage/es-ES" (front end).

La API Joomla que refiere al idioma se valida con el código PHP del archivo ubicado en raizjoomla/libraries/joomla/installer/adapters/language.php y dentro contiene esta instrucción condicional :

if (!$this->_core) {
if (!JFile::exists($this->parent->getPath('extension_site')
.DS.$this->get('tag').'.xml')) {
$this->parent->abort(JText::_('Language').' '.JText::_('Install')
.': '.JText::_('No core pack exists for the language')
.' :'.$this->get('tag'));
return false;
}
}

Como ven, esta es la encargada de emitir el mensaje de error cuando el idioma no está.
Posibles soluciones:

  • La más certera es instalar el paquete de idioma Joomla que se corresponda con el idioma de la extensión que vamos a utilizar. Por ejemplo: si instalamos jDonwloads y lo vamos a usar en español, en el core de Joomla debemos tener instalado también el paquete español. Digo que es la más certera puesto que hay extensiones que utilizan partes del paquete de lenguajes desde el core, por ejemplo para textos como "Publicado", "Despublicado", "Si", "No", "Editar", "Borrar", etc.
  • Otra solución es crear las carpetas es-ES dentro de los directorios me mencionados más arriba. No es la solución más acertada pero a veces funciona, según la extensión.
  • La solución más "sucia" o "trucada", consiste en cambiar los caracteres de los archivos INI de idioma "es-ES" por "en-GB" y subirlos por FTP dentro de las carpetas del idioma inglés ubicadas en "raízjoomla/administrator/lenguage/en-GB" para la administración y "raízjoomla/language/en-GB" para el frontend.
Consultor y Desarrollador Proyectos Web
Author: tuxmerlin
Sobre mi...
Orientar personas es despertar vida
Otros contenidos de este Redactor

Debe registrarse para poder Comentar