Commits

Anonymous committed c919259

Removed docs directory.

Documentation is now available at http://help.transifex.net/

The docs repository now lives at:
http://bitbucket.org/indifex/transifex-docs

Comments (0)

Files changed (89)

  Transifex Documentation
 =========================
 
-Welcome to the documentation included with the Transifex source code.
+You may view the full Transifex documentation at the following URL:
 
-The docs are available in the following formats:
+  http://help.transifex.net/
 
-- Plaintext: Suitable for printing, reading from the command-line, etc.
 
-- HTML: A rich rendering of the docs is also available in HTML format, with
-  inter-links, nice formatting, searching, automatic indexing, etc. Just fire
-  up your browser and point it at the 'html/' directory.
 
-Instructions on how to build the docs can be found in the README file inside
-the '_devel/' directory.
+Downloading the documentation
+=============================
+
+If you'd like to download the full documentation for offline use, feel free to
+clone our Mercurial repository:
+
+  hg clone http://bitbucket.org/indifex/transifex-docs

docs/_devel/README

-
-=========================
- Building Transifex Docs
-=========================
-
-To build the docs, you will need to have a working Transifex system
-(dependencies there, ``python manage.py shell`` working). If you're using a
-virtualenv, make sure you enable it. Additionally, sphinx must be installed in
-your virtualenv.
-
-To build the HTML version of the docs, just run::
-
-  cd plaintext
-  make html
-
-The HTML output will be in ``docs/html/``.
-
-
-Publishing the docs
-===================
-
-To build and publish the docs (e.g. before a Tx release), I usually do
-something like::
-
-  cd plaintext
-  workon current
-  make clean && make html
-
-  cd ../html
-  chromium-browser index.html
-  scpresume * txo:webapps/txo_docs/
-
-To get the translators for the past release::
-
-  hg log -r 0.7:tip --template "{desc|firstline} -- {author|person}\n" | \
-  grep 'l10n' | sort | uniq
-
-To datamine the new dependencies:
-
-  hg diff -r 0.7:tip setup.py

docs/_devel/_static/default.css

-@import url(reset-fonts-grids.css);
-@import url(transifexdocs.css);
-@import url(homepage.css);

docs/_devel/_static/docicons-behindscenes.gif

Removed
Old image

docs/_devel/_static/docicons-note.gif

Removed
Old image

docs/_devel/_static/docicons-philosophy.gif

Removed
Old image

docs/_devel/_static/homepage.css

-#index p.rubric { font-size:150%; font-weight:normal; margin-bottom:.2em; color:#487858; }
-
-#index div.section dt { font-weight: normal; }
-
-#index #s-getting-help { float: right; width: 35em; background: #E1ECE2; padding: 1em; margin: 2em 0 2em 2em; }
-#index #s-getting-help h2 { margin: 0; }
-
-#index #s-django-documentation div.section div.section h3 { margin: 0; }
-#index #s-django-documentation div.section div.section { background: #E1ECE2; padding: 1em; margin: 2em 0 2em 40.3em; }
-#index #s-django-documentation div.section div.section a.reference { white-space: nowrap; }
-
-#index #s-using-django dl,
-#index #s-add-on-contrib-applications dl,
-#index #s-solving-specific-problems dl,
-#index #s-reference dl
-    { float: left; width: 41em; }
-
-#index #s-add-on-contrib-applications,
-#index #s-solving-specific-problems,
-#index #s-reference,
-#index #s-and-all-the-rest
-    { clear: left; }

docs/_devel/_static/reset-fonts-grids.css

-/*
-Copyright (c) 2008, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.5.1
-*/
-html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;font-variant:normal;}sup {vertical-align:text-top;}sub {vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}body {font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}
-body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;min-width:750px;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}s .yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}

docs/_devel/_static/transifex-logo.png

Removed
Old image

docs/_devel/_static/transifexdocs.css

-/*** Stylesheet shamelessly based on top of the Django Documentation CSS ***/
-/*** http://docs.djangoproject.com/ ***/
-/*** For LICENCE information, please refer to:
-     http://code.djangoproject.com/browser/django/trunk. ***/
-
-/*** setup ***/
-html { background:#002136;}
-body { font:12px/1.5 Verdana,sans-serif; background:#002136; color: white;}
-#custom-doc { min-width:995px; max-width:95em; margin:auto; text-align:left; padding-top:16px; margin-top:0;} 
-#hd { padding: 1.5em 0; }
-#bd { background:#233F52; }
-#ft { color:#4e697a; font-size:90%; padding-bottom: 2em; }
-
-/*** links ***/
-a {text-decoration: none;}
-a img {border: none;}
-a:link, a:visited { color:#c5854c; }
-#bd a:link, #bd a:visited { color:#B65B0B; border-bottom:1px dotted #BBBBBB; color:#B65C0C; text-decoration:none; }
-#bd #sidebar a:link, #bd #sidebar a:visited { color:#C5854C; text-decoration:none; border-bottom: none;}
-a:hover { color:#d1e2cd; }
-#bd a:hover { background-color:#e7eef3; color:#234f32; text-decoration:none; }
-#bd #sidebar a:hover { color:#d1e2cd; background:none; }
-h2 a, h3 a, h4 a { text-decoration:none !important; }
-a.reference em { font-style: normal; }
-
-/*** sidebar ***/
-#sidebar div.sphinxsidebarwrapper { font-size:92%; margin-right: 14px; }
-#sidebar h3, #sidebar h4 { color: #eee; font-size: 125%; }
-#sidebar a { color: white; }
-#sidebar { color: #eee; }
-#sidebar ul ul { margin-top:0; margin-bottom:0; }
-#sidebar li { margin-top: 0.2em; margin-bottom: 0.2em; }
-
-/*** nav ***/
-div.nav { margin: 0; font-size: 11px; text-align: right; color: #5d7e92;}
-#hd div.nav { margin-top: -27px; }
-#ft div.nav { margin-bottom: -18px; }
-#hd h1 a { color: white; }
-#global-nav { position:absolute; top:5px; margin-left: -5px; padding:7px 0; color:#5D7E92; text-align: right; width: 69em; font-size: 120%; }
-#global-nav a:link, #global-nav a:visited {color:#C5854C;}
-#global-nav a {padding:0 4px;}
-#global-nav a.about {padding-left:0;}
-#global-nav a:hover  { color:#d1e2cd; }
-
-/*** content ***/
-#yui-main div.yui-b { position: relative; }
-#yui-main div.yui-b { margin: 0 0 0 20px; background: white; color: black; padding: 0.3em 2em 1em 2em; }
-
-/*** basic styles ***/
-dd { margin-left:15px; margin-right:15px; }
-h1,h2,h3,h4 { margin-top:1em; font-family:"Trebuchet MS",sans-serif; font-weight:normal; }
-h1 { font-size:250%; margin-top:0.6em; margin-bottom:.4em; line-height:1.1em; }
-h2 { font-size:220%; margin-bottom:1em; margin-top: 2em; line-height:1.2em; color:#42789c; }
-h3 { font-size:180%; font-weight:bold; margin-bottom:.6em; margin-top: 1.5em; color:#487858; }
-h4 { font-size:145%; font-weight:bold; margin-top:2em; margin-bottom:0.8em; text-transform: uppercase; color:#1B3848;} /* green: #487858 */
-h5 { font-size:125%; font-weight:bold; margin-top:1.5em; margin-bottom:3px; color:#42789c; }
-h6 { font-size:110%; font-weight:bold; margin-top:1.2em; margin-bottom:0; color:#002136; }
-
-.section h2 {border-top: 3px #ddd dotted; padding-top: 0.3em;}
-/* Pale green: color:#699233;*/
-div.figure { text-align: center; }
-div.figure p.caption { font-size:1em; margin-top:0; margin-bottom:1.5em; color: #555; text-align: center;}
-hr { color:#ccc; background-color:#ccc; height:1px; border:0; }
-p, ul, dl { margin-top:.6em; margin-bottom:1em; padding-bottom: 0.1em;}
-#yui-main div.yui-b img { max-width: 55em; margin-left: auto; margin-right: auto; display: block; }
-caption { font-size:1em; font-weight:bold; margin-top:0.5em; margin-bottom:0.5em; margin-left: 2px; text-align: center; }
-blockquote { padding: 0 1em; margin: 1em 0; font:125%/1.2em "Trebuchet MS", sans-serif; color:#234f32; border-left:2px solid #94da3a; } 
-strong { font-weight: bold; }
-em { font-style: italic; }
-ins { font-weight: bold; text-decoration: none; }
-
-/*** lists ***/
-ul { padding-left:30px; }
-ol { padding-left:30px; }
-ol.arabic li { list-style-type: decimal; }
-ul li { list-style-type:square; margin-top:.2em; margin-bottom:.2em;}
-ol li { margin-bottom: .4em; }
-ul ul { padding-left:1.2em; }
-ul ul ul { padding-left:1em; }
-ul.linklist, ul.toc { padding-left:0; }
-ul.toc ul { margin-left:.6em; }
-ul.toc ul li { list-style-type:square; }
-ul.toc ul ul li { list-style-type:disc; }
-ul.linklist li, ul.toc li { list-style-type:none; }
-dt { font-weight:bold; margin-top:.5em; font-size:1.1em; color:#002136; }
-dd { margin-bottom:.8em; }
-ol.toc { margin-bottom: 2em; }
-ol.toc li { font-size:125%; padding: .5em; line-height:1.2em; clear: right; }
-ol.toc li.b { background-color: #E0FFB8; }
-ol.toc li a:hover { background-color: transparent !important; text-decoration: underline !important; }
-ol.toc span.release-date { color:#487858; float: right; font-size: 85%; padding-right: .5em; }
-ol.toc span.comment-count { font-size: 75%; color: #999; }
-
-/*** tables ***/
-table { color:#000; margin-bottom: 1em; width: 100%; }
-table.docutils td p { margin-top:0; margin-bottom:.5em; }
-table.docutils td, table.docutils th { border-bottom:1px solid #dfdfdf; padding:4px 2px;}
-table.docutils thead th { border-bottom:2px solid #dfdfdf; text-align:left; font-weight: bold; white-space: nowrap; }
-table.docutils thead th p { margin: 0; padding: 0; }
-table.docutils { border-collapse:collapse; }
-
-/*** code blocks ***/
-.literal { white-space:nowrap; }
-.literal { color:#234f32; }
-#sidebar .literal { color:white; background:transparent; font-size:11px; }
-h4 .literal { color: #234f32; font-size: 13px; }
-pre { font-size:small; background:#ebf2e9; border:1px solid #d1e2cd; border-width:1px 0; margin: 1em 0; padding: .7em .7em; overflow: hidden; line-height: 1.4em;}
-dt .literal, table .literal { background:none; }
-#bd a.reference { text-decoration: none; }
-#bd a.reference tt.literal { border-bottom: 1px #234f32 dotted; }
- 
-/*** notes & admonitions ***/
-.note, .admonition { padding:.8em 1em .8em; margin: 1em 0; border:2px dotted #f2c69f; }
-.admonition-title { font-weight:bold; margin-top:0 !important; margin-bottom:0 !important;}
-.admonition .last { margin-bottom:0 !important; }
-.note, .admonition { padding-left:65px; background:url(docicons-note.gif) .8em .8em no-repeat;}
-div.admonition-philosophy { padding-left:65px; background:url(docicons-philosophy.gif) .8em .8em no-repeat;}
-div.admonition-behind-the-scenes { padding-left:65px; background:url(docicons-behindscenes.gif) .8em .8em no-repeat;}
-
-/*** versionadded/changes ***/
-div.versionadded, div.versionchanged {  }
-div.versionadded span.title, div.versionchanged span.title { font-weight: bold; }
-
-/*** p-links ***/
-a.headerlink { color: #c60f0f; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; visibility: hidden; }
-h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink { visibility: visible; }
-
-/*** index ***/
-table.indextable td { text-align: left; vertical-align: top;}
-table.indextable dl, table.indextable dd { margin-top: 0; margin-bottom: 0; }
-table.indextable tr.pcap { height: 10px; }
-table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2;}
-
-/*** page-specific overrides ***/
-div#contents ul { margin-bottom: 0;}
-div#contents ul li { margin-bottom: 0;}
-div#contents ul ul li { margin-top: 0.3em;}
-
-/*** IE hacks ***/
-* pre { width: 100%; }
-
-/*** Tx ***/
-img.shot { clear: right; margin-left: 2em !important; margin-top: 0.5em; border: 3px solid #f5f5f5; padding: 10px; float: right; }
-img.shot2 { clear: right; margin-left: 2em !important; margin-top: 0.5em; margin-right: 0; padding-right: 0; float: right; }
-img.alcenter { clear: both; float: none !important; margin-left: auto !important; margin-right: auto !important; }
-div.section p, div.section dd { text-align: justify; }
-div.footer { font-size: 90%; margin-bottom: 2em; color: #5D7E92; }
-
-p.logo { margin: 3em 0 4em 0; text-align: center; }

docs/_devel/_templates/genindex.html

-{% extends "!genindex.html" %}
-
-{% block bodyclass %}{% endblock %}
-{% block sidebarwrapper %}{% endblock %}

docs/_devel/_templates/layout.html

-{% extends "!layout.html" %}
-
-{%- macro secondnav() %}
-  {%- if prev %}
-    &laquo; <a href="{{ prev.link|e }}" title="{{ prev.title|e }}">previous</a> 
-    {{ reldelim2 }}
-  {%- endif %}
-  {%- if parents %}
-    <a href="{{ parents.0.link|e }}" title="{{ parents.0.title|e }}" accesskey="U">up</a> 
-  {%- else %}
-    <a title="{{ docstitle }}" href="{{ pathto('index') }}" accesskey="U">up</a> 
-  {%- endif %}
-  {%- if next %}
-  {{ reldelim2 }}
-    <a href="{{ next.link|e }}" title="{{ next.title|e }}">next</a> &raquo;
-  {%- endif %}
-{%- endmacro %}
-
-{%- macro bodynav() %}
-  {%- if prev %}
-    &laquo; <a href="{{ prev.link|e }}" title="{{ prev.title|e }}">{{
-    prev.title|e }}</a> 
-    {{ reldelim2 }}
-  {%- endif %}
-  {%- if parents %}
-    <a href="{{ parents.0.link|e }}" title="{{ parents.0.title|e }}" accesskey="U">up</a> 
-  {%- else %}
-    <a title="{{ docstitle }}" href="{{ pathto('index') }}" accesskey="U">up</a> 
-  {%- endif %}
-  {%- if next %}
-  {{ reldelim2 }}
-    <a href="{{ next.link|e }}" title="{{ next.title|e }}">{{ next.title|e }}</a> &raquo;
-  {%- endif %}
-{%- endmacro %}
-
-{% block document %}
-  <div id="custom-doc" class="{% block bodyclass %}{{ 'yui-t6' }}{% endblock %}">
-    <div id="hd">
-      <h1><a href="{{ pathto('index') }}">{{ docstitle }}</a></h1>
-      <div id="global-nav">
-        <a title="Home page" href="{{ pathto('index') }}">Home</a> {{ reldelim2 }}
-        <a title="Table of contents" href="{{ pathto('contents') }}">Table of contents</a> {{ reldelim2 }}
-        <a title="Global index" href="{{ pathto('genindex') }}">Index</a> {{ reldelim2 }}
-        <a title="Search" href="{{ pathto('modindex') }}">Modules</a>
-      </div>
-      <div class="nav">{{ secondnav() }}</div>
-    </div>
-    
-    <div id="bd">
-      <div id="yui-main">
-        <div class="yui-b">
-          <div class="yui-g" id="{{ pagename|replace('/', '-') }}">
-            {% block body %}{% endblock %}
-      <div class="nav">{{ bodynav() }}</div>
-          </div>         
-        </div>
-      </div>
-      {% block sidebarwrapper %}
-          <div class="yui-b" id="sidebar">
-            {{ sidebar() }}
-            {%- if last_updated %}
-              <h3>Last update:</h3>
-              <p class="topless">{{ last_updated }}</p>
-            {%- endif %}
-          </div> 
-      {% endblock %}
-    </div>
-    
-    <div id="ft">
-      <div class="nav">{{ secondnav() }}</div>
-    </div>
-  </div>
-{% endblock %}
-
-{% block sidebarrel %}
-  <h3>Browse</h3>
-  <ul>
-    {% if prev %}
-      <li>Prev: <a href="{{ prev.link }}">{{ prev.title }}</a></li>
-    {% endif %}
-    {% if next %}
-      <li>Next: <a href="{{ next.link }}">{{ next.title }}</a></li>
-    {% endif %}
-  </ul>
-  <h3>You are here:</h3>
-  <ul>
-      <li>
-        <a href="{{ pathto('index') }}">{{ docstitle }}</a>
-        {% for p in parents %}
-          <ul><li><a href="{{ p.link }}">{{ p.title }}</a>
-        {% endfor %}
-        <ul><li>{{ title }}</li></ul>
-        {% for p in parents %}</li></ul>{% endfor %}
-      </li>
-  </ul>  
-{% endblock %}
-
-{# Empty some default blocks out #}
-{% block relbar1 %}{% endblock %}
-{% block relbar2 %}{% endblock %}
-{% block sidebar1 %}{% endblock %}
-{% block sidebar2 %}{% endblock %}
-{%- block footer %}
-    <div class="footer">
-    {%- if hasdoc('copyright') %}
-      &copy; <a href="{{ pathto('copyright') }}">Copyright</a> {{ copyright }}.
-    {%- else %}
-      &copy; Copyright {{ copyright }}.
-    {%- endif %}
-    {%- if last_updated %}
-      Last updated on {{ last_updated }}{%- if show_sphinx %} using <a href="http://sphinx.pocoo.org/">Sphinx</a>{%- endif %}.
-    {%- endif %}
-    </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-4362397-5");
-pageTracker._trackPageview();
-} catch(err) {}</script>
-{%- endblock %}

docs/_devel/_templates/modindex.html

-{% extends "!modindex.html" %}
-{% block bodyclass %}{% endblock %}
-{% block sidebarwrapper %}{% endblock %}

docs/_devel/_templates/search.html

-{% extends "!search.html" %}
-{% block bodyclass %}{% endblock %}
-{% block sidebarwrapper %}{% endblock %}

docs/_devel/conf.py

-# -*- coding: utf-8 -*-
-#
-# Transifex documentation build configuration file, created by
-# sphinx-quickstart on Fri Sep 26 13:37:22 2008 +0300.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# The contents of this file are pickled, so don't put values in the namespace
-# that aren't pickleable (module imports are okay, they're removed automatically).
-#
-# All configuration values have a default value; values that are commented out
-# serve to show the default value.
-
-import sys
-import os
-# If your extensions are in another directory, add it here.
-sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__),
-'../../transifex')))
-
-from txcommon import version as txversion, version_info
-
-# General configuration
-# ---------------------
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.txt'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General substitutions.
-project = 'Transifex'
-copyright = '<a href="http://www.indifex.com">Indifex</a> and the <a href="http://transifex.org/">Transifex</a> Community'
-
-# The default replacements for |version| and |release|, also used in various
-# other places throughout the built documents.
-#
-# The short X.Y version.
-version = '.'.join([str(v) for v in version_info[:2]])
-# The full version, including alpha/beta/rc tags.
-release = txversion
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-today_fmt = '%B %d, %Y'
-
-# List of documents that shouldn't be included in the build.
-#unused_docs = []
-
-# List of directories, relative to source directories, that shouldn't be searched
-# for source files.
-#exclude_dirs = []
-
-# If true, '()' will be appended to :func:, etc. cross-reference text.
-add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-add_module_names = False
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'trac'
-
-# Options for HTML output
-# -----------------------
-
-# The style sheet to use for HTML and HTML Help pages. A file of that name
-# must exist either in Sphinx' static/ path, or in one of the custom paths
-# given in html_static_path.
-html_style = 'default.css'
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# The name of an image file (within the static path) to place at the top of
-# the sidebar.
-html_logo = '_static/transifex-logo.png'
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_use_modindex = True
-
-# If true, the reST sources are included in the HTML build as _sources/<name>.
-html_copy_source = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = ''
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'Transifexdoc'
-
-
-# Options for LaTeX output
-# ------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, document class [howto/manual]).
-latex_documents = [('contents')
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_use_modindex = True
-
-latex_use_parts = True

docs/_devel/hg-shortlog.py

-#!/usr/bin/env python
-# Produces shortlog from hg log output.
-#
-# hg log --template "{author|person}\t{author|email}\t{desc|firstline}\n"
-#
-# e.x. 
-# Dimitris Glezos<tab>dimitris@glezos.com<tab>Contributions by Silvio Pierro
-
-import os
-import re
-import sys
-from collections import defaultdict
-from optparse import OptionParser
-
-# Save the invocation name of the script, for later use.
-progname = os.path.basename(sys.argv[0])
-
-# The regular expression matcher for parsing shortlog output lines.
-log_re = None
-
-def message(msg=None):
-    """Print an optional `msg' message string to our standard error
-    stream.  Note that a newline is appended automatically to the
-    message string, as if it was displayed with print(), and no
-    exceptions are captured by message()."""
-    if msg:
-        s = "%s\n" % (msg)
-        sys.stderr.write(s)
-        sys.stderr.flush()
-    return None
-
-def error(code, msg=None):
-    """Print `msg' as an optional error message string, and die with an
-    error of `code'."""
-    if msg:
-        s = '%s: error: %s' % (progname, msg)
-        message(s)
-    sys.exit(code)
-
-def warning(msg=None):
-    """Print `msg' as an optional warning string."""
-    if msg:
-        s = '%s: warning: %s' % (progname, msg)
-        message(s)
-    return None
-
-def read_mailmap(filename):
-    """
-    Reads mailmap file
-    Returns {<email>:<name>} dict
-    """
-    mailmap_re = re.compile('^(?P<name>.*) \<(?P<email>.*)\>')
-    mailmap = {}
-
-    f = open(filename,'r')
-    try:
-        for line in f:
-            if line.startswith('#'):
-                continue
-            m = mailmap_re.match(line)
-            if m:
-                mailmap[m.group('email')] = m.group('name')
-    finally:
-        f.close()
-    return mailmap
-
-def log():
-    """ Yields (name, email, msg) from stdin"""
-
-    for line in sys.stdin:
-        m = log_re.match(line)
-        if m:
-            g = m.group
-            yield g('name'), g('email'), g('msg')
-
-def get_commit_map(mailmap={}):
-    """
-    Returns {<Full Name> : [<msg1>, <msg2>]} dict
-    """
-    if not log_re:
-        warning("No log matcher")
-        return None
-    commit_map = defaultdict(list)
-    for name, email, msg in log():
-        # search mailmap for the email. Use name if you don't find it
-        name = mailmap.get(email, name)
-        commit_map[name].append(msg)
-    return commit_map
-
-if __name__ == "__main__":
-    try:
-        log_re = re.compile('^(?P<name>.*)\t(?P<email>.*)\t(?P<msg>.*)$')
-    except Exception, inst:
-        error(1, "invalid regular expression %s" % str(inst))
-
-    parser = OptionParser()
-    parser.add_option('-m', '--mailmap', default='.mailmap', dest='mailmap',
-        help="Use mailmap file")
-    parser.add_option('-n', '--no-mailmap', action='store_false', dest='mailmap',
-        help="Don't use mailmap")
-    options, args = parser.parse_args()
-
-    if options.mailmap:
-        options.mailmap = read_mailmap(options.mailmap)
-    commit_map = get_commit_map(mailmap=options.mailmap or {})
-    if not commit_map:
-        error(1, "No commits")
-    for person, commits in commit_map.iteritems():
-        print '%s (%s):' % (person, len(commits))
-        for commit in commits:
-            print '\t%s' % commit
-    sys.exit(0)

docs/plaintext/Makefile

-# Makefile for Sphinx documentation
-#
-# Note: If you're using a virtualenv, make sure sphinx is installed in there.
-#
-# You can set these variables from the command line.
-SPHINXOPTS    = -c ../_devel
-SPHINXBUILD   = env DJANGO_SETTINGS_MODULE="settings" sphinx-build
-PAPER         =
-OUTDIR        = ../html
-BUILDDIR      = ../_build
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html web pickle htmlhelp latex changes linkcheck upload pdf
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html      to make standalone HTML files"
-	@echo "  pickle    to make pickle files (usable by e.g. sphinx-web)"
-	@echo "  htmlhelp  to make HTML files and a HTML help project"
-	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  changes   to make an overview over all changed/added/deprecated items"
-	@echo "  linkcheck to check all external links for integrity"
-
-clean:
-	-rm -rf $(BUILDDIR) $(OUTDIR)
-
-html:
-	mkdir -p $(OUTDIR) $(BUILDDIR)/doctrees
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(OUTDIR)
-	@echo
-	@echo "Build finished. The HTML pages are in $(OUTDIR)."
-
-pickle:
-	mkdir -p $(BUILDDIR)/pickle $(BUILDDIR)/doctrees
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files or run"
-	@echo "  sphinx-web $(BUILDDIR)/pickle"
-	@echo "to start the sphinx-web server."
-
-web: pickle
-
-htmlhelp:
-	mkdir -p $(BUILDDIR)/htmlhelp $(BUILDDIR)/doctrees
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
-	@echo
-	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-latex:
-	mkdir -p $(BUILDDIR)/latex $(BUILDDIR)/doctrees
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo
-	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
-	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
-	      "run these through (pdf)latex."
-
-changes:
-	mkdir -p $(BUILDDIR)/changes $(BUILDDIR)/doctrees
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
-	@echo
-	@echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
-	mkdir -p $(BUILDDIR)/linkcheck $(BUILDDIR)/doctrees
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
-	@echo
-	@echo "Link check complete; look for any errors in the above output " \
-	      "or in $(BUILDDIR)/linkcheck/output.txt."
-
-pdf: latex
-	make -C $(BUILDDIR)/latex all-pdf
-	cp $(BUILDDIR)/latex/*.pdf $(BUILDDIR)

docs/plaintext/contents.txt

-.. _contents:
-
-=================
-Table of Contents
-=================
-
-.. toctree::
-   :maxdepth: 2
-
-   intro/index
-   modules/index
-   faq/index
-   releases/index
-         
-Indices, glossary and tables
-============================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`glossary`
-   

docs/plaintext/development/contributing.txt

-.. _development-contributing:
-
-=========================
-Contributing to Transifex
-=========================
-
-We're passionate about helping Transifex users make the jump to contributing members
-of the community, so there are many ways you can help Django's development:
-
-* Report bugs and request features in our `ticket tracker`_.  Please read
-  `Reporting bugs`_, below, for the details on how we like our bug reports
-  served up.
-
-* Submit patches for new and/or fixed behavior.  Please read `Submitting
-  patches`_, below, for details on how to submit a patch.
-
-* Join the `transifex-devel`_ mailing list and share your ideas for how
-  to improve Transifex.  We're always open to suggestions, although we're
-  likely to be skeptical of large-scale suggestions without some code to
-  back it up.
-
-
-.. _reporting-bugs:
-
-Reporting bugs
-==============
-
-Well-written bug reports are *incredibly* helpful. However, there's a certain
-amount of overhead involved in working with any bug tracking system, so your
-help in keeping our ticket tracker as useful as possible is appreciated.  In
-particular:
-
-* **Do** read the :ref:`FAQ <faq-index>` to see if your issue might be a well-known question.
-
-* **Do** `search the tracker`_ to see if your issue has already been filed.
-
-* **Do** ask on `transifex-devel`_ *first* if you're not sure if what you're
-  seeing is a bug.
-
-* **Do** write complete, reproducible, specific bug reports. Include as
-  much information as you possibly can, complete with code snippets, test
-  cases, etc. This means including a clear, concise description of the
-  problem, and a clear set of instructions for replicating the problem.
-  A minimal example that illustrates the bug in a nice small test case
-  is the best possible bug report.
-
-* **Don't** use the ticket system to ask support questions.  Use the
-  `transifex-devel`_ list, or the `#transifex`_ IRC channel for that.
-
-* **Don't** use the ticket system to make large-scale feature requests.
-  We like to discuss any big changes to Transifex's core on the `transifex-devel`_
-  list before actually working on them.
-
-* **Don't** reopen issues that have been marked "wontfix". This mark means
-  that the decision has been made that we can't or won't fix this particular
-  issue.  If you're not sure why, please ask on `transifex-devel`_.
-
-* **Don't** use the ticket tracker for lengthy discussions, because they're
-  likely to get lost. If a particular ticket is controversial, please move
-  discussion to `transifex-devel`_.
-
-* **Don't** post to transifex-devel just to announce that you have filed
-  a bug report. All the tickets are mailed to another list
-  (`transifex-updates`_), which is tracked by developers and triagers, so we
-  see them as they are filed.
-
-
-.. submitting-patches:
-
-Submitting patches
-==================
-
-We're always grateful for patches to Transifex's code. Indeed, bug reports with
-associated patches will get fixed *far* more quickly than those without patches.
-
-
-.. _coding-style:
-
-Coding style
-============
-
-Here are some notes on the common style we use for stuff landing in Transifex.
-
-* Code follows the guidelines described in the standard Python Coding Style
-  of PEP-8_. Docstrings follow PEP-257_.
-
-* Use the following style (indented, auto-concat) when writing long strings::
-
-    def lorem_ipsum():
-       description = _(
-           "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas "
-           "nisl leo, suscipit sed, elementum ac, condimentum eget, augue. "
-           "Pellentesque consequat posuere metus. Curabitur scelerisque faucibus "
-           "massa. Vestibulum ut nisl ut leo cursus commodo."
-       )
-
-* Model filtering should be in the form::
-
-    Module.query.filter_by(name='foo')
-
-  and *not*::
-
-    Module.query.filter(Module.name=='foo') 
-
-
-Committing
-==========
-
-
-Commit messages
----------------
-
-Commit messages should have a short first line and optionally more information
-after a blank newline::
-
-    Short (50 chars or less) summary of changes (#ticket)
-
-    More detailed explanatory text can follow after a blank line, if
-    necessary. Wrap to about 72 characters or so.
-
-    If there is a ticket associated, include it in the summary line. Prefix
-    line with "bugfix:" and "trivial:" for bugfixes and trivial commits.
-
-     - Bullet points are okay, too. Typically a hyphen or asterisk is used
-       for the bullet, preceded by a single space, with blank lines between
-       items.
-
-     - Use a hanging indent, like above.
-
-Setup Hints for Common Editors
-==============================
-
-Configuring VIM for Transifex Code
-----------------------------------
-
-To configure vim for editing Transifex code, make sure that it sets up
-the indentation level to 4 columns when editing Python code, that it
-expands ASCII TAB (code: 9) characters to spaces, and wraps text at 72
-columns.
-
-To enable these options only for ``*.py`` files, you can add the following
-options to your ``~/.vimrc`` file::
-
-    if !exists("format_tx_python")
-      let format_tx_python = 1
-
-      " Formatting Python code for Transifex.
-      autocmd BufNewFile,BufRead *.py set autoindent showmatch
-      autocmd BufNewFile,BufRead *.py set formatoptions=tcq2l
-      autocmd BufNewFile,BufRead *.py set textwidth=72 shiftwidth=4
-      autocmd BufNewFile,BufRead *.py set softtabstop=4 tabstop=8 expandtab
-    endif
-
-Configuring Emacs for Transifex Code
-------------------------------------
-
-To configure Emacs for editing Transifex code, you can set up a hook
-function that runs whenever ``python-mode`` is enabled.  Setting up the
-column for wrapping text, and the use of only ASCII SPACE characters for
-indentation is easy.  Just add the following Emacs Lisp snippet in your
-Emacs startup file::
-
-    ;; Formatting Python code for Transifex.
-    (defun local/python-mode-options ()
-      "My local configuration tweaks for `python-mode'."
-      (setq fill-column 72		;text wrap column
-            python-indent 4		;use 4-column indentation for Python
-            indent-tabs-mode nil	;use only SPC for indentation
-            next-line-add-newlines nil)) ;don't add newlines at end-of-file
-
-    ;; When python-mode loads, call our hook function.
-    (eval-after-load "python"
-      '(add-hook 'python-mode 'local/python-mode-options))
-
-
-Changing the model
-==================
-
-Like with all software having a database, changes to Transifex's models should
-be handled with care. Production instances of Transifex rely on the stability
-of the model when upgrading, and a safe upgrade path should be given to
-everyone currently running a Transifex instance.
-
-For this reason we usually discuss model changes on the mailing list,
-especially if they're big ones. 
-
-New model fields should follow the style of the current fields and include
-any help texts attributes to them, if needed.
-
-A commit which changes the models needs to include fixtures that work with the
-new model. We already have some sample data for folks to try out in
-``txcommon/fixtures/sample_data.json``.
-
-Typical model change scenario
------------------------------
-
-When model modifications are introduced, the following steps can be followed
-to have the fixture updated:
-
-1. Flush, create tables and load data::
-
-     ./manage.py flush
-     ./manage.py syncdb
-     ./manage.py loaddata txcommon/fixtures/sample_data.json
-
-2. Make changes to the models.
-3. Probably a migration will be required.
-
-   From the Release 0.7, Transifex uses South for managing the schema 
-   migrations of models. To get the migration script related to your model
-   change run::
-   
-     ./manage.py startmigration <app_name> <migration_name> --auto
-
-   Note that a new python script with the <migration_name> will be created under
-   the <app_name>/migrations/ dir. As it's an automatic detection, please, have 
-   a look on it for checking if it is really reflecting your changes correctly. 
-   After check it, you can test it running::
-   
-     ./manage.py migrate <app_name> --db-dry-run
-   
-   In complex changes the South application might not be able to proceed 
-   automatically (for example when adding a non-null column). In this case you can
-   delete the column and re-add it, add it as null and change it, etc. South 
-   also supports to write manual migrations and more information can be found 
-   at http://south.aeracode.org/wiki/Documentation.
-   
-   Once your migration pass through the above command without errors, you can
-   proceed the migration in the database skipping the option --db-dry-run::
-       
-      ./manage.py migrate <app_name>
-
-4. With the new DB schema in place, dump the data again::
-
-     ./manage.py dumpdata --indent=2 projects releases codebases \
-     tarball vcs sites > txcommon/fixtures/sample_data.json
-
-5. Try the new DB fixture::
-
-     ./manage.py flush --noinput
-     ./manage.py syncdb --noinput
-     ./manage.py loaddata txcommon/fixtures/sample_data.json
-     ./manage.py loaddata txcommon/fixtures/sample_users.json
-
-   Open up your browser to check everything looks OK and that your changes
-   have been included as you'd expect.
-   
-6. Update the documentation if needed. Commit all changes together.
-
-
-Updating translation files (PO files)
-=====================================
-
-To extract new messages from the source code and update the PO files of 
-Transifex it is necessary to run the following command and then commit the 
-changes::
-
-    ./manage.py txmakemessages --all
-
-
-Various Development Tips
-========================
-
-Cross Site Request Forgery protection
--------------------------------------
-
-Transifex is protected against CSRF_ attacks by ensuring that GET requests are
-side-effect free. This means that every action inside Transifex that has an
-effect on the database, session, etc. are not being done over a GET request.
-With Django's `CSRF Middleware`_ enabled, attackers are prevented from meddling
-with a Transifex user's settings.
-
-Examples of CSRF-vulnerable elements are a link which calls ``/logout`` over
-GET to log the user out, a 'pt_BR' link to change the page's language to
-Brazilian Portuguese and save this setting to the user's cookie, a simple AJAX
-request to lock a file, etc.
-
-Examples not vulnerable actions are searching through the website for a string,
-pagination, etc.
-
-If you are adding some code in Transifex which has a side-effect, always do it
-over POST.
-
-
- 
-.. _PEP-8:   http://www.python.org/dev/peps/pep-0008/
-.. _PEP-257: http://www.python.org/dev/peps/pep-0257/
-.. _transifex-updates: http://groups.google.com/group/transifex-updates
-.. _search the tracker: http://transifex.org/search?&ticket=on
-.. _`#transifex`: irc://irc.freenode.net/transifex
-.. _ticket tracker: http://transifex.org/newticket
-.. _transifex-devel: http://groups.google.com/group/transifex-devel
-.. _CSRF: http://en.wikipedia.org/wiki/Cross-site_request_forgery
-.. _`CSRF Middleware`: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/

docs/plaintext/development/index.txt

-.. _development-index:
-
-=================
-Development notes
-=================
-
-.. toctree::
-   :maxdepth: 2
-   
-   contributing

docs/plaintext/faq/contributing.txt

-.. _faq-contributing:
-
-FAQ: Contributing code
-======================
-
-How can I get started contributing code to Transifex?
------------------------------------------------------
-
-
-I submitted a bug fix several weeks ago. Why are you ignoring my patch?
------------------------------------------------------------------------
-
-Don't worry: We're not ignoring you!
-
-It's important to understand there is a difference between "a ticket is being
-ignored" and "a ticket has not been attended to yet." Our ticket system
-contains hundreds of open tickets, of various degrees of impact on end-user
-functionality, and Transifex's developers have to review and prioritize.
-
-On top of that: the people who work on Transifex are all volunteers. As a result,
-the amount of time that we have to work on the framework is limited and will
-vary from week to week depending on our spare time. If we're busy, we may not
-be able to spend as much time on Transifex as we might want.
-
-Besides, if your feature request stands no chance of inclusion in Transifex, we
-won't ignore it -- we'll just close the ticket. So if your ticket is still
-open, it doesn't mean we're ignoring you; it just means we haven't had time to
-look at it yet.

docs/plaintext/faq/general.txt

-.. _faq-general:
-
-.. #TODO: Fill these Qs with answers. 
-
-FAQ: General
-============
-
-Why does this project exist?
-----------------------------
-
-
-What does "Transifex" mean, and how do you pronounce it?
---------------------------------------------------------
-
-
-Who's behind this?
-------------------
-
-
-Which sites use Django?
------------------------
-
-
-<L10n Platform X> does <feature Y> -- why doesn't Transifex?
-------------------------------------------------------------
-
-
-Is Transifex a complete Localization platform?
-----------------------------------------------
-
-
-How can I download the Transifex documentation to read it offline?
-------------------------------------------------------------------
-
-The Transifex docs are available in the ``docs`` directory of each Transifex
-tarball release. These docs are in ReST (ReStructured Text) format, and each
-text file corresponds to a Web page on the official Django site.
-
-Because the documentation is `stored in revision control`_, you can browse
-documentation changes just like you can browse code changes.
-
-Technically, the docs on Transifex's site are generated from the latest
-development versions of those ReST documents, so the docs on the Transifex
-site may offer more information than the docs that come with the latest
-Transifex release.
-
-.. _stored in revision control: http://code.transifex.org/

docs/plaintext/faq/index.txt

-.. _faq-index:
-
-=============
-Transifex FAQ
-=============
-
-.. toctree::
-   :maxdepth: 2
-   
-   general
-   usage
-   contributing

docs/plaintext/faq/usage.txt

-.. _faq-usage:
-
-FAQ: Using Transifex
-====================
-
-Why do I get an error when ...
--------------------------------
-

docs/plaintext/glossary.txt

-.. _glossary:
-
-========
-Glossary
-========
-
-.. glossary::
-
-    
-    I18n
-        I18n is the common abbreviation for Internationalization.
-
-    Internationalization
-        Internationalization is the process of designing a software application
-        so that it can be adapted to various languages and regions without
-        engineering changes.
-
-    L10n
-        L10N is the common abbreviation for Localization.
-        
-    Localization
-        Localization is the process of adapting software for a specific region or language by adding locale-specific components and translating text.    
-        
-    project
-        A project in Transifex represents a software package which is usually
-        stored on a VCS repository. A project repository might include
-        multiple translatable resources like documentation and UI, and also
-        ship multiple branches of its code.
-
-    slug
-        A short label for something, containing only letters, numbers,
-        underscores or hyphens. They're generally used in URLs. For
-        example, in a typical Transifex project URL:
-        
-        .. parsed-literal::
-        
-            http://www.transifex.net/**anaconda**/
-            
-        the last bit (``anaconda``) is the slug.
-
-    VCS
-        A Version Control System (also known as source control/code management)
-        is a system used to manage multiple revisions of the same unit of
-        information. Examples of VCS systems include Bazaar, CVS, Git,
-        Mercurial and Subversion.
-
-        

docs/plaintext/index.txt

-.. _index:
-
-=========================
- Transifex documentation
-=========================
-
-.. rubric:: Welcome to the documentation of Transifex, the open localization platform.
-
-:Version: |version|
-:Release: |release|
-:Date: |today|
-
-
-Transifex is a modern, open-source localization platform. It's a web system
-which automates the translation workflow of complex international projects.
-
-To use Transifex, visit Transifex.net_, our one-stop, batteries-included
-service managing the translations of numerous independent projects, without the
-worry of deploying one's own instance, growing a community and managing the
-infrastructure.
-
-
-Getting started
-===============
-
-:ref:`Overview <intro-overview>`
-    Learn what Transifex is all about.
-
-:ref:`Installation Guide <intro-install>`
-    Get Transifex installed on your computer.
-
-:ref:`Running Transifex <intro-running>`
-    How to setup your service and keep it running. 
-
-:ref:`FAQ <faq-general>`
-    Frequently Asked Questions. And answers of course. 
-
-
-Development
-===========
-
-:ref:`Releases <releases-index>`
-    See what is and was new in each release of Transifex.
-
-:ref:`Transifex applications <modules-index>`
-    Dig around the Transifex applications and API.
-
-:ref:`Credits <intro-credits>`
-    Who's behind Transifex?
-
-The full documentation for development and contributing to Transifex can be
-found at the Development wiki, at http://trac.transifex.org/wiki/Development.
-
-Indices, glossary and tables
-============================
-
-.. toctree::
-   :maxdepth: 1
-   
-   contents
-   glossary
- 
-* :ref:`genindex`
-* :ref:`modindex`
-  
-   
-Getting help
-============
-
-Having trouble? We'd like to help!
-
-* Try the :ref:`FAQ <faq-index>` -- it's got answers to many common questions.
-
-* Looking for specific information? Try the :ref:`genindex`, :ref:`modindex` or
-  the :ref:`detailed table of contents <contents>`.
-
-* Search for information in the `archives of the transifex-devel mailing list`_,
-  or `post a question`_.
-
-* Ask a question in the `#transifex IRC channel`_.
-
-* Report bugs with Transifex in our `ticket tracker`_.
-
-
-.. _archives of the transifex-devel mailing list: http://groups.google.com/group/transifex-devel/
-.. _post a question: http://groups.google.com/group/transifex-devel/
-.. _#transifex IRC channel: irc://irc.freenode.net/transifex
-.. _ticket tracker: http://transifex.org/
-.. _Transifex.net: http://www.transifex.net/

docs/plaintext/intro/credits.txt

-.. _intro-credits:
-
-=======
-Credits
-=======
-
-
-Information about the crew behind Transifex can be found at:
-
-* http://transifex.org/wiki/Development/Crew 
-
-Thanks to everyone who contributed code for Transifex.
-In addition, a big 'Thanks!' to:
-
-* Google, for its exciting 'Summer of Code' program
-* The Fedora Project, for its amazing people
-* GNOME, for the 'damned lies' translation statistics program
-* Luke Macken's bodhi update system, used extensively as a reference point
-* Conference organizers for giving the chance to spread the word
-* Everyone who provided feedback and ideas for improvement

docs/plaintext/intro/index.txt

-.. _intro-index:
-
-Getting started
-===============
-
-.. toctree::
-   :maxdepth: 1
-   
-   overview 
-   install
-   running
-   credits

docs/plaintext/intro/install.txt

-.. _intro-install:
-
-====================
- Installation Guide
-====================
-
-
-Before you can use Transifex, you'll need to get it installed. This guide 
-will guide you to a simple, minimal installation that'll work while you 
-walk through the introduction.
-
-To avoid spending too much time talking about packaging systems, this guide
-is based on yum and Fedora. You can substitute those commands with your own
-distribution's packaging system commands.
-
-
-First things first
-==================
-
-
-Who should consider installing Transifex?
------------------------------------------
-
-Good question!
-
-Transifex is a web system for managing complex translation projects and serving
-files to a community of translators. You can see it live at
-Transifex.net_, our hosted, upstream version of Transifex common for any
-project which chooses to start receiving translations in a snap. This instance
-is managed by Indifex_, the company sponsoring the development of Transifex.
-
-So, who would be interested in installing Transifex on their systems?
-
-
-Project maintainers
-~~~~~~~~~~~~~~~~~~~
-
-If you're the administrator of a project or community, then you need to decide
-whether you would like to setup your own, self-hosted instance of Transifex,
-or use an upstream, hosted one such as Transifex.net_ or one of the other
-`public servers`_ available.
-
-The users who usually consider installing their own instance are communities
-with lots of projects (hundreds) and complex translation workflows. This
-translates in setting up Tx on one's own servers and growing a local community
-of translators instead of using an upstream pool of translators. This choice
-gives control and freedom to manage the server, however it implies an isolated
-translation community and higher maintenance costs.
-
-The alternative of a self-managed version is using a common, hosted instance.
-This allows the sharing of a larger translation community, lower management
-overhead, and sometimes some extra features available there.
-
-Translators
-~~~~~~~~~~~
-
-If you're a translator, you're probably *not* interested in installing
-Transifex itself. Transifex serves the purpose of the *server*: It distributes
-translations pulled from a number of upstream projects to people. Currently,
-you can interact with Transifex using your every-day browser, and there is
-no specialized Transifex client you can install. 
-
-Now that we've made clear who we're talking with, let's proceed in explaining
-how a private installation of Transifex can be set  up.
-
-
-I'm ultra hardcore. Give me just the gist!
-==========================================
-
-The following is what a set of super-fast installation instructions would look
-like (run as root or under ``sudo``)::
-
-    yum install python python-setuptools python-imaging
-    yum install cvs subversion pysvn mercurial git bzr bzrtools python-urlgrabber
-    easy_install transifex
-    
-
-Please note that the above might eventually end up missing something compared
-to the full instructions below.
-
-
-Installing Basic Dependencies
-=============================
-
-Python
-------
-
-Being a Python tool, Transifex requires Python. We recommend 
-installing Python 2.5 or later.
-
-You can get Python at http://www.python.org/, or from your favorite
-distribution. If you're running Linux or Mac OS X,  you probably already have
-it already installed.
-
-You can verify that Python's installed by typing ``python`` from your 
-shell. You should see something like::
-
-    Python 2.5.1 (r251:54863, Jun 15 2008, 18:24:51)
-    [GCC 4.3.0 20080428 (Red Hat 4.3.0-8)] on linux2
-    Type "help", "copyright", "credits" or "license" for more information.
-    >>>
-
-A note on ``PythonPath``
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-These applications can be installed anywhere on your system, as long as Python
-can find them. Python uses the ``PythonPath`` environment variable for this.
-The value you use for ``PythonPath`` should include the parent directories of
-all the modules you are going to import in your application. It should also
-include the parent directory of Transifex itself.
-This is exactly the same situation as
-setting the Python path for interactive usage. Whenever you try to import
-something, Python will run through all the directories in ``sys.path`` in turn,
-from first to last, and try to import from each directory until one succeeds.
-
-An example might make this clearer. Suppose you have some applications under
-``/usr/local/django-apps/`` (for example, ``/usr/local/django-apps/weblog/`` and
-so forth), your settings file is at ``/var/www/mysite/settings.py`` and you have
-specified DJANGO_SETTINGS_MODULE_ as in the above
-example. In this case, you would need to write your ``PythonPath`` directive
-as::
-
-    PythonPath "['/usr/local/django-apps/', '/var/www'] + sys.path"
-
-With this path, ``import weblog`` and ``import mysite.settings`` will both
-work. If you had ``import blogroll`` in your code somewhere and ``blogroll``
-lived under the ``weblog/`` directory, you would *also* need to add
-``/usr/local/django-apps/weblog/`` to your ``PythonPath``. Remember: the
-**parent directories** of anything you import directly must be on the Python
-path.
-
-
-Version Control Systems
------------------------
-
-To run Transifex you probably need some versioning systems. By default
-Transifex only requires Mercurial (hg). Depending of which ones you want to
-use, you will need to install some of the following packages:
-
-* Bazaar (bzr)
-* CVS (cvs)
-* Git (git)
-* Mercurial (hg)
-* Subversion (svn)
-
-Since the above are probably available from your distribution, you can use
-its own tools to install them. On Fedora you can run the following command::
-
-    yum install cvs subversion pysvn mercurial git bzr bzrtools 
-
-If you're enabling the tarball support, you also need 'urlgrabber'::
-
-    yum install python-urlgrabber
-
-
-Installing Transifex
-====================
-
-There are three basic ways to install Transifex:
-
-* Using Python's packaging tools (stable version)
-* Using your distribution's packaging tools (stable version)
-* Pulling directly from our development repository (stable and development
-  versions)
-
-
-Install using Python's setuptools
----------------------------------
-
-Probably the easiest way to install Transifex is by using Python's common
-packaging tools. Since Tx is registered on the Python Packaging Index and
-has defined its own Python dependencies, using this method to install all the
-required software is quite easy.
-
-First off, you'll need the following packages installed::
-
-    yum install python-setuptools python-imaging
-
-.. note::
-
-    If ``python-imaging`` isn't available in your packaging system, just install
-    ``gcc`` and the following command will pull and auto-compile this package for
-    you. 
-
-By default, ``easy_install`` installs the software in your system's standard
-Python packages directory (eg. ``/usr/lib/python2.5/site-packages/transifex``).
-If you want to do this, running the following as root or with sudo, should
-do the trick::
-
-    easy_install transifex
-
-
-Using a virtual environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Alternatively, you can setup a virtual environment using ``virtualenv``, and
-isolate your Transifex installation in its own "shell". This is particularly
-useful for testing Tx, for "freezing" Tx's dependencies, and, your best choice
-if you don't have root access on the system.
-
-A set of commands similar to the following will create a virtual environment
-in the current directory and install Transifex in there::
-
-    sudo easy_install virtualenv    # or: sudo [yum] install virtualenv
-    virtualenv txenv                # create the environment
-    source txenv/bin/activate       # switch in using it
-    easy_install transifex          # nstall Tx in the virtual env
-
-For more information on this way of installing Tx, please refer to the
-documentation of virtualenv itself.
-
-If you've already installed the non-Python dependencies (like some of the
-versioning systems you might use) mentioned in the previous sections, you could
-jump to the `Initial configuration`_ section to proceed in configuring your
-setup.
-
-
-Install using your distribution's tools
----------------------------------------
-
-Transifex has been packaged in a number of Linux distributions. You can check
-your distribution's packaging system to see if it is available in yours::
-
-    $ yum info transifex
-    Available Packages
-    Name       : transifex
-    Arch       : noarch
-    Summary    : A system for distributed translation submissions
-    URL        : http://transifex.org/
-    License    : GPLv2
-    Description: Transifex is a web-system that facilitates the process of submitting
-               : translations in remote and disparate version control systems (VCS).
-
-If Transifex is available for your distribution, you can proceed by installing
-it just like any other package. In the case of Fedora, the software is split
-in two packages, and can be installed as follows::
-
-    yum install transifex transifex-extras
-
-To configure your setup, proceed to the `Initial configuration`_ section. 
-
-
-Install manually
-----------------
-
-You can get the source code in a number of ways.
-
-
-Getting a stable version
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Stable releases are available from the following location(s), in addition to
-alpha, beta, and release candidates:
-
-- http://transifex.org/files/
-- http://pypi.python.org/pypi/transifex
-
-Tarball are source packages, whereas eggs are binary distributions for a
-specific version of Python.
-
-
-Getting a development version
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Our development tree is kept pretty stable at all times. This is achieved by
-reviewing patches before they are submitted, and by having very few core
-committers. However, you should keep in mind that while the code is stable,
-the database schema isn't. During the development of a major release, the
-DB structure (Django models) change rapidly, so you'll need to evolve your
-schema quite often using our out-of-the-box migrations.
-
-Knowing the above, feel free to jump right in and install a development
-version from our Mercurial repo and enjoy our newest and greatest features.
-
-The current development version of Transifex can be fetched by cloning the
-mainline repository::
-
-    hg clone http://code.transifex.org/mainline transifex
-
-From here you can also switch to stable versions, which are tagged
-appropriately::
-
-    cd transifex
-    hg tags
-    hg update <tag>
-
-To grab a branched development version of Transifex, you can navigate to
-http://code.transifex.org/ to see the active branches. 
-
-
-Install dependencies
-~~~~~~~~~~~~~~~~~~~~
-
-Django
-::::::
-
-Transifex is developed on top of a Python Web Framework called Django. We 
-recommend installing the latest version of Django, but anything above 1.2
-should do. You can get more information about how to install Django on
-your system from the official Django documentation.
-
-Usually you can use the package your distribution provides you::
-
-    yum install Django
-
-
-.. _install-django-deps:
-
-Python dependencies
-:::::::::::::::::::
-
-This is the generic method for creating a development environment for
-Transifex. We strongly suggest running those commands inside a virtualenv
-environment instead of running them as root. For an example of a Virtualenv
-setup, take a look at the `Virtualenv example`_ wiki page. You can also
-install some of these dependencies as packages in your distribution, if they
-are available.
-
-.. code-block:: bash
-
-    easy_install Markdown httplib2 pygments>=1.0 polib>=0.5.4
-    easy_install pygooglechart
-    easy_install django-pagination django-notification django-authority \
-      django-piston south>=0.7.2 django-sorting django-filter django-staticfiles \
-      django-addons python-magic
-    easy_install -f http://transifex.org/files/deps/ contact_form \
-      django-tagging userprofile django-ajax-selects \
-      django-threadedcomments>=0.9
-    easy_install -f http://effbot.org/downloads/ Imaging==1.1.6
-
-Non-Python dependencies (like versioning systems) need to be installed with
-traditional ways (like your system's packaging mechanism).
-
-
-Translation-specific packages
-:::::::::::::::::::::::::::::
-
-Transifex requires a couple of standard packages to support translations.
-Currently these are the following:
-
-* gettext (standard Internationalization library)
-* intltool (for dynamic ``POT``-file generation)
-
-On Fedora you can run::
-
-    yum install gettext intltool
-
-
-Initial configuration
-=====================
-
-
-Initialize the database
------------------------
-
-After you have all dependencies and packages installed, the Transifex 
-installation should be very simple. Customize ``settings/*.conf`` and
-``urls.py`` to accommodate your server's needs.
-
-To enable Transifex's notifications you'll need to switch the relevant setting
-called ENABLE_NOTICES to ``True``.
-
-To have your widget code viewable from outside your transifex instance you have
-to set your ``STATIC_URL`` variable to an absolute URL (by using relative paths
-you can still view the widgets on your own installation)
-
-.. note::
- 
-    Ensure the database server defined in the settings files is properly
-    configured and running, and that your selected database is using UTF-8.
-    Depending on the backend, this is achieved in different ways; for example,
-    in MySQl, you might want to modify ``my.cnf`` or create the database with
-    a command similar to the following:
-    
-    .. code-block:: sql
-
-        CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-    For more information refer to the Django Documentation Section
-    "`Creating the database`_".
-
-Once you're done configuring, run inside the project directory::
-
-    ./manage.py txcreatedirs        # Create necessary directories
-    ./manage.py syncdb              # Setup DB tables, create superuser
-    ./manage.py migrate             # Setup more DB tables
-    ./manage.py txcreatelanguages   # Create a standard set of languages
-    ./manage.py txcreatenoticetypes # Create a standard set of notice types
-    ./manage.py build_static        # Copy all the addons files to the static dir
-    ./manage.py runserver 8088      # Start the development server
-
-The first command will create the necessary directories on the disk. Note that
-the user you're running the software as, needs to have write access to these
-directories (check out your configuration files to see what these are).
-
-``syncdb`` will create the database tables, and ask you to create an admin user
-(superuser), who will have access to the admin panel. The latter is by default
-accessible through ``/admin/``, something you can customize by modifying the
-file ``transifex/urls.py``.
-
-Now, you can fire up your browser at ``http://localhost:8088/``, grab a cup of
-coffee and lean back.
-
-    
-Import some data
-----------------
-
-Transifex uses the fixtures feature of Django to load some initial data in the
-database. The following commands require you having run ``./manage.py syncdb``
-at least once before in order for the database tables to exist.
-
-The following commands loads a bunch of sample data to play around with.
-
-.. code-block:: bash
-
-    ./manage.py loaddata txcommon/fixtures/sample_data.json
-    ./manage.py loaddata txcommon/fixtures/sample_users.json
-
-The last command created two users: 'guest' and 'editor'. The 'guest' has the
-basic rights of a logged-in user of the site, while the 'editor' account has
-more advanced privileges like modifying projects, etc. Together with the 'admin'
-user created with the 'syncdb' step above, you should have 3 accounts now, each
-with its own access level.
-
-You can now fire up your browser to check out the newly imported data.
-
-Note that the registered projects have not been actually checked out by
-Transifex yet. To have translation files downloaded and fresh statistics
-produced, run a fresh checkout::
-
-    ./manage.py txstatsrefresh
-
-This command is usually used in a cronjob to refresh Transifex's cache and
-translation statistics every once in a while for translators.
-
-
-Internationalization (i18n) support
------------------------------------
-
-To be able to use Transifex with a localized interface, it is necessary to
-create the translations objects files (.mo) using one of the following commands,
-for example:
-    
-.. code-block:: bash
-
-    ./manage.py txcompilemessages -l pt_BR
-    or
-    ./manage.py txcompilemessages
-
-At this point you're ready to read about :ref:`running Transifex <intro-running>`
-to proceed to further customization of your instance.
-
-
-Debugging
-=========
-
-Debugging is enabled through a separate ``SETTINGS`` file, which enables some
-additional applications and features. Some of these additional applications
-might require installation using ``easy_install``, but you can enable any
-number you want by editing the ``settings_debug.py`` file.
-
-Some of these applications define their own models, so the first time you'll
-use the file, a 'syncdb' using that file will be needed to have the respective
-database tables created::
-  
-    ./manage.py syncdb --settings settings_debug
-
-From that point on, you can run the debug server as follows::
-
-    ./manage.py runserver --settings settings_debug
-    
-
-Testing
-=======
-
-For testing the whole project you can run::
-
-    ./manage.py test
-
-For testing a specific application inside Transifex you can run::
- 
-    ./manage.py test projects
-
-Alternatively, by installing the ``django-nose`` package, the following command
-can prove useful::
-
-    nosetests --with-django <location-of-test-file>
-
-
-.. _public servers: http://transifex.org/wiki/ProjectsUsingTransifex
-.. _Transifex.net: http://www.transifex.net/
-.. _Indifex: http://www.indifex.com/
-.. _DJANGO_SETTINGS_MODULE: http://docs.djangoproject.com/en/dev/topics/settings/#django-settings-module
-.. _`Virtualenv example`: http://transifex.org/wiki/Development/InstallationOnCentOS_VirtualEnv
-.. _`Creating the database`: http://docs.djangoproject.com/en/dev/ref/unicode/#creating-the-database

docs/plaintext/intro/overview.txt

-.. _intro-overview:
-
-==========
- Overview
-==========
-
-.. rubric:: "Help people read in their native language."
-
-
-Transifex is a modern, open-source localization platform. It's a web system
-which automates the translation workflow of complex international projects.
-
-Transifex helps projects work with an open community of translators to make
-their product available to a global audience. It helps software developers,
-documentation writers and webmasters globalize their products (or localize,
-depending on how one chooses to see the process) by openly receiving
-translations from a wide community via a dead-simple, batteries-included set
-of tools, which integrate well with existing workflows.
-
-
-Goals
-=====
-
-Some of the core goals of Transifex are the following:
-
-* Provide an interface for translators to submit translations to multiple 
-  projects, regardless of the type of the underlying VCS.
-* Reduce the overhead a project maintainer usually undertakes to 
-  administrate accounts for translators.
-* Help translators do more by eliminating the need to subscribe to each 
-  VCS and learn its commands and tricks.
-* Encourage collaboration between developers and maintainers and 
-  thus, increase the language coverage of the participant projects.
-
-
-Transifex.net
-=============
-
-Projects with a significant size, such as the Fedora or Moblin distributions,
-can benefit with a self-hosted Transifex instance. Most other projects though
-will probably want to use one which already has an established community and
-the necessary tools to help the project get translated.
-
-Transifex.net_ is a one-stop, batteries-included service which serves
-translations to independent projects, which don't have to worry about deploying
-their own instance, growing a community and managing the infrastructure.
-Transifex.net is managed by Indifex_, the company sponsoring the development
-of Transifex itself.
-
-
-More information