Skip to content

Commit 7bbc917

Browse files
committed
MDLSITE-6364 Fix displayed parent of English grand-child language packs
It was not correct to assume that all language packs with code starting with 'en_' would have 'en' as their parent language. For example, the 'en_us_k12' has 'en_us' as parent.
1 parent cfcc954 commit 7bbc917

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

classes/stats_manager.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,8 @@ public function get_language_pack_ratio_stats(?int $vercode = null): array {
360360
continue;
361361
}
362362

363-
if (substr($langpack->langcode, 0, 3) === 'en_') {
364-
$parent = 'en';
363+
if ($langpack->langcode === 'en') {
364+
$parent = '';
365365

366366
} else {
367367
$langconfig = mlang_component::from_snapshot('langconfig', $langpack->langcode, $version);

tests/stats_manager_test.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,22 +244,29 @@ public function test_get_language_pack_download_page_data() {
244244
$this->helper_add_language('cs', 'Czech', 'Čeština');
245245
$this->helper_add_language('de_du', 'German (personal)', 'Deutsch (Du)', 'de');
246246
$this->helper_add_language('de', 'German', 'Deutsch');
247+
$this->helper_add_language('en_us', 'English (US)', 'English (US)', 'en');
248+
$this->helper_add_language('en_us_k12', 'English (US) K12', 'English (US) K12', 'en_us');
247249

248250
$statsman->update_stats('400', 'en', 'moodle', 10);
249251
$statsman->update_stats('400', 'de_du', 'moodle', 1);
250252
$statsman->update_stats('400', 'cs', 'moodle', 9);
251253
$statsman->update_stats('400', 'de', 'moodle', 10);
254+
$statsman->update_stats('400', 'en_us', 'moodle', 2);
255+
$statsman->update_stats('400', 'en_us_k12', 'moodle', 3);
252256

253257
$data = $statsman->get_language_pack_download_page_data(400);
254258

255-
$this->assertEquals(4, count($data));
259+
$this->assertEquals(6, count($data));
256260
$this->assertEquals('cs', $data[0]['langcode']);
257261
$this->assertEquals('Czech / Čeština', $data[0]['langname']);
258262
$this->assertEquals('9', $data[0]['totalstrings']);
259263
$this->assertEquals('en', $data[1]['langcode']);
260-
$this->assertEquals('de', $data[2]['langcode']);
261-
$this->assertEquals('de_du', $data[3]['langcode']);
262-
$this->assertEquals('de', $data[3]['parentlanguagecode']);
264+
$this->assertEquals('en_us', $data[2]['langcode']);
265+
$this->assertEquals('en_us_k12', $data[3]['langcode']);
266+
$this->assertEquals('en_us', $data[3]['parentlanguagecode']);
267+
$this->assertEquals('de', $data[4]['langcode']);
268+
$this->assertEquals('de_du', $data[5]['langcode']);
269+
$this->assertEquals('de', $data[5]['parentlanguagecode']);
263270
}
264271

265272
/**

0 commit comments

Comments
 (0)