Pergunta

Eu estou usando symfony e Propel, e eu estou tentando chamar uma cultura específica em um objeto e saída de alguns campos desse objeto para a tela em que a cultura específica. No entanto, se o registro de banco de dados mapeado do objeto não tiver esses campos em que a cultura específica, eu gostaria que o padrão para a cultura de base (neste caso, en_US)

Estou fazendo isso como este:

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

Mas quando eu saída como esta

$currentLesson->getTitle();

Ele produz uma string vazia se não houver nenhum registro cultura para ele. A minha pergunta é, existe uma maneira de fazer um padrão objeto para um culuture específico, se o que eu especificar não estiver disponível, ou há um método para ver se um objeto específico tem um registro cultura i18n?

algo como isto:

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

ou

sfConfig::setPropelDefaultCulture("en_US");
Foi útil?

Solução

Você terá que si symfony de substituição para torná-lo padrão para outro idioma. Há uma solução de trabalho bom aqui http: //www.codemassacre .com / 2008/03/10 / symfony-default-language-fallback /

Outras dicas

O registro i18n você voltar de getTranslation($language) pode ser testado com isNew(), que vai dizer se Propel acaba tornou-se (true) ou se ele veio do (false) banco de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top