ajout plugin ckeditor manquant

This commit is contained in:
afornerot 2021-02-23 13:57:21 +01:00
parent ee192e04ee
commit d16e028166
51 changed files with 1899 additions and 0 deletions

View File

@ -0,0 +1,259 @@
CKEDITOR.dialog.add( 'html5video', function( editor ) {
return {
title: editor.lang.html5video.title,
minWidth: 500,
minHeight: 100,
contents: [ {
id: 'info',
label: editor.lang.html5video.infoLabel,
elements: [
{
type: 'vbox',
padding: 0,
children: [
{
type: 'hbox',
widths: [ '365px', '110px' ],
align: 'right',
children: [ {
type: 'text',
id: 'url',
label: editor.lang.html5video.allowed,
required: true,
validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.html5video.urlMissing ),
setup: function( widget ) {
this.setValue( widget.data.src );
},
commit: function( widget ) {
widget.setData( 'src', this.getValue() );
}
},
{
type: 'button',
id: 'browse',
// v-align with the 'txtUrl' field.
// TODO: We need something better than a fixed size here.
style: 'display:inline-block;margin-top:14px;',
align: 'center',
label: editor.lang.common.browseServer,
hidden: true,
filebrowser: 'info:url'
} ]
} ]
},
{
type: 'checkbox',
id: 'responsive',
label: editor.lang.html5video.responsive,
setup: function( widget ) {
this.setValue( widget.data.responsive );
},
commit: function( widget ) {
widget.setData( 'responsive', this.getValue()?'true':'' );
}
},
{
type: 'vbox',
padding: 0,
children: [{
type: 'hbox',
widths: [ '365px', '110px' ],
align: 'right',
children: [ {
type: 'text',
id: 'poster',
label: editor.lang.html5video.poster,
setup: function( widget ) {
this.setValue( widget.data.poster );
},
commit: function( widget ) {
widget.setData( 'poster', this.getValue() );
}
},
{
type: 'button',
id: 'browseposter',
// v-align with the 'txtUrl' field.
// TODO: We need something better than a fixed size here.
style: 'display:inline-block;margin-top:14px;',
align: 'center',
label: editor.lang.common.browseServer,
hidden: true,
filebrowser:{action:"Browse",target:"info:poster",url:editor.config.filebrowserImageBrowseUrl}
} ]
}]
},
{
type: 'checkbox',
id: 'controls',
label: editor.lang.html5video.controls,
setup: function (widget) {
this.setValue(widget.data.controls);
},
commit: function (widget) {
widget.setData('controls', this.getValue() ? 'true' : '');
}
},
{
type: 'hbox',
id: 'size',
children: [ {
type: 'text',
id: 'width',
label: editor.lang.common.width,
setup: function( widget ) {
if ( widget.data.width ) {
this.setValue( widget.data.width );
}
},
commit: function( widget ) {
widget.setData( 'width', this.getValue() );
}
},
{
type: 'text',
id: 'height',
label: editor.lang.common.height,
setup: function( widget ) {
if ( widget.data.height ) {
this.setValue( widget.data.height );
}
},
commit: function( widget ) {
widget.setData( 'height', this.getValue() );
}
},
]
},
{
type: 'hbox',
id: 'alignment',
children: [ {
type: 'radio',
id: 'align',
label: editor.lang.common.align,
items: [
[editor.lang.common.alignCenter, 'center'],
[editor.lang.common.alignLeft, 'left'],
[editor.lang.common.alignRight, 'right'],
[editor.lang.common.alignNone, 'none']
],
'default': 'center',
setup: function( widget ) {
if ( widget.data.align ) {
this.setValue( widget.data.align );
}
},
commit: function( widget ) {
widget.setData( 'align', this.getValue() );
}
} ]
} ]
},
{
id: 'Upload',
hidden: true,
filebrowser: 'uploadButton',
label: editor.lang.html5video.upload,
elements: [ {
type: 'file',
id: 'upload',
label: editor.lang.html5video.btnUpload,
style: 'height:40px',
size: 38
},
{
type: 'fileButton',
id: 'uploadButton',
filebrowser: 'info:url',
label: editor.lang.html5video.btnUpload,
'for': [ 'Upload', 'upload' ]
} ]
},
{
id: 'advanced',
label: editor.lang.html5video.advanced,
elements: [ {
type: 'vbox',
padding: 10,
children: [ {
type: 'hbox',
widths: ["33%", "33%", "33%"],
children: [ {
type: 'radio',
id: 'autoplay',
label: editor.lang.html5video.autoplay,
items: [
[editor.lang.html5video.yes, 'yes'],
[editor.lang.html5video.no, 'no']
],
'default': 'no',
setup: function( widget ) {
if ( widget.data.autoplay ) {
this.setValue( widget.data.autoplay );
}
},
commit: function( widget ) {
widget.setData( 'autoplay', this.getValue() );
}
},
{
type: 'radio',
id: 'loop',
label: editor.lang.html5video.loop,
items: [
[editor.lang.html5video.yes, 'yes'],
[editor.lang.html5video.no, 'no']
],
'default': 'no',
setup: function( widget ) {
if ( widget.data.loop ) {
this.setValue( widget.data.loop );
}
},
commit: function( widget ) {
widget.setData( 'loop', this.getValue() );
}
},
{
type: 'radio',
id: 'allowdownload',
label: editor.lang.html5video.allowdownload,
items: [
[editor.lang.html5video.yes, 'yes'],
[editor.lang.html5video.no, 'no']
],
'default': 'no',
setup: function( widget ) {
if ( widget.data.allowdownload ) {
this.setValue(widget.data.allowdownload);
}
},
commit: function( widget ) {
widget.setData( 'allowdownload', this.getValue() );
}
} ]
},
{
type: 'hbox',
children: [ {
type: "text",
id: 'advisorytitle',
label: editor.lang.html5video.advisorytitle,
'default': '',
setup: function( widget ) {
if ( widget.data.advisorytitle ) {
this.setValue(widget.data.advisorytitle);
}
},
commit: function( widget ) {
widget.setData( 'advisorytitle', this.getValue() );
}
} ]
} ]
} ]
} ]
};
} );

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'bg', {
button: 'Вмъква HTML5 видео',
title: 'HTML5 видео',
infoLabel: 'Видео',
allowed: 'Допустими файлови разширения: MP4, WebM, Ogv',
urlMissing: 'URL адресът на източника на видео липсва.',
videoProperties: 'Свойства на видео',
upload: 'Качване',
btnUpload: 'Изпрати на сървъра',
advanced: 'Разширено',
autoplay: 'Автоматично изпълнение',
allowdownload: 'Позволено изтегляне?',
advisorytitle: 'Заглавие',
yes: 'Да',
no: 'Не',
loop: 'Циклично изпълнение',
responsive: 'Адаптивна ширина',
controls: 'Показване на контролите',
poster: 'URL миниатюра'
} );

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'ca', {
button: "Insereix un vídeo HTML5",
title: "Vídeo HTML5",
infoLabel: "Informació del vídeo",
allowed: "Extensions d'arxius permeses: MP4, WebM, Ogv",
urlMissing: "Falta l'URL de la font de vídeo.",
videoProperties: "Propietats de vídeo",
upload: "Pujar",
btnUpload: "Envia-lo al servidor",
advanced: "Avançat",
autoplay: "Reproducció automàtica?",
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: "Sí",
no: "No",
loop: "Bucle?",
responsive: "Ample adaptatiu",
controls: "Mostra els controls",
poster: "Miniatura"
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'de', {
button: 'HTML5 Video einfügen',
title: 'HTML5 Video',
infoLabel: 'Video Infos',
allowed: 'Erlaubte Dateierweiterungen: MP4, WebM, Ogv',
urlMissing: 'Sie haben keine URL zur Video-Datei angegeben.',
videoProperties: 'Video-Einstellungen',
upload: 'Hochladen',
btnUpload: 'Zum Server senden',
advanced: 'Erweitert',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Ja',
no: 'Nein',
controls: 'Steuerelemente anzeigen'
} );

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'en', {
button: 'Insert HTML5 video',
title: 'HTML5 video',
infoLabel: 'Video info',
allowed: 'Allowed file extensions: MP4, WebM, Ogv',
urlMissing: 'Video source URL is missing.',
videoProperties: 'Video properties',
upload: 'Upload',
btnUpload: 'Send it to the server',
advanced: 'Advanced',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Yes',
no: 'No',
loop: 'Loop?',
responsive: 'Responsive width',
controls: 'Show controls',
poster: 'Thumbnail'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'es', {
button: 'Insertar video HTML5',
title: 'Video HTML5',
infoLabel: 'Información del video',
allowed: 'Extensiones de archivo permitidas: MP4, WebM, Ogv',
urlMissing: 'La URL del video no puede estar vacía.',
videoProperties: 'Propiedades del video',
upload: 'Cargar',
btnUpload: 'Enviar al servidor',
advanced: 'Avanzado',
autoplay: '¿Reproducir automáticamente?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Sí',
no: 'No',
responsive: '¿Responsive?',
controls: 'Mostrar controles'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'eu', {
button: 'Txertatu HTML5 bideoa',
title: 'HTML5 bideoa',
infoLabel: 'Bideoaren informazioa',
allowed: 'Baimendutako fitxategi luzapenak: MP4, WebM, Ogv',
urlMissing: 'Bideoaren URLak ezin du hutsik egon.',
videoProperties: 'Bideoaren propietateak',
upload: 'Kargatu',
btnUpload: 'Bidali zerbitzarira',
advanced: 'Aurreratua',
autoplay: 'Automatikoki erreproduzitu?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Bai',
no: 'Ez',
controls: 'Erakutsi kontrolak?'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'fa', {
button: 'وارد کردن ویدیوی HTML5',
title: 'ویدیوی HTML5',
infoLabel: 'اطلاعات ویدیو',
allowed: 'پسوندهای مجاز فایل: MP4, WebM, Ogv',
urlMissing: 'URL منبع ویدیو پیدا نشد.',
videoProperties: 'خواهص ویدیو',
upload: 'بارگذاری',
btnUpload: 'ارسال به سرور',
advanced: 'پیشرفته',
autoplay: 'پخش خودکار؟',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'بله',
no: 'خیر',
responsive: 'عرض واکنشگرا',
controls: 'نمایش کنترل؟'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'fr', {
button: 'Insérer un lecteur video HTML5',
title: 'HTML5 video',
infoLabel: 'Informations video',
allowed: 'Extensions de fichiers autorisées: MP4, WebM, Ogv',
urlMissing: 'URL de la source video manquante. Veuillez la renseigner.',
videoProperties: 'Propriétés Video',
upload: 'Télécharger',
btnUpload: 'Envoyer vers le serveur',
advanced: 'Avancé',
autoplay: 'Jouer automatiquement ?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Oui',
no: 'Non',
controls: 'Afficher les contrôles ?'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang('html5video', 'he', {
button: 'הוסף וידאו HTML5',
title: 'וידאו HTML5',
infoLabel: 'מידע וידאו',
allowed: 'סוגי קבצים מורשים: MP4, WebM, Ogv',
urlMissing: 'כתובת הוידאו חסרה',
videoProperties: 'מאפייני וידאו',
upload: 'העלה',
btnUpload: 'שלח לשרת',
advanced: 'מתקדם',
autoplay: 'ניגון אוטומטי?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'כן',
no: 'לא',
responsive: 'רוחב רספונסיבי'
});

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'ko', {
button: 'HTML5 비디오 추가하기',
title: 'HTML5 비디오',
infoLabel: '비디오 정보',
allowed: '허용된 파일 확장자들: MP4, WebM, Ogv',
urlMissing: '비디오 Url이 없습니다.',
videoProperties: '비디오 속성',
upload: '업로드',
btnUpload: '서버로 전송',
advanced: '고급',
autoplay: '자동재생?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: '네',
no: '아니오',
loop: '무한반복?',
responsive: '반응형 너비',
controls: '컨트롤 보여주기',
poster: '썸네일'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'pl', {
button: 'Wstaw HTML5 video',
title: 'HTML5 video',
infoLabel: 'Informacje',
allowed: 'Dozwolone typy plików: MP4, WebM, Ogv',
urlMissing: 'Nie znaleziono URL do pliku video.',
videoProperties: 'Właściwości',
upload: 'Wrzuć plik',
btnUpload: 'Wyślij na serwer',
advanced: 'Zaawansowane',
autoplay: 'Autoodtwarzanie?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Tak',
no: 'Nie',
responsive: 'Szerokość responsywna',
controls: 'Pokaż kontrolki'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'pt-br', {
button: 'Inserir vídeo HTML5',
title: 'HTML5 video',
infoLabel: 'Informações do Vídeo',
allowed: 'Extensões permitidas: MP4, WebM, Ogv',
urlMissing: 'O URL do vídeo está faltando.',
videoProperties: 'Propriedades do vídeo',
upload: 'Upload',
btnUpload: 'Enviar para o servidor',
advanced: 'Avançado',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Sim',
no: 'Não',
responsive: 'Largura responsiva',
controls: 'Exibir controles'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'pt', {
button: 'Inserir vídeo HTML5',
title: 'HTML5 video',
infoLabel: 'Informações do Vídeo',
allowed: 'Extensões permitidas: MP4, WebM, Ogv',
urlMissing: 'O URL do vídeo está faltando.',
videoProperties: 'Propriedades do vídeo',
upload: 'Upload',
btnUpload: 'Enviar para o servidor',
advanced: 'Avançado',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Sim',
no: 'Não',
responsive: 'Largura responsiva',
controls: 'Exibir controles'
} );

View File

@ -0,0 +1,21 @@
CKEDITOR.plugins.setLang( 'html5video', 'ru', {
button: 'Вставить HTML5 видео',
title: 'HTML5 видео',
infoLabel: 'Видео',
allowed: 'Допустимые расширения файлов: MP4, WebM, Ogv',
urlMissing: 'Не выбран источник видео',
videoProperties: 'Свойства видео',
upload: 'Загрузить',
btnUpload: 'Загрузить на сервер',
advanced: 'Дополнительно',
autoplay: 'Автовоспроизведение',
allowdownload: 'Разрешить загрузку',
advisorytitle: 'Заголовок',
yes: 'Да',
no: 'Нет',
responsive: 'Адаптивная ширина',
controls: 'Показать элементы управления',
loop: 'Зациклить',
poster: 'Постер',
advisorytitle: 'Пояснительный текст'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'uk', {
button: 'Вставити HTML5 відео',
title: 'HTML5 відео',
infoLabel: 'Інформація',
allowed: 'Допустимі розширення файлів: MP4, WebM, Ogv',
urlMissing: 'Не обрано джерела відео',
videoProperties: 'Властивості відео',
upload: 'Відвантажити',
btnUpload: 'Відвантажити на сервер',
advanced: 'Додатково',
autoplay: 'Автовідтворення?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Так',
no: 'Ні',
controls: 'Показати елементи керування?'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'uz', {
button: 'HTML5 video qoshing',
title: 'HTML5 video',
infoLabel: 'Video ma\'lumot',
allowed: 'Ruxsat etilgan kengaytmalar: MP4, WebM, Ogv',
urlMissing: 'Video\'ning URL manbasi topilmadi.',
videoProperties: 'Video xususiyatlari',
upload: 'Yuklash',
btnUpload: 'Serverga jonatish',
advanced: 'Kengaytrilgan',
autoplay: 'Avtoijro?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Ha',
no: 'Yoq',
controls: 'Tekshiruvlarni korsatish'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'zh-cn', {
button: '发布HTML5视频',
title: 'HTML5视频',
infoLabel: '视频信息',
allowed: '支持格式: MP4, WebM, Ogv',
urlMissing: '视频url',
videoProperties: '视频属性',
upload: '上传视频',
btnUpload: '上传',
advanced: '高级',
autoplay: '自动播放',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: '是',
no: '否',
responsive: '自动宽度',
controls: '显示控件?'
} );

View File

@ -0,0 +1,196 @@
CKEDITOR.plugins.add( 'html5video', {
requires: 'widget',
lang: 'bg,ca,de,en,eu,es,ru,uk,fr,ko,pt,pt-br,pl',
icons: 'html5video',
init: function( editor ) {
editor.widgets.add( 'html5video', {
button: editor.lang.html5video.button,
template: '<div class="ckeditor-html5-video"></div>',
/*
* Allowed content rules (http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules):
* - div-s with text-align,float,margin-left,margin-right inline style rules and required ckeditor-html5-video class.
* - video tags with src, controls, width and height attributes.
*/
allowedContent: 'div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,poster,controls,autoplay,width, height,loop]{max-width,height};',
requiredContent: 'div(ckeditor-html5-video); video[src];',
upcast: function( element ) {
return element.name === 'div' && element.hasClass( 'ckeditor-html5-video' );
},
dialog: 'html5video',
init: function() {
var src = '';
var autoplay = '';
var loop = '';
var controls = '';
var align = this.element.getStyle( 'text-align' );
var width = '';
var height = '';
var poster = '';
// If there's a child (the video element)
if ( this.element.getChild( 0 ) ) {
// get it's attributes.
src = this.element.getChild( 0 ).getAttribute( 'src' );
width = this.element.getChild( 0 ).getAttribute( 'width' );
height = this.element.getChild( 0 ).getAttribute( 'height' );
autoplay = this.element.getChild(0).getAttribute('autoplay');
allowdownload = !this.element.getChild( 0 ).getAttribute( 'controlslist' );
loop = this.element.getChild( 0 ).getAttribute( 'loop' );
advisorytitle = this.element.getChild( 0 ).getAttribute( 'title' );
controls = this.element.getChild(0).getAttribute('controls');
responsive = this.element.getAttribute( 'data-responsive' );
poster = this.element.getChild( 0 ).getAttribute( 'poster' );
}
if ( src ) {
this.setData( 'src', src );
if ( align ) {
this.setData( 'align', align );
} else {
this.setData( 'align', 'none' );
}
if ( width ) {
this.setData( 'width', width );
}
if ( height ) {
this.setData( 'height', height );
}
if ( autoplay ) {
this.setData( 'autoplay', 'yes' );
}
if ( allowdownload ) {
this.setData( 'allowdownload', 'yes' );
}
if ( loop ) {
this.setData( 'loop', 'yes' );
}
if ( advisorytitle ) {
this.setData( 'advisorytitle', advisorytitle );
}
if ( responsive ) {
this.setData( 'responsive', responsive );
}
if (controls) {
this.setData('controls', controls);
}
if ( poster ) {
this.setData('poster', poster);
}
}
},
data: function() {
// If there is an video source
if ( this.data.src ) {
// and there isn't a child (the video element)
if ( !this.element.getChild( 0 ) ) {
// Create a new <video> element.
var videoElement = new CKEDITOR.dom.element( 'video' );
// Set the controls attribute.
if (this.data.controls) {
videoElement.setAttribute('controls', 'controls');
}
// Append it to the container of the plugin.
this.element.append( videoElement );
}
this.element.getChild( 0 ).setAttribute( 'src', this.data.src );
if (this.data.width) this.element.getChild( 0 ).setAttribute( 'width', this.data.width );
if (this.data.height) this.element.getChild( 0 ).setAttribute( 'height', this.data.height );
if ( this.data.responsive ) {
this.element.setAttribute("data-responsive", this.data.responsive);
this.element.getChild( 0 ).setStyle( 'max-width', '100%' );
this.element.getChild( 0 ).setStyle( 'height', 'auto' );
} else {
this.element.removeAttribute("data-responsive");
this.element.getChild( 0 ).removeStyle( 'max-width' );
this.element.getChild( 0 ).removeStyle( 'height' );
}
if (this.data.poster) this.element.getChild( 0 ).setAttribute('poster', this.data.poster);
}
this.element.removeStyle( 'float' );
this.element.removeStyle( 'margin-left' );
this.element.removeStyle( 'margin-right' );
if ( this.data.align === 'none' ) {
this.element.removeStyle( 'text-align' );
} else {
this.element.setStyle( 'text-align', this.data.align );
}
if ( this.data.align === 'left' ) {
this.element.setStyle( 'float', this.data.align );
this.element.setStyle( 'margin-right', '10px' );
} else if ( this.data.align === 'right' ) {
this.element.setStyle( 'float', this.data.align );
this.element.setStyle( 'margin-left', '10px' );
}
if ( this.element.getChild( 0 ) ) {
if ( this.data.autoplay === 'yes' ) {
this.element.getChild( 0 ).setAttribute( 'autoplay', 'autoplay' );
} else {
this.element.getChild( 0 ).removeAttribute( 'autoplay' );
}
if ( this.data.loop === 'yes' ) {
this.element.getChild( 0 ).setAttribute( 'loop', 'loop' );
} else {
this.element.getChild( 0 ).removeAttribute( 'loop' );
}
if ( this.data.allowdownload === 'yes' ) {
this.element.getChild( 0 ).removeAttribute( 'controlslist' );
} else {
this.element.getChild( 0 ).setAttribute( 'controlslist', 'nodownload' );
}
if ( this.data.advisorytitle ) {
this.element.getChild( 0 ).setAttribute( 'title', this.data.advisorytitle );
} else {
this.element.getChild( 0 ).removeAttribute( 'title' );
}
if (this.data.controls) {
this.element.getChild(0).setAttribute('controls', 'controls');
} else {
this.element.getChild(0).removeAttribute('controls');
}
}
}
} );
if ( editor.contextMenu ) {
editor.addMenuGroup( 'html5videoGroup' );
editor.addMenuItem( 'html5videoPropertiesItem', {
label: editor.lang.html5video.videoProperties,
icon: 'html5video',
command: 'html5video',
group: 'html5videoGroup'
});
editor.contextMenu.addListener( function( element ) {
if ( element &&
element.getChild( 0 ) &&
element.getChild( 0 ).hasClass &&
element.getChild( 0 ).hasClass( 'ckeditor-html5-video' ) ) {
return { html5videoPropertiesItem: CKEDITOR.TRISTATE_OFF };
}
});
}
CKEDITOR.dialog.add( 'html5video', this.path + 'dialogs/html5video.js' );
}
} );

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'ar', {
button : 'شيفرة تضمين اليوتيوب',
title : 'شيفرة تضمين اليوتيوب',
txtEmbed : 'الصق شيفرة التضمين هنا',
txtUrl : 'الصق رابط فيديو اليوتيوب',
txtWidth : 'العرض',
txtHeight : 'الطول',
chkRelated : 'اظهر الفيديوهات المقترحة في نهاية الفيديو',
txtStartAt : 'ابدأ عند (ss او mm:ss او hh:mm:ss)',
chkPrivacy : 'تفعيل وضع تحسين الخصوصية',
chkOlderCode : 'استخدم شيفرة التضمين القديمة',
chkAutoplay : 'Autoplay',
chkControls: 'إظهار عناصر التحكم بالمشغّل',
noCode : 'يجب عليك ادخال شيفرة التضمين او الرابط',
invalidEmbed : 'شيفرة التضمين التي قمت بإدخالها تبدو غير صحيحة',
invalidUrl : 'الرابط الذي قمت بإدخاله يبدو غير صحيح',
or : 'او',
noWidth : 'يجب عليك ادخال العرض',
invalidWidth : 'يجب عليك ادخال عرض صحيح',
noHeight : 'يجب عليك ادخال الطول',
invalidHeight : 'يجب عليك ادخال طول صحيح',
invalidTime : 'يجب عليك ادخال وقت بداية صحيح',
txtResponsive : 'Responsive video'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'bg', {
button : 'Вмъкни YouTube видео',
title : 'Вграждане на YouTube видео',
txtEmbed : 'Въведете кода за вграждане тук',
txtUrl : 'Въведете YouTube видео URL',
txtWidth : 'Ширина',
txtHeight : 'Височина',
chkRelated : 'Показва предложени видеоклипове в края на клипа',
txtStartAt : 'Стартирай в (ss или mm:ss или hh:mm:ss)',
chkPrivacy : 'Активирай режим за поверителност',
chkOlderCode : 'Използвай стар код за вграждане',
chkAutoplay: 'Авто стартиране',
chkControls: 'Показва контролите на плейъра',
noCode : 'Трябва да въведете код за вграждане или URL адрес',
invalidEmbed : 'Кодът за вграждане, който сте въвели, не изглежда валиден',
invalidUrl : 'Въведеният URL адрес не изглежда валиден',
or : 'или',
noWidth : 'Трябва да заложите ширината',
invalidWidth : 'Заложете валидна ширина',
noHeight : 'Трябва да заложите височина',
invalidHeight : 'Заложете валидна височина',
invalidTime : 'Заложете валидно време за стартиране',
txtResponsive : 'Напасва по ширина (игнорира Ширина и Височина)',
txtNoEmbed : 'Само видео изображение и връзка'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'cs', {
button : 'Vložit video YouTube',
title : 'Vložit video YouTube',
txtEmbed : 'Zde vložte kód pro vložení',
txtUrl : 'Vložte adresu URL videa YouTube',
txtWidth : 'Šířka',
txtHeight : 'Výška',
chkRelated : 'Po dohrání videa zobrazit navrhovaná videa',
txtStartAt : 'Začít přehrávat v čase (ss nebo mm:ss nebo hh:mm:ss)',
chkPrivacy : 'Povolit režim s rozšířeným soukromím',
chkOlderCode : 'Použít starý kód pro vložení',
chkAutoplay : 'Automatické spuštění přehrávání',
chkControls : 'Zobrazit ovladače přehrávání',
noCode : 'Musíte vložit kód pro vložení nebo adresu URL',
invalidEmbed : 'Vložený kód pro vložení zřejmě není platný',
invalidUrl : 'Zadaná adresa URL zřejmě není platná',
or : 'nebo',
noWidth : 'Musíte zadat šířku',
invalidWidth : 'Zadejte platnou šířku',
noHeight : 'Musíte zadat výšku',
invalidHeight : 'Zadejte platnou výšku',
invalidTime : 'Zadejte platný počáteční čas',
txtResponsive : 'Responzivní design (ignorovat výšku a šířku, uzpůsobit šířce)',
txtNoEmbed : 'Pouze obrázek videa s odkazem'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'de', {
button : 'YouTube Video einbinden',
title : 'YouTube Video einbinden',
txtEmbed : 'Embed Code hier einfügen',
txtUrl : 'YouTube Video URL hier einfügen',
txtWidth : 'Breite',
txtHeight : 'Höhe',
chkRelated : 'Vorschläge am Ende des Videos einblenden',
txtStartAt : 'Start bei Position (ss oder mm:ss oder hh:mm:ss)',
chkPrivacy : 'Erweiterten Datenschutzmodus aktivieren',
chkOlderCode : 'Benutze alten Embed Code',
chkAutoplay : 'Autoplay',
chkControls : 'Player-Steuerelemente anzeigen',
noCode : 'Sie müssen einen Embed Code oder URL angeben',
invalidEmbed : 'Der angegebene Embed Code scheint nicht gültig zu sein.',
invalidUrl : 'Die angegebene URL scheint nicht gültig zu sein.',
or : 'oder',
noWidth : 'Geben Sie eine Breite an',
invalidWidth : 'Geben Sie eine gültige Breite an',
noHeight : 'Geben Sie eine Höhe an',
invalidHeight : 'Geben Sie eine gültige Höhe an',
invalidTime : 'Geben Sie eine gültige Startzeit an',
txtResponsive : 'Automatische Größe (ignoriert Breite und Höhe)'
});

View File

@ -0,0 +1,23 @@
CKEDITOR.plugins.setLang('youtube', 'el', {
button: 'Ενσωμάτωση Youtube βίντεο',
title: 'Ενσωμάτωση Youtube βίντεο',
txtEmbed: 'Επικόλλησε τον κώδικα ενσωμάτωσης',
txtUrl: 'Επικόλλησε το URL του βίντεο',
txtWidth: 'Πλάτος',
txtHeight: 'Ύψος',
chkRelated: 'Εμφάνιση προτεινόμενων βίντεο μόλις ολοκληρωθεί',
txtStartAt: 'Χρόνος εκκίνησης (ss or mm:ss or hh:mm:ss)',
chkPrivacy: 'Ενεργοποίηση λειτουργίας ενισχυμένου απορρήτου',
chkOlderCode: 'Χρήση παλαιού κώδικα ενσωμάτωσης',
chkAutoplay: 'Αυτόματη εκκίνηση',
chkControls: 'Εμφάνιση στοιχείων ελέγχου προγράμματος αναπαραγωγής',
noCode: 'Χρειάζεται κώδικας ενσωμάτωσης ή URL',
invalidEmbed: 'Ο κώδικας ενσωμάτωσης που εισήγατε δεν μοιάζει σωστός',
invalidUrl: 'Το URL που εισήγατε δεν μοιάζει σωστό',
or: 'ή',
noWidth: 'Συμπληρώστε το πλάτος',
invalidWidth: 'Λανθασμένο πλάτος',
noHeight: 'Συμπληρώστε το ύψος',
invalidHeight: 'Λανθασμένο ύψος',
invalidTime: 'Λανθασμένος χρόνος εκκίνησης'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'en', {
button : 'Embed YouTube Video',
title : 'Embed YouTube Video',
txtEmbed : 'Paste Embed Code Here',
txtUrl : 'Paste YouTube Video URL',
txtWidth : 'Width',
txtHeight : 'Height',
chkRelated : 'Show suggested videos at the video\'s end',
txtStartAt : 'Start at (ss or mm:ss or hh:mm:ss)',
chkPrivacy : 'Enable privacy-enhanced mode',
chkOlderCode : 'Use old embed code',
chkAutoplay: 'Autoplay',
chkControls: 'Show player controls',
noCode : 'You must input an embed code or URL',
invalidEmbed : 'The embed code you\'ve entered doesn\'t appear to be valid',
invalidUrl : 'The URL you\'ve entered doesn\'t appear to be valid',
or : 'or',
noWidth : 'You must inform the width',
invalidWidth : 'Inform a valid width',
noHeight : 'You must inform the height',
invalidHeight : 'Inform a valid height',
invalidTime : 'Inform a valid start time',
txtResponsive : 'Make Responsive (ignore width and height, fit to width)',
txtNoEmbed : 'Video image and link only'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'es', {
button : 'Embed YouTube video',
title : 'Embed YouTube video',
txtEmbed : 'Pegar el código embed',
txtUrl : 'Pegar la URL al video de Youtube',
txtWidth : 'Anchura',
txtHeight : 'Altura',
chkRelated : 'Mostrar videos sugeridos al final de este video',
txtStartAt : 'Comenzar en (ss or mm:ss or hh:mm:ss)',
chkPrivacy : 'Habilitar el modo privacy-enhanced',
chkOlderCode : 'Usar código embed viejo',
chkAutoplay: 'Autoplay',
chkControls: 'Mostrar controles del reproductor',
noCode : 'Debes de introducir un código embed o URL',
invalidEmbed : 'El código embed introducido parece no ser valido',
invalidUrl : 'La URL introducida parece no ser valida',
or : 'o',
noWidth : 'Debes de dar la anchura',
invalidWidth : 'Da una anchura valida',
noHeight : 'Debes dar una altura valida',
invalidHeight : 'Da una altura valida',
invalidTime : 'Da un tiempo de valido',
txtResponsive : 'Hacer responsivo (ignorar anchura y altura, ajustar a la anchura)'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'et', {
button : 'Lisa YouTube video',
title : 'YouTube video lisamine',
txtEmbed : 'Kleepige manustatud kood siia',
txtUrl : 'Kleepige YouTube video veebiaadress',
txtWidth : 'Laius',
txtHeight : 'Kõrgus',
chkRelated : 'Näita soovitatud videosi antud video lõppus',
txtStartAt : 'Alguskoht: (ss või mm:ss või hh:mm:ss)',
chkPrivacy : 'Aktiveerige privaatsust täiendav režiim',
chkOlderCode : 'Kasutage vana manuskoodi',
chkAutoplay: 'Automaatesitlus',
chkControls : 'Kuva pleieri nupud',
noCode : 'Te peate sisestama video manuskoodi või veebiaadressi',
invalidEmbed : 'Manuskood mille sisestasite ei paista olevat korrektne',
invalidUrl : 'Veebiaadress mille sisestasite ei paista olevat korrektne',
or : 'või',
noWidth : 'Te peate sisestama video laiuse',
invalidWidth : 'Sisestage korrektne laius',
noHeight : 'Te peate sisestama video kõrguse',
invalidHeight : 'Sisestage korrektne kõrgus',
invalidTime : 'Sisestage korrektne algusaeg',
txtResponsive : 'Aktiveerige ekraani laiusega ühilduv režiim'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'eu', {
button : 'Kapsulatu YouTube-ko bideoa',
title : 'Kapsulatu YouTube-ko bideoa',
txtEmbed : 'Itsatsi kapsulatzeko kodea hemen',
txtUrl : 'Itsatsi YouTube-ko bideoaren URLa',
txtWidth : 'Zabalera',
txtHeight : 'Altuera',
chkRelated : 'Erakutsi gomendatutako bideoak amaieran',
txtStartAt : 'Hasi hemendik (ss edo mm:ss edo hh:mm:ss)',
chkPrivacy : 'Gaitu pribatutasun hobetuko modua',
chkOlderCode : 'Erabili kapsulatzeko kode zaharra',
chkAutoplay: 'Erreproduzitu automatikoki',
chkControls: 'Erakutsi erreproduzigailuaren kontrolak',
noCode : 'Kapsulatzeko kode bat edo URL bat sartu behar duzu',
invalidEmbed : 'Sartu duzun kapsulatzeko kodea ez da baliozkoa',
invalidUrl : 'Sartu duzun URLa ez da baliozkoa',
or : 'edo',
noWidth : 'Zabalera sartu behar duzu',
invalidWidth : 'Sartu baliozko zabalera bat',
noHeight : 'Altuera sartu behar duzu',
invalidHeight : 'Sartu baliozko altuera bat',
invalidTime : 'Sartu baliozko hasierako denbora bat',
txtResponsive : 'Egin moldagarria (ez ikusia egin zabalera eta altuerari, zabalerara doitu)',
txtNoEmbed : 'Bideoaren irudia eta esteka soilik'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'fi', {
button : 'Upota YouTube-video',
title : 'Upota YouTube-video',
txtEmbed : 'Syötä YouTube-videon upotuskoodi',
txtUrl : 'Syötä YouTube-videon www-osoite',
txtWidth : 'Leveys',
txtHeight : 'Korkeus',
chkRelated : 'Näytä suositukset lopussa',
txtStartAt : 'Aloitusaika (ss tai mm:ss tai tt:mm:ss)',
chkPrivacy : 'Aktivoi yksityisyyttä parantava tila',
chkOlderCode : 'Käytä vanhaa upotuskoodia',
chkAutoplay: 'Soita automaattisesti',
chkControls : 'Näytä soittimen ohjaimet',
noCode : 'Sinun täytyy syötää upotuskoodi tai www-osoite',
invalidEmbed : 'Upotuskoodi on virheellinen',
invalidUrl : 'Www-osoite on virheellinen',
or : 'tai',
noWidth : 'Syötä leveys',
invalidWidth : 'Leveys on virheellinen',
noHeight : 'Syötä korkeus',
invalidHeight : 'Korkeus on virheellinen',
invalidTime : 'Aloitusaika on virheellinen',
txtResponsive : 'Responsiivinen leveys (sovita leveys)'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'fr', {
button : 'Insérer une vidéo Youtube',
title : 'Insérer une vidéo youtube',
txtEmbed : 'Coller le code embed ici',
txtUrl : 'Coller l\'url de la vidéo ici',
txtWidth : 'Largeur',
txtHeight : 'Hauteur',
chkRelated : 'Montrer les suggestions de vidéo à la fin',
txtStartAt : 'Commencer à (ss ou mm:ss ou hh:mm:ss)',
chkPrivacy : 'Activer la protection de la vie privée',
chkOlderCode : 'Utiliser l\'ancien code embed',
chkAutoplay : 'Autoplay',
chkControls : 'Afficher les commandes du lecteur',
noCode : 'Vous devez entrer un code embed ou une url',
invalidEmbed : 'Le code embed est invalide',
invalidUrl : 'L\'url est invalide',
or : 'ou',
noWidth : 'Vous devez saisir une largeur',
invalidWidth : 'La largeur saisie est invalide',
noHeight : 'Vous devez saisir une hauteur',
invalidHeight : 'La hauteur saisie est invalide',
invalidTime : 'Le temps de départ de la vidéo est invalide',
txtResponsive : 'Responsive video',
txtNoEmbed : 'Vidéo image et lien seulement'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'he', {
button : 'שבץ וידאו של YouTube',
title : 'שבץ וידאו של YouTube',
txtEmbed : 'הדבק את קוד השיבוץ כאן',
txtUrl : 'הדבק כתובת וידאו YouTube',
txtWidth : 'אורך',
txtHeight : 'גובה',
chkRelated : 'הצג סרטונים מומלצים בסוף הודיאו',
txtStartAt : 'התחל ב (ss או mm:ss או hh:mm:ss)',
chkPrivacy : 'הפעל מצב פרטיות המשופרת',
chkOlderCode : 'השתמש בקוד הטמעה ישן',
chkAutoplay: 'הפעלה אוטומטית',
chkControls : 'הצג פקדי נגן',
noCode : 'אתה חייב להזין קוד embed כתובת וידאו אתר',
invalidEmbed : 'קוד ההטמעה שהוזן אינו נראה חוקי',
invalidUrl : 'כתובת הוידאו אינה נראת חוקית',
or : 'או',
noWidth : 'חובה להזין אורך',
invalidWidth : 'האורך שהוזן שגוי',
noHeight : 'חובה להזין גובה',
invalidHeight : 'הגובה שהוזן שגוי',
invalidTime : 'זמן התחלה שהוזן שגוי',
txtResponsive : 'הפוך לרספונסיבי (התעלם מרוחב וגובה, התאם לרוחב)'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'hu', {
button : 'Youtube videó beillesztése',
title : 'Youtube videó beillesztése',
txtEmbed : 'Illessze be a beágyazott kódot',
txtUrl : 'Illessze be a Youtube videó URL-jét',
txtWidth : 'Szélesség',
txtHeight : 'Magasság',
txtStartAt : 'Kezdő időpont (ss vagy mm:ss vagy hh:mm:ss)',
chkRelated : 'Ajánlott videók megjelenítése, amikor a videó befejeződik',
chkPrivacy : 'Fokozott adatvédelmi mód engedélyezése',
chkOlderCode : 'Régi beágyazott kód használata',
chkAutoplay : 'Automatikus lejátszás',
chkControls : 'Lejátszásvezérlők mutatása',
noCode : 'A beágyazott kód, vagy az URL megadása kötelező',
invalidEmbed : 'A beágyazott kód érvénytelen',
invalidUrl : 'A megadott URL érvénytelen',
or : 'vagy',
noWidth : 'A szélesség megadása kötelező',
invalidWidth : 'Érvényes szélességet adjon meg',
noHeight : 'A magasság megadása kötelező',
invalidHeight : 'Érvényes magasságot adjon meg',
invalidTime : 'Érvényes kezdő időpontot adjon meg',
txtResponsive : 'Reszponzív videó',
txtNoEmbed : 'Csak kép és hivatkozás jelenjen meg'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'it', {
button : 'Incorpora video Youtube',
title : 'Incorpora video Youtube',
txtEmbed : 'Incolla qui il codice di incorporamento',
txtUrl : 'Incolla l\'URL del video Youtube',
txtWidth : 'Larghezza',
txtHeight : 'Altezza',
chkRelated : 'Mostra i video suggeriti dopo il video',
txtStartAt : 'Inizia a (ss o mm:ss o hh:mm:ss)',
chkPrivacy : 'Abilita la protezione della privacy',
chkOlderCode : 'Usa il vecchio codice di incorporamento',
chkAutoplay : 'Autoplay',
chkControls : 'Mostra i controlli del player',
noCode : 'Devi inserire un codice di incorporamento o un URL',
invalidEmbed : 'Il codice di incorporamento inserito non sembra valido',
invalidUrl : 'L\'URL inserito non sembra valido',
or : 'o',
noWidth : 'Devi indicare la larghezza',
invalidWidth : 'Indica una larghezza valida',
noHeight : 'Devi indicare l\'altezza',
invalidHeight : 'Indica un\'altezza valida',
invalidTime : 'Indica un tempo di inizio valido',
txtResponsive : 'Responsive video'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'ja', {
button : 'Youtube動画埋め込み',
title : 'Youtube動画埋め込み',
txtEmbed : '埋め込みコードを貼り付けてください',
txtUrl : 'URLを貼り付けてください',
txtWidth : '幅',
txtHeight : '高さ',
chkRelated : '動画が終わったら関連動画を表示する',
txtStartAt : '開始時間(秒)',
chkPrivacy : 'プライバシー強化モードを有効にする',
chkOlderCode : '以前の埋め込みコードを使用する',
chkAutoplay : '自動再生',
chkControls: 'プレーヤーのコントロールを表示する',
noCode : '埋め込みコードまたはURLを入力してください',
invalidEmbed : '不適切な埋め込みコードが入力されました',
invalidUrl : '不適切なURLが入力されました',
or : 'または',
noWidth : '幅を指定してください',
invalidWidth : '幅指定に誤りがあります',
noHeight : '高さを指定してください',
invalidHeight : '高さ指定に誤りがあります',
invalidTime : '開始時間を正の整数で入力してください',
txtResponsive : 'レスポンシブ表示'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'ko', {
button : '유투브 비디오 삽입',
title : '유투브 비디오 삽입',
txtEmbed : '여기 embed 코드를 붙여넣으세요',
txtUrl : '유투브 주소(URL)를 붙여넣으세요',
txtWidth : '너비',
txtHeight : '높이',
chkRelated : '비디오 마지막에 추천 영상 보이기',
txtStartAt : '시작 시점 (ss 또는 mm:ss 또는 hh:mm:ss)',
chkPrivacy : '개인정보 보호 모드 활성화',
chkOlderCode : '옛날 embed 코드 사용',
chkAutoplay: '자동 재생',
chkControls: '플레이어 컨트롤 표시',
noCode : 'embed 코드 또는 URL을 입력해야 합니다',
invalidEmbed : '입력하신 embed 코드가 유효하지 않습니다',
invalidUrl : '입력하신 주소(URL)가 유효하지 않습니다',
or : '또는',
noWidth : '너비를 알려주세요',
invalidWidth : '너비가 유효하지 않습니다',
noHeight : '높이를 알려주세요',
invalidHeight : '높이가 유효하지 않습니다',
invalidTime : '시작 시점이 유효하지 않습니다',
txtResponsive : '반응형 너비 (입력한 너비와 높이를 무시하고 창 너비에 맞춤)',
txtNoEmbed : '비디오 이미지와 링크만 달기'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'nb', {
button : 'Bygg inn YouTube-video',
title : 'Bygg inn YouTube-video',
txtEmbed : 'Lim inn embed-kode her',
txtUrl : 'Lim inn YouTube video-URL',
txtWidth : 'Bredde',
txtHeight : 'Høyde',
chkRelated : 'Vis foreslåtte videoer når videoen er ferdig',
txtStartAt : 'Start ved (ss eller mm:ss eller hh:mm:ss)',
chkPrivacy : 'Bruk personverntilpasset modus',
chkOlderCode : 'Bruk gammel embedkode',
chkAutoplay: 'Spill automatisk',
chkControls: 'Vis spillerkontrollene',
noCode : 'Du må legge inn en embed-kode eller URL',
invalidEmbed : 'Emded-koden du la inn ser ikke ut til å være gyldig',
invalidUrl : 'URLen du la inn ser ikke ut til å være gyldig',
or : 'eller',
noWidth : 'Du må legge inn bredde',
invalidWidth : 'Legg inn en gyldig bredde',
noHeight : 'Du må legge inn høyde',
invalidHeight : 'Legg inn en gyldig høyde',
invalidTime : 'Legg inn gyldig starttid',
txtResponsive : 'Gjør responsiv (ignorer bredde og høyde, tilpass bredde på sida)'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'nl', {
button : 'Youtube video insluiten',
title : 'Youtube video insluiten',
txtEmbed : 'Plak embedcode hier',
txtUrl : 'Plak video URL',
txtWidth : 'Breedte',
txtHeight : 'Hoogte',
chkRelated : 'Toon gesuggereerde video aan het einde van de video',
txtStartAt : 'Starten op (ss of mm:ss of hh:mm:ss)',
chkPrivacy : 'Privacy-enhanced mode inschakelen',
chkOlderCode : 'Gebruik oude embedcode',
chkAutoplay: 'Automatisch starten',
chkControls: 'Afspeelbediening weergeven',
noCode : 'U moet een embedcode of url ingeven',
invalidEmbed : 'De ingegeven embedcode lijkt niet geldig',
invalidUrl : 'De ingegeven url lijkt niet geldig',
or : 'of',
noWidth : 'U moet een breedte ingeven',
invalidWidth : 'U moet een geldige breedte ingeven',
noHeight : 'U moet een hoogte ingeven',
invalidHeight : 'U moet een geldige starttijd ingeven',
invalidTime : 'Inform a valid start time',
txtResponsive : 'Responsive video',
txtNoEmbed : 'Alleen video afbeelding en link'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'nn', {
button : 'Bygg inn YouTube-video',
title : 'Bygg inn YouTube-video',
txtEmbed : 'Lim inn embed-kode her',
txtUrl : 'Lim inn YouTube video-URL',
txtWidth : 'Breidde',
txtHeight : 'Høgde',
chkRelated : 'Vis foreslåtte videoar når videoen er ferdig',
txtStartAt : 'Start ved (ss eller mm:ss eller hh:mm:ss)',
chkPrivacy : 'Bruk personverntilpassa modus',
chkOlderCode : 'Bruk gamal embedkode',
chkAutoplay: 'Spel automatisk',
chkControls: 'Vis spillerkontrollene',
noCode : 'Du må leggja inn ein embed-kode eller URL',
invalidEmbed : 'Emded-koden du la inn ser ikkje ut til å vera gyldig',
invalidUrl : 'URLen du la inn ser ikkje ut til å vera gyldig',
or : 'eller',
noWidth : 'Du må leggja inn breidde',
invalidWidth : 'Legg inn ei gyldig breidde',
noHeight : 'Du må leggja inn høgde',
invalidHeight : 'Legg inn ei gyldig høgde',
invalidTime : 'Legg inn gyldig starttid',
txtResponsive : 'Gjer responsiv (ignorer breidde og høgde, tilpass breidda på sida)'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'pl', {
button : 'Załącznik wideo z YouTube',
title : 'Załącznik wideo z YouTube',
txtEmbed : 'Wklej kod do umieszczenia',
txtUrl : 'Wklej adres URL do wideo z YouTube',
txtWidth : 'Szerokość',
txtHeight : 'Wysokość',
chkRelated : 'Pokaż sugerowane filmy po zakończeniu odtwarzania',
txtStartAt : 'Rozpocznij od (ss lub mm:ss lub gg:mm:ss)',
chkPrivacy : 'Włącz rozszerzony tryb prywatności',
chkOlderCode : 'Użyj starego kodu',
chkAutoplay: 'Autoodtwarzanie',
chkControls: 'Pokaż elementy sterujące odtwarzacza',
noCode : 'Musisz wprowadzić kod lub adres URL',
invalidEmbed : 'Wprowadzony kod nie jest poprawny',
invalidUrl : 'Wprowadzony adres URL nie jest poprawny',
or : 'lub',
noWidth : 'Musisz wpisać szerokość',
invalidWidth : 'Wprowadzona szerokość nie jest poprawna',
noHeight : 'Musisz wprowadzić wysokość',
invalidHeight : 'Wprowadzona wysokość nie jest poprawna',
invalidTime : 'Musisz wprowadzić poprawny czas rozpoczęcia',
txtResponsive : 'El. responsywny (ignoruj szerokość i wysokość, dopasuj do szerokości)'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'pt-br', {
button : 'Inserir Vídeo do Youtube',
title : 'Inserir Vídeo do Youtube',
txtEmbed : 'Cole aqui o código embed de um vídeo do Youtube',
txtUrl : 'Cole aqui uma URL de um vídeo do Youtube',
txtWidth : 'Largura',
txtHeight : 'Altura',
chkRelated : 'Mostrar vídeos sugeridos ao final do vídeo',
txtStartAt : 'Iniciar em (ss ou mm:ss ou hh:mm:ss)',
chkPrivacy : 'Ativar o modo de privacidade aprimorada',
chkOlderCode : 'Usar código de incorporação antigo',
chkAutoplay : 'Reproduzir automaticamente',
chkControls: 'Mostrar controles do player',
noCode : 'Você precisa informar um código embed ou uma URL',
invalidEmbed : 'O código informado não parece ser válido',
invalidUrl : 'A URL informada não parece ser válida',
or : 'ou',
noWidth : 'Você deve informar a largura do vídeo',
invalidWidth : 'Informe uma largura válida',
noHeight : 'Você deve informar a altura do vídeo',
invalidHeight : 'Informe uma altura válida',
invalidTime : 'O tempo informado é inválido',
txtResponsive : 'Vídeo responsivo',
txtNoEmbed : 'Somente imagem e link para o vídeo'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'pt', {
button : 'Inserir Vídeo do Youtube',
title : 'Inserir Vídeo do Youtube',
txtEmbed : 'Cole aqui o código embed de um vídeo do Youtube',
txtUrl : 'Cole aqui uma URL de um vídeo do Youtube',
txtWidth : 'Largura',
txtHeight : 'Altura',
chkRelated : 'Mostrar vídeos sugeridos quando o vídeo terminar',
txtStartAt : 'Iniciar em (ss ou mm:ss ou hh:mm:ss)',
chkPrivacy : 'Ativar o modo de privacidade otimizada',
chkOlderCode : 'Usar código de incorporação antigo',
chkAutoplay : 'Reproduzir automaticamente',
chkControls: 'Mostrar controles do player',
noCode : 'Você precisa informar um código embed ou uma URL',
invalidEmbed : 'O código informado não parece ser válido',
invalidUrl : 'A URL informada não parece ser válida',
or : 'ou',
noWidth : 'Você deve informar a largura do vídeo',
invalidWidth : 'Informe uma largura válida',
noHeight : 'Você deve informar a altura do vídeo',
invalidHeight : 'Informe uma altura válida',
invalidTime : 'O tempo informado é inválido',
txtResponsive : 'Vídeo responsivo',
txtNoEmbed : 'Somente imagem e link para o vídeo'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'ru', {
button : 'Вставить YouTube видео',
title : 'Вставить YouTube видео',
txtEmbed : 'Вставьте HTML-код сюда',
txtUrl : 'Вставьте адрес видео (URL)',
txtWidth : 'Ширина',
txtHeight : 'Высота',
chkRelated : 'Показать похожие видео после завершения просмотра',
txtStartAt : 'Начать с (сс или мм:сс или чч:мм:сс)',
chkPrivacy : 'Включить режим повышенной конфиденциальности',
chkOlderCode : 'Использовать старый код вставки',
chkAutoplay: 'Автозапуск',
chkControls: 'Показать панель управления',
noCode : 'Вы должны ввести HTML-код или адрес',
invalidEmbed : 'Ваш HTML-код не похож на правильный',
invalidUrl : 'Ваш адрес видео не похож на правильный',
or : 'или',
noWidth : 'Вы должны указать ширину',
invalidWidth : 'Укажите правильную ширину',
noHeight : 'Вы должны указать высоту',
invalidHeight : 'Укажите правильную высоту',
invalidTime : 'Укажите правильное время начала',
txtResponsive : 'Растягиваемое видео',
txtNoEmbed : 'Не встраивать видео (обложка-ссылка на YouTube)'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'sk', {
button : 'Vložiť YouTube video',
title : 'Vložiť YouTube video',
txtEmbed : 'Vložiť Youtube Embed Video kódu',
txtUrl : 'Vložiť pomocou YouTube video URL',
txtWidth : 'Šírka',
txtHeight : 'Výška',
chkRelated : 'Zobraziť odporúčané videá po prehratí',
txtStartAt : 'Začať prehrávanie videa (ss alebo mm:ss alebo hh:mm:ss)',
chkPrivacy : 'Povoliť pokročilý mód súkromia',
chkOlderCode : 'Použiť starú metódu vkladania',
chkAutoplay: 'Automatické prehrávanie',
chkControls: 'Zobraziť ovládacie prvky prehrávača',
noCode : 'Musíte vložiť Youtube Embed kód alebo URL',
invalidEmbed : 'Vložený kód nie je valídny',
invalidUrl : 'Vložená URL nie je platná',
or : 'alebo',
noWidth : 'Prosím, zadajte šírku videa',
invalidWidth : 'Zadajte valídnu šírku videa',
noHeight : 'Prosím, zadajte výšku videa',
invalidHeight : 'Zadajte valídnu výšku videa',
invalidTime : 'Zadajte valídny formát začiatku prehrávania videa',
txtResponsive : 'Prispôsobit rozmery videa rozmerom obrazovky (ignoruje šírku a výšku, prispôsobí sa šírke obrazovky)'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'tr', {
button : 'Youtube Video Gömün (Embed)',
title : 'Youtube Video',
txtEmbed : 'Youtube gömülü kodu (embed) buraya yapıştırınız',
txtUrl : 'Youtube linkinizi buraya yapıştırınız',
txtWidth : 'Genişlik',
txtHeight : 'Yükseklik',
chkRelated : 'Önerilen videoları video bitiminde göster',
txtStartAt : 'Video başlangıç anı (ss ya da dd:ss ya da ss:dd:ss)',
chkPrivacy : 'Gizlilik modunu etkinleştir',
chkOlderCode : 'Eski gömülü kodu (embed) kullan',
chkAutoplay: 'Otomatik',
chkControls: 'Oynatıcı kontrollerini göster',
noCode : 'Gömülü kod (embed) veya url yapıştırmak zorundasınız',
invalidEmbed : 'Verdiğiniz gömülü kod (embed) ile video bulunamadı',
invalidUrl : 'Verdiğiniz linkte video bulunamadı',
or : 'ya da',
noWidth : 'Genişliği belirtmek zorundasınız',
invalidWidth : 'Bir genişlik belirtin',
noHeight : 'Yükseliği belirtmek zorundasınız',
invalidHeight : 'Yükseklik belirtin',
invalidTime : 'Başlangıç anını doğru girin, örneğin: 13 (13. saniye) ya da 12:25 (12. dakika 25. saniye) ya da 01.25.33 (1 saat 25 dakika 33 saniye)',
txtResponsive : 'Responsive video'
});

View File

@ -0,0 +1,25 @@
CKEDITOR.plugins.setLang('youtube', 'uk', {
button : 'Вставити YouTube-відео',
title : 'Вставити YouTube-відео',
txtEmbed : 'Вставте HTML-код сюди',
txtUrl : 'Вставте URL-адресу сюди',
txtWidth : 'Ширина',
txtHeight : 'Висота',
chkRelated : 'Показати пропоновані відео в кінці',
txtStartAt : 'Почати з (сс або хх:сс або гг:хх:сс)',
chkPrivacy : 'Увімкнути режим підвищеної конфіденційності',
chkOlderCode : 'Використовувати старий код вставки',
chkAutoplay: 'Автовідтворення',
chkControls: 'Показувати елементи управління плеєром',
noCode : 'Ви повинні ввести HTML-код або URL-адресу',
invalidEmbed : 'Код вставки, який ви додали не вірний',
invalidUrl : 'URL-адреса, яку ви додали не вірна',
or : 'або',
noWidth : 'Укажіть ширину',
invalidWidth : 'Укажіть правильну ширину',
noHeight : 'Укажіть висоту',
invalidHeight : 'Укажіть правильну висоту',
invalidTime : 'Укажіть правильний час початку',
txtResponsive : 'Адаптивне (таке, яке розтягується) відео',
txtNoEmbed : 'Додати лише обкладинку та посилання на YouTube'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'vi', {
button : 'Embed Youtube Video',
title : 'Nhúng Video Youtube',
txtEmbed : 'Dãn mã nhúng Embed vào đây',
txtUrl : 'Dãn đường dẫn video Youtube',
txtWidth : 'Rộng',
txtHeight : 'Cao',
chkRelated : 'Hiển thị các video được đề xuất khi video kết thúc',
txtStartAt : 'Bắt đầu (ss hoặc mm:ss hoặc hh:mm:ss)',
chkPrivacy : 'Kích hoạt chế độ bảo mật nâng cao',
chkOlderCode : 'Sử dụng mã nhúng cũ',
chkAutoplay: 'Tự động chạy video',
chkControls: 'Hiển thị các điều khiển trình phát',
noCode : 'Bạn phải nhập mã nhúng hoặc URL',
invalidEmbed : 'Mã nhúng bạn đã nhập không đúng',
invalidUrl : 'URL bạn đã nhập không đúng',
or : 'hoặc',
noWidth : 'Bạn phải chiều rộng',
invalidWidth : 'Chiều rộng hợp lệ',
noHeight : 'Bạn phải chiều cao',
invalidHeight : 'Chiều cao hợp lệ',
invalidTime : 'Thời gian bắt đầu không đúng',
txtResponsive : 'Responsive video'
});

View File

@ -0,0 +1,24 @@
CKEDITOR.plugins.setLang('youtube', 'zh', {
button: '嵌入 Youtube 影片',
title: '嵌入 Youtube 影片',
txtEmbed: '貼上嵌入碼',
txtUrl: '貼上 Youtube 影片 URL',
txtWidth: '寬',
txtHeight: '高',
txtResponsive: '使用自適應縮放模式 (忽略設定的長寬, 以寬為基準縮放)',
chkRelated: '影片結束時顯示建議影片',
txtStartAt: '開始時間 (ss or mm:ss or hh:mm:ss)',
chkPrivacy: '啟用加強隱私模式',
chkOlderCode: '使用舊的嵌入碼',
chkAutoplay: '自動播放',
chkControls: '显示播放器控件',
noCode: '必須輸入嵌入碼',
invalidEmbed: '錯誤的嵌入碼',
invalidUrl: '錯誤的URL',
or: '或',
noWidth: '必須設定寬',
invalidWidth: '寬設定錯誤',
noHeight: '必須設定高',
invalidHeight: '高設定錯誤',
invalidTime: '開始時間設定錯誤'
});

View File

@ -0,0 +1,449 @@
/*
* Youtube Embed Plugin
*
* @author Jonnas Fonini <jonnasfonini@gmail.com>
* @version 2.1.14
*/
(function () {
CKEDITOR.plugins.add('youtube', {
lang: [ 'en', 'bg', 'pt', 'pt-br', 'ja', 'hu', 'it', 'fr', 'tr', 'ru', 'de', 'ar', 'nl', 'pl', 'vi', 'zh', 'el', 'he', 'es', 'nb', 'nn', 'fi', 'et', 'sk', 'cs', 'ko', 'eu', 'uk'],
init: function (editor) {
editor.addCommand('youtube', new CKEDITOR.dialogCommand('youtube', {
allowedContent: 'div{*}(*); iframe{*}[!width,!height,!src,!frameborder,!allowfullscreen,!allow]; object param[*]; a[*]; img[*]'
}));
editor.ui.addButton('Youtube', {
label : editor.lang.youtube.button,
toolbar : 'insert',
command : 'youtube',
icon : this.path + 'images/icon.png'
});
CKEDITOR.dialog.add('youtube', function (instance) {
var video,
disabled = editor.config.youtube_disabled_fields || [];
return {
title : editor.lang.youtube.title,
minWidth : 510,
minHeight : 200,
onShow: function () {
for (var i = 0; i < disabled.length; i++) {
this.getContentElement('youtubePlugin', disabled[i]).disable();
}
},
contents :
[{
id : 'youtubePlugin',
expand : true,
elements :
[{
id : 'txtEmbed',
type : 'textarea',
label : editor.lang.youtube.txtEmbed,
onChange : function (api) {
handleEmbedChange(this, api);
},
onKeyUp : function (api) {
handleEmbedChange(this, api);
},
validate : function () {
if (this.isEnabled()) {
if (!this.getValue()) {
alert(editor.lang.youtube.noCode);
return false;
}
else
if (this.getValue().length === 0 || this.getValue().indexOf('//') === -1) {
alert(editor.lang.youtube.invalidEmbed);
return false;
}
}
}
},
{
type : 'html',
html : editor.lang.youtube.or + '<hr>'
},
{
type : 'hbox',
widths : [ '70%', '15%', '15%' ],
children :
[
{
id : 'txtUrl',
type : 'text',
label : editor.lang.youtube.txtUrl,
onChange : function (api) {
handleLinkChange(this, api);
},
onKeyUp : function (api) {
handleLinkChange(this, api);
},
validate : function () {
if (this.isEnabled()) {
if (!this.getValue()) {
alert(editor.lang.youtube.noCode);
return false;
}
else{
video = ytVidId(this.getValue());
if (this.getValue().length === 0 || video === false)
{
alert(editor.lang.youtube.invalidUrl);
return false;
}
}
}
}
},
{
type : 'text',
id : 'txtWidth',
width : '60px',
label : editor.lang.youtube.txtWidth,
'default' : editor.config.youtube_width != null ? editor.config.youtube_width : '640',
validate : function () {
if (this.getValue()) {
var width = parseInt (this.getValue()) || 0;
if (width === 0) {
alert(editor.lang.youtube.invalidWidth);
return false;
}
}
else {
alert(editor.lang.youtube.noWidth);
return false;
}
}
},
{
type : 'text',
id : 'txtHeight',
width : '60px',
label : editor.lang.youtube.txtHeight,
'default' : editor.config.youtube_height != null ? editor.config.youtube_height : '360',
validate : function () {
if (this.getValue()) {
var height = parseInt(this.getValue()) || 0;
if (height === 0) {
alert(editor.lang.youtube.invalidHeight);
return false;
}
}
else {
alert(editor.lang.youtube.noHeight);
return false;
}
}
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%' ],
children :
[
{
id : 'chkResponsive',
type : 'checkbox',
label : editor.lang.youtube.txtResponsive,
'default' : editor.config.youtube_responsive != null ? editor.config.youtube_responsive : false
},
{
id : 'chkNoEmbed',
type : 'checkbox',
label : editor.lang.youtube.txtNoEmbed,
'default' : editor.config.youtube_noembed != null ? editor.config.youtube_noembed : false
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%' ],
children :
[
{
id : 'chkRelated',
type : 'checkbox',
'default' : editor.config.youtube_related != null ? editor.config.youtube_related : true,
label : editor.lang.youtube.chkRelated
},
{
id : 'chkOlderCode',
type : 'checkbox',
'default' : editor.config.youtube_older != null ? editor.config.youtube_older : false,
label : editor.lang.youtube.chkOlderCode
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%' ],
children :
[
{
id : 'chkPrivacy',
type : 'checkbox',
label : editor.lang.youtube.chkPrivacy,
'default' : editor.config.youtube_privacy != null ? editor.config.youtube_privacy : false
},
{
id : 'chkAutoplay',
type : 'checkbox',
'default' : editor.config.youtube_autoplay != null ? editor.config.youtube_autoplay : false,
label : editor.lang.youtube.chkAutoplay
}
]
},
{
type : 'hbox',
widths : [ '55%', '45%'],
children :
[
{
id : 'txtStartAt',
type : 'text',
label : editor.lang.youtube.txtStartAt,
validate : function () {
if (this.getValue()) {
var str = this.getValue();
if (!/^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$/i.test(str)) {
alert(editor.lang.youtube.invalidTime);
return false;
}
}
}
},
{
id : 'chkControls',
type : 'checkbox',
'default' : editor.config.youtube_controls != null ? editor.config.youtube_controls : true,
label : editor.lang.youtube.chkControls
}
]
}
]
}
],
onOk: function()
{
var content = '';
var responsiveStyle = '';
if (this.getContentElement('youtubePlugin', 'txtEmbed').isEnabled()) {
content = this.getValueOf('youtubePlugin', 'txtEmbed');
}
else {
var url = 'https://', params = [], startSecs, paramAutoplay='';
var width = this.getValueOf('youtubePlugin', 'txtWidth');
var height = this.getValueOf('youtubePlugin', 'txtHeight');
if (this.getContentElement('youtubePlugin', 'chkPrivacy').getValue() === true) {
url += 'www.youtube-nocookie.com/';
}
else {
url += 'www.youtube.com/';
}
url += 'embed/' + video;
if (this.getContentElement('youtubePlugin', 'chkRelated').getValue() === false) {
params.push('rel=0');
}
if (this.getContentElement('youtubePlugin', 'chkAutoplay').getValue() === true) {
params.push('autoplay=1');
paramAutoplay='autoplay';
}
if (this.getContentElement('youtubePlugin', 'chkControls').getValue() === false) {
params.push('controls=0');
}
startSecs = this.getValueOf('youtubePlugin', 'txtStartAt');
if (startSecs) {
var seconds = hmsToSeconds(startSecs);
params.push('start=' + seconds);
}
if (params.length > 0) {
url = url + '?' + params.join('&');
}
if (this.getContentElement('youtubePlugin', 'chkResponsive').getValue() === true) {
content += '<div class="youtube-embed-wrapper" style="position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden">';
responsiveStyle = 'style="position:absolute;top:0;left:0;width:100%;height:100%"';
}
if (this.getContentElement('youtubePlugin', 'chkOlderCode').getValue() === true) {
url = url.replace('embed/', 'v/');
url = url.replace(/&/g, '&amp;');
if (url.indexOf('?') === -1) {
url += '?';
}
else {
url += '&amp;';
}
url += 'hl=' + (this.getParentEditor().config.language ? this.getParentEditor().config.language : 'en') + '&amp;version=3';
content += '<object width="' + width + '" height="' + height + '" ' + responsiveStyle + '>';
content += '<param name="movie" value="' + url + '"></param>';
content += '<param name="allowFullScreen" value="true"></param>';
content += '<param name="allowscriptaccess" value="always"></param>';
content += '<embed src="' + url + '" type="application/x-shockwave-flash" ';
content += 'width="' + width + '" height="' + height + '" '+ responsiveStyle + ' allowscriptaccess="always" ';
content += 'allowfullscreen="true"></embed>';
content += '</object>';
}
else
if (this.getContentElement('youtubePlugin', 'chkNoEmbed').getValue() === true) {
var imgSrc = 'https://img.youtube.com/vi/' + video + '/sddefault.jpg';
content += '<a href="' + url + '" ><img width="' + width + '" height="' + height + '" src="' + imgSrc + '" ' + responsiveStyle + '/></a>';
}
else {
content += '<iframe ' + (paramAutoplay ? 'allow="' + paramAutoplay + ';" ' : '') + 'width="' + width + '" height="' + height + '" src="' + url + '" ' + responsiveStyle;
content += 'frameborder="0" allowfullscreen></iframe>';
}
if (this.getContentElement('youtubePlugin', 'chkResponsive').getValue() === true) {
content += '</div>';
}
}
var element = CKEDITOR.dom.element.createFromHtml(content);
var instance = this.getParentEditor();
instance.insertElement(element);
}
};
});
}
});
})();
function handleLinkChange(el, api) {
var video = ytVidId(el.getValue());
var time = ytVidTime(el.getValue());
if (el.getValue().length > 0) {
el.getDialog().getContentElement('youtubePlugin', 'txtEmbed').disable();
}
else if (!disabled.length || !disabled.includes('txtEmbed')) {
el.getDialog().getContentElement('youtubePlugin', 'txtEmbed').enable();
}
if (video && time) {
var seconds = timeParamToSeconds(time);
var hms = secondsToHms(seconds);
el.getDialog().getContentElement('youtubePlugin', 'txtStartAt').setValue(hms);
}
}
function handleEmbedChange(el, api) {
if (el.getValue().length > 0) {
el.getDialog().getContentElement('youtubePlugin', 'txtUrl').disable();
}
else {
el.getDialog().getContentElement('youtubePlugin', 'txtUrl').enable();
}
}
/**
* JavaScript function to match (and return) the video Id
* of any valid Youtube Url, given as input string.
* @author: Stephan Schmitz <eyecatchup@gmail.com>
* @url: http://stackoverflow.com/a/10315969/624466
*/
function ytVidId(url) {
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false;
}
/**
* Matches and returns time param in YouTube Urls.
*/
function ytVidTime(url) {
var p = /t=([0-9hms]+)/;
return (url.match(p)) ? RegExp.$1 : false;
}
/**
* Converts time in hms format to seconds only
*/
function hmsToSeconds(time) {
var arr = time.split(':'), s = 0, m = 1;
while (arr.length > 0) {
s += m * parseInt(arr.pop(), 10);
m *= 60;
}
return s;
}
/**
* Converts seconds to hms format
*/
function secondsToHms(seconds) {
var h = Math.floor(seconds / 3600);
var m = Math.floor((seconds / 60) % 60);
var s = seconds % 60;
var pad = function (n) {
n = String(n);
return n.length >= 2 ? n : "0" + n;
};
if (h > 0) {
return pad(h) + ':' + pad(m) + ':' + pad(s);
}
else {
return pad(m) + ':' + pad(s);
}
}
/**
* Converts time in youtube t-param format to seconds
*/
function timeParamToSeconds(param) {
var componentValue = function (si) {
var regex = new RegExp('(\\d+)' + si);
return param.match(regex) ? parseInt(RegExp.$1, 10) : 0;
};
return componentValue('h') * 3600
+ componentValue('m') * 60
+ componentValue('s');
}
/**
* Converts seconds into youtube t-param value, e.g. 1h4m30s
*/
function secondsToTimeParam(seconds) {
var h = Math.floor(seconds / 3600);
var m = Math.floor((seconds / 60) % 60);
var s = seconds % 60;
var param = '';
if (h > 0) {
param += h + 'h';
}
if (m > 0) {
param += m + 'm';
}
if (s > 0) {
param += s + 's';
}
return param;
}