Реализация мультиязычности на сайте

V1
На сайте с 14.03.2007
Offline
172
#61
webinfo #:
Контент тоже может только изредка меняться. Так что пожалуйста: поналепил кучу файлов с контентом - и в путь, никто не мешает. Просто это принципиально разные подходы, и без разницы, контент это или ваши "интерфейсы".

Но контент обычно периодически добавляется.

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

S3
На сайте с 29.03.2012
Online
366
#62
webinfo #:
На сервере всё хранится в файлах на диске или в оперативной памяти. В том числе и БД. Но БД специально оптимизирована именно для работы с данными. Поэтому где "быстрее" - большой вопрос. Зависит от структуры данных и их объёма.

Почему это вопрос? Лично я взял и проверил - это называется профилирование запросов. И как раз на маленьких обьемах БД проигрывает всухую. Я уже писал. файлы, в которых хранятся данные  сами себя читать не умеют. Для этого над БД висит СУБД. И это не  самая легкая штука. Тут не надо оперировать догадками, это проверяется за 5 минут.

webinfo #:
В файлах json можно вообще хранить все данные

Нельзя. Точнее конечно впихнуть-то можно, но вот эффект какой будет? json - для хорошо структурированных данных. SQLDB - гибче, проще работать с разными форматами и типами. 

webinfo #:
Для реализации мультиязычности правильнее использовать те же базы данных.

Я не вижу обоснований, можно тут поподробнее? Почему правильнее? Каждый раз ходить на сервер, чтобы собрать менюшку из 20-30 значений? Думать как реализовать вложеность? 

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

S3
На сайте с 29.03.2012
Online
366
#63
WebStorm #:
хранение в пхп файлах, сам так храню,

Вот интересно, что? Это очень дилетанские подход. Хранить прямо в коде можно данные, которые гарантированно никогда не изменятся после выхода в прод. И даже в этом случае это лучше хранить в переменных окружения, вычитывая их из .env файла. 

и расходы на чтение файла и на работу интерпретатора одинаковые

vitaliy11 #:
нужно по возможности меньше делать запросов к базе данных

Однозначно. Просто тут вебмастера, воспитанные на жутком вордпрессе, котором все собирается из базы. А вместо оптимизации начинается игра с кэшами...

W1
На сайте с 22.01.2021
Offline
306
#64
Sly32 #:
Почему правильнее?

Потому что если ты избрал способ хранения данных в реляционной БД, то правильнее придерживаться этого выбора, если нет достаточных оснований для иного. Единообразие всегда предпочтительнее при прочих равных условиях.

Sly32 #:
Каждый раз ходить на сервер, чтобы собрать менюшку из 20-30 значений?

Вообще-то во всех популярных CMS почему-то "ходят" и собирают. Но никто не мешает тебе вообще жёстко вписать меню в шаблон, так тоже делают.

Sly32 #:
Думать как реализовать вложеность?

Всё уже давно придумано.
И что это у тебя за проект такой, в котором мультиязычность реализована только для меню? А всё остальное - на одном языке будет?

Sly32 #:
для тех кто внимательно читал

Внимательно читать ваши перепалки - это работа не для ленивых.

Sly32 #:
это прототип,  чтобы потом перейти к noSQL базе

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

Мой форум - https://webinfo.guru –Там я всегда на связи
S3
На сайте с 29.03.2012
Online
366
#65
webinfo #:
Вообще-то во всех популярных CMS почему-то "ходят" и собирают.

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

W1
На сайте с 22.01.2021
Offline
306
#66
Sly32 #:

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

Значит, людей вводит в заблуждение заголовок темы.

WS
На сайте с 01.11.2008
Offline
160
#67
Sly32 #:

Вот интересно, что? Это очень дилетанские подход. Хранить прямо в коде можно данные, которые гарантированно никогда не изменятся после выхода в прод. И даже в этом случае это лучше хранить в переменных окружения, вычитывая их из .env файла. 

и расходы на чтение файла и на работу интерпретатора одинаковые

языковые файлы, если вы не в курсе, они есть во многих популярных cms (например DLE) и хранятся также, как и у меня в  отдельных пхп файлах с объявлениями массивов, в отдельных директориях для каждого языка, они как раз и не изменяются, в вашем интерпретаторе расходы может быть и одинаковые, а в пхп нет, при включённом opcache они компилируются в байт код и никакого парсинга кода программы в дальнейшем не происходит, всё работает очень быстро, более того, даже скомпилированные пхп файлы я храню на рам диске, всё читается из оперативной памяти

PS: и да, если хотите не по дилетантски, используйте gettext  https://habr.com/ru/articles/73554/ , а я буду наслаждаться высокой скоростью своего велосипеда

Международные ягнята
Международные ягнята
  • 2009.10.28
  • habr.com
Несмотря на то, что мировая культура в лице Википедии и Пола Маккартни уверяет нас, что Mary had a little lamb, на территории одной восьмой части суши продолжают считать, что на самом деле «У Мэри был ягнёнок». Кто же на самом деле был у Мэри, и как записать это на разных языках мира? Попробуем выяснить это (а также понять, что думают по этому...
S3
На сайте с 29.03.2012
Online
366
#68

Забавно. сначала ты агитируешь за 

WebStorm #:

нужно ввести в указанной таблице поле с идентификатором меню и вытаскивать записи по нему и по языку

а потом оказывается, что 

WebStorm #:
языковые файлы, если вы не в курсе, они есть во многих популярных cms (например DLE) и хранятся также, как и у меня в  отдельных пхп файлах

WebStorm #:
они как раз и не изменяются, в вашем интерпретаторе расходы может быть и одинаковые, а в пхп нет,

По сравнению с чем? Сделать запрос в базу, хранить в коде, хранить в файлах?  Вы уж определитесь. В Питоне тоже весь код компилится в байт-код. Хранить настройки в коде - bad practice, почитайте может книги по чистому коду. Причин изменения кода может быть две -  обнаружение  бага и изменение функциональности. Если мне для расширения меню нужно менять данные в коде - это не код а мусор.

Gettext - тарая и известная штука, полезная, но в моем случае избыточная. С таким же успехом я могу AI использовать для перевода. 
Моя цель - с наименьшими расходами перевести интерфейс.

WebStorm - Профиль вебмастера - Форум об интернет-маркетинге
WebStorm - Профиль вебмастера - Форум об интернет-маркетинге
  • 2024.02.14
  • searchengines.guru
WebStorm - Профиль вебмастера
WS
На сайте с 01.11.2008
Offline
160
#69
где я агитировл за хранение текстов интерфейса в базе? я просто ответил на твой вопрос "а что я буду делать со строками из базы"
S3
На сайте с 29.03.2012
Online
366
#70
webinfo #:
Значит, людей вводит в заблуждение заголовок темы.

Ну вот и стоило бы прочитать сначала, о чем речь, прежде чем приходить и демонстрировать отсутствие понимания вопроса.  Для моих проектов нормально использование нескольких ресурсов для хранения данных - Mongo/Dynamo,  Postgresql/Oracle, Redis,  теперь вот на горизонте Neptune графовый.
Мне неинтересно нарисовать сайтик под Adwords, мне интересен сервис, который будет полезен. И повторюсь, по свои задачи - свой способ.  Для авторизации и хранения данных пользователя лучше  sqlDB  ничего не придумано.  А например  создать курс какой то по предмету с квизами, задачами - тут уже noSql.  И так далее. 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий