Sophie

Sophie

distrib > Fedora > 13 > x86_64 > by-pkgid > e4bbdaa133bf14de79621d7fdfa39df4 > files > 133

transifex-0.9.1-1.fc13.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Installation Guide &mdash; Transifex v0.9.1 documentation</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '0.9.1',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="top" title="Transifex v0.9.1 documentation" href="../index.html" />
    <link rel="up" title="Getting started" href="index.html" />
    <link rel="next" title="Running Transifex" href="running.html" />
    <link rel="prev" title="Overview" href="overview.html" /> 
  </head>
  <body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../index.html">Transifex v0.9.1 documentation</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../index.html">Home</a>  |
        <a title="Table of contents" href="../contents.html">Table of contents</a>  |
        <a title="Global index" href="../genindex.html">Index</a>  |
        <a title="Search" href="../modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="overview.html" title="Overview">previous</a> 
     |
    <a href="../contents.html" title="Table of Contents" accesskey="U">up</a>
   |
    <a href="running.html" title="Running Transifex">next</a> &raquo;</div>
    </div>
    
    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="intro-install">
            
  <div class="section" id="installation-guide">
<span id="intro-install"></span><h1>Installation Guide<a class="headerlink" href="#installation-guide" title="Permalink to this headline">¶</a></h1>
<p>Before you can use Transifex, you&#8217;ll need to get it installed. This guide
will guide you to a simple, minimal installation that&#8217;ll work while you
walk through the introduction.</p>
<p>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&#8217;s packaging system commands.</p>
<div class="section" id="first-things-first">
<h2>First things first<a class="headerlink" href="#first-things-first" title="Permalink to this headline">¶</a></h2>
<div class="section" id="who-should-consider-installing-transifex">
<h3>Who should consider installing Transifex?<a class="headerlink" href="#who-should-consider-installing-transifex" title="Permalink to this headline">¶</a></h3>
<p>Good question!</p>
<p>Transifex is a web system for managing complex translation projects and serving
files to a community of translators. You can see it live at
<a class="reference external" href="http://www.transifex.net/">Transifex.net</a>, our hosted, upstream version of Transifex common for any
project which chooses to start receiving translations in a snap. This instance
is managed by <a class="reference external" href="http://www.indifex.com/">Indifex</a>, the company sponsoring the development of Transifex.</p>
<p>So, who would be interested in installing Transifex on their systems?</p>
<div class="section" id="project-maintainers">
<h4>Project maintainers<a class="headerlink" href="#project-maintainers" title="Permalink to this headline">¶</a></h4>
<p>If you&#8217;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 <a class="reference external" href="http://www.transifex.net/">Transifex.net</a> or one of the other
<a class="reference external" href="http://transifex.org/wiki/ProjectsUsingTransifex">public servers</a> available.</p>
<p>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&#8217;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.</p>
<p>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.</p>
</div>
<div class="section" id="translators">
<h4>Translators<a class="headerlink" href="#translators" title="Permalink to this headline">¶</a></h4>
<p>If you&#8217;re a translator, you&#8217;re probably <em>not</em> interested in installing
Transifex itself. Transifex serves the purpose of the <em>server</em>: 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.</p>
<p>Now that we&#8217;ve made clear who we&#8217;re talking with, let&#8217;s proceed in explaining
how a private installation of Transifex can be set  up.</p>
</div>
</div>
</div>
<div class="section" id="i-m-ultra-hardcore-give-me-just-the-gist">
<h2>I&#8217;m ultra hardcore. Give me just the gist!<a class="headerlink" href="#i-m-ultra-hardcore-give-me-just-the-gist" title="Permalink to this headline">¶</a></h2>
<p>The following is what a set of super-fast installation instructions would look
like (run as root or under <tt class="docutils literal"><span class="pre">sudo</span></tt>):</p>
<div class="highlight-python"><pre>yum install python python-setuptools python-imaging
yum install cvs subversion pysvn mercurial git bzr bzrtools python-urlgrabber
easy_install transifex</pre>
</div>
<p>Please note that the above might eventually end up missing something compared
to the full instructions below.</p>
</div>
<div class="section" id="installing-basic-dependencies">
<h2>Installing Basic Dependencies<a class="headerlink" href="#installing-basic-dependencies" title="Permalink to this headline">¶</a></h2>
<div class="section" id="python">
<h3>Python<a class="headerlink" href="#python" title="Permalink to this headline">¶</a></h3>
<p>Being a Python tool, Transifex requires Python. We recommend
installing Python 2.5 or later.</p>
<p>You can get Python at <a class="reference external" href="http://www.python.org/">http://www.python.org/</a>, or from your favorite
distribution. If you&#8217;re running Linux or Mac OS X,  you probably already have
it already installed.</p>
<p>You can verify that Python&#8217;s installed by typing <tt class="docutils literal"><span class="pre">python</span></tt> from your
shell. You should see something like:</p>
<div class="highlight-python"><pre>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.
&gt;&gt;&gt;</pre>
</div>
<div class="section" id="a-note-on-pythonpath">
<h4>A note on <tt class="docutils literal"><span class="pre">PythonPath</span></tt><a class="headerlink" href="#a-note-on-pythonpath" title="Permalink to this headline">¶</a></h4>
<p>These applications can be installed anywhere on your system, as long as Python
can find them. Python uses the <tt class="docutils literal"><span class="pre">PythonPath</span></tt> environment variable for this.
The value you use for <tt class="docutils literal"><span class="pre">PythonPath</span></tt> 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 <tt class="docutils literal"><span class="pre">sys.path</span></tt> in turn,
from first to last, and try to import from each directory until one succeeds.</p>
<p>An example might make this clearer. Suppose you have some applications under
<tt class="docutils literal"><span class="pre">/usr/local/django-apps/</span></tt> (for example, <tt class="docutils literal"><span class="pre">/usr/local/django-apps/weblog/</span></tt> and
so forth), your settings file is at <tt class="docutils literal"><span class="pre">/var/www/mysite/settings.py</span></tt> and you have
specified <a class="reference external" href="http://docs.djangoproject.com/en/dev/topics/settings/#django-settings-module">DJANGO_SETTINGS_MODULE</a> as in the above
example. In this case, you would need to write your <tt class="docutils literal"><span class="pre">PythonPath</span></tt> directive
as:</p>
<div class="highlight-python"><pre>PythonPath "['/usr/local/django-apps/', '/var/www'] + sys.path"</pre>
</div>
<p>With this path, <tt class="docutils literal"><span class="pre">import</span> <span class="pre">weblog</span></tt> and <tt class="docutils literal"><span class="pre">import</span> <span class="pre">mysite.settings</span></tt> will both
work. If you had <tt class="docutils literal"><span class="pre">import</span> <span class="pre">blogroll</span></tt> in your code somewhere and <tt class="docutils literal"><span class="pre">blogroll</span></tt>
lived under the <tt class="docutils literal"><span class="pre">weblog/</span></tt> directory, you would <em>also</em> need to add
<tt class="docutils literal"><span class="pre">/usr/local/django-apps/weblog/</span></tt> to your <tt class="docutils literal"><span class="pre">PythonPath</span></tt>. Remember: the
<strong>parent directories</strong> of anything you import directly must be on the Python
path.</p>
</div>
</div>
<div class="section" id="version-control-systems">
<h3>Version Control Systems<a class="headerlink" href="#version-control-systems" title="Permalink to this headline">¶</a></h3>
<p>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:</p>
<ul class="simple">
<li>Bazaar (bzr)</li>
<li>CVS (cvs)</li>
<li>Git (git)</li>
<li>Mercurial (hg)</li>
<li>Subversion (svn)</li>
</ul>
<p>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:</p>
<div class="highlight-python"><pre>yum install cvs subversion pysvn mercurial git bzr bzrtools</pre>
</div>
<p>If you&#8217;re enabling the tarball support, you also need &#8216;urlgrabber&#8217;:</p>
<div class="highlight-python"><pre>yum install python-urlgrabber</pre>
</div>
</div>
</div>
<div class="section" id="installing-transifex">
<h2>Installing Transifex<a class="headerlink" href="#installing-transifex" title="Permalink to this headline">¶</a></h2>
<p>There are three basic ways to install Transifex:</p>
<ul class="simple">
<li>Using Python&#8217;s packaging tools (stable version)</li>
<li>Using your distribution&#8217;s packaging tools (stable version)</li>
<li>Pulling directly from our development repository (stable and development
versions)</li>
</ul>
<div class="section" id="install-using-python-s-setuptools">
<h3>Install using Python&#8217;s setuptools<a class="headerlink" href="#install-using-python-s-setuptools" title="Permalink to this headline">¶</a></h3>
<p>Probably the easiest way to install Transifex is by using Python&#8217;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.</p>
<p>First off, you&#8217;ll need the following packages installed:</p>
<div class="highlight-python"><pre>yum install python-setuptools python-imaging</pre>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If <tt class="docutils literal"><span class="pre">python-imaging</span></tt> isn&#8217;t available in your packaging system, just install
<tt class="docutils literal"><span class="pre">gcc</span></tt> and the following command will pull and auto-compile this package for
you.</p>
</div>
<p>By default, <tt class="docutils literal"><span class="pre">easy_install</span></tt> installs the software in your system&#8217;s standard
Python packages directory (eg. <tt class="docutils literal"><span class="pre">/usr/lib/python2.5/site-packages/transifex</span></tt>).
If you want to do this, running the following as root or with sudo, should
do the trick:</p>
<div class="highlight-python"><pre>easy_install transifex</pre>
</div>
<div class="section" id="using-a-virtual-environment">
<h4>Using a virtual environment<a class="headerlink" href="#using-a-virtual-environment" title="Permalink to this headline">¶</a></h4>
<p>Alternatively, you can setup a virtual environment using <tt class="docutils literal"><span class="pre">virtualenv</span></tt>, and
isolate your Transifex installation in its own &#8220;shell&#8221;. This is particularly
useful for testing Tx, for &#8220;freezing&#8221; Tx&#8217;s dependencies, and, your best choice
if you don&#8217;t have root access on the system.</p>
<p>A set of commands similar to the following will create a virtual environment
in the current directory and install Transifex in there:</p>
<div class="highlight-python"><pre>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</pre>
</div>
<p>For more information on this way of installing Tx, please refer to the
documentation of virtualenv itself.</p>
<p>If you&#8217;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 <a class="reference internal" href="#initial-configuration">Initial configuration</a> section to proceed in configuring your
setup.</p>
</div>
</div>
<div class="section" id="install-using-your-distribution-s-tools">
<h3>Install using your distribution&#8217;s tools<a class="headerlink" href="#install-using-your-distribution-s-tools" title="Permalink to this headline">¶</a></h3>
<p>Transifex has been packaged in a number of Linux distributions. You can check
your distribution&#8217;s packaging system to see if it is available in yours:</p>
<div class="highlight-python"><pre>$ 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).</pre>
</div>
<p>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:</p>
<div class="highlight-python"><pre>yum install transifex transifex-extras</pre>
</div>
<p>To configure your setup, proceed to the <a class="reference internal" href="#initial-configuration">Initial configuration</a> section.</p>
</div>
<div class="section" id="install-manually">
<h3>Install manually<a class="headerlink" href="#install-manually" title="Permalink to this headline">¶</a></h3>
<p>You can get the source code in a number of ways.</p>
<div class="section" id="getting-a-stable-version">
<h4>Getting a stable version<a class="headerlink" href="#getting-a-stable-version" title="Permalink to this headline">¶</a></h4>
<p>Stable releases are available from the following location(s), in addition to
alpha, beta, and release candidates:</p>
<ul class="simple">
<li><a class="reference external" href="http://transifex.org/files/">http://transifex.org/files/</a></li>
<li><a class="reference external" href="http://pypi.python.org/pypi/transifex">http://pypi.python.org/pypi/transifex</a></li>
</ul>
<p>Tarball are source packages, whereas eggs are binary distributions for a
specific version of Python.</p>
</div>
<div class="section" id="getting-a-development-version">
<h4>Getting a development version<a class="headerlink" href="#getting-a-development-version" title="Permalink to this headline">¶</a></h4>
<p>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&#8217;t. During the development of a major release, the
DB structure (Django models) change rapidly, so you&#8217;ll need to evolve your
schema quite often using our out-of-the-box migrations.</p>
<p>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.</p>
<p>The current development version of Transifex can be fetched by cloning the
mainline repository:</p>
<div class="highlight-python"><pre>hg clone http://code.transifex.org/mainline transifex</pre>
</div>
<p>From here you can also switch to stable versions, which are tagged
appropriately:</p>
<div class="highlight-python"><pre>cd transifex
hg tags
hg update &lt;tag&gt;</pre>
</div>
<p>To grab a branched development version of Transifex, you can navigate to
<a class="reference external" href="http://code.transifex.org/">http://code.transifex.org/</a> to see the active branches.</p>
</div>
<div class="section" id="install-dependencies">
<h4>Install dependencies<a class="headerlink" href="#install-dependencies" title="Permalink to this headline">¶</a></h4>
<div class="section" id="django">
<h5>Django<a class="headerlink" href="#django" title="Permalink to this headline">¶</a></h5>
<p>Transifex is developed on top of a Python Web Framework called Django. We
recommend installing the latest version of Django, but anything above 1.1
should do. You can get more information about how to install Django on
your system from the official Django documentation.</p>
<p>Usually you can use the package your distribution provides you:</p>
<div class="highlight-python"><pre>yum install Django</pre>
</div>
</div>
<div class="section" id="python-dependencies">
<span id="install-django-deps"></span><h5>Python dependencies<a class="headerlink" href="#python-dependencies" title="Permalink to this headline">¶</a></h5>
<p>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 <a class="reference external" href="http://transifex.org/wiki/Development/InstallationOnCentOS_VirtaualEnv">Virtualenv example</a> wiki page. You can also
install some of these dependencies as packages in your distribution, if they
are available.</p>
<div class="highlight-bash"><div class="highlight"><pre>easy_install Markdown httplib2 pygments&gt;<span class="o">=</span>1.0 polib&gt;<span class="o">=</span>0.5.1
easy_install pygooglechart
easy_install django-pagination django-notification django-authority <span class="se">\</span>
  django-piston south&gt;<span class="o">=</span>0.7 django-sorting django-filter django-staticfiles <span class="se">\</span>
  django-addons
easy_install -f http://transifex.org/files/deps/ contact_form <span class="se">\</span>
  django-tagging userprofile django-ajax-selects <span class="se">\</span>
  django-threadedcomments&gt;<span class="o">=</span>0.9
easy_install -f http://effbot.org/downloads/ <span class="nv">Imaging</span><span class="o">==</span>1.1.6
</pre></div>
</div>
<p>Non-Python dependencies (like versioning systems) need to be installed with
traditional ways (like your system&#8217;s packaging mechanism).</p>
</div>
<div class="section" id="translation-specific-packages">
<h5>Translation-specific packages<a class="headerlink" href="#translation-specific-packages" title="Permalink to this headline">¶</a></h5>
<p>Transifex requires a couple of standard packages to support translations.
Currently these are the following:</p>
<ul class="simple">
<li>gettext (standard Internationalization library)</li>
<li>intltool (for dynamic <tt class="docutils literal"><span class="pre">POT</span></tt>-file generation)</li>
</ul>
<p>On Fedora you can run:</p>
<div class="highlight-python"><pre>yum install gettext intltool</pre>
</div>
</div>
</div>
</div>
</div>
<div class="section" id="initial-configuration">
<h2>Initial configuration<a class="headerlink" href="#initial-configuration" title="Permalink to this headline">¶</a></h2>
<div class="section" id="initialize-the-database">
<h3>Initialize the database<a class="headerlink" href="#initialize-the-database" title="Permalink to this headline">¶</a></h3>
<p>After you have all dependencies and packages installed, the Transifex
installation should be very simple. Customize <tt class="docutils literal"><span class="pre">settings/*.conf</span></tt> and
<tt class="docutils literal"><span class="pre">urls.py</span></tt> to accommodate your server&#8217;s needs.</p>
<p>To enable Transifex&#8217;s notifications you&#8217;ll need to switch the relevant setting
called ENABLE_NOTICES to <tt class="xref docutils literal"><span class="pre">True</span></tt>.</p>
<p>To have your widget code viewable from outside your transifex instance you have
to set your <tt class="docutils literal"><span class="pre">STATIC_URL</span></tt> variable to an absolute URL (by using relative paths
you can still view the widgets on your own installation)</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p>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 <tt class="docutils literal"><span class="pre">my.cnf</span></tt> or create the database with
a command similar to the following:</p>
<div class="highlight-sql"><div class="highlight"><pre><span class="k">CREATE</span> <span class="k">DATABASE</span> <span class="n">db_name</span> <span class="k">DEFAULT</span> <span class="nb">CHARACTER</span> <span class="k">SET</span> <span class="n">utf8</span> <span class="k">COLLATE</span> <span class="n">utf8_general_ci</span><span class="p">;</span>
</pre></div>
</div>
<p class="last">For more information refer to the Django Documentation Section
&#8220;<a class="reference external" href="http://docs.djangoproject.com/en/dev/ref/unicode/#creating-the-database">Creating the database</a>&#8220;.</p>
</div>
<p>Once you&#8217;re done configuring, run inside the project directory:</p>
<div class="highlight-python"><pre>./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</pre>
</div>
<p>The first command will create the necessary directories on the disk. Note that
the user you&#8217;re running the software as, needs to have write access to these
directories (check out your configuration files to see what these are).</p>
<p><tt class="docutils literal"><span class="pre">syncdb</span></tt> 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 <tt class="docutils literal"><span class="pre">/admin/</span></tt>, something you can customize by modifying the
file <tt class="docutils literal"><span class="pre">transifex/urls.py</span></tt>.</p>
<p>Now, you can fire up your browser at <tt class="docutils literal"><span class="pre">http://localhost:8088/</span></tt>, grab a cup of
coffee and lean back.</p>
</div>
<div class="section" id="import-some-data">
<h3>Import some data<a class="headerlink" href="#import-some-data" title="Permalink to this headline">¶</a></h3>
<p>Transifex uses the fixtures feature of Django to load some initial data in the
database. The following commands require you having run <tt class="docutils literal"><span class="pre">./manage.py</span> <span class="pre">syncdb</span></tt>
at least once before in order for the database tables to exist.</p>
<p>The following commands loads a bunch of sample data to play around with.</p>
<div class="highlight-bash"><div class="highlight"><pre>./manage.py loaddata txcommon/fixtures/sample_data.json
./manage.py loaddata txcommon/fixtures/sample_users.json
</pre></div>
</div>
<p>The last command created two users: &#8216;guest&#8217; and &#8216;editor&#8217;. The &#8216;guest&#8217; has the
basic rights of a logged-in user of the site, while the &#8216;editor&#8217; account has
more advanced privileges like modifying projects, etc. Together with the &#8216;admin&#8217;
user created with the &#8216;syncdb&#8217; step above, you should have 3 accounts now, each
with its own access level.</p>
<p>You can now fire up your browser to check out the newly imported data.</p>
<p>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:</p>
<div class="highlight-python"><pre>./manage.py txstatsrefresh</pre>
</div>
<p>This command is usually used in a cronjob to refresh Transifex&#8217;s cache and
translation statistics every once in a while for translators.</p>
</div>
<div class="section" id="internationalization-i18n-support">
<h3>Internationalization (i18n) support<a class="headerlink" href="#internationalization-i18n-support" title="Permalink to this headline">¶</a></h3>
<p>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:</p>
<div class="highlight-bash"><div class="highlight"><pre>./manage.py txcompilemessages -l pt_BR
or
./manage.py txcompilemessages
</pre></div>
</div>
<p>At this point you&#8217;re ready to read about <a class="reference external" href="running.html#intro-running"><em>running Transifex</em></a>
to proceed to further customization of your instance.</p>
</div>
</div>
<div class="section" id="debugging">
<h2>Debugging<a class="headerlink" href="#debugging" title="Permalink to this headline">¶</a></h2>
<p>Debugging is enabled through a separete <tt class="docutils literal"><span class="pre">SETTINGS</span></tt> file, which enables some
additional applications and features. Some of these additional applications
might require installation using <tt class="docutils literal"><span class="pre">easy_install</span></tt>, but you can enable any
number you want by editing the <tt class="docutils literal"><span class="pre">settings_debug.py</span></tt> file.</p>
<p>Some of these applications define their own models, so the first time you&#8217;ll
use the file, a &#8216;syncdb&#8217; using that file will be needed to have the respective
database tables created:</p>
<div class="highlight-python"><pre>./manage.py syncdb --settings settings_debug</pre>
</div>
<p>From that point on, you can run the debug server as follows:</p>
<div class="highlight-python"><pre>./manage.py runserver --settings settings_debug</pre>
</div>
</div>
<div class="section" id="testing">
<h2>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h2>
<p>For testing the whole project you can run:</p>
<div class="highlight-python"><pre>./manage.py test</pre>
</div>
<p>For testing a specific application inside Transifex you can run:</p>
<div class="highlight-python"><pre>./manage.py test projects</pre>
</div>
<p>Alternatively, by installing the <tt class="docutils literal"><span class="pre">django-nose</span></tt> package, the following command
can prove useful:</p>
<div class="highlight-python"><pre>nosetests --with-django &lt;location-of-test-file&gt;</pre>
</div>
</div>
</div>


      <div class="nav">
    &laquo; <a href="overview.html" title="Overview">Overview</a> 
     |
    <a href="../contents.html" title="Table of Contents" accesskey="U">up</a>
   |
    <a href="running.html" title="Running Transifex">Running Transifex</a> &raquo;</div>
          </div>         
        </div>
      </div>
      
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../index.html">
              <img class="logo" src="../_static/transifex-logo.png" alt="Logo"/>
            </a></p>
            <h3><a href="../index.html">Table Of Contents</a></h3>
            <ul>
<li><a class="reference external" href="#">Installation Guide</a><ul>
<li><a class="reference external" href="#first-things-first">First things first</a><ul>
<li><a class="reference external" href="#who-should-consider-installing-transifex">Who should consider installing Transifex?</a><ul>
<li><a class="reference external" href="#project-maintainers">Project maintainers</a></li>
<li><a class="reference external" href="#translators">Translators</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference external" href="#i-m-ultra-hardcore-give-me-just-the-gist">I&#8217;m ultra hardcore. Give me just the gist!</a></li>
<li><a class="reference external" href="#installing-basic-dependencies">Installing Basic Dependencies</a><ul>
<li><a class="reference external" href="#python">Python</a><ul>
<li><a class="reference external" href="#a-note-on-pythonpath">A note on <tt class="docutils literal"><span class="pre">PythonPath</span></tt></a></li>
</ul>
</li>
<li><a class="reference external" href="#version-control-systems">Version Control Systems</a></li>
</ul>
</li>
<li><a class="reference external" href="#installing-transifex">Installing Transifex</a><ul>
<li><a class="reference external" href="#install-using-python-s-setuptools">Install using Python&#8217;s setuptools</a><ul>
<li><a class="reference external" href="#using-a-virtual-environment">Using a virtual environment</a></li>
</ul>
</li>
<li><a class="reference external" href="#install-using-your-distribution-s-tools">Install using your distribution&#8217;s tools</a></li>
<li><a class="reference external" href="#install-manually">Install manually</a><ul>
<li><a class="reference external" href="#getting-a-stable-version">Getting a stable version</a></li>
<li><a class="reference external" href="#getting-a-development-version">Getting a development version</a></li>
<li><a class="reference external" href="#install-dependencies">Install dependencies</a><ul>
<li><a class="reference external" href="#django">Django</a></li>
<li><a class="reference external" href="#python-dependencies">Python dependencies</a></li>
<li><a class="reference external" href="#translation-specific-packages">Translation-specific packages</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a class="reference external" href="#initial-configuration">Initial configuration</a><ul>
<li><a class="reference external" href="#initialize-the-database">Initialize the database</a></li>
<li><a class="reference external" href="#import-some-data">Import some data</a></li>
<li><a class="reference external" href="#internationalization-i18n-support">Internationalization (i18n) support</a></li>
</ul>
</li>
<li><a class="reference external" href="#debugging">Debugging</a></li>
<li><a class="reference external" href="#testing">Testing</a></li>
</ul>
</li>
</ul>

  <h3>Browse</h3>
  <ul>
    
      <li>Prev: <a href="overview.html">Overview</a></li>
    
    
      <li>Next: <a href="running.html">Running Transifex</a></li>
    
  </ul>
  <h3>You are here:</h3>
  <ul>
      <li>
        <a href="../index.html">Transifex v0.9.1 documentation</a>
        
          <ul><li><a href="../contents.html">Table of Contents</a>
        
          <ul><li><a href="index.html">Getting started</a>
        
        <ul><li>Installation Guide</li></ul>
        </li></ul></li></ul>
      </li>
  </ul>  

            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="../_sources/intro/install.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="../search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">Sep 24, 2010</p>
          </div> 
      
    </div>
    
    <div id="ft">
      <div class="nav">
    &laquo; <a href="overview.html" title="Overview">previous</a> 
     |
    <a href="../contents.html" title="Table of Contents" accesskey="U">up</a>
   |
    <a href="running.html" title="Running Transifex">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
    <div class="footer">
      &copy; Copyright <a href="http://www.indifex.com">Indifex</a> and the <a href="http://transifex.org/">Transifex</a> Community.
      Last updated on Sep 24, 2010 using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
    </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>
  </body>
</html>