Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Английская версия сайта

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Ubuntu
Отправлено: 18 Марта, 2013 - 09:26:08
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Хочу сделать английскую версию для сайта без помощи google.tranlate, под каталогов и т.д.

Что-то в стиле vkontakte, где есть множество вариантов выбора языка.

Изрыл весь интернет, но нигде нет информации как это делается...

Знающие, раскройте пожалуйста принципы такой организации многоязычности, что и как там работает!
 
 Top
Zuldek
Отправлено: 18 Марта, 2013 - 09:31:53
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




А чего там копать. Варианта 2:
1. Это либо два сайта на разных поддоменах полностью независимые друг от друга, под разными или общей админкой
2. Либо это один сайт с несколькими вариантами контента на разных языках под любую ноду/заголовок/статью/пункт меню. В этом случае, мультиязычность в административной части организуется, как дополнительное поле при добавлении любого текстового контента. Иными словами в единой бд у вас добавляются текстовые поля под каждую ноду для каждого языка.
 
 Top
Ubuntu
Отправлено: 18 Марта, 2013 - 09:34:16
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Zuldek пишет:

2. Либо это один сайт с несколькими вариантами контента на разных языках под любую ноду/заголовок/статью/пункт меню. В этом случае, мультиязычность в административной части организуется, как дополнительное поле при добавлении любого текстового контента. Иными словами в единой бд у вас добавляются текстовые поля под каждую ноду для каждого языка.


А как сделать без подкалологов типа site/eng на сайте выводился тот или иной контент?
 
 Top
Zuldek
Отправлено: 18 Марта, 2013 - 09:38:35
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Варианты:
1. Как вы сказали, "подкаталоги" site.com/eng
2. Поддомены eng.site.com
С точки зрения SEO, языковые поддомены актуальность ещё сохраняют (в отличии от поддоменов геозон, которые теперь можно заменить на подкаталоги)
Если по каким-то причинам не устраивают именно каталоги,ну сделайте, как site.com?len=eng. Хотя так редко поступают и это нерационально.
В чем собственно проблема: не ясно, что вам не ясно?
на физической структуре папок сайта это никак не отразится: перенаправляйте при запросе site.com/eng на site.com?local=eng

(Отредактировано автором: 18 Марта, 2013 - 09:41:28)

 
 Top
Ubuntu
Отправлено: 18 Марта, 2013 - 09:40:38
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Я предположил, что возможно через submit выбирается версия языка и записал все это дело в куки setcookie('language', 'eng'...
И проверяя куки в случае eng выводил английский вариант, в случае ru русский.

CODE (htmlphp):
скопировать код в буфер обмена
  1. if ($_POST['russia']) {
  2. setcookie('language', 'ru', time() + 86400*365);
  3. header("Location: ".$_SERVER['PHP_SELF']);
  4. } else if ($_POST['england']) {
  5. setcookie('language', 'eng', time() + 86400*365);
  6. header("Location: ".$_SERVER['PHP_SELF']);
  7. }


И казалось бы рай... Но перестала производится авторизация, потому что до этой конструкции у меня стандартная конструкция проверки куки для авторизации

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if (!isset($_COOKIE['id'])) {
  3. ....бла..бла...
  4. setcookie('id', $row['id'], time() + 86400*365);
  5. }
  6.  


Как сделать, чтобы они друг другу не мешали?
 
 Top
Zuldek
Отправлено: 18 Марта, 2013 - 09:46:13
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




1. Они и не должны друг-другу мешать ничем. Сначала перенаправляйте на локаль (без какого-либо вывод в браузер даже заголовков), потом проверяйте авторизацию.
2. Даже если вы пишите пользователю куку языковой локали (а вы должны это делать), вы должны его редиректить на другой урл. Нельзя редиректить его на такой же урл site.com с контентом на другом языке. Это неправильно.
Вот пример правильно организации, только с городами - http://boards[dot]sarbc[dot]ru/ Принципиальных отличаев от организации языковых версий сайта нет (разве что вывод кодировки контента в заголовках страницы, если это необходимо).

(Отредактировано автором: 18 Марта, 2013 - 09:53:03)

 
 Top
DelphinPRO
Отправлено: 18 Марта, 2013 - 09:49:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Ubuntu пишет:
через submit выбирается версия языка и записал все это дело в куки

Имхо, не совсем правильный вариант. URI должен быть уникален, а при таком подходе по одному и тому же адресу различный контент.
Еще одна мелочь - невозможно дать ссылку товарищу на конкретный материал на конкретном языке.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Ubuntu
Отправлено: 19 Марта, 2013 - 18:59:11
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Спасибо всем, зашарашу с гет запросами
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB