![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Posiadam stronę internetową, którą postanowiłem przerobić na wersje wielojęzyczną. Uzyłem do tego tablic: 'language' => array('Wybierz język: ', 'Select Language: ', 'Sprache auswählen: ', 'Choisissez la langue: ', 'Selecteer taal: '), 'plogowania' => array('Podaj dane do logowania w systemie', 'Enter details to log on', 'Geben Sie Details um sich über das System', 'Sil vous plaît soumettre votre login', 'Gelieve uw login'), którą to mam zapisaną w pliku lang.php. Aby wyświetlić wybrany element po przełączeniu języka wpisuje echo lang('plogowania'); Posiadam również inną tablicę z zaincludowanym plikiem lang.php: 'a8' => array ( 'id' => 10, 'nazwa' => 'Język', 'fieldname' => 'a8', 'pole' => 'listaRP' , 'checked' => 'first' ), do której to w miejsce 'Język' muszę przekazać dane z tablicy pierwszej po przełączeniu języka. Próbowałem np. tak: 'a8' => array ( 'id' => 10, 'nazwa' => ''.lang('language').'', 'fieldname' => 'a8', 'pole' => 'listaRP' , 'checked' => 'first' ), ale z jakiegoś powodu zwraca mi puste pole. Jak to rozwiązać? albo jak w inny sposób pobierac wybrane elementy tablicy1 do tablicy2?? Dodam jeszcze, że skrypt jest zrobiony identycznie jak ten na stronie: http://www.webday.pl/viewtopic.php?f=46&p=3542 Wszystko działa poza elementami z tej drugiej tablicy ;/ Ten post edytował patryk9200 7.02.2009, 01:17:50 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Pokaż Twój dokładny kod PHP. Podejrzewam, że błąd jest w tym, że chcesz się odwołać do tego języka, zanim on jeszcze zostaje zdeklarowany.
PS. Co to ma do OOP? PS2. Niezbyt wygodna metoda na przechowywanie języków. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
ok
A więc tak tak wygląda kod tabeli w której muszę podmienić język: CODE include "lang.php"; $panel_komisu = array ( 'Osobowe' => array ( ''.lang("osobowe").'' => array ( 'id' => 1, 'nazwa' => ''.$marka.'', 'fieldname' => 'marka_osobowe', 'pole' => 'lista_marka' , 'checked' => 'first' ), 'model_osobowe' => array ( 'id' => 2, 'nazwa' => 'Model', 'fieldname' => 'model_osobowe', 'pole' => 'lista_model' , 'checked' => 'first' ), 'wersja'=> array ( 'id' => 2, 'nazwa' => 'Wersja modelu, itp...', 'fieldname' => 'wersja', 'pole' => 'input1' , 'maxlength' => 20 ), 'stats' => array ( 'id' => 110, 'nazwa' => 'Liczba wy¶wietleń', 'fieldname' => 'stats', 'pole' => 'input1' , 'maxlength' => 7 ), 'numer' => array ( 'id' => 111, 'nazwa' => 'Numer ogłoszenia', 'pole' => 'input1' ), ), ?> Z tak wygląda kod odpowiedzialny za podmienianie danych: CODE <?php if ($_GET['lang']){ setcookie('lang', $_GET['lang'], time()+12*2592000); }; if ($_GET['lang']){ //jeśli wybrano zmianę języka, aktualizuje ciastko. setcookie('lang', $_GET['lang'], time()+12*2592000); }; function lang($zm){ if (isset($_COOKIE['lang']) && !isset($_GET['lang'])) { // sprawdzamy czy istnieje ciastko LANG i czy nie wysłano przypadkiem polecenia zmiany języka. Jeśli się zgadza to ustawiamy zmienną na zawartość ciastka. $tong = $_COOKIE['lang']; } elseif($_GET['lang']){ // jeśli zostało wysłane polecenie zmiany języka, aktualizujemy ciastko oraz ustawiamy zmienną na tą wartość. Przez to unikam konieczności odświeżania strony, po każdym kliknięciu zmiany języka $tong = $_GET['lang']; } else { //jeśli ktoś nie dokonał wcześniej wyboru języka $tong = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); }; //------------czesc II------------------ switch ($tong) { case 'pl': $tong = 0; break; case 'en': $tong = 1; break; case 'de': $tong = 2; break; case 'fr': $tong = 3; break; case 'nl': $tong = 4; break; // tu dodajemy deklaracje kolejnych wersji językowych default: $tong = 0; break; } //------------czesc III------------------ $lang = Array( //---------------------poprawność wyświetlania różnych wersji językowych--------------------------- 'jezykstrony' => array("<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-pl' content='pl' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-en' content='en' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-de' content='de' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-fr' content='fr' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-nl' content='nl' /></head>"), //------------------------------------------administracja------------------------------------------ "marka" => array('marka', 'mark', 'ABS', 'ABS', 'ABS'), 'tstatus' => array('Twój status:', 'Type of Account:', 'Art des Kontos:', 'Type de compte:', 'Type account:'), 'menu' => array('Menu', 'Menu', 'Menü', 'Menu', 'Menu'), ); return $lang[$zm][$tong]; }; ?> A tak wygląda kod odpowiedzialny za wyświetlanie danych na stronie: CODE <? $page = $_GET['page']; $id = $_GET['id']; $section = $_POST['section']; $action = $_POST['action']; $special = $_POST['special']; if ($page == 'add' && $action == 'save' && !$special) { foreach ($_POST as $key => $value) $$key = $value; } if (!$marka) $marka = 0; if (!$model) $model = 0; // ================================================================================ ================================================================= // ============================================================== osobowe =========================================================================== // ================================================================================ ================================================================= if ($section == 1) { if ($action == 'save') { if (!$errtext) { $errtext = CheckVerifyForm($section); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) { $errtext = CheckWarrningForm($section); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) { $errtext = CheckVerifyDaneKontatkoweForm('BezLogowania'); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) { $errtext = CheckVerifyTelefonyForm('BezLogowania'); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) { $errtext = CheckVerifyEmailForm('BezLogowania'); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) $ogloszenie -> Zapamietaj($_POST); $_SESSION['ogloszenie'] = $ogloszenie; // if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status != 1 && !$print) // var_export ($ogloszenie); } if (($action == 'save' && $errtext) || ($action == 'create') || ($action == 'edit')) { echo '<div id="search"> <form action="?page='.$page.'&id='.$id.'" method="post"> <input type="hidden" name="section" value="'.$section.'"> <input type="hidden" name="action" value="save"> <table width="535" cellpadding=0 cellspacing=0> <tr> <td colspan="3" style="border: solid #828282; border-width: 0px 0px 2px 0px;"> <h1>Podstawowe parametry pojazdu</h1> </td> </tr> <tr> <td width="179"> <b>'; ShowPanelLabel($section, 'marka_osobowe'); echo '</b><br>'; ShowPanel($section, 'marka_osobowe', $marka_osobowe); // pokaz marke i dalszy ciąg kodu odpowiedzialnego za wyswietlanie danych: CODE echo ' </td> <td width="179"> <b>'; ShowPanelLabel($section, 'model_osobowe'); echo '</b><br>'; ShowPanel($section, 'model_osobowe', $model_osobowe); // pokaz model echo ' </td> <td width="179"> <b>'; ShowPanelLabel($section, 'wersja'); echo '</b><br>'; ShowPanel($section, 'wersja', $wersja); echo ' </td> <td> <b>'; ShowPanelLabel($section, 'a17'); echo '</b><br>'; ShowPanel($section, 'a17', $a17); echo ' </td> <td> <table cellpadding=0 cellspacing=0 width=100%><tr><td>'; ShowPanelLabel($section, 'a18'); if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1) { echo ' </td><td>'; ShowPanel($section, 'a18a', $a18a); } echo ' </td><td>'; ShowPanel_SP($section, 'a18', $a18); echo ' </td> <td>'; ShowPanel($section, 'a64', $a64); ShowPanelLabel($section, 'a64'); CODE echo ' </td> </tr> <tr> <td> <table cellpadding=0 cellspacing=0 width=100%><tr><td>'; ShowPanelLabel($section, 'a34'); if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1) { echo ' </td><td>'; ShowPanel($section, 'a34a', $a34a); } echo ' </td><td>'; ShowPanel_SP($section, 'a34', $a34); ShowPanel($section, 'a111', $a111); ShowPanelLabel($section, 'a111'); echo ' </td> <td> <table cellpadding=0 cellspacing=0 width=100%><tr><td>'; ShowPanelLabel($section, 'a72'); if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1) { echo ' </td><td>'; ShowPanel($section, 'a72a', $a72a); } echo ' </td><td>'; ShowPanel_SP($section, 'a72', $a72); <tr> <td>'; ShowPanel($section, 'a53', $a53); ShowPanelLabel($section, 'a53'); echo ' </td> <td> <table cellpadding=0 cellspacing=0 width=100%><tr><td>'; ShowPanelLabel($section, 'a15'); if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1) { echo ' </td><td>'; ShowPanel($section, 'a15a', $a15a); } echo ' </td><td>'; ShowPanel_SP($section, 'a15', $a15); echo ' </td> </tr>'; include ('addkontaktkrok2.php3'); echo '</table> </form> </div>'; } } else if ($section == 2) { if ($action == 'save') { if (!$errtext) { $errtext = CheckVerifyForm($section); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) { $errtext = CheckWarrningForm($section); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } CODE if (!$errtext) { $errtext = CheckVerifyDaneKontatkoweForm('BezLogowania'); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) { $errtext = CheckVerifyTelefonyForm('BezLogowania'); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) { $errtext = CheckVerifyEmailForm('BezLogowania'); if ($errtext) echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>'; } if (!$errtext) $ogloszenie -> Zapamietaj($_POST); $_SESSION['ogloszenie'] = $ogloszenie; } if (($action == 'save' && $errtext) || ($action == 'create') || ($action == 'edit')) { echo '<div id="search"> <form action="?page='.$page.'&action=save&id='.$id.'" method="post"> <input type="hidden" name="section" value="'.$section.'"> <input type="hidden" name="action" value="save"> <table width="535"> <tr> <td colspan="3" style="border: solid #828282; border-width: 0px 0px 2px 0px;"> <h1>Podstawowe parametry pojazdu</h1> </td> </tr> <tr> <td width="179"> <b>'; ShowPanelLabel($section, 'markainput'); echo '</b><br>'; ShowPanel($section, 'markainput', $markainput); // pokaz marke echo ' </td> <td width="179"> <b>'; ShowPanelLabel($section, 'modelinput'); echo '</b><br>'; ShowPanel($section, 'modelinput', $modelinput); echo ' </td> <td width="179"> <b>'; ShowPanelLabel($section, 'a1'); echo '</b><br>'; ShowPanel($section, 'a1', $a1); include ('addkontaktkrok2.php3'); echo '</table> </form> </div>'; } } ?> Zadeklarowałem język strony, dodałem do kodu tablicy oraz panelu dodawania ogłoszeń: echo lang('jezykstrony'); w której mam zadeklarowane jezyki w zalezności od wybranego. Z niewiadomych przyczyn zwraca mi teraz wartość "Array" a powinno co innego. ... ;/ Ten post edytował patryk9200 7.02.2009, 09:46:59 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Proszę wstaw kod w tag [ php ], teraz się go czytać nie da.
Wyświetlanie "Array" spowodowane jest tym, że masz coś takiego (pseudo kod)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie mogę wstawić tagów "[php]" ponieważ wyskakuje mi błąd, ze post jest zbyt długi....
hmm.... w takim razie jak mam się odwołać do wybranego elementu tablicy? Chodzi mi o to żeby móc "zastąpić" element z tablicy2 elementem z tablicy1 "lang" Ta 2 jest asocjacyjna a 1 zwykła..... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Włącz wyświetlanie błędów - pewnie wywali jakiegoś E_NOTICEa, który rozwieje wątpliwści
PS. I co to za zapis: Nie można poporstu
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
<wow>
A więc tak... włączyłem wyświetlanie błedów... i mi wyskoczyło ich dość trochę, oto one: [b]Notice: Undefined variable: link in /addogloszeniekrok2.php3 on line 592 Notice: Undefined index: in /showaddengine.php3 on line 303 [/b]Notice: Undefined variable: a116 in /addogloszeniekrok2.php3 on line 585 Notice: Undefined property: s15 in /addkontaktkrok2.php3 on line 265 Notice: Undefined variable: a101 in /addogloszeniekrok2.php3 on line 512 Notice: Undefined index: checkedautos in /showaddengine.php3 on line 625 Notice: Undefined index: id in /addogloszeniekrok2.php3 on line 8 Notice: Undefined index: special in /addogloszeniekrok2.php3 on line 12 Potem sie już tylko powtarzają;/ Co mam z tym zrobić? hmmm.... może to być wina tego że było to kiedyś napisane w php3 a część jest teraz w php5 ? Zrobiłem tak jak powiedziałeś. Faktycznie odwoływanie się do elementu tablicy w ten sposób: ''.lang('language').'' jest błędne, jednakże gdu odwołuję się w ten sposób co napisałeś tzn. lang ('language') wyskakują mi dane w języku polskim które są jako pierwsze w tablicy. Dlaczego te dane nie zmieniają się gdy przełączę język na np. en, kiedy inne dane się zmieniają? Tylko te z tej tablicy nie zmieniają sie zgodnie z ustawieniami... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 23:40 |