diff --git a/README.md b/README.md index c18b63a..ca57e28 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ python manage.py generate_teams && python manage.py generate_realties && python manage.py generate_projects && python manage.py generate_portfolios && +python manage.py generate_work_sells && python manage.py generate_reviews ``` diff --git a/archilance/views.py b/archilance/views.py index 963d02d..0532bba 100644 --- a/archilance/views.py +++ b/archilance/views.py @@ -51,8 +51,9 @@ class TestView(BaseMixin, View): template_name = 'test.html' def get(self, request, *args, **kwargs): - # context = self.get_context_data(**kwargs) - # context['foo'] = 'bar' - # return render(request, self.template_name, context) + context = self.get_context_data(**kwargs) + + context['foo'] = 'bar' - return redirect('projects:detail', pk=153) + return render(request, self.template_name, context) + # return redirect('projects:detail', pk=153) diff --git a/assets/lib/summernote/font/summernote.eot b/assets/lib/summernote/font/summernote.eot new file mode 100644 index 0000000..cdd56c8 Binary files /dev/null and b/assets/lib/summernote/font/summernote.eot differ diff --git a/assets/lib/summernote/font/summernote.ttf b/assets/lib/summernote/font/summernote.ttf new file mode 100644 index 0000000..de29a59 Binary files /dev/null and b/assets/lib/summernote/font/summernote.ttf differ diff --git a/assets/lib/summernote/font/summernote.woff b/assets/lib/summernote/font/summernote.woff new file mode 100644 index 0000000..5af3df7 Binary files /dev/null and b/assets/lib/summernote/font/summernote.woff differ diff --git a/assets/lib/summernote/lang/summernote-ar-AR.js b/assets/lib/summernote/lang/summernote-ar-AR.js new file mode 100644 index 0000000..ac6e6b5 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-ar-AR.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ar-AR': { + font: { + bold: 'عريض', + italic: 'مائل', + underline: 'تحته خط', + clear: 'مسح التنسيق', + height: 'إرتفاع السطر', + name: 'الخط', + strikethrough: 'فى وسطه خط', + size: 'الحجم' + }, + image: { + image: 'صورة', + insert: 'إضافة صورة', + resizeFull: 'الحجم بالكامل', + resizeHalf: 'تصغير للنصف', + resizeQuarter: 'تصغير للربع', + floatLeft: 'تطيير لليسار', + floatRight: 'تطيير لليمين', + floatNone: 'ثابته', + dragImageHere: 'إدرج الصورة هنا', + selectFromFiles: 'حدد ملف', + url: 'رابط الصورة', + remove: 'حذف الصورة' + }, + video: { + video: 'فيديو', + videoLink: 'رابط الفيديو', + insert: 'إدراج الفيديو', + url: 'رابط الفيديو', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'رابط رابط', + insert: 'إدراج', + unlink: 'حذف الرابط', + edit: 'تعديل', + textToDisplay: 'النص', + url: 'مسار الرابط', + openInNewWindow: 'فتح في نافذة جديدة' + }, + table: { + table: 'جدول' + }, + hr: { + insert: 'إدراج خط أفقي' + }, + style: { + style: 'تنسيق', + p: 'عادي', + blockquote: 'إقتباس', + pre: 'شفيرة', + h1: 'عنوان رئيسي 1', + h2: 'عنوان رئيسي 2', + h3: 'عنوان رئيسي 3', + h4: 'عنوان رئيسي 4', + h5: 'عنوان رئيسي 5', + h6: 'عنوان رئيسي 6' + }, + lists: { + unordered: 'قائمة مُنقطة', + ordered: 'قائمة مُرقمة' + }, + options: { + help: 'مساعدة', + fullscreen: 'حجم الشاشة بالكامل', + codeview: 'شفيرة المصدر' + }, + paragraph: { + paragraph: 'فقرة', + outdent: 'محاذاة للخارج', + indent: 'محاذاة للداخل', + left: 'محاذاة لليسار', + center: 'توسيط', + right: 'محاذاة لليمين', + justify: 'ملئ السطر' + }, + color: { + recent: 'تم إستخدامه', + more: 'المزيد', + background: 'لون الخلفية', + foreground: 'لون النص', + transparent: 'شفاف', + setTransparent: 'بدون خلفية', + reset: 'إعادة الضبط', + resetToDefault: 'إعادة الضبط' + }, + shortcut: { + shortcuts: 'إختصارات', + close: 'غلق', + textFormatting: 'تنسيق النص', + action: 'Action', + paragraphFormatting: 'تنسيق الفقرة', + documentStyle: 'تنسيق المستند' + }, + history: { + undo: 'تراجع', + redo: 'إعادة' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-bg-BG.js b/assets/lib/summernote/lang/summernote-bg-BG.js new file mode 100644 index 0000000..daefd20 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-bg-BG.js @@ -0,0 +1,99 @@ +(function ($) { + $.extend($.summernote.lang, { + 'bg-BG': { + font: { + bold: 'Удебелен', + italic: 'Наклонен', + underline: 'Подчертан', + clear: 'Изчисти стиловете', + height: 'Височина', + name: 'Шрифт', + strikethrough: 'Задраскано', + subscript: 'Долен индекс', + superscript: 'Горен индекс', + size: 'Размер на шрифта' + }, + image: { + image: 'Изображение', + insert: 'Постави картинка', + resizeFull: 'Цял размер', + resizeHalf: 'Размер на 50%', + resizeQuarter: 'Размер на 25%', + floatLeft: 'Подравни в ляво', + floatRight: 'Подравни в дясно', + floatNone: 'Без подравняване', + dragImageHere: 'Пуснете изображението тук', + selectFromFiles: 'Изберете файл', + url: 'URL адрес на изображение', + remove: 'Премахни изображение' + }, + link: { + link: 'Връзка', + insert: 'Добави връзка', + unlink: 'Премахни връзка', + edit: 'Промени', + textToDisplay: 'Текст за показване', + url: 'URL адрес', + openInNewWindow: 'Отвори в нов прозорец' + }, + table: { + table: 'Таблица' + }, + hr: { + insert: 'Добави хоризонтална линия' + }, + style: { + style: 'Стил', + p: 'Нормален', + blockquote: 'Цитат', + pre: 'Код', + h1: 'Заглавие 1', + h2: 'Заглавие 2', + h3: 'Заглавие 3', + h4: 'Заглавие 4', + h5: 'Заглавие 5', + h6: 'Заглавие 6' + }, + lists: { + unordered: 'Символен списък', + ordered: 'Цифров списък' + }, + options: { + help: 'Помощ', + fullscreen: 'На цял екран', + codeview: 'Преглед на код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Намаляване на отстъпа', + indent: 'Абзац', + left: 'Подравняване в ляво', + center: 'Център', + right: 'Подравняване в дясно', + justify: 'Разтягане по ширина' + }, + color: { + recent: 'Последния избран цвят', + more: 'Още цветове', + background: 'Цвят на фона', + foreground: 'Цвят на шрифта', + transparent: 'Прозрачен', + setTransparent: 'Направете прозрачен', + reset: 'Възстанови', + resetToDefault: 'Възстанови оригиналните' + }, + shortcut: { + shortcuts: 'Клавишни комбинации', + close: 'Затвори', + textFormatting: 'Форматиране на текста', + action: 'Действие', + paragraphFormatting: 'Форматиране на параграф', + documentStyle: 'Стил на документа' + }, + history: { + undo: 'Назад', + redo: 'Напред' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-ca-ES.js b/assets/lib/summernote/lang/summernote-ca-ES.js new file mode 100644 index 0000000..04978a1 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-ca-ES.js @@ -0,0 +1,147 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ca-ES': { + font: { + bold: 'Negreta', + italic: 'Cursiva', + underline: 'Subratllat', + clear: 'Treure estil de lletra', + height: 'Alçada de línia', + name: 'Font', + strikethrough: 'Ratllat', + subscript: 'Subíndex', + superscript: 'Superíndex', + size: 'Mida de lletra' + }, + image: { + image: 'Imatge', + insert: 'Inserir imatge', + resizeFull: 'Redimensionar a mida completa', + resizeHalf: 'Redimensionar a la meitat', + resizeQuarter: 'Redimensionar a un quart', + floatLeft: 'Alinear a l\'esquerra', + floatRight: 'Alinear a la dreta', + floatNone: 'No alinear', + shapeRounded: 'Forma: Arrodonit', + shapeCircle: 'Forma: Cercle', + shapeThumbnail: 'Forma: Marc', + shapeNone: 'Forma: Cap', + dragImageHere: 'Arrossegueu una imatge o text aquí', + dropImage: 'Deixa anar aquí una imatge o un text', + selectFromFiles: 'Seleccioneu des dels arxius', + maximumFileSize: 'Mida màxima de l\'arxiu', + maximumFileSizeError: 'La mida màxima de l\'arxiu s\'ha superat.', + url: 'URL de la imatge', + remove: 'Eliminar imatge' + }, + video: { + video: 'Vídeo', + videoLink: 'Enllaç del vídeo', + insert: 'Inserir vídeo', + url: 'URL del vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)' + }, + link: { + link: 'Enllaç', + insert: 'Inserir enllaç', + unlink: 'Treure enllaç', + edit: 'Editar', + textToDisplay: 'Text per mostrar', + url: 'Cap a quina URL porta l\'enllaç?', + openInNewWindow: 'Obrir en una finestra nova' + }, + table: { + table: 'Taula' + }, + hr: { + insert: 'Inserir línia horitzontal' + }, + style: { + style: 'Estil', + p: 'p', + blockquote: 'Cita', + pre: 'Codi', + h1: 'Títol 1', + h2: 'Títol 2', + h3: 'Títol 3', + h4: 'Títol 4', + h5: 'Títol 5', + h6: 'Títol 6' + }, + lists: { + unordered: 'Llista desendreçada', + ordered: 'Llista endreçada' + }, + options: { + help: 'Ajut', + fullscreen: 'Pantalla sencera', + codeview: 'Veure codi font' + }, + paragraph: { + paragraph: 'Paràgraf', + outdent: 'Menys tabulació', + indent: 'Més tabulació', + left: 'Alinear a l\'esquerra', + center: 'Alinear al mig', + right: 'Alinear a la dreta', + justify: 'Justificar' + }, + color: { + recent: 'Últim color', + more: 'Més colors', + background: 'Color de fons', + foreground: 'Color de lletra', + transparent: 'Transparent', + setTransparent: 'Establir transparent', + reset: 'Restablir', + resetToDefault: 'Restablir per defecte' + }, + shortcut: { + shortcuts: 'Dreceres de teclat', + close: 'Tancar', + textFormatting: 'Format de text', + action: 'Acció', + paragraphFormatting: 'Format de paràgraf', + documentStyle: 'Estil del document', + extraKeys: 'Tecles adicionals' + }, + help : { + 'insertParagraph': 'Inserir paràgraf', + 'undo': 'Desfer l\'última acció', + 'redo': 'Refer l\'última acció', + 'tab': 'Tabular', + 'untab': 'Eliminar tabulació', + 'bold': 'Establir estil negreta', + 'italic': 'Establir estil cursiva', + 'underline': 'Establir estil subratllat', + 'strikethrough': 'Establir estil ratllat', + 'removeFormat': 'Netejar estil', + 'justifyLeft': 'Alinear a l\'esquerra', + 'justifyCenter': 'Alinear al centre', + 'justifyRight': 'Alinear a la dreta', + 'justifyFull': 'Justificar', + 'insertUnorderedList': 'Inserir llista desendreçada', + 'insertOrderedList': 'Inserir llista endreçada', + 'outdent': 'Reduïr tabulació del paràgraf', + 'indent': 'Augmentar tabulació del paràgraf', + 'formatPara': 'Canviar l\'estil del bloc com a un paràgraf (etiqueta P)', + 'formatH1': 'Canviar l\'estil del bloc com a un H1', + 'formatH2': 'Canviar l\'estil del bloc com a un H2', + 'formatH3': 'Canviar l\'estil del bloc com a un H3', + 'formatH4': 'Canviar l\'estil del bloc com a un H4', + 'formatH5': 'Canviar l\'estil del bloc com a un H5', + 'formatH6': 'Canviar l\'estil del bloc com a un H6', + 'insertHorizontalRule': 'Inserir una línia horitzontal', + 'linkDialog.show': 'Mostrar panel d\'enllaços' + }, + history: { + undo: 'Desfer', + redo: 'Refer' + }, + specialChar: { + specialChar: 'CARÀCTERS ESPECIALS', + select: 'Selecciona caràcters especials' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-cs-CZ.js b/assets/lib/summernote/lang/summernote-cs-CZ.js new file mode 100644 index 0000000..14fc16c --- /dev/null +++ b/assets/lib/summernote/lang/summernote-cs-CZ.js @@ -0,0 +1,103 @@ +(function ($) { + $.extend($.summernote.lang, { + 'cs-CZ': { + font: { + bold: 'Tučné', + italic: 'Kurzíva', + underline: 'Podtržené', + clear: 'Odstranit styl písma', + height: 'Výška řádku', + strikethrough: 'Přeškrtnuté', + size: 'Velikost písma' + }, + image: { + image: 'Obrázek', + insert: 'Vložit obrázek', + resizeFull: 'Původní velikost', + resizeHalf: 'Poloviční velikost', + resizeQuarter: 'Čtvrteční velikost', + floatLeft: 'Umístit doleva', + floatRight: 'Umístit doprava', + floatNone: 'Neobtékat textem', + dragImageHere: 'Přetáhnout sem obrázek', + selectFromFiles: 'Vybrat soubor', + url: 'URL obrázku' + }, + video: { + video: 'Video', + videoLink: 'Odkaz videa', + insert: 'Vložit video', + url: 'URL videa?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)' + }, + link: { + link: 'Odkaz', + insert: 'Vytvořit odkaz', + unlink: 'Zrušit odkaz', + edit: 'Upravit', + textToDisplay: 'Zobrazovaný text', + url: 'Na jaké URL má tento odkaz vést?', + openInNewWindow: 'Otevřít v novém okně' + }, + table: { + table: 'Tabulka' + }, + hr: { + insert: 'Vložit vodorovnou čáru' + }, + style: { + style: 'Styl', + p: 'Normální', + blockquote: 'Citace', + pre: 'Kód', + h1: 'Nadpis 1', + h2: 'Nadpis 2', + h3: 'Nadpis 3', + h4: 'Nadpis 4', + h5: 'Nadpis 5', + h6: 'Nadpis 6' + }, + lists: { + unordered: 'Odrážkový seznam', + ordered: 'Číselný seznam' + }, + options: { + help: 'Nápověda', + fullscreen: 'Celá obrazovka', + codeview: 'HTML kód' + }, + paragraph: { + paragraph: 'Odstavec', + outdent: 'Zvětšit odsazení', + indent: 'Zmenšit odsazení', + left: 'Zarovnat doleva', + center: 'Zarovnat na střed', + right: 'Zarovnat doprava', + justify: 'Zarovnat oboustranně' + }, + color: { + recent: 'Aktuální barva', + more: 'Další barvy', + background: 'Barva pozadí', + foreground: 'Barva písma', + transparent: 'Průhlednost', + setTransparent: 'Nastavit průhlednost', + reset: 'Obnovit', + resetToDefault: 'Obnovit výchozí' + }, + shortcut: { + shortcuts: 'Klávesové zkratky', + close: 'Zavřít', + textFormatting: 'Formátování textu', + action: 'Akce', + paragraphFormatting: 'Formátování odstavce', + documentStyle: 'Styl dokumentu' + }, + history: { + undo: 'Krok vzad', + redo: 'Krok vpřed' + } + + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-da-DK.js b/assets/lib/summernote/lang/summernote-da-DK.js new file mode 100644 index 0000000..8f51774 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-da-DK.js @@ -0,0 +1,114 @@ +(function ($) { + $.extend($.summernote.lang, { + 'da-DK': { + font: { + bold: 'Fed', + italic: 'Kursiv', + underline: 'Understreget', + clear: 'Fjern formatering', + height: 'Højde', + name: 'Skrifttype', + strikethrough: 'Gennemstreget', + subscript: 'Sænket skrift', + superscript: 'Hævet skrift', + size: 'Skriftstørrelse' + }, + image: { + image: 'Billede', + insert: 'Indsæt billede', + resizeFull: 'Original størrelse', + resizeHalf: 'Halv størrelse', + resizeQuarter: 'Kvart størrelse', + floatLeft: 'Venstrestillet', + floatRight: 'Højrestillet', + floatNone: 'Fjern formatering', + shapeRounded: 'Form: Runde kanter', + shapeCircle: 'Form: Cirkel', + shapeThumbnail: 'Form: Miniature', + shapeNone: 'Form: Ingen', + dragImageHere: 'Træk billede hertil', + dropImage: 'Slip billede', + selectFromFiles: 'Vælg billed-fil', + maximumFileSize: 'Maks fil størrelse', + maximumFileSizeError: 'Filen er større end maks tilladte fil størrelse!', + url: 'Billede URL', + remove: 'Fjern billede' + }, + video: { + video: 'Video', + videoLink: 'Video Link', + insert: 'Indsæt Video', + url: 'Video URL?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)' + }, + link: { + link: 'Link', + insert: 'Indsæt link', + unlink: 'Fjern link', + edit: 'Rediger', + textToDisplay: 'Visningstekst', + url: 'Hvor skal linket pege hen?', + openInNewWindow: 'Åbn i nyt vindue' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Indsæt horisontal linje' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Citat', + pre: 'Kode', + h1: 'Overskrift 1', + h2: 'Overskrift 2', + h3: 'Overskrift 3', + h4: 'Overskrift 4', + h5: 'Overskrift 5', + h6: 'Overskrift 6' + }, + lists: { + unordered: 'Punktopstillet liste', + ordered: 'Nummereret liste' + }, + options: { + help: 'Hjælp', + fullscreen: 'Fuld skærm', + codeview: 'HTML-Visning' + }, + paragraph: { + paragraph: 'Afsnit', + outdent: 'Formindsk indryk', + indent: 'Forøg indryk', + left: 'Venstrestillet', + center: 'Centreret', + right: 'Højrestillet', + justify: 'Blokjuster' + }, + color: { + recent: 'Nyligt valgt farve', + more: 'Flere farver', + background: 'Baggrund', + foreground: 'Forgrund', + transparent: 'Transparent', + setTransparent: 'Sæt transparent', + reset: 'Nulstil', + resetToDefault: 'Gendan standardindstillinger' + }, + shortcut: { + shortcuts: 'Genveje', + close: 'Luk', + textFormatting: 'Tekstformatering', + action: 'Handling', + paragraphFormatting: 'Afsnitsformatering', + documentStyle: 'Dokumentstil' + }, + history: { + undo: 'Fortryd', + redo: 'Annuller fortryd' + } + + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-de-DE.js b/assets/lib/summernote/lang/summernote-de-DE.js new file mode 100644 index 0000000..402caed --- /dev/null +++ b/assets/lib/summernote/lang/summernote-de-DE.js @@ -0,0 +1,110 @@ +(function ($) { + $.extend($.summernote.lang, { + 'de-DE': { + font: { + bold: 'Fett', + italic: 'Kursiv', + underline: 'Unterstreichen', + clear: 'Zurücksetzen', + height: 'Zeilenhöhe', + strikethrough: 'Durchgestrichen', + size: 'Schriftgröße' + }, + image: { + image: 'Grafik', + insert: 'Grafik einfügen', + resizeFull: 'Originalgröße', + resizeHalf: 'Größe 1/2', + resizeQuarter: 'Größe 1/4', + floatLeft: 'Linksbündig', + floatRight: 'Rechtsbündig', + floatNone: 'Kein Textfluss', + shapeRounded: 'Rahmen: Abgerundet', + shapeCircle: 'Rahmen: Kreisförmig', + shapeThumbnail: 'Rahmen: Thumbnail', + shapeNone: 'Kein Rahmen', + dragImageHere: 'Ziehen Sie ein Bild mit der Maus hierher', + selectFromFiles: 'Wählen Sie eine Datei aus', + maximumFileSize: 'Maximale Dateigröße', + maximumFileSizeError: 'Maximale Dateigröße überschritten', + url: 'Grafik URL', + remove: 'Grafik entfernen' + }, + video: { + video: 'Video', + videoLink: 'Video Link', + insert: 'Video einfügen', + url: 'Video URL?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)' + }, + link: { + link: 'Link', + insert: 'Link einfügen', + unlink: 'Link entfernen', + edit: 'Editieren', + textToDisplay: 'Anzeigetext', + url: 'Ziel des Links?', + openInNewWindow: 'In einem neuen Fenster öffnen' + }, + table: { + table: 'Tabelle' + }, + hr: { + insert: 'Eine horizontale Linie einfügen' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Zitat', + pre: 'Quellcode', + h1: 'Überschrift 1', + h2: 'Überschrift 2', + h3: 'Überschrift 3', + h4: 'Überschrift 4', + h5: 'Überschrift 5', + h6: 'Überschrift 6' + }, + lists: { + unordered: 'Aufzählung', + ordered: 'Nummerierung' + }, + options: { + help: 'Hilfe', + fullscreen: 'Vollbild', + codeview: 'HTML-Code anzeigen' + }, + paragraph: { + paragraph: 'Absatz', + outdent: 'Einzug vergrößern', + indent: 'Einzug verkleinern', + left: 'Links ausrichten', + center: 'Zentriert ausrichten', + right: 'Rechts ausrichten', + justify: 'Blocksatz' + }, + color: { + recent: 'Letzte Farbe', + more: 'Mehr Farben', + background: 'Hintergrundfarbe', + foreground: 'Schriftfarbe', + transparent: 'Transparenz', + setTransparent: 'Transparenz setzen', + reset: 'Zurücksetzen', + resetToDefault: 'Auf Standard zurücksetzen' + }, + shortcut: { + shortcuts: 'Tastenkürzel', + close: 'Schließen', + textFormatting: 'Textformatierung', + action: 'Aktion', + paragraphFormatting: 'Absatzformatierung', + documentStyle: 'Dokumentenstil' + }, + history: { + undo: 'Rückgängig', + redo: 'Wiederholen' + } + + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-es-ES.js b/assets/lib/summernote/lang/summernote-es-ES.js new file mode 100644 index 0000000..b66a368 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-es-ES.js @@ -0,0 +1,147 @@ +(function ($) { + $.extend($.summernote.lang, { + 'es-ES': { + font: { + bold: 'Negrita', + italic: 'Cursiva', + underline: 'Subrayado', + clear: 'Quitar estilo de fuente', + height: 'Altura de línea', + name: 'Fuente', + strikethrough: 'Tachado', + superscript: 'Superíndice', + subscript: 'Subíndice', + size: 'Tamaño de la fuente' + }, + image: { + image: 'Imagen', + insert: 'Insertar imagen', + resizeFull: 'Redimensionar a tamaño completo', + resizeHalf: 'Redimensionar a la mitad', + resizeQuarter: 'Redimensionar a un cuarto', + floatLeft: 'Flotar a la izquierda', + floatRight: 'Flotar a la derecha', + floatNone: 'No flotar', + shapeRounded: 'Forma: Redondeado', + shapeCircle: 'Forma: Círculo', + shapeThumbnail: 'Forma: Marco', + shapeNone: 'Forma: Ninguna', + dragImageHere: 'Arrastrar una imagen o texto aquí', + dropImage: 'Suelta la imagen o texto', + selectFromFiles: 'Seleccionar desde los archivos', + maximumFileSize: 'Tamaño máximo del archivo', + maximumFileSizeError: 'Has superado el tamaño máximo del archivo.', + url: 'URL de la imagen', + remove: 'Eliminar imagen' + }, + video: { + video: 'Vídeo', + videoLink: 'Link del vídeo', + insert: 'Insertar vídeo', + url: '¿URL del vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)' + }, + link: { + link: 'Link', + insert: 'Insertar link', + unlink: 'Quitar link', + edit: 'Editar', + textToDisplay: 'Texto para mostrar', + url: '¿Hacia que URL lleva el link?', + openInNewWindow: 'Abrir en una nueva ventana' + }, + table: { + table: 'Tabla' + }, + hr: { + insert: 'Insertar línea horizontal' + }, + style: { + style: 'Estilo', + p: 'p', + blockquote: 'Cita', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista desordenada', + ordered: 'Lista ordenada' + }, + options: { + help: 'Ayuda', + fullscreen: 'Pantalla completa', + codeview: 'Ver código fuente' + }, + paragraph: { + paragraph: 'Párrafo', + outdent: 'Menos tabulación', + indent: 'Más tabulación', + left: 'Alinear a la izquierda', + center: 'Alinear al centro', + right: 'Alinear a la derecha', + justify: 'Justificar' + }, + color: { + recent: 'Último color', + more: 'Más colores', + background: 'Color de fondo', + foreground: 'Color de fuente', + transparent: 'Transparente', + setTransparent: 'Establecer transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar por defecto' + }, + shortcut: { + shortcuts: 'Atajos de teclado', + close: 'Cerrar', + textFormatting: 'Formato de texto', + action: 'Acción', + paragraphFormatting: 'Formato de párrafo', + documentStyle: 'Estilo de documento', + extraKeys: 'Teclas adicionales' + }, + help : { + 'insertParagraph': 'Insertar párrafo', + 'undo': 'Deshacer última acción', + 'redo': 'Rehacer última acción', + 'tab': 'Tabular', + 'untab': 'Eliminar tabulación', + 'bold': 'Establecer estilo negrita', + 'italic': 'Establecer estilo cursiva', + 'underline': 'Establecer estilo subrayado', + 'strikethrough': 'Establecer estilo tachado', + 'removeFormat': 'Limpiar estilo', + 'justifyLeft': 'Alinear a la izquierda', + 'justifyCenter': 'Alinear al centro', + 'justifyRight': 'Alinear a la derecha', + 'justifyFull': 'Justificar', + 'insertUnorderedList': 'Insertar lista desordenada', + 'insertOrderedList': 'Insertar lista ordenada', + 'outdent': 'Reducir tabulación del párrafo', + 'indent': 'Aumentar tabulación del párrafo', + 'formatPara': 'Cambiar estilo del bloque a párrafo (etiqueta P)', + 'formatH1': 'Cambiar estilo del bloque a H1', + 'formatH2': 'Cambiar estilo del bloque a H2', + 'formatH3': 'Cambiar estilo del bloque a H3', + 'formatH4': 'Cambiar estilo del bloque a H4', + 'formatH5': 'Cambiar estilo del bloque a H5', + 'formatH6': 'Cambiar estilo del bloque a H6', + 'insertHorizontalRule': 'Insertar línea horizontal', + 'linkDialog.show': 'Mostrar panel enlaces' + }, + history: { + undo: 'Deshacer', + redo: 'Rehacer' + }, + specialChar: { + specialChar: 'CARACTERES ESPECIALES', + select: 'Selecciona Caracteres especiales' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-es-EU.js b/assets/lib/summernote/lang/summernote-es-EU.js new file mode 100644 index 0000000..4681db0 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-es-EU.js @@ -0,0 +1,103 @@ +(function ($) { + $.extend($.summernote.lang, { + 'es-EU': { + font: { + bold: 'Lodia', + italic: 'Etzana', + underline: 'Azpimarratua', + clear: 'Estiloa kendu', + height: 'Lerro altuera', + name: 'Tipografia', + strikethrough: 'Marratua', + size: 'Letren neurria' + }, + image: { + image: 'Irudia', + insert: 'Irudi bat txertatu', + resizeFull: 'Jatorrizko neurrira aldatu', + resizeHalf: 'Neurria erdira aldatu', + resizeQuarter: 'Neurria laurdenera aldatu', + floatLeft: 'Ezkerrean kokatu', + floatRight: 'Eskuinean kokatu', + floatNone: 'Kokapenik ez ezarri', + dragImageHere: 'Irudi bat ezarri hemen', + selectFromFiles: 'Zure fitxategi bat aukeratu', + url: 'Irudiaren URL helbidea' + }, + video: { + video: 'Bideoa', + videoLink: 'Bideorako esteka', + insert: 'Bideo berri bat txertatu', + url: 'Bideoaren URL helbidea', + providers: '(YouTube, Vimeo, Vine, Instagram edo DailyMotion)' + }, + link: { + link: 'Esteka', + insert: 'Esteka bat txertatu', + unlink: 'Esteka ezabatu', + edit: 'Editatu', + textToDisplay: 'Estekaren testua', + url: 'Estekaren URL helbidea', + openInNewWindow: 'Leiho berri batean ireki' + }, + table: { + table: 'Taula' //Tabla + }, + hr: { + insert: 'Marra horizontala txertatu' //Insertar línea horizontal + }, + style: { + style: 'Estiloa', + p: 'p', + blockquote: 'Aipamena', + pre: 'Kodea', + h1: '1. izenburua', + h2: '2. izenburua', + h3: '3. izenburua', + h4: '4. izenburua', + h5: '5. izenburua', + h6: '6. izenburua' + }, + lists: { + unordered: 'Ordenatu gabeko zerrenda', + ordered: 'Zerrenda ordenatua' + }, + options: { + help: 'Laguntza', + fullscreen: 'Pantaila osoa', + codeview: 'Kodea ikusi' + }, + paragraph: { + paragraph: 'Paragrafoa', + outdent: 'Koska txikiagoa', + indent: 'Koska handiagoa', + left: 'Ezkerrean kokatu', + center: 'Erdian kokatu', + right: 'Eskuinean kokatu', + justify: 'Justifikatu' + }, + color: { + recent: 'Azken kolorea', + more: 'Kolore gehiago', + background: 'Atzeko planoa', + foreground: 'Aurreko planoa', + transparent: 'Gardena', + setTransparent: 'Gardendu', + reset: 'Lehengoratu', + resetToDefault: 'Berrezarri lehenetsia' + }, + shortcut: { + shortcuts: 'Lasterbideak', + close: 'Itxi', + textFormatting: 'Testuaren formatua', + action: 'Ekintza', + paragraphFormatting: 'Paragrafoaren formatua', + documentStyle: 'Dokumentuaren estiloa' + }, + history: { + undo: 'Desegin', + redo: 'Berregin' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-fa-IR.js b/assets/lib/summernote/lang/summernote-fa-IR.js new file mode 100644 index 0000000..a9d1a2d --- /dev/null +++ b/assets/lib/summernote/lang/summernote-fa-IR.js @@ -0,0 +1,105 @@ +(function ($) { + $.extend($.summernote.lang, { + 'fa-IR': { + font: { + bold: 'درشت', + italic: 'خمیده', + underline: 'میان خط', + clear: 'پاک کردن فرمت فونت', + height: 'فاصله ی خطی', + name: 'اسم فونت', + strikethrough: 'Strike', + size: 'اندازه ی فونت' + }, + image: { + image: 'تصویر', + insert: 'وارد کردن تصویر', + resizeFull: 'تغییر به اندازه ی کامل', + resizeHalf: 'تغییر به اندازه نصف', + resizeQuarter: 'تغییر به اندازه یک چهارم', + floatLeft: 'چسباندن به چپ', + floatRight: 'چسباندن به راست', + floatNone: 'بدون چسبندگی', + dragImageHere: 'یک تصویر را اینجا بکشید', + selectFromFiles: 'فایل ها را انتخاب کنید', + url: 'آدرس تصویر', + remove: 'حذف تصویر' + }, + video: { + video: 'ویدیو', + videoLink: 'لینک ویدیو', + insert: 'افزودن ویدیو', + url: 'آدرس ویدیو ؟', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)' + }, + link: { + link: 'لینک', + insert: 'اضافه کردن لینک', + unlink: 'حذف لینک', + edit: 'ویرایش', + textToDisplay: 'متن جهت نمایش', + url: 'این لینک به چه آدرسی باید برود ؟', + openInNewWindow: 'در یک پنجره ی جدید باز شود' + }, + table: { + table: 'جدول' + }, + hr: { + insert: 'افزودن خط افقی' + }, + style: { + style: 'استیل', + p: 'نرمال', + blockquote: 'نقل قول', + pre: 'کد', + h1: 'سرتیتر 1', + h2: 'سرتیتر 2', + h3: 'سرتیتر 3', + h4: 'سرتیتر 4', + h5: 'سرتیتر 5', + h6: 'سرتیتر 6' + }, + lists: { + unordered: 'لیست غیر ترتیبی', + ordered: 'لیست ترتیبی' + }, + options: { + help: 'راهنما', + fullscreen: 'نمایش تمام صفحه', + codeview: 'مشاهده ی کد' + }, + paragraph: { + paragraph: 'پاراگراف', + outdent: 'کاهش تو رفتگی', + indent: 'افزایش تو رفتگی', + left: 'چپ چین', + center: 'میان چین', + right: 'راست چین', + justify: 'بلوک چین' + }, + color: { + recent: 'رنگ اخیرا استفاده شده', + more: 'رنگ بیشتر', + background: 'رنگ پس زمینه', + foreground: 'رنگ متن', + transparent: 'بی رنگ', + setTransparent: 'تنظیم حالت بی رنگ', + reset: 'بازنشاندن', + resetToDefault: 'حالت پیش فرض' + }, + shortcut: { + shortcuts: 'دکمه های میان بر', + close: 'بستن', + textFormatting: 'فرمت متن', + action: 'عملیات', + paragraphFormatting: 'فرمت پاراگراف', + documentStyle: 'استیل سند' + }, + history: { + undo: 'واچیدن', + redo: 'بازچیدن' + } + } + }); +})(jQuery); + diff --git a/assets/lib/summernote/lang/summernote-fi-FI.js b/assets/lib/summernote/lang/summernote-fi-FI.js new file mode 100644 index 0000000..22e7875 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-fi-FI.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'fi-FI': { + font: { + bold: 'Lihavoitu', + italic: 'Kursiivi', + underline: 'Alleviivaa', + clear: 'Tyhjennä muotoilu', + height: 'Riviväli', + name: 'Kirjasintyyppi', + strikethrough: 'Yliviivaus', + size: 'Kirjasinkoko' + }, + image: { + image: 'Kuva', + insert: 'Lisää kuva', + resizeFull: 'Koko leveys', + resizeHalf: 'Puolikas leveys', + resizeQuarter: 'Neljäsosa leveys', + floatLeft: 'Sijoita vasemmalle', + floatRight: 'Sijoita oikealle', + floatNone: 'Ei sijoitusta', + dragImageHere: 'Vedä kuva tähän', + selectFromFiles: 'Valitse tiedostoista', + url: 'URL-osoitteen mukaan', + remove: 'Poista kuva' + }, + video: { + video: 'Video', + videoLink: 'Linkki videoon', + insert: 'Lisää video', + url: 'Videon URL-osoite?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)' + }, + link: { + link: 'Linkki', + insert: 'Lisää linkki', + unlink: 'Poista linkki', + edit: 'Muokkaa', + textToDisplay: 'Näytettävä teksti', + url: 'Linkin URL-osoite?', + openInNewWindow: 'Avaa uudessa ikkunassa' + }, + table: { + table: 'Taulukko' + }, + hr: { + insert: 'Lisää vaakaviiva' + }, + style: { + style: 'Tyyli', + p: 'Normaali', + blockquote: 'Lainaus', + pre: 'Koodi', + h1: 'Otsikko 1', + h2: 'Otsikko 2', + h3: 'Otsikko 3', + h4: 'Otsikko 4', + h5: 'Otsikko 5', + h6: 'Otsikko 6' + }, + lists: { + unordered: 'Luettelomerkitty luettelo', + ordered: 'Numeroitu luettelo' + }, + options: { + help: 'Ohje', + fullscreen: 'Koko näyttö', + codeview: 'HTML-näkymä' + }, + paragraph: { + paragraph: 'Kappale', + outdent: 'Pienennä sisennystä', + indent: 'Suurenna sisennystä', + left: 'Tasaus vasemmalle', + center: 'Keskitä', + right: 'Tasaus oikealle', + justify: 'Tasaa' + }, + color: { + recent: 'Viimeisin väri', + more: 'Lisää värejä', + background: 'Taustaväri', + foreground: 'Tekstin väri', + transparent: 'Läpinäkyvä', + setTransparent: 'Aseta läpinäkyväksi', + reset: 'Palauta', + resetToDefault: 'Palauta oletusarvoksi' + }, + shortcut: { + shortcuts: 'Pikanäppäimet', + close: 'Sulje', + textFormatting: 'Tekstin muotoilu', + action: 'Toiminto', + paragraphFormatting: 'Kappaleen muotoilu', + documentStyle: 'Asiakirjan tyyli' + }, + history: { + undo: 'Kumoa', + redo: 'Toista' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-fr-FR.js b/assets/lib/summernote/lang/summernote-fr-FR.js new file mode 100644 index 0000000..f6b7738 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-fr-FR.js @@ -0,0 +1,115 @@ +(function ($) { + $.extend($.summernote.lang, { + 'fr-FR': { + font: { + bold: 'Gras', + italic: 'Italique', + underline: 'Souligné', + clear: 'Effacer la mise en forme', + height: 'Interligne', + name: 'Famille de police', + strikethrough: 'Barré', + superscript: 'Exposant', + subscript: 'Indice', + size: 'Taille de police' + }, + image: { + image: 'Image', + insert: 'Insérer une image', + resizeFull: 'Taille originale', + resizeHalf: 'Redimensionner à 50 %', + resizeQuarter: 'Redimensionner à 25 %', + floatLeft: 'Aligné à gauche', + floatRight: 'Aligné à droite', + floatNone: 'Pas d\'alignement', + shapeRounded: 'Forme: Rectangle arrondie', + shapeCircle: 'Forme: Cercle', + shapeThumbnail: 'Forme: Vignette', + shapeNone: 'Forme: Aucune', + dragImageHere: 'Faites glisser une image ou un texte dans ce cadre', + dropImage: 'Lachez l\'image ou le texte', + selectFromFiles: 'Choisir un fichier', + maximumFileSize: 'Taille de fichier maximale', + maximumFileSizeError: 'Taille maximale du fichier dépassée', + url: 'URL de l\'image', + remove: 'Supprimer l\'image' + }, + video: { + video: 'Vidéo', + videoLink: 'Lien vidéo', + insert: 'Insérer une vidéo', + url: 'URL de la vidéo', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'Lien', + insert: 'Insérer un lien', + unlink: 'Supprimer un lien', + edit: 'Modifier', + textToDisplay: 'Texte à afficher', + url: 'URL du lien', + openInNewWindow: 'Ouvrir dans une nouvelle fenêtre' + }, + table: { + table: 'Tableau' + }, + hr: { + insert: 'Insérer une ligne horizontale' + }, + style: { + style: 'Style', + p: 'p', + blockquote: 'Citation', + pre: 'Code source', + h1: 'Titre 1', + h2: 'Titre 2', + h3: 'Titre 3', + h4: 'Titre 4', + h5: 'Titre 5', + h6: 'Titre 6' + }, + lists: { + unordered: 'Liste à puces', + ordered: 'Liste numérotée' + }, + options: { + help: 'Aide', + fullscreen: 'Plein écran', + codeview: 'Afficher le code HTML' + }, + paragraph: { + paragraph: 'Paragraphe', + outdent: 'Diminuer le retrait', + indent: 'Augmenter le retrait', + left: 'Aligner à gauche', + center: 'Centrer', + right: 'Aligner à droite', + justify: 'Justifier' + }, + color: { + recent: 'Dernière couleur sélectionnée', + more: 'Plus de couleurs', + background: 'Couleur de fond', + foreground: 'Couleur de police', + transparent: 'Transparent', + setTransparent: 'Définir la transparence', + reset: 'Restaurer', + resetToDefault: 'Restaurer la couleur par défaut' + }, + shortcut: { + shortcuts: 'Raccourcis', + close: 'Fermer', + textFormatting: 'Mise en forme du texte', + action: 'Action', + paragraphFormatting: 'Mise en forme des paragraphes', + documentStyle: 'Style du document', + extraKeys: 'Touches supplémentaires' + }, + history: { + undo: 'Annuler la dernière action', + redo: 'Restaurer la dernière action annulée' + } + + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-gl-ES.js b/assets/lib/summernote/lang/summernote-gl-ES.js new file mode 100644 index 0000000..004af3c --- /dev/null +++ b/assets/lib/summernote/lang/summernote-gl-ES.js @@ -0,0 +1,147 @@ +(function ($) { + $.extend($.summernote.lang, { + 'gl-ES': { + font: { + bold: 'Negrita', + italic: 'Cursiva', + underline: 'Subliñado', + clear: 'Quitar estilo de fonte', + height: 'Altura de liña', + name: 'Fonte', + strikethrough: 'Riscado', + superscript: 'Superíndice', + subscript: 'Subíndice', + size: 'Tamaño da fonte' + }, + image: { + image: 'Imaxe', + insert: 'Inserir imaxe', + resizeFull: 'Redimensionar a tamaño completo', + resizeHalf: 'Redimensionar á metade', + resizeQuarter: 'Redimensionar a un cuarto', + floatLeft: 'Flotar á esquerda', + floatRight: 'Flotar á dereita', + floatNone: 'Non flotar', + shapeRounded: 'Forma: Redondeado', + shapeCircle: 'Forma: Círculo', + shapeThumbnail: 'Forma: Marco', + shapeNone: 'Forma: Ningunha', + dragImageHere: 'Arrastrar unha imaxe ou texto aquí', + dropImage: 'Solta a imaxe ou texto', + selectFromFiles: 'Seleccionar desde os arquivos', + maximumFileSize: 'Tamaño máximo do arquivo', + maximumFileSizeError: 'Superaches o tamaño máximo do arquivo.', + url: 'URL da imaxe', + remove: 'Eliminar imaxe' + }, + video: { + video: 'Vídeo', + videoLink: 'Ligazón do vídeo', + insert: 'Insertar vídeo', + url: 'URL do vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)' + }, + link: { + link: 'Ligazón', + insert: 'Inserir Ligazón', + unlink: 'Quitar Ligazón', + edit: 'Editar', + textToDisplay: 'Texto para amosar', + url: 'Cara a que URL leva a ligazón?', + openInNewWindow: 'Abrir nunha nova xanela' + }, + table: { + table: 'Táboa' + }, + hr: { + insert: 'Inserir liña horizontal' + }, + style: { + style: 'Estilo', + normal: 'Normal', + blockquote: 'Cita', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista desordenada', + ordered: 'Lista ordenada' + }, + options: { + help: 'Axuda', + fullscreen: 'Pantalla completa', + codeview: 'Ver código fonte' + }, + paragraph: { + paragraph: 'Parágrafo', + outdent: 'Menos tabulación', + indent: 'Máis tabulación', + left: 'Aliñar á esquerda', + center: 'Aliñar ao centro', + right: 'Aliñar á dereita', + justify: 'Xustificar' + }, + color: { + recent: 'Última cor', + more: 'Máis cores', + background: 'Cor de fondo', + foreground: 'Cor de fuente', + transparent: 'Transparente', + setTransparent: 'Establecer transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar por defecto' + }, + shortcut: { + shortcuts: 'Atallos de teclado', + close: 'Pechar', + textFormatting: 'Formato de texto', + action: 'Acción', + paragraphFormatting: 'Formato de parágrafo', + documentStyle: 'Estilo de documento', + extraKeys: 'Teclas adicionais' + }, + help : { + 'insertParagraph': 'Inserir parágrafo', + 'undo': 'Desfacer última acción', + 'redo': 'Refacer última acción', + 'tab': 'Tabular', + 'untab': 'Eliminar tabulación', + 'bold': 'Establecer estilo negrita', + 'italic': 'Establecer estilo cursiva', + 'underline': 'Establecer estilo subliñado', + 'strikethrough': 'Establecer estilo riscado', + 'removeFormat': 'Limpar estilo', + 'justifyLeft': 'Aliñar á esquerda', + 'justifyCenter': 'Aliñar ao centro', + 'justifyRight': 'Aliñar á dereita', + 'justifyFull': 'Xustificar', + 'insertUnorderedList': 'Inserir lista desordenada', + 'insertOrderedList': 'Inserir lista ordenada', + 'outdent': 'Reducir tabulación do parágrafo', + 'indent': 'Aumentar tabulación do parágrafo', + 'formatPara': 'Mudar estilo do bloque a parágrafo (etiqueta P)', + 'formatH1': 'Mudar estilo do bloque a H1', + 'formatH2': 'Mudar estilo do bloque a H2', + 'formatH3': 'Mudar estilo do bloque a H3', + 'formatH4': 'Mudar estilo do bloque a H4', + 'formatH5': 'Mudar estilo do bloque a H5', + 'formatH6': 'Mudar estilo do bloque a H6', + 'insertHorizontalRule': 'Inserir liña horizontal', + 'linkDialog.show': 'Amosar panel ligazóns' + }, + history: { + undo: 'Desfacer', + redo: 'Refacer' + }, + specialChar: { + specialChar: 'CARACTERES ESPECIAIS', + select: 'Selecciona Caracteres especiais' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-he-IL.js b/assets/lib/summernote/lang/summernote-he-IL.js new file mode 100644 index 0000000..344d93b --- /dev/null +++ b/assets/lib/summernote/lang/summernote-he-IL.js @@ -0,0 +1,107 @@ +(function ($) { + $.extend($.summernote.lang, { + 'he-IL': { + font: { + bold: 'מודגש', + italic: 'נטוי', + underline: 'קו תחתון', + clear: 'נקה עיצוב', + height: 'גובה', + name: 'גופן', + strikethrough: 'קו חוצה', + subscript: 'כתב תחתי', + superscript: 'כתב עילי', + size: 'גודל גופן' + }, + image: { + image: 'תמונה', + insert: 'הוסף תמונה', + resizeFull: 'גודל מלא', + resizeHalf: 'להקטין לחצי', + resizeQuarter: 'להקטין לרבע', + floatLeft: 'יישור לשמאל', + floatRight: 'יישור לימין', + floatNone: 'ישר', + dragImageHere: 'גרור תמונה לכאן', + selectFromFiles: 'בחר מתוך קבצים', + url: 'נתיב לתמונה', + remove: 'הסר תמונה' + }, + video: { + video: 'סרטון', + videoLink: 'קישור לסרטון', + insert: 'הוסף סרטון', + url: 'קישור לסרטון', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)' + }, + link: { + link: 'קישור', + insert: 'הוסף קישור', + unlink: 'הסר קישור', + edit: 'ערוך', + textToDisplay: 'טקסט להציג', + url: 'קישור', + openInNewWindow: 'פתח בחלון חדש' + }, + table: { + table: 'טבלה' + }, + hr: { + insert: 'הוסף קו' + }, + style: { + style: 'עיצוב', + p: 'טקסט רגיל', + blockquote: 'ציטוט', + pre: 'קוד', + h1: 'כותרת 1', + h2: 'כותרת 2', + h3: 'כותרת 3', + h4: 'כותרת 4', + h5: 'כותרת 5', + h6: 'כותרת 6' + }, + lists: { + unordered: 'רשימת תבליטים', + ordered: 'רשימה ממוספרת' + }, + options: { + help: 'עזרה', + fullscreen: 'מסך מלא', + codeview: 'תצוגת קוד' + }, + paragraph: { + paragraph: 'פסקה', + outdent: 'הקטן כניסה', + indent: 'הגדל כניסה', + left: 'יישור לשמאל', + center: 'יישור למרכז', + right: 'יישור לימין', + justify: 'מיושר' + }, + color: { + recent: 'צבע טקסט אחרון', + more: 'עוד צבעים', + background: 'צבע רקע', + foreground: 'צבע טקסט', + transparent: 'שקוף', + setTransparent: 'קבע כשקוף', + reset: 'איפוס', + resetToDefault: 'אפס לברירת מחדל' + }, + shortcut: { + shortcuts: 'קיצורי מקלדת', + close: 'סגור', + textFormatting: 'עיצוב הטקסט', + action: 'פעולה', + paragraphFormatting: 'סגנונות פסקה', + documentStyle: 'עיצוב המסמך', + extraKeys: 'קיצורים נוספים' + }, + history: { + undo: 'בטל פעולה', + redo: 'בצע שוב' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-hr-HR.js b/assets/lib/summernote/lang/summernote-hr-HR.js new file mode 100644 index 0000000..8b0d8bf --- /dev/null +++ b/assets/lib/summernote/lang/summernote-hr-HR.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'hr-HR': { + font: { + bold: 'Podebljano', + italic: 'Kurziv', + underline: 'Podvučeno', + clear: 'Ukloni stilove fonta', + height: 'Visina linije', + strikethrough: 'Precrtano', + size: 'Veličina fonta' + }, + image: { + image: 'Slika', + insert: 'Ubaci sliku', + resizeFull: 'Puna veličina', + resizeHalf: 'Umanji na 50%', + resizeQuarter: 'Umanji na 25%', + floatLeft: 'Poravnaj lijevo', + floatRight: 'Poravnaj desno', + floatNone: 'Bez poravnanja', + dragImageHere: 'Povuci sliku ovdje', + selectFromFiles: 'Izaberi iz datoteke', + url: 'Adresa slike', + remove: 'Ukloni sliku' + }, + video: { + video: 'Video', + videoLink: 'Veza na video', + insert: 'Ubaci video', + url: 'URL video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)' + }, + link: { + link: 'Veza', + insert: 'Ubaci vezu', + unlink: 'Ukloni vezu', + edit: 'Uredi', + textToDisplay: 'Tekst za prikaz', + url: 'Internet adresa', + openInNewWindow: 'Otvori u novom prozoru' + }, + table: { + table: 'Tablica' + }, + hr: { + insert: 'Ubaci horizontalnu liniju' + }, + style: { + style: 'Stil', + p: 'pni', + blockquote: 'Citat', + pre: 'Kôd', + h1: 'Naslov 1', + h2: 'Naslov 2', + h3: 'Naslov 3', + h4: 'Naslov 4', + h5: 'Naslov 5', + h6: 'Naslov 6' + }, + lists: { + unordered: 'Obična lista', + ordered: 'Numerirana lista' + }, + options: { + help: 'Pomoć', + fullscreen: 'Preko cijelog ekrana', + codeview: 'Izvorni kôd' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Smanji uvlačenje', + indent: 'Povećaj uvlačenje', + left: 'Poravnaj lijevo', + center: 'Centrirano', + right: 'Poravnaj desno', + justify: 'Poravnaj obostrano' + }, + color: { + recent: 'Posljednja boja', + more: 'Više boja', + background: 'Boja pozadine', + foreground: 'Boja teksta', + transparent: 'Prozirna', + setTransparent: 'Prozirna', + reset: 'Poništi', + resetToDefault: 'Podrazumijevana' + }, + shortcut: { + shortcuts: 'Prečice s tipkovnice', + close: 'Zatvori', + textFormatting: 'Formatiranje teksta', + action: 'Akcija', + paragraphFormatting: 'Formatiranje paragrafa', + documentStyle: 'Stil dokumenta', + extraKeys: 'Dodatne kombinacije' + }, + history: { + undo: 'Poništi', + redo: 'Ponovi' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-hu-HU.js b/assets/lib/summernote/lang/summernote-hu-HU.js new file mode 100644 index 0000000..e732c94 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-hu-HU.js @@ -0,0 +1,135 @@ +(function ($) { + $.extend($.summernote.lang, { + 'hu-HU': { + font: { + bold: 'Félkövér', + italic: 'Dőlt', + underline: 'Aláhúzott', + clear: 'Formázás törlése', + height: 'Sorköz', + name: 'Betűtípus', + strikethrough: 'Áthúzott', + size: 'Betűméret' + }, + image: { + image: 'Kép', + insert: 'Kép beszúrása', + resizeFull: 'Átméretezés teljes méretre', + resizeHalf: 'Átméretezés felére', + resizeQuarter: 'Átméretezés negyedére', + floatLeft: 'Igazítás balra', + floatRight: 'Igazítás jobbra', + floatNone: 'Igazítás törlése', + dragImageHere: 'Ide húzhat képet vagy szöveget', + dropImage: 'Engedje el a képet vagy szöveget', + selectFromFiles: 'Fájlok kiválasztása', + url: 'Kép URL címe', + remove: 'Kép törlése' + }, + video: { + video: 'Videó', + videoLink: 'Videó hivatkozás', + insert: 'Videó beszúrása', + url: 'Videó URL címe', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)' + }, + link: { + link: 'Hivatkozás', + insert: 'Hivatkozás beszúrása', + unlink: 'Hivatkozás megszüntetése', + edit: 'Szerkesztés', + textToDisplay: 'Megjelenítendő szöveg', + url: 'Milyen URL címre hivatkozzon?', + openInNewWindow: 'Megnyitás új ablakban' + }, + table: { + table: 'Táblázat' + }, + hr: { + insert: 'Elválasztó vonal beszúrása' + }, + style: { + style: 'Stílus', + p: 'Normál', + blockquote: 'Idézet', + pre: 'Kód', + h1: 'Fejléc 1', + h2: 'Fejléc 2', + h3: 'Fejléc 3', + h4: 'Fejléc 4', + h5: 'Fejléc 5', + h6: 'Fejléc 6' + }, + lists: { + unordered: 'Listajeles lista', + ordered: 'Számozott lista' + }, + options: { + help: 'Súgó', + fullscreen: 'Teljes képernyő', + codeview: 'Kód nézet' + }, + paragraph: { + paragraph: 'Bekezdés', + outdent: 'Behúzás csökkentése', + indent: 'Behúzás növelése', + left: 'Igazítás balra', + center: 'Igazítás középre', + right: 'Igazítás jobbra', + justify: 'Sorkizárt' + }, + color: { + recent: 'Jelenlegi szín', + more: 'További színek', + background: 'Háttérszín', + foreground: 'Betűszín', + transparent: 'Átlátszó', + setTransparent: 'Átlászóság beállítása', + reset: 'Visszaállítás', + resetToDefault: 'Alaphelyzetbe állítás' + }, + shortcut: { + shortcuts: 'Gyorsbillentyű', + close: 'Bezárás', + textFormatting: 'Szöveg formázása', + action: 'Művelet', + paragraphFormatting: 'Bekezdés formázása', + documentStyle: 'Dokumentumstílus' + }, + help: { + 'insertParagraph': 'Új bekezdés', + 'undo': 'Visszavonás', + 'redo': 'Újra', + 'tab': 'Behúzás növelése', + 'untab': 'Behúzás csökkentése', + 'bold': 'Félkövérre állítás', + 'italic': 'Dőltre állítás', + 'underline': 'Aláhúzás', + 'strikethrough': 'Áthúzás', + 'removeFormat': 'Formázás törlése', + 'justifyLeft': 'Balra igazítás', + 'justifyCenter': 'Középre igazítás', + 'justifyRight': 'Jobbra igazítás', + 'justifyFull': 'Sorkizárt', + 'insertUnorderedList': 'Számozatlan lista be/ki', + 'insertOrderedList': 'Számozott lista be/ki', + 'outdent': 'Jelenlegi bekezdés behúzásának megszüntetése', + 'indent': 'Jelenlegi bekezdés behúzása', + 'formatPara': 'Blokk formázása bekezdésként (P tag)', + 'formatH1': 'Blokk formázása, mint Fejléc 1', + 'formatH2': 'Blokk formázása, mint Fejléc 2', + 'formatH3': 'Blokk formázása, mint Fejléc 3', + 'formatH4': 'Blokk formázása, mint Fejléc 4', + 'formatH5': 'Blokk formázása, mint Fejléc 5', + 'formatH6': 'Blokk formázása, mint Fejléc 6', + 'insertHorizontalRule': 'Vízszintes vonal beszúrása', + 'linkDialog.show': 'Link párbeszédablak megjelenítése' + }, + history: { + undo: 'Visszavonás', + redo: 'Újra' + } + + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-id-ID.js b/assets/lib/summernote/lang/summernote-id-ID.js new file mode 100644 index 0000000..8283107 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-id-ID.js @@ -0,0 +1,103 @@ +(function ($) { + $.extend($.summernote.lang, { + 'id-ID': { + font: { + bold: 'Tebal', + italic: 'Miring', + underline: 'Garis bawah', + clear: 'Bersihkan gaya', + height: 'Jarak baris', + strikethrough: 'Coret', + size: 'Ukuran font' + }, + image: { + image: 'Gambar', + insert: 'Sisipkan gambar', + resizeFull: 'Ukuran penuh', + resizeHalf: 'Ukuran 50%', + resizeQuarter: 'Ukuran 25%', + floatLeft: 'Rata kiri', + floatRight: 'Rata kanan', + floatNone: 'Tidak ada perataan', + dragImageHere: 'Tarik gambar pada area ini', + selectFromFiles: 'Pilih gambar dari berkas', + url: 'URL gambar', + remove: 'Hapus Gambar' + }, + video: { + video: 'Video', + videoLink: 'Link video', + insert: 'Sisipkan video', + url: 'Tautan video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)' + }, + link: { + link: 'Tautan', + insert: 'Tambah tautan', + unlink: 'Hapus tautan', + edit: 'Edit', + textToDisplay: 'Tampilan teks', + url: 'Tautan tujuan', + openInNewWindow: 'Buka di jendela baru' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Masukkan garis horizontal' + }, + style: { + style: 'Gaya', + p: 'p', + blockquote: 'Kutipan', + pre: 'Kode', + h1: 'Heading 1', + h2: 'Heading 2', + h3: 'Heading 3', + h4: 'Heading 4', + h5: 'Heading 5', + h6: 'Heading 6' + }, + lists: { + unordered: 'Pencacahan', + ordered: 'Penomoran' + }, + options: { + help: 'Bantuan', + fullscreen: 'Layar penuh', + codeview: 'Kode HTML' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Outdent', + indent: 'Indent', + left: 'Rata kiri', + center: 'Rata tengah', + right: 'Rata kanan', + justify: 'Rata kanan kiri' + }, + color: { + recent: 'Warna sekarang', + more: 'Selengkapnya', + background: 'Warna latar', + foreground: 'Warna font', + transparent: 'Transparan', + setTransparent: 'Atur transparansi', + reset: 'Atur ulang', + resetToDefault: 'Kembalikan kesemula' + }, + shortcut: { + shortcuts: 'Jalan pintas', + close: 'Keluar', + textFormatting: 'Format teks', + action: 'Aksi', + paragraphFormatting: 'Format paragraf', + documentStyle: 'Gaya dokumen' + }, + history: { + undo: 'Kembali', + redo: 'Ulang' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-it-IT.js b/assets/lib/summernote/lang/summernote-it-IT.js new file mode 100644 index 0000000..73f133c --- /dev/null +++ b/assets/lib/summernote/lang/summernote-it-IT.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'it-IT': { + font: { + bold: 'Testo in grassetto', + italic: 'Testo in corsivo', + underline: 'Testo sottolineato', + clear: 'Elimina la formattazione del testo', + height: 'Altezza della linea di testo', + name: 'Famiglia Font', + strikethrough: 'Testo barrato', + size: 'Dimensione del carattere' + }, + image: { + image: 'Immagine', + insert: 'Inserisci Immagine', + resizeFull: 'Dimensioni originali', + resizeHalf: 'Ridimensiona al 50%', + resizeQuarter: 'Ridimensiona al 25%', + floatLeft: 'Posiziona a sinistra', + floatRight: 'Posiziona a destra', + floatNone: 'Nessun posizionamento', + dragImageHere: 'Trascina qui un\'immagine', + selectFromFiles: 'Scegli dai Documenti', + url: 'URL dell\'immagine', + remove: 'Rimuovi immagine' + }, + video: { + video: 'Video', + videoLink: 'Collegamento ad un Video', + insert: 'Inserisci Video', + url: 'URL del Video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)' + }, + link: { + link: 'Collegamento', + insert: 'Inserisci Collegamento', + unlink: 'Elimina collegamento', + edit: 'Modifica collegamento', + textToDisplay: 'Testo del collegamento', + url: 'URL del collegamento', + openInNewWindow: 'Apri in una nuova finestra' + }, + table: { + table: 'Tabella' + }, + hr: { + insert: 'Inserisce una linea di separazione' + }, + style: { + style: 'Stili', + p: 'pe', + blockquote: 'Citazione', + pre: 'Codice', + h1: 'Titolo 1', + h2: 'Titolo 2', + h3: 'Titolo 3', + h4: 'Titolo 4', + h5: 'Titolo 5', + h6: 'Titolo 6' + }, + lists: { + unordered: 'Elenco non ordinato', + ordered: 'Elenco ordinato' + }, + options: { + help: 'Aiuto', + fullscreen: 'Modalità a tutto schermo', + codeview: 'Visualizza codice' + }, + paragraph: { + paragraph: 'Paragrafo', + outdent: 'Diminuisce il livello di rientro', + indent: 'Aumenta il livello di rientro', + left: 'Allinea a sinistra', + center: 'Centra', + right: 'Allinea a destra', + justify: 'Giustifica (allinea a destra e sinistra)' + }, + color: { + recent: 'Ultimo colore utilizzato', + more: 'Altri colori', + background: 'Colore di sfondo', + foreground: 'Colore', + transparent: 'Trasparente', + setTransparent: 'Trasparente', + reset: 'Reimposta', + resetToDefault: 'Reimposta i colori' + }, + shortcut: { + shortcuts: 'Scorciatoie da tastiera', + close: 'Chiudi', + textFormatting: 'Formattazione testo', + action: 'Azioni', + paragraphFormatting: 'Formattazione paragrafo', + documentStyle: 'Stili' + }, + history: { + undo: 'Annulla', + redo: 'Ripristina' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-ja-JP.js b/assets/lib/summernote/lang/summernote-ja-JP.js new file mode 100644 index 0000000..58ac5af --- /dev/null +++ b/assets/lib/summernote/lang/summernote-ja-JP.js @@ -0,0 +1,133 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ja-JP': { + font: { + bold: '太字', + italic: '斜体', + underline: '下線', + clear: 'クリア', + height: '文字高', + name: 'フォント', + strikethrough: '取り消し線', + size: '大きさ' + }, + image: { + image: '画像', + insert: '画像挿入', + resizeFull: '最大化', + resizeHalf: '1/2', + resizeQuarter: '1/4', + floatLeft: '左寄せ', + floatRight: '右寄せ', + floatNone: '寄せ解除', + dragImageHere: 'ここに画像をドラッグしてください', + selectFromFiles: '画像ファイルを選ぶ', + url: 'URLから画像を挿入する', + remove: '画像を削除する' + }, + video: { + video: '動画', + videoLink: '動画リンク', + insert: '動画挿入', + url: '動画のURL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)' + }, + link: { + link: 'リンク', + insert: 'リンク挿入', + unlink: 'リンク解除', + edit: '編集', + textToDisplay: 'リンク文字列', + url: 'URLを入力してください', + openInNewWindow: '新しいウィンドウで開く' + }, + table: { + table: 'テーブル' + }, + hr: { + insert: '水平線の挿入' + }, + style: { + style: 'スタイル', + p: '標準', + blockquote: '引用', + pre: 'コード', + h1: '見出し1', + h2: '見出し2', + h3: '見出し3', + h4: '見出し4', + h5: '見出し5', + h6: '見出し6' + }, + lists: { + unordered: '通常リスト', + ordered: '番号リスト' + }, + options: { + help: 'ヘルプ', + fullscreen: 'フルスクリーン', + codeview: 'コード表示' + }, + paragraph: { + paragraph: '文章', + outdent: '字上げ', + indent: '字下げ', + left: '左寄せ', + center: '中央寄せ', + right: '右寄せ', + justify: '均等割付' + }, + color: { + recent: '現在の色', + more: 'もっと見る', + background: '背景色', + foreground: '文字色', + transparent: '透過率', + setTransparent: '透過率を設定', + reset: '標準', + resetToDefault: '標準に戻す' + }, + shortcut: { + shortcuts: 'ショートカット', + close: '閉じる', + textFormatting: '文字フォーマット', + action: 'アクション', + paragraphFormatting: '文章フォーマット', + documentStyle: 'ドキュメント形式' + }, + history: { + undo: '元に戻す', + redo: 'やり直す' + }, + help: { + 'insertParagraph': '改行挿入', + 'undo': '一旦、行った操作を戻す', + 'redo': '最後のコマンドをやり直す', + 'tab': 'Tab', + 'untab': 'タブ戻し', + 'bold': '太文字', + 'italic': '斜体', + 'underline': '下線', + 'strikethrough': '取り消し線', + 'removeFormat': '装飾を戻す', + 'justifyLeft': '左寄せ', + 'justifyCenter': '真ん中寄せ', + 'justifyRight': '右寄せ', + 'justifyFull': 'すべてを整列', + 'insertUnorderedList': '行頭に●を挿入', + 'insertOrderedList': '行頭に番号を挿入', + 'outdent': '字下げを戻す(アウトデント)', + 'indent': '字下げする(インデント)', + 'formatPara': '段落(P tag)指定', + 'formatH1': 'H1指定', + 'formatH2': 'H2指定', + 'formatH3': 'H3指定', + 'formatH4': 'H4指定', + 'formatH5': 'H5指定', + 'formatH6': 'H6指定', + 'insertHorizontalRule': '<hr />を挿入', + 'linkDialog.show': 'リンク挿入' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-ko-KR.js b/assets/lib/summernote/lang/summernote-ko-KR.js new file mode 100644 index 0000000..28aa872 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-ko-KR.js @@ -0,0 +1,115 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ko-KR': { + font: { + bold: '굵게', + italic: '기울임꼴', + underline: '밑줄', + clear: '글자 효과 없애기', + height: '줄간격', + name: '글꼴', + superscript: '위 첨자', + subscript: '아래 첨자', + strikethrough: '취소선', + size: '글자 크기' + }, + image: { + image: '사진', + insert: '사진 추가', + resizeFull: '100% 크기로 변경', + resizeHalf: '50% 크기로 변경', + resizeQuarter: '25% 크기로 변경', + floatLeft: '왼쪽 정렬', + floatRight: '오른쪽 정렬', + floatNone: '정렬하지 않음', + shapeRounded: '스타일: 둥근 모서리', + shapeCircle: '스타일: 원형', + shapeThumbnail: '스타일: 액자', + shapeNone: '스타일: 없음', + dragImageHere: '텍스트 혹은 사진을 이곳으로 끌어오세요', + dropImage: '텍스트 혹은 사진을 내려놓으세요', + selectFromFiles: '파일 선택', + url: '사진 URL', + remove: '사진 삭제' + }, + video: { + video: '동영상', + videoLink: '동영상 링크', + insert: '동영상 추가', + url: '동영상 URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)' + }, + link: { + link: '링크', + insert: '링크 추가', + unlink: '링크 삭제', + edit: '수정', + textToDisplay: '링크에 표시할 내용', + url: '이동할 URL', + openInNewWindow: '새창으로 열기' + }, + table: { + table: '테이블' + }, + hr: { + insert: '구분선 추가' + }, + style: { + style: '스타일', + p: '본문', + blockquote: '인용구', + pre: '코드', + h1: '제목 1', + h2: '제목 2', + h3: '제목 3', + h4: '제목 4', + h5: '제목 5', + h6: '제목 6' + }, + lists: { + unordered: '글머리 기호', + ordered: '번호 매기기' + }, + options: { + help: '도움말', + fullscreen: '전체 화면', + codeview: '코드 보기' + }, + paragraph: { + paragraph: '문단 정렬', + outdent: '내어쓰기', + indent: '들여쓰기', + left: '왼쪽 정렬', + center: '가운데 정렬', + right: '오른쪽 정렬', + justify: '양쪽 정렬' + }, + color: { + recent: '마지막으로 사용한 색', + more: '다른 색 선택', + background: '배경색', + foreground: '글자색', + transparent: '투명', + setTransparent: '투명', + reset: '취소', + resetToDefault: '기본 값으로 변경' + }, + shortcut: { + shortcuts: '키보드 단축키', + close: '닫기', + textFormatting: '글자 스타일 적용', + action: '기능', + paragraphFormatting: '문단 스타일 적용', + documentStyle: '문서 스타일 적용' + }, + history: { + undo: '실행 취소', + redo: '다시 실행' + }, + specialChar: { + specialChar: '특수문자', + select: '특수문자를 선택하세요' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-lt-LT.js b/assets/lib/summernote/lang/summernote-lt-LT.js new file mode 100644 index 0000000..6ed66a9 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-lt-LT.js @@ -0,0 +1,107 @@ +(function ($) { + $.extend($.summernote.lang, { + 'lt-LT': { + font: { + bold: 'Paryškintas', + italic: 'Kursyvas', + underline: 'Pabrėžtas', + clear: 'Be formatavimo', + height: 'Eilutės aukštis', + name: 'Šrifto pavadinimas', + strikethrough: 'Perbrauktas', + superscript: 'Viršutinis', + subscript: 'Indeksas', + size: 'Šrifto dydis' + }, + image: { + image: 'Paveikslėlis', + insert: 'Įterpti paveikslėlį', + resizeFull: 'Pilnas dydis', + resizeHalf: 'Sumažinti dydį 50%', + resizeQuarter: 'Sumažinti dydį 25%', + floatLeft: 'Kairinis lygiavimas', + floatRight: 'Dešininis lygiavimas', + floatNone: 'Jokio lygiavimo', + shapeRounded: 'Forma: apvalūs kraštai', + shapeCircle: 'Forma: apskritimas', + shapeThumbnail: 'Forma: miniatiūra', + shapeNone: 'Forma: jokia', + dragImageHere: 'Vilkite paveikslėlį čia', + selectFromFiles: 'Pasirinkite failą', + maximumFileSize: 'Maskimalus failo dydis', + maximumFileSizeError: 'Maskimalus failo dydis viršytas!', + url: 'Paveikslėlio URL adresas', + remove: 'Ištrinti paveikslėlį' + }, + link: { + link: 'Nuoroda', + insert: 'Įterpti nuorodą', + unlink: 'Pašalinti nuorodą', + edit: 'Redaguoti', + textToDisplay: 'Rodomas tekstas', + url: 'Koks URL adresas yra susietas?', + openInNewWindow: 'Atidaryti naujame lange' + }, + table: { + table: 'Lentelė' + }, + hr: { + insert: 'Įterpti horizontalią liniją' + }, + style: { + style: 'Stilius', + p: 'pus', + blockquote: 'Citata', + pre: 'Kodas', + h1: 'Antraštė 1', + h2: 'Antraštė 2', + h3: 'Antraštė 3', + h4: 'Antraštė 4', + h5: 'Antraštė 5', + h6: 'Antraštė 6' + }, + lists: { + unordered: 'Suženklintasis sąrašas', + ordered: 'Sunumeruotas sąrašas' + }, + options: { + help: 'Pagalba', + fullscreen: 'Viso ekrano režimas', + codeview: 'HTML kodo peržiūra' + }, + paragraph: { + paragraph: 'Pastraipa', + outdent: 'Sumažinti įtrauką', + indent: 'Padidinti įtrauką', + left: 'Kairinė lygiuotė', + center: 'Centrinė lygiuotė', + right: 'Dešininė lygiuotė', + justify: 'Abipusis išlyginimas' + }, + color: { + recent: 'Paskutinė naudota spalva', + more: 'Daugiau spalvų', + background: 'Fono spalva', + foreground: 'Šrifto spalva', + transparent: 'Permatoma', + setTransparent: 'Nustatyti skaidrumo intensyvumą', + reset: 'Atkurti', + resetToDefault: 'Atstatyti numatytąją spalvą' + }, + shortcut: { + shortcuts: 'Spartieji klavišai', + close: 'Uždaryti', + textFormatting: 'Teksto formatavimas', + action: 'Veiksmas', + paragraphFormatting: 'Pastraipos formatavimas', + documentStyle: 'Dokumento stilius', + extraKeys: 'Papildomi klavišų deriniai' + }, + history: { + undo: 'Anuliuoti veiksmą', + redo: 'Perdaryti veiksmą' + } + + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-lt-LV.js b/assets/lib/summernote/lang/summernote-lt-LV.js new file mode 100644 index 0000000..e873d85 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-lt-LV.js @@ -0,0 +1,135 @@ +(function ($) { + $.extend($.summernote.lang, { + 'lv-LV': { + font: { + bold: 'Treknraksts', + italic: 'Kursīvs', + underline: 'Pasvītrots', + clear: 'Noņemt formatējumu', + height: 'Līnijas augstums', + name: 'Fonts', + strikethrough: 'Nosvītrots', + superscript: 'Augšraksts', + subscript: 'Apakšraksts', + size: 'Fonta lielums' + }, + image: { + image: 'Attēls', + insert: 'Ievietot attēlu', + resizeFull: 'Pilns izmērts', + resizeHalf: 'Samazināt 50%', + resizeQuarter: 'Samazināt 25%', + floatLeft: 'Līdzināt pa kreisi', + floatRight: 'Līdzināt pa labi', + floatNone: 'Nelīdzināt', + shapeRounded: 'Forma: apaļām malām', + shapeCircle: 'Forma: aplis', + shapeThumbnail: 'Forma: rāmītis', + shapeNone: 'Forma: orģināla', + dragImageHere: 'Ievēlciet attēlu šeit', + selectFromFiles: 'Izvēlēties failu', + maximumFileSize: 'Maksimālais faila izmērs', + maximumFileSizeError: 'Faila izmērs pārāk liels!', + url: 'Attēla URL', + remove: 'Dzēst attēlu' + }, + link: { + link: 'Saite', + insert: 'Ievietot saiti', + unlink: 'Noņemt saiti', + edit: 'Rediģēt', + textToDisplay: 'Saites saturs', + url: 'Koks URL adresas yra susietas?', + openInNewWindow: 'Atvērt jaunā logā' + }, + table: { + table: 'Tabula' + }, + hr: { + insert: 'Ievietot līniju' + }, + style: { + style: 'Stils', + p: 'Parasts', + blockquote: 'Citāts', + pre: 'Kods', + h1: 'Virsraksts h1', + h2: 'Virsraksts h2', + h3: 'Virsraksts h3', + h4: 'Virsraksts h4', + h5: 'Virsraksts h5', + h6: 'Virsraksts h6' + }, + lists: { + unordered: 'Nenumurēts saraksts', + ordered: 'Numurēts saraksts' + }, + options: { + help: 'Palīdzība', + fullscreen: 'Pa visu ekrānu', + codeview: 'HTML kods' + }, + paragraph: { + paragraph: 'Paragrāfs', + outdent: 'Samazināt atkāpi', + indent: 'Palielināt atkāpi', + left: 'Līdzināt pa kreisi', + center: 'Centrēt', + right: 'Līdzināt pa labi', + justify: 'Līdzināt gar abām malām' + }, + color: { + recent: 'Nesen izmantotās', + more: 'Citas krāsas', + background: 'Fona krāsa', + foreground: 'Fonta krāsa', + transparent: 'Caurspīdīgs', + setTransparent: 'Iestatīt caurspīdīgumu', + reset: 'Atjaunot', + resetToDefault: 'Atjaunot noklusējumu' + }, + shortcut: { + shortcuts: 'Saīsnes', + close: 'Aizvērt', + textFormatting: 'Teksta formatēšana', + action: 'Darbība', + paragraphFormatting: 'Paragrāfa formatēšana', + documentStyle: 'Dokumenta stils', + extraKeys: 'Citas taustiņu kombinācijas' + }, + history: { + undo: 'Atsauks (undo)', + redo: 'Atkārtot (redo)' + }, + help: { + insertParagraph: 'Ievietot Paragrāfu', + undo: 'Atcelt iepriekšējo darbību', + redo: 'Atkārtot atcelto darbību', + tab: 'Atkāpe', + untab: 'Samazināt atkāpi', + bold: 'Pārvērst tekstu treknrakstā', + italic: 'Pārvērst tekstu slīprakstā (kursīvā)', + underline: 'Pasvītrot tekstu', + strikethrough: 'Nosvītrot tekstu', + removeFormat: 'Notīrīt stilu no teksta', + justifyLeft: 'Līdzīnāt saturu pa kreisi', + justifyCenter: 'Centrēt saturu', + justifyRight: 'Līdzīnāt saturu pa labi', + justifyFull: 'Izlīdzināt saturu gar abām malām', + insertUnorderedList: 'Ievietot nenumurētu sarakstu', + insertOrderedList: 'Ievietot numurētu sarakstu', + outdent: 'Samazināt/noņemt atkāpi paragrāfam', + indent: 'Uzlikt atkāpi paragrāfam', + formatPara: 'Mainīt bloka tipu uz (p) Paragrāfu', + formatH1: 'Mainīt bloka tipu uz virsrakstu H1', + formatH2: 'Mainīt bloka tipu uz virsrakstu H2', + formatH3: 'Mainīt bloka tipu uz virsrakstu H3', + formatH4: 'Mainīt bloka tipu uz virsrakstu H4', + formatH5: 'Mainīt bloka tipu uz virsrakstu H5', + formatH6: 'Mainīt bloka tipu uz virsrakstu H6', + insertHorizontalRule: 'Ievietot horizontālu līniju', + 'linkDialog.show': 'Parādīt saites logu' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-nb-NO.js b/assets/lib/summernote/lang/summernote-nb-NO.js new file mode 100644 index 0000000..c4c304d --- /dev/null +++ b/assets/lib/summernote/lang/summernote-nb-NO.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'nb-NO': { + font: { + bold: 'Fet', + italic: 'Kursiv', + underline: 'Understrek', + clear: 'Fjern formatering', + height: 'Linjehøyde', + name: 'Skrifttype', + strikethrough: 'Gjennomstrek', + size: 'Skriftstørrelse' + }, + image: { + image: 'Bilde', + insert: 'Sett inn bilde', + resizeFull: 'Sett full størrelse', + resizeHalf: 'Sett halv størrelse', + resizeQuarter: 'Sett kvart størrelse', + floatLeft: 'Flyt til venstre', + floatRight: 'Flyt til høyre', + floatNone: 'Fjern flyt', + dragImageHere: 'Dra et bilde hit', + selectFromFiles: 'Velg fra filer', + url: 'Bilde-URL', + remove: 'Fjern bilde' + }, + video: { + video: 'Video', + videoLink: 'Videolenke', + insert: 'Sett inn video', + url: 'Video-URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)' + }, + link: { + link: 'Lenke', + insert: 'Sett inn lenke', + unlink: 'Fjern lenke', + edit: 'Rediger', + textToDisplay: 'Visningstekst', + url: 'Til hvilken URL skal denne lenken peke?', + openInNewWindow: 'Åpne i nytt vindu' + }, + table: { + table: 'Tabell' + }, + hr: { + insert: 'Sett inn horisontal linje' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Sitat', + pre: 'Kode', + h1: 'Overskrift 1', + h2: 'Overskrift 2', + h3: 'Overskrift 3', + h4: 'Overskrift 4', + h5: 'Overskrift 5', + h6: 'Overskrift 6' + }, + lists: { + unordered: 'Punktliste', + ordered: 'Nummerert liste' + }, + options: { + help: 'Hjelp', + fullscreen: 'Fullskjerm', + codeview: 'HTML-visning' + }, + paragraph: { + paragraph: 'Avsnitt', + outdent: 'Tilbakerykk', + indent: 'Innrykk', + left: 'Venstrejustert', + center: 'Midtstilt', + right: 'Høyrejustert', + justify: 'Blokkjustert' + }, + color: { + recent: 'Nylig valgt farge', + more: 'Flere farger', + background: 'Bakgrunnsfarge', + foreground: 'Skriftfarge', + transparent: 'Gjennomsiktig', + setTransparent: 'Sett gjennomsiktig', + reset: 'Nullstill', + resetToDefault: 'Nullstill til standard' + }, + shortcut: { + shortcuts: 'Hurtigtaster', + close: 'Lukk', + textFormatting: 'Tekstformatering', + action: 'Handling', + paragraphFormatting: 'Avsnittsformatering', + documentStyle: 'Dokumentstil' + }, + history: { + undo: 'Angre', + redo: 'Gjør om' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-nl-NL.js b/assets/lib/summernote/lang/summernote-nl-NL.js new file mode 100644 index 0000000..31f9d37 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-nl-NL.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'nl-NL': { + font: { + bold: 'Vet', + italic: 'Cursief', + underline: 'Onderstrepen', + clear: 'Stijl verwijderen', + height: 'Regelhoogte', + name: 'Lettertype', + strikethrough: 'Doorhalen', + size: 'Tekstgrootte' + }, + image: { + image: 'Afbeelding', + insert: 'Afbeelding invoegen', + resizeFull: 'Volledige breedte', + resizeHalf: 'Halve breedte', + resizeQuarter: 'Kwart breedte', + floatLeft: 'Links uitlijnen', + floatRight: 'Rechts uitlijnen', + floatNone: 'Geen uitlijning', + dragImageHere: 'Sleep hier een afbeelding naar toe', + selectFromFiles: 'Selecteer een bestand', + url: 'URL van de afbeelding', + remove: 'Verwijder afbeelding' + }, + video: { + video: 'Video', + videoLink: 'Video link', + insert: 'Video invoegen', + url: 'URL van de video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)' + }, + link: { + link: 'Link', + insert: 'Link invoegen', + unlink: 'Link verwijderen', + edit: 'Wijzigen', + textToDisplay: 'Tekst van link', + url: 'Naar welke URL moet deze link verwijzen?', + openInNewWindow: 'Open in nieuw venster' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Horizontale lijn invoegen' + }, + style: { + style: 'Stijl', + p: 'Normaal', + blockquote: 'Quote', + pre: 'Code', + h1: 'Kop 1', + h2: 'Kop 2', + h3: 'Kop 3', + h4: 'Kop 4', + h5: 'Kop 5', + h6: 'Kop 6' + }, + lists: { + unordered: 'Ongeordende lijst', + ordered: 'Geordende lijst' + }, + options: { + help: 'Help', + fullscreen: 'Volledig scherm', + codeview: 'Bekijk Code' + }, + paragraph: { + paragraph: 'Paragraaf', + outdent: 'Inspringen verkleinen', + indent: 'Inspringen vergroten', + left: 'Links uitlijnen', + center: 'Centreren', + right: 'Rechts uitlijnen', + justify: 'Uitvullen' + }, + color: { + recent: 'Recente kleur', + more: 'Meer kleuren', + background: 'Achtergrond kleur', + foreground: 'Tekst kleur', + transparent: 'Transparant', + setTransparent: 'Transparant', + reset: 'Standaard', + resetToDefault: 'Standaard kleur' + }, + shortcut: { + shortcuts: 'Toetsencombinaties', + close: 'sluiten', + textFormatting: 'Tekststijlen', + action: 'Acties', + paragraphFormatting: 'Paragraafstijlen', + documentStyle: 'Documentstijlen' + }, + history: { + undo: 'Ongedaan maken', + redo: 'Opnieuw doorvoeren' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-pl-PL.js b/assets/lib/summernote/lang/summernote-pl-PL.js new file mode 100644 index 0000000..86068eb --- /dev/null +++ b/assets/lib/summernote/lang/summernote-pl-PL.js @@ -0,0 +1,112 @@ +(function ($) { + $.extend($.summernote.lang, { + 'pl-PL': { + font: { + bold: 'Pogrubienie', + italic: 'Pochylenie', + underline: 'Podkreślenie', + clear: 'Usuń formatowanie', + height: 'Interlinia', + name: 'Czcionka', + strikethrough: 'Przekreślenie', + size: 'Rozmiar' + }, + image: { + image: 'Grafika', + insert: 'Wstaw grafikę', + resizeFull: 'Zmień rozmiar na 100%', + resizeHalf: 'Zmień rozmiar na 50%', + resizeQuarter: 'Zmień rozmiar na 25%', + floatLeft: 'Po lewej', + floatRight: 'Po prawej', + floatNone: 'Równo z tekstem', + shapeRounded: 'Kształt: zaokrąglone', + shapeCircle: 'Kształt: okrąg', + shapeThumbnail: 'Kształt: miniatura', + shapeNone: 'Kształt: brak', + dragImageHere: 'Przeciągnij grafikę lub tekst tutaj', + dropImage: 'Przeciągnij grafikę lub tekst', + selectFromFiles: 'Wybierz z dysku', + maximumFileSize: 'Limit wielkości pliku', + maximumFileSizeError: 'Przekroczono limit wielkości pliku.', + url: 'Adres URL grafiki', + remove: 'Usuń grafikę' + }, + video: { + video: 'Wideo', + videoLink: 'Adres wideo', + insert: 'Wstaw wideo', + url: 'Adres wideo', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)' + }, + link: { + link: 'Odnośnik', + insert: 'Wstaw odnośnik', + unlink: 'Usuń odnośnik', + edit: 'Edytuj', + textToDisplay: 'Tekst do wyświetlenia', + url: 'Na jaki adres URL powinien przenosić ten odnośnik?', + openInNewWindow: 'Otwórz w nowym oknie' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Wstaw poziomą linię' + }, + style: { + style: 'Style', + p: 'pny', + blockquote: 'Cytat', + pre: 'Kod', + h1: 'Nagłówek 1', + h2: 'Nagłówek 2', + h3: 'Nagłówek 3', + h4: 'Nagłówek 4', + h5: 'Nagłówek 5', + h6: 'Nagłówek 6' + }, + lists: { + unordered: 'Lista wypunktowana', + ordered: 'Lista numerowana' + }, + options: { + help: 'Pomoc', + fullscreen: 'Pełny ekran', + codeview: 'Źródło' + }, + paragraph: { + paragraph: 'Akapit', + outdent: 'Zmniejsz wcięcie', + indent: 'Zwiększ wcięcie', + left: 'Wyrównaj do lewej', + center: 'Wyrównaj do środka', + right: 'Wyrównaj do prawej', + justify: 'Wyrównaj do lewej i prawej' + }, + color: { + recent: 'Ostani kolor', + more: 'Więcej kolorów', + background: 'Tło', + foreground: 'Czcionka', + transparent: 'Przeźroczysty', + setTransparent: 'Przeźroczyste', + reset: 'Reset', + resetToDefault: 'Domyślne' + }, + shortcut: { + shortcuts: 'Skróty klawiaturowe', + close: 'Zamknij', + textFormatting: 'Formatowanie tekstu', + action: 'Akcja', + paragraphFormatting: 'Formatowanie akapitu', + documentStyle: 'Styl dokumentu', + extraKeys: 'Dodatkowe klawisze' + }, + history: { + undo: 'Cofnij', + redo: 'Ponów' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-pt-BR.js b/assets/lib/summernote/lang/summernote-pt-BR.js new file mode 100644 index 0000000..7c58a48 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-pt-BR.js @@ -0,0 +1,132 @@ +(function ($) { + $.extend($.summernote.lang, { + 'pt-BR': { + font: { + bold: 'Negrito', + italic: 'Itálico', + underline: 'Sublinhado', + clear: 'Remover estilo da fonte', + height: 'Altura da linha', + name: 'Fonte', + strikethrough: 'Riscado', + size: 'Tamanho da fonte' + }, + image: { + image: 'Imagem', + insert: 'Inserir imagem', + resizeFull: 'Redimensionar Completamente', + resizeHalf: 'Redimensionar pela Metade', + resizeQuarter: 'Redimensionar um Quarto', + floatLeft: 'Flutuar para Esquerda', + floatRight: 'Flutuar para Direira', + floatNone: 'Não Flutuar', + dragImageHere: 'Arraste uma imagem para cá', + selectFromFiles: 'Selecione a partir dos arquivos', + url: 'URL da imagem' + }, + video: { + video: 'Vídeo', + videoLink: 'Link para vídeo', + insert: 'Inserir vídeo', + url: 'URL do vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'Link', + insert: 'Inserir link', + unlink: 'Remover link', + edit: 'Editar', + textToDisplay: 'Texto para exibir', + url: 'Para qual URL esse link leva?', + openInNewWindow: 'Abrir em uma nova janela' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Inserir linha horizontal' + }, + style: { + style: 'Estilo', + normal: 'Normal', + blockquote: 'Citação', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista com marcadores', + ordered: 'Lista numerada' + }, + options: { + help: 'Ajuda', + fullscreen: 'Tela cheia', + codeview: 'Ver código-fonte' + }, + paragraph: { + paragraph: 'Parágrafo', + outdent: 'Menor tabulação', + indent: 'Maior tabulação', + left: 'Alinhar à esquerda', + center: 'Alinhar ao centro', + right: 'Alinha à direita', + justify: 'Justificado' + }, + color: { + recent: 'Cor recente', + more: 'Mais cores', + background: 'Fundo', + foreground: 'Fonte', + transparent: 'Transparente', + setTransparent: 'Fundo transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar padrão' + }, + shortcut: { + shortcuts: 'Atalhos do teclado', + close: 'Fechar', + textFormatting: 'Formatação de texto', + action: 'Ação', + paragraphFormatting: 'Formatação de parágrafo', + documentStyle: 'Estilo de documento' + }, + history: { + undo: 'Desfazer', + redo: 'Refazer' + }, + help: { + 'insertParagraph': 'Inserir Parágrafo', + 'undo': 'Desfazer o último comando', + 'redo': 'Refazer o último comando', + 'tab': 'Tab', + 'untab': 'Desfazer tab', + 'bold': 'Colocar em negrito', + 'italic': 'Colocar em itálico', + 'underline': 'Sublinhado', + 'strikethrough': 'Tachado', + 'removeFormat': 'Remover estilo', + 'justifyLeft': 'Alinhar à esquerda', + 'justifyCenter': 'Centralizar', + 'justifyRight': 'Alinhar à esquerda', + 'justifyFull': 'Justificar', + 'insertUnorderedList': 'Lista não ordenada', + 'insertOrderedList': 'Lista ordenada', + 'outdent': 'Recuar parágrafo atual', + 'indent': 'Avançar parágrafo atual', + 'formatPara': 'Alterar formato do bloco para parágrafo(tag P)', + 'formatH1': 'Alterar formato do bloco para H1', + 'formatH2': 'Alterar formato do bloco para H2', + 'formatH3': 'Alterar formato do bloco para H3', + 'formatH4': 'Alterar formato do bloco para H4', + 'formatH5': 'Alterar formato do bloco para H5', + 'formatH6': 'Alterar formato do bloco para H6', + 'insertHorizontalRule': 'Inserir régua horizontal', + 'linkDialog.show': 'Inserir um Hiperlink' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-pt-PT.js b/assets/lib/summernote/lang/summernote-pt-PT.js new file mode 100644 index 0000000..96e3104 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-pt-PT.js @@ -0,0 +1,103 @@ +(function ($) { + $.extend($.summernote.lang, { + 'pt-PT': { + font: { + bold: 'Negrito', + italic: 'Itálico', + underline: 'Sublinhado', + clear: 'Remover estilo da fonte', + height: 'Altura da linha', + name: 'Fonte', + strikethrough: 'Riscado', + size: 'Tamanho da fonte' + }, + image: { + image: 'Imagem', + insert: 'Inserir imagem', + resizeFull: 'Redimensionar Completo', + resizeHalf: 'Redimensionar Metade', + resizeQuarter: 'Redimensionar Um Quarto', + floatLeft: 'Float Esquerda', + floatRight: 'Float Direita', + floatNone: 'Sem Float', + dragImageHere: 'Arraste uma imagem para aqui', + selectFromFiles: 'Selecione a partir dos arquivos', + url: 'Endereço da imagem' + }, + video: { + video: 'Vídeo', + videoLink: 'Link para vídeo', + insert: 'Inserir vídeo', + url: 'URL do vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'Link', + insert: 'Inserir ligação', + unlink: 'Remover ligação', + edit: 'Editar', + textToDisplay: 'Texto para exibir', + url: 'Que endereço esta licação leva?', + openInNewWindow: 'Abrir numa nova janela' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Inserir linha horizontal' + }, + style: { + style: 'Estilo', + p: 'p', + blockquote: 'Citação', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista com marcadores', + ordered: 'Lista numerada' + }, + options: { + help: 'Ajuda', + fullscreen: 'Janela Completa', + codeview: 'Ver código-fonte' + }, + paragraph: { + paragraph: 'Parágrafo', + outdent: 'Menor tabulação', + indent: 'Maior tabulação', + left: 'Alinhar à esquerda', + center: 'Alinhar ao centro', + right: 'Alinha à direita', + justify: 'Justificado' + }, + color: { + recent: 'Cor recente', + more: 'Mais cores', + background: 'Fundo', + foreground: 'Fonte', + transparent: 'Transparente', + setTransparent: 'Fundo transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar padrão' + }, + shortcut: { + shortcuts: 'Atalhos do teclado', + close: 'Fechar', + textFormatting: 'Formatação de texto', + action: 'Ação', + paragraphFormatting: 'Formatação de parágrafo', + documentStyle: 'Estilo de documento' + }, + history: { + undo: 'Desfazer', + redo: 'Refazer' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-ro-RO.js b/assets/lib/summernote/lang/summernote-ro-RO.js new file mode 100644 index 0000000..70df177 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-ro-RO.js @@ -0,0 +1,102 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ro-RO': { + font: { + bold: 'Îngroșat', + italic: 'Înclinat', + underline: 'Subliniat', + clear: 'Înlătură formatare font', + height: 'Înălțime rând', + strikethrough: 'Tăiat', + size: 'Dimensiune font' + }, + image: { + image: 'Imagine', + insert: 'Inserează imagine', + resizeFull: 'Redimensionează complet', + resizeHalf: 'Redimensionează 1/2', + resizeQuarter: 'Redimensionează 1/4', + floatLeft: 'Aliniere la stânga', + floatRight: 'Aliniere la dreapta', + floatNone: 'Fară aliniere', + dragImageHere: 'Trage o imagine aici', + selectFromFiles: 'Alege din fişiere', + url: 'URL imagine' + }, + video: { + video: 'Video', + videoLink: 'Link video', + insert: 'Inserează video', + url: 'URL video?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)' + }, + link: { + link: 'Link', + insert: 'Inserează link', + unlink: 'Înlătură link', + edit: 'Editează', + textToDisplay: 'Text ce va fi afişat', + url: 'Deschidere în fereastra nouă?' + }, + table: { + table: 'Tabel' + }, + hr: { + insert: 'Inserează o linie orizontală' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Citat', + pre: 'Preformatat', + h1: 'Titlu 1', + h2: 'Titlu 2', + h3: 'Titlu 3', + h4: 'Titlu 4', + h5: 'Titlu 5', + h6: 'Titlu 6' + }, + lists: { + unordered: 'Listă neordonată', + ordered: 'Listă ordonată' + }, + options: { + help: 'Ajutor', + fullscreen: 'Măreşte', + codeview: 'Sursă' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Creşte identarea', + indent: 'Scade identarea', + left: 'Aliniere la stânga', + center: 'Aliniere centrală', + right: 'Aliniere la dreapta', + justify: 'Aliniere în bloc' + }, + color: { + recent: 'Culoare recentă', + more: 'Mai multe culori', + background: 'Culoarea fundalului', + foreground: 'Culoarea textului', + transparent: 'Transparent', + setTransparent: 'Setează transparent', + reset: 'Resetează', + resetToDefault: 'Revino la iniţial' + }, + shortcut: { + shortcuts: 'Scurtături tastatură', + close: 'Închide', + textFormatting: 'Formatare text', + action: 'Acţiuni', + paragraphFormatting: 'Formatare paragraf', + documentStyle: 'Stil paragraf' + }, + history: { + undo: 'Starea anterioară', + redo: 'Starea ulterioară' + } + + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-ru-RU.js b/assets/lib/summernote/lang/summernote-ru-RU.js new file mode 100644 index 0000000..f22737f --- /dev/null +++ b/assets/lib/summernote/lang/summernote-ru-RU.js @@ -0,0 +1,112 @@ +(function ($) { + $.extend($.summernote.lang, { + 'ru-RU': { + font: { + bold: 'Полужирный', + italic: 'Курсив', + underline: 'Подчёркнутый', + clear: 'Убрать стили шрифта', + height: 'Высота линии', + name: 'Шрифт', + strikethrough: 'Зачёркнутый', + subscript: 'Нижний индекс', + superscript: 'Верхний индекс', + size: 'Размер шрифта' + }, + image: { + image: 'Картинка', + insert: 'Вставить картинку', + resizeFull: 'Восстановить размер', + resizeHalf: 'Уменьшить до 50%', + resizeQuarter: 'Уменьшить до 25%', + floatLeft: 'Расположить слева', + floatRight: 'Расположить справа', + floatNone: 'Расположение по-умолчанию', + shapeRounded: 'Форма: Закругленная', + shapeCircle: 'Форма: Круг', + shapeThumbnail: 'Форма: Миниатюра', + shapeNone: 'Форма: Нет', + dragImageHere: 'Перетащите сюда картинку', + dropImage: 'Перетащите картинку', + selectFromFiles: 'Выбрать из файлов', + url: 'URL картинки', + remove: 'Удалить картинку' + }, + video: { + video: 'Видео', + videoLink: 'Ссылка на видео', + insert: 'Вставить видео', + url: 'URL видео', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)' + }, + link: { + link: 'Ссылка', + insert: 'Вставить ссылку', + unlink: 'Убрать ссылку', + edit: 'Редактировать', + textToDisplay: 'Отображаемый текст', + url: 'URL для перехода', + openInNewWindow: 'Открывать в новом окне' + }, + table: { + table: 'Таблица' + }, + hr: { + insert: 'Вставить горизонтальную линию' + }, + style: { + style: 'Стиль', + p: 'Нормальный', + blockquote: 'Цитата', + pre: 'Код', + h1: 'Заголовок 1', + h2: 'Заголовок 2', + h3: 'Заголовок 3', + h4: 'Заголовок 4', + h5: 'Заголовок 5', + h6: 'Заголовок 6' + }, + lists: { + unordered: 'Маркированный список', + ordered: 'Нумерованный список' + }, + options: { + help: 'Помощь', + fullscreen: 'На весь экран', + codeview: 'Исходный код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Уменьшить отступ', + indent: 'Увеличить отступ', + left: 'Выровнять по левому краю', + center: 'Выровнять по центру', + right: 'Выровнять по правому краю', + justify: 'Растянуть по ширине' + }, + color: { + recent: 'Последний цвет', + more: 'Еще цвета', + background: 'Цвет фона', + foreground: 'Цвет шрифта', + transparent: 'Прозрачный', + setTransparent: 'Сделать прозрачным', + reset: 'Сброс', + resetToDefault: 'Восстановить умолчания' + }, + shortcut: { + shortcuts: 'Сочетания клавиш', + close: 'Закрыть', + textFormatting: 'Форматирование текста', + action: 'Действие', + paragraphFormatting: 'Форматирование параграфа', + documentStyle: 'Стиль документа', + extraKeys: 'Дополнительные комбинации' + }, + history: { + undo: 'Отменить', + redo: 'Повтор' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-sk-SK.js b/assets/lib/summernote/lang/summernote-sk-SK.js new file mode 100644 index 0000000..fa13ce0 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-sk-SK.js @@ -0,0 +1,102 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sk-SK': { + font: { + bold: 'Tučné', + italic: 'Kurzíva', + underline: 'Podčiarknutie', + clear: 'Odstrániť štýl písma', + height: 'Výška riadku', + strikethrough: 'Prečiarknuté', + size: 'Veľkosť písma' + }, + image: { + image: 'Obrázok', + insert: 'Vložiť obrázok', + resizeFull: 'Pôvodná veľkosť', + resizeHalf: 'Polovičná veľkosť', + resizeQuarter: 'Štvrtinová veľkosť', + floatLeft: 'Umiestniť doľava', + floatRight: 'Umiestniť doprava', + floatNone: 'Bez zarovnania', + dragImageHere: 'Pretiahnuť sem obrázok', + selectFromFiles: 'Vybrať súbor', + url: 'URL obrázku' + }, + video: { + video: 'Video', + videoLink: 'Odkaz videa', + insert: 'Vložiť video', + url: 'URL videa?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)' + }, + link: { + link: 'Odkaz', + insert: 'Vytvoriť odkaz', + unlink: 'Zrušiť odkaz', + edit: 'Upraviť', + textToDisplay: 'Zobrazovaný text', + url: 'Na akú URL adresu má tento odkaz viesť?', + openInNewWindow: 'Otvoriť v novom okne' + }, + table: { + table: 'Tabuľka' + }, + hr: { + insert: 'Vložit vodorovnú čiaru' + }, + style: { + style: 'Štýl', + p: 'Normálny', + blockquote: 'Citácia', + pre: 'Kód', + h1: 'Nadpis 1', + h2: 'Nadpis 2', + h3: 'Nadpis 3', + h4: 'Nadpis 4', + h5: 'Nadpis 5', + h6: 'Nadpis 6' + }, + lists: { + unordered: 'Odrážkový zoznam', + ordered: 'Číselný zoznam' + }, + options: { + help: 'Pomoc', + fullscreen: 'Celá obrazovka', + codeview: 'HTML kód' + }, + paragraph: { + paragraph: 'Odsek', + outdent: 'Zväčšiť odsadenie', + indent: 'Zmenšiť odsadenie', + left: 'Zarovnať doľava', + center: 'Zarovnať na stred', + right: 'Zarovnať doprava', + justify: 'Zarovnať obojstranne' + }, + color: { + recent: 'Aktuálna farba', + more: 'Dalšie farby', + background: 'Farba pozadia', + foreground: 'Farba písma', + transparent: 'Priehľadnosť', + setTransparent: 'Nastaviť priehľadnosť', + reset: 'Obnoviť', + resetToDefault: 'Obnoviť prednastavené' + }, + shortcut: { + shortcuts: 'Klávesové skratky', + close: 'Zavrieť', + textFormatting: 'Formátovanie textu', + action: 'Akcia', + paragraphFormatting: 'Formátovanie odseku', + documentStyle: 'Štýl dokumentu' + }, + history: { + undo: 'Krok vzad', + redo: 'Krok dopredu' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-sl-SI.js b/assets/lib/summernote/lang/summernote-sl-SI.js new file mode 100644 index 0000000..330c212 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-sl-SI.js @@ -0,0 +1,106 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sl-SI': { + font: { + bold: 'Krepko', + italic: 'Ležeče', + underline: 'Podčrtano', + clear: 'Počisti oblikovanje izbire', + height: 'Razmik med vrsticami', + name: 'Pisava', + strikethrough: 'Prečrtano', + subscript: 'Podpisano', + superscript: 'Nadpisano', + size: 'Velikost pisave' + }, + image: { + image: 'Slika', + insert: 'Vstavi sliko', + resizeFull: 'Razširi na polno velikost', + resizeHalf: 'Razširi na polovico velikosti', + resizeQuarter: 'Razširi na četrtino velikosti', + floatLeft: 'Leva poravnava', + floatRight: 'Desna poravnava', + floatNone: 'Brez poravnave', + dragImageHere: 'Sem povlecite sliko', + selectFromFiles: 'Izberi sliko za nalaganje', + url: 'URL naslov slike', + remove: 'Odstrani sliko' + }, + video: { + video: 'Video', + videoLink: 'Video povezava', + insert: 'Vstavi video', + url: 'Povezava do videa', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)' + }, + link: { + link: 'Povezava', + insert: 'Vstavi povezavo', + unlink: 'Odstrani povezavo', + edit: 'Uredi', + textToDisplay: 'Prikazano besedilo', + url: 'Povezava', + openInNewWindow: 'Odpri v novem oknu' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Vstavi horizontalno črto' + }, + style: { + style: 'Slogi', + p: 'Navadno besedilo', + blockquote: 'Citat', + pre: 'Koda', + h1: 'Naslov 1', + h2: 'Naslov 2', + h3: 'Naslov 3', + h4: 'Naslov 4', + h5: 'Naslov 5', + h6: 'Naslov 6' + }, + lists: { + unordered: 'Označen seznam', + ordered: 'Oštevilčen seznam' + }, + options: { + help: 'Pomoč', + fullscreen: 'Celozaslonski način', + codeview: 'Pregled HTML kode' + }, + paragraph: { + paragraph: 'Slogi odstavka', + outdent: 'Zmanjšaj odmik', + indent: 'Povečaj odmik', + left: 'Leva poravnava', + center: 'Desna poravnava', + right: 'Sredinska poravnava', + justify: 'Obojestranska poravnava' + }, + color: { + recent: 'Uporabi zadnjo barvo', + more: 'Več barv', + background: 'Barva ozadja', + foreground: 'Barva besedila', + transparent: 'Brez barve', + setTransparent: 'Brez barve', + reset: 'Ponastavi', + resetToDefault: 'Ponastavi na privzeto' + }, + shortcut: { + shortcuts: 'Bljižnice', + close: 'Zapri', + textFormatting: 'Oblikovanje besedila', + action: 'Dejanja', + paragraphFormatting: 'Oblikovanje odstavka', + documentStyle: 'Oblikovanje naslova' + }, + history: { + undo: 'Razveljavi', + redo: 'Uveljavi' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-sr-RS-Latin.js b/assets/lib/summernote/lang/summernote-sr-RS-Latin.js new file mode 100644 index 0000000..03ca108 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-sr-RS-Latin.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sr-RS': { + font: { + bold: 'Podebljano', + italic: 'Kurziv', + underline: 'Podvučeno', + clear: 'Ukloni stilove fonta', + height: 'Visina linije', + strikethrough: 'Precrtano', + size: 'Veličina fonta' + }, + image: { + image: 'Slika', + insert: 'Umetni sliku', + resizeFull: 'Puna veličina', + resizeHalf: 'Umanji na 50%', + resizeQuarter: 'Umanji na 25%', + floatLeft: 'Uz levu ivicu', + floatRight: 'Uz desnu ivicu', + floatNone: 'Bez ravnanja', + dragImageHere: 'Prevuci sliku ovde', + selectFromFiles: 'Izaberi iz datoteke', + url: 'Adresa slike', + remove: 'Ukloni sliku' + }, + video: { + video: 'Video', + videoLink: 'Veza ka videu', + insert: 'Umetni video', + url: 'URL video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)' + }, + link: { + link: 'Veza', + insert: 'Umetni vezu', + unlink: 'Ukloni vezu', + edit: 'Uredi', + textToDisplay: 'Tekst za prikaz', + url: 'Internet adresa', + openInNewWindow: 'Otvori u novom prozoru' + }, + table: { + table: 'Tabela' + }, + hr: { + insert: 'Umetni horizontalnu liniju' + }, + style: { + style: 'Stil', + p: 'pni', + blockquote: 'Citat', + pre: 'Kod', + h1: 'Zaglavlje 1', + h2: 'Zaglavlje 2', + h3: 'Zaglavlje 3', + h4: 'Zaglavlje 4', + h5: 'Zaglavlje 5', + h6: 'Zaglavlje 6' + }, + lists: { + unordered: 'Obična lista', + ordered: 'Numerisana lista' + }, + options: { + help: 'Pomoć', + fullscreen: 'Preko celog ekrana', + codeview: 'Izvorni kod' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Smanji uvlačenje', + indent: 'Povečaj uvlačenje', + left: 'Poravnaj u levo', + center: 'Centrirano', + right: 'Poravnaj u desno', + justify: 'Poravnaj obostrano' + }, + color: { + recent: 'Poslednja boja', + more: 'Više boja', + background: 'Boja pozadine', + foreground: 'Boja teksta', + transparent: 'Providna', + setTransparent: 'Providna', + reset: 'Opoziv', + resetToDefault: 'Podrazumevana' + }, + shortcut: { + shortcuts: 'Prečice sa tastature', + close: 'Zatvori', + textFormatting: 'Formatiranje teksta', + action: 'Akcija', + paragraphFormatting: 'Formatiranje paragrafa', + documentStyle: 'Stil dokumenta', + extraKeys: 'Dodatne kombinacije' + }, + history: { + undo: 'Poništi', + redo: 'Ponovi' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-sr-RS.js b/assets/lib/summernote/lang/summernote-sr-RS.js new file mode 100644 index 0000000..d625e5b --- /dev/null +++ b/assets/lib/summernote/lang/summernote-sr-RS.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sr-RS': { + font: { + bold: 'Подебљано', + italic: 'Курзив', + underline: 'Подвучено', + clear: 'Уклони стилове фонта', + height: 'Висина линије', + strikethrough: 'Прецртано', + size: 'Величина фонта' + }, + image: { + image: 'Слика', + insert: 'Уметни слику', + resizeFull: 'Пуна величина', + resizeHalf: 'Умањи на 50%', + resizeQuarter: 'Умањи на 25%', + floatLeft: 'Уз леву ивицу', + floatRight: 'Уз десну ивицу', + floatNone: 'Без равнања', + dragImageHere: 'Превуци слику овде', + selectFromFiles: 'Изабери из датотеке', + url: 'Адреса слике', + remove: 'Уклони слику' + }, + video: { + video: 'Видео', + videoLink: 'Веза ка видеу', + insert: 'Уметни видео', + url: 'URL видео', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)' + }, + link: { + link: 'Веза', + insert: 'Уметни везу', + unlink: 'Уклони везу', + edit: 'Уреди', + textToDisplay: 'Текст за приказ', + url: 'Интернет адреса', + openInNewWindow: 'Отвори у новом прозору' + }, + table: { + table: 'Табела' + }, + hr: { + insert: 'Уметни хоризонталну линију' + }, + style: { + style: 'Стил', + p: 'Нормални', + blockquote: 'Цитат', + pre: 'Код', + h1: 'Заглавље 1', + h2: 'Заглавље 2', + h3: 'Заглавље 3', + h4: 'Заглавље 4', + h5: 'Заглавље 5', + h6: 'Заглавље 6' + }, + lists: { + unordered: 'Обична листа', + ordered: 'Нумерисана листа' + }, + options: { + help: 'Помоћ', + fullscreen: 'Преко целог екрана', + codeview: 'Изворни код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Смањи увлачење', + indent: 'Повечај увлачење', + left: 'Поравнај у лево', + center: 'Центрирано', + right: 'Поравнај у десно', + justify: 'Поравнај обострано' + }, + color: { + recent: 'Последња боја', + more: 'Више боја', + background: 'Боја позадине', + foreground: 'Боја текста', + transparent: 'Провидна', + setTransparent: 'Провидна', + reset: 'Опозив', + resetToDefault: 'Подразумевана' + }, + shortcut: { + shortcuts: 'Пречице са тастатуре', + close: 'Затвори', + textFormatting: 'Форматирање текста', + action: 'Акција', + paragraphFormatting: 'Форматирање параграфа', + documentStyle: 'Стил документа', + extraKeys: 'Додатне комбинације' + }, + history: { + undo: 'Поништи', + redo: 'Понови' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-sv-SE.js b/assets/lib/summernote/lang/summernote-sv-SE.js new file mode 100644 index 0000000..1fc63e6 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-sv-SE.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'sv-SE': { + font: { + bold: 'Fet', + italic: 'Kursiv', + underline: 'Understruken', + clear: 'Radera formatering', + height: 'Radavstånd', + name: 'Teckensnitt', + strikethrough: 'Genomstruken', + size: 'Teckenstorlek' + }, + image: { + image: 'Bild', + insert: 'Infoga bild', + resizeFull: 'Full storlek', + resizeHalf: 'Halv storlek', + resizeQuarter: 'En fjärdedel i storlek', + floatLeft: 'Vänsterjusterad', + floatRight: 'Högerjusterad', + floatNone: 'Ingen justering', + dragImageHere: 'Dra en bild hit', + selectFromFiles: 'Välj från filer', + url: 'Länk till bild', + remove: 'Ta bort bild' + }, + video: { + video: 'Filmklipp', + videoLink: 'Länk till filmklipp', + insert: 'Infoga filmklipp', + url: 'Länk till filmklipp', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)' + }, + link: { + link: 'Länk', + insert: 'Infoga länk', + unlink: 'Ta bort länk', + edit: 'Redigera', + textToDisplay: 'Visningstext', + url: 'Till vilken URL ska denna länk peka?', + openInNewWindow: 'Öppna i ett nytt fönster' + }, + table: { + table: 'Tabell' + }, + hr: { + insert: 'Infoga horisontell linje' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Citat', + pre: 'Kod', + h1: 'Rubrik 1', + h2: 'Rubrik 2', + h3: 'Rubrik 3', + h4: 'Rubrik 4', + h5: 'Rubrik 5', + h6: 'Rubrik 6' + }, + lists: { + unordered: 'Punktlista', + ordered: 'Numrerad lista' + }, + options: { + help: 'Hjälp', + fullscreen: 'Fullskärm', + codeview: 'HTML-visning' + }, + paragraph: { + paragraph: 'Justera text', + outdent: 'Minska indrag', + indent: 'Öka indrag', + left: 'Vänsterjusterad', + center: 'Centrerad', + right: 'Högerjusterad', + justify: 'Justera text' + }, + color: { + recent: 'Senast använda färg', + more: 'Fler färger', + background: 'Bakgrundsfärg', + foreground: 'Teckenfärg', + transparent: 'Genomskinlig', + setTransparent: 'Gör genomskinlig', + reset: 'Nollställ', + resetToDefault: 'Återställ till standard' + }, + shortcut: { + shortcuts: 'Kortkommandon', + close: 'Stäng', + textFormatting: 'Textformatering', + action: 'Funktion', + paragraphFormatting: 'Avsnittsformatering', + documentStyle: 'Dokumentstil' + }, + history: { + undo: 'Ångra', + redo: 'Gör om' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-th-TH.js b/assets/lib/summernote/lang/summernote-th-TH.js new file mode 100644 index 0000000..47ae58c --- /dev/null +++ b/assets/lib/summernote/lang/summernote-th-TH.js @@ -0,0 +1,106 @@ +(function ($) { + $.extend($.summernote.lang, { + 'th-TH': { + font: { + bold: 'ตัวหนา', + italic: 'ตัวเอียง', + underline: 'ขีดเส้นใต้', + clear: 'ล้างรูปแบบตัวอักษร', + height: 'ความสูงบรรทัด', + name: 'แบบตัวอักษร', + strikethrough: 'ขีดฆ่า', + subscript: 'ตัวห้อย', + superscript: 'ตัวยก', + size: 'ขนาดตัวอักษร' + }, + image: { + image: 'รูปภาพ', + insert: 'แทรกรูปภาพ', + resizeFull: 'ปรับขนาดเท่าจริง', + resizeHalf: 'ปรับขนาดลง 50%', + resizeQuarter: 'ปรับขนาดลง 25%', + floatLeft: 'ชิดซ้าย', + floatRight: 'ชิดขวา', + floatNone: 'ไม่จัดตำแหน่ง', + dragImageHere: 'ลากรูปภาพที่ต้องการไว้ที่นี่', + selectFromFiles: 'เลือกไฟล์รูปภาพ', + url: 'ที่อยู่ URL ของรูปภาพ', + remove: 'ลบรูปภาพ' + }, + video: { + video: 'วีดีโอ', + videoLink: 'ลิงก์ของวีดีโอ', + insert: 'แทรกวีดีโอ', + url: 'ที่อยู่ URL ของวีดีโอ?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)' + }, + link: { + link: 'ตัวเชื่อมโยง', + insert: 'แทรกตัวเชื่อมโยง', + unlink: 'ยกเลิกตัวเชื่อมโยง', + edit: 'แก้ไข', + textToDisplay: 'ข้อความที่ให้แสดง', + url: 'ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?', + openInNewWindow: 'เปิดในหน้าต่างใหม่' + }, + table: { + table: 'ตาราง' + }, + hr: { + insert: 'แทรกเส้นคั่น' + }, + style: { + style: 'รูปแบบ', + p: 'ปกติ', + blockquote: 'ข้อความ', + pre: 'โค้ด', + h1: 'หัวข้อ 1', + h2: 'หัวข้อ 2', + h3: 'หัวข้อ 3', + h4: 'หัวข้อ 4', + h5: 'หัวข้อ 5', + h6: 'หัวข้อ 6' + }, + lists: { + unordered: 'รายการแบบไม่มีลำดับ', + ordered: 'รายการแบบมีลำดับ' + }, + options: { + help: 'ช่วยเหลือ', + fullscreen: 'ขยายเต็มหน้าจอ', + codeview: 'ซอร์สโค้ด' + }, + paragraph: { + paragraph: 'ย่อหน้า', + outdent: 'เยื้องซ้าย', + indent: 'เยื้องขวา', + left: 'จัดหน้าชิดซ้าย', + center: 'จัดหน้ากึ่งกลาง', + right: 'จัดหน้าชิดขวา', + justify: 'จัดบรรทัดเสมอกัน' + }, + color: { + recent: 'สีที่ใช้ล่าสุด', + more: 'สีอื่นๆ', + background: 'สีพื้นหลัง', + foreground: 'สีพื้นหน้า', + transparent: 'โปร่งแสง', + setTransparent: 'ตั้งค่าความโปร่งแสง', + reset: 'คืนค่า', + resetToDefault: 'คืนค่ามาตรฐาน' + }, + shortcut: { + shortcuts: 'แป้นลัด', + close: 'ปิด', + textFormatting: 'การจัดรูปแบบข้อความ', + action: 'การกระทำ', + paragraphFormatting: 'การจัดรูปแบบย่อหน้า', + documentStyle: 'รูปแบบของเอกสาร' + }, + history: { + undo: 'ยกเลิกการกระทำ', + redo: 'ทำซ้ำการกระทำ' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-tr-TR.js b/assets/lib/summernote/lang/summernote-tr-TR.js new file mode 100644 index 0000000..e9e21d4 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-tr-TR.js @@ -0,0 +1,147 @@ +(function ($) { + $.extend($.summernote.lang, { + 'tr-TR': { + font: { + bold: 'Kalın', + italic: 'İtalik', + underline: 'Altı çizili', + clear: 'Temizle', + height: 'Satır yüksekliği', + name: 'Yazı Tipi', + strikethrough: 'Üstü çizili', + subscript: 'Alt Simge', + superscript: 'Üst Simge', + size: 'Yazı tipi boyutu' + }, + image: { + image: 'Resim', + insert: 'Resim ekle', + resizeFull: 'Orjinal boyut', + resizeHalf: '1/2 boyut', + resizeQuarter: '1/4 boyut', + floatLeft: 'Sola hizala', + floatRight: 'Sağa hizala', + floatNone: 'Hizalamayı kaldır', + shapeRounded: 'Şekil: Yuvarlatılmış Köşe', + shapeCircle: 'Şekil: Daire', + shapeThumbnail: 'Şekil: K.Resim', + shapeNone: 'Şekil: Yok', + dragImageHere: 'Buraya sürükleyin', + dropImage: 'Resim veya metni bırakın', + selectFromFiles: 'Dosya seçin', + maximumFileSize: 'Maksimum dosya boyutu', + maximumFileSizeError: 'Maksimum dosya boyutu aşıldı.', + url: 'Resim bağlantısı', + remove: 'Resimi Kaldır' + }, + video: { + video: 'Video', + videoLink: 'Video bağlantısı', + insert: 'Video ekle', + url: 'Video bağlantısı?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)' + }, + link: { + link: 'Bağlantı', + insert: 'Bağlantı ekle', + unlink: 'Bağlantıyı kaldır', + edit: 'Bağlantıyı düzenle', + textToDisplay: 'Görüntülemek için', + url: 'Bağlantı adresi?', + openInNewWindow: 'Yeni pencerede aç' + }, + table: { + table: 'Tablo' + }, + hr: { + insert: 'Yatay çizgi ekle' + }, + style: { + style: 'Biçim', + p: 'p', + blockquote: 'Alıntı', + pre: 'Önbiçimli', + h1: 'Başlık 1', + h2: 'Başlık 2', + h3: 'Başlık 3', + h4: 'Başlık 4', + h5: 'Başlık 5', + h6: 'Başlık 6' + }, + lists: { + unordered: 'Madde işaretli liste', + ordered: 'Numaralı liste' + }, + options: { + help: 'Yardım', + fullscreen: 'Tam ekran', + codeview: 'HTML Kodu' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Girintiyi artır', + indent: 'Girintiyi azalt', + left: 'Sola hizala', + center: 'Ortaya hizala', + right: 'Sağa hizala', + justify: 'Yasla' + }, + color: { + recent: 'Son renk', + more: 'Daha fazla renk', + background: 'Arka plan rengi', + foreground: 'Yazı rengi', + transparent: 'Seffaflık', + setTransparent: 'Şeffaflığı ayarla', + reset: 'Sıfırla', + resetToDefault: 'Varsayılanlara sıfırla' + }, + shortcut: { + shortcuts: 'Kısayollar', + close: 'Kapat', + textFormatting: 'Yazı biçimlendirme', + action: 'Eylem', + paragraphFormatting: 'Paragraf biçimlendirme', + documentStyle: 'Biçim', + extraKeys: 'İlave anahtarlar' + }, + help: { + 'insertParagraph': 'Paragraf ekler', + 'undo': 'Son komudu geri alır', + 'redo': 'Son komudu yineler', + 'tab': 'Girintiyi artırır', + 'untab': 'Girintiyi azaltır', + 'bold': 'Kalın yazma stilini ayarlar', + 'italic': 'İtalik yazma stilini ayarlar', + 'underline': 'Altı çizgili yazma stilini ayarlar', + 'strikethrough': 'Üstü çizgili yazma stilini ayarlar', + 'removeFormat': 'Biçimlendirmeyi temizler', + 'justifyLeft': 'Yazıyı sola hizalar', + 'justifyCenter': 'Yazıyı ortalar', + 'justifyRight': 'Yazıyı sağa hizalar', + 'justifyFull': 'Yazıyı her iki tarafa yazlar', + 'insertUnorderedList': 'Madde işaretli liste ekler', + 'insertOrderedList': 'Numaralı liste ekler', + 'outdent': 'Aktif paragrafın girintisini azaltır', + 'indent': 'Aktif paragrafın girintisini artırır', + 'formatPara': 'Aktif bloğun biçimini paragraf (p) olarak değiştirir', + 'formatH1': 'Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir', + 'formatH2': 'Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir', + 'formatH3': 'Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir', + 'formatH4': 'Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir', + 'formatH5': 'Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir', + 'formatH6': 'Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir', + 'insertHorizontalRule': 'Yatay çizgi ekler', + 'linkDialog.show': 'Bağlantı ayar kutusunu gösterir' + }, + history: { + undo: 'Geri al', + redo: 'Yinele' + }, + specialChar: { + specialChar: 'ÖZEL KARAKTERLER', + select: 'Özel Karakterleri seçin' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-uk-UA.js b/assets/lib/summernote/lang/summernote-uk-UA.js new file mode 100644 index 0000000..e210572 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-uk-UA.js @@ -0,0 +1,111 @@ +(function ($) { + $.extend($.summernote.lang, { + 'uk-UA': { + font: { + bold: 'Напівжирний', + italic: 'Курсив', + underline: 'Підкреслений', + clear: 'Прибрати стилі шрифту', + height: 'Висота лінії', + name: 'Шрифт', + strikethrough: 'Закреслений', + subscript: 'Нижній індекс', + superscript: 'Верхній індекс', + size: 'Розмір шрифту' + }, + image: { + image: 'Картинка', + insert: 'Вставити картинку', + resizeFull: 'Відновити розмір', + resizeHalf: 'Зменшити до 50%', + resizeQuarter: 'Зменшити до 25%', + floatLeft: 'Розташувати ліворуч', + floatRight: 'Розташувати праворуч', + floatNone: 'Початкове розташування', + shapeRounded: 'Форма: Заокруглена', + shapeCircle: 'Форма: Коло', + shapeThumbnail: 'Форма: Мініатюра', + shapeNone: 'Форма: Немає', + dragImageHere: 'Перетягніть сюди картинку', + dropImage: 'Перетягніть картинку', + selectFromFiles: 'Вибрати з файлів', + url: 'URL картинки', + remove: 'Видалити картинку' + }, + video: { + video: 'Відео', + videoLink: 'Посилання на відео', + insert: 'Вставити відео', + url: 'URL відео', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)' + }, + link: { + link: 'Посилання', + insert: 'Вставити посилання', + unlink: 'Прибрати посилання', + edit: 'Редагувати', + textToDisplay: 'Текст, що відображається', + url: 'URL для переходу', + openInNewWindow: 'Відкривати у новому вікні' + }, + table: { + table: 'Таблиця' + }, + hr: { + insert: 'Вставити горизонтальну лінію' + }, + style: { + style: 'Стиль', + p: 'Нормальний', + blockquote: 'Цитата', + pre: 'Код', + h1: 'Заголовок 1', + h2: 'Заголовок 2', + h3: 'Заголовок 3', + h4: 'Заголовок 4', + h5: 'Заголовок 5', + h6: 'Заголовок 6' + }, + lists: { + unordered: 'Маркований список', + ordered: 'Нумерований список' + }, + options: { + help: 'Допомога', + fullscreen: 'На весь екран', + codeview: 'Початковий код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Зменшити відступ', + indent: 'Збільшити відступ', + left: 'Вирівняти по лівому краю', + center: 'Вирівняти по центру', + right: 'Вирівняти по правому краю', + justify: 'Розтягнути по ширині' + }, + color: { + recent: 'Останній колір', + more: 'Ще кольори', + background: 'Колір фону', + foreground: 'Колір шрифту', + transparent: 'Прозорий', + setTransparent: 'Зробити прозорим', + reset: 'Відновити', + resetToDefault: 'Відновити початкові' + }, + shortcut: { + shortcuts: 'Комбінації клавіш', + close: 'Закрити', + textFormatting: 'Форматування тексту', + action: 'Дія', + paragraphFormatting: 'Форматування параграфу', + documentStyle: 'Стиль документу' + }, + history: { + undo: 'Відмінити', + redo: 'Повторити' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-vi-VN.js b/assets/lib/summernote/lang/summernote-vi-VN.js new file mode 100644 index 0000000..917e629 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-vi-VN.js @@ -0,0 +1,104 @@ +(function ($) { + $.extend($.summernote.lang, { + 'vi-VN': { + font: { + bold: 'In Đậm', + italic: 'In Nghiêng', + underline: 'Gạch dưới', + clear: 'Bỏ định dạng', + height: 'Chiều cao dòng', + name: 'Phông chữ', + strikethrough: 'Gạch ngang', + size: 'Cỡ chữ' + }, + image: { + image: 'Hình ảnh', + insert: 'Chèn', + resizeFull: '100%', + resizeHalf: '50%', + resizeQuarter: '25%', + floatLeft: 'Trôi về trái', + floatRight: 'Trôi về phải', + floatNone: 'Không trôi', + dragImageHere: 'Thả Ảnh ở vùng này', + selectFromFiles: 'Chọn từ File', + url: 'URL', + remove: 'Xóa' + }, + video: { + video: 'Video', + videoLink: 'Link đến Video', + insert: 'Chèn Video', + url: 'URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)' + }, + link: { + link: 'Link', + insert: 'Chèn Link', + unlink: 'Gỡ Link', + edit: 'Sửa', + textToDisplay: 'Văn bản hiển thị', + url: 'URL', + openInNewWindow: 'Mở ở Cửa sổ mới' + }, + table: { + table: 'Bảng' + }, + hr: { + insert: 'Chèn' + }, + style: { + style: 'Kiểu chữ', + p: 'Chữ thường', + blockquote: 'Đoạn trích', + pre: 'Mã Code', + h1: 'H1', + h2: 'H2', + h3: 'H3', + h4: 'H4', + h5: 'H5', + h6: 'H6' + }, + lists: { + unordered: 'Liệt kê danh sách', + ordered: 'Liệt kê theo thứ tự' + }, + options: { + help: 'Trợ giúp', + fullscreen: 'Toàn Màn hình', + codeview: 'Xem Code' + }, + paragraph: { + paragraph: 'Canh lề', + outdent: 'Dịch sang trái', + indent: 'Dịch sang phải', + left: 'Canh trái', + center: 'Canh giữa', + right: 'Canh phải', + justify: 'Canh đều' + }, + color: { + recent: 'Màu chữ', + more: 'Mở rộng', + background: 'Màu nền', + foreground: 'Màu chữ', + transparent: 'trong suốt', + setTransparent: 'Nền trong suốt', + reset: 'Thiết lập lại', + resetToDefault: 'Trở lại ban đầu' + }, + shortcut: { + shortcuts: 'Phím tắt', + close: 'Đóng', + textFormatting: 'Định dạng Văn bản', + action: 'Hành động', + paragraphFormatting: 'Định dạng', + documentStyle: 'Kiểu văn bản' + }, + history: { + undo: 'Lùi lại', + redo: 'Làm lại' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-zh-CN.js b/assets/lib/summernote/lang/summernote-zh-CN.js new file mode 100644 index 0000000..99e5194 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-zh-CN.js @@ -0,0 +1,113 @@ +(function ($) { + $.extend($.summernote.lang, { + 'zh-CN': { + font: { + bold: '粗体', + italic: '斜体', + underline: '下划线', + clear: '清除格式', + height: '行高', + name: '字体', + strikethrough: '删除线', + subscript: '下标', + superscript: '上标', + size: '字号' + }, + image: { + image: '图片', + insert: '插入图片', + resizeFull: '缩放至 100%', + resizeHalf: '缩放至 50%', + resizeQuarter: '缩放至 25%', + floatLeft: '靠左浮动', + floatRight: '靠右浮动', + floatNone: '取消浮动', + shapeRounded: '形状: 圆角', + shapeCircle: '形状: 圆', + shapeThumbnail: '形状: 缩略图', + shapeNone: '形状: 无', + dragImageHere: '将图片拖拽至此处', + selectFromFiles: '从本地上传', + maximumFileSize: '文件大小最大值', + maximumFileSizeError: '文件大小超出最大值。', + url: '图片地址', + remove: '移除图片' + }, + video: { + video: '视频', + videoLink: '视频链接', + insert: '插入视频', + url: '视频地址', + providers: '(优酷, Instagram, DailyMotion, Youtube等)' + }, + link: { + link: '链接', + insert: '插入链接', + unlink: '去除链接', + edit: '编辑链接', + textToDisplay: '显示文本', + url: '链接地址', + openInNewWindow: '在新窗口打开' + }, + table: { + table: '表格' + }, + hr: { + insert: '水平线' + }, + style: { + style: '样式', + p: '普通', + blockquote: '引用', + pre: '代码', + h1: '标题 1', + h2: '标题 2', + h3: '标题 3', + h4: '标题 4', + h5: '标题 5', + h6: '标题 6' + }, + lists: { + unordered: '无序列表', + ordered: '有序列表' + }, + options: { + help: '帮助', + fullscreen: '全屏', + codeview: '源代码' + }, + paragraph: { + paragraph: '段落', + outdent: '减少缩进', + indent: '增加缩进', + left: '左对齐', + center: '居中对齐', + right: '右对齐', + justify: '两端对齐' + }, + color: { + recent: '最近使用', + more: '更多', + background: '背景', + foreground: '前景', + transparent: '透明', + setTransparent: '透明', + reset: '重置', + resetToDefault: '默认' + }, + shortcut: { + shortcuts: '快捷键', + close: '关闭', + textFormatting: '文本格式', + action: '动作', + paragraphFormatting: '段落格式', + documentStyle: '文档样式', + extraKeys: '额外按键' + }, + history: { + undo: '撤销', + redo: '重做' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/lang/summernote-zh-TW.js b/assets/lib/summernote/lang/summernote-zh-TW.js new file mode 100644 index 0000000..775e217 --- /dev/null +++ b/assets/lib/summernote/lang/summernote-zh-TW.js @@ -0,0 +1,113 @@ +(function ($) { + $.extend($.summernote.lang, { + 'zh-TW': { + font: { + bold: '粗體', + italic: '斜體', + underline: '底線', + clear: '清除格式', + height: '行高', + name: '字體', + strikethrough: '刪除線', + subscript: '下標', + superscript: '上標', + size: '字號' + }, + image: { + image: '圖片', + insert: '插入圖片', + resizeFull: '縮放至100%', + resizeHalf: '縮放至 50%', + resizeQuarter: '縮放至 25%', + floatLeft: '靠左浮動', + floatRight: '靠右浮動', + floatNone: '取消浮動', + shapeRounded: '形狀: 圓角', + shapeCircle: '形狀: 圓', + shapeThumbnail: '形狀: 縮略圖', + shapeNone: '形狀: 無', + dragImageHere: '將圖片拖曳至此處', + selectFromFiles: '從本機上傳', + maximumFileSize: '文件大小最大值', + maximumFileSizeError: '文件大小超出最大值。', + url: '圖片網址', + remove: '移除圖片' + }, + video: { + video: '影片', + videoLink: '影片連結', + insert: '插入影片', + url: '影片網址', + providers: '(優酷, Instagram, DailyMotion, Youtube等)' + }, + link: { + link: '連結', + insert: '插入連結', + unlink: '取消連結', + edit: '編輯連結', + textToDisplay: '顯示文字', + url: '連結網址', + openInNewWindow: '在新視窗開啟' + }, + table: { + table: '表格' + }, + hr: { + insert: '水平線' + }, + style: { + style: '樣式', + p: '一般', + blockquote: '引用區塊', + pre: '程式碼區塊', + h1: '標題 1', + h2: '標題 2', + h3: '標題 3', + h4: '標題 4', + h5: '標題 5', + h6: '標題 6' + }, + lists: { + unordered: '項目清單', + ordered: '編號清單' + }, + options: { + help: '幫助', + fullscreen: '全螢幕', + codeview: '原始碼' + }, + paragraph: { + paragraph: '段落', + outdent: '取消縮排', + indent: '增加縮排', + left: '靠右對齊', + center: '靠中對齊', + right: '靠右對齊', + justify: '左右對齊' + }, + color: { + recent: '字型顏色', + more: '更多', + background: '背景', + foreground: '前景', + transparent: '透明', + setTransparent: '透明', + reset: '重設', + resetToDefault: '默認' + }, + shortcut: { + shortcuts: '快捷鍵', + close: '關閉', + textFormatting: '文字格式', + action: '動作', + paragraphFormatting: '段落格式', + documentStyle: '文件格式', + extraKeys: '額外按鍵' + }, + history: { + undo: '復原', + redo: '取消復原' + } + } + }); +})(jQuery); diff --git a/assets/lib/summernote/plugin/databasic/summernote-ext-databasic.css b/assets/lib/summernote/plugin/databasic/summernote-ext-databasic.css new file mode 100755 index 0000000..6232dde --- /dev/null +++ b/assets/lib/summernote/plugin/databasic/summernote-ext-databasic.css @@ -0,0 +1,16 @@ +.ext-databasic { + position: relative; + display: block; + min-height: 50px; + background-color: cyan; + text-align: center; + padding: 20px; + border: 1px solid white; + border-radius: 10px; +} + +.ext-databasic p { + color: white; + font-size: 1.2em; + margin: 0; +} diff --git a/assets/lib/summernote/plugin/databasic/summernote-ext-databasic.js b/assets/lib/summernote/plugin/databasic/summernote-ext-databasic.js new file mode 100755 index 0000000..37a5dba --- /dev/null +++ b/assets/lib/summernote/plugin/databasic/summernote-ext-databasic.js @@ -0,0 +1,303 @@ +(function (factory) { + /* global define */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function ($) { + + // pull in some summernote core functions + var ui = $.summernote.ui; + var dom = $.summernote.dom; + + // define the popover plugin + var DataBasicPlugin = function (context) { + var self = this; + var options = context.options; + var lang = options.langInfo; + + self.icon = ''; + + // add context menu button for dialog + context.memo('button.databasic', function () { + return ui.button({ + contents: self.icon, + tooltip: lang.databasic.insert, + click: context.createInvokeHandler('databasic.showDialog') + }).render(); + }); + + // add popover edit button + context.memo('button.databasicDialog', function () { + return ui.button({ + contents: self.icon, + tooltip: lang.databasic.edit, + click: context.createInvokeHandler('databasic.showDialog') + }).render(); + }); + + // add popover size buttons + context.memo('button.databasicSize100', function () { + return ui.button({ + contents: '100%', + tooltip: lang.image.resizeFull, + click: context.createInvokeHandler('editor.resize', '1') + }).render(); + }); + context.memo('button.databasicSize50', function () { + return ui.button({ + contents: '50%', + tooltip: lang.image.resizeHalf, + click: context.createInvokeHandler('editor.resize', '0.5') + }).render(); + }); + context.memo('button.databasicSize25', function () { + return ui.button({ + contents: '25%', + tooltip: lang.image.resizeQuarter, + click: context.createInvokeHandler('editor.resize', '0.25') + }).render(); + }); + + self.events = { + 'summernote.init': function (we, e) { + // update existing containers + $('data.ext-databasic', e.editable).each(function () { self.setContent($(this)); }); + // TODO: make this an undo snapshot... + }, + 'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () { + self.update(); + }, + 'summernote.dialog.shown': function () { + self.hidePopover(); + } + }; + + self.initialize = function () { + // create dialog markup + var $container = options.dialogsInBody ? $(document.body) : context.layoutInfo.editor; + + var body = '
' + + '' + + '' + + '
'; + var footer = ''; + + self.$dialog = ui.dialog({ + title: lang.databasic.name, + fade: options.dialogsFade, + body: body, + footer: footer + }).render().appendTo($container); + + // create popover + self.$popover = ui.popover({ + className: 'ext-databasic-popover' + }).render().appendTo('body'); + var $content = self.$popover.find('.popover-content'); + + context.invoke('buttons.build', $content, options.popover.databasic); + }; + + self.destroy = function () { + self.$popover.remove(); + self.$popover = null; + self.$dialog.remove(); + self.$dialog = null; + }; + + self.update = function () { + // Prevent focusing on editable when invoke('code') is executed + if (!context.invoke('editor.hasFocus')) { + self.hidePopover(); + return; + } + + var rng = context.invoke('editor.createRange'); + var visible = false; + + if (rng.isOnData()) + { + var $data = $(rng.sc).closest('data.ext-databasic'); + + if ($data.length) + { + var pos = dom.posFromPlaceholder($data[0]); + + self.$popover.css({ + display: 'block', + left: pos.left, + top: pos.top + }); + + // save editor target to let size buttons resize the container + context.invoke('editor.saveTarget', $data[0]); + + visible = true; + } + + } + + // hide if not visible + if (!visible) { + self.hidePopover(); + } + + }; + + self.hidePopover = function () { + self.$popover.hide(); + }; + + // define plugin dialog + self.getInfo = function () { + var rng = context.invoke('editor.createRange'); + + if (rng.isOnData()) + { + var $data = $(rng.sc).closest('data.ext-databasic'); + + if ($data.length) + { + // Get the first node on range(for edit). + return { + node: $data, + test: $data.attr('data-test') + }; + } + } + + return {}; + }; + + self.setContent = function ($node) { + $node.html('

' + self.icon + ' ' + lang.databasic.name + ': ' + + $node.attr('data-test') + '

'); + }; + + self.updateNode = function (info) { + self.setContent(info.node + .attr('data-test', info.test)); + }; + + self.createNode = function (info) { + var $node = $(''); + + if ($node) { + // save node to info structure + info.node = $node; + // insert node into editor dom + context.invoke('editor.insertNode', $node[0]); + } + + return $node; + }; + + self.showDialog = function () { + var info = self.getInfo(); + var newNode = !info.node; + context.invoke('editor.saveRange'); + + self + .openDialog(info) + .then(function (dialogInfo) { + // [workaround] hide dialog before restore range for IE range focus + ui.hideDialog(self.$dialog); + context.invoke('editor.restoreRange'); + + // insert a new node + if (newNode) + { + self.createNode(info); + } + + // update info with dialog info + $.extend(info, dialogInfo); + + self.updateNode(info); + }) + .fail(function () { + context.invoke('editor.restoreRange'); + }); + + }; + + self.openDialog = function (info) { + return $.Deferred(function (deferred) { + var $inpTest = self.$dialog.find('.ext-databasic-test'); + var $saveBtn = self.$dialog.find('.ext-databasic-save'); + var onKeyup = function (event) { + if (event.keyCode === 13) + { + $saveBtn.trigger('click'); + } + }; + + ui.onDialogShown(self.$dialog, function () { + context.triggerEvent('dialog.shown'); + + $inpTest.val(info.test).on('input', function () { + ui.toggleBtn($saveBtn, $inpTest.val()); + }).trigger('focus').on('keyup', onKeyup); + + $saveBtn + .text(info.node ? lang.databasic.edit : lang.databasic.insert) + .click(function (event) { + event.preventDefault(); + + deferred.resolve({ test: $inpTest.val() }); + }); + + // init save button + ui.toggleBtn($saveBtn, $inpTest.val()); + }); + + ui.onDialogHidden(self.$dialog, function () { + $inpTest.off('input keyup'); + $saveBtn.off('click'); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }); + + ui.showDialog(self.$dialog); + }); + }; + }; + + // Extends summernote + $.extend(true, $.summernote, { + plugins: { + databasic: DataBasicPlugin + }, + + options: { + popover: { + databasic: [ + ['databasic', ['databasicDialog', 'databasicSize100', 'databasicSize50', 'databasicSize25']] + ] + } + }, + + // add localization texts + lang: { + 'en-US': { + databasic: { + name: 'Basic Data Container', + insert: 'insert basic data container', + edit: 'edit basic data container', + testLabel: 'test input' + } + } + } + + }); + +})); diff --git a/assets/lib/summernote/plugin/hello/summernote-ext-hello.js b/assets/lib/summernote/plugin/hello/summernote-ext-hello.js new file mode 100644 index 0000000..7c6434a --- /dev/null +++ b/assets/lib/summernote/plugin/hello/summernote-ext-hello.js @@ -0,0 +1,82 @@ +(function (factory) { + /* global define */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function ($) { + + // Extends plugins for adding hello. + // - plugin is external module for customizing. + $.extend($.summernote.plugins, { + /** + * @param {Object} context - context object has status of editor. + */ + 'hello': function (context) { + var self = this; + + // ui has renders to build ui elements. + // - you can create a button with `ui.button` + var ui = $.summernote.ui; + + // add hello button + context.memo('button.hello', function () { + // create button + var button = ui.button({ + contents: ' Hello', + tooltip: 'hello', + click: function () { + self.$panel.show(); + self.$panel.hide(500); + // invoke insertText method with 'hello' on editor module. + context.invoke('editor.insertText', 'hello'); + } + }); + + // create jQuery object from button instance. + var $hello = button.render(); + return $hello; + }); + + // This events will be attached when editor is initialized. + this.events = { + // This will be called after modules are initialized. + 'summernote.init': function (we, e) { + console.log('summernote initialized', we, e); + }, + // This will be called when user releases a key on editable. + 'summernote.keyup': function (we, e) { + console.log('summernote keyup', we, e); + } + }; + + // This method will be called when editor is initialized by $('..').summernote(); + // You can create elements for plugin + this.initialize = function () { + this.$panel = $('
').css({ + position: 'absolute', + width: 100, + height: 100, + left: '50%', + top: '50%', + background: 'red' + }).hide(); + + this.$panel.appendTo('body'); + }; + + // This methods will be called when editor is destroyed by $('..').summernote('destroy'); + // You should remove elements on `initialize`. + this.destroy = function () { + this.$panel.remove(); + this.$panel = null; + }; + } + }); +})); diff --git a/assets/lib/summernote/plugin/specialchars/summernote-ext-specialchars.js b/assets/lib/summernote/plugin/specialchars/summernote-ext-specialchars.js new file mode 100644 index 0000000..230e750 --- /dev/null +++ b/assets/lib/summernote/plugin/specialchars/summernote-ext-specialchars.js @@ -0,0 +1,315 @@ +(function (factory) { + /* global define */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function ($) { + $.extend($.summernote.plugins, { + 'specialchars': function (context) { + var self = this; + var ui = $.summernote.ui; + + var $editor = context.layoutInfo.editor; + var options = context.options; + var lang = options.langInfo; + + var KEY = { + UP: 38, + DOWN: 40, + LEFT: 37, + RIGHT: 39, + ENTER: 13 + }; + var COLUMN_LENGTH = 15; + var COLUMN_WIDTH = 35; + + var currentColumn, currentRow, totalColumn, totalRow = 0; + + // special characters data set + var specialCharDataSet = [ + '"', '&', '<', '>', '¡', '¢', + '£', '¤', '¥', '¦', '§', + '¨', '©', 'ª', '«', '¬', + '®', '¯', '°', '±', '²', + '³', '´', 'µ', '¶', '·', + '¸', '¹', 'º', '»', '¼', + '½', '¾', '¿', '×', '÷', + 'ƒ', 'ˆ', '˜', '–', '—', + '‘', '’', '‚', '“', '”', + '„', '†', '‡', '•', '…', + '‰', '′', '″', '‹', '›', + '‾', '⁄', '€', 'ℑ', '℘', + 'ℜ', '™', 'ℵ', '←', '↑', + '→', '↓', '↔', '↵', '⇐', + '⇑', '⇒', '⇓', '⇔', '∀', + '∂', '∃', '∅', '∇', '∈', + '∉', '∋', '∏', '∑', '−', + '∗', '√', '∝', '∞', '∠', + '∧', '∨', '∩', '∪', '∫', + '∴', '∼', '≅', '≈', '≠', + '≡', '≤', '≥', '⊂', '⊃', + '⊄', '⊆', '⊇', '⊕', '⊗', + '⊥', '⋅', '⌈', '⌉', '⌊', + '⌋', '◊', '♠', '♣', '♥', + '♦' + ]; + + context.memo('button.specialCharacter', function () { + return ui.button({ + contents: '', + tooltip: lang.specialChar.specialChar, + click: function () { + self.show(); + } + }).render(); + }); + + /** + * Make Special Characters Table + * + * @member plugin.specialChar + * @private + * @return {jQuery} + */ + this.makeSpecialCharSetTable = function () { + var $table = $(''); + $.each(specialCharDataSet, function (idx, text) { + var $td = $('') : $table.find('tr').last(); + + var $button = ui.button({ + callback: function ($node) { + $node.html(text); + $node.attr('title', text); + $node.attr('data-value', encodeURIComponent(text)); + $node.css({ + width: COLUMN_WIDTH, + 'margin-right': '2px', + 'margin-bottom': '2px' + }); + } + }).render(); + + $td.append($button); + + $tr.append($td); + if (idx % COLUMN_LENGTH === 0) { + $table.append($tr); + } + }); + + totalRow = $table.find('tr').length; + totalColumn = COLUMN_LENGTH; + + return $table; + }; + + this.initialize = function () { + var $container = options.dialogsInBody ? $(document.body) : $editor; + + var body = '
' + this.makeSpecialCharSetTable()[0].outerHTML + '
'; + + this.$dialog = ui.dialog({ + title: lang.specialChar.select, + body: body + }).render().appendTo($container); + }; + + this.show = function () { + var text = context.invoke('editor.getSelectedText'); + context.invoke('editor.saveRange'); + this.showSpecialCharDialog(text).then(function (selectChar) { + context.invoke('editor.restoreRange'); + + // build node + var $node = $('').html(selectChar)[0]; + + if ($node) { + // insert video node + context.invoke('editor.insertNode', $node); + } + }).fail(function () { + context.invoke('editor.restoreRange'); + }); + }; + + /** + * show image dialog + * + * @param {jQuery} $dialog + * @return {Promise} + */ + this.showSpecialCharDialog = function (text) { + return $.Deferred(function (deferred) { + var $specialCharDialog = self.$dialog; + var $specialCharNode = $specialCharDialog.find('.note-specialchar-node'); + var $selectedNode = null; + var ARROW_KEYS = [KEY.UP, KEY.DOWN, KEY.LEFT, KEY.RIGHT]; + var ENTER_KEY = KEY.ENTER; + + function addActiveClass($target) { + if (!$target) { + return; + } + $target.find('button').addClass('active'); + $selectedNode = $target; + } + + function removeActiveClass($target) { + $target.find('button').removeClass('active'); + $selectedNode = null; + } + + // find next node + function findNextNode(row, column) { + var findNode = null; + $.each($specialCharNode, function (idx, $node) { + var findRow = Math.ceil((idx + 1) / COLUMN_LENGTH); + var findColumn = ((idx + 1) % COLUMN_LENGTH === 0) ? COLUMN_LENGTH : (idx + 1) % COLUMN_LENGTH; + if (findRow === row && findColumn === column) { + findNode = $node; + return false; + } + }); + return $(findNode); + } + + function arrowKeyHandler(keyCode) { + // left, right, up, down key + var $nextNode; + var lastRowColumnLength = $specialCharNode.length % totalColumn; + + if (KEY.LEFT === keyCode) { + + if (currentColumn > 1) { + currentColumn = currentColumn - 1; + } else if (currentRow === 1 && currentColumn === 1) { + currentColumn = lastRowColumnLength; + currentRow = totalRow; + } else { + currentColumn = totalColumn; + currentRow = currentRow - 1; + } + + } else if (KEY.RIGHT === keyCode) { + + if (currentRow === totalRow && lastRowColumnLength === currentColumn) { + currentColumn = 1; + currentRow = 1; + } else if (currentColumn < totalColumn) { + currentColumn = currentColumn + 1; + } else { + currentColumn = 1; + currentRow = currentRow + 1; + } + + } else if (KEY.UP === keyCode) { + if (currentRow === 1 && lastRowColumnLength < currentColumn) { + currentRow = totalRow - 1; + } else { + currentRow = currentRow - 1; + } + } else if (KEY.DOWN === keyCode) { + currentRow = currentRow + 1; + } + + if (currentRow === totalRow && currentColumn > lastRowColumnLength) { + currentRow = 1; + } else if (currentRow > totalRow) { + currentRow = 1; + } else if (currentRow < 1) { + currentRow = totalRow; + } + + $nextNode = findNextNode(currentRow, currentColumn); + + if ($nextNode) { + removeActiveClass($selectedNode); + addActiveClass($nextNode); + } + } + + function enterKeyHandler() { + if (!$selectedNode) { + return; + } + + deferred.resolve(decodeURIComponent($selectedNode.find('button').attr('data-value'))); + $specialCharDialog.modal('hide'); + } + + function keyDownEventHandler(event) { + event.preventDefault(); + var keyCode = event.keyCode; + if (keyCode === undefined || keyCode === null) { + return; + } + // check arrowKeys match + if (ARROW_KEYS.indexOf(keyCode) > -1) { + if ($selectedNode === null) { + addActiveClass($specialCharNode.eq(0)); + currentColumn = 1; + currentRow = 1; + return; + } + arrowKeyHandler(keyCode); + } else if (keyCode === ENTER_KEY) { + enterKeyHandler(); + } + return false; + } + + // remove class + removeActiveClass($specialCharNode); + + // find selected node + if (text) { + for (var i = 0; i < $specialCharNode.length; i++) { + var $checkNode = $($specialCharNode[i]); + if ($checkNode.text() === text) { + addActiveClass($checkNode); + currentRow = Math.ceil((i + 1) / COLUMN_LENGTH); + currentColumn = (i + 1) % COLUMN_LENGTH; + } + } + } + + ui.onDialogShown(self.$dialog, function () { + + $(document).on('keydown', keyDownEventHandler); + + self.$dialog.find('button').tooltip(); + + $specialCharNode.on('click', function (event) { + event.preventDefault(); + deferred.resolve(decodeURIComponent($(event.currentTarget).find('button').attr('data-value'))); + ui.hideDialog(self.$dialog); + }); + + }); + + ui.onDialogHidden(self.$dialog, function () { + $specialCharNode.off('click'); + + self.$dialog.find('button').tooltip('destroy'); + + $(document).off('keydown', keyDownEventHandler); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }); + + ui.showDialog(self.$dialog); + }); + }; + } + }); +})); diff --git a/assets/lib/summernote/summernote.css b/assets/lib/summernote/summernote.css new file mode 100644 index 0000000..678dcdf --- /dev/null +++ b/assets/lib/summernote/summernote.css @@ -0,0 +1 @@ +@font-face{font-family:"summernote";font-style:normal;font-weight:normal;src:url("font/summernote.eot?dc97c88102d55aed645e5f227c58ba5b");src:url("font/summernote.eot?#iefix") format("embedded-opentype"),url("font/summernote.woff?dc97c88102d55aed645e5f227c58ba5b") format("woff"),url("font/summernote.ttf?dc97c88102d55aed645e5f227c58ba5b") format("truetype")}[class^="note-icon-"]:before,[class*=" note-icon-"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before{content:"\f101"}.note-icon-align-indent:before{content:"\f102"}.note-icon-align-justify:before{content:"\f103"}.note-icon-align-left:before{content:"\f104"}.note-icon-align-outdent:before{content:"\f105"}.note-icon-align-right:before{content:"\f106"}.note-icon-align:before{content:"\f107"}.note-icon-arrows-alt:before{content:"\f108"}.note-icon-bold:before{content:"\f109"}.note-icon-caret:before{content:"\f10a"}.note-icon-chain-broken:before{content:"\f10b"}.note-icon-circle:before{content:"\f10c"}.note-icon-close:before{content:"\f10d"}.note-icon-code:before{content:"\f10e"}.note-icon-eraser:before{content:"\f10f"}.note-icon-font:before{content:"\f110"}.note-icon-frame:before{content:"\f111"}.note-icon-italic:before{content:"\f112"}.note-icon-link:before{content:"\f113"}.note-icon-magic:before{content:"\f114"}.note-icon-menu-check:before{content:"\f115"}.note-icon-minus:before{content:"\f116"}.note-icon-orderedlist:before{content:"\f117"}.note-icon-pencil:before{content:"\f118"}.note-icon-picture:before{content:"\f119"}.note-icon-question:before{content:"\f11a"}.note-icon-redo:before{content:"\f11b"}.note-icon-special-character:before{content:"\f11c"}.note-icon-square:before{content:"\f11d"}.note-icon-strikethrough:before{content:"\f11e"}.note-icon-subscript:before{content:"\f11f"}.note-icon-summernote:before{content:"\f120"}.note-icon-superscript:before{content:"\f121"}.note-icon-table:before{content:"\f122"}.note-icon-text-height:before{content:"\f123"}.note-icon-trash:before{content:"\f124"}.note-icon-underline:before{content:"\f125"}.note-icon-undo:before{content:"\f126"}.note-icon-unorderedlist:before{content:"\f127"}.note-icon-video:before{content:"\f128"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:white;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:bold;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important}.note-editor.note-frame.fullscreen .note-editable{background-color:white}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:8px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px!important}.note-popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .note-style h1,.panel-heading.note-toolbar .note-style h1,.note-popover .popover-content .note-style h2,.panel-heading.note-toolbar .note-style h2,.note-popover .popover-content .note-style h3,.panel-heading.note-toolbar .note-style h3,.note-popover .popover-content .note-style h4,.panel-heading.note-toolbar .note-style h4,.note-popover .popover-content .note-style h5,.panel-heading.note-toolbar .note-style h5,.note-popover .popover-content .note-style h6,.panel-heading.note-toolbar .note-style h6,.note-popover .popover-content .note-style blockquote,.panel-heading.note-toolbar .note-style blockquote{margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:340px}.note-popover .popover-content .note-color .dropdown-menu .btn-group,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group{margin:0}.note-popover .popover-content .note-color .dropdown-menu .btn-group:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:black;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:white;border:1px solid black}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:white;background-color:black;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block!important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:white;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0} \ No newline at end of file diff --git a/assets/lib/summernote/summernote.js b/assets/lib/summernote/summernote.js new file mode 100644 index 0000000..c3705fb --- /dev/null +++ b/assets/lib/summernote/summernote.js @@ -0,0 +1,7046 @@ +/** + * Super simple wysiwyg editor v0.8.2 + * http://summernote.org/ + * + * summernote.js + * Copyright 2013-2016 Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license./ + * + * Date: 2016-08-08T01:21Z + */ +(function (factory) { + /* global define */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + /** + * @class core.func + * + * func utils (for high-order func's arg) + * + * @singleton + * @alternateClassName func + */ + var func = (function () { + var eq = function (itemA) { + return function (itemB) { + return itemA === itemB; + }; + }; + + var eq2 = function (itemA, itemB) { + return itemA === itemB; + }; + + var peq2 = function (propName) { + return function (itemA, itemB) { + return itemA[propName] === itemB[propName]; + }; + }; + + var ok = function () { + return true; + }; + + var fail = function () { + return false; + }; + + var not = function (f) { + return function () { + return !f.apply(f, arguments); + }; + }; + + var and = function (fA, fB) { + return function (item) { + return fA(item) && fB(item); + }; + }; + + var self = function (a) { + return a; + }; + + var invoke = function (obj, method) { + return function () { + return obj[method].apply(obj, arguments); + }; + }; + + var idCounter = 0; + + /** + * generate a globally-unique id + * + * @param {String} [prefix] + */ + var uniqueId = function (prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + }; + + /** + * returns bnd (bounds) from rect + * + * - IE Compatibility Issue: http://goo.gl/sRLOAo + * - Scroll Issue: http://goo.gl/sNjUc + * + * @param {Rect} rect + * @return {Object} bounds + * @return {Number} bounds.top + * @return {Number} bounds.left + * @return {Number} bounds.width + * @return {Number} bounds.height + */ + var rect2bnd = function (rect) { + var $document = $(document); + return { + top: rect.top + $document.scrollTop(), + left: rect.left + $document.scrollLeft(), + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + }; + + /** + * returns a copy of the object where the keys have become the values and the values the keys. + * @param {Object} obj + * @return {Object} + */ + var invertObject = function (obj) { + var inverted = {}; + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + inverted[obj[key]] = key; + } + } + return inverted; + }; + + /** + * @param {String} namespace + * @param {String} [prefix] + * @return {String} + */ + var namespaceToCamel = function (namespace, prefix) { + prefix = prefix || ''; + return prefix + namespace.split('.').map(function (name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + }).join(''); + }; + + /** + * Returns a function, that, as long as it continues to be invoked, will not + * be triggered. The function will be called after it stops being called for + * N milliseconds. If `immediate` is passed, trigger the function on the + * leading edge, instead of the trailing. + * @param {Function} func + * @param {Number} wait + * @param {Boolean} immediate + * @return {Function} + */ + var debounce = function (func, wait, immediate) { + var timeout; + return function () { + var context = this, args = arguments; + var later = function () { + timeout = null; + if (!immediate) { + func.apply(context, args); + } + }; + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + func.apply(context, args); + } + }; + }; + + return { + eq: eq, + eq2: eq2, + peq2: peq2, + ok: ok, + fail: fail, + self: self, + not: not, + and: and, + invoke: invoke, + uniqueId: uniqueId, + rect2bnd: rect2bnd, + invertObject: invertObject, + namespaceToCamel: namespaceToCamel, + debounce: debounce + }; + })(); + + /** + * @class core.list + * + * list utils + * + * @singleton + * @alternateClassName list + */ + var list = (function () { + /** + * returns the first item of an array. + * + * @param {Array} array + */ + var head = function (array) { + return array[0]; + }; + + /** + * returns the last item of an array. + * + * @param {Array} array + */ + var last = function (array) { + return array[array.length - 1]; + }; + + /** + * returns everything but the last entry of the array. + * + * @param {Array} array + */ + var initial = function (array) { + return array.slice(0, array.length - 1); + }; + + /** + * returns the rest of the items in an array. + * + * @param {Array} array + */ + var tail = function (array) { + return array.slice(1); + }; + + /** + * returns item of array + */ + var find = function (array, pred) { + for (var idx = 0, len = array.length; idx < len; idx ++) { + var item = array[idx]; + if (pred(item)) { + return item; + } + } + }; + + /** + * returns true if all of the values in the array pass the predicate truth test. + */ + var all = function (array, pred) { + for (var idx = 0, len = array.length; idx < len; idx ++) { + if (!pred(array[idx])) { + return false; + } + } + return true; + }; + + /** + * returns index of item + */ + var indexOf = function (array, item) { + return $.inArray(item, array); + }; + + /** + * returns true if the value is present in the list. + */ + var contains = function (array, item) { + return indexOf(array, item) !== -1; + }; + + /** + * get sum from a list + * + * @param {Array} array - array + * @param {Function} fn - iterator + */ + var sum = function (array, fn) { + fn = fn || func.self; + return array.reduce(function (memo, v) { + return memo + fn(v); + }, 0); + }; + + /** + * returns a copy of the collection with array type. + * @param {Collection} collection - collection eg) node.childNodes, ... + */ + var from = function (collection) { + var result = [], idx = -1, length = collection.length; + while (++idx < length) { + result[idx] = collection[idx]; + } + return result; + }; + + /** + * returns whether list is empty or not + */ + var isEmpty = function (array) { + return !array || !array.length; + }; + + /** + * cluster elements by predicate function. + * + * @param {Array} array - array + * @param {Function} fn - predicate function for cluster rule + * @param {Array[]} + */ + var clusterBy = function (array, fn) { + if (!array.length) { return []; } + var aTail = tail(array); + return aTail.reduce(function (memo, v) { + var aLast = last(memo); + if (fn(last(aLast), v)) { + aLast[aLast.length] = v; + } else { + memo[memo.length] = [v]; + } + return memo; + }, [[head(array)]]); + }; + + /** + * returns a copy of the array with all false values removed + * + * @param {Array} array - array + * @param {Function} fn - predicate function for cluster rule + */ + var compact = function (array) { + var aResult = []; + for (var idx = 0, len = array.length; idx < len; idx ++) { + if (array[idx]) { aResult.push(array[idx]); } + } + return aResult; + }; + + /** + * produces a duplicate-free version of the array + * + * @param {Array} array + */ + var unique = function (array) { + var results = []; + + for (var idx = 0, len = array.length; idx < len; idx ++) { + if (!contains(results, array[idx])) { + results.push(array[idx]); + } + } + + return results; + }; + + /** + * returns next item. + * @param {Array} array + */ + var next = function (array, item) { + var idx = indexOf(array, item); + if (idx === -1) { return null; } + + return array[idx + 1]; + }; + + /** + * returns prev item. + * @param {Array} array + */ + var prev = function (array, item) { + var idx = indexOf(array, item); + if (idx === -1) { return null; } + + return array[idx - 1]; + }; + + return { head: head, last: last, initial: initial, tail: tail, + prev: prev, next: next, find: find, contains: contains, + all: all, sum: sum, from: from, isEmpty: isEmpty, + clusterBy: clusterBy, compact: compact, unique: unique }; + })(); + + var isSupportAmd = typeof define === 'function' && define.amd; + + /** + * returns whether font is installed or not. + * + * @param {String} fontName + * @return {Boolean} + */ + var isFontInstalled = function (fontName) { + var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS'; + var $tester = $('
').css({ + position: 'absolute', + left: '-9999px', + top: '-9999px', + fontSize: '200px' + }).text('mmmmmmmmmwwwwwww').appendTo(document.body); + + var originalWidth = $tester.css('fontFamily', testFontName).width(); + var width = $tester.css('fontFamily', fontName + ',' + testFontName).width(); + + $tester.remove(); + + return originalWidth !== width; + }; + + var userAgent = navigator.userAgent; + var isMSIE = /MSIE|Trident/i.test(userAgent); + var browserVersion; + if (isMSIE) { + var matches = /MSIE (\d+[.]\d+)/.exec(userAgent); + if (matches) { + browserVersion = parseFloat(matches[1]); + } + matches = /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(userAgent); + if (matches) { + browserVersion = parseFloat(matches[1]); + } + } + + var isEdge = /Edge\/\d+/.test(userAgent); + + var hasCodeMirror = !!window.CodeMirror; + if (!hasCodeMirror && isSupportAmd && typeof require !== 'undefined') { + if (typeof require.resolve !== 'undefined') { + try { + // If CodeMirror can't be resolved, `require.resolve` will throw an + // exception and `hasCodeMirror` won't be set to `true`. + require.resolve('codemirror'); + hasCodeMirror = true; + } catch (e) { + // Do nothing. + } + } else if (typeof eval('require').specified !== 'undefined') { + hasCodeMirror = eval('require').specified('codemirror'); + } + } + + /** + * @class core.agent + * + * Object which check platform and agent + * + * @singleton + * @alternateClassName agent + */ + var agent = { + isMac: navigator.appVersion.indexOf('Mac') > -1, + isMSIE: isMSIE, + isEdge: isEdge, + isFF: !isEdge && /firefox/i.test(userAgent), + isPhantom: /PhantomJS/i.test(userAgent), + isWebkit: !isEdge && /webkit/i.test(userAgent), + isChrome: !isEdge && /chrome/i.test(userAgent), + isSafari: !isEdge && /safari/i.test(userAgent), + browserVersion: browserVersion, + jqueryVersion: parseFloat($.fn.jquery), + isSupportAmd: isSupportAmd, + hasCodeMirror: hasCodeMirror, + isFontInstalled: isFontInstalled, + isW3CRangeSupport: !!document.createRange + }; + + + var NBSP_CHAR = String.fromCharCode(160); + var ZERO_WIDTH_NBSP_CHAR = '\ufeff'; + + /** + * @class core.dom + * + * Dom functions + * + * @singleton + * @alternateClassName dom + */ + var dom = (function () { + /** + * @method isEditable + * + * returns whether node is `note-editable` or not. + * + * @param {Node} node + * @return {Boolean} + */ + var isEditable = function (node) { + return node && $(node).hasClass('note-editable'); + }; + + /** + * @method isControlSizing + * + * returns whether node is `note-control-sizing` or not. + * + * @param {Node} node + * @return {Boolean} + */ + var isControlSizing = function (node) { + return node && $(node).hasClass('note-control-sizing'); + }; + + /** + * @method makePredByNodeName + * + * returns predicate which judge whether nodeName is same + * + * @param {String} nodeName + * @return {Function} + */ + var makePredByNodeName = function (nodeName) { + nodeName = nodeName.toUpperCase(); + return function (node) { + return node && node.nodeName.toUpperCase() === nodeName; + }; + }; + + /** + * @method isText + * + * + * + * @param {Node} node + * @return {Boolean} true if node's type is text(3) + */ + var isText = function (node) { + return node && node.nodeType === 3; + }; + + /** + * @method isElement + * + * + * + * @param {Node} node + * @return {Boolean} true if node's type is element(1) + */ + var isElement = function (node) { + return node && node.nodeType === 1; + }; + + /** + * ex) br, col, embed, hr, img, input, ... + * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements + */ + var isVoid = function (node) { + return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(node.nodeName.toUpperCase()); + }; + + var isPara = function (node) { + if (isEditable(node)) { + return false; + } + + // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph + return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase()); + }; + + var isHeading = function (node) { + return node && /^H[1-7]/.test(node.nodeName.toUpperCase()); + }; + + var isPre = makePredByNodeName('PRE'); + + var isLi = makePredByNodeName('LI'); + + var isPurePara = function (node) { + return isPara(node) && !isLi(node); + }; + + var isTable = makePredByNodeName('TABLE'); + + var isData = makePredByNodeName('DATA'); + + var isInline = function (node) { + return !isBodyContainer(node) && + !isList(node) && + !isHr(node) && + !isPara(node) && + !isTable(node) && + !isBlockquote(node) && + !isData(node); + }; + + var isList = function (node) { + return node && /^UL|^OL/.test(node.nodeName.toUpperCase()); + }; + + var isHr = makePredByNodeName('HR'); + + var isCell = function (node) { + return node && /^TD|^TH/.test(node.nodeName.toUpperCase()); + }; + + var isBlockquote = makePredByNodeName('BLOCKQUOTE'); + + var isBodyContainer = function (node) { + return isCell(node) || isBlockquote(node) || isEditable(node); + }; + + var isAnchor = makePredByNodeName('A'); + + var isParaInline = function (node) { + return isInline(node) && !!ancestor(node, isPara); + }; + + var isBodyInline = function (node) { + return isInline(node) && !ancestor(node, isPara); + }; + + var isBody = makePredByNodeName('BODY'); + + /** + * returns whether nodeB is closest sibling of nodeA + * + * @param {Node} nodeA + * @param {Node} nodeB + * @return {Boolean} + */ + var isClosestSibling = function (nodeA, nodeB) { + return nodeA.nextSibling === nodeB || + nodeA.previousSibling === nodeB; + }; + + /** + * returns array of closest siblings with node + * + * @param {Node} node + * @param {function} [pred] - predicate function + * @return {Node[]} + */ + var withClosestSiblings = function (node, pred) { + pred = pred || func.ok; + + var siblings = []; + if (node.previousSibling && pred(node.previousSibling)) { + siblings.push(node.previousSibling); + } + siblings.push(node); + if (node.nextSibling && pred(node.nextSibling)) { + siblings.push(node.nextSibling); + } + return siblings; + }; + + /** + * blank HTML for cursor position + * - [workaround] old IE only works with   + * - [workaround] IE11 and other browser works with bogus br + */ + var blankHTML = agent.isMSIE && agent.browserVersion < 11 ? ' ' : '
'; + + /** + * @method nodeLength + * + * returns #text's text size or element's childNodes size + * + * @param {Node} node + */ + var nodeLength = function (node) { + if (isText(node)) { + return node.nodeValue.length; + } + + if (node) { + return node.childNodes.length; + } + + return 0; + + }; + + /** + * returns whether node is empty or not. + * + * @param {Node} node + * @return {Boolean} + */ + var isEmpty = function (node) { + var len = nodeLength(node); + + if (len === 0) { + return true; + } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) { + // ex)


,
+ return true; + } else if (list.all(node.childNodes, isText) && node.innerHTML === '') { + // ex)

, + return true; + } + + return false; + }; + + /** + * padding blankHTML if node is empty (for cursor position) + */ + var paddingBlankHTML = function (node) { + if (!isVoid(node) && !nodeLength(node)) { + node.innerHTML = blankHTML; + } + }; + + /** + * find nearest ancestor predicate hit + * + * @param {Node} node + * @param {Function} pred - predicate function + */ + var ancestor = function (node, pred) { + while (node) { + if (pred(node)) { return node; } + if (isEditable(node)) { break; } + + node = node.parentNode; + } + return null; + }; + + /** + * find nearest ancestor only single child blood line and predicate hit + * + * @param {Node} node + * @param {Function} pred - predicate function + */ + var singleChildAncestor = function (node, pred) { + node = node.parentNode; + + while (node) { + if (nodeLength(node) !== 1) { break; } + if (pred(node)) { return node; } + if (isEditable(node)) { break; } + + node = node.parentNode; + } + return null; + }; + + /** + * returns new array of ancestor nodes (until predicate hit). + * + * @param {Node} node + * @param {Function} [optional] pred - predicate function + */ + var listAncestor = function (node, pred) { + pred = pred || func.fail; + + var ancestors = []; + ancestor(node, function (el) { + if (!isEditable(el)) { + ancestors.push(el); + } + + return pred(el); + }); + return ancestors; + }; + + /** + * find farthest ancestor predicate hit + */ + var lastAncestor = function (node, pred) { + var ancestors = listAncestor(node); + return list.last(ancestors.filter(pred)); + }; + + /** + * returns common ancestor node between two nodes. + * + * @param {Node} nodeA + * @param {Node} nodeB + */ + var commonAncestor = function (nodeA, nodeB) { + var ancestors = listAncestor(nodeA); + for (var n = nodeB; n; n = n.parentNode) { + if ($.inArray(n, ancestors) > -1) { return n; } + } + return null; // difference document area + }; + + /** + * listing all previous siblings (until predicate hit). + * + * @param {Node} node + * @param {Function} [optional] pred - predicate function + */ + var listPrev = function (node, pred) { + pred = pred || func.fail; + + var nodes = []; + while (node) { + if (pred(node)) { break; } + nodes.push(node); + node = node.previousSibling; + } + return nodes; + }; + + /** + * listing next siblings (until predicate hit). + * + * @param {Node} node + * @param {Function} [pred] - predicate function + */ + var listNext = function (node, pred) { + pred = pred || func.fail; + + var nodes = []; + while (node) { + if (pred(node)) { break; } + nodes.push(node); + node = node.nextSibling; + } + return nodes; + }; + + /** + * listing descendant nodes + * + * @param {Node} node + * @param {Function} [pred] - predicate function + */ + var listDescendant = function (node, pred) { + var descendants = []; + pred = pred || func.ok; + + // start DFS(depth first search) with node + (function fnWalk(current) { + if (node !== current && pred(current)) { + descendants.push(current); + } + for (var idx = 0, len = current.childNodes.length; idx < len; idx++) { + fnWalk(current.childNodes[idx]); + } + })(node); + + return descendants; + }; + + /** + * wrap node with new tag. + * + * @param {Node} node + * @param {Node} tagName of wrapper + * @return {Node} - wrapper + */ + var wrap = function (node, wrapperName) { + var parent = node.parentNode; + var wrapper = $('<' + wrapperName + '>')[0]; + + parent.insertBefore(wrapper, node); + wrapper.appendChild(node); + + return wrapper; + }; + + /** + * insert node after preceding + * + * @param {Node} node + * @param {Node} preceding - predicate function + */ + var insertAfter = function (node, preceding) { + var next = preceding.nextSibling, parent = preceding.parentNode; + if (next) { + parent.insertBefore(node, next); + } else { + parent.appendChild(node); + } + return node; + }; + + /** + * append elements. + * + * @param {Node} node + * @param {Collection} aChild + */ + var appendChildNodes = function (node, aChild) { + $.each(aChild, function (idx, child) { + node.appendChild(child); + }); + return node; + }; + + /** + * returns whether boundaryPoint is left edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isLeftEdgePoint = function (point) { + return point.offset === 0; + }; + + /** + * returns whether boundaryPoint is right edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isRightEdgePoint = function (point) { + return point.offset === nodeLength(point.node); + }; + + /** + * returns whether boundaryPoint is edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isEdgePoint = function (point) { + return isLeftEdgePoint(point) || isRightEdgePoint(point); + }; + + /** + * returns whether node is left edge of ancestor or not. + * + * @param {Node} node + * @param {Node} ancestor + * @return {Boolean} + */ + var isLeftEdgeOf = function (node, ancestor) { + while (node && node !== ancestor) { + if (position(node) !== 0) { + return false; + } + node = node.parentNode; + } + + return true; + }; + + /** + * returns whether node is right edge of ancestor or not. + * + * @param {Node} node + * @param {Node} ancestor + * @return {Boolean} + */ + var isRightEdgeOf = function (node, ancestor) { + if (!ancestor) { + return false; + } + while (node && node !== ancestor) { + if (position(node) !== nodeLength(node.parentNode) - 1) { + return false; + } + node = node.parentNode; + } + + return true; + }; + + /** + * returns whether point is left edge of ancestor or not. + * @param {BoundaryPoint} point + * @param {Node} ancestor + * @return {Boolean} + */ + var isLeftEdgePointOf = function (point, ancestor) { + return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor); + }; + + /** + * returns whether point is right edge of ancestor or not. + * @param {BoundaryPoint} point + * @param {Node} ancestor + * @return {Boolean} + */ + var isRightEdgePointOf = function (point, ancestor) { + return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor); + }; + + /** + * returns offset from parent. + * + * @param {Node} node + */ + var position = function (node) { + var offset = 0; + while ((node = node.previousSibling)) { + offset += 1; + } + return offset; + }; + + var hasChildren = function (node) { + return !!(node && node.childNodes && node.childNodes.length); + }; + + /** + * returns previous boundaryPoint + * + * @param {BoundaryPoint} point + * @param {Boolean} isSkipInnerOffset + * @return {BoundaryPoint} + */ + var prevPoint = function (point, isSkipInnerOffset) { + var node, offset; + + if (point.offset === 0) { + if (isEditable(point.node)) { + return null; + } + + node = point.node.parentNode; + offset = position(point.node); + } else if (hasChildren(point.node)) { + node = point.node.childNodes[point.offset - 1]; + offset = nodeLength(node); + } else { + node = point.node; + offset = isSkipInnerOffset ? 0 : point.offset - 1; + } + + return { + node: node, + offset: offset + }; + }; + + /** + * returns next boundaryPoint + * + * @param {BoundaryPoint} point + * @param {Boolean} isSkipInnerOffset + * @return {BoundaryPoint} + */ + var nextPoint = function (point, isSkipInnerOffset) { + var node, offset; + + if (nodeLength(point.node) === point.offset) { + if (isEditable(point.node)) { + return null; + } + + node = point.node.parentNode; + offset = position(point.node) + 1; + } else if (hasChildren(point.node)) { + node = point.node.childNodes[point.offset]; + offset = 0; + } else { + node = point.node; + offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1; + } + + return { + node: node, + offset: offset + }; + }; + + /** + * returns whether pointA and pointB is same or not. + * + * @param {BoundaryPoint} pointA + * @param {BoundaryPoint} pointB + * @return {Boolean} + */ + var isSamePoint = function (pointA, pointB) { + return pointA.node === pointB.node && pointA.offset === pointB.offset; + }; + + /** + * returns whether point is visible (can set cursor) or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + var isVisiblePoint = function (point) { + if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) { + return true; + } + + var leftNode = point.node.childNodes[point.offset - 1]; + var rightNode = point.node.childNodes[point.offset]; + if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) { + return true; + } + + return false; + }; + + /** + * @method prevPointUtil + * + * @param {BoundaryPoint} point + * @param {Function} pred + * @return {BoundaryPoint} + */ + var prevPointUntil = function (point, pred) { + while (point) { + if (pred(point)) { + return point; + } + + point = prevPoint(point); + } + + return null; + }; + + /** + * @method nextPointUntil + * + * @param {BoundaryPoint} point + * @param {Function} pred + * @return {BoundaryPoint} + */ + var nextPointUntil = function (point, pred) { + while (point) { + if (pred(point)) { + return point; + } + + point = nextPoint(point); + } + + return null; + }; + + /** + * returns whether point has character or not. + * + * @param {Point} point + * @return {Boolean} + */ + var isCharPoint = function (point) { + if (!isText(point.node)) { + return false; + } + + var ch = point.node.nodeValue.charAt(point.offset - 1); + return ch && (ch !== ' ' && ch !== NBSP_CHAR); + }; + + /** + * @method walkPoint + * + * @param {BoundaryPoint} startPoint + * @param {BoundaryPoint} endPoint + * @param {Function} handler + * @param {Boolean} isSkipInnerOffset + */ + var walkPoint = function (startPoint, endPoint, handler, isSkipInnerOffset) { + var point = startPoint; + + while (point) { + handler(point); + + if (isSamePoint(point, endPoint)) { + break; + } + + var isSkipOffset = isSkipInnerOffset && + startPoint.node !== point.node && + endPoint.node !== point.node; + point = nextPoint(point, isSkipOffset); + } + }; + + /** + * @method makeOffsetPath + * + * return offsetPath(array of offset) from ancestor + * + * @param {Node} ancestor - ancestor node + * @param {Node} node + */ + var makeOffsetPath = function (ancestor, node) { + var ancestors = listAncestor(node, func.eq(ancestor)); + return ancestors.map(position).reverse(); + }; + + /** + * @method fromOffsetPath + * + * return element from offsetPath(array of offset) + * + * @param {Node} ancestor - ancestor node + * @param {array} offsets - offsetPath + */ + var fromOffsetPath = function (ancestor, offsets) { + var current = ancestor; + for (var i = 0, len = offsets.length; i < len; i++) { + if (current.childNodes.length <= offsets[i]) { + current = current.childNodes[current.childNodes.length - 1]; + } else { + current = current.childNodes[offsets[i]]; + } + } + return current; + }; + + /** + * @method splitNode + * + * split element or #text + * + * @param {BoundaryPoint} point + * @param {Object} [options] + * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false + * @param {Boolean} [options.isNotSplitEdgePoint] - default: false + * @return {Node} right node of boundaryPoint + */ + var splitNode = function (point, options) { + var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML; + var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint; + + // edge case + if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) { + if (isLeftEdgePoint(point)) { + return point.node; + } else if (isRightEdgePoint(point)) { + return point.node.nextSibling; + } + } + + // split #text + if (isText(point.node)) { + return point.node.splitText(point.offset); + } else { + var childNode = point.node.childNodes[point.offset]; + var clone = insertAfter(point.node.cloneNode(false), point.node); + appendChildNodes(clone, listNext(childNode)); + + if (!isSkipPaddingBlankHTML) { + paddingBlankHTML(point.node); + paddingBlankHTML(clone); + } + + return clone; + } + }; + + /** + * @method splitTree + * + * split tree by point + * + * @param {Node} root - split root + * @param {BoundaryPoint} point + * @param {Object} [options] + * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false + * @param {Boolean} [options.isNotSplitEdgePoint] - default: false + * @return {Node} right node of boundaryPoint + */ + var splitTree = function (root, point, options) { + // ex) [#text, ,

] + var ancestors = listAncestor(point.node, func.eq(root)); + + if (!ancestors.length) { + return null; + } else if (ancestors.length === 1) { + return splitNode(point, options); + } + + return ancestors.reduce(function (node, parent) { + if (node === point.node) { + node = splitNode(point, options); + } + + return splitNode({ + node: parent, + offset: node ? dom.position(node) : nodeLength(parent) + }, options); + }); + }; + + /** + * split point + * + * @param {Point} point + * @param {Boolean} isInline + * @return {Object} + */ + var splitPoint = function (point, isInline) { + // find splitRoot, container + // - inline: splitRoot is a child of paragraph + // - block: splitRoot is a child of bodyContainer + var pred = isInline ? isPara : isBodyContainer; + var ancestors = listAncestor(point.node, pred); + var topAncestor = list.last(ancestors) || point.node; + + var splitRoot, container; + if (pred(topAncestor)) { + splitRoot = ancestors[ancestors.length - 2]; + container = topAncestor; + } else { + splitRoot = topAncestor; + container = splitRoot.parentNode; + } + + // if splitRoot is exists, split with splitTree + var pivot = splitRoot && splitTree(splitRoot, point, { + isSkipPaddingBlankHTML: isInline, + isNotSplitEdgePoint: isInline + }); + + // if container is point.node, find pivot with point.offset + if (!pivot && container === point.node) { + pivot = point.node.childNodes[point.offset]; + } + + return { + rightNode: pivot, + container: container + }; + }; + + var create = function (nodeName) { + return document.createElement(nodeName); + }; + + var createText = function (text) { + return document.createTextNode(text); + }; + + /** + * @method remove + * + * remove node, (isRemoveChild: remove child or not) + * + * @param {Node} node + * @param {Boolean} isRemoveChild + */ + var remove = function (node, isRemoveChild) { + if (!node || !node.parentNode) { return; } + if (node.removeNode) { return node.removeNode(isRemoveChild); } + + var parent = node.parentNode; + if (!isRemoveChild) { + var nodes = []; + var i, len; + for (i = 0, len = node.childNodes.length; i < len; i++) { + nodes.push(node.childNodes[i]); + } + + for (i = 0, len = nodes.length; i < len; i++) { + parent.insertBefore(nodes[i], node); + } + } + + parent.removeChild(node); + }; + + /** + * @method removeWhile + * + * @param {Node} node + * @param {Function} pred + */ + var removeWhile = function (node, pred) { + while (node) { + if (isEditable(node) || !pred(node)) { + break; + } + + var parent = node.parentNode; + remove(node); + node = parent; + } + }; + + /** + * @method replace + * + * replace node with provided nodeName + * + * @param {Node} node + * @param {String} nodeName + * @return {Node} - new node + */ + var replace = function (node, nodeName) { + if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) { + return node; + } + + var newNode = create(nodeName); + + if (node.style.cssText) { + newNode.style.cssText = node.style.cssText; + } + + appendChildNodes(newNode, list.from(node.childNodes)); + insertAfter(newNode, node); + remove(node); + + return newNode; + }; + + var isTextarea = makePredByNodeName('TEXTAREA'); + + /** + * @param {jQuery} $node + * @param {Boolean} [stripLinebreaks] - default: false + */ + var value = function ($node, stripLinebreaks) { + var val = isTextarea($node[0]) ? $node.val() : $node.html(); + if (stripLinebreaks) { + return val.replace(/[\n\r]/g, ''); + } + return val; + }; + + /** + * @method html + * + * get the HTML contents of node + * + * @param {jQuery} $node + * @param {Boolean} [isNewlineOnBlock] + */ + var html = function ($node, isNewlineOnBlock) { + var markup = value($node); + + if (isNewlineOnBlock) { + var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g; + markup = markup.replace(regexTag, function (match, endSlash, name) { + name = name.toUpperCase(); + var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) && + !!endSlash; + var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name); + + return match + ((isEndOfInlineContainer || isBlockNode) ? '\n' : ''); + }); + markup = $.trim(markup); + } + + return markup; + }; + + var posFromPlaceholder = function (placeholder) { + var $placeholder = $(placeholder); + var pos = $placeholder.offset(); + var height = $placeholder.outerHeight(true); // include margin + + return { + left: pos.left, + top: pos.top + height + }; + }; + + var attachEvents = function ($node, events) { + Object.keys(events).forEach(function (key) { + $node.on(key, events[key]); + }); + }; + + var detachEvents = function ($node, events) { + Object.keys(events).forEach(function (key) { + $node.off(key, events[key]); + }); + }; + + return { + /** @property {String} NBSP_CHAR */ + NBSP_CHAR: NBSP_CHAR, + /** @property {String} ZERO_WIDTH_NBSP_CHAR */ + ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR, + /** @property {String} blank */ + blank: blankHTML, + /** @property {String} emptyPara */ + emptyPara: '

' + blankHTML + '

', + makePredByNodeName: makePredByNodeName, + isEditable: isEditable, + isControlSizing: isControlSizing, + isText: isText, + isElement: isElement, + isVoid: isVoid, + isPara: isPara, + isPurePara: isPurePara, + isHeading: isHeading, + isInline: isInline, + isBlock: func.not(isInline), + isBodyInline: isBodyInline, + isBody: isBody, + isParaInline: isParaInline, + isPre: isPre, + isList: isList, + isTable: isTable, + isData: isData, + isCell: isCell, + isBlockquote: isBlockquote, + isBodyContainer: isBodyContainer, + isAnchor: isAnchor, + isDiv: makePredByNodeName('DIV'), + isLi: isLi, + isBR: makePredByNodeName('BR'), + isSpan: makePredByNodeName('SPAN'), + isB: makePredByNodeName('B'), + isU: makePredByNodeName('U'), + isS: makePredByNodeName('S'), + isI: makePredByNodeName('I'), + isImg: makePredByNodeName('IMG'), + isTextarea: isTextarea, + isEmpty: isEmpty, + isEmptyAnchor: func.and(isAnchor, isEmpty), + isClosestSibling: isClosestSibling, + withClosestSiblings: withClosestSiblings, + nodeLength: nodeLength, + isLeftEdgePoint: isLeftEdgePoint, + isRightEdgePoint: isRightEdgePoint, + isEdgePoint: isEdgePoint, + isLeftEdgeOf: isLeftEdgeOf, + isRightEdgeOf: isRightEdgeOf, + isLeftEdgePointOf: isLeftEdgePointOf, + isRightEdgePointOf: isRightEdgePointOf, + prevPoint: prevPoint, + nextPoint: nextPoint, + isSamePoint: isSamePoint, + isVisiblePoint: isVisiblePoint, + prevPointUntil: prevPointUntil, + nextPointUntil: nextPointUntil, + isCharPoint: isCharPoint, + walkPoint: walkPoint, + ancestor: ancestor, + singleChildAncestor: singleChildAncestor, + listAncestor: listAncestor, + lastAncestor: lastAncestor, + listNext: listNext, + listPrev: listPrev, + listDescendant: listDescendant, + commonAncestor: commonAncestor, + wrap: wrap, + insertAfter: insertAfter, + appendChildNodes: appendChildNodes, + position: position, + hasChildren: hasChildren, + makeOffsetPath: makeOffsetPath, + fromOffsetPath: fromOffsetPath, + splitTree: splitTree, + splitPoint: splitPoint, + create: create, + createText: createText, + remove: remove, + removeWhile: removeWhile, + replace: replace, + html: html, + value: value, + posFromPlaceholder: posFromPlaceholder, + attachEvents: attachEvents, + detachEvents: detachEvents + }; + })(); + + /** + * @param {jQuery} $note + * @param {Object} options + * @return {Context} + */ + var Context = function ($note, options) { + var self = this; + + var ui = $.summernote.ui; + this.memos = {}; + this.modules = {}; + this.layoutInfo = {}; + this.options = options; + + /** + * create layout and initialize modules and other resources + */ + this.initialize = function () { + this.layoutInfo = ui.createLayout($note, options); + this._initialize(); + $note.hide(); + return this; + }; + + /** + * destroy modules and other resources and remove layout + */ + this.destroy = function () { + this._destroy(); + $note.removeData('summernote'); + ui.removeLayout($note, this.layoutInfo); + }; + + /** + * destory modules and other resources and initialize it again + */ + this.reset = function () { + var disabled = self.isDisabled(); + this.code(dom.emptyPara); + this._destroy(); + this._initialize(); + + if (disabled) { + self.disable(); + } + }; + + this._initialize = function () { + // add optional buttons + var buttons = $.extend({}, this.options.buttons); + Object.keys(buttons).forEach(function (key) { + self.memo('button.' + key, buttons[key]); + }); + + var modules = $.extend({}, this.options.modules, $.summernote.plugins || {}); + + // add and initialize modules + Object.keys(modules).forEach(function (key) { + self.module(key, modules[key], true); + }); + + Object.keys(this.modules).forEach(function (key) { + self.initializeModule(key); + }); + }; + + this._destroy = function () { + // destroy modules with reversed order + Object.keys(this.modules).reverse().forEach(function (key) { + self.removeModule(key); + }); + + Object.keys(this.memos).forEach(function (key) { + self.removeMemo(key); + }); + }; + + this.code = function (html) { + var isActivated = this.invoke('codeview.isActivated'); + + if (html === undefined) { + this.invoke('codeview.sync'); + return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html(); + } else { + if (isActivated) { + this.layoutInfo.codable.val(html); + } else { + this.layoutInfo.editable.html(html); + } + $note.val(html); + this.triggerEvent('change', html); + } + }; + + this.isDisabled = function () { + return this.layoutInfo.editable.attr('contenteditable') === 'false'; + }; + + this.enable = function () { + this.layoutInfo.editable.attr('contenteditable', true); + this.invoke('toolbar.activate', true); + }; + + this.disable = function () { + // close codeview if codeview is opend + if (this.invoke('codeview.isActivated')) { + this.invoke('codeview.deactivate'); + } + this.layoutInfo.editable.attr('contenteditable', false); + this.invoke('toolbar.deactivate', true); + }; + + this.triggerEvent = function () { + var namespace = list.head(arguments); + var args = list.tail(list.from(arguments)); + + var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')]; + if (callback) { + callback.apply($note[0], args); + } + $note.trigger('summernote.' + namespace, args); + }; + + this.initializeModule = function (key) { + var module = this.modules[key]; + module.shouldInitialize = module.shouldInitialize || func.ok; + if (!module.shouldInitialize()) { + return; + } + + // initialize module + if (module.initialize) { + module.initialize(); + } + + // attach events + if (module.events) { + dom.attachEvents($note, module.events); + } + }; + + this.module = function (key, ModuleClass, withoutIntialize) { + if (arguments.length === 1) { + return this.modules[key]; + } + + this.modules[key] = new ModuleClass(this); + + if (!withoutIntialize) { + this.initializeModule(key); + } + }; + + this.removeModule = function (key) { + var module = this.modules[key]; + if (module.shouldInitialize()) { + if (module.events) { + dom.detachEvents($note, module.events); + } + + if (module.destroy) { + module.destroy(); + } + } + + delete this.modules[key]; + }; + + this.memo = function (key, obj) { + if (arguments.length === 1) { + return this.memos[key]; + } + this.memos[key] = obj; + }; + + this.removeMemo = function (key) { + if (this.memos[key] && this.memos[key].destroy) { + this.memos[key].destroy(); + } + + delete this.memos[key]; + }; + + this.createInvokeHandler = function (namespace, value) { + return function (event) { + event.preventDefault(); + self.invoke(namespace, value || $(event.target).closest('[data-value]').data('value')); + }; + }; + + this.invoke = function () { + var namespace = list.head(arguments); + var args = list.tail(list.from(arguments)); + + var splits = namespace.split('.'); + var hasSeparator = splits.length > 1; + var moduleName = hasSeparator && list.head(splits); + var methodName = hasSeparator ? list.last(splits) : list.head(splits); + + var module = this.modules[moduleName || 'editor']; + if (!moduleName && this[methodName]) { + return this[methodName].apply(this, args); + } else if (module && module[methodName] && module.shouldInitialize()) { + return module[methodName].apply(module, args); + } + }; + + return this.initialize(); + }; + + $.fn.extend({ + /** + * Summernote API + * + * @param {Object|String} + * @return {this} + */ + summernote: function () { + var type = $.type(list.head(arguments)); + var isExternalAPICalled = type === 'string'; + var hasInitOptions = type === 'object'; + + var options = hasInitOptions ? list.head(arguments) : {}; + + options = $.extend({}, $.summernote.options, options); + options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]); + options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons); + + this.each(function (idx, note) { + var $note = $(note); + if (!$note.data('summernote')) { + var context = new Context($note, options); + $note.data('summernote', context); + $note.data('summernote').triggerEvent('init', context.layoutInfo); + } + }); + + var $note = this.first(); + if ($note.length) { + var context = $note.data('summernote'); + if (isExternalAPICalled) { + return context.invoke.apply(context, list.from(arguments)); + } else if (options.focus) { + context.invoke('editor.focus'); + } + } + + return this; + } + }); + + + var Renderer = function (markup, children, options, callback) { + this.render = function ($parent) { + var $node = $(markup); + + if (options && options.contents) { + $node.html(options.contents); + } + + if (options && options.className) { + $node.addClass(options.className); + } + + if (options && options.data) { + $.each(options.data, function (k, v) { + $node.attr('data-' + k, v); + }); + } + + if (options && options.click) { + $node.on('click', options.click); + } + + if (children) { + var $container = $node.find('.note-children-container'); + children.forEach(function (child) { + child.render($container.length ? $container : $node); + }); + } + + if (callback) { + callback($node, options); + } + + if (options && options.callback) { + options.callback($node); + } + + if ($parent) { + $parent.append($node); + } + + return $node; + }; + }; + + var renderer = { + create: function (markup, callback) { + return function () { + var children = $.isArray(arguments[0]) ? arguments[0] : []; + var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0]; + if (options && options.children) { + children = options.children; + } + return new Renderer(markup, children, options, callback); + }; + } + }; + + var editor = renderer.create('
'); + var toolbar = renderer.create('
'); + var editingArea = renderer.create('
'); + var codable = renderer.create('
-{#{% endblock %}#} + + + + + + + + diff --git a/users/templates/contractor_profile.html b/users/templates/contractor_profile.html index aae3905..e6ecd5b 100644 --- a/users/templates/contractor_profile.html +++ b/users/templates/contractor_profile.html @@ -3,6 +3,9 @@ {% load specializtions_tags %} {% load thumbnail %} +{% block head_css %} + +{% endblock %} {% block content %} {% include 'partials/header.html' %} @@ -141,6 +144,24 @@ + + + + + + + + + + + + + + + + + +
{% if contractor.pk == request.user.pk %} @@ -244,6 +265,24 @@
+ + + + + + + + + + + + + + + + + +
{% if contractor.pk == request.user.pk %}
@@ -308,7 +347,6 @@ {% endfor %} {% endif %} - ; +
').addClass('note-specialchar-node'); + var $tr = (idx % COLUMN_LENGTH === 0) ? $('