Thiemo Mättig (WMDE) has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/348048 )
Change subject: Consider languages being it's own parent in
LanguageFallbackChainFactory
......................................................................
Consider languages being it's own parent in LanguageFallbackChainFactory
Bug: T156280
Change-Id: I1d9691c784032669979f8109c9a5f65cbf4122c9
---
M lib/includes/LanguageFallbackChainFactory.php
1 file changed, 11 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/48/348048/1
diff --git a/lib/includes/LanguageFallbackChainFactory.php
b/lib/includes/LanguageFallbackChainFactory.php
index 0c4cda0..4acf57f 100644
--- a/lib/includes/LanguageFallbackChainFactory.php
+++ b/lib/includes/LanguageFallbackChainFactory.php
@@ -123,16 +123,22 @@
}
if ( $mode & self::FALLBACK_VARIANTS ) {
- /** @var Language $parentLanguage */
- $pieces = explode( '-', $languageCode );
- if ( !in_array( $pieces[0],
LanguageConverter::$languagesWithVariants ) ) {
- $parentLanguage = null;
- } else {
+ $parentLanguage = null;
+ $pieces = explode( '-', $languageCode, 2 );
+
+ if ( in_array( $pieces[0],
LanguageConverter::$languagesWithVariants ) ) {
if ( is_string( $language ) ) {
$language = Language::factory(
$language );
}
$parentLanguage =
$language->getParentLanguage();
+
+ // A language may be parent of itself (see
T156280). We must consider and skip this
+ // to not have loops in our chain.
+ if ( $parentLanguage &&
$parentLanguage->getCode() === $languageCode ) {
+ $parentLanguage = null;
+ }
}
+
if ( $parentLanguage ) {
// It's less likely to trigger conversion
mistakes by converting
// zh-tw to zh-hk first instead of converting
zh-cn to zh-tw.
--
To view, visit https://gerrit.wikimedia.org/r/348048
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1d9691c784032669979f8109c9a5f65cbf4122c9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits