Смена языка сайта

Sergey2020

Новичок
Как можно реализовать смену языка на страницах сайта? Если содержимое сайта динамическое. Я вижу два способа:
1. Создать для каждого языка свои шаблоны. С одной стороны - это просто, с другой - по-моему не правильно. В случае смены дизайна, придется переписывать шаблоны каждого языка.
2. В шаблонах на каждый текст прописать переменные. И при вызове - подменять переменные в зависимости от выбранного языка. Мне кажется - это будет сильно грузить сервер...

Какие ещё могут быть варианты? Либо мои варианты имеют право на жизнь?

Например, как устроена смена языка в социальных сетях: facebook, vk???
 

С.

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

KorP

Новичок
я обычно ставлю куку с языком и в зависимости от выбранного языка - забираю данные на нужном языке
 

KorP

Новичок
По-моему всё логично - в зависимости от того где и как они хранятся :DDD
 

Sergey2020

Новичок
а как ты хранишь инфу на дефолтном языке?
Я в самом начале перечислил оба варианта, и минусы, которые я в них вижу. Тут скорее даже вопрос не про хранение а про способ генерирования. Хранение зависит от того, как выводить страницу.

если вариант 1, то для каждого языка - своя папка, а в ней полный комплект шаблонов.
если вариант 2, то шаблоны в одном комплекте, но в каждом шаблоне текст заменен на переменную. и в зависимости от языка - ставим нужную переменную (на нужном языке) из массива переменных на всех языках.
 

KorP

Новичок
э? ты данные хранишь в файлах? при чём тут шаблоны то? или тебя интересует вывод каких-нить кнопок на нужном языке?
 

Sergey2020

Новичок
э? ты данные хранишь в файлах? при чём тут шаблоны то? или тебя интересует вывод каких-нить кнопок на нужном языке?
я блоки шаблонов храню в файлах...
кнопки меня не интересуют...

шаблоны как раз таки причем.
как сделать так, чтобы в зависимости от выбранного языка (прописанного в куки или по нажатию на ссылку(кнопку) с нужным языком) содержимое сайта выводилось на выбранном языке. причем количество и разнообразие языков может быть очень большим. Это не 2-3 языка... а например 20-30...
 

KorP

Новичок
я видимо деградирую в выходные дни, я не пойму о чём ты говоришь - шаблон это html вёрстка, данные это данные, данные лежат в бд, в чём проблема выбирать данные из бд на нужном языке? не?
 

Sergey2020

Новичок
я видимо деградирую в выходные дни, я не пойму о чём ты говоришь - шаблон это html вёрстка, данные это данные, данные лежат в бд, в чём проблема выбирать данные из бд на нужном языке? не?
В шаблоне, помимо данных, которые я беру из БД, есть ещё и стандартный текст. Ну, например, на этом сайте... Конечно же имя пользователя, дату регистрации, кол-во сообщений нужно брать из БД....но есть куча слов, которые никогда не меняются. Вот некоторые из них: слово "ответить" на кнопке, слово "главная", слово "форум".... или в описании пользователя "на сайте с", "сообщения"... и т.п. вне зависимости от того кто заходит на форум это будет отображаться всегда одинаково... это просто часть дизайна... и хранить в БД это не логично.... но при смене языка... эти слова нужно поменять... на соответствующий перевод...
 

KorP

Новичок
вы меня конечно извините, но
Если содержимое сайта динамическое.
Вот некоторые из них: слово "ответить" на кнопке, слово "главная", слово "форум".... или в описании пользователя "на сайте с", "сообщения"... и т.п.
какой это в Ж динамический контент?

тогда верный совет был уже во втором камменте
 

Sergey2020

Новичок
вы меня конечно извините, но


какой это в Ж динамический контент?

тогда верный совет был уже во втором камменте
а где я говорил про перевод "динамического контента"?

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

и вопрос стоит в реализации перевода именно "общих слов"...

А во втором сообщении был не ответ... а перефразированное моё первое сообщение... В своем вопросе я сказал всё то, что повторил автор второго сообщения... А я просил совета: какие есть более эффективные варианты....
 

KorP

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

Sergey2020

Новичок
насчет "динамического" - извини... я уже тупить начинаю и заговариваться...
 

Sergey2020

Новичок
Нашел решение!!!
Хороший вариант... Который является смесью моих двух вариантов, про которые я писал в начале топика...
Но в этом среднем варианте в случае смены дизайна, НЕ придется переписывать шаблоны каждого языка.
И это НЕ будет сильно грузить сервер...

memcache - супер!!!




Но дизайн достаточно менять в одном месте... и сервер не грузит
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Угу, супер, пока у тебя не начнутся потери данных, из-за протухания кеша или недостаточности оперативки. А так все ок.
 

mustafa

Новичок
возьми у себя там где хтмл код, в шаблонах, слова, фразы и пр. пропускай через какой то вью хелпер
<button> <?php $this->translate("Отправить"); ?> </button>
дальше проверяется что за язык у тебя и находится перевод слова из бд или файлов, тут уже без разницы.
 
Сверху