- return str_replace('_', ' ', self::toArea($tz)) . ' (GMT ' . self::toTimeOffset($dt,$tz) . ')';
+ $displayArea = str_replace('_', ' ', self::toArea($tz));
+ $displayOffset = '(GMT ' . self::toTimeOffset($dt,$tz) . ')';
+
+ $ce = DB_DataObject::factory('core_enum');
+ $ce->setFrom(array(
+ 'etype' => 'Timezone.Area',
+ 'active' => 1,
+ 'name' => $displayArea,
+ 'display_name' => $displayArea
+ ));
+
+ if(!$ce->find(true)) {
+ return $displayArea . ' ' . $displayOffset;
+ }
+
+ $ct = DB_DataObject::factory('core_templatestr');
+ $ct->setFrom(array(
+ 'lang' => $lang,
+ 'on_table' => 'core_enum',
+ 'on_id' => $ce->id,
+ 'on_col' => 'display_name',
+ 'active' => 1
+ ));
+ if(!$ct->find(true) || empty($ct->txt)) {
+ return $displayArea . ' ' . $displayOffset;
+ }
+
+ return $ct->txt . ' ' . $displayOffset;