Merge branch 'master' into gh-pages

Conflicts:
	docs/doctrees/environment.pickle
	docs/html/searchindex.js
	index.html
This commit is contained in:
JC Brand 2013-07-27 02:07:33 +02:00
commit 3746d332a3
15 changed files with 1745 additions and 46 deletions

View File

@ -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)
----------------

View File

@ -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",

View File

@ -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');

2
converse.min.js vendored

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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.

View File

@ -1 +1 @@
Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,specif:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,section:0,current:0,version:[],"new":0,net:0,method:0,widget:0,gener:0,here:0,bodi:0,valu:0,box:0,convert:0,convers:0,mysit:0,fetch:0,implement:0,via:0,extra:0,solut:0,put:0,href:0,succesfulli:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,must:0,room:0,setup:[],work:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,snippet:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,show_controlbox_by_default:0,element:0,inform:0,order:0,chatbox:0,xmpp:0,over:0,through:0,streamlin:0,write:0,jid:0,directli:0,fit:0,pend:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,token:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,happen:0,extract:0,special:0,variabl:0,shown:0,space:0,open:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,ajax:0,ask:0,org:0,afterward:0,could:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,done:0,owner:0,jabber:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,bloat:0,provid:0,remov:0,reus:0,toward:[],browser:0,pre:0,sai:[],saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,exampl:0,build:0,which:0,singl:0,sure:0,roster:0,track:0,object:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,firstnam:0,configur:0,apach:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,deploy:0,requir:0,enabl:0,emb:0,"public":0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,statu:0,state:0,bridg:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,conjunct:[],job:0,bosh:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,instanti:0,pot:0,backend:0,onconnect:0,rebuild:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,main:0,servic:0,plugin:0,defin:0,chat:0,helper:0,demo:0,auto_subscrib:0,site:0,rid:0,minim:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,html:0,chatroom:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,"50kb":0,user:0,xhr_user_search:0,recent:0,stateless:0,markup:0,person:[],contact:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,just:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,other:0,input:0,yuicompressor:0,match:0,take:0,applic:0,format:0,read:0,nginx:0,traffic:0,xss:0,like:0,success:0,server:0,benefit:0,necessari:0,either:0,page:0,deal:0,nplural:0,some:0,back:0,librari:0,bottom:0,though:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,obj:[],controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,manag:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,start:[],includ:0,lot:0,suit:0,"var":0,"function":0,head:0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,inlin:0,"true":0,congratul:0,longer:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,toggl:0,otherwis:0,problem:0,expect:0,featur:0,creat:0,"100kb":[],exist:0,file:0,want:0,when:0,detail:0,gettext:0,field:0,valid:0,rememb:0,test:0,you:0,nice:0,node:0,intend:0,releas:0,stai:0,lang:0,requirej:0,getjson:0,time:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]})
Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,specif:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,section:0,current:0,"new":0,net:0,"public":0,widget:0,gener:0,here:0,bodi:0,valu:0,box:0,convert:0,convers:0,mysit:0,reason:0,implement:0,via:0,extra:0,solut:0,prefer:0,ask:0,href:0,org:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,site:0,must:0,room:0,work:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,fetch:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,snippet:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,show_controlbox_by_default:0,element:0,inform:0,order:0,chatbox:0,xmpp:0,over:0,through:0,streamlin:0,write:0,jid:0,directli:0,fit:0,pend:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,token:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,happen:0,extract:0,special:0,variabl:0,shown:0,space:0,jabber:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,ajax:0,put:0,succesfulli:0,afterward:0,could:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,done:0,owner:0,open:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,bloat:0,provid:0,remov:0,jqueri:0,bridg:0,browser:0,pre:0,saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,contact:0,build:0,which:0,singl:0,sure:0,though:0,track:0,object:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,just:0,configur:0,apach:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,requir:0,enabl:0,emb:0,method:0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,page:0,statu:0,state:0,reus:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,job:0,bosh:0,roster:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,instanti:0,pot:0,backend:0,creat:0,rebuild:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,main:0,servic:0,plugin:0,defin:0,file:0,helper:0,demo:0,auto_subscrib:0,non:0,rid:0,develop:0,minim:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,webpag:0,html:0,chatroom:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,"50kb":0,user:0,xhr_user_search:0,recent:0,stateless:0,markup:0,without:0,exampl:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,firstnam:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,other:0,non_amd:0,input:0,yuicompressor:0,match:0,take:0,applic:0,format:0,read:0,nginx:0,traffic:0,xss:0,like:0,success:0,server:0,benefit:0,necessari:0,either:0,manag:0,deal:0,nplural:0,some:0,back:0,librari:0,bottom:0,deploy:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,includ:0,lot:0,suit:0,"var":0,"function":0,head:0,properli:0,form:0,blogpost:0,bundl:0,link:0,translat:0,synonym:0,line:0,inlin:0,"true":0,congratul:0,longer:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,toggl:0,otherwis:0,problem:0,expect:0,featur:0,onconnect:0,exist:0,chat:0,want:0,when:0,detail:0,gettext:0,field:0,valid:0,rememb:0,test:0,you:0,nice:0,node:0,intend:0,releas:0,stai:0,lang:0,requirej:0,getjson:0,time:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]})

View File

@ -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

View File

@ -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);

View File

@ -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"
]
}
}

View File

@ -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"

View File

@ -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
non_amd.html Normal file
View File

@ -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>