Премини към съдържанието
Г. Цветанов

[PHP] Mногоезичност

Препоръчан отговор


Здравейте за много езичност преди време гледах този скрипт:

index.php

<?php

require_once 'language.php';

?>

<html>

<head>

<title><?= $text['title'] ?></title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

</head>

<body>

<p><?= $text['quiz'] ?></p>

<p><?= $text['answer'] ?></p>

<p><?= switch_language_options(); ?></p>

</body>

</html>
language.php
<?php

$languages = array('bg' => 'Bulgarian',

'en' => 'English');


if (isset($_GET['lang'])) {

$lang = $_GET['lang'];


setcookie('lang', $lang, time()+(3600*24*365));

}

elseif (isset($_COOKIE['lang'])) {

$lang = $_COOKIE['lang'];

} else {

$lang = 'bg';

}

if (!(in_array($lang, array_keys($languages)))) {

die("Грешка: няма езиков файл!");

}

require_once "{$lang}.php";

function switch_language_options() {

global $text, $languages, $lang;

$retval = $text['switch'];

$get = $_GET;

foreach ($languages as $abbrv => $name) {

if ($abbrv !== $lang) {

$get['lang'] = $abbrv;

$url = $_SERVER['PHP_SELF'] . '?' .

http_build_query($get);

$retval .= " <a href=\"{$url}\">

{$name}</a>";

}

}

return $retval;

}

?>
bg.php
<?php

/*----- всички текстове в сайта на български език -----*/

$GLOBALS['text'] = array (

'title' => 'Начало!',

'quiz' => 'К\'фо правиш?',

'answer' => 'Нищо.'

);


/*----- всички снимки в сайта на български език -----*/

$GLOBALS['imgsrc'] = array (

'image1' => 'graphics/title-bg.jpg',

'footer' => 'graphics/footer-bg.jpg'

);

?>
en.php
<?php

/*----- всички текстове в сайта на английски език -----*/

$GLOBALS['text'] = array (

'title' => 'Home!',

'quiz' => 'What are u doing?',

'answer' => 'Nothing.'

);


/*----- всички снимки в сайта на английски език -----*/

$GLOBALS['imgsrc'] = array (

'image1' => 'graphics/title-en.jpg',

'footer' => 'graphics/footer-en.jpg'

);

?>

Обаче не искам да е в този му вид, а за всеки файл да си има отделен превод. Примерно всеки език си има дадена папка, bg за български, en за английски и т.н.. И примерно когато избера английски да ми е езика по подразбиране пак да се записва в бисквитка, но при посещение на mysite.com/index.php да тегли превода от mysite.com/en/index.php, a примерно ако съм в mysite.com/account.php да си взима превода от mysite.com/en/account.php ...

Поздрави!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход


×

Информация

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