2declare( strict_types = 1 );
4namespace MediaWiki\Extension\Translate\MessageGroupProcessing;
6use MediaWiki\MediaWikiServices;
7use MediaWiki\Page\PageReference;
54 protected function getTranslationUnitPagesByTitle( PageReference $title, ?
string $code =
null ): array {
55 $dbw = wfGetDB( DB_PRIMARY );
57 $base = MediaWikiServices::getInstance()->getTitleFormatter()->getPrefixedDBkey( $title );
59 $baseLength = strlen( $base ) + 1;
61 if ( $code ===
null ) {
62 $like = $dbw->buildLike(
"$base/", $dbw->anyString() );
64 $like = $dbw->buildLike(
"$base/", $dbw->anyString(),
"/$code" );
67 $res = $dbw->newSelectQueryBuilder()
68 ->select( [
'page_namespace',
'page_title' ] )
71 'page_namespace' => NS_TRANSLATIONS,
74 ->caller( __METHOD__ )
82 foreach ( $res as $row ) {
83 $title = Title::newFromRow( $row );
88 $key = substr( $handle->getKey(), $baseLength );
89 if ( str_contains( $key,
'/' ) ) {
Class for pointing to messages, like Title class is for titles.