здесь на моем сайте был установлен osclass script.it должен быть многоязычным, переводиться на местный сингальский (si_SI). категории были также обновлены как на сингальском, так и на английском языках. но на начальном этапе при переключении на языки его категории были показаны только на английском языке. У кого-нибудь было решение показывать категории и на других языках?
интерфейс с сингальским языком
http://i60.tinypic.com/17cy9j.jpg «интерфейс с сингальским языком»
интерфейс с английским языком
http://i59.tinypic.com/314s1u1.jpg «интерфейс с английским языком»
когда вы выводите категории в элементе select, он, вероятно, должен быть готов к переводу. например <?php _e('categoryName', 'translationName');?>
Ошибка Osclass. Они генерируют плохой SQL для категорий:
SELECT *
FROM ((SELECT a.*, b.*, c.i_num_items, FIELD(fk_c_locale_code, 'sv_SE') as locale_order
FROM (oc_t_category as a)
INNER JOIN oc_t_category_description as b ON a.pk_i_id = b.fk_i_category_id
LEFT JOIN oc_t_category_stats as c ON a.pk_i_id = c.fk_i_category_id
WHERE b.s_name != ''
AND a.b_enabled = 1
ORDER BY locale_order DESC) dummytable)
GROUP BY pk_i_id
ORDER BY i_position ASC
Это пример SQL для Швеции. Сам SQL упорядочивает строки по locale_order. Который равен 1 — sv_SE и 0 — en_US. И просто пытается сгруппировать по pk_i_id. На некоторых конфигурациях mysql это работает, но на некоторых нет.
Как указано в справочном руководстве MySQL (https://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html) значения, выбранные расширением GROUP BY, являются неопределенными — не «гарантировано», что в конечном результате будет выбрана первая строка (top-> down) с отличным значением.
В этом сообщении нет решения.