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
Bonjour,
Coppermine fait ça tout seul, du moins les navigateurs qui consultent la Galerie configurée en UTF-8 (codage universel)
PYAP
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 :(
il faut faire une page avec une condition du type
if (userlang="french"){
include (monfichierfrançais.php);
}
etc... avec les autres langues
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 :(
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
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" ???
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
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
essaye d'enlever require('include/init.inc.php');
de ton code
j'avais déjà essayé ;) mais ensuite il ne reconnait plus:
pageheader('Your page title goes here') et
pagefooter();
comment est appelée la page en question ? est ce qu'elle n'est pas déja inclu edans une page coppermine
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 :(
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();
}
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 :(
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();
}
: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 :)
Pas de problème, ta contribution est la bienvenue
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 " \' "
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();
?>
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();
?>