translating drupal websites sean burlington quick run through translation generally lessons...

Post on 16-Jan-2016

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Translating Drupal Websites

Sean Burlington www.PracticalWeb.co.uk Quick run through

Translation generally Lessons learned Drupal specifics String translation Page translation

A long Time ago ...

Nictotinell.com

Project developed in custom PHP Design first Then functionality Lastly translation

What I learned then

Norwegian words are really long.. Text gifs, layout tables, and translations !@#!* Don't take shortcuts Good Practice pays off Balance the tags in every template Don't let translation be an afterthought

Still before Drupal

How it worked

Custom “CMS” 2 languages English/Welsh script.aculo.us In place editing Suprising how may 'odd' pages crop up

www.useyourpaths.info

Complex Pages

Long forms Lots of little bits of text The in-place editing really helped for long forms No support calls :-)

Drupal

(version 5)

Manage Strings

Locale Module (core)

Enhances the t function Make sure everyone reads

http://api.drupal.org/api/function/t/5 Choose a standard

Does it include trailing spaces? What about punctuation? Avoid t($text) – use t('literal text')

format_plural()

1 item – 2 items

format_plural($feed->items, '1 item', '@count items')

Calls t() internally

Problems with Manage Strings Strings originally in code – but translated from

database

String only available for translation after it has been displayed

Hard to find strings What about error messages How do you know when you're finished How to test a translation

Solution

Potx – extracts strings from t functionsAllows you to select by module

http://translate.sourceforge.net/wiki/toolkit/csv2po

But this gives admin and public text together We wrote an upload languages module

(I'm trying to GPL this) This takes a CSV of all languages – and returns

a merged CSV including any new translations Useful for deployment

Localizer Module

Lots of options

Localizernode

Works with custom node types Just implement the usual hooks

(_insert, _update, _delete) Creates a “Translation set” of nodes from the

original node

Translations tab

What it does Creates new nodes that are translations of

existing ones Maintains a lookup table Automatically displays the users preferred

translation It works nicely But – we had nodes that referred to other nodes

on another site via a CCK field and SOAP ... Make sure everyone knows about the lookup

table at an early stage !

In General

Plan Check your design Introduce standards early Test dummy translations early Translate late

top related