2declare( strict_types = 1 );
4namespace MediaWiki\Extension\Translate\TranslatorInterface;
7use MediaWiki\Diff\Hook\ArticleContentOnDiffHook;
8use MediaWiki\EditPage\EditPage;
10use MediaWiki\Hook\AlternateEditHook;
11use MediaWiki\Hook\EditPage__showEditForm_initialHook;
12use MediaWiki\Hook\SidebarBeforeOutputHook;
13use MediaWiki\Hook\TitleGetEditNoticesHook;
14use MediaWiki\Languages\LanguageFactory;
15use MediaWiki\Skin\SkinComponentUtils;
27 ArticleContentOnDiffHook,
28 EditPage__showEditForm_initialHook,
29 TitleGetEditNoticesHook,
30 SidebarBeforeOutputHook
32 private LanguageFactory $languageFactory;
34 public function __construct( LanguageFactory $languageFactory ) {
35 $this->languageFactory = $languageFactory;
44 if ( $handle->isValid() ) {
45 $editPage->suppressIntro =
true;
58 if ( !$handle->isValid() ) {
62 $context = $out->getContext();
63 $request = $context->getRequest();
65 if ( $editPage->firsttime && !$request->getCheck(
'oldid' ) &&
66 !$request->getCheck(
'undo' ) ) {
67 if ( $handle->isFuzzy() ) {
68 $editPage->textbox1 = MessageHandle::makeFuzzyString( $editPage->textbox1 );
73 public function onTitleGetEditNotices( $title, $oldid, &$notices ) {
74 $handle =
new MessageHandle( $title );
75 if ( !$handle->isValid() ) {
81 $context = RequestContext::getMain();
83 $th =
new LegacyTranslationAids( $handle, $context, $this->languageFactory );
84 $notices[] = $th->getBoxes();
93 $title = $diffEngine->getTitle();
96 if ( !$handle->isValid() ) {
101 $output->addHTML( $th->getBoxes() );
112 $title = $skin->getTitle();
115 if ( !$handle->isValid() ) {
119 $message = $title->getNsText() .
':' . $handle->getKey();
120 $url = SkinComponentUtils::makeSpecialUrl(
'Translations', [
'message' => $message ] );
123 $sidebar[
'TOOLBOX'][
'alltrans' ] = [
125 'id' =>
't-alltrans',
126 'msg' =>
'translate-sidebar-alltrans',