Difference between revisions of "Translating RawTherapee/fr"

From RawPedia
Jump to: navigation, search
(updating)
 
m (Balisage)
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
== Introduction ==
 
== Introduction ==
  
L'interface graphique utilisateur de RawTherapee contient du texte en de nombreux endroits. Dans le but d'autoriser l'affichage de ce texte en langues variées, le code ne contient que des clés et chaque fois qu'un texte doit être affiché, le code recherche le texte correspondant à cette clé dans un fichier texte de traduction [https://en.wikipedia.org/wiki/Attribute–value_pair key--value pair] correspondant à la langue sélectionnée par l'utilisateur (ou auto-détectée par RawTherapee d'après le paramétrage). Lorsqu'une clé est trouvée dans le fichier de traduction, elle est remplacée par sa valeur. Si elle n'est ps trouvée, la valeur correspondant à l'anglais est utilisée en saufconduit.  
+
L'interface graphique utilisateur de RawTherapee contient du texte en de nombreux endroits. Dans le but d'autoriser l'affichage de ce texte en langues variées, le code ne contient que des clés et chaque fois qu'un texte doit être affiché, le code recherche le texte correspondant à cette clé dans un fichier texte de traduction [https://en.wikipedia.org/wiki/Attribute–value_pair paire clé-valeur] correspondant à la langue sélectionnée par l'utilisateur (ou auto-détectée par RawTherapee d'après le paramétrage). Lorsqu'une clé est trouvée dans le fichier de traduction, elle est remplacée par la valeur correspondante. Si elle n'est pas trouvée, la valeur correspondant à l'anglais est utilisée en saufconduit.  
 
 
 
 
  
 +
Le fichier qui contient les paires clé-valeur de référence est appelé [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/default <code>default</code>]. Il utilise l'anglais américain. Toutes les traductions sont basées sur ce fichier. Chaque fois qu'une clé n'est pas trouvée dans une traduction, c'est la clé de ce fichier qui est utilisée.
  
 +
Les fichiers de traduction sont placés dans [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/ <code>/rtdata/languages</code>].
 
   
 
   
 +
De temps à autres nous exécutons le script <code>/tools/generateTranslationDiffs</code> qui met à jour chaque fichier de traduction avec les nouvelles clés du fichier <code>default</code>. Si une nouvelle paire clé-valeur est ajoutée à <code>default</code>, le script copie cette paire dans le fichier de traduction si elle n'existe pas, et puisque la valeur a ce niveau est en anglais, il préfixe cette ligne avec un point d’exclamation. Lorsque RawTherapee recherche une chaîne de caractères traduite, il ignore les lignes préfixées avec un point d'interrogation. Lorsque quelqu'un traduit cette valeur, il doit enlever ce point d'interrogation afin qu'elle ne soit plus ignorée.
  
The file which contains the reference key--value pairs is called [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/default <code>default</code>]. It uses American English. All translations are based on this file. Whenever a key is not found in a translation, the value from this file is used.
+
Un inconvénient du système est que si la valeur d'une clé dans le fichier <code>default</code> est modifiée et cette entrée à déjà été traduite, alors la traduction devient obsolète et cette situation n'est pas repérée. Pour cette raison, les personnes assurant la maintenance d'une traduction doit garder un œil sur les modifications apportées aux valeurs existantes dans  <code>default</code> et mettre à jour leurs traductions. Une façon de garder un oeil sur ces modifications est de vérifier [https://github.com/Beep6581/RawTherapee/commits/dev/rtdata/languages/default les commits dans git qui affectent ce fichier].
 
 
Translation files reside in [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/ <code>/rtdata/languages</code>]
 
  
Every once in a while we run the <code>/tools/generateTranslationDiffs</code> script which updates each translation file with new keys from the <code>default</code> file. If a new key--value pair is added to <code>default</code>, the script copies this pair into the translation file if it did not exist, and since the value at that point is in English it prefixes that line with an exclamation mark - when RawTherapee looks for a translated string, it ignores lines prefixed with an exclamation mark. When someone translates that value, they must remove the exclamation mark so that it stops being ignored.
+
Utilisons en exemple l'étiquette "Compensation d'exposition" :
 
+
* La clé utilisée par le code est <code>TP_EXPOSURE_EXPCOMP</code>.
A shortcoming of the system is that if a key's value in the <code>default</code> file changes and that entry has already been translated, then the translation becomes outdated and this fact is not marked in any way. For this reason people maintaining a translation need to keep an eye on changes to existing values in <code>default</code> and update their translation accordingly. One way of keeping an eye on changes to <code>default</code> is by checking [https://github.com/Beep6581/RawTherapee/commits/dev/rtdata/languages/default git commits which affect that file].
+
* Le fichier <code>default</code> contient la paire clé-valeur :
 
 
Using the "Exposure compensation" label as an example:
 
* The key used in the code is <code>TP_EXPOSURE_EXPCOMP</code>.
 
* The <code>default</code> file contains the key--value pair:
 
 
*: <code>TP_EXPOSURE_EXPCOMP;Exposure compensation</code>
 
*: <code>TP_EXPOSURE_EXPCOMP;Exposure compensation</code>
* The <code>English (US)</code> file contains the same pair, but prefixed with an exclamation mark:
+
* Le fichier <code>English (US)</code> contient la même paire, mais préfixée par un point d'exclamation :
 
*: <code>!TP_EXPOSURE_EXPCOMP;Exposure compensation</code>
 
*: <code>!TP_EXPOSURE_EXPCOMP;Exposure compensation</code>
* Translations should contain the key with the value translated and the exclamation mark removed, e.g.:
+
* Les traductions devraient contenir la clé avec la valeur traduite et le point d'exclamation enlevé, par ex :
*: <code>TP_EXPOSURE_EXPCOMP;Lorem ipsum</code>
+
*: <code>TP_EXPOSURE_EXPCOMP;Compensation d'exposition</code>
  
== How To ==
+
== Mode opératoire ==
  
# Check whether there is an existing translation file of the language into which you're interested in translating by looking into [https://github.com/Beep6581/RawTherapee/tree/dev/rtdata/languages <code>/rtdata/languages</code>]
+
# Vérifier s'il existe un fichier de traduction pour la langue dans laquelle vous souhaitez traduire en regardant dans [https://github.com/Beep6581/RawTherapee/tree/dev/rtdata/languages <code>/rtdata/languages</code>]
#* If one does not exist, download the [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/English%20(US) <code>English (US)</code>] file (right-click the "Raw" button and "Save link as"), then rename it into your language - let's call it <code>Inuktitut</code> for the purpose of this article.
+
#* S'il n'en existe pas, télécharger le fichier [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/English%20(US) <code>English (US)</code>] (cliquer droit sur le bouton "Raw" puis sur "Enregistrer la cible du lien sous..."), puis le renommer dans votre langue, appelons le <code>Inuktitut</code> pour la suite de l'article.
#* If there is one, download it (right-click the "Raw" button and "Save link as").
+
#* S'il en existe un, le télécharger (cliquer droit sur le bouton "Raw" puis sur "Enregistrer la cible du lien sous...").
# Translate new strings.
+
# Traduire de nouvelles chaînes
#: Open <code>Inuktitut</code> in a modern text editor (Windows users: do not use "Notepad", get [https://notepad-plus-plus.org/ Notepad++] instead). All the strings that need translating are on lines that begin with an exclamation mark, you will find them at the end of the file if you're updating an existing translation. Translate them, and remove the exclamation mark prefix from each translated line.
+
#: Ouvrir <code>Inuktitut</code> dans un éditeur de texte moderne (utilisateurs de Windows : ne pas utiliser "Notepad", prenez plutôt [https://notepad-plus-plus.org/ Notepad++]). Toutes les chaînes à traduire sont celles qui sont sur une ligne commençant par un point d'exclamation, vous les trouverez à la fin du fichier si vous mettez une traduction existante à jour. Les traduire, et pour chaque chaîne traduite retirer le point d'exclamation en préfixe.  
#: As an example, you would translate
+
#: Par exemple, vous devez traduire
 
#: <code>!TP_EXPOSURE_EXPCOMP;Exposure compensation</code>
 
#: <code>!TP_EXPOSURE_EXPCOMP;Exposure compensation</code>
#: to
+
#: en
 
#: <code>TP_EXPOSURE_EXPCOMP;Lorem ipsum</code>
 
#: <code>TP_EXPOSURE_EXPCOMP;Lorem ipsum</code>
# Update existing strings
+
# Mise à jour des chaînes existantes
#: If your <code>Inuktitut</code> file has already been translated a long time ago, chances are that some of the translated parts are out of date. To update them, open the latest [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/default <code>default</code>] file in a window covering the right half of your screen, open <code>Inuktitut</code> in a window covering the left half of your screen, then go through each already-translated string in <code>Inuktitut</code>, compare it to the English string in <code>default</code>, and update the translation if it no longer matches the English string.
+
#: Si votre fichier <code>Inuktitut</code> a déjà été traduit il y a longtemps, il est probable que certaines parties traduites soient obsolètes. Pour les mettre à jour, ouvrir le dernier fichier [https://github.com/Beep6581/RawTherapee/blob/dev/rtdata/languages/default <code>default</code>] dans une fenêtre couvrant une moitié de l'écran, ouvrir <code>Inuktitut</code> dans une fenêtre couvrant l'autre moitié de l'écran, puis comparer chaque chaîne déjà traduite dans <code>Inuktitut</code> avec la chaîne en anglais dans <code>default</code>, et rafraîchir la traduction si elle ne convient plus à la chaîne anglaise.
# When done translating, open a [https://github.com/Beep6581/RawTherapee/issues/new new issue in GitHub] and attach your translation to it. Please do not create patch files of translations, just send us the whole translated file. We will then run it through the <code>/tools/generateTranslationDiffs</code> script which will sort the entries, add new keys, and delete ones which are no longer used. We will then commit it to the codebase.
+
# Une fois la traduction terminée, ouvrir une [https://github.com/Beep6581/RawTherapee/issues/new nouvelle publication dans GitHub] et y lier votre traduction. Veuillez ne pas créer de fichier patch des traductions, simplement envoyer la totalité du fichier traduit. Nous l'exécuterons alors via le script <code>/tools/generateTranslationDiffs</code> qui triera les entrées, ajoutera les nouvelles clés et effacera celles qui ne sont plus utiles. Nous la commiterons enfin dans la base.
# When you want to update your translation in the future, you must download the latest version of that file from the repository from [https://github.com/Beep6581/RawTherapee/tree/dev/rtdata/languages <code>/rtdata/languages</code>]
+
# Quand vous désirerez mettre à jour votre traduction dans le futur, vous devrez télécharger la dernière version de ce fichier depuis le dépôt via [https://github.com/Beep6581/RawTherapee/tree/dev/rtdata/languages <code>/rtdata/languages</code>]
 +
 
 +
== Balisage ==
 +
 
 +
Certaines lignes ont des éléments qui doivent apparaître en gras ou en italiques, ou ont des caractères qui doivent être écrits de façon particulière. Ceci est assuré grâce au [https://en.wikipedia.org/wiki/Markup_language balisage]. Cependant le balisage analytique est plus lent que le balisage en plein texte, aussi RawTherapee ne supporte le balisage que sur les clés dont on sait qu'elles l'exige. Cela signifie que si vous utilisez le balisage sur des clés qui ne le supportent pas, alors ces clés ne seront pas affichées correctement. Toujours respecter le style utilisé dans <code>default</code>. Si une clé dans <code>default</code> n'utilise pas le balisage, alors votre traduction ne la supportera jamais.
  
== Markup ==
+
Lorsque qu'une clé utilise le balisage, certains caractères doivent s'écrire en utilisant leur nom de [https://fr.wikipedia.org/wiki/Liste_des_entit%C3%A9s_caract%C3%A8re_de_XML_et_HTML référence de caractère HTML] :
  
Some lines have elements which should appear in bold or italics, or have characters which must be written in a special way. This is accomplished using [https://en.wikipedia.org/wiki/Markup_language markup]. However, parsing markup is slightly slower than parsing plain text, so RawTherapee only supports markup on keys which we know to require it. That means that if you use markup on keys which do not support it, then those keys will not display correctly. Always stick to the style used in <code>default</code>. If a key in <code>default</code> does not use markup then neither should your translation.
+
* Ecrire <code>&lt;</code> avec <code>&lt&#59;</code>
 +
* Ecrire <code>&gt;</code> avec <code>&gt&#59;</code>
 +
* Ecrire <code>&amp;</code> avec <code>&amp&#59;</code>
  
When a key uses markup, certain characters must be written using their [https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references HTML character entity reference] name:
+
Comment savoir que le balisage est nécessaire ? Regardez  <code>default</code>. Par exemple :
* Write <code>&lt;</code> using <code>&lt&#59;</code>
 
* Write <code>&gt;</code> using <code>&gt&#59;</code>
 
* Write <code>&amp;</code> using <code>&amp&#59;</code>
 
  
How to know when markup is needed? Look at <code>default</code>. For example:
+
* <code>HISTORY_MSG_251;B&amp&#59;W - Algorithm</code> utilise une balise pour afficher le caractère <code>&</code>, et votre traduction doit le faire aussi.
* <code>HISTORY_MSG_251;B&amp&#59;W - Algorithm</code> uses markup to display the <code>&</code> character, and so should your translation.
+
* <code>PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue</code> n'utilise pas de balise pour afficher le caractère <code>&</code>, et votre traduction ne doit pas non plus.
* <code>PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue</code> does not use markup to display the <code>&</code> character, and neither should your translation.
+
* <code>FILEBROWSER_EMPTYTRASHHINT;&lt;b&gt;Permanently&lt;/b&gt; delete all files in trash.</code> utilise une balise pour mettre le mot "Permanently" en gras lorsqu'il est affiché par RawTherapee, et votre traduction doit le faire aussi.
* <code>FILEBROWSER_EMPTYTRASHHINT;&lt;b&gt;Permanently&lt;/b&gt; delete all files in trash.</code> uses markup to make the word "Permanently" appear in bold when displayed in RawTherapee, and so should your translation.
 

Latest revision as of 14:46, 8 October 2019

Cet article explique comment vous pouvez aider à traduire l'interface de RawTherapee.

Introduction

L'interface graphique utilisateur de RawTherapee contient du texte en de nombreux endroits. Dans le but d'autoriser l'affichage de ce texte en langues variées, le code ne contient que des clés et chaque fois qu'un texte doit être affiché, le code recherche le texte correspondant à cette clé dans un fichier texte de traduction paire clé-valeur correspondant à la langue sélectionnée par l'utilisateur (ou auto-détectée par RawTherapee d'après le paramétrage). Lorsqu'une clé est trouvée dans le fichier de traduction, elle est remplacée par la valeur correspondante. Si elle n'est pas trouvée, la valeur correspondant à l'anglais est utilisée en saufconduit.

Le fichier qui contient les paires clé-valeur de référence est appelé default. Il utilise l'anglais américain. Toutes les traductions sont basées sur ce fichier. Chaque fois qu'une clé n'est pas trouvée dans une traduction, c'est la clé de ce fichier qui est utilisée.

Les fichiers de traduction sont placés dans /rtdata/languages.

De temps à autres nous exécutons le script /tools/generateTranslationDiffs qui met à jour chaque fichier de traduction avec les nouvelles clés du fichier default. Si une nouvelle paire clé-valeur est ajoutée à default, le script copie cette paire dans le fichier de traduction si elle n'existe pas, et puisque la valeur a ce niveau est en anglais, il préfixe cette ligne avec un point d’exclamation. Lorsque RawTherapee recherche une chaîne de caractères traduite, il ignore les lignes préfixées avec un point d'interrogation. Lorsque quelqu'un traduit cette valeur, il doit enlever ce point d'interrogation afin qu'elle ne soit plus ignorée.

Un inconvénient du système est que si la valeur d'une clé dans le fichier default est modifiée et cette entrée à déjà été traduite, alors la traduction devient obsolète et cette situation n'est pas repérée. Pour cette raison, les personnes assurant la maintenance d'une traduction doit garder un œil sur les modifications apportées aux valeurs existantes dans default et mettre à jour leurs traductions. Une façon de garder un oeil sur ces modifications est de vérifier les commits dans git qui affectent ce fichier.

Utilisons en exemple l'étiquette "Compensation d'exposition" :

  • La clé utilisée par le code est TP_EXPOSURE_EXPCOMP.
  • Le fichier default contient la paire clé-valeur :
    TP_EXPOSURE_EXPCOMP;Exposure compensation
  • Le fichier English (US) contient la même paire, mais préfixée par un point d'exclamation :
    !TP_EXPOSURE_EXPCOMP;Exposure compensation
  • Les traductions devraient contenir la clé avec la valeur traduite et le point d'exclamation enlevé, par ex :
    TP_EXPOSURE_EXPCOMP;Compensation d'exposition

Mode opératoire

  1. Vérifier s'il existe un fichier de traduction pour la langue dans laquelle vous souhaitez traduire en regardant dans /rtdata/languages
    • S'il n'en existe pas, télécharger le fichier English (US) (cliquer droit sur le bouton "Raw" puis sur "Enregistrer la cible du lien sous..."), puis le renommer dans votre langue, appelons le Inuktitut pour la suite de l'article.
    • S'il en existe un, le télécharger (cliquer droit sur le bouton "Raw" puis sur "Enregistrer la cible du lien sous...").
  2. Traduire de nouvelles chaînes
    Ouvrir Inuktitut dans un éditeur de texte moderne (utilisateurs de Windows : ne pas utiliser "Notepad", prenez plutôt Notepad++). Toutes les chaînes à traduire sont celles qui sont sur une ligne commençant par un point d'exclamation, vous les trouverez à la fin du fichier si vous mettez une traduction existante à jour. Les traduire, et pour chaque chaîne traduite retirer le point d'exclamation en préfixe.
    Par exemple, vous devez traduire
    !TP_EXPOSURE_EXPCOMP;Exposure compensation
    en
    TP_EXPOSURE_EXPCOMP;Lorem ipsum
  3. Mise à jour des chaînes existantes
    Si votre fichier Inuktitut a déjà été traduit il y a longtemps, il est probable que certaines parties traduites soient obsolètes. Pour les mettre à jour, ouvrir le dernier fichier default dans une fenêtre couvrant une moitié de l'écran, ouvrir Inuktitut dans une fenêtre couvrant l'autre moitié de l'écran, puis comparer chaque chaîne déjà traduite dans Inuktitut avec la chaîne en anglais dans default, et rafraîchir la traduction si elle ne convient plus à la chaîne anglaise.
  4. Une fois la traduction terminée, ouvrir une nouvelle publication dans GitHub et y lier votre traduction. Veuillez ne pas créer de fichier patch des traductions, simplement envoyer la totalité du fichier traduit. Nous l'exécuterons alors via le script /tools/generateTranslationDiffs qui triera les entrées, ajoutera les nouvelles clés et effacera celles qui ne sont plus utiles. Nous la commiterons enfin dans la base.
  5. Quand vous désirerez mettre à jour votre traduction dans le futur, vous devrez télécharger la dernière version de ce fichier depuis le dépôt via /rtdata/languages

Balisage

Certaines lignes ont des éléments qui doivent apparaître en gras ou en italiques, ou ont des caractères qui doivent être écrits de façon particulière. Ceci est assuré grâce au balisage. Cependant le balisage analytique est plus lent que le balisage en plein texte, aussi RawTherapee ne supporte le balisage que sur les clés dont on sait qu'elles l'exige. Cela signifie que si vous utilisez le balisage sur des clés qui ne le supportent pas, alors ces clés ne seront pas affichées correctement. Toujours respecter le style utilisé dans default. Si une clé dans default n'utilise pas le balisage, alors votre traduction ne la supportera jamais.

Lorsque qu'une clé utilise le balisage, certains caractères doivent s'écrire en utilisant leur nom de référence de caractère HTML :

  • Ecrire < avec &lt;
  • Ecrire > avec &gt;
  • Ecrire & avec &amp;

Comment savoir que le balisage est nécessaire ? Regardez default. Par exemple :

  • HISTORY_MSG_251;B&amp;W - Algorithm utilise une balise pour afficher le caractère &, et votre traduction doit le faire aussi.
  • PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue n'utilise pas de balise pour afficher le caractère &, et votre traduction ne doit pas non plus.
  • FILEBROWSER_EMPTYTRASHHINT;<b>Permanently</b> delete all files in trash. utilise une balise pour mettre le mot "Permanently" en gras lorsqu'il est affiché par RawTherapee, et votre traduction doit le faire aussi.