Language: Hard-deprecate language converter functions, deprecated in 1.35
These are: - Language::getConverter() - Language::autoConvert() - Language::autoConvertToAllVariants() - Language::convert() - Language::convertNamespace() - Language::convertHtml() - Language::convertCategoryKey() - Language::getVariants() - Language::hasVariants() - Language::hasVariant() - Language::getDefaultVariant() - Language::getURLVariant() - Language::getExtraHashOptions() - Language::getConvRuleTitle() Bug: T252095 Change-Id: I810e90b43ba112b868821c811c51b5532800765f
This commit is contained in:
parent
3354336bf1
commit
0ccde3720d
5 changed files with 67 additions and 35 deletions
|
|
@ -381,6 +381,11 @@ because of Phabricator reports.
|
|||
::getFallbacksFor(), deprecated in 1.35, now emit deprecation warnings.
|
||||
* Language::isSupportedLanguage(), ::isValidCode(), ::isValidBuiltInCode() and
|
||||
::isKnownLanguageTag(), deprecated in 1.34, now emit deprecation warnings.
|
||||
* Language::getConverter(), ::autoConvert(), ::autoConvertToAllVariants(),
|
||||
::convert(), ::convertNamespace(), ::convertHtml(), ::convertCategoryKey(),
|
||||
::getVariants(), ::hasVariants(), ::hasVariant(), ::getDefaultVariant(),
|
||||
::getURLVariant(), ::getExtraHashOptions(), ::getConvRuleTitle(),
|
||||
deprecated in 1.35, now emit deprecation warnings.
|
||||
* Executing maintenance scripts directly is deprecated. The maintenance/run.php
|
||||
entry point should be used instead.
|
||||
* MWHttpRequest::factory, deprecated in 1.34, now emits deprecation warnings.
|
||||
|
|
|
|||
|
|
@ -711,14 +711,15 @@ class Language implements Bcp47Code {
|
|||
}
|
||||
}
|
||||
|
||||
$langConverter = $this->getConverterInternal();
|
||||
# Also add converted namespace names as aliases, to avoid confusion.
|
||||
$convertedNames = [];
|
||||
foreach ( $this->getConverter()->getVariants() as $variant ) {
|
||||
foreach ( $langConverter->getVariants() as $variant ) {
|
||||
if ( $variant === $this->mCode ) {
|
||||
continue;
|
||||
}
|
||||
foreach ( $this->getNamespaces() as $ns => $_ ) {
|
||||
$convertedNames[$this->getConverter()->convertNamespace( $ns, $variant )] = $ns;
|
||||
$convertedNames[$langConverter->convertNamespace( $ns, $variant )] = $ns;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4102,18 +4103,19 @@ class Language implements Bcp47Code {
|
|||
*
|
||||
* @since 1.19
|
||||
* @deprecated since 1.35 Use MediaWikiServices::getInstance()->getLanguageConverterFactory()
|
||||
* ->getLanguageConverter( $language ) instead
|
||||
* ->getLanguageConverter( $language ) instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @return ILanguageConverter
|
||||
*/
|
||||
public function getConverter(): ILanguageConverter {
|
||||
return $this->converterFactory->getLanguageConverter( $this );
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal();
|
||||
}
|
||||
|
||||
/**
|
||||
* convert text to a variant
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::autoConvert
|
||||
* @deprecated since 1.35 use LanguageConverter::autoConvert. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @param string $text text to convert
|
||||
* @param string|false $variant variant to convert to, or false to use the user's preferred
|
||||
|
|
@ -4121,19 +4123,21 @@ class Language implements Bcp47Code {
|
|||
* @return string the converted string
|
||||
*/
|
||||
public function autoConvert( $text, $variant = false ) {
|
||||
return $this->getConverter()->autoConvert( $text, $variant );
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->autoConvert( $text, $variant );
|
||||
}
|
||||
|
||||
/**
|
||||
* convert text to all supported variants
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::autoConvertToAllVariants
|
||||
* @deprecated since 1.35 use LanguageConverter::autoConvertToAllVariants. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @param string $text
|
||||
* @return array
|
||||
*/
|
||||
public function autoConvertToAllVariants( $text ) {
|
||||
return $this->getConverter()->autoConvertToAllVariants( $text );
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->autoConvertToAllVariants( $text );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4145,19 +4149,20 @@ class Language implements Bcp47Code {
|
|||
* escaped the input. Never feed this method user controlled text that
|
||||
* is not properly escaped!
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::convert
|
||||
* @deprecated since 1.35 use LanguageConverter::convert. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @param string $text Content that has been already escaped for use in HTML
|
||||
* @return string HTML
|
||||
*/
|
||||
public function convert( $text ) {
|
||||
return $this->getConverter()->convert( $text );
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->convert( $text );
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a namespace index to a string in the preferred variant
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::convertNamespace instead
|
||||
* @deprecated since 1.35 use LanguageConverter::convertNamespace instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @param int $ns namespace index (https://www.mediawiki.org/wiki/Manual:Namespace)
|
||||
* @param string|null $variant variant to convert to, or null to use the user's preferred
|
||||
|
|
@ -4165,17 +4170,19 @@ class Language implements Bcp47Code {
|
|||
* @return string a string representation of the namespace
|
||||
*/
|
||||
public function convertNamespace( $ns, $variant = null ) {
|
||||
return $this->getConverter()->convertNamespace( $ns, $variant );
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->convertNamespace( $ns, $variant );
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this is a language with variants
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::hasVariants instead
|
||||
* @deprecated since 1.35 use LanguageConverter::hasVariants instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasVariants() {
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return count( $this->getVariants() ) > 1;
|
||||
}
|
||||
|
||||
|
|
@ -4185,85 +4192,93 @@ class Language implements Bcp47Code {
|
|||
* Compare to LanguageConverter::validateVariant() which does a more
|
||||
* lenient check and attempts to coerce the given code to a valid one.
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::hasVariant instead
|
||||
* @deprecated since 1.35 use LanguageConverter::hasVariant instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @since 1.19
|
||||
* @param string $variant
|
||||
* @return bool
|
||||
*/
|
||||
public function hasVariant( $variant ) {
|
||||
return $this->getConverter()->hasVariant( $variant );
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->hasVariant( $variant );
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform output conversion on a string, and encode for safe HTML output.
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::convertHtml instead
|
||||
* @deprecated since 1.35 use LanguageConverter::convertHtml instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @param string $text Text to be converted
|
||||
* @return string
|
||||
* @todo this should get integrated somewhere sensible
|
||||
*/
|
||||
public function convertHtml( $text ) {
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return htmlspecialchars( $this->convert( $text ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.35 use LanguageConverter::convertCategoryKey instead
|
||||
* @deprecated since 1.35 use LanguageConverter::convertCategoryKey instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @param string $key
|
||||
* @return string
|
||||
*/
|
||||
public function convertCategoryKey( $key ) {
|
||||
return $this->getConverter()->convertCategoryKey( $key );
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->convertCategoryKey( $key );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of variants supported by this language
|
||||
* see sample implementation in LanguageZh.php
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::getVariants instead
|
||||
* @deprecated since 1.35 use LanguageConverter::getVariants instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @return string[] An array of language codes
|
||||
*/
|
||||
public function getVariants() {
|
||||
return $this->getConverter()->getVariants();
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->getVariants();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.35 use LanguageConverter::getPreferredVariant instead
|
||||
* @deprecated since 1.35 use LanguageConverter::getPreferredVariant instead. Hard-deprecated since 1.40.
|
||||
* @return string
|
||||
*/
|
||||
public function getPreferredVariant() {
|
||||
return $this->getConverter()->getPreferredVariant();
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->getPreferredVariant();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.35 use LanguageConverter::getDefaultVariant instead
|
||||
* @deprecated since 1.35 use LanguageConverter::getDefaultVariant instead. Hard-deprecated since 1.40.
|
||||
* @return string
|
||||
*/
|
||||
public function getDefaultVariant() {
|
||||
return $this->getConverter()->getDefaultVariant();
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->getDefaultVariant();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.35 use LanguageConverter::getURLVariant instead
|
||||
* @deprecated since 1.35 use LanguageConverter::getURLVariant instead. Hard-deprecated since 1.40.
|
||||
* @return string
|
||||
*/
|
||||
public function getURLVariant() {
|
||||
return $this->getConverter()->getURLVariant();
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->getURLVariant();
|
||||
}
|
||||
|
||||
/**
|
||||
* returns language specific options used by User::getPageRenderHash()
|
||||
* for example, the preferred language variant
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::getExtraHashOptions instead
|
||||
* @deprecated since 1.35 use LanguageConverter::getExtraHashOptions instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getExtraHashOptions() {
|
||||
return $this->getConverter()->getExtraHashOptions();
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->getExtraHashOptions();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4753,12 +4768,13 @@ class Language implements Bcp47Code {
|
|||
/**
|
||||
* Get the conversion rule title, if any.
|
||||
*
|
||||
* @deprecated since 1.35 use LanguageConverter::getConvRuleTitle instead
|
||||
* @deprecated since 1.35 use LanguageConverter::getConvRuleTitle instead. Hard-deprecated since 1.40.
|
||||
*
|
||||
* @return string|false
|
||||
*/
|
||||
public function getConvRuleTitle() {
|
||||
return $this->getConverter()->getConvRuleTitle();
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
return $this->getConverterInternal()->getConvRuleTitle();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4849,6 +4865,16 @@ class Language implements Bcp47Code {
|
|||
return $pluralRuleTypes[$index] ?? 'other';
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the LanguageConverter for this language,
|
||||
* convenience function for use in the language classes only
|
||||
*
|
||||
* @return ILanguageConverter
|
||||
*/
|
||||
protected function getConverterInternal() {
|
||||
return $this->converterFactory->getLanguageConverter( $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a HookContainer, for hook metadata and running extension hooks
|
||||
*
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ class LanguageKk extends LanguageKk_cyrl {
|
|||
*/
|
||||
public function ucfirst( $string ) {
|
||||
if ( substr( $string, 0, 1 ) === 'i' ) {
|
||||
$variant = $this->getPreferredVariant();
|
||||
$variant = $this->getConverterInternal()->getPreferredVariant();
|
||||
if ( $variant == 'kk-latn' || $variant == 'kk-tr' ) {
|
||||
return 'İ' . substr( $string, 1 );
|
||||
}
|
||||
|
|
@ -54,7 +54,7 @@ class LanguageKk extends LanguageKk_cyrl {
|
|||
*/
|
||||
public function lcfirst( $string ) {
|
||||
if ( substr( $string, 0, 1 ) === 'I' ) {
|
||||
$variant = $this->getPreferredVariant();
|
||||
$variant = $this->getConverterInternal()->getPreferredVariant();
|
||||
if ( $variant == 'kk-latn' || $variant == 'kk-tr' ) {
|
||||
return 'ı' . substr( $string, 1 );
|
||||
}
|
||||
|
|
@ -73,7 +73,7 @@ class LanguageKk extends LanguageKk_cyrl {
|
|||
return '';
|
||||
}
|
||||
|
||||
$variant = $this->getPreferredVariant();
|
||||
$variant = $this->getConverterInternal()->getPreferredVariant();
|
||||
switch ( $variant ) {
|
||||
case 'kk-arab':
|
||||
case 'kk-cn':
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ class LanguageZh extends LanguageZh_hans {
|
|||
// better to use zh-hans for search, since conversion from
|
||||
// Traditional to Simplified is less ambiguous than the
|
||||
// other way around
|
||||
$s = $this->getConverter()->autoConvert( $string, $autoVariant );
|
||||
$s = $this->getConverterInternal()->autoConvert( $string, $autoVariant );
|
||||
// LanguageZh_hans::normalizeForSearch
|
||||
$s = parent::normalizeForSearch( $s );
|
||||
return $s;
|
||||
|
|
@ -71,7 +71,7 @@ class LanguageZh extends LanguageZh_hans {
|
|||
public function convertForSearchResult( $termsArray ) {
|
||||
$terms = implode( '|', $termsArray );
|
||||
$terms = self::convertDoubleWidth( $terms );
|
||||
$terms = implode( '|', $this->getConverter()->autoConvertToAllVariants( $terms ) );
|
||||
$terms = implode( '|', $this->getConverterInternal()->autoConvertToAllVariants( $terms ) );
|
||||
$ret = array_unique( explode( '|', $terms ) );
|
||||
return $ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1843,6 +1843,7 @@ class LanguageIntegrationTest extends LanguageClassesTestCase {
|
|||
* @covers Language::hasVariant
|
||||
*/
|
||||
public function testHasVariant() {
|
||||
$this->hideDeprecated( 'Language::hasVariant' );
|
||||
// See LanguageSrTest::testHasVariant() for additional tests
|
||||
$en = Language::factory( 'en' );
|
||||
$this->assertTrue( $en->hasVariant( 'en' ), 'base is always a variant' );
|
||||
|
|
|
|||
Loading…
Reference in a new issue