Symfony 1.4:将多种语言与表相关联

时间:2010-11-10 08:46:43

标签: localization symfony1

我有这两个表(简化):

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 :(得分:0)

您可以从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功能自动处理所有这些。然后你所要做的就是让用户了解文化,一切都会以适当的语言神奇地出现......虽然比它更复杂但你可以自动完成大部分繁重的工作和设置。