SimplePortal

Customization => Custom Coding => Topic started by: Nabil on December 07, 2008, 02:52:15 PM

Title: Simple way to have a Multilingual Forum
Post by: Nabil on December 07, 2008, 02:52:15 PM
This is a very simple idea to switch between two Languages in the same forum
suppose that you want to have 2 languages on your forum , just do the following :

language A and language B , language A is the default language it has for example 4 Categories and 15 Boards
DO NOT COUNT the Boards  , Just the Categories , so lets say 4

then add the Categories of Language B with its Boards simply AFTER the last Category in Language A
what I'm going to do is to give you some simple Code to switch between Language A and B  , it makes no Sense to show them both
isnt it .
it is better to let the user Choose which Language he wants to see , first of all you need to make two links or (buttons) one for Language A and the
other is for Language B , so you can do the following
in BoardIndex.template.php FIND :
Code: [Select]
<td valign="bottom">', theme_linktree(), '</td>

replace with
Code: [Select]
<td valign="bottom"><table cellspacing="0" cellpadding="0" width="100%"><tr><td align="left" style="padding-left:5px">Forum</td><td align="right" style="padding-right:5px">
Set to &nbsp;<a href="index.php?lang=1"><font style="font-family:verdana">Language A</font></a> / <a href="index.php?lang=2"><font style="font-family:verdana">Language B</font></a></td><tr></table></td>

dont forget to replace Language A and B with your Languages

in BoardIndex.template.php find
Code: [Select]
$first = true;

add before
Code: [Select]
/////////////////////////NEW FUNCTION/////////////////////
$seelanguage=$_REQUEST['lang']; $count1=-1;

if ($seelanguage==2){
setcookie("lan","language",time()+21600); header('Location:index.php');
}
////////////// to see if cookie or variable is there ////////
if ($_COOKIE['lan'])
{
$selmethod=1;
} else { $selmethod=2; };

if ($seelanguage==1){
setcookie("lan","",time()-21600); header('Location:index.php');
};
///////////////////////////////// END FUNCTION //////////////

in BoardIndex.template.php Find :
Code: [Select]
foreach ($context['categories'] as $category)
{

add after
Code: [Select]
$count1+=1;
if ($selmethod==1){
if ($count1<4){
continue;
}
};

if ($selmethod==2){
if ($count1>3){
continue;
}
};

Important : see above if ($count1<4) the number 4 should be replaced with How many categories you have for Language A , Remember .. the Categories NOT the Boards
                see above ($count1>3) the Number 3 here ,  if your Language A Categories are 4 for Example then the number should be  4-1 = 3

SimplePortal 2.3.8 © 2008-2024, SimplePortal