2declare( strict_types = 1 );
6use MediaWiki\Context\RequestContext;
8use MediaWiki\Xml\XmlSelect;
18 private string $targetId;
19 private XmlSelect $select;
21 public function __construct( XmlSelect $select ) {
22 $this->select = $select;
25 public function setTargetId(
string $id ) {
26 $this->targetId = $id;
34 $sourceId = $this->select->getAttribute(
'id' );
36 if ( !is_string( $sourceId ) ) {
37 throw new RuntimeException(
'ID needs to be specified for the selector' );
40 RequestContext::getMain()->getOutput()->addModules(
'ext.translate.selecttoinput' );
41 $html = $this->select->getHTML();
42 $html .= Xml::element(
'input', [
44 'value' => wfMessage(
'translate-jssti-add' )->text(),
45 'class' =>
'mw-translate-jssti',
46 'data-translate-jssti-sourceid' => $sourceId,
47 'data-translate-jssti-targetid' => $this->targetId