incorporer une nouvelle page dans toutes les langues incorporer une nouvelle page dans toutes les langues
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

incorporer une nouvelle page dans toutes les langues

Started by nounours, March 06, 2007, 12:06:12 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

nounours

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

Pascal YAP

Bonjour,

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

PYAP

nounours

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 :(

François Keller

il faut faire une page avec une condition du type
if (userlang="french"){
         include (monfichierfrançais.php);
}

etc... avec les autres langues
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

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 :(

François Keller

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
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

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" ???

François Keller

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
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

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

François Keller

essaye d'enlever require('include/init.inc.php');
de ton code
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

j'avais déjà essayé  ;) mais ensuite il ne reconnait plus:

pageheader('Your page title goes here') et

pagefooter();

François Keller

comment est appelée la page en question ? est ce qu'elle n'est pas déja inclu edans une page coppermine
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

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 :(

François Keller

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();
}
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

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 :(

François Keller

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();
}
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

  :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 :)

François Keller

Pas de problème, ta contribution est la bienvenue
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

nounours

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 " \' "

François Keller

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();
?>
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog