Download presentation
Presentation is loading. Please wait.
Published byRonald Reeves Modified over 9 years ago
1
Translating Drupal Websites Sean Burlington www.PracticalWeb.co.uk Quick run through Translation generally Lessons learned Drupal specifics String translation Page translation
2
A long Time ago...
3
Nictotinell.com Project developed in custom PHP Design first Then functionality Lastly translation
4
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
5
Still before Drupal
6
How it worked Custom “CMS” 2 languages English/Welsh script.aculo.us In place editing Suprising how may 'odd' pages crop up
7
www.useyourpaths.info
9
Complex Pages Long forms Lots of little bits of text The in-place editing really helped for long forms No support calls :-)
11
Drupal (version 5)
12
Manage Strings
13
Locale Module (core) Enhances the t function Make sure everyone reads http://api.drupal.org/api/function/t/5 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')
14
format_plural() 1 item – 2 items format_plural($feed->items, '1 item', '@count items') Calls t() internally
15
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
16
Solution Potx – extracts strings from t functions Allows 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
17
Localizer Module
18
Lots of options
19
Localizernode Works with custom node types Just implement the usual hooks (_insert, _update, _delete) Creates a “Translation set” of nodes from the original node
20
Translations tab
21
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 !
22
In General Plan Check your design Introduce standards early Test dummy translations early Translate late
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.