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
Форумы портала PHP.SU :: Версия для печати :: Английская версия сайта
Форумы портала PHP.SU » » Вопросы новичков » Английская версия сайта

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

1. Ubuntu - 18 Марта, 2013 - 09:26:08 - перейти к сообщению
Хочу сделать английскую версию для сайта без помощи google.tranlate, под каталогов и т.д.

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

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

Знающие, раскройте пожалуйста принципы такой организации многоязычности, что и как там работает!
2. Zuldek - 18 Марта, 2013 - 09:31:53 - перейти к сообщению
А чего там копать. Варианта 2:
1. Это либо два сайта на разных поддоменах полностью независимые друг от друга, под разными или общей админкой
2. Либо это один сайт с несколькими вариантами контента на разных языках под любую ноду/заголовок/статью/пункт меню. В этом случае, мультиязычность в административной части организуется, как дополнительное поле при добавлении любого текстового контента. Иными словами в единой бд у вас добавляются текстовые поля под каждую ноду для каждого языка.
3. Ubuntu - 18 Марта, 2013 - 09:34:16 - перейти к сообщению
Zuldek пишет:

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


А как сделать без подкалологов типа site/eng на сайте выводился тот или иной контент?
4. Zuldek - 18 Марта, 2013 - 09:38:35 - перейти к сообщению
Варианты:
1. Как вы сказали, "подкаталоги" site.com/eng
2. Поддомены eng.site.com
С точки зрения SEO, языковые поддомены актуальность ещё сохраняют (в отличии от поддоменов геозон, которые теперь можно заменить на подкаталоги)
Если по каким-то причинам не устраивают именно каталоги,ну сделайте, как site.com?len=eng. Хотя так редко поступают и это нерационально.
В чем собственно проблема: не ясно, что вам не ясно?
на физической структуре папок сайта это никак не отразится: перенаправляйте при запросе site.com/eng на site.com?local=eng
5. Ubuntu - 18 Марта, 2013 - 09:40:38 - перейти к сообщению
Я предположил, что возможно через 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.  


Как сделать, чтобы они друг другу не мешали?
6. Zuldek - 18 Марта, 2013 - 09:46:13 - перейти к сообщению
1. Они и не должны друг-другу мешать ничем. Сначала перенаправляйте на локаль (без какого-либо вывод в браузер даже заголовков), потом проверяйте авторизацию.
2. Даже если вы пишите пользователю куку языковой локали (а вы должны это делать), вы должны его редиректить на другой урл. Нельзя редиректить его на такой же урл site.com с контентом на другом языке. Это неправильно.
Вот пример правильно организации, только с городами - http://boards[dot]sarbc[dot]ru/ Принципиальных отличаев от организации языковых версий сайта нет (разве что вывод кодировки контента в заголовках страницы, если это необходимо).
7. DelphinPRO - 18 Марта, 2013 - 09:49:26 - перейти к сообщению
Ubuntu пишет:
через submit выбирается версия языка и записал все это дело в куки

Имхо, не совсем правильный вариант. URI должен быть уникален, а при таком подходе по одному и тому же адресу различный контент.
Еще одна мелочь - невозможно дать ссылку товарищу на конкретный материал на конкретном языке.
8. Ubuntu - 19 Марта, 2013 - 18:59:11 - перейти к сообщению
Спасибо всем, зашарашу с гет запросами

 

Powered by ExBB FM 1.0 RC1