Sfoglia il codice sorgente

Merge branch 'master' into otr

Conflicts:
	converse.js
JC Brand 11 anni fa
parent
commit
00cb015d6a

+ 5 - 0
CHANGES.rst

@@ -1,6 +1,11 @@
 Changelog
 =========
 
+0.6.2 (Unreleased)
+------------------
+
+- French translations. [tdesvenain]
+
 0.6.2 (2013-08-29)
 ------------------
 

+ 6 - 6
converse.js

@@ -2947,9 +2947,9 @@
             template: _.template(
                 '<form id="converse-login">' +
                 '<label>'+__('XMPP/Jabber Username:')+'</label>' +
-                '<input type="text" id="jid">' +
+                '<input type="username" name="jid">' +
                 '<label>'+__('Password:')+'</label>' +
-                '<input type="password" id="password">' +
+                '<input type="password" name="password">' +
                 '<input class="login-submit" type="submit" value="'+__('Log In')+'">' +
                 '</form">'),
 
@@ -2974,7 +2974,7 @@
             },
 
             initialize: function (cfg) {
-                cfg.$parent.append(this.$el.html(this.template()));
+                cfg.$parent.html(this.$el.html(this.template()));
                 this.$tabs = cfg.$parent.parent().find('#controlbox-tabs');
                 this.model.on('connection-fail', function () { this.showConnectButton(); }, this);
                 this.model.on('auth-fail', function () { this.showConnectButton(); }, this);
@@ -2987,11 +2987,10 @@
             },
 
             authenticate: function (ev) {
-                ev.preventDefault();
                 var $form = $(ev.target),
-                    $jid_input = $form.find('input#jid'),
+                    $jid_input = $form.find('input[name=jid]'),
                     jid = $jid_input.val(),
-                    $pw_input = $form.find('input#password'),
+                    $pw_input = $form.find('input[name=password]'),
                     password = $pw_input.val(),
                     $bsu_input = null,
                     errors = false;
@@ -3014,6 +3013,7 @@
                 }
                 if (errors) { return; }
                 this.connect($form, jid, password);
+                return false;
             },
 
             remove: function () {

BIN
docs/doctrees/index.doctree


+ 1 - 1
docs/html/.buildinfo

@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 4e01f0b4332cc0ad20271406d2d00beb
+config: f3d07787913495cdb19115593573816a
 tags: fbb0d17656682115ca4d033fb2f83ba1

+ 5 - 5
docs/html/_sources/index.txt

@@ -602,7 +602,7 @@ You can then create or update the PO file for a specific language by doing the f
 
 ::
 
-    msgmerge ./locale/af/LC_MESSAGES/converse.po ./locale/converse.pot -U
+    msgmerge ./locale/de/LC_MESSAGES/converse.po ./locale/converse.pot -U
 
 This PO file is then what gets translated.
 
@@ -614,11 +614,11 @@ that we're using.
 ::
 
     "domain: converse\n"
-    "lang: af\n"
+    "lang: de\n"
     "plural_forms: nplurals=2; plural=(n != 1);\n"
     
 
-Unfortunately Jed cannot use the PO files directly. We have to generate from it 
+Unfortunately `Jed <http://slexaxton.github.io/Jed>`_ cannot use the PO files directly. We have to generate from it 
 a file in JSON format and then put that in a .js file for the specific
 language.
 
@@ -633,7 +633,7 @@ You can then convert the translations into JSON format:
 
 ::
 
-    po2json locale/af/LC_MESSAGES/converse.po locale/af/LC_MESSAGES/converse.json
+    po2json locale/de/LC_MESSAGES/converse.po locale/de/LC_MESSAGES/converse.json
 
 Now from converse.json paste the data as a value for the "locale_data" key in the
 object in the language's .js file.
@@ -644,7 +644,7 @@ create or update the file ./locale/LC_MESSAGES/de.js with the following code:
 ::
 
     (function (root, factory) {
-        define("af", ['jed'], function () {
+        define("de", ['jed'], function () {
             return factory(new Jed({
                 "domain": "converse",
                 "locale_data": {

+ 5 - 5
docs/html/genindex.html

@@ -9,7 +9,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Index &mdash; Converse.js 0.6.0 documentation</title>
+    <title>Index &mdash; Converse.js 0.6.2 documentation</title>
     
     <link rel="stylesheet" href="_static/stylesheet.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -17,7 +17,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.6.0',
+        VERSION:     '0.6.2',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -26,7 +26,7 @@
     <script type="text/javascript" src="_static/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="Converse.js 0.6.0 documentation" href="index.html" /> 
+    <link rel="top" title="Converse.js 0.6.2 documentation" href="index.html" /> 
   </head>
   <body>
     <div id="header_wrap" class="outer">
@@ -51,7 +51,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="#" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">Converse.js 0.6.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Converse.js 0.6.2 documentation</a> &raquo;</li> 
       </ul>
     </div>
 <section id="main_content" class="inner">  
@@ -80,7 +80,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="#" title="General Index"
              >index</a></li>
-        <li><a href="index.html">Converse.js 0.6.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Converse.js 0.6.2 documentation</a> &raquo;</li> 
       </ul>
     </div>
 </div>

+ 10 - 10
docs/html/index.html

@@ -7,7 +7,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Quickstart (to get a demo up and running) &mdash; Converse.js 0.6.0 documentation</title>
+    <title>Quickstart (to get a demo up and running) &mdash; Converse.js 0.6.2 documentation</title>
     
     <link rel="stylesheet" href="_static/stylesheet.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.6.0',
+        VERSION:     '0.6.2',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -24,7 +24,7 @@
     <script type="text/javascript" src="_static/jquery.js"></script>
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="top" title="Converse.js 0.6.0 documentation" href="#" /> 
+    <link rel="top" title="Converse.js 0.6.2 documentation" href="#" /> 
   </head>
   <body>
     <div id="header_wrap" class="outer">
@@ -49,7 +49,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="#">Converse.js 0.6.0 documentation</a> &raquo;</li> 
+        <li><a href="#">Converse.js 0.6.2 documentation</a> &raquo;</li> 
       </ul>
     </div>
 <section id="main_content" class="inner">  
@@ -550,7 +550,7 @@ function like so:</p>
 <div class="highlight-python"><pre>make pot</pre>
 </div>
 <p>You can then create or update the PO file for a specific language by doing the following:</p>
-<div class="highlight-python"><pre>msgmerge ./locale/af/LC_MESSAGES/converse.po ./locale/converse.pot -U</pre>
+<div class="highlight-python"><pre>msgmerge ./locale/de/LC_MESSAGES/converse.po ./locale/converse.pot -U</pre>
 </div>
 <p>This PO file is then what gets translated.</p>
 <p>If you&#8217;ve created a new PO file, please make sure to add the following
@@ -558,11 +558,11 @@ attributes at the top of the file (under <em>Content-Transfer-Encoding</em>). Th
 required as configuration settings for Jed, the Javascript translations library
 that we&#8217;re using.</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="s">&quot;domain: converse</span><span class="se">\n</span><span class="s">&quot;</span>
-<span class="s">&quot;lang: af</span><span class="se">\n</span><span class="s">&quot;</span>
+<span class="s">&quot;lang: de</span><span class="se">\n</span><span class="s">&quot;</span>
 <span class="s">&quot;plural_forms: nplurals=2; plural=(n != 1);</span><span class="se">\n</span><span class="s">&quot;</span>
 </pre></div>
 </div>
-<p>Unfortunately Jed cannot use the PO files directly. We have to generate from it
+<p>Unfortunately <a class="reference external" href="http://slexaxton.github.io/Jed">Jed</a> cannot use the PO files directly. We have to generate from it
 a file in JSON format and then put that in a .js file for the specific
 language.</p>
 <p>To generate JSON from a PO file, you&#8217;ll need po2json for node.js. Run the
@@ -570,14 +570,14 @@ following command to install it (npm being the node.js package manager):</p>
 <div class="highlight-python"><pre>npm install po2json</pre>
 </div>
 <p>You can then convert the translations into JSON format:</p>
-<div class="highlight-python"><pre>po2json locale/af/LC_MESSAGES/converse.po locale/af/LC_MESSAGES/converse.json</pre>
+<div class="highlight-python"><pre>po2json locale/de/LC_MESSAGES/converse.po locale/de/LC_MESSAGES/converse.json</pre>
 </div>
 <p>Now from converse.json paste the data as a value for the &#8220;locale_data&#8221; key in the
 object in the language&#8217;s .js file.</p>
 <p>So, if you are for example translating into German (language code &#8216;de&#8217;), you&#8217;ll
 create or update the file ./locale/LC_MESSAGES/de.js with the following code:</p>
 <div class="highlight-python"><pre>(function (root, factory) {
-    define("af", ['jed'], function () {
+    define("de", ['jed'], function () {
         return factory(new Jed({
             "domain": "converse",
             "locale_data": {
@@ -613,7 +613,7 @@ those hoops you had to jump through.</p>
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="#">Converse.js 0.6.0 documentation</a> &raquo;</li> 
+        <li><a href="#">Converse.js 0.6.2 documentation</a> &raquo;</li> 
       </ul>
     </div>
 </div>

+ 1 - 1
docs/html/objects.inv

@@ -1,6 +1,6 @@
 # Sphinx inventory version 2
 # Project: Converse.js
-# Version: 0.6.0
+# Version: 0.6.2
 # The remainder of this file is compressed using zlib.
 xÚmÎÁ
 à à{Ÿ"°³ƒ]÷;

+ 5 - 5
docs/html/search.html

@@ -7,7 +7,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Search &mdash; Converse.js 0.6.0 documentation</title>
+    <title>Search &mdash; Converse.js 0.6.2 documentation</title>
     
     <link rel="stylesheet" href="_static/stylesheet.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -15,7 +15,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '0.6.0',
+        VERSION:     '0.6.2',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -25,7 +25,7 @@
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/searchtools.js"></script>
-    <link rel="top" title="Converse.js 0.6.0 documentation" href="index.html" />
+    <link rel="top" title="Converse.js 0.6.2 documentation" href="index.html" />
   <script type="text/javascript">
     jQuery(function() { Search.loadIndex("searchindex.js"); });
   </script>
@@ -55,7 +55,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">Converse.js 0.6.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Converse.js 0.6.2 documentation</a> &raquo;</li> 
       </ul>
     </div>
 <section id="main_content" class="inner">  
@@ -100,7 +100,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">Converse.js 0.6.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Converse.js 0.6.2 documentation</a> &raquo;</li> 
       </ul>
     </div>
 </div>

File diff suppressed because it is too large
+ 0 - 0
docs/html/searchindex.js


+ 5 - 5
docs/source/index.rst

@@ -602,7 +602,7 @@ You can then create or update the PO file for a specific language by doing the f
 
 ::
 
-    msgmerge ./locale/af/LC_MESSAGES/converse.po ./locale/converse.pot -U
+    msgmerge ./locale/de/LC_MESSAGES/converse.po ./locale/converse.pot -U
 
 This PO file is then what gets translated.
 
@@ -614,11 +614,11 @@ that we're using.
 ::
 
     "domain: converse\n"
-    "lang: af\n"
+    "lang: de\n"
     "plural_forms: nplurals=2; plural=(n != 1);\n"
     
 
-Unfortunately Jed cannot use the PO files directly. We have to generate from it 
+Unfortunately `Jed <http://slexaxton.github.io/Jed>`_ cannot use the PO files directly. We have to generate from it 
 a file in JSON format and then put that in a .js file for the specific
 language.
 
@@ -633,7 +633,7 @@ You can then convert the translations into JSON format:
 
 ::
 
-    po2json locale/af/LC_MESSAGES/converse.po locale/af/LC_MESSAGES/converse.json
+    po2json locale/de/LC_MESSAGES/converse.po locale/de/LC_MESSAGES/converse.json
 
 Now from converse.json paste the data as a value for the "locale_data" key in the
 object in the language's .js file.
@@ -644,7 +644,7 @@ create or update the file ./locale/LC_MESSAGES/de.js with the following code:
 ::
 
     (function (root, factory) {
-        define("af", ['jed'], function () {
+        define("de", ['jed'], function () {
             return factory(new Jed({
                 "domain": "converse",
                 "locale_data": {

+ 2 - 2
index.html

@@ -54,7 +54,7 @@
         <li>Custom status messages</li>
         <li>Typing notifications</li>
         <li>Third person messages (/me )</li>
-        <li>Translated into multiple languages  (af, de, es, it, pt-BR)</li>
+        <li>Translated into multiple languages  (af, de, es, fr, it, pt-BR)</li>
     </ul>
 
     <h2>Screencasts</h2>
@@ -198,7 +198,7 @@
             bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
             debug: true ,
             hide_muc_server: false,
-            i18n: locales['fr'], // Refer to ./locale/locales.js to see which locales are supported
+            i18n: locales['en'], // Refer to ./locale/locales.js to see which locales are supported
             prebind: false,
             show_controlbox_by_default: true,
             xhr_user_search: false,

+ 465 - 0
locale/fr/LC_MESSAGES/converse.json

@@ -0,0 +1,465 @@
+{
+   "converse": {
+      "": {
+         "Project-Id-Version": "Converse.js 0.4",
+         "Report-Msgid-Bugs-To": "",
+         "POT-Creation-Date": "2013-06-01 23:03+0200",
+         "PO-Revision-Date": "2013-07-22 18:13-0400",
+         "Last-Translator": "Leonardo J. Caballero G. <leonardocaballero@gmail.com>",
+         "Language-Team": "ES <LL@li.org>",
+         "MIME-Version": "1.0",
+         "Content-Type": "text/plain; charset=UTF-8",
+         "Content-Transfer-Encoding": "8bit",
+         "Plural-Forms": "nplurals=2; plural=(n != 1);",
+         "plural_forms": "nplurals=2; plural=(n != 1);",
+         "Language": "es",
+         "lang": "es",
+         "Language-Code": "es",
+         "Language-Name": "Español",
+         "Preferred-Encodings": "utf-8 latin1",
+         "Domain": "converse",
+         "domain": "converse",
+         "X-Is-Fallback-For": "es-ar es-bo es-cl es-co es-cr es-do es-ec es-es es-sv es-gt es-hn es-mx es-ni es-pa es-py es-pe es-pr es-us es-uy es-ve"
+      },
+      "Show this menu": [
+         null,
+         "Afficher ce menu"
+      ],
+      "Write in the third person": [
+         null,
+         "Écrire à la troisième personne"
+      ],
+      "Remove messages": [
+         null,
+         "Effacer les messages"
+      ],
+      "Personal message": [
+         null,
+         "Message personnel"
+      ],
+      "Contacts": [
+         null,
+         "Contacts"
+      ],
+      "Online": [
+         null,
+         "En ligne"
+      ],
+      "Busy": [
+         null,
+         "Occupé"
+      ],
+      "Away": [
+         null,
+         "Absent"
+      ],
+      "Offline": [
+         null,
+         "Déconnecté"
+      ],
+      "Click to add new chat contacts": [
+         null,
+         "Cliquez pour ajouter de nouveaux contacts"
+      ],
+      "Add a contact": [
+         null,
+         "Ajouter un contact"
+      ],
+      "Contact username": [
+         null,
+         "Nom du contact"
+      ],
+      "Add": [
+         null,
+         "Ajouter"
+      ],
+      "Contact name": [
+         null,
+         "Nom du contact"
+      ],
+      "Search": [
+         null,
+         "Rechercher"
+      ],
+      "No users found": [
+         null,
+         "Aucun utilisateur trouvé"
+      ],
+      "Click to add as a chat contact": [
+         null,
+         "Cliquer pour ajouter aux contacts de chat"
+      ],
+      "Click to open this room": [
+         null,
+         "Cliquer pour ouvrir ce salon"
+      ],
+      "Show more information on this room": [
+         null,
+         "Afficher davantage d'informations sur ce salon"
+      ],
+      "Description:": [
+         null,
+         "Description :"
+      ],
+      "Occupants:": [
+         null,
+         "Participants :"
+      ],
+      "Features:": [
+         null,
+         "Caractéristiques :"
+      ],
+      "Requires authentication": [
+         null,
+         "Nécessite une authentification"
+      ],
+      "Hidden": [
+         null,
+         "Masqué"
+      ],
+      "Requires an invitation": [
+         null,
+         "Nécessite une invitation"
+      ],
+      "Moderated": [
+         null,
+         "Modéré"
+      ],
+      "Non-anonymous": [
+         null,
+         "Non-anonyme"
+      ],
+      "Open room": [
+         null,
+         "Ouvrir un salon"
+      ],
+      "Permanent room": [
+         null,
+         "Salon permanent"
+      ],
+      "Public": [
+         null,
+         "Public"
+      ],
+      "Semi-anonymous": [
+         null,
+         "Semi-anonyme"
+      ],
+      "Temporary room": [
+         null,
+         "Salon temporaire"
+      ],
+      "Unmoderated": [
+         null,
+         "Non modéré"
+      ],
+      "Rooms": [
+         null,
+         "Salons"
+      ],
+      "Room name": [
+         null,
+         "Numéro de salon"
+      ],
+      "Nickname": [
+         null,
+         "Alias"
+      ],
+      "Server": [
+         null,
+         "Serveur"
+      ],
+      "Join": [
+         null,
+         "Rejoindre"
+      ],
+      "Show rooms": [
+         null,
+         "Afficher les salons"
+      ],
+      "No rooms on %1$s": [
+         null,
+         "Aucun salon dans %1$s"
+      ],
+      "Rooms on %1$s": [
+         null,
+         "Salons dans %1$s"
+      ],
+      "Set chatroom topic": [
+         null,
+         "Indiquer le sujet du salon"
+      ],
+      "Kick user from chatroom": [
+         null,
+         "Expulser l'utilisateur du salon."
+      ],
+      "Ban user from chatroom": [
+         null,
+         "Bannir l'utilisateur du salon."
+      ],
+      "Message": [
+         null,
+         "Message"
+      ],
+      "Save": [
+         null,
+         "Enregistrer"
+      ],
+      "Cancel": [
+         null,
+         "Annuler"
+      ],
+      "An error occurred while trying to save the form.": [
+         null,
+         "Une erreur est survenue lors de l'enregistrement du formulaire."
+      ],
+      "This chatroom requires a password": [
+         null,
+         "Ce salon nécessite un mot de passe."
+      ],
+      "Password: ": [
+         null,
+         "Mot de passe : "
+      ],
+      "Submit": [
+         null,
+         "Soumettre"
+      ],
+      "This room is not anonymous": [
+         null,
+         "Ce salon n'est pas anonyme"
+      ],
+      "This room now shows unavailable members": [
+         null,
+         "Ce salon affiche maintenant des membres indisponibles"
+      ],
+      "This room does not show unavailable members": [
+         null,
+         "Ce salon n'affiche pas les membres indisponibles"
+      ],
+      "Non-privacy-related room configuration has changed": [
+         null,
+         "Les paramètres du salon non liés à la confidentialité ont été modifiés"
+      ],
+      "Room logging is now enabled": [
+         null,
+         "Le logging du salon est activé"
+      ],
+      "Room logging is now disabled": [
+         null,
+         "Le logging du salon est désactivé"
+      ],
+      "This room is now non-anonymous": [
+         null,
+         "Ce salon est maintenant non-anonyme"
+      ],
+      "This room is now semi-anonymous": [
+         null,
+         "Ce salon est maintenant semi-anonyme"
+      ],
+      "This room is now fully-anonymous": [
+         null,
+         "Ce salon est maintenant entièrement anonyme"
+      ],
+      "A new room has been created": [
+         null,
+         "Un nouveau salon a été créé"
+      ],
+      "Your nickname has been changed": [
+         null,
+         "Votre alias a été modifié"
+      ],
+      "<strong>%1$s</strong> has been banned": [
+         null,
+         "<strong>%1$s</strong> a été banni"
+      ],
+      "<strong>%1$s</strong> has been kicked out": [
+         null,
+         "<strong>%1$s</strong> a été expulsé"
+      ],
+      "<strong>%1$s</strong> has been removed because of an affiliation change": [
+         null,
+         "<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation"
+      ],
+      "<strong>%1$s</strong> has been removed for not being a member": [
+         null,
+         "<strong>%1$s</strong> a été supprimé car il n'est pas membre"
+      ],
+      "You have been banned from this room": [
+         null,
+         "Vous avez été banni de ce salon"
+      ],
+      "You have been kicked from this room": [
+         null,
+         "Vous avez été expulsé de ce salon"
+      ],
+      "You have been removed from this room because of an affiliation change": [
+         null,
+         "Vous avez été retiré de ce salon du fait d'un changement d'affiliation"
+      ],
+      "You have been removed from this room because the room has changed to members-only and you're not a member": [
+         null,
+         "Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux membres et vous n'êtes pas membre"
+      ],
+      "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+         null,
+         "Vous avez été retiré de ce salon parce que le service de chat multi-utilisateur a été désactivé."
+      ],
+      "You are not on the member list of this room": [
+         null,
+         "Vous n'êtes pas dans la liste des membres de ce salon"
+      ],
+      "No nickname was specified": [
+         null,
+         "Aucun alias n'a été indiqué"
+      ],
+      "You are not allowed to create new rooms": [
+         null,
+         "Vous n'êtes pas autorisé à créer des salons"
+      ],
+      "Your nickname doesn't conform to this room's policies": [
+         null,
+         "Votre alias n'est pas conforme à la politique de ce salon"
+      ],
+      "Your nickname is already taken": [
+         null,
+         "Votre alias est déjà utilisé"
+      ],
+      "This room does not (yet) exist": [
+         null,
+         "Ce salon n'existe pas encore"
+      ],
+      "This room has reached it's maximum number of occupants": [
+         null,
+         "Ce salon a atteint la limite maximale d'occupants"
+      ],
+      "Topic set by %1$s to: %2$s": [
+         null,
+         "Le sujet '%1$s' a été défini par %2$s"
+      ],
+      "This user is a moderator": [
+         null,
+         "Cet utilisateur est modérateur"
+      ],
+      "This user can send messages in this room": [
+         null,
+         "Cet utilisateur peut envoyer des messages dans ce salon"
+      ],
+      "This user can NOT send messages in this room": [
+         null,
+         "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"
+      ],
+      "Click to chat with this contact": [
+         null,
+         "Cliquez pour discuter avec ce contact"
+      ],
+      "Click to remove this contact": [
+         null,
+         "Cliquez pour supprimer ce contact"
+      ],
+      "Contact requests": [
+         null,
+         "Demandes de contacts"
+      ],
+      "My contacts": [
+         null,
+         "Mes contacts"
+      ],
+      "Pending contacts": [
+         null,
+         "Contacts en attente"
+      ],
+      "Custom status": [
+         null,
+         "Statut personnel"
+      ],
+      "Click to change your chat status": [
+         null,
+         "Cliquez pour changer votre statut"
+      ],
+      "Click here to write a custom status message": [
+         null,
+         "Cliquez ici pour indiquer votre statut personnel"
+      ],
+      "online": [
+         null,
+         "en ligne"
+      ],
+      "busy": [
+         null,
+         "occupé"
+      ],
+      "away for long": [
+         null,
+         "absent pour une longue durée"
+      ],
+      "away": [
+         null,
+         "absent"
+      ],
+      "I am %1$s": [
+         null,
+         "Je suis %1$s"
+      ],
+      "Sign in": [
+         null,
+         "S'inscrire"
+      ],
+      "XMPP/Jabber Username:": [
+         null,
+         "Nom d'utilisateur XMPP/Jabber"
+      ],
+      "Password:": [
+         null,
+         "Mot de passe :"
+      ],
+      "Log In": [
+         null,
+         "Se connecter"
+      ],
+      "BOSH Service URL:": [
+         null,
+         "URL du service BOSH:"
+      ],
+      "Connected": [
+         null,
+         "Connecté"
+      ],
+      "Disconnected": [
+         null,
+         "Déconnecté"
+      ],
+      "Error": [
+         null,
+         "Erreur"
+      ],
+      "Connecting": [
+         null,
+         "Connection"
+      ],
+      "Connection Failed": [
+         null,
+         "La connection a échoué"
+      ],
+      "Authenticating": [
+         null,
+         "Authentification"
+      ],
+      "Authentication Failed": [
+         null,
+         "L'authentification a échoué"
+      ],
+      "Disconnecting": [
+         null,
+         "Déconnection"
+      ],
+      "Attached": [
+         null,
+         "Attaché"
+      ],
+      "Online Contacts": [
+         null,
+         "Contacts en ligne"
+      ]
+   }
+}

+ 493 - 0
locale/fr/LC_MESSAGES/converse.po

@@ -0,0 +1,493 @@
+# Spanish translations for Converse.js package.
+# Copyright (C) 2013 Jan-Carel Brand
+# This file is distributed under the same license as the Converse.js package.
+# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: Converse.js 0.4\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-06-01 23:03+0200\n"
+"PO-Revision-Date: 2013-07-22 18:13-0400\n"
+"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>\n"
+"Language-Team: ES <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"plural_forms: nplurals=2; plural=(n != 1);\n"
+"Language: es\n"
+"lang: es\n"
+"Language-Code: es\n"
+"Language-Name: Español\n"
+"Preferred-Encodings: utf-8 latin1\n"
+"Domain: converse\n"
+"domain: converse\n"
+"X-Is-Fallback-For: es-ar es-bo es-cl es-co es-cr es-do es-ec es-es es-sv es-gt es-hn es-mx es-ni es-pa es-py es-pe es-pr es-us es-uy es-ve\n"
+
+#: converse.js:397
+#: converse.js:1128
+msgid "Show this menu"
+msgstr "Afficher ce menu"
+
+#: converse.js:398
+#: converse.js:1129
+msgid "Write in the third person"
+msgstr "Écrire à la troisième personne"
+
+#: converse.js:399
+#: converse.js:1133
+msgid "Remove messages"
+msgstr "Effacer les messages"
+
+#: converse.js:539
+msgid "Personal message"
+msgstr "Message personnel"
+
+#: converse.js:613
+msgid "Contacts"
+msgstr "Contacts"
+
+#: converse.js:618
+msgid "Online"
+msgstr "En ligne"
+
+#: converse.js:619
+msgid "Busy"
+msgstr "Occupé"
+
+#: converse.js:620
+msgid "Away"
+msgstr "Absent"
+
+#: converse.js:621
+msgid "Offline"
+msgstr "Déconnecté"
+
+#: converse.js:628
+msgid "Click to add new chat contacts"
+msgstr "Cliquez pour ajouter de nouveaux contacts"
+
+#: converse.js:628
+msgid "Add a contact"
+msgstr "Ajouter un contact"
+
+#: converse.js:637
+msgid "Contact username"
+msgstr "Nom du contact"
+
+#: converse.js:638
+msgid "Add"
+msgstr "Ajouter"
+
+#: converse.js:646
+msgid "Contact name"
+msgstr "Nom du contact"
+
+#: converse.js:647
+msgid "Search"
+msgstr "Rechercher"
+
+#: converse.js:682
+msgid "No users found"
+msgstr "Aucun utilisateur trouvé"
+
+#: converse.js:689
+msgid "Click to add as a chat contact"
+msgstr "Cliquer pour ajouter aux contacts de chat"
+
+#: converse.js:753
+msgid "Click to open this room"
+msgstr "Cliquer pour ouvrir ce salon"
+
+#: converse.js:755
+msgid "Show more information on this room"
+msgstr "Afficher davantage d'informations sur ce salon"
+
+#: converse.js:760
+msgid "Description:"
+msgstr "Description :"
+
+#: converse.js:761
+msgid "Occupants:"
+msgstr "Participants :"
+
+#: converse.js:762
+msgid "Features:"
+msgstr "Caractéristiques :"
+
+#: converse.js:764
+msgid "Requires authentication"
+msgstr "Nécessite une authentification"
+
+#: converse.js:767
+msgid "Hidden"
+msgstr "Masqué"
+
+#: converse.js:770
+msgid "Requires an invitation"
+msgstr "Nécessite une invitation"
+
+#: converse.js:773
+msgid "Moderated"
+msgstr "Modéré"
+
+#: converse.js:776
+msgid "Non-anonymous"
+msgstr "Non-anonyme"
+
+#: converse.js:779
+msgid "Open room"
+msgstr "Ouvrir un salon"
+
+#: converse.js:782
+msgid "Permanent room"
+msgstr "Salon permanent"
+
+#: converse.js:785
+msgid "Public"
+msgstr "Public"
+
+#: converse.js:788
+msgid "Semi-anonymous"
+msgstr "Semi-anonyme"
+
+#: converse.js:791
+msgid "Temporary room"
+msgstr "Salon temporaire"
+
+#: converse.js:794
+msgid "Unmoderated"
+msgstr "Non modéré"
+
+#: converse.js:800
+msgid "Rooms"
+msgstr "Salons"
+
+#: converse.js:804
+msgid "Room name"
+msgstr "Numéro de salon"
+
+#: converse.js:805
+msgid "Nickname"
+msgstr "Alias"
+
+#: converse.js:806
+msgid "Server"
+msgstr "Serveur"
+
+#: converse.js:807
+msgid "Join"
+msgstr "Rejoindre"
+
+#: converse.js:808
+msgid "Show rooms"
+msgstr "Afficher les salons"
+
+#. For translators: %1$s is a variable and will be replaced with the XMPP server name
+#: converse.js:841
+msgid "No rooms on %1$s"
+msgstr "Aucun salon dans %1$s"
+
+#. For translators: %1$s is a variable and will be
+#. replaced with the XMPP server name
+#: converse.js:856
+msgid "Rooms on %1$s"
+msgstr "Salons dans %1$s"
+
+#: converse.js:1130
+msgid "Set chatroom topic"
+msgstr "Indiquer le sujet du salon"
+
+#: converse.js:1131
+msgid "Kick user from chatroom"
+msgstr "Expulser l'utilisateur du salon."
+
+#: converse.js:1132
+msgid "Ban user from chatroom"
+msgstr "Bannir l'utilisateur du salon."
+
+#: converse.js:1159
+msgid "Message"
+msgstr "Message"
+
+#: converse.js:1273
+#: converse.js:2318
+msgid "Save"
+msgstr "Enregistrer"
+
+#: converse.js:1274
+msgid "Cancel"
+msgstr "Annuler"
+
+#: converse.js:1321
+msgid "An error occurred while trying to save the form."
+msgstr "Une erreur est survenue lors de l'enregistrement du formulaire."
+
+#: converse.js:1367
+msgid "This chatroom requires a password"
+msgstr "Ce salon nécessite un mot de passe."
+
+#: converse.js:1368
+msgid "Password: "
+msgstr "Mot de passe : "
+
+#: converse.js:1369
+msgid "Submit"
+msgstr "Soumettre"
+
+#: converse.js:1383
+msgid "This room is not anonymous"
+msgstr "Ce salon n'est pas anonyme"
+
+#: converse.js:1384
+msgid "This room now shows unavailable members"
+msgstr "Ce salon affiche maintenant des membres indisponibles"
+
+#: converse.js:1385
+msgid "This room does not show unavailable members"
+msgstr "Ce salon n'affiche pas les membres indisponibles"
+
+#: converse.js:1386
+msgid "Non-privacy-related room configuration has changed"
+msgstr "Les paramètres du salon non liés à la confidentialité ont été modifiés"
+
+#: converse.js:1387
+msgid "Room logging is now enabled"
+msgstr "Le logging du salon est activé"
+
+#: converse.js:1388
+msgid "Room logging is now disabled"
+msgstr "Le logging du salon est désactivé"
+
+#: converse.js:1389
+msgid "This room is now non-anonymous"
+msgstr "Ce salon est maintenant non-anonyme"
+
+#: converse.js:1390
+msgid "This room is now semi-anonymous"
+msgstr "Ce salon est maintenant semi-anonyme"
+
+#: converse.js:1391
+msgid "This room is now fully-anonymous"
+msgstr "Ce salon est maintenant entièrement anonyme"
+
+#: converse.js:1392
+msgid "A new room has been created"
+msgstr "Un nouveau salon a été créé"
+
+#: converse.js:1393
+msgid "Your nickname has been changed"
+msgstr "Votre alias a été modifié"
+
+#. For translations: %1$s will be replaced with the user's nickname
+#. Don't translate "strong"
+#. Example: <strong>jcbrand</strong> has been banned
+#: converse.js:1400
+msgid "<strong>%1$s</strong> has been banned"
+msgstr "<strong>%1$s</strong> a été banni"
+
+#. For translations: %1$s will be replaced with the user's nickname
+#. Don't translate "strong"
+#. Example: <strong>jcbrand</strong> has been kicked out
+#: converse.js:1404
+msgid "<strong>%1$s</strong> has been kicked out"
+msgstr "<strong>%1$s</strong> a été expulsé"
+
+#. For translations: %1$s will be replaced with the user's nickname
+#. Don't translate "strong"
+#. Example: <strong>jcbrand</strong> has been removed because of an affiliasion change
+#: converse.js:1408
+msgid "<strong>%1$s</strong> has been removed because of an affiliation change"
+msgstr "<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation"
+
+#. For translations: %1$s will be replaced with the user's nickname
+#. Don't translate "strong"
+#. Example: <strong>jcbrand</strong> has been removed for not being a member
+#: converse.js:1412
+msgid "<strong>%1$s</strong> has been removed for not being a member"
+msgstr "<strong>%1$s</strong> a été supprimé car il n'est pas membre"
+
+#: converse.js:1416
+#: converse.js:1478
+msgid "You have been banned from this room"
+msgstr "Vous avez été banni de ce salon"
+
+#: converse.js:1417
+msgid "You have been kicked from this room"
+msgstr "Vous avez été expulsé de ce salon"
+
+#: converse.js:1418
+msgid "You have been removed from this room because of an affiliation change"
+msgstr "Vous avez été retiré de ce salon du fait d'un changement d'affiliation"
+
+#: converse.js:1419
+msgid "You have been removed from this room because the room has changed to members-only and you're not a member"
+msgstr "Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux membres et vous n'êtes pas membre"
+
+#: converse.js:1420
+msgid "You have been removed from this room because the MUC (Multi-user chat) service is being shut down."
+msgstr "Vous avez été retiré de ce salon parce que le service de chat multi-utilisateur a été désactivé."
+
+#: converse.js:1476
+msgid "You are not on the member list of this room"
+msgstr "Vous n'êtes pas dans la liste des membres de ce salon"
+
+#: converse.js:1482
+msgid "No nickname was specified"
+msgstr "Aucun alias n'a été indiqué"
+
+#: converse.js:1486
+msgid "You are not allowed to create new rooms"
+msgstr "Vous n'êtes pas autorisé à créer des salons"
+
+#: converse.js:1488
+msgid "Your nickname doesn't conform to this room's policies"
+msgstr "Votre alias n'est pas conforme à la politique de ce salon"
+
+#: converse.js:1490
+msgid "Your nickname is already taken"
+msgstr "Votre alias est déjà utilisé"
+
+#: converse.js:1492
+msgid "This room does not (yet) exist"
+msgstr "Ce salon n'existe pas encore"
+
+#: converse.js:1494
+msgid "This room has reached it's maximum number of occupants"
+msgstr "Ce salon a atteint la limite maximale d'occupants"
+
+#. For translators: the %1$s and %2$s parts will get replaced by the user and topic text respectively
+#. Example: Topic set by JC Brand to: Hello World!
+#: converse.js:1571
+msgid "Topic set by %1$s to: %2$s"
+msgstr "Le sujet '%1$s' a été défini par %2$s"
+
+#: converse.js:1587
+msgid "This user is a moderator"
+msgstr "Cet utilisateur est modérateur"
+
+#: converse.js:1590
+msgid "This user can send messages in this room"
+msgstr "Cet utilisateur peut envoyer des messages dans ce salon"
+
+#: converse.js:1593
+msgid "This user can NOT send messages in this room"
+msgstr "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"
+
+#: converse.js:1796
+msgid "Click to chat with this contact"
+msgstr "Cliquez pour discuter avec ce contact"
+
+#: converse.js:1797
+#: converse.js:1801
+msgid "Click to remove this contact"
+msgstr "Cliquez pour supprimer ce contact"
+
+#: converse.js:2163
+msgid "Contact requests"
+msgstr "Demandes de contacts"
+
+#: converse.js:2164
+msgid "My contacts"
+msgstr "Mes contacts"
+
+#: converse.js:2165
+msgid "Pending contacts"
+msgstr "Contacts en attente"
+
+#: converse.js:2317
+msgid "Custom status"
+msgstr "Statut personnel"
+
+#: converse.js:2323
+msgid "Click to change your chat status"
+msgstr "Cliquez pour changer votre statut"
+
+#: converse.js:2326
+msgid "Click here to write a custom status message"
+msgstr "Cliquez ici pour indiquer votre statut personnel"
+
+#: converse.js:2355
+#: converse.js:2363
+msgid "online"
+msgstr "en ligne"
+
+#: converse.js:2357
+msgid "busy"
+msgstr "occupé"
+
+#: converse.js:2359
+msgid "away for long"
+msgstr "absent pour une longue durée"
+
+#: converse.js:2361
+msgid "away"
+msgstr "absent"
+
+#. For translators: the %1$s part gets replaced with the status
+#. Example, I am online
+#: converse.js:2375
+#: converse.js:2409
+msgid "I am %1$s"
+msgstr "Je suis %1$s"
+
+#: converse.js:2480
+msgid "Sign in"
+msgstr "S'inscrire"
+
+#: converse.js:2483
+msgid "XMPP/Jabber Username:"
+msgstr "Nom d'utilisateur XMPP/Jabber"
+
+#: converse.js:2485
+msgid "Password:"
+msgstr "Mot de passe :"
+
+#: converse.js:2487
+msgid "Log In"
+msgstr "Se connecter"
+
+#: converse.js:2491
+msgid "BOSH Service URL:"
+msgstr "URL du service BOSH:"
+
+#: converse.js:2503
+msgid "Connected"
+msgstr "Connecté"
+
+#: converse.js:2507
+msgid "Disconnected"
+msgstr "Déconnecté"
+
+#: converse.js:2511
+msgid "Error"
+msgstr "Erreur"
+
+#: converse.js:2513
+msgid "Connecting"
+msgstr "Connection"
+
+#: converse.js:2516
+msgid "Connection Failed"
+msgstr "La connection a échoué"
+
+#: converse.js:2518
+msgid "Authenticating"
+msgstr "Authentification"
+
+#: converse.js:2521
+msgid "Authentication Failed"
+msgstr "L'authentification a échoué"
+
+#: converse.js:2523
+msgid "Disconnecting"
+msgstr "Déconnection"
+
+#: converse.js:2525
+msgid "Attached"
+msgstr "Attaché"
+
+#: converse.js:2656
+msgid "Online Contacts"
+msgstr "Contacts en ligne"
+

+ 482 - 0
locale/fr/LC_MESSAGES/fr.js

@@ -0,0 +1,482 @@
+(function (root, factory) {
+    var translations = {
+        "domain": "converse",
+        "locale_data": {
+            "converse": {
+                "": {
+                    "Project-Id-Version": "Converse.js 0.4",
+                    "Report-Msgid-Bugs-To": "",
+                    "POT-Creation-Date": "2013-06-01 23:03+0200",
+                    "PO-Revision-Date": "2013-07-22 18:13-0400",
+                    "Last-Translator": "Leonardo J. Caballero G. <leonardocaballero@gmail.com>",
+                    "Language-Team": "ES <LL@li.org>",
+                    "MIME-Version": "1.0",
+                    "Content-Type": "text/plain; charset=UTF-8",
+                    "Content-Transfer-Encoding": "8bit",
+                    "Plural-Forms": "nplurals=2; plural=(n != 1);",
+                    "plural_forms": "nplurals=2; plural=(n != 1);",
+                    "Language": "es",
+                    "lang": "es",
+                    "Language-Code": "es",
+                    "Language-Name": "Español",
+                    "Preferred-Encodings": "utf-8 latin1",
+                    "Domain": "converse",
+                    "domain": "converse",
+                    "X-Is-Fallback-For": "es-ar es-bo es-cl es-co es-cr es-do es-ec es-es es-sv es-gt es-hn es-mx es-ni es-pa es-py es-pe es-pr es-us es-uy es-ve"
+                 },
+                 "Show this menu": [
+                    null,
+                    "Afficher ce menu"
+                 ],
+                 "Write in the third person": [
+                    null,
+                    "Écrire à la troisième personne"
+                 ],
+                 "Remove messages": [
+                    null,
+                    "Effacer les messages"
+                 ],
+                 "Personal message": [
+                    null,
+                    "Message personnel"
+                 ],
+                 "Contacts": [
+                    null,
+                    "Contacts"
+                 ],
+                 "Online": [
+                    null,
+                    "En ligne"
+                 ],
+                 "Busy": [
+                    null,
+                    "Occupé"
+                 ],
+                 "Away": [
+                    null,
+                    "Absent"
+                 ],
+                 "Offline": [
+                    null,
+                    "Déconnecté"
+                 ],
+                 "Click to add new chat contacts": [
+                    null,
+                    "Cliquez pour ajouter de nouveaux contacts"
+                 ],
+                 "Add a contact": [
+                    null,
+                    "Ajouter un contact"
+                 ],
+                 "Contact username": [
+                    null,
+                    "Nom du contact"
+                 ],
+                 "Add": [
+                    null,
+                    "Ajouter"
+                 ],
+                 "Contact name": [
+                    null,
+                    "Nom du contact"
+                 ],
+                 "Search": [
+                    null,
+                    "Rechercher"
+                 ],
+                 "No users found": [
+                    null,
+                    "Aucun utilisateur trouvé"
+                 ],
+                 "Click to add as a chat contact": [
+                    null,
+                    "Cliquer pour ajouter aux contacts de chat"
+                 ],
+                 "Click to open this room": [
+                    null,
+                    "Cliquer pour ouvrir ce salon"
+                 ],
+                 "Show more information on this room": [
+                    null,
+                    "Afficher davantage d'informations sur ce salon"
+                 ],
+                 "Description:": [
+                    null,
+                    "Description :"
+                 ],
+                 "Occupants:": [
+                    null,
+                    "Participants :"
+                 ],
+                 "Features:": [
+                    null,
+                    "Caractéristiques :"
+                 ],
+                 "Requires authentication": [
+                    null,
+                    "Nécessite une authentification"
+                 ],
+                 "Hidden": [
+                    null,
+                    "Masqué"
+                 ],
+                 "Requires an invitation": [
+                    null,
+                    "Nécessite une invitation"
+                 ],
+                 "Moderated": [
+                    null,
+                    "Modéré"
+                 ],
+                 "Non-anonymous": [
+                    null,
+                    "Non-anonyme"
+                 ],
+                 "Open room": [
+                    null,
+                    "Ouvrir un salon"
+                 ],
+                 "Permanent room": [
+                    null,
+                    "Salon permanent"
+                 ],
+                 "Public": [
+                    null,
+                    "Public"
+                 ],
+                 "Semi-anonymous": [
+                    null,
+                    "Semi-anonyme"
+                 ],
+                 "Temporary room": [
+                    null,
+                    "Salon temporaire"
+                 ],
+                 "Unmoderated": [
+                    null,
+                    "Non modéré"
+                 ],
+                 "Rooms": [
+                    null,
+                    "Salons"
+                 ],
+                 "Room name": [
+                    null,
+                    "Numéro de salon"
+                 ],
+                 "Nickname": [
+                    null,
+                    "Alias"
+                 ],
+                 "Server": [
+                    null,
+                    "Serveur"
+                 ],
+                 "Join": [
+                    null,
+                    "Rejoindre"
+                 ],
+                 "Show rooms": [
+                    null,
+                    "Afficher les salons"
+                 ],
+                 "No rooms on %1$s": [
+                    null,
+                    "Aucun salon dans %1$s"
+                 ],
+                 "Rooms on %1$s": [
+                    null,
+                    "Salons dans %1$s"
+                 ],
+                 "Set chatroom topic": [
+                    null,
+                    "Indiquer le sujet du salon"
+                 ],
+                 "Kick user from chatroom": [
+                    null,
+                    "Expulser l'utilisateur du salon."
+                 ],
+                 "Ban user from chatroom": [
+                    null,
+                    "Bannir l'utilisateur du salon."
+                 ],
+                 "Message": [
+                    null,
+                    "Message"
+                 ],
+                 "Save": [
+                    null,
+                    "Enregistrer"
+                 ],
+                 "Cancel": [
+                    null,
+                    "Annuler"
+                 ],
+                 "An error occurred while trying to save the form.": [
+                    null,
+                    "Une erreur est survenue lors de l'enregistrement du formulaire."
+                 ],
+                 "This chatroom requires a password": [
+                    null,
+                    "Ce salon nécessite un mot de passe."
+                 ],
+                 "Password: ": [
+                    null,
+                    "Mot de passe : "
+                 ],
+                 "Submit": [
+                    null,
+                    "Soumettre"
+                 ],
+                 "This room is not anonymous": [
+                    null,
+                    "Ce salon n'est pas anonyme"
+                 ],
+                 "This room now shows unavailable members": [
+                    null,
+                    "Ce salon affiche maintenant des membres indisponibles"
+                 ],
+                 "This room does not show unavailable members": [
+                    null,
+                    "Ce salon n'affiche pas les membres indisponibles"
+                 ],
+                 "Non-privacy-related room configuration has changed": [
+                    null,
+                    "Les paramètres du salon non liés à la confidentialité ont été modifiés"
+                 ],
+                 "Room logging is now enabled": [
+                    null,
+                    "Le logging du salon est activé"
+                 ],
+                 "Room logging is now disabled": [
+                    null,
+                    "Le logging du salon est désactivé"
+                 ],
+                 "This room is now non-anonymous": [
+                    null,
+                    "Ce salon est maintenant non-anonyme"
+                 ],
+                 "This room is now semi-anonymous": [
+                    null,
+                    "Ce salon est maintenant semi-anonyme"
+                 ],
+                 "This room is now fully-anonymous": [
+                    null,
+                    "Ce salon est maintenant entièrement anonyme"
+                 ],
+                 "A new room has been created": [
+                    null,
+                    "Un nouveau salon a été créé"
+                 ],
+                 "Your nickname has been changed": [
+                    null,
+                    "Votre alias a été modifié"
+                 ],
+                 "<strong>%1$s</strong> has been banned": [
+                    null,
+                    "<strong>%1$s</strong> a été banni"
+                 ],
+                 "<strong>%1$s</strong> has been kicked out": [
+                    null,
+                    "<strong>%1$s</strong> a été expulsé"
+                 ],
+                 "<strong>%1$s</strong> has been removed because of an affiliation change": [
+                    null,
+                    "<strong>%1$s</strong> a été supprimé à cause d'un changement d'affiliation"
+                 ],
+                 "<strong>%1$s</strong> has been removed for not being a member": [
+                    null,
+                    "<strong>%1$s</strong> a été supprimé car il n'est pas membre"
+                 ],
+                 "You have been banned from this room": [
+                    null,
+                    "Vous avez été banni de ce salon"
+                 ],
+                 "You have been kicked from this room": [
+                    null,
+                    "Vous avez été expulsé de ce salon"
+                 ],
+                 "You have been removed from this room because of an affiliation change": [
+                    null,
+                    "Vous avez été retiré de ce salon du fait d'un changement d'affiliation"
+                 ],
+                 "You have been removed from this room because the room has changed to members-only and you're not a member": [
+                    null,
+                    "Vous avez été retiré de ce salon parce que ce salon est devenu réservé aux membres et vous n'êtes pas membre"
+                 ],
+                 "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+                    null,
+                    "Vous avez été retiré de ce salon parce que le service de chat multi-utilisateur a été désactivé."
+                 ],
+                 "You are not on the member list of this room": [
+                    null,
+                    "Vous n'êtes pas dans la liste des membres de ce salon"
+                 ],
+                 "No nickname was specified": [
+                    null,
+                    "Aucun alias n'a été indiqué"
+                 ],
+                 "You are not allowed to create new rooms": [
+                    null,
+                    "Vous n'êtes pas autorisé à créer des salons"
+                 ],
+                 "Your nickname doesn't conform to this room's policies": [
+                    null,
+                    "Votre alias n'est pas conforme à la politique de ce salon"
+                 ],
+                 "Your nickname is already taken": [
+                    null,
+                    "Votre alias est déjà utilisé"
+                 ],
+                 "This room does not (yet) exist": [
+                    null,
+                    "Ce salon n'existe pas encore"
+                 ],
+                 "This room has reached it's maximum number of occupants": [
+                    null,
+                    "Ce salon a atteint la limite maximale d'occupants"
+                 ],
+                 "Topic set by %1$s to: %2$s": [
+                    null,
+                    "Le sujet '%1$s' a été défini par %2$s"
+                 ],
+                 "This user is a moderator": [
+                    null,
+                    "Cet utilisateur est modérateur"
+                 ],
+                 "This user can send messages in this room": [
+                    null,
+                    "Cet utilisateur peut envoyer des messages dans ce salon"
+                 ],
+                 "This user can NOT send messages in this room": [
+                    null,
+                    "Cet utilisateur ne peut PAS envoyer de messages dans ce salon"
+                 ],
+                 "Click to chat with this contact": [
+                    null,
+                    "Cliquez pour discuter avec ce contact"
+                 ],
+                 "Click to remove this contact": [
+                    null,
+                    "Cliquez pour supprimer ce contact"
+                 ],
+                 "Contact requests": [
+                    null,
+                    "Demandes de contacts"
+                 ],
+                 "My contacts": [
+                    null,
+                    "Mes contacts"
+                 ],
+                 "Pending contacts": [
+                    null,
+                    "Contacts en attente"
+                 ],
+                 "Custom status": [
+                    null,
+                    "Statut personnel"
+                 ],
+                 "Click to change your chat status": [
+                    null,
+                    "Cliquez pour changer votre statut"
+                 ],
+                 "Click here to write a custom status message": [
+                    null,
+                    "Cliquez ici pour indiquer votre statut personnel"
+                 ],
+                 "online": [
+                    null,
+                    "en ligne"
+                 ],
+                 "busy": [
+                    null,
+                    "occupé"
+                 ],
+                 "away for long": [
+                    null,
+                    "absent pour une longue durée"
+                 ],
+                 "away": [
+                    null,
+                    "absent"
+                 ],
+                 "I am %1$s": [
+                    null,
+                    "Je suis %1$s"
+                 ],
+                 "Sign in": [
+                    null,
+                    "S'inscrire"
+                 ],
+                 "XMPP/Jabber Username:": [
+                    null,
+                    "Nom d'utilisateur XMPP/Jabber"
+                 ],
+                 "Password:": [
+                    null,
+                    "Mot de passe :"
+                 ],
+                 "Log In": [
+                    null,
+                    "Se connecter"
+                 ],
+                 "BOSH Service URL:": [
+                    null,
+                    "URL du service BOSH:"
+                 ],
+                 "Connected": [
+                    null,
+                    "Connecté"
+                 ],
+                 "Disconnected": [
+                    null,
+                    "Déconnecté"
+                 ],
+                 "Error": [
+                    null,
+                    "Erreur"
+                 ],
+                 "Connecting": [
+                    null,
+                    "Connection"
+                 ],
+                 "Connection Failed": [
+                    null,
+                    "La connection a échoué"
+                 ],
+                 "Authenticating": [
+                    null,
+                    "Authentification"
+                 ],
+                 "Authentication Failed": [
+                    null,
+                    "L'authentification a échoué"
+                 ],
+                 "Disconnecting": [
+                    null,
+                    "Déconnection"
+                 ],
+                 "Attached": [
+                    null,
+                    "Attaché"
+                 ],
+                 "Online Contacts": [
+                    null,
+                    "Contacts en ligne"
+                 ]
+              }
+        }
+    };
+    if (typeof define === 'function' && define.amd) {
+        define("fr", ['jed'], function () {
+            return factory(new Jed(translations));
+        });
+    } else {
+        if (!window.locales) {
+            window.locales = {};
+        }
+        window.locales.fr = factory(new Jed(translations));
+    }
+}(this, function (fr) {
+    return fr;
+}));

+ 9 - 6
locale/locales.js

@@ -10,9 +10,10 @@
         paths: {
             "jed": "components/jed/jed",
             "af": "locale/af/LC_MESSAGES/af",
+            "de": "locale/de/LC_MESSAGES/de",
             "en": "locale/en/LC_MESSAGES/en",
             "es": "locale/es/LC_MESSAGES/es",
-            "de": "locale/de/LC_MESSAGES/de",
+            "fr": "locale/fr/LC_MESSAGES/fr",
             "it": "locale/it/LC_MESSAGES/it",
             "pt_BR": "locale/pt_BR/LC_MESSAGES/pt_BR"
         }
@@ -21,17 +22,19 @@
     define("locales", [
         'jed',
         'af',
+        'de',
         'en',
         'es',
-        'de',
-        "it",
-        "pt_BR"
-        ], function (jed, af, en, es, de, it, pt_BR) {
+        'fr',
+        'it',
+        'pt_BR'
+        ], function (jed, af, de, en, es, fr, it, pt_BR) {
             root.locales = {
                 'af': af,
+                'de': de,
                 'en': en,
                 'es': es,
-                'de': de,
+                'fr': fr,
                 'it': it,
                 'pt-br': pt_BR
             };

Some files were not shown because too many files changed in this diff