2013-09-23 3 views
4

Каким будет лучшее обходное решение для создания совместимой пользовательской компонентной платформы joomla3.1? Что я имею в виду у меня есть сайт работает на 3-х языках, мой компонент должен быть в состоянии показать переведенные элементы моего компонентаjoomla custom component translation compability

realestates 

    --realestate(items) - en-EN 
    --realestate(items) - de-DE 
    --realestate(items) - cn-CN 

Был бы хорошее решение продлить мою таблицу продуктов с колонкой translation который держит язык перевода код каждый раз, когда запрос будет принимать это во внимание

select * item from realestets where translation = 'en-EN' 

или есть лучший способ сделать это?

ответ

3

Для того чтобы ваш компонент был многоязычным, вам необходимо определить файлы языков, которые хранятся в папке language как на административной, так и на публичной стороне веб-сайта. Этими языковыми файлами являются файлы .ini, которые должны быть определены для каждого языка, который вы хотите включить. Так что если вы английские и голландские файлы .ini файлы должны быть в:

/language/en-GB/en-GB.com_yourcom.ini

/language/nl-NL/nl-NL.com_yourcom.ini

Тогда каждая строка должна быть передана в метод _() переводчик (да это подчеркивание) в JText классе например:

JText::_("COM_YOURCOM_STRING") где COM_YOURCOM_STRING - это просто строка в вашем компоненте.

Я рекомендую использовать короткие описания строк, если строка, которую вы переводите, представляет собой большой блок текста.

EDIT: Для вашего конкретного случая я бы добавил столбец translation_id к вашей таблице, где хранятся предметы. Затем создайте новую таблицу с 3 (или 4) столбцами, где хранятся переводы:.

id, item_id, (language), translation

В вашем компоненте XML вы можете добавить запись, которая генерирует ниспадающее меню, чтобы определить, какой язык вашего товара в случае, если это ничего, кроме языка по умолчанию, он должен создать новую запись в таблице переводов.

Я также предложил бы посмотреть, как Joomla! управляет языками внутри, а также работает Joomfish!

Хорошие ресурсы:

http://docs.joomla.org/Embedding_translatable_strings_in_the_template

http://docs.joomla.org/Specification_of_language_files

http://docs.joomla.org/Language_Guidelines_for_3rd_Party_Extensions

+0

и что о записях, которые создаются динамически как вы переводите тему? Файлы Whit ini У меня нет проблем, которые работают – fefe

+0

Нельзя генерировать языки динамически. Если, например, вы генерируете что-то вроде: у меня есть $ x яблоки, вам нужно использовать 'JText :: sprintf()'. Google: jtext sprintf. Затем вы передадите переменную в качестве аргумента в строку языка. Внутри определения строки языка вы можете использовать '% d' для цифр и'% s' для строк. – Ortix92

+0

Может быть, неясно, чего я хочу. Я хочу иметь возможность переводить содержимое моего компонента на разных языках.Содержимое обрабатывается mysql. – fefe