Езикова система и MySQL

Msecurity

Registered
Здравейте колеги

В базата данни във всяка таблица съм сложил 3 полета - съответна за 3 различни езика.
И има ли вариант да си зарежда инфото според избраният език на сайта.
Например съм цъкнал на ENG и да си извлича информацията от колоната "text_en",ако се смени езика да си извлича например от "text_bg"?

Ето и класа който използвам за смяна на езика:
PHP:
class mylanguage
{
	
	function get_language() 
	{
		return $this->language;
	}
	function load_language($lang) 
	{
		$default_language="bg";
		$this->language=$lang;
		switch ($this->get_language())
		 {
		 case "bg":
			 require_once 'lang-'.$this->get_language().'.inc.php';
			 break;
		 case "en":
			 require_once 'lang-'.$this->get_language().'.inc.php';
			 break;
		 case "ru":
			 require_once 'lang-'.$this->get_language().'.inc.php';
			 break;
		 default:
			 require_once 'lang-'.$default_language.'.inc.php';
			 break;
		}
	}	
}

А ето и как сменям езиците:
PHP:
session_start();
session_register("mylang");
if(!isset($_SESSION['mylang'])) 
{
	$_SESSION['mylang']="bg";
}
require_once 'inc/lang.class.php';
$mylang=new mylanguage();
$mylang->load_language($_SESSION['mylang']);
if(isset($_GET['lang'])) 
{
	switch($_GET['lang']) 
	{
		case "bg":
		$_SESSION['mylang']="bg";
		break;
		case "en":
		$_SESSION['mylang']="en";
		break;
		case "ru":
		$_SESSION['mylang']="ru";
		break;
	}
}

Това с файловете - окей ... ноооо въпроса е как да си избира колоната със даденяит език...
 
Не съм сигурен, че е много добър подхода с базата данни.
Преди и аз си мислех, че ще е удобно, но се оказа, че въобще не е удобно, а пращаш постоянно рикуести към MySQL, освен, ако не си кешираш някъде данните, за да не ги теглиш всеки път.

Относно запазването на езика - предпочитам бисквитка, защото сесията се трие след затваряне на браузъра.


В крайна сметка или аз не ти хващам идеята какво искаш да постигнеш, или просто не ми харесва подхода ти.

Знам, че не казвам нещо конкретно по темата, но споделям мнение, което добрите души могат да му обърнат внимание :D
 
Имам си езикови файлове... за 3-те езика
Но информацията която въвеждам в БТ-то също трябва да е на съответният език.. безмислено е например менютата да са на Англииски , а като цъкнеш самото инфо на страницата да е на БГ...
И поради тази причина съм си направил в таблицата и 3 колони.. на 3-те езика - инфото да се въвежда за всеки език по отделно.

Та идеята ми беше как даго направя за да си извиква съотвеният език ...
може и със ифове но много мазано става...

if($_SESSION['lang'] == "en" { echo $row['info_en'] }
if($_SESSION['lang'] == "bg" { echo $row['info_bg'] }
if($_SESSION['lang'] == "ru" { echo $row['info_ru'] }

... но си мисля че трябва да има и по лесен начин..
 
Защо просто при самата заявка не селектираш само съответната колона?
PHP:
$query = "select ".$_SESSION['lang']." from table";
В твоя случай трябва да бъде:
PHP:
$query = "select info_".$_SESSION['lang']." from table";
 
anonimen каза:
Защо просто при самата заявка не селектираш само съответната колона?
PHP:
$query = "select ".$_SESSION['lang']." from table";
В твоя случай трябва да бъде:
PHP:
$query = "select info_".$_SESSION['lang']." from table";

За това не се бях сетил...
Благодаря, ще пробвам и ще кажа дали е станало :P
 

Back
Горе