Я обычно использую первый вариант - один инфоблок, и для каждого перевода своё свойство.
например, если нужно создать инфоблок "Новости", а сайт трехязычный (к примеру, "русский", "англисский", "немецкий", то создаю у инфоблока дополнительные свойства:
и, если язык отличается от языка по умолчанию - то подставляю в компоненте то или иное значение из свойства. А если язык по умолчанию - то беру стандартные (NAME, PREVIEW_TEXT и DETAIL_TEXT).
второй вариант использую реже, только если значения свойств для всех языков одинаковые (например, числа, или привязка к элементам инфоблока). Тогда можно перевод фраз сделать через языковые файлы шаблона, и набор свойств создать только в одном экземпляре.
третий вариант - тоже имеет право на жизнь, однако, если три и более языка, и большой каталог товаров - то это очень накладно, так как нужно дублировать много информации (цены, картинки, сортировка, привязки к элементам и тд), и это сложно и неудобно для редактора
Но только представьте, у вас инфоблок в котором есть свойство с привязкой типа "список", и вам нужно будет поддерживать актуальность списков на каждом инфоблоке, даже если списки идентичны.
Или каталог товаров, и у каждого товара есть привязка к инфоблоку производителей, для того чтобы два языка делать мне нужно будет вести одновременно два инфоблока товаров, два инфоблока производителей, следить чтобы привязка между ними совпадала. Вобщем, это просто два отдельных сайта. Где здесь многоязычность - не понятно.
Щас думаю по поводу создания модуля, который будет автоматом создавать/удалять элементы в других инфоблоках, то есть, чтобы многоязычность была на разных инфоблоках, но все управление велось из одного инфоблока. Так как костылей действительно нужно очень много щас делать (поиск, сео-заголовки по шаблону).
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».