0

私はsymfonyとpropelを使用しており、オブジェクトで特定のカルチャを呼び出し、そのオブジェクトのいくつかのフィールドをその特定のカルチャの画面に出力しようとしています。ただし、オブジェクトのマップされたデータベースレコードにその特定のカルチャにこれらのフィールドがない場合は、デフォルトでベースカルチャ(この場合はen_US)に設定します。

私はこのようにやっています:

$currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);

でもこういう出力をすると

$currentLesson->getTitle();

カルチャレコードがない場合は、空の文字列を出力します。私の質問は、指定したカルチャが使用できない場合にオブジェクトを特定のカルチャにデフォルト設定する方法はありますか、または特定のオブジェクトにカルチャi18nレコードがあるかどうかを確認する方法はありますか?

このようなもの:

if($currentLesson->cultureExists($lessonCulture) $currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);

また

sfConfig::setPropelDefaultCulture("en_US");
4

2 に答える 2

1

別の言語にデフォルト設定するには、symfony 自体を上書きする必要があります。ここに良い解決策があります http://www.codemassacre.com/2008/03/10/symfony-default-language-fallback/

于 2008-11-04T22:47:17.827 に答える
0

取得したi18nレコードgetTranslation($language)は でテストできます。isNew()これにより、Propel が作成したばかりな(true)のか、それともデータベースから取得したものなのかがわかります(false)

于 2012-01-09T14:47:35.593 に答える