*/
private $dbLoadBalancer;
+ /**
+ * @var string[]
+ */
+ private $languageCodeMapping = [];
+
/**
* @since 1.27
*
);
foreach ( $res as $row ) {
+ $languageCode = $row->site_language === '' ? null : $row->site_language;
+ if ( isset( $this->languageCodeMapping[ $languageCode ] ) ) {
+ $languageCode = $this->languageCodeMapping[ $languageCode ];
+ }
+
$site = Site::newForType( $row->site_type );
$site->setGlobalId( $row->site_global_key );
$site->setInternalId( (int)$row->site_id );
$site->setForward( (bool)$row->site_forward );
$site->setGroup( $row->site_group );
- $site->setLanguageCode( $row->site_language === ''
- ? null
- : $row->site_language
- );
+ $site->setLanguageCode( $languageCode );
$site->setSource( $row->site_source );
$site->setExtraData( unserialize( $row->site_data ) );
$site->setExtraConfig( unserialize( $row->site_config ) );
return $ok;
}
+ /**
+ * Provide an array that maps language codes
+ *
+ * @param string[] $newMapping
+ */
+ public function setLanguageCodeMapping( array $newMapping ) {
+ $this->languageCodeMapping = $newMapping;
+ }
+
}