summaryrefslogtreecommitdiffstats
path: root/README.txt
blob: 6c15713e992af84719e894204f6dff0be9757490 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Localization server module suite
--------------------------------------------------------------------------------
Project page:  http://drupal.org/project/l10n_server
Support queue: http://drupal.org/project/issues/l10n_server

ABOUT
--------------------------------------------------------------------------------

The localization server project (formerly known as lt_server) provides a 
community localization editor, which allows people from around the world to 
collaborate on translating Drupal projects to different languages. It is
inspired by Launchpad Rosetta (https://launchpad.net/rosetta) but is highly
tailored to Drupal needs.

This module suite powers the base functionality of http://localize.drupal.org.

The module suite solves the Drupal project translation problem with a web
based interface. The various Drupal projects release source code on a daily
basis. The goal is to help translators to keep up with this pace by sharing
already translated strings and distributing translations effectively.

The localization server module suite consists of a few possible components:

 - l10n_community: Required. A translation community interface which provides
   the database backend to store projects and releases, but does not fill these
   with actual data itself. Uses a role based permission model.
   
 - l10n_groups: Optional. An "Organic Groups" module binder, which provides
   permission handling based on language groups (in addition to the default
   role based model used by l10n_community). 
   
 - A connector module: One required, only use one at a time. Connectors serve
   the purpose of filling in the actual list of projects, releases and strings
   used in the released packages. Different connectors allow this suite to be
   used in different use cases.
   
     - l10n_localpacks: Works based on a list of files uploaded to a local
       file system directory. The projects and releases are identified based
       on placement and naming of the package files. 
     
     - l10n_project: To be used on drupal.org only! Maintains a relation with
       the drupal.org project and release listings, syncronizes tarballs,
       collects translatables automatically.

INSTALLATION
--------------------------------------------------------------------------------

- Your PHP installation should have the PEAR Tar package installed (which
  requires zzlib support). This is required for Tar extraction (in the
  l10n_localpacks module) and Tar generation (in the l10n_community module).

- Locale (built into Drupal) is required. Organic Groups
  (http://drupal.org/project/og) is required by l10n_groups.

- If you want to install the server rather quickly to only check its features,
  check the quick setup section below.

1. Enable l10n_community and l10n_localpacks at Administer >
   Site configuration > Modules. Optionally enable l10n_groups.

2. Configure the connector at Administer > Localization Server.

QUICK SETUP WITH DRUSH SCENARIO BUILDER
--------------------------------------------------------------------------------

If you require a quick setup as a developer, this is the fastest way.

Drush will require the drush scenario builder (dsb) command ready to use.
http://drupal.org/project/dsb

Configure your local environment specific settings with the local.dsb.config.php
file. Just add the following lines according to your system:

$config['db url'] = 'mysql://<yourdbuser>:<yourdbpassword>@<yourdbhost>';
$config['build target'] = '/path/to/your/drupalroot/';

The build target path to your drupal root is NOT the current directory where you
have downloaded l10n_server to. It's a completely separate drupal site that
will be automatically installed by the scenario builder. Just create a directory
and set build target to its path.

Afterwards run the following command in your l10n_server folder:

# drush dsb server

Wait until the process completed. You can access your new server site in your
browser with http://server.l10n.dev/.

Alternatively, a scenario client-server is available. In addition to the server
only install, it will setup a client multisite instance with l10n_client that
is already connected to the server instance.

HOW DOES IT WORK
--------------------------------------------------------------------------------

The connector module's duty is to maintain a list of projects and releases, as
well as fill up the database with translatable strings based on release source
codes. This module consumes a huge amount of resources. Downloading packages,
unpacking their contents and running the string extraction process takes time,
CPU cycles and hard disk space. Although only temporary copies of the packages
are kept, some hard disk space and a decent amount of memory is required. This
is why connectors are preconfigured to scan only one project at a time. Big
projects like Ubercart or Drupal itself take considerable time to parse.

The localization community module provides the actual interface. Users with
proper permissions can suggest new translations for strings, maintainers can
even decide on the official translation based on the different suggestions. To
translate a project, go to Translations, choose a language and optionally
choose a project. There you can translate all strings.

CONTRIBUTORS
--------------------------------------------------------------------------------
Bruno Massa  http://drupal.org/user/67164 (original author)
Gábor Hojtsy http://drupal.org/user/4166 (current maintainer)

This module was originally sponsored by Titan Atlas (http://www.titanatlas.com),
a Brazilian computer company, and then by Google Summer of Code 2007. The
localization server is currently a free time project.