Для того чтобы ваш компонент был многоязычным, вам необходимо определить файлы языков, которые хранятся в папке 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
и что о записях, которые создаются динамически как вы переводите тему? Файлы Whit ini У меня нет проблем, которые работают – fefe
Нельзя генерировать языки динамически. Если, например, вы генерируете что-то вроде: у меня есть $ x яблоки, вам нужно использовать 'JText :: sprintf()'. Google: jtext sprintf. Затем вы передадите переменную в качестве аргумента в строку языка. Внутри определения строки языка вы можете использовать '% d' для цифр и'% s' для строк. – Ortix92
Может быть, неясно, чего я хочу. Я хочу иметь возможность переводить содержимое моего компонента на разных языках.Содержимое обрабатывается mysql. – fefe