我有这两个表(简化):
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
如您所见,我想将一种或多种语言与我的网站相关联。我不想翻译网站,我只想将它们与我为国家做的语言联系起来。
我需要显示一个包含与语言一样多的复选框的网站表单。语言不在表格中,所以我不知道该怎么做!
答案 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功能自动处理所有这些。然后你所要做的就是让用户了解文化,一切都会以适当的语言神奇地出现......虽然比它更复杂但你可以自动完成大部分繁重的工作和设置。