The parameter 'lang' is only added to the URL when the image vary on the
language or on the direction.
Also omit the parameter 'lang' when the value is equal to
ResourceLoaderContext::DEFAULT_LANG.
This change makes the URLs shorter and reduces the size of the
stylesheets.
This change also improves caching because the URLs do not vary on the
language for the same image.
Change-Id: Id7d8ecc7d95747f3c157f9abc12e8489e5085aff
'image' => $this->getName(),
'variant' => $variant,
'format' => $format,
'image' => $this->getName(),
'variant' => $variant,
'format' => $format,
- 'lang' => $context->getLanguage(),
- 'skin' => $context->getSkin(),
- 'version' => $context->getVersion(),
+ if ( $this->varyOnLanguage() ) {
+ $query['lang'] = $context->getLanguage();
+ }
+ // The following parameters are at the end to keep the original order of the parameters.
+ $query['skin'] = $context->getSkin();
+ $query['version'] = $context->getVersion();
return wfAppendQuery( $script, $query );
}
return wfAppendQuery( $script, $query );
}
return $png ?: false;
}
}
return $png ?: false;
}
}
+
+ /**
+ * Check if the image depends on the language.
+ *
+ * @return bool
+ */
+ private function varyOnLanguage() {
+ return is_array( $this->descriptor ) && (
+ isset( $this->descriptor['ltr'] ) ||
+ isset( $this->descriptor['rtl'] ) ||
+ isset( $this->descriptor['lang'] ) );
+ }