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 :: Сайт на 2 языках

 PHP.SU

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


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

> Описание: CodeIgniter
pantela
Отправлено: 09 Октября, 2011 - 00:27:52
Post Id



Частый посетитель


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


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




На фреймворке CodeIgniter стоит задача сделать в проекте 2 языка, восновном проект виде блога, как праивльно релизовать локализацию проекте. На сколько я знаю есть библиотека которая отвечается за локализацию, но структуру БД как сделать? Делать так: т.е. у меня таблица "материалы" и там етсь поле "Название", т.е. добавить ещё одно поле для второго языка? А если язывок будет больше, тогда столько же поле добавлять? Как то праивльно не лзя сделать.
спс.Ув.
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Октября, 2011 - 00:37:42
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Нее, к самим документам никаких полей не надо добавлять.
Если админу будет надо - пусть создает страницу с англицким названием и текстом внутри и вкладывает её в РАЗДЕЛ английской версии сайта.
Создаст раздел с URL = "/en/" и туда все англицкие вкладывает.

Поддержку языков нужно делать на кнопках формы, алертах, варнингах, приветствиях...
 
 Top
pantela
Отправлено: 09 Октября, 2011 - 00:55:34
Post Id



Частый посетитель


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


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




Хмм примерно понял о чём вы, но напр елси надо сделать перевод Разделов, категории, подкатегории, меню.... Растерялся
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Октября, 2011 - 01:18:17
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Структура сайта - это дерево разделов.
Если нужно - пусть пишут и создают разделы на тех языках, на каких им надо.
Ваша задача - реализовать возможность создания разделов и страниц любой вложенности.
(Добавление)
Или вы меню и названия разделов хотите прописать "костылями" прямо в шаблоне?
Зачем тогда вообще взяли в руки CI, наверстали бы хтмл-статики..
----
Генерируйте все с учетом локали пользователя.
 
 Top
pantela
Отправлено: 09 Октября, 2011 - 01:26:59
Post Id



Частый посетитель


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


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




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

меню не костыто в шаблоне, он через запрос выводится с базы.
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Октября, 2011 - 14:13:47
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




pantela пишет:
он через запрос выводится с базы
Ну так пусть запросом выводит английское меню для английской версии, а русское для русской.
Нужны ДВЕ реальные копии всех страниц, одна русская, другая английская.
Причем русских страниц может быть другое кол-во.
Неужто я непонятно объясняю?
Генерируйте меню из тех названий разделов, которые нужны..
PHP:
скопировать код в буфер обмена
  1. $url = "/"; // ага, тащим русские разделы
  2. $menu = myGetMenuFunction($url);

PHP:
скопировать код в буфер обмена
  1. $url = "/en/"; // а тут английские
  2. $menu = myGetMenuFunction($url);

(Добавление)
/
--- раздел 1
--- раздел 2
--- раздел 3
--- --- подраздел 1 (от раздела 3)

--- en
--- --- part 1
--- --- part 2
--- --- part 3
--- --- --- subpart 1 (of part 3)
 
 Top
pantela
Отправлено: 09 Октября, 2011 - 17:53:09
Post Id



Частый посетитель


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


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




это всё понятно, тут вопрос по тому что в одной таблице деражть и русс текст и англиский, или как понял, или иметь для каждого языка свою таблицу.
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Октября, 2011 - 18:51:43
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




В одной
 
 Top
Данил_123
Отправлено: 09 Октября, 2011 - 19:02:59
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




1.Кинь файлы en версии кинь в /en/, и добавь в ru сайт тег
CODE (html):
скопировать код в буфер обмена
  1.  <a href="http://site.su/en/" title="en">

И наоборот..
2.Ну или через селект
CODE (html):
скопировать код в буфер обмена
  1. <select name="lang">
  2. <option value=1>en
  3. <option value=2>ru
  4. </select>
и php:
PHP:
скопировать код в буфер обмена
  1. if($_POST['lang']==1) include_once("/en/index.php");
  2. else include_once("/ru/index.php");
Ну дальше понятно

(Отредактировано автором: 09 Октября, 2011 - 19:11:05)



-----
http://mysitecost.ru
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Октября, 2011 - 20:48:49
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Данил_123 пишет:
кинь в /en/

А если будет 20 языков?
Данил_123 пишет:
Ну дальше понятно

Что вам ничего не понятно..
 
 Top
pantela
Отправлено: 11 Октября, 2011 - 02:16:30
Post Id



Частый посетитель


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


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




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

Вот и запутался на что делать склоноть на материалы или на таблицы. Однако

Как вобще правильно сконструиктировать БД под мультиязыковый сайт.
 
 Top
DeepVarvar Супермодератор
Отправлено: 11 Октября, 2011 - 02:43:35
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Все просто.
Есть таблица с документами.
id,parent,name,link,h1,menu,full
(айди,айди родителя, имя в меню, ссылка на документ,h1 заголовок,к какому меню относится, текст страницы)

Не важно сколько языков будет на сайте.
Создаете раздел (документ) с ссылкой = "/" и в него кладете все документы на русском.
Создаете раздел (документ) с ссылкой = "/en/" и в него кладете все документы на английском.
Создаете раздел (документ) с ссылкой = "/china/" и в него кладете все документы на китайском.

Выводите языковые ссылки на эти разделы и все.
Кто как и какими статьями будет эти разделы заполнять - не ваше дело.
Захотят - еще один раздел на французском добавят.

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

Вам всего лишь нужно реализовать дерево документов.
(Добавление)
Как много в этом "всего лишь"... Подмигивание
 
 Top
pantela
Отправлено: 11 Октября, 2011 - 14:27:47
Post Id



Частый посетитель


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


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




Причём тут дерево Однако Когда у меня вопрос стоит о том как всё информацию хранить в БД. Хм т.е.
Напр. таблица материалов 3 варианата я вижу
1. id | title_rus | title_eng | text_rus | text_eng - т.е. вывод будет взависимости от поля title_rus или title_eng - Но при этом у нас много полей в таблице будет

2. id | title | text - т.е. пол ID записи будет определятся какому языку относиться язык - Но при этом у нас записей будет в таблице

3. id | title | text и ID | items_id | lang - т.е. 2 таблицы будет и вторая таблица будет опеределять какому языку отнести даную запист, а определение будет по полю items_id, - Но тут будет одинаковое количество записей и п в одной таблице и в другой, и по JOIN Будет связка

4. id | title_rus| text_rus и id | title_eng | text_eng - т.е. 2 таблицы и каждый язык отвечает за свою таблицу - Но при этом у нас будет много таблиц, но все записи будут по папкам языков.

Так какой вариант выбрать, или я не все перечислил ещё Однако Сайт на 2 языках плонируется, восновном будут много материалов, тут какая нагрузка будет у кого сомжите по порядку перечислить виде %, + какой вариант более гибкий потом при доп. доработках проекта.
Дайте пожалуйсто ответ коректный нуббу, не решусь как делать.

спс.Ув.
 
 Top
DeepVarvar Супермодератор
Отправлено: 11 Октября, 2011 - 16:09:35
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Я опускаю руки...
 
 Top
pantela
Отправлено: 11 Октября, 2011 - 17:28:09
Post Id



Частый посетитель


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


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




Ну просто обясни и дай ответ на мои примерах какие плусы и минусы у этих вариантов, и % нагрузки какой ~ если между ними сравнить.
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB