Merge branch 'l10n-fr' into testing

This commit is contained in:
Valentin Lorentz 2010-10-30 12:11:29 +02:00
commit 5e09a9c887
44 changed files with 5365 additions and 67 deletions

108
plugins/Later/locale/fr.po Normal file
View File

@ -0,0 +1,108 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-28 16:15+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:45
msgid ""
"Determines the maximum number of\n"
" messages to be queued for a user. If this value is 0, there is no maximum.\n"
" "
msgstr "Détermine le nombre maximum de messages en attente d'un utilisateur. Si la valeur est 0, il n'y a pas de maximum"
#: config.py:49
msgid ""
"Determines whether users will be notified in\n"
" the first place in which they're seen, or in private."
msgstr "Détermine si les utilisateurs seront notifiés au premier endroit où ils sont vus, ou en privé."
#: plugin.py:46
msgid ""
"Used to do things later; currently, it only allows the sending of\n"
" nick-based notes. Do note (haha!) that these notes are *not* private\n"
" and don't even pretend to be; if you want such features, consider using the\n"
" Note plugin."
msgstr "Utilisé pour faire des choses plus tard ; actuellement, il n'autorise que les notes basées sur des nicks. Notez (haha !) que ces notes ne sont *pas* privées, et qu'elle ne sont pas conçues pour l'être ; si vous voulez une telle fonctionnalité, utilisez le plugin Note."
#: plugin.py:84
msgid "%s ago"
msgstr "il y a %s"
#: plugin.py:86
msgid "just now"
msgstr "à l'instant"
#: plugin.py:107
msgid ""
"<nick> <text>\n"
"\n"
" Tells <nick> <text> the next time <nick> is in seen. <nick> can\n"
" contain wildcard characters, and the first matching nick will be\n"
" given the note.\n"
" "
msgstr ""
"<nick> <texte>\n"
"\n"
"Dit le <texte> à <nick> la prochaine fois qu'il est vu. <nick> peut contenir des jokers, et le premier nick correspondant recevra la note."
#: plugin.py:114
msgid "I can't send notes to myself."
msgstr "Je ne peux m'envoyer de notes à moi-même."
#: plugin.py:120
msgid "That person's message queue is already full."
msgstr "La file d'attente des messages de cette personne est déjà pleine."
#: plugin.py:125
msgid ""
"[<nick>]\n"
"\n"
" If <nick> is given, replies with what notes are waiting on <nick>,\n"
" otherwise, replies with the nicks that have notes waiting for them.\n"
" "
msgstr ""
"[<nick>]\n"
"\n"
"Si le <nick> est donné, répond avec les notes en attente pour <nick> ; sinon, répond avec les nicks ayant des notes en attente."
#: plugin.py:136
msgid "I have no notes for that nick."
msgstr "Je n'ai pas de note pour ce nick."
#: plugin.py:141
msgid "I currently have notes waiting for %L."
msgstr "J'ai actuellement des notes en attente pour %L."
#: plugin.py:144
msgid "I have no notes waiting to be delivered."
msgstr "Je n'ai pas de note à délivrer."
#: plugin.py:149
msgid ""
"<nick>\n"
"\n"
" Removes the notes waiting on <nick>.\n"
" "
msgstr ""
"<nick>\n"
"\n"
"Supprime les notes en attente pour <nick>."
#: plugin.py:158
msgid "There were no notes for %r"
msgstr "Il n'y a pas de note pour %r"
#: plugin.py:182
msgid "Sent %s: <%s> %s"
msgstr "Envoyé le %s : "

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2010-10-17 15:21+CEST\n"
"POT-Creation-Date: 2010-10-28 16:15+CEST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -28,7 +28,7 @@ msgid ""
" the first place in which they're seen, or in private."
msgstr ""
#: plugin.py:47
#: plugin.py:46
#, docstring
msgid ""
"Used to do things later; currently, it only allows the sending of\n"
@ -37,11 +37,15 @@ msgid ""
" Note plugin."
msgstr ""
#: plugin.py:87
#: plugin.py:84
msgid "%s ago"
msgstr ""
#: plugin.py:86
msgid "just now"
msgstr ""
#: plugin.py:108
#: plugin.py:107
#, docstring
msgid ""
"<nick> <text>\n"
@ -52,15 +56,15 @@ msgid ""
" "
msgstr ""
#: plugin.py:115
#: plugin.py:114
msgid "I can't send notes to myself."
msgstr ""
#: plugin.py:121
#: plugin.py:120
msgid "That person's message queue is already full."
msgstr ""
#: plugin.py:126
#: plugin.py:125
#, docstring
msgid ""
"[<nick>]\n"
@ -70,19 +74,19 @@ msgid ""
" "
msgstr ""
#: plugin.py:137
#: plugin.py:136
msgid "I have no notes for that nick."
msgstr ""
#: plugin.py:142
#: plugin.py:141
msgid "I currently have notes waiting for %L."
msgstr ""
#: plugin.py:145
#: plugin.py:144
msgid "I have no notes waiting to be delivered."
msgstr ""
#: plugin.py:150
#: plugin.py:149
#, docstring
msgid ""
"<nick>\n"
@ -91,11 +95,11 @@ msgid ""
" "
msgstr ""
#: plugin.py:159
#: plugin.py:158
msgid "There were no notes for %r"
msgstr ""
#: plugin.py:183
#: plugin.py:182
msgid "Sent %s: <%s> %s"
msgstr ""

View File

@ -81,7 +81,7 @@ class Later(callbacks.Plugin):
#format = conf.supybot.reply.format.time()
diff = time.time() - when
try:
return utils.timeElapsed(diff, seconds=False) + ' ago'
return _('%s ago') % utils.timeElapsed(diff, seconds=False)
except ValueError:
return _('just now')

View File

@ -0,0 +1,47 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 15:35+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:46
msgid ""
"Determines whether the bot will maintain the\n"
" channel limit to be slightly above the current number of people in the\n"
" channel, in order to make clone/drone attacks harder."
msgstr "Détermine si le bot maintiendra la limite de canal pour être juste au-dessus du nombre actuel de personnes, pour rendre les attaques de clones plus difficiles"
#: config.py:50
msgid ""
"Determines the minimum number of free\n"
" spots that will be saved when limits are being enforced. This should\n"
" always be smaller than supybot.plugins.Limiter.limit.maximumExcess."
msgstr "Détermine le nombre minimum de 'places' libres à avoir, c'est à dire que la limite sera changées lorsque ce nombre sera atteint. Ce doit toujours être plus petit que supybot.plugins.Limiter.limit.maximumExcess."
#: config.py:54
msgid ""
"Determines the maximum number of free spots\n"
" that will be saved when limits are being enforced. This should always be\n"
" larger than supybot.plugins.Limiter.limit.minimumExcess."
msgstr "Détermine le nombre maximum de 'places' libre, c'est à dire le nombre de place qu'il y aura juste après chaque changement de limite. Ce doit toujours être plus grand que supybot.plugins.Limiter.limit.minimumExcess."
#: plugin.py:40
msgid ""
"In order to use this plugin, its config values need to be properly\n"
" setup. supybot.plugins.Limiter.enable needs to be set to True and\n"
" supybot.plugins.Limiter.{maximumExcess,minimumExcess} should be set to\n"
" values appropriate to your channel (if the defaults aren't satisfactory.\n"
" Once these are set, and someone enters/leaves the channel, Supybot will\n"
" start setting the proper +l modes.\n"
" "
msgstr "Pour utiliser ce plugin, ses variables de configuration doivent être configurées proprement. supybot.plugins.Limiter.enable doit être défini à True, et supybot.plugins.Limiter.{maximumExcess,minimumExcess} doivent être définis à la valeur appropriée piur votre canal (si les valeurs par défaut ne satisfont pas). Une fois qu'elles sont définies, et que quelqu'un entrera/partira du canal, Supybot commencera à définir les modes +l."

142
plugins/Math/locale/fr.po Normal file
View File

@ -0,0 +1,142 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 15:35+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:52
msgid ""
"<fromBase> [<toBase>] <number>\n"
"\n"
" Converts <number> from base <fromBase> to base <toBase>.\n"
" If <toBase> is left out, it converts to decimal.\n"
" "
msgstr ""
"<base 1> [<base 2>] <nombre>\n"
"\n"
"Converti le nombre d'une base à l'autre. La seconde base est la décimale par défaut."
#: plugin.py:63
msgid "Invalid <number> for base %s: %s"
msgstr "Nombre invalide pour la base %s : %s"
#: plugin.py:69
msgid "Convert a decimal number to another base; returns a string."
msgstr "Converti un nombre décimal dans une autre base, retourne une chaîne."
#: plugin.py:90
msgid ""
"Convert a number from any base, 2 through 36, to any other\n"
" base, 2 through 36. Returns a string."
msgstr "Convertir un nombre de n'import quelle base, de 2 à 36, à n'importe quelle base, de 2 à 36."
#: plugin.py:157
msgid ""
"<math expression>\n"
"\n"
" Returns the value of the evaluated <math expression>. The syntax is\n"
" Python syntax; the type of arithmetic is floating point. Floating\n"
" point arithmetic is used in order to prevent a user from being able to\n"
" crash to the bot with something like '10**10**10**10'. One consequence\n"
" is that large values such as '10**24' might not be exact.\n"
" "
msgstr ""
"<expression mathématique>\n"
"\n"
"Retourne la valeur de l'<expression mathématique> évaluée. La syntaxe est celle de Python ; le calcul est à virgule flottante. Les calculs à virgule flottante sont utilisés pour enmpêcher l'utilisateur de faire crasher le bot avec quelque chose du genre '10**10**10**10'. L'une des conséquences est que les grandes valeurs commandes '10**24' peuvent ne pas être exactes."
#: plugin.py:166
#: plugin.py:220
msgid "There's really no reason why you should have underscores or brackets in your mathematical expression. Please remove them."
msgstr "Il n'y a aucune réelle raison que vous mettiez des underscores ou des crochets dans vos expressions mathématiques. Merci de les retirer."
#: plugin.py:172
#: plugin.py:228
msgid "You can't use lambda in this command."
msgstr "Vous ne pouvez utiliser lambda dans cette commande."
#: plugin.py:202
#: plugin.py:236
msgid "The answer exceeded %s or so."
msgstr "La réponse dépacer %s."
#: plugin.py:204
#: plugin.py:238
msgid "Something in there wasn't a valid number."
msgstr "Quelque chose là-dedans n'est pas un nombre valide"
#: plugin.py:206
#: plugin.py:240
msgid "%s is not a defined function."
msgstr "%s n'est pas une fonction définie"
#: plugin.py:213
msgid ""
"<math expression>\n"
"\n"
" This is the same as the calc command except that it allows integer\n"
" math, and can thus cause the bot to suck up CPU. Hence it requires\n"
" the 'trusted' capability to use.\n"
" "
msgstr ""
"<expression mathématique>\n"
"\n"
"Cette commande est la même que la commande 'calc', excepté qu'elle utilise des mathématiques entières, ce qui peut causer une surconsommation de CPU de la part du bot. C'est pourquoi elle requiert la capacité 'trusted'."
#: plugin.py:250
msgid ""
"<rpn math expression>\n"
"\n"
" Returns the value of an RPN expression.\n"
" "
msgstr ""
"<expression mathématique NPI>\n"
"\n"
"Retourne la valeur de l'expression mathématique NPI."
#: plugin.py:275
msgid "Not enough arguments for %s"
msgstr "Pas assez d'arguments pour %s."
#: plugin.py:288
msgid "%q is not a defined function."
msgstr "%q n'est pas une fonction définie."
#: plugin.py:295
msgid "Stack: [%s]"
msgstr "Pile : [%s]"
#: plugin.py:299
msgid ""
"[<number>] <unit> to <other unit>\n"
"\n"
" Converts from <unit> to <other unit>. If number isn't given, it\n"
" defaults to 1. For unit information, see 'units' command.\n"
" "
msgstr ""
"[<nombre>] <unité> to <autre unité>\n"
"\n"
"Convertit de l'<unité> à l'<autre unité>. Si le nombre n'est pas donné, il vaut 1 par défaut. Pour plus d'informations sur les unités, utilisez la commande 'units'."
#: plugin.py:314
msgid ""
" [<type>]\n"
"\n"
" With no arguments, returns a list of measurement types, which can be\n"
" passed as arguments. When called with a type as an argument, returns\n"
" the units of that type.\n"
" "
msgstr ""
"[<type>]\n"
"\n"
"Sans argument, retourne la liste des types de mesures, qui peuvent être passés en argument. Lors de l'appel avec un argument, retourne les unités de chaque type."

250
plugins/Misc/locale/fr.po Normal file
View File

@ -0,0 +1,250 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 15:35+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:45
msgid ""
"Determines whether the bot will list private\n"
" plugins with the list command if given the --private switch. If this is\n"
" disabled, non-owner users should be unable to see what private plugins\n"
" are loaded."
msgstr "Détermine si le bot listera les plugins privés dans la commande 'list', si l'option --private est donné. Si cette variable est désactivée, les utilisateurs non-owner ne pourront pas voir quels plugins privés sont chargés."
#: config.py:50
msgid ""
"Determines the format string for\n"
" timestamps in the Misc.last command. Refer to the Python documentation\n"
" for the time module to see what formats are accepted. If you set this\n"
" variable to the empty string, the timestamp will not be shown."
msgstr "Détermine la chaîne de formattage pour les timestamps de la commande Misc.last. Référez-vous à la documentation de Python sur le module 'time' pour voir quels formats sont acceptés. Si vous définissez cette variable pour être une chaîne vide, le timestamp ne sera pas affiché."
#: config.py:57
msgid ""
"Determines whether or not\n"
" the timestamp will be included in the output of last when it is part of a\n"
" nested command"
msgstr "Détermine si le timestamp sera inclu dans la sortie de 'last' lorsqu'il est dans une commande imbriquée."
#: config.py:61
msgid ""
"Determines whether or not the\n"
" nick will be included in the output of last when it is part of a nested\n"
" command"
msgstr "Détermine si le nick est inclu dans la sortie de 'last' lorsqu'il est dans une commande imbriquée."
#: plugin.py:81
msgid "You've given me %s invalid commands within the last minute; I'm now ignoring you for %s."
msgstr "Vous m'avez donné %s commandes invalides dans la dernière minute, je vous ignore maitenant pendant %s."
#: plugin.py:93
msgid "The %q plugin is loaded, but there is no command named %q in it. Try \"list %s\" to see the commands in the %q plugin."
msgstr "Le plugin %q est chargé, mais il n'a pas de commande appelée %q. Essayez \"list %s\" pour voir les commandes dans le plugin %q."
#: plugin.py:119
msgid ""
"[--private] [<plugin>]\n"
"\n"
" Lists the commands available in the given plugin. If no plugin is\n"
" given, lists the public plugins available. If --private is given,\n"
" lists the private plugins.\n"
" "
msgstr ""
"[--private] [<plugin>]\n"
"\n"
"Liste les commandes disponibles dans le plugin donné. Si aucun plugin n'est donné, liste les plugins publics. Si --private est donné, il liste les plugins privés."
#: plugin.py:144
msgid "There are no private plugins."
msgstr "Il n'y a pas de plugin privé."
#: plugin.py:146
msgid "There are no public plugins."
msgstr "Il n'y a pas de plugin privé."
#: plugin.py:153
msgid "That plugin exists, but has no commands. This probably means that it has some configuration variables that can be changed in order to modify its behavior. Try \"config list supybot.plugins.%s\" to see what configuration variables it has."
msgstr "Ce plugin existe, mais n'a pas de commande. Cela signifit probablement qu'il a des variables de configuration qui peuvent être changés pour modifier son comportement. Essayez \"config list supybot.plugins.%s\" pour voir quelles variables de configuration il a."
#: plugin.py:164
msgid ""
"<string>\n"
"\n"
" Searches for <string> in the commands currently offered by the bot,\n"
" returning a list of the commands containing that string.\n"
" "
msgstr ""
"<chaîne>\n"
"\n"
"Recherche la <chaîne> dans les commandes actuellement fournies par le bot et retourne une list des commandes contenant cette chaîne."
#: plugin.py:183
msgid "No appropriate commands were found."
msgstr "Aucune commande appropriée n'a été trouvée."
#: plugin.py:188
msgid ""
"[<plugin>] [<command>]\n"
"\n"
" This command gives a useful description of what <command> does.\n"
" <plugin> is only necessary if the command is in more than one plugin.\n"
" "
msgstr ""
"[<plugin>] [<commande>]\n"
"\n"
"Cette commande donne une description utilie de ce que fait la <commande>. <plugin> n'est nécessaire que si la commande est présente dans plus d'un plugin."
#: plugin.py:198
msgid "That command exists in the %L plugins. Please specify exactly which plugin command you want help with."
msgstr "Cette commande existe dans les plugins %L. Veuillez spécifier dans quel plugin se trouve la commande pour laquelle vous cherchez de l'aide."
#: plugin.py:205
msgid "There is no command %q."
msgstr "Il n'y a pas de commande %q."
#: plugin.py:211
msgid ""
"takes no arguments\n"
"\n"
" Returns the version of the current bot.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne la version actuelle du bot"
#: plugin.py:217
msgid "The newest version available online is %s."
msgstr "La dernière version disponible en ligne est %s."
#: plugin.py:221
msgid "I couldn't fetch the newest version from the Supybot website."
msgstr "Je ne peux récupérer la dernière version sur le site de Supybot."
#: plugin.py:223
msgid "The current (running) version of this Supybot is %s. %s"
msgstr "La version de ce Supybot est %s. %s"
#: plugin.py:230
msgid ""
"takes no arguments\n"
"\n"
" Returns a URL saying where to get Supybot.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne une URL disant où trouver Supybot."
#: plugin.py:234
msgid "My source is at http://supybot.com/"
msgstr "Ma source est disponible sur http://supybot.com/"
#: plugin.py:239
msgid ""
"[<nick>]\n"
"\n"
" If the last command was truncated due to IRC message length\n"
" limitations, returns the next chunk of the result of the last command.\n"
" If <nick> is given, it takes the continuation of the last command from\n"
" <nick> instead of the person sending this message.\n"
" "
msgstr ""
"[<nick>]\n"
"\n"
"Si la dernière commande était tronquée par les limitations de taille des messages sur IRC, retourne le morceau suivant résultant de la dernière commande. Si le <nick> est donné, continue la dernière commande du <nick> plutôt que de la personne envoyant ce message."
#: plugin.py:253
msgid "%s has no public mores."
msgstr "%s n'a pas de 'more' public."
#: plugin.py:256
msgid "Sorry, I can't find any mores for %s"
msgstr "Désolé, je ne peux trouver de 'more' pour %s"
#: plugin.py:265
msgid "You haven't asked me a command; perhaps you want to see someone else's more. To do so, call this command with that person's nick."
msgstr "Vous ne m'avez donné aucune commande. Peut-être que vous voulez voir celle de quelqu'un d'autre. Pour cela, appelez cette commande en ajoutant le nick de cette personne."
#: plugin.py:269
msgid "That's all, there is no more."
msgstr "C'est tout, il n'y a plus de 'more'"
#: plugin.py:279
msgid ""
"[--{from,in,on,with,without,regexp} <value>] [--nolimit]\n"
"\n"
" Returns the last message matching the given criteria. --from requires\n"
" a nick from whom the message came; --in requires a channel the message\n"
" was sent to; --on requires a network the message was sent on; --with\n"
" requires some string that had to be in the message; --regexp requires\n"
" a regular expression the message must match; --nolimit returns all\n"
" the messages that can be found. By default, the channel this command is\n"
" given in is searched.\n"
" "
msgstr ""
"[--{from,in,on,with,without,regexp} <valeur>] [--nolimit]\n"
"\n"
"Retourne le dernier message correspondant aux critères donnés. --from requiert le nick de la personne qui a envoyé le message ; --in requiert le canal sur lequel a été envoyé le message ; --with requiert une chaîne qui doit être dans le message --regexp requiert une expression régulière à laquelle le message doit correspondre ; --nolimit retourne tous les messages qui peuvent être trouvés. Par défaut, recherche dans les logs du canal sur lequel est envoyée cette commande."
#: plugin.py:373
msgid "I couldn't find a message matching that criteria in my history of %s messages."
msgstr "Je ne peux trovuer de message correspondant à ce critère dans mon historique de %s messages."
#: plugin.py:388
msgid ""
"<nick> <text>\n"
"\n"
" Tells the <nick> whatever <text> is. Use nested commands to your\n"
" benefit here.\n"
" "
msgstr ""
"<nick> <texte>\n"
"\n"
"Dit le <texte> au <nick>. Utile si vous utilisez des commandes imbriquées."
#: plugin.py:396
#, fuzzy
msgid "Dude, just give the command. No need for the tell."
msgstr "Mec, contentes-toi de me donner la commande. Pas besoin d'utiliser 'tell'."
#: plugin.py:401
#, fuzzy
msgid "You just told me, why should I tell myself?"
msgstr "Vous venez de me le dire, pourquoi devrais-je me le dire moi-même ?"
#: plugin.py:406
#, fuzzy
msgid "I haven't seen %s, I'll let you do the telling."
msgstr "Je n'ai pas vu %s, je vous laisse lui dire."
#: plugin.py:411
#, fuzzy
msgid "%s wants me to tell you: %s"
msgstr "%s veut que je vous dise : %s"
#: plugin.py:417
msgid ""
"takes no arguments\n"
"\n"
" Checks to see if the bot is alive.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Vérifie si le bot est encore en vie."
#: plugin.py:421
msgid "pong"
msgstr "pong"

View File

@ -0,0 +1,296 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-29 12:02+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:46
msgid ""
"Determines whether\n"
" or not the factoid value will be shown when a listkeys search returns only\n"
" one factoid key."
msgstr "Détermine si la valeur de la factoid sera affichée lorsqu'une recherche de clef ne retournera qu'une seule clef."
#: config.py:50
msgid ""
"Determines how many items are shown\n"
" when the 'most' command is called."
msgstr "Détermine combien d'éléments sont affichés lorsque la commande 'most' est appelée."
#: plugin.py:292
msgid ""
"Add the help for \"@help MoobotFactoids\" here (assuming you don't implement a MoobotFactoids\n"
" command). This should describe *how* to use this plugin."
msgstr ""
#: plugin.py:349
msgid "%s is %s"
msgstr "%s est %s"
#: plugin.py:368
msgid "Factoid %q is locked."
msgstr "La factoid %q est verrouillée"
#: plugin.py:375
msgid "Factoid %q not found."
msgstr "Factoid %q non trouvée."
#: plugin.py:385
msgid "Missing an 'is' or '_is_'."
msgstr "Il manque un 'is' ou un '_is_'"
#: plugin.py:401
msgid "Factoid %q already exists."
msgstr "La factoid %q existe déjà."
#: plugin.py:435
msgid "%s, or %s"
msgstr "%s, ou %s"
#: plugin.py:456
msgid ""
"[<channel>] <factoid key>\n"
"\n"
" Returns the literal factoid for the given factoid key. No parsing of\n"
" the factoid value is done as it is with normal retrieval. <channel>\n"
" is only necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <clef>\n"
"\n"
"Retourne la factoid littérale pour la clef donnée. Aucun parsage n'est effecté sur la valeur de la factoid. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:469
msgid ""
"[<channel>] <factoid key>\n"
"\n"
" Returns the various bits of info on the factoid for the given key.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<channel>] <clef>\n"
"\n"
"Retourne différentes informations sur la factoid ayant la clef donnée. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:480
#: plugin.py:520
msgid "No such factoid: %q"
msgstr "Cette factoid n'existe pas : %q"
#: plugin.py:489
msgid "Created by %s on %s."
msgstr "Créé par %s le %s"
#: plugin.py:495
msgid " Last modified by %s on %s."
msgstr "Dernière modification par %s le %s"
#: plugin.py:503
msgid " Last requested by %s on %s, requested %n."
msgstr "Dernière requete par %s le %s ; a demandé %n."
#: plugin.py:510
msgid " Locked by %s on %s."
msgstr "Verrouillé par %s le %s"
#: plugin.py:525
msgid "Factoid %q is already locked."
msgstr "La factoid %q est déjà bloquée."
#: plugin.py:528
msgid "Factoid %q is not locked."
msgstr "La factoid %q n'est pas bloquée."
#: plugin.py:538
msgid "Cannot %s someone else's factoid unless you are an admin."
msgstr "Impossible de %s la factoid de quelqu'un d'autre à moins d'être un admin."
#: plugin.py:550
msgid ""
"[<channel>] <factoid key>\n"
"\n"
" Locks the factoid with the given factoid key. Requires that the user\n"
" be registered and have created the factoid originally. <channel> is\n"
" only necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<channel>] <clef>\n"
"\n"
"Verrouille la factoid ayant la clef donnée. Requiert que l'utilisateur soit enregistré et ait créé la factoid. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:561
msgid ""
"[<channel>] <factoid key>\n"
"\n"
" Unlocks the factoid with the given factoid key. Requires that the\n"
" user be registered and have locked the factoid. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<channel>] <factoid key>\n"
"\n"
"Verrouille la factoid ayant la clef donnée. Requiert que l'utilisateur soit enregistré et ait verrouillé la factoid. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:572
msgid ""
"[<channel>] {popular|authored|recent}\n"
"\n"
" Lists the most {popular|authored|recent} factoids. \"popular\" lists the\n"
" most frequently requested factoids. \"authored\" lists the author with\n"
" the most factoids. \"recent\" lists the most recently created factoids.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] {popular|authored|recent}\n"
"\n"
"Liste les factoids selon un classement. \"popular\" correspond aux plus affichées ; \"authored\" liste les auteurs qui envoient le plus de factoids \"recent\" liste les factoids les plus récentes. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:594
msgid "author"
msgstr "auteur"
#: plugin.py:596
msgid "authors"
msgstr "auteurs"
#: plugin.py:597
msgid "Most prolific %s: %L"
msgstr "%s ayant posté le plus de factoids : %L"
#: plugin.py:599
#: plugin.py:611
msgid "There are no factoids in my database."
msgstr "Il n'y a pas de factoid dans ma base de données."
#: plugin.py:606
msgid "latest factoid"
msgstr "dernière factoid"
#: plugin.py:608
msgid "latest factoids"
msgstr "dernières factoids"
#: plugin.py:609
msgid "%s: %L"
msgstr "%s : %L"
#: plugin.py:618
msgid "requested factoid"
msgstr "factoid la plus demandée"
#: plugin.py:620
msgid "requested factoids"
msgstr "factoids les plus demandées"
#: plugin.py:621
msgid "Top %s: %L"
msgstr "%s : %L"
#: plugin.py:623
msgid "No factoids have been requested from my database."
msgstr "Aucune factoid n'a été demandée dans ma base de données."
#: plugin.py:627
msgid ""
"[<channel>] <author name>\n"
"\n"
" Lists the keys of the factoids with the given author. Note that if an\n"
" author has an integer name, you'll have to use that author's id to use\n"
" this function (so don't use integer usernames!). <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <auteur>\n"
"\n"
"Liste les clefs de l'auteur donné. Notez que si l'auteur a un nom qui est un nombre entier, vous devrez donner l'ID de l'auteur pour utiliser cette fonction (donc, n'utilisez pas de nombres entiers comme noms d'utilisateur !) <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:640
msgid "No factoids by %q found."
msgstr "Aucune factoid par %q ne peut être trouvée."
#: plugin.py:643
msgid "Author search for %q (%i found): %L"
msgstr "Recherche d'auteur pour %q (%i trouvé(s)) : %L"
#: plugin.py:650
msgid ""
"[<channel>] <text>\n"
"\n"
" Lists the keys of the factoids whose key contains the provided text.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] <texte>\n"
"\n"
"Liste les clefs des factoids dont la clef contient le texte fourni. <canal> n'est nécessaire que si la commande n'est pas envoyée sur le canal lui-même."
#: plugin.py:658
msgid "No keys matching %q found."
msgstr "Aucune factoid correspondant à %q trouvée."
#: plugin.py:665
msgid "Key search for %q (%i found): %L"
msgstr "Recherche de clef pour %q (%i trouvée(s)) : %L"
#: plugin.py:672
msgid ""
"[<channel>] <text>\n"
"\n"
" Lists the keys of the factoids whose value contains the provided text.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] <texte>\n"
"\n"
"Liste les clefs dont la valeur contient le texte recherché. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:680
msgid "No values matching %q found."
msgstr "Aucune valeur correspondant à %q trouvée."
#: plugin.py:683
msgid "Value search for %q (%i found): %L"
msgstr "Recherche de valeurs pour %q (%i trouvée(s)) : %L"
#: plugin.py:690
msgid ""
"[<channel>] <factoid key>\n"
"\n"
" Deletes the factoid with the given key. <channel> is only necessary\n"
" if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <clef>\n"
"\n"
"Supprime la factoid avec la clef donnée. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:703
msgid ""
"[<channel>]\n"
"\n"
" Displays a random factoid (along with its key) from the database.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<channel>]\n"
"\n"
"Affiche une factoid aléatoire (avec sa clef) de la base de données. <canal> n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:711
msgid "No factoids in the database."
msgstr "Aucune factoid dans la base de données."

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2010-10-17 16:36+CEST\n"
"POT-Creation-Date: 2010-10-29 12:02+CEST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -28,38 +28,38 @@ msgid ""
" when the 'most' command is called."
msgstr ""
#: plugin.py:293
#: plugin.py:292
#, docstring
msgid ""
"Add the help for \"@help MoobotFactoids\" here (assuming you don't implement a MoobotFactoids\n"
" command). This should describe *how* to use this plugin."
msgstr ""
#: plugin.py:350
#: plugin.py:349
msgid "%s is %s"
msgstr ""
#: plugin.py:369
#: plugin.py:368
msgid "Factoid %q is locked."
msgstr ""
#: plugin.py:376
#: plugin.py:375
msgid "Factoid %q not found."
msgstr ""
#: plugin.py:386
#: plugin.py:385
msgid "Missing an 'is' or '_is_'."
msgstr ""
#: plugin.py:402
#: plugin.py:401
msgid "Factoid %q already exists."
msgstr ""
#: plugin.py:436
#: plugin.py:435
msgid "%s, or %s"
msgstr ""
#: plugin.py:457
#: plugin.py:456
#, docstring
msgid ""
"[<channel>] <factoid key>\n"
@ -70,7 +70,7 @@ msgid ""
" "
msgstr ""
#: plugin.py:470
#: plugin.py:469
#, docstring
msgid ""
"[<channel>] <factoid key>\n"
@ -81,39 +81,39 @@ msgid ""
" "
msgstr ""
#: plugin.py:481 plugin.py:521
#: plugin.py:480 plugin.py:520
msgid "No such factoid: %q"
msgstr ""
#: plugin.py:490
#: plugin.py:489
msgid "Created by %s on %s."
msgstr ""
#: plugin.py:496
#: plugin.py:495
msgid " Last modified by %s on %s."
msgstr ""
#: plugin.py:504
#: plugin.py:503
msgid " Last requested by %s on %s, requested %n."
msgstr ""
#: plugin.py:511
#: plugin.py:510
msgid " Locked by %s on %s."
msgstr ""
#: plugin.py:526
#: plugin.py:525
msgid "Factoid %q is already locked."
msgstr ""
#: plugin.py:529
#: plugin.py:528
msgid "Factoid %q is not locked."
msgstr ""
#: plugin.py:539
#: plugin.py:538
msgid "Cannot %s someone else's factoid unless you are an admin."
msgstr ""
#: plugin.py:551
#: plugin.py:550
#, docstring
msgid ""
"[<channel>] <factoid key>\n"
@ -124,7 +124,7 @@ msgid ""
" "
msgstr ""
#: plugin.py:562
#: plugin.py:561
#, docstring
msgid ""
"[<channel>] <factoid key>\n"
@ -135,7 +135,7 @@ msgid ""
" "
msgstr ""
#: plugin.py:573
#: plugin.py:572
#, docstring
msgid ""
"[<channel>] {popular|authored|recent}\n"
@ -148,43 +148,51 @@ msgid ""
" "
msgstr ""
#: plugin.py:598
#: plugin.py:594
msgid "author"
msgstr ""
#: plugin.py:596
msgid "authors"
msgstr ""
#: plugin.py:597
msgid "Most prolific %s: %L"
msgstr ""
#: plugin.py:600 plugin.py:612
#: plugin.py:599 plugin.py:611
msgid "There are no factoids in my database."
msgstr ""
#: plugin.py:607
#: plugin.py:606
msgid "latest factoid"
msgstr ""
#: plugin.py:609
#: plugin.py:608
msgid "latest factoids"
msgstr ""
#: plugin.py:610
#: plugin.py:609
msgid "%s: %L"
msgstr ""
#: plugin.py:619
#: plugin.py:618
msgid "requested factoid"
msgstr ""
#: plugin.py:621
#: plugin.py:620
msgid "requested factoids"
msgstr ""
#: plugin.py:622
#: plugin.py:621
msgid "Top %s: %L"
msgstr ""
#: plugin.py:624
#: plugin.py:623
msgid "No factoids have been requested from my database."
msgstr ""
#: plugin.py:628
#: plugin.py:627
#, docstring
msgid ""
"[<channel>] <author name>\n"
@ -196,15 +204,15 @@ msgid ""
" "
msgstr ""
#: plugin.py:641
#: plugin.py:640
msgid "No factoids by %q found."
msgstr ""
#: plugin.py:644
#: plugin.py:643
msgid "Author search for %q (%i found): %L"
msgstr ""
#: plugin.py:651
#: plugin.py:650
#, docstring
msgid ""
"[<channel>] <text>\n"
@ -215,15 +223,15 @@ msgid ""
" "
msgstr ""
#: plugin.py:659
#: plugin.py:658
msgid "No keys matching %q found."
msgstr ""
#: plugin.py:666
#: plugin.py:665
msgid "Key search for %q (%i found): %L"
msgstr ""
#: plugin.py:673
#: plugin.py:672
#, docstring
msgid ""
"[<channel>] <text>\n"
@ -234,15 +242,15 @@ msgid ""
" "
msgstr ""
#: plugin.py:681
#: plugin.py:680
msgid "No values matching %q found."
msgstr ""
#: plugin.py:684
#: plugin.py:683
msgid "Value search for %q (%i found): %L"
msgstr ""
#: plugin.py:691
#: plugin.py:690
#, docstring
msgid ""
"[<channel>] <factoid key>\n"
@ -252,7 +260,7 @@ msgid ""
" "
msgstr ""
#: plugin.py:704
#: plugin.py:703
#, docstring
msgid ""
"[<channel>]\n"
@ -263,7 +271,7 @@ msgid ""
" "
msgstr ""
#: plugin.py:712
#: plugin.py:711
msgid "No factoids in the database."
msgstr ""

View File

@ -591,9 +591,9 @@ class MoobotFactoids(callbacks.Plugin):
L = ['%s (%s)' % (plugins.getUserName(t[0]), int(t[1]))
for t in results]
if L:
author = 'author'
author = _('author')
if len(L) != 1:
author = 'authors'
author = _('authors')
irc.reply(format(_('Most prolific %s: %L'), author, L))
else:
irc.error(_('There are no factoids in my database.'))

View File

@ -0,0 +1,186 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-16 12:52+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:57
msgid ""
"[--ssl] <network> [<host[:port]>] [<password>]\n"
"\n"
" Connects to another network (which will be represented by the name\n"
" provided in <network>) at <host:port>. If port is not provided, it\n"
" defaults to 6667, the default port for IRC. If password is\n"
" provided, it will be sent to the server in a PASS command. If --ssl is\n"
" provided, an SSL connection will be attempted.\n"
" "
msgstr ""
"[--ssl] <nom> [<hôte[:port]>] [<mot de passe>]\n"
"\n"
"Se connecter à un autre réseau (représenté par le <nom>) au <hôte:port>. Si le port n'est pas fourni, il s'agit du 6667, celui par défaut pour IRC. Si le <mot de passe> est fourni, l'envoie au serveur par la commande PASS. Si --ssl est fourni, une connexion SSL sera requise."
#: plugin.py:67
msgid "I'm already connected to %s."
msgstr "Je suis déjà connecté à %s."
#: plugin.py:87
msgid "A server must be provided if the network is not already registered."
msgstr "Un serveur doit être fourni si le réseau n'est pas déjà enregistré."
#: plugin.py:95
msgid "Connection to %s initiated."
msgstr "Connexion à %s initialisée."
#: plugin.py:102
msgid ""
"[<network>] [<quit message>]\n"
"\n"
" Disconnects from the network represented by the network <network>.\n"
" If <quit message> is given, quits the network with the given quit\n"
" message. <network> is only necessary if the network is different\n"
" from the network the command is sent on.\n"
" "
msgstr ""
"[<réseau>] [<message de quit>]\n"
"\n"
"Se déconnecte du <réseau>. Si le <message de quit> est fourni, quitte le réseau avec ce message. Le <réseau> n'est nécessaire que s'il ne s'agit pas du réseau sur lequel la commande est envoyée."
#: plugin.py:114
msgid "Disconnection to %s initiated."
msgstr "Déconnexion à %s initialisée."
#: plugin.py:120
msgid ""
"[<network>] [<quit message>]\n"
"\n"
" Disconnects and then reconnects to <network>. If no network is given,\n"
" disconnects and then reconnects to the network the command was given\n"
" on. If no quit message is given, uses the configured one\n"
" (supybot.plugins.Owner.quitMsg) or the nick of the person giving the\n"
" command.\n"
" "
msgstr ""
"[<réseau>] [<message de quit>]\n"
"\n"
"Se déconnecte du <réseau> et s'y reconnecte. Si le <message de quit> est fourni, quitte le réseau avec ce message. Le <réseau> n'est nécessaire que s'il ne s'agit pas du réseau sur lequel la commande est envoyée."
#: plugin.py:137
msgid ""
"<network> <command> [<arg> ...]\n"
"\n"
" Gives the bot <command> (with its associated <arg>s) on <network>.\n"
" "
msgstr ""
"<réseau> <commande> [<arg> ...]\n"
"\n"
"Envoie la <commande> au bot (avez des arguments) sur le <réseau>."
#: plugin.py:210
msgid "is an op on %L"
msgstr "est op sur %L"
#: plugin.py:212
msgid "is a halfop on %L"
msgstr "est halfop sur %L"
#: plugin.py:214
msgid "is voiced on %L"
msgstr "est voicé sur %L"
#: plugin.py:217
msgid "is also on %L"
msgstr "est aussi sur %L"
#: plugin.py:219
msgid "is on %L"
msgstr "est sur %L"
#: plugin.py:221
msgid "isn't on any non-secret channels"
msgstr "n'est sur aucun canal non secret"
#: plugin.py:228
#: plugin.py:229
#: plugin.py:233
msgid "<unknown>"
msgstr "<inconnu>"
#: plugin.py:240
msgid " identified"
msgstr " identifié"
#: plugin.py:245
msgid "%s (%s) has been%s on server %s since %s (idle for %s) and %s.%s"
msgstr "%s (%s) a été%s sur le serveur %s depuis %s (idle depuis %s) et %s.%s"
#: plugin.py:258
msgid "There is no %s on %s."
msgstr "Il n'y a pas de %s sur %s."
#: plugin.py:264
msgid ""
"[<network>] <nick>\n"
"\n"
" Returns the WHOIS response <network> gives for <nick>. <network> is\n"
" only necessary if the network is different than the network the command\n"
" is sent on.\n"
" "
msgstr ""
"[<réseau>] <nick>\n"
"\n"
"Retourne les réponses WHOIS du <réseau> pour le <nick>. Le <réseau> n'est nécessaire que s'il ne s'agit pas du réseau sur lequel la commande est envoyée."
#: plugin.py:280
msgid ""
"takes no arguments\n"
"\n"
" Returns the networks to which the bot is currently connected.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
" \n"
"Retourne la liste des réseaux auxquels le bot est actuellement connecté."
#: plugin.py:293
msgid "%.2f seconds."
msgstr "%.2f secondes"
#: plugin.py:297
msgid ""
"[<network>]\n"
"\n"
" Returns the current latency to <network>. <network> is only necessary\n"
" if the message isn't sent on the network to which this command is to\n"
" apply.\n"
" "
msgstr ""
"[<réseau>]\n"
"\n"
"Retourne la latence actuelle du <réseau>. Le <réseau> n'est nécessaire que s'il ne s'agit pas du réseau sur lequel la commande est envoyée."
#: plugin.py:303
msgid "Latency check (from %s)."
msgstr "Vérification de lance (de %s)."
#: plugin.py:311
msgid ""
"[<network>]\n"
"\n"
" Returns the current network driver for <network>. <network> is only\n"
" necessary if the message isn't sent on the network to which this\n"
" command is to apply.\n"
" "
msgstr ""
"[<réseau>]\n"
"\n"
"Retourne le 'driver' actuel pour le <réseau>. Le <réseau> n'est nécessaire que s'il ne s'agit pas du réseau sur lequel la commande est envoyée."

117
plugins/News/locale/fr.po Normal file
View File

@ -0,0 +1,117 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 16:53+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:57
msgid "%s (Subject: %q, added by %s on %s)"
msgstr "%s (Sujet : %q, ajouté par %s le %s)"
#: plugin.py:61
msgid "%s (Subject: %q, added by %s on %s, expires at %s)"
msgstr "%s (Sujet : %q, ajouté par %s le %s, expire à %s)"
#: plugin.py:120
msgid ""
"[<channel>] <expires> <subject>: <text>\n"
"\n"
" Adds a given news item of <text> to a channel with the given <subject>.\n"
" If <expires> isn't 0, that news item will expire <expires> seconds from\n"
" now. <channel> is only necessary if the message isn't sent in the\n"
" channel itself.\n"
" "
msgstr ""
"[<canal>] <expiration> <sujet>: <texte>\n"
"\n"
"Ajoute la news donnée, contenant le <texte> à un <canal>, avec le <sujet> donné. Si l'<expiration> n'est pas 0, la news expirera dans le nombre donné de secondes. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:132
msgid "(News item #%i added)"
msgstr "(News #%i ajoutée)"
#: plugin.py:137
msgid ""
"[<channel>] [<id>]\n"
"\n"
" Display the news items for <channel> in the format of '(#id) subject'.\n"
" If <id> is given, retrieve only that news item; otherwise retrieve all\n"
" news items. <channel> is only necessary if the message isn't sent in\n"
" the channel itself.\n"
" "
msgstr ""
"[<canal>] [<id>]\n"
"\n"
"Affiche une news sur le <canal> dans le format'(#id) sujet'. Si l'<id> est donné, ne récupère que la news correspondante ; sinon, récupère toutes les news. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:148
msgid "News for %s: %s"
msgstr "News pour %s : %s"
#: plugin.py:151
msgid "No news for %s."
msgstr "Pas de news pour %s."
#: plugin.py:157
#: plugin.py:171
#: plugin.py:187
#: plugin.py:203
msgid "news item id"
msgstr "id de news"
#: plugin.py:162
msgid ""
"[<channel>] <id>\n"
"\n"
" Removes the news item with <id> from <channel>. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <id>\n"
"\n"
"Retourne la news avec l'<id> du <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:176
msgid ""
"[<channel>] <id> <regexp>\n"
"\n"
" Changes the news item with <id> from <channel> according to the\n"
" regular expression <regexp>. <regexp> should be of the form\n"
" s/text/replacement/flags. <channel> is only necessary if the message\n"
" isn't sent on the channel itself.\n"
" "
msgstr ""
"[<canal>] <id> <regexp>\n"
"\n"
"Change la news ayant cet <id> sur le <canal>, en accord avec l'expression régulière <regexp>. La <regexp> doit être de la forme s/text/replacement/flags. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:192
msgid ""
"[<channel>] [<id>]\n"
"\n"
" Returns the old news item for <channel> with <id>. If no number is\n"
" given, returns all the old news items in reverse order. <channel> is\n"
" only necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] [<id>]\n"
"\n"
"Retourne l'ancienne news du <canal> avec l'<id>. Si aucun nombre n'est donné, retourne toutes les anciennes news, dans l'ordre inverse. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:208
msgid "Old news for %s: %s"
msgstr "Anciennes news pour %s : %s"
#: plugin.py:211
msgid "No old news for %s."
msgstr "Pas d'ancienne news pour %s."

View File

@ -0,0 +1,38 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 16:58+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:47
msgid ""
"Determines whether the bot will check\n"
" occasionally if its preferred nick is in use via the ISON command."
msgstr "Détermine si le bot vérifiera occasionnellement si son nick préféré est en cours d'utilisation grâce à la commande ISON."
#: config.py:50
msgid ""
"Determines how often (in seconds) the bot\n"
" will check whether its nick ISON."
msgstr "Détermine tous les combien de temps (en secondes) le bot vérifiera son nick via ISON"
#: plugin.py:41
msgid ""
"This module constantly tries to take whatever nick is configured as\n"
" supybot.nick. Just make sure that's set appropriately, and thus plugin\n"
" will do the rest."
msgstr "Ce module essaye constament de récupérer le nick configuré dans supybot.nick. Assurez-vous de le configurer correctement, et ce plugin fera le reste."
#: plugin.py:90
msgid "This is returned by the ISON command."
msgstr "Ceci est retourné par la commande ISON."

View File

@ -0,0 +1,31 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 18:28+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:84
msgid ""
"[<nick>]\n"
"\n"
" Tells you how lame said nick is. If <nick> is not given, uses the\n"
" nick of the person giving the command.\n"
" "
msgstr ""
"[<nick>]\n"
"\n"
"Mesure la décrédibilité du nick. Si le nick n'est pas donné, utilise le nick de la personne donnant la commande."
#: plugin.py:226
msgid "The \"lame nick-o-meter\" reading for \"%s\" is %s%%."
msgstr "Le \"décrédibilit-o-mètre\" pour \"%s\" donne %s%%."

100
plugins/Note/locale/fr.po Normal file
View File

@ -0,0 +1,100 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-29 13:54+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:179
msgid ""
"<recipient>,[<recipient>,[...]] <text>\n"
"\n"
" Sends a new note to the user specified. Multiple recipients may be\n"
" specified by separating their names by commas.\n"
" "
msgstr ""
"<destinataire>,[<destinataire>,...] <texte>\n"
"\n"
"Envoie la nouvelle note aux utilisateurs spécifiés. De multiples destainaires peuvent être spécifiés en séparant leur noms par des virgules."
#: plugin.py:195
msgid ""
"<id> <text>\n"
"\n"
" Sends a note in reply to <id>.\n"
" "
msgstr ""
"<id> <texte>\n"
"\n"
"envoie une note en réponse à celle <id>."
#: plugin.py:219
msgid ""
"<id>\n"
"\n"
" Unsends the note with the id given. You must be the\n"
" author of the note, and it must be unread.\n"
" "
msgstr ""
"<id>\n"
"\n"
"Désenvoie la note d'<id> donné. Vous devez être l'auteur de la note, et elle ne doit pas être lue."
#: plugin.py:251
msgid ""
"<id>\n"
"\n"
" Retrieves a single note by its unique note id. Use the 'note list'\n"
" command to see what unread notes you have.\n"
" "
msgstr ""
"<id>\n"
"\n"
"Récupère une seule note par son <id> unique. Utilisez la commande 'note list' pour voir combien de notes non lues vous avez."
#: plugin.py:281
msgid ""
"[--{regexp} <value>] [--sent] [<glob>]\n"
"\n"
" Searches your received notes for ones matching <glob>. If --regexp is\n"
" given, its associated value is taken as a regexp and matched against\n"
" the notes. If --sent is specified, only search sent notes.\n"
" "
msgstr ""
"[--{regexp} <valeur>] [--sent] [<glob>]\n"
"\n"
"Recherche les notes correspondant au <glob> dans vos notes reçues. Si --regexp est donné, sa valeur associée est utilisé comme expression régulière et est à nouveau recherchée dans les notes. Si --sent est donné, ne recherche que dans les notes envoyées."
#: plugin.py:320
msgid ""
"[--{old,sent}] [--{from,to} <user>]\n"
"\n"
" Retrieves the ids of all your unread notes. If --old is given, list\n"
" read notes. If --sent is given, list notes that you have sent. If\n"
" --from is specified, only lists notes sent to you from <user>. If\n"
" --to is specified, only lists notes sent by you to <user>.\n"
" "
msgstr ""
"[--{old,sent}] [--{from,to} <utilisateur>]\n"
"\n"
"Récupère les id de toutes vos news non lues. Si --old est donné, liste les news lues. Si --sent est donné, liste les news que vous avez envoyées. Si --from est spécifié, liste seulement les news envoyées par l'<utilisateur>. Si --to est spécifié, liste seulement les news envoyées par l'<utilisateur>."
#: plugin.py:361
msgid ""
"takes no arguments\n"
"\n"
" Retrieves your next unread note, if any.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Récupère votre note non lue suivant, s'il y en a une."

88
plugins/Note/messages.pot Normal file
View File

@ -0,0 +1,88 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2010-10-29 13:54+CEST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
#: plugin.py:179
#, docstring
msgid ""
"<recipient>,[<recipient>,[...]] <text>\n"
"\n"
" Sends a new note to the user specified. Multiple recipients may be\n"
" specified by separating their names by commas.\n"
" "
msgstr ""
#: plugin.py:195
#, docstring
msgid ""
"<id> <text>\n"
"\n"
" Sends a note in reply to <id>.\n"
" "
msgstr ""
#: plugin.py:219
#, docstring
msgid ""
"<id>\n"
"\n"
" Unsends the note with the id given. You must be the\n"
" author of the note, and it must be unread.\n"
" "
msgstr ""
#: plugin.py:251
#, docstring
msgid ""
"<id>\n"
"\n"
" Retrieves a single note by its unique note id. Use the 'note list'\n"
" command to see what unread notes you have.\n"
" "
msgstr ""
#: plugin.py:281
#, docstring
msgid ""
"[--{regexp} <value>] [--sent] [<glob>]\n"
"\n"
" Searches your received notes for ones matching <glob>. If --regexp is\n"
" given, its associated value is taken as a regexp and matched against\n"
" the notes. If --sent is specified, only search sent notes.\n"
" "
msgstr ""
#: plugin.py:320
#, docstring
msgid ""
"[--{old,sent}] [--{from,to} <user>]\n"
"\n"
" Retrieves the ids of all your unread notes. If --old is given, list\n"
" read notes. If --sent is given, list notes that you have sent. If\n"
" --from is specified, only lists notes sent to you from <user>. If\n"
" --to is specified, only lists notes sent by you to <user>.\n"
" "
msgstr ""
#: plugin.py:361
#, docstring
msgid ""
"takes no arguments\n"
"\n"
" Retrieves your next unread note, if any.\n"
" "
msgstr ""

206
plugins/Owner/locale/fr.po Normal file
View File

@ -0,0 +1,206 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-29 14:47+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:270
msgid ""
"<text>\n"
"\n"
" Logs <text> to the global Supybot log at critical priority. Useful for\n"
" marking logfiles for later searching.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Log le <texte> aux logs globaux de Supybot avec une priorité critique. Utile pour marquer les fichiers de logs pour des recherches ultérieures."
#: plugin.py:280
msgid ""
"<text>\n"
"\n"
" Sends <text> to all channels the bot is currently on and not\n"
" lobotomized in.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Envoie le <texte> à tous les canaux sur lesquels le bot est sans être lobotomisé."
#: plugin.py:295
msgid ""
"[--remove] <command> [<plugin>]\n"
"\n"
" Sets the default plugin for <command> to <plugin>. If --remove is\n"
" given, removes the current default plugin for <command>. If no plugin\n"
" is given, returns the current default plugin set for <command>. See\n"
" also, supybot.commands.defaultPlugins.importantPlugins.\n"
" "
msgstr ""
"[--remove] <commande> [<plugin>]\n"
"\n"
"Défini le <plugin> par défaut de la <commande>. Si --remove est donné, le commande par défaut actuelle est supprimée. Si aucun plugin n'est donné, retourne le plugin par défaut actuel. Voyez supybot.commands.defaultPlugins.importantPlugins pour plus d'informations."
#: plugin.py:333
msgid ""
"<string to be sent to the server>\n"
"\n"
" Sends the raw string given to the server.\n"
" "
msgstr ""
"<chaîne à envoyer au serveur>\n"
"\n"
"Envoie la chaîne directement au serveur."
#: plugin.py:347
msgid ""
"[<text>]\n"
"\n"
" Exits the bot with the QUIT message <text>. If <text> is not given,\n"
" the default quit message (supybot.plugins.Owner.quitMsg) will be used.\n"
" If there is no default quitMsg set, your nick will be used.\n"
" "
msgstr ""
"[<texte>]\n"
"\n"
"Fait quitter le bot avec le message de quit <texte>. Si le <texte> n'est pas donné, le message de quit par défaut (supybot.plugins.Owner.quitMsg) est utilisé. Si quitMsg est vide, votre nick sera utilisé."
#: plugin.py:363
msgid ""
"takes no arguments\n"
"\n"
" Runs all the periodic flushers in world.flushers. This includes\n"
" flushing all logs and all configuration changes to disk.\n"
" "
msgstr ""
"ne prend pas d'argument.\n"
"\n"
"Lance tous les 'flushers' périodiques dans world.flushers. Ceci inclue l'écriture des logs et de la configuration sur le disque."
#: plugin.py:373
msgid ""
"[<level>]\n"
"\n"
" Runs the standard upkeep stuff (flushes and gc.collects()). If given\n"
" a level, runs that level of upkeep (currently, the only supported\n"
" level is \"high\", which causes the bot to flush a lot of caches as well\n"
" as do normal upkeep stuff.\n"
" "
msgstr ""
"[<niveau>]\n"
"\n"
"Renvoie le 'upkeep' standard (flushes et gc.collect()). Si un niveau est donné, lance le niveau d'upkeep (actuellement, le seul niveau supporté est \"high\", ce qui fait que le bot vide beaucoup plus de cache que ce qu'il fait normalement)."
#: plugin.py:412
msgid ""
"[--deprecated] <plugin>\n"
"\n"
" Loads the plugin <plugin> from any of the directories in\n"
" conf.supybot.directories.plugins; usually this includes the main\n"
" installed directory and 'plugins' in the current directory.\n"
" --deprecated is necessary if you wish to load deprecated plugins.\n"
" "
msgstr ""
"[--deprecated] <plugin>\n"
"\n"
"Charge le <plugin> de n'importe lequel des répertoires dans conf.supybot.directories.plugins, ce qui inclue généralement le répertoire principal de l'installation, et 'plugins' dans le répertoire courrant. Utilisez --deprected si nécessaire pour charger des plugins dépréciés."
#: plugin.py:447
msgid ""
"<plugin>\n"
"\n"
" Unloads and subsequently reloads the plugin by name; use the 'list'\n"
" command to see a list of the currently loaded plugins.\n"
" "
msgstr ""
"<plugin>\n"
"\n"
"Décharger et recharge immédiatement le <plugin> ; utilisez la commande 'list' pour lister les plugins actuellement chargés."
#: plugin.py:476
msgid ""
"<plugin>\n"
"\n"
" Unloads the callback by name; use the 'list' command to see a list\n"
" of the currently loaded callbacks. Obviously, the Owner plugin can't\n"
" be unloaded.\n"
" "
msgstr ""
"<plugin>\n"
"\n"
"Décharger le <plugin> ; utilisez la commande 'list' pour lister les plugins actuellement chargés. Évidemment, le plugin Owner ne peut être déchargé."
#: plugin.py:500
msgid ""
"{add|remove} <capability>\n"
"\n"
" Adds or removes (according to the first argument) <capability> from the\n"
" default capabilities given to users (the configuration variable\n"
" supybot.capabilities stores these).\n"
" "
msgstr ""
"{add|remove} <permission>\n"
"\n"
"Ajoute ou supprime (en fonction du premier argument) la <permission> à la liste des permissions par défaut données aux utilisateurs (stockée dans la variable de configuration supybot.capabilities)."
#: plugin.py:525
msgid ""
"[<plugin>] <command>\n"
"\n"
" Disables the command <command> for all users (including the owners).\n"
" If <plugin> is given, only disables the <command> from <plugin>. If\n"
" you want to disable a command for most users but not for yourself, set\n"
" a default capability of -plugin.command or -command (if you want to\n"
" disable the command in all plugins).\n"
" "
msgstr ""
"[<plugin>] <commande>\n"
"\n"
"Désactive la <commande> pour tous les utilisateurs (y compris le propriétaire. Si le <plugin> est donné, ne désactive la <commande> que pour le <plugin>. Si vous voulez désactiver la commande pour tous les utilisateurs sauf vous-même, définissez la permission par défaut -plugin.command ou -command."
#: plugin.py:552
msgid ""
"[<plugin>] <command>\n"
"\n"
" Enables the command <command> for all users. If <plugin>\n"
" if given, only enables the <command> from <plugin>. This command is\n"
" the inverse of disable.\n"
" "
msgstr ""
"[<plugin>] <commande>\n"
"\n"
"Active la <commande> pour tous les utilisateurs. Si le <plugin> est donné, ne réactive la <commande> que pour le <plugin>. Cette commande est l'inverse de disable."
#: plugin.py:571
msgid ""
"<plugin> <command> <new name>\n"
"\n"
" Renames <command> in <plugin> to the <new name>.\n"
" "
msgstr ""
"<plugin> <commande> <nouveau nom>\n"
"\n"
"Renomme la <commande> du <plugin> par un <nouveau nom>."
#: plugin.py:588
msgid ""
"<plugin>\n"
"\n"
" Removes all renames in <plugin>. The plugin will be reloaded after\n"
" this command is run.\n"
" "
msgstr ""
"<plugin>\n"
"\n"
"Supprime tous les renommages du <plugin>. Ce plugin sera rechargé après que cette commande ait été lancée."

178
plugins/Owner/messages.pot Normal file
View File

@ -0,0 +1,178 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2010-10-29 14:47+CEST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
#: plugin.py:270
#, docstring
msgid ""
"<text>\n"
"\n"
" Logs <text> to the global Supybot log at critical priority. Useful for\n"
" marking logfiles for later searching.\n"
" "
msgstr ""
#: plugin.py:280
#, docstring
msgid ""
"<text>\n"
"\n"
" Sends <text> to all channels the bot is currently on and not\n"
" lobotomized in.\n"
" "
msgstr ""
#: plugin.py:295
#, docstring
msgid ""
"[--remove] <command> [<plugin>]\n"
"\n"
" Sets the default plugin for <command> to <plugin>. If --remove is\n"
" given, removes the current default plugin for <command>. If no plugin\n"
" is given, returns the current default plugin set for <command>. See\n"
" also, supybot.commands.defaultPlugins.importantPlugins.\n"
" "
msgstr ""
#: plugin.py:333
#, docstring
msgid ""
"<string to be sent to the server>\n"
"\n"
" Sends the raw string given to the server.\n"
" "
msgstr ""
#: plugin.py:347
#, docstring
msgid ""
"[<text>]\n"
"\n"
" Exits the bot with the QUIT message <text>. If <text> is not given,\n"
" the default quit message (supybot.plugins.Owner.quitMsg) will be used.\n"
" If there is no default quitMsg set, your nick will be used.\n"
" "
msgstr ""
#: plugin.py:363
#, docstring
msgid ""
"takes no arguments\n"
"\n"
" Runs all the periodic flushers in world.flushers. This includes\n"
" flushing all logs and all configuration changes to disk.\n"
" "
msgstr ""
#: plugin.py:373
#, docstring
msgid ""
"[<level>]\n"
"\n"
" Runs the standard upkeep stuff (flushes and gc.collects()). If given\n"
" a level, runs that level of upkeep (currently, the only supported\n"
" level is \"high\", which causes the bot to flush a lot of caches as well\n"
" as do normal upkeep stuff.\n"
" "
msgstr ""
#: plugin.py:412
#, docstring
msgid ""
"[--deprecated] <plugin>\n"
"\n"
" Loads the plugin <plugin> from any of the directories in\n"
" conf.supybot.directories.plugins; usually this includes the main\n"
" installed directory and 'plugins' in the current directory.\n"
" --deprecated is necessary if you wish to load deprecated plugins.\n"
" "
msgstr ""
#: plugin.py:447
#, docstring
msgid ""
"<plugin>\n"
"\n"
" Unloads and subsequently reloads the plugin by name; use the 'list'\n"
" command to see a list of the currently loaded plugins.\n"
" "
msgstr ""
#: plugin.py:476
#, docstring
msgid ""
"<plugin>\n"
"\n"
" Unloads the callback by name; use the 'list' command to see a list\n"
" of the currently loaded callbacks. Obviously, the Owner plugin can't\n"
" be unloaded.\n"
" "
msgstr ""
#: plugin.py:500
#, docstring
msgid ""
"{add|remove} <capability>\n"
"\n"
" Adds or removes (according to the first argument) <capability> from the\n"
" default capabilities given to users (the configuration variable\n"
" supybot.capabilities stores these).\n"
" "
msgstr ""
#: plugin.py:525
#, docstring
msgid ""
"[<plugin>] <command>\n"
"\n"
" Disables the command <command> for all users (including the owners).\n"
" If <plugin> is given, only disables the <command> from <plugin>. If\n"
" you want to disable a command for most users but not for yourself, set\n"
" a default capability of -plugin.command or -command (if you want to\n"
" disable the command in all plugins).\n"
" "
msgstr ""
#: plugin.py:552
#, docstring
msgid ""
"[<plugin>] <command>\n"
"\n"
" Enables the command <command> for all users. If <plugin>\n"
" if given, only enables the <command> from <plugin>. This command is\n"
" the inverse of disable.\n"
" "
msgstr ""
#: plugin.py:571
#, docstring
msgid ""
"<plugin> <command> <new name>\n"
"\n"
" Renames <command> in <plugin> to the <new name>.\n"
" "
msgstr ""
#: plugin.py:588
#, docstring
msgid ""
"<plugin>\n"
"\n"
" Removes all renames in <plugin>. The plugin will be reloaded after\n"
" this command is run.\n"
" "
msgstr ""

219
plugins/Plugin/locale/fr.po Normal file
View File

@ -0,0 +1,219 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-16 13:50+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:43
msgid ""
"This plugin exists to help users manage their plugins. Use 'plugin\n"
" list' to list the loaded plugins; use 'plugin help' to get the description\n"
" of a plugin; use the 'plugin' command itself to determine what plugin a\n"
" command exists in."
msgstr "Ce plugin existe pour aider les utilisateurs à gérer leurs plugins. Utilisez 'list' pour liser les plugins chargés ; utilisez 'help' pour avoir de l'aide quant à d'autres plugins ; utilisez la commande 'plugin' elle-même pour déterminer dans quel plugin une commande existe."
#: plugin.py:49
msgid ""
"<plugin>\n"
"\n"
" Returns a useful description of how to use <plugin>, if the plugin has\n"
" one.\n"
" "
msgstr ""
"<plugin>\n"
"\n"
"Retourne une description utile de comment utiliser le <plugin>, si le plugin en a une."
#: plugin.py:58
msgid "That plugin is loaded, but has no plugin help."
msgstr "Ce plugin est chargé mais n'a pas d'aide."
#: plugin.py:63
msgid ""
"takes no arguments\n"
"\n"
" Returns a list of the currently loaded plugins.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne une liste des plugins actuellement chargés."
#: plugin.py:74
msgid ""
"<command>\n"
"\n"
" Returns the plugin(s) that <command> is in.\n"
" "
msgstr ""
"<commande>\n"
"\n"
"Retourne le(s) plugin(s) ayant la <commande>."
#: plugin.py:89
msgid "plugins"
msgstr "plugins"
#: plugin.py:91
msgid "plugin"
msgstr "plugin"
#: plugin.py:92
msgid "The %q command is available in the %L %s."
msgstr "La commande %q est disponibles dans le(s) plugin %v."
#: plugin.py:95
msgid "There is no command %q."
msgstr "Il n'y a pas de commande q."
#: plugin.py:100
msgid ""
"<plugin>\n"
"\n"
" Returns the author of <plugin>. This is the person you should talk to\n"
" if you have ideas, suggestions, or other comments about a given plugin.\n"
" "
msgstr ""
"<plugin>\n"
"\n"
"Retourne l'auteur du <plugin>. C'est la personne à qui vous devriez parler si vous avez des idées, suggestions, ou d'autres commentaires à propos d'un plugin donné."
#: plugin.py:106
msgid "That plugin does not seem to be loaded."
msgstr "Ce plugin ne semble pas être chargé."
#: plugin.py:112
msgid "That plugin doesn't have an author that claims it."
msgstr "Ce plugin n'a pas d'auteur."
#: plugin.py:117
msgid ""
"<plugin> [<nick>]\n"
"\n"
" Replies with a list of people who made contributions to a given plugin.\n"
" If <nick> is specified, that person's specific contributions will\n"
" be listed. Note: The <nick> is the part inside of the parentheses\n"
" in the people listing.\n"
" "
msgstr ""
"<plugin> [<nick>]\n"
"\n"
"Renvoie une liste des personnes ayant contribué à un plugin donné. Si le <nick> est spécifié, les contributions de cette personne seront lisées. Note : <nick> est la partie entre parenthèses lors du listing des personnes."
#: plugin.py:125
msgid ""
"\n"
" Take an Authors object, and return only the name and nick values\n"
" in the format 'First Last (nick)'.\n"
" "
msgstr ""
#: plugin.py:131
msgid ""
"\n"
" Take a list of long names and turn it into :\n"
" shortname[, shortname and shortname].\n"
" "
msgstr ""
#: plugin.py:138
msgid ""
"\n"
" Sort the list of 'long names' based on the number of contributions\n"
" associated with each.\n"
" "
msgstr ""
#: plugin.py:148
msgid ""
"\n"
" Build the list of author + contributors (if any) for the requested\n"
" plugin.\n"
" "
msgstr ""
#: plugin.py:152
msgid "The %s plugin"
msgstr "Le plugin s"
#: plugin.py:153
msgid "has not been claimed by an author"
msgstr "n'a aucun auteur"
#: plugin.py:154
msgid "and"
msgstr "et"
#: plugin.py:155
msgid "has no contributors listed."
msgstr "n'a pas de contributeur listé."
#: plugin.py:160
msgid "was written by %s"
msgstr "a été écrit par %s"
#: plugin.py:171
msgid "%s %h contributed to it."
msgstr "%s y %h contribué."
#: plugin.py:176
msgid "has no additional contributors listed."
msgstr "n'a pas d'autre contributeur listé."
#: plugin.py:178
msgid "but"
msgstr "mais"
#: plugin.py:181
msgid ""
"\n"
" Build the list of contributions (if any) for the requested person\n"
" for the requested plugin\n"
" "
msgstr ""
#: plugin.py:195
msgid "The nick specified (%s) is not a registered contributor."
msgstr "Le nick spécifié(%s) n'est pas un contributeur enregistré."
#: plugin.py:201
msgid "The %s plugin does not have '%s' listed as a contributor."
msgstr "Le plugin %s n'a pas '%s' listé comme contributeur."
#: plugin.py:209
msgid "command"
msgstr "commande"
#: plugin.py:212
msgid "the %L %s"
msgstr "La/les commande(s) %L%v"
#: plugin.py:214
msgid "the %L"
msgstr "La/les %L"
#: plugin.py:217
msgid "%s wrote the %s plugin and also contributed %L."
msgstr "%s a écrit le plugin %s et a aussi contribué à %L"
#: plugin.py:220
msgid "%s contributed %L to the %s plugin."
msgstr "%s a contribué à %L et au plugin %s"
#: plugin.py:223
msgid "%s wrote the %s plugin"
msgstr "%s a écrit le plugin %s"
#: plugin.py:226
msgid "%s has no listed contributions for the %s plugin."
msgstr "%s n'a pas de contribution listée pour le plugin %s."

View File

@ -0,0 +1,59 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 18:33+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:49
msgid ""
"Determines whether the bot will show the ids of\n"
" a praise when the praise is given."
msgstr "Détermine si le bot affichera les ids des louanges lorsqu'une louange est donnée."
#: plugin.py:40
msgid ""
"Praise is a plugin for ... well, praising things. Feel free to add\n"
" your own flavor to it by customizing what praises it gives. Use \"praise\n"
" add <text>\" to add new ones, making sure to include \"$who\" in <text> where\n"
" you want to insert the thing being praised.\n"
" "
msgstr "Praise est un plugin pour... mmh... louer des gens et des choses. Sentez-vous libre de personnaliser à votre goût pourquoi vous louez ceci. Utilisez \"praise add\" pour ajouter les vôtres, et assurez-vous d'ajouter \"$who\" dans le <texte> là où vous voulez insérer le nom de la chose à louer."
#: plugin.py:54
msgid "Praises must contain $who."
msgstr "Les louanges doivent contenir $who"
#: plugin.py:58
msgid ""
"[<channel>] [<id>] <who|what> [for <reason>]\n"
"\n"
" Praises <who|what> (for <reason>, if given). If <id> is given, uses\n"
" that specific praise. <channel> is only necessary if the message isn't\n"
" sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] [<id>] <qui|quoi> [for <raison>]\n"
"\n"
"Loue <qui|quoi> (pour la <raison>, si elle est donnée). Si l'<id> est donné, utilise une louange spécifique. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:74
msgid "There is no praise with id #%i."
msgstr "Il n'y a pas de louange d'id #%i"
#: plugin.py:79
msgid "There are no praises in my database for %s."
msgstr "Il n'y a pas de louange dans ma base de données pour %s."
#: plugin.py:87
msgid " for "
msgstr " pour "

View File

@ -0,0 +1,29 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 18:34+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:47
msgid ""
"Determines whether this plugin is enabled in a\n"
" given channel."
msgstr "Détermine si le plugin est activé sur un canal donné."
#: config.py:54
msgid ""
"Determines what nicks the bot will consider to\n"
" be immune from enforcement. These nicks will not even have their actions\n"
" watched by this plugin. In general, only the ChanServ for this network\n"
" will be in this list."
msgstr "Détermine quels nicks le bot considérera comme imunisés. Les actions de ces nicks ne seront pas surveillés par ce plugin. En général, seul le ChanServ de ce réseau doit être dans cette liste."

View File

@ -0,0 +1,31 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 18:34+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:38
msgid ""
"[<channel>]\n"
"\n"
" Returns a random quote from <channel>. <channel> is only necessary if\n"
" the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Retourne une citation aléatoire du <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:47
msgid "I have no quotes in my database for %s."
msgstr "Je n'ai pas de citation dans ma base de données pour %s."

View File

@ -0,0 +1,181 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-17 18:36+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:49
msgid ""
"Determines whether the bot will randomly grab\n"
" possibly-suitable quotes on occasion. The suitability of a given message\n"
" is determined by ..."
msgstr "Détermine si le bot récupèrera automatiquement des quotes éligible à une quote. L'éligibilté est déterminée par..."
#: config.py:54
msgid ""
"Determines about how many seconds, on\n"
" average, should elapse between random grabs. This is only an average\n"
" value; grabs can happen from any time after half this time until never,\n"
" although that's unlikely to occur."
msgstr "Détermine le nombre de secondes, en moyenne, entre deux récupération de citations. Il s'agit seulement d'une moyenne, et les prises de citation peuvent être faites n'importe quand après la moitié de ce temps, voire jamais, même si c'est improbable."
#: config.py:59
msgid ""
"Determines the minimum\n"
" number of words in a message for it to be considered for random\n"
" grabbing."
msgstr "Détermine le nombre minimum de mots dans un message pour être éligible à la quotation aléatoire."
#: config.py:63
msgid ""
"Determines the\n"
" minimum number of characters in a message for it to be considered for\n"
" random grabbing."
msgstr "Détermine le nombre minimum de caractères dans un message pour être éligible à la quotation aléatoire."
#: plugin.py:57
msgid "%s (Said by: %s; grabbed by %s at %t)"
msgstr "%s (Dit par %s ; récupéré par %s à %t)"
#: plugin.py:210
msgid "Add the help for \"@help QuoteGrabs\" here."
msgstr ""
#: plugin.py:249
msgid ""
"[<channel>] <nick>\n"
"\n"
" Grabs a quote from <channel> by <nick> for the quotegrabs table.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] <nick>\n"
"\n"
"Récupère une quote du <canal> par le <nick> dans la table des citations. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:262
msgid "You can't quote grab yourself."
msgstr "Vous ne pouvez récupérer des citations de vous-même."
#: plugin.py:269
msgid "I couldn't find a proper message to grab."
msgstr "Je ne peux trouver de message à quoter."
#: plugin.py:274
msgid ""
"[<channel>] <number>\n"
"\n"
" Removes the grab <number> (the last by default) on <channel>.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] <nombre>\n"
"\n"
"Supprime la quote désignée par le <nombre> (la dernière par défaut) sur le <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:285
msgid "Nothing to ungrab."
msgstr "Rien à dé-quoter"
#: plugin.py:287
msgid "Invalid grab number."
msgstr "Numéro de quote invalide."
#: plugin.py:292
msgid ""
"[<channel>] <nick>\n"
"\n"
" Returns <nick>'s latest quote grab in <channel>. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <nick>\n"
"\n"
"Retourne le nick de la dernière personne citée sur le <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:300
msgid "I couldn't find a matching quotegrab for %s."
msgstr "Je ne peux trouver de quote coresspondant à %s."
#: plugin.py:306
msgid ""
"[<channel>] <nick>\n"
"\n"
" Returns a list of shortened quotes that have been grabbed for <nick>\n"
" as well as the id of each quote. These ids can be used to get the\n"
" full quote. <channel> is only necessary if the message isn't sent in\n"
" the channel itself.\n"
" "
msgstr ""
"[<canal>] <nick>\n"
"\n"
"Retourne une liste de quotes raccourcies que ont été récupérées pour le <nick>, ainsi que l'id de chaque quote. Les ids peuvent être utilisés pour récupérer les quotes entières. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:323
msgid "I couldn't find any quotegrabs for %s."
msgstr "Je ne peux trouver de citation pour %s"
#: plugin.py:329
msgid ""
"[<channel>] [<nick>]\n"
"\n"
" Returns a randomly grabbed quote, optionally choosing only from those\n"
" quotes grabbed for <nick>. <channel> is only necessary if the message\n"
" isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] [<nick>]\n"
"\n"
"Retourne une citation aléatoire, éventuellement parmis les citations récupérées de <nick>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:339
msgid "Couldn't get a random quote for that nick."
msgstr "Je ne peux récupérer une quote aléatoire pour ce nick."
#: plugin.py:341
msgid "Couldn't get a random quote. Are there any grabbed quotes in the database?"
msgstr "Je ne peux récupérer de quote aléatoire. Y a-t-il des quotes dans la base de données ?"
#: plugin.py:347
msgid ""
"[<channel>] <id>\n"
"\n"
" Return the quotegrab with the given <id>. <channel> is only necessary\n"
" if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <id>\n"
"\n"
"Retourne la quote d'<id> donné. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:355
msgid "No quotegrab for id %s"
msgstr "Pas de quote d'id %s"
#: plugin.py:361
msgid ""
"[<channel>] <text>\n"
"\n"
" Searches for <text> in a quote. <channel> is only necessary if the\n"
" message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <texte>\n"
"\n"
"Recherche le <texte> dans les citations. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:376
msgid "No quotegrabs matching %s"
msgstr "Aucune quote ne correspond à %s"

173
plugins/RSS/locale/fr.po Normal file
View File

@ -0,0 +1,173 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-19 19:27+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:50
msgid ""
"Determines whether the bot will bold the title of the feed when it\n"
" announces new news."
msgstr "Détermine si le bot mettera en gras le titre des flux lorsqu'il annoncera des news."
#: config.py:53
msgid ""
"Determines what string is used\n"
" to separate headlines in new feeds."
msgstr "Détermine quelle chaîne est utilisé pour séparer les titres dans les nouveaux flux."
#: config.py:56
msgid ""
"Determines what prefix\n"
" is prepended (if any) to the new news item announcements made in the\n"
" channel."
msgstr "Détermine quel préfixe (s'il y en a un) est utilisé pour annoncer les news sur le canal."
#: config.py:60
msgid ""
"Determines which RSS feeds\n"
" should be announced in the channel; valid input is a list of strings\n"
" (either registered RSS feeds or RSS feed URLs) separated by spaces."
msgstr "Détermine quels flux RSS seront annoncés sur le canal ; une entrée valide est une liste de chaînes (des flux enregistrés ou des URLs de flux RSS), séparées par des espaces."
#: config.py:64
msgid ""
"Indicates how many seconds the bot will\n"
" wait between retrieving RSS feeds; requests made within this period will\n"
" return cached results."
msgstr "Détermine le temps (en secondes) entre deux rafraichissement des flux RSS. Durant cette période, les flux seront mis en cache."
#: config.py:68
msgid ""
"Determines what feeds should be accessible as\n"
" commands."
msgstr "Détermine quels flux sont accessibles en tant que commande."
#: config.py:71
msgid ""
"Determines whether the bot will list the link\n"
" along with the title of the feed when the rss command is called.\n"
" supybot.plugins.RSS.announce.showLinks affects whether links will be\n"
" listed when a feed is automatically announced."
msgstr "Détermine si le bot listera le lien de chaque flus avec son titre, lorsque la commande rss est appelée. supybot.plugins.RSS.announce.showLinks affecte si les liens sont affichés lorsqu'un flux est annoncé automatiquement."
#: config.py:78
msgid ""
"Determines whether the bot will list the link\n"
" along with the title of the feed when a feed is automatically\n"
" announced."
msgstr "Détermine si le bot listera le lien de chaque flux avec le titre lorsqu'un flux est automatiquement annoncé."
#: plugin.py:63
msgid ""
"This plugin is useful both for announcing updates to RSS feeds in a\n"
" channel, and for retrieving the headlines of RSS feeds via command. Use\n"
" the \"add\" command to add feeds to this plugin, and use the \"announce\"\n"
" command to determine what feeds should be announced in a given channel."
msgstr "Ce plugin est utile pour annoncer des flux RSS sur un canal, et pour récupérer les en-tête des flux RSS via une commande. Utilisez la commande \"add\" pour ajouter des flux au plugin, et utilisez la commande \"annonce\" pour détermine quels flux pourront être annoncés sur un canal donné."
#: plugin.py:311
msgid ""
"<name> <url>\n"
"\n"
" Adds a command to this plugin that will look up the RSS feed at the\n"
" given URL.\n"
" "
msgstr ""
"<nom> <url>\n"
"\n"
"Ajoute un commande à ce plugin qui permet de regarder le flux situé à l'<url>."
#: plugin.py:322
msgid ""
"<name>\n"
"\n"
" Removes the command for looking up RSS feeds at <name> from\n"
" this plugin.\n"
" "
msgstr ""
"<nom>\n"
"\n"
"Supprime le flux des flux qui peuvent être lus grâce à une commande."
#: plugin.py:328
msgid "That's not a valid RSS feed command name."
msgstr "Ce n'est pas une commande de flux RSS valide"
#: plugin.py:346
msgid "I am currently not announcing any feeds."
msgstr "Je n'annonce actuellement aucun flux."
#: plugin.py:351
msgid ""
"[<channel>] <name|url> [<name|url> ...]\n"
"\n"
" Adds the list of feeds to the current list of announced feeds in\n"
" <channel>. Valid feeds include the names of registered feeds as\n"
" well as URLs for RSS feeds. <channel> is only necessary if the\n"
" message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <nom|url> [<nom|url> ...]\n"
"\n"
"Ajoute la liste de flux à la liste actuelle des flux annoncés sur le <canal>. Vous devez indiquer le <nom> du flux si il est déjà enregistré, ou l'<url> dans le cas contraire. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:369
msgid ""
"[<channel>] <name|url> [<name|url> ...]\n"
"\n"
" Removes the list of feeds from the current list of announced feeds\n"
" in <channel>. Valid feeds include the names of registered feeds as\n"
" well as URLs for RSS feeds. <channel> is only necessary if the\n"
" message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <nom|url> [<nom|url> ...]\n"
"\n"
"Supprime la liste de flux de la liste actuelle des flux annoncés sur le <canal>. Vous devez indiquer le <nom> du flux si il est déjà enregistré, ou l'<url> dans le cas contraire. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:387
msgid ""
"<url> [<number of headlines>]\n"
"\n"
" Gets the title components of the given RSS feed.\n"
" If <number of headlines> is given, return only that many headlines.\n"
" "
msgstr ""
"<url> [<nombre de lignes>]\n"
"\n"
"Récupère le titre des éléments du flux RSS donné. si le <nombre de lignes> est donné, ne retourne que ce nombre de lignes d'en-tête."
#: plugin.py:400
msgid "Couldn't get RSS feed."
msgstr "Ne peut récupérer le flux RSS."
#: plugin.py:413
msgid ""
"<url|feed>\n"
"\n"
" Returns information from the given RSS feed, namely the title,\n"
" URL, description, and last update date, if available.\n"
" "
msgstr ""
"<url|flux>\n"
"\n"
"Retourne des informations sur le flux RSS donné : le titre, l'URL, la description, et la dernière mise à jour."
#: plugin.py:426
msgid "I couldn't retrieve that RSS feed."
msgstr "Je ne peux récupérer ce flux RSS."
#: plugin.py:439
msgid "Title: %s; URL: %u; Description: %s; Last updated: %s."
msgstr "Titre : %s , URL : %u ; description : %s ; dernière mise à jour : %s."

221
plugins/Relay/locale/fr.po Normal file
View File

@ -0,0 +1,221 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-19 19:27+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:39
msgid "Would you like to relay between any channels?"
msgstr "Voulez-vous relayer entre des canaux ?"
#: config.py:40
msgid "What channels? Separated them by spaces."
msgstr "Quels canaux ? Séparez-les par des espaces."
#: config.py:42
msgid "Would you like to use color to distinguish between nicks?"
msgstr "Voulez-vous utiliser de la couleur pour distinguer les nicks ?"
#: config.py:59
msgid ""
"Determines whether the bot will color relayed\n"
" PRIVMSGs so as to make the messages easier to read."
msgstr "Détermine si le bot colorera les PRIVMSGs relayez, pour rendre les messages plus faciles à lire."
#: config.py:62
msgid ""
"Determines whether the bot will synchronize\n"
" topics between networks in the channels it relays."
msgstr "Détermine si le bot synchronisera les topics entre les réseaux sur les canaux qu'il relaye."
#: config.py:65
msgid ""
"Determines whether the bot will relay the\n"
" hostmask of the person joining or parting the channel when he or she joins\n"
" or parts."
msgstr "Détermine si le bot relayera le masque d'hôte d'une personne joignant ou partant d'un canal."
#: config.py:69
msgid ""
"Determines whether the bot will include the\n"
" network in relayed PRIVMSGs; if you're only relaying between two networks,\n"
" it's somewhat redundant, and you may wish to save the space."
msgstr "Détermine si le bot inclurera le réseau dans les PRIVMSG relayés ; si vous ne relayez qu'entre deux réseaux, ce sera quelque chose de redondant que vous pouvez supprimer pour gagner de la place."
#: config.py:73
msgid ""
"Determines whether the bot will detect other\n"
" bots relaying and respond by kickbanning them."
msgstr "Détermine si le bot détectera d'autres bots relayant et y répondra en les kickbannissant."
#: config.py:76
msgid ""
"Determines which channels the bot\n"
" will relay in."
msgstr "Détermine sur quels canaux le bot relayera."
#: config.py:79
msgid ""
"Determines whether the bot\n"
" will always join the channel(s) it relays for on all networks the bot is\n"
" connected to."
msgstr "Détermine si le bot rejoindra toujours le(s) canal(aux) qu'il relaye sur tous les réseaux auxquels il est connecté."
#: config.py:83
msgid ""
"Determines what hostmasks will not be relayed on a\n"
" channel."
msgstr "Détermine quels masques d'hôte ne seront pas relayés sur un canal."
#: config.py:86
msgid ""
"Determines whether the bot will used NOTICEs\n"
" rather than PRIVMSGs for non-PRIVMSG relay messages (i.e., joins, parts,\n"
" nicks, quits, modes, etc.)"
msgstr "Détermine si le bot utilisera des NOTICEs plutôt que des PRIVMSG pour les messages relayés qui ne concernent pas un PRIVMSG (arrivée, départ, changement de nick, quits, modes, etc.)"
#: plugin.py:99
msgid ""
"[<channel>]\n"
"\n"
" Starts relaying between the channel <channel> on all networks. If on a\n"
" network the bot isn't in <channel>, he'll join. This commands is\n"
" required even if the bot is in the channel on both networks; he won't\n"
" relay between those channels unless he's told to join both\n"
" channels. If <channel> is not given, starts relaying on the channel\n"
" the message was sent in.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Commence à relayer le canal <canal> sur tous les réseaux. Si il y a un réseau sur lequel le bot n'est pas sur <canal>, il y entrera. Cette commande est requise même si le bot est sur le canal sur tous les réseaux ; il ne relayera pas tant qu'on ne lui a pas dit de rejoindre les canaux sur tous les réseaux. Si <canal> n'est pas donné, il commencera à relayer sur le canal où a été envoyé le message."
#: plugin.py:118
msgid ""
"<channel>\n"
"\n"
" Ceases relaying between the channel <channel> on all networks. The bot\n"
" will part from the channel on all networks in which it is on the\n"
" channel.\n"
" "
msgstr ""
"<canal>\n"
"\n"
"Cesse de relayer entre les canaux <canal> sur tous les réseaux. Le bot partira de ces canaux sur tous les réseaux si il y est."
#: plugin.py:133
msgid ""
"[<channel>]\n"
"\n"
" Returns the nicks of the people in the channel on the various networks\n"
" the bot is connected to. <channel> is only necessary if the message\n"
" isn't sent on the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Retourne les nicks des personnes sur le canal sur les différents réseaux sur lesquels est connecté le bot. <canal> n'est nécessaire que si l'on n'est pas sur le canal lui-même."
#: plugin.py:223
msgid "is an op on %L"
msgstr "est op sur %L"
#: plugin.py:225
msgid "is a halfop on %L"
msgstr "est halfop sur %L"
#: plugin.py:227
msgid "is voiced on %L"
msgstr "est voice sur %L"
#: plugin.py:230
msgid "is also on %L"
msgstr "est aussi sur %L"
#: plugin.py:232
msgid "is on %L"
msgstr "est sur %L"
#: plugin.py:234
msgid "isn't on any non-secret channels"
msgstr "n'est sur aucun canal non-secret"
#: plugin.py:241
#: plugin.py:242
#: plugin.py:246
msgid "<unknown>"
msgstr "<inconnu>"
#: plugin.py:248
msgid " %s is away: %s."
msgstr "%s est away : %s"
#: plugin.py:253
msgid " identified"
msgstr "identifié"
#: plugin.py:258
msgid "%s (%s) has been%s on server %s since %s (idle for %s) and %s.%s"
msgstr "%s (%s) a été vu%s sur le serveur %s depuis %s (idle depuis %s) et %s.%s"
#: plugin.py:273
msgid "There is no %s on %s."
msgstr "Il n'y a pas de %s sur %s."
#: plugin.py:342
msgid "You seem to be relaying, punk."
msgstr "Tu sembles relayer, enfoiré"
#: plugin.py:395
msgid "%s%s has joined on %s"
msgstr "%s%s est arrivé sur %s"
#: plugin.py:410
msgid "%s%s has left on %s (%s)"
msgstr "%s%s est parti de %s (%s)"
#: plugin.py:413
msgid "%s%s has left on %s"
msgstr "%s%s est parti de %s"
#: plugin.py:423
msgid "mode change by %s on %s: %s"
msgstr "changement de mode par %s sur %s : %s"
#: plugin.py:435
msgid "%s was kicked by %s on %s (%s)"
msgstr "%s a été kické par %s sur %s (%s)"
#: plugin.py:438
msgid "%s was kicked by %s on %s"
msgstr "%s a été kické par %s sur %s"
#: plugin.py:447
msgid "nick change by %s to %s on %s"
msgstr "changement de nick : %s -> %s sur %s"
#: plugin.py:477
msgid "topic change by %s on %s: %s"
msgstr "changement de topic par %s sur %s : %s"
#: plugin.py:486
msgid "%s has quit %s (%s)"
msgstr "%s a quitté %s (%s)"
#: plugin.py:488
msgid "%s has quit %s."
msgstr "%s a quitté %s."
#: plugin.py:498
msgid "disconnected from %s: %s"
msgstr "déconnecté de %s : %s"

View File

@ -0,0 +1,70 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-19 19:27+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:38
msgid ""
"This plugins contains a few commands that construct various types of\n"
" replies. Some bot owners would be wise to not load this plugin because it\n"
" can be easily abused.\n"
" "
msgstr "Ce plugin contient quelques commandes pour construire différents types de réponses. Certains propriétaires de bots pourraient ne pas vouloir le charger, car on peut facilement en abuser."
#: plugin.py:44
msgid ""
"<text>\n"
"\n"
" Replies with <text> in private. Use nested commands to your benefit\n"
" here.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Répond avec le <texte> en privé. Utile pour les commandes imbriquées."
#: plugin.py:54
msgid ""
"<text>\n"
"\n"
" Replies with <text> as an action. use nested commands to your benefit\n"
" here.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Répond avec le <texte> comme une action. Utile pour les commandes imbriquées."
#: plugin.py:67
msgid ""
"<text>\n"
"\n"
" Replies with <text> in a notice. Use nested commands to your benefit\n"
" here. If you want a private notice, nest the private command.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Répond avec le <texte> en notice. Utile pour les commandes imbriquées."
#: plugin.py:77
msgid ""
"<text>\n"
"\n"
" Replies with <text>. Equivalent to the alias, 'echo $nick: $1'.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Répond avec le <texte>. Équivalent à l'alias 'echo $nick: $i'."

View File

@ -0,0 +1,87 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-19 19:28+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:47
msgid "Makes a function suitable for scheduling from command."
msgstr "Crée une fonction utilisable pour la programmation à partir d'une commande."
#: plugin.py:57
msgid ""
"<seconds> <command>\n"
"\n"
" Schedules the command string <command> to run <seconds> seconds in the\n"
" future. For example, 'scheduler add [seconds 30m] \"echo [cpu]\"' will\n"
" schedule the command \"cpu\" to be sent to the channel the schedule add\n"
" command was given in (with no prefixed nick, a consequence of using\n"
" echo). Do pay attention to the quotes in that example.\n"
" "
msgstr ""
"<secondes> <commande>\n"
"\n"
"Exécute la <commande> dans un certain nombre de <secondes>. Par exemple, 'scheduler add [seconds 30m] \"echo [cpu]\"' programmera la commande 'cpu' pour être envoyée sur le canal. Faites attention à l'utilisateur des guillemets dans cet exemple."
#: plugin.py:69
msgid "Event #%i added."
msgstr "Évènement #%i ajotué."
#: plugin.py:74
msgid ""
"<id>\n"
"\n"
" Removes the event scheduled with id <id> from the schedule.\n"
" "
msgstr ""
"<id>\n"
"\n"
"Déprogramme l'évènement programmé d'<id> donné."
#: plugin.py:88
#: plugin.py:90
msgid "Invalid event id."
msgstr "Id d'évènement invalide."
#: plugin.py:95
msgid ""
"<name> <seconds> <command>\n"
"\n"
" Schedules the command <command> to run every <seconds> seconds,\n"
" starting now (i.e., the command runs now, and every <seconds> seconds\n"
" thereafter). <name> is a name by which the command can be\n"
" unscheduled.\n"
" "
msgstr ""
"<nom> <secondes> <commande>\n"
"\n"
"Programme la <commande> pour être lancée toutes les <secondes>, à partir de maintenant (c'est à dire que la commande est lancée maintenant, dans un certain nombres de <secondes>, puis dans deux fois ce temps, etc). Le <nom> est utilisé pour déprogrammer la commande."
#: plugin.py:104
msgid "There is already an event with that name, please choose another name."
msgstr "Il y a déjà un évènement avec ce nom, veuillez en choisir un autre."
#: plugin.py:117
msgid ""
"takes no arguments\n"
"\n"
" Lists the currently scheduled events.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Liste tous les évènement actuellement programmés"
#: plugin.py:128
msgid "There are currently no scheduled commands."
msgstr "Il n'y a actuellement aucune commande programmée."

128
plugins/Seen/locale/fr.po Normal file
View File

@ -0,0 +1,128 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 08:52+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:203
#: plugin.py:284
msgid "%s was last seen in %s %s ago: %s"
msgstr "%s a été vu pour la dernière fois sur %i il y a %s : %s"
#: plugin.py:210
msgid "%s (%s ago)"
msgstr "%s (il y a %s)"
#: plugin.py:212
msgid "%s could be %L"
msgstr "%s doit être %L"
#: plugin.py:212
msgid "or"
msgstr "ou"
#: plugin.py:214
msgid "I haven't seen anyone matching %s."
msgstr "Je n'ai vu personne correspondant à %s."
#: plugin.py:216
#: plugin.py:288
msgid "I have not seen %s."
msgstr "Je n'ai pas vu %s."
#: plugin.py:220
msgid ""
"[<channel>] <nick>\n"
"\n"
" Returns the last time <nick> was seen and what <nick> was last seen\n"
" saying. <channel> is only necessary if the message isn't sent on the\n"
" channel itself.\n"
" "
msgstr ""
"[<canal>] <nick>\n"
"\n"
"Retourne la dernière fois que le <nick> a été vu et la dernière fois que <nick> a parlé. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:231
msgid ""
"[<channel>] [--user <name>] [<nick>]\n"
"\n"
" Returns the last time <nick> was seen and what <nick> was last seen\n"
" doing. This includes any form of activity, instead of just PRIVMSGs.\n"
" If <nick> isn't specified, returns the last activity seen in\n"
" <channel>. If --user is specified, looks up name in the user database\n"
" and returns the last time user was active in <channel>. <channel> is\n"
" only necessary if the message isn't sent on the channel itself.\n"
" "
msgstr ""
"[<canal>] [--user <nom>] [<nick>]\n"
"\n"
"Retourne la dernière fois que le <nick> a été vu et ce quand il a fait quelque chose pour la première fois. Cela inclue toute forme d'activité, et pas uniquement envoyer des messages. Si le <nick> n'est pas donné, retourne la dernière activité vue sur le <canal>. Si --user est spécifié, recherche le nom dans la base de données des utilisateurs la dernière fois que celui en question a été vu actif sur le <canal. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:261
msgid "Someone was last seen in %s %s ago: %s"
msgstr "Quelqu'un a été vu pour la dernière fois sur %s il y a %s : %s"
#: plugin.py:265
msgid "I have never seen anyone."
msgstr "Je n'ai jamais vu personne."
#: plugin.py:269
msgid ""
"[<channel>]\n"
"\n"
" Returns the last thing said in <channel>. <channel> is only necessary\n"
" if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Retourne la dernière chose dite sur le <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:292
msgid ""
"[<channel>] <name>\n"
"\n"
" Returns the last time <name> was seen and what <name> was last seen\n"
" saying. This looks up <name> in the user seen database, which means\n"
" that it could be any nick recognized as user <name> that was seen.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] <nom>\n"
"\n"
"Retourne la dernière fois que <nom> a été vu et la dernière fois que <nom> a été vu parler. Cela recherche <nom> dans la base de données des utilisateurs vus, ce qui signifit que si le nick n'était pas reconnu comme l'utilisateur <nom>, il n'est pas considéré comme vu. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:305
msgid ""
"[<channel>] <nick>\n"
"\n"
" Returns the messages since <nick> last left the channel.\n"
" "
msgstr ""
"[<canal>] <nick>\n"
"\n"
"Retourne les messages depuis que <nick> est parti du canal."
#: plugin.py:312
msgid "You must be in %s to use this command."
msgstr "Vous devez être sur %s pour utiliser cette commande."
#: plugin.py:333
msgid "I couldn't find in my history of %s messages where %r last left the %s"
msgstr "Je ne peux pas trouver dans mon historique de %s messages, où %r a quitté il y a %s"
#: plugin.py:342
msgid "Either %s didn't leave, or no messages were sent while %s was gone."
msgstr "Soit %s n'est jamais parti, soit aucun message n'a été envoyé depuis qu'il est parti."

View File

@ -0,0 +1,248 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 08:55+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:39
msgid "Determines what password the bot will use with NickServ when identifying as %s."
msgstr "Détermine quel mot de passe le bot utilisera pour s'identifier à NickServ lors de l'identification à %s."
#: config.py:49
msgid "What is your registered nick?"
msgstr "Quel est votre nick enregistré ?"
#: config.py:50
msgid "What is your password for that nick?"
msgstr "Quel est votre mot de passe pour ce nick ?"
#: config.py:51
msgid "What is your ChanServ named?"
msgstr "Comment est nommé ChanServ ?"
#: config.py:52
msgid "What is your NickServ named?"
msgstr "Comment est nommé NickServ ?"
#: config.py:70
msgid ""
"Determines what nicks the bot will use with\n"
" services."
msgstr "Détermine quels nicks le bot utilisera avec les services."
#: config.py:77
msgid ""
"Determines what networks this plugin\n"
" will be disabled on."
msgstr "Détermine sur quels réseaux ce plugin sera désactivé."
#: config.py:77
msgid "QuakeNet"
msgstr "QuakeNet"
#: config.py:81
msgid ""
"Determines whether the bot will not join any\n"
" channels until it is identified. This may be useful, for instances, if\n"
" you have a vhost that isn't set until you're identified, or if you're\n"
" joining +r channels that won't allow you to join unless you identify."
msgstr "Détermine si le bot peut rejoindre un ou des canal(aux) avant d'être identifié. Ce peut être utilise, par exemple si vous utilisez une vhost qui n'est activée qu'une fois que vous êtes identifié, ou encore si vous devez rejoindre des canaux en +r (=des canaux que l'on ne peut joindre sans être identifié)"
#: config.py:86
msgid ""
"Determines how many seconds the bot will\n"
" wait between successive GHOST attempts."
msgstr "Détermine le nombre de secondes entre deux tentatives successives de GHOST."
#: config.py:89
msgid ""
"Determines what nick the 'NickServ' service\n"
" has."
msgstr "Détermine quel nick NickServ a."
#: config.py:93
msgid ""
"Determines what nick the 'ChanServ' service\n"
" has."
msgstr "Détermine quel nick ChanServ a."
#: config.py:96
msgid ""
"Determines what password the bot will use with\n"
" ChanServ."
msgstr "Détermine quel mot de passe le bot utilisera avec ChanServ."
#: config.py:99
msgid ""
"Determines whether the bot will request to get\n"
" opped by the ChanServ when it joins the channel."
msgstr "Détermine si le bot demandera à être oppé par ChanServ lorsqu'il rejoint le canal."
#: config.py:102
msgid ""
"Determines whether the bot will request to get\n"
" half-opped by the ChanServ when it joins the channel."
msgstr "Détermine si le bot demandera à être oppé par NickServ lorsqu'il rejoint le canal."
#: config.py:105
msgid ""
"Determines whether the bot will request to get\n"
" voiced by the ChanServ when it joins the channel."
msgstr "Détermine si le bot demandera à être voicé par ChanServ lorsqu'il rejoint le canal."
#: plugin.py:48
msgid ""
"This plugin handles dealing with Services on networks that provide them.\n"
" Basically, you should use the \"password\" command to tell the bot a nick to\n"
" identify with and what password to use to identify with that nick. You can\n"
" use the password command multiple times if your bot has multiple nicks\n"
" registered. Also, be sure to configure the NickServ and ChanServ\n"
" configuration variables to match the NickServ and ChanServ nicks on your\n"
" network. Other commands such as identify, op, etc. should not be\n"
" necessary if the bot is properly configured."
msgstr "Ce plugin gère les services sur les réseaux qui en fournissent. En général, vous pouvez utiliser la commande 'password' pour dire au bot de prendre un nick et de s'identifier avec le mot de passe. Vous pouvez utiliser la commande 'password' autant de fois que le bot a de nicks enregistrés. Aussi, assurez-vous de configurer les variables NickServ et ChanServ pour correspondre à leurs nicks respectifs sur le réseau en question. D'autres commandes, comme 'identify', 'op', ... ne sont pas nécessaires quand le bot est configuré correctement."
#: plugin.py:396
msgid "You must set supybot.plugins.Services.ChanServ before I'm able to send the %s command."
msgstr "vous devez définir supybot.plugins.Services.ChanServ avant que je ne puisse envoyer la commande %s"
#: plugin.py:402
msgid ""
"[<channel>]\n"
"\n"
" Attempts to get opped by ChanServ in <channel>. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Demande à être opé par ChanServ sur le <canal>. <canal> n'est nécessaire que si la commande n'est pas envoyée sur le canal lui-même."
#: plugin.py:408
msgid "I'm already opped in %s."
msgstr "Je suis déjà opé sur %s."
#: plugin.py:415
msgid ""
"[<channel>]\n"
"\n"
" Attempts to get voiced by ChanServ in <channel>. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
" Demande à être voicé par ChanServ sur le <canal>. <canal> n'est nécessaire que si la commande n'est pas envoyée sur le canal lui-même."
#: plugin.py:421
msgid "I'm already voiced in %s."
msgstr "Je suis déjà voicé sur %s."
#: plugin.py:438
msgid ""
"[<channel>]\n"
"\n"
" Attempts to get unbanned by ChanServ in <channel>. <channel> is only\n"
" necessary if the message isn't sent in the channel itself, but chances\n"
" are, if you need this command, you're not sending it in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Cherche à être débanni par ChanServ sur le <canal>. <canal> n'est nécessaire que si la commande n'est pas envoyée sur le canal lui-même, mais, vous n'avez probablement pas besoin d'utiliser cette commande sur le canal en question."
#: plugin.py:459
msgid ""
"[<channel>]\n"
"\n"
" Attempts to get invited by ChanServ to <channel>. <channel> is only\n"
" necessary if the message isn't sent in the channel itself, but chances\n"
" are, if you need this command, you're not sending it in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Cherche à être invité par ChanServ sur le <canal>. <canal> n'est nécessaire que si la commande n'est pas envoyée sur le canal lui-même, mais, vous n'avez probablement pas besoin d'utiliser cette commande sur le canal en question."
#: plugin.py:480
msgid ""
"takes no arguments\n"
"\n"
" Identifies with NickServ using the current nick.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"S'identifie auprès de NickServ, en utilisant le nick actuel."
#: plugin.py:489
msgid "I don't have a configured password for my current nick."
msgstr "Je n'ai pas de mot de passe configuré pour mon nick actuel."
#: plugin.py:492
msgid "You must set supybot.plugins.Services.NickServ before I'm able to do identify."
msgstr "Vous devez définir supybot.plugins.Services.NickServ avant que je ne puisse m'identifier"
#: plugin.py:498
msgid ""
"[<nick>]\n"
"\n"
" Ghosts the bot's given nick and takes it. If no nick is given,\n"
" ghosts the bot's configured nick and takes it.\n"
" "
msgstr ""
"[<nick>]\n"
"\n"
"Ghost le nick donné du bot et le prend. Si aucun nick n'est donné, utilise celui configuré."
#: plugin.py:507
msgid "I cowardly refuse to ghost myself."
msgstr "Je suis trop couard pour me ghoster moi-même."
#: plugin.py:512
msgid "You must set supybot.plugins.Services.NickServ before I'm able to ghost a nick."
msgstr "Vous devez définir supybot.plugins.Services.NickServ avant que je ne puisse ghoster un nick."
#: plugin.py:518
msgid ""
"<nick> [<password>]\n"
"\n"
" Sets the NickServ password for <nick> to <password>. If <password> is\n"
" not given, removes <nick> from the configured nicks.\n"
" "
msgstr ""
"<nick> [<mot de passe>]\n"
"\n"
"Défini le <mot de passe> NickServ pour le <nick>. Si le <mot de passe> n'est pas donné, supprime <nick> de la liste des nis, configurés."
#: plugin.py:528
msgid "That nick was not configured with a password."
msgstr "Ce nick n'est pas configuré avec un mot de passe."
#: plugin.py:539
msgid ""
"takes no arguments\n"
"\n"
" Returns the nicks that this plugin is configured to identify and ghost\n"
" with.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne les nicks pour lesquels ce plugin est configuré pour s'identifier et ghoster."
#: plugin.py:549
msgid "I'm not currently configured for any nicks."
msgstr "Je ne suis actuellement configuré pour aucun nick."

View File

@ -0,0 +1,125 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 08:55+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:39
msgid ""
"This plugin offers a snarfer that will go retrieve a shorter\n"
" version of long URLs that are sent to the channel. Would you\n"
" like this snarfer to be enabled?"
msgstr "Ce plugin offre un snarfer qui récupère de longues URLs envoyées sur un canal pour en envoyer une version plus courte. Voulez-vous activer ce snarfer ?"
#: config.py:45
#: config.py:49
msgid "Valid values include 'ln', 'tiny', 'xrl', and 'x0'."
msgstr "Les valeurs valides incluent 'ln', 'tiny', 'xrl', et 'x0'."
#: config.py:71
msgid ""
"Determines whether the\n"
" shrink snarfer is enabled. This snarfer will watch for URLs in the\n"
" channel, and if they're sufficiently long (as determined by\n"
" supybot.plugins.ShrinkUrl.minimumLength) it will post a\n"
" smaller URL from either ln-s.net or tinyurl.com, as denoted in\n"
" supybot.plugins.ShrinkUrl.default."
msgstr "Détermine si le snarfer d'URL est activé. Ce remplaceur sera à l'écoute de toutes les URLs sur lle canal, et, si elle sont suffisamment longues (déterminé par supybot.plugins.ShrinkUrl.minimumLength) le bot postera une URL raccourcie avec ln-s.net ou tinyurl.com, comme défini par supybot.plugins.ShrinkUrl.default."
#: config.py:78
msgid ""
"Determines whether the snarfer will show the\n"
" domain of the URL being snarfed along with the shrunken URL."
msgstr "Détermine si le snarfer affichera le domaine de l'URL snarfée avec l'URL raccourcie."
#: config.py:81
msgid ""
"The minimum length a URL must be before\n"
" the bot will shrink it."
msgstr "La taille minimum d'une URL pour que le bot la raccourcice."
#: config.py:84
msgid ""
"Determines what URLs are to be snarfed; URLs\n"
" matching the regexp given will not be snarfed. Give the empty string if\n"
" you have no URLs that you'd like to exclude from being snarfed."
msgstr "Détermine quelles URLs seront snarfées ; les URLs correspondant à l'expression régulière ne seront par snarfées. Donnez une chaîne vide si il n'y a pas d'URL que vous voulez exclure."
#: config.py:88
msgid ""
"Determines whether the bot will shrink the\n"
" URLs of outgoing messages if those URLs are longer than\n"
" supybot.plugins.ShrinkUrl.minimumLength."
msgstr "Détermine si le bot raccourcira les URLs des messages sortant si ces URLs sont plus longues que supybot.plugins.ShrinkUrl.minimumLength."
#: config.py:92
msgid ""
"Determines what website the bot will use when\n"
" shrinking a URL."
msgstr "Détermine quel site web le bot utilisera pour raccourcir une URL"
#: config.py:95
msgid ""
"Determines whether this plugin will bold\n"
" certain portions of its replies."
msgstr "Détermine si ce plugin mettra en gras certaines portions de ses réponses."
#: config.py:98
msgid ""
"If set to a non-empty value, specifies the list of\n"
" services to rotate through for the shrinkSnarfer and outFilter."
msgstr "Si définit à une valeur non vide, définit la liste des services à faire tourner pour shrinkSnarfer et outFilter."
#: plugin.py:169
msgid ""
"<url>\n"
"\n"
" Returns an ln-s.net version of <url>.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne une version de ln-s.net de l'<url>."
#: plugin.py:194
msgid ""
"<url>\n"
"\n"
" Returns a TinyURL.com version of <url>\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne une version de TinyURL.com de l'<url>."
#: plugin.py:222
msgid ""
"<url>\n"
"\n"
" Returns an xrl.us version of <url>.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne une version de xrl.us de l'<url>."
#: plugin.py:248
msgid ""
"<url>\n"
"\n"
" Returns an x0.no version of <url>.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne une version de x0.no de l'<url>."

169
plugins/Status/locale/fr.po Normal file
View File

@ -0,0 +1,169 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:05+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:46
msgid ""
"Determines whether the cpu command will list\n"
" the time taken by children as well as the bot's process."
msgstr "Détermine si la commande cpu listera le temps pris par les enfants aussi bien que celui du processus du bot."
#: config.py:49
msgid ""
"Determines whether the cpu command will\n"
" provide the number of threads spawned and active."
msgstr "Détermine si la commande cpu donnera le nombre de threads lancés et actifs."
#: config.py:52
msgid ""
"Determines whether the cpu command will report\n"
" the amount of memory being used by the bot."
msgstr "Détermine si la commande cpu donnera la quantité de mémoire utilisée par le bot."
#: plugin.py:71
msgid ""
"takes no arguments\n"
"\n"
" Returns the status of the bot.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne le status du bot."
#: plugin.py:80
msgid "%s as %L"
msgstr "%s en tant que %L"
#: plugin.py:81
msgid "I am connected to %L."
msgstr "Je suis connecté à %L"
#: plugin.py:83
msgid "I am currently in code profiling mode."
msgstr "Je suis actuellement en mode de profiling du code."
#: plugin.py:89
msgid ""
"takes no arguments\n"
"\n"
" Returns the current threads that are active.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne les threads actifs."
#: plugin.py:95
msgid "I have spawned %n; %n %b still currently active: %L."
msgstr "J'ai lancé %n ; %n %b sont encore actuellement actifs : %L."
#: plugin.py:103
msgid ""
"takes no arguments\n"
"\n"
" Returns some interesting network-related statistics.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne quelques statistiques intéressantes liées au réseau."
#: plugin.py:111
msgid "an indeterminate amount of time"
msgstr "une durée indéterminée"
#: plugin.py:112
msgid "I have received %s messages for a total of %s bytes. I have sent %s messages for a total of %s bytes. I have been connected to %s for %s."
msgstr "J'ai reçu %s message pour un total de %s octets. J'ai envoyé %s messages pour un total de %s octets. J'ai été connecté à %s pendant %s."
#: plugin.py:121
msgid ""
"takes no arguments\n"
"\n"
" Returns some interesting CPU-related statistics on the bot.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne quelques statistiques intéressantes reliées au CPU."
#: plugin.py:131
msgid "My children have taken %.2f seconds of user time and %.2f seconds of system time for a total of %.2f seconds of CPU time. "
msgstr "Mes enfants ont pris %.2f secondes du temps utilisateur et %.2f secondes du temps système, pour un total de %.2f secondes de temps CPU."
#: plugin.py:138
msgid "I have taken %.2f seconds of user time and %.2f seconds of system time, for a total of %.2f seconds of CPU time. %s"
msgstr "J'ai pris %.2f secondes du temps utilisateur et %.2f secondes du temps système, pour un total de %.2f secondes de temps CPU."
#: plugin.py:160
msgid "Unable to run ps command."
msgstr "Impossible de lancer la commande ps."
#: plugin.py:166
msgid " I'm taking up %s kB of memory."
msgstr " Je prend plus de %s kO de mémoire."
#: plugin.py:174
msgid ""
"takes no arguments\n"
"\n"
" Returns some interesting command-related statistics.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne quelques statistiques intéressantes liées aux commandes."
#: plugin.py:184
msgid "I offer a total of %n in %n. I have processed %n."
msgstr "J'offre un total de %n dans %n plugins. J'ai géré %n."
#: plugin.py:193
msgid ""
"takes no arguments\n"
"\n"
" Returns a list of the commands offered by the bot.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne une liste des commandes offertes par le bot."
#: plugin.py:207
msgid ""
"takes no arguments\n"
"\n"
" Returns the amount of time the bot has been running.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne la durée durant laquelle le bot est lancée."
#: plugin.py:211
msgid "I have been running for %s."
msgstr "Je suis lancé depuis %s."
#: plugin.py:218
msgid ""
"takes no arguments\n"
"\n"
" Returns the server the bot is on.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne le(s) serveur(s) sur le(s)quel(s) le bot est."

189
plugins/String/locale/fr.po Normal file
View File

@ -0,0 +1,189 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:08+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:47
msgid ""
"Determines the maximum size of a string\n"
" given to the levenshtein command. The levenshtein command uses an O(m*n)\n"
" algorithm, which means that with strings of length 256, it can take 1.5\n"
" seconds to finish; with strings of length 384, though, it can take 4\n"
" seconds to finish, and with strings of much larger lengths, it takes more\n"
" and more time. Using nested commands, strings can get quite large, hence\n"
" this variable, to limit the size of arguments passed to the levenshtein\n"
" command."
msgstr "Détermine la taille maximum d'une chaîne donnée à la commande 'levenshtein'. Cette commande utiliser un algorithme O(m*n), ce qui signifit que pour une chaîne de taille 256, il peut prendre 1,5 seconde à se finir ; pour les chaînes de taille 384, il peut en prendre 4, et ainsi de suite. En utilisant des commandes inmbriquées, les chaînes peuvent devenir très grandes, donc, utilisez cette variable pour limiter la taille des arguments passés à la commande 'levenshtein'."
#: plugin.py:46
msgid ""
"<letter>\n"
"\n"
" Returns the 8-bit value of <letter>.\n"
" "
msgstr ""
"<lettre>\n"
"\n"
"Retourne la valeur 8 bits de la <lettre>."
#: plugin.py:55
msgid ""
"<number>\n"
"\n"
" Returns the character associated with the 8-bit value <number>\n"
" "
msgstr ""
"<nombre>\n"
"\n"
"Retourne le caractère associé à la valeur 8-bits du <nombre>"
#: plugin.py:62
msgid "That number doesn't map to an 8-bit character."
msgstr "Ce nombre ne correspond pas à un caractère 8 bits."
#: plugin.py:67
msgid ""
"<encoding> <text>\n"
"\n"
" Returns an encoded form of the given text; the valid encodings are\n"
" available in the documentation of the Python codecs module:\n"
" <http://docs.python.org/library/codecs.html#standard-encodings>.\n"
" "
msgstr ""
"<encodage> <texte>\n"
"\n"
"Retourne la forme encodée du texte donnée ; les encodages valides sont disponibles dans la documentation du module codec de Python : http://docs.python.org/library/codecs.html#standard-encodings"
#: plugin.py:76
#: plugin.py:90
msgid "encoding"
msgstr "encodage"
#: plugin.py:81
msgid ""
"<encoding> <text>\n"
"\n"
" Returns an un-encoded form of the given text; the valid encodings are\n"
" available in the documentation of the Python codecs module:\n"
" <http://docs.python.org/library/codecs.html#standard-encodings>.\n"
" "
msgstr ""
"<encodage> <texte>\n"
"\n"
"Retourne la forme désencodée du texte donnée ; les encodages valides sont disponibles dans la documentation du module codec de Python : http://docs.python.org/library/codecs.html#standard-encodings"
#: plugin.py:92
msgid "base64 string"
msgstr "chaîne base64"
#: plugin.py:93
msgid "Base64 strings must be a multiple of 4 in length, padded with '=' if necessary."
msgstr "Les chaînes base64 doivent avoir une longueur multiple de 4, entourées de '=' si nécessaire."
#: plugin.py:99
msgid ""
"<string1> <string2>\n"
"\n"
" Returns the levenshtein distance (also known as the \"edit distance\"\n"
" between <string1> and <string2>)\n"
" "
msgstr ""
"<chaîne 1> <chaîne 2>\n"
"\n"
"Retourne la distance leveshtein (aussi connue sous le nom de \"distance d'édition) entre les deux chaînes."
#: plugin.py:106
msgid "Levenshtein distance is a complicated algorithm, try it with some smaller inputs."
msgstr "La distance levenshtein est un algorithme compliqué ; essayez avec des données plus petites."
#: plugin.py:114
msgid ""
"<string> [<length>]\n"
"\n"
" Returns the Soundex hash to a given length. The length defaults to\n"
" 4, since that's the standard length for a soundex hash. For unlimited\n"
" length, use 0.\n"
" "
msgstr ""
"<chaîne> [<longueur>]\n"
"\n"
"Retourne un hash Soundex de la longueur donnée. La longueur par défaut est de 4, c'est le standard pour un hash soundex. Pour une longueur illimitée, utilisez 0."
#: plugin.py:125
msgid ""
"<text>\n"
"\n"
" Returns the length of <text>.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Retourne la longueur du <texte>\n"
#: plugin.py:134
msgid ""
"<regexp> <text>\n"
"\n"
" If <regexp> is of the form m/regexp/flags, returns the portion of\n"
" <text> that matches the regexp. If <regexp> is of the form\n"
" s/regexp/replacement/flags, returns the result of applying such a\n"
" regexp to <text>.\n"
" "
msgstr ""
"<expression régulière> <texte>\n"
"\n"
"Si l'<expression régulière> est de la forme de m/regexp/flags, retourne la portion du <texte> correspondant à l'expression régulière. Si l'<expression régulière> est de la forme de s/regexp/remplacement/flags, retourne le résultat de l'application de l'expression régulière sur le <texte>."
#: plugin.py:146
msgid "You probably don't want to match the empty string."
msgstr "Vous ne voulez probablement appliquer une expression régulière sur une chaîne vide."
#: plugin.py:156
msgid ""
"<password> <text>\n"
"\n"
" Returns <text> XOR-encrypted with <password>. See\n"
" http://www.yoe.org/developer/xor.html for information about XOR\n"
" encryption.\n"
" "
msgstr ""
"<mot de passe> <texte>\n"
"\n"
"Retourne le <texte>, encrypté par la méthode XOR avec le <mot de passe>. Lisez http://www.yoe.org/developer/xor.html pour plus d'informations sur le cryptage XOR."
#: plugin.py:169
msgid ""
"<text>\n"
"\n"
" Returns the md5 hash of a given string. Read\n"
" http://www.rsasecurity.com/rsalabs/faq/3-6-6.html for more information\n"
" about md5.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Retourne le hash md5 de la chaîne donnée. Lisez http://www.rsasecurity.com/rsalabs/faq/3-6-6.html pour plus d'informations à propos de md5."
#: plugin.py:180
msgid ""
"<text>\n"
"\n"
" Returns the SHA hash of a given string. Read\n"
" http://www.secure-hash-algorithm-md5-sha-1.co.uk/ for more information\n"
" about SHA.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Retourne le hash SDA de la chaîne donnée. Lisez http://www.secure-hash-algorithm-md5-sha-1.co.uk/ pour plus d'informations à propos de SHA."

View File

@ -0,0 +1,30 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:09+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:49
msgid ""
"Determines whether the bot will prefix the nick\n"
" of the user giving an invalid command to the success response."
msgstr "Détermine si le bot utilisera le nick de l'utilisateur donnant une commande invalide comme préfixe pour la réponse de Success."
#: plugin.py:39
msgid ""
"This plugin was written initially to work with MoobotFactoids, the two\n"
" of them to provide a similar-to-moobot-and-blootbot interface for factoids.\n"
" Basically, it replaces the standard 'The operation succeeded.' messages\n"
" with messages kept in a database, able to give more personable\n"
" responses."
msgstr "Ce plugin était à l'origine écrit pour fonctionner avec MoobotFactoids, qui fournit une interface similaire à celle de moobot et blootbot pour les factoids. Il remplacement le message 'the operation succeeded.' par un message stoché dans la base de données, ce qui vous permet d'en avoir un plus personnalisable."

108
plugins/Time/locale/fr.po Normal file
View File

@ -0,0 +1,108 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:38+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:45
msgid ""
"Determines the\n"
" format string for timestamps. Refer to the Python documentation for the\n"
" time module to see what formats are accepted. If you set this variable to\n"
" the empty string, the timestamp will not be shown."
msgstr "Détermine la chaîne de format pour les timestamps. Référez-vous à la documentation du module Python time pour voir quels formats sont acceptés. Si vous définissez cette variable à une chaîne vide, le timestamp ne sera pas affiché."
#: plugin.py:60
msgid ""
"[<years>y] [<weeks>w] [<days>d] [<hours>h] [<minutes>m] [<seconds>s]\n"
"\n"
" Returns the number of seconds in the number of <years>, <weeks>,\n"
" <days>, <hours>, <minutes>, and <seconds> given. An example usage is\n"
" \"seconds 2h 30m\", which would return 9000, which is '3600*2 + 30*60'.\n"
" Useful for scheduling events at a given number of seconds in the\n"
" future.\n"
" "
msgstr ""
"[<années>y] [<semaines>w] [<jours>d] [<heures>h] [<minutes>m] [<secondes>s]\n"
"\n"
"Retourne le nombre de secondes de la date donnée. Un exemple d'utilisation est \"seconds 2h 30m\", ce qui retournera 9000. Utile pour planifier des évènement à un certain nombre de secondes dans le futur."
#: plugin.py:95
msgid ""
"<time string>\n"
"\n"
" Returns the number of seconds since epoch <time string> is.\n"
" <time string> can be any number of natural formats; just try something\n"
" and see if it will work.\n"
" "
msgstr ""
"<moment>\n"
"\n"
"Retourne le nombre de secondes depuis le <moment>. Le <moment> peut être n'importe lequel des formats naturels, essayez seulement, et voyez si ça marche."
#: plugin.py:106
#: plugin.py:122
msgid "That's right now!"
msgstr "C'est maintenant !"
#: plugin.py:111
msgid ""
"<time string>\n"
"\n"
" Returns the number of seconds until <time string>.\n"
" "
msgstr ""
"<moment>\n"
"\n"
"Retourne le nombre de secondes depuis le <moment>."
#: plugin.py:127
msgid ""
"[<seconds since epoch>]\n"
"\n"
" Returns the ctime for <seconds since epoch>, or the current ctime if\n"
" no <seconds since epoch> is given.\n"
" "
msgstr ""
"[<temps>]\n"
"\n"
" Renvoie le ctime pour le moment il y a <temps> secondes, ou le ctime courant, si aucun <temps> n'est donné."
#: plugin.py:133
msgid "number of seconds since epoch"
msgstr "nombre de secondes depuis une époque"
#: plugin.py:138
msgid ""
"[<format>] [<seconds since epoch>]\n"
"\n"
" Returns the current time in <format> format, or, if <format> is not\n"
" given, uses the configurable format for the current channel. If no\n"
" <seconds since epoch> time is given, the current time is used.\n"
" "
msgstr ""
"[<format>] [<temps>]\n"
"\n"
"Retourne le temps courant dans le <format>, ou, si le <format> n'est pas donné, utilise le format actuellement configuré pour le canal. Si le <temps> n'est pas donné, le temps actuel est utilisé."
#: plugin.py:155
msgid ""
"<seconds>\n"
"\n"
" Returns a pretty string that is the amount of time represented by\n"
" <seconds>.\n"
" "
msgstr ""
"<secondes>\n"
"\n"
"Retourne le nombre de <secondes>, joliement formatté."

141
plugins/Todo/locale/fr.po Normal file
View File

@ -0,0 +1,141 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:38+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:135
msgid ""
"[<username> [<task id>]|<task id>]\n"
"\n"
" Retrieves a task for the given task id. If no task id is given, it\n"
" will return a list of task ids that that user has added to their todo\n"
" list.\n"
" "
msgstr ""
"[<utilisateur> [<id de tâche>]|<id de tâche>]\n"
"\n"
"Récupère la tâche correspondant à l'<id de tâche> donné. Si aucun id n'est donné, retourne une liste d'ids que cet utilisateur a ajouté à sa liste."
#: plugin.py:150
msgid "#%i: %s"
msgstr "#%i : %s"
#: plugin.py:155
msgid "%s for %s: %L"
msgstr "%s pour %s : %L"
#: plugin.py:159
msgid "That user has no tasks in their todo list."
msgstr "Cet utilisateur n'a pas de tâche dans sa todo-list."
#: plugin.py:161
msgid "You have no tasks in your todo list."
msgstr "Vous n'avez pas de tâche dans votre todo-list."
#: plugin.py:168
msgid "Active"
msgstr "Active"
#: plugin.py:170
msgid "Inactive"
msgstr "Inactive"
#: plugin.py:172
msgid ", priority: %i"
msgstr ", priorité : %i"
#: plugin.py:175
msgid "%s todo for %s: %s (Added at %s)"
msgstr "%s tâche pour %s : %s (Ajoutée à %s)"
#: plugin.py:179
#: plugin.py:260
#: plugin.py:274
msgid "task id"
msgstr "id de tâche"
#: plugin.py:184
msgid ""
"[--priority=<num>] <text>\n"
"\n"
" Adds <text> as a task in your own personal todo list. The optional\n"
" priority argument allows you to set a task as a high or low priority.\n"
" Any integer is valid.\n"
" "
msgstr ""
"[--priority=<nombre>] <texte>\n"
"\n"
"Ajoute le <texte> comme une tâche dans votre liste personnelle de choses à faire. L'argument 'priority' optionnel vous permet de définir une priorité faible ou grande. Tout entier est accepté."
#: plugin.py:195
msgid "(Todo #%i added)"
msgstr "(Tâche #%i ajoutée)"
#: plugin.py:201
msgid ""
"<task id> [<task id> ...]\n"
"\n"
" Removes <task id> from your personal todo list.\n"
" "
msgstr ""
"<id de tâche> [<id de tâche> ...]\n"
"\n"
"Supprime différentes tâches, désignées par leur ID, de votre liste personnelle de choses à faire."
#: plugin.py:212
msgid "Task %i could not be removed either because that id doesn't exist or it has been removed already."
msgstr "La tâche %i ne peut être supprimée car cet id n'existe pas, ou a déjà été supprimé."
#: plugin.py:216
msgid "No tasks were removed because the following tasks could not be removed: %L."
msgstr "Aucune tâche n'a été supprimée car les tâches suivantes ne peuvent l'être : %L."
#: plugin.py:226
msgid ""
"[--{regexp} <value>] [<glob> <glob> ...]\n"
"\n"
" Searches your todos for tasks matching <glob>. If --regexp is given,\n"
" its associated value is taken as a regexp and matched against the\n"
" tasks.\n"
" "
msgstr ""
"[--{regexp} <valeur>] [<glob> <glob> ...]\n"
"\n"
"Recherche parmis vos tâches celle(s) correspondant au <glob>. Si --regexp est donné, il prend la valeur associée comme étant une expression régulière et re-teste les tâches."
#: plugin.py:246
msgid "No tasks matched that query."
msgstr "Aucune tâche ne correspond à cette requête."
#: plugin.py:252
msgid ""
"<id> <priority>\n"
"\n"
" Sets the priority of the todo with the given id to the specified value.\n"
" "
msgstr ""
"<id> <priorité>\n"
"\n"
"Défini la priorité de la tâche d'<id> donné, à la valeur choisie."
#: plugin.py:266
msgid ""
"<task id> <regexp>\n"
"\n"
" Modify the task with the given id using the supplied regexp.\n"
" "
msgstr ""
"<id de tâche> <regexp>\n"
"\n"
"Modifie la tâche en utilisant l'expression régulière donnée."

391
plugins/Topic/locale/fr.po Normal file
View File

@ -0,0 +1,391 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:38+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:45
msgid "Value must include $topic, otherwise the actual topic would be left out."
msgstr "La valeur doit inclure $topic, sinon, le topic actuel serait laissé tel quel."
#: config.py:50
msgid ""
"Determines what separator is\n"
" used between individually added topics in the channel topic."
msgstr "Détermine quel séparateur est utilisé entre les différents topics dans le topic du canal."
#: config.py:53
msgid ""
"Determines what format is used to add\n"
" topics in the topic. All the standard substitutes apply, in addition to\n"
" \"$topic\" for the topic itself."
msgstr "Détermine quel format est utilisé pour ajouter des topics dans le topic. Tous les substituts standard s'appliquent, en plus de \"$topic\" pour le topic lui-même."
#: config.py:57
msgid ""
"Determines whether the bot will recognize the\n"
" TOPICLEN value sent to it by the server and thus refuse to send TOPICs\n"
" longer than the TOPICLEN. These topics are likely to be truncated by the\n"
" server anyway, so this defaults to True."
msgstr "Détermine si le bot reconnaitra la valeur TOPICLEN envoyée par le serveur et refusera d'envoyer des topics plus longs que TOPICLEN. De toutes manière, les topics trop longs seront tronqués par le serveur, don cç vaut par défaut True."
#: config.py:62
msgid ""
"Determines what the default topic for the channel\n"
" is. This is used by the default command to set this topic."
msgstr "Détermine quel est le topic par défaut du canal. C'est utilisé par la commande 'default'."
#: config.py:66
msgid ""
"Determines the number of previous\n"
" topics to keep around in case the undo command is called."
msgstr "Détermine le nombre de topics précédents à garder pour le cas où la commande 'undo' est appelée."
#: config.py:70
msgid ""
"Determines the \n"
" capabilities required (if any) to make any topic changes,\n"
" (everything except for read-only operations). Use 'channel,capab' for \n"
" channel-level capabilities.\n"
" Note that absence of an explicit anticapability means user has \n"
" capability."
msgstr "Détermine les permissions requises (s'il y en a) pour changer le topic (c'est à dire tout ce qui n'est pas une opération en lecture seule). Utilisez #canal,capacité pour les capacités de canaux. Notez qu'en l'absence d'une anticapacité explicite, l'utilisateur a cette capacité."
#: plugin.py:55
msgid "I'm not currently in %s."
msgstr "Je ne suis pas actuellement sur %s."
#: plugin.py:59
msgid "I can't change the topic, I'm not opped and %s is +t."
msgstr "Je ne peux changer le topic, je ne suis pas opé, et %s a le mode +t."
#: plugin.py:66
msgid "The topic must not include %q."
msgstr "Le topic ne doit pas inclure %q."
#: plugin.py:77
msgid "topic number"
msgstr "numéro de topic"
#: plugin.py:90
msgid "There are no topics in %s."
msgstr "Il n'y a pas de topic sur %s."
#: plugin.py:198
msgid "That topic is too long for this server (maximum length: %i; this topic: %i)."
msgstr "Ce topic est trop long pour ce serveur (longueur maximum : %i ; ce topic : %i)."
#: plugin.py:212
msgid ""
"Check if the user has any of the required capabilities to manage\n"
" the channel topic.\n"
"\n"
" The list of required capabilities is in requireManageCapability\n"
" channel config.\n"
"\n"
" Also allow if the user is a chanop. Since he can change the topic\n"
" manually anyway.\n"
" "
msgstr ""
#: plugin.py:264
msgid ""
"[<channel>]\n"
"\n"
" Returns the topic for <channel>. <channel> is only necessary if the\n"
" message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Retourne le topic du <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:275
msgid ""
"[<channel>] <topic>\n"
"\n"
" Adds <topic> to the topics for <channel>. <channel> is only necessary\n"
" if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <topic>\n"
"\n"
"Ajoute le <topic> aux topics du <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:290
msgid ""
"[<channel>] <topic>\n"
"\n"
" Adds <topic> to the topics for <channel>. If the topic is too long\n"
" for the server, topics will be popped until there is enough room.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] <topic>\n"
"\n"
"Ajoute le topic <topic> aux topics du <canal>. Si le topic est trop long pour le serveur, les topics les plus vieux seront supprimés jusqu'à ce qu'il y ai assez de place. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:307
msgid ""
"[<channel>] <number> <topic>\n"
"\n"
" Replaces topic <number> with <topic>.\n"
" "
msgstr ""
"[<canal>] <nombre> <topic>\n"
"\n"
"Remplace le topic <nombre> par le <topic>."
#: plugin.py:321
msgid ""
"[<channel>] <topic>\n"
"\n"
" Adds <topic> to the topics for <channel> at the beginning of the topics\n"
" currently on <channel>. <channel> is only necessary if the message\n"
" isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <topic>\n"
"\n"
"Ajoute le <topic> aux topics du <canal>, au début des topics actuellement sur le <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:337
msgid ""
"[<channel>]\n"
"\n"
" Shuffles the topics in <channel>. <channel> is only necessary if the\n"
" message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Mélance les topics sur le <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:347
msgid "I can't shuffle 1 or fewer topics."
msgstr "Je ne peux mélanger les topics que si il y en a au moins deux."
#: plugin.py:359
msgid ""
"[<channel>] <number> [<number> ...]\n"
"\n"
" Reorders the topics from <channel> in the order of the specified\n"
" <number> arguments. <number> is a one-based index into the topics.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] <nombre> [<nombre> ...]\n"
"\n"
"Remet les topics du <canal> dans l'ordre spécifié par les arguments <nombre>. <nombre> est un index dans les topics. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:372
msgid "I cannot reorder 1 or fewer topics."
msgstr "Je ne peux réordonner les topics s'il y en a moins de deux."
#: plugin.py:374
msgid "All topic numbers must be specified."
msgstr "Tous les nombres de topics doivent être spécifiés."
#: plugin.py:376
msgid "Duplicate topic numbers cannot be specified."
msgstr "Les numéros de topics ne peuvent être en double."
#: plugin.py:384
msgid ""
"[<channel>]\n"
"\n"
" Returns a list of the topics in <channel>, prefixed by their indexes.\n"
" Mostly useful for topic reordering. <channel> is only necessary if the\n"
" message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Retourne la liste des topics sur le <canal>, préfixés par leur index. Généralement utile pour réordonner les topics. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:393
msgid "%i: %s"
msgstr "%i : %s"
#: plugin.py:400
msgid ""
"[<channel>] <number>\n"
"\n"
" Returns topic number <number> from <channel>. <number> is a one-based\n"
" index into the topics. <channel> is only necessary if the message\n"
" isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"<nombre> Retourne le topic numéro <nombre> du canal. <nombre> est un index dans les topics. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:415
msgid ""
"[<channel>] <number> <regexp>\n"
"\n"
" Changes the topic number <number> on <channel> according to the regular\n"
" expression <regexp>. <number> is the one-based index into the topics;\n"
" <regexp> is a regular expression of the form\n"
" s/regexp/replacement/flags. <channel> is only necessary if the message\n"
" isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <nombre> <regexp>\n"
"\n"
"Change le topic <nombre> sur le <canal>, en accord avec l'expression régulière <regexp>. <nombre> est un index parmis les topics ; <regexp> est une expression régulière de la forme s/regexp/replacement/flags. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:433
msgid ""
"[<channel>] [<number>] <topic>\n"
"\n"
" Sets the topic <number> to be <text>. If no <number> is given, this\n"
" sets the entire topic. <channel> is only necessary if the message\n"
" isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] [<nombre>] <topic>\n"
"\n"
"Définit le topic <nombre>. Si le <nombre> n'est pas donné, il s'agit du topic entier. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:454
msgid ""
"[<channel>] <number>\n"
"\n"
" Removes topic <number> from the topic for <channel> Topics are\n"
" numbered starting from 1; you can also use negative indexes to refer\n"
" to topics starting the from the end of the topic. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>] <nombre>\n"
"\n"
"Supprime le topic <nombre> des topics du <canal>. Les topics sont numérotés à partir de 1 ; vous pouvez également utiliser des indexs négatifs pour compter à partir de la fin. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:471
#: plugin.py:485
msgid ""
"[<channel>]\n"
"\n"
" Locks the topic (sets the mode +t) in <channel>. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Verrouille le topic (défini le mode +t) sur le <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:481
msgid "lock the topic"
msgstr "verrouiller le topic"
#: plugin.py:495
msgid "unlock the topic"
msgstr "déverrouiller le topic"
#: plugin.py:499
msgid ""
"[<channel>]\n"
"\n"
" Restores the topic to the last topic set by the bot. <channel> is only\n"
" necessary if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Déverrouille le topic (Enlève le mode +t) sur le <canal>. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:510
msgid "I haven't yet set the topic in %s."
msgstr "Je n'ai encore jamais définit le topic sur %s."
#: plugin.py:518
msgid ""
"[<channel>]\n"
"\n"
" Restores the topic to the one previous to the last topic command that\n"
" set it. <channel> is only necessary if the message isn't sent in the\n"
" channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Restaure le topic tel qu'il était la dernière fois que le bot l'a défini. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:532
msgid "There are no more undos for %s."
msgstr "Il n'y a plus rien à défaire sur %s"
#: plugin.py:537
msgid ""
"[<channel>]\n"
"\n"
" Undoes the last undo. <channel> is only necessary if the message isn't\n"
" sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Restaure le topic à l'état dans lequel il était avant la dernière utilisation de la commande 'topic. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:549
msgid "There are no redos for %s."
msgstr "Il n'y a plus rien à refaire sur %s"
#: plugin.py:554
msgid ""
"[<channel>] <first topic number> <second topic number>\n"
"\n"
" Swaps the order of the first topic number and the second topic number.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Défait le dernier 'undo'. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:565
msgid "I refuse to swap the same topic with itself."
msgstr "Je refuse d'échanger un topic avec lui-même."
#: plugin.py:575
msgid ""
"[<channel>]\n"
"\n"
" Sets the topic in <channel> to the default topic for <channel>. The\n"
" default topic for a channel may be configured via the configuration\n"
" variable supybot.plugins.Topic.default.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"<nombre du premier topic> <nombre du deuxième topic> Inverse les deux topics donnés. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."
#: plugin.py:588
msgid "There is no default topic configured for %s."
msgstr "Il n'y a pas de topic par défaut configuré pour %s."
#: plugin.py:594
msgid ""
"[<channel>] <separator>\n"
"\n"
" Sets the topic separator for <channel> to <separator> Converts the\n"
" current topic appropriately.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Définit le topic du <canal> pour correspondre à celui par défaut défini pour le <canal>. Le topic par défaut pour un canal peut être configuré via la variable supybot.plugins.Topic.default. <canal> n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même."

60
plugins/URL/locale/fr.po Normal file
View File

@ -0,0 +1,60 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:38+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:45
msgid ""
"Determines what URLs are not to be snarfed and\n"
" stored in the database for the channel; URLs matching the given regexp will\n"
" not be snarfed. Give the empty string if you have no URLs that you'd like\n"
" to exclude from being snarfed."
msgstr "Détermine quelles URLs sont écoutées et stockées dans la base de canal ; les URLs correspondant à l'expression régulière ne seront pas écoutées. Donnez une chaîne vide si vous ne voulez exclure aucune URL"
#: plugin.py:89
msgid ""
"[<channel>]\n"
"\n"
" Returns the number of URLs in the URL database. <channel> is only\n"
" required if the message isn't sent in the channel itself.\n"
" "
msgstr ""
"[<canal>]\n"
"\n"
"Retourne le nombre d'URLs dans ma base de données d'URLs. <canal> n'est nécessaire que si le message n'est pas envoyé sur la canal lui-même."
#: plugin.py:96
msgid "I have %n in my database."
msgstr "J'ai %n dans ma base de données."
#: plugin.py:101
msgid ""
"[<channel>] [--{from,with,without,near,proto} <value>] [--nolimit]\n"
"\n"
" Gives the last URL matching the given criteria. --from is from whom\n"
" the URL came; --proto is the protocol the URL used; --with is something\n"
" inside the URL; --without is something that should not be in the URL;\n"
" --near is something in the same message as the URL; If --nolimit is\n"
" given, returns all the URLs that are found. to just the URL.\n"
" <channel> is only necessary if the message isn't sent in the channel\n"
" itself.\n"
" "
msgstr ""
"[<canal>] [--{from,with,without,near,proto} <valeur>] [--nolimit]\n"
"\n"
"Donne la dernière URL correspondant aux critères. --from correspond à l'utilisateur ayant posé l'URL ; --proto est le protocole utilisé pour l'URL ; --with est quelque chose dans l'URL ; --without est le contraire de --with --near est quelque chose dans le même message que l'URL ; si --nolimit est donné, retourne toutes les URLs trouvées, et non une seule. <canal> n'est nécessaire que si la commande n'est pas envoyée sur le canal lui-même."
#: plugin.py:143
msgid "No URLs matched that criteria."
msgstr "Aucune URL ne correspond à ces critères."

210
plugins/Unix/locale/fr.po Normal file
View File

@ -0,0 +1,210 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:38+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:47
msgid ""
"The \"progstats\" command can reveal potentially sensitive\n"
" information about your machine. Here's an example of its output:\n"
"\n"
" %s\n"
msgstr "La commande \"progstats\" peut révéler des informations potentiellement sensibles à propos de votre machine. Voici un exemple de sa sortie : %s"
#: config.py:51
msgid "Would you like to disable this command for non-owner users?"
msgstr "Voulez-vous désactiver cette commande pour les utilisateurs non-owners ?"
#: config.py:59
msgid ""
"Determines\n"
" what command will be called for the fortune command."
msgstr "Détermine quelle commande doit être appelée par la commande 'fortune'"
#: config.py:62
msgid ""
"Determines whether only short fortunes will be\n"
" used if possible. This sends the -s option to the fortune program."
msgstr "Détermine si seules les fortunes courtes seront utilisées si possible. Ceci envoie l'option -s au programme fortune."
#: config.py:65
msgid ""
"Determines whether fortune will give equal\n"
" weight to the different fortune databases. If false, then larger\n"
" databases will be given more weight. This sends the -e option to the\n"
" fortune program."
msgstr "Détermine si les fortunes auront le même poids quel que soit la base de données. Si c'est False, alors les plus grandes bases de données auront plus de poids. Ceci envoie l'option -e au programme fortune."
#: config.py:70
msgid ""
"Determines whether fortune will retrieve\n"
" offensive fortunes along with the normal fortunes. This sends the -a\n"
" option to the fortune program."
msgstr "Détermine si 'fortune' récupérera des fortunes offensibles, en plus des fortunes normales. Ceci envoie l'option -a au programme 'fortune'."
#: config.py:74
msgid ""
"Determines what specific file\n"
" (if any) will be used with the fortune command; if none is given, the\n"
" system-wide default will be used. Do note that this fortune file must be\n"
" placed with the rest of your system's fortune files."
msgstr "Détermine quel fichier spécifique (si il y en a un) est utilisé par la commande 'fortune' ; si aucune n'est donné, le réglage par défaut du système sera utilisé. Notez que ce fichier doit être placé avec le reste de vos fichiers de fortunes."
#: config.py:82
msgid ""
"Determines\n"
" what command will be called for the spell command."
msgstr "Détermine quelle commande sera appelée par la commande 'spell'."
#: config.py:87
msgid ""
"Determines what\n"
" command will be called for the wtf command."
msgstr "Détermine quelle commande sera appelée par la commande 'wtf'."
#: plugin.py:73
msgid ""
"<error number or code>\n"
"\n"
" Returns the number of an errno code, or the errno code of a number.\n"
" "
msgstr ""
"<numéro d'erreur|code>\n"
"\n"
"Retourne le code du numéro d'erreur, ou le numéro d'erreur du code."
#: plugin.py:85
msgid "I can't find the errno number for that code."
msgstr "Je ne peux trouver le numéro d'erreur pour ce code."
#: plugin.py:88
msgid "(unknown)"
msgstr "(inconnu)"
#: plugin.py:89
msgid "%s (#%i): %s"
msgstr "%s (#%i) : %s"
#: plugin.py:94
msgid ""
"takes no arguments\n"
"\n"
" Returns various unix-y information on the running supybot process.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourn différentes informations unix-y à propos du processus de supybot."
#: plugin.py:102
msgid ""
"takes no arguments\n"
"\n"
" Returns the current pid of the process for this Supybot.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne le pid du processus de Supybot."
#: plugin.py:112
msgid ""
"<password> [<salt>]\n"
"\n"
" Returns the resulting of doing a crypt() on <password> If <salt> is\n"
" not given, uses a random salt. If running on a glibc2 system,\n"
" prepending '$1$' to your salt will cause crypt to return an MD5sum\n"
" based crypt rather than the standard DES based crypt.\n"
" "
msgstr ""
"<mot de passe> [<sel>]\n"
"\n"
"Retourne le résultat d'un crypt() sur le <mot de passe>. Si le <sel> n'est pas donné, utilise un sel aléatoire. Si on est sur un système glibc2, ajouter '$1$' au début de votre sel fera que crypt retournera un crypt basé sur MD5sum plutôt que sur le crypt basé sur DES standard."
#: plugin.py:131
msgid ""
"<word>\n"
"\n"
" Returns the result of passing <word> to aspell/ispell. The results\n"
" shown are sorted from best to worst in terms of being a likely match\n"
" for the spelling of <word>.\n"
" "
msgstr ""
"<mot>\n"
"\n"
"Retourne le résultat du parsage du <mot> avec aspell/ispell. Les résultats affichés sont triés du meilleur au pire en fonction de comment ils correspondent au <mot>."
#: plugin.py:140
msgid "The spell checking command is not configured. If one is installed, reconfigure supybot.plugins.Unix.spell.command appropriately."
msgstr "La commande de vérification orthographique ne semble pas être installée. Si il y en a une, configurez supybot.plugins.Unix.spell.command de façon appropriée."
#: plugin.py:145
msgid "<word> must begin with an alphabet character."
msgstr "<mo> doit commencer par une lettre de l'alphabet."
#: plugin.py:167
msgid "No results found."
msgstr "Aucun résultat trouvé."
#: plugin.py:178
msgid "%q may be spelled correctly."
msgstr "%q semble être orthographié correctement."
#: plugin.py:180
msgid "I could not find an alternate spelling for %q"
msgstr "Je ne peux pas trouver d'orthographe alternative pour %q"
#: plugin.py:184
msgid "Possible spellings for %q: %L."
msgstr "Orthographes possibles pour %q : %L"
#: plugin.py:193
msgid ""
"takes no arguments\n"
"\n"
" Returns a fortune from the *nix fortune program.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne une fortune depuis le programme fortune de *nix."
#: plugin.py:213
msgid "It seems the configured fortune command was not available."
msgstr "Il semble que la commande fortune configurée ne soit pas disponible."
#: plugin.py:222
msgid "The fortune command is not configured. If fortune is installed on this system, reconfigure the supybot.plugins.Unix.fortune.command configuration variable appropriately."
msgstr "La commande fortune n'est pas configurée. Si fortune est installé sur ce système, configurez supybot.plugins.Unix.fortune.command de façon appropriée."
#: plugin.py:229
msgid ""
"[is] <something>\n"
"\n"
" Returns wtf <something> is. 'wtf' is a *nix command that first\n"
" appeared in NetBSD 1.5. In most *nices, it's available in some sort\n"
" of 'bsdgames' package.\n"
" "
msgstr ""
"[is] <acronyme>\n"
"\n"
"Retourne ce que l'<acronyme> pourrait signifier. 'wtf' est une commande *nix qui est apparue dans NetBSD 1.5. Dans la plupart des machines unices, elle fait partie du paquet 'bsdgames'."
#: plugin.py:244
msgid "It seems the configured wtf command was not available."
msgstr "Il semble que la commande wtf ne soit pas disponible."
#: plugin.py:253
msgid "The wtf command is not configured. If it is installed on this system, reconfigure the supybot.plugins.Unix.wtf.command configuration variable appropriately."
msgstr "La commande wtf n'est pas configurée. Si elle est installée sur ce système, veuillez configurer supybot.plugins.Unix.wtf.command de façon appropriée."

323
plugins/User/locale/fr.po Normal file
View File

@ -0,0 +1,323 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-30 11:23+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:49
msgid ""
"[--capability=<capability>] [<glob>]\n"
"\n"
" Returns the valid registered usernames matching <glob>. If <glob> is\n"
" not given, returns all registered usernames.\n"
" "
msgstr ""
"[--capacility=<permission>] [<glob>]\n"
"\n"
"Retourne les utilisateurs enregistrés correspondant au <glob>. Si <glob> n'est pas donné, retourne tous les noms d'utilisateur."
#: plugin.py:80
msgid "There are no matching registered users."
msgstr "Il n'y a pas d'utilisateur enregistré correspondant."
#: plugin.py:82
msgid "There are no registered users."
msgstr "Il n'y a pas d'utilisateur enregistré."
#: plugin.py:88
msgid ""
"<name> <password>\n"
"\n"
" Registers <name> with the given password <password> and the current\n"
" hostmask of the person registering. You shouldn't register twice; if\n"
" you're not recognized as a user but you've already registered, use the\n"
" hostmask add command to add another hostmask to your already-registered\n"
" user, or use the identify command to identify just for a session.\n"
" This command (and all other commands that include a password) must be\n"
" sent to the bot privately, not in a channel.\n"
" "
msgstr ""
"<nom> <mot de passe>\n"
"\n"
"Enregistre <nom> avec le mot de passe donné, et le masque d'hôte actuel de la personne s'inscrivant. Vous ne devez pas vous enregistrer deux fois ; si vous n'êtes pas reconnu(e) comme un utilisateur(trice) alors que vous êtes déjà enregistré(e), utilisez la commande 'hostmask add' pour ajouter un masque d'hôte à votre compte, ou utilisez la commande 'identify' pour vous identifier, juste le temps d'une session. Cette commande (et toutes les autres commandes qui nécessitent un mot de passe) doivent être envoyées en privé, et non sur un canal."
#: plugin.py:101
msgid "That name is already assigned to someone."
msgstr "Ce nom est déjà utilisé par quelqu'un."
#: plugin.py:106
msgid "username"
msgstr "nom d'utilisateur"
#: plugin.py:107
msgid "Hostmasks are not valid usernames."
msgstr "Les masques d'hôte ne sont pas des noms d'utilisateur valides."
#: plugin.py:114
msgid "Your hostmask is already registered to %s"
msgstr "Votre masque d'hôte est déjà enregistré à %s"
#: plugin.py:130
msgid ""
"<name> [<password>]\n"
"\n"
" Unregisters <name> from the user database. If the user giving this\n"
" command is an owner user, the password is not necessary.\n"
" "
msgstr ""
"<nom> [<mot de passe>]\n"
"\n"
"Supprime <nom> de la base de données des utilisateurs. Si l'utilisateur appellant cette commande est le propriétaire, le mot de passe n'est pas requis."
#: plugin.py:145
msgid "This command has been disabled. You'll have to ask the owner of this bot to unregister your user."
msgstr "Cette commande a été désactivée. Vous devez contacter le propriétaire du bot pour vous désenregistrer."
#: plugin.py:158
msgid ""
"<name> <new name> [<password>]\n"
"\n"
" Changes your current user database name to the new name given.\n"
" <password> is only necessary if the user isn't recognized by hostmask.\n"
" This message must be sent to the bot privately (not on a channel) since\n"
" it may contain a password.\n"
" "
msgstr ""
"<nom> <nouveau nom> [<mot de passe>]\n"
"\n"
"Change votre nom actuel dans la base de données des utilisateurs. <mot de passe> n'est requis que si vous n'êtes pas actuellement reconnu(e) par masque d'hôte. Si vous avez le paramètre <mot de passe> le message doit être envoyé en privé (et non sur un canal)."
#: plugin.py:167
msgid "%q is already registered."
msgstr "%q est déjà enregistré."
#: plugin.py:181
msgid ""
"[<name>] <old password> <new password>\n"
"\n"
" Sets the new password for the user specified by <name> to <new\n"
" password>. Obviously this message must be sent to the bot\n"
" privately (not in a channel). If the requesting user is an owner\n"
" user (and the user whose password is being changed isn't that same\n"
" owner user), then <old password> needn't be correct.\n"
" "
msgstr ""
"<nom> <ancien mot de passe> <nouveau mot de passe>\n"
"\n"
"Définit le nouveau mot de passe pour l'utilisateur spécifié par <name>. Évidemment, ce message doit être envoyé au bot en privé (= pas sur un canal). Si l'utilisateur est le propriétaire (et si l'utilisateur dont on change le mot de passe n'est pas le même propriétaire), l'<ancien mot de passe> ne requiert pas d'être correct."
#: plugin.py:209
msgid ""
"<password> [<True|False>]\n"
"\n"
" Sets the secure flag on the user of the person sending the message.\n"
" Requires that the person's hostmask be in the list of hostmasks for\n"
" that user in addition to the password being correct. When the\n"
" secure flag is set, the user *must* identify before he can be\n"
" recognized. If a specific True/False value is not given, it\n"
" inverts the current value.\n"
" "
msgstr ""
"<mot de passe> [<on|off>]\n"
"\n"
"Défini le flag 'secure' sur l'utilisateur envoyant le message. Requiert que la personne soit reconnue par masque d'hôte, en plus du fait que le mot de passe doit être correct. Lorsque le flag 'secure' est défini, l'utilisateur *doit* être identifié avant d'être reconnu. Si l'argument on/off n'est pas donné, l'état courant est inversé."
#: plugin.py:224
msgid "Secure flag set to %s"
msgstr "Flag secure déjà défini à %s"
#: plugin.py:232
msgid ""
"<hostmask|nick>\n"
"\n"
" Returns the username of the user specified by <hostmask> or <nick> if\n"
" the user is registered.\n"
" "
msgstr ""
"<masque d'hôte|nick>\n"
"\n"
"Retourne le nom d'utilisateur de la personne spécifiée par <masque d'hôte> ou par <nick>, si cette personne est enregistrée."
#: plugin.py:241
msgid "I haven't seen %s."
msgstr "Je n'ai pas vu %s."
#: plugin.py:246
msgid "I don't know who that is."
msgstr "Je ne sais pas qui c'est."
#: plugin.py:252
msgid ""
"[<nick>]\n"
"\n"
" Returns the hostmask of <nick>. If <nick> isn't given, return the\n"
" hostmask of the person giving the command.\n"
" "
msgstr ""
"[<nick>]\n"
"\n"
"Retourne le masque d'hôte de <nick>. Si <nick> n'est pas donné, retourne le masque d'hôte de la personne envoyant la commande."
#: plugin.py:264
msgid ""
"[<name>]\n"
"\n"
" Returns the hostmasks of the user specified by <name>; if <name>\n"
" isn't specified, returns the hostmasks of the user calling the\n"
" command.\n"
" "
msgstr ""
"[<nom>]\n"
"\n"
"Retourne les masques d'hôte de l'utilisateur spécifié par <nom> ; si <nom> n'est pas spécifié, retourne le masque d'hôte de la personne appelant la commande."
#: plugin.py:276
msgid "%s has no registered hostmasks."
msgstr "%s n'a pas de masque d'hôte enregistré."
#: plugin.py:283
msgid "You may only retrieve your own (hostmasks."
msgstr "Vous ne pouvez récupérer que vos propres masques d'hôte."
#: plugin.py:299
msgid ""
"[<name>] [<hostmask>] [<password>]\n"
"\n"
" Adds the hostmask <hostmask> to the user specified by <name>. The\n"
" <password> may only be required if the user is not recognized by\n"
" hostmask. <password> is also not required if an owner user is\n"
" giving the command on behalf of some other user. If <hostmask> is\n"
" not given, it defaults to your current hostmask. If <name> is not\n"
" given, it defaults to your currently identified name. This message\n"
" must be sent to the bot privately (not on a channel) since it may\n"
" contain a password.\n"
" "
msgstr ""
"[<nom>] [<masque d'hôte>] [<mot de passe>]\n"
"\n"
"Ajoute le <masque d'hôte> à l'utilisateur <nom>. Le <mot de passe> n'est requis que si l'utilisateur n'est pas reconnu par masque d'hôte. <mot de passe> peut également être omis si l'expéditeur est le propriétaire, et envoie la commande au nom de quelqu'un d'autre. Si le <masque d'hôte> n'est pas donné, ce sera le masque d'hôte de l'expéditeur. Si <nom> n'est pas donné, il s'agit par défaut de votre nom d'utilisateur. Ce message doit être envoyé au bot en privé (pas sur un canal) si il contient un mot de passe."
#: plugin.py:313
msgid "hostmask"
msgstr "masque d'hôte"
#: plugin.py:314
msgid "Make sure your hostmask includes a nick, then an exclamation point (!), then a user, then an at symbol (@), then a host. Feel free to use wildcards (* and ?, which work just like they do on the command line) in any of these parts."
msgstr "Assurez-vous que votre masque d'hôte inclue un nick, un point d'exclamation, une ident, un arobase, puis un hôte. Sentez-vous libre d'utiliser des jokers (* et ?, qui fonctionnent comme dans la ligne de commande), dans n'importe lequel de ces termes."
#: plugin.py:324
#: plugin.py:347
msgid "That hostmask is already registered."
msgstr "Ce masque d'hôte est déjà enregistré."
#: plugin.py:355
msgid ""
"<name> <hostmask> [<password>]\n"
"\n"
" Removes the hostmask <hostmask> from the record of the user\n"
" specified by <name>. If the hostmask given is 'all' then all\n"
" hostmasks will be removed. The <password> may only be required if\n"
" the user is not recognized by his hostmask. This message must be\n"
" sent to the bot privately (not on a channel) since it may contain a\n"
" password.\n"
" "
msgstr ""
"<nom> <masque d'hôte> [<mot de passe>]\n"
"\n"
"Retire le <masque d'hôte> de la liste de ceux de l'utilisateur spécifié par <nom>. Si le masque d'hôte est 'all', alors tous les masques d'hôtes seront supprimés. Le <mot de passe> n'est requis que si vous n'êtes pas reconnu(e) par masque d'hôte. Ce message doit être envoyé en privé (=pas sur un canal) car il peut contenir un mot de passe."
#: plugin.py:374
msgid "All hostmasks removed."
msgstr "Tous les masques d'hôte ont été supprimés."
#: plugin.py:378
msgid "There was no such hostmask."
msgstr "Il n'y avait pas ce masque d'hôte."
#: plugin.py:387
msgid ""
"[<name>]\n"
"\n"
" Returns the capabilities of the user specified by <name>; if <name>\n"
" isn't specified, returns the capabilities of the user calling the\n"
" command.\n"
" "
msgstr ""
"[<nom>]\n"
"\n"
"Retourne la liste des capacités de l'utilisateur spécifié par <nom> ; si <nom> n'est pas spécifié, retourne les capacités de l'utilisateur appelant la commande."
#: plugin.py:407
msgid ""
"<name> <password>\n"
"\n"
" Identifies the user as <name>. This command (and all other\n"
" commands that include a password) must be sent to the bot privately,\n"
" not in a channel.\n"
" "
msgstr ""
"<nom> <mot de passe>\n"
"\n"
"Identifie l'utilisateur en tant que <nom>. Cette commande (et toutes cellent qui requierent un mot de passe) doivent être envoyées en privé au bot, et non sur un canal."
#: plugin.py:419
msgid "Your secure flag is true and your hostmask doesn't match any of your known hostmasks."
msgstr "Votre flag secure est True, et votre masque d'hôte ne correspond à aucune de vos masques d'hôte connus."
#: plugin.py:429
msgid ""
"takes no arguments\n"
"\n"
" Un-identifies you. Note that this may not result in the desired\n"
" effect of causing the bot not to recognize you anymore, since you may\n"
" have added hostmasks to your user that can cause the bot to continue to\n"
" recognize you.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Vous dé-indentifie. Notez que cela ne marche pas forcément, par exemple si le bot vous reconnait grâce au masque d'hôte ; il continuera alors à vous reconnaître."
#: plugin.py:438
msgid "If you remain recognized after giving this command, you're being recognized by hostmask, rather than by password. You must remove whatever hostmask is causing you to be recognized in order not to be recognized."
msgstr "Si vous êtes encore reconnu(e) après avoir envoyé cette commande, c\'est que vous êtes reconnu(e) par masque d\'hôte et non par mot de passe. Vous devez supprimer tout masque d\'hôte susceptible de vous reconnaitre, dans le but de ne pas être reconnu(e)."
#: plugin.py:447
msgid ""
"takes no arguments\n"
"\n"
" Returns the name of the user calling the command.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne le nom de l'utilisateur appellant la commande."
#: plugin.py:455
msgid "I don't recognize you."
msgstr "Je ne vous reconnais pas."
#: plugin.py:460
msgid ""
"takes no arguments\n"
"\n"
" Returns some statistics on the user database.\n"
" "
msgstr ""
"ne prend pas d'argument\n"
"\n"
"Retourne des statistiques sur la base de données."
#: plugin.py:478
msgid "I have %s registered users with %s registered hostmasks; %n and %n."
msgstr "J'ai %s utilisateurs enregistrés, avec %s masques d'hôte enregistrés ; %n et %n."

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2010-10-16 13:50+CEST\n"
"POT-Creation-Date: 2010-10-30 11:23+CEST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -260,6 +260,10 @@ msgid ""
" "
msgstr ""
#: plugin.py:438
msgid "If you remain recognized after giving this command, you're being recognized by hostmask, rather than by password. You must remove whatever hostmask is causing you to be recognized in order not to be recognized."
msgstr ""
#: plugin.py:447
#, docstring
msgid ""

View File

@ -435,11 +435,11 @@ class User(callbacks.Plugin):
"""
user.clearAuth()
ircdb.users.setUser(user)
irc.replySuccess('If you remain recognized after giving this command, '
irc.replySuccess(_('If you remain recognized after giving this command, '
'you\'re being recognized by hostmask, rather than '
'by password. You must remove whatever hostmask is '
'causing you to be recognized in order not to be '
'recognized.')
'recognized.'))
unidentify = wrap(unidentify, ['user'])
@internationalizeDocstring

View File

@ -0,0 +1,91 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:39+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: plugin.py:45
msgid ""
"requires no arguments\n"
"\n"
" Does nothing. Useful sometimes for sequencing commands when you don't\n"
" care about their non-error return values.\n"
" "
msgstr ""
"ne requiert pas d'argument\n"
"\n"
"Ne fait rien. Utile pour séquencer les commandes lorsque vous vous fichez de leur valeur de retour."
#: plugin.py:59
msgid ""
"[<text>]\n"
"\n"
" Does nothing except to reply with a success message. This is useful\n"
" when you want to run multiple commands as nested commands, and don't\n"
" care about their output as long as they're successful. An error, of\n"
" course, will break out of this command. <text>, if given, will be\n"
" appended to the end of the success message.\n"
" "
msgstr ""
"[<texte>]\n"
"\n"
"Ne fait rien excepté répondre avec un message de succès. C'est utile lorsque vous voulez lancer plusieurs commandes comme commandes imbriquées, et vous ne voulez pas vous occuper de leur retour, du moment que ce n'est pas une erreur. Si c'est une erreur, bien sûr, la commande s'arrêtera. <texte>, si il est donné, sera ajouté à la fin du message de succès."
#: plugin.py:72
msgid ""
"<text> [<text> ...]\n"
"\n"
" Returns the last argument given. Useful when you'd like multiple\n"
" nested commands to run, but only the output of the last one to be\n"
" returned.\n"
" "
msgstr ""
"<texte> [<texte> ...]\n"
"\n"
"Retourne le dernier argument de la commande. Utile lorsque vous avez plusieurs commandes imbriquées, mais seulement la sortie de la dernière sera retournée."
#: plugin.py:86
msgid ""
"<text>\n"
"\n"
" Returns the arguments given it. Uses our standard substitute on the\n"
" string(s) given to it; $nick (or $who), $randomNick, $randomInt,\n"
" $botnick, $channel, $user, $host, $today, $now, and $randomDate are all\n"
" handled appropriately.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Retourne les arguments donnés. Utilise notre système de substitution standard sur la/les chaîne(s) qui lui est donnée ; $nick (ou $who), $randomNick, $randomInt, $botnick, $channel, $user, $host, $today, $now, et $randomDate sont tous gérés correctement."
#: plugin.py:99
msgid ""
"<arg> [<arg> ...]\n"
"\n"
" Shuffles the arguments given it.\n"
" "
msgstr ""
"<argument> [<argument> ...]\n"
"\n"
"Mélange les arguments donnés."
#: plugin.py:109
msgid ""
"<command> <text>\n"
"\n"
" Tokenizes <text> and calls <command> with the resulting arguments.\n"
" "
msgstr ""
"<commande> <texte>\n"
"\n"
"Tokénise le <texte> et appelle la commande avec l'argument résultant."

167
plugins/Web/locale/fr.po Normal file
View File

@ -0,0 +1,167 @@
msgid ""
msgstr ""
"Project-Id-Version: Supybot-fr\n"
"POT-Creation-Date: 2010-10-20 09:39+CEST\n"
"PO-Revision-Date: \n"
"Last-Translator: Valentin Lorentz <progval@gmail.com>\n"
"Language-Team: Supybot-fr <progval@gmail.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Français\n"
"X-Poedit-Country: France\n"
"X-Poedit-SourceCharset: ASCII\n"
#: config.py:50
msgid ""
"Determines whether the bot will output the\n"
" HTML title of URLs it sees in the channel."
msgstr "Détermine si le bot affichera le titre HTML des URLs qu'il voit sur le canal."
#: config.py:53
msgid ""
"Determines what URLs are to be snarfed and\n"
" stored in the database in the channel; URLs matching the regexp given will\n"
" not be snarfed. Give the empty string if you have no URLs that you'd like\n"
" to exclude from being snarfed."
msgstr "Détermine quelles URLs seront écoutées et stockées dans la base de données sur ce canal ; les URLs correspondant à l'expression régulière ne seront pas écoutées. Donnez une chaîne vide si vous ne voulez ignorer aucune URL."
#: config.py:60
msgid ""
"Determines the maximum number of\n"
" bytes the bot will download via the 'fetch' command in this plugin."
msgstr "Détermine le nombre maximum d'octet que le bot téléchargera via la commande 'fetch' de ce plugin."
#: plugin.py:71
msgid "Add the help for \"@help Web\" here."
msgstr ""
#: plugin.py:114
msgid ""
"<url>\n"
"\n"
" Returns the HTTP headers of <url>. Only HTTP urls are valid, of\n"
" course.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne les en-têtes HTTP de l'<url>. Seules les URLs HTTP sont valides, bien sûr."
#: plugin.py:121
msgid "%s: %s"
msgstr "%s : %s"
#: plugin.py:131
msgid ""
"<url>\n"
"\n"
" Returns the DOCTYPE string of <url>. Only HTTP urls are valid, of\n"
" course.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne le DOCTYPE de l'<url>. Seules les URLs HTTP sont valides, bien sûr."
#: plugin.py:143
msgid "That URL has no specified doctype."
msgstr "Cette URL n'a pas de doctype spécifié."
#: plugin.py:148
msgid ""
"<url>\n"
"\n"
" Returns the Content-Length header of <url>. Only HTTP urls are valid,\n"
" of course.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne le'en-têtes HTTP Content-Length de l'<url>. Seules les URLs HTTP sont valides, bien sûr."
#: plugin.py:157
#: plugin.py:162
msgid "%u is %i bytes long."
msgstr "%u est long de %i octets."
#: plugin.py:164
msgid "The server didn't tell me how long %u is but it's longer than %i bytes."
msgstr "Le serveur ne m'a pas dit quelle est la longueur de %u, mais c'est sûr que c'est plus que %i octets."
#: plugin.py:173
msgid ""
"<url>\n"
"\n"
" Returns the HTML <title>...</title> of a URL.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne le titre HTTP de l'<url>."
#: plugin.py:188
msgid "That URL appears to have no HTML title."
msgstr "Cette URL semble ne pas avoir de titre HTML."
#: plugin.py:190
msgid "That URL appears to have no HTML title within the first %i bytes."
msgstr "Ce URL semble ne pas avoir de titre HTML dans les %i premiers octets."
#: plugin.py:198
msgid ""
"<hostname|ip>\n"
"\n"
" Returns Netcraft.com's determination of what operating system and\n"
" webserver is running on the host given.\n"
" "
msgstr "<nom d'hôte|ip>Retourne ce que Netcraft.com dit du système d'exploitation et du serveur web utilisés par l'hôte."
#: plugin.py:212
msgid "No results found for %s."
msgstr "Pas de résultat trouvé pour %s."
#: plugin.py:214
msgid "The format of page the was odd."
msgstr "Le format de la page est bizarre."
#: plugin.py:219
msgid ""
"<text>\n"
"\n"
" Returns the URL quoted form of the text.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Retourne la forme formattée pour URLs du texte."
#: plugin.py:228
msgid ""
"<text>\n"
"\n"
" Returns the text un-URL quoted.\n"
" "
msgstr ""
"<texte>\n"
"\n"
"Retourne la forme dé-formattée pour URLs du texte."
#: plugin.py:238
msgid ""
"<url>\n"
"\n"
" Returns the contents of <url>, or as much as is configured in\n"
" supybot.plugins.Web.fetch.maximum. If that configuration variable is\n"
" set to 0, this command will be effectively disabled.\n"
" "
msgstr ""
"<url>\n"
"\n"
"Retourne le contenu de l'<url>, ou les supybot.plugins.Web.fetch.maximum premiers octets. Si la variable de configution est définie à 0, elle sera effectivement désactivée."
#: plugin.py:246
msgid "This command is disabled (supybot.plugins.Web.fetch.maximum is set to 0)."
msgstr "Cette commande est désactivée (supybot.plugins.Web.fetch.maximum vaut 0)."

View File

@ -67,6 +67,14 @@ def get_plugin_dir(plugin_name):
return filename[0:-len(allowed_file)]
return
def getLocalePath(name, localeName, extension):
if name != 'supybot':
directory = get_plugin_dir(name) + 'locale'
else:
import ansi # Any Supybot plugin could fit
directory = ansi.__file__[0:-len('ansi.pyc')] + 'locale'
return '%s/%s.%s' % (directory, localeName, extension)
i18nClasses = {}
internationalizedCommands = {}
@ -93,9 +101,11 @@ class PluginInternationalization:
elif localeName is None:
localeName = 'en'
self.currentLocaleName = localeName
directory = get_plugin_dir(self.name) + 'locale'
try:
translationFile = open('%s/%s.po' % (directory, localeName), 'ru')
translationFile = open(getLocalePath(self.name, localeName, 'po'),
'ru') # ru is the mode, not the beginning
# of 'russian' ;)
except IOError: # The translation is unavailable
self.translations = {}
return
@ -170,7 +180,33 @@ class PluginInternationalization:
return self.translations[untranslated] % args
except KeyError:
return untranslated % args
def _getL10nCode(self):
return getLocalePath('supybot', self.currentLocaleName, 'py')
def getPluralizers(self, pluralize, depluralize):
# This should be used only by src/utils/str.py
try:
execfile(self._getL10nCode())
except IOError:
pass
return (pluralize, depluralize)
def getOrdinal(self, ordinal):
# This should be used only by src/utils/str.py
try:
execfile(self._getL10nCode())
except IOError:
pass
return ordinal
def getBeAndHave(self, be, have):
# This should be used only by src/utils/str.py
try:
execfile(self._getL10nCode())
except IOError:
pass
return (be, have)
def internationalizeDocstring(obj):
# FIXME: check if the plugin has an _ object

View File

@ -42,6 +42,9 @@ import textwrap
from iter import all, any
from structures import TwoWayDictionary
from supybot.i18n import PluginInternationalization
_ = PluginInternationalization()
curry = new.instancemethod
chars = string.maketrans('', '')
@ -253,12 +256,12 @@ def matchCase(s1, s2):
L[i] = L[i].upper()
return ''.join(L)
consonants = 'bcdfghjklmnpqrstvwxz'
_pluralizeRegex = re.compile('[%s]y$' % consonants)
def pluralize(s):
"""Returns the plural of s. Put any exceptions to the general English
rule of appending 's' in the plurals dictionary.
"""
consonants = 'bcdfghjklmnpqrstvwxz'
_pluralizeRegex = re.compile('[%s]y$' % consonants)
lowered = s.lower()
# Exception dictionary
if lowered in plurals:
@ -275,9 +278,9 @@ def pluralize(s):
else:
return matchCase(s, s+'s')
_depluralizeRegex = re.compile('[%s]ies' % consonants)
def depluralize(s):
"""Returns the singular of s."""
_depluralizeRegex = re.compile('[%s]ies' % consonants)
lowered = s.lower()
if lowered in plurals:
return matchCase(s, plurals[lowered])
@ -291,6 +294,8 @@ def depluralize(s):
else:
return s # Don't know what to do.
pluralize, depluralize = _.getPluralizers(pluralize, depluralize)
def nItems(n, item, between=None):
"""Works like this:
@ -345,6 +350,8 @@ def ordinal(i):
ord = 'rd'
return '%s%s' % (i, ord)
ordinal = _.getOrdinal(ordinal)
def be(i):
"""Returns the form of the verb 'to be' based on the number i."""
if i == 1:
@ -359,6 +366,8 @@ def has(i):
else:
return 'have'
be, have = _.getVerbs(be, have)
def toBool(s):
s = s.strip().lower()
if s in ('true', 'on', 'enable', 'enabled', '1'):