169 похожих чатов

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

больше не переводы интерфейсов, а скорее контент и функциональность, при этом контент могут закидывать совсем разные люди в разное время. Языков не думаю что больше трех будет.
Руки конечно сразу чешутся сделать всем моделям lang_id, но интерфейсы тогда у них сильно связаны, большой опыт подсказывает что на разных языках функционал может по разному развиваться - разные рубрики(а не переводы) и т.д., и могут быть разные вьюхи; Думаю не проще сделать отдельные модели с отдельными таблицами? По сути стремиться разделить как будто это разные сайты. Да работы больше, но работа очень простая, линейная и что-то сломать намного тяжелее будет. И был опыт что одна версия языка вообще в архив ушла и больше не обновлялась.
Может что-то упустил?

9 ответов

13 просмотров

странно если разные рубрики конечно ну если вообще все разное то да

Разные сайты звучит логичнее

Лучше в модель добавить метку языка и по ней фильтровать. Например, есть одна таблица новостей: News Для вывода в нужную локализацию использовать конструктор: return News::query() ->where('locale', app()->getLocale()) ->latest() ->get() Таким образом, в результате вернутся все новости в нужной локализации, а в админке при добавлении добавить select с выбором локали, для которой будет создаваться новость. НО если разные локали координально друг от друга отличаются, то тогда лучше в разные проекты.

Глобальный скоуп накинуть можно. Был у меня мультиязычный проект на русском, английском и китайском языках.

Andrey Helldar
Глобальный скоуп накинуть можно. Был у меня мульти...

с разными категориями в рамках языков (не переводов) ? ну вообще можно да

Arman- Автор вопроса
Alexey Shatroff [Reset]
странно если разные рубрики конечно ну если вообще...

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

Arman- Автор вопроса
Andrey Helldar
Лучше в модель добавить метку языка и по ней фильт...

так собсвтенно и начал. рубрики только в виде дерева, но сделал website - ru - - category 1 - - category 1-1 - - category 2 - en - - category 1 - - category 2 потом танцы начались с тэгами и все в таком духе, нюансы еще Nova дает, в общем очень вкусным показалось решение с отдельными моделями 😅 тупо не нашел задач где мне нужно было делать выборку с одной таблицы или чтоб нужна была одна модель. кода больше, но руки развязаны каждую версию развивать с разной скоростью и направлением

Arman- Автор вопроса

> работать как "пакет". Пока такой задачи не стоит и не думаю что скоро будет, как и разносить по разным железкам и хостам. Бюджет не такой большой и поддерживать скорее всего будут джуны, поэтому хочется проще, пусть и монолит =) Усложнить успеем. Пока думаю в сторону "Кода много, но он простой"

Arman
> работать как "пакет". Пока такой задачи не стоит...

В таком случае ответ на вопрос уже содержится в твоём сообщении.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта