Merge branch 'staging' of github.com:xwiki-labs/cryptpad into staging

pull/1/head
ansuz 6 years ago
commit d64e1c450e

@ -0,0 +1,273 @@
/* Flowchart variables */
/* Sequence Diagram variables */
/* Gantt chart variables */
.mermaid .label {
color: #333;
}
.node rect,
.node circle,
.node ellipse,
.node polygon {
fill: #ECECFF;
stroke: #CCCCFF;
stroke-width: 1px;
}
.edgePath .path {
stroke: #333333;
}
.edgeLabel {
background-color: #e8e8e8;
}
.cluster rect {
fill: #ffffde !important;
rx: 4 !important;
stroke: #aaaa33 !important;
stroke-width: 1px !important;
}
.cluster text {
fill: #333;
}
.actor {
stroke: #CCCCFF;
fill: #ECECFF;
}
text.actor {
fill: black;
stroke: none;
}
.actor-line {
stroke: grey;
}
.messageLine0 {
stroke-width: 1.5;
stroke-dasharray: "2 2";
marker-end: "url(#arrowhead)";
stroke: #333;
}
.messageLine1 {
stroke-width: 1.5;
stroke-dasharray: "2 2";
stroke: #333;
}
#arrowhead {
fill: #333;
}
#crosshead path {
fill: #333 !important;
stroke: #333 !important;
}
.messageText {
fill: #333;
stroke: none;
}
.labelBox {
stroke: #CCCCFF;
fill: #ECECFF;
}
.labelText {
fill: black;
stroke: none;
}
.loopText {
fill: black;
stroke: none;
}
.loopLine {
stroke-width: 2;
stroke-dasharray: "2 2";
marker-end: "url(#arrowhead)";
stroke: #CCCCFF;
}
.note {
stroke: #aaaa33;
fill: #fff5ad;
}
.noteText {
fill: black;
stroke: none;
font-family: 'trebuchet ms', verdana, arial;
font-size: 14px;
}
/** Section styling */
.section {
stroke: none;
opacity: 0.2;
}
.section0 {
fill: rgba(102, 102, 255, 0.49);
}
.section2 {
fill: #fff400;
}
.section1,
.section3 {
fill: white;
opacity: 0.2;
}
.sectionTitle0 {
fill: #333;
}
.sectionTitle1 {
fill: #333;
}
.sectionTitle2 {
fill: #333;
}
.sectionTitle3 {
fill: #333;
}
.sectionTitle {
text-anchor: start;
font-size: 11px;
text-height: 14px;
}
/* Grid and axis */
.grid .tick {
stroke: lightgrey;
opacity: 0.3;
shape-rendering: crispEdges;
}
.grid path {
stroke-width: 0;
}
/* Today line */
.today {
fill: none;
stroke: red;
stroke-width: 2px;
}
/* Task styling */
/* Default task */
.task {
stroke-width: 2;
}
.taskText {
text-anchor: middle;
font-size: 11px;
}
.taskTextOutsideRight {
fill: black;
text-anchor: start;
font-size: 11px;
}
.taskTextOutsideLeft {
fill: black;
text-anchor: end;
font-size: 11px;
}
/* Specific task settings for the sections*/
.taskText0,
.taskText1,
.taskText2,
.taskText3 {
fill: white;
}
.task0,
.task1,
.task2,
.task3 {
fill: #8a90dd;
stroke: #534fbc;
}
.taskTextOutside0,
.taskTextOutside2 {
fill: black;
}
.taskTextOutside1,
.taskTextOutside3 {
fill: black;
}
/* Active task */
.active0,
.active1,
.active2,
.active3 {
fill: #bfc7ff;
stroke: #534fbc;
}
.activeText0,
.activeText1,
.activeText2,
.activeText3 {
fill: black !important;
}
/* Completed task */
.done0,
.done1,
.done2,
.done3 {
stroke: grey;
fill: lightgrey;
stroke-width: 2;
}
.doneText0,
.doneText1,
.doneText2,
.doneText3 {
fill: black !important;
}
/* Tasks on the critical line */
.crit0,
.crit1,
.crit2,
.crit3 {
stroke: #ff8888;
fill: red;
stroke-width: 2;
}
.activeCrit0,
.activeCrit1,
.activeCrit2,
.activeCrit3 {
stroke: #ff8888;
fill: #bfc7ff;
stroke-width: 2;
}
.doneCrit0,
.doneCrit1,
.doneCrit2,
.doneCrit3 {
stroke: #ff8888;
fill: lightgrey;
stroke-width: 2;
cursor: pointer;
shape-rendering: crispEdges;
}
.doneCritText0,
.doneCritText1,
.doneCritText2,
.doneCritText3 {
fill: black !important;
}
.activeCritText0,
.activeCritText1,
.activeCritText2,
.activeCritText3 {
fill: black !important;
}
.titleText {
text-anchor: middle;
font-size: 18px;
fill: black;
}
/*
*/
.node text {
font-family: 'trebuchet ms', verdana, arial;
font-size: 14px;
}
div.mermaidTooltip {
position: absolute;
text-align: center;
max-width: 200px;
padding: 2px;
font-family: 'trebuchet ms', verdana, arial;
font-size: 12px;
background: #ffffde;
border: 1px solid #aaaa33;
border-radius: 2px;
pointer-events: none;
z-index: 100;
}

@ -77,7 +77,7 @@ define([
// Settings only // Settings only
common.resetDrive = function (cb) { common.resetDrive = function (cb) {
postMessage("RESET_DRIVE", null, function (obj) { postMessage("RESET_DRIVE", null, function (obj) {
if (obj.error) { return void cb(obj.error); } if (obj && obj.error) { return void cb(obj.error); }
cb(); cb();
}); });
}; };

@ -20,7 +20,7 @@ define([
init: function () {} init: function () {}
}; };
require(['/code/mermaid.js'], function (_Mermaid) { require(['/code/mermaid.js', 'css!/code/mermaid.css'], function (_Mermaid) {
Mermaid = _Mermaid; Mermaid = _Mermaid;
}); });

@ -679,7 +679,9 @@ define([
'#fm-btn-save { display: none !important; }' + '#fm-btn-save { display: none !important; }' +
'#panel-settings-general tr.autosave { display: none !important; }' + '#panel-settings-general tr.autosave { display: none !important; }' +
'#panel-settings-general tr.coauth { display: none !important; }' + '#panel-settings-general tr.coauth { display: none !important; }' +
'#header { display: none !important; }'; '#header { display: none !important; }' +
'#id-toolbar-full-placeholder-btn-insertimage { display: none; }' +
'#id-toolbar-full-placeholder-btn-insertequation { display: none; }';
$('<style>').text(css).appendTo($tb); $('<style>').text(css).appendTo($tb);
if (UI.findOKButton().length) { if (UI.findOKButton().length) {
UI.findOKButton().on('focusout', function () { UI.findOKButton().on('focusout', function () {

@ -635,7 +635,7 @@ define([
nThen(function (waitFor) { nThen(function (waitFor) {
removeOwnedPads(waitFor); removeOwnedPads(waitFor);
}).nThen(function () { }).nThen(function () {
store.proxy.drive = store.fo.getStructure(); store.proxy.drive = store.userObject.getStructure();
sendDriveEvent('DRIVE_CHANGE', { sendDriveEvent('DRIVE_CHANGE', {
path: ['drive', 'filesData'] path: ['drive', 'filesData']
}, clientId); }, clientId);

@ -142,6 +142,7 @@ define([
showTrailingSpace : true, showTrailingSpace : true,
styleActiveLine : true, styleActiveLine : true,
search: true, search: true,
inputStyle: 'contenteditable',
highlightSelectionMatches: {showToken: /\w+/}, highlightSelectionMatches: {showToken: /\w+/},
extraKeys: {"Shift-Ctrl-R": undefined}, extraKeys: {"Shift-Ctrl-R": undefined},
foldGutter: true, foldGutter: true,
@ -355,11 +356,12 @@ define([
}; };
exp.mkIndentSettings = function (metadataMgr) { exp.mkIndentSettings = function (metadataMgr) {
var setIndentation = function (units, useTabs, fontSize) { var setIndentation = function (units, useTabs, fontSize, spellcheck) {
if (typeof(units) !== 'number') { return; } if (typeof(units) !== 'number') { return; }
editor.setOption('indentUnit', units); editor.setOption('indentUnit', units);
editor.setOption('tabSize', units); editor.setOption('tabSize', units);
editor.setOption('indentWithTabs', useTabs); editor.setOption('indentWithTabs', useTabs);
editor.setOption('spellcheck', spellcheck);
if (!useTabs) { if (!useTabs) {
editor.setOption("extraKeys", { editor.setOption("extraKeys", {
Tab: function() { Tab: function() {
@ -377,6 +379,7 @@ define([
var indentKey = 'indentUnit'; var indentKey = 'indentUnit';
var useTabsKey = 'indentWithTabs'; var useTabsKey = 'indentWithTabs';
var fontKey = 'fontSize'; var fontKey = 'fontSize';
var spellcheckKey = 'spellcheck';
var updateIndentSettings = function () { var updateIndentSettings = function () {
if (!metadataMgr) { return; } if (!metadataMgr) { return; }
var data = metadataMgr.getPrivateData().settings; var data = metadataMgr.getPrivateData().settings;
@ -384,10 +387,12 @@ define([
var indentUnit = data[indentKey]; var indentUnit = data[indentKey];
var useTabs = data[useTabsKey]; var useTabs = data[useTabsKey];
var fontSize = data[fontKey]; var fontSize = data[fontKey];
var spellcheck = data[spellcheckKey];
setIndentation( setIndentation(
typeof(indentUnit) === 'number'? indentUnit : 2, typeof(indentUnit) === 'number'? indentUnit : 2,
typeof(useTabs) === 'boolean'? useTabs : false, typeof(useTabs) === 'boolean'? useTabs : false,
typeof(fontSize) === 'number' ? fontSize : 12); typeof(fontSize) === 'number' ? fontSize : 12,
typeof(spellcheck) === 'boolean' ? spellcheck : false);
}; };
metadataMgr.onChangeLazy(updateIndentSettings); metadataMgr.onChangeLazy(updateIndentSettings);
updateIndentSettings(); updateIndentSettings();

@ -1,2 +1,309 @@
{ {
"main_title": "CryptPad: Null innsikt, samarbeid i sanntid",
"type": {
"pad": "Rik tekst",
"code": "Kode",
"poll": "Avstemming",
"kanban": "Kanban",
"slide": "Presentasjon",
"file": "Fil",
"todo": "Oppgaver",
"contacts": "Kontakter",
"sheet": "Regneark (beta)"
},
"button_newpad": "Nytt tekstdokument",
"button_newcode": "Ny kode-pad",
"button_newpoll": "Ny avstemming",
"button_newslide": "Ny presentasjon",
"button_newwhiteboard": "Nytt whiteboard",
"button_newkanban": "Ny Kanban",
"button_newsheet": "Nytt regneark",
"common_connectionLost": "<b>Frakoblet server</b><br>Beklager, du er i lesemodus inntil vi har koblet deg opp igjen.",
"websocketError": "Beklager, vi får ikke koblet opp websocket-serveren…",
"typeError": "Dette dokumentet er ikke kompatibelt med det valgte programmet",
"onLogout": "Du er logget av, {0}klikk her{1} for å logge inn<br>eller trykk <em>Escape</em> for å se dokumentet i lesemodus.",
"wrongApp": "Beklager, vi får ikke vist økta i nettleseren din. Vennligst forsøk å laste inn siden på nytt.",
"padNotPinned": "Denne pad-en vil automatisk utgå på dato etter 3 måneder uten aktivitet, {0}logg inn{1} eller {2}registrer deg{3} for å ta vare på den.",
"anonymousStoreDisabled": "Beklager, denne CryptPad-en er ikke tilgjengelig for anonyme brukere. Vennligst logg inn for å bruke CryptDrive.",
"expiredError": "Vi beklager, denne paden har gått ut på dato og er ikke tilgjengelig.",
"deletedError": "Vi beklager, denne pad-en er sletta og er ikke lenger tilgjengelig.",
"inactiveError": "Vi beklager, denne pad-en har blitt sletta pga. inaktivitet. Vennligst trykk Esc for å lage en ny.",
"chainpadError": "Vi beklager, en kritisk feil oppstod. Denne siden er i lesemodus slik at du ikke mister arbeidet.<br>Trykk <em>Esc</em> for å fortsette, eller forsøk å laste inn sida på nytt.",
"invalidHashError": "Vi beklager, dokumentet du ba om har en ugyldig link.",
"errorCopy": " Du kan ta vare på dette innholdet ved å trykke <em>Esc</em>.<br>Om du forlater denne sida er innholdet borte!",
"errorRedirectToHome": "Trykk <em>Esc</em> for å videresendes til din CryptDrive.",
"newVersionError": "Jej, en en ny versjon av CryptPad er her.<br><a href='#'>Last inn</a> eller trykk Esc for å redigere innholdet i <b>offline modus</b>.",
"loading": "Laster…",
"error": "Feil",
"saved": "Lagret",
"synced": "Alt er lagra",
"deleted": "Pad-en er sletta fra din CryptDrive",
"deletedFromServer": "Pad-en er sletta fra serveren",
"mustLogin": "Du må være innlogga for å få tilgang til denne sida",
"disabledApp": "Vi beklager, denne applikasjon er slått av. Kontakt eieren av denne pad-en om du vil vite mer.",
"realtime_unrecoverableError": "Vi beklager, noe har gått skikkelig galt. Klikk OK for å laste innholdet på nytt.",
"disconnected": "Frakoblet",
"synchronizing": "Synkroniserer",
"reconnecting": "Kobler opp igjen",
"typing": "Redigerer",
"initializing": "Setter i gang…",
"forgotten": "Flytta til papirkurven",
"errorState": "Kritisk feil: {0}",
"lag": "Treighet",
"readonly": "Skrivebeskyttet",
"anonymous": "Anonym",
"yourself": "Deg selv",
"anonymousUsers": "anonyme redigerere",
"anonymousUser": "anonym redaktør",
"users": "Brukere",
"and": "Og",
"viewer": "leser",
"viewers": "lesere",
"editor": "redigerer",
"editors": "redigerere",
"userlist_offline": "Du er frakobla, brukerlista er ikke tilgjengelig.",
"language": "Språk",
"comingSoon": "Kommer snart…",
"newVersion": "<b>CryptPad er oppdatert!</b><br>Sjekk siste nytt:<br><a href=\"https://github.com/xwiki-labs/cryptpad/releases/tag/{0}\" target=\"_blank\">Versjonsinnhold for CryptPad {0}</a>",
"upgrade": "Oppgrader",
"upgradeTitle": "Vennligst oppgrader kontoen din for å øke lagringskvota",
"upgradeAccount": "Oppgrader kontoen",
"MB": "Megabyte",
"GB": "Gigabyte",
"KB": "Kilobyte",
"supportCryptpad": "Støtt CryptPad",
"greenLight": "Alt funker fint",
"orangeLight": "Om du sitter på en treig oppkobling kan det gjøre ting litt funky",
"redLight": "Beklager, du er frakobla økta",
"pinLimitReached": "Beklager, du har brukt lagringskvota di",
"pinLimitReachedAlert": "Beklager, du har brukt opp lagringskvota di. Nye pads kan ikke lagres i CryptDriven din.<br>Du kan enten slette eksisterende pads fra CryptDriven eller <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">velge et premium abonnement</a> for å øke lagringskvota.",
"pinLimitReachedAlertNoAccounts": "Beklager, du har brukt lagringskvota di",
"pinLimitNotPinned": "Beklager, du har brukt opp lagringskvota di. <>Denne paden kan ikke lagres i din CryptDrive.",
"pinLimitDrive": "Beklager, du har brukt opp lagringskvota di. <br>Du kan desverre ikke lage nye pads.",
"moreActions": "Flere handlinger",
"importButton": "Importer",
"importButtonTitle": "Importer en pad fra en fil på maskina di",
"exportButton": "Eksporter",
"exportButtonTitle": "Eksporter denne paden til en fil lokalt på maskina di",
"exportPrompt": "Hva vil du kalle fila?",
"changeNamePrompt": "Endre navnet ditt (eller la stå blankt for å være anonym): ",
"user_rename": "Endre visningsnavnet ditt",
"user_displayName": "Visningsnavn",
"user_accountName": "Kontonavn",
"clickToEdit": "Klikk for å redigere",
"saveTitle": "Lagre denne tittelen (enter)",
"forgetButton": "Slett",
"forgetButtonTitle": "Flytt denne paden til papirkurven",
"forgetPrompt": "Om du klikker OK vil denne paden bli flytta til papirkurven. Er du sikker på det?",
"movedToTrash": "Denne paden er flytta til papirkurven.<br><a href=\"/drive/\">Gå til Driven min</a>",
"shareButton": "Del",
"shareSuccess": "Linken er kopiert",
"userListButton": "Brukerliste",
"userAccountButton": "Kontoen din",
"newButton": "Ny",
"newButtonTitle": "Lag en ny pad",
"uploadButton": "Last opp filer",
"uploadButtonTitle": "Last opp en ny fil til denne mappa",
"saveTemplateButton": "Lagre som mal",
"saveTemplatePrompt": "Velg et navn på malen",
"templateSaved": "Malen er lagra!",
"selectTemplate": "Velg en mal eller trykk escape",
"useTemplate": "Vil du starte fra en mal?",
"useTemplateOK": "Velg en mal (Enter)",
"useTemplateCancel": "Start fra nytt (Esc)",
"template_import": "Importer en mal",
"template_empty": "Ingen mal du kan velge fra",
"previewButtonTitle": "Vis eller skjul Markdown forhåndsvisning",
"presentButtonTitle": "Gå i presentasjonsmodus",
"backgroundButtonTitle": "Endre bakgrunnsfargen til presentasjonen",
"colorButtonTitle": "Endre tekstfargen i presentasjonsmodus",
"propertiesButton": "Egenskaper",
"propertiesButtonTitle": "Se pad-egenskapene",
"printText": "Skriv ut",
"printButton": "Skriv ut (enter)",
"printButtonTitle2": "Skriv ut dokumentet eller eksporter til PDF",
"printOptions": "Layout-valg",
"printSlideNumber": "Vis slide-nummeret",
"printDate": "Vis datoen",
"printTitle": "Vis pad-tittelen",
"printCSS": "Egne stilformater (CSS):",
"printTransition": "Slå på overgangsanimasjoner",
"printBackground": "Bruk som bakgrunnsbilde",
"printBackgroundButton": "Velg et bilde",
"printBackgroundValue": "<b>Nåværende bakgrunn:</b> <em>{0}</em>",
"printBackgroundNoValue": "<em>Ingen bakgrunnsbilder å vise</em>",
"printBackgroundRemove": "Fjern dette bakgrunnsbildet",
"filePickerButton": "Legg til en fil fra din CryptDrive",
"filePicker_close": "Lukk",
"filePicker_description": "Legg til en fil fra din CryptDrive eller last opp en ny fil",
"filePicker_filter": "Filtrer filer basert på filnavn",
"or": "eller",
"tags_title": "Tags (kun for ditt bruk)",
"tags_add": "Oppdater tags for denne sida",
"tags_searchHint": "Søk med # i CryptDriven din for å finne pads med slike tags.",
"tags_notShared": "Dine tags deles ikke med andre brukerer",
"tags_duplicate": "Dupliser tag:{0}",
"tags_noentry": "Du kan ikke tagge en sletta pad!",
"slideOptionsText": "Valg",
"slideOptionsTitle": "Mekk på dine slides",
"slideOptionsButton": "Lagre (Enter)",
"slide_invalidLess": "Ugyldig custom-stil",
"languageButton": "Språk",
"languageButtonTitle": "Velg språket du vil bruke for kodefarge",
"themeButton": "Tema",
"themeButtonTitle": "Velg fargetema du vil bruke når du redigerer kode og presentasjoner",
"editShare": "Redigerer link",
"editShareTitle": "Kopier link",
"editOpenTitle": "Åpne denne paden i redigeringsmodus i en ny fane",
"viewShare": "Linken kan bare leses",
"viewShareTitle": "Kopier lesbar link",
"viewOpen": "Åpne link i lesemodus i ny fane",
"viewOpenTitle": "Åpne denne paden i lesemodus i en ny fane",
"fileShare": "Kopier linken",
"getEmbedCode": "Hent innlagt kode",
"viewEmbedTitle": "Legg inn paden i en ekstern side",
"canvas_width": "Bredde",
"canvas_opacity": "Gjennomsiktighet",
"canvas_opacityLabel": "Gjennomsiktighet:{0}",
"canvas_widthLabel": "Bredde: {0}",
"canvas_saveToDrive": "Lagre dette bildet som en fil i CryptDriven",
"canvas_currentBrush": "Gjeldende pensel",
"canvas_chooseColor": "Velg farge",
"canvas_imageEmbed": "Legg til et bilde fra datamaskina di",
"profileButton": "Profil",
"profile_urlPlaceholder": "Link",
"profile_namePlaceholder": "Profilvisningsnavn",
"profile_upload": " Last opp en ny avatar",
"profile_uploadSizeError": "Beklager, avataren må være mindre enn {0}",
"sharedFolders_create_password": "Mappepassord",
"sharedFolders_share": "Del denne linken med andre registrerte brukere for å gi dem tilgang. Når de åpner linken så vil denne delte mappa legges i deres CryptDrive.",
"chrome68": "Det ser ut som du bruker Chrome eller Chromium versjon 68. Denne nettlesern inneholder en bug som gjør at enkelte sider blir hvite. Bytt til en annen fane eller forsøk å scrolle i siden.",
"autostore_file": "fil",
"autostore_sf": "mappe",
"autostore_pad": "",
"autostore_notstored": "Denne {0} er ikke i CryptDriven din. Vil du lagre den?",
"autostore_settings": "Du kan slå på automatisk lagring i <a href=\"/settings/\">1Setting</a>2 sida!",
"autostore_store": "Lager",
"autostore_hide": "Ikke lagre",
"autostore_error": "Beklager, vi greier ikke å lagre paden, vennligst forsøk igjen.",
"autostore_saved": "Denne paden ble lagra i CryptDriven din!",
"autostore_forceSave": "Lagre fila i CryptDriven",
"autostore_notAvailable": "Du må lagre paden i CryptDriven før du kan bruke denne funksjonen.",
"crowdfunding_home1": "CryptPad trenger hjelp fra deg!",
"crowdfunding_home2": "Trykk på knappen for å finne ut mer om folkefinansieringspakka vår.",
"crowdfunding_button": "Støtt CryptPad",
"crowdfunding_popup_yes": "Gå til OpenCollective",
"crowdfunding_popup_no": "Ikke nå",
"crowdfunding_popup_never": "Ikke spør igjen takk",
"markdown_toc": "Innhold",
"fm_expirablePad": "Denne paden vill utgå på dato den {0}",
"admin_authError": "Kun admin-tilgang",
"admin_cat_general": "Generelt",
"admin_cat_stats": "Statistikk",
"adminPage": "Administrasjon",
"admin_activeSessionsTitle": "Aktive tilkoblinger",
"admin_activeSessionsHint": "Antall aktive websockets (og unike IP-adresser tilkobla)",
"admin_activePadsTitle": "Aktive pads",
"admin_activePadsHint": "Antall unike dokumenter som er åpne akkurat nå",
"admin_registeredTitle": "Registrerte brukere",
"admin_registeredHint": "Antall registrerte brukere på din økt",
"admin_updateLimitTitle": "Oppdater brukerkvoter",
"admin_updateLimitHint": "Å tvinge gjennom en oppdatering av lagringskvoter kan gjøres når som helst, men er kun nødvendig om det oppstår en feil",
"admin_updateLimitButton": "Oppdater kvoter",
"admin_updateLimitDone": "Oppdatering gjennomført",
"admin_flushCacheTitle": "Tøm HTTP cache",
"admin_flushCacheHint": "Tving brukerne til å laste ned siste oppdatering (kun hvis serveren er i \"fresh mode\")",
"admin_flushCacheButton": "Tøm mellomlager (cache)",
"admin_flushCacheDone": "Mellomlageret (cache) ble tømt",
"footer_product": "Produktet",
"footer_team": "Laget",
"footer_donate": "Doner",
"footer_legal": "Juridisk",
"footer_tos": "Betingelser",
"contact_admin": "Kontakt administratorne",
"contact_adminHint": "For problemer med kontoen, lagringsgrenser eller tilgang generelt.",
"contact_dev": "Kontakt utviklerne",
"contact_devHint": "For å sende inn forslag, forbedringer eller takksigelser.",
"contact_bug": "Feilrapport",
"contact_email": "Epost",
"profile_uploadTypeError": "Feilmelding: avatartypen er desverre ikke tillatt. Tillatte typer er: {0}",
"profile_error": "Det oppstod en feil med den nye profilen din: {0}",
"profile_register": "Vennligst logg inn for å lage en profil!",
"profile_create": "Lag en ny profil",
"profile_description": "Beskrivelse",
"profile_fieldSaved": "Ny verdi er lagret:{0}",
"profile_inviteButton": "Koble til",
"profile_inviteButtonTitle": "Lag en invitasjonslink til denne brukeren.",
"profile_inviteExplanation": "Om du klikker <strong>OK</strong> vil vi lage en link til en sikker meldingsøkt som <em>bare {0} kan hente.</em><br><br>Linken kan deles fritt fra utklippstavla di.",
"profile_viewMyProfile": "Se profilen min",
"userlist_addAsFriendTitle": "Legg til \"{0}\" som ny kontakt",
"userlist_thisIsYou": "Dette er deg (\"{0}\")",
"userlist_pending": "Venter…",
"contacts_title": "Kontakter",
"contacts_addError": "Beklager feil, kontakten ble ikke lagt til i lista",
"contacts_added": "Kontaktinvitasjon er akseptert.",
"contacts_rejected": "Kontaktinvitasjonen ble avvist",
"contacts_request": "<em>{0}</em> vil legge deg til som ny kontakt. <b>Akseptere<b>?",
"contacts_remove": "Fjern denne kontakten",
"contacts_confirmRemove": "Er du sikker på at du vil fjerne <em>{0}</em> fra kontaktlista di?",
"contacts_typeHere": "Skriv en melding her…",
"contacts_warning": "Alt du skriver her kan sees av alle fremtidige brukere av denne paden. Vær forsiktig med å dele sensitiv informasjon!",
"contacts_info1": "Dette er dine kontakter. Herfra kan du:",
"contacts_info2": "Klikk på en kontakt for å snakke",
"contacts_info3": "Dobbeltklikk for å se profilen",
"contacts_info4": "Alle deltagere kan slette meldingsloggen",
"contacts_removeHistoryTitle": "Slett meldingsloggen",
"contacts_confirmRemoveHistory": "Er du sikker på at du vil slette meldingsloggen? Du kan ikke få tilbake meldingene",
"contacts_removeHistoryServerError": "Beklager feil, vi greidde ikke å slette meldingsloggen, vennligst forsøk igjen",
"contacts_fetchHistory": "Hent mer historikk",
"contacts_friends": "Venner",
"contacts_rooms": "Rom",
"contacts_leaveRoom": "Forlat rommet",
"contacts_online": "En annen romkamerat er online",
"debug_getGraph": "Hent koden for å lage en graf fra dette dokumentet",
"debug_getGraphWait": "Lager graf… vennligst vent.",
"debug_getGraphText": "Her er DOT-koden for å lage en graf av dokumenthistorikken:",
"fm_rootName": "Dokumenter",
"fm_trashName": "Papirkurv",
"fm_unsortedName": "Usorterte filer",
"fm_filesDataName": "Alle filer",
"fm_templateName": "Maler",
"fm_searchName": "Søk",
"fm_recentPadsName": "Nylig brukte pads",
"fm_ownedPadsName": "Dine",
"fm_tagsName": "Tagger",
"fm_sharedFolderName": "Delt mappe",
"fm_searchPlaceholder": "Søk…",
"fm_newButton": "Ny",
"fm_newButtonTitle": "Lag en ny pad eller mappe, importer fila til denne mappa",
"fm_newFolder": "Ny mappe",
"fm_newFile": "Ny pad",
"fm_folder": "Mappe",
"fm_sharedFolder": "Delt mappe",
"fm_folderName": "Mappenavn",
"fm_numberOfFolders": "# mapper",
"fm_numberOfFiles": "# filer",
"fm_fileName": "Filnavn",
"fm_title": "Tittel",
"fm_lastAccess": "Siste tilgang",
"fm_creation": "Skaperverk",
"fm_forbidden": "Ulovlig handling",
"fm_originalPath": "Original filsti",
"fm_openParent": "Vis i mappe",
"fm_noname": "Dokument uten navn",
"fm_emptyTrashDialog": "Er du sikker på at du vil tømme papirkurven?",
"fm_removeSeveralPermanentlyDialog": "Er du helt sikker på at du vil slette {0} ting fra CryptDriven din?",
"fm_removePermanentlyNote": "Dine pads vil slettes fra serveren om du velger å fortsette.",
"fm_removePermanentlyDialog": "Er du helt sikker på at du vil slette den tingen fra CryptDriven din?",
"fm_removeSeveralDialog": "Er du sikker på at du vil slette disse {0} tingene?",
"fm_removeDialog": "Er du sikker på at du vil legge {0} i papirkurven?",
"fm_deleteOwnedPad": "Er du helt sikker på at du vil slette denne paden fra serveren?",
"fm_deleteOwnedPads": "Er du helt sikker på at du vil fjerne disse padene fra serveren?",
"fm_restoreDialog": "Er du sikker på at du vil legge {0} tilbake?",
"fm_unknownFolderError": "Mappa du har valgt eksisterer desverre ikke lenger. Vi åpner mappa over…",
"fm_contextMenuError": "Beklager, vi får ikke til å åpne kontekstmenyen for den tingen. Om feilen vedvarer vennligst last inn nettsida på nytt.",
"fm_selectError": "Beklager vi får ikke til å velge elementet du ønsker. Om problemet vedvarer vennligst forsøk å laste inn sida på nytt.",
"fm_categoryError": "Beklager vi får ikke til å åpne kategorien du har valgt, vi viser rotmappa nå.",
"fm_info_root": "Her kan du lage så mange undermapper du ønsker.",
"fm_info_unsorted": "Inneholder alle filer du har besøkt som enda ikke er lagt til i \"Dokumenter\" eller er flytta til \"Papirkurven\"."
} }

@ -461,5 +461,58 @@
"profile_inviteButtonTitle": "Crează un link prin care să inviți acest utilizator să se conecteze cu tine.", "profile_inviteButtonTitle": "Crează un link prin care să inviți acest utilizator să se conecteze cu tine.",
"profile_inviteExplanation": "Dând click pe <strong>OK</strong> va crea un link către o sesiune de mesagerie securizată pe care <em>numai {0} o vor putea reda.</em><br><br>Linkul va fi copiat către memoria temporară locală și poate fi distribuit public.", "profile_inviteExplanation": "Dând click pe <strong>OK</strong> va crea un link către o sesiune de mesagerie securizată pe care <em>numai {0} o vor putea reda.</em><br><br>Linkul va fi copiat către memoria temporară locală și poate fi distribuit public.",
"userlist_addAsFriendTitle": "Adaugă \"{0}\" în lista de contacte", "userlist_addAsFriendTitle": "Adaugă \"{0}\" în lista de contacte",
"userlist_thisIsYou": "Acesta ești tu (\"{0}\")" "userlist_thisIsYou": "Acesta ești tu (\"{0}\")",
"canvas_currentBrush": "Culoarea curentă",
"profile_viewMyProfile": "Vizualizare profil",
"userlist_pending": "Așteaptă...",
"contacts_title": "Contacte",
"contacts_addError": "A apărut o eroare în timpul adăugării la lista de contacte",
"contacts_added": "Invitația din partea contactului acceptată",
"contacts_rejected": "Invitația din partea contactului refuzată",
"contacts_request": "<em>{0}</em> ar dori să vă adauge la lista de contacte. <b>Acceptati<b>?",
"contacts_send": "Trimite",
"contacts_remove": "Șterge acest contact",
"contacts_confirmRemove": "Ești sigur ca vrei să-l ștergi pe <em>1{0}</em>2 din lista de contacte?",
"contacts_typeHere": "Scrie un mesaj aici...",
"contacts_warning": "Tot ce scrii aici va rămâne și va fi vizibil pentru toți utilizatorii curenți și viitori ai acestui pad. Ai grijă la informațiile confidențiale!",
"contacts_padTitle": "Chat",
"contacts_info1": "Acestea sunt contactele tale. De aici, poți:",
"contacts_info2": "Dă click pe iconița contactului tău pentru a începe un chat cu el",
"contacts_info3": "Dă dublu-click pe iconița contactului pentru a-i vizualiza profilul",
"contacts_info4": "Ambii participanți pot șterge definitiv istoricul unui chat",
"contacts_removeHistoryTitle": "Șterge istoricul chat-ului",
"contacts_confirmRemoveHistory": "Ești sigur că vrei să ștergi definitiv istoricul chat-ului? Datele nu vor putea fi recuperate",
"contacts_removeHistoryServerError": "A apărut o eroare în timpul ștergerii istoricului chat-ului. Te rugăm să încerci mai târziu",
"contacts_fetchHistory": "Recuperează istoricul mai vechi",
"contacts_friends": "Prieteni",
"contacts_rooms": "Camere",
"contacts_leaveRoom": "Părăsește această cameră",
"contacts_online": "Un alt utilizator din această cameră este online",
"debug_getGraph": "Obține codul pentru a genera un grafic al acestui document",
"debug_getGraphWait": "Generarea graficului este în curs...Te rugăm să aștepți",
"debug_getGraphText": "Acesta este codul DOT pentru a genera un grafic al istoricului documentului",
"fm_recentPadsName": "Pad-uri recente",
"fm_ownedPadsName": "Pad-urile mele",
"fm_tagsName": "Etichete",
"fm_sharedFolderName": "Dosar partajat",
"fm_sharedFolder": "Dosar partajat",
"fm_removePermanentlyNote": "Pad-urile tale vor fi șterse de pe server dacă vei continua",
"fm_deleteOwnedPad": "Ești sigur că vrei să ștergi definitiv acest pad de pe server?",
"fm_deleteOwnedPads": "Ești sigur că vrei să ștergi definitiv aceste pad-uri de pe server?",
"fm_info_recent": "Listează pad-urile deschise sau modificate recent",
"fm_info_sharedFolder": "Acesta este un dosar partajat. Deoarece nu ești logat, îl poți vizualiza doar în modul citire.<br><a href=\"/register/\">Înscrie-te</a> sau <a href=\"/loghează-te/\">Log in</a> pentru a-l putea importa in CryptDrive-ul tău si a-l modifica.",
"fm_info_owned": "Ești proprietarul pad-urilor afișate aici. Acest lucru înseamna că le poți șterge definitiv de pe server oricând vei dori. Dacă decizi să le ștergi, alți utilizatori nu le vor mai putea accesa.",
"fm_error_cantPin": "O eroare internă de server a apărut. Te rugăm să reîncarci pagina și să încerci din nou.",
"fm_viewListButton": "Vizualizează sub formă de listă",
"fm_viewGridButton": "Vizualizează în mod grilă",
"fm_renamedPad": "Ai setat un nume personalizat pentru acest pad. Titlul oficial este:<br><b>{0}</b>",
"fm_canBeShared": "Acest dosar poate fi partajat",
"fm_prop_tagsList": "Etichete",
"fm_burnThisDriveButton": "Șterge toate informațiile păstrate de CryptPad in browserul tău",
"fm_burnThisDrive": "Ești sigur că vrei să ștergi toate informațiile păstrate de CryptPad în browserul tău?<br>Această actiune va înlătura CryptPad și istoricul său din browserul tău, dar pad-urile tale vor fi păstrate (criptate) pe serverul nostru.",
"fm_padIsOwned": "Ești proprietarul acestui pad",
"fm_padIsOwnedOther": "Acest pad îi aparține altui utilizator",
"fm_deletedPads": "Aceste pad-uri nu mai există pe server, au fost șterse din CryptDrive: {0}",
"fm_tags_name": "Numele etichetei",
"fm_tags_used": "Numărul de utilizări"
} }

@ -317,5 +317,6 @@
"kanban_item": "Элемент {0}", "kanban_item": "Элемент {0}",
"poll_p_encryption": "Все ваши данные зашифрованы, доступ к ним имеют только пользователи, имеющие доступ к этой ссылке. Даже сервер не видит, что вы меняете.", "poll_p_encryption": "Все ваши данные зашифрованы, доступ к ним имеют только пользователи, имеющие доступ к этой ссылке. Даже сервер не видит, что вы меняете.",
"wizardLog": "Нажмите кнопку в левом верхнем углу, чтобы вернуться к опросу", "wizardLog": "Нажмите кнопку в левом верхнем углу, чтобы вернуться к опросу",
"poll_bookmark_col": "Добавить этот столбец в закладку, чтобы он всегда был разблокирован и отображался для вас в начале" "poll_bookmark_col": "Добавить этот столбец в закладку, чтобы он всегда был разблокирован и отображался для вас в начале",
"poll_bookmarked_col": "Это твоя колонка закладок. Она всегда будет разблокирована и отображаться для вас в начале."
} }

@ -85,6 +85,7 @@ define([
'cp-settings-code-indent-unit', 'cp-settings-code-indent-unit',
'cp-settings-code-indent-type', 'cp-settings-code-indent-type',
'cp-settings-code-font-size', 'cp-settings-code-font-size',
'cp-settings-code-spellcheck',
], ],
'subscription': { 'subscription': {
onClick: function () { onClick: function () {
@ -1467,6 +1468,44 @@ define([
return $div; return $div;
}; };
create['code-spellcheck'] = function () {
var $div = $('<div>', {
'class': 'cp-settings-code-spellcheck cp-sidebarlayout-element'
});
$('<label>').text(Messages.settings_codeSpellcheckTitle).appendTo($div);
//$('<span>', {'class': 'cp-sidebarlayout-description'})
// .text(Messages.settings_padSpellcheckHint).appendTo($div);
var $ok = $('<span>', {'class': 'fa fa-check', title: Messages.saved});
var $spinner = $('<span>', {'class': 'fa fa-spinner fa-pulse'});
var $cbox = $(UI.createCheckbox('cp-settings-code-spellcheck',
Messages.settings_codeSpellcheckLabel,
false, { label: {class: 'noTitle'} }));
var $checkbox = $cbox.find('input').on('change', function () {
$spinner.show();
$ok.hide();
var val = $checkbox.is(':checked');
common.setAttribute(['codemirror', 'spellcheck'], val, function () {
$spinner.hide();
$ok.show();
});
});
$cbox.appendTo($div);
$ok.hide().appendTo($cbox);
$spinner.hide().appendTo($cbox);
common.getAttribute(['codemirror', 'spellcheck'], function (e, val) {
if (e) { return void console.error(e); }
if (val) {
$checkbox.attr('checked', 'checked');
}
});
return $div;
};
// Settings app // Settings app
var createUsageButton = function () { var createUsageButton = function () {

Loading…
Cancel
Save