
.. _tmserver:

tmserver
********
tmserver is a Translation Memory service that can be queried via HTTP using a
simple REST like URL/http and data is exchanged between server and client
encoded in JSON.

.. note:: If you are searching for an enterprise Translation Memory server then
   rather use `amaGama <http://amagama.translatehouse.org/>`_.

.. _tmserver#usage:

Usage
=====

::

  tmserver.py --bind=HOSTNAME --port=PORT [--tmdb=TMDBFILE] [--import-translation-file=TMFILE [--import-source-lang=SOURCE_LANG] [--import-target-lang=TARGET_LANG]]

Where:

+----------+-------------------------------------------------------------+
| TMDBFILE | is the SQLite database file containing translation memory   |
|          | data, if not specified a new temporary database is created  |
+----------+-------------------------------------------------------------+
| TMFILE   | is a translation file (po, xliff, etc.) that should be      |
|          | imported into the database (mostly useful when no tmdb file |
|          | is specified).                                              |
+----------+-------------------------------------------------------------+

Options:

-h, --help            show this help message and exit
-d TMDBFILE, --tmdb=TMDBFILE
                      translation memory database file
-f TMFILES, --import-translation-file=TMFILES
                      translation file to import into the database
-t TARGET_LANG, --import-target-lang=TARGET_LANG
                      target language of translation files
-s SOURCE_LANG, --import-source-lang=SOURCE_LANG
                      source language of translation files
-b BIND, --bind=BIND  adress to bind server to (default: localhost)
-p PORT, --port=PORT  port to listen on (default: 8888)
--max-candidates=MAX_CANDIDATES
                      Maximum number of candidates
--min-similarity=MIN_SIMILARITY
                      minimum similarity
--max-length=MAX_LENGTH
                      Maxmimum string length
--debug               enable debugging features

.. _tmserver#testing:

Testing
=======

easiest way to run the server for testing is to pass it a large translation
file (maybe generated by :doc:`pocompendium`) to create a tmdb database on the
fly. ::

   tmserver -b localhost -p 8080 -f compendium.po -s en_US -t ar

The server can be queried using a webbrowser. the url would be::

   http://HOST:PORT/tmserver/SOURCE_LANG/TARGET_LANG/unit/STRING

So to see suggestions for "open file" try the url
http://localhost:8080/tmserver/en_US/ar/unit/open+file
