Slogan et titres de block sur un site multilingue
Auteur Sujet

Post 
Bonjour,

Je travaille sur un projet de site multilingue (une expérience PN monolingue : surlesplanches.com).

3 questions :

> lorsqu'on place un block : le titre (monolingue et non multi) est affiché. Sauf que "Who's online" pour un français, c'est pas causant. Idem pour "Membres en ligne" pour un anglais. (idem Recherche / Search, ...). Existe-t-il une autre solution que de créer autant de block que de langues ? Car d'expérience, le nombre de blocks augmente rapidement sur un site exploitant un grand nombre de modules (je ne compte plus le nombre de block de surlesplanches.com). S'il faut les multiplier par 5 langues (FR, EN, SP, DE, IT par exemple), j'ai peur ...

> le slogan ... il est naturellement dans la langue maternelle, non ? Mais je n'ai pas trouvé l'astuce pour avoir autant de slogan que de langues. Comment contourner ? (création d'une variable dans le thème ?)

> est-il possible de contrôler les langues ouvertes au public ? J'ai ajouté un pack DE, et immédiatement, la langue deutsch est proposé dans le sélecteur de langue. C'est bien, mais la localisation peut demander un peu de temps ... Alors j'en ai besoin pour localiser mais préfère que le sélecteur ne la propose pas pendant que je localise. C'est possible ?

D'avance merci.

Laurent

PS : j'ai travaillé aujourd'hui sur le design du Theme (en local), et là, la .8, c'est top. (sauf que les styles, sont distribués dans plus de 70 fichiers ...). Plus besoin d'Autotheme. De plus, la logique est assez proche, ce qui est bien pour un novice comme moi.

Question subsidiaire : j'ai lu quelque part suite au dernier WE de corrections, qu'il y aurait probablement une RC3 (normal) ... mais peut-être aussi une RC4 ... avant la finale. Est-ce que le steering commitee s'est fixée une date butoir pour la finale ?
Données personnelles

Post 
Citation :
> lorsqu'on place un block : le titre (monolingue et non multi) est affiché. Sauf que "Who's online" pour un français, c'est pas causant. Idem pour "Membres en ligne" pour un anglais. (idem Recherche / Search, ...). Existe-t-il une autre solution que de créer autant de block que de langues ? Car d'expérience, le nombre de blocks augmente rapidement sur un site exploitant un grand nombre de modules (je ne compte plus le nombre de block de surlesplanches.com). S'il faut les multiplier par 5 langues (FR, EN, SP, DE, IT par exemple), j'ai peur ...

> le slogan ... il est naturellement dans la langue maternelle, non ? Mais je n'ai pas trouvé l'astuce pour avoir autant de slogan que de langues. Comment contourner ? (création d'une variable dans le thème ?)


Tu travaille celà avec la 0.8 ??

Citation :
> est-il possible de contrôler les langues ouvertes au public ? J'ai ajouté un pack DE, et immédiatement, la langue deutsch est proposé dans le sélecteur de langue. C'est bien, mais la localisation peut demander un peu de temps ... Alors j'en ai besoin pour localiser mais préfère que le sélecteur ne la propose pas pendant que je localise. C'est possible ?
il faut faire un hack sur le sélecteur de langue... Si c'est en 0.8, je veux bien regarder comment te le faire !

Citation :
PS : j'ai travaillé aujourd'hui sur le design du Theme (en local), et là, la .8, c'est top. (sauf que les styles, sont distribués dans plus de 70 fichiers ...). Plus besoin d'Autotheme. De plus, la logique est assez proche, ce qui est bien pour un novice comme moi.

En fait, il y a un .css par module et un par thème. tu peux ainsi customiser un module particulier, un thème, ce que tu veux :)

Citation :
Question subsidiaire : j'ai lu quelque part suite au dernier WE de corrections, qu'il y aurait probablement une RC3 (normal) ... mais peut-être aussi une RC4 ... avant la finale. Est-ce que le steering commitee s'est fixée une date butoir pour la finale ?

... je sais pas... on devrait bientôt voir la 0.8...


Gilles  ><>°
Données personnelles Accueil

Post 
Ben oui, c'est la .8.

Mucho intéressé par ta proposition de "hack" ... car ça j'en suis totalement incapable.

Dans "setting" > "paramètres multilingues", il faudrait, dans un nouveau fieldset, afficher la liste des langues installées, et pour chacune un oui/non pour "ouvert au public". Facile ?!? La question est : mais c'est où qu'on stock le oui/non de chaque langue ?

J'avais également une autre question qui ne concerne pas trop le multilinguisme mais le côté personnalisation : j'ai bien compris qu'on place dans le thème une copie des .htm qu'on veut adapter à ses besoins. Ca c'est vraiment génial : ainsi on peut monter de version sans altérer les personnalisations (les montées de versions de surlesplanches.com sont rarissimes car j'ai trop peur de perdre beaucoup d'heures de personnalisation). Mais qu'en est-il des traductions ? Si une constante ne me plait pas, est-ce que je peux la reformuler quelque part (où?) sans perdre ma reformulation à la montée de version suivante.

Dernière question : il est rendu où le WebLinks ? (dans la .8)

Laurent
Données personnelles

Post 
Citation :
mais c'est où qu'on stock le oui/non de chaque langue ?
Un test est fait sur le dossier /languages et les langues retournées sont les langues du système, je crois !

Citation :
Mais qu'en est-il des traductions ? Si une constante ne me plait pas, est-ce que je peux la reformuler quelque part (où?) sans perdre ma reformulation à la montée de version suivante.
Je ne crois pas, mais je n'ai pas testé...

Citation :

Dernière question : il est rendu où le WebLinks ? (dans la .8)
Y sont dans module externe je crois...

Concernant la suppression de l'allemand, je l'ai fait en smarty... J'ai rajouté un "si le code langue n'est pas deu, j'affiche"

blocks_block_thelang.htm

  1. <!--[*  $Id: blocks_block_thelang.htm 23168 2007-11-27 09:03:57Z markwest $  *]--> 
  2. <!--[if $format eq 1]--> 
  3.   <div style="text-align:center"><!--[pnml name="_SELECTGUILANG"]--></div> 
  4.   <div style="text-align:center"> 
  5.   <!--[section name=flags loop=$languages.flags]--> 
  6.   <!--[if $languages.lang[languages].code neq 'deu']--> 
  7.     <a href="<!--[pngetbaseurl]-->index.php?newlang=<!--[$languages.flags[flags].code|pnvarprepfordisplay]-->"><img src="<!--[$languages.flags[flags].image|pnvarprepfordisplay]-->" title="<!--[$languages.flags[flags].title]-->" alt="<!--[$languages.flags[flags].title|pnvarprepfordisplay]-->" /></a> 
  8.   <!--[/if]--> 
  9.   <!--[/section]--> 
  10.   </div> 
  11. <!--[elseif $format eq 2]--> 
  12. <form method="post" action="index.php"> 
  13. <div style="text-align:center"> 
  14.   <div style="text-align:center"><label for="languageblock_changelang"><!--[pnml name="_SELECTGUILANG"]--></label></div> 
  15.   <select id="languageblock_changelang" class="pn-text" name="newlang" onchange="top.location.href=this.options[this.selectedIndex].value"> 
  16.   <!--[section name=languages loop=$languages.lang]--> 
  17.   <!--[if $languages.lang[languages].code neq 'deu']--> 
  18.     <!--[if $languages.lang[languages].code eq $currentlanguage]--> 
  19.       <option value="<!--[pngetbaseurl]-->index.php?newlang=<!--[$languages.lang[languages].code|pnvarprepfordisplay]-->" selected="selected"><!--[$languages.lang[languages].name|pnvarprepfordisplay]--></option> 
  20.     <!--[else]--> 
  21.       <option value="<!--[pngetbaseurl]-->index.php?newlang=<!--[$languages.lang[languages].code|pnvarprepfordisplay]-->"><!--[$languages.lang[languages].name|pnvarprepfordisplay]--></option> 
  22.   <!--[/if]--> 
  23.     <!--[/if]--> 
  24.   <!--[/section]--> 
  25.   </select> 
  26. </div> 
  27. </form> 
  28. <!--[else]--> 
  29.   <div style="text-align:center"><!--[pnml name="_SELECTGUILANG"]--></div> 
  30.   <ul> 
  31.   <!--[section name=languages loop=$languages.lang]--> 
  32.   <!--[if $languages.lang[languages].code neq 'deu']--> 
  33.     <li><a href="<!--[pngetbaseurl]-->index.php?newlang=<!--[$languages.lang[languages].code|pnvarprepfordisplay]-->"><!--[$languages.lang[languages].name|pnvarprepfordisplay]--></a></li> 
  34.   <!--[/if]--> 
  35.   <!--[/section]--> 
  36.   </ul> 
  37. <!--[/if]--> 


J'ai mis la partie en 3x car il y a 3 types (avec drapeaux, sans et je sais plus quoi !)


Gilles  ><>°
Données personnelles Accueil

Post 
Bien sûr ! C'était pourtant simple mais je n'y ai pas pensé : il suffit de neutraliser dans le bloc de sélecteur de langue.

Je reprendrais donc l'idée le moment venu, mais en l'adaptant probablement. En fait, les futures langues doivent être ouvertes non pas "au public" mais à un public : les localisateurs (!). J'aurais donc probablement 3 groupes d'utilisateurs (pour commencer) : admin, localadmin, users. (En fait il y en aura plus). Et je filtrerais, les langues "ouvertes au public" en fonction aussi du groupe de l'utilisateur. Ca doit bien être possible. Reste à trouver comment. Mais rien ne presse. J'ai d'autres trucs à faire avant.

laurent
Données personnelles

Post 
J'ai une réponse à :

Citation :
le slogan ... il est naturellement dans la langue maternelle, non ? Mais je n'ai pas trouvé l'astuce pour avoir autant de slogan que de langues. Comment contourner ? (création d'une variable dans le thème ?)


Il suffit de créer une constante dans les fichiers langue du thème (theme\nomdutheme\lang\fra\global.php) :

  1. define('_MONACCROCHE', 'Le slogan en français'); 


et de remplacer la balise smarty <!--[slogan]--> par un simple :

  1. <!--[pnml name="_MONACCROCHE'"]--> 


C'est tout de même pas sorcier la pn.8 icon_wink Même un débutant y arrive.

Laurent

PS : une bizarrerie : pourquoi les fichiers de constantes dans \lang ou \pnlang ouvre-t-il avec une balise php mais sans la balise fermante correspondante ?
Données personnelles

Post 
Citation :

PS : une bizarrerie : pourquoi les fichiers de constantes dans \lang ou \pnlang ouvre-t-il avec une balise php mais sans la balise fermante correspondante ?

C'est une petite astuce pour accélérer un peu le temps de chargement :)

++


Gilles  ><>°
Données personnelles Accueil
Post 
Encore une réponse en 3 étapes ... à la question du titre de bloc multilingue.

1. Dans votre dans \theme\montheme\templates, créer un dossier "blocks" et créer un fichier mesBlocks.htm contenant :

  1. <div class="block-<!--[$bkey]--> block-<!--[$bid]-->"> 
  2.     <!--[if $title neq '']--> 
  3.     <h4><!--[pnml name=$title]--></h4> 
  4.     <!--[/if]--> 
  5.     <!--[$content]--> 
  6. </div> 


(nota : dans l'original, le <!--[pnml name=$title]--> était <!--[$title]-->.

2. dans \theme\montheme\template\config, ajouter aux fichiers [module].ini (ex:master.ini, home.ini, admin.ini)

  1. [ blockpositions ] 
  2. left = mesBlocks.htm 


si les blocs sont positionnés à gauche, dans le gabarit général (master.htm, ...)

3. dans votre le fichier de constantes (\theme\montheme\lang\xxx\global.php, ajouter une constante correspondant très exactement au nom du bloc. Si le bloc a été crée sous le nom "Who's online" (par exemple) :

  1. define('Who\'s online', 'Membres en ligne'); 



Et le truc extraordinaire (en plus) est que si les constantes ne sont pas définis dans le fichier langue (3.) (parce que le nom du block est valable pour toutes les langues), alors le nom du block est affiché correctement.

Laurent

PS : Au risque de me répéter, la .8 est vraiment super top sur ce volet de personnalisation. Un grand merci aux développeurs. La personnalisation est (presque) un jeu d'enfant.

modifié par : laurenth, 05 Fév 2008 - 07:53
Données personnelles