Intereting Posts

Как перевести get_intermediate_image_sizes?

Для получения размеров изображения я использую следующий код:

public function getImageSizes(){ global $_wp_additional_image_sizes; $sizes = array(); foreach(get_intermediate_image_sizes() as $s){ $sizes[$s] = array(0, 0); if( in_array( $s, array( 'thumbnail', 'medium', 'large' ) ) ){ $sizes[$s][0] = get_option( $s . '_size_w' ); $sizes[$s][1] = get_option( $s . '_size_h' ); } else { if ( isset( $_wp_additional_image_sizes ) && isset( $_wp_additional_image_sizes[ $s ] ) ) $sizes[$s] = array( $_wp_additional_image_sizes[$s]['width'], $_wp_additional_image_sizes[$s]['height'] ); } } return $sizes; } 

Результатом является выбор с размерами изображения, примерно так:

 <option value="thumbnail">Thumbnail</option> <option value="medium">Medium</option> <option value="large">Large</option> <option value="tribe_image_widget_custom" selected='selected'>Custom</option> 

Вопрос в том, как перевести размеры (миниатюры, средние, большие и пользовательские)? По умолчанию размеры на английском языке, мне нужно, чтобы они были другим языком (для этого я использую плагин LocalSize для CodeStyling).

Спасибо!

PS: для выбора select я использую этот код:

 <select class="widefat" id="<?php echo $this->get_field_id('size'); ?>" name="<?php echo $this->get_field_name('size'); ?>"> <?php foreach ($this->getImageSizes() as $name => $atts): ?> <option value="<?php echo $name ?>"<?php echo ($name==$size?' selected':'') ?>><?php echo ucwords($name) . ' ('. implode( 'x', $atts ). ')' ?></option> <?php endforeach ?> </select> 

Solutions Collecting From Web of "Как перевести get_intermediate_image_sizes?"

Вы можете использовать __ (), _e (), _x () или _ex () и ваш текстовый домен, чтобы сделать вашу тему или плагин переводимым.

Я разделил ваш фрагмент кода на основы, поэтому вы получите более понятную идею:

 <select class="widefat"> <?php foreach ( $this->getImageSizes() as $name => $atts ) : ?> <option value="<?php echo $name; ?>" ?>> <?php echo ucwords( __( $name, 'textdomain' ) ); ?> </option> <?php endforeach; ?> </select> 

К сожалению, интернационализация невозможна с такими переменными, как $name поэтому вам нужно предоставить имена изображений по умолчанию, чтобы сделать их доступными:

 $sizes = array( __( 'thumbnail', 'textdomain' ), __( 'medium', 'textdomain' ), __( 'large', 'textdomain' ) ); 

Если вы сами добавляете размеры изображений, вы можете избежать взлома выше, добавив их следующим образом:

 add_image_size( __( 'custom-image-size', 'textdomain' ), $width, $height, $crop );