<!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 — 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"> « <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> »</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’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.</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’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’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’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’re a translator, you’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’ve made clear who we’re talking with, let’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’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’re running Linux or Mac OS X, you probably already have it already installed.</p> <p>You can verify that Python’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. >>></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’re enabling the tarball support, you also need ‘urlgrabber’:</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’s packaging tools (stable version)</li> <li>Using your distribution’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’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’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’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’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’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 “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.</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’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’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’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’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.</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 <tag></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><span class="o">=</span>1.0 polib><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><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><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’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’s needs.</p> <p>To enable Transifex’s notifications you’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 “<a class="reference external" href="http://docs.djangoproject.com/en/dev/ref/unicode/#creating-the-database">Creating the database</a>“.</p> </div> <p>Once you’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’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: ‘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.</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’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’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’ll use the file, a ‘syncdb’ 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 <location-of-test-file></pre> </div> </div> </div> <div class="nav"> « <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> »</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’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’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’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"> « <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> »</div> </div> </div> <div class="clearer"></div> </div> <div class="footer"> © 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>