+ /**
+ * Return prefixed text form of title, but using the content language's
+ * canonical namespace. This skips any special-casing such as gendered
+ * user namespaces -- which while useful, are not yet listed in the
+ * XML <siteinfo> data so are unsafe in export.
+ *
+ * @param Title $title
+ * @return string
+ * @since 1.18
+ */
+ public static function canonicalTitle( Title $title ) {
+ if ( $title->getInterwiki() ) {
+ return $title->getPrefixedText();
+ }
+
+ global $wgContLang;
+ $prefix = str_replace( '_', ' ', $wgContLang->getNsText( $title->getNamespace() ) );
+
+ if ( $prefix !== '' ) {
+ $prefix .= ':';
+ }
+
+ return $prefix . $title->getText();
+ }