coppermine-gallery.com/forum

Support => Français (French) => Language Specific Support => cpg1.4.x Français (French) => Topic started by: nounours on March 06, 2007, 12:06:12 PM

Title: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 06, 2007, 12:06:12 PM
bonjour,

suite a ma demande pour incorporer une nouvelle page:
http://forum.coppermine-gallery.net/index.php?topic=41880.0

comment faire pour appeler la page anglaise quand le suffer est anglais la page allemande quand le surfer est allemand ect...... car j'ai eu beau parcourir le forum je n'ai trouvé aucune explication pour mettre les diverses traductions :(

merci

nounours
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: Pascal YAP on March 06, 2007, 12:29:07 PM
Bonjour,

Coppermine fait ça tout seul, du moins les navigateurs qui consultent la Galerie configurée en UTF-8 (codage universel)

PYAP
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 06, 2007, 01:10:55 PM
bonjour PAYP

je me suis peut être mal expliqué :(

il ni a que le menu qui est traduit mais par exemple les commentaires pour une photo (que l'on écrit nous même) ne se traduisent pas il faut donc le faire soit même, mais aucune explication :(
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 06, 2007, 01:56:50 PM
il faut faire une page avec une condition du type
if (userlang="french"){
         include (monfichierfrançais.php);
}

etc... avec les autres langues
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 12, 2007, 10:55:28 AM
j'ai intégré les 2 codes de cette façon:
fichier bio.php
Quote
<?php
define('IN_COPPERMINE', true);
require('include/init.inc.php');
pageheader('Your page title goes here');
// your actual page content starts here
if (userlang=="french"){
         include('french.php');
}
// your actual page content ends here
pagefooter();
ob_end_flush();
?>

fichier french.php
Quote
    starttable("100%", 'Biographie', 1);
    ?>
    <tr>
        <td class="tableb" valign="top" align="left">
              mon texte
         </td>
    </tr>
    <?php
    endtable();


mais malheureusement rien ne s'affiche même pas un message d'erreur :(
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 12, 2007, 11:39:36 AM
C'est certainement du au fait que dans la portion de code que j'ai donnée, la variable userlang n'est pas définie, il faut regarder comment elle s'appelle exactement dans coppermine (on peut le trouver en regardant la sortie de l'écran de débuggage) et ne pas oublier de passer en GLOBAL la variable afin qu'elle soit prise en compte
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 12, 2007, 11:57:41 AM
dans les info de debogage j'ai
Quote
[lang] => french
donc si j'ai bien compris la variable c'est lang, ;D mais qu'entend tu par "passer en GLOBAL la variable" ???
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 12, 2007, 01:19:45 PM
Alors, la variable est $USER qui est un tableau incluant les éléments concernant le visiteur
il faut donc utiliser la valeur $USER['lang'] qui définira la langue de l'utilisateur. La variable doit être déclarée comme GLOBAL pour être prise en compte
ton code deviendra donc:
<?php
define
('IN_COPPERMINE'true);
require(
'include/init.inc.php');
GLOBAL 
$USER;
pageheader('Your page title goes here');
// your actual page content starts here
if ($USER['lang']=="french"){
         include(
'french.php');
}
// your actual page content ends here
pagefooter();
ob_end_flush();
?>

essaye maintenant avec ça pour voir ce que ça donne
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 12, 2007, 02:07:47 PM
malheureusement message d'erreur :(

Fatal error: Cannot redeclare cpggetmicrotime() (previously declared in /www/toto/include/init.inc.php:35) in /www/toto/include/init.inc.php on line 37
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 12, 2007, 03:29:32 PM
essaye d'enlever require('include/init.inc.php');
de ton code
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 13, 2007, 05:49:36 AM
j'avais déjà essayé  ;) mais ensuite il ne reconnait plus:

pageheader('Your page title goes here') et

pagefooter();
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 13, 2007, 07:19:48 AM
comment est appelée la page en question ? est ce qu'elle n'est pas déja inclu edans une page coppermine
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 13, 2007, 08:23:44 AM
la page bio est appelée de cette facon:
Quote
    <li class="meta">
            <h2>Documentations</h2>
            <ul>
               <li><a href="bio.php" title="Biographie">Biographie</a></li>
            </ul>
         </li>

et la page french.php n'est appelée que par la page bio.php

si je fais dans la page bio.php
Quote
GLOBAL $USER;
pageheader('Your page title goes here');
// your actual page content starts here
if ($USER['lang']=="french"){
    starttable("100%", 'Biographie', 1);
    ?>
texte
    endtable();
}
if ($USER['lang']=="english"){
    starttable("100%", 'Biography', 1);
    ?>
texte
    <?php
    endtable();
}
cela marche tres bien :) mais je préfererais si c'est possible mettre un fichier par langue car pour la maintenance cela est plus pratique, mais j'ai bien l'impression que cela ne sera pas possible :(
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 13, 2007, 08:39:14 AM
ce que tu peux faire c'est une variable langage du type
$lang_biographie=array(
'french' => 'ton texte français',
'english' => 'your english text',
'german' => 'Dein Deutches Tetx',
);

que tu mets dans  un fichier lang_bio.php que tu place à la racine et dans ton fichier bio.php tu fais
GLOBAL $USER;
include (lang_bio.php);
pageheader('Your page title goes here');
// your actual page content starts here
if ($USER['lang']=="french"){
    starttable("100%", 'Biographie', 1);
   echo $lang_biographie['french'];
    endtable();
}
if ($USER['lang']=="english"){
    starttable("100%", 'Biography', 1);
    echo $lang_biographie['english'];
    endtable();
}
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 13, 2007, 10:24:28 AM
c'est presque bon   :D

j'affiche bien tout, mais malheureusement le texte ne s'affiche pas dans:

Quote
starttable("100%", 'Biographie', 1);

mais au dessus :(
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 13, 2007, 10:45:47 AM
ajoute des balises <tr> et<td> comme ça:
Quoteif ($USER['lang']=="french"){
    starttable("100%", 'Biographie', 1);
<tr><td>
   echo $lang_biographie['french'];
</td></tr>
    endtable();
}
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 13, 2007, 11:14:20 AM
  :o
c'est bon après quelques modifs  :)

merci frantz :)

si tu veux je te fais un recapitulatif de tout bio.php, lang_bio.php et la partie css pour formater les lignes cela pourra servir à tout le monde :)
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 13, 2007, 11:24:58 AM
Pas de problème, ta contribution est la bienvenue
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 13, 2007, 11:51:48 AM
ceci permet de rajouter une page de texte dans toutes les langues choisies

je suis partie du code provenant de la page : http://forum.coppermine-gallery.net/index.php?topic=21000.0
mais qui ne fonctionne que pour une langue :(

il y a un fichier à modifier qui est style_cpg.css pour vous permettre de formater vos lignes
rajouter dedans:
Quote
.tableb h1 {
   color:#000;
   margin:auto;
   text-align:center;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 10px;
}
.tableb h2 {
   color:#000;
   text-align:left;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 1px;
   font-size: 1em;
   font-weight:   lighter;
}


on cré le fichier (pour moi) bio.php
Quote
<?php
define('IN_COPPERMINE', true);
require('include/init.inc.php');
GLOBAL $USER;
pageheader('Your page title goes here');
// your actual page content starts here
include ('lang_bio.php');
if ($USER['lang']=="french"){
    starttable("100%", '', 1);
?>
   <tr>
   <td class="tableb">

<?
   echo $lang_biographie['french'];
?>
   </td>
   </tr>
<?
    endtable();
}if ($USER['lang']=="english"){
    starttable("100%", '', 1);
?>
   <tr>
   <td class="tableb">

<?
    echo $lang_biographie['english'];
?>
   </td>
   </tr>
<?
    endtable();
}
//ect pour toutes les langues

// your actual page content ends here
pagefooter();
ob_end_flush();
?>

on cré le fichier (pour moi) lang_bio.php
Quote
<?php
$lang_biographie=array(

'french' =>

'
<h1>titre</h1>
<h2>paragraphe 1</h2>
<h2>paragraphe 2</h2>
',

'english' =>
'
<h1>titre anglais</h1>
<h2>paragraphe anglais 1</h2>
<h2>paragraphe anglais 2</h2>
',

);
?>

si vous utilisez des apostrophes" ' " dans vos paragraphes n'oublier pas de l'écrire de cette manière " \' "
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: François Keller on March 13, 2007, 11:59:36 AM
Il devrait  même être possible de simplifier le code de bio.php en faisant (a tester):
<?php
define
('IN_COPPERMINE'true);
require(
'include/init.inc.php');
GLOBAL 
$USER;
pageheader('Your page title goes here');
// your actual page content starts here
include ('lang_bio.php');
$langbio=$USER['lang'];

    
starttable("100%"''1);

   echo 
"<tr><td class='tableb'>"$lang_biographie[$langbio].'</td></tr>';

    
endtable();
?>
Title: Re: incorporer une nouvelle page dans toutes les langues
Post by: nounours on March 13, 2007, 12:11:56 PM
oui tout à fait mais ne connaissant pas le php .... :)

pour ceux qui font du copier coller je donne le code exacte

Quote
<?php
define('IN_COPPERMINE', true);
require('include/init.inc.php');
GLOBAL $USER;
pageheader('Your page title goes here');
// your actual page content starts here
include ('lang_bio.php');
$langbio=$USER['lang'];

    starttable("100%", '', 1);

   echo "<tr><td class='tableb'>". $lang_biographie[$langbio].'</td></tr>';

    endtable();
// your actual page content ends here
pagefooter();
ob_end_flush();
?>