Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010
Помог: 1 раз(а)
Вы реально не можите правильно обяснить мне. я Понял отв ас что надо две копии сайта с разными запросами, так запросы будут идти на одну таблицу и там по полю будет оперделятся запись для какого языка, или для каждой копии сайта делать свою таблицу?
EuGen
Отправлено: 12 Октября, 2011 - 14:15:47
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
и так выбреать, чем связывать ьаблицы между собой. + при этом определённо одно и тоже количество записей будут на обоих языка, + при запросе и поиске не будет прогон по тем записям которые не пренодлежат выброному языку (т.е. как вашем случии)
т.е. при добавления полей мы избавляемся вот одно таблицы (язык) и количество записей в тбалице материалы. При этом ведь по идей запрос должен быстрее проходить.
EuGen
Отправлено: 12 Октября, 2011 - 14:50:20
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
В приведенном Вами слачае на каждое добавление языка нужно будет делать ALTER TABLE; в моем случае - нет, так как структура универсальна.
Кроме прочего в Вашем случае плохо то, что меняется название поля, которое нужно выбрать, а не его значение, чего следует избегать. Например, к Вам придет запрос на отображение в немецком языке. Как исходя из Вашей структуры можно просто понять, что у Вас такого языка нет? Разве что через служебные запросы типа DESCRIBE.
Кроме прочего - сколько бы текстов ни было, сколько бы языков ни было, структура, подобная приведенной мной (там, где разделены сами token и локализация с языками) - всегда будет одинаковой.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
pantela
Отправлено: 12 Октября, 2011 - 14:55:52
Частый посетитель
Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010
Помог: 1 раз(а)
Да я понимаю что универсальнее, один вопрос только для чего служит поле token не очень понимаю
Viper
Отправлено: 12 Октября, 2011 - 15:07:21
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
который Вам нужно локализовать. В этом случае две присутствующие строки и будут представлять собой эти самые token
Каким образом Вы будете управлять ими в скрипте - вопрос реализации. Если предположить, что Вы где-то храните это в виде массива $rgTokens где ключом является номер token в БД, а значением - localizated_string, то Вам достаточно изменить шаблон так:
То есть token - это некоторое выражение внутри шаблона/сайта, которое должно быть локализовано.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
pantela
Отправлено: 12 Октября, 2011 - 15:30:23
Частый посетитель
Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010
Помог: 1 раз(а)
аа тебе более менее понятно, это ответ на мой следуюший вопрос да:
напр. есть CMS, где есть материалы и каждый новый материал выводтся на главной странице, при добавлении как вы говорили способом локлаизации материалов, при изменении языка, надо что бы выводить соотвествуюший материал на втором языке, и т.е. когда будет совподение по token тогда запросу будет ясно что нужен этот материал, а там уже будет по полю язык выбератся запись.
верно
Если нет подправте и подскажите решение.
спс.
EuGen
Отправлено: 12 Октября, 2011 - 15:35:33
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Примерно так.
Вообще можно загружать из БД все token для того языка, который у Вас сейчас в сессии, в тот самый массив $rgTokens - и затем работать с ним - вроде как
Правда если этих token слишком много, лучше разделить и выбирать только то, что нужно в конкретной странице (скажем, ввести массив соответствия страниц и номеров token, выбирая их на этой самой странице) - чтобы не загружать в память слишком много и в то же время не делать запрос для каждого token по отдельности.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
DeepVarvar
Отправлено: 12 Октября, 2011 - 19:43:28
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
EuGen а как это выглядит в админке для простого админа?
Доп. поля (вкладки дублирующих полей) для каждого языка страницы?
Или всетаки это (визуально) разные редактируемые админом страницы?
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
А для администратора это выглядит просто в виде некоторой формы, в которой, к примеру, есть два дропдауна (списка выбора) - первый со списком token а второй со списком языков. Ну и, разумеется, текстовое поле для ввода localizated_string
Удобства ради можно token не нумеровать списком - а ввести, скажем, строковые их названия, например,
и т.п. - или сделать таблицу, где номерам token ставить в соответствие некоторое примечание (вероятно, на родном - русском - языке) - и в панели для администратора отображать уже эти названия.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
DeepVarvar
Отправлено: 13 Октября, 2011 - 13:17:00
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
EuGen тогда зачем столько лишних телодвижений?
В моем варианте в админке есть дерево документов с любой вложенностью.
По сути дела "язык сайта" это просто соответствующий раздел в котором лежат документы на том или ином языке.
Админу останется только следить за ссылками в контенте документов, чтобы они указывали на правильный языковой адрес вложенности (/en/document22/ , /fr/document22/).
Но он и так обязан следить за этим.
А пользователь когда заходит на сайт, смотрим его куки, берем данные из профиля.
Языки определены по двухбуквенному стандарту. Смотрим что есть у нас, что записано в профиле. И шлем его (один раз) в соответствующий раздел или по умолчанию.
А дальше если он хочет - может и в другой языковой раздел сходить или даже переключить язык.
Токены (текстики для приветствий, кнопок, алертов, подсказок) у меня лично хранятся в виде констант с префиксом lang_ в соответствующей папке в файлах поназванию языков. (ru.lang.php, en.lang.php) и инклюдятся по условию.
Но ничто не мешает хранить эти данные в БД для расширяемости прямо в админке.
С добавлением языка и редактированием этих токенов.
Кстати человек спрашивал не про токены, а про документы на разных языках.
Это получается такие огромные "токенища" - для каждого документа?
Я же спросил как будет выглядеть не редактор токенов, а форма редактирования отдельного документа для скажем трех языков сразу?
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
DeepVarvar пишет:
Это получается такие огромные "токенища" - для каждого документа?
Нет. Читайте, пожалуйста, внимательно - их набор постоянный и не меняется (если, конечно, на сайте не появляются новые тексты)
DeepVarvar пишет:
Кстати человек спрашивал не про токены
Верно, но они пришли из моего варианта решения проблемы, озвученной автором.
DeepVarvar пишет:
Админу останется только следить за ссылками в контенте документов
Я бы это как раз и назвал Вашим определением:
DeepVarvar пишет:
зачем столько лишних телодвижений
так как по сути это предполагает правку всех документов всего раздела, тогда как предложенная структура в моем случае определяет единое устройство сайта и его контента для любого числа языков.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
DeepVarvar
Отправлено: 13 Октября, 2011 - 13:30:58
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
EuGen пишет:
если, конечно, на сайте не появляются новые тексты
С учетом того что контент агрессивно редактируется.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.