YouTube - Version 13.4.1.2

Version Description

Download this release

Release Info

Developer embedplus
Plugin Icon 128x128 YouTube
Version 13.4.1.2
Comparing to
See all releases

Code changes from version 13.4.1.1 to 13.4.1.2

Files changed (2) hide show
  1. readme.txt +6 -3
  2. youtube.php +226 -12
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Embed Plus for YouTube - Gallery, Channel, Playlist, Live Stream ===
2
  Contributors: embedplus
3
  Plugin Name: Embed Plus for YouTube - Gallery, Channel, Playlist, Live Stream
4
- Tags: youtube gallery, video gallery, youtube channel, youtube live, live stream
5
  Requires at least: 4.1
6
- Tested up to: 5.5
7
- Stable tag: 13.4.1.1
8
  License: GPLv3 or later
9
 
10
  YouTube Embed WordPress Plugin. Embed a responsive video, YouTube channel gallery, playlist gallery, or YouTube.com live stream (with GDPR options)
@@ -151,6 +151,9 @@ You can also start and end each individual video at particular times. Like the a
151
 
152
  == Changelog ==
153
 
 
 
 
154
  = Embed Plus for YouTube WordPress Plugin 13.4.1.1 =
155
  * Prevent deprecated notice for wp_make_content_images_responsive filter
156
 
1
  === Embed Plus for YouTube - Gallery, Channel, Playlist, Live Stream ===
2
  Contributors: embedplus
3
  Plugin Name: Embed Plus for YouTube - Gallery, Channel, Playlist, Live Stream
4
+ Tags: youtube gallery, video gallery, youtube channel, youtube live, youtube playlist
5
  Requires at least: 4.1
6
+ Tested up to: 5.6
7
+ Stable tag: 13.4.1.2
8
  License: GPLv3 or later
9
 
10
  YouTube Embed WordPress Plugin. Embed a responsive video, YouTube channel gallery, playlist gallery, or YouTube.com live stream (with GDPR options)
151
 
152
  == Changelog ==
153
 
154
+ = Embed Plus for YouTube WordPress Plugin 13.4.1.2 =
155
+ * Allows you to specify the default language (when available) that the player will use to display closed captions
156
+
157
  = Embed Plus for YouTube WordPress Plugin 13.4.1.1 =
158
  * Prevent deprecated notice for wp_make_content_images_responsive filter
159
 
youtube.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Embed Plus for YouTube - Gallery, Channel, Playlist, Live Stream
4
  Plugin URI: https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx?ref=plugin
5
  Description: YouTube Embed and YouTube Gallery WordPress Plugin. Embed a responsive video, YouTube channel, playlist gallery, or live stream
6
- Version: 13.4.1.1
7
  Author: Embed Plus for YouTube Team
8
  Author URI: https://www.embedplus.com
9
  */
@@ -34,7 +34,7 @@ class YouTubePrefs
34
 
35
  public static $folder_name = 'youtube-embed-plus';
36
  public static $curltimeout = 30;
37
- public static $version = '13.4.1.1';
38
  public static $opt_version = 'version';
39
  public static $optembedwidth = null;
40
  public static $optembedheight = null;
@@ -47,6 +47,7 @@ class YouTubePrefs
47
  public static $opt_debugmode = 'debugmode';
48
  public static $opt_old_script_method = 'old_script_method';
49
  public static $opt_cc_load_policy = 'cc_load_policy';
 
50
  public static $opt_iv_load_policy = 'iv_load_policy';
51
  public static $opt_loop = 'loop';
52
  public static $opt_modestbranding = 'modestbranding';
@@ -224,6 +225,7 @@ class YouTubePrefs
224
  self::$yt_options = array(
225
  self::$opt_autoplay,
226
  self::$opt_cc_load_policy,
 
227
  self::$opt_iv_load_policy,
228
  self::$opt_loop,
229
  self::$opt_modestbranding,
@@ -1268,7 +1270,7 @@ class YouTubePrefs
1268
  {
1269
  ?>
1270
  <p>
1271
- If you already know the direct link to the channel, enter it below.<br>Example: https://www.youtube.com/<strong>channel</strong>/UCnM5iMGiKsZg-iOlIO2ZkdQ
1272
  </p>
1273
  <p>
1274
  Or, simply enter a link to any single video that belongs to the user's channel, and the plugin will find the channel for you.<br>Example: https://www.youtube.com/watch?v=YVvn8dpSAt0
@@ -1851,6 +1853,7 @@ class YouTubePrefs
1851
  $_glance = 0;
1852
  $_autoplay = 0;
1853
  $_cc_load_policy = 0;
 
1854
  $_iv_load_policy = 1;
1855
  $_loop = 0;
1856
  $_modestbranding = 0;
@@ -1944,6 +1947,7 @@ class YouTubePrefs
1944
  $_debugmode = self::tryget($arroptions, self::$opt_debugmode, 0);
1945
  $_old_script_method = self::tryget($arroptions, self::$opt_old_script_method, 0);
1946
  $_cc_load_policy = self::tryget($arroptions, self::$opt_cc_load_policy, 0);
 
1947
  $_iv_load_policy = self::tryget($arroptions, self::$opt_iv_load_policy, 1);
1948
  $_loop = self::tryget($arroptions, self::$opt_loop, 0);
1949
  $_modestbranding = self::tryget($arroptions, self::$opt_modestbranding, 0);
@@ -2038,6 +2042,7 @@ class YouTubePrefs
2038
  self::$opt_glance => $_glance,
2039
  self::$opt_autoplay => $_autoplay,
2040
  self::$opt_cc_load_policy => $_cc_load_policy,
 
2041
  self::$opt_iv_load_policy => $_iv_load_policy,
2042
  self::$opt_loop => $_loop,
2043
  self::$opt_modestbranding => $_modestbranding,
@@ -3177,7 +3182,7 @@ class YouTubePrefs
3177
  $new_pointer_content = '<h3>' . __('New Update') . '</h3>'; // ooopointer
3178
 
3179
  $new_pointer_content .= '<p>'; // ooopointer
3180
- $new_pointer_content .= "This update removes deprecated notices for both Free and <a target=_blank href=" . self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=frompointer' . ">Pro versions</a>.";
3181
  if (self::vi_logged_in())
3182
  {
3183
  $new_pointer_content .= "<br><br><strong>Note:</strong> You are currently logged into the vi intelligence feature. vi support is being deprecated in the next version, so we recommend taking the vi ads down from your site. Please contact ext@embedplus.com for questions.";
@@ -3232,7 +3237,7 @@ class YouTubePrefs
3232
  }
3233
  }
3234
  ?>
3235
- <a class="nav-tab" href="#jumpperformance">Performance <sup class="orange">new</sup></a>
3236
  <a class="nav-tab" href="#jumpcompat">Compatibility</a>
3237
  <a class="nav-tab" href="#jumpprivacy">Security & Privacy</a>
3238
  <a class="nav-tab" href="#jumphowto">Embed Manually</a>
@@ -3586,11 +3591,11 @@ class YouTubePrefs
3586
  <p>
3587
  <input name="<?php echo self::$opt_defaultdims; ?>" id="<?php echo self::$opt_defaultdims; ?>" <?php checked($all[self::$opt_defaultdims], 1); ?> type="checkbox" class="checkbox">
3588
  <span id="boxdefaultdims">
3589
- Width: <input type="text" name="<?php echo self::$opt_defaultwidth; ?>" id="<?php echo self::$opt_defaultwidth; ?>" value="<?php echo esc_attr(trim($all[self::$opt_defaultwidth])); ?>" class="textinput" style="width: 50px;"> &nbsp;
3590
- Height: <input type="text" name="<?php echo self::$opt_defaultheight; ?>" id="<?php echo self::$opt_defaultheight; ?>" value="<?php echo esc_attr(trim($all[self::$opt_defaultheight])); ?>" class="textinput" style="width: 50px;">
3591
  </span>
3592
 
3593
- <label for="<?php echo self::$opt_defaultdims; ?>"><?php _e('<b class="chktitle">Default Dimensions:</b> Make your videos have a default size. Recommended: 800 x 450 (NOTE: If responsive sizing is also turned on, your videos will be responsive but also keep this aspect ratio.) ') ?></label>
3594
  </p>
3595
  <p>
3596
  <input name="<?php echo self::$opt_responsive; ?>" id="<?php echo self::$opt_responsive; ?>" <?php checked($all[self::$opt_responsive], 1); ?> type="checkbox" class="checkbox">
@@ -3640,6 +3645,213 @@ class YouTubePrefs
3640
  <input name="<?php echo self::$opt_cc_load_policy; ?>" id="<?php echo self::$opt_cc_load_policy; ?>" <?php checked($all[self::$opt_cc_load_policy], 1); ?> type="checkbox" class="checkbox">
3641
  <label for="<?php echo self::$opt_cc_load_policy; ?>"><?php _e('<b class="chktitle">Closed Captions:</b> Turn on closed captions by default.') ?></label>
3642
  </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3643
  <p>
3644
  <input name="<?php echo self::$opt_dohl; ?>" id="<?php echo self::$opt_dohl; ?>" <?php checked($all[self::$opt_dohl], 1); ?> type="checkbox" class="checkbox">
3645
  <label for="<?php echo self::$opt_dohl; ?>"><b class="chktitle">Player Localization / Internationalization: </b>
@@ -4059,14 +4271,14 @@ class YouTubePrefs
4059
  <p>
4060
  <input name="<?php echo self::$opt_ajax_save; ?>" id="<?php echo self::$opt_ajax_save; ?>" <?php checked($all[self::$opt_ajax_save], 1); ?> type="checkbox" class="checkbox">
4061
  <label for="<?php echo self::$opt_ajax_save; ?>">
4062
- <b class="chktitle">Save Settings with AJAX: </b> <sup class="orange">new</sup>
4063
  Turn this option off if you are having trouble saving your settings.
4064
  </label>
4065
  </p>
4066
  <p>
4067
  <input name="<?php echo self::$opt_gb_compat; ?>" id="<?php echo self::$opt_gb_compat; ?>" <?php checked($all[self::$opt_gb_compat], 1); ?> type="checkbox" class="checkbox">
4068
  <label for="<?php echo self::$opt_gb_compat; ?>">
4069
- <b class="chktitle">Gutenberg Block Editor Theme Spacing: </b> <sup class="orange">new</sup>
4070
  Check this option to fix possible issues with spacing below your videos. You may also want to try combining this option with Responsive Sizing.
4071
  </label>
4072
  </p>
@@ -4230,7 +4442,7 @@ class YouTubePrefs
4230
  <div class="p">
4231
  <input name="<?php echo self::$opt_defer_js; ?>" id="<?php echo self::$opt_defer_js; ?>" <?php checked($all[self::$opt_defer_js], 1); ?> type="checkbox" class="checkbox">
4232
  <label for="<?php echo self::$opt_defer_js ?>">
4233
- <b class="chktitle"><?php _e('Defer Javascript:', 'youtube-embed-plus'); ?></b> <sup class="orange"><?php _e('new', 'youtube-embed-plus'); ?></sup>
4234
  <?php _e('JavaScript (JS) deferral is a common website performance option that can offer significant improvements of page speed. You can reduce the initial load time of your page by allowing this plugin\'s scripts to begin execution only after a page is loaded. You may receive a better GTMetrix score with this option turned on. Note: This feature is compatible with most sites, but turn it off if you are having issues.', 'youtube-embed-plus'); ?>
4235
  </label>
4236
  <div class="p box_defer_jquery">
@@ -4806,6 +5018,8 @@ class YouTubePrefs
4806
  $new_options[self::$opt_gallery_collapse_grid] = self::postchecked(self::$opt_gallery_collapse_grid) ? 1 : 0;
4807
  $new_options[self::$opt_vi_hide_monetize_tab] = self::postchecked(self::$opt_vi_hide_monetize_tab) ? 1 : 0;
4808
 
 
 
4809
  $_rel = 0;
4810
  try
4811
  {
@@ -6878,7 +7092,7 @@ class YouTubePrefs
6878
  <img src="<?php echo plugins_url(self::$folder_name . '/images/adstxt-help.png') . '?ver=' . self::$version; ?>"/>
6879
  Trouble getting content that fits your site, even with the proper settings above/below? Contact support at <strong><a href="mailto:ext@embedplus.com">ext@embedplus.com</a></strong>
6880
  </div>
6881
- <h2><span class="vi-num">1</span> Video Categories (Multiple Allowed) <sup class="orange">new</sup></h2>
6882
  <p>
6883
  Your video ad will be optimized to relate to your site's content and the one or more categories you select below. Note that the quality of the matches improves over time.
6884
  </p>
3
  Plugin Name: Embed Plus for YouTube - Gallery, Channel, Playlist, Live Stream
4
  Plugin URI: https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx?ref=plugin
5
  Description: YouTube Embed and YouTube Gallery WordPress Plugin. Embed a responsive video, YouTube channel, playlist gallery, or live stream
6
+ Version: 13.4.1.2
7
  Author: Embed Plus for YouTube Team
8
  Author URI: https://www.embedplus.com
9
  */
34
 
35
  public static $folder_name = 'youtube-embed-plus';
36
  public static $curltimeout = 30;
37
+ public static $version = '13.4.1.2';
38
  public static $opt_version = 'version';
39
  public static $optembedwidth = null;
40
  public static $optembedheight = null;
47
  public static $opt_debugmode = 'debugmode';
48
  public static $opt_old_script_method = 'old_script_method';
49
  public static $opt_cc_load_policy = 'cc_load_policy';
50
+ public static $opt_cc_lang_pref = 'cc_lang_pref';
51
  public static $opt_iv_load_policy = 'iv_load_policy';
52
  public static $opt_loop = 'loop';
53
  public static $opt_modestbranding = 'modestbranding';
225
  self::$yt_options = array(
226
  self::$opt_autoplay,
227
  self::$opt_cc_load_policy,
228
+ self::$opt_cc_lang_pref,
229
  self::$opt_iv_load_policy,
230
  self::$opt_loop,
231
  self::$opt_modestbranding,
1270
  {
1271
  ?>
1272
  <p>
1273
+ If you already know the direct link to the channel ID, enter it below. <br>Example: https://www.youtube.com/<strong>channel</strong>/UCnM5iMGiKsZg-iOlIO2ZkdQ <p class="smallnote">Note: the following format will not work: https://www.youtube.com<strong>/c/</strong>customchannelname If you cannot locate the proper channel ID format above, then try the other method below.</p>
1274
  </p>
1275
  <p>
1276
  Or, simply enter a link to any single video that belongs to the user's channel, and the plugin will find the channel for you.<br>Example: https://www.youtube.com/watch?v=YVvn8dpSAt0
1853
  $_glance = 0;
1854
  $_autoplay = 0;
1855
  $_cc_load_policy = 0;
1856
+ $_cc_lang_pref = '';
1857
  $_iv_load_policy = 1;
1858
  $_loop = 0;
1859
  $_modestbranding = 0;
1947
  $_debugmode = self::tryget($arroptions, self::$opt_debugmode, 0);
1948
  $_old_script_method = self::tryget($arroptions, self::$opt_old_script_method, 0);
1949
  $_cc_load_policy = self::tryget($arroptions, self::$opt_cc_load_policy, 0);
1950
+ $_cc_lang_pref = self::tryget($arroptions, self::$opt_cc_lang_pref, $_cc_lang_pref);
1951
  $_iv_load_policy = self::tryget($arroptions, self::$opt_iv_load_policy, 1);
1952
  $_loop = self::tryget($arroptions, self::$opt_loop, 0);
1953
  $_modestbranding = self::tryget($arroptions, self::$opt_modestbranding, 0);
2042
  self::$opt_glance => $_glance,
2043
  self::$opt_autoplay => $_autoplay,
2044
  self::$opt_cc_load_policy => $_cc_load_policy,
2045
+ self::$opt_cc_lang_pref => $_cc_lang_pref,
2046
  self::$opt_iv_load_policy => $_iv_load_policy,
2047
  self::$opt_loop => $_loop,
2048
  self::$opt_modestbranding => $_modestbranding,
3182
  $new_pointer_content = '<h3>' . __('New Update') . '</h3>'; // ooopointer
3183
 
3184
  $new_pointer_content .= '<p>'; // ooopointer
3185
+ $new_pointer_content .= "This update allows you to specify the default language (when available) that the player will use to display closed captions, for both Free and <a target=_blank href=" . self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=frompointer' . ">Pro versions</a>.";
3186
  if (self::vi_logged_in())
3187
  {
3188
  $new_pointer_content .= "<br><br><strong>Note:</strong> You are currently logged into the vi intelligence feature. vi support is being deprecated in the next version, so we recommend taking the vi ads down from your site. Please contact ext@embedplus.com for questions.";
3237
  }
3238
  }
3239
  ?>
3240
+ <a class="nav-tab" href="#jumpperformance">Performance</a>
3241
  <a class="nav-tab" href="#jumpcompat">Compatibility</a>
3242
  <a class="nav-tab" href="#jumpprivacy">Security & Privacy</a>
3243
  <a class="nav-tab" href="#jumphowto">Embed Manually</a>
3591
  <p>
3592
  <input name="<?php echo self::$opt_defaultdims; ?>" id="<?php echo self::$opt_defaultdims; ?>" <?php checked($all[self::$opt_defaultdims], 1); ?> type="checkbox" class="checkbox">
3593
  <span id="boxdefaultdims">
3594
+ Width: <input type="number" min="200" name="<?php echo self::$opt_defaultwidth; ?>" id="<?php echo self::$opt_defaultwidth; ?>" value="<?php echo esc_attr(trim($all[self::$opt_defaultwidth])); ?>" class="textinput" style="width: 75px;"> &nbsp;
3595
+ Height: <input type="number" min="200" name="<?php echo self::$opt_defaultheight; ?>" id="<?php echo self::$opt_defaultheight; ?>" value="<?php echo esc_attr(trim($all[self::$opt_defaultheight])); ?>" class="textinput" style="width: 75px;">
3596
  </span>
3597
 
3598
+ <label for="<?php echo self::$opt_defaultdims; ?>"><?php _e('<b class="chktitle">Default Dimensions:</b> Make your videos have a default size. Recommended: 800 x 450 (NOTE: If responsive sizing is also turned on, your videos will be responsive but also keep this aspect ratio.). Also, according to YouTube guidelines, the player must be a minimum of 200 x 200 (or recommended 480 x 270 for 16:9 ratio players) in order to display correctly.') ?></label>
3599
  </p>
3600
  <p>
3601
  <input name="<?php echo self::$opt_responsive; ?>" id="<?php echo self::$opt_responsive; ?>" <?php checked($all[self::$opt_responsive], 1); ?> type="checkbox" class="checkbox">
3645
  <input name="<?php echo self::$opt_cc_load_policy; ?>" id="<?php echo self::$opt_cc_load_policy; ?>" <?php checked($all[self::$opt_cc_load_policy], 1); ?> type="checkbox" class="checkbox">
3646
  <label for="<?php echo self::$opt_cc_load_policy; ?>"><?php _e('<b class="chktitle">Closed Captions:</b> Turn on closed captions by default.') ?></label>
3647
  </p>
3648
+ <?php
3649
+ $lang_codes = [
3650
+ ["Abkhazian","аҧсуа бызшәа, аҧсшәа","ab","abk","abk"],
3651
+ ["Afar","Afaraf","aa","aar","aar"],
3652
+ ["Afrikaans","Afrikaans","af","afr","afr"],
3653
+ ["Akan","Akan","ak","aka","aka"],
3654
+ ["Albanian","Shqip","sq","sqi","alb"],
3655
+ ["Amharic","አማርኛ","am","amh","amh"],
3656
+ ["Arabic","العربية","ar","ara","ara"],
3657
+ ["Aragonese","aragonés","an","arg","arg"],
3658
+ ["Armenian","Հայերեն","hy","hye","arm"],
3659
+ ["Assamese","অসমীয়া","as","asm","asm"],
3660
+ ["Avaric","авар мацӀ, магӀарул мацӀ","av","ava","ava"],
3661
+ ["Avestan","avesta","ae","ave","ave"],
3662
+ ["Aymara","aymar aru","ay","aym","aym"],
3663
+ ["Azerbaijani","azərbaycan dili","az","aze","aze"],
3664
+ ["Bambara","bamanankan","bm","bam","bam"],
3665
+ ["Bashkir","башҡорт теле","ba","bak","bak"],
3666
+ ["Basque","euskara, euskera","eu","eus","baq"],
3667
+ ["Belarusian","беларуская мова","be","bel","bel"],
3668
+ ["Bengali","বাংলা","bn","ben","ben"],
3669
+ ["Bihari languages","भोजपुरी","bh","bih","bih"],
3670
+ ["Bislama","Bislama","bi","bis","bis"],
3671
+ ["Bosnian","bosanski jezik","bs","bos","bos"],
3672
+ ["Breton","brezhoneg","br","bre","bre"],
3673
+ ["Bulgarian","български език","bg","bul","bul"],
3674
+ ["Burmese","ဗမာစာ","my","mya","bur"],
3675
+ ["Catalan, Valencian","català, valencià","ca","cat","cat"],
3676
+ ["Chamorro","Chamoru","ch","cha","cha"],
3677
+ ["Chechen","нохчийн мотт","ce","che","che"],
3678
+ ["Chichewa, Chewa, Nyanja","chiCheŵa, chinyanja","ny","nya","nya"],
3679
+ ["Chinese","中文 (Zhōngwén), 汉语, 漢語","zh","zho","chi"],
3680
+ ["Chuvash","чӑваш чӗлхи","cv","chv","chv"],
3681
+ ["Cornish","Kernewek","kw","cor","cor"],
3682
+ ["Corsican","corsu, lingua corsa","co","cos","cos"],
3683
+ ["Cree","ᓀᐦᐃᔭᐍᐏᐣ","cr","cre","cre"],
3684
+ ["Croatian","hrvatski jezik","hr","hrv","hrv"],
3685
+ ["Czech","čeština, český jazyk","cs","ces","cze"],
3686
+ ["Danish","dansk","da","dan","dan"],
3687
+ ["Divehi, Dhivehi, Maldivian","ދިވެހި","dv","div","div"],
3688
+ ["Dutch, Flemish","Nederlands, Vlaams","nl","nld","dut"],
3689
+ ["Dzongkha","རྫོང་ཁ","dz","dzo","dzo"],
3690
+ ["English","English","en","eng","eng"],
3691
+ ["Esperanto","Esperanto","eo","epo","epo"],
3692
+ ["Estonian","eesti, eesti keel","et","est","est"],
3693
+ ["Ewe","Eʋegbe","ee","ewe","ewe"],
3694
+ ["Faroese","føroyskt","fo","fao","fao"],
3695
+ ["Fijian","vosa Vakaviti","fj","fij","fij"],
3696
+ ["Finnish","suomi, suomen kieli","fi","fin","fin"],
3697
+ ["French","français, langue française","fr","fra","fre"],
3698
+ ["Fulah","Fulfulde, Pulaar, Pular","ff","ful","ful"],
3699
+ ["Galician","Galego","gl","glg","glg"],
3700
+ ["Georgian","ქართული","ka","kat","geo"],
3701
+ ["German","Deutsch","de","deu","ger"],
3702
+ ["Greek, Modern (1453–)","ελληνικά","el","ell","gre"],
3703
+ ["Guarani","Avañe'ẽ","gn","grn","grn"],
3704
+ ["Gujarati","ગુજરાતી","gu","guj","guj"],
3705
+ ["Haitian, Haitian Creole","Kreyòl ayisyen","ht","hat","hat"],
3706
+ ["Hausa","(Hausa) هَوُسَ","ha","hau","hau"],
3707
+ ["Hebrew","עברית","he","heb","heb"],
3708
+ ["Herero","Otjiherero","hz","her","her"],
3709
+ ["Hindi","हिन्दी, हिंदी","hi","hin","hin"],
3710
+ ["Hiri Motu","Hiri Motu","ho","hmo","hmo"],
3711
+ ["Hungarian","magyar","hu","hun","hun"],
3712
+ ["Interlingua (International Auxiliary Language Association)","Interlingua","ia","ina","ina"],
3713
+ ["Indonesian","Bahasa Indonesia","id","ind","ind"],
3714
+ ["Interlingue, Occidental","(originally:) Occidental, (after WWII:) Interlingue","ie","ile","ile"],
3715
+ ["Irish","Gaeilge","ga","gle","gle"],
3716
+ ["Igbo","Asụsụ Igbo","ig","ibo","ibo"],
3717
+ ["Inupiaq","Iñupiaq, Iñupiatun","ik","ipk","ipk"],
3718
+ ["Ido","Ido","io","ido","ido"],
3719
+ ["Icelandic","Íslenska","is","isl","ice"],
3720
+ ["Italian","Italiano","it","ita","ita"],
3721
+ ["Inuktitut","ᐃᓄᒃᑎᑐᑦ","iu","iku","iku"],
3722
+ ["Japanese","日本語 (にほんご)","ja","jpn","jpn"],
3723
+ ["Javanese","ꦧꦱꦗꦮ, Basa Jawa","jv","jav","jav"],
3724
+ ["Kalaallisut, Greenlandic","kalaallisut, kalaallit oqaasii","kl","kal","kal"],
3725
+ ["Kannada","ಕನ್ನಡ","kn","kan","kan"],
3726
+ ["Kanuri","Kanuri","kr","kau","kau"],
3727
+ ["Kashmiri","कश्मीरी, كشميري‎","ks","kas","kas"],
3728
+ ["Kazakh","қазақ тілі","kk","kaz","kaz"],
3729
+ ["Central Khmer","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ","km","khm","khm"],
3730
+ ["Kikuyu, Gikuyu","Gĩkũyũ","ki","kik","kik"],
3731
+ ["Kinyarwanda","Ikinyarwanda","rw","kin","kin"],
3732
+ ["Kirghiz, Kyrgyz","Кыргызча, Кыргыз тили","ky","kir","kir"],
3733
+ ["Komi","коми кыв","kv","kom","kom"],
3734
+ ["Kongo","Kikongo","kg","kon","kon"],
3735
+ ["Korean","한국어","ko","kor","kor"],
3736
+ ["Kurdish","Kurdî, کوردی‎","ku","kur","kur"],
3737
+ ["Kuanyama, Kwanyama","Kuanyama","kj","kua","kua"],
3738
+ ["Latin","latine, lingua latina","la","lat","lat"],
3739
+ ["Luxembourgish, Letzeburgesch","Lëtzebuergesch","lb","ltz","ltz"],
3740
+ ["Ganda","Luganda","lg","lug","lug"],
3741
+ ["Limburgan, Limburger, Limburgish","Limburgs","li","lim","lim"],
3742
+ ["Lingala","Lingála","ln","lin","lin"],
3743
+ ["Lao","ພາສາລາວ","lo","lao","lao"],
3744
+ ["Lithuanian","lietuvių kalba","lt","lit","lit"],
3745
+ ["Luba-Katanga","Kiluba","lu","lub","lub"],
3746
+ ["Latvian","latviešu valoda","lv","lav","lav"],
3747
+ ["Manx","Gaelg, Gailck","gv","glv","glv"],
3748
+ ["Macedonian","македонски јазик","mk","mkd","mac"],
3749
+ ["Malagasy","fiteny malagasy","mg","mlg","mlg"],
3750
+ ["Malay","Bahasa Melayu, بهاس ملايو‎","ms","msa","may"],
3751
+ ["Malayalam","മലയാളം","ml","mal","mal"],
3752
+ ["Maltese","Malti","mt","mlt","mlt"],
3753
+ ["Maori","te reo Māori","mi","mri","mao"],
3754
+ ["Marathi","मराठी","mr","mar","mar"],
3755
+ ["Marshallese","Kajin M̧ajeļ","mh","mah","mah"],
3756
+ ["Mongolian","Монгол хэл","mn","mon","mon"],
3757
+ ["Nauru","Dorerin Naoero","na","nau","nau"],
3758
+ ["Navajo, Navaho","Diné bizaad","nv","nav","nav"],
3759
+ ["North Ndebele","isiNdebele","nd","nde","nde"],
3760
+ ["Nepali","नेपाली","ne","nep","nep"],
3761
+ ["Ndonga","Owambo","ng","ndo","ndo"],
3762
+ ["Norwegian Bokmål","Norsk Bokmål","nb","nob","nob"],
3763
+ ["Norwegian Nynorsk","Norsk Nynorsk","nn","nno","nno"],
3764
+ ["Norwegian","Norsk","no","nor","nor"],
3765
+ ["Sichuan Yi, Nuosu","ꆈꌠ꒿ Nuosuhxop","ii","iii","iii"],
3766
+ ["South Ndebele","isiNdebele","nr","nbl","nbl"],
3767
+ ["Occitan","occitan, lenga d'òc","oc","oci","oci"],
3768
+ ["Ojibwa","ᐊᓂᔑᓈᐯᒧᐎᓐ","oj","oji","oji"],
3769
+ ["Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic","ѩзыкъ словѣньскъ","cu","chu","chu"],
3770
+ ["Oromo","Afaan Oromoo","om","orm","orm"],
3771
+ ["Oriya","ଓଡ଼ିଆ","or","ori","ori"],
3772
+ ["Ossetian, Ossetic","ирон æвзаг","os","oss","oss"],
3773
+ ["Punjabi, Panjabi","ਪੰਜਾਬੀ, پنجابی‎","pa","pan","pan"],
3774
+ ["Pali","पालि, पाळि","pi","pli","pli"],
3775
+ ["Persian","فارسی","fa","fas","per"],
3776
+ ["Polish","język polski, polszczyzna","pl","pol","pol"],
3777
+ ["Pashto, Pushto","پښتو","ps","pus","pus"],
3778
+ ["Portuguese","Português","pt","por","por"],
3779
+ ["Quechua","Runa Simi, Kichwa","qu","que","que"],
3780
+ ["Romansh","Rumantsch Grischun","rm","roh","roh"],
3781
+ ["Rundi","Ikirundi","rn","run","run"],
3782
+ ["Romanian, Moldavian, Moldovan","Română","ro","ron","rum"],
3783
+ ["Russian","русский","ru","rus","rus"],
3784
+ ["Sanskrit","संस्कृतम्","sa","san","san"],
3785
+ ["Sardinian","sardu","sc","srd","srd"],
3786
+ ["Sindhi","सिन्धी, سنڌي، سندھی‎","sd","snd","snd"],
3787
+ ["Northern Sami","Davvisámegiella","se","sme","sme"],
3788
+ ["Samoan","gagana fa'a Samoa","sm","smo","smo"],
3789
+ ["Sango","yângâ tî sängö","sg","sag","sag"],
3790
+ ["Serbian","српски језик","sr","srp","srp"],
3791
+ ["Gaelic, Scottish Gaelic","Gàidhlig","gd","gla","gla"],
3792
+ ["Shona","chiShona","sn","sna","sna"],
3793
+ ["Sinhala, Sinhalese","සිංහල","si","sin","sin"],
3794
+ ["Slovak","Slovenčina, Slovenský Jazyk","sk","slk","slo"],
3795
+ ["Slovenian","Slovenski Jezik, Slovenščina","sl","slv","slv"],
3796
+ ["Somali","Soomaaliga, af Soomaali","so","som","som"],
3797
+ ["Southern Sotho","Sesotho","st","sot","sot"],
3798
+ ["Spanish, Castilian","Español","es","spa","spa"],
3799
+ ["Sundanese","Basa Sunda","su","sun","sun"],
3800
+ ["Swahili","Kiswahili","sw","swa","swa"],
3801
+ ["Swati","SiSwati","ss","ssw","ssw"],
3802
+ ["Swedish","Svenska","sv","swe","swe"],
3803
+ ["Tamil","தமிழ்","ta","tam","tam"],
3804
+ ["Telugu","తెలుగు","te","tel","tel"],
3805
+ ["Tajik","тоҷикӣ, toçikī, تاجیکی‎","tg","tgk","tgk"],
3806
+ ["Thai","ไทย","th","tha","tha"],
3807
+ ["Tigrinya","ትግርኛ","ti","tir","tir"],
3808
+ ["Tibetan","བོད་ཡིག","bo","bod","tib"],
3809
+ ["Turkmen","Türkmen, Түркмен","tk","tuk","tuk"],
3810
+ ["Tagalog","Wikang Tagalog","tl","tgl","tgl"],
3811
+ ["Tswana","Setswana","tn","tsn","tsn"],
3812
+ ["Tonga (Tonga Islands)","Faka Tonga","to","ton","ton"],
3813
+ ["Turkish","Türkçe","tr","tur","tur"],
3814
+ ["Tsonga","Xitsonga","ts","tso","tso"],
3815
+ ["Tatar","татар теле, tatar tele","tt","tat","tat"],
3816
+ ["Twi","Twi","tw","twi","twi"],
3817
+ ["Tahitian","Reo Tahiti","ty","tah","tah"],
3818
+ ["Uighur, Uyghur","ئۇيغۇرچە‎, Uyghurche","ug","uig","uig"],
3819
+ ["Ukrainian","Українська","uk","ukr","ukr"],
3820
+ ["Urdu","اردو","ur","urd","urd"],
3821
+ ["Uzbek","Oʻzbek, Ўзбек, أۇزبېك‎","uz","uzb","uzb"],
3822
+ ["Venda","Tshivenḓa","ve","ven","ven"],
3823
+ ["Vietnamese","Tiếng Việt","vi","vie","vie"],
3824
+ ["Volapük","Volapük","vo","vol","vol"],
3825
+ ["Walloon","Walon","wa","wln","wln"],
3826
+ ["Welsh","Cymraeg","cy","cym","wel"],
3827
+ ["Wolof","Wollof","wo","wol","wol"],
3828
+ ["Western Frisian","Frysk","fy","fry","fry"],
3829
+ ["Xhosa","isiXhosa","xh","xho","xho"],
3830
+ ["Yiddish","ייִדיש","yi","yid","yid"],
3831
+ ["Yoruba","Yorùbá","yo","yor","yor"],
3832
+ ["Zhuang, Chuang","Saɯ cueŋƅ, Saw cuengh","za","zha","zha"],
3833
+ ["Zulu","isiZulu","zu","zul","zul"]
3834
+ ];
3835
+
3836
+ $selected_val = trim($all[self::$opt_cc_lang_pref]);
3837
+ ?>
3838
+ <p>
3839
+ <label for="<?php echo self::$opt_cc_lang_pref; ?>"><b class="chktitle">Closed Captions Language:</b></label> <sup class="orange"><?php _e('new', 'youtube-embed-plus-pro'); ?></sup>
3840
+ <select name="<?php echo self::$opt_cc_lang_pref; ?>" id="<?php echo self::$opt_cc_lang_pref; ?>" style="width: 260px;">
3841
+ <option <?php echo '' == $selected_val ? 'selected' : '' ?> value="">Default/Unspecified</option>
3842
+ <?php
3843
+ foreach ($lang_codes as $idx => $lang_row)
3844
+ {
3845
+ $iso_code = $lang_row[2];
3846
+ $iso_label = $lang_row[0] . ' - ' . $lang_row[1];
3847
+ ?>
3848
+ <option <?php echo $iso_code == $selected_val ? 'selected' : '' ?> value="<?php echo $iso_code ?>"><?php echo $iso_label ?></option>
3849
+ <?php
3850
+ }
3851
+ ?>
3852
+ </select>
3853
+ Select the preferred default language for closed captions (when available).
3854
+ </p>
3855
  <p>
3856
  <input name="<?php echo self::$opt_dohl; ?>" id="<?php echo self::$opt_dohl; ?>" <?php checked($all[self::$opt_dohl], 1); ?> type="checkbox" class="checkbox">
3857
  <label for="<?php echo self::$opt_dohl; ?>"><b class="chktitle">Player Localization / Internationalization: </b>
4271
  <p>
4272
  <input name="<?php echo self::$opt_ajax_save; ?>" id="<?php echo self::$opt_ajax_save; ?>" <?php checked($all[self::$opt_ajax_save], 1); ?> type="checkbox" class="checkbox">
4273
  <label for="<?php echo self::$opt_ajax_save; ?>">
4274
+ <b class="chktitle">Save Settings with AJAX: </b>
4275
  Turn this option off if you are having trouble saving your settings.
4276
  </label>
4277
  </p>
4278
  <p>
4279
  <input name="<?php echo self::$opt_gb_compat; ?>" id="<?php echo self::$opt_gb_compat; ?>" <?php checked($all[self::$opt_gb_compat], 1); ?> type="checkbox" class="checkbox">
4280
  <label for="<?php echo self::$opt_gb_compat; ?>">
4281
+ <b class="chktitle">Gutenberg Block Editor Theme Spacing: </b>
4282
  Check this option to fix possible issues with spacing below your videos. You may also want to try combining this option with Responsive Sizing.
4283
  </label>
4284
  </p>
4442
  <div class="p">
4443
  <input name="<?php echo self::$opt_defer_js; ?>" id="<?php echo self::$opt_defer_js; ?>" <?php checked($all[self::$opt_defer_js], 1); ?> type="checkbox" class="checkbox">
4444
  <label for="<?php echo self::$opt_defer_js ?>">
4445
+ <b class="chktitle"><?php _e('Defer Javascript:', 'youtube-embed-plus'); ?></b>
4446
  <?php _e('JavaScript (JS) deferral is a common website performance option that can offer significant improvements of page speed. You can reduce the initial load time of your page by allowing this plugin\'s scripts to begin execution only after a page is loaded. You may receive a better GTMetrix score with this option turned on. Note: This feature is compatible with most sites, but turn it off if you are having issues.', 'youtube-embed-plus'); ?>
4447
  </label>
4448
  <div class="p box_defer_jquery">
5018
  $new_options[self::$opt_gallery_collapse_grid] = self::postchecked(self::$opt_gallery_collapse_grid) ? 1 : 0;
5019
  $new_options[self::$opt_vi_hide_monetize_tab] = self::postchecked(self::$opt_vi_hide_monetize_tab) ? 1 : 0;
5020
 
5021
+ $new_options[self::$opt_cc_lang_pref] = sanitize_title($_POST[self::$opt_cc_lang_pref]);
5022
+
5023
  $_rel = 0;
5024
  try
5025
  {
7092
  <img src="<?php echo plugins_url(self::$folder_name . '/images/adstxt-help.png') . '?ver=' . self::$version; ?>"/>
7093
  Trouble getting content that fits your site, even with the proper settings above/below? Contact support at <strong><a href="mailto:ext@embedplus.com">ext@embedplus.com</a></strong>
7094
  </div>
7095
+ <h2><span class="vi-num">1</span> Video Categories (Multiple Allowed)</h2>
7096
  <p>
7097
  Your video ad will be optimized to relate to your site's content and the one or more categories you select below. Note that the quality of the matches improves over time.
7098
  </p>