كيف يمكنك أن تحقق ومعرفة ما إذا كان الكائن إدفع لديه سجل I18N؟

StackOverflow https://stackoverflow.com/questions/251850

سؤال

وأنا باستخدام symfony لودفع، وأنا أحاول أن استدعاء ثقافة معينة على كائن وإخراج بعض الحقول من هذا الكائن إلى الشاشة في تلك الثقافة محددة. ومع ذلك، إذا لم يكن لديك سجل قاعدة البيانات تعيين الكائن تلك الحقول في تلك الثقافة محددة، وأود أن الافتراضية للثقافة قاعدة (في هذه الحالة، en_US)

وأنا أفعل ذلك كما يلي:

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

ولكن عندما الإخراج I مثل هذا

$currentLesson->getTitle();

وذلك بإخراج سلسلة فارغة إذا لم يكن هناك سجل الثقافة لذلك. سؤالي هو، هل هناك طريقة لجعل الافتراضي الكائن إلى culuture خاصة إذا كان واحد يمكنني تحديد غير متوفر، أو أن هناك طريقة لمعرفة ما إذا كان كائن معين له سجل الثقافة I18N؟

وشيء من هذا القبيل:

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

أو

sfConfig::setPropelDefaultCulture("en_US");
هل كانت مفيدة؟

المحلول

وسيكون لديك للكتابة في symfony نفسه لجعله الافتراضي إلى لغة أخرى. ثيريس حل عمل جيد هنا HTTP: //www.codemassacre كوم / 2008/03/10 / symfony لالافتراضية باللغة-تراجع /

نصائح أخرى

وسجل i18n تحصل على العودة من getTranslation($language) يمكن اختبارها مع isNew()، من شأنها أن أقول لكم إذا إدفع أدلى به للتو عنه (true) أو إذا جاء من (false) قاعدة البيانات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top