diff --git a/common.inc.php b/common.inc.php
index cfd594ee..0f0bb830 100644
--- a/common.inc.php
+++ b/common.inc.php
@@ -230,11 +230,17 @@ if($_GET['switchlanguage'])
 }
 
 
-function i18n($str,$args=array(),$argsdesc=array())
+function i18n($str,$args=array(),$argsdesc=array(),$forcelang="")
 {
 	if(!$str)
 		return "";
 
+	if($forcelang)
+	{
+		$savelang=$_SESSION['lang'];
+		$_SESSION['lang']=$forcelang;
+	}
+
 	if($_SESSION['lang'])
 	{
 		if($_SESSION['lang']=="en")
@@ -243,6 +249,7 @@ function i18n($str,$args=array(),$argsdesc=array())
 			{
 				$str=str_replace("%$x",$args[$x-1],$str);
 			}
+			if($forcelang) $_SESSION['lang']=$savelang;
 			return $str;
 		}
 		else
@@ -258,6 +265,7 @@ function i18n($str,$args=array(),$argsdesc=array())
 					{
 						$ret=str_replace("%$x",$args[$x-1],$ret);
 					}
+					if($forcelang) $_SESSION['lang']=$savelang;
 					return $ret;
 				}
 				else
@@ -266,6 +274,7 @@ function i18n($str,$args=array(),$argsdesc=array())
 					{
 						$str=str_replace("%$x",$args[$x-1],$str);
 					}
+					if($forcelang) $_SESSION['lang']=$savelang;
 					return "{{".$str."}}";
 				}
 					
@@ -292,6 +301,7 @@ function i18n($str,$args=array(),$argsdesc=array())
 				{
 					$str=str_replace("%$x",$args[$x-1],$str);
 				}
+				if($forcelang) $_SESSION['lang']=$savelang;
 				return "{{".$str."}}";
 			}
 		}
@@ -299,6 +309,7 @@ function i18n($str,$args=array(),$argsdesc=array())
 	else
 	{
 		//no language set, assume english
+		if($forcelang) $_SESSION['lang']=$savelang;
 		return $str;
 	}
 }