Jump to content
php.lv forumi

valodas


nemec

Recommended Posts

tabula `users`
id | user | name | fullname |

tabula `galery`
id | name |  user_id |

tabula `valodas`
id | table_name | row_name | refer_id | language_id | value |

man ir tulkoshana tabulaa valodas, kas tulko datubaazi.
man vajag pieprasiijumu, kas taisa select no jebkaa un tulko ja ir veertiiba tabulaa valodas.

nu piemeeram
$q_s = "select * from users";
$q_r = mysql_query($q_s);
while ($row = mysql_fetch_array($q_r))
{
  list($val) = mysql_fetch_array(mysql_query("SELECT value FROM valodas WHERE table_name='users' AND row_name='name'
	 AND refer_id=$row['id'] AND language_id='$global_lang'"));
  if (empty($val))
  {
  echo $row['name'];
  }
}
 $q_s = "select * from users"; = shitais ir vienkaarsh pieprasiijums, bet var buut arii JOIN.
 kaa var uzrakstiit fukciju kas stringu $q_s = pataisa par tulkoshanu. lai uzreiz querija visu iztulko un tad izvada

Edited by nemec
Link to comment
Share on other sites

ir kaads labs scripts, kas izmanto tikai vienu valodu. dati tam glabaajaas tabulaas (pilniigi vienalga cik).

visi pieprasiijumi iet caur funkciju, kaut kaadu noteiktu (select_function = piemeeram).

 

bet es gribu sho scriptu pataisiit par daudzvalodiigu (man vajag tulkot datus no tabulaam).

 

es uztaisu tabulu

`valodas`

id | table_name | row_name | refer_id | language_id | value |

 

kur `table_name` = tabulas nosaukums;

`row_name` = kolonnas nosaukums;

`refer_id` = elementa id;

`language_id` = valodas id;

`value` = tulkojums shajaa vietaaa;

 

un tagad es gribu uztaisiit funkciju, kas funkcijaa select_function atgriezh iztulkotas veertiibas(ja nav tad default veertiibu).

 

nu tipa sanaak, ja skriptam visi selecti iet caur vienu vietu (funkciju), es piekabinu savu uber skriptu ar divaam tabulaam(`valodas` un `valodu_identificator`(id=>name)). un ir iespeejams vienkaarshi iztulkot da jebko.

man tas sanaak, bet tikai ar vairaakiem selectiem, kas nav labi. vajag vienaaa.

 

nezinu, kaa lai veel paskaidro.

Link to comment
Share on other sites

  • 1 year later...

http://codes.termi.lv/php/termimvc/4-termi...translater.html

novilkt paraugu var te http://codes.termi.lv/codes-plugins/php/mv...later-v.0.1.zip

Pārrakstīju joomfishu no joomlas. Vēl tikai testa versija. Bet patestējot uz savām lapām izskatās, ka strādā ļoti forši. Redaktora arī nav, tikai manā CMS. Ja šis ieinterēs vismaz kaut kādu cilvēku loku, tad man ir doma uzlikt savu CMSu publiski. Tas būtu tāds viens no pirmajiem publiskiem CMSiem, kas nāk no Latgales. Kaut gan tas ir nevis CMS, bet MVC vairāk, uz kura es kodēju visdažādākas lapas - nopietnas un netik nopietnas.

 

pagaidām man tas codes.termi.lv ir angļu valodā, nesanāk man dabūt joomfish klāt. Kad pārlikšu uz savas platformas, tad arī visu iztulkošu.

Link to comment
Share on other sites

  • 1 month later...

Labi es mēģināšu pastāstīt sīkāk.

 

manā CMS ir sadaļa 'Tulkošana', caur šo sadaļu notiek visas mājas lapas tulkošana. Tulkošanam modulim ir tikai viens konfigurācijas fails.

 

piemēram man ir mysqlā tabulas (divas)

 

CREATE TABLE `some_products` (
 `id` int(11) NOT NULL auto_increment,
 `added` datetime NOT NULL default '0000-00-00 00:00:00',
 `modified` datetime NOT NULL default '0000-00-00 00:00:00',
 `author` varchar(100) NOT NULL,
 `name` varchar(255) NOT NULL default '',
 `friend_url` varchar(255) NOT NULL default '',
 `intro` text NOT NULL,
 `full` text NOT NULL,
 `components` text NOT NULL,
 `img` varchar(100) NOT NULL,
 `published` tinyint(1) NOT NULL default '0',
 `delete` int(1) NOT NULL default '0',
 `ordering` int(10) NOT NULL,
 `cat_id` int(10) NOT NULL default '0',
 `params` varchar(250) NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

CREATE TABLE `some_text` (
 `id` int(11) NOT NULL auto_increment,
 `added` datetime NOT NULL default '0000-00-00 00:00:00',
 `modified` datetime NOT NULL default '0000-00-00 00:00:00',
 `author` varchar(100) NOT NULL,
 `name` varchar(255) NOT NULL default '',
 `friend_url` varchar(255) NOT NULL default '',
 `intro` text NOT NULL,
 `components` text NOT NULL,
 `img` varchar(100) NOT NULL,
 `published` tinyint(1) NOT NULL default '0',
 `delete` int(1) NOT NULL default '0',
 `ordering` int(10) NOT NULL,
 `cat_id` int(10) NOT NULL default '0',
 `params` varchar(250) NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

 

Caur CMS es gribu iztulkot tabulas laukus. 1) tabulai (some_ - ir tikai prefiks)blog: `name`, `intro`, `full`; 2) tabulai text: `name`, `intro`

parastā gadījumā esmu redzējis, ka taisa laukus `name_lv`, `name_ru` un tā tālāk. bet es piedāvāju glabāt visu vienā tabulā (aprakstus es jau devu augšā).

 

Es CMSā pievienoju tikai šo konfugurācijas failu, un manam CMSam ir gatavs tulkošanas interfeiss.

$translateBase = array(
'blog'=>array(
	'name' => 'Blogs'
	,'friend_url' => 'blog'
	,'table' => 'blog'
	,'ordering' => array('cat_id'=>'ASC', 'ordering'=>'ASC')
	,'where' => array('published'=>'1', 'delete'=>'0')
	,'view_fields' => array('id', 'name', 'friend_url')
	,'edit_fields' => array(
		'name' => array(
			'name' => 'name'
			,'type' => 'text'
			,'function' => 'esc_html'
		)
		,'intro' => array(
			'name' => 'intro'
			,'type' => 'textarea'
		)
		,'full' => array(
			'name' => 'full'
			,'type' => 'textarea-edit'
		)
	)
)
,'text'=>array(
	'name' => 'Text'
	,'friend_url' => 'text'
	,'table' => 'text'
	,'ordering' => array('cat_id'=>'ASC', 'ordering'=>'ASC', 'added'=>'DESC')
	,'where' => array('published'=>'1', 'delete'=>'0')
	,'view_fields' => array('id', 'name', 'friend_url')
	,'edit_fields' => array(
		'name' => array(
			'name' => 'name'
			,'type' => 'text'
			,'function' => 'esc_html'
		)
		,'intro' => array(
			'name' => 'intro'
			,'type' => 'textarea'
		)
	)
)
);

 

Vēl piebilde, ja es pievienoju jaunu valodu, tad man tas tikai būs jāizdara mysqlā, pievienojot vienu ierakstu. Visu citur viss strādās automātiski.

 

vai tad tik tiešām nevienam nav intereses par šo?

Link to comment
Share on other sites

×
×
  • Create New...