Forum CMS Made Simple FR

Version complète : [Résolu]Fichiers de traductions d'un module différents un site à autre
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

A l'instar des templates qui sont modifiables, est-il possible via un module tiers ou une autre solution de pouvoir choisir les libellés à afficher plutôt que de se voir imposer les libellés par défaut ?

En effet, j'ai développé un module multilangue très spécifique que je réutilise sur différents sites et les clients demandent à pouvoir changer les libellés, mais je veux absolument conserver un seul module que je peux packager et distribuer facilement pour faire des mises à jour.

D'avance merci !

Heriquet
Salut Eric,
puisque c'est un module que tu as développé, pourquoi ne pas faire une interface incluse dans l'admin de ton module pour permettre la modification des fichiers de langues mais qui agirait dans le dossier "module_custom" pour ne pas tout écraser quand tu appliques une MAJ?
Autre piste :
Tu peux aussi t'inspirer du module MLE qui permet des traductions directes avec sa balise {translate}.
En fait avant de me lancer dans quelque chose, je voulais vérifier qu'il n'y avait rien dans ce sens.

Mon idée, c'est donc de gérer les libellés dans mon module. Mais si possible sous forme d'un module séparé qui peut gérer les libellés un peu comme on gère les templates, quitte à ce que ce module de libellés génère les fichiers dans le sous dossier "lang" du module auquel il se rapporte afin de pouvoir utiliser $this->Lang() pour récupérer les textes...

Je vais donc me faire un petit cahier de charge et déterminer la meilleur solution à implémenter.

Bon WE !
Ce à quoi je pensais, c'est faire un module "générique" avec en BO la liste des modules installés qui ont un dossier lang.
On choisi le module puis la lang et on obtient le contenu du fichier lang selectionné.
Cela créer un dossier 'module_custom/le-module/lang/la-lang.php' et c'est ce fichier là qui est alimenté par les modifications.

Ainsi, tu ne touches jamais au module d'origine et tu profites de la personnalisation des fichiers de lang de manière ergonomique car rien ne nous empêche de le faire "à la main" aujourd'hui.
Bah en fait je pensais simplement créer ce module, et l'utilise qui veut pour la gestion de ses libellés.

Après on peut imaginer que certains modules pourraient utiliser exclusivement ce système, et pour autres on passe par un tag Smarty qui donne le texte pour un libellé dans la langue courante, pour le module courant.

Enfin je vais me faire une petite analyse et ce n'est pas urgent mais j'y reviendrais dans les semaines à venir.
attention dans la version 1.11 le système "lang" est changé
Voir le changelog

- Adds new CmsNlsOperations and CmsNlsOperations classes to better support language serverices
- deprecated the lang parameter to all plugins and modules.
- adds {cms_get_language} {cms_set_language} and {cms_lang_info} smarty plugins.
- Adds new abstract CmsLanguageDetector class to handle language detection on the frontend.
- locale can now be configured in the NLS information
Ok bah je vais attendre la 1.11 avant de pousser mon analyse plus loins alors.

Mais je pense que je vais quand-même commencer un petit gestionnaire de libellés dans mon module car il doit être livrable avant que la 1.11 ne soit dispo.
Citation :je vais attendre la 1.11 avant de pousser mon analyse plus loins alors
pour voir la 1.11 voir le post
les fichiers de langues seront quand même conservés je suppose, on peut toujours envisager de les modifier quelque soit la manière de traiter les langues dans les modules.
Mais dit donc, ça va être chaud, pas beaucoup de modules seront mis à jour.
C'est pas bon pour l'image de CMSMS ca... de gros changements dans la 1.10, encore dans la 1.11... Après je dis pas que c'est pas nécessaire ou que c'est pas mieux maintenant mais ca peut en décourager certains...

Cela dit, moi pas !
Citation :les fichiers de langues seront quand même conservés je suppose, on peut toujours envisager de les modifier quelque soit la manière de traiter les langues dans les modules.
Oui, de plus la gestion des langues sera simplifiées plus besoin de mettre lang=fr_FR se sera automatique et plus simple pour le multilingue enfin normalement

Citation : de gros changements dans la 1.10, encore dans la 1.11
des améliorations et des simplifications, des gains en vitesse d'affichage ...
Que du bon mais les non-spécialistes vont sans doutes se crisper un peu et les développeurs de modules vont devoir à nouveau revoir leurs modules.

Mais bon c'est le prix à payer pour avoir un bon produit ! On va pas se plaindre :-)
heriquet a écrit :Que du bon mais les non-spécialistes vont sans doutes se crisper un peu et les développeurs de modules vont devoir à nouveau revoir leurs modules.

Mais bon c'est le prix à payer pour avoir un bon produit ! On va pas se plaindre :-)

Que du bon en final oui, je suis d'accord !
Et ... "Un peu mon n'veu" que j'vais me crisper ..., si je suis prévenu "après la bagarre" !
Oui, je sais, il y a tous les éléments pour s'informer au fur et à mesure sur le forum .... et au passage, de nouveau, merci pour tout ce travail auquel je suis désolé de ne plus pouvoir participer (j'ai perdu pieds pendant un an ... et je ne parviens pas à me remettre à jour pour l'instant ! tant pis pour moi !)
Hélas, les non-spécialistes sont nombreux aussi ...., et ils ne suivent pas les discussions de ce genre, qui les dépassent la plupart du temps ... et je ne sais de nouveau pas comment faire pour attirer encore et encore leur vigilance ... (mais bon, je ne veux pas rouvrir ce débat là !)
Heriquet, le module que tu envisages ... pourrait-il servir aux non-spécialistes ... pour la suite : utiliser le moyen structuré dont tu parles au lieu de faire des bidouilles finalement ingérables en maintenance ?

Et puis, comment prévenir dès maintenant les intéressés du changement ? car changement il va y avoir si j'ai bien compris !
Je n'ai pas encore de specs précises pour le module que j'envisage. Mon idée est de pouvoir gérer des libellés au sein d'une page dans l'admin et ce dans différentes langues. Mais les libellés seraient insérés dans des modules via un ensemble de méthodes PHP, voire avec un tag... je sais pas encore.

Ce n'est qu'au state d'idée pour le moment.
Salut Philippe,
je pense qu'il ne faut pas t'inquiéter outre mesure. Les modifications sont essentiellement dans le core. Bien sûr il y aura certainement des répercutions pour nous mais au final, comme l'a dit JCE, ce sont des simplifications.
Un tag de plus dans le gabarit pour détecter la langue et ensuite on ne s'en soucie plus.

Pour les dev., ce seront des classes et des méthodes en plus, de l'aide pour rendre les modules multilingues...que du bonus.

Quant à se tenir informé, Bess à remis en place la Newsletter depuis 2 mois. La prochaine parlera de la V1.11.
Il y a ce forum où JCE à ouvert un topic depuis 20 Janvier!!

Donc, pour ce qui concerne de "prévenir les intéressés", je pense que chacun fait ce qu'il faut pour ça ici.
Merci de ta précision Heriquet ... : à suivre alors, quand tu seras en situation d'avancer !
jissey a écrit :Salut Philippe,
je pense qu'il ne faut pas t'inquiéter outre mesure. Les modifications sont essentiellement dans le core. Bien sûr il y aura certainement des répercutions pour nous mais au final, comme l'a dit JCE, ce sont des simplifications.
Un tag de plus dans le gabarit pour détecter la langue et ensuite on ne s'en soucie plus.

Pour les dev., ce seront des classes et des méthodes en plus, de l'aide pour rendre les modules multilingues...que du bonus.

Quant à se tenir informé, Bess à remis en place la Newsletter depuis 2 mois. La prochaine parlera de la V1.11.
Il y a ce forum où JCE à ouvert un topic depuis 20 Janvier!!

Donc, pour ce qui concerne de "prévenir les intéressés", je pense que chacun fait ce qu'il faut pour ça ici.

Oui, oui, que du bonus, à condition d'avoir commencé suffisamment tôt probablement à mettre à jour .... ! et je sais où il va falloir que je rectifie mes mauvaises pratiques .... !(j'ai un site que je suis encore obligé de maintenir en V1.6.7 parce que si je le passe même en 1.6.11 ... il plante, mais pas à cause des questions de langue !)

Hééé jissey ..., cool .... ! Oui, chacun fait beaucoup sur le forum et l'ensemble des éléments disponibles sur la communauté fr.
Je "réfléchissais tout haut" hier : j'aimerai, moi, avoir davantage de pèche pour faire davantage ! Et en particulier pouvoir ajouter certaines choses dans le wiki à l'intention des moins aguerris ..., mais je n'y arrive que très peu pour l'instant !
oui oui Philippe, je suis cool, ne vois aucun reproche dans ce que j'ai dit plus haut. Je connais ta situation et je sais que tu bosses beaucoup avec et donc pour CMSMS, c'est vrai, c'est pas toujours facile de suivre.

J'aurais dû mettre des émoticônes comme ça partout Smile Big Grin Smile Cool

Au plaisir! :p
Rires ..... !
A suivre !
Bon j'ai du neuf...

En regardant dans le bouquin de Sam Goldstein, page 284, je vois qu'il est possible de redéfinir ses propres libellés pour un module donné.

Il faut créer un répertoire "modules_custom" à la racine du site (au même niveau que "modules" donc), créer un dossier du nom du module (le même nom que dans "modules"), et utiliser la même arborescence.

Exemple :
modules/News/lang/fr_FR.php
devient
modules_custom/News/lang/fr_FR.php

Il ne faut pas dupliquer tout le fichier mais uniquement les clés dont on souhaite modifier le libellé.

CMSMS utilise dès lors ce second fichier. Un bon truc à savoir. Merci Samuel !

Ma proposition de module est dès lors la suivante et j'ai besoin de quelques avis : je pense créer un module qui permettrait de modifier depuis l'admin les libellés de n'importe quel module.

Concrètement, on aurait une page dans l'admin du site, une liste déroulante avec les modules dispo (avec éventuellement une petite gestion de droits).

Les libellés encodés par l'utilisateur seraient stockés dans une table de la DB et lors de l'enregistrement, les fichiers de langue "custom" seraient générés au bon endroit.

Le but est de simplifier leur édition sans avoir à modifier quoi que ce soit au niveau des modules eux-mêmes et sans toucher au système de fichiers.

Qu'en pensez-vous ?

J'ai besoin de ce type de fonctionnalité dans les prochains jours donc je le ferai quoi qu'il arrive pour moi et j'envisage de mettre ce module dans la forge une fois celui-ci "stable".

Je pense donner un des noms suivants : "Label Manager" ou "Labels Made Simple".
...voir encore "CustomLabels Made Simple"
si tu avais lu ma proposition un peu plus haut ( http://www.cmsmadesimple.fr/forum/viewto...237#p27237 ), tu aurais gagné du temps Cool
Attention, je crois que quelque chose "made simple" n'est plus autorisé...il me semble...rien de moins sûr...à vérifier.
En effet j'aurais du relire tout le sujet... j'ai été un peu vite sur le coup. J'avais lu à l'époque mais beaucoup d'eau a coulé depuis ! Désolé.

Donc l'idée d'un module dédicacé à cela est crédible selon toi ?

Je ne peux pas attendre la 1.11 car je dois livrer avant la fin de la beta...
pour moi, c'est la meilleur solution, et avant ou après la 1.11, cela ne change rien puisque le système de fichiers lang n'est pas remis en cause. Tu auras peut-être des adaptations à faire (smarty entre-autre) mais rien dans la conception.
Ok nickel !

Pour le nom, ou puis-je trouver l'info à propos des conventions de nommage des modules ?
il n'y a pas de convention de nommage...j'avais lu un truc de ce genre quelque part, mais je me trompe peut-être.
Dans le site .org, il y a une page sur l'utilisation de la marque, il faudrait vérifier par là. Sinon, tu l'appelles comme tu veux.
Pages : 1 2