Coppermine Photo Gallery v1.5.x: Documentation and Manual

Table of Contents

Guide de Traduction

On recherche des Traducteurs

Une des fonctions les plus imporante de Coppermine est le fait que le contenu de chaque page puisse être affiché dans différentes langues, avec la traduction contenue dans un fichier (qui se trouve dans le répertoire lang de Coppermine ). Si vous utilisez Coppermine et que vous souhaitez donner quelque chose en retour à la communauté, pourquoi ne pas commencer la traduction de Coppermine pour votre langue ?

Voici les règles et la marche à suivre pur vous aider à commencer.

Pourquoi traduire?

Pour quelles langues a t'oon besoin d'une traduction?

Il y a déjà beaucoup de langues supportées par Coppermine; pour le nombre de fichiers de langues pour Coppermine augmente, il y a peut être des traductions s qui ne sont pas inclues dans le paquet que vous avez téléchargé. Avant de commencer à travailler sur une traduction, regardez ici:

Qui peut faire une traduction?

Toute personne ayant une bonne connaissance d'une langue le peut, mais, lorsqu'une nouvelle version de Coppermine est en préparation pour une mise à disposition, l'équipe de développement contacte le traducteur de la version précédente et lui demande s'il veut bien faire la traduction de la nouvelle version. Ces traducteurs "originels" doivent faire savoir à l'équipe de développement si ils veullent et sont en mesure de fair cette traduction (avant le début du travail sur les traductions). Les langues qui avaient été précédemment asignées à des traducteurs ayant répondu qu'ils ne pouvaient pas faire cette "nouvelle" traduction ou aux traducteurs qui n'ont pas répondu, après un temps donné, sont placées dans une liste dans le sujet du forum "[Help wanted]: Translations for CPG1.5.x". Les personnes interressées par la traduction d'une de ces langues "orphalines" doit répondre dans ce sujet et prendre la traduction à son compte.

Si vous parlez couramment une langue qui n'a pas encore été traduite et n'a pas été attribué à quelqu'un, prennez là à votre compte.

Encodage des caractères

Beaucoup de langues ont des alphabets spéciaux différent de l'alphabet Latin, ou utilisent des caractères particuliers(comme ä ß à á â ã å æ ç þ ð ø). Beaucoup de ces caractères spéciaux ont ce que l'on appelle des equivalents html (Par exemple ä pour ä), mais vous ne devez pas utiliser ces équivalents html pour les caractères spécifiques à votre langue lors de la traduction, parce que vous risuqez d'avoir des effets indésirables lors de l'utilisation du JavaScript!

Coppermine ajoute une balise META jeux de caractères à l'en-tête de chaque fichier, afin d'indiquer au navigateur comment faire pour interpréter les caractères spéciaux. Vous devez ajouter le nom du jeu de caractères que vous utilisez pour votre traduction au tout début du fichier de langue, par exemple

$lang_charset = 'iso-8859-1';
Vous pouvez trouver une liste de jeux de caractères à l'adresse http://www.w3.org/International/O-charset-lang.html. Dans la mesure du possible, vous ne devriez pas choisir un jeu de caractères propre à une plate-forme (par exemple, windows-1252 ), mais multi plates-formes (par exemple iso-8859-1 ).

Vous aurez remarqué que les fichiers langues de Coppermine sont encodés en utf-8. Vous n'avez pas à vous préoccuper de la création de la version utf-8 si vous ne savez pas comment faire - L'équipe de développement s'en occupera. Cependant, votre fichier langue qui sera intégré au pack sera encodé en utf-8. Néanmoins, si vous voulez créer un fichier langue parfait, créez le en utf-8 dès le départ.

Editeurs & Outils

De fait, vous pouvez utiliser n'importe quel éditeur de texte avec lequel vous êtes à l'aise et qui vous permets de sauvegarder votre texte au format ANSI - Windows Notepad (appelé "Editor" dans Windows 2000/XP) le fait tout à fait bien.

Bien sur vous pouvez utiliser d'autres éditeurs de texte plus puissants et utlisiser (si vous le pouvez) l'encodage utf-8.

Pour savoir si votre éditeur de texte favori peut gérer correctement l'encodage nécessaire, commencez par traduite uniquement certaines lignes (de préférence contenant des caractères spéciaux de votres langue), sauvegardez le fichier de traduction et fermez le. Puis essayez de l'ouvrir avec une éditeur de texte simple sur votre ordinateur (par exemple Notepad) - Si tout s'affiche correctement, l'éditeur que vous avez choisi pour faire la traduction fonctionne correctement.

Outils recommandés: pour voir ce qui à changé entre le fichier langue de cpg1.4.x et cpg1.5.x, nous recommandons l'utilisation d'un comparateur de fichiers qui peut mettre en évidence les différences dans les deux fichiers. Les utilisateurs de Windows peuvent opter pour le formidable visualisateur de différences dans les fichiers: WinMerge (disponible comme freeware; 1.95 MB, avec des fichiers langues disponibles): Vous pouvez ainsi ouvrir les fichiers avec cet outil (352 des 1152 lignes ont été changées ou ajoutées). Chaque ligne nouvelle/changée est commentée à la fin comme ceci: //cpg1.5.x.
Si vous avez besoin d'un puissant éditeur gratuit pour Windows, l'équipe de développement recommande l'utilisation de Notepad++.

Traduction complète uniquement

Jusqu'à la version 1.2 de Coppermine nous ne transmettions que les lignes qui avaient changées dans les fichiers langue des versions précédentes aux traducteurs. Si cela semble une solution simple et facile, nous avons vite découvert que cette méthode avait de gros inconvénients:

Pour ces raisons, nous livrons aux traducteurs le fichier de langue anglaise le plus récent avc tous les fichiers langues existants de la précédente version comme références. En plus nous mettons à disposition ce guide que vous êtes en train de lire, en lui demandant (le tracucteur: vous dans ce cas particulier) de traduire le fichier dans sa totalité. Bien entendu, vous pouvez (et y êtes encouragés) à regarder dans le fichier langue de la précédente version, et adopter (ou adapter)le contenu qui existait déjà dans l'ancienne version si c'est possible.

Pas à pas

Nous allons détailler ici les étapes pour la traduction d'un fichier langue de Coppermine:

  1. ouvrez english.php avec votre éditeur de texte
  2. sauvegarder immédiatement le fichier avec un nom différent dès l'ouverture (afin d'être sur de toujours avoie u fichier langue Anglais non modifié qui puisse être utilisé en référence) - Le nom de fichier du fichier langue va décider de la manière dont le nom de la langue va apparaitre dans la liste déroulante de Coppermine - utilisez le nom anglais (charactères latins) de votre langue comme nom de fichier, utilisez les minuscules pour le nom, sans espaces ni caractères spéciaux (sauf "-" and "_" et le point pour marquer l'extension. Si le nom de la langue n'est pas suffisament parlant par lui même, ajoutez une info avec un caractère de soulignement "_".
    Exemples: german.php, italian.php, greek.php, brazilian_portuguese.php
  3. Modifiez les infos du header (l'exemple de contenu est surligné):
    // info about translators and translated language
    $lang_translation_info = array(
    'lang_name_english' => 'French',Le nom de votre langue en Anglais
    'lang_name_native' => 'Francais',Le nom de votre langue dans votre langue maternelle
    'lang_country_code' => 'fr',Le code du pays représentant votre langue. Si votre langue est parlée dans plusieurs pays, choisissez celui ou il y a le plus de monde relatif à votr elangue
    'trans_name'=> 'Frantz',Voter Nom (ou plutôt le nom que vous souhaitez voir apparaitre dans la page des crédits)
    'trans_email' => '',Si vous le souhaitez, votre adresse de courriel, qui apparaitra dans la page des crédits. Vous pouvez aussi laisser vide
    'trans_website' => 'http://francois.photo.free.fr/',Votre site inernet (apparaitra dans la page de crédits). Si vous n'en indiquez pas, votre page de profil sera affichée à la place
    'trans_date' => '2004-03-17',La date de la traduction/la date du dernier changement dans le fichier langue
    );
    Remplissez avec les données que vous souhaitez voir apparaitre dans la page de crédits comme indiqué dans les exemples ci-dessus.
  4. Le fichier langue de Coppermine est utiliser pour remplacer dynamiquement des variables/tableaux de variables php avec leur contenu correspondant. Il y a différentes façons dont ces tableaux de variables sont remplis - comme montré dans les exemples ci-dessous (les choses qui doivent être traduites sont surlignées):

    Traduisez l'ensemble du fichier langue comme décrit plus haut - vous trouverez comment faire en un rien de temps, même si vous n'êtes pas un codeur PHP chevronné.

  5. Testez votre traduction: téléchargez votre fichier langue sur votre serveur et navigez dans votre galerie, en ajoutant le paramètre lang=votre_nom_de_langue à l'URL (par exemple: http://votresite.com/coppermine/?lang=french). Assurez vous de tester le plus de choses possiblesde votre fichier, en particulier la création, le rennomage et l'effacement d'utilisateurs, de catégories, d'albums, d'images et de commentaires.
  6. Test extérieur: si vous le pouvez, faites tester votre traduction par quelq'un d'autre (de préférence non connaisseur en informatique). Vous risquez d'être surpris par ce qu'il découvrira...
  7. Postez votre fichier langue compressé dans une archive dans ce sujet "[Help wanted]: Translations for CPG1.5.x".
    Vous pouvez attacher votre fichier comme fichier texte ou le placer dans une archive .zip, mais s'il vous plait, n'utilisez pas de formats de compression exotiques comme .rar, .ace, etc.

Problèmes particuliers

Echappementd des guilemets simples

Comme vous l'avez certainement remarqué, toutes les chaines à traduire se trouvent en tres guillemets simples ou apostrophe - c'est la bonne manière de faire en PHP. Toutefois, si vous voulez que votre traduction contienne des guillemets simples ou des apostrophes, vous devez "signaler" à PHP que cette apostrophe (guillemet simple) contenu dans une chaîne de caractères fait partie intégrante de la chaîne et pas le signe de fin de cette chaîne. Pour cela, on utilise le caratère anti-slash (\) pour signaler à PHP que le caractère qui suit immédiatement est un caractère de "chaîne" et non une partie du code PHP. Cela s'appelle échapper un caractère en language de programmation. PHP utilise l'anti-slash (\) pour écgapper les caractères, c'est pourquoi il faut faire attention à ne pas faire ça:

array('Adresse cible pour le lien 'Voir plus de photos' dans les e-cartes', 'ecards_more_pic_target', 0),

mais de faire ceci à la place:

array('Adresse cible pour le lien \'Voir plus de photos\' dans les e-cartes', 'ecards_more_pic_target', 0),

Guillements simples en JavaScript (//js-alert)

Les choses sont un peu plus compliquées si la sortie n'utilise pas uniquement de l'HTML simple, mais du JavaScript. Les guillemets simples qui apparaissent dans la sortie HTML output du fichier langue doivent eux aussi être échappés dans chaque routine JavaScript routine avec un anti-slash. C'est pourquoi les lignes particulières utilisées dans le fichier langue et qui doivent être utilisées en JavaScript dans les sorties de Coppermine ont été signalées avec un commentaire en fin de ligne qui indique: //js-alert. Si vous devez avoir un guillemet simple (apostrophe) dans la sortie finale, vous devrez ajouter 3 anti-slashs avant le guillemet simple, comme dans cet exemple:

'no_change' => 'Vous n\\\'avez effectué aucun changement !', //js-alert

Emplacements avec " % "

Vous aurez aussi remarqué qu'a plusieurs endroits du fichier langue, il y a des textes qui contiennent le signe pourcentage (%), suivi immédiatement par une lettre. Ces combinaisons ne doivent pas être traduites ou séparées - elles sont là intentionnellement et sont utilisées par la suite comme argument spécifique, ou appelées, comme variable de remplacement/ ou de formatage à l'emplacement ou elles sont définies.

'rating' => '(current rating : %s / 5 with %s votes)',

Version du fichier langue

Découverte d'une faute de frappe/d'une erreur de traduction?

Il se peut qu'une traduction dans votre langue existe, mais vous n'êtes pas satisfait de celle-ci: s'il y a des bugs(errurs de traduction etc...), commencez par vérifier la page de téléchargement pour voir si une version corrigée (mise à jour) n'a pas déjà été soumise. Si ce n'est pas le cas, rapportez vos trouvailles sur le forum accompagnées de vos suggestions de corrections, comme ceci:
dans lang/votrelangue.php cherchez

  'une_definition' => 'bar foo',
et remplacez par
  'une_definition' => 'foo bar',

Une autre traduction ?

Chacun qui connait une langue sait qu'il n'y a pas "qu'une seule et unique traduction" - il y a parfois plusieurs manières de traduire une expression, ou toute une phrase. Il se peut que vous trouviez que la version existante de votre langue ne convient pas à vos aspirations; peut être parce que le traducteur avait en tête une autre cible d'audience que vous, ou parce que vous souhaitez avoir une traduction plus formelle (dans certaines langues, il y a des différences importantes entre le language formel et le language courrant).
Merci de ne pas agresser le traducteur sur le forum, mais proposez une traduction alternative avec le détail de ce que vous proposez comme changements et quelle cible vous voullez atteindre avec cette nouvelle version.

Travail en constante progression

Coppermine, comme tout le contenu sur la toile, est un travail en constante évolution. Votre copie du fichier english.php (qui doit toujours être utiliser comme fichier de référence pour votre traduction) est peut être dépassé. C'est la raison pour laquelle il est indispenssable de toujours vous réferrer a la Section des langues sur le SVN afin d'être sur de toujours avoir le plus récent fichier de langue anglaise (version traducteur) devant vous avant de commencer votre traduction (et bien sur la version la plus récente de ce document, parce qu'il peut ya avoir de nouvelles choses qui y ont été ajoutées depuis la publication initiale de celui-ci). Rappel: si une option/chaîne de remplacement n'est pas traduite, elle ne sera pas visible dans votre langue.

Traduction initiale pour publication

Lors de la préparation de la publication d'une version, l'équipe de développement gèle le travail de développement afin de permettre aux traducteurs de soumettre leurs traductions. Sivous souhaitez traduire, faite sle le plus rapidement possible et renvoyez votre traduction immédiatement pour être sur que la nouvelle version de Coppermine sera publiée avec votre fichier langue.

Traduction de la documentation

Comme il est dit plus haut, toute contribution est la bienvenue. Bien que ce soit déjà un grand travail de faire une traduction d'un fichier langue de Copermine, c'est une tache encore bien plus énorme de faire uen traduction complète de la documentation de Coppermine. C'est la raison pour laquelle la documentation qui était un seul et unique document (une énorme page HTML) a été coupée en fichiers séparés à partir de cpg1.5.x.

Pour le bien de la communauté, il vous est aussi demandé de traduire une partie de la documentation (et pourquoi pas la totalité). Pour cela, faites la même chose que ce qui est suggéré plus haut: assurez vous que la traduction n'existe pas encore en vérifiant le dépot SVN et en regardant si il n'y a pas un sujet sur le forum qui traite de la traduction dans votre langue. Si ce n'est pas le cas, allez-y pour votre traduction.

Etapes pour la traduction de la documentation dans votre langue