Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   смена текста, echo (http://www.flasher.ru/forum/showthread.php?t=78417)

PoliskoRoman.com 16.04.2006 22:59

смена текста, echo
 
Необходимо реализовать смену языков на сайте.
Хотелось б взять текстовые фрагменты все, описать на нескольких языках в одном файле,
и при смене грузились с того файла текстовые фрагменты (use echo) на выбраном языке.
Как это грамотно сделать?

Elmir 17.04.2006 02:19

как вариант можно сделать ини файл!
создаешь ини файл:
[firstlang]
...
[secondlang]
...


и парсишь нужную секцию.

Базиль 17.04.2006 11:22

я бы сделал шаблон типа:

1.htm:

Код HTML:

<html>
<head>
<title>%title%</title>
</head>
<body>
%text%
</body>
</html>

и конфиг (а еще лучше - табличку на mysql):

Код:

[rus]
title = "Это наша страничка"
text = "Это текст странички, а кавычки тут \"экранируются\", потом их можно разэкранировать средствами PHP"

[eng]
title = "da our paga"
text = "I don't wanna 2 translate dis fckn text"

А потом делать так:

PHP код:

<?php

function callback($buf
{

  
$buf=str_replace("%title%",$_GLOBAL['title'],$buf);
  
$buf=str_replace("%text%",$_GLOBAL['text'],$buf);

  echo(
$buf);

}

ob_start("callback");

// вытаскиваем данные:
// надо из ini-файла или из таблицы вытащить переменные title и text,
// записать в $_GLOBAL['title'] и $_GLOBAL['text']

require("1.htm");

ob_end_flush();
?>

Короче, тут простор для творчества :drinks:

Skubent 17.04.2006 11:58

А я бы сделал так:
Код:

//языковые файлы
ru.lang
  $var_title = 'Русский';

eng.lang
  $var_title = 'English';

//В обработчике языка пишем
switch($var_to_lang) {
  case 0 :
      require('ru.lang');
  break;
  case 1 :
    require('eng.lang');
  break;
  default :
    echo 'Выбери язык !';
  break;
}

//дальше просто
echo $var_title;


PoliskoRoman.com 17.04.2006 23:22

спасибо за ответы.

но к я понял, во всех трёх примерах необходимо к каждому слову создавать свой файлик. А реально сделать один файл и описать в каждую переменную на трех языках.

$zagolovok = Добро пожаловать;Welcome;sdasda

$maintext = валваовлоа; sdkjsajdka; etc.

Pr0Head 18.04.2006 00:39

Цитата:

Сообщение от PoliskoRoman.com
спасибо за ответы.

но к я понял, во всех трёх примерах необходимо к каждому слову создавать свой файлик. А реально сделать один файл и описать в каждую переменную на трех языках.

$zagolovok = Добро пожаловать;Welcome;sdasda

$maintext = валваовлоа; sdkjsajdka; etc.

как вариант можно сделать так:

$zagolovok['ru'] = 'превееед!';
$zagolovok['en'] = 'wasuuuuup!';

и потом имея суффикс языка вызывать нужный, типа
include ('language.inc.php');
echo $zagolovok[$lang];

PoliskoRoman.com 18.04.2006 00:56

спасибо Pr0Head,
а как сделать что б линки не пришлось менять под каждый язык? Как продолжать сессию выбраного языка на других страницах.
И как вообще сделать выберальщик языков что б он подходил под последний пример.

Pr0Head 18.04.2006 01:11

Цитата:

Сообщение от PoliskoRoman.com
спасибо Pr0Head,
а как сделать что б линки не пришлось менять под каждый язык? Как продолжать сессию выбраного языка на других страницах.
И как вообще сделать выберальщик языков что б он подходил под последний пример.

для каждого языка линки лучше делать разными (/ru/ или /en/), чтобы поисковик мог адекватно воспринимать разноязычный контент.

само определение языка можно делать через mod_rewrite(замена урлов) или как get-параметр, например xxx.ru?lang=en/ru
записывать эту переменную в сессию и подставлять в нужных местах для вызова нужного языка

Skubent 18.04.2006 12:03

Много телодвижений получается, если в одной строке держать все языки.
Код:

$ru = 0;
$en = 1;
$st = 2;

$zagolovok = "Добро пожаловать;Welcome;sdasda";
$text = explode(";",$zagolovok);
echo $text[$ru];

И не обязательно в файле их держать, можно в базе, к примеру...

PoliskoRoman.com 18.04.2006 18:25

Цитата:

Сообщение от Pr0Head
для каждого языка линки лучше делать разными (/ru/ или /en/), чтобы поисковик мог адекватно воспринимать разноязычный контент.

само определение языка можно делать через mod_rewrite(замена урлов) или как get-параметр, например xxx.ru?lang=en/ru
записывать эту переменную в сессию и подставлять в нужных местах для вызова нужного языка

как использовать этот mod_rewrite, но я не хочу создавать каждой страници по две копии еще (на других языках)

как сделать что б, я выбираю русский, страница обновляется (имя у нее остаеться таким же), появляеться русский текст, и оно после перехода по ссылкам (которые остались такими же как и были), выводит текст на выбранном языке.


Часовой пояс GMT +4, время: 06:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.