Symfony 1.4: связать много языков с таблицей - PullRequest
1 голос
/ 10 ноября 2010

У меня есть две таблицы (упрощенно):

Website:
  columns:
    user_id:          { type: integer, notnull: true }
    domain_name:      { type: string(30), notnull: true, unique: true }

WebsiteLanguage:
  columns:
    website_id: { type: integer, notnull: true }
    language:   { type: string(5), notnull: true, country: true }
  indexes:
    website_id_language:
      fields: [website_id, language]
      type: unique

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

Мне нужно отобразить форму веб-сайта с таким количеством флажков, сколько языков.Языков нет в таблице, поэтому я не знаю, как это сделать!

1 Ответ

0 голосов
/ 10 ноября 2010

Вы можете получить список языков из sfCultureInfo:

/*
 * displayLanguage defaults to the current culture set in the session, 
 * or you can supply your own - to override it...
 * this will return an array of all languages like array('en' => 'english')
 */
sfCultureInfo::getInstance($dipslayLanguage)->getLanguages();

Если вы используете для этого форму sf, вы также можете просто использовать удобный виджет:

//in your form

$this->widgetSchema['language'] = new sfWidgetFormI18nChoiceLanguage();

Однако вам, вероятно, не нужно связывать языки в БД, за исключением записей, которые имеют переводы, и тогда вам будет лучше использовать функции I18n для автоматической обработки всего этого за вас.Тогда все, что вам нужно сделать, это позволить пользователю увидеть культуру, и все будет волшебным образом отображаться на соответствующем языке ... Конечно, это немного сложнее, но вы можете автоматизировать большую часть работы и настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...