Introduction

How can I help?

We are always looking for new translators. Even if a specific language already is translated and has an official maintainer, we can use helping hands in reviewing and updating translations. Important: It is perfectly fine if you only have time for a partial translation or quick review work - our system accomodates many people collaborating on the same language.

  • You can apply here
  • Announce and discuss translations on the forum (here)
  • Make your modules translatable (see i18n)
  • Make your themes translatable (see i18n)

How do I start translating?

We have a translation server with an interface to facilitate community-driven translations. Once you have offered to translate, we'll get in touch with you by email and provide you with an account.

Once you have your account details, you can go here and choose a language you want to translate. You'll then need to login with the details provided.

Please contact us if you have any specific questions about translate.silverstripe.com.

How do I translate substituted strings? (e.g. '%s')

You don't have to - if the english master-string reads 'Hello %s', your german translation would be 'Hallo %s'. Strings prefixed by a percentage-sign are automatically replaced by silverstripe with dynamic content. See http://php.net/sprintf for details.

Do I need to convert special characters (e.g. HTML-entities)?

Special characters (such as german umlauts) need to be entered in their native form. Please don't use HTML-entities (“ä” instead of ”ä”). Silverstripe stores and renders most strings in UTF8 (Unicode) format.

How can I check out my translation in the interface?

Currently translated entities are not directly factored into code (for security reasons and release/review-control), so you can't see them straight away. You can download automatically generated php-files for your language on the translation-server for each module (e.g. cms, sapphire, forum, …) - and place those files in the appropriate directories on a local silverstripe installation. Please use our daily-builds for your local installation.

Example for downloading french files from the translation-server:

downloaded fr_FR.php for cms => <yoursilverstripe>/cms/lang/fr_FR.php
downloaded fr_FR.php for sapphire => <yoursilverstripe>/sapphire/lang/fr_FR.php
(repeat for all modules)

It is strongly encouraged that you check your translation this way, as its a good way to doublecheck your translation works in the right context

How do I change my interface language?

Once you've logged into the CMS, you should see a “profile”-link on the lower right corner (direct link: http://www.site.com/admin/myprofile). You can set the “interface language” from a dropdown which automatically includes all found translations (based on the php-files in the /lang-folders).

I've found a piece of untranslatable text

It is entirely possible that we missed certain strings in preparing Silverstripe for translation-support. If you're technically minded, please read i18n on how to make it translatable. Otherwise just post your findings to the forum.

How do I add my own module to the translation server

Once you've built a translation-enabled module, you can run the ”textcollector” on your local installation for this specific module (see i18n). This should find all calls to _t() in php/ss-files, and generate a new lang-file with the default locale (path: <mymodule>/lang/en_US.php). Upload this file to the translation-server, wait for approval by Silverstripe, and wait for the translators to do their magic!

What about right-to-left (RTL) languages (e.g. Arabic)?

Silverstripe doesn't have built-in support for attribute-based RTL-modifications (<html dir=“rtl”). We are currently investigating the available options, and are eager to get feedback on your experiences with translating silverstripe RTL.

Can I translate/edit the language files in my favourite text editor (on my local installation)

No, as it causes us a lot of work in merging these files back to the database, and doesn't denote you as the author of a particular translation. Please use http://translate.silverstripe.com for all new and existing translations.

How does my translation get into a SilverStripe release?

Currently this is a manual process of a core team member downloading approved translations from http://translate.silverstripe.com and committing them into our source tree.

How does my translation get approved?

We require every translation to have at least two active contributors before approving a language, to avoid misuse and have some quality control. A translation has to be mostly complete to get approved for a specific module.

I'm seeing lots of duplicated translations, what should I do?

For now, please translate all duplications - sometimes they might be intentional, but mostly the developer just didn't know his phrase was already translated. Please contact us about any duplicates that might be worth merging.

Related

 
translation.txt · Last modified: 2010/05/05 23:38 (external edit)

Please use comments for notes, tips and corrections about the described functionality.
Use the Silverstripe Forum to ask questions.

blog comments powered by Disqus
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Creative Commons LicenseSilverStripe Documentation by SilverStripe is licensed under a Creative Commons Attribution 3.0 New Zealand License.
Based on a work at doc.silverstripe.com
Recent changes RSS feed Driven by DokuWiki