おはようございます、
言語をサポートする必要がある多言語バックエンド アプリケーションがありますn
。言語はデータベースに保存され、いつでも追加できます。バックエンド機能のため<input>
に、データベースに保存されている言語に基づいてフィールドを動的に生成する必要があります。次に例を示します。
- ドイツ人:
<input type="text" id="title_de">
- 英語
<input type="text" id="title_en">
- イタリアの
<input type="text" id="title_it">
- ...
私は現在、次のようにそれらを追加しますZend_Form
:
foreach($languages as $language){
$title = new Zend_Form_Element_Text("title_" . $language->getPrefix());
$title->setLabel("Title " . $language->getPrefix())
->setRequired(true)
$this->addElements(array($title));
}
Doctrine を使用してフィールドを DB に保存する方法は次のとおりです。
//get language-dependent title and write to DB
foreach($languages as $language){
$title->setLanguage($language);
$title->setContent($form->getValue("title_" . $language->getPrefix()));
$touristArea->addTitle($title);
//persist and flush
$em->persist($touristArea);
$em->flush();
}
とにかく、多くの言語依存フィールド (タイトル、キャプションなど) があるため、フォームを処理するコードは非常に厄介なものになる可能性があり、どの入力が生成されたかを知るために、DB の言語テーブルを常にクエリする必要があります。これを行うより良い方法はありますか?入力の配列などのように?入力していただきありがとうございます:)