wp_localize_jquery_ui_datepicker()WP 4.6.0

Localizes (translates) the jQuery date picker script: jQuery UI datepicker.

Adds JavaScript code for the jQuery UI datepicker script, which translates all labels into the current language of the site. The data is taken from the current locale (language).

The function needs to be called after the script 'jquery-ui-datepicker' has been added to the output queue (see example).

No Hooks.

Returns

null. Nothing.

Usage

wp_localize_jquery_ui_datepicker();

Examples

0

#1 Let's translate the date selection script

Suppose our site is in Ukrainian. Then the following code will translate the date selection script into Ukrainian.

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

function my_scripts_method() {

	wp_enqueue_script( 'jquery-ui-datepicker' ); 
	wp_localize_jquery_ui_datepicker();           
}

Notes

  • Global. WP_Locale. $wp_locale WordPress date and time locale object.

Changelog

Since 4.6.0 Introduced.

wp_localize_jquery_ui_datepicker() code WP 6.8.1

function wp_localize_jquery_ui_datepicker() {
	global $wp_locale;

	if ( ! wp_script_is( 'jquery-ui-datepicker', 'enqueued' ) ) {
		return;
	}

	// Convert the PHP date format into jQuery UI's format.
	$datepicker_date_format = str_replace(
		array(
			'd',
			'j',
			'l',
			'z', // Day.
			'F',
			'M',
			'n',
			'm', // Month.
			'Y',
			'y', // Year.
		),
		array(
			'dd',
			'd',
			'DD',
			'o',
			'MM',
			'M',
			'm',
			'mm',
			'yy',
			'y',
		),
		get_option( 'date_format' )
	);

	$datepicker_defaults = wp_json_encode(
		array(
			'closeText'       => __( 'Close' ),
			'currentText'     => __( 'Today' ),
			'monthNames'      => array_values( $wp_locale->month ),
			'monthNamesShort' => array_values( $wp_locale->month_abbrev ),
			'nextText'        => __( 'Next' ),
			'prevText'        => __( 'Previous' ),
			'dayNames'        => array_values( $wp_locale->weekday ),
			'dayNamesShort'   => array_values( $wp_locale->weekday_abbrev ),
			'dayNamesMin'     => array_values( $wp_locale->weekday_initial ),
			'dateFormat'      => $datepicker_date_format,
			'firstDay'        => absint( get_option( 'start_of_week' ) ),
			'isRTL'           => $wp_locale->is_rtl(),
		)
	);

	wp_add_inline_script( 'jquery-ui-datepicker', "jQuery(function(jQuery){jQuery.datepicker.setDefaults({$datepicker_defaults});});" );
}