﻿// -*- Coding: utf-8; -*-  [all uconv resource files]
// Copyright (c) 2000-2003 IBM, Inc. and Others.
// $Revision: 1.3 $
//
// Root translation file for uconv messages.
// So you want to translate this file??? Great!
// 1. copy it to a new name [ex: se.txt]
//
// 2. You might wish to comment out ALL lines, and then uncomment them
//    as you add translations. That way, you don't inadvertently mark
//    an untranslated English (or whatever) string as already
//    translated. The base translation might change!
// 
// 3. These files are in UTF-8 format (even though root uses only
//    ASCII)
//
// 4. Make note of the location of {0}, {1}, etc.. they are taken from
//    arguments to u_wmsg() in order..
//
// 5. Add se.txt to RESSRC= in resfiles.mk and to the project file on 
//    the Windows side.
//
// 6. Send it in to srl@jtcsv.com or ask on the ICU mailing list! thanks!

fr
{
  // uconv errors

    lcUsageWord { "usage" } 
    ucUsageWord { "Usage" } 
    usage {
        "{0}: {1} "
        "[ -h, -?, --help ] [ -V, --version ] [ -s, --silent ] [ -v, --verbose ] "
        "[ -l, --list | --list-code code | --default-code | -L, --list-transliterators ] "
        "[ --canon ] [ -x translitération ] "
        "[ --to-callback callback | -c ] [ --from-callback callback | -i ] [ --callback callback ] "
        "[ --fallback | --no-fallback ] "
        "[ -b, --block-size taille ] "
        "[ -f, --from-code code ] [ -t, --to-code code ] "
        "[ --add-signature ] [ --remove-signature ] "
        "[ -o, --output fichier ] "
        "[ fichier ... ]\n"
    }

    // TODO there is some English in here
    help { "Options :  -h, --help                   affiche ce message\n"
           "           -V, --version                affiche la version du programme\n"
"           -s, --silent                 supprime les messages\n"
"           -v, --verbose                affiche les progrès\n"
"           -l, --list                   liste tous les encodages disponibles\n"
"           --list-code code             liste juste l''encodage donné\n"
"           --default-code               liste juste l''encodage par défaut\n"
"           -L, --list-transliterators   liste tous les translitérateurs\n"
"           --canon                      affiche la liste dans le format de cnvrtrs.txt(5)\n"
"           -x translitération           passe le texte à travers translitération\n"
"           --to-callback callback       utilise callback sur l''encodage cible\n"
"           -c                           omet les caractères invalides de la sortie\n"
"           --from-callback callback     utilise callback sur l''encodage source\n"
"           -i                           omet les séquences invalides de l''entrée\n"
"           --callback callback          utilise callback sur les deux encodages\n"
"           -b, --block-size taille      lit des blocks de taille octets (défaut : 4096)\n"
"           --fallback                   utilise les correspondances de secours\n"
"           --no-fallback                n''utilise pas les correspondances de secours\n"
"           -f, --from-code code         fixe l''encodage d''origine\n"
"           -t, --to-code code           fixe l''encodage de destination\n"
"          --add-signature               add a U+FEFF Unicode signature character (BOM)\n"
"          --remove-signature            remove a U+FEFF Unicode signature character (BOM)\n"
"           -o, --output fichier         écrit la sortie dans fichier\n"
"\n"
"Callbacks :" } 

    cantGetNames { "Ne peux obtenir la liste des encodages.\n" } // 0: err
    cantGetTag { "Ne peux obtenir le nom de l'étiquette standard : {0}.\n" } // 0: err

    noSuchCodeset { "Ne peux trouver l''encodage : {0}.\n" } // 0: name of the encoding
    noFromCodeset { "L''encodage d''origine n''a pas été fixé (utilisez -f).\n" } 
    noToCodeset { "L''encodage de destination n''a pas été fixé (utilisez -t).\n" } 

    badBlockSize { "Taille de bloc incorrecte : {0}.\n" } // 0: size of the block

    cantSetInBinMode { "Ne peux mettre l''entrée standard en mode binaire.\n" } 
    cantSetOutBinMode { "Ne peux mettre la sortie standard en mode binaire.\n" } 

    cantOpenFromCodeset { "Ne peux ouvrir de convertisseur pour l''encodage d''origine {0} : {1}.\n" } // 0:set, 1: err
    cantOpenToCodeset { "Ne peux ouvrir de convertisseur pour l''encodage de destination {0} : {1}.\n" } // 0:set, 1: err

    cantCreateTranslit { "Ne peux créer la translitération \"{0}\": {1}.\n" } // 0:set, 1: err
    cantCreateTranslitParseErr { "Ne peux créer la translitération \"{0}\": {1}, ligne {2}, position {3}.\n" } // 0: set, 1: err, 2: line, 3: offset

    cantSetCallback { "Ne peux fixer le callack de transcodage : {0}.\n" } // 0: err

    unknownCallback { "Callback inconnu : {0}.\n" } // 0: callback name

    cantOpenInputF { "Ne peux ouvrir le fichier d''entrée {0} : {1}.\n" } // 0: file, 1: strerror [OS error string] 
    cantCreateOutputF { "Ne peux créer le fichier de sortie {0} : {1}.\n" } // 0: file, 1: strerror [OS error string]

    cantWrite { "Le texte converti ne peut pas être écrit : {0}.\n" } // 0: OS error string
    cantRead { "Erreur de lecture du fichier d''entrée : {0}.\n" } // 0: OS error string

    // TODO retranslate the problemCvt... messages because their format changed
    //problemCvtToU { "La conversion d''Unicode vers l''encodage de destination a échoué à la position {0} : {1}.\n" } // 0: position, 1: err
    //problemCvtFromU { "La conversion de l''encodage original vers Unicode a échoué à la position {0} : {1}.\n" } // 0: position, 1: err
    //problemCvtFromUOut { "La conversion de l''encodage original vers Unicode a échoué à la position {0} de la sortie : {1}.\n" } // 0: position, 1: err
}
