Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zalozenia do strony wielojezycznej
stal-sw
post 17.02.2004, 19:58:39
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 27.06.2002
Skąd: Stalowa Wola

Ostrzeżenie: (0%)
-----


Witam.
Chce sobie opracowac stronke w 3 wersjach jezykowych.
Jednak nie bardzo wiem jak sie do tego zabrac.

1. Wiem tylko ze np. wszelkiego typu TYTULY przechowywalbym w 3 plikach.
jezykPL.inc
jezykENG.inc
jezykGER.inc
Przykladowa zawratosc pliku:
[php:1:4429516084]<?php
$lang['newsy'] = "Witamy w dziale aktualnosci.";
$lang['lplikow'] = "Liczba plikow:";
?>[/php:1:4429516084] lub uzywac DEFINE....
I tak by wygladal kazdy z tych plikow tylko oczywiscie teksty byly by w roznych jezykach.
Tylko nie wiem bardzo jak wywolywac w jakism pliku te $lang['newsy'] questionmark.gif

2. Inny problem to przechowywanie danych w bazie:
Czy dobrym pomyslem bedzie jak np. mam pola: id, tytul - to dla 3 wer. jezykowcyh zrobic pola: id, tytulPL, tytulENG, tytulGER questionmark.gif?

Jesli tak to jak sie pozniej odwolywac MAJAC 1 plik jakiegos skryptu - ktrory ma pracowac dla 3 wersji i w zaleznosci od wybrania wersji ma:
wybrac odpwiedni plik i odpwiednie dane z tabeli questionmark.gif

Jak wybierac wersje ? Tworzyc sesje questionmark.gif?

Prosze o swoje sugestie na temat strony z wieloma wersjami jezykowymi.
I moze ktos ma linka do jakiegos ciekawego artykulu labo jakiegos proste SKRYPTU zbudowanego dla kilku werji jezykowych.


--------------------
Go to the top of the page
+Quote Post
cichy
post 17.02.2004, 20:18:21
Post #2





Grupa: Przyjaciele php.pl
Postów: 197
Pomógł: 0
Dołączył: 9.09.2003
Skąd: z Marsa

Ostrzeżenie: (0%)
-----


AD 1.
W zależności w jaki sposób budujesz serwis.
jesli na szablonach to odpowiednio:[xml:1:bccee8935d]
<title>{JAKAS_ZMIENNA}</title>
[/xml:1:bccee8935d]
i w php
przypisanie do zmiennej
[php:1:bccee8935d]<?php
przypisz('JAKAS_ZMIENNA', $lang['tytul']); // *
* - (funkcja przypizs nie istnieje i została wykozystana przykładowo)
?>[/php:1:bccee8935d]
Lub tworzysz coś na podstawie funkcji (np funkcja tworząca nagłówek
[php:1:bccee8935d]<?php
function naglowek()
{
global $lang;
echo '<title>'.$lang['tytul'].'</title>';
}
?>[/php:1:bccee8935d]
AD 2.
Moja wizja tego jest taka by trzymać w bazie pola np:
title_pl, tekst_pl , title_eng , text_eng , title_de , text_de
i oprzeć wzsystko na sesjach.
i jesli sesja nie istnieje to przypisujesz jej wartosc:
[php:1:bccee8935d]<?php
$_SESSION['jezyk'] = 'pl';
// i jesli ktos zmieni jezyk to ty zmieniasz wpis na odpowiednie 'eng' lub 'de'
?>[/php:1:bccee8935d]

i później tylko odpowiednio wybierasz dane z bazy
[php:1:bccee8935d]<?php
"Select title_".$_SESSION['jezyk']." , text_".$_SESSION['jezyk']." WHERE jakies ID"

?>[/php:1:bccee8935d]
Przynajmniej ja to tak kiedyś rozwiazywałem jak sie uczyłem pisać tworząc przykładowe skrypty.
Go to the top of the page
+Quote Post
marcin96
post 18.02.2004, 01:26:38
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.08.2003
Skąd: Będzin

Ostrzeżenie: (0%)
-----


odnosnie problemu 2

Nie lepiej zrobic po prostu pola:
title, text, lang

...i teraz w zaleznosci od wersji jezykowych wyswietlaja sie odpowiednie artykluly, czy co tam?

Czyli
[php:1:5c62120a77]<?php

$query = "SELECT `title`, `text` FROM `articles` WHERE `lang` = '". $_SESSION['current_lang']."'";

?>[/php:1:5c62120a77]

Dzieki temu nie zawsze musza byc identyczne artykuly we wszystkich wersjach jezykowych oraz w przyszlosci bardzo latwo i sprawnie mozna dodac kolejne wersje jezykowe serwisu, hm? :>)


--------------------
www.calek.info
Go to the top of the page
+Quote Post
rzseattle
post 18.02.2004, 01:28:50
Post #4





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


http://forum.php.pl/viewtopic.php?t=8175


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
hi-Res
post 18.02.2004, 03:31:57
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.01.2004

Ostrzeżenie: (0%)
-----


Ja tworzac kiedys strone 4 jezykach wykombinowalem taki system...

Zaczalem od stworzenia tablic w pliku cfg.php
[php:1:09a21d5761]<?php
$langs = array (
"pl" => "Polski",
"en" => "English",
"de" => "Deutch",
"fr" => "Français"
);
?>[/php:1:09a21d5761]

Pozniej napisalem taki formularz, napisalem go az 4 razy gdzie zmienna lang miala wartosc w pierwszym 1 w drugim 2 itd..
[php:1:09a21d5761]<?php
<form method=POST action=index.php>
<input type=image src="img/flag_pl.gif" onMouseOver="this.src='img/flag_ov_pl.gif'" onMouseOut="this.src='img/flag_pl.gif'">
<input type=hidden name=lang value=1>
</form>
?>[/php:1:09a21d5761]

Jeszcze pozniej w pliku index.php zamiscilem taki skrypt
[php:1:09a21d5761]<?php
$lang = $_POST['lang'];
$set = $_SESSION['lang'];

if (!(isset($_SESSION['lang']))) $set = pl;
if ($lang == 1) $set = pl;
if ($lang == 2) $set = en;
if ($lang == 3) $set = de;
if ($lang == 4) $set = fr;

$_SESSION['lang'] = $set;
?>[/php:1:09a21d5761]

W includzie dolaczylem plik cfg z tablicami.
A zmienne ktore zawieraly jakis tekst wygladaly tak
[php:1:09a21d5761]<?php
$info[$set]
?>[/php:1:09a21d5761]

No i tak to sobie dziala do dzis, zmienna z formularza zapisuje sie w sesji a kazda zmienna bedaca jakims tekstem pobiera wartosc zmiennej $set z sesji.
Proste i wygodne rozwiazanie, tak mysle smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 01:30