translation_manager = $translation_manager;
$this->language_manager = $language_manager;
$this->actions = $actions;
$this->flags = new FlagRegistry();
}
/**
* Renders the language selector on a taxonomy add form.
*
* @param string $taxonomy Taxonomy name.
* @return void
*/
public function render_add_fields( $taxonomy ) {
$selected_language = (string) $this->new_term_language_id( $taxonomy );
wp_nonce_field(
'shapetranslate_add_term_language_' . $taxonomy,
'shapetranslate_term_language_nonce'
);
?>
translation_manager->get_term_language_id( $term->term_id, $term->taxonomy );
$selected_language = '' !== $current_language_id
? $current_language_id
: (string) $this->new_term_language_id( $term->taxonomy );
wp_nonce_field(
'shapetranslate_edit_term_language_' . $term->taxonomy . '_' . $term->term_id,
'shapetranslate_term_language_nonce'
);
?>
|
|
render_language_select( $selected_language, $current_language_id ); ?>
|
|
render_translations( $term, $current_language_id ); ?>
|
language_manager->get_default_id(),
(string) $taxonomy
);
}
/**
* Renders an enabled-language selector while retaining a disabled assignment.
*
* @param string $selected_language_id Selected language identifier.
* @param string $current_language_id Persisted language identifier.
* @return void
*/
private function render_language_select( $selected_language_id, $current_language_id ) {
?>
translation_manager->get_translations( $term->term_id, $term->taxonomy );
?>
language_manager->get_languages() as $language ) : ?>
render_language_action( $term, $language, $current_language_id, $translations ); ?>
$language Language record.
* @param string $current_language_id Current language identifier.
* @param array $translations Translation map.
* @return void
*/
private function render_language_action( WP_Term $term, $language, $current_language_id, $translations ) {
$language_id = $language['id'];
$target_id = isset( $translations[ $language_id ] ) ? absint( $translations[ $language_id ] ) : 0;
$add_label = sprintf(
/* translators: %s: native language name. */
__( 'Add %s translation', 'shapetranslate' ),
$language['native_name']
);
?>
flags->get_flag_html( $language ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Sanitized by FlagRegistry::get_flag_html(). ?>
render_existing_translation( $target_id, $term->taxonomy, $language ); ?>
actions->can_create_translation( $term ) ) : ?>
$language Target language record.
* @return void
*/
private function render_existing_translation( $term_id, $taxonomy, $language ) {
$edit_url = current_user_can( 'edit_term', $term_id )
? $this->actions->get_edit_url( $term_id, $taxonomy )
: '';
$label = sprintf(
/* translators: %s: language name. */
__( 'Edit %s translation', 'shapetranslate' ),
$language['native_name']
);
if ( '' !== $edit_url ) {
?>