diff --git a/data/LanguageNameIndexer.php b/data/LanguageNameIndexer.php index 30f4ca96..113c2a1b 100644 --- a/data/LanguageNameIndexer.php +++ b/data/LanguageNameIndexer.php @@ -76,20 +76,28 @@ class LanguageNameIndexer extends Maintenance { // To resolve this, some languages are added here locally. $specialLanguages = [ // Catalan, sometimes searched as "Valencià" - 'ca' => 'valencia', + 'ca' => [ 'valencia' ], + // Spanish, the transliteration of the autonym is often used for searching + 'es' => [ 'castellano' ], + // Armenian, the transliteration of the autonym is often used for searching + 'hy' => [ 'hayeren' ], // Georgian, the transliteration of the autonym is often used for searching - 'ka' => 'kartuli', + 'ka' => [ 'kartuli', 'qartuli' ], + // Japanese, the transliteration of the autonym is often used for searching + 'ja' => [ 'nihongo', 'にほんご' ], // Western Punjabi, doesn't start with the word "Punjabi" in any language - 'pnb' => 'punjabi western', + 'pnb' => [ 'punjabi western' ], // Simplified and Traditional Chinese, because zh-hans and zh-hant // are not mapped to any English name - 'zh-hans' => 'chinese simplified', - 'zh-hant' => 'chinese traditional', + 'zh-hans' => [ 'chinese simplified' ], + 'zh-hant' => [ 'chinese traditional' ], ]; - foreach ( $specialLanguages as $targetLanguage => $translation ) { - $bucket = LanguageNameSearch::getIndex( $translation ); - $buckets[$bucket]['prefix'][$translation] = $targetLanguage; + foreach ( $specialLanguages as $targetLanguage => $translations ) { + foreach ( $translations as $translation ) { + $bucket = LanguageNameSearch::getIndex( $translation ); + $buckets[$bucket]['prefix'][$translation] = $targetLanguage; + } } $lengths = []; diff --git a/data/LanguageNameSearchData.php b/data/LanguageNameSearchData.php index 91543cbd..9ce61ae3 100644 --- a/data/LanguageNameSearchData.php +++ b/data/LanguageNameSearchData.php @@ -3174,6 +3174,7 @@ class LanguageNameSearchData { 'casaco' => 'kk', 'casaicis' => 'kk', 'cashmireg' => 'ks', + 'castellano' => 'es', 'casubio' => 'csb', 'catalaans' => 'ca', 'catalan' => 'ca', @@ -7881,6 +7882,7 @@ class LanguageNameSearchData { 'hawäieg' => 'haw', 'hayda' => 'hai', 'haydaca' => 'hai', + 'hayeren' => 'hy', 'haída' => 'hai', 'haítíska' => 'ht', 'haïtiaans' => 'ht', @@ -15675,6 +15677,7 @@ class LanguageNameSearchData { 'nigeriý-pijin dili' => 'pcm', 'nigerkordofaansche spraken' => 'nic', 'nigériai pidgin' => 'pcm', + 'nihongo' => 'ja', 'niidumari' => 'mhr', 'nijas' => 'nia', 'nijerya pidgin dili' => 'pcm', @@ -17652,6 +17655,7 @@ class LanguageNameSearchData { 'qaraqalpaq' => 'kaa', 'qaraqalpaqsha' => 'kaa', 'qaraçay-balkar' => 'krc', + 'qartuli' => 'ka', 'qayo' => 'gay', 'qazaqşa (latın)' => 'kk-latn', 'qazaqşa (türkïya)' => 'kk-tr', @@ -50303,6 +50307,7 @@ class LanguageNameSearchData { ], 12000 => [ 'prefix' => [ + 'にほんご' => 'ja', 'アイスランド語' => 'is', 'アイヌ語' => 'ain', 'アイマラ語' => 'ay', diff --git a/tests/phpunit/LanguageSearchTest.php b/tests/phpunit/LanguageSearchTest.php index 1d86d5c3..4c8b10e2 100644 --- a/tests/phpunit/LanguageSearchTest.php +++ b/tests/phpunit/LanguageSearchTest.php @@ -67,10 +67,30 @@ class LanguageSearchTest extends PHPUnit_Framework_TestCase { 'pnb' => 'punjabi western', ] ], + [ 'castellano', [ + 'es' => 'castellano', + ] + ], + [ 'hayeren', [ + 'hy' => 'hayeren', + ] + ], [ 'kartuli', [ 'ka' => 'kartuli', ] ], + [ 'qartuli', [ + 'ka' => 'qartuli', + ] + ], + [ 'nihongo', [ + 'ja' => 'nihongo', + ] + ], + [ 'にほんご', [ + 'ja' => 'にほんご', + ] + ], [ 'valencia', [ 'ca' => 'valencia', ]