web-dev-qa-db-fra.com

Le fichier de langage composant est copié mais ne fonctionne pas

J'essaie simplement de créer un composant backend et je ne parviens pas à faire fonctionner le fichier de langue.

Ceci est mon manifeste xml (la partie importante):

<media destination="com_displaygroups" folder="media">
  <filename>index.html</filename>
  <folder>css</folder>
</media>

<administration>
  <!-- Administration Menu Section -->
  <menu link='index.php?option=com_displaygroups'>COM_DISPLAYGROUPS</menu>
  <submenu>
    <menu view="groups">COM_DISPLAYGROUPS_BY_GROUPS</menu>
    <menu view="users">COM_DISPLAYGROUPS_BY_USERS</menu>
  </submenu>
  <!-- Administration Main File Copy Section -->
  <!-- Note the folder attribute: This attribute describes the folder
  to copy FROM in the package to install therefore files copied
  in this section are copied from /admin/ in the package -->
  <files folder="admin">
    <!-- Admin Main File Copy Section -->
    <filename>index.html</filename>
    <filename>displaygroups.php</filename>
    <filename>controller.php</filename>
    <folder>models</folder>
    <folder>views</folder>
    <folder>language</folder>
  </files>
  <languages folder="admin/language">
    <language tag="en-GB">en-GB/en-GB.com_displaygroups.sys.ini</language>
  </languages>
</administration>

Je veux juste un fichier de langue parce que les 3 chaînes du manifeste sont tout ce dont j'ai besoin. Quand j'installe le composant, je reçois le message suivant:

Avertissement JInstaller:: Installation: le fichier n'existe pas C:\xampp\htdocs\just-joomla\tmp\install_56dd839e79478\admin\language\en-GB\en-GB.com_displaygroups.sys.ini

mais je peux voir que Joomla ajoute un fichier de langue à l'intérieur de administrator\components\com_displaygroups\language\en-GB\the en_GB.com_displaygroups.sys.ini

Quelqu'un peut-il me dire ce que je fais mal ici? :(

Edit1\Mon arborescence de fichiers à l'intérieur du composant:

com_displaygroups
│   displaygroups.xml
│   tree.txt
│   
├───admin
│   │   controller.php
│   │   displaygroups.php
│   │   index.html
│   │   
│   ├───language
│   │   │   index.html
│   │   │   
│   │   └───en-GB
│   │           en_GB.com_displaygroups.sys.ini
│   │           index.html
│   │           
│   ├───models
│   │       groups.php
│   │       index.html
│   │       users.php
│   │       
│   ├───sql
│   │   │   index.html
│   │   │   
│   │   └───updates
│   │       │   index.html
│   │       │   
│   │       └───mysql
│   │               0.0.1.sql
│   │               index.html
│   │               
│   └───views
│       │   index.html
│       │   
│       ├───groups
│       │   │   index.html
│       │   │   view.html.php
│       │   │   
│       │   └───tmpl
│       │           default.php
│       │           index.html
│       │           
│       └───users
│           │   index.html
│           │   view.html.php
│           │   
│           └───tmpl
│                   default.php
│                   index.html
│                   
└───media
    │   index.html
    │   
    └───css
            display-style.css
            index.html
1
Thomas Kolasa

Vous pouvez également expédier les fichiers de langue de votre composant dans le dossier de langue comme je le fais avec DPFields https://github.com/Digital-Peak/DPFields/blob/master/com_dpfields/admin/dpfields.xml#L48 . Après l'installation, les fichiers de langue sont toujours dans votre dossier de composants. Joomla détectera automatiquement les fichiers de traduction.

Vérifiez que le nom de fichier dans le fichier manifeste et l’arborescence de dossiers sont identiques. Sinon, ils ne sont pas chargés. Si cela ne fonctionne toujours pas, il se peut que vous rencontriez une erreur dans votre fichier de langue. Définissez Debug Language sur yes dans votre configuration Joomla. Il vous indiquera quels fichiers peuvent être chargés et quels fichiers ne le sont pas.

1
Laoneo

Essaye ça:

<languages folder="admin">
    <language tag="en-GB">language/en-GB/en-GB.com_displaygroups.sys.ini</language>
</languages>

et enlever

<folder>language</folder>

De la section de votre manifeste.

2
Terry Carter