[thelist] recreating a website in 4 new languages
Nan Harbison
nan at nanharbison.com
Fri Feb 22 10:37:34 CST 2008
Thanks Bojan, this is great information. I actually had to just bang out the
Rwandan language by hard coding it because it had to be done by yesterday,
but I will use this for future translations.
Nan
-----Original Message-----
From: thelist-bounces at lists.evolt.org
[mailto:thelist-bounces at lists.evolt.org] On Behalf Of Bojan Tesanovic
Sent: Friday, February 22, 2008 10:00 AM
To: thelist at lists.evolt.org
Subject: Re: [thelist] recreating a website in 4 new languages
Here I will give you example of PHP code.
1. You will need folder eg lang_maps in wich you should put php files with
array of phrases_key => Language Phrase per file here is an example of
engleash file that contains PHP array file name: maps_en.php ======
$lang_maps = array{ 'WELCOME_GUEST'=>'Hi Guest Welcome to bla.com',
'HEADING_1'=>'How to become Steven Segal :)', .....
}
======
maps_sr.php //Serbian language
$lang_maps = array{
'WELCOME_GUEST'=>'Cao gost dobrodosao na bla.com', 'HEADING_1'=>'Kako
postati Steven Segal :)', .....
}
etc etc make as many language files as you need
you will need a function something like this
//defaults to english
function getTranslation($lngKey,$language='en'){
static $MAP;
$path_to_lang_dir= '.....';
$fileName = 'map_'.$language.'en.php';
$absolutePath = $path_to_lang_dir . $fileName;
//defaults to en if file dont exist
if( ! file_exists($absolutePath) ) $absolutePath =
$path_to_lang_dir . 'map_en.php';
if( ! $MAP){
include($path_to_lang_dir . fileName);
//assign to static $MAP array from loaded file this will be
done only once
//as next time this function is called we alredy have static
$MAP array loaded
$MAP = $lang_maps;
}
$return = isset($MAP[$lngKey]) ? $MAP[$lngKey] : "No translation for
$lngKey";
return $return;
}
====
Than in your templates
<h1> <?php echo getTranslation('WELCOME_GUEST',$LANG); ?></h1> .....
....
<h2> <?php echo getTranslation('HEADING_1',$LANG); ?></h2>
Also you may want to define in the begining of a execution of you script
something like this <?php
if( isset($_GET['lng'] ){
$LNG = $_GET['lng'];
}else if(sset($_COOKIE['lng']){
$LNG = $_COOKIE['lng'];
}else{
$LNG= 'en';
}
define('USER_LANGUAGE',$LNG);
....
?>
doing this it is much easier to handle current user language as it is set in
one place so above template would be
<h1> <?php echo getTranslation('WELCOME_GUEST', USER_LANGUAGE); ?></h1>
.....
....
<h2> <?php echo getTranslation('HEADING_1', USER_LANGUAGE); ?></h2>
For images it depends on image itself but generally I would make one php
file that handles images eg
getImageLang.php that can choose correct image to return to browser
so you can have something like
<img src="/getImageLang.php?imgkey=send_email&lang=<?php echo USER_LANGUAGE
?> " />
getImageLang.php can either shoose correct image from disk or generate an
image using GD library , it depends on your needs
On Feb 21, 2008, at 3:17 PM, Nan Harbison wrote:
> Hi Folks,
>
> I just finished a website that the client now wants translated into
> 4 other
> languages. I am going to do this in a database.
> I am just starting to sort this out in my head.
>
> I need to have:
>
> a table for all the src's of graphics that have writing on them in the
> foreign language (different pages have different numbers of graphics
> on
> them)
> a table with:
> the translated heading for each page
> the content text for each page
>
> Would I put the actual markup in the table, or have each paragraph in
> a separate row and surround it with tags on retrieving it?
>
> Does anyone have suggestions for the best way to approach this?
>
> Thanks for your time.
> Nan
> --
>
> * * Please support the community that supports you. * *
> http://evolt.org/help_support_evolt/
>
> For unsubscribe and other options, including the Tip Harvester and
> archives of thelist go to: http://lists.evolt.org Workers of the Web,
> evolt !
Bojan Tesanovic
http://www.classicio.com/
http://www.carster.us/
--
* * Please support the community that supports you. * *
http://evolt.org/help_support_evolt/
For unsubscribe and other options, including the Tip Harvester and archives
of thelist go to: http://lists.evolt.org Workers of the Web, evolt !
More information about the thelist
mailing list