Knowledge base

Projects / Localizing your project


Whether you want to localize an existing project or are starting a new project, we provide a few nice mechanisms to make things easier on everyone, from developers to translators.

To start off, you're going to want to set up the localization on your project. Go to your project's detail page, and under actions, you'll see "Setup localization". Click it, fill in the appropriate options, and you're on your way.


A language with some extra information. For example, esES (Spanish) is distinct from esMX (Latin American Spanish), despite it being the same language, some words might be different.
An entry into the localization app. This represents the key your phrase is, what namespace it belongs to, any context attached to it. This will always have an English translation attached.
A single translation of a phrase into a specific language by a certain submitter. There is only one definitive translation per-phrase per-locale.
A user who submits translations to a project. If the project has a closed localization, they have to be explicitly defined by the manager of the project. If the project has an open localization (default), any user (who has not had translation privileges revoked) of the site may enter non-English translations.
A member of the project that (for our purposes) has the privilege to edit, create, and delete English translations.
A namespace acts as a section for a group of phrases. All projects have a base namespace (or root namespace). This is particularly useful if you have a modular project where you want the individual modules to have a separate namespace from the core.

Importing existing translations

If you have localized your project without our system, you should be able to import your phrases and translations quite easily.

Just click the Import button in the navigation bar at the top, fill in your details and copy-paste your translations into the text box. Note: you should be just copy-pasting the translations and not any AceLocale headers or such.

You do this once per language.


Making new phrases

If you're either starting from scratch or want to add new phrases, you'll probably want to create a new phrase through the website, since extra details can be supplied that can't be on import. In the navigation bar, you'll see "Phrases", if you hover over it, it will pop up a menu containing "Create phrase". Use this form to create a new phrase.

There is a section for Context that you can supply. This can be a description of the phrase or where to find or some other indicator that will give translators proper context on how to translate the phrase properly.

Editing existing phrases

In the event that you need to change a phrase, first find the phrase through the phrase index (Phrases button in the navigation bar), click on it, then click Edit phrase in the navigation bar.


First, realize that for the majority of projects, namespaces are unnecessary. Sticking to the base namespace is perfectly acceptable.

Making new namespaces

In the navigation bar, you'll see "Namespaces", hover over it, and a menu will pop up containing "Create namespace". You can now create a namespace.

Editing an existing namespace

Find the namespace you want through the namespace index (Namespaces button in the navigation bar), click on it, then click Edit namespace in the navigation bar.

Exporting your translations

Once you're satisfied with the translations in the system, you can, at any time, export your translations.

Through the website

Click the Export button in the navigation bar. Fill in the details on how you want it to export, then click the Export button on the form. You'll have a text box full of your translations which you can copy-paste into your code.

You'll have to do this once per locale.

Through the repository

Since exporting manually can be a pain, we supply a way to have the repository packager (if you use it) automatically inject translations to your specification. You can see the full details on the Repository Keyword Substitutions knowledge base page.

This will cause your translations to be injected every time a new package is made. This means every commit (if you package alphas) or every tag (if you package betas/releases).

A new package will not create automatically when new translations are added or changed.

Directing translators to localize your project

You should point them to the localization index (found by clicking "Localization" in your project's navigation bar), which shows the status of all the locales. It is recommended you put a nice message in your project's description, or you can advertise on the forums of your choice. The "Localization" tab will appear to regular users whenever you have phrases in your localization system, nonetheless.