Преглед на файлове

Merge branch 'master' into gh-pages

Conflicts:
	docs/doctrees/environment.pickle
	docs/html/searchindex.js
	index.html
JC Brand преди 12 години
родител
ревизия
3746d332a3

+ 3 - 1
CHANGES.rst

@@ -3,12 +3,14 @@ Changelog
 
 0.5 (Unreleased)
 ----------------
-- #9 Remove dependency on AMD/require.js [jcbrand]
+
+- #09 Remove dependency on AMD/require.js [jcbrand]
 - #22 Fixed compare operator in strophe.muc [sonata82]
 - #23 Add Italian translations [ctrlaltca]
 - #24 Add Spanish translations [macagua]
 - #25 Using span with css instead of img [matheus-morfi]
 - #26 Only the first minute digit shown in chatbox. [jcbrand]
+- #28 Add Brazilian Portuguese translations [matheus-morfi]
 
 0.4 (2013-06-03)
 ----------------

+ 1 - 0
build.js

@@ -10,6 +10,7 @@
         "es": "locale/es/LC_MESSAGES/es",
         "hu": "locale/hu/LC_MESSAGES/hu",
         "it": "locale/it/LC_MESSAGES/it",
+        "ptbr": "locale/pt_BR/LC_MESSAGES/pt-br", 
         "sjcl": "Libraries/sjcl",
         "tinysort": "Libraries/jquery.tinysort",
         "underscore": "Libraries/underscore",

+ 4 - 4
converse.js

@@ -2517,21 +2517,21 @@
                         console.log(__('Connected'));
                         converse.onConnected(connection);
                     } else if (status === Strophe.Status.DISCONNECTED) {
-                        if ($button) { $button.show().siblings('img').remove(); }
+                        if ($button) { $button.show().siblings('span').remove(); }
                         converse.giveFeedback(__('Disconnected'), 'error');
                         this.connect(null, connection.jid, connection.pass);
                     } else if (status === Strophe.Status.Error) {
-                        if ($button) { $button.show().siblings('img').remove(); }
+                        if ($button) { $button.show().siblings('span').remove(); }
                         converse.giveFeedback(__('Error'), 'error');
                     } else if (status === Strophe.Status.CONNECTING) {
                         converse.giveFeedback(__('Connecting'));
                     } else if (status === Strophe.Status.CONNFAIL) {
-                        if ($button) { $button.show().siblings('img').remove(); }
+                        if ($button) { $button.show().siblings('span').remove(); }
                         converse.giveFeedback(__('Connection Failed'), 'error');
                     } else if (status === Strophe.Status.AUTHENTICATING) {
                         converse.giveFeedback(__('Authenticating'));
                     } else if (status === Strophe.Status.AUTHFAIL) {
-                        if ($button) { $button.show().siblings('img').remove(); }
+                        if ($button) { $button.show().siblings('span').remove(); }
                         converse.giveFeedback(__('Authentication Failed'), 'error');
                     } else if (status === Strophe.Status.DISCONNECTING) {
                         converse.giveFeedback(__('Disconnecting'), 'error');

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
converse.min.js


BIN
docs/doctrees/environment.pickle


BIN
docs/doctrees/index.doctree


+ 30 - 2
docs/html/_sources/index.txt

@@ -173,7 +173,7 @@ following inline Javascript code:
 
 ::
 
-    <script>
+    require(['converse'], function (converse) {
         converse.initialize({
             auto_list_rooms: false,
             auto_subscribe: false,
@@ -184,7 +184,7 @@ following inline Javascript code:
             show_controlbox_by_default: true,
             xhr_user_search: false
         });
-    </script>
+    });
 
 The *index.html* file inside the Converse.js folder serves as a nice usable
 example of this.
@@ -203,6 +203,34 @@ You might also want to have more fine-grained control of what gets included in
 the minified Javascript file. Read `Configuration`_ and `Minification`_ for more info on how to do
 that.
 
+===========
+Development
+===========
+
+With AMD and require.js (recommended)
+-------------------------------------
+
+Converse.js uses `require.js`_ to track and load dependencies.
+
+If you want to develop or customize converse.js, you'll want to load the
+non-minified javascript files.
+
+Add the following two lines to the *<head>* section of your webpage.
+
+::
+
+    <link rel="stylesheet" type="text/css" media="screen" href="converse.css">
+    <script data-main="main" src="Libraries/require-jquery.js"></script>
+
+
+Without AMD and require.js
+--------------------------
+
+Converse.js can also be used without require.js. If you for some reason prefer
+to use it this way, please refer to *non_amd.html* for an example of how and in
+what order all the Javascript files that converse.js depends on need to be
+loaded.
+
 
 =============
 Configuration

+ 47 - 32
docs/html/index.html

@@ -79,27 +79,28 @@
 </ul>
 </li>
 <li><a class="reference internal" href="#quickstart-to-get-a-demo-up-and-running" id="id8">Quickstart (to get a demo up and running)</a></li>
-<li><a class="reference internal" href="#configuration" id="id9">Configuration</a><ul>
-<li><a class="reference internal" href="#configuration-variables" id="id10">Configuration variables</a><ul>
-<li><a class="reference internal" href="#animate" id="id11">animate</a></li>
-<li><a class="reference internal" href="#auto-list-rooms" id="id12">auto_list_rooms</a></li>
-<li><a class="reference internal" href="#auto-subscribe" id="id13">auto_subscribe</a></li>
-<li><a class="reference internal" href="#bosh-service-url" id="id14">bosh_service_url</a></li>
-<li><a class="reference internal" href="#fullname" id="id15">fullname</a></li>
-<li><a class="reference internal" href="#hide-muc-server" id="id16">hide_muc_server</a></li>
-<li><a class="reference internal" href="#prebind" id="id17">prebind</a></li>
-<li><a class="reference internal" href="#show-controlbox-by-default" id="id18">show_controlbox_by_default</a></li>
-<li><a class="reference internal" href="#xhr-user-search" id="id19">xhr_user_search</a></li>
+<li><a class="reference internal" href="#development" id="id9">Development</a></li>
+<li><a class="reference internal" href="#configuration" id="id10">Configuration</a><ul>
+<li><a class="reference internal" href="#configuration-variables" id="id11">Configuration variables</a><ul>
+<li><a class="reference internal" href="#animate" id="id12">animate</a></li>
+<li><a class="reference internal" href="#auto-list-rooms" id="id13">auto_list_rooms</a></li>
+<li><a class="reference internal" href="#auto-subscribe" id="id14">auto_subscribe</a></li>
+<li><a class="reference internal" href="#bosh-service-url" id="id15">bosh_service_url</a></li>
+<li><a class="reference internal" href="#fullname" id="id16">fullname</a></li>
+<li><a class="reference internal" href="#hide-muc-server" id="id17">hide_muc_server</a></li>
+<li><a class="reference internal" href="#prebind" id="id18">prebind</a></li>
+<li><a class="reference internal" href="#show-controlbox-by-default" id="id19">show_controlbox_by_default</a></li>
+<li><a class="reference internal" href="#xhr-user-search" id="id20">xhr_user_search</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li><a class="reference internal" href="#minification" id="id20">Minification</a><ul>
-<li><a class="reference internal" href="#minifying-javascript" id="id21">Minifying Javascript</a></li>
-<li><a class="reference internal" href="#minifying-css" id="id22">Minifying CSS</a></li>
+<li><a class="reference internal" href="#minification" id="id21">Minification</a><ul>
+<li><a class="reference internal" href="#minifying-javascript" id="id22">Minifying Javascript</a></li>
+<li><a class="reference internal" href="#minifying-css" id="id23">Minifying CSS</a></li>
 </ul>
 </li>
-<li><a class="reference internal" href="#translations" id="id23">Translations</a></li>
+<li><a class="reference internal" href="#translations" id="id24">Translations</a></li>
 </ul>
 </div>
 <div class="section" id="introduction">
@@ -221,7 +222,7 @@ tags:</p>
 </div>
 <p>Then, at the bottom of your page, after the closing <em>&lt;/body&gt;</em> element, put the
 following inline Javascript code:</p>
-<div class="highlight-python"><pre>&lt;script&gt;
+<div class="highlight-python"><pre>require(['converse'], function (converse) {
     converse.initialize({
         auto_list_rooms: false,
         auto_subscribe: false,
@@ -232,7 +233,7 @@ following inline Javascript code:</p>
         show_controlbox_by_default: true,
         xhr_user_search: false
     });
-&lt;/script&gt;</pre>
+});</pre>
 </div>
 <p>The <em>index.html</em> file inside the Converse.js folder serves as a nice usable
 example of this.</p>
@@ -247,8 +248,22 @@ logged into their XMPP session upon page reload.</p>
 the minified Javascript file. Read <a class="reference internal" href="#configuration">Configuration</a> and <a class="reference internal" href="#minification">Minification</a> for more info on how to do
 that.</p>
 </div>
+<div class="section" id="development">
+<h1><a class="toc-backref" href="#id9">Development</a><a class="headerlink" href="#development" title="Permalink to this headline">¶</a></h1>
+<p>Converse.js uses <a class="reference external" href="http://requirejs.org">require.js</a> to track and load dependencies.</p>
+<p>If you want to develop or customize converse.js, you&#8217;ll want to load the
+non-minified javascript files.</p>
+<p>Add the following two lines to the <em>&lt;head&gt;</em> section of your webpage.</p>
+<div class="highlight-python"><pre>&lt;link rel="stylesheet" type="text/css" media="screen" href="converse.css"&gt;
+&lt;script data-main="main" src="Libraries/require-jquery.js"&gt;&lt;/script&gt;</pre>
+</div>
+<p>Converse.js can also be used without require.js. If you for some reason prefer
+to use it this way, please refer to <em>non_amd.html</em> for an example of how and in
+what order all the Javascript files that converse.js depends on need to be
+loaded.</p>
+</div>
 <div class="section" id="configuration">
-<h1><a class="toc-backref" href="#id9">Configuration</a><a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h1>
+<h1><a class="toc-backref" href="#id10">Configuration</a><a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h1>
 <p>The included minified JS and CSS files can be used for demoing or testing, but
 you&#8217;ll want to configure <em>Converse.js</em> to suit your needs before you deploy it
 on your website.</p>
@@ -262,14 +277,14 @@ all the available configuration settings.</p>
 JS file so that it will include the new settings. Please refer to the
 <a class="reference internal" href="#minification">Minification</a> section for more info on how to do this.</p>
 <div class="section" id="configuration-variables">
-<h2><a class="toc-backref" href="#id10">Configuration variables</a><a class="headerlink" href="#configuration-variables" title="Permalink to this headline">¶</a></h2>
+<h2><a class="toc-backref" href="#id11">Configuration variables</a><a class="headerlink" href="#configuration-variables" title="Permalink to this headline">¶</a></h2>
 <div class="section" id="animate">
-<h3><a class="toc-backref" href="#id11">animate</a><a class="headerlink" href="#animate" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id12">animate</a><a class="headerlink" href="#animate" title="Permalink to this headline">¶</a></h3>
 <p>Default = True</p>
 <p>Show animations, for example when opening and closing chat boxes.</p>
 </div>
 <div class="section" id="auto-list-rooms">
-<h3><a class="toc-backref" href="#id12">auto_list_rooms</a><a class="headerlink" href="#auto-list-rooms" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id13">auto_list_rooms</a><a class="headerlink" href="#auto-list-rooms" title="Permalink to this headline">¶</a></h3>
 <p>Default = False</p>
 <p>If true, and the XMPP server on which the current user is logged in supports
 multi-user chat, then a list of rooms on that server will be fetched.</p>
@@ -279,30 +294,30 @@ features, number of occupants etc.), so on servers with many rooms this
 option will create lots of extra connection traffic.</p>
 </div>
 <div class="section" id="auto-subscribe">
-<h3><a class="toc-backref" href="#id13">auto_subscribe</a><a class="headerlink" href="#auto-subscribe" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id14">auto_subscribe</a><a class="headerlink" href="#auto-subscribe" title="Permalink to this headline">¶</a></h3>
 <p>Default = False</p>
 <p>If true, the user will automatically subscribe back to any contact requests.</p>
 </div>
 <div class="section" id="bosh-service-url">
-<h3><a class="toc-backref" href="#id14">bosh_service_url</a><a class="headerlink" href="#bosh-service-url" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id15">bosh_service_url</a><a class="headerlink" href="#bosh-service-url" title="Permalink to this headline">¶</a></h3>
 <p>Connections to an XMPP server depend on a BOSH connection manager which acts as
 a middle man between HTTP and XMPP.</p>
 <p>See <a class="reference external" href="http://metajack.im/2008/09/08/which-bosh-server-do-you-need/l">here</a> for more information.</p>
 </div>
 <div class="section" id="fullname">
-<h3><a class="toc-backref" href="#id15">fullname</a><a class="headerlink" href="#fullname" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id16">fullname</a><a class="headerlink" href="#fullname" title="Permalink to this headline">¶</a></h3>
 <p>If you are using prebinding, you need to specify the fullname of the currently
 logged in user.</p>
 </div>
 <div class="section" id="hide-muc-server">
-<h3><a class="toc-backref" href="#id16">hide_muc_server</a><a class="headerlink" href="#hide-muc-server" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id17">hide_muc_server</a><a class="headerlink" href="#hide-muc-server" title="Permalink to this headline">¶</a></h3>
 <p>Default = False</p>
 <p>Hide the <tt class="docutils literal"><span class="pre">server</span></tt> input field of the form inside the <tt class="docutils literal"><span class="pre">Room</span></tt> panel of the
 controlbox. Useful if you want to restrict users to a specific XMPP server of
 your choosing.</p>
 </div>
 <div class="section" id="prebind">
-<h3><a class="toc-backref" href="#id17">prebind</a><a class="headerlink" href="#prebind" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id18">prebind</a><a class="headerlink" href="#prebind" title="Permalink to this headline">¶</a></h3>
 <p>Default = False</p>
 <p>Use this option when you want to attach to an existing XMPP connection that was
 already authenticated (usually on the backend before page load).</p>
@@ -323,7 +338,7 @@ have to write a Javascript snippet to attach to the set up connection:</p>
 RID (Request ID), which you use when you attach to the connection.</p>
 </div>
 <div class="section" id="show-controlbox-by-default">
-<h3><a class="toc-backref" href="#id18">show_controlbox_by_default</a><a class="headerlink" href="#show-controlbox-by-default" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id19">show_controlbox_by_default</a><a class="headerlink" href="#show-controlbox-by-default" title="Permalink to this headline">¶</a></h3>
 <p>Default = False</p>
 <p>The &#8220;controlbox&#8221; refers to the special chatbox containing your contacts roster,
 status widget, chatrooms and other controls.</p>
@@ -333,7 +348,7 @@ the page with class <em>toggle-online-users</em>.</p>
 page load.</p>
 </div>
 <div class="section" id="xhr-user-search">
-<h3><a class="toc-backref" href="#id19">xhr_user_search</a><a class="headerlink" href="#xhr-user-search" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id20">xhr_user_search</a><a class="headerlink" href="#xhr-user-search" title="Permalink to this headline">¶</a></h3>
 <p>Default = False</p>
 <p>There are two ways to add users.</p>
 <ul class="simple">
@@ -346,9 +361,9 @@ be used.</p>
 </div>
 </div>
 <div class="section" id="minification">
-<h1><a class="toc-backref" href="#id20">Minification</a><a class="headerlink" href="#minification" title="Permalink to this headline">¶</a></h1>
+<h1><a class="toc-backref" href="#id21">Minification</a><a class="headerlink" href="#minification" title="Permalink to this headline">¶</a></h1>
 <div class="section" id="minifying-javascript">
-<h2><a class="toc-backref" href="#id21">Minifying Javascript</a><a class="headerlink" href="#minifying-javascript" title="Permalink to this headline">¶</a></h2>
+<h2><a class="toc-backref" href="#id22">Minifying Javascript</a><a class="headerlink" href="#minifying-javascript" title="Permalink to this headline">¶</a></h2>
 <p>We  use <a class="reference external" href="http://requirejs.org">require.js</a> to keep track of <em>Converse.js</em> and its dependencies and to
 to bundle them together in a single minified file fit for deployment to a
 production site.</p>
@@ -364,14 +379,14 @@ manager, NPM.</p>
 <p>You can <a class="reference external" href="http://requirejs.org/docs/optimization.html">read more about require.js&#8217;s optimizer here</a>.</p>
 </div>
 <div class="section" id="minifying-css">
-<h2><a class="toc-backref" href="#id22">Minifying CSS</a><a class="headerlink" href="#minifying-css" title="Permalink to this headline">¶</a></h2>
+<h2><a class="toc-backref" href="#id23">Minifying CSS</a><a class="headerlink" href="#minifying-css" title="Permalink to this headline">¶</a></h2>
 <p>CSS can be minimized with Yahoo&#8217;s yuicompressor tool:</p>
 <div class="highlight-python"><pre>yui-compressor --type=css converse.css -o converse.min.css</pre>
 </div>
 </div>
 </div>
 <div class="section" id="translations">
-<h1><a class="toc-backref" href="#id23">Translations</a><a class="headerlink" href="#translations" title="Permalink to this headline">¶</a></h1>
+<h1><a class="toc-backref" href="#id24">Translations</a><a class="headerlink" href="#translations" title="Permalink to this headline">¶</a></h1>
 <div class="admonition note">
 <p class="first admonition-title">Note</p>
 <p class="last">Translations take up a lot of space and will bloat your minified file.

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
docs/html/searchindex.js


+ 30 - 2
docs/source/index.rst

@@ -173,7 +173,7 @@ following inline Javascript code:
 
 ::
 
-    <script>
+    require(['converse'], function (converse) {
         converse.initialize({
             auto_list_rooms: false,
             auto_subscribe: false,
@@ -184,7 +184,7 @@ following inline Javascript code:
             show_controlbox_by_default: true,
             xhr_user_search: false
         });
-    </script>
+    });
 
 The *index.html* file inside the Converse.js folder serves as a nice usable
 example of this.
@@ -203,6 +203,34 @@ You might also want to have more fine-grained control of what gets included in
 the minified Javascript file. Read `Configuration`_ and `Minification`_ for more info on how to do
 that.
 
+===========
+Development
+===========
+
+With AMD and require.js (recommended)
+-------------------------------------
+
+Converse.js uses `require.js`_ to track and load dependencies.
+
+If you want to develop or customize converse.js, you'll want to load the
+non-minified javascript files.
+
+Add the following two lines to the *<head>* section of your webpage.
+
+::
+
+    <link rel="stylesheet" type="text/css" media="screen" href="converse.css">
+    <script data-main="main" src="Libraries/require-jquery.js"></script>
+
+
+Without AMD and require.js
+--------------------------
+
+Converse.js can also be used without require.js. If you for some reason prefer
+to use it this way, please refer to *non_amd.html* for an example of how and in
+what order all the Javascript files that converse.js depends on need to be
+loaded.
+
 
 =============
 Configuration

+ 6 - 3
locale/locales.js

@@ -14,7 +14,8 @@
             "es": "locale/es/LC_MESSAGES/es",
             "de": "locale/de/LC_MESSAGES/de",
             "hu": "locale/hu/LC_MESSAGES/hu",
-            "it": "locale/it/LC_MESSAGES/it"
+            "it": "locale/it/LC_MESSAGES/it",
+            "pt_BR": "locale/pt_BR/LC_MESSAGES/pt_BR"
         }
     });
 
@@ -25,8 +26,9 @@
         'es',
         'de',
         'hu',
-        "it"
-        ], function (jed, af, en, es, de, hu, it) {
+        "it",
+        "pt_BR"
+        ], function (jed, af, en, es, de, hu, it, pt_BR) {
             root.locales = {};
             root.locales.af = af;
             root.locales.en = en;
@@ -34,5 +36,6 @@
             root.locales.de = de;
             root.locales.hu = hu;
             root.locales.it = it;
+            root.locales.pt_BR = pt_BR;
         });
 })(this);

+ 460 - 0
locale/pt_BR/LC_MESSAGES/converse.json

@@ -0,0 +1,460 @@
+{
+   "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-23 14:34-0300",
+         "Last-Translator": "Matheus Figueiredo <matheus@tracy.com>",
+         "Language-Team": "Brazilian Portuguese",
+         "Language": "pt_BR",
+         "MIME-Version": "1.0",
+         "Content-Type": "text/plain; charset=UTF-8",
+         "Content-Transfer-Encoding": "8bit",
+         "Plural-Forms": "nplurals=2; plural=(n > 1);",
+         "domain": "converse",
+         "lang": "pt_BR",
+         "plural_forms": "nplurals=2; plural=(n != 1);"
+      },
+      "Show this menu": [
+         null,
+         "Mostrar o menu"
+      ],
+      "Write in the third person": [
+         null,
+         "Escrever em terceira pessoa"
+      ],
+      "Remove messages": [
+         null,
+         "Remover mensagens"
+      ],
+      "Personal message": [
+         null,
+         "Mensagem pessoal"
+      ],
+      "Contacts": [
+         null,
+         "Contatos"
+      ],
+      "Online": [
+         null,
+         "Online"
+      ],
+      "Busy": [
+         null,
+         "Ocupado"
+      ],
+      "Away": [
+         null,
+         "Ausente"
+      ],
+      "Offline": [
+         null,
+         "Offline"
+      ],
+      "Click to add new chat contacts": [
+         null,
+         "Clique para adicionar novos contatos ao chat"
+      ],
+      "Add a contact": [
+         null,
+         "Adicionar contato"
+      ],
+      "Contact username": [
+         null,
+         "Usuário do contatt"
+      ],
+      "Add": [
+         null,
+         "Adicionar"
+      ],
+      "Contact name": [
+         null,
+         "Nome do contato"
+      ],
+      "Search": [
+         null,
+         "Procurar"
+      ],
+      "No users found": [
+         null,
+         "Não foram encontrados usuários"
+      ],
+      "Click to add as a chat contact": [
+         null,
+         "Clique para adicionar como um contato do chat"
+      ],
+      "Click to open this room": [
+         null,
+         "CLique para abrir a sala"
+      ],
+      "Show more information on this room": [
+         null,
+         "Mostrar mais informações nessa sala"
+      ],
+      "Description:": [
+         null,
+         "Descrição:"
+      ],
+      "Occupants:": [
+         null,
+         "Ocupantes:"
+      ],
+      "Features:": [
+         null,
+         "Recursos:"
+      ],
+      "Requires authentication": [
+         null,
+         "Requer autenticação"
+      ],
+      "Hidden": [
+         null,
+         "Escondido"
+      ],
+      "Requires an invitation": [
+         null,
+         "Requer convite"
+      ],
+      "Moderated": [
+         null,
+         "Moderado"
+      ],
+      "Non-anonymous": [
+         null,
+         "Não anônimo"
+      ],
+      "Open room": [
+         null,
+         "Sala aberta"
+      ],
+      "Permanent room": [
+         null,
+         "Sala permanente"
+      ],
+      "Public": [
+         null,
+         "Público"
+      ],
+      "Semi-anonymous": [
+         null,
+         "Semi anônimo"
+      ],
+      "Temporary room": [
+         null,
+         "Sala temporária"
+      ],
+      "Unmoderated": [
+         null,
+         "Sem moderação"
+      ],
+      "Rooms": [
+         null,
+         "Salas"
+      ],
+      "Room name": [
+         null,
+         "Nome da sala"
+      ],
+      "Nickname": [
+         null,
+         "Apelido"
+      ],
+      "Server": [
+         null,
+         "Server"
+      ],
+      "Join": [
+         null,
+         "Entrar"
+      ],
+      "Show rooms": [
+         null,
+         "Mostar salas"
+      ],
+      "No rooms on %1$s": [
+         null,
+         "Sem salas em %1$s"
+      ],
+      "Rooms on %1$s": [
+         null,
+         "Salas em %1$s"
+      ],
+      "Set chatroom topic": [
+         null,
+         "Definir tópico do chat"
+      ],
+      "Kick user from chatroom": [
+         null,
+         "Expulsar usuário do chat"
+      ],
+      "Ban user from chatroom": [
+         null,
+         "Banir usuário do chat"
+      ],
+      "Message": [
+         null,
+         "Mensagem"
+      ],
+      "Save": [
+         null,
+         "Salvar"
+      ],
+      "Cancel": [
+         null,
+         "Cancelar"
+      ],
+      "An error occurred while trying to save the form.": [
+         null,
+         "Ocorreu um erro enquanto salvava o formulário"
+      ],
+      "This chatroom requires a password": [
+         null,
+         "Esse chat precisa de senha"
+      ],
+      "Password: ": [
+         null,
+         "Senha: "
+      ],
+      "Submit": [
+         null,
+         "Enviar"
+      ],
+      "This room is not anonymous": [
+         null,
+         "Essa sala não é anônima"
+      ],
+      "This room now shows unavailable members": [
+         null,
+         "Essa sala mostra membros indisponíveis"
+      ],
+      "This room does not show unavailable members": [
+         null,
+         "Essa sala não mostra membros indisponíveis"
+      ],
+      "Non-privacy-related room configuration has changed": [
+         null,
+         "Configuraçõs não relacionadas à privacidade mudaram"
+      ],
+      "Room logging is now enabled": [
+         null,
+         "O log da sala está ativado"
+      ],
+      "Room logging is now disabled": [
+         null,
+         "O log da sala está desativado"
+      ],
+      "This room is now non-anonymous": [
+         null,
+         "Esse sala é não anônima"
+      ],
+      "This room is now semi-anonymous": [
+         null,
+         "Essa sala agora é semi anônima"
+      ],
+      "This room is now fully-anonymous": [
+         null,
+         "Essa sala agora é totalmente anônima"
+      ],
+      "A new room has been created": [
+         null,
+         "Uma nova sala foi criada"
+      ],
+      "Your nickname has been changed": [
+         null,
+         "Seu apelido foi mudado"
+      ],
+      "<strong>%1$s</strong> has been banned": [
+         null,
+         "<strong>%1$s</strong> foi banido"
+      ],
+      "<strong>%1$s</strong> has been kicked out": [
+         null,
+         "<strong>%1$s</strong> foi expulso"
+      ],
+      "<strong>%1$s</strong> has been removed because of an affiliation change": [
+         null,
+         "<srtong>%1$s</strong> foi removido por causa de troca de associação"
+      ],
+      "<strong>%1$s</strong> has been removed for not being a member": [
+         null,
+         "<strong>%1$s</strong> foi removido por não ser um membro"
+      ],
+      "You have been banned from this room": [
+         null,
+         "Você foi banido dessa sala"
+      ],
+      "You have been kicked from this room": [
+         null,
+         "Você foi expulso dessa sala"
+      ],
+      "You have been removed from this room because of an affiliation change": [
+         null,
+         "Você foi removido da sala devido a uma mudança de associação"
+      ],
+      "You have been removed from this room because the room has changed to members-only and you're not a member": [
+         null,
+         "Você foi removido da sala porque ela foi mudada para somente membrose você não é um membro"
+      ],
+      "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+         null,
+         "Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo desligado"
+      ],
+      "You are not on the member list of this room": [
+         null,
+         "Você não é membro dessa sala"
+      ],
+      "No nickname was specified": [
+         null,
+         "Você não escolheu um apelido "
+      ],
+      "You are not allowed to create new rooms": [
+         null,
+         "Você não tem permitição de criar novas salas"
+      ],
+      "Your nickname doesn't conform to this room's policies": [
+         null,
+         "Seu apelido não está de acordo com as regras da sala"
+      ],
+      "Your nickname is already taken": [
+         null,
+         "Seu apelido já foi escolhido"
+      ],
+      "This room does not (yet) exist": [
+         null,
+         "A sala não existe (ainda)"
+      ],
+      "This room has reached it's maximum number of occupants": [
+         null,
+         "A sala atingiu o número máximo de ocupantes"
+      ],
+      "Topic set by %1$s to: %2$s": [
+         null,
+         "Topico definido por %1$s para: %2$s"
+      ],
+      "This user is a moderator": [
+         null,
+         "Esse usuário é o moderador"
+      ],
+      "This user can send messages in this room": [
+         null,
+         "Esse usuário pode enviar mensagens nessa sala"
+      ],
+      "This user can NOT send messages in this room": [
+         null,
+         "Esse usuário NÃO pode enviar mensagens nessa sala"
+      ],
+      "Click to chat with this contact": [
+         null,
+         "Clique para conversar com o contato"
+      ],
+      "Click to remove this contact": [
+         null,
+         "Clique para remover o contato"
+      ],
+      "Contact requests": [
+         null,
+         "Solicitação de contatos"
+      ],
+      "My contacts": [
+         null,
+         "Meus contatos"
+      ],
+      "Pending contacts": [
+         null,
+         "Contados pendentes"
+      ],
+      "Custom status": [
+         null,
+         "Status customizado"
+      ],
+      "Click to change your chat status": [
+         null,
+         "Clique para mudar seu status no chat"
+      ],
+      "Click here to write a custom status message": [
+         null,
+         "Clique aqui para customizar a mensagem de status"
+      ],
+      "online": [
+         null,
+         "online"
+      ],
+      "busy": [
+         null,
+         "ocupado"
+      ],
+      "away for long": [
+         null,
+         "ausente a bastante tempo"
+      ],
+      "away": [
+         null,
+         "ausente"
+      ],
+      "I am %1$s": [
+         null,
+         "Estou %1$s"
+      ],
+      "Sign in": [
+         null,
+         "Conectar-se"
+      ],
+      "XMPP/Jabber Username:": [
+         null,
+         "Usuário XMPP/Jabber:"
+      ],
+      "Password:": [
+         null,
+         "Senha:"
+      ],
+      "Log In": [
+         null,
+         "Entrar"
+      ],
+      "BOSH Service URL:": [
+         null,
+         "URL de serviço BOSH:"
+      ],
+      "Connected": [
+         null,
+         "Conectado"
+      ],
+      "Disconnected": [
+         null,
+         "Desconectado"
+      ],
+      "Error": [
+         null,
+         "Erro"
+      ],
+      "Connecting": [
+         null,
+         "Conectando"
+      ],
+      "Connection Failed": [
+         null,
+         "Falha de conexão"
+      ],
+      "Authenticating": [
+         null,
+         "Autenticando"
+      ],
+      "Authentication Failed": [
+         null,
+         "Falha de autenticação"
+      ],
+      "Disconnecting": [
+         null,
+         "Desconectando"
+      ],
+      "Attached": [
+         null,
+         "Anexado"
+      ],
+      "Online Contacts": [
+         null,
+         "Contatos online"
+      ]
+   }
+}

+ 489 - 0
locale/pt_BR/LC_MESSAGES/converse.po

@@ -0,0 +1,489 @@
+# Portuguese translations for Converse.js package.
+# Copyright (C) 2013 Jan-Carel Brand
+# This file is distributed under the same license as the Converse.js package.
+# Matheus Figueiredo <matheus@tracy.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-23 14:34-0300\n"
+"Last-Translator: Matheus Figueiredo <matheus@tracy.com>\n"
+"Language-Team: Brazilian Portuguese\n"
+"Language: pt_BR\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"
+"domain: converse\n"
+"lang: pt_BR\n"
+"plural_forms: nplurals=2; plural=(n != 1);\n"
+
+#: converse.js:397 converse.js:1128
+msgid "Show this menu"
+msgstr "Mostrar o menu"
+
+#: converse.js:398 converse.js:1129
+msgid "Write in the third person"
+msgstr "Escrever em terceira pessoa"
+
+#: converse.js:399 converse.js:1133
+msgid "Remove messages"
+msgstr "Remover mensagens"
+
+#: converse.js:539
+msgid "Personal message"
+msgstr "Mensagem pessoal"
+
+#: converse.js:613
+msgid "Contacts"
+msgstr "Contatos"
+
+#: converse.js:618
+msgid "Online"
+msgstr "Online"
+
+#: converse.js:619
+msgid "Busy"
+msgstr "Ocupado"
+
+#: converse.js:620
+msgid "Away"
+msgstr "Ausente"
+
+#: converse.js:621
+msgid "Offline"
+msgstr "Offline"
+
+#: converse.js:628
+msgid "Click to add new chat contacts"
+msgstr "Clique para adicionar novos contatos ao chat"
+
+#: converse.js:628
+msgid "Add a contact"
+msgstr "Adicionar contato"
+
+#: converse.js:637
+msgid "Contact username"
+msgstr "Usuário do contatt"
+
+#: converse.js:638
+msgid "Add"
+msgstr "Adicionar"
+
+#: converse.js:646
+msgid "Contact name"
+msgstr "Nome do contato"
+
+#: converse.js:647
+msgid "Search"
+msgstr "Procurar"
+
+#: converse.js:682
+msgid "No users found"
+msgstr "Não foram encontrados usuários"
+
+#: converse.js:689
+msgid "Click to add as a chat contact"
+msgstr "Clique para adicionar como um contato do chat"
+
+#: converse.js:753
+msgid "Click to open this room"
+msgstr "CLique para abrir a sala"
+
+#: converse.js:755
+msgid "Show more information on this room"
+msgstr "Mostrar mais informações nessa sala"
+
+#: converse.js:760
+msgid "Description:"
+msgstr "Descrição:"
+
+#: converse.js:761
+msgid "Occupants:"
+msgstr "Ocupantes:"
+
+#: converse.js:762
+msgid "Features:"
+msgstr "Recursos:"
+
+#: converse.js:764
+msgid "Requires authentication"
+msgstr "Requer autenticação"
+
+#: converse.js:767
+msgid "Hidden"
+msgstr "Escondido"
+
+#: converse.js:770
+msgid "Requires an invitation"
+msgstr "Requer convite"
+
+#: converse.js:773
+msgid "Moderated"
+msgstr "Moderado"
+
+#: converse.js:776
+msgid "Non-anonymous"
+msgstr "Não anônimo"
+
+#: converse.js:779
+msgid "Open room"
+msgstr "Sala aberta"
+
+#: converse.js:782
+msgid "Permanent room"
+msgstr "Sala permanente"
+
+#: converse.js:785
+msgid "Public"
+msgstr "Público"
+
+#: converse.js:788
+msgid "Semi-anonymous"
+msgstr "Semi anônimo"
+
+#: converse.js:791
+msgid "Temporary room"
+msgstr "Sala temporária"
+
+#: converse.js:794
+msgid "Unmoderated"
+msgstr "Sem moderação"
+
+#: converse.js:800
+msgid "Rooms"
+msgstr "Salas"
+
+#: converse.js:804
+msgid "Room name"
+msgstr "Nome da sala"
+
+#: converse.js:805
+msgid "Nickname"
+msgstr "Apelido"
+
+#: converse.js:806
+msgid "Server"
+msgstr "Server"
+
+#: converse.js:807
+msgid "Join"
+msgstr "Entrar"
+
+#: converse.js:808
+msgid "Show rooms"
+msgstr "Mostar salas"
+
+#. 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 "Sem salas em %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 "Salas em %1$s"
+
+#: converse.js:1130
+msgid "Set chatroom topic"
+msgstr "Definir tópico do chat"
+
+#: converse.js:1131
+msgid "Kick user from chatroom"
+msgstr "Expulsar usuário do chat"
+
+#: converse.js:1132
+msgid "Ban user from chatroom"
+msgstr "Banir usuário do chat"
+
+#: converse.js:1159
+msgid "Message"
+msgstr "Mensagem"
+
+#: converse.js:1273 converse.js:2318
+msgid "Save"
+msgstr "Salvar"
+
+#: converse.js:1274
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: converse.js:1321
+msgid "An error occurred while trying to save the form."
+msgstr "Ocorreu um erro enquanto salvava o formulário"
+
+#: converse.js:1367
+msgid "This chatroom requires a password"
+msgstr "Esse chat precisa de senha"
+
+#: converse.js:1368
+msgid "Password: "
+msgstr "Senha: "
+
+#: converse.js:1369
+msgid "Submit"
+msgstr "Enviar"
+
+#: converse.js:1383
+msgid "This room is not anonymous"
+msgstr "Essa sala não é anônima"
+
+#: converse.js:1384
+msgid "This room now shows unavailable members"
+msgstr "Essa sala mostra membros indisponíveis"
+
+#: converse.js:1385
+msgid "This room does not show unavailable members"
+msgstr "Essa sala não mostra membros indisponíveis"
+
+#: converse.js:1386
+msgid "Non-privacy-related room configuration has changed"
+msgstr "Configuraçõs não relacionadas à privacidade mudaram"
+
+#: converse.js:1387
+msgid "Room logging is now enabled"
+msgstr "O log da sala está ativado"
+
+#: converse.js:1388
+msgid "Room logging is now disabled"
+msgstr "O log da sala está desativado"
+
+#: converse.js:1389
+msgid "This room is now non-anonymous"
+msgstr "Esse sala é não anônima"
+
+#: converse.js:1390
+msgid "This room is now semi-anonymous"
+msgstr "Essa sala agora é semi anônima"
+
+#: converse.js:1391
+msgid "This room is now fully-anonymous"
+msgstr "Essa sala agora é totalmente anônima"
+
+#: converse.js:1392
+msgid "A new room has been created"
+msgstr "Uma nova sala foi criada"
+
+#: converse.js:1393
+msgid "Your nickname has been changed"
+msgstr "Seu apelido foi mudado"
+
+#. 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> foi banido"
+
+#. 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> foi expulso"
+
+#. 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 "<srtong>%1$s</strong> foi removido por causa de troca de associação"
+
+#. 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> foi removido por não ser um membro"
+
+#: converse.js:1416 converse.js:1478
+msgid "You have been banned from this room"
+msgstr "Você foi banido dessa sala"
+
+#: converse.js:1417
+msgid "You have been kicked from this room"
+msgstr "Você foi expulso dessa sala"
+
+#: converse.js:1418
+msgid "You have been removed from this room because of an affiliation change"
+msgstr "Você foi removido da sala devido a uma mudança de associação"
+
+#: 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 ""
+"Você foi removido da sala porque ela foi mudada para somente membros"
+"e você não é um membro"
+
+#: converse.js:1420
+msgid ""
+"You have been removed from this room because the MUC (Multi-user chat) "
+"service is being shut down."
+msgstr ""
+"Você foi removido da sala devido a MUC (Multi-user chat)"
+"o serviço está sendo desligado"
+
+#: converse.js:1476
+msgid "You are not on the member list of this room"
+msgstr "Você não é membro dessa sala"
+
+#: converse.js:1482
+msgid "No nickname was specified"
+msgstr "Você não escolheu um apelido "
+
+#: converse.js:1486
+msgid "You are not allowed to create new rooms"
+msgstr "Você não tem permitição de criar novas salas"
+
+#: converse.js:1488
+msgid "Your nickname doesn't conform to this room's policies"
+msgstr "Seu apelido não está de acordo com as regras da sala"
+
+#: converse.js:1490
+msgid "Your nickname is already taken"
+msgstr "Seu apelido já foi escolhido"
+
+#: converse.js:1492
+msgid "This room does not (yet) exist"
+msgstr "A sala não existe (ainda)"
+
+#: converse.js:1494
+msgid "This room has reached it's maximum number of occupants"
+msgstr "A sala atingiu o número máximo de ocupantes"
+
+#. 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 "Topico definido por %1$s para: %2$s"
+
+#: converse.js:1587
+msgid "This user is a moderator"
+msgstr "Esse usuário é o moderador"
+
+#: converse.js:1590
+msgid "This user can send messages in this room"
+msgstr "Esse usuário pode enviar mensagens nessa sala"
+
+#: converse.js:1593
+msgid "This user can NOT send messages in this room"
+msgstr "Esse usuário NÃO pode enviar mensagens nessa sala"
+
+#: converse.js:1796
+msgid "Click to chat with this contact"
+msgstr "Clique para conversar com o contato"
+
+#: converse.js:1797 converse.js:1801
+msgid "Click to remove this contact"
+msgstr "Clique para remover o contato"
+
+#: converse.js:2163
+msgid "Contact requests"
+msgstr "Solicitação de contatos"
+
+#: converse.js:2164
+msgid "My contacts"
+msgstr "Meus contatos"
+
+#: converse.js:2165
+msgid "Pending contacts"
+msgstr "Contados pendentes"
+
+#: converse.js:2317
+msgid "Custom status"
+msgstr "Status customizado"
+
+#: converse.js:2323
+msgid "Click to change your chat status"
+msgstr "Clique para mudar seu status no chat"
+
+#: converse.js:2326
+msgid "Click here to write a custom status message"
+msgstr "Clique aqui para customizar a mensagem de status"
+
+#: converse.js:2355 converse.js:2363
+msgid "online"
+msgstr "online"
+
+#: converse.js:2357
+msgid "busy"
+msgstr "ocupado"
+
+#: converse.js:2359
+msgid "away for long"
+msgstr "ausente a bastante tempo"
+
+#: converse.js:2361
+msgid "away"
+msgstr "ausente"
+
+#. 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 "Estou %1$s"
+
+#: converse.js:2480
+msgid "Sign in"
+msgstr "Conectar-se"
+
+#: converse.js:2483
+msgid "XMPP/Jabber Username:"
+msgstr "Usuário XMPP/Jabber:"
+
+#: converse.js:2485
+msgid "Password:"
+msgstr "Senha:"
+
+#: converse.js:2487
+msgid "Log In"
+msgstr "Entrar"
+
+#: converse.js:2491
+msgid "BOSH Service URL:"
+msgstr "URL de serviço BOSH:"
+
+#: converse.js:2503
+msgid "Connected"
+msgstr "Conectado"
+
+#: converse.js:2507
+msgid "Disconnected"
+msgstr "Desconectado"
+
+#: converse.js:2511
+msgid "Error"
+msgstr "Erro"
+
+#: converse.js:2513
+msgid "Connecting"
+msgstr "Conectando"
+
+#: converse.js:2516
+msgid "Connection Failed"
+msgstr "Falha de conexão"
+
+#: converse.js:2518
+msgid "Authenticating"
+msgstr "Autenticando"
+
+#: converse.js:2521
+msgid "Authentication Failed"
+msgstr "Falha de autenticação"
+
+#: converse.js:2523
+msgid "Disconnecting"
+msgstr "Desconectando"
+
+#: converse.js:2525
+msgid "Attached"
+msgstr "Anexado"
+
+#: converse.js:2656
+msgid "Online Contacts"
+msgstr "Contatos online"
+

+ 479 - 0
locale/pt_BR/LC_MESSAGES/pt_BR.js

@@ -0,0 +1,479 @@
+(function (root, factory) {
+    var pt_BR = new Jed({
+        "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-23 14:34-0300",
+                    "Last-Translator": "Matheus Figueiredo <matheus@tracy.com>",
+                    "Language-Team": "Brazilian Portuguese",
+                    "Language": "pt_BR",
+                    "MIME-Version": "1.0",
+                    "Content-Type": "text/plain; charset=UTF-8",
+                    "Content-Transfer-Encoding": "8bit",
+                    "Plural-Forms": "nplurals=2; plural=(n > 1);",
+                    "domain": "converse",
+                    "lang": "pt_BR",
+                    "plural_forms": "nplurals=2; plural=(n != 1);"
+                },
+                "Show this menu": [
+                    null,
+                    "Mostrar o menu"
+                ],
+                "Write in the third person": [
+                    null,
+                    "Escrever em terceira pessoa"
+                ],
+                "Remove messages": [
+                    null,
+                    "Remover mensagens"
+                ],
+                "Personal message": [
+                    null,
+                    "Mensagem pessoal"
+                ],
+                "Contacts": [
+                    null,
+                    "Contatos"
+                ],
+                "Online": [
+                    null,
+                    "Online"
+                ],
+                "Busy": [
+                    null,
+                    "Ocupado"
+                ],
+                "Away": [
+                    null,
+                    "Ausente"
+                ],
+                "Offline": [
+                    null,
+                    "Offline"
+                ],
+                "Click to add new chat contacts": [
+                    null,
+                    "Clique para adicionar novos contatos ao chat"
+                ],
+                "Add a contact": [
+                    null,
+                    "Adicionar contato"
+                ],
+                "Contact username": [
+                    null,
+                    "Usuário do contatt"
+                ],
+                "Add": [
+                    null,
+                    "Adicionar"
+                ],
+                "Contact name": [
+                    null,
+                    "Nome do contato"
+                ],
+                "Search": [
+                    null,
+                    "Procurar"
+                ],
+                "No users found": [
+                    null,
+                    "Não foram encontrados usuários"
+                ],
+                "Click to add as a chat contact": [
+                    null,
+                    "Clique para adicionar como um contato do chat"
+                ],
+                "Click to open this room": [
+                    null,
+                    "CLique para abrir a sala"
+                ],
+                "Show more information on this room": [
+                    null,
+                    "Mostrar mais informações nessa sala"
+                ],
+                "Description:": [
+                    null,
+                    "Descrição:"
+                ],
+                "Occupants:": [
+                    null,
+                    "Ocupantes:"
+                ],
+                "Features:": [
+                    null,
+                    "Recursos:"
+                ],
+                "Requires authentication": [
+                    null,
+                    "Requer autenticação"
+                ],
+                "Hidden": [
+                    null,
+                    "Escondido"
+                ],
+                "Requires an invitation": [
+                    null,
+                    "Requer convite"
+                ],
+                "Moderated": [
+                    null,
+                    "Moderado"
+                ],
+                "Non-anonymous": [
+                    null,
+                    "Não anônimo"
+                ],
+                "Open room": [
+                    null,
+                    "Sala aberta"
+                ],
+                "Permanent room": [
+                    null,
+                    "Sala permanente"
+                ],
+                "Public": [
+                    null,
+                    "Público"
+                ],
+                "Semi-anonymous": [
+                    null,
+                    "Semi anônimo"
+                ],
+                "Temporary room": [
+                    null,
+                    "Sala temporária"
+                ],
+                "Unmoderated": [
+                    null,
+                    "Sem moderação"
+                ],
+                "Rooms": [
+                    null,
+                    "Salas"
+                ],
+                "Room name": [
+                    null,
+                    "Nome da sala"
+                ],
+                "Nickname": [
+                    null,
+                    "Apelido"
+                ],
+                "Server": [
+                    null,
+                    "Server"
+                ],
+                "Join": [
+                    null,
+                    "Entrar"
+                ],
+                "Show rooms": [
+                    null,
+                    "Mostar salas"
+                ],
+                "No rooms on %1$s": [
+                    null,
+                    "Sem salas em %1$s"
+                ],
+                "Rooms on %1$s": [
+                    null,
+                    "Salas em %1$s"
+                ],
+                "Set chatroom topic": [
+                    null,
+                    "Definir tópico do chat"
+                ],
+                "Kick user from chatroom": [
+                    null,
+                    "Expulsar usuário do chat"
+                ],
+                "Ban user from chatroom": [
+                    null,
+                    "Banir usuário do chat"
+                ],
+                "Message": [
+                    null,
+                    "Mensagem"
+                ],
+                "Save": [
+                    null,
+                    "Salvar"
+                ],
+                "Cancel": [
+                    null,
+                    "Cancelar"
+                ],
+                "An error occurred while trying to save the form.": [
+                    null,
+                    "Ocorreu um erro enquanto salvava o formulário"
+                ],
+                "This chatroom requires a password": [
+                    null,
+                    "Esse chat precisa de senha"
+                ],
+                "Password: ": [
+                    null,
+                    "Senha: "
+                ],
+                "Submit": [
+                    null,
+                    "Enviar"
+                ],
+                "This room is not anonymous": [
+                    null,
+                    "Essa sala não é anônima"
+                ],
+                "This room now shows unavailable members": [
+                    null,
+                    "Essa sala mostra membros indisponíveis"
+                ],
+                "This room does not show unavailable members": [
+                    null,
+                    "Essa sala não mostra membros indisponíveis"
+                ],
+                "Non-privacy-related room configuration has changed": [
+                    null,
+                    "Configuraçõs não relacionadas à privacidade mudaram"
+                ],
+                "Room logging is now enabled": [
+                    null,
+                    "O log da sala está ativado"
+                ],
+                "Room logging is now disabled": [
+                    null,
+                    "O log da sala está desativado"
+                ],
+                "This room is now non-anonymous": [
+                    null,
+                    "Esse sala é não anônima"
+                ],
+                "This room is now semi-anonymous": [
+                    null,
+                    "Essa sala agora é semi anônima"
+                ],
+                "This room is now fully-anonymous": [
+                    null,
+                    "Essa sala agora é totalmente anônima"
+                ],
+                "A new room has been created": [
+                    null,
+                    "Uma nova sala foi criada"
+                ],
+                "Your nickname has been changed": [
+                    null,
+                    "Seu apelido foi mudado"
+                ],
+                "<strong>%1$s</strong> has been banned": [
+                    null,
+                    "<strong>%1$s</strong> foi banido"
+                ],
+                "<strong>%1$s</strong> has been kicked out": [
+                    null,
+                    "<strong>%1$s</strong> foi expulso"
+                ],
+                "<strong>%1$s</strong> has been removed because of an affiliation change": [
+                    null,
+                    "<srtong>%1$s</strong> foi removido por causa de troca de associação"
+                ],
+                "<strong>%1$s</strong> has been removed for not being a member": [
+                    null,
+                    "<strong>%1$s</strong> foi removido por não ser um membro"
+                ],
+                "You have been banned from this room": [
+                    null,
+                    "Você foi banido dessa sala"
+                ],
+                "You have been kicked from this room": [
+                    null,
+                    "Você foi expulso dessa sala"
+                ],
+                "You have been removed from this room because of an affiliation change": [
+                    null,
+                    "Você foi removido da sala devido a uma mudança de associação"
+                ],
+                "You have been removed from this room because the room has changed to members-only and you're not a member": [
+                    null,
+                    "Você foi removido da sala porque ela foi mudada para somente membrose você não é um membro"
+                ],
+                "You have been removed from this room because the MUC (Multi-user chat) service is being shut down.": [
+                    null,
+                    "Você foi removido da sala devido a MUC (Multi-user chat)o serviço está sendo desligado"
+                ],
+                "You are not on the member list of this room": [
+                    null,
+                    "Você não é membro dessa sala"
+                ],
+                "No nickname was specified": [
+                    null,
+                    "Você não escolheu um apelido "
+                ],
+                "You are not allowed to create new rooms": [
+                    null,
+                    "Você não tem permitição de criar novas salas"
+                ],
+                "Your nickname doesn't conform to this room's policies": [
+                    null,
+                    "Seu apelido não está de acordo com as regras da sala"
+                ],
+                "Your nickname is already taken": [
+                    null,
+                    "Seu apelido já foi escolhido"
+                ],
+                "This room does not (yet) exist": [
+                    null,
+                    "A sala não existe (ainda)"
+                ],
+                "This room has reached it's maximum number of occupants": [
+                    null,
+                    "A sala atingiu o número máximo de ocupantes"
+                ],
+                "Topic set by %1$s to: %2$s": [
+                    null,
+                    "Topico definido por %1$s para: %2$s"
+                ],
+                "This user is a moderator": [
+                    null,
+                    "Esse usuário é o moderador"
+                ],
+                "This user can send messages in this room": [
+                    null,
+                    "Esse usuário pode enviar mensagens nessa sala"
+                ],
+                "This user can NOT send messages in this room": [
+                    null,
+                    "Esse usuário NÃO pode enviar mensagens nessa sala"
+                ],
+                "Click to chat with this contact": [
+                    null,
+                    "Clique para conversar com o contato"
+                ],
+                "Click to remove this contact": [
+                    null,
+                    "Clique para remover o contato"
+                ],
+                "Contact requests": [
+                    null,
+                    "Solicitação de contatos"
+                ],
+                "My contacts": [
+                    null,
+                    "Meus contatos"
+                ],
+                "Pending contacts": [
+                    null,
+                    "Contados pendentes"
+                ],
+                "Custom status": [
+                    null,
+                    "Status customizado"
+                ],
+                "Click to change your chat status": [
+                    null,
+                    "Clique para mudar seu status no chat"
+                ],
+                "Click here to write a custom status message": [
+                    null,
+                    "Clique aqui para customizar a mensagem de status"
+                ],
+                "online": [
+                    null,
+                    "online"
+                ],
+                "busy": [
+                    null,
+                    "ocupado"
+                ],
+                "away for long": [
+                    null,
+                    "ausente a bastante tempo"
+                ],
+                "away": [
+                    null,
+                    "ausente"
+                ],
+                "I am %1$s": [
+                    null,
+                    "Estou %1$s"
+                ],
+                "Sign in": [
+                    null,
+                    "Conectar-se"
+                ],
+                "XMPP/Jabber Username:": [
+                    null,
+                    "Usuário XMPP/Jabber:"
+                ],
+                "Password:": [
+                    null,
+                    "Senha:"
+                ],
+                "Log In": [
+                    null,
+                    "Entrar"
+                ],
+                "BOSH Service URL:": [
+                    null,
+                    "URL de serviço BOSH:"
+                ],
+                "Connected": [
+                    null,
+                    "Conectado"
+                ],
+                "Disconnected": [
+                    null,
+                    "Desconectado"
+                ],
+                "Error": [
+                    null,
+                    "Erro"
+                ],
+                "Connecting": [
+                    null,
+                    "Conectando"
+                ],
+                "Connection Failed": [
+                    null,
+                    "Falha de conexão"
+                ],
+                "Authenticating": [
+                    null,
+                    "Autenticando"
+                ],
+                "Authentication Failed": [
+                    null,
+                    "Falha de autenticação"
+                ],
+                "Disconnecting": [
+                    null,
+                    "Desconectando"
+                ],
+                "Attached": [
+                    null,
+                    "Anexado"
+                ],
+                "Online Contacts": [
+                    null,
+                    "Contatos online"
+                ]
+            }
+        }
+    });
+    if (typeof define === 'function' && define.amd) {
+        define("pt_BR", ['jed'], function () {
+            return factory(pt_BR);
+        });
+    } else {
+        if (!window.locales) {
+            window.locales = {};
+        }
+        window.locales.pt_BR = pt_BR;
+    }
+  }(this, function (i18n) {
+      return i18n;
+  })
+);
+      

+ 194 - 0
non_amd.html

@@ -0,0 +1,194 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset='utf-8' />
+    <meta http-equiv="X-UA-Compatible" content="chrome=1" />
+    <meta name="description" content="Converse.js: Open Source Browser-Based Instant Messaging" />
+    <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="converse.css">
+
+    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+    <script type="text/javascript" src="Libraries/strophe.js"></script>
+    <script type="text/javascript" src="Libraries/strophe.roster.js"></script>
+    <script type="text/javascript" src="Libraries/strophe.muc.js"></script>
+    <script type="text/javascript" src="Libraries/strophe.vcard.js"></script>
+    <script type="text/javascript" src="Libraries/strophe.disco.js"></script>
+    <script type="text/javascript" src="Libraries/underscore.js"></script>
+    <script type="text/javascript" src="Libraries/backbone.js"></script>
+    <script type="text/javascript" src="Libraries/backbone.localStorage.js"></script>
+    <script type="text/javascript" src="Libraries/sjcl.js"></script>
+    <script type="text/javascript" src="Libraries/jquery.tinysort.js"></script>
+    <script type="text/javascript" src="Libraries/jed.js"></script>
+    <script type="text/javascript" src="locale/en/LC_MESSAGES/en.js"></script>
+    <script type="text/javascript" src="converse.js"></script>
+    <title>Converse.js</title>
+</head>
+<body>
+
+
+    <!-- HEADER -->
+    <div id="header_wrap" class="outer">
+    <header class="inner">
+        <a id="forkme_banner" href="https://github.com/jcbrand/converse.js">View on GitHub</a>
+        <h1 id="project_title"><a href="http://conversejs.org">Converse.js</a></h1>
+        <h2 id="project_tagline">Non-AMD Test Page</h2>
+        <section id="downloads">
+            <a class="zip_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.4.zip">Download the latest release as a .zip file</a>
+            <a class="tar_download_link" href="https://github.com/jcbrand/converse.js/archive/v0.4.tar.gz">Download the latest release as a tar.gz file</a>
+        </section>
+    </header>
+    </div>
+
+    <!-- MAIN CONTENT -->
+    <div id="main_content_wrap" class="outer">
+    <section id="main_content" class="inner">
+
+    <p><strong>Converse.js</strong> is an open source, webchat client, that
+    runs in the browser and can be integrated into any website.</p>
+
+    <p>It's similar to <a href="https://www.facebook.com/sitetour/chat.php" target="_blank">Facebook chat</a>, but also supports multi-user chatrooms.</p>
+
+    <p><em>Converse.js</em> can connect to any accessible <a href="http://xmpp.org" target="_blank">XMPP/Jabber</a> server, either from a public provider such as
+    <a href="http://jabber.org">jabber.org</a>, or to one you have set up
+    yourself.</a>
+
+    <p>It's possible to enable single-site login, whereby users already authenticated in your website will also automatically be logged in on the chat server,
+    but you will have to pre-authenticate them on your server. You can refer to the <a href="/docs/html/index.html">documentation</a> for more
+    info.</p>
+
+    <p>An <a href="http://github.com/collective/collective.xmpp.chat" target="_blank">add-on product</a> that does exactly this,
+    already exists for the <a href="http://plone.org" target="_blank">Plone</a> CMS. Hopefully in the future more such add-ons will
+    be created for other platforms.
+   </p>
+
+    <p>If you have integrated <em>Converse.js</em> into any other CMS or framework,
+    <a href="http://opkode.com/contact.html" target="_blank">please let me know</a> and I'll mention it on this page.</p>
+
+    <h2>Features</h2>
+    <ul>
+        <li>Single-user chat</li>
+        <li>Multi-user chat in chatrooms (<a href="http://xmpp.org/extensions/xep-0045.html">XEP 45</a>)</li>
+        <li>vCard support (<a href="http://xmpp.org/extensions/xep-0054.html">XEP 54</a>)</li>
+        <li>Service discovery (<a href="http://xmpp.org/extensions/xep-0030.html">XEP 30</a>)</li>
+        <li>Contact rosters</li>
+        <li>Manually or automically subscribe to other contacts</li>
+        <li>Accept or decline contact requests</li>
+        <li>Roster item exchange (<a href="http://xmpp.org/extensions/tmp/xep-0144-1.1.html">XEP 144</a>)</li>
+        <li>Chat statuses (online, busy, away, offline)</li>
+        <li>Custom status messages</li>
+        <li>Typing notifications</li>
+        <li>Third person messages (/me )</li>
+        <li>i18n aware</li>
+    </ul>
+
+    <h2>Screencasts</h2>
+    <ul>
+        <li><a href="http://opkode.com/media/blog/instant-messaging-for-plone-with-javascript-and-xmpp" target="_blank">Screencast 1</a>:
+            Integrated into a Plone site via <strong>collective.xmpp.chat</strong>.
+        </li>
+        <li><a href="http://opkode.com/media/blog/2013/04/02/converse.js-xmpp-instant-messaging-with-javascript" target="_blank">Screencast 2</a>:
+            A static HTML page with <em>Converse.js</em>. Here we chat to external XMPP accounts on Jabber.org and Gmail.
+        </li>
+    </ul>
+
+    <h2>Demo</h2>
+    <p>You can log in with any existing XMPP account. There is also a list of public XMPP providers on <a href="http://xmpp.net" target="_blank">xmpp.net</a>.</p>
+    <p><em><strong>Note:</strong> currently the demo doesn't work in Internet Explorer older
+    than 10. This is due to lacking support for <a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a>,
+    a standard which enables cross-domain XmlHttpRequests. There are ways
+    around this, but it hasn't been a priority for me to implement them for
+    this demo.
+   </p>
+   <p>
+        See <a href="/docs/html/index.html#overcoming-cross-domain-request-restrictions" target="_blank">here</a> for more information.
+    </p>
+    </em>
+
+    <h3>Is it secure?</h3>
+    <p>Yes. In this demo <em>Converse.js</em> makes an
+    <a href="https://en.wikipedia.org/wiki/Secure_Sockets_Layer" target="_blank">SSL</a> encrypted connection to a secure connection manager. 
+    The connection manager then uses SSL and <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS</a> to connect to an XMPP server.</p>
+    That said, the developers don't assume any liability for any loss or damages as a result of using this software or demo. Use this demo at your own risk. 
+
+    <h3>Session support</h3>
+    <p>
+        The chat client will disconnect whenever you reload the page. If you
+        want the user's session to persist across page reloads, you can
+        establish an authenticated connection on the server side and then attach to
+        this connection in your browser.
+   </p>
+    <p><em>Converse.js</em> already supports this usecase, but you'll have to do some integration work yourself.</p>
+
+
+    <h2>Documentation</h2>
+    <p>
+        The documentation is still a bit sparse and a work in progress.
+        Nevertheless, you can read what's already written <a href="/docs/html/index.html" target="_blank">here</a>.
+    </p>
+
+    <h2>Tests</h2>
+    <p>
+        We use the <a href="http://pivotal.github.io/jasmine"
+        target="_blank">Jasmine</a> testing framework to write tests.
+        The tests can be run in the browser and can be viewed <a href="http://conversejs.org/tests.html" target="_blank">here</a>.
+    </p>
+
+    <h2>Credits and Dependencies</h2>
+    <p><strong>Converse.js</strong> depends on a few third party libraries, including: 
+    <ul>
+        <li><a href="http://jquery.com" target="_blank">JQuery</a></li>
+        <li><a href="http://strophe.im/strophejs" target="_blank">strophe.js</a></li>
+        <li><a href="http://backbonejs.org" target="_blank">backbone.js</a></li>
+        <li><a href="http://requirejs.org" target="_blank">require.js</a> (optional dependency)</li>
+    </ul>
+    </p>
+    <p>Some images were taken from <a href="http://plone.org" target="_blank">Plone</a> and the
+    <a href="http://openiconlibrary.sourceforge.net" target="_blank">Open Icon Library</a>.
+
+    <h2>Licence</h2>
+    <p><strong>Converse.js</strong> is released under both the <a href="http://opensource.org/licenses/mit-license.php" target="_blank">MIT</a> 
+    and <a href="http://opensource.org/licenses/GPL-2.0" target="_blank">GPL</a> licenses.</p>
+
+    <h2>Contact</h2>
+    <p>You can follow me on <strong><a href="http://twitter.com/jcopkode" target="_blank">Twitter</a></strong> and <strong><a href="http://identi.ca/opkode" target="_blank">Identica</a></strong></p>
+    <p>My XMPP username is <strong>jc@opkode.im</strong>.</p>
+    <p>Send me an email via this <a href="http://opkode.com/contact" target="_blank">contact form</a>.</p>
+</section>
+
+</div>
+
+<!-- FOOTER  -->
+<div id="footer_wrap" class="outer">
+    <footer class="inner">
+    <p class="copyright">Converse.js created by <a href="http://opkode.com" target="_blank">jcbrand</a></p>
+    </footer>
+</div>
+
+<div id="chatpanel">
+    <div id="collective-xmpp-chat-data"></div>
+    <div id="toggle-controlbox">
+        <a href="#" class="chat toggle-online-users">
+            <strong class="conn-feedback">Toggle chat</strong> <strong style="display: none" id="online-count">(0)</strong>
+        </a>
+    </div>
+</div>
+
+<script type="text/javascript">
+    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">try { var pageTracker = _gat._getTracker("UA-2128260-8"); pageTracker._trackPageview(); } catch(err) {}</script>
+</body>
+<script>
+    converse.initialize({
+        auto_list_rooms: false,
+        auto_subscribe: false,
+        bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
+        hide_muc_server: false,
+        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
+    });
+</script>
+</html>

Някои файлове не бяха показани, защото твърде много файлове са промени