[Help] Проблем с многоезичен уеб

lisichok

New Member
Joined
Jun 14, 2010
Messages
306
Reaction score
35
Направих си един ланг файл и го include-нах. Дефинирал съм си думичките по следния начин:

Code:
$lang['neshto'] = "Нещо";

Проблема обаче е на местата където има функция echo или show_error. Там незнам как да извикам $lang['neshto']. Пробвах какви ли не начини и не става..

Ето пример:

Code:
show_error("$warning_start $lang['old_pass_wrong'] $warning_end");

Иначе в html-а си го викам така:
Code:
<? print $lang['neshto']; ?>

Ама при show_error и echo не успявам..
 
Направих си един ланг файл и го include-нах. Дефинирал съм си думичките по следния начин:

Code:
$lang['neshto'] = "Нещо";

Проблема обаче е на местата където има функция echo или show_error. Там незнам как да извикам $lang['neshto']. Пробвах какви ли не начини и не става..

Ето пример:

Code:
show_error("$warning_start $lang['old_pass_wrong'] $warning_end");

Иначе в html-а си го викам така:
Code:
<? print $lang['neshto']; ?>

Ама при show_error и echo не успявам..

Написал си пълна простотия... и в HTML няма начин да викнеш PHP :), но както и да е :p

Ето ти функция и всичко др...

Code:
// Language function by killar4eto 2010
function lang(){
if($l = htmlspecialchars($_GET[lang]))
{
if(is_file("./lang/$l.php"))
{
 include "./lang/$l.php";
 $_SESSION[lang] = $l;
}
else{
 include "./lang/$_SESSION[lang].php";
}
}
else{
 $_SESSION[lang] = "english";
}
if($_GET[lang] == "")
{
 include "./lang/english.php";
}
}

За да го include-неш се прави така:
Code:
<?php
lang();
?>

А за да работи се прави така:
Code:
<?php
define("SHOW_ERROR1", "Това е грешка 1");
?>

Capish? (angel)
 
Не ме разбра. Направил съм си функция и всичко, но ето в такива ситуации незнам как да извикам изречението от ланг файла:

Code:
if ($pw_check <= 0){$error = 1; 
                           show_error("$warning_start Старата Парола е Грешна! $warning_end"); 
                  }
 
Не ме разбра. Направил съм си функция и всичко, но ето в такива ситуации незнам как да извикам изречението от ланг файла:

Code:
if ($pw_check <= 0){$error = 1; 
                           show_error("$warning_start Старата Парола е Грешна! $warning_end"); 
                  }
Опитай с:
PHP:
show_error($warning_start.$lang['ne6to'].$warning_end);
 
С show_error се оправих. Стана така:

{$lang['neshto']}

Ама все още се мъча с echo-то. При него не става така...

Edit: До колкото разбрах от тестовете ми, при echo-то не става, защото ланг файла не се е инклуднал както трябва...

Edit2: Това не работи единствено при файлове от сорта на clear_skills_do.php
 
Last edited:
С show_error се оправих. Стана така:

{$lang['neshto']}

Ама все още се мъча с echo-то. При него не става така...

Edit: До колкото разбрах от тестовете ми, при echo-то не става, защото ланг файла не се е инклуднал както трябва...

Edit2: Това не работи единствено при файлове от сорта на clear_skills_do.php

Вероятно имаш проблеми с видимостта на променливите. Направи го с константи.
 
С show_error се оправих. Стана така:

{$lang['neshto']}

Ама все още се мъча с echo-то. При него не става така...

Edit: До колкото разбрах от тестовете ми, при echo-то не става, защото ланг файла не се е инклуднал както трябва...

Edit2: Това не работи единствено при файлове от сорта на clear_skills_do.php

Абе използвай моя вариант!!!

и в index ги викаш като <?=SHOW_ERROR1;?>, не е ли просто ? (wait)
 
Не ми трябват константи. Най удачен си е моя скрипт. Проблем ми прави само при 3 файла и ще намеря начин да разреша проблема. :)
 
Не ми трябват константи. Най удачен си е моя скрипт. Проблем ми прави само при 3 файла и ще намеря начин да разреша проблема. :)
Извинявай, но всеки за многоезичен сайт използва константи, защото с тях няма проблеми с видимостта, така че не мисля, че твоят скрипт е най-удачен. Препоръчвам ти да използваш този на killar4eto.
 
Last edited:
  • Like
Reactions: killar4eto
Извинявай, но всеки за много езичен сайт използва константи, защото с тях няма проблеми с видимостта, така че не мисля, че твоят скрипт е най-удачен. Препоръчвам ти да използваш този на killar4eto.

При мен структурата е точна, няма грешка, а неговата е нещо непонятно за "кодерите" :) (devil)