|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
|
двуязычный сайт31.08.2012, 02:20. Показов 12921. Ответов 20
Метки нет (Все метки)
Сейчас делаю сайт на русском и английском.
И вот возник какой вопрос как правильнее реализовать двуязычность, с точки зрения функциональности, быстродействия, индексирования поисковиками и т.д. Есть варианты сделать субдомен для английского, либо просто разместить в разные папки английские и русские страницы, и третий вариант(который почему то мне ближе ) сделать все на одних и тех же страницах но в зависимости от того какой язык в куках выводить соответственно разные строки.Возможно есть и другие варианты более правильные , но мне они пока в голову не пришли .Просветите , кто понимает в этом.
0
|
|
| 31.08.2012, 02:20 | |
|
Ответы с готовыми решениями:
20
Сайт после 5 секунд заходит на другой сайт (взломали сайт) Создать сайт, оформленный как новостной сайт или блог Хочу разработать с нуля сайт, похожий на сайт знакомств. Что для этого нужно? |
|
31 / 31 / 2
Регистрация: 06.08.2012
Сообщений: 155
|
|||||||||||||||||||||
| 31.08.2012, 02:49 | |||||||||||||||||||||
|
Сделать папку lang/ в ней eng.php и rus.php
В них создаешь массивы с одинаковыми(!) имена, например: Русский:
2
|
|||||||||||||||||||||
|
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
|
|||||||||||
| 31.08.2012, 10:36 | |||||||||||
|
лучше ключ использовать английскую версию
русский:
1
|
|||||||||||
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
||||||
| 31.08.2012, 11:24 [ТС] | ||||||
|
хм интересная версия, но что то я не совсем уловил, какие у нее преимущества, скажем по сравнению с той что бы написать например так
Да и как мне кажется можно и запутаться в названиях, если под каждую фразу создавать отдельный массив? Но вот как это скажется на быстродействии сайта и на индексировании поиисковиками в одном и другом варианте.
0
|
||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 31.08.2012, 11:29 | |
|
создаете в БД две одинаковые по структуре таблицы, но с содержанием на разных языках (к примеру со столбцами id,url,title,content,left_menu,right_men u,footer) и затем просто извлекаете из нужной таблицы данные.
Добавлено через 1 минуту зависит, собственно, от самой структуры сайта. Сколько точек входа у вас, паттерн-непаттерн, и т.д.
0
|
|
|
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
|
|||||||||||
| 31.08.2012, 11:31 | |||||||||||
|
предположим на вашем сайте в 1000 местах нужно вставить фразы:
1. что проще
3. что читабельнее , гора ифов с кучей вложений где черт ногу сломит , или грамотно распределеннеы файлы /языки /стили /картинки /класы /шаблоны /ещеченить
0
|
|||||||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 31.08.2012, 11:36 | ||||||
0
|
||||||
|
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
|
|
| 31.08.2012, 11:42 | |
|
KOPOJI , предлагаешь все фразы сайта держать в базе , тоесть там например чтобы валуе на кнопу найти "отправить" или "send" обращатся к базе , выполнять запрос и фетчить его ? в резултате все альты , тайтлы , пункты меню .. этож порядка 1000 запросов на страницу ...
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 31.08.2012, 11:57 | |
|
crautcher, это на простой сайт, где немного запросов будет.
0
|
|
|
67 / 60 / 25
Регистрация: 05.05.2009
Сообщений: 131
|
|||||||||||||||
| 31.08.2012, 12:21 | |||||||||||||||
|
Выборка из базы производится один раз - выбираются все ключи и значения для выбранного языка и потом подставляются везде, где надо.
По сути получается то-же самое, что и подключить php файл с массивом, только при хранении фраз в базе их проще править/добавлять, особенно если языков больше двух. Таблицу проще использовать одну, просто с полями значений под каждый язык (это более простой вариант - при добавлении языка придётся добавлять столбец в таблицу)
При такой организации не возникает проблем с синхронизацией массивов, когда в русском массиве ключ есть, а в английском нету. Получать массив фраз для выбранного языка таким запросом
Кстати, запоминать язык в куках не лучший вариант. Кинуть кому-то ссылку на определённую языковую версию не получится, да и поисковики второй язык либо не найдут, либо найдут, но не обрадуются, найдя по одной и той-же ссылке два разных контента. лучше использовать явное указание языка в ссылках
0
|
|||||||||||||||
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
||
| 31.08.2012, 12:32 [ТС] | ||
|
crautcher, да пожалуй все таки этот подход более правильный, с ним и намного проще будет добавить например третий язык.
НО, если с вариантом который предложил spyeye, все ясно то в Вашем варианте я что то не совсем понимаю механизма как именно должна быть написана функция LoadLang ![]() Я как понял страницы с массивами нужно инклудить именно в функцию а не на страницу, и далее от того какой язык выбран функция будет возвращать элемент массива или из папки en или из папки ru. Если это так то каким образом можно выбирать массивы из разных папок у которых абсолютно одинаковое имя, как именно это реализовать в коде? Или тогда вообще не имеет смысла делать им одинаковые имена, а сделать массивы с названиями en и ru , но с одинаковыми ключами? ![]() Добавлено через 9 минут mysite.com/ru и mysite.com/en? или добавить субдомен для английского? mysite.com и en.mysite.com?
0
|
||
|
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
|
||||||
| 31.08.2012, 12:32 | ||||||
|
дак в функции тоже самое условие будет только если нету такого элемента отдаём ключ
0
|
||||||
|
67 / 60 / 25
Регистрация: 05.05.2009
Сообщений: 131
|
||
| 31.08.2012, 12:56 | ||
|
0
|
||
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
||||||||||||||||
| 01.09.2012, 08:30 [ТС] | ||||||||||||||||
|
Вообщем думал думал и решил все таки делать как описывал crautcher, почему то мне кажется что это самый нормальный в моей ситуации подход.
Хотя конечно вот это замечание Кстати, запоминать язык в куках не лучший вариант. Кинуть кому-то ссылку на определённую языковую версию не получится, да и поисковики второй язык либо не найдут, либо найдут, но не обрадуются, найдя по одной и той-же ссылке два разных контента. лучше использовать явное указание языка в ссылках вносит смуту в мои мысли ![]() Добавлено через 14 часов 15 минут мда начал делать но вот трабл не видно массива который находится в файле который инклудится, т.е lang.php
![]() Я как подозреваю, что с ООП подходом можно с этим легко разобратся при помощи public, но как быть с процедурным подходом, как сделать что бы было видно переменную? Добавлено через 14 минут Я в принципе нашел способ но подозреваю , что это не совсем правильно или может даже совсем не правильно: lang.php
0
|
||||||||||||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 01.09.2012, 09:04 | |
|
должно все работать так. может быть он у вас по другому называется, не lang.php?
0
|
|
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
|
| 01.09.2012, 09:16 [ТС] | |
|
Да нет пути правильно приписаны, ведь я когда поменял функции все стало выводится.
и это уже не первый раз такое , я когда начинал авторизацию писать, тоже хотел с одного файла в другой передать переменную, при помощи include , но тоже тогда не было видно. Может у меня какие то настройки на денвере стоят не так как нужно? хотя я ничего не менял после установки, есть ли в настройках сервера какая то функция которая отвечает за глобальность переменных, нy что то типа short_open_tag?
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 01.09.2012, 09:26 | |
|
они и не должны быть глобальными. конструкция include - это тоже самое что если бы вы весь код вставили прямо в скрипте.
P.S. у меня кстати все работает, специально еще проверил на всякий случай
0
|
|
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
|
| 01.09.2012, 09:28 [ТС] | |
|
только что попробовал на хостере действительно все работает, значит проблема имеено у меня где то в настройках сервера
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||
| 01.09.2012, 09:31 | |||||||
|
http://www.php.net/manual/ru/function.include.php
эмм.. пропишите вверху скрипта эти две строчки
Добавлено через 40 секунд ошибки какие нибудь появляются?
1
|
|||||||
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
||||||
| 01.09.2012, 10:08 [ТС] | ||||||
|
Ошибка только одна идет в принципе та же что и была, вот дословно то что показывает
Notice: Undefined variable: param in Z:\home\localhost\www\php\streetsql\bloc ks\selector.php on line 19 от смены require и include ничего не меняется вот 19 строка
хм вообщем если я делаю именно так как я написал в посте т.е специально создаю два файла и проверяю то все работает. А если вставляю в сайт то не хочет,но дело в том что у меня там немного по другому, т.е есть файл parts.php к которому я подключаю файл с функциями selector.php а уже к этому файлу подключаю ru.php который из папки lang, и вот так с двойным инклудом работать не хочет даже если подключить ru.php и к parts.php и к selector.php ![]() Добавлено через 11 минут все разобрался в своей тупости ![]() я инклудил файл с массивом в начале файла а потом открывал функцию и в ней выводил данные, ну и соответственно внутри функции этот массив не был виден
0
|
||||||
| 01.09.2012, 10:08 | |
|
Помогаю со студенческими работами здесь
20
Покрашился сайт, Что-то накосячил, сайт не доступен Двуязычный сайт Яндекс и двуязычный сайт Двуязычный сайт и Гугл. Как сделать двуязычный сайт? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|