Автор Тема: многоязыковый интерфейс сайта  (Прочитано 7946 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zonder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоязыковый интерфейс сайта
« : 06 Марта 2003, 20:54:00 »
Не подскажите какие есть способы организации многоязыкового интерфейса сайта (алгоритмы, структуры и т.п.)

Спасибо

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
многоязыковый интерфейс сайта
« Ответ #1 : 06 Марта 2003, 20:55:42 »
все сообщения в переменные и в отдельный файл для каждого языка.
ну, будем исповедоваться?

Оффлайн zonder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоязыковый интерфейс сайта
« Ответ #2 : 06 Марта 2003, 21:07:55 »
что за сообщения ?

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
многоязыковый интерфейс сайта
« Ответ #3 : 06 Марта 2003, 21:15:23 »
сообщения интерфейса - текст, который выводится пользователю.

т.е. есть у тебя:
index.php
<? 
echo 
"Hello, world!\\n";
?>

вместо него делаешь:
index.php<? 
if(
$lang=="ru"){
   include(
"language_ru.php");
}else{
   include(
"language_en.php");
}
echo 
$lang_hello_world."\\n";
?>
language_ru.php
<? 
$lang_hello_world="Привет мир!";
?>
language_en.php<? 
$lang_hello_world="Hello world!";
?>
ну, будем исповедоваться?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоязыковый интерфейс сайта
« Ответ #4 : 06 Марта 2003, 22:39:58 »
как альтернатива:
http://www.php.net/gettext
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн zonder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоязыковый интерфейс сайта
« Ответ #5 : 06 Марта 2003, 23:08:06 »
это то ясно
это как говрится в лоб решение
а более систематизированного решения нет случайно ?

или на основе этого,.......руские файлы в одну папку, англицкие - вдругую\\ и в зависимости от языка вытаскивать те или иные файлы ?

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
многоязыковый интерфейс сайта
« Ответ #6 : 06 Марта 2003, 23:49:01 »
•••Jah\'d never let us down!•••

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоязыковый интерфейс сайта
« Ответ #7 : 07 Марта 2003, 01:27:31 »
zonder
вообще задача делится на 2 пункта:
 1. организация мультиязычного контента
 2. организация мультиязычного интерфейса.

Что касается первого, тут все зависит от того как ты свой контент храниш. Например если в БД то обычно достаточно добавить поле language и все.
Насчет интерфейса, то тут возможно использовать :
 - хранение фраз в массиве/переменных/константах (как AliMamed тебе подсказал)
 - gettext (я так понимаю, ты с ним не захотел разбираться)
 - разные шаблоны для разных версий
 - тупо сделать несколько папок ru/ en/ и в каждой свой
скрипт со своим переводом
 - кто-то еще предлагал использовать xml для этого (логика там идентична методу AliMamed-а)

Других методов я не знаю.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
многоязыковый интерфейс сайта
« Ответ #8 : 07 Марта 2003, 10:56:40 »
есть решение - все данные в базу и в зависимости от запрашиваемого языка показывать контент на русском, английском, немецком и т.д., конечно надо чтобы контент на всех языках существовал.

кстати, как поступают когда вся инфа в базе, а контент не идентичен, т.е. на одном языке те страницы есть, а на другом нету? просто интересно ;-)
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
многоязыковый интерфейс сайта
« Ответ #9 : 10 Марта 2003, 00:00:32 »
USE
1. Ничего не делают. Там, где контент не обновлен, показывается старый контент.
2. Вешают пометку "outdated" (просрочено) где-то сверху страницы или в заголовке дальше как в п1.
3. Перебрасывают на тот язык (обычно английский), который наверняка обновлен.
А что вообще по-твоему можно делать в этом случае? :)
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоязыковый интерфейс сайта
« Ответ #10 : 10 Марта 2003, 00:39:42 »
Цитировать
кстати, как поступают когда вся инфа в базе, а контент не идентичен, т.е. на одном языке те страницы есть, а на другом нету? просто интересно
ссылки на страницы скриптом строить. И скрипт должен проверять какие страницы есть на этом языке и только на них показывать ссылки
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн zonder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоязыковый интерфейс сайта
« Ответ #11 : 10 Марта 2003, 16:50:58 »
а может кто нибудь пояснить, что такое gettext

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоязыковый интерфейс сайта
« Ответ #12 : 10 Марта 2003, 17:33:04 »
это программа, разработанная как раз для того чтобы позволить разработчикам ПО легко делать мультиязыячные интерфейсы в своих программах.
Что касается gettext+php то есть несколько статей на популярных забугорных сайтах по php (ссылки не помню) ну и та ссылка что я выше давал.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн zonder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоязыковый интерфейс сайта
« Ответ #13 : 10 Марта 2003, 18:21:02 »
А про использование gettext+php нет статей по русски ?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоязыковый интерфейс сайта
« Ответ #14 : 10 Марта 2003, 21:47:03 »
Конечно нет =)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28