web-dev-qa-db-fra.com

Le module traduit est toujours en-GB

J'écris un module pour Joomla 3.4.3 et rencontre des problèmes avec I18N.

Ma structure de répertoire de module:

+ mod_mymodname
  + tmpl
    - default.php
  + language
    + de-DE
      - de-DE.mod_mymodname.ini
      - de-DE.mod_mymodname.sys.ini
    + en-GB
      - en-GB.mod_mymodname.ini
      - en-GB.mod_mymodname.sys.ini
  - helper.php
  - mod_mymodname.php
  - mod_mymodname.xml

Dans mon mod_mymodname.xml:

<extension type="module" version="3.1.0" client="site" method="upgrade">
    <name>MOD_MYMODNAME_XML_NAME</name>
    <description>MOD_MYMODNAME_XML_DESC</description>
    <files>
        <filename>mod_mymodname.xml</filename>
        <filename module="mod_mymodname">mod_mymodname.php</filename>
        <filename>helper.php</filename>
        <folder>tmpl</folder>
        <folder>language</folder>
    </files>
    <languages folder="language">
        <language tag="en-GB">en-GB/en-GB.mod_mymodname.ini</language>
        <language tag="en-GB">en-GB/en-GB.mod_mymodname.sys.ini</language>
        <language tag="de-DE">de-DE/de-DE.mod_mymodname.ini</language>
        <language tag="de-DE">de-DE/de-DE.mod_mymodname.sys.ini</language>
    </languages>
    <config>
        <fields name="params">
            <fieldset name="basic">
                <field name="myfieldname"
                       type="integer"
                       default="5"
                       label="MOD_MYMODNAME_FIELD_MYFIELDNAME_LABEL"
                       description="MOD_MYMODNAME_FIELD_MYFIELDNAME_DESC"
                       first="1"
                       last="10"
                       step="1"/>
            </fieldset>
        </fields>
    </config>
</extension>

Dans mon en-GB.mod_mymod.ini (le .sys. _ sont exactement les mêmes):

MOD_MYMODNAME_XML_NAME="My Module Name"
MOD_MYMODNAME_XML_DESC="My Module Name is a sample module for Joomla! 3.x"
MOD_MYMODNAME_FIELD_MYFIELDNAME_LABEL="Set a number"
MOD_MYMODNAME_FIELD_MYFIELDNAME_DESC="My Module Name wants to have a number from you"

Le de-DE version contient bien sûr les chaînes allemandes.

Lorsque je commute le système complet Joomla sur de-DE _ (site, administrateur, contenu) l’interface administrative de Joomla est en allemand (comme prévu). Maintenant, j'installe (ou même déjà ai installé) mon module via le programme d'installation d'extension (archive Zip) et ouvre les paramètres du module. Les paramètres de mon module (champs de configuration) ont le en-GB chaînes au lieu du de-DE _. Le reste de l'interface, y compris les paramètres de module génériques, est toujours en allemand.

Qu'est-ce qui m'a manqué pour créer un module Joomla 3.x compatible I18N?

3
burnersk

Je ne suis pas sûr mais votre fichier de définition/installation de module devrait ressembler davantage à ceci:

<extension type="module" version="3.1.0" client="site" method="upgrade">
    <name>mod_mymodname</name>
    <description>MOD_MYMODNAME_XML_DESC</description>
    <files>
        <folder>language</folder>
        <filename module="mod_mymodname">mod_mymodname.php</filename>
        <filename>mod_mymodname.xml</filename>
    </files>
    <languages folder="language">
        <language tag="en-GB">en-GB/en-GB.mod_mymodname.ini</language>
        <language tag="en-GB">en-GB/en-GB.mod_mymodname.sys.ini</language>
        <language tag="de-DE">de-DE/de-DE.mod_mymodname.ini</language>
        <language tag="de-DE">de-DE/de-DE.mod_mymodname.sys.ini</language>
    </languages>
    <config>
        <fields name="params">
            <fieldset name="basic">
                <field name="myfieldname"
                       type="integer"
                       default="5"
                       label="MOD_MYMODNAME_FIELD_MYFIELDNAME_LABEL"
                       description="MOD_MYMODNAME_FIELD_MYFIELDNAME_DESC"
                       first="1"
                       last="10"
                       step="1"/>
            </fieldset>
        </fields>
    </config>
</extension>

Ici vous pouvez trouver le tutoriel complet: https://docs.joomla.org/J3.x:Creating_a_simple_module/Introduction

1
Artur Stępień