Собственно, думаю тема понятна. Нужно организовать мультиязычность на сайте (два языка). Был выбран способ использовать для каждого из языков отдельное поле в инфоблоке.
Таким образом остается два варианта именования полей:
1) Поля для русского языка так и оставлять без префикса (например, NAME, DETAIL_TEXT), а поля для английской версии именовать с префиксом (NAME_en, DETAIL_TEXT_en)
2) Поля для всех языков именовать с префиксом.
Плюсы первого способа - дефолтные поля типа NAME,PREVIEW_TEXT,DETAIL_TEXT остаются во многих инфоблоках для русской версии
Минусы первого - для того, чтобы долезть до нужного свойства, например NAME, нужно проверять, что за язык сейчас выбран. Если русский, то отображаем $arResult['NAME'], если нет - $arResult['PROPERTIES']["NAME".$prefix]['VALUE'];
Плюсы второго способа - все поля подчиняются одному правилу именования {NAME_FIELD_prefix}.
- не нужны проверки на выбранный язык, поля всегда отображаются как $arResult['PROPERTIES']["NAME".$prefix]['VALUE'];
Есть ли предпочтения по этому вопросу?
Таким образом остается два варианта именования полей:
1) Поля для русского языка так и оставлять без префикса (например, NAME, DETAIL_TEXT), а поля для английской версии именовать с префиксом (NAME_en, DETAIL_TEXT_en)
2) Поля для всех языков именовать с префиксом.
Плюсы первого способа - дефолтные поля типа NAME,PREVIEW_TEXT,DETAIL_TEXT остаются во многих инфоблоках для русской версии
Минусы первого - для того, чтобы долезть до нужного свойства, например NAME, нужно проверять, что за язык сейчас выбран. Если русский, то отображаем $arResult['NAME'], если нет - $arResult['PROPERTIES']["NAME".$prefix]['VALUE'];
Плюсы второго способа - все поля подчиняются одному правилу именования {NAME_FIELD_prefix}.
- не нужны проверки на выбранный язык, поля всегда отображаются как $arResult['PROPERTIES']["NAME".$prefix]['VALUE'];
Есть ли предпочтения по этому вопросу?