signals = $signals; } /** * Builds the clause text. * * @return string Plain-text clause, ready to paste. */ public function build(): string { $site = wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ); $host = (string) wp_parse_url( home_url( '/' ), PHP_URL_HOST ); $name = '' !== trim( $site ) ? $site : $host; $signal = $this->signals->get_signals(); $paragraphs = array(); $paragraphs[] = sprintf( /* translators: 1: Site name, 2: Site host. */ __( 'Reservation of rights for text and data mining. All content published on %1$s (%2$s) is protected by copyright and related rights. The operator of this website expressly reserves the right to prohibit the use of this content for text and data mining, within the meaning of Article 4(3) of Directive (EU) 2019/790 on copyright and related rights in the Digital Single Market.', 'ai-blackout' ), $name, $host ); $paragraphs[] = __( 'This reservation applies to all automated analysis of this content, including but not limited to the collection, extraction, reproduction, storage or processing of the content for the purpose of training, fine-tuning, evaluating or grounding artificial intelligence or machine learning systems.', 'ai-blackout' ); if ( isset( $signal['ai-train'] ) && Settings::SIGNAL_NO === $signal['ai-train'] ) { $paragraphs[] = __( 'Accessing this website constitutes acceptance of these terms. Permission is not granted to use this content as training data for any artificial intelligence or machine learning model.', 'ai-blackout' ); } if ( isset( $signal['ai-input'] ) && Settings::SIGNAL_NO === $signal['ai-input'] ) { $paragraphs[] = __( 'Permission is not granted to supply this content to an artificial intelligence system at the time of a query, including for retrieval-augmented generation, grounding, or the generation of summaries or answers.', 'ai-blackout' ); } if ( isset( $signal['search'] ) && Settings::SIGNAL_YES === $signal['search'] ) { $paragraphs[] = __( 'Nothing in this reservation restricts the indexing of this content by a conventional search engine for the purpose of returning links and short excerpts to human readers.', 'ai-blackout' ); } $paragraphs[] = sprintf( /* translators: %s: Absolute URL of the published tdmrep.json file. */ __( 'These reservations are additionally expressed by machine-readable means at %s and in this website\'s robots.txt file.', 'ai-blackout' ), home_url( '/' . Tdmrep::PATH ) ); return implode( "\n\n", $paragraphs ); } /** * Returns the disclaimer that must be shown alongside the generated * clause. * * @return string Disclaimer text. */ public function get_disclaimer(): string { return __( 'This is a starting point, not legal advice. It is written to match what this plugin publishes, so the wording and the machine-readable declarations agree with each other. Have a lawyer review it before relying on it, especially outside the EU.', 'ai-blackout' ); } }