From 662bf16a4f870c2e2a67a718b808d04f77cb43ad Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Thu, 3 Nov 2016 16:13:03 +0000 Subject: [PATCH 001/108] Fixed issue: U4-8664 TnyMCE RTE is not in the scope of UI localization. The rich text editor previously had no knowledge of the current localisation region. The complexity arrived from the $locale regions not having a direct mapping to TinyMce regions. $locale regions are in the format of "de-de", "ru-ru", "en-gb", "en-us", etc. The TinyMce locales are in the format of "de", "ru" and "en". I've added some code in rte.controller.js to map from the former to the latter, but a fallback to "en" will need to be added if the current locale isn't supported by TinyMce, otherwise a runtime crash will occur. The same is true of the codemirror plugin for TinyMce. Language files don't exist for the plugin, but they are expected when different locales are provided. I have therefore created placeholders that are equivalent to the TinyMce language files, but all are currently copied from english. --- .../lib/tinymce/langs/da.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/de.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/en.js | 1 + .../lib/tinymce/langs/en_us.js | 1 + .../lib/tinymce/langs/fi.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/fr.js | 1 + .../lib/tinymce/langs/he.js | 1 + .../lib/tinymce/langs/it.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/ja.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/nl.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/no.js | 1 + .../lib/tinymce/langs/pl.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/pt.js | 1 + .../lib/tinymce/langs/ru.js | 219 ++++++++++++++++++ .../lib/tinymce/langs/sv.js | 1 + .../lib/tinymce/langs/zh.js | 1 + .../tinymce/plugins/codemirror/langs/da.js | 8 + .../tinymce/plugins/codemirror/langs/de.js | 8 + .../tinymce/plugins/codemirror/langs/en_us.js | 8 + .../tinymce/plugins/codemirror/langs/fi.js | 8 + .../tinymce/plugins/codemirror/langs/fr.js | 8 + .../tinymce/plugins/codemirror/langs/he.js | 8 + .../tinymce/plugins/codemirror/langs/it.js | 8 + .../tinymce/plugins/codemirror/langs/ja.js | 8 + .../tinymce/plugins/codemirror/langs/nl.js | 8 + .../tinymce/plugins/codemirror/langs/no.js | 8 + .../tinymce/plugins/codemirror/langs/pl.js | 8 + .../tinymce/plugins/codemirror/langs/pt.js | 8 + .../tinymce/plugins/codemirror/langs/ru.js | 8 + .../tinymce/plugins/codemirror/langs/sv.js | 8 + .../tinymce/plugins/codemirror/langs/zh.js | 8 + .../propertyeditors/rte/rte.controller.js | 30 ++- 32 files changed, 1902 insertions(+), 8 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/da.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/de.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/en.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/en_us.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/fi.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/fr.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/he.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/it.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/ja.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/nl.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/no.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/pl.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/pt.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/ru.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/sv.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/langs/zh.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/da.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/de.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/en_us.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fi.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fr.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/he.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/it.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ja.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/nl.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/no.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pl.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pt.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ru.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/sv.js create mode 100644 src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/zh.js diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/da.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/da.js new file mode 100644 index 0000000000..d295bf5750 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/da.js @@ -0,0 +1,219 @@ +tinymce.addI18n('da',{ +"Cut": "Klip", +"Heading 5": "Overskrift 5", +"Header 2": "Overskrift 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Din browser underst\u00f8tter ikke direkte adgang til clipboard. Benyt Ctrl+X\/C\/ keybord shortcuts i stedet for.", +"Heading 4": "Overskrift 4", +"Div": "Div", +"Heading 2": "Overskrift 2", +"Paste": "Inds\u00e6t", +"Close": "Luk", +"Font Family": "Skrifttype", +"Pre": "Pre", +"Align right": "H\u00f8jrejusteret", +"New document": "Nyt dokument", +"Blockquote": "Indrykning", +"Numbered list": "Nummerering", +"Heading 1": "Overskrift 1", +"Headings": "Overskrifter", +"Increase indent": "For\u00f8g indrykning", +"Formats": "Formater", +"Headers": "Overskrifter", +"Select all": "V\u00e6lg alle", +"Header 3": "Overskrift 3", +"Blocks": "Blokke", +"Undo": "Fortryd", +"Strikethrough": "Gennemstreg", +"Bullet list": "Punkt tegn", +"Header 1": "Overskrift 1", +"Superscript": "H\u00e6vet", +"Clear formatting": "Nulstil formattering", +"Font Sizes": "Skriftst\u00f8rrelse", +"Subscript": "S\u00e6nket", +"Header 6": "Overskrift 6", +"Redo": "Genopret", +"Paragraph": "S\u00e6tning", +"Ok": "Ok", +"Bold": "Fed", +"Code": "Code", +"Italic": "Kursiv", +"Align center": "Centreret", +"Header 5": "Overskrift 5", +"Heading 6": "Overskrift 6", +"Heading 3": "Overskrift 3", +"Decrease indent": "Formindsk indrykning", +"Header 4": "Overskrift 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "S\u00e6t ind er indstillet til at inds\u00e6tte som ren tekst. Indhold bliver nu indsat uden formatering indtil du \u00e6ndrer indstillingen.", +"Underline": "Understreg", +"Cancel": "Fortryd", +"Justify": "Justering", +"Inline": "Inline", +"Copy": "Kopier", +"Align left": "Venstrejusteret", +"Visual aids": "Visuel hj\u00e6lp", +"Lower Greek": "Lower Gr\u00e6sk", +"Square": "Kvadrat", +"Default": "Standard", +"Lower Alpha": "Lower Alpha", +"Circle": "Cirkel", +"Disc": "Disk", +"Upper Alpha": "Upper Alpha", +"Upper Roman": "Upper Roman", +"Lower Roman": "Lower Roman", +"Name": "Navn", +"Anchor": "Anchor", +"You have unsaved changes are you sure you want to navigate away?": "Du har ikke gemte \u00e6ndringer. Er du sikker p\u00e5 at du vil forts\u00e6tte?", +"Restore last draft": "Genopret sidste kladde", +"Special character": "Specielle tegn", +"Source code": "Kildekode", +"B": "B", +"R": "R", +"G": "G", +"Color": "Farve", +"Right to left": "H\u00f8jre til venstre", +"Left to right": "Venstre til h\u00f8jre", +"Emoticons": "Emot-ikoner", +"Robots": "Robotter", +"Document properties": "Dokument egenskaber", +"Title": "Titel", +"Keywords": "S\u00f8geord", +"Encoding": "Kodning", +"Description": "Beskrivelse", +"Author": "Forfatter", +"Fullscreen": "Fuldsk\u00e6rm", +"Horizontal line": "Vandret linie", +"Horizontal space": "Vandret afstand", +"Insert\/edit image": "Inds\u00e6t\/ret billede", +"General": "Generet", +"Advanced": "Avanceret", +"Source": "Kilde", +"Border": "Kant", +"Constrain proportions": "Behold propertioner", +"Vertical space": "Lodret afstand", +"Image description": "Billede beskrivelse", +"Style": "Stil", +"Dimensions": "Dimensioner", +"Insert image": "Inds\u00e6t billede", +"Zoom in": "Zoom ind", +"Contrast": "Kontrast", +"Back": "Tilbage", +"Gamma": "Gamma", +"Flip horizontally": "Flip horisontalt", +"Resize": "Skaler", +"Sharpen": "G\u00f8r skarpere", +"Zoom out": "Zoom ud", +"Image options": "Billede indstillinger", +"Apply": "Anvend", +"Brightness": "Lysstyrke", +"Rotate clockwise": "Drej med urets retning", +"Rotate counterclockwise": "Drej modsat urets retning", +"Edit image": "Rediger billede", +"Color levels": "Farve niveauer", +"Crop": "Besk\u00e6r", +"Orientation": "Retning", +"Flip vertically": "Flip vertikalt", +"Invert": "Inverter", +"Insert date\/time": "Inds\u00e6t dato\/klokkeslet", +"Remove link": "Fjern link", +"Url": "Url", +"Text to display": "Vis tekst", +"Anchors": "Ankre", +"Insert link": "Inds\u00e6t link", +"New window": "Nyt vindue", +"None": "Ingen", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URLen som du angav ser ud til at v\u00e6re et eksternt link. \u00d8nsker du at tilf\u00f8je det kr\u00e6vede prefiks http:\/\/ ?", +"Target": "Target", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URLen som du angav ser ud til at v\u00e6re en email adresse. \u00d8nsker du at tilf\u00f8je det kr\u00e6vede prefiks mailto: ?", +"Insert\/edit link": "Inds\u00e6t\/ret link", +"Insert\/edit video": "Inds\u00e6t\/ret video", +"Poster": "Poster", +"Alternative source": "Alternativ kilde", +"Paste your embed code below:": "Inds\u00e6t din embed kode herunder:", +"Insert video": "Inds\u00e6t video", +"Embed": "Integrer", +"Nonbreaking space": "H\u00e5rdt mellemrum", +"Page break": "Sideskift", +"Paste as text": "Inds\u00e6t som ren tekst", +"Preview": "Forh\u00e5ndsvisning", +"Print": "Udskriv", +"Save": "Gem", +"Could not find the specified string.": "Kunne ikke finde s\u00f8getekst", +"Replace": "Erstat", +"Next": "N\u00e6ste", +"Whole words": "Hele ord", +"Find and replace": "Find og erstat", +"Replace with": "Erstat med", +"Find": "Find", +"Replace all": "Erstat alt", +"Match case": "STORE og sm\u00e5 bogstaver", +"Prev": "Forrige", +"Spellcheck": "Stavekontrol", +"Finish": "F\u00e6rdig", +"Ignore all": "Ignorer alt", +"Ignore": "Ignorer", +"Add to Dictionary": "Tilf\u00f8j til ordbog", +"Insert row before": "Inds\u00e6t r\u00e6kke f\u00f8r", +"Rows": "R\u00e6kker", +"Height": "H\u00f8jde", +"Paste row after": "Inds\u00e6t r\u00e6kke efter", +"Alignment": "Tilpasning", +"Border color": "Kant farve", +"Column group": "Kolonne gruppe", +"Row": "R\u00e6kke", +"Insert column before": "Inds\u00e6t kolonne f\u00f8r", +"Split cell": "Split celle", +"Cell padding": "Celle padding", +"Cell spacing": "Celle afstand", +"Row type": "R\u00e6kke type", +"Insert table": "Inds\u00e6t tabel", +"Body": "Krop", +"Caption": "Tekst", +"Footer": "Sidefod", +"Delete row": "Slet r\u00e6kke", +"Paste row before": "Inds\u00e6t r\u00e6kke f\u00f8r", +"Scope": "Anvendelsesomr\u00e5de", +"Delete table": "Slet tabel", +"H Align": "H juster", +"Top": "Top", +"Header cell": "Sidehoved celle", +"Column": "Kolonne", +"Row group": "R\u00e6kke gruppe", +"Cell": "Celle", +"Middle": "Midt", +"Cell type": "Celle type", +"Copy row": "Kopier r\u00e6kke", +"Row properties": "R\u00e6kke egenskaber", +"Table properties": "Tabel egenskaber", +"Bottom": "Bund", +"V Align": "V juster", +"Header": "Sidehoved", +"Right": "H\u00f8jre", +"Insert column after": "Inds\u00e6t kolonne efter", +"Cols": "Kolonne", +"Insert row after": "Inds\u00e6t r\u00e6kke efter", +"Width": "Bredde", +"Cell properties": "Celle egenskaber", +"Left": "Venstre", +"Cut row": "Klip r\u00e6kke", +"Delete column": "Slet kolonne", +"Center": "Centrering", +"Merge cells": "Flet celler", +"Insert template": "Inds\u00e6t skabelon", +"Templates": "Skabeloner", +"Background color": "Baggrunds farve", +"Custom...": "Brugerdefineret...", +"Custom color": "Brugerdefineret farve", +"No color": "Ingen farve", +"Text color": "Tekst farve", +"Show blocks": "Vis klokke", +"Show invisible characters": "Vis usynlige tegn", +"Words: {0}": "Ord: {0}", +"Insert": "Inds\u00e6t", +"File": "Fil", +"Edit": "Rediger", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text omr\u00e5de. Tryk ALT-F9 for menu. Tryk ALT-F10 for toolbar. Tryk ALT-0 for hj\u00e6lp", +"Tools": "V\u00e6rkt\u00f8j", +"View": "Vis", +"Table": "Tabel", +"Format": "Format" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/de.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/de.js new file mode 100644 index 0000000000..9a31056850 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/de.js @@ -0,0 +1,219 @@ +tinymce.addI18n('de',{ +"Cut": "Ausschneiden", +"Heading 5": "\u00dcberschrift 5", +"Header 2": "\u00dcberschrift 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Ihr Browser unterst\u00fctzt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Strg + X \/ C \/ V Tastenkombinationen.", +"Heading 4": "\u00dcberschrift 4", +"Div": "Textblock", +"Heading 2": "\u00dcberschrift 2", +"Paste": "Einf\u00fcgen", +"Close": "Schlie\u00dfen", +"Font Family": "Schriftart", +"Pre": "Vorformatierter Text", +"Align right": "Rechtsb\u00fcndig ausrichten", +"New document": "Neues Dokument", +"Blockquote": "Zitat", +"Numbered list": "Nummerierte Liste", +"Heading 1": "\u00dcberschrift 1", +"Headings": "\u00dcberschriften", +"Increase indent": "Einzug vergr\u00f6\u00dfern", +"Formats": "Formate", +"Headers": "\u00dcberschriften", +"Select all": "Alles ausw\u00e4hlen", +"Header 3": "\u00dcberschrift 3", +"Blocks": "Absatzformate", +"Undo": "R\u00fcckg\u00e4ngig", +"Strikethrough": "Durchgestrichen", +"Bullet list": "Aufz\u00e4hlung", +"Header 1": "\u00dcberschrift 1", +"Superscript": "Hochgestellt", +"Clear formatting": "Formatierung entfernen", +"Font Sizes": "Schriftgr\u00f6\u00dfe", +"Subscript": "Tiefgestellt", +"Header 6": "\u00dcberschrift 6", +"Redo": "Wiederholen", +"Paragraph": "Absatz", +"Ok": "Ok", +"Bold": "Fett", +"Code": "Quelltext", +"Italic": "Kursiv", +"Align center": "Zentriert ausrichten", +"Header 5": "\u00dcberschrift 5", +"Heading 6": "\u00dcberschrift 6", +"Heading 3": "\u00dcberschrift 3", +"Decrease indent": "Einzug verkleinern", +"Header 4": "\u00dcberschrift 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einf\u00fcgen ist nun im einfachen Textmodus. Inhalte werden ab jetzt als unformatierter Text eingef\u00fcgt, bis Sie diese Einstellung wieder ausschalten!", +"Underline": "Unterstrichen", +"Cancel": "Abbrechen", +"Justify": "Blocksatz", +"Inline": "Zeichenformate", +"Copy": "Kopieren", +"Align left": "Linksb\u00fcndig ausrichten", +"Visual aids": "Visuelle Hilfen", +"Lower Greek": "Griechische Kleinbuchstaben", +"Square": "Quadrat", +"Default": "Standard", +"Lower Alpha": "Kleinbuchstaben", +"Circle": "Kreis", +"Disc": "Punkt", +"Upper Alpha": "Gro\u00dfbuchstaben", +"Upper Roman": "R\u00f6mische Zahlen (Gro\u00dfbuchstaben)", +"Lower Roman": "R\u00f6mische Zahlen (Kleinbuchstaben)", +"Name": "Name", +"Anchor": "Textmarke", +"You have unsaved changes are you sure you want to navigate away?": "Die \u00c4nderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?", +"Restore last draft": "Letzten Entwurf wiederherstellen", +"Special character": "Sonderzeichen", +"Source code": "Quelltext", +"B": "B", +"R": "R", +"G": "G", +"Color": "Farbe", +"Right to left": "Von rechts nach links", +"Left to right": "Von links nach rechts", +"Emoticons": "Emoticons", +"Robots": "Robots", +"Document properties": "Dokumenteigenschaften", +"Title": "Titel", +"Keywords": "Sch\u00fcsselw\u00f6rter", +"Encoding": "Zeichenkodierung", +"Description": "Beschreibung", +"Author": "Verfasser", +"Fullscreen": "Vollbild", +"Horizontal line": "Horizontale Linie", +"Horizontal space": "Horizontaler Abstand", +"Insert\/edit image": "Bild einf\u00fcgen\/bearbeiten", +"General": "Allgemein", +"Advanced": "Erweitert", +"Source": "Quelle", +"Border": "Rahmen", +"Constrain proportions": "Seitenverh\u00e4ltnis beibehalten", +"Vertical space": "Vertikaler Abstand", +"Image description": "Bildbeschreibung", +"Style": "Stil", +"Dimensions": "Abmessungen", +"Insert image": "Bild einf\u00fcgen", +"Zoom in": "Ansicht vergr\u00f6\u00dfern", +"Contrast": "Kontrast", +"Back": "Zur\u00fcck", +"Gamma": "Gamma", +"Flip horizontally": "Horizontal spiegeln", +"Resize": "Skalieren", +"Sharpen": "Sch\u00e4rfen", +"Zoom out": "Ansicht verkleinern", +"Image options": "Bildeigenschaften", +"Apply": "Anwenden", +"Brightness": "Helligkeit", +"Rotate clockwise": "Im Uhrzeigersinn drehen", +"Rotate counterclockwise": "Gegen den Uhrzeigersinn drehen", +"Edit image": "Bild bearbeiten", +"Color levels": "Farbwerte", +"Crop": "Bescheiden", +"Orientation": "Ausrichtung", +"Flip vertically": "Vertikal spiegeln", +"Invert": "Invertieren", +"Insert date\/time": "Datum\/Uhrzeit einf\u00fcgen ", +"Remove link": "Link entfernen", +"Url": "URL", +"Text to display": "Anzuzeigender Text", +"Anchors": "Textmarken", +"Insert link": "Link einf\u00fcgen", +"New window": "Neues Fenster", +"None": "Keine", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Diese Adresse scheint ein externer Link zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"http:\/\/\" voranstellen?", +"Target": "Ziel", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"mailto:\" voranstellen?", +"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten", +"Insert\/edit video": "Video einf\u00fcgen\/bearbeiten", +"Poster": "Poster", +"Alternative source": "Alternative Quelle", +"Paste your embed code below:": "F\u00fcgen Sie Ihren Einbettungscode hier ein:", +"Insert video": "Video einf\u00fcgen", +"Embed": "Einbetten", +"Nonbreaking space": "Gesch\u00fctztes Leerzeichen", +"Page break": "Seitenumbruch", +"Paste as text": "Als Text einf\u00fcgen", +"Preview": "Vorschau", +"Print": "Drucken", +"Save": "Speichern", +"Could not find the specified string.": "Die Zeichenfolge wurde nicht gefunden.", +"Replace": "Ersetzen", +"Next": "Weiter", +"Whole words": "Nur ganze W\u00f6rter", +"Find and replace": "Suchen und ersetzen", +"Replace with": "Ersetzen durch", +"Find": "Suchen", +"Replace all": "Alles ersetzen", +"Match case": "Gro\u00df-\/Kleinschreibung beachten", +"Prev": "Zur\u00fcck", +"Spellcheck": "Rechtschreibpr\u00fcfung", +"Finish": "Ende", +"Ignore all": "Alles Ignorieren", +"Ignore": "Ignorieren", +"Add to Dictionary": "Zum W\u00f6rterbuch hinzuf\u00fcgen", +"Insert row before": "Neue Zeile davor einf\u00fcgen ", +"Rows": "Zeilen", +"Height": "H\u00f6he", +"Paste row after": "Zeile danach einf\u00fcgen", +"Alignment": "Ausrichtung", +"Border color": "Rahmenfarbe", +"Column group": "Spaltengruppe", +"Row": "Zeile", +"Insert column before": "Neue Spalte davor einf\u00fcgen", +"Split cell": "Zelle aufteilen", +"Cell padding": "Zelleninnenabstand", +"Cell spacing": "Zellenabstand", +"Row type": "Zeilentyp", +"Insert table": "Tabelle einf\u00fcgen", +"Body": "Inhalt", +"Caption": "Beschriftung", +"Footer": "Fu\u00dfzeile", +"Delete row": "Zeile l\u00f6schen", +"Paste row before": "Zeile davor einf\u00fcgen", +"Scope": "G\u00fcltigkeitsbereich", +"Delete table": "Tabelle l\u00f6schen", +"H Align": "Horizontale Ausrichtung", +"Top": "Oben", +"Header cell": "Kopfzelle", +"Column": "Spalte", +"Row group": "Zeilengruppe", +"Cell": "Zelle", +"Middle": "Mitte", +"Cell type": "Zellentyp", +"Copy row": "Zeile kopieren", +"Row properties": "Zeileneigenschaften", +"Table properties": "Tabelleneigenschaften", +"Bottom": "Unten", +"V Align": "Vertikale Ausrichtung", +"Header": "Kopfzeile", +"Right": "Rechtsb\u00fcndig", +"Insert column after": "Neue Spalte danach einf\u00fcgen", +"Cols": "Spalten", +"Insert row after": "Neue Zeile danach einf\u00fcgen", +"Width": "Breite", +"Cell properties": "Zelleneigenschaften", +"Left": "Linksb\u00fcndig", +"Cut row": "Zeile ausschneiden", +"Delete column": "Spalte l\u00f6schen", +"Center": "Zentriert", +"Merge cells": "Zellen verbinden", +"Insert template": "Vorlage einf\u00fcgen ", +"Templates": "Vorlagen", +"Background color": "Hintergrundfarbe", +"Custom...": "Benutzerdefiniert...", +"Custom color": "Benutzerdefinierte Farbe", +"No color": "Keine Farbe", +"Text color": "Textfarbe", +"Show blocks": " Bl\u00f6cke anzeigen", +"Show invisible characters": "Unsichtbare Zeichen anzeigen", +"Words: {0}": "W\u00f6rter: {0}", +"Insert": "Einf\u00fcgen", +"File": "Datei", +"Edit": "Bearbeiten", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich-Text- Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr Symbolleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe", +"Tools": "Werkzeuge", +"View": "Ansicht", +"Table": "Tabelle", +"Format": "Format" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/en.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/en.js new file mode 100644 index 0000000000..19324f74cd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/en.js @@ -0,0 +1 @@ +tinyMCE.addI18n({en:{common:{"more_colors":"More Colors...","invalid_data":"Error: Invalid values entered, these are marked in red.","popup_blocked":"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.","clipboard_no_support":"Currently not supported by your browser, use keyboard shortcuts instead.","clipboard_msg":"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?","not_set":"-- Not Set --","class_name":"Class",browse:"Browse",close:"Close",cancel:"Cancel",update:"Update",insert:"Insert",apply:"Apply","edit_confirm":"Do you want to use the WYSIWYG mode for this textarea?","invalid_data_number":"{#field} must be a number","invalid_data_min":"{#field} must be a number greater than {#min}","invalid_data_size":"{#field} must be a number or percentage",value:"(value)"},contextmenu:{full:"Full",right:"Right",center:"Center",left:"Left",align:"Alignment"},insertdatetime:{"day_short":"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun","day_long":"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","months_short":"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec","months_long":"January,February,March,April,May,June,July,August,September,October,November,December","inserttime_desc":"Insert Time","insertdate_desc":"Insert Date","time_fmt":"%H:%M:%S","date_fmt":"%Y-%m-%d"},print:{"print_desc":"Print"},preview:{"preview_desc":"Preview"},directionality:{"rtl_desc":"Direction Right to Left","ltr_desc":"Direction Left to Right"},layer:{content:"New layer...","absolute_desc":"Toggle Absolute Positioning","backward_desc":"Move Backward","forward_desc":"Move Forward","insertlayer_desc":"Insert New Layer"},save:{"save_desc":"Save","cancel_desc":"Cancel All Changes"},nonbreaking:{"nonbreaking_desc":"Insert Non-Breaking Space Character"},iespell:{download:"ieSpell not detected. Do you want to install it now?","iespell_desc":"Check Spelling"},advhr:{"delta_height":"","delta_width":"","advhr_desc":"Insert Horizontal Line"},emotions:{"delta_height":"","delta_width":"","emotions_desc":"Emotions"},searchreplace:{"replace_desc":"Find/Replace","delta_width":"","delta_height":"","search_desc":"Find"},advimage:{"delta_width":"","image_desc":"Insert/Edit Image","delta_height":""},advlink:{"delta_height":"","delta_width":"","link_desc":"Insert/Edit Link"},xhtmlxtras:{"attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":"","attribs_desc":"Insert/Edit Attributes","ins_desc":"Insertion","del_desc":"Deletion","acronym_desc":"Acronym","abbr_desc":"Abbreviation","cite_desc":"Citation"},style:{"delta_height":"","delta_width":"",desc:"Edit CSS Style"},paste:{"plaintext_mode_stick":"Paste is now in plain text mode. Click again to toggle back to regular paste mode.","plaintext_mode":"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.","selectall_desc":"Select All","paste_word_desc":"Paste from Word","paste_text_desc":"Paste as Plain Text"},"paste_dlg":{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."},table:{"merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":"",cell:"Cell",col:"Column",row:"Row",del:"Delete Table","copy_row_desc":"Copy Table Row","cut_row_desc":"Cut Table Row","paste_row_after_desc":"Paste Table Row After","paste_row_before_desc":"Paste Table Row Before","props_desc":"Table Properties","cell_desc":"Table Cell Properties","row_desc":"Table Row Properties","merge_cells_desc":"Merge Table Cells","split_cells_desc":"Split Merged Table Cells","delete_col_desc":"Delete Column","col_after_desc":"Insert Column After","col_before_desc":"Insert Column Before","delete_row_desc":"Delete Row","row_after_desc":"Insert Row After","row_before_desc":"Insert Row Before",desc:"Insert/Edit Table"},autosave:{"warning_message":"If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?","restore_content":"Restore auto-saved content.","unload_msg":"The changes you made will be lost if you navigate away from this page."},fullscreen:{desc:"Toggle Full Screen Mode"},media:{"delta_height":"","delta_width":"",edit:"Edit Embedded Media",desc:"Insert/Edit Embedded Media"},fullpage:{desc:"Document Properties","delta_width":"","delta_height":""},template:{desc:"Insert Predefined Template Content"},visualchars:{desc:"Show/Hide Visual Control Characters"},spellchecker:{desc:"Toggle Spell Checker",menu:"Spell Checker Settings","ignore_word":"Ignore Word","ignore_words":"Ignore All",langs:"Languages",wait:"Please wait...",sug:"Suggestions","no_sug":"No Suggestions","no_mpell":"No misspellings found.","learn_word":"Learn word"},pagebreak:{desc:"Insert Page Break for Printing"},advlist:{types:"Types",def:"Default","lower_alpha":"Lower Alpha","lower_greek":"Lower Greek","lower_roman":"Lower Roman","upper_alpha":"Upper Alpha","upper_roman":"Upper Roman",circle:"Circle",disc:"Disc",square:"Square"},colors:{"333300":"Dark olive","993300":"Burnt orange","000000":"Black","003300":"Dark green","003366":"Dark azure","000080":"Navy Blue","333399":"Indigo","333333":"Very dark gray","800000":"Maroon",FF6600:"Orange","808000":"Olive","008000":"Green","008080":"Teal","0000FF":"Blue","666699":"Grayish blue","808080":"Gray",FF0000:"Red",FF9900:"Amber","99CC00":"Yellow green","339966":"Sea green","33CCCC":"Turquoise","3366FF":"Royal blue","800080":"Purple","999999":"Medium gray",FF00FF:"Magenta",FFCC00:"Gold",FFFF00:"Yellow","00FF00":"Lime","00FFFF":"Aqua","00CCFF":"Sky blue","993366":"Brown",C0C0C0:"Silver",FF99CC:"Pink",FFCC99:"Peach",FFFF99:"Light yellow",CCFFCC:"Pale green",CCFFFF:"Pale cyan","99CCFF":"Light sky blue",CC99FF:"Plum",FFFFFF:"White"},aria:{"rich_text_area":"Rich Text Area"},wordcount:{words:"Words:"},visualblocks:{desc:'Show/hide block elements'}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/en_us.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/en_us.js new file mode 100644 index 0000000000..4e94198e5a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/en_us.js @@ -0,0 +1 @@ +tinyMCE.addI18n({en_us:{common:{"more_colors":"More Colors...","invalid_data":"Error: Invalid values entered, these are marked in red.","popup_blocked":"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.","clipboard_no_support":"Currently not supported by your browser, use keyboard shortcuts instead.","clipboard_msg":"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?","not_set":"-- Not Set --","class_name":"Class",browse:"Browse",close:"Close",cancel:"Cancel",update:"Update",insert:"Insert",apply:"Apply","edit_confirm":"Do you want to use the WYSIWYG mode for this textarea?","invalid_data_number":"{#field} must be a number","invalid_data_min":"{#field} must be a number greater than {#min}","invalid_data_size":"{#field} must be a number or percentage",value:"(value)"},contextmenu:{full:"Full",right:"Right",center:"Center",left:"Left",align:"Alignment"},insertdatetime:{"day_short":"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun","day_long":"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","months_short":"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec","months_long":"January,February,March,April,May,June,July,August,September,October,November,December","inserttime_desc":"Insert Time","insertdate_desc":"Insert Date","time_fmt":"%H:%M:%S","date_fmt":"%Y-%m-%d"},print:{"print_desc":"Print"},preview:{"preview_desc":"Preview"},directionality:{"rtl_desc":"Direction Right to Left","ltr_desc":"Direction Left to Right"},layer:{content:"New layer...","absolute_desc":"Toggle Absolute Positioning","backward_desc":"Move Backward","forward_desc":"Move Forward","insertlayer_desc":"Insert New Layer"},save:{"save_desc":"Save","cancel_desc":"Cancel All Changes"},nonbreaking:{"nonbreaking_desc":"Insert Non-Breaking Space Character"},iespell:{download:"ieSpell not detected. Do you want to install it now?","iespell_desc":"Check Spelling"},advhr:{"delta_height":"","delta_width":"","advhr_desc":"Insert Horizontal Line"},emotions:{"delta_height":"","delta_width":"","emotions_desc":"Emotions"},searchreplace:{"replace_desc":"Find/Replace","delta_width":"","delta_height":"","search_desc":"Find"},advimage:{"delta_width":"","image_desc":"Insert/Edit Image","delta_height":""},advlink:{"delta_height":"","delta_width":"","link_desc":"Insert/Edit Link"},xhtmlxtras:{"attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":"","attribs_desc":"Insert/Edit Attributes","ins_desc":"Insertion","del_desc":"Deletion","acronym_desc":"Acronym","abbr_desc":"Abbreviation","cite_desc":"Citation"},style:{"delta_height":"","delta_width":"",desc:"Edit CSS Style"},paste:{"plaintext_mode_stick":"Paste is now in plain text mode. Click again to toggle back to regular paste mode.","plaintext_mode":"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.","selectall_desc":"Select All","paste_word_desc":"Paste from Word","paste_text_desc":"Paste as Plain Text"},"paste_dlg":{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."},table:{"merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":"",cell:"Cell",col:"Column",row:"Row",del:"Delete Table","copy_row_desc":"Copy Table Row","cut_row_desc":"Cut Table Row","paste_row_after_desc":"Paste Table Row After","paste_row_before_desc":"Paste Table Row Before","props_desc":"Table Properties","cell_desc":"Table Cell Properties","row_desc":"Table Row Properties","merge_cells_desc":"Merge Table Cells","split_cells_desc":"Split Merged Table Cells","delete_col_desc":"Delete Column","col_after_desc":"Insert Column After","col_before_desc":"Insert Column Before","delete_row_desc":"Delete Row","row_after_desc":"Insert Row After","row_before_desc":"Insert Row Before",desc:"Insert/Edit Table"},autosave:{"warning_message":"If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?","restore_content":"Restore auto-saved content.","unload_msg":"The changes you made will be lost if you navigate away from this page."},fullscreen:{desc:"Toggle Full Screen Mode"},media:{"delta_height":"","delta_width":"",edit:"Edit Embedded Media",desc:"Insert/Edit Embedded Media"},fullpage:{desc:"Document Properties","delta_width":"","delta_height":""},template:{desc:"Insert Predefined Template Content"},visualchars:{desc:"Show/Hide Visual Control Characters"},spellchecker:{desc:"Toggle Spell Checker",menu:"Spell Checker Settings","ignore_word":"Ignore Word","ignore_words":"Ignore All",langs:"Languages",wait:"Please wait...",sug:"Suggestions","no_sug":"No Suggestions","no_mpell":"No misspellings found.","learn_word":"Learn word"},pagebreak:{desc:"Insert Page Break for Printing"},advlist:{types:"Types",def:"Default","lower_alpha":"Lower Alpha","lower_greek":"Lower Greek","lower_roman":"Lower Roman","upper_alpha":"Upper Alpha","upper_roman":"Upper Roman",circle:"Circle",disc:"Disc",square:"Square"},colors:{"333300":"Dark olive","993300":"Burnt orange","000000":"Black","003300":"Dark green","003366":"Dark azure","000080":"Navy Blue","333399":"Indigo","333333":"Very dark gray","800000":"Maroon",FF6600:"Orange","808000":"Olive","008000":"Green","008080":"Teal","0000FF":"Blue","666699":"Grayish blue","808080":"Gray",FF0000:"Red",FF9900:"Amber","99CC00":"Yellow green","339966":"Sea green","33CCCC":"Turquoise","3366FF":"Royal blue","800080":"Purple","999999":"Medium gray",FF00FF:"Magenta",FFCC00:"Gold",FFFF00:"Yellow","00FF00":"Lime","00FFFF":"Aqua","00CCFF":"Sky blue","993366":"Brown",C0C0C0:"Silver",FF99CC:"Pink",FFCC99:"Peach",FFFF99:"Light yellow",CCFFCC:"Pale green",CCFFFF:"Pale cyan","99CCFF":"Light sky blue",CC99FF:"Plum",FFFFFF:"White"},aria:{"rich_text_area":"Rich Text Area"},wordcount:{words:"Words:"},visualblocks:{desc:'Show/hide block elements'}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/fi.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/fi.js new file mode 100644 index 0000000000..87677bd3ff --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/fi.js @@ -0,0 +1,219 @@ +tinymce.addI18n('fi',{ +"Cut": "Leikkaa", +"Heading 5": "Otsikko 5", +"Header 2": "Otsikko 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Selaimesi ei tue leikep\u00f6yd\u00e4n suoraa k\u00e4ytt\u00e4mist\u00e4. Ole hyv\u00e4 ja k\u00e4yt\u00e4 n\u00e4pp\u00e4imist\u00f6n Ctrl+X\/C\/V n\u00e4pp\u00e4inyhdistelmi\u00e4.", +"Heading 4": "Otsikko 4", +"Div": "Div", +"Heading 2": "Otsikko 2", +"Paste": "Liit\u00e4", +"Close": "Sulje", +"Font Family": "Fontti", +"Pre": "Esimuotoiltu", +"Align right": "Tasaa oikealle", +"New document": "Uusi dokumentti", +"Blockquote": "Lainauslohko", +"Numbered list": "J\u00e4rjestetty lista", +"Heading 1": "Otsikko 1", +"Headings": "Otsikot", +"Increase indent": "Loitonna", +"Formats": "Muotoilut", +"Headers": "Otsikot", +"Select all": "Valitse kaikki", +"Header 3": "Otsikko 3", +"Blocks": "Lohkot", +"Undo": "Peru", +"Strikethrough": "Yliviivaus", +"Bullet list": "J\u00e4rjest\u00e4m\u00e4t\u00f6n lista", +"Header 1": "Otsikko 1", +"Superscript": "Yl\u00e4indeksi", +"Clear formatting": "Poista muotoilu", +"Font Sizes": "Fonttikoko", +"Subscript": "Alaindeksi", +"Header 6": "Otsikko 6", +"Redo": "Tee uudelleen", +"Paragraph": "Kappale", +"Ok": "Ok", +"Bold": "Lihavointi", +"Code": "Koodi", +"Italic": "Kursivointi", +"Align center": "Keskit\u00e4", +"Header 5": "Otsikko 5", +"Heading 6": "Otsikko 6", +"Heading 3": "Otsikko 3", +"Decrease indent": "Sisenn\u00e4", +"Header 4": "Otsikko 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Liitt\u00e4minen on nyt pelk\u00e4n tekstin -tilassa. Sis\u00e4ll\u00f6t liitet\u00e4\u00e4n nyt pelkk\u00e4n\u00e4 tekstin\u00e4, kunnes otat vaihtoehdon pois k\u00e4yt\u00f6st\u00e4.", +"Underline": "Alleviivaus", +"Cancel": "Peruuta", +"Justify": "Tasaa", +"Inline": "Samalla rivill\u00e4", +"Copy": "Kopioi", +"Align left": "Tasaa vasemmalle", +"Visual aids": "Visuaaliset neuvot", +"Lower Greek": "pienet kirjaimet: \u03b1, \u03b2, \u03b3", +"Square": "Neli\u00f6", +"Default": "Oletus", +"Lower Alpha": "pienet kirjaimet: a, b, c", +"Circle": "Pallo", +"Disc": "Ympyr\u00e4", +"Upper Alpha": "isot kirjaimet: A, B, C", +"Upper Roman": "isot kirjaimet: I, II, III", +"Lower Roman": "pienet kirjaimet: i, ii, iii", +"Name": "Nimi", +"Anchor": "Ankkuri", +"You have unsaved changes are you sure you want to navigate away?": "Sinulla on tallentamattomia muutoksia, haluatko varmasti siirty\u00e4 toiselle sivulle?", +"Restore last draft": "Palauta aiempi luonnos", +"Special character": "Erikoismerkki", +"Source code": "L\u00e4hdekoodi", +"B": "B", +"R": "R", +"G": "G", +"Color": "V\u00e4ri", +"Right to left": "Oikealta vasemmalle", +"Left to right": "Vasemmalta oikealle", +"Emoticons": "Hymi\u00f6t", +"Robots": "Robotit", +"Document properties": "Dokumentin ominaisuudet", +"Title": "Otsikko", +"Keywords": "Avainsanat", +"Encoding": "Merkist\u00f6", +"Description": "Kuvaus", +"Author": "Tekij\u00e4", +"Fullscreen": "Koko ruutu", +"Horizontal line": "Vaakasuora viiva", +"Horizontal space": "Horisontaalinen tila", +"Insert\/edit image": "Lis\u00e4\u00e4\/muokkaa kuva", +"General": "Yleiset", +"Advanced": "Lis\u00e4asetukset", +"Source": "L\u00e4hde", +"Border": "Reunus", +"Constrain proportions": "S\u00e4ilyt\u00e4 mittasuhteet", +"Vertical space": "Vertikaalinen tila", +"Image description": "Kuvaus", +"Style": "Tyyli", +"Dimensions": "Mittasuhteet", +"Insert image": "Lis\u00e4\u00e4 kuva", +"Zoom in": "L\u00e4henn\u00e4", +"Contrast": "Kontrasti", +"Back": "Takaisin", +"Gamma": "Gamma", +"Flip horizontally": "K\u00e4\u00e4nn\u00e4 vaakasuunnassa", +"Resize": "Kuvan koon muutos", +"Sharpen": "Ter\u00e4vyys", +"Zoom out": "Loitonna", +"Image options": "Kuvan asetukset", +"Apply": "Aseta", +"Brightness": "Kirkkaus", +"Rotate clockwise": "Kierr\u00e4 my\u00f6t\u00e4p\u00e4iv\u00e4\u00e4n", +"Rotate counterclockwise": "Kierr\u00e4 vastap\u00e4iv\u00e4\u00e4n", +"Edit image": "Muokkaa kuvaa", +"Color levels": "V\u00e4ritasot", +"Crop": "Rajaa valintaan", +"Orientation": "Suunta", +"Flip vertically": "K\u00e4\u00e4nn\u00e4 pystysuunnassa", +"Invert": "K\u00e4\u00e4nteinen", +"Insert date\/time": "Lis\u00e4\u00e4 p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 tai aika", +"Remove link": "Poista linkki", +"Url": "Osoite", +"Text to display": "N\u00e4ytett\u00e4v\u00e4 teksti", +"Anchors": "Ankkurit", +"Insert link": "Lis\u00e4\u00e4 linkki", +"New window": "Uusi ikkuna", +"None": "Ei mit\u00e4\u00e4n", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Antamasi osoite n\u00e4ytt\u00e4\u00e4 olevan ulkoinen linkki. Haluatko lis\u00e4t\u00e4 osoitteeseen vaaditun http:\/\/ -etuliitteen?", +"Target": "Kohde", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Antamasi osoite n\u00e4ytt\u00e4\u00e4 olevan s\u00e4hk\u00f6postiosoite. Haluatko lis\u00e4t\u00e4 osoitteeseen vaaditun mailto: -etuliitteen?", +"Insert\/edit link": "Lis\u00e4\u00e4\/muokkaa linkki", +"Insert\/edit video": "Lis\u00e4\u00e4\/muokkaa video", +"Poster": "L\u00e4hett\u00e4j\u00e4", +"Alternative source": "Vaihtoehtoinen l\u00e4hde", +"Paste your embed code below:": "Liit\u00e4 upotuskoodisi alapuolelle:", +"Insert video": "Lis\u00e4\u00e4 video", +"Embed": "Upota", +"Nonbreaking space": "Sitova v\u00e4lily\u00f6nti", +"Page break": "Sivunvaihto", +"Paste as text": "Liit\u00e4 tekstin\u00e4", +"Preview": "Esikatselu", +"Print": "Tulosta", +"Save": "Tallenna", +"Could not find the specified string.": "Haettua merkkijonoa ei l\u00f6ytynyt.", +"Replace": "Korvaa", +"Next": "Seur.", +"Whole words": "Koko sanat", +"Find and replace": "Etsi ja korvaa", +"Replace with": "Korvaa", +"Find": "Etsi", +"Replace all": "Korvaa kaikki", +"Match case": "Erota isot ja pienet kirjaimet", +"Prev": "Edel.", +"Spellcheck": "Oikolue", +"Finish": "Lopeta", +"Ignore all": "\u00c4l\u00e4 huomioi mit\u00e4\u00e4n", +"Ignore": "\u00c4l\u00e4 huomioi", +"Add to Dictionary": "Lis\u00e4\u00e4 sanakirjaan", +"Insert row before": "Lis\u00e4\u00e4 rivi ennen", +"Rows": "Rivit", +"Height": "Korkeus", +"Paste row after": "Liit\u00e4 rivi j\u00e4lkeen", +"Alignment": "Tasaus", +"Border color": "Reunuksen v\u00e4ri", +"Column group": "Sarakeryhm\u00e4", +"Row": "Rivi", +"Insert column before": "Lis\u00e4\u00e4 rivi ennen", +"Split cell": "Jaa solu", +"Cell padding": "Solun tyhj\u00e4 tila", +"Cell spacing": "Solun v\u00e4li", +"Row type": "Rivityyppi", +"Insert table": "Lis\u00e4\u00e4 taulukko", +"Body": "Runko", +"Caption": "Seloste", +"Footer": "Alaosa", +"Delete row": "Poista rivi", +"Paste row before": "Liit\u00e4 rivi ennen", +"Scope": "Laajuus", +"Delete table": "Poista taulukko", +"H Align": "H tasaus", +"Top": "Yl\u00e4reuna", +"Header cell": "Otsikkosolu", +"Column": "Sarake", +"Row group": "Riviryhm\u00e4", +"Cell": "Solu", +"Middle": "Keskikohta", +"Cell type": "Solun tyyppi", +"Copy row": "Kopioi rivi", +"Row properties": "Rivin ominaisuudet", +"Table properties": "Taulukon ominaisuudet", +"Bottom": "Alareuna", +"V Align": "V tasaus", +"Header": "Otsikko", +"Right": "Oikea", +"Insert column after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen", +"Cols": "Sarakkeet", +"Insert row after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen", +"Width": "Leveys", +"Cell properties": "Solun ominaisuudet", +"Left": "Vasen", +"Cut row": "Leikkaa rivi", +"Delete column": "Poista sarake", +"Center": "Keskell\u00e4", +"Merge cells": "Yhdist\u00e4 solut", +"Insert template": "Lis\u00e4\u00e4 pohja", +"Templates": "Pohjat", +"Background color": "Taustan v\u00e4ri", +"Custom...": "Mukauta...", +"Custom color": "Mukautettu v\u00e4ri", +"No color": "Ei v\u00e4ri\u00e4", +"Text color": "Tekstin v\u00e4ri", +"Show blocks": "N\u00e4yt\u00e4 lohkot", +"Show invisible characters": "N\u00e4yt\u00e4 n\u00e4kym\u00e4tt\u00f6m\u00e4t merkit", +"Words: {0}": "Sanat: {0}", +"Insert": "Lis\u00e4\u00e4", +"File": "Tiedosto", +"Edit": "Muokkaa", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rikastetun tekstin alue. Paina ALT-F9 valikkoon. Paina ALT-F10 ty\u00f6kaluriviin. Paina ALT-0 ohjeeseen.", +"Tools": "Ty\u00f6kalut", +"View": "N\u00e4yt\u00e4", +"Table": "Taulukko", +"Format": "Muotoilu" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/fr.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/fr.js new file mode 100644 index 0000000000..b9cfd8b515 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/fr.js @@ -0,0 +1 @@ +tinyMCE.addI18n({fr:{common:{"more_colors":"Plus de couleurs","invalid_data":"Erreur : saisie de valeurs incorrectes. Elles sont mises en \u00e9vidence en rouge.","popup_blocked":"D\u00e9sol\u00e9, nous avons d\u00e9tect\u00e9 que votre bloqueur de popup a bloqu\u00e9 une fen\u00eatre dont l\'application a besoin. Vous devez d\u00e9sactiver votre bloqueur de popup pour pouvoir utiliser cet outil.","clipboard_no_support":"Actuellement non support\u00e9 par votre navigateur.\n Veuillez utiliser les raccourcis clavier \u00e0 la place.","clipboard_msg":"Les fonctions Copier/Couper/Coller ne sont pas valables sur Mozilla et Firefox.\nSouhaitez-vous avoir plus d\'informations sur ce sujet ?","not_set":"-- non d\u00e9fini --","class_name":"Classe",browse:"parcourir",close:"Fermer",cancel:"Annuler",update:"Mettre \u00e0 jour",insert:"Ins\u00e9rer",apply:"Appliquer","edit_confirm":"Souhaitez-vous utiliser le mode WYSIWYG pour cette zone de texte ?","invalid_data_number":"{#field} doit \u00eatre un nombre","invalid_data_min":"{#field} doit \u00eatre un nombre plus grand que {#min}","invalid_data_size":"{#field} doit \u00eatre un nombre ou un pourcentage",value:"(valeur)"},contextmenu:{full:"Justifi\u00e9",right:"Droite",center:"Centr\u00e9",left:"Gauche",align:"Alignement"},insertdatetime:{"day_short":"Dim,Lun,Mar,Mer,Jeu,Ven,Sam,Dim","day_long":"Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche","months_short":"Jan,F\u00e9v,Mar,Avr,Mai,Juin,Juil,Ao\u00fbt,Sep,Oct,Nov,D\u00e9c","months_long":"Janvier,F\u00e9vrier,Mars,Avril,Mai,Juin,Juillet,Ao\u00fbt,Septembre,Octobre,Novembre,D\u00e9cembre","inserttime_desc":"Ins\u00e9rer l\'heure","insertdate_desc":"Ins\u00e9rer la date","time_fmt":"%H:%M:%S","date_fmt":"%d-%m-%Y"},print:{"print_desc":"Imprimer"},preview:{"preview_desc":"Pr\u00e9visualiser"},directionality:{"rtl_desc":"\u00c9criture de droite \u00e0 gauche","ltr_desc":"\u00c9criture de gauche \u00e0 droite"},layer:{content:"Nouvelle couche\u2026","absolute_desc":"Activer le positionnement absolu","backward_desc":"D\u00e9placer vers l\'arri\u00e8re","forward_desc":"D\u00e9placer vers l\'avant","insertlayer_desc":"Ins\u00e9rer une nouvelle couche"},save:{"save_desc":"Enregistrer","cancel_desc":"Annuler toutes les modifications"},nonbreaking:{"nonbreaking_desc":"Ins\u00e9rer une espace ins\u00e9cable"},iespell:{download:"ieSpell n\'est pas install\u00e9. Souhaitez-vous l\'installer maintenant ?","iespell_desc":"Lancer le v\u00e9rificateur d\'orthographe"},advhr:{"delta_height":"Ecart de hauteur","delta_width":"Ecart de largeur","advhr_desc":"Ins\u00e9rer un trait horizontal"},emotions:{"delta_height":"delta_height","delta_width":"delta_width","emotions_desc":"\u00c9motic\u00f4nes"},searchreplace:{"replace_desc":"Rechercher / remplacer","search_desc":"Rechercher","delta_width":"","delta_height":""},advimage:{"image_desc":"Ins\u00e9rer / \u00e9diter une image","delta_width":"","delta_height":""},advlink:{"link_desc":"Ins\u00e9rer / \u00e9diter un lien","delta_height":"","delta_width":""},xhtmlxtras:{"attribs_desc":"Ins\u00e9rer / \u00e9diter les attributs","ins_desc":"Ins\u00e9r\u00e9","del_desc":"Barr\u00e9","acronym_desc":"Acronyme","abbr_desc":"Abr\u00e9viation","cite_desc":"Citation","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"\u00c9diter la feuille de style (CSS)","delta_height":"","delta_width":""},paste:{"plaintext_mode":"Le collage est actuellement en mode texte non format\u00e9. Cliquez \u00e0 nouveau pour revenir en mode de collage ordinaire.","plaintext_mode_sticky":"Le collage est actuellement en mode texte non format\u00e9. Cliquez \u00e0 nouveau pour revenir en mode de collage ordinaire. Apr\u00e8s avoir coll\u00e9 quelque chose, vous retournerez en mode de collage ordinaire.","selectall_desc":"Tout s\u00e9lectionner","paste_word_desc":"Coller un texte cr\u00e9\u00e9 sous Word","paste_text_desc":"Coller comme texte brut"},"paste_dlg":{"word_title":"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00eatre.","text_linebreaks":"Conserver les retours \u00e0 la ligne","text_title":"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00eatre."},table:{cell:"Cellule",col:"Colonne",row:"Ligne",del:"Effacer le tableau","copy_row_desc":"Copier la ligne","cut_row_desc":"Couper la ligne","paste_row_after_desc":"Coller la ligne apr\u00e8s","paste_row_before_desc":"Coller la ligne avant","props_desc":"Propri\u00e9t\u00e9s du tableau","cell_desc":"Propri\u00e9t\u00e9s de la cellule","row_desc":"Propri\u00e9t\u00e9s de la ligne","merge_cells_desc":"Fusionner les cellules","split_cells_desc":"Scinder les cellules fusionn\u00e9es","delete_col_desc":"Effacer la colonne","col_after_desc":"Ins\u00e9rer une colonne apr\u00e8s","col_before_desc":"Ins\u00e9rer une colonne avant","delete_row_desc":"Effacer la ligne","row_after_desc":"Ins\u00e9rer une ligne apr\u00e8s","row_before_desc":"Ins\u00e9rer une ligne avant",desc:"Ins\u00e9rer un nouveau tableau","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"Si vous restaurez le contenu sauv\u00e9, vous perdrez le contenu qui est actuellement dans l\'\u00e9diteur.\n\n\u00cates-vous s\u00fbr de vouloir restaurer le contenu sauv\u00e9 ?","restore_content":"Restaurer le contenu auto-sauvegard\u00e9.","unload_msg":"Les modifications apport\u00e9es seront perdues si vous quittez cette page."},fullscreen:{desc:"Passer en mode plein \u00e9cran"},media:{edit:"\u00c9diter un m\u00e9dia incorpor\u00e9",desc:"Ins\u00e9rer / \u00e9diter un m\u00e9dia incorpor\u00e9","delta_height":"","delta_width":""},fullpage:{desc:"Propri\u00e9t\u00e9s du document","delta_width":"","delta_height":""},template:{desc:"Ins\u00e9rer un mod\u00e8le pr\u00e9d\u00e9fini."},visualchars:{desc:"Activer les caract\u00e8res de mise en page."},spellchecker:{desc:"Activer le v\u00e9rificateur d\'orthographe",menu:"Param\u00e8tres du v\u00e9rificateur d\'orthographe","ignore_word":"Ignorer le mot","ignore_words":"Tout ignorer",langs:"Langues",wait:"Veuillez patienter\u2026",sug:"Suggestions","no_sug":"Aucune suggestion","no_mpell":"Aucune erreur trouv\u00e9e.","learn_word":"Apprendre le mot"},pagebreak:{desc:"Ins\u00e9rer un saut de page."},advlist:{types:"Types",def:"D\u00e9faut","lower_alpha":"Alpha minuscule","lower_greek":"Grec minuscule","lower_roman":"Romain minuscule","upper_alpha":"Alpha majuscule","upper_roman":"Romain majuscule",circle:"Cercle",disc:"Disque",square:"Carr\u00e9"},colors:{"333300":"Olive fonc\u00e9","993300":"Orange br\u00fbl\u00e9","000000":"Noir","003300":"Vert fonc\u00e9","003366":"Azur fonc\u00e9","000080":"Bleu marine","333399":"Indigo","333333":"Gris tr\u00e8s fonc\u00e9","800000":"Bordeaux",FF6600:"Orange","808000":"Olive","008000":"Vert","008080":"Sarcelle","0000FF":"Bleu","666699":"Bleu gris\u00e2tre","808080":"Gris",FF0000:"Rouge",FF9900:"Ambre","99CC00":"Jaune vert","339966":"Mer verte","33CCCC":"Turquoise","3366FF":"Bleu royal","800080":"Violet","999999":"Gris moyen",FF00FF:"Magenta",FFCC00:"Or",FFFF00:"Jaune","00FF00":"Lime","00FFFF":"Bleu vert","00CCFF":"Bleu ciel","993366":"Brun",C0C0C0:"Argent",FF99CC:"Rose",FFCC99:"P\u00eache",FFFF99:"Jaune clair",CCFFCC:"Vert p\u00e2le",CCFFFF:"Cyan p\u00e2le","99CCFF":"Bleu ciel clair",CC99FF:"Prune",FFFFFF:"Blanc"},aria:{"rich_text_area":"Texte riche"},wordcount:{words:"Mots:"}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/he.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/he.js new file mode 100644 index 0000000000..0f4e12d7b5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/he.js @@ -0,0 +1 @@ +tinyMCE.addI18n({he:{common:{"more_colors":"\u05e2\u05d5\u05d3 \u05e6\u05d1\u05e2\u05d9\u05dd","invalid_data":"\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d4\u05d5\u05e7\u05dc\u05d3 \u05de\u05d9\u05d3\u05e2 \u05dc\u05d0 \u05ea\u05e7\u05e0\u05d9. \u05d4\u05de\u05d9\u05d3\u05e2 \u05e1\u05d5\u05de\u05df \u05d1\u05d0\u05d3\u05d5\u05dd.","popup_blocked":"\u05d7\u05d5\u05e1\u05dd \u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05de\u05d5\u05e7\u05e4\u05e6\u05d9\u05dd \u05de\u05e0\u05e2 \u05de\u05d7\u05dc\u05d5\u05df \u05d7\u05e9\u05d5\u05d1 \u05de\u05dc\u05d4\u05e4\u05ea\u05d7,\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05db\u05dc\u05d9 \u05d6\u05d4 \u05e2\u05dc\u05d9\u05da \u05dc\u05d1\u05d8\u05dc \u05d0\u05ea \u05d7\u05d5\u05e1\u05dd \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd","clipboard_no_support":"\u05db\u05e8\u05d2\u05e2 \u05dc\u05d0 \u05e0\u05ea\u05de\u05da \u05e2\u05dc \u05d9\u05d3\u05d9 \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da. \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05e7\u05d9\u05e6\u05d5\u05e8\u05d9 \u05d4\u05de\u05e7\u05dc\u05d3\u05ea.","clipboard_msg":"\n \u05d4\u05e2\u05ea\u05e7\u05d4/\u05d2\u05d6\u05d9\u05e8\u05d4 \u05d5\u05d4\u05d3\u05d1\u05e7\u05d4 \u05d0\u05d9\u05e0\u05dd \u05d6\u05de\u05d9\u05e0\u05d9\u05dd \u05d1 Mozilla \u05d5\u05d1-Firefox.\n \u05d4\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05e7\u05d1\u05dc \u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3 \u05e2\u05dc \u05d4\u05e0\u05d5\u05e9\u05d0?\n ","not_set":"-- \u05dc\u05d0 \u05d4\u05d5\u05d2\u05d3\u05e8 --","class_name":"\u05de\u05d7\u05dc\u05e7\u05d4",browse:"\u05e2\u05d9\u05d5\u05df",close:"\u05e1\u05d2\u05d9\u05e8\u05d4",cancel:"\u05d1\u05d9\u05d8\u05d5\u05dc",update:"\u05e2\u05d3\u05db\u05d5\u05df",insert:"\u05d4\u05d5\u05e1\u05e4\u05d4",apply:"\u05d0\u05d9\u05e9\u05d5\u05e8","edit_confirm":"\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05e2\u05d5\u05e8\u05da \u05d4\u05de\u05ea\u05e7\u05d3\u05dd?","invalid_data_number":"{#field} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05e1\u05e4\u05e8","invalid_data_min":"{#field} \u05d4\u05de\u05e1\u05e4\u05e8 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc \u05de-{#min}","invalid_data_size":"{#field} \u05d4\u05e2\u05e8\u05da \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05e1\u05e4\u05e8 \u05d0\u05d5 \u05d0\u05d7\u05d5\u05d6",value:"(\u05e2\u05e8\u05da)"},contextmenu:{full:"\u05e9\u05e0\u05d9 \u05d4\u05e6\u05d3\u05d3\u05d9\u05dd",right:"\u05d9\u05de\u05d9\u05df",center:"\u05d0\u05de\u05e6\u05e2",left:"\u05e9\u05de\u05d0\u05dc",align:"\u05d9\u05d9\u05e9\u05d5\u05e8"},insertdatetime:{"day_short":"\u05d9\u05d5\u05dd \u05d0\',\u05d9\u05d5\u05dd \u05d1\',\u05d9\u05d5\u05dd \u05d2\',\u05d9\u05d5\u05dd \u05d3\',\u05d9\u05d5\u05dd \u05d4\',\u05d9\u05d5\u05dd \u05d5\',\u05e9\u05d1\u05ea,\u05d9\u05d5\u05dd \u05d0\'","day_long":"\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df,\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9,\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9,\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9,\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9,\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9,\u05d9\u05d5\u05dd \u05e9\u05d1\u05ea,\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df","months_short":"\u05d9\u05e0\u05d5\u05d0\u05e8,\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8,\u05de\u05e8\u05e5,\u05d0\u05e4\u05e8\u05d9\u05dc,\u05de\u05d0\u05d9,\u05d9\u05d5\u05e0\u05e2,\u05d9\u05d5\u05dc\u05d9,\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8,\u05e1\u05e4\u05d8\u05de\u05d1\u05e8,\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8,\u05e0\u05d5\u05d1\u05de\u05d1\u05e8,\u05d3\u05e6\u05de\u05d1\u05e8","months_long":"\u05d9\u05e0\u05d5\u05d0\u05e8,\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8,\u05de\u05e8\u05e5,\u05d0\u05e4\u05e8\u05d9\u05dc,\u05de\u05d0\u05d9,\u05d9\u05d5\u05e0\u05e2,\u05d9\u05d5\u05dc\u05d9,\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8,\u05e1\u05e4\u05d8\u05de\u05d1\u05e8,\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8,\u05e0\u05d5\u05d1\u05de\u05d1\u05e8,\u05d3\u05e6\u05de\u05d1\u05e8","inserttime_desc":"\u05d4\u05d5\u05e1\u05e4\u05ea \u05d6\u05de\u05df","insertdate_desc":"\u05d4\u05d5\u05e1\u05e4\u05ea \u05ea\u05d0\u05e8\u05d9\u05da","time_fmt":"%H:%M:%S","date_fmt":"%d-%m-%Y"},print:{"print_desc":"\u05d4\u05d3\u05e4\u05e1\u05d4"},preview:{"preview_desc":"\u05ea\u05e6\u05d5\u05d2\u05d4 \u05de\u05e7\u05d3\u05d9\u05de\u05d4"},directionality:{"rtl_desc":"\u05db\u05d9\u05d5\u05d5\u05df \u05d8\u05e7\u05e1\u05d8 \u05de\u05d9\u05de\u05d9\u05df \u05dc\u05e9\u05de\u05d0\u05dc","ltr_desc":"\u05db\u05d9\u05d5\u05d5\u05df \u05d8\u05e7\u05e1\u05d8 \u05de\u05e9\u05de\u05d0\u05dc \u05dc\u05d9\u05de\u05d9\u05df"},layer:{content:"\u05e9\u05db\u05d1\u05d4 \u05d7\u05d3\u05e9\u05d4...","absolute_desc":"\u05d1\u05d7\u05d9\u05e8\u05ea \u05de\u05d9\u05e7\u05d5\u05dd \u05de\u05d5\u05d7\u05dc\u05d8","backward_desc":"\u05d4\u05e2\u05d1\u05e8\u05d4 \u05d0\u05d7\u05d5\u05e8\u05d4","forward_desc":"\u05d4\u05e2\u05d1\u05e8\u05d4 \u05e7\u05d3\u05d9\u05de\u05d4","insertlayer_desc":"\u05d4\u05d5\u05e1\u05e4\u05ea \u05e9\u05db\u05d1\u05d4 \u05d7\u05d3\u05e9\u05d4"},save:{"save_desc":"\u05e9\u05de\u05d9\u05e8\u05d4","cancel_desc":"\u05d1\u05d9\u05d8\u05d5\u05dc \u05db\u05dc \u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05dd"},nonbreaking:{"nonbreaking_desc":"\u05d4\u05d5\u05e1\u05e4\u05ea \u05e8\u05d5\u05d5\u05d7"},iespell:{download:" \u05dc\u05d0 \u05e0\u05de\u05e6\u05d0 ieSpell. \u05d4\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05ea\u05e7\u05d9\u05df?","iespell_desc":"\u05d1\u05d3\u05d9\u05e7\u05ea \u05d0\u05d9\u05d5\u05ea \u05d1\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea"},advhr:{"advhr_desc":"\u05e7\u05d5 \u05d0\u05d5\u05e4\u05e7\u05d9","delta_height":"","delta_width":""},emotions:{"emotions_desc":"\u05e1\u05de\u05d9\u05d9\u05dc\u05d9\u05dd","delta_height":"","delta_width":""},searchreplace:{"replace_desc":"\u05d4\u05d7\u05dc\u05e4\u05d4","search_desc":"\u05d7\u05d9\u05e4\u05d5\u05e9","delta_width":"","delta_height":""},advimage:{"image_desc":"\u05d4\u05d5\u05e1\u05e4\u05d4/\u05e2\u05e8\u05d9\u05db\u05ea \u05ea\u05de\u05d5\u05e0\u05d4","delta_width":"","delta_height":""},advlink:{"link_desc":"\u05d4\u05d5\u05e1\u05e4\u05ea/\u05e2\u05e8\u05d9\u05db\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8","delta_height":"","delta_width":""},xhtmlxtras:{"attribs_desc":"\u05d4\u05db\u05e0\u05e1/\u05e2\u05e8\u05d5\u05da \u05ea\u05db\u05d5\u05e0\u05d5\u05ea","ins_desc":"\u05d4\u05db\u05e0\u05e1\u05d4","del_desc":"\u05de\u05d7\u05d9\u05e7\u05d4","acronym_desc":"\u05e8\u05d0\u05e9\u05d9 \u05ea\u05d9\u05d1\u05d5\u05ea","abbr_desc":"\u05e7\u05d9\u05e6\u05d5\u05e8","cite_desc":"\u05e6\u05d9\u05d8\u05d5\u05d8","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"\u05e2\u05d3\u05db\u05d5\u05df \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea CSS","delta_height":"","delta_width":""},paste:{"plaintext_mode":"Paste is now in plain text mode. Click again to toggle back to regular paste mode.","plaintext_mode_sticky":"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.","selectall_desc":"\u05d1\u05d7\u05e8 \u05d4\u05db\u05dc","paste_word_desc":"\u05d4\u05d3\u05d1\u05e7\u05d4 \u05de-WORD","paste_text_desc":"\u05d4\u05d3\u05d1\u05e7\u05d4 \u05db\u05d8\u05e7\u05e1\u05d8 \u05d1\u05dc\u05d1\u05d3"},"paste_dlg":{"word_title":"\u05d4\u05d3\u05d1\u05d9\u05e7\u05d5 \u05d1\u05d7\u05dc\u05d5\u05df \u05d6\u05d4 \u05d0\u05ea \u05d4\u05d8\u05e7\u05e1\u05d8 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05de\u05e7\u05e9\u05d9\u05dd CTRL+V.","text_linebreaks":"\u05d4\u05e9\u05d0\u05e8 \u05d0\u05ea \u05e9\u05d5\u05e8\u05d5\u05ea \u05d4\u05e8\u05d5\u05d5\u05d7","text_title":"\u05d4\u05d3\u05d1\u05d9\u05e7\u05d5 \u05d1\u05d7\u05dc\u05d5\u05df \u05d6\u05d4 \u05d0\u05ea \u05d4\u05d8\u05e7\u05e1\u05d8 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05de\u05e7\u05e9\u05d9\u05dd CTRL+V."},table:{cell:"\u05ea\u05d0",col:"\u05e2\u05de\u05d5\u05d3\u05d4",row:"\u05e9\u05d5\u05e8\u05d4",del:"\u05de\u05d7\u05d9\u05e7\u05ea \u05d8\u05d1\u05dc\u05d4","copy_row_desc":"\u05d4\u05e2\u05ea\u05e7\u05ea \u05e9\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d1\u05dc\u05d4","cut_row_desc":"\u05d2\u05d6\u05d9\u05e8\u05ea \u05e9\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d1\u05dc\u05d4","paste_row_after_desc":"\u05d4\u05d3\u05d1\u05e7\u05ea \u05e9\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d1\u05dc\u05d4 \u05d0\u05d7\u05e8\u05d9","paste_row_before_desc":"\u05d4\u05d3\u05d1\u05e7\u05ea \u05e9\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d1\u05dc\u05d4 \u05dc\u05e4\u05e0\u05d9","props_desc":"\u05ea\u05db\u05d5\u05e0\u05d5\u05ea \u05d4\u05d8\u05d1\u05dc\u05d4","cell_desc":"\u05ea\u05db\u05d5\u05e0\u05d5\u05ea \u05ea\u05d0 \u05d1\u05d8\u05d1\u05dc\u05d4","row_desc":"\u05ea\u05db\u05d5\u05e0\u05d5\u05ea \u05e9\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d1\u05dc\u05d4","merge_cells_desc":"\u05d0\u05d9\u05d7\u05d5\u05d3 \u05ea\u05d0\u05d9\u05dd \u05d1\u05d8\u05d1\u05dc\u05d4","split_cells_desc":"\u05e4\u05d9\u05e6\u05d5\u05dc \u05ea\u05d0\u05d9\u05dd \u05d1\u05d8\u05d1\u05dc\u05d4","delete_col_desc":"\u05d4\u05e1\u05e8\u05ea \u05e2\u05de\u05d5\u05d3\u05d4","col_after_desc":"\u05d4\u05db\u05e0\u05e1\u05ea \u05e2\u05de\u05d5\u05d3\u05d4 \u05de\u05e9\u05de\u05d0\u05dc","col_before_desc":"\u05d4\u05db\u05e0\u05e1\u05ea \u05e2\u05de\u05d5\u05d3\u05d4 \u05de\u05d9\u05de\u05d9\u05df","delete_row_desc":"\u05de\u05d7\u05d9\u05e7\u05ea \u05e9\u05d5\u05e8\u05d4","row_after_desc":"\u05d4\u05db\u05e0\u05e1\u05ea \u05e9\u05d5\u05e8\u05d4 \u05de\u05ea\u05d7\u05ea","row_before_desc":"\u05d4\u05db\u05e0\u05e1\u05ea \u05e9\u05d5\u05e8\u05d4 \u05de\u05e2\u05dc",desc:"\u05d4\u05db\u05e0\u05e1\u05ea \u05d0\u05d5 \u05e2\u05e8\u05d9\u05db\u05ea \u05d8\u05d1\u05dc\u05d4","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"\u05d0\u05dd \u05ea\u05e9\u05d7\u05d6\u05e8 \u05d0\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05dc\u05d2\u05e8\u05d9\u05e1\u05d0 \u05d4\u05e9\u05de\u05d5\u05e8\u05d4, \u05ea\u05d0\u05d1\u05d3 \u05d0\u05ea \u05db\u05dc \u05d4\u05ea\u05d5\u05db\u05df \u05e9\u05e0\u05de\u05e6\u05d0 \u05db\u05e2\u05ea \u05d1\u05e2\u05d5\u05e8\u05da. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05e9\u05d7\u05d6\u05e8 \u05d0\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05dc\u05d2\u05d9\u05e8\u05e1\u05d0 \u05d4\u05e9\u05de\u05d5\u05e8\u05d4?.","restore_content":"\u05e9\u05d7\u05d6\u05d5\u05e8 \u05dc\u05d2\u05d9\u05e8\u05e1\u05d0 \u05e9\u05de\u05d5\u05e8\u05d4 \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05ea","unload_msg":"\u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e9\u05d1\u05d9\u05e6\u05e2\u05ea \u05dc\u05d0 \u05d9\u05e9\u05de\u05e8\u05d5 \u05d0\u05dd \u05ea\u05e2\u05d1\u05d5\u05e8 \u05de\u05d3\u05e3 \u05d6\u05d4"},fullscreen:{desc:"\u05de\u05e2\u05d1\u05e8 \u05dc\u05de\u05e1\u05da \u05de\u05dc\u05d0/\u05d7\u05dc\u05e7\u05d9"},media:{edit:"\u05e2\u05e8\u05d9\u05db\u05ea \u05e1\u05e8\u05d8\u05d5\u05df",desc:"\u05d4\u05d5\u05e1\u05e4\u05ea/\u05e2\u05e8\u05d9\u05db\u05ea \u05e1\u05e8\u05d8\u05d5\u05df","delta_height":"","delta_width":""},fullpage:{desc:"\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05e2\u05de\u05d5\u05d3","delta_width":"","delta_height":""},template:{desc:"Insert predefined template content"},visualchars:{desc:"\u05d4\u05e6\u05d2/\u05d4\u05e1\u05ea\u05e8 \u05ea\u05d5\u05d5\u05d9 \u05d1\u05e7\u05e8\u05d4"},spellchecker:{desc:"\u05d4\u05e4\u05e2\u05dc\u05ea \u05d1\u05d5\u05d3\u05e7 \u05d0\u05d9\u05d5\u05ea",menu:"\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d1\u05d5\u05d3\u05e7 \u05d0\u05d9\u05d5\u05ea","ignore_word":"\u05dc\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05d4\u05de\u05d9\u05dc\u05d4","ignore_words":"\u05dc\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05d4\u05db\u05dc",langs:"\u05e9\u05e4\u05d5\u05ea",wait:"\u05e0\u05d0 \u05dc\u05d4\u05de\u05ea\u05d9\u05df..",sug:"\u05d4\u05e6\u05e2\u05d5\u05ea","no_sug":"\u05d0\u05d9\u05df \u05d4\u05e6\u05e2\u05d5\u05ea","no_mpell":"\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05e9\u05d2\u05d9\u05d0\u05d5\u05ea \u05d0\u05d9\u05d5\u05ea","learn_word":"\u05dc\u05de\u05d3 \u05de\u05d9\u05dc\u05d9\u05dd"},pagebreak:{desc:"\u05d4\u05d5\u05e1\u05e4\u05ea \u05de\u05e2\u05d1\u05e8 \u05d3\u05e3"},advlist:{types:"\u05e1\u05d5\u05d2\u05d9\u05dd",def:"\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc","lower_alpha":"Lower alpha","lower_greek":"Lower greek","lower_roman":"Lower roman","upper_alpha":"Upper alpha","upper_roman":"Upper roman",circle:"\u05e2\u05d2\u05d5\u05dc",disc:"\u05d3\u05d9\u05e1\u05e7",square:"\u05de\u05e8\u05d5\u05d1\u05e2"},colors:{"333300":"\u05d6\u05d9\u05ea \u05db\u05d4\u05d4","993300":"\u05db\u05ea\u05d5\u05dd \u05db\u05d4\u05d4","000000":"\u05e9\u05d7\u05d5\u05e8","003300":"\u05d9\u05e8\u05d5\u05e7 \u05db\u05d4\u05d4","003366":"\u05d8\u05d5\u05e8\u05e7\u05d9\u05d6 \u05db\u05d4\u05d4","000080":"\u05db\u05d7\u05d5\u05dc \u05e6\u05d9","333399":"\u05d0\u05d9\u05e0\u05d3\u05d9\u05d2\u05d5","333333":"\u05d0\u05e4\u05d5\u05e8 \u05db\u05d4\u05d4 \u05de\u05d0\u05d5\u05d3","800000":"\u05e2\u05e8\u05de\u05d5\u05e0\u05d9",FF6600:"\u05db\u05ea\u05d5\u05dd","808000":"\u05d6\u05d9\u05ea","008000":"\u05d9\u05e8\u05d5\u05e7","008080":"\u05d9\u05e8\u05d5\u05e7-\u05db\u05d7\u05d5\u05dc \u05e2\u05de\u05d5\u05e7","0000FF":"\u05db\u05d7\u05d5\u05dc","666699":"\u05db\u05d7\u05d5\u05dc \u05d0\u05e4\u05e8\u05e4\u05e8","808080":"\u05d0\u05e4\u05d5\u05e8",FF0000:"\u05d0\u05d3\u05d5\u05dd",FF9900:"\u05e2\u05e0\u05d1\u05e8","99CC00":"\u05d9\u05e8\u05d5\u05e7 \u05e6\u05d4\u05d1\u05d4\u05d1","339966":"\u05d9\u05e8\u05d5\u05e7 \u05d9\u05dd","33CCCC":"\u05d8\u05d5\u05e8\u05e7\u05d9\u05d6","3366FF":"\u05db\u05d7\u05d5\u05dc \u05e8\u05d5\u05d9\u05d0\u05dc","800080":"\u05e1\u05d2\u05d5\u05dc","999999":"\u05d0\u05e4\u05d5\u05e8 \u05d1\u05d9\u05e0\u05d9\u05d9\u05dd",FF00FF:"\u05e1\u05d2\u05d5\u05dc-\u05d5\u05e8\u05d5\u05d3 (\u05de\u05d2\u05f3\u05e0\u05d8\u05d4)",FFCC00:"\u05d6\u05d4\u05d1",FFFF00:"\u05e6\u05d4\u05d5\u05d1","00FF00":"\u05dc\u05d9\u05d9\u05dd","00FFFF":"\u05d8\u05d5\u05e8\u05e7\u05d9\u05d6 \u05de\u05d9\u05dd","00CCFF":"\u05ea\u05db\u05dc\u05ea","993366":"\u05d7\u05d5\u05dd",C0C0C0:"\u05db\u05e1\u05e3",FF99CC:"\u05d5\u05e8\u05d5\u05d3",FFCC99:"\u05d0\u05e4\u05e8\u05e1\u05e7",FFFF99:"\u05e6\u05d4\u05d5\u05d1 \u05d1\u05d4\u05d9\u05e8",CCFFCC:"\u05d9\u05e8\u05d5\u05e7 \u05d7\u05d9\u05d5\u05d5\u05e8",CCFFFF:"\u05d8\u05d5\u05e8\u05e7\u05d9\u05d6 \u05d1\u05d4\u05d9\u05e8","99CCFF":"\u05ea\u05db\u05dc\u05ea \u05d1\u05d4\u05d9\u05e8",CC99FF:"\u05d5\u05e8\u05d5\u05d3 \u05e2\u05de\u05d5\u05e7",FFFFFF:"\u05dc\u05d1\u05df"},aria:{"rich_text_area":"\u05d0\u05d6\u05d5\u05e8 \u05e2\u05d5\u05e8\u05da \u05d8\u05e7\u05e1\u05d8 \u05e2\u05e9\u05d9\u05e8"},wordcount:{words:"\u05de\u05d9\u05dc\u05d9\u05dd:"}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/it.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/it.js new file mode 100644 index 0000000000..d97803d2b3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/it.js @@ -0,0 +1,219 @@ +tinymce.addI18n('it',{ +"Cut": "Taglia", +"Heading 5": "Intestazione 5", +"Header 2": "Header 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Il tuo browser non supporta l'accesso diretto negli Appunti. Per favore usa i tasti di scelta rapida Ctrl+X\/C\/V.", +"Heading 4": "Intestazione 4", +"Div": "Div", +"Heading 2": "Intestazione 2", +"Paste": "Incolla", +"Close": "Chiudi", +"Font Family": "Famiglia font", +"Pre": "Pre", +"Align right": "Allinea a Destra", +"New document": "Nuovo Documento", +"Blockquote": "Blockquote", +"Numbered list": "Elenchi Numerati", +"Heading 1": "Intestazione 1", +"Headings": "Intestazioni", +"Increase indent": "Aumenta Rientro", +"Formats": "Formattazioni", +"Headers": "Intestazioni", +"Select all": "Seleziona Tutto", +"Header 3": "Intestazione 3", +"Blocks": "Blocchi", +"Undo": "Indietro", +"Strikethrough": "Barrato", +"Bullet list": "Elenchi Puntati", +"Header 1": "Intestazione 1", +"Superscript": "Apice", +"Clear formatting": "Cancella Formattazione", +"Font Sizes": "Dimensioni font", +"Subscript": "Pedice", +"Header 6": "Intestazione 6", +"Redo": "Ripeti", +"Paragraph": "Paragrafo", +"Ok": "Ok", +"Bold": "Grassetto", +"Code": "Codice", +"Italic": "Corsivo", +"Align center": "Allinea al Cento", +"Header 5": "Intestazione 5", +"Heading 6": "Intestazione 6", +"Heading 3": "Intestazione 3", +"Decrease indent": "Riduci Rientro", +"Header 4": "Intestazione 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Incolla \u00e8 in modalit\u00e0 testo normale. I contenuti sono incollati come testo normale se non disattivi l'opzione.", +"Underline": "Sottolineato", +"Cancel": "Annulla", +"Justify": "Giustifica", +"Inline": "Inlinea", +"Copy": "Copia", +"Align left": "Allinea a Sinistra", +"Visual aids": "Elementi Visivi", +"Lower Greek": "Greek Minore", +"Square": "Quadrato", +"Default": "Default", +"Lower Alpha": "Alpha Minore", +"Circle": "Cerchio", +"Disc": "Disco", +"Upper Alpha": "Alpha Superiore", +"Upper Roman": "Roman Superiore", +"Lower Roman": "Roman Minore", +"Name": "Nome", +"Anchor": "Fissa", +"You have unsaved changes are you sure you want to navigate away?": "Non hai salvato delle modifiche, sei sicuro di andartene?", +"Restore last draft": "Ripristina l'ultima bozza.", +"Special character": "Carattere Speciale", +"Source code": "Codice Sorgente", +"B": "B", +"R": "R", +"G": "G", +"Color": "Colore", +"Right to left": "Da Destra a Sinistra", +"Left to right": "Da Sinistra a Destra", +"Emoticons": "Emoction", +"Robots": "Robot", +"Document properties": "Propriet\u00e0 Documento", +"Title": "Titolo", +"Keywords": "Parola Chiave", +"Encoding": "Codifica", +"Description": "Descrizione", +"Author": "Autore", +"Fullscreen": "Schermo Intero", +"Horizontal line": "Linea Orizzontale", +"Horizontal space": "Spazio Orizzontale", +"Insert\/edit image": "Aggiungi\/Modifica Immagine", +"General": "Generale", +"Advanced": "Avanzato", +"Source": "Fonte", +"Border": "Bordo", +"Constrain proportions": "Mantieni Proporzioni", +"Vertical space": "Spazio Verticale", +"Image description": "Descrizione Immagine", +"Style": "Stile", +"Dimensions": "Dimenzioni", +"Insert image": "Inserisci immagine", +"Zoom in": "Ingrandisci", +"Contrast": "Contrasto", +"Back": "Indietro", +"Gamma": "Gamma", +"Flip horizontally": "Rifletti orizzontalmente", +"Resize": "Ridimensiona", +"Sharpen": "Contrasta", +"Zoom out": "Rimpicciolisci", +"Image options": "Opzioni immagine", +"Apply": "Applica", +"Brightness": "Luminosit\u00e0", +"Rotate clockwise": "Ruota in senso orario", +"Rotate counterclockwise": "Ruota in senso antiorario", +"Edit image": "Modifica immagine", +"Color levels": "Livelli colore", +"Crop": "Taglia", +"Orientation": "Orientamento", +"Flip vertically": "Rifletti verticalmente", +"Invert": "Inverti", +"Insert date\/time": "Inserisci Data\/Ora", +"Remove link": "Rimuovi link", +"Url": "Url", +"Text to display": "Testo da Visualizzare", +"Anchors": "Anchors", +"Insert link": "Inserisci il Link", +"New window": "Nuova Finestra", +"None": "No", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL inserito sembra essere un collegamento esterno. Vuoi aggiungere il prefisso necessario http:\/\/?", +"Target": "Target", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL inserito sembra essere un indirizzo email. Vuoi aggiungere il prefisso necessario mailto:?", +"Insert\/edit link": "Inserisci\/Modifica Link", +"Insert\/edit video": "Inserisci\/Modifica Video", +"Poster": "Anteprima", +"Alternative source": "Alternativo", +"Paste your embed code below:": "Incolla il codice d'incorporamento qui:", +"Insert video": "Inserisci Video", +"Embed": "Incorporare", +"Nonbreaking space": "Spazio unificatore", +"Page break": "Interruzione di pagina", +"Paste as text": "incolla come testo", +"Preview": "Anteprima", +"Print": "Stampa", +"Save": "Salva", +"Could not find the specified string.": "Impossibile trovare la parola specifica.", +"Replace": "Sostituisci", +"Next": "Successivo", +"Whole words": "Parole Sbagliate", +"Find and replace": "Trova e Sostituisci", +"Replace with": "Sostituisci Con", +"Find": "Trova", +"Replace all": "Sostituisci Tutto", +"Match case": "Maiuscole\/Minuscole ", +"Prev": "Precedente", +"Spellcheck": "Controllo ortografico", +"Finish": "Termina", +"Ignore all": "Ignora Tutto", +"Ignore": "Ignora", +"Add to Dictionary": "Aggiungi al Dizionario", +"Insert row before": "Inserisci una Riga Prima", +"Rows": "Righe", +"Height": "Altezza", +"Paste row after": "Incolla una Riga Dopo", +"Alignment": "Allineamento", +"Border color": "Colore bordo", +"Column group": "Gruppo di Colonne", +"Row": "Riga", +"Insert column before": "Inserisci una Colonna Prima", +"Split cell": "Dividi Cella", +"Cell padding": "Padding della Cella", +"Cell spacing": "Spaziatura della Cella", +"Row type": "Tipo di Riga", +"Insert table": "Inserisci Tabella", +"Body": "Body", +"Caption": "Didascalia", +"Footer": "Footer", +"Delete row": "Cancella Riga", +"Paste row before": "Incolla una Riga Prima", +"Scope": "Campo", +"Delete table": "Cancella Tabella", +"H Align": "Allineamento H", +"Top": "In alto", +"Header cell": "cella d'intestazione", +"Column": "Colonna", +"Row group": "Gruppo di Righe", +"Cell": "Cella", +"Middle": "In mezzo", +"Cell type": "Tipo di Cella", +"Copy row": "Copia Riga", +"Row properties": "Propriet\u00e0 della Riga", +"Table properties": "Propiet\u00e0 della Tabella", +"Bottom": "In fondo", +"V Align": "Allineamento V", +"Header": "Header", +"Right": "Destra", +"Insert column after": "Inserisci una Colonna Dopo", +"Cols": "Colonne", +"Insert row after": "Inserisci una Riga Dopo", +"Width": "Larghezza", +"Cell properties": "Propiet\u00e0 della Cella", +"Left": "Sinistra", +"Cut row": "Taglia Riga", +"Delete column": "Cancella Colonna", +"Center": "Centro", +"Merge cells": "Unisci Cella", +"Insert template": "Inserisci Template", +"Templates": "Template", +"Background color": "Colore Background", +"Custom...": "Personalizzato...", +"Custom color": "Colore personalizzato", +"No color": "Nessun colore", +"Text color": "Colore Testo", +"Show blocks": "Mostra Blocchi", +"Show invisible characters": "Mostra Caratteri Invisibili", +"Words: {0}": "Parole: {0}", +"Insert": "Inserisci", +"File": "File", +"Edit": "Modifica", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Premi ALT-F9 per il men\u00f9. Premi ALT-F10 per la barra degli strumenti. Premi ALT-0 per l'aiuto.", +"Tools": "Strumenti", +"View": "Visualiza", +"Table": "Tabella", +"Format": "Formato" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/ja.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/ja.js new file mode 100644 index 0000000000..848cbd36b9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/ja.js @@ -0,0 +1,219 @@ +tinymce.addI18n('ja',{ +"Cut": "\u5207\u308a\u53d6\u308a", +"Heading 5": "\u898b\u51fa\u3057 5", +"Header 2": "\u30d8\u30c3\u30c0\u30fc 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u304a\u4f7f\u3044\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u6a5f\u80fd\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\uff08Ctrl+X, Ctrl+C, Ctrl+V\uff09\u3092\u304a\u4f7f\u3044\u4e0b\u3055\u3044\u3002", +"Heading 4": "\u898b\u51fa\u3057 4", +"Div": "Div", +"Heading 2": "\u898b\u51fa\u3057 2", +"Paste": "\u8cbc\u308a\u4ed8\u3051", +"Close": "\u9589\u3058\u308b", +"Font Family": "\u30d5\u30a9\u30f3\u30c8\u30d5\u30a1\u30df\u30ea\u30fc", +"Pre": "Pre", +"Align right": "\u53f3\u5bc4\u305b", +"New document": "\u65b0\u898f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8", +"Blockquote": "\u5f15\u7528", +"Numbered list": "\u756a\u53f7\u4ed8\u304d\u7b87\u6761\u66f8\u304d", +"Heading 1": "\u898b\u51fa\u3057 1", +"Headings": "\u898b\u51fa\u3057", +"Increase indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u5897\u3084\u3059", +"Formats": "\u66f8\u5f0f", +"Headers": "\u30d8\u30c3\u30c0\u30fc", +"Select all": "\u5168\u3066\u3092\u9078\u629e", +"Header 3": "\u30d8\u30c3\u30c0\u30fc 3", +"Blocks": "\u30d6\u30ed\u30c3\u30af", +"Undo": "\u5143\u306b\u623b\u3059", +"Strikethrough": "\u53d6\u308a\u6d88\u3057\u7dda", +"Bullet list": "\u7b87\u6761\u66f8\u304d", +"Header 1": "\u30d8\u30c3\u30c0\u30fc 1", +"Superscript": "\u4e0a\u4ed8\u304d\u6587\u5b57", +"Clear formatting": "\u66f8\u5f0f\u3092\u30af\u30ea\u30a2", +"Font Sizes": "\u30d5\u30a9\u30f3\u30c8\u30b5\u30a4\u30ba", +"Subscript": "\u4e0b\u4ed8\u304d\u6587\u5b57", +"Header 6": "\u30d8\u30c3\u30c0\u30fc 6", +"Redo": "\u3084\u308a\u76f4\u3059", +"Paragraph": "\u6bb5\u843d", +"Ok": "OK", +"Bold": "\u592a\u5b57", +"Code": "\u30b3\u30fc\u30c9", +"Italic": "\u659c\u4f53", +"Align center": "\u4e2d\u592e\u63c3\u3048", +"Header 5": "\u30d8\u30c3\u30c0\u30fc 5", +"Heading 6": "\u898b\u51fa\u3057 6", +"Heading 3": "\u898b\u51fa\u3057 3", +"Decrease indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u6e1b\u3089\u3059", +"Header 4": "\u30d8\u30c3\u30c0\u30fc 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u8cbc\u308a\u4ed8\u3051\u306f\u73fe\u5728\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u30e2\u30fc\u30c9\u3067\u3059\u3002\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u30aa\u30d5\u306b\u3057\u306a\u3044\u9650\u308a\u5185\u5bb9\u306f\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8cbc\u308a\u4ed8\u3051\u3089\u308c\u307e\u3059\u3002", +"Underline": "\u4e0b\u7dda", +"Cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb", +"Justify": "\u4e21\u7aef\u63c3\u3048", +"Inline": "\u30a4\u30f3\u30e9\u30a4\u30f3", +"Copy": "\u30b3\u30d4\u30fc", +"Align left": "\u5de6\u5bc4\u305b", +"Visual aids": "\u8868\u306e\u67a0\u7dda\u3092\u70b9\u7dda\u3067\u8868\u793a", +"Lower Greek": "\u5c0f\u6587\u5b57\u306e\u30ae\u30ea\u30b7\u30e3\u6587\u5b57", +"Square": "\u56db\u89d2", +"Default": "\u30c7\u30d5\u30a9\u30eb\u30c8", +"Lower Alpha": "\u5c0f\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8", +"Circle": "\u5186", +"Disc": "\u70b9", +"Upper Alpha": "\u5927\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8", +"Upper Roman": "\u5927\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57", +"Lower Roman": "\u5c0f\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57", +"Name": "\u30a2\u30f3\u30ab\u30fc\u540d", +"Anchor": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09", +"You have unsaved changes are you sure you want to navigate away?": "\u307e\u3060\u4fdd\u5b58\u3057\u3066\u3044\u306a\u3044\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u672c\u5f53\u306b\u3053\u306e\u30da\u30fc\u30b8\u3092\u96e2\u308c\u307e\u3059\u304b\uff1f", +"Restore last draft": "\u524d\u56de\u306e\u4e0b\u66f8\u304d\u3092\u5fa9\u6d3b\u3055\u305b\u308b", +"Special character": "\u7279\u6b8a\u6587\u5b57", +"Source code": "\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9", +"B": "B", +"R": "R", +"G": "G", +"Color": "\u30ab\u30e9\u30fc", +"Right to left": "\u53f3\u304b\u3089\u5de6", +"Left to right": "\u5de6\u304b\u3089\u53f3", +"Emoticons": "\u7d75\u6587\u5b57", +"Robots": "\u30ed\u30dc\u30c3\u30c4", +"Document properties": "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3", +"Title": "\u30bf\u30a4\u30c8\u30eb", +"Keywords": "\u30ad\u30fc\u30ef\u30fc\u30c9", +"Encoding": "\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0", +"Description": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5185\u5bb9", +"Author": "\u8457\u8005", +"Fullscreen": "\u5168\u753b\u9762\u8868\u793a", +"Horizontal line": "\u6c34\u5e73\u7f6b\u7dda", +"Horizontal space": "\u6a2a\u65b9\u5411\u306e\u4f59\u767d", +"Insert\/edit image": "\u753b\u50cf\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"General": "\u4e00\u822c", +"Advanced": "\u8a73\u7d30\u8a2d\u5b9a", +"Source": "\u753b\u50cf\u306e\u30bd\u30fc\u30b9", +"Border": "\u67a0\u7dda", +"Constrain proportions": "\u7e26\u6a2a\u6bd4\u3092\u4fdd\u6301\u3059\u308b", +"Vertical space": "\u7e26\u65b9\u5411\u306e\u4f59\u767d", +"Image description": "\u753b\u50cf\u306e\u8aac\u660e\u6587", +"Style": "\u30b9\u30bf\u30a4\u30eb", +"Dimensions": "\u753b\u50cf\u30b5\u30a4\u30ba\uff08\u6a2a\u30fb\u7e26\uff09", +"Insert image": "\u753b\u50cf\u306e\u633f\u5165", +"Zoom in": "\u30ba\u30fc\u30e0\u30a4\u30f3", +"Contrast": "\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8", +"Back": "\u623b\u308b", +"Gamma": "\u30ac\u30f3\u30de", +"Flip horizontally": "\u6c34\u5e73\u306b\u53cd\u8ee2", +"Resize": "\u30ea\u30b5\u30a4\u30ba", +"Sharpen": "\u30b7\u30e3\u30fc\u30d7\u5316", +"Zoom out": "\u30ba\u30fc\u30e0\u30a2\u30a6\u30c8", +"Image options": "\u753b\u50cf\u30aa\u30d7\u30b7\u30e7\u30f3", +"Apply": "\u9069\u7528", +"Brightness": "\u660e\u308b\u3055", +"Rotate clockwise": "\u6642\u8a08\u56de\u308a\u306b\u56de\u8ee2", +"Rotate counterclockwise": "\u53cd\u6642\u8a08\u56de\u308a\u306b\u56de\u8ee2", +"Edit image": "\u753b\u50cf\u306e\u7de8\u96c6", +"Color levels": "\u30ab\u30e9\u30fc\u30ec\u30d9\u30eb", +"Crop": "\u30af\u30ed\u30c3\u30d7", +"Orientation": "\u5411\u304d", +"Flip vertically": "\u4e0a\u4e0b\u306b\u53cd\u8ee2", +"Invert": "\u53cd\u8ee2", +"Insert date\/time": "\u65e5\u4ed8\u30fb\u6642\u523b", +"Remove link": "\u30ea\u30f3\u30af\u306e\u524a\u9664", +"Url": "\u30ea\u30f3\u30af\u5148URL", +"Text to display": "\u30ea\u30f3\u30af\u5143\u30c6\u30ad\u30b9\u30c8", +"Anchors": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09", +"Insert link": "\u30ea\u30f3\u30af", +"New window": "\u65b0\u898f\u30a6\u30a3\u30f3\u30c9\u30a6", +"None": "\u306a\u3057", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u5165\u529b\u3055\u308c\u305fURL\u306f\u5916\u90e8\u30ea\u30f3\u30af\u306e\u3088\u3046\u3067\u3059\u3002\u300chttp:\/\/\u300d\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f", +"Target": "\u30bf\u30fc\u30b2\u30c3\u30c8\u5c5e\u6027", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u5165\u529b\u3055\u308c\u305fURL\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u3088\u3046\u3067\u3059\u3002\u300cmailto:\u300d\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f", +"Insert\/edit link": "\u30ea\u30f3\u30af\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"Insert\/edit video": "\u52d5\u753b\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"Poster": "\u4ee3\u66ff\u753b\u50cf\u306e\u5834\u6240", +"Alternative source": "\u4ee3\u66ff\u52d5\u753b\u306e\u5834\u6240", +"Paste your embed code below:": "\u57cb\u3081\u8fbc\u307f\u7528\u30b3\u30fc\u30c9\u3092\u4e0b\u8a18\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002", +"Insert video": "\u52d5\u753b", +"Embed": "\u57cb\u3081\u8fbc\u307f", +"Nonbreaking space": "\u56fa\u5b9a\u30b9\u30da\u30fc\u30b9\uff08 \uff09", +"Page break": "\u30da\u30fc\u30b8\u533a\u5207\u308a", +"Paste as text": "\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8cbc\u308a\u4ed8\u3051", +"Preview": "\u30d7\u30ec\u30d3\u30e5\u30fc", +"Print": "\u5370\u5237", +"Save": "\u4fdd\u5b58", +"Could not find the specified string.": "\u304a\u63a2\u3057\u306e\u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002", +"Replace": "\u7f6e\u304d\u63db\u3048", +"Next": "\u6b21", +"Whole words": "\u5358\u8a9e\u5358\u4f4d\u3067\u691c\u7d22\u3059\u308b", +"Find and replace": "\u691c\u7d22\u3068\u7f6e\u304d\u63db\u3048", +"Replace with": "\u7f6e\u304d\u63db\u3048\u308b\u6587\u5b57", +"Find": "\u691c\u7d22", +"Replace all": "\u5168\u3066\u3092\u7f6e\u304d\u63db\u3048\u308b", +"Match case": "\u5927\u6587\u5b57\u30fb\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b", +"Prev": "\u524d", +"Spellcheck": "\u30b9\u30da\u30eb\u30c1\u30a7\u30c3\u30af", +"Finish": "\u7d42\u4e86", +"Ignore all": "\u5168\u3066\u3092\u7121\u8996", +"Ignore": "\u7121\u8996", +"Add to Dictionary": "\u8f9e\u66f8\u306b\u8ffd\u52a0", +"Insert row before": "\u4e0a\u5074\u306b\u884c\u3092\u633f\u5165", +"Rows": "\u884c\u6570", +"Height": "\u9ad8\u3055", +"Paste row after": "\u4e0b\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051", +"Alignment": "\u914d\u7f6e", +"Border color": "\u67a0\u7dda\u306e\u8272", +"Column group": "\u5217\u30b0\u30eb\u30fc\u30d7", +"Row": "\u884c", +"Insert column before": "\u5de6\u5074\u306b\u5217\u3092\u633f\u5165", +"Split cell": "\u30bb\u30eb\u306e\u5206\u5272", +"Cell padding": "\u30bb\u30eb\u5185\u4f59\u767d\uff08\u30d1\u30c7\u30a3\u30f3\u30b0\uff09", +"Cell spacing": "\u30bb\u30eb\u306e\u9593\u9694", +"Row type": "\u884c\u30bf\u30a4\u30d7", +"Insert table": "\u8868\u306e\u633f\u5165", +"Body": "\u30dc\u30c7\u30a3\u30fc", +"Caption": "\u8868\u984c", +"Footer": "\u30d5\u30c3\u30bf\u30fc", +"Delete row": "\u884c\u306e\u524a\u9664", +"Paste row before": "\u4e0a\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051", +"Scope": "\u30b9\u30b3\u30fc\u30d7", +"Delete table": "\u8868\u306e\u524a\u9664", +"H Align": "\u6c34\u5e73\u65b9\u5411\u306e\u914d\u7f6e", +"Top": "\u4e0a", +"Header cell": "\u30d8\u30c3\u30c0\u30fc\u30bb\u30eb", +"Column": "\u5217", +"Row group": "\u884c\u30b0\u30eb\u30fc\u30d7", +"Cell": "\u30bb\u30eb", +"Middle": "\u4e2d\u592e", +"Cell type": "\u30bb\u30eb\u30bf\u30a4\u30d7", +"Copy row": "\u884c\u306e\u30b3\u30d4\u30fc", +"Row properties": "\u884c\u306e\u8a73\u7d30\u8a2d\u5b9a", +"Table properties": "\u8868\u306e\u8a73\u7d30\u8a2d\u5b9a", +"Bottom": "\u4e0b", +"V Align": "\u5782\u76f4\u65b9\u5411\u306e\u914d\u7f6e", +"Header": "\u30d8\u30c3\u30c0\u30fc", +"Right": "\u53f3\u5bc4\u305b", +"Insert column after": "\u53f3\u5074\u306b\u5217\u3092\u633f\u5165", +"Cols": "\u5217\u6570", +"Insert row after": "\u4e0b\u5074\u306b\u884c\u3092\u633f\u5165", +"Width": "\u5e45", +"Cell properties": "\u30bb\u30eb\u306e\u8a73\u7d30\u8a2d\u5b9a", +"Left": "\u5de6\u5bc4\u305b", +"Cut row": "\u884c\u306e\u5207\u308a\u53d6\u308a", +"Delete column": "\u5217\u306e\u524a\u9664", +"Center": "\u4e2d\u592e\u63c3\u3048", +"Merge cells": "\u30bb\u30eb\u306e\u7d50\u5408", +"Insert template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u633f\u5165", +"Templates": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540d", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u30ab\u30b9\u30bf\u30e0...", +"Custom color": "\u30ab\u30b9\u30bf\u30e0\u30ab\u30e9\u30fc", +"No color": "\u30ab\u30e9\u30fc\u306a\u3057", +"Text color": "\u30c6\u30ad\u30b9\u30c8\u306e\u8272", +"Show blocks": "\u6587\u7ae0\u306e\u533a\u5207\u308a\u3092\u70b9\u7dda\u3067\u8868\u793a", +"Show invisible characters": "\u4e0d\u53ef\u8996\u6587\u5b57\u3092\u8868\u793a", +"Words: {0}": "\u5358\u8a9e\u6570: {0}", +"Insert": "\u633f\u5165", +"File": "\u30d5\u30a1\u30a4\u30eb", +"Edit": "\u7de8\u96c6", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u66f8\u5f0f\u4ed8\u304d\u30c6\u30ad\u30b9\u30c8\u306e\u7de8\u96c6\u753b\u9762\u3002ALT-F9\u3067\u30e1\u30cb\u30e5\u30fc\u3001ALT-F10\u3067\u30c4\u30fc\u30eb\u30d0\u30fc\u3001ALT-0\u3067\u30d8\u30eb\u30d7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002", +"Tools": "\u30c4\u30fc\u30eb", +"View": "\u8868\u793a", +"Table": "\u8868", +"Format": "\u66f8\u5f0f" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/nl.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/nl.js new file mode 100644 index 0000000000..ee1f335624 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/nl.js @@ -0,0 +1,219 @@ +tinymce.addI18n('nl',{ +"Cut": "Knippen", +"Heading 5": "Kop 5", +"Header 2": "Kop 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Uw browser ondersteunt geen toegang tot het clipboard. Gelieve ctrl+X\/C\/V sneltoetsen te gebruiken.", +"Heading 4": "Kop 4", +"Div": "Div", +"Heading 2": "Kop 2", +"Paste": "Plakken", +"Close": "Sluiten", +"Font Family": "Lettertype", +"Pre": "Pre", +"Align right": "Rechts uitlijnen", +"New document": "Nieuw document", +"Blockquote": "Quote", +"Numbered list": "Nummering", +"Heading 1": "Kop 1", +"Headings": "Koppen", +"Increase indent": "Inspringen vergroten", +"Formats": "Opmaak", +"Headers": "Kopteksten", +"Select all": "Alles selecteren", +"Header 3": "Kop 3", +"Blocks": "Blok", +"Undo": "Ongedaan maken", +"Strikethrough": "Doorhalen", +"Bullet list": "Opsommingsteken", +"Header 1": "Kop 1", +"Superscript": "Superscript", +"Clear formatting": "Opmaak verwijderen", +"Font Sizes": "Tekengrootte", +"Subscript": "Subscript", +"Header 6": "Kop 6", +"Redo": "Opnieuw", +"Paragraph": "Paragraaf", +"Ok": "Ok\u00e9", +"Bold": "Vet", +"Code": "Code", +"Italic": "Cursief", +"Align center": "Centreren", +"Header 5": "Kop 5", +"Heading 6": "Kop 6", +"Heading 3": "Kop 3", +"Decrease indent": "Inspringen verkleinen", +"Header 4": "Kop 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Plakken gebeurt nu als platte tekst. Tekst wordt nu ingevoegd zonder opmaak tot deze optie uitgeschakeld wordt.", +"Underline": "Onderstreept", +"Cancel": "Annuleren", +"Justify": "Uitlijnen", +"Inline": "Inlijn", +"Copy": "Kopi\u00ebren", +"Align left": "Links uitlijnen", +"Visual aids": "Hulpmiddelen", +"Lower Greek": "Griekse letters", +"Square": "Vierkant", +"Default": "Standaard", +"Lower Alpha": "Kleine letters", +"Circle": "Cirkel", +"Disc": "Bolletje", +"Upper Alpha": "Hoofdletters", +"Upper Roman": "Romeinse cijfers groot", +"Lower Roman": "Romeinse cijfers klein", +"Name": "Naam", +"Anchor": "Anker", +"You have unsaved changes are you sure you want to navigate away?": "U hebt niet alles opgeslagen bent u zeker dat u de pagina wenst te verlaten?", +"Restore last draft": "Herstel het laatste concept", +"Special character": "Speciale karakters", +"Source code": "Broncode", +"B": "Blauw", +"R": "Rood", +"G": "Groen", +"Color": "Kleur", +"Right to left": "Rechts naar links", +"Left to right": "Links naar rechts", +"Emoticons": "Emoticons", +"Robots": "Robots", +"Document properties": "Document eigenschappen", +"Title": "Titel", +"Keywords": "Sleutelwoorden", +"Encoding": "Codering", +"Description": "Omschrijving", +"Author": "Auteur", +"Fullscreen": "Volledig scherm", +"Horizontal line": "Horizontale lijn", +"Horizontal space": "Horizontale ruimte", +"Insert\/edit image": "Afbeelding invoegen\/bewerken", +"General": "Algemeen", +"Advanced": "Geavanceerd", +"Source": "Bron", +"Border": "Rand", +"Constrain proportions": "Verhoudingen behouden", +"Vertical space": "Verticale ruimte", +"Image description": "Afbeelding omschrijving", +"Style": "Stijl", +"Dimensions": "Afmetingen", +"Insert image": "Afbeelding invoegen", +"Zoom in": "Inzoomen", +"Contrast": "Contrast", +"Back": "Terug", +"Gamma": "Gamma", +"Flip horizontally": "Horizontaal spiegelen", +"Resize": "Formaat aanpassen", +"Sharpen": "Scherpte", +"Zoom out": "Uitzoomen", +"Image options": "Afbeelding opties", +"Apply": "Toepassen", +"Brightness": "Helderheid", +"Rotate clockwise": "Rechtsom draaien", +"Rotate counterclockwise": "Linksom draaien", +"Edit image": "Bewerk afbeelding", +"Color levels": "Kleurniveau's", +"Crop": "Uitsnijden", +"Orientation": "Orientatie", +"Flip vertically": "Verticaal spiegelen", +"Invert": "Omkeren", +"Insert date\/time": "Voeg datum\/tijd in", +"Remove link": "Link verwijderen", +"Url": "Url", +"Text to display": "Linktekst", +"Anchors": "Anker", +"Insert link": "Hyperlink invoegen", +"New window": "Nieuw venster", +"None": "Geen", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "De ingegeven URL verwijst naar een extern adres. Wil je er \"http:\/\/\" aan toevoegen?", +"Target": "Doel", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "De ingegeven URL lijkt op een e-mailadres. Wil je er \"mailto:\" aan toevoegen?", +"Insert\/edit link": "Hyperlink invoegen\/bewerken", +"Insert\/edit video": "Video invoegen\/bewerken", +"Poster": "Poster", +"Alternative source": "Alternatieve bron", +"Paste your embed code below:": "Plak u in te sluiten code hieronder:", +"Insert video": "Video invoegen", +"Embed": "Insluiten", +"Nonbreaking space": "Vaste spatie invoegen", +"Page break": "Pagina einde", +"Paste as text": "Plakken als tekst", +"Preview": "Voorbeeld", +"Print": "Print", +"Save": "Opslaan", +"Could not find the specified string.": "Geen resultaten gevonden", +"Replace": "Vervangen", +"Next": "Volgende", +"Whole words": "Alleen hele woorden", +"Find and replace": "Zoek en vervang", +"Replace with": "Vervangen door", +"Find": "Zoeken", +"Replace all": "Alles vervangen", +"Match case": "Identieke hoofd\/kleine letters", +"Prev": "Vorige", +"Spellcheck": "Spellingscontrole", +"Finish": "Einde", +"Ignore all": "Alles negeren", +"Ignore": "Negeren", +"Add to Dictionary": "Toevoegen aan woordenlijst", +"Insert row before": "Voeg rij boven toe", +"Rows": "Rijen", +"Height": "Hoogte", +"Paste row after": "Plak rij onder", +"Alignment": "Uitlijning", +"Border color": "Randkleur", +"Column group": "Kolomgroep", +"Row": "Rij", +"Insert column before": "Voeg kolom in voor", +"Split cell": "Cel splitsen", +"Cell padding": "Ruimte binnen cel", +"Cell spacing": "Celruimte", +"Row type": "Rijtype", +"Insert table": "Tabel invoegen", +"Body": "Body", +"Caption": "Onderschrift", +"Footer": "Voettekst", +"Delete row": "Verwijder rij", +"Paste row before": "Plak rij boven", +"Scope": "Bereik", +"Delete table": "Verwijder tabel", +"H Align": "Links uitlijnen", +"Top": "Bovenaan", +"Header cell": "Kopcel", +"Column": "Kolom", +"Row group": "Rijgroep", +"Cell": "Cel", +"Middle": "Centreren", +"Cell type": "Celtype", +"Copy row": "Kopieer rij", +"Row properties": "Rij eigenschappen", +"Table properties": "Tabel eigenschappen", +"Bottom": "Onderaan", +"V Align": "Boven uitlijnen", +"Header": "Koptekst", +"Right": "Rechts", +"Insert column after": "Voeg kolom in na", +"Cols": "Kolommen", +"Insert row after": "Voeg rij onder toe", +"Width": "Breedte", +"Cell properties": "Cel eigenschappen", +"Left": "Links", +"Cut row": "Knip rij", +"Delete column": "Verwijder kolom", +"Center": "Midden", +"Merge cells": "Cellen samenvoegen", +"Insert template": "Sjabloon invoegen", +"Templates": "Sjablonen", +"Background color": "Achtergrondkleur", +"Custom...": "Eigen...", +"Custom color": "Eigen kleur", +"No color": "Geen kleur", +"Text color": "Tekstkleur", +"Show blocks": "Blokken tonen", +"Show invisible characters": "Onzichtbare karakters tonen", +"Words: {0}": "Woorden: {0}", +"Insert": "Invoegen", +"File": "Bestand", +"Edit": "Bewerken", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Druk ALT-F9 voor het menu. Druk ALT-F10 voor de toolbar. Druk ALT-0 voor help.", +"Tools": "Gereedschap", +"View": "Beeld", +"Table": "Tabel", +"Format": "Opmaak" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/no.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/no.js new file mode 100644 index 0000000000..69ded56dab --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/no.js @@ -0,0 +1 @@ +tinyMCE.addI18n({no:{common:{"more_colors":"Flere farger","invalid_data":"Feil: Ugyldig verdi er skrevet inn, disse er merket med r\u00f8dt","popup_blocked":"Beklager, men vi har registrert at din popup-sperrer har blokkert et vindu i nettleseren. Du m\u00e5 oppheve popup-sperren for at nettstedet skal f\u00e5 tilgang til dette verkt\u00f8yet","clipboard_no_support":"For tiden ikke st\u00f8ttet av din nettleser, bruk tastatursnarveier i stedet.","clipboard_msg":"Klipp ut / Kopier /Lim inn fungerer ikke i Mozilla og Firefox. Vil du vite mer om dette?","not_set":"--Ikke satt--","class_name":"Klasse",browse:"Bla gjennom",close:"Lukk",cancel:"Avbryt",update:"Oppdater",insert:"Sett inn",apply:"Bruk","edit_confirm":"Vil du bruke WYSIWYG-editoren for dette tekstfeltet?","invalid_data_number":"{#field} m\u00e5 v\u00e6re et nummer","invalid_data_min":"{#field} m\u00e5 v\u00e6re et nummber st\u00f8rre en {#min}","invalid_data_size":"{#field} m\u00e5 v\u00e6re et nummer eller prosent av",value:"(verdi)"},contextmenu:{full:"Full",right:"H\u00f8yre",center:"Midtstilt",left:"Venstre",align:"Justering"},insertdatetime:{"day_short":"S\u00f8n,Man,Tir,Ons,Tor,Fre,L\u00f8r,S\u00f8n","day_long":"s\u00f8ndag,mandag,tirsdag,onsdag,torsdag,fredag,l\u00f8rdag,s\u00f8ndag","months_short":"jan,feb,mar,apr,mai,jun,jul,aug,sep,okt,nov,des","months_long":"januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember","inserttime_desc":"Sett inn tid","insertdate_desc":"Sett inn dato","time_fmt":"%H:%M:%S","date_fmt":"%d-%m-%Y"},print:{"print_desc":"Skriv ut"},preview:{"preview_desc":"Forh\u00e5ndsvisning"},directionality:{"rtl_desc":"Retning h\u00f8yre mot venstre","ltr_desc":"Retning venstre mot h\u00f8yre"},layer:{content:"Nytt lag ...","absolute_desc":"Sl\u00e5 p\u00e5/av absolutt plassering","backward_desc":"Flytt bakover","forward_desc":"Flytt fremover","insertlayer_desc":"Sett inn nytt lag"},save:{"save_desc":"Lagre","cancel_desc":"Kanseller alle endringer"},nonbreaking:{"nonbreaking_desc":"Sett inn tegn for hardt mellomrom"},iespell:{download:"ieSpell ikke funnet. \u00d8nsker du \u00e5 installere ieSpell?","iespell_desc":"Stavekontroll"},advhr:{"advhr_desc":"Horisontal linje","delta_height":"","delta_width":""},emotions:{"emotions_desc":"Hum\u00f8rfjes","delta_height":"","delta_width":""},searchreplace:{"replace_desc":"S\u00f8k/Erstatt","search_desc":"S\u00f8k","delta_width":"","delta_height":""},advimage:{"image_desc":"Sett inn / rediger bilde","delta_width":"","delta_height":""},advlink:{"link_desc":"Sett inn / rediger lenke","delta_height":"","delta_width":""},xhtmlxtras:{"attribs_desc":"Sett inn / rediger attributter","ins_desc":"Innsetting","del_desc":"Sletting","acronym_desc":"Akronym","abbr_desc":"Forkortelse","cite_desc":"Sitat","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"Rediger CSS-stil","delta_height":"","delta_width":""},paste:{"plaintext_mode":"Lim inn er n\u00e5 i vanlig tekst modus. Klikk igjen for \u00e5 bytte til vanlig innlimings modus.","plaintext_mode_sticky":"Lim inn er n\u00e5 i vanlig tekst modus. Klikk igjen for \u00e5 bytte til vanlig innlimings modus. Etter at du limer inn noe vil du g\u00e5 tilbake til ordin\u00e6r innliming.","selectall_desc":"Merk alt","paste_word_desc":"Lim inn fra Word","paste_text_desc":"Lim inn som ren tekst"},"paste_dlg":{"word_title":"Bruk CTRL+V p\u00e5 tastaturet for \u00e5 lime inn teksten i dette vinduet.","text_linebreaks":"Behold tekstbryting","text_title":"Bruk CTRL+V p\u00e5 tastaturet for \u00e5 lime inn teksten i dette vinduet."},table:{cell:"Celle",col:"Kolonne",row:"Rad",del:"Slett tabell","copy_row_desc":"Kopier rad","cut_row_desc":"Slett rad","paste_row_after_desc":"Lim inn rad etter","paste_row_before_desc":"Lim inn rad foran","props_desc":"Tabellegenskaper","cell_desc":"Celleegenskaper","row_desc":"Radegenskaper","merge_cells_desc":"Sl\u00e5 sammen celler","split_cells_desc":"Splitt sammensl\u00e5tte celler","delete_col_desc":"Slett kolonne","col_after_desc":"Sett inn kolonne etter","col_before_desc":"Sett inn kolonne foran","delete_row_desc":"Slett rad","row_after_desc":"Sett inn rad etter","row_before_desc":"Sett inn rad foran",desc:"Sett inn ny tabell","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"Hvis du gjenoppretter tidligere lagret innhold s\u00e5 vil du miste alt n\u00e5v\u00e6rende innhold i editoren.\n\nEr du sikker p\u00e5 at du vil gjenopprette tidligere lagret innhold?.","restore_content":"Gjenopprett autolagret innhold.","unload_msg":"Utf\u00f8rte endringer g\u00e5r tapt hvis du navigerer vekk fra denne siden!"},fullscreen:{desc:"Sl\u00e5 fullskjermsmodus av/p\u00e5"},media:{edit:"Rediger innebygd objekt",desc:"Sett inn / rediger innebygd objekt","delta_height":"","delta_width":""},fullpage:{desc:"Dokumentegenskaper","delta_width":"","delta_height":""},template:{desc:"Sett inn forh\u00e5ndsdefinert malinnhold"},visualchars:{desc:"Visuelle konktrolltegn p\u00e5/av"},spellchecker:{desc:"Stavekontroll p\u00e5/av",menu:"Oppsett stavekontroll","ignore_word":"Ignorer ord","ignore_words":"Ignorer alt",langs:"Spr\u00e5k",wait:"Vennligst vent ...",sug:"Forslag","no_sug":"Ingen forslag","no_mpell":"Ingen stavefeil funnet.","learn_word":"L\u00e6r ordet"},pagebreak:{desc:"Sett inn sideskift"},advlist:{types:"Types",def:"Standard","lower_alpha":"Sm\u00e5 alfanumerisk","lower_greek":"Sm\u00e5 gresk","lower_roman":"Sm\u00e5 roman","upper_alpha":"Store alfanumerisk","upper_roman":"Store roman",circle:"Sirkel",disc:"Plate",square:"Firkant"},colors:{"333300":"M\u00f8rk olivengr\u00f8nn","993300":"Brent oransje","000000":"Svart","003300":"M\u00f8rkegr\u00f8nn","003366":"M\u00f8rk asurbl\u00e5","000080":"Marinebl\u00e5","333399":"Indigobl\u00e5","333333":"M\u00f8rk m\u00f8rkegr\u00e5","800000":"R\u00f8dbrun",FF6600:"Oransje","808000":"Olivengr\u00f8nn","008000":"Gr\u00f8nn","008080":"M\u00f8rk gr\u00f8nnbl\u00e5","0000FF":"Bl\u00e5","666699":"Gr\u00e5bl\u00e5","808080":"Gr\u00e5",FF0000:"R\u00f8d",FF9900:"Amber","99CC00":"Gulgr\u00f8nn","339966":"Havgr\u00f8nn","33CCCC":"Turkis","3366FF":"Kongebl\u00e5","800080":"Purpur","999999":"Medium gr\u00e5",FF00FF:"Magentar\u00f8d",FFCC00:"Gull",FFFF00:"Gul","00FF00":"Limegr\u00f8nn","00FFFF":"Cyanbl\u00e5","00CCFF":"Himmelbl\u00e5","993366":"Brun",C0C0C0:"S\u00f8lv",FF99CC:"Rosa",FFCC99:"Fersken",FFFF99:"Lysgul",CCFFCC:"Lysegr\u00f8nn",CCFFFF:"Lys cyanbl\u00e5","99CCFF":"Lys himmelbl\u00e5",CC99FF:"Plomme",FFFFFF:"Hvit"},aria:{"rich_text_area":"Rikt tekstfelt"},wordcount:{words:"Ord:"}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/pl.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/pl.js new file mode 100644 index 0000000000..b80cb7bc95 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/pl.js @@ -0,0 +1,219 @@ +tinymce.addI18n('pl',{ +"Cut": "Wytnij", +"Heading 5": "Nag\u0142\u00f3wek 5", +"Header 2": "Nag\u0142\u00f3wek 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Twoja przegl\u0105darka nie obs\u0142uguje bezpo\u015bredniego dost\u0119pu do schowka. U\u017cyj zamiast tego kombinacji klawiszy Ctrl+X\/C\/V.", +"Heading 4": "Nag\u0142\u00f3wek 4", +"Div": "Div", +"Heading 2": "Nag\u0142\u00f3wek 2", +"Paste": "Wklej", +"Close": "Zamknij", +"Font Family": "Kr\u00f3j fontu", +"Pre": "Sformatowany tekst", +"Align right": "Wyr\u00f3wnaj do prawej", +"New document": "Nowy dokument", +"Blockquote": "Blok cytatu", +"Numbered list": "Lista numerowana", +"Heading 1": "Nag\u0142\u00f3wek 1", +"Headings": "Nag\u0142\u00f3wki", +"Increase indent": "Zwi\u0119ksz wci\u0119cie", +"Formats": "Formaty", +"Headers": "Nag\u0142\u00f3wki", +"Select all": "Zaznacz wszystko", +"Header 3": "Nag\u0142\u00f3wek 3", +"Blocks": "Bloki", +"Undo": "Cofnij", +"Strikethrough": "Przekre\u015blenie", +"Bullet list": "Lista wypunktowana", +"Header 1": "Nag\u0142\u00f3wek 1", +"Superscript": "Indeks g\u00f3rny", +"Clear formatting": "Wyczy\u015b\u0107 formatowanie", +"Font Sizes": "Rozmiar fontu", +"Subscript": "Indeks dolny", +"Header 6": "Nag\u0142\u00f3wek 6", +"Redo": "Pon\u00f3w", +"Paragraph": "Akapit", +"Ok": "Ok", +"Bold": "Pogrubienie", +"Code": "Kod \u017ar\u00f3d\u0142owy", +"Italic": "Kursywa", +"Align center": "Wyr\u00f3wnaj do \u015brodka", +"Header 5": "Nag\u0142\u00f3wek 5", +"Heading 6": "Nag\u0142\u00f3wek 6", +"Heading 3": "Nag\u0142\u00f3wek 3", +"Decrease indent": "Zmniejsz wci\u0119cie", +"Header 4": "Nag\u0142\u00f3wek 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Wklejanie jest w trybie tekstowym. Zawarto\u015b\u0107 zostanie wklejona jako zwyk\u0142y tekst dop\u00f3ki nie wy\u0142\u0105czysz tej opcji.", +"Underline": "Podkre\u015blenie", +"Cancel": "Anuluj", +"Justify": "Do lewej i prawej", +"Inline": "W tek\u015bcie", +"Copy": "Kopiuj", +"Align left": "Wyr\u00f3wnaj do lewej", +"Visual aids": "Pomoce wizualne", +"Lower Greek": "Ma\u0142e greckie", +"Square": "Kwadrat", +"Default": "Domy\u015blne", +"Lower Alpha": "Ma\u0142e litery", +"Circle": "K\u00f3\u0142ko", +"Disc": "Dysk", +"Upper Alpha": "Wielkie litery", +"Upper Roman": "Wielkie rzymskie", +"Lower Roman": "Ma\u0142e rzymskie", +"Name": "Nazwa", +"Anchor": "Kotwica", +"You have unsaved changes are you sure you want to navigate away?": "Masz niezapisane zmiany. Czy na pewno chcesz opu\u015bci\u0107 stron\u0119?", +"Restore last draft": "Przywr\u00f3\u0107 ostatni szkic", +"Special character": "Znak specjalny", +"Source code": "Kod \u017ar\u00f3d\u0142owy", +"B": "B", +"R": "R", +"G": "G", +"Color": "Kolor", +"Right to left": "Od prawej do lewej", +"Left to right": "Od lewej do prawej", +"Emoticons": "Ikony emocji", +"Robots": "Roboty", +"Document properties": "W\u0142a\u015bciwo\u015bci dokumentu", +"Title": "Tytu\u0142", +"Keywords": "S\u0142owa kluczowe", +"Encoding": "Kodowanie", +"Description": "Opis", +"Author": "Autor", +"Fullscreen": "Pe\u0142ny ekran", +"Horizontal line": "Pozioma linia", +"Horizontal space": "Odst\u0119p poziomy", +"Insert\/edit image": "Wstaw\/edytuj obrazek", +"General": "Og\u00f3lne", +"Advanced": "Zaawansowane", +"Source": "\u0179r\u00f3d\u0142o", +"Border": "Ramka", +"Constrain proportions": "Zachowaj proporcje", +"Vertical space": "Odst\u0119p pionowy", +"Image description": "Opis obrazka", +"Style": "Styl", +"Dimensions": "Wymiary", +"Insert image": "Wstaw obrazek", +"Zoom in": "Powi\u0119ksz", +"Contrast": "Kontrast", +"Back": "Cofnij", +"Gamma": "Gamma", +"Flip horizontally": "Przerzu\u0107 w poziomie", +"Resize": "Zmiana rozmiaru", +"Sharpen": "Wyostrz", +"Zoom out": "Pomniejsz", +"Image options": "Opcje obrazu", +"Apply": "Zaakceptuj", +"Brightness": "Jasno\u015b\u0107", +"Rotate clockwise": "Obr\u00f3\u0107 w prawo", +"Rotate counterclockwise": "Obr\u00f3\u0107 w lewo", +"Edit image": "Edytuj obrazek", +"Color levels": "Poziom koloru", +"Crop": "Przytnij", +"Orientation": "Orientacja", +"Flip vertically": "Przerzu\u0107 w pionie", +"Invert": "Odwr\u00f3\u0107", +"Insert date\/time": "Wstaw dat\u0119\/czas", +"Remove link": "Usu\u0144 \u0142\u0105cze", +"Url": "URL", +"Text to display": "Tekst do wy\u015bwietlenia", +"Anchors": "Kotwice", +"Insert link": "Wstaw \u0142\u0105cze", +"New window": "Nowe okno", +"None": "\u017baden", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL, kt\u00f3ry wprowadzi\u0142e\u015b wygl\u0105da na link zewn\u0119trzny. Czy chcesz doda\u0107 http:\/\/ jako prefiks?", +"Target": "Cel", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL, kt\u00f3ry wprowadzi\u0142e\u015b wygl\u0105da na adres e-mail. Czy chcesz doda\u0107 mailto: jako prefiks?", +"Insert\/edit link": "Wstaw\/edytuj \u0142\u0105cze", +"Insert\/edit video": "Wstaw\/edytuj wideo", +"Poster": "Plakat", +"Alternative source": "Alternatywne \u017ar\u00f3d\u0142o", +"Paste your embed code below:": "Wklej tutaj kod do osadzenia:", +"Insert video": "Wstaw wideo", +"Embed": "Osad\u017a", +"Nonbreaking space": "Nie\u0142amliwa spacja", +"Page break": "Podzia\u0142 strony", +"Paste as text": "Wklej jako zwyk\u0142y tekst", +"Preview": "Podgl\u0105d", +"Print": "Drukuj", +"Save": "Zapisz", +"Could not find the specified string.": "Nie znaleziono szukanego tekstu.", +"Replace": "Zamie\u0144", +"Next": "Nast.", +"Whole words": "Ca\u0142e s\u0142owa", +"Find and replace": "Znajd\u017a i zamie\u0144", +"Replace with": "Zamie\u0144 na", +"Find": "Znajd\u017a", +"Replace all": "Zamie\u0144 wszystko", +"Match case": "Dopasuj wielko\u015b\u0107 liter", +"Prev": "Poprz.", +"Spellcheck": "Sprawdzanie pisowni", +"Finish": "Zako\u0144cz", +"Ignore all": "Ignoruj wszystko", +"Ignore": "Ignoruj", +"Add to Dictionary": "Dodaj do s\u0142ownika", +"Insert row before": "Wstaw wiersz przed", +"Rows": "Wiersz.", +"Height": "Wysoko\u015b\u0107", +"Paste row after": "Wklej wiersz po", +"Alignment": "Wyr\u00f3wnanie", +"Border color": "Kolor ramki", +"Column group": "Grupa kolumn", +"Row": "Wiersz", +"Insert column before": "Wstaw kolumn\u0119 przed", +"Split cell": "Podziel kom\u00f3rk\u0119", +"Cell padding": "Dope\u0142nienie kom\u00f3rki", +"Cell spacing": "Odst\u0119py kom\u00f3rek", +"Row type": "Typ wiersza", +"Insert table": "Wstaw tabel\u0119", +"Body": "Tre\u015b\u0107", +"Caption": "Tytu\u0142", +"Footer": "Stopka", +"Delete row": "Usu\u0144 wiersz", +"Paste row before": "Wklej wiersz przed", +"Scope": "Kontekst", +"Delete table": "Usu\u0144 tabel\u0119", +"H Align": "Wyr\u00f3wnanie w pionie", +"Top": "G\u00f3ra", +"Header cell": "Kom\u00f3rka nag\u0142\u00f3wka", +"Column": "Kolumna", +"Row group": "Grupa wierszy", +"Cell": "Kom\u00f3rka", +"Middle": "\u015arodek", +"Cell type": "Typ kom\u00f3rki", +"Copy row": "Kopiuj wiersz", +"Row properties": "W\u0142a\u015bciwo\u015bci wiersza", +"Table properties": "W\u0142a\u015bciwo\u015bci tabeli", +"Bottom": "D\u00f3\u0142", +"V Align": "Wyr\u00f3wnanie w poziomie", +"Header": "Nag\u0142\u00f3wek", +"Right": "Prawo", +"Insert column after": "Wstaw kolumn\u0119 po", +"Cols": "Kol.", +"Insert row after": "Wstaw wiersz po", +"Width": "Szeroko\u015b\u0107", +"Cell properties": "W\u0142a\u015bciwo\u015bci kom\u00f3rki", +"Left": "Lewo", +"Cut row": "Wytnij wiersz", +"Delete column": "Usu\u0144 kolumn\u0119", +"Center": "\u015arodek", +"Merge cells": "\u0141\u0105cz kom\u00f3rki", +"Insert template": "Wstaw szablon", +"Templates": "Szablony", +"Background color": "Kolor t\u0142a", +"Custom...": "Niestandardowy...", +"Custom color": "Kolor niestandardowy", +"No color": "Bez koloru", +"Text color": "Kolor tekstu", +"Show blocks": "Poka\u017c bloki", +"Show invisible characters": "Poka\u017c niewidoczne znaki", +"Words: {0}": "S\u0142\u00f3w: {0}", +"Insert": "Wstaw", +"File": "Plik", +"Edit": "Edycja", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Obszar Edycji. ALT-F9 - menu. ALT-F10 - pasek narz\u0119dzi. ALT-0 - pomoc", +"Tools": "Narz\u0119dzia", +"View": "Widok", +"Table": "Tabela", +"Format": "Format" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/pt.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/pt.js new file mode 100644 index 0000000000..809f1c2d9b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/pt.js @@ -0,0 +1 @@ +tinyMCE.addI18n({pt:{common:{"more_colors":"Mais Cores","invalid_data":"Erro: Valores inv\u00e1lidos marcados em vermelho.","popup_blocked":"Detectamos que o seu bloqueador de popups bloqueou uma janela que \u00e9 essencial para a aplica\u00e7\u00e3o. Voc\u00ea precisa desativar o bloqueador de janelas de popups para utilizar esta ferramenta.","clipboard_no_support":"O seu browser n\u00e3o suporta esta fun\u00e7\u00e3o, use os atalhos do teclado.","clipboard_msg":"Copiar/recortar/colar n\u00e3o est\u00e1 dispon\u00edvel no Mozilla e Firefox. Deseja mais informa\u00e7\u00f5es sobre este problema?","not_set":"-- N/A --","class_name":"Classe",browse:"Procurar",close:"Fechar",cancel:"Cancelar",update:"Atualizar",insert:"Inserir",apply:"Aplicar","edit_confirm":"Deseja usar o modo de edi\u00e7\u00e3o avan\u00e7ado neste campo de texto?","invalid_data_number":"{#field} deve ser um n\u00famero","invalid_data_min":"{#field} deve ser um n\u00famero maior que {#min}","invalid_data_size":"{#field} deve ser um n\u00famero ou uma percentagem",value:"(valor)"},contextmenu:{full:"Justificado",right:"Direita",center:"Centro",left:"Esquerda",align:"Alinhamento"},insertdatetime:{"day_short":"Dom,Seg,Ter,Qua,Qui,Sex,Sab,Dom","day_long":"Domingo,Segunda-feira,Ter\u00e7a-feira,Quarta-feira,Quinta-feira,Sexta-feira,S\u00e1bado,Domingo","months_short":"Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez","months_long":"Janeiro,Fevereiro,Mar\u00e7o,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro","inserttime_desc":"Inserir hora","insertdate_desc":"Inserir data","time_fmt":"%H:%M:%S","date_fmt":"%d-%m-%Y"},print:{"print_desc":"Imprimir"},preview:{"preview_desc":"Pr\u00e9-visualizar"},directionality:{"rtl_desc":"Da direita para esquerda","ltr_desc":"Da esquerda para direita"},layer:{content:"Nova camada...","absolute_desc":"Alternar o posicionamento absoluto","backward_desc":"Mover para tr\u00e1s","forward_desc":"Mover para frente","insertlayer_desc":"Inserir nova camada"},save:{"save_desc":"Salvar","cancel_desc":"Cancelar todas as altera\u00e7\u00f5es"},nonbreaking:{"nonbreaking_desc":"Inserir um espa\u00e7o \"sem quebra\""},iespell:{download:"Plugin de ortografia n\u00e3o-detectado. Deseja instalar agora?","iespell_desc":"Verificar ortografia"},advhr:{"advhr_desc":"Separador horizontal","delta_height":"","delta_width":""},emotions:{"emotions_desc":"Emoticons","delta_height":"","delta_width":""},searchreplace:{"replace_desc":"Localizar/substituir","search_desc":"Localizar","delta_width":"","delta_height":""},advimage:{"image_desc":"Inserir/editar imagem","delta_width":"","delta_height":""},advlink:{"delta_width":"50","link_desc":"Inserir/editar hyperlink","delta_height":""},xhtmlxtras:{"attribs_desc":"Inserir/Editar atributos","ins_desc":"Inserir","del_desc":"Apagar","acronym_desc":"Acr\u00f4nimo","abbr_desc":"Abrevia\u00e7\u00e3o","cite_desc":"Cita\u00e7\u00e3o","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"Editar CSS","delta_height":"","delta_width":""},paste:{"plaintext_mode":"Comando colar est\u00e1 em modo texto simples. Clique novamente para voltar para o modo normal.","plaintext_mode_sticky":"Comando colar est\u00e1 em modo texto simples. Clique novamente para voltar para o modo normal. Depois de colar alguma coisa retornar\u00e1 para o modo normal.","selectall_desc":"Selecionar tudo","paste_word_desc":"Colar (copiado do WORD)","paste_text_desc":"Colar como texto simples"},"paste_dlg":{"word_title":"Use CTRL+V para colar o texto na janela.","text_linebreaks":"Manter quebras de linha","text_title":"Use CTRL+V para colar o texto na janela."},table:{cell:"C\u00e9lula",col:"Coluna",row:"Linha",del:"Apagar tabela","copy_row_desc":"Copiar linha","cut_row_desc":"Recortar linha","paste_row_after_desc":"Colar linha depois","paste_row_before_desc":"Colar linha antes","props_desc":"Propriedades da tabela","cell_desc":"Propriedades das c\u00e9lulas","row_desc":"Propriedades das linhas","merge_cells_desc":"Unir c\u00e9lulas","split_cells_desc":"Dividir c\u00e9lulas","delete_col_desc":"Remover coluna","col_after_desc":"Inserir coluna depois","col_before_desc":"Inserir coluna antes","delete_row_desc":"Apagar linha","row_after_desc":"Inserir linha depois","row_before_desc":"Inserir linha antes",desc:"Inserir nova tabela","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"Se restaurar o conte\u00fado, voc\u00ea ir\u00e1 perder tudo que est\u00e1 atualmente no editor.\n\nTem certeza que quer restaurar o conte\u00fado salvo?","restore_content":"Restaura conte\u00fado salvo automaticamente.","unload_msg":"As mudan\u00e7as efetuadas ser\u00e3o perdidas se sair desta p\u00e1gina."},fullscreen:{desc:"Tela Inteira"},media:{edit:"Editar m\u00eddia embutida",desc:"Inserir/Editar m\u00eddia embutida","delta_height":"","delta_width":""},fullpage:{desc:"Propriedades do Documento","delta_width":"","delta_height":""},template:{desc:"Inserir template"},visualchars:{desc:"Caracteres de controle visual ligado/desligado"},spellchecker:{desc:"Alternar verifica\u00e7\u00e3o ortogr\u00e1fica",menu:"Configura\u00e7\u00f5es de ortografia","ignore_word":"Ignorar palavra","ignore_words":"Ignorar tudo",langs:"Linguagens",wait:"Aguarde...",sug:"Sugest\u00f5es","no_sug":"Sem sugest\u00f5es","no_mpell":"N\u00e3o foram detectados erros de ortografia.","learn_word":"Aprender palavra"},pagebreak:{desc:"Inserir quebra de p\u00e1gina."},advlist:{types:"Tipos",def:"Padr\u00e3o","lower_alpha":"Alfabeto min\u00fasculo","lower_greek":"Alfabeto grego","lower_roman":"Num. romanos min\u00fasculos","upper_alpha":"Alfabeto mai\u00fasculos","upper_roman":"Num. romanos mai\u00fasculos",circle:"C\u00edrculo",disc:"Disco",square:"Quadrado"},colors:{"333300":"Oliva escuro","993300":"Laranja queimado","000000":"Preto","003300":"Verde escuro","003366":"Azul escuro","000080":"Azul marinho","333399":"\u00cdndigo","333333":"Cinza muito escuro","800000":"Marrom 1",FF6600:"Laranja","808000":"Oliva","008000":"Verde","008080":"Verde azulado","0000FF":"Azul","666699":"Azul acinzentado","808080":"Cinza",FF0000:"Vermelho",FF9900:"\u00c2mbar","99CC00":"Amarelo esverdeado","339966":"Verde mar","33CCCC":"Turquesa","3366FF":"Azul real","800080":"Roxo","999999":"Cinza m\u00e9dio",FF00FF:"Magenta",FFCC00:"Ouro",FFFF00:"Amarelo","00FF00":"Lima","00FFFF":"\u00c1gua","00CCFF":"Azul celeste","993366":"Marrom 2",C0C0C0:"Prata",FF99CC:"Rosa",FFCC99:"P\u00eassego",FFFF99:"Amarelo claro",CCFFCC:"Verde p\u00e1lido",CCFFFF:"Ciano p\u00e1lido","99CCFF":"Azul celeste claro",CC99FF:"Ameixa",FFFFFF:"Branco"},aria:{"rich_text_area":"\u00c1rea de texto rico"},wordcount:{words:"Palavras:"}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/ru.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/ru.js new file mode 100644 index 0000000000..110a978002 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/ru.js @@ -0,0 +1,219 @@ +tinymce.addI18n('ru',{ +"Cut": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c", +"Heading 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5", +"Header 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u0444\u0435\u0440\u0443 \u043e\u0431\u043c\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448: Ctrl+X\/C\/V.", +"Heading 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4", +"Div": "\u0411\u043b\u043e\u043a", +"Heading 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2", +"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c", +"Close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c", +"Font Family": "\u0428\u0440\u0438\u0444\u0442", +"Pre": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435", +"Align right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"New document": "\u041d\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", +"Blockquote": "\u0426\u0438\u0442\u0430\u0442\u0430", +"Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", +"Heading 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1", +"Headings": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438", +"Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f", +"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442", +"Headers": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438", +"Select all": "\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435", +"Header 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3", +"Blocks": "\u0411\u043b\u043e\u043a\u0438", +"Undo": "\u0412\u0435\u0440\u043d\u0443\u0442\u044c", +"Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439", +"Bullet list": "\u041c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", +"Header 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1", +"Superscript": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441", +"Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442", +"Font Sizes": "\u0420\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430", +"Subscript": "\u041d\u0438\u0436\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441", +"Header 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6", +"Redo": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", +"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444", +"Ok": "\u041e\u043a", +"Bold": "\u041f\u043e\u043b\u0443\u0436\u0438\u0440\u043d\u044b\u0439", +"Code": "\u041a\u043e\u0434", +"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432", +"Align center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443", +"Header 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5", +"Heading 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6", +"Heading 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3", +"Decrease indent": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f", +"Header 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043e\u043f\u0446\u0438\u044e.", +"Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439", +"Cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", +"Justify": "\u041f\u043e \u0448\u0438\u0440\u0438\u043d\u0435", +"Inline": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435", +"Copy": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c", +"Align left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Visual aids": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u044b", +"Lower Greek": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b", +"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b", +"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439", +"Lower Alpha": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b", +"Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438", +"Disc": "\u041a\u0440\u0443\u0433\u0438", +"Upper Alpha": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b", +"Upper Roman": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b", +"Lower Roman": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b", +"Name": "\u0418\u043c\u044f", +"Anchor": "\u042f\u043a\u043e\u0440\u044c", +"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0439\u0442\u0438?", +"Restore last draft": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430", +"Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b", +"Source code": "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434", +"B": "B", +"R": "R", +"G": "G", +"Color": "\u0426\u0432\u0435\u0442", +"Right to left": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e", +"Left to right": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e", +"Emoticons": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043c\u0430\u0439\u043b", +"Robots": "\u0420\u043e\u0431\u043e\u0442\u044b", +"Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Keywords": "\u041a\u043b\u044e\u0447\u0438\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430", +"Encoding": "\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430", +"Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", +"Author": "\u0410\u0432\u0442\u043e\u0440", +"Fullscreen": "\u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c", +"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f", +"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b", +"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"General": "\u041e\u0431\u0449\u0435\u0435", +"Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435", +"Source": "\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a", +"Border": "\u0420\u0430\u043c\u043a\u0430", +"Constrain proportions": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438", +"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b", +"Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", +"Style": "\u0421\u0442\u0438\u043b\u044c", +"Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440", +"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Zoom in": "\u041f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c", +"Contrast": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442", +"Back": "\u041d\u0430\u0437\u0430\u0434", +"Gamma": "\u0413\u0430\u043c\u043c\u0430", +"Flip horizontally": "\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438", +"Resize": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440", +"Sharpen": "\u0427\u0435\u0442\u043a\u043e\u0441\u0442\u044c", +"Zoom out": "\u041e\u0442\u0434\u0430\u043b\u0438\u0442\u044c", +"Image options": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", +"Apply": "\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c", +"Brightness": "\u042f\u0440\u043a\u043e\u0441\u0442\u044c", +"Rotate clockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435", +"Rotate counterclockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438", +"Edit image": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Color levels": "\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0443\u0440\u043e\u0432\u043d\u0438", +"Crop": "\u041e\u0431\u0440\u0435\u0437\u0430\u0442\u044c", +"Orientation": "\u041e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f", +"Flip vertically": "\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438", +"Invert": "\u0418\u043d\u0432\u0435\u0440\u0441\u0438\u044f", +"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u0442\u0443\/\u0432\u0440\u0435\u043c\u044f", +"Remove link": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"Url": "\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044b\u043b\u043a\u0438", +"Text to display": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442", +"Anchors": "\u042f\u043a\u043e\u0440\u044f", +"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"New window": "\u0412 \u043d\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435", +"None": "\u041d\u0435\u0442", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0441\u044b\u043b\u043a\u043e\u0439. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abhttp:\/\/\u00bb?", +"Target": "\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abmailto:\u00bb?", +"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e", +"Poster": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a", +"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0435:", +"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e", +"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438", +"Nonbreaking space": "\u041d\u0435\u0440\u0430\u0437\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0431\u0435\u043b", +"Page break": "\u0420\u0430\u0437\u0440\u044b\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b", +"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442", +"Preview": "\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440", +"Print": "\u041f\u0435\u0447\u0430\u0442\u044c", +"Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c", +"Could not find the specified string.": "\u0417\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430", +"Replace": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c", +"Next": "\u0412\u043d\u0438\u0437", +"Whole words": "\u0421\u043b\u043e\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c", +"Find and replace": "\u041f\u043e\u0438\u0441\u043a \u0438 \u0437\u0430\u043c\u0435\u043d\u0430", +"Replace with": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430", +"Find": "\u041d\u0430\u0439\u0442\u0438", +"Replace all": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435", +"Match case": "\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440", +"Prev": "\u0412\u0432\u0435\u0440\u0445", +"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", +"Finish": "\u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c", +"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435", +"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c", +"Add to Dictionary": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c", +"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443", +"Rows": "\u0421\u0442\u0440\u043e\u043a\u0438", +"Height": "\u0412\u044b\u0441\u043e\u0442\u0430", +"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443", +"Alignment": "\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435", +"Border color": "\u0426\u0432\u0435\u0442 \u0440\u0430\u043c\u043a\u0438", +"Column group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a", +"Row": "\u0421\u0442\u0440\u043e\u043a\u0430", +"Insert column before": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043b\u0435\u0432\u0430", +"Split cell": "\u0420\u0430\u0437\u0431\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0443", +"Cell padding": "\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f", +"Cell spacing": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f", +"Row type": "\u0422\u0438\u043f \u0441\u0442\u0440\u043e\u043a\u0438", +"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443", +"Body": "\u0422\u0435\u043b\u043e", +"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Footer": "\u041d\u0438\u0437", +"Delete row": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", +"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443", +"Scope": "Scope", +"Delete table": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443", +"H Align": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435", +"Top": "\u041f\u043e \u0432\u0435\u0440\u0445\u0443", +"Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446", +"Row group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u0440\u043e\u043a", +"Cell": "\u042f\u0447\u0435\u0439\u043a\u0430", +"Middle": "\u041f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435", +"Cell type": "\u0422\u0438\u043f \u044f\u0447\u0435\u0439\u043a\u0438", +"Copy row": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", +"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0442\u0440\u043e\u043a\u0438", +"Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b", +"Bottom": "\u041f\u043e \u043d\u0438\u0437\u0443", +"V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435", +"Header": "\u0428\u0430\u043f\u043a\u0430", +"Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Insert column after": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043f\u0440\u0430\u0432\u0430", +"Cols": "\u0421\u0442\u043e\u043b\u0431\u0446\u044b", +"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443", +"Width": "\u0428\u0438\u0440\u0438\u043d\u0430", +"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0447\u0435\u0439\u043a\u0438", +"Left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Cut row": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", +"Delete column": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446", +"Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443", +"Merge cells": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0438", +"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d", +"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b", +"Background color": "\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430", +"Custom...": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c\u2026", +"Custom color": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0446\u0432\u0435\u0442", +"No color": "\u0411\u0435\u0437 \u0446\u0432\u0435\u0442\u0430", +"Text color": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430", +"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438", +"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b", +"Words: {0}": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432: {0}", +"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c", +"File": "\u0424\u0430\u0439\u043b", +"Edit": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 ALT-F9 \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, ALT-0 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043e\u043c\u043e\u0449\u0438.", +"Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b", +"View": "\u0412\u0438\u0434", +"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430", +"Format": "\u0424\u043e\u0440\u043c\u0430\u0442" +}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/sv.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/sv.js new file mode 100644 index 0000000000..a2a3d77ffd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/sv.js @@ -0,0 +1 @@ +tinyMCE.addI18n({sv:{common:{"more_colors":"Fler f\u00e4rger","invalid_data":"Fel: Inkorrekta v\u00e4rden har matats in, dessa \u00e4r markerade i r\u00f6tt.","popup_blocked":"Popup blockerare detekterad. St\u00e4ng av den s\u00e5 att dialogerna kan \u00f6ppnas.","clipboard_no_support":"Funktionen \u00e4r inte tillg\u00e4nglig i din webbl\u00e4sare, anv\u00e4nd tangentbordsgenv\u00e4garna i st\u00e4llet.","clipboard_msg":"Kopiera/klipp ut/klistra in \u00e4r inte tillg\u00e4ngligt i din webbl\u00e4sare.\nVill du veta mer?","not_set":"-- Inte satt --","class_name":"Klass",browse:"Bl\u00e4ddra",close:"St\u00e4ng",cancel:"Avbryt",update:"Uppdatera",insert:"Infoga",apply:"Applicera","edit_confirm":"Vill du anv\u00e4nda WYSIWYG f\u00f6r denna textarea?","invalid_data_number":"{#field} m\u00e5ste vara ett nummer","invalid_data_min":"{#field} m\u00e5ste vara ett nummer st\u00f6rren \u00e4n {#min}","invalid_data_size":"{#field} m\u00e5ste vara ett nummer eller i procent",value:"(V\u00e4rde)"},contextmenu:{full:"Utfyllnad",right:"H\u00f6ger",center:"Centrerad",left:"V\u00e4nster",align:"Justering"},insertdatetime:{"day_short":"S\u00f6n,M\u00e5n,Tis,Ons,Tors,Fre,L\u00f6r,S\u00f6n","day_long":"S\u00f6ndag,M\u00e5ndag,Tisdag,Onsdag,Torsdag,Fredag,L\u00f6rdag,S\u00f6ndag","months_short":"Jan,Feb,Mar,Apr,Maj,Jun,Jul,Aug,Sep,Okt,Nov,Dec","months_long":"Januari,Februari,Mars,April,Maj,Juni,Juli,Augusti,September,Oktober,November,December","inserttime_desc":"Infoga tid","insertdate_desc":"Infoga datum","time_fmt":"%H:%M:%S","date_fmt":"%Y-%m-%d "},print:{"print_desc":"Skriv ut"},preview:{"preview_desc":"F\u00f6rhandsgranska"},directionality:{"rtl_desc":"Skriftl\u00e4ge - h\u00f6ger till v\u00e4nster","ltr_desc":"Skriftl\u00e4ge - v\u00e4nster till h\u00f6ger"},layer:{content:"Nytt lager...","absolute_desc":"Sl\u00e5 av/p\u00e5 absolut positionering","backward_desc":"Flytta bak\u00e5t","forward_desc":"Flytta fram\u00e5t","insertlayer_desc":"Infoga nytt lager"},save:{"save_desc":"Spara","cancel_desc":"Hoppa \u00f6ver alla f\u00f6r\u00e4ndringar"},nonbreaking:{"nonbreaking_desc":"Infoga icke radbrytande mellanslag"},iespell:{download:"ieSpell kunde inte hittas, vill du installera denna nu?","iespell_desc":"R\u00e4ttstava"},advhr:{"advhr_desc":"Horisontell skiljelinje","delta_height":"","delta_width":""},emotions:{"emotions_desc":"Smileys","delta_height":"","delta_width":""},searchreplace:{"replace_desc":"S\u00f6k/ers\u00e4tt","search_desc":"S\u00f6k","delta_width":"","delta_height":""},advimage:{"image_desc":"Infoga/redigera bild","delta_width":"","delta_height":""},advlink:{"link_desc":"Infoga/redigera l\u00e4nk","delta_height":"","delta_width":""},xhtmlxtras:{"attribs_desc":"Redigera attribut","ins_desc":"Markera som tillagt","del_desc":"Markera som struket","acronym_desc":"Akronym","abbr_desc":"F\u00f6rkortning","cite_desc":"citat","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"Redigera inline CSS","delta_height":"","delta_width":""},paste:{"plaintext_mode":"Inklistring \u00e4r nu i textl\u00e4ge.","plaintext_mode_sticky":"Inklistring \u00e4r nu i textl\u00e4ge. Efter att du klistrat in kommer den att \u00e5terg\u00e5 till normall\u00e4ge.","selectall_desc":"Markera allt","paste_word_desc":"Klistra in fr\u00e5n Word","paste_text_desc":"Klistra in som text"},"paste_dlg":{"word_title":"Anv\u00e4nd ctrl-v p\u00e5 ditt tangentbord f\u00f6r att klistra in i detta f\u00f6nster.","text_linebreaks":"Spara radbrytningar","text_title":"Anv\u00e4nd ctrl-v p\u00e5 ditt tangentbord f\u00f6r att klistra in i detta f\u00f6nster."},table:{cell:"Cell",col:"Kolumn",row:"Rad",del:"Radera tabell","copy_row_desc":"Klistra in rad","cut_row_desc":"Klipp ut rad","paste_row_after_desc":"Klistra in rad efter","paste_row_before_desc":"Klistra in rad ovanf\u00f6r","props_desc":"Tabellinst\u00e4llningar","cell_desc":"Tabellcellsinst\u00e4llningar","row_desc":"Tabellradsinst\u00e4llningar","merge_cells_desc":"Sammanfoga celler","split_cells_desc":"Separera sammansatta celler","delete_col_desc":"Radera kolumn","col_after_desc":"Infoga kolumn efter","col_before_desc":"Infoga kolumn f\u00f6re","delete_row_desc":"Radera rad","row_after_desc":"Infoga ny rad efter","row_before_desc":"Infoga ny rad f\u00f6re",desc:"Infoga/redigera ny tabell","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"Om du \u00e5terskapar inneh\u00e5ll s\u00e5 kommer det nuvarande inneh\u00e5llet i f\u00e4ltet att raderas.\n\n\u00c4r du s\u00e4ker p\u00e5 att du vill g\u00f6ra detta?","restore_content":"\u00c5terskapa automatiskt sparat inneh\u00e5ll.","unload_msg":"De f\u00f6r\u00e4ndringar som du gjort kommer att g\u00e5 f\u00f6rlorade om du l\u00e4mnar sidan."},fullscreen:{desc:"Sl\u00e5 av/p\u00e5 fullsk\u00e4rmsl\u00e4ge"},media:{edit:"Redigera inb\u00e4ddad media",desc:"Infoga/redigera inb\u00e4ddad media","delta_height":"","delta_width":""},fullpage:{desc:"Dokumentinst\u00e4llningar","delta_width":"","delta_height":""},template:{desc:"Infoga en f\u00e4rdig mall"},visualchars:{desc:"Visa osynliga tecken"},spellchecker:{desc:"Sl\u00e5 av/p\u00e5 r\u00e4ttstavningskontroll",menu:"R\u00e4ttstavningsinst\u00e4llningar","ignore_word":"Ignorera ord","ignore_words":"Ignorera alla",langs:"Spr\u00e5k",wait:"Var god v\u00e4nta...",sug:"F\u00f6rslag","no_sug":"Inga f\u00f6rslag","no_mpell":"Inga felstavningar funna.","learn_word":"L\u00e4r ord"},pagebreak:{desc:"Infoga sidbrytning"},advlist:{types:"Typer",def:"Standard","lower_alpha":"Lower alpha","lower_greek":"Lower greek","lower_roman":"Lower roman","upper_alpha":"Upper alpha","upper_roman":"Upper roman",circle:"Cirkel",disc:"Disc",square:"Fyrkant"},colors:{"333300":"M\u00f6rkoliv","993300":"Br\u00e4ndorange","000000":"Svart","003300":"M\u00f6rkgr\u00f6n","003366":"M\u00f6rkazur","000080":"Marinbl\u00e5","333399":"Indigo","333333":"Mycket m\u00f6rkgr\u00e5","800000":"R\u00f6dbrun",FF6600:"Orange","808000":"Oliv","008000":"Gr\u00f6n","008080":"Kricka","0000FF":"Bl\u00e5","666699":"Gr\u00e5bl\u00e5","808080":"Gr\u00e5",FF0000:"R\u00f6d",FF9900:"B\u00e4rnsten","99CC00":"Gulgr\u00f6n","339966":"Havsbl\u00e5","33CCCC":"Turkos","3366FF":"Kungligtbl\u00e5tt","800080":"Lila","999999":"Medelgr\u00e5",FF00FF:"Magenta",FFCC00:"Guld",FFFF00:"Gul","00FF00":"Lime","00FFFF":"Vatten","00CCFF":"Himmelsbl\u00e5","993366":"Brun",C0C0C0:"Silver",FF99CC:"Rosa",FFCC99:"Periska",FFFF99:"Ljusgul",CCFFCC:"Blekgr\u00f6n",CCFFFF:"Blekcyan","99CCFF":"Ljus himmel",CC99FF:"Plommon",FFFFFF:"Vitt"},aria:{"rich_text_area":"Redigeringsarea"},wordcount:{words:"Ord:"}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/langs/zh.js b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/zh.js new file mode 100644 index 0000000000..42f7abbc96 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/langs/zh.js @@ -0,0 +1 @@ +tinyMCE.addI18n({"zh-cn":{common:{"more_colors":"\u66f4\u591a\u989c\u8272","invalid_data":"\u9519\u8bef\uff1a\u6807\u8bb0\u4e3a\u7ea2\u8272\u7684\u90e8\u5206\u6709\u8bef\u3002","popup_blocked":"\u62b1\u6b49\uff0c\u60a8\u7981\u7528\u4e86\u5f39\u51fa\u7a97\u53e3\u529f\u80fd\u3002\u4e3a\u4e86\u4f7f\u7528\u8be5\u5de5\u5177\u7684\u5168\u90e8\u529f\u80fd\uff0c\u60a8\u9700\u8981\u5141\u8bb8\u5f39\u51fa\u7a97\u53e3\u3002","clipboard_no_support":"\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\uff0c\u4f7f\u7528\u5feb\u6377\u952e\u4ee3\u66ff\u3002","clipboard_msg":"\u5728Mozilla\u548cFirefox\u4e2d\u4e0d\u80fd\u4f7f\u7528\u590d\u5236/\u7c98\u8d34/\u526a\u5207\u3002\u60a8\u8981\u67e5\u770b\u8be5\u95ee\u9898\u66f4\u591a\u7684\u4fe1\u606f\u5417\uff1f","not_set":"-- \u672a\u8bbe\u7f6e --","class_name":"\u7c7b\u522b",browse:"\u6d4f\u89c8",close:"\u5173\u95ed",cancel:"\u53d6\u6d88",update:"\u66f4\u65b0",insert:"\u63d2\u5165",apply:"\u5e94\u7528","edit_confirm":"\u8be5\u6587\u672c\u57df\u662f\u5426\u9700\u8981\u4f7f\u7528\u6240\u89c1\u5373\u6240\u5f97\u6a21\u5f0f\uff1f","invalid_data_number":"{#field} \u5fc5\u987b\u4e3a\u6570\u5b57","invalid_data_min":"{#field} \u5fc5\u987b\u4e3a\u5927\u4e8e {#min} \u7684\u6570\u5b57","invalid_data_size":"{#field} \u5fc5\u987b\u4e3a\u6570\u5b57\u6216\u767e\u5206\u6570",value:"(value)"},contextmenu:{full:"\u4e24\u7aef\u5bf9\u9f50",right:"\u53f3\u5bf9\u9f50",center:"\u5c45\u4e2d",left:"\u5de6\u5bf9\u9f50",align:"\u5bf9\u9f50"},insertdatetime:{"day_short":"\u5468\u65e5,\u5468\u4e00,\u5468\u4e8c,\u5468\u4e09,\u5468\u56db,\u5468\u4e94,\u5468\u516d,\u5468\u65e5","day_long":"\u661f\u671f\u65e5,\u661f\u671f\u4e00,\u661f\u671f\u4e8c,\u661f\u671f\u4e09,\u661f\u671f\u56db,\u661f\u671f\u4e94,\u661f\u671f\u516d,\u661f\u671f\u65e5","months_short":"1\u6708,2\u6708,3\u6708,4\u6708,5\u6708,6\u6708,7\u6708,8\u6708,9\u6708,10\u6708,11\u6708,12\u6708","months_long":"\u4e00\u6708,\u4e8c\u6708,\u4e09\u6708,\u56db\u6708,\u4e94\u6708,\u516d\u6708,\u4e03\u6708,\u516b\u6708,\u4e5d\u6708,\u5341\u6708,\u5341\u4e00\u6708,\u5341\u4e8c\u6708","inserttime_desc":"\u63d2\u5165\u65f6\u95f4","insertdate_desc":"\u63d2\u5165\u65e5\u671f","time_fmt":"%H:%M:%S","date_fmt":"%Y-%m-%d"},print:{"print_desc":"\u6253\u5370"},preview:{"preview_desc":"\u9884\u89c8"},directionality:{"rtl_desc":"\u6587\u5b57\u65b9\u5411\u4e3a\u4ece\u53f3\u5230\u5de6","ltr_desc":"\u6587\u5b57\u65b9\u5411\u4e3a\u4ece\u5de6\u5230\u53f3"},layer:{content:"\u65b0\u5efa\u5c42...","absolute_desc":"\u5207\u6362\u5230\u7edd\u5bf9\u4f4d\u7f6e","backward_desc":"\u7f6e\u540e","forward_desc":"\u7f6e\u524d","insertlayer_desc":"\u63d2\u5165\u65b0\u5c42"},save:{"save_desc":"\u4fdd\u5b58","cancel_desc":"\u53d6\u6d88\u66f4\u6539"},nonbreaking:{"nonbreaking_desc":"\u63d2\u5165\u4e0d\u95f4\u65ad\u7a7a\u683c\u7b26"},iespell:{download:"\u62fc\u5199\u68c0\u67e5\u672a\u5b89\u88c5\uff0c\u662f\u5426\u9a6c\u4e0a\u5b89\u88c5\uff1f","iespell_desc":"\u62fc\u5199\u68c0\u67e5"},advhr:{"delta_height":"\u9ad8\u5ea6","delta_width":"\u5bbd\u5ea6","advhr_desc":"\u6c34\u5e73\u7ebf"},emotions:{"emotions_desc":"\u8868\u60c5","delta_height":"","delta_width":""},searchreplace:{"replace_desc":"\u67e5\u627e/\u66ff\u6362","search_desc":"\u67e5\u627e","delta_width":"","delta_height":""},advimage:{"image_desc":"\u63d2\u5165/\u7f16\u8f91 \u56fe\u7247","delta_width":"","delta_height":""},advlink:{"link_desc":"\u63d2\u5165/\u7f16\u8f91 \u8d85\u94fe\u63a5","delta_height":"","delta_width":""},xhtmlxtras:{"attribs_desc":"\u63d2\u5165/\u7f16\u8f91\u5c5e\u6027","ins_desc":"\u63d2\u5165","del_desc":"\u5220\u9664","acronym_desc":"\u9996\u5b57\u6bcd\u7f29\u5199","abbr_desc":"\u7f29\u5199","cite_desc":"\u5f15\u7528","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"\u7f16\u8f91CSS\u6837\u5f0f","delta_height":"","delta_width":""},paste:{"plaintext_mode":"\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u6a21\u5f0f\u7c98\u8d34\uff0c\u518d\u6b21\u70b9\u51fb\u8fd4\u56de\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002","plaintext_mode_sticky":"\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u6a21\u5f0f\u7c98\u8d34\u3002\u518d\u6b21\u70b9\u51fb\u8fd4\u56de\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\uff0c\u5728\u60a8\u7c98\u8d34\u5185\u5bb9\u540e\u5c06\u8fd4\u56de\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002","selectall_desc":"\u5168\u9009","paste_word_desc":"\u4eceWord\u7c98\u8d34","paste_text_desc":"\u4ee5\u7eaf\u6587\u672c\u7c98\u8d34"},"paste_dlg":{"word_title":"\u4f7f\u7528CTRL V\u7c98\u8d34\u6587\u672c\u5230\u7a97\u53e3\u4e2d\u3002","text_linebreaks":"\u4fdd\u7559\u65ad\u884c","text_title":"\u4f7f\u7528CTRL V\u7c98\u8d34\u6587\u672c\u5230\u7a97\u53e3\u4e2d\u3002"},table:{cell:"\u5355\u5143\u683c",col:"\u5217",row:"\u884c",del:"\u5220\u9664\u8868\u683c","copy_row_desc":"\u590d\u5236\u884c","cut_row_desc":"\u526a\u5207\u884c","paste_row_after_desc":"\u5728\u4e0b\u65b9\u7c98\u8d34\u884c","paste_row_before_desc":"\u5728\u4e0a\u65b9\u7c98\u8d34\u884c","props_desc":"\u8868\u683c\u5c5e\u6027","cell_desc":"\u5355\u5143\u683c\u5c5e\u6027","row_desc":"\u884c\u5c5e\u6027","merge_cells_desc":"\u5408\u5e76\u5355\u5143\u683c","split_cells_desc":"\u5206\u5272\u5355\u5143\u683c","delete_col_desc":"\u5220\u9664\u5217","col_after_desc":"\u5728\u53f3\u4fa7\u63d2\u5165\u5217","col_before_desc":"\u5728\u5de6\u4fa7\u63d2\u5165\u5217","delete_row_desc":"\u5220\u9664\u884c","row_after_desc":"\u5728\u4e0b\u65b9\u63d2\u5165\u884c","row_before_desc":"\u5728\u4e0a\u65b9\u63d2\u5165\u884c",desc:"\u63d2\u5165\u65b0\u8868\u683c","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"\u5982\u679c\u6062\u590d\u4fdd\u5b58\u7684\u5185\u5bb9\uff0c\u60a8\u5f53\u524d\u7f16\u8f91\u7684\u6240\u6709\u7684\u5185\u5bb9\u5c06\u4e22\u5931\u3002nn\u60a8\u786e\u5b9a\u8981\u6062\u590d\u4fdd\u5b58\u7684\u5185\u5bb9\u5417\uff1f","restore_content":"\u6062\u590d\u81ea\u52a8\u4fdd\u5b58\u7684\u5185\u5bb9\u3002","unload_msg":"\u5982\u679c\u9000\u51fa\u8be5\u9875\uff0c\u60a8\u6240\u505a\u7684\u66f4\u6539\u5c06\u4e22\u5931\u3002"},fullscreen:{desc:"\u5207\u6362\u5168\u5c4f\u6a21\u5f0f"},media:{edit:"\u7f16\u8f91\u5d4c\u5165\u5f0f\u5a92\u4f53",desc:"\u63d2\u5165/\u7f16\u8f91 \u5d4c\u5165\u5f0f\u5a92\u4f53","delta_height":"","delta_width":""},fullpage:{desc:"\u6587\u4ef6\u5c5e\u6027","delta_width":"\u5bbd\u5ea6","delta_height":"\u9ad8\u5ea6"},template:{desc:"\u63d2\u5165\u9884\u8bbe\u7684\u6a21\u677f\u5185\u5bb9"},visualchars:{desc:"\u663e\u793a/\u9690\u85cf \u975e\u53ef\u89c1\u5b57\u7b26"},spellchecker:{desc:"\u62fc\u5199\u68c0\u67e5",menu:"\u62fc\u5199\u68c0\u67e5\u8bbe\u7f6e","ignore_word":"\u5ffd\u7565","ignore_words":"\u5168\u90e8\u5ffd\u7565",langs:"\u8bed\u8a00",wait:"\u8bf7\u7a0d\u5019...",sug:"\u5efa\u8bae","no_sug":"\u65e0\u5efa\u8bae","no_mpell":"\u65e0\u62fc\u5199\u9519\u8bef","learn_word":"\u5b66\u4e60\u8bcd\u7ec4"},pagebreak:{desc:"\u63d2\u5165\u5206\u9875\u7b26"},advlist:{types:"\u6837\u5f0f",def:"\u9ed8\u8ba4","lower_alpha":"\u5c0f\u5199\u5b57\u6bcd","lower_greek":"\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd","lower_roman":"\u5c0f\u5199\u7f57\u9a6c\u6570\u5b57","upper_alpha":"\u5927\u5199\u5b57\u6bcd","upper_roman":"\u5927\u5199\u7f57\u9a6c\u6570\u5b57",circle:"\u5706\u5708",disc:"\u5706\u70b9",square:"\u65b9\u5757"},colors:{"333300":"Dark olive","993300":"Burnt orange","000000":"Black","003300":"Dark green","003366":"Dark azure","000080":"Navy Blue","333399":"Indigo","333333":"Very dark gray","800000":"Maroon",FF6600:"Orange","808000":"Olive","008000":"Green","008080":"Teal","0000FF":"Blue","666699":"Grayish blue","808080":"Gray",FF0000:"Red",FF9900:"Amber","99CC00":"Yellow green","339966":"Sea green","33CCCC":"Turquoise","3366FF":"Royal blue","800080":"Purple","999999":"Medium gray",FF00FF:"Magenta",FFCC00:"Gold",FFFF00:"Yellow","00FF00":"Lime","00FFFF":"Aqua","00CCFF":"Sky blue","993366":"Brown",C0C0C0:"Silver",FF99CC:"Pink",FFCC99:"Peach",FFFF99:"Light yellow",CCFFCC:"Pale green",CCFFFF:"Pale cyan","99CCFF":"Light sky blue",CC99FF:"Plum",FFFFFF:"White"},aria:{"rich_text_area":"\u5bcc\u6587\u672c\u57df"},wordcount:{words:"\u5b57\u6570:"}}}); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/da.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/da.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/da.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/de.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/de.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/de.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/en_us.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/en_us.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/en_us.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fi.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fi.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fi.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fr.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fr.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/fr.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/he.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/he.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/he.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/it.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/it.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/it.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ja.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ja.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ja.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/nl.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/nl.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/nl.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/no.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/no.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/no.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pl.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pl.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pl.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pt.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pt.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/pt.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ru.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ru.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/ru.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/sv.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/sv.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/sv.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/zh.js b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/zh.js new file mode 100644 index 0000000000..d5e0bbde43 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/lib/tinymce/plugins/codemirror/langs/zh.js @@ -0,0 +1,8 @@ +tinymce.addI18n('en',{ + 'HTML source code': 'HTML source code', + 'Start search': 'Start search', + 'Find next': 'Find next', + 'Find previous': 'Find previous', + 'Replace': 'Replace', + 'Replace all': 'Replace all' +}); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js index bbb8024a53..492a9a5ecf 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js @@ -1,6 +1,6 @@ angular.module("umbraco") .controller("Umbraco.PropertyEditors.RTEController", - function ($rootScope, $scope, $q, dialogService, $log, imageHelper, assetsService, $timeout, tinyMceService, angularHelper, stylesheetResource, macroService) { + function ($rootScope, $scope, $q, $locale, dialogService, $log, imageHelper, assetsService, $timeout, tinyMceService, angularHelper, stylesheetResource, macroService) { $scope.isLoading = true; @@ -100,6 +100,22 @@ angular.module("umbraco") //stores a reference to the editor var tinyMceEditor = null; + //get localisation - angular localisation is in the format of ru-ru, de-de, en-gb, etc + //wheras tinymce is in the format of ru, de, en, etc. We need to convert from one to the other + var lang = $locale.id; + var langParts = lang.split('-'); + + if (langParts.length > 1) { + //if both lang parts are the same, just use one (i.e. de-de = de, ru-ru = ru) + if (langParts[0] === langParts[1]) { + lang = langParts[0]; + } + //for english just use "en" (en-gb and en-us become en) + else if (langParts[0] === "en") { + lang = langParts[0]; + } + } + //wait for queue to end $q.all(await).then(function () { @@ -119,10 +135,11 @@ angular.module("umbraco") toolbar: toolbar, content_css: stylesheets, relative_urls: false, - style_formats: styleFormats + style_formats: styleFormats, + language: lang }; - - + + if (tinyMceConfig.customConfig) { //if there is some custom config, we need to see if the string value of each item might actually be json and if so, we need to @@ -295,10 +312,7 @@ angular.module("umbraco") }); }; - - - - + /** Loads in the editor */ function loadTinyMce() { From f4d0de6665d3389d789d47642184d27db654844c Mon Sep 17 00:00:00 2001 From: Shannon Date: Sun, 4 Jun 2017 14:43:28 +0200 Subject: [PATCH 002/108] get services/repos working for blueprints along with tests --- src/Umbraco.Core/Constants-ObjectTypes.cs | 12 +- src/Umbraco.Core/Models/UmbracoObjectTypes.cs | 8 ++ .../Repositories/ContentRepository.cs | 37 +++++- .../Interfaces/IContentRepository.cs | 2 +- .../Repositories/VersionableRepositoryBase.cs | 20 +--- .../Persistence/RepositoryFactory.cs | 16 +++ src/Umbraco.Core/Services/ContentService.cs | 88 +++++++++++++- src/Umbraco.Core/Services/IContentService.cs | 13 ++- src/Umbraco.Core/UdiEntityType.cs | 4 + .../Services/ContentServiceTests.cs | 107 +++++++++++++++++- 10 files changed, 273 insertions(+), 34 deletions(-) diff --git a/src/Umbraco.Core/Constants-ObjectTypes.cs b/src/Umbraco.Core/Constants-ObjectTypes.cs index adc154174a..bb12ec9efd 100644 --- a/src/Umbraco.Core/Constants-ObjectTypes.cs +++ b/src/Umbraco.Core/Constants-ObjectTypes.cs @@ -68,12 +68,22 @@ namespace Umbraco.Core /// Guid for a Document object. /// public const string Document = "C66BA18E-EAF3-4CFF-8A22-41B16D66A972"; - + /// /// Guid for a Document object. /// public static readonly Guid DocumentGuid = new Guid(Document); + /// + /// Guid for a Document Blueprint object. + /// + public const string DocumentBlueprint = "6EBEF410-03AA-48CF-A792-E1C1CB087ACA"; + + /// + /// Guid for a Document object. + /// + public static readonly Guid DocumentBlueprintGuid = new Guid(DocumentBlueprint); + /// /// Guid for a Document Type object. /// diff --git a/src/Umbraco.Core/Models/UmbracoObjectTypes.cs b/src/Umbraco.Core/Models/UmbracoObjectTypes.cs index 0df7a21e57..3e633fc020 100644 --- a/src/Umbraco.Core/Models/UmbracoObjectTypes.cs +++ b/src/Umbraco.Core/Models/UmbracoObjectTypes.cs @@ -38,6 +38,14 @@ namespace Umbraco.Core.Models [UmbracoUdiType(Constants.UdiEntityType.Document)] Document, + /// + /// Document + /// + [UmbracoObjectType(Constants.ObjectTypes.DocumentBlueprint, typeof(IContent))] + [FriendlyName("DocumentBlueprint")] + [UmbracoUdiType(Constants.UdiEntityType.Document)] + DocumentBlueprint, + /// /// Media /// diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs index a34a77d3b4..cd763f4e32 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs @@ -20,6 +20,27 @@ using Umbraco.Core.Persistence.UnitOfWork; namespace Umbraco.Core.Persistence.Repositories { + /// + /// Override the base content repository so we can change the node object type + /// + /// + /// It would be nicer if we could separate most of this down into a smaller version of the ContentRepository class, however to do that + /// requires quite a lot of work since we'd need to re-organize the interhitance quite a lot or create a helper class to perform a lot of the underlying logic. + /// + /// TODO: Create a helper method to conain most of the underlying logic for the ContentRepository + /// + internal class ContentBlueprintRepository : ContentRepository + { + public ContentBlueprintRepository(IScopeUnitOfWork work, CacheHelper cacheHelper, ILogger logger, ISqlSyntaxProvider syntaxProvider, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository, IContentSection contentSection) : base(work, cacheHelper, logger, syntaxProvider, contentTypeRepository, templateRepository, tagRepository, contentSection) + { + } + + protected override Guid NodeObjectTypeId + { + get { return Constants.ObjectTypes.DocumentBlueprintGuid; } + } + } + /// /// Represents a repository for doing CRUD operations for /// @@ -201,7 +222,7 @@ namespace Umbraco.Core.Persistence.Repositories protected override Guid NodeObjectTypeId { - get { return new Guid(Constants.ObjectTypes.Document); } + get { return Constants.ObjectTypes.DocumentGuid; } } #endregion @@ -742,7 +763,19 @@ namespace Umbraco.Core.Persistence.Repositories return ProcessQuery(translate(translatorFull), new PagingSqlQuery(translate(translatorIds)), true); } - + + public IEnumerable GetBlueprints(IQuery query) + { + Func, Sql> translate = t => t.Translate(); + + var sqlFull = GetBaseQuery(BaseQueryType.FullMultiple); + var translatorFull = new SqlTranslator(sqlFull, query); + var sqlIds = GetBaseQuery(BaseQueryType.Ids); + var translatorIds = new SqlTranslator(sqlIds, query); + + return ProcessQuery(translate(translatorFull), new PagingSqlQuery(translate(translatorIds)), true); + } + /// /// This builds the Xml document used for the XML cache /// diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs index e04608e9c6..00e0868ef0 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs @@ -9,7 +9,7 @@ using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Querying; namespace Umbraco.Core.Persistence.Repositories -{ +{ public interface IContentRepository : IRepositoryVersionable, IRecycleBinRepository, IDeleteMediaFilesRepository { diff --git a/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs index 98743a6a63..96db4428d0 100644 --- a/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs +++ b/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs @@ -52,25 +52,7 @@ namespace Umbraco.Core.Persistence.Repositories /// /// Id of the to retrieve versions from /// An enumerable list of the same object with different versions - public virtual IEnumerable GetAllVersions(int id) - { - var sql = new Sql(); - sql.Select("*") - .From(SqlSyntax) - .InnerJoin(SqlSyntax) - .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .InnerJoin(SqlSyntax) - .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .Where(x => x.NodeObjectType == NodeObjectTypeId) - .Where(x => x.NodeId == id) - .OrderByDescending(x => x.VersionDate, SqlSyntax); - - var dtos = Database.Fetch(sql); - foreach (var dto in dtos) - { - yield return GetByVersion(dto.VersionId); - } - } + public abstract IEnumerable GetAllVersions(int id); /// /// Gets a list of all version Ids for the given content item ordered so latest is first diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs index afb93f620f..3b8a2be53a 100644 --- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs +++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs @@ -145,6 +145,22 @@ namespace Umbraco.Core.Persistence }; } + public virtual IContentRepository CreateContentBlueprintRepository(IScopeUnitOfWork uow) + { + return new ContentBlueprintRepository( + uow, + _cacheHelper, + _logger, + _sqlSyntax, + CreateContentTypeRepository(uow), + CreateTemplateRepository(uow), + CreateTagRepository(uow), + _settings.Content) + { + EnsureUniqueNaming = _settings.Content.EnsureUniqueNaming + }; + } + public virtual IContentTypeRepository CreateContentTypeRepository(IScopeUnitOfWork uow) { return new ContentTypeRepository( diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs index c00b226d3e..ab15f6acc4 100644 --- a/src/Umbraco.Core/Services/ContentService.cs +++ b/src/Umbraco.Core/Services/ContentService.cs @@ -174,8 +174,7 @@ namespace Umbraco.Core.Services content.WriterId = userId; uow.Events.Dispatch(Created, this, new NewEventArgs(content, false, contentTypeAlias, parentId)); - - Audit(uow, AuditType.New, string.Format("Content '{0}' was created", name), content.CreatorId, content.Id); + uow.Commit(); } @@ -217,8 +216,7 @@ namespace Umbraco.Core.Services content.WriterId = userId; uow.Events.Dispatch(Created, this, new NewEventArgs(content, false, contentTypeAlias, parent)); - - Audit(uow, AuditType.New, string.Format("Content '{0}' was created", name), content.CreatorId, content.Id); + uow.Commit(); } @@ -1155,6 +1153,73 @@ namespace Umbraco.Core.Services return ((IContentServiceOperations)this).SaveAndPublish(content, userId, raiseEvents); } + public void SaveBlueprint(IContent content, int userId = 0) + { + //always ensure the blueprint is at the root + content.ParentId = -1; + + using (new WriteLock(Locker)) + { + using (var uow = UowProvider.GetUnitOfWork()) + { + if (string.IsNullOrWhiteSpace(content.Name)) + { + throw new ArgumentException("Cannot save content blueprint with empty name."); + } + + var repository = RepositoryFactory.CreateContentBlueprintRepository(uow); + + if (content.HasIdentity == false) + { + content.CreatorId = userId; + } + content.WriterId = userId; + + repository.AddOrUpdate(content); + + uow.Commit(); + } + } + } + + public void DeleteBlueprint(IContent content, int userId = 0) + { + using (new WriteLock(Locker)) + { + using (var uow = UowProvider.GetUnitOfWork()) + { + var repository = RepositoryFactory.CreateContentBlueprintRepository(uow); + repository.Delete(content); + uow.Commit(); + } + } + } + + public IContent CreateContentFromBlueprint(IContent blueprint, string name, int userId = 0) + { + if (blueprint == null) throw new ArgumentNullException("blueprint"); + + var contentType = blueprint.ContentType; + var content = new Content(name, -1, contentType); + content.Path = string.Concat(content.ParentId.ToString(), ",", content.Id); + + using (var uow = UowProvider.GetUnitOfWork()) + { + content.CreatorId = userId; + content.WriterId = userId; + + //Now we need to map all of the properties over! + foreach (var property in blueprint.Properties) + { + content.SetValue(property.Alias, property.Value); + } + + uow.Commit(); + } + + return content; + } + /// /// Saves a single object /// @@ -1787,6 +1852,21 @@ namespace Umbraco.Core.Services return true; } + public IEnumerable GetDocumentBlueprints(params int[] documentTypeIds) + { + using (var uow = UowProvider.GetUnitOfWork(readOnly: true)) + { + var repository = RepositoryFactory.CreateContentBlueprintRepository(uow); + + var query = new Query(); + if (documentTypeIds.Length > 0) + { + query.Where(x => documentTypeIds.Contains(x.ContentTypeId)); + } + return repository.GetByQuery(query); + } + } + /// /// Gets paged content descendants as XML by path /// diff --git a/src/Umbraco.Core/Services/IContentService.cs b/src/Umbraco.Core/Services/IContentService.cs index 4af87d2b58..f497eea5bc 100644 --- a/src/Umbraco.Core/Services/IContentService.cs +++ b/src/Umbraco.Core/Services/IContentService.cs @@ -16,10 +16,10 @@ namespace Umbraco.Core.Services /// explicitly. These methods will replace the normal ones in IContentService in v8 and this will be removed. /// public interface IContentServiceOperations - { - //TODO: Remove this class in v8 - - //TODO: There's probably more that needs to be added like the EmptyRecycleBin, etc... + { + //TODO: Remove this class in v8 + + //TODO: There's probably more that needs to be added like the EmptyRecycleBin, etc... /// /// Saves a single object @@ -96,6 +96,11 @@ namespace Umbraco.Core.Services /// public interface IContentService : IContentServiceBase { + IEnumerable GetDocumentBlueprints(params int[] documentTypeIds); + void SaveBlueprint(IContent content, int userId = 0); + void DeleteBlueprint(IContent content, int userId = 0); + IContent CreateContentFromBlueprint(IContent blueprint, string name, int userId = 0); + /// /// Gets all XML entries found in the cmsContentXml table based on the given path /// diff --git a/src/Umbraco.Core/UdiEntityType.cs b/src/Umbraco.Core/UdiEntityType.cs index f6b9b1e3b0..926489f02d 100644 --- a/src/Umbraco.Core/UdiEntityType.cs +++ b/src/Umbraco.Core/UdiEntityType.cs @@ -24,6 +24,10 @@ namespace Umbraco.Core [UdiType(UdiType.GuidUdi)] public const string Document = "document"; + + [UdiType(UdiType.GuidUdi)] + public const string DocumentBluePrint = "document-blueprint"; + [UdiType(UdiType.GuidUdi)] public const string Media = "media"; [UdiType(UdiType.GuidUdi)] diff --git a/src/Umbraco.Tests/Services/ContentServiceTests.cs b/src/Umbraco.Tests/Services/ContentServiceTests.cs index c598b272d7..71eacdcf04 100644 --- a/src/Umbraco.Tests/Services/ContentServiceTests.cs +++ b/src/Umbraco.Tests/Services/ContentServiceTests.cs @@ -46,11 +46,112 @@ namespace Umbraco.Tests.Services VersionableRepositoryBase.ThrowOnWarning = false; base.TearDown(); - } - - //TODO Add test to verify there is only ONE newest document/content in cmsDocument table after updating. + } + + //TODO Add test to verify there is only ONE newest document/content in cmsDocument table after updating. //TODO Add test to delete specific version (with and without deleting prior versions) and versions by date. + [Test] + public void Create_Blueprint() + { + var contentService = ServiceContext.ContentService; + var contentTypeService = ServiceContext.ContentTypeService; + + var contentType = MockedContentTypes.CreateTextpageContentType(); + contentTypeService.Save(contentType); + + var blueprint = MockedContent.CreateTextpageContent(contentType, "hello", -1); + blueprint.SetValue("title", "blueprint 1"); + blueprint.SetValue("bodyText", "blueprint 2"); + blueprint.SetValue("keywords", "blueprint 3"); + blueprint.SetValue("description", "blueprint 4"); + + contentService.SaveBlueprint(blueprint); + + var found = contentService.GetDocumentBlueprints().ToArray(); + Assert.AreEqual(1, found.Length); + + //ensures it's not found by normal content + var contentFound = contentService.GetById(found[0].Id); + Assert.IsNull(contentFound); + } + + [Test] + public void Delete_Blueprint() + { + var contentService = ServiceContext.ContentService; + var contentTypeService = ServiceContext.ContentTypeService; + + var contentType = MockedContentTypes.CreateTextpageContentType(); + contentTypeService.Save(contentType); + + var blueprint = MockedContent.CreateTextpageContent(contentType, "hello", -1); + blueprint.SetValue("title", "blueprint 1"); + blueprint.SetValue("bodyText", "blueprint 2"); + blueprint.SetValue("keywords", "blueprint 3"); + blueprint.SetValue("description", "blueprint 4"); + + contentService.SaveBlueprint(blueprint); + + contentService.DeleteBlueprint(blueprint); + + var found = contentService.GetDocumentBlueprints().ToArray(); + Assert.AreEqual(0, found.Length); + } + + [Test] + public void Create_Content_From_Blueprint() + { + var contentService = ServiceContext.ContentService; + var contentTypeService = ServiceContext.ContentTypeService; + + var contentType = MockedContentTypes.CreateTextpageContentType(); + contentTypeService.Save(contentType); + + var blueprint = MockedContent.CreateTextpageContent(contentType, "hello", -1); + blueprint.SetValue("title", "blueprint 1"); + blueprint.SetValue("bodyText", "blueprint 2"); + blueprint.SetValue("keywords", "blueprint 3"); + blueprint.SetValue("description", "blueprint 4"); + + contentService.SaveBlueprint(blueprint); + + var fromBlueprint = contentService.CreateContentFromBlueprint(blueprint, "hello world"); + contentService.Save(fromBlueprint); + + Assert.IsTrue(fromBlueprint.HasIdentity); + Assert.AreEqual("blueprint 1", fromBlueprint.Properties["title"].Value); + Assert.AreEqual("blueprint 2", fromBlueprint.Properties["bodyText"].Value); + Assert.AreEqual("blueprint 3", fromBlueprint.Properties["keywords"].Value); + Assert.AreEqual("blueprint 4", fromBlueprint.Properties["description"].Value); + } + + [Test] + public void Get_All_Blueprints() + { + var contentService = ServiceContext.ContentService; + var contentTypeService = ServiceContext.ContentTypeService; + + var ct1 = MockedContentTypes.CreateTextpageContentType("ct1"); + contentTypeService.Save(ct1); + var ct2 = MockedContentTypes.CreateTextpageContentType("ct2"); + contentTypeService.Save(ct2); + + for (int i = 0; i < 10; i++) + { + var blueprint = MockedContent.CreateTextpageContent(i % 2 == 0 ? ct1 : ct2, "hello" + i, -1); + contentService.SaveBlueprint(blueprint); + } + + var found = contentService.GetDocumentBlueprints().ToArray(); + Assert.AreEqual(10, found.Length); + + found = contentService.GetDocumentBlueprints(ct1.Id).ToArray(); + Assert.AreEqual(5, found.Length); + + found = contentService.GetDocumentBlueprints(ct2.Id).ToArray(); + Assert.AreEqual(5, found.Length); + } /// /// Ensures that we don't unpublish all nodes when a node is deleted that has an invalid path of -1 From adb02c96a76d852fde6ed1290182ec45cd954240 Mon Sep 17 00:00:00 2001 From: Shannon Date: Sun, 4 Jun 2017 15:54:51 +0200 Subject: [PATCH 003/108] Gets blueprint tree controller working, makes the content editor a directive :O --- src/Umbraco.Core/Constants-Applications.cs | 7 +- .../Repositories/EntityRepository.cs | 20 +- .../components/content/edit.controller.js | 243 ++++++++++++++++++ .../src/views/components/content/edit.html | 86 +++++++ .../views/content/content.edit.controller.js | 232 ----------------- .../src/views/content/edit.html | 87 +------ .../contentblueprints/delete.controller.js | 32 +++ .../src/views/contentblueprints/delete.html | 12 + .../src/views/contentblueprints/edit.html | 3 + src/Umbraco.Web.UI/config/trees.config | 3 +- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 1 + .../umbraco/config/lang/en_us.xml | 1 + .../Trees/ContentBlueprintTreeController.cs | 81 ++++++ src/Umbraco.Web/Umbraco.Web.csproj | 1 + 14 files changed, 480 insertions(+), 329 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js create mode 100644 src/Umbraco.Web.UI.Client/src/views/components/content/edit.html delete mode 100644 src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js create mode 100644 src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.controller.js create mode 100644 src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.html create mode 100644 src/Umbraco.Web.UI.Client/src/views/contentblueprints/edit.html create mode 100644 src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs diff --git a/src/Umbraco.Core/Constants-Applications.cs b/src/Umbraco.Core/Constants-Applications.cs index fd9476a8ab..d98c12aeb1 100644 --- a/src/Umbraco.Core/Constants-Applications.cs +++ b/src/Umbraco.Core/Constants-Applications.cs @@ -56,7 +56,12 @@ /// /// alias for the content tree. /// - public const string Content = "content"; + public const string Content = "content"; + + /// + /// alias for the content blueprint tree. + /// + public const string ContentBlueprints = "contentBlueprints"; /// /// alias for the member tree. diff --git a/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs b/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs index 4efa8a63ac..4e6bf6ee70 100644 --- a/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs @@ -48,8 +48,8 @@ namespace Umbraco.Core.Persistence.Repositories public IEnumerable GetPagedResultsByQuery(IQuery query, Guid objectTypeId, long pageIndex, int pageSize, out long totalRecords, string orderBy, Direction orderDirection, IQuery filter = null) { - bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); - bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + bool isContent = objectTypeId == Constants.ObjectTypes.DocumentGuid || objectTypeId == Constants.ObjectTypes.DocumentBlueprintGuid; + bool isMedia = objectTypeId == Constants.ObjectTypes.MediaGuid; var factory = new UmbracoEntityFactory(); var sqlClause = GetBaseWhere(GetBase, isContent, isMedia, sql => @@ -178,8 +178,8 @@ namespace Umbraco.Core.Persistence.Repositories public IUmbracoEntity GetByKey(Guid key, Guid objectTypeId) { - bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); - bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + bool isContent = objectTypeId == Constants.ObjectTypes.DocumentGuid || objectTypeId == Constants.ObjectTypes.DocumentBlueprintGuid; + bool isMedia = objectTypeId == Constants.ObjectTypes.MediaGuid; var sql = GetFullSqlForEntityType(key, isContent, isMedia, objectTypeId); @@ -225,8 +225,8 @@ namespace Umbraco.Core.Persistence.Repositories public virtual IUmbracoEntity Get(int id, Guid objectTypeId) { - bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); - bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + bool isContent = objectTypeId == Constants.ObjectTypes.DocumentGuid || objectTypeId == Constants.ObjectTypes.DocumentBlueprintGuid; + bool isMedia = objectTypeId == Constants.ObjectTypes.MediaGuid; var sql = GetFullSqlForEntityType(id, isContent, isMedia, objectTypeId); @@ -280,8 +280,8 @@ namespace Umbraco.Core.Persistence.Repositories private IEnumerable PerformGetAll(Guid objectTypeId, Action filter = null) { - bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); - bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + bool isContent = objectTypeId == Constants.ObjectTypes.DocumentGuid || objectTypeId == Constants.ObjectTypes.DocumentBlueprintGuid; + bool isMedia = objectTypeId == Constants.ObjectTypes.MediaGuid; var sql = GetFullSqlForEntityType(isContent, isMedia, objectTypeId, filter); var factory = new UmbracoEntityFactory(); @@ -324,8 +324,8 @@ namespace Umbraco.Core.Persistence.Repositories public virtual IEnumerable GetByQuery(IQuery query, Guid objectTypeId) { - bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); - bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + bool isContent = objectTypeId == Constants.ObjectTypes.DocumentGuid || objectTypeId == Constants.ObjectTypes.DocumentBlueprintGuid; + bool isMedia = objectTypeId == Constants.ObjectTypes.MediaGuid; var sqlClause = GetBaseWhere(GetBase, isContent, isMedia, null, objectTypeId); diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js new file mode 100644 index 0000000000..2633b0854b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js @@ -0,0 +1,243 @@ +(function () { + 'use strict'; + + function ContentEditController($rootScope, $routeParams, $q, $timeout, $window, appState, contentResource, entityResource, navigationService, notificationsService, angularHelper, serverValidationManager, contentEditingHelper, treeService, fileManager, formHelper, umbRequestHelper, keyboardService, umbModelMapper, editorState, $http) { + + function link(scope, element, attrs, ctrl) { + //setup scope vars + scope.defaultButton = null; + scope.subButtons = []; + + scope.page = {}; + scope.page.loading = false; + scope.page.menu = {}; + scope.page.menu.currentNode = null; + scope.page.menu.currentSection = appState.getSectionState("currentSection"); + scope.page.listViewPath = null; + scope.page.isNew = $routeParams.create; + scope.page.buttonGroupState = "init"; + + function init(content) { + + var buttons = contentEditingHelper.configureContentEditorButtons({ + create: $routeParams.create, + content: content, + methods: { + saveAndPublish: scope.saveAndPublish, + sendToPublish: scope.sendToPublish, + save: scope.save, + unPublish: scope.unPublish + } + }); + scope.defaultButton = buttons.defaultButton; + scope.subButtons = buttons.subButtons; + + editorState.set(scope.content); + + //We fetch all ancestors of the node to generate the footer breadcrumb navigation + if (!$routeParams.create) { + if (content.parentId && content.parentId !== -1) { + entityResource.getAncestors(content.id, "document") + .then(function (anc) { + scope.ancestors = anc; + }); + } + } + } + + /** Syncs the content item to it's tree node - this occurs on first load and after saving */ + function syncTreeNode(content, path, initialLoad) { + + if (!scope.content.isChildOfListView) { + navigationService.syncTree({ tree: "content", path: path.split(","), forceReload: initialLoad !== true }).then(function (syncArgs) { + scope.page.menu.currentNode = syncArgs.node; + }); + } + else if (initialLoad === true) { + + //it's a child item, just sync the ui node to the parent + navigationService.syncTree({ tree: "content", path: path.substring(0, path.lastIndexOf(",")).split(","), forceReload: initialLoad !== true }); + + //if this is a child of a list view and it's the initial load of the editor, we need to get the tree node + // from the server so that we can load in the actions menu. + umbRequestHelper.resourcePromise( + $http.get(content.treeNodeUrl), + 'Failed to retrieve data for child node ' + content.id).then(function (node) { + scope.page.menu.currentNode = node; + }); + } + } + + // This is a helper method to reduce the amount of code repitition for actions: Save, Publish, SendToPublish + function performSave(args) { + var deferred = $q.defer(); + + scope.page.buttonGroupState = "busy"; + + contentEditingHelper.contentEditorPerformSave({ + statusMessage: args.statusMessage, + saveMethod: args.saveMethod, + scope: scope, + content: scope.content, + action: args.action + }).then(function (data) { + //success + init(scope.content); + syncTreeNode(scope.content, data.path); + + scope.page.buttonGroupState = "success"; + + deferred.resolve(data); + }, function (err) { + //error + if (err) { + editorState.set(scope.content); + } + + scope.page.buttonGroupState = "error"; + + deferred.reject(err); + }); + + return deferred.promise; + } + + function resetLastListPageNumber(content) { + // We're using rootScope to store the page number for list views, so if returning to the list + // we can restore the page. If we've moved on to edit a piece of content that's not the list or it's children + // we should remove this so as not to confuse if navigating to a different list + if (!content.isChildOfListView && !content.isContainer) { + $rootScope.lastListViewPageViewed = null; + } + } + + if ($routeParams.create) { + + scope.page.loading = true; + + //we are creating so get an empty content item + contentResource.getScaffold($routeParams.id, $routeParams.doctype) + .then(function (data) { + + scope.content = data; + + init(scope.content); + + resetLastListPageNumber(scope.content); + + scope.page.loading = false; + + }); + } + else { + + scope.page.loading = true; + + //we are editing so get the content item from the server + contentResource.getById($routeParams.id) + .then(function (data) { + + scope.content = data; + + if (data.isChildOfListView && data.trashed === false) { + scope.page.listViewPath = ($routeParams.page) ? + "/content/content/edit/" + data.parentId + "?page=" + $routeParams.page : + "/content/content/edit/" + data.parentId; + } + + init(scope.content); + + //in one particular special case, after we've created a new item we redirect back to the edit + // route but there might be server validation errors in the collection which we need to display + // after the redirect, so we will bind all subscriptions which will show the server validation errors + // if there are any and then clear them so the collection no longer persists them. + serverValidationManager.executeAndClearAllSubscriptions(); + + syncTreeNode(scope.content, data.path, true); + + resetLastListPageNumber(scope.content); + + scope.page.loading = false; + + }); + } + + + scope.unPublish = function () { + + if (formHelper.submitForm({ scope: scope, statusMessage: "Unpublishing...", skipValidation: true })) { + + scope.page.buttonGroupState = "busy"; + + contentResource.unPublish(scope.content.id) + .then(function (data) { + + formHelper.resetForm({ scope: scope, notifications: data.notifications }); + + contentEditingHelper.handleSuccessfulSave({ + scope: scope, + savedContent: data, + rebindCallback: contentEditingHelper.reBindChangedProperties(scope.content, data) + }); + + init(scope.content); + + syncTreeNode(scope.content, data.path); + + scope.page.buttonGroupState = "success"; + + }); + } + + }; + + scope.sendToPublish = function () { + return performSave({ saveMethod: contentResource.sendToPublish, statusMessage: "Sending...", action: "sendToPublish" }); + }; + + scope.saveAndPublish = function () { + return performSave({ saveMethod: contentResource.publish, statusMessage: "Publishing...", action: "publish" }); + }; + + scope.save = function () { + return performSave({ saveMethod: contentResource.save, statusMessage: "Saving...", action: "save" }); + }; + + scope.preview = function (content) { + + + if (!scope.busy) { + + // Chromes popup blocker will kick in if a window is opened + // outwith the initial scoped request. This trick will fix that. + // + var previewWindow = $window.open('preview/?id=' + content.id, 'umbpreview'); + scope.save().then(function (data) { + // Build the correct path so both /#/ and #/ work. + var redirect = Umbraco.Sys.ServerVariables.umbracoSettings.umbracoPath + '/preview/?id=' + data.id; + previewWindow.location.href = redirect; + }); + + + } + + }; + } + + var directive = { + restrict: 'E', + replace: true, + templateUrl: 'views/components/content/edit.html', + scope: { + + }, + link: link + }; + + return directive; + + } + + angular.module('umbraco.directives').directive('contentEditor', ContentEditController); + +})(); diff --git a/src/Umbraco.Web.UI.Client/src/views/components/content/edit.html b/src/Umbraco.Web.UI.Client/src/views/components/content/edit.html new file mode 100644 index 0000000000..b97676fb7e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/components/content/edit.html @@ -0,0 +1,86 @@ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js deleted file mode 100644 index e8e729fd72..0000000000 --- a/src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js +++ /dev/null @@ -1,232 +0,0 @@ -/** - * @ngdoc controller - * @name Umbraco.Editors.Content.EditController - * @function - * - * @description - * The controller for the content editor - */ -function ContentEditController($scope, $rootScope, $routeParams, $q, $timeout, $window, appState, contentResource, entityResource, navigationService, notificationsService, angularHelper, serverValidationManager, contentEditingHelper, treeService, fileManager, formHelper, umbRequestHelper, keyboardService, umbModelMapper, editorState, $http) { - - //setup scope vars - $scope.defaultButton = null; - $scope.subButtons = []; - - $scope.page = {}; - $scope.page.loading = false; - $scope.page.menu = {}; - $scope.page.menu.currentNode = null; - $scope.page.menu.currentSection = appState.getSectionState("currentSection"); - $scope.page.listViewPath = null; - $scope.page.isNew = $routeParams.create; - $scope.page.buttonGroupState = "init"; - - function init(content) { - - var buttons = contentEditingHelper.configureContentEditorButtons({ - create: $routeParams.create, - content: content, - methods: { - saveAndPublish: $scope.saveAndPublish, - sendToPublish: $scope.sendToPublish, - save: $scope.save, - unPublish: $scope.unPublish - } - }); - $scope.defaultButton = buttons.defaultButton; - $scope.subButtons = buttons.subButtons; - - editorState.set($scope.content); - - //We fetch all ancestors of the node to generate the footer breadcrumb navigation - if (!$routeParams.create) { - if (content.parentId && content.parentId != -1) { - entityResource.getAncestors(content.id, "document") - .then(function (anc) { - $scope.ancestors = anc; - }); - } - } - } - - /** Syncs the content item to it's tree node - this occurs on first load and after saving */ - function syncTreeNode(content, path, initialLoad) { - - if (!$scope.content.isChildOfListView) { - navigationService.syncTree({ tree: "content", path: path.split(","), forceReload: initialLoad !== true }).then(function (syncArgs) { - $scope.page.menu.currentNode = syncArgs.node; - }); - } - else if (initialLoad === true) { - - //it's a child item, just sync the ui node to the parent - navigationService.syncTree({ tree: "content", path: path.substring(0, path.lastIndexOf(",")).split(","), forceReload: initialLoad !== true }); - - //if this is a child of a list view and it's the initial load of the editor, we need to get the tree node - // from the server so that we can load in the actions menu. - umbRequestHelper.resourcePromise( - $http.get(content.treeNodeUrl), - 'Failed to retrieve data for child node ' + content.id).then(function (node) { - $scope.page.menu.currentNode = node; - }); - } - } - - // This is a helper method to reduce the amount of code repitition for actions: Save, Publish, SendToPublish - function performSave(args) { - var deferred = $q.defer(); - - $scope.page.buttonGroupState = "busy"; - - contentEditingHelper.contentEditorPerformSave({ - statusMessage: args.statusMessage, - saveMethod: args.saveMethod, - scope: $scope, - content: $scope.content, - action: args.action - }).then(function (data) { - //success - init($scope.content); - syncTreeNode($scope.content, data.path); - - $scope.page.buttonGroupState = "success"; - - deferred.resolve(data); - }, function (err) { - //error - if (err) { - editorState.set($scope.content); - } - - $scope.page.buttonGroupState = "error"; - - deferred.reject(err); - }); - - return deferred.promise; - } - - function resetLastListPageNumber(content) { - // We're using rootScope to store the page number for list views, so if returning to the list - // we can restore the page. If we've moved on to edit a piece of content that's not the list or it's children - // we should remove this so as not to confuse if navigating to a different list - if (!content.isChildOfListView && !content.isContainer) { - $rootScope.lastListViewPageViewed = null; - } - } - - if ($routeParams.create) { - - $scope.page.loading = true; - - //we are creating so get an empty content item - contentResource.getScaffold($routeParams.id, $routeParams.doctype) - .then(function (data) { - - $scope.content = data; - - init($scope.content); - - resetLastListPageNumber($scope.content); - - $scope.page.loading = false; - - }); - } - else { - - $scope.page.loading = true; - - //we are editing so get the content item from the server - contentResource.getById($routeParams.id) - .then(function (data) { - - $scope.content = data; - - if (data.isChildOfListView && data.trashed === false) { - $scope.page.listViewPath = ($routeParams.page) - ? "/content/content/edit/" + data.parentId + "?page=" + $routeParams.page - : "/content/content/edit/" + data.parentId; - } - - init($scope.content); - - //in one particular special case, after we've created a new item we redirect back to the edit - // route but there might be server validation errors in the collection which we need to display - // after the redirect, so we will bind all subscriptions which will show the server validation errors - // if there are any and then clear them so the collection no longer persists them. - serverValidationManager.executeAndClearAllSubscriptions(); - - syncTreeNode($scope.content, data.path, true); - - resetLastListPageNumber($scope.content); - - $scope.page.loading = false; - - }); - } - - - $scope.unPublish = function () { - - if (formHelper.submitForm({ scope: $scope, statusMessage: "Unpublishing...", skipValidation: true })) { - - $scope.page.buttonGroupState = "busy"; - - contentResource.unPublish($scope.content.id) - .then(function (data) { - - formHelper.resetForm({ scope: $scope, notifications: data.notifications }); - - contentEditingHelper.handleSuccessfulSave({ - scope: $scope, - savedContent: data, - rebindCallback: contentEditingHelper.reBindChangedProperties($scope.content, data) - }); - - init($scope.content); - - syncTreeNode($scope.content, data.path); - - $scope.page.buttonGroupState = "success"; - - }); - } - - }; - - $scope.sendToPublish = function () { - return performSave({ saveMethod: contentResource.sendToPublish, statusMessage: "Sending...", action: "sendToPublish" }); - }; - - $scope.saveAndPublish = function () { - return performSave({ saveMethod: contentResource.publish, statusMessage: "Publishing...", action: "publish" }); - }; - - $scope.save = function () { - return performSave({ saveMethod: contentResource.save, statusMessage: "Saving...", action: "save" }); - }; - - $scope.preview = function (content) { - - - if (!$scope.busy) { - - // Chromes popup blocker will kick in if a window is opened - // outwith the initial scoped request. This trick will fix that. - // - var previewWindow = $window.open('preview/?id=' + content.id, 'umbpreview'); - $scope.save().then(function (data) { - // Build the correct path so both /#/ and #/ work. - var redirect = Umbraco.Sys.ServerVariables.umbracoSettings.umbracoPath + '/preview/?id=' + data.id; - previewWindow.location.href = redirect; - }); - - - } - - }; - -} - -angular.module("umbraco").controller("Umbraco.Editors.Content.EditController", ContentEditController); diff --git a/src/Umbraco.Web.UI.Client/src/views/content/edit.html b/src/Umbraco.Web.UI.Client/src/views/content/edit.html index 0ef68fe07b..04d4259e09 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/edit.html +++ b/src/Umbraco.Web.UI.Client/src/views/content/edit.html @@ -1,86 +1,3 @@ -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
diff --git a/src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.controller.js b/src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.controller.js new file mode 100644 index 0000000000..feae545a3e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.controller.js @@ -0,0 +1,32 @@ +/** + * @ngdoc controller + * @name Umbraco.Editors.ContentBlueprint.DeleteController + * @function + * + * @description + * The controller for deleting content blueprints + */ +function ContentBlueprintDeleteController($scope, codefileResource, treeService, navigationService) { + + $scope.performDelete = function() { + + //mark it for deletion (used in the UI) + $scope.currentNode.loading = true; + + codefileResource.deleteByPath('partialViews', $scope.currentNode.id) + .then(function() { + $scope.currentNode.loading = false; + //get the root node before we remove it + var rootNode = treeService.getTreeRoot($scope.currentNode); + //TODO: Need to sync tree, etc... + treeService.removeNode($scope.currentNode); + navigationService.hideMenu(); + }); + }; + + $scope.cancel = function() { + navigationService.hideDialog(); + }; +} + +angular.module("umbraco").controller("Umbraco.Editors.ContentBlueprint.DeleteController", ContentBlueprintDeleteController); diff --git a/src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.html b/src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.html new file mode 100644 index 0000000000..44a31254d2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/contentblueprints/delete.html @@ -0,0 +1,12 @@ +
+
+ +

+ Are you sure you want to delete {{currentNode.name}} ? +

+ + + + +
+
diff --git a/src/Umbraco.Web.UI.Client/src/views/contentblueprints/edit.html b/src/Umbraco.Web.UI.Client/src/views/contentblueprints/edit.html new file mode 100644 index 0000000000..04d4259e09 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/contentblueprints/edit.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/Umbraco.Web.UI/config/trees.config b/src/Umbraco.Web.UI/config/trees.config index 13da9246b7..d32e58f093 100644 --- a/src/Umbraco.Web.UI/config/trees.config +++ b/src/Umbraco.Web.UI/config/trees.config @@ -16,6 +16,7 @@ + @@ -40,5 +41,5 @@ - + \ No newline at end of file diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index d99cd8f43f..85d3aa79e6 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1340,6 +1340,7 @@ To manage your website, simply open the Umbraco back office and start adding con Upload translation XML + Content Blueprints Cache Browser Recycle Bin Created packages diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index 63fc12101f..8e176246f8 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -1337,6 +1337,7 @@ To manage your website, simply open the Umbraco back office and start adding con Upload translation XML + Content Blueprints Cache Browser Recycle Bin Created packages diff --git a/src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs b/src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs new file mode 100644 index 0000000000..7b18b015ea --- /dev/null +++ b/src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs @@ -0,0 +1,81 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.Globalization; +using System.Net; +using System.Net.Http.Formatting; +using System.Web.Http; +using umbraco; +using umbraco.BusinessLogic.Actions; +using Umbraco.Core; +using Umbraco.Core.Services; +using Umbraco.Core.Models; +using Umbraco.Core.Models.EntityBase; +using Umbraco.Core.Persistence; +using Umbraco.Web.Models.Trees; +using Umbraco.Web.Mvc; +using Umbraco.Web.WebApi.Filters; +using Constants = Umbraco.Core.Constants; + +namespace Umbraco.Web.Trees +{ + /// + /// The content blueprint tree controller + /// + /// + /// This authorizes based on access to the content section even though it exists in the settings + /// + [UmbracoApplicationAuthorize(Constants.Applications.Content)] + [Tree(Constants.Applications.Settings, Constants.Trees.ContentBlueprints, null, sortOrder: 8)] + [PluginController("UmbracoTrees")] + [CoreTree] + public class ContentBlueprintTreeController : TreeController + { + protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings) + { + var nodes = new TreeNodeCollection(); + + //check if we're rendering the root + if (id == Constants.System.Root.ToInvariantString()) + { + var altStartId = string.Empty; + + if (queryStrings.HasKey(TreeQueryStringParameters.StartNodeId)) + altStartId = queryStrings.GetValue(TreeQueryStringParameters.StartNodeId); + + //check if a request has been made to render from a specific start node + if (string.IsNullOrEmpty(altStartId) == false && altStartId != "undefined" && altStartId != Constants.System.Root.ToString(CultureInfo.InvariantCulture)) + { + id = altStartId; + } + + var entities = Services.EntityService.GetChildren(Constants.System.Root, UmbracoObjectTypes.DocumentBlueprint).ToArray(); + + nodes.AddRange(entities + .Select(entity => CreateTreeNode(entity, Constants.ObjectTypes.DocumentBlueprintGuid, id, queryStrings, "icon-blueprint", false)) + .Where(node => node != null)); + + return nodes; + } + + return nodes; + } + + protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) + { + var menu = new MenuItemCollection(); + + if (id == Constants.System.Root.ToInvariantString()) + { + // root actions + menu.Items.Add(Services.TextService.Localize(string.Format("actions/{0}", ActionRefresh.Instance.Alias)), true); + return menu; + } + + menu.Items.Add(Services.TextService.Localize(string.Format("actions/{0}", ActionDelete.Instance.Alias))); + + return menu; + } + + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 0b5652e509..77ab8d55c9 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -434,6 +434,7 @@ + From 028903c306ef0ac69cbc0657b8e1fbbf2c7a2408 Mon Sep 17 00:00:00 2001 From: Shannon Date: Sun, 4 Jun 2017 16:00:25 +0200 Subject: [PATCH 004/108] Creates endpoint to create a blueprint --- src/Umbraco.Web/Editors/ContentController.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs index da5e0c3a3b..0e59124dc9 100644 --- a/src/Umbraco.Web/Editors/ContentController.cs +++ b/src/Umbraco.Web/Editors/ContentController.cs @@ -275,6 +275,24 @@ namespace Umbraco.Web.Editors return false; } + /// + /// Creates a blueprint from a content item + /// + /// The content id to copy + /// The name of the blueprint + /// + public IHttpActionResult CreateBlueprintFromContent(int contentId, string name) + { + var content = Services.ContentService.GetById(contentId); + if (content == null) return NotFound(); + + var blueprint = Services.ContentService.CreateContentFromBlueprint(content, name, Security.GetUserId()); + + Services.ContentService.SaveBlueprint(blueprint, Security.GetUserId()); + + return Ok(); + } + /// /// Saves content /// From 9f0639ba242049579e5d0ea87950933e6ebdb327 Mon Sep 17 00:00:00 2001 From: Lars-Erik Aabech Date: Sun, 4 Jun 2017 16:07:11 +0200 Subject: [PATCH 005/108] Create blueprint from content action In process of adding blueprints to create content dialog --- .../Migrations/Initial/BaseDataCreation.cs | 4 +- .../src/common/resources/content.resource.js | 11 ++++++ .../content/content.create.controller.js | 26 +++++++++++-- .../content.createblueprint.controller.js | 35 ++++++++++++++++++ .../src/views/content/create.html | 37 ++++++------------- .../src/views/content/createblueprint.html | 17 +++++++++ .../Views/Partials/Grid/Bootstrap2.cshtml | 32 +++++----------- .../Views/Partials/Grid/Bootstrap3.cshtml | 32 +++++----------- .../Views/Partials/Grid/Editors/Base.cshtml | 1 + .../Views/Partials/Grid/Editors/Embed.cshtml | 7 +++- .../Views/Partials/Grid/Editors/Macro.cshtml | 2 + .../Views/Partials/Grid/Editors/Media.cshtml | 3 +- .../Partials/Grid/Editors/TextString.cshtml | 5 +-- src/Umbraco.Web.UI/js/bootstrap.min.js | 7 ++++ src/Umbraco.Web.UI/js/jquery.min.js | 4 ++ .../Trees/ContentTreeController.cs | 5 ++- .../ActionCreateBlueprintFromContent.cs | 35 ++++++++++++++++++ src/umbraco.cms/umbraco.cms.csproj | 1 + 18 files changed, 183 insertions(+), 81 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/views/content/content.createblueprint.controller.js create mode 100644 src/Umbraco.Web.UI.Client/src/views/content/createblueprint.html create mode 100644 src/Umbraco.Web.UI/js/bootstrap.min.js create mode 100644 src/Umbraco.Web.UI/js/jquery.min.js create mode 100644 src/umbraco.cms/Actions/ActionCreateBlueprintFromContent.cs diff --git a/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs b/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs index 002af11611..2e32adcb54 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs @@ -170,9 +170,9 @@ namespace Umbraco.Core.Persistence.Migrations.Initial private void CreateUmbracoUserTypeData() { - _database.Insert("umbracoUserType", "id", false, new UserTypeDto { Id = 1, Alias = "admin", Name = "Administrators", DefaultPermissions = "CADMOSKTPIURZ:5F7" }); + _database.Insert("umbracoUserType", "id", false, new UserTypeDto { Id = 1, Alias = "admin", Name = "Administrators", DefaultPermissions = "CADMOSKTPIURZ:5F7ï" }); _database.Insert("umbracoUserType", "id", false, new UserTypeDto { Id = 2, Alias = "writer", Name = "Writer", DefaultPermissions = "CAH:F" }); - _database.Insert("umbracoUserType", "id", false, new UserTypeDto { Id = 3, Alias = "editor", Name = "Editors", DefaultPermissions = "CADMOSKTPUZ:5F" }); + _database.Insert("umbracoUserType", "id", false, new UserTypeDto { Id = 3, Alias = "editor", Name = "Editors", DefaultPermissions = "CADMOSKTPUZ:5Fï" }); _database.Insert("umbracoUserType", "id", false, new UserTypeDto { Id = 4, Alias = "translator", Name = "Translator", DefaultPermissions = "AF" }); } diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js index f44401f5c5..f98937759e 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js @@ -665,6 +665,17 @@ function contentResource($q, $http, umbDataFormatter, umbRequestHelper) { [{ id: id }])), 'Failed to publish content with id ' + id); + }, + + createBlueprintFromContent: function(id, name) { + return umbRequestHelper.resourcePromise( + $http.post( + umbRequestHelper.getApiUrl("contentApiBaseUrl", "CreateBlueprintFromContent", { + id: id, name: name + }) + ), + "Failed to create blueprint from content with id " + id + ); } diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.create.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.create.controller.js index 503caeb82d..e0e3bcee37 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/content.create.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/content/content.create.controller.js @@ -6,11 +6,29 @@ * @description * The controller for the content creation dialog */ -function contentCreateController($scope, $routeParams, contentTypeResource, iconHelper) { - - contentTypeResource.getAllowedTypes($scope.currentNode.id).then(function(data) { +function contentCreateController($scope, $routeParams, contentTypeResource, iconHelper, $location) { + + contentTypeResource.getAllowedTypes($scope.currentNode.id).then(function (data) { $scope.allowedTypes = iconHelper.formatContentTypeIcons(data); - }); + }); + + $scope.goToAction = function(docType) { + if (docType.blueprints && docType.blueprints.length) { + // Show dialog + } else { + $location.path( "/content/edit/" + + $scope.currentNode.id + + "?doctype=" + + docType.alias + + "&create=true" + ); + } + navigationService.hideNavigation(); + } + + $scope.createLinkAttributes = function(docType) { + return linkAttributes; + } } angular.module('umbraco').controller("Umbraco.Editors.Content.CreateController", contentCreateController); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.createblueprint.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.createblueprint.controller.js new file mode 100644 index 0000000000..0ae435ddf1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/content/content.createblueprint.controller.js @@ -0,0 +1,35 @@ +(function() { + + function CreateBlueprintController($scope, + contentResource, + appState, + navigationService, + editorState, + notificationService) { + + $scope.name = editorState.current.name; + + $scope.create = function() { + contentResource.createBlueprintFromContent(editorState.current.id, $scope.name) + .then(function() { + notificationService.showNotification({ + type: 3, + header: "Created blueprint", + message: "Blueprint was created based on " + $scope.name + }); + $scope.closeDialogs(); + }); + }; + } + + angular.module("umbraco").controller("Umbraco.Editors.Content.CreateBlueprintController", + [ + "$scope", + "contentResource", + "navigationService", + "editorState", + "notificationsService", + CreateBlueprintController + ]); + +}()); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/content/create.html b/src/Umbraco.Web.UI.Client/src/views/content/create.html index 73bdc5c188..b4b63d949e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/create.html +++ b/src/Umbraco.Web.UI.Client/src/views/content/create.html @@ -9,31 +9,18 @@
diff --git a/src/Umbraco.Web.UI.Client/src/views/content/createblueprint.html b/src/Umbraco.Web.UI.Client/src/views/content/createblueprint.html new file mode 100644 index 0000000000..08fc36887a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/content/createblueprint.html @@ -0,0 +1,17 @@ +
+ + + +
diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap2.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap2.cshtml index c8f9ab7cd1..8b189ae1a0 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap2.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap2.cshtml @@ -2,10 +2,6 @@ @using Umbraco.Web.Templates @using Newtonsoft.Json.Linq -@* - Razor helpers located at the bottom of this file -*@ - @if (Model != null && Model.sections != null) { var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1; @@ -64,29 +60,21 @@ JObject cfg = contentItem.config; if(cfg != null) - foreach (JProperty property in cfg.Properties()) - { - var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString()); - attrs.Add(property.Name + "=\"" + propertyValue + "\""); + foreach (JProperty property in cfg.Properties()) { + attrs.Add(property.Name + "='" + property.Value.ToString() + "'"); } - + JObject style = contentItem.styles; - if (style != null) { - var cssVals = new List(); - foreach (JProperty property in style.Properties()) - { - var propertyValue = property.Value.ToString(); - if (string.IsNullOrWhiteSpace(propertyValue) == false) - { - cssVals.Add(property.Name + ":" + propertyValue + ";"); - } - } + if (style != null) { + var cssVals = new List(); + foreach (JProperty property in style.Properties()) + cssVals.Add(property.Name + ":" + property.Value.ToString() + ";"); - if (cssVals.Any()) - attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\""); + if (cssVals.Any()) + attrs.Add("style='" + string.Join(" ", cssVals) + "'"); } - + return new MvcHtmlString(string.Join(" ", attrs)); } } \ No newline at end of file diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap3.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap3.cshtml index 6ab5c1355a..e672aa2a11 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap3.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Bootstrap3.cshtml @@ -2,10 +2,6 @@ @using Umbraco.Web.Templates @using Newtonsoft.Json.Linq -@* - Razor helpers located at the bottom of this file -*@ - @if (Model != null && Model.sections != null) { var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1; @@ -64,29 +60,21 @@ JObject cfg = contentItem.config; if(cfg != null) - foreach (JProperty property in cfg.Properties()) - { - var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString()); - attrs.Add(property.Name + "=\"" + propertyValue + "\""); + foreach (JProperty property in cfg.Properties()) { + attrs.Add(property.Name + "='" + property.Value.ToString() + "'"); } - + JObject style = contentItem.styles; - if (style != null) { - var cssVals = new List(); - foreach (JProperty property in style.Properties()) - { - var propertyValue = property.Value.ToString(); - if (string.IsNullOrWhiteSpace(propertyValue) == false) - { - cssVals.Add(property.Name + ":" + propertyValue + ";"); - } - } + if (style != null) { + var cssVals = new List(); + foreach (JProperty property in style.Properties()) + cssVals.Add(property.Name + ":" + property.Value.ToString() + ";"); - if (cssVals.Any()) - attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\""); + if (cssVals.Any()) + attrs.Add("style='" + string.Join(" ", cssVals) + "'"); } - + return new MvcHtmlString(string.Join(" ", attrs)); } } \ No newline at end of file diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Base.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Base.cshtml index ffb7603048..a86c04819a 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Base.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Base.cshtml @@ -1,4 +1,5 @@ @model dynamic +@using Umbraco.Web.Templates @functions { public static string EditorView(dynamic contentItem) diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Embed.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Embed.cshtml index c27be6bcdf..393157bcf8 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Embed.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Embed.cshtml @@ -1,2 +1,7 @@ @model dynamic -@Html.Raw(Model.value) +@using Umbraco.Web.Templates + + +
+ @Html.Raw(Model.value) +
diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Macro.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Macro.cshtml index ed08bb2484..e0822808d8 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Macro.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Macro.cshtml @@ -1,4 +1,6 @@ @inherits UmbracoViewPage +@using Umbraco.Web.Templates + @if (Model.value != null) { diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml index 5b5adbdc7d..09d04219f2 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml @@ -1,4 +1,5 @@ @model dynamic +@using Umbraco.Web.Templates @if (Model.value != null) { @@ -13,7 +14,7 @@ } } - @Model.value.altText + @Model.value.caption if (Model.value.caption != null) { diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/TextString.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/TextString.cshtml index 8c92ca0d83..0cac4eb1ff 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/TextString.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/TextString.cshtml @@ -4,9 +4,8 @@ @if (Model.editor.config.markup != null) { string markup = Model.editor.config.markup.ToString(); - var umbracoHelper = new UmbracoHelper(UmbracoContext.Current); - - markup = markup.Replace("#value#", umbracoHelper.ReplaceLineBreaksForHtml(HttpUtility.HtmlEncode(Model.value.ToString()))); + + markup = markup.Replace("#value#", Model.value.ToString()); markup = markup.Replace("#style#", Model.editor.config.style.ToString()); diff --git a/src/Umbraco.Web.UI/js/bootstrap.min.js b/src/Umbraco.Web.UI/js/bootstrap.min.js new file mode 100644 index 0000000000..d839865900 --- /dev/null +++ b/src/Umbraco.Web.UI/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.1",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.1",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c="prev"==a?-1:1,d=this.getItemIndex(b),e=(d+c)%this.$items.length;return this.$items.eq(e)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i="next"==b?"first":"last",j=this;if(!f.length){if(!this.options.wrap)return;f=this.$element.find(".item")[i]()}if(f.hasClass("active"))return this.sliding=!1;var k=f[0],l=a.Event("slide.bs.carousel",{relatedTarget:k,direction:h});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var m=a(this.$indicators.children()[this.getItemIndex(f)]);m&&m.addClass("active")}var n=a.Event("slid.bs.carousel",{relatedTarget:k,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),j.sliding=!1,setTimeout(function(){j.$element.trigger(n)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(n)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.1",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.find("> .panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.1",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('