<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2012 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="title_activity_filter_show" msgid="2036539130684382763">"Outil de retouche photo"</string>
    <string name="cannot_load_image" msgid="5023634941212959976">"Impossible de charger l\'image."</string>
    <!-- no translation found for original_picture_text (3076213290079909698) -->
    <skip />
    <string name="setting_wallpaper" msgid="4679087092300036632">"Définition du fond d\'écran en cours…"</string>
    <string name="original" msgid="3524493791230430897">"Original"</string>
    <string name="borders" msgid="2067345080568684614">"Contours"</string>
    <string name="filtershow_undo" msgid="6781743189243585101">"Annuler"</string>
    <string name="filtershow_redo" msgid="4219489910543059747">"Rétablir"</string>
    <string name="show_history_panel" msgid="7785810372502120090">"Afficher historique"</string>
    <string name="hide_history_panel" msgid="2082672248771133871">"Masquer l\'historique"</string>
    <string name="show_imagestate_panel" msgid="7132294085840948243">"Afficher état image"</string>
    <string name="hide_imagestate_panel" msgid="1135313661068111161">"Masquer état image"</string>
    <string name="menu_settings" msgid="6428291655769260831">"Paramètres"</string>
    <string name="unsaved" msgid="8704442449002374375">"Certaines modifications apportées à l\'image n\'ont pas été enregistrées."</string>
    <string name="save_before_exit" msgid="2680660633675916712">"Souhaitez-vous enregistrer les modifications avant de fermer le programme ?"</string>
    <string name="save_and_exit" msgid="3628425023766687419">"Enregistrer et quitter"</string>
    <string name="exit" msgid="242642957038770113">"Quitter"</string>
    <string name="history" msgid="455767361472692409">"Historique"</string>
    <string name="reset" msgid="9013181350779592937">"Réinitialiser"</string>
    <!-- no translation found for history_original (150973253194312841) -->
    <skip />
    <string name="imageState" msgid="8632586742752891968">"Effets appliqués"</string>
    <string name="compare_original" msgid="8140838959007796977">"Comparer"</string>
    <string name="apply_effect" msgid="1218288221200568947">"Appliquer"</string>
    <string name="reset_effect" msgid="7712605581024929564">"Réinitialiser"</string>
    <string name="aspect" msgid="4025244950820813059">"Aspect"</string>
    <string name="aspect1to1_effect" msgid="1159104543795779123">"1:1"</string>
    <string name="aspect4to3_effect" msgid="7968067847241223578">"4:3"</string>
    <string name="aspect3to4_effect" msgid="7078163990979248864">"3:4"</string>
    <string name="aspect4to6_effect" msgid="1410129351686165654">"4:6"</string>
    <string name="aspect5to7_effect" msgid="5122395569059384741">"5:7"</string>
    <string name="aspect7to5_effect" msgid="5780001758108328143">"7:5"</string>
    <string name="aspect9to16_effect" msgid="7740468012919660728">"16:9"</string>
    <string name="aspectNone_effect" msgid="6263330561046574134">"Aucun"</string>
    <!-- no translation found for aspectOriginal_effect (5678516555493036594) -->
    <skip />
    <string name="Fixed" msgid="8017376448916924565">"Fixe"</string>
    <string name="tinyplanet" msgid="2783694326474415761">"Petite planète"</string>
    <string name="exposure" msgid="6526397045949374905">"Exposition"</string>
    <string name="sharpness" msgid="6463103068318055412">"Netteté"</string>
    <string name="contrast" msgid="2310908487756769019">"Contraste"</string>
    <string name="vibrance" msgid="3326744578577835915">"Couleurs vives"</string>
    <string name="saturation" msgid="7026791551032438585">"Saturation"</string>
    <string name="bwfilter" msgid="8927492494576933793">"Filtre N&amp;B"</string>
    <string name="wbalance" msgid="6346581563387083613">"Coloration auto"</string>
    <string name="hue" msgid="6231252147971086030">"Teinte"</string>
    <string name="shadow_recovery" msgid="3928572915300287152">"Ombres"</string>
    <string name="highlight_recovery" msgid="8262208470735204243">"Reflets"</string>
    <string name="curvesRGB" msgid="915010781090477550">"Courbes"</string>
    <string name="vignette" msgid="934721068851885390">"Vignetage"</string>
    <string name="redeye" msgid="4508883127049472069">"Yeux rouges"</string>
    <string name="imageDraw" msgid="6918552177844486656">"Dessiner"</string>
    <string name="straighten" msgid="26025591664983528">"Redresser"</string>
    <string name="crop" msgid="5781263790107850771">"Rogner"</string>
    <string name="rotate" msgid="2796802553793795371">"Rotation"</string>
    <string name="mirror" msgid="5482518108154883096">"Miroir"</string>
    <string name="negative" msgid="6998313764388022201">"Négatif"</string>
    <string name="none" msgid="6633966646410296520">"Aucun"</string>
    <string name="edge" msgid="7036064886242147551">"Bords"</string>
    <string name="kmeans" msgid="1630263230946107457">"Warhol"</string>
    <string name="downsample" msgid="3552938534146980104">"Réduction"</string>
    <string name="curves_channel_rgb" msgid="7909209509638333690">"RVB"</string>
    <string name="curves_channel_red" msgid="4199710104162111357">"Rouge"</string>
    <string name="curves_channel_green" msgid="3733003466905031016">"Vert"</string>
    <string name="curves_channel_blue" msgid="9129211507395079371">"Bleu"</string>
    <string name="draw_style" msgid="2036125061987325389">"Style"</string>
    <string name="draw_size" msgid="4360005386104151209">"Taille"</string>
    <string name="draw_color" msgid="2119030386987211193">"Couleur"</string>
    <string name="draw_style_line" msgid="9216476853904429628">"Lignes"</string>
    <string name="draw_style_brush_spatter" msgid="7612691122932981554">"Marqueur"</string>
    <string name="draw_style_brush_marker" msgid="8468302322165644292">"Éclaboussures"</string>
    <string name="draw_clear" msgid="6728155515454921052">"Effacer"</string>
    <string name="color_pick_select" msgid="734312818059057394">"Sélection couleur personnalisée"</string>
    <string name="color_pick_title" msgid="6195567431995308876">"Sélectionner couleur"</string>
    <string name="draw_size_title" msgid="3121649039610273977">"Sélectionner la taille"</string>
    <string name="draw_size_accept" msgid="6781529716526190028">"OK"</string>
</resources>
