Да, работа с базой - это отдельная тема разговора. Сейчас тут используется простейший класс. Конечно, если делать по уму - надо бы взять какую-то более-менее развитую библиотеку. Но тут опять возникает проблема совместимости. А вот и нет! При таком подходе никто не мешает использовать оба метода - старый и мой. У меня, кстати, сейчас так и работает - мне банально влом сидеть и убирать лишние строки из всех контроллеров и переделывать все шаблоны. Старые контроллеры и шаблоны работают, как есть - текстовые переменные загоняются в $this->data[], а в шаблоне юзаются по их имени. А вот новые шаблоны я уже пишу с использованием своего метода. Ведь тут фишка-то в том, что выдергивание текстов из Language происходит не заранее (на уровне контроллера, как сейчас в Opencart), а на лету - по мере обращения к ним из шаблона.Поэтому уже имеющиеся шаблоны для OpenCart (если нужные переменные добавляются в контроллере) будут работать "на ура!". Но вот шаблоны, сделанные с использованием моей методы, конечно, в стандартном OpenCart работать уже не будут.
Вопрос, конечно, спорный, как чисто теоретически, так и в данном конкретном случае. :) Но холивары затевать не хотелось бы, скажу лишь, что я лично скорость разработки ставлю значительно выше экономии "на спичках". Более того, чем выше скорость разработки, тем больше (если разработчик грамотный) профита для пользователя, т.к. за тот же промежуток времени больше "плюшек" для юзера можно напечь. Но это теория.Что же касается данного случая, то при моем подходе мы даже получаем некоторую экономию памяти:
1) Вся языковая база не грузится, используется только то, что подгружено явно вызовом $this->language->load() в контроллере
2) При моем подходе в пространство имен не загружается дополнительно большое число новых переменных (при старом подходе каждый элемент текста - это создание отдельной переменной)
3) При старом подходе все загруженные тексты хранятся в двух экземплярах - в регистре и в пространстве имен. В моем случае - все хранится только в регистре, и извлекается из массива без создания доп. переменных и лишних копий.
Ок, буду периодически делиться ими В таком случае, это не форк, а всего лишь локализованная сборка. Жаль :( Но я бы советовал серьезно подумать на тему создания реально своей ветки. Ведь может быть и такое условие - совместимость в одну сторону. Т.е. все, что делается для OpenCart должно работать в ocStore. А вот обратно - не обязательно. По одной простой причине - потому что ocStore лучше ;)