Pregunta

Estoy usando Symfony y Propel, y estoy tratando de invocar una cultura específica en un objeto y mostrar algunos campos de ese objeto a la pantalla en esa cultura específica. Sin embargo, si el registro de la base de datos asignada del objeto no tiene esos campos en esa cultura específica, me gustaría que sea predeterminado a la cultura base (en este caso, en_US)

Lo estoy haciendo así:

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

Pero cuando hago una salida como esta

$currentLesson->getTitle();

Produce una cadena vacía si no hay un registro de cultura para ella. Mi pregunta es, ¿hay una manera de hacer que un objeto se establezca de manera predeterminada en una cultura específica si la que especifico no está disponible, o hay un método para ver si un objeto específico tiene un registro de cultura i18n?

algo como esto:

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

o

sfConfig::setPropelDefaultCulture("en_US");
¿Fue útil?

Solución

Tendrás que sobrescribir el propio Symfony para que sea predeterminado en otro idioma. Hay una buena solución de trabajo aquí http: //www.codemassacre .com / 2008/03/10 / symfony-default-language-fallback /

Otros consejos

El registro i18n que obtiene de getTranslation ($ language) se puede probar con isNew () , que le dirá si Propel acaba de crearlo (true) o si proviene de la base de datos (false) .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top