Synchronize localizations from Transifex

Update package.json dependencies
Fix eslint errors
webpack 2 -> webpack 3
This commit is contained in:
RainLoop Team 2017-06-24 22:26:27 +03:00
parent 36dbe0defd
commit 8da988fef2
34 changed files with 888 additions and 757 deletions

1
.cmds
View file

@ -8,7 +8,6 @@ tx pull -a
# dependencies checker (checking only) # dependencies checker (checking only)
yarn outdated yarn outdated
npm-check --skip-unused --save-exact
# webpack # webpack
webpack --color --watch webpack --color --watch

View file

@ -1,9 +1,6 @@
module.exports = { module.exports = {
'extends': 'eslint:recommended', 'extends': 'eslint:recommended',
'ecmaFeatures': {
'modules': true
},
"parser": "babel-eslint", "parser": "babel-eslint",
'parserOptions': { 'parserOptions': {
'ecmaVersion': 6, 'ecmaVersion': 6,
@ -173,13 +170,9 @@ module.exports = {
'id-blacklist': [2, 'x'], 'id-blacklist': [2, 'x'],
'id-length': [2, {'min': 1, 'max': 50}], 'id-length': [2, {'min': 1, 'max': 50}],
'id-match': 2, 'id-match': 2,
'indent': [2, 'tab', { 'indent': ['error', 'tab', {
'SwitchCase': 1, 'SwitchCase': 1,
'VariableDeclarator': { 'VariableDeclarator': 1
'var': 1,
'let': 1,
'const': 1
}
}], }],
'jsx-quotes': 2, 'jsx-quotes': 2,
'key-spacing': 2, 'key-spacing': 2,

View file

@ -1 +1 @@
Rename this file to "MULTIPLY" to enable multiple domain installation Name this file as "MULTIPLY" to enable multiple domain installation.

View file

@ -1,6 +1,6 @@
<?php <?php
// Rename this file to "include.php" to enable it. // Name this file as "include.php" to enable it.
/** /**
* @return string * @return string

View file

@ -91,15 +91,15 @@ class AbstractApp extends AbstractBoot
} }
}, Magics.Time50ms)); }, Magics.Time50ms));
// DEBUG // DEBUG
// Events.sub({ // Events.sub({
// 'window.resize': function() { // 'window.resize': function() {
// window.console.log('window.resize'); // window.console.log('window.resize');
// }, // },
// 'window.resize.real': function() { // 'window.resize.real': function() {
// window.console.log('window.resize.real'); // window.console.log('window.resize.real');
// } // }
// }); // });
$doc.on('keydown', (event) => { $doc.on('keydown', (event) => {
if (event && event.ctrlKey) if (event && event.ctrlKey)
@ -313,7 +313,7 @@ class AbstractApp extends AbstractBoot
ko.components.register('Date', require('Component/Date').default); ko.components.register('Date', require('Component/Date').default);
ko.components.register('x-script', require('Component/Script').default); ko.components.register('x-script', require('Component/Script').default);
// ko.components.register('svg-icon', require('Component/SvgIcon').default); // ko.components.register('svg-icon', require('Component/SvgIcon').default);
if (Settings.appSettingsGet('materialDesign') && bAnimationSupported) if (Settings.appSettingsGet('materialDesign') && bAnimationSupported)
{ {
@ -322,8 +322,8 @@ class AbstractApp extends AbstractBoot
} }
else else
{ {
// ko.components.register('Checkbox', require('Component/Classic/Checkbox').default); // ko.components.register('Checkbox', require('Component/Classic/Checkbox').default);
// ko.components.register('CheckboxSimple', require('Component/Classic/Checkbox').default); // ko.components.register('CheckboxSimple', require('Component/Classic/Checkbox').default);
ko.components.register('Checkbox', require('Component/Checkbox').default); ko.components.register('Checkbox', require('Component/Checkbox').default);
ko.components.register('CheckboxSimple', require('Component/Checkbox').default); ko.components.register('CheckboxSimple', require('Component/Checkbox').default);
} }

View file

@ -192,7 +192,8 @@ class AppUser extends AbstractApp
} }
MessageStore.messageListLoading(true); MessageStore.messageListLoading(true);
Remote.messageList((sResult, oData, bCached) => { Remote.messageList(
(sResult, oData, bCached) => {
if (StorageResultType.Success === sResult && oData && oData.Result) if (StorageResultType.Success === sResult && oData && oData.Result)
{ {
@ -215,8 +216,13 @@ class AppUser extends AbstractApp
); );
} }
}, FolderStore.currentFolderFullNameRaw(), iOffset, SettingsStore.messagesPerPage(), },
MessageStore.messageListSearch(), MessageStore.messageListThreadUid()); FolderStore.currentFolderFullNameRaw(),
iOffset,
SettingsStore.messagesPerPage(),
MessageStore.messageListSearch(),
MessageStore.messageListThreadUid()
);
} }
recacheInboxMessageList() { recacheInboxMessageList() {
@ -524,32 +530,32 @@ class AppUser extends AbstractApp
accountsCounts() { accountsCounts() {
return false; return false;
// AccountStore.accounts.loading(true); // AccountStore.accounts.loading(true);
// //
// Remote.accountsCounts((sResult, oData) => { // Remote.accountsCounts((sResult, oData) => {
// //
// AccountStore.accounts.loading(false); // AccountStore.accounts.loading(false);
// //
// if (StorageResultType.Success === sResult && oData.Result && oData.Result['Counts']) // if (StorageResultType.Success === sResult && oData.Result && oData.Result['Counts'])
// { // {
// var // var
// sEmail = AccountStore.email(), // sEmail = AccountStore.email(),
// aAcounts = AccountStore.accounts() // aAcounts = AccountStore.accounts()
// ; // ;
// //
// _.each(oData.Result['Counts'], (oItem) => { // _.each(oData.Result['Counts'], (oItem) => {
// //
// var oAccount = _.find(aAcounts, (oAccount) => { // var oAccount = _.find(aAcounts, (oAccount) => {
// return oAccount && oItem[0] === oAccount.email && sEmail !== oAccount.email; // return oAccount && oItem[0] === oAccount.email && sEmail !== oAccount.email;
// }); // });
// //
// if (oAccount) // if (oAccount)
// { // {
// oAccount.count(pInt(oItem[1])); // oAccount.count(pInt(oItem[1]));
// } // }
// }); // });
// } // }
// }); // });
} }
accountsAndIdentities(bBoot) { accountsAndIdentities(bBoot) {
@ -1299,7 +1305,7 @@ class AppUser extends AbstractApp
{ {
this.setWindowTitle(i18n('TITLES/LOADING')); this.setWindowTitle(i18n('TITLES/LOADING'));
// require.ensure([], function() { // require code splitting // require.ensure([], function() { // require code splitting
this.foldersReload((value) => { this.foldersReload((value) => {
@ -1362,7 +1368,7 @@ class AppUser extends AbstractApp
startScreens([ startScreens([
MailBoxUserScreen, MailBoxUserScreen,
Settings.capa(Capa.Settings) ? SettingsUserScreen : null Settings.capa(Capa.Settings) ? SettingsUserScreen : null
// false ? AboutUserScreen : null // false ? AboutUserScreen : null
]); ]);
if (allowGoogle || allowFacebook || allowTwitter) if (allowGoogle || allowFacebook || allowTwitter)
@ -1444,8 +1450,7 @@ class AppUser extends AbstractApp
} }
}); });
// }); // require code splitting // }); // require code splitting
} }
} }
else else

View file

@ -1,7 +1,6 @@
import window from 'window'; import window from 'window';
import progressJs from 'progressJs'; import progressJs from 'progressJs';
import Promise from 'Promise';
import {jassl} from 'Common/Jassl'; import {jassl} from 'Common/Jassl';
import {getHash, setHash, clearHash} from 'Storage/RainLoop'; import {getHash, setHash, clearHash} from 'Storage/RainLoop';
@ -226,28 +225,30 @@ function runApp()
p.setOptions({theme: 'rainloop'}); p.setOptions({theme: 'rainloop'});
p.start().set(5); p.start().set(5);
const const libs = jassl(appData.StaticLibJsLink).then(() => {
libs = jassl(appData.StaticLibJsLink).then(() => {
if (window.$) if (window.$)
{ {
window.$('#rl-check').remove(); window.$('#rl-check').remove();
if (appData.IncludeBackground) if (appData.IncludeBackground)
{ {
window.$('#rl-bg').attr('style', 'background-image: none !important;') window.$('#rl-bg')
.backstretch(appData.IncludeBackground.replace('{{USER}}', .attr('style', 'background-image: none !important;')
(window.__rlah ? (window.__rlah() || '0') : '0')), {fade: 100, centeredX: true, centeredY: true}) .backstretch(
appData.IncludeBackground.replace('{{USER}}', (window.__rlah ? (window.__rlah() || '0') : '0')),
{fade: 100, centeredX: true, centeredY: true}
)
.removeAttr('style'); .removeAttr('style');
} }
} }
}), });
common = Promise.all([
// jassl('https://code.jquery.com/jquery-migrate-3.0.0.js'), const common = window.Promise.all([
jassl(appData.TemplatesLink), jassl(appData.TemplatesLink),
jassl(appData.LangLink) jassl(appData.LangLink)
]); ]);
Promise.all([libs, common]) window.Promise.all([libs, common])
.then(() => { .then(() => {
p.set(30); p.set(30);
return jassl(useJsNextBundle ? appData.StaticAppJsNextLink : appData.StaticAppJsLink); return jassl(useJsNextBundle ? appData.StaticAppJsNextLink : appData.StaticAppJsLink);

View file

@ -1,6 +1,5 @@
import window from 'window'; import window from 'window';
import Promise from 'Promise';
// let rainloopCaches = window.caches && window.caches.open ? window.caches : null; // let rainloopCaches = window.caches && window.caches.open ? window.caches : null;
@ -11,7 +10,7 @@ import Promise from 'Promise';
*/ */
export function jassl(src, async = false) { export function jassl(src, async = false) {
if (!Promise || !Promise.all) if (!window.Promise || !window.Promise.all)
{ {
throw new Error('Promises are not available your environment.'); throw new Error('Promises are not available your environment.');
} }
@ -21,7 +20,7 @@ export function jassl(src, async = false) {
throw new Error('src should not be empty.'); throw new Error('src should not be empty.');
} }
return new Promise((resolve, reject) => { return new window.Promise((resolve, reject) => {
const element = window.document.createElement('script'); const element = window.document.createElement('script');

View file

@ -8,7 +8,6 @@ import {pInt, isUnd, isNull, has, microtime, inArray} from 'Common/Utils';
import {$html, bAnimationSupported} from 'Common/Globals'; import {$html, bAnimationSupported} from 'Common/Globals';
import {reload as momentorReload} from 'Common/Momentor'; import {reload as momentorReload} from 'Common/Momentor';
import {langLink} from 'Common/Links'; import {langLink} from 'Common/Links';
import Promise from 'Promise';
let I18N_DATA = window.rainloopI18N || {}; let I18N_DATA = window.rainloopI18N || {};
@ -304,7 +303,7 @@ export function reload(admin, language)
$html.addClass('rl-changing-language'); $html.addClass('rl-changing-language');
return new Promise((resolve, reject) => { return new window.Promise((resolve, reject) => {
$.ajax({ $.ajax({
url: langLink(language, admin), url: langLink(language, admin),
dataType: 'script', dataType: 'script',
@ -319,7 +318,7 @@ export function reload(admin, language)
$html $html
.removeClass('rl-changing-language') .removeClass('rl-changing-language')
.removeClass('rl-rtl rl-ltr') .removeClass('rl-rtl rl-ltr')
// .attr('dir', isRtl ? 'rtl' : 'ltr') // .attr('dir', isRtl ? 'rtl' : 'ltr')
.addClass(isRtl ? 'rl-rtl' : 'rl-ltr'); .addClass(isRtl ? 'rl-rtl' : 'rl-ltr');
resolve(); resolve();

View file

@ -763,13 +763,13 @@ export function htmlToPlain(html)
text = ''; text = '';
const const convertBlockquote = (blockquoteText) => {
convertBlockquote = (blockquoteText) => {
blockquoteText = '> ' + trim(blockquoteText).replace(/\n/gm, '\n> '); blockquoteText = '> ' + trim(blockquoteText).replace(/\n/gm, '\n> ');
return blockquoteText.replace(/(^|\n)([> ]+)/gm, return blockquoteText.replace(/(^|\n)([> ]+)/gm,
(...args) => (args && 2 < args.length ? args[1] + trim(args[2].replace(/[\s]/g, '')) + ' ' : '')); (...args) => (args && 2 < args.length ? args[1] + trim(args[2].replace(/[\s]/g, '')) + ' ' : ''));
}, };
convertDivs = (...args) => {
const convertDivs = (...args) => {
if (args && 1 < args.length) if (args && 1 < args.length)
{ {
let divText = trim(args[1]); let divText = trim(args[1]);
@ -783,7 +783,9 @@ export function htmlToPlain(html)
} }
return ''; return '';
}, };
const
convertPre = (...args) => (args && 1 < args.length ? args[1].toString().replace(/[\n]/gm, '<br />').replace(/[\r]/gm, '') : ''), convertPre = (...args) => (args && 1 < args.length ? args[1].toString().replace(/[\n]/gm, '<br />').replace(/[\r]/gm, '') : ''),
fixAttibuteValue = (...args) => (args && 1 < args.length ? '' + args[1] + _.escape(args[2]) : ''), fixAttibuteValue = (...args) => (args && 1 < args.length ? '' + args[1] + _.escape(args[2]) : ''),
convertLinks = (...args) => (args && 1 < args.length ? trim(args[1]) : ''); convertLinks = (...args) => (args && 1 < args.length ? trim(args[1]) : '');
@ -935,7 +937,7 @@ export function plainToHtml(plain, findEmailAndLinksInText = false)
plain = aText.join('\n'); plain = aText.join('\n');
plain = plain plain = plain
// .replace(/~~~\/blockquote~~~\n~~~blockquote~~~/g, '\n') // .replace(/~~~\/blockquote~~~\n~~~blockquote~~~/g, '\n')
.replace(/&/g, '&amp;') .replace(/&/g, '&amp;')
.replace(/>/g, '&gt;').replace(/</g, '&lt;') .replace(/>/g, '&gt;').replace(/</g, '&lt;')
.replace(/~~~blockquote~~~[\s]*/g, '<blockquote>') .replace(/~~~blockquote~~~[\s]*/g, '<blockquote>')
@ -1037,7 +1039,7 @@ export function folderListOptionsBuilder(aSystem, aList, aDisabled, aHeaderLines
for (iIndex = 0, iLen = aList.length; iIndex < iLen; iIndex++) for (iIndex = 0, iLen = aList.length; iIndex < iLen; iIndex++)
{ {
oItem = aList[iIndex]; oItem = aList[iIndex];
// if (oItem.subScribed() || !oItem.existen || bBuildUnvisible) // if (oItem.subScribed() || !oItem.existen || bBuildUnvisible)
if ((oItem.subScribed() || !oItem.existen || bBuildUnvisible) && (oItem.selectable || oItem.hasSubScribedSubfolders())) if ((oItem.subScribed() || !oItem.existen || bBuildUnvisible) && (oItem.selectable || oItem.hasSubScribedSubfolders()))
{ {
if (fVisibleCallback ? fVisibleCallback(oItem) : true) if (fVisibleCallback ? fVisibleCallback(oItem) : true)

View file

@ -23,9 +23,11 @@ class ScriptComponent extends AbstractComponent
{ {
params.element.text(''); params.element.text('');
params.element.replaceWith( params.element.replaceWith(
$(script).text(params.component.templateNodes[0] && $(script).text(
params.component.templateNodes[0].nodeValue ? params.component.templateNodes[0] && params.component.templateNodes[0].nodeValue ?
params.component.templateNodes[0].nodeValue : '')); params.component.templateNodes[0].nodeValue : ''
)
);
} }
else else
{ {

20
dev/External/ko.js vendored
View file

@ -73,8 +73,8 @@ ko.bindingHandlers.editor = {
fValue.subscribe(fUpdateEditorValue); fValue.subscribe(fUpdateEditorValue);
// ko.utils.domNodeDisposal.addDisposeCallback(element, () => { // ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
// }); // });
} }
} }
}; };
@ -318,8 +318,8 @@ ko.bindingHandlers.registrateBootstrapDropdown = {
require('Common/Utils').detectDropdownVisibility(); require('Common/Utils').detectDropdownVisibility();
}); });
// ko.utils.domNodeDisposal.addDisposeCallback(element, () => { // ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
// }); // });
} }
} }
}; };
@ -897,12 +897,12 @@ ko.bindingHandlers.emailsTags = {
focusCallback: fFocusCallback, focusCallback: fFocusCallback,
inputDelimiters: [',', ';', '\n'], inputDelimiters: [',', ';', '\n'],
autoCompleteSource: fAutoCompleteSource, autoCompleteSource: fAutoCompleteSource,
// elementHook: (el, item) => { // elementHook: (el, item) => {
// if (el && item) // if (el && item)
// { // {
// el.addClass('pgp'); // el.addClass('pgp');
// } // }
// }, // },
parseHook: (input) => _.map(input, (inputValue) => { parseHook: (input) => _.map(input, (inputValue) => {
const value = Utils.trim(inputValue); const value = Utils.trim(inputValue);
if ('' !== value) if ('' !== value)

View file

@ -63,21 +63,15 @@ export const staticFileType = _.memoize((ext, mimeType) => {
break; break;
case -1 < inArray(mimeTypeParts[1], [ case -1 < inArray(mimeTypeParts[1], [
'zip', '7z', 'tar', 'rar', 'gzip', 'bzip', 'bzip2', 'x-zip', 'x-7z', 'x-rar', 'x-tar', 'x-gzip', 'x-bzip', 'x-bzip2', 'x-zip-compressed', 'x-7z-compressed', 'x-rar-compressed' 'zip', '7z', 'tar', 'rar', 'gzip', 'bzip', 'bzip2', 'x-zip', 'x-7z', 'x-rar', 'x-tar', 'x-gzip', 'x-bzip', 'x-bzip2', 'x-zip-compressed', 'x-7z-compressed', 'x-rar-compressed'
]) || -1 < inArray(ext, [ ]) || -1 < inArray(ext, ['zip', '7z', 'tar', 'rar', 'gzip', 'bzip', 'bzip2']):
'zip', '7z', 'tar', 'rar', 'gzip', 'bzip', 'bzip2'
]):
result = FileType.Archive; result = FileType.Archive;
break; break;
case -1 < inArray(mimeTypeParts[1], ['pdf', 'x-pdf']) || -1 < inArray(ext, [ case -1 < inArray(mimeTypeParts[1], ['pdf', 'x-pdf']) || -1 < inArray(ext, ['pdf']):
'pdf'
]):
result = FileType.Pdf; result = FileType.Pdf;
break; break;
case -1 < inArray(mimeType, [ case -1 < inArray(mimeType, [
'application/pgp-signature', 'application/pgp-keys' 'application/pgp-signature', 'application/pgp-keys'
]) || -1 < inArray(ext, [ ]) || -1 < inArray(ext, ['asc', 'pem', 'ppk']):
'asc', 'pem', 'ppk'
]):
result = FileType.Certificate; result = FileType.Certificate;
break; break;
case -1 < inArray(mimeType, ['application/pkcs7-signature']) || case -1 < inArray(mimeType, ['application/pkcs7-signature']) ||

View file

@ -223,8 +223,7 @@ class EmailModel
return false; return false;
} }
const const substr = (str, start, len) => {
substr = (str, start, len) => {
str = pString(str); str = pString(str);
let end = str.length; let end = str.length;
@ -236,9 +235,9 @@ class EmailModel
end = 'undefined' === typeof len ? end : (0 > len ? len + end : len + start); end = 'undefined' === typeof len ? end : (0 > len ? len + end : len + start);
return start >= str.length || 0 > start || start > end ? false : str.slice(start, end); return start >= str.length || 0 > start || start > end ? false : str.slice(start, end);
}, };
substrReplace = (str, replace, start, length) => { const substrReplace = (str, replace, start, length) => {
str = pString(str); str = pString(str);
if (0 > start) if (0 > start)
{ {

View file

@ -1,6 +1,6 @@
import window from 'window';
import $ from '$'; import $ from '$';
import Promise from 'Promise';
import {ajax} from 'Common/Links'; import {ajax} from 'Common/Links';
import {microtime, isUnd, isNormal, pString, pInt, inArray} from 'Common/Utils'; import {microtime, isUnd, isNormal, pString, pInt, inArray} from 'Common/Utils';
@ -44,7 +44,7 @@ class AbstractAjaxPromises extends AbstractBasicPromises
ajaxRequest(action, isPost, timeOut, params, additionalGetString, fTrigger) { ajaxRequest(action, isPost, timeOut, params, additionalGetString, fTrigger) {
return new Promise((resolve, reject) => { return new window.Promise((resolve, reject) => {
const start = microtime(); const start = microtime();

View file

@ -1,5 +1,5 @@
import Promise from 'Promise'; import window from 'window';
import {isArray} from 'Common/Utils'; import {isArray} from 'Common/Utils';
export class AbstractBasicPromises export class AbstractBasicPromises
@ -12,11 +12,11 @@ export class AbstractBasicPromises
} }
fastResolve(mData) { fastResolve(mData) {
return Promise.resolve(mData); return window.Promise.resolve(mData);
} }
fastReject(mData) { fastReject(mData) {
return Promise.reject(mData); return window.Promise.reject(mData);
} }
setTrigger(trigger, value) { setTrigger(trigger, value) {

View file

@ -337,8 +337,7 @@ class RemoteUserAjax extends AbstractAjaxRemote
UidNext: inboxUidNext, UidNext: inboxUidNext,
UseThreads: useThreads ? '1' : '0', UseThreads: useThreads ? '1' : '0',
ThreadUid: useThreads ? sThreadUid : '' ThreadUid: useThreads ? sThreadUid : ''
}, '' === sSearch ? DEFAULT_AJAX_TIMEOUT : SEARCH_AJAX_TIMEOUT, }, '' === sSearch ? DEFAULT_AJAX_TIMEOUT : SEARCH_AJAX_TIMEOUT, '', bSilent ? [] : ['MessageList']);
'', bSilent ? [] : ['MessageList']);
} }
/** /**

View file

@ -167,7 +167,8 @@ class AbstractSettingsScreen extends AbstractScreen
routes() { routes() {
const const
DefaultViewModel = _.find(VIEW_MODELS.settings, DefaultViewModel = _.find(
VIEW_MODELS.settings,
(SettingsViewModel) => SettingsViewModel && SettingsViewModel.__rlSettingsData && SettingsViewModel.__rlSettingsData.IsDefault (SettingsViewModel) => SettingsViewModel && SettingsViewModel.__rlSettingsData && SettingsViewModel.__rlSettingsData.IsDefault
), ),
defaultRoute = DefaultViewModel && DefaultViewModel.__rlSettingsData ? DefaultViewModel.__rlSettingsData.Route : 'general', defaultRoute = DefaultViewModel && DefaultViewModel.__rlSettingsData ? DefaultViewModel.__rlSettingsData.Route : 'general',

View file

@ -23,16 +23,16 @@ class AccountUserStore
() => _.compact(_.map(this.accounts(), (item) => (item ? item.email : null)))); () => _.compact(_.map(this.accounts(), (item) => (item ? item.email : null))));
this.accountsUnreadCount = ko.computed(() => 0); this.accountsUnreadCount = ko.computed(() => 0);
// this.accountsUnreadCount = ko.computed(() => { // this.accountsUnreadCount = ko.computed(() => {
// let result = 0; // let result = 0;
// _.each(this.accounts(), (item) => { // _.each(this.accounts(), (item) => {
// if (item) // if (item)
// { // {
// result += item.count(); // result += item.count();
// } // }
// }); // });
// return result; // return result;
// }); // });
} }
populate() { populate() {

View file

@ -129,7 +129,8 @@ class FolderUserStore
{ {
folder.type(FolderType.User); folder.type(FolderType.User);
} }
}, };
const
fSetSystemFolderType = (type) => (value) => { fSetSystemFolderType = (type) => (value) => {
const folder = getFolderFromCacheList(value); const folder = getFolderFromCacheList(value);
if (folder) if (folder)

View file

@ -22,16 +22,16 @@ class TemplateUserStore
this.templatesNames(_.compact(_.map(list, (item) => (item ? item.name : null)))); this.templatesNames(_.compact(_.map(list, (item) => (item ? item.name : null))));
}); });
// this.templatesNames.subscribe((aList) => { // this.templatesNames.subscribe((aList) => {
// if (this.templatesNames.skipFirst) // if (this.templatesNames.skipFirst)
// { // {
// this.templatesNames.skipFirst = false; // this.templatesNames.skipFirst = false;
// } // }
// else if (aList && 1 < aList.length) // else if (aList && 1 < aList.length)
// { // {
// Remote.templatesSortOrder(null, aList); // Remote.templatesSortOrder(null, aList);
// } // }
// }); // });
} }
} }

View file

@ -776,14 +776,14 @@ class ComposePopupView extends AbstractViewNext
{ {
if (!this.oEditor && this.composeEditorArea()) if (!this.oEditor && this.composeEditorArea())
{ {
// _.delay(() => { // _.delay(() => {
this.oEditor = new HtmlEditor(this.composeEditorArea(), null, () => { this.oEditor = new HtmlEditor(this.composeEditorArea(), null, () => {
fOnInit(this.oEditor); fOnInit(this.oEditor);
this.resizerTrigger(); this.resizerTrigger();
}, (bHtml) => { }, (bHtml) => {
this.isHtml(!!bHtml); this.isHtml(!!bHtml);
}); });
// }, 1000); // }, 1000);
} }
else if (this.oEditor) else if (this.oEditor)
{ {
@ -996,8 +996,7 @@ class ComposePopupView extends AbstractViewNext
oMessageOrArray = oMessageOrArray || null; oMessageOrArray = oMessageOrArray || null;
if (oMessageOrArray && isNormal(oMessageOrArray)) if (oMessageOrArray && isNormal(oMessageOrArray))
{ {
message = isArray(oMessageOrArray) && message = isArray(oMessageOrArray) && 1 === oMessageOrArray.length ? oMessageOrArray[0] :
1 === oMessageOrArray.length ? oMessageOrArray[0] :
(!isArray(oMessageOrArray) ? oMessageOrArray : null); (!isArray(oMessageOrArray) ? oMessageOrArray : null);
} }

View file

@ -54,7 +54,8 @@ class FolderSystemPopupView extends AbstractViewNext
Settings.settingsSet('TrashFolder', FolderStore.trashFolder()); Settings.settingsSet('TrashFolder', FolderStore.trashFolder());
Settings.settingsSet('ArchiveFolder', FolderStore.archiveFolder()); Settings.settingsSet('ArchiveFolder', FolderStore.archiveFolder());
}, },
fSaveSystemFolders = _.debounce(() => { fSaveSystemFolders = _.debounce(
() => {
fSetSystemFolders(); fSetSystemFolders();
Remote.saveSystemFolders(noop, { Remote.saveSystemFolders(noop, {
SentFolder: FolderStore.sentFolder(), SentFolder: FolderStore.sentFolder(),
@ -64,7 +65,9 @@ class FolderSystemPopupView extends AbstractViewNext
ArchiveFolder: FolderStore.archiveFolder(), ArchiveFolder: FolderStore.archiveFolder(),
NullFolder: 'NullFolder' NullFolder: 'NullFolder'
}); });
}, Magics.Time1s), },
Magics.Time1s
),
fCallback = () => { fCallback = () => {
fSetSystemFolders(); fSetSystemFolders();
fSaveSystemFolders(); fSaveSystemFolders();

View file

@ -264,7 +264,8 @@ class LoginUserView extends AbstractViewNext
const const
fLoginRequest = (sLoginPassword) => { fLoginRequest = (sLoginPassword) => {
Remote.login((sResult, oData) => { Remote.login(
(sResult, oData) => {
$win.trigger('rl.tooltips.diactivate'); $win.trigger('rl.tooltips.diactivate');
$win.trigger('rl.tooltips.activate'); $win.trigger('rl.tooltips.activate');
@ -320,7 +321,11 @@ class LoginUserView extends AbstractViewNext
this.submitError(getNotification(Notification.UnknownError)); this.submitError(getNotification(Notification.UnknownError));
} }
}, this.email(), '', sLoginPassword, !!this.signMe(), },
this.email(),
'',
sLoginPassword,
!!this.signMe(),
this.bSendLanguage ? this.language() : '', this.bSendLanguage ? this.language() : '',
this.additionalCode.visibility() ? this.additionalCode() : '', this.additionalCode.visibility() ? this.additionalCode() : '',
this.additionalCode.visibility() ? !!this.additionalCodeSignMe() : false this.additionalCode.visibility() ? !!this.additionalCodeSignMe() : false

View file

@ -68,12 +68,17 @@ class MessageViewMailBoxUserView extends AbstractViewNext
let lastEmail = ''; let lastEmail = '';
const const
createCommandReplyHelper = (type) => createCommand(() => { createCommandReplyHelper = (type) => createCommand(
() => {
this.lastReplyAction(type); this.lastReplyAction(type);
this.replyOrforward(type); this.replyOrforward(type);
}, this.canBeRepliedOrForwarded), },
this.canBeRepliedOrForwarded
);
createCommandActionHelper = (folderType, useFolder) => createCommand(() => { const
createCommandActionHelper = (folderType, useFolder) => createCommand(
() => {
const message = this.message(); const message = this.message();
if (message && this.allowMessageListActions) if (message && this.allowMessageListActions)
{ {
@ -81,7 +86,9 @@ class MessageViewMailBoxUserView extends AbstractViewNext
getApp().deleteMessagesFromFolder( getApp().deleteMessagesFromFolder(
folderType, message.folderFullNameRaw, [message.uid], useFolder); folderType, message.folderFullNameRaw, [message.uid], useFolder);
} }
}, this.messageVisibility); },
this.messageVisibility
);
this.oDom = null; this.oDom = null;
this.oHeaderDom = null; this.oHeaderDom = null;

View file

@ -53,6 +53,7 @@ var
filter = require('gulp-filter'), filter = require('gulp-filter'),
expect = require('gulp-expect-file'), expect = require('gulp-expect-file'),
chmod = require('gulp-chmod'), chmod = require('gulp-chmod'),
size = require('gulp-size'),
gutil = require('gulp-util'); gutil = require('gulp-util');
cfg.community = !argv.pro; cfg.community = !argv.pro;
@ -385,6 +386,10 @@ gulp.task('js:admin', ['js:webpack'], function() {
gulp.task('js:min', ['js:app', 'js:admin'], function() { gulp.task('js:min', ['js:app', 'js:admin'], function() {
return gulp.src(cfg.paths.staticJS + '*.js') return gulp.src(cfg.paths.staticJS + '*.js')
.pipe(replace(/"rainloop\/v\/([^\/]+)\/static\/js\/"/g, '"rainloop/v/$1/static/js/min/"')) .pipe(replace(/"rainloop\/v\/([^\/]+)\/static\/js\/"/g, '"rainloop/v/$1/static/js/min/"'))
.pipe(size({
showFiles: true,
showTotal: false
}))
.pipe(rename({suffix: '.min'})) .pipe(rename({suffix: '.min'}))
.pipe(uglify({ .pipe(uglify({
mangle: true, mangle: true,
@ -392,6 +397,10 @@ gulp.task('js:min', ['js:app', 'js:admin'], function() {
ie8: false ie8: false
})) }))
.pipe(eol('\n', true)) .pipe(eol('\n', true))
.pipe(size({
showFiles: true,
showTotal: false
}))
.pipe(gulp.dest(cfg.paths.staticMinJS)) .pipe(gulp.dest(cfg.paths.staticMinJS))
.on('error', gutil.log); .on('error', gutil.log);
}); });

View file

@ -54,38 +54,39 @@
"devDependencies": { "devDependencies": {
"Progress.js": "github:usablica/progress.js#v0.1.0", "Progress.js": "github:usablica/progress.js#v0.1.0",
"autolinker": "1.4.3", "autolinker": "1.4.3",
"babel-core": "6.24.1", "babel-core": "6.25.0",
"babel-eslint": "7.2.3", "babel-eslint": "7.2.3",
"babel-loader": "7.0.0", "babel-loader": "7.1.0",
"babel-plugin-transform-decorators-legacy": "1.3.4", "babel-plugin-transform-decorators-legacy": "1.3.4",
"babel-plugin-transform-runtime": "6.23.0", "babel-plugin-transform-runtime": "6.23.0",
"babel-preset-env": "1.5.1", "babel-preset-env": "1.5.2",
"babel-preset-stage-0": "6.24.1", "babel-preset-stage-0": "6.24.1",
"babel-runtime": "6.23.0", "babel-runtime": "6.23.0",
"classnames": "2.2.5", "classnames": "2.2.5",
"copy-webpack-plugin": "4.0.1", "copy-webpack-plugin": "4.0.1",
"es6-promise-polyfill": "1.2.0", "es6-promise-polyfill": "1.2.0",
"eslint": "3.19.0", "eslint": "4.1.0",
"eslint-plugin-compat": "1.0.2", "eslint-plugin-compat": "1.0.4",
"gulp": "3.9.1", "gulp": "3.9.1",
"gulp-autoprefixer": "4.0.0", "gulp-autoprefixer": "4.0.0",
"gulp-cached": "1.1.1", "gulp-cached": "1.1.1",
"gulp-chmod": "2.0.0", "gulp-chmod": "2.0.0",
"gulp-clean-css": "3.3.1", "gulp-clean-css": "3.4.2",
"gulp-concat-util": "0.5.5", "gulp-concat-util": "0.5.5",
"gulp-eol": "0.1.2", "gulp-eol": "0.1.2",
"gulp-eslint": "3.0.1", "gulp-eslint": "4.0.0",
"gulp-expect-file": "0.0.7", "gulp-expect-file": "0.0.7",
"gulp-filter": "5.0.0", "gulp-filter": "5.0.0",
"gulp-header": "1.8.8", "gulp-header": "1.8.8",
"gulp-if": "2.0.2", "gulp-if": "2.0.2",
"gulp-less": "3.3.0", "gulp-less": "3.3.2",
"gulp-livereload": "3.8.1", "gulp-livereload": "3.8.1",
"gulp-notify": "3.0.0", "gulp-notify": "3.0.0",
"gulp-plumber": "1.1.0", "gulp-plumber": "1.1.0",
"gulp-rename": "1.2.2", "gulp-rename": "1.2.2",
"gulp-replace": "0.5.4", "gulp-replace": "0.6.1",
"gulp-rimraf": "0.2.1", "gulp-rimraf": "0.2.1",
"gulp-size": "2.1.0",
"gulp-stripbom": "1.0.4", "gulp-stripbom": "1.0.4",
"gulp-through": "0.4.0", "gulp-through": "0.4.0",
"gulp-uglify": "3.0.0", "gulp-uglify": "3.0.0",
@ -111,15 +112,15 @@
"normalize.css": "7.0.0", "normalize.css": "7.0.0",
"openpgp": "2.5.4", "openpgp": "2.5.4",
"opentip": "2.4.3", "opentip": "2.4.3",
"pikaday": "1.5.1", "pikaday": "1.6.1",
"raw-loader": "0.5.1", "raw-loader": "0.5.1",
"rifraf": "2.0.3", "rifraf": "2.0.3",
"rimraf": "2.6.1", "rimraf": "2.6.1",
"run-sequence": "1.2.2", "run-sequence": "1.2.2",
"simplestatemanager": "3.4.0", "simplestatemanager": "3.4.0",
"style-loader": "0.18.0", "style-loader": "0.18.2",
"underscore": "1.8.3", "underscore": "1.8.3",
"webpack": "2.5.1", "webpack": "3.0.0",
"webpack-notifier": "1.5.0" "webpack-notifier": "1.5.0"
} }
} }

View file

@ -26,6 +26,7 @@ sl_SI:
LABEL_ALLOW_LANGUAGES_ON_SETTINGS: "Dovoli izbor jezika v nastavitvah" LABEL_ALLOW_LANGUAGES_ON_SETTINGS: "Dovoli izbor jezika v nastavitvah"
LABEL_ALLOW_THEMES_ON_SETTINGS: "Dovoli izbor teme v nastavitvah" LABEL_ALLOW_THEMES_ON_SETTINGS: "Dovoli izbor teme v nastavitvah"
LABEL_ALLOW_BACKGROUND_ON_SETTINGS: "Dovoli izbor ozadja v nastavitvah" LABEL_ALLOW_BACKGROUND_ON_SETTINGS: "Dovoli izbor ozadja v nastavitvah"
LABEL_NEW_FOLDER_MOVE: "Novi gumb \"Premakni v mapo\""
LABEL_SHOW_THUMBNAILS: "Pokaži predoglede (priloge)" LABEL_SHOW_THUMBNAILS: "Pokaži predoglede (priloge)"
LABEL_ALLOW_GRAVATAR: "Dovoli Gravatar" LABEL_ALLOW_GRAVATAR: "Dovoli Gravatar"
LEGEND_MAIN: "Glavno" LEGEND_MAIN: "Glavno"

View file

@ -4,14 +4,14 @@ da_DK:
LABEL_LOGIN: "Brugernavn" LABEL_LOGIN: "Brugernavn"
LABEL_PASSWORD: "Adgangskode" LABEL_PASSWORD: "Adgangskode"
LABEL_SIGN_ME: "Husk mig" LABEL_SIGN_ME: "Husk mig"
LABEL_VERIFICATION_CODE: "Verifcserings kode" LABEL_VERIFICATION_CODE: "Verifikationskode"
LABEL_DONT_ASK_VERIFICATION_CODE: "Husk kode i 2 uger" LABEL_DONT_ASK_VERIFICATION_CODE: "Husk kode i 2 uger"
BUTTON_SIGN_IN: "Log ind" BUTTON_SIGN_IN: "Log ind"
TITLE_SIGN_IN_GOOGLE: "Log ind med Google" TITLE_SIGN_IN_GOOGLE: "Log ind med Google"
TITLE_SIGN_IN_FACEBOOK: "Log ind med Facenbook" TITLE_SIGN_IN_FACEBOOK: "Log ind med Facebook"
TITLE_SIGN_IN_TWITTER: "Log ind med Twitter" TITLE_SIGN_IN_TWITTER: "Log ind med Twitter"
LABEL_FORGOT_PASSWORD: "Glemt adgangskode" LABEL_FORGOT_PASSWORD: "Glemt adgangskode"
LABEL_REGISTRATION: "Registre" LABEL_REGISTRATION: "Registrering"
TOP_TOOLBAR: TOP_TOOLBAR:
BUTTON_ADD_ACCOUNT: "Tilføj konto" BUTTON_ADD_ACCOUNT: "Tilføj konto"
BUTTON_SETTINGS: "Indstillinger" BUTTON_SETTINGS: "Indstillinger"
@ -27,7 +27,7 @@ da_DK:
LABEL_ADV_TO: "Til" LABEL_ADV_TO: "Til"
LABEL_ADV_SUBJECT: "Emne" LABEL_ADV_SUBJECT: "Emne"
LABEL_ADV_TEXT: "Tekst" LABEL_ADV_TEXT: "Tekst"
LABEL_ADV_HAS_ATTACHMENT: "Har vedhæfted fil" LABEL_ADV_HAS_ATTACHMENT: "Har vedhæftet fil"
LABEL_ADV_HAS_ATTACHMENTS: "Har vedhæftede filer" LABEL_ADV_HAS_ATTACHMENTS: "Har vedhæftede filer"
LABEL_ADV_FLAGGED: "Markeret med flag" LABEL_ADV_FLAGGED: "Markeret med flag"
LABEL_ADV_UNSEEN: "Ulæst" LABEL_ADV_UNSEEN: "Ulæst"
@ -53,29 +53,29 @@ da_DK:
FOLDER_LIST: FOLDER_LIST:
BUTTON_COMPOSE: "Forfat" BUTTON_COMPOSE: "Forfat"
BUTTON_CONTACTS: "Kontakter" BUTTON_CONTACTS: "Kontakter"
BUTTON_NEW_MESSAGE: "Ny meddelse" BUTTON_NEW_MESSAGE: "Ny meddelelse"
INBOX_NAME: "Indbakke" INBOX_NAME: "Indbakke"
SENT_NAME: "Sendte meddelser" SENT_NAME: "Sendte meddelelser"
DRAFTS_NAME: "Kladder" DRAFTS_NAME: "Kladder"
SPAM_NAME: "Uønskede meddelser" SPAM_NAME: "Uønskede meddelelser"
TRASH_NAME: "Slettede meddelser" TRASH_NAME: "Slettede meddelelser"
ARCHIVE_NAME: "Arkiverede meddelser" ARCHIVE_NAME: "Arkiverede meddelelser"
QUOTA: QUOTA:
TITLE: "Forbrug" TITLE: "Forbrug"
MESSAGE_LIST: MESSAGE_LIST:
BUTTON_RELOAD: "Genindlæs meddelser" BUTTON_RELOAD: "Genindlæs meddelelser"
BUTTON_MOVE_TO: "Flyt til" BUTTON_MOVE_TO: "Flyt til"
BUTTON_DELETE: "Slet" BUTTON_DELETE: "Slet"
BUTTON_ARCHIVE: "Arkiver" BUTTON_ARCHIVE: "Arkivér"
BUTTON_SPAM: "Uønsket" BUTTON_SPAM: "Uønsket"
BUTTON_NOT_SPAM: "Ikke uønsket" BUTTON_NOT_SPAM: "Ikke uønsket"
BUTTON_EMPTY_FOLDER: "Tøm mappe" BUTTON_EMPTY_FOLDER: "Tøm mappe"
BUTTON_MULTY_FORWARD: "Videresend som vedhæftning(er)" BUTTON_MULTY_FORWARD: "Videresend som vedhæftning(er)"
BUTTON_DELETE_WITHOUT_MOVE: "Slet permanent" BUTTON_DELETE_WITHOUT_MOVE: "Slet permanent"
BUTTON_MORE: "Mere" BUTTON_MORE: "Mere"
MENU_SET_SEEN: "Marker som læst" MENU_SET_SEEN: "Markér som læst"
MENU_SET_ALL_SEEN: "Marker alle som læst" MENU_SET_ALL_SEEN: "Markér alle som læst"
MENU_UNSET_SEEN: "Marker som ulæst" MENU_UNSET_SEEN: "Markér som ulæst"
MENU_SET_FLAG: "Markér med flag" MENU_SET_FLAG: "Markér med flag"
MENU_UNSET_FLAG: "Fjern flag" MENU_UNSET_FLAG: "Fjern flag"
MENU_SELECT_ALL: "Alle" MENU_SELECT_ALL: "Alle"
@ -85,10 +85,10 @@ da_DK:
MENU_SELECT_SEEN: "Læst" MENU_SELECT_SEEN: "Læst"
MENU_SELECT_FLAGGED: "Markeret med flag" MENU_SELECT_FLAGGED: "Markeret med flag"
MENU_SELECT_UNFLAGGED: "Ikke markeret med flag" MENU_SELECT_UNFLAGGED: "Ikke markeret med flag"
EMPTY_LIST: "Ingen meddelser." EMPTY_LIST: "Ingen meddelelser."
EMPTY_SEARCH_LIST: "Ikke meddelelser passede på søgningen." EMPTY_SEARCH_LIST: "Ingen meddelelser passede på søgningen."
SEARCH_RESULT_FOR: "Resultat for søgningen på \"%SEARCH%\"" SEARCH_RESULT_FOR: "Resultat for søgningen på \"%SEARCH%\""
BACK_TO_MESSAGE_LIST: "Tilbage til meddelelses oversigt." BACK_TO_MESSAGE_LIST: "Tilbage til meddelelsesoversigt."
LIST_LOADING: "Indlæser..." LIST_LOADING: "Indlæser..."
EMPTY_SUBJECT_TEXT: "(Intet emne)" EMPTY_SUBJECT_TEXT: "(Intet emne)"
PUT_MESSAGE_HERE: "Træk meddelelser her for visning i oversigten" PUT_MESSAGE_HERE: "Træk meddelelser her for visning i oversigten"
@ -103,7 +103,7 @@ da_DK:
BUTTON_CLOSE: "Luk" BUTTON_CLOSE: "Luk"
BUTTON_DELETE: "Slet" BUTTON_DELETE: "Slet"
BUTTON_UNSUBSCRIBE: "Frameld liste" BUTTON_UNSUBSCRIBE: "Frameld liste"
BUTTON_ARCHIVE: "Arkiver" BUTTON_ARCHIVE: "Arkivér"
BUTTON_SPAM: "Uønsket" BUTTON_SPAM: "Uønsket"
BUTTON_NOT_SPAM: "Ikke uønsket" BUTTON_NOT_SPAM: "Ikke uønsket"
BUTTON_MOVE_TO: "Flyt til" BUTTON_MOVE_TO: "Flyt til"
@ -114,16 +114,16 @@ da_DK:
BUTTON_FORWARD_AS_ATTACHMENT: "Videresend som vedhæftning" BUTTON_FORWARD_AS_ATTACHMENT: "Videresend som vedhæftning"
BUTTON_EDIT_AS_NEW: "Rediger som ny" BUTTON_EDIT_AS_NEW: "Rediger som ny"
BUTTON_SHOW_IMAGES: "Vis eksterne billeder" BUTTON_SHOW_IMAGES: "Vis eksterne billeder"
BUTTON_NOTIFY_READ_RECEIPT: "Afsender har bedt om modtagelses kvittering." BUTTON_NOTIFY_READ_RECEIPT: "Afsender har bedt om modtagelseskvittering."
BUTTON_IN_NEW_WINDOW: "Vis i separat vindue" BUTTON_IN_NEW_WINDOW: "Vis i separat vindue"
BUTTON_THREAD_LIST: "Samtale oversigt" BUTTON_THREAD_LIST: "Samtaleoversigt"
BUTTON_THREAD_PREV: "Forrige" BUTTON_THREAD_PREV: "Forrige"
BUTTON_THREAD_NEXT: "Næste" BUTTON_THREAD_NEXT: "Næste"
BUTTON_THREAD_MORE: "Flere meddelelser" BUTTON_THREAD_MORE: "Flere meddelelser"
MENU_HEADERS: "Hvis meddelelseoplysninger" MENU_HEADERS: "Vis meddelelseoplysninger"
MENU_VIEW_ORIGINAL: "Vis kilder" MENU_VIEW_ORIGINAL: "Vis kilder"
MENU_DOWNLOAD_ORIGINAL: "Hent som .eml fil" MENU_DOWNLOAD_ORIGINAL: "Hent som .eml fil"
MENU_FILTER_SIMILAR: "Find ligende meddelelser" MENU_FILTER_SIMILAR: "Find lignende meddelelser"
MENU_PRINT: "Udskriv" MENU_PRINT: "Udskriv"
EMPTY_SUBJECT_TEXT: "(Intet emne)" EMPTY_SUBJECT_TEXT: "(Intet emne)"
LABEL_SUBJECT: "Emne" LABEL_SUBJECT: "Emne"
@ -159,7 +159,7 @@ da_DK:
Bemærk: "Dette bekræfter bare at meddelelsen er blevet op modtageren." Bemærk: "Dette bekræfter bare at meddelelsen er blevet op modtageren."
Der er ingen garanti for at modtager har læst meddelelsen. Der er ingen garanti for at modtager har læst meddelelsen.
SUGGESTIONS: SUGGESTIONS:
SEARCHING_DESC: "Søger" SEARCHING_DESC: "Søger..."
CONTACTS: CONTACTS:
LEGEND_CONTACTS: "Kontakter" LEGEND_CONTACTS: "Kontakter"
SEARCH_INPUT_PLACEHOLDER: "Søg" SEARCH_INPUT_PLACEHOLDER: "Søg"
@ -169,7 +169,7 @@ da_DK:
BUTTON_IMPORT: "Importer kontakter (csv, vcf, vCard)" BUTTON_IMPORT: "Importer kontakter (csv, vcf, vCard)"
BUTTON_EXPORT_VCARD: "Eksporter kontakter (vcf, vCard)" BUTTON_EXPORT_VCARD: "Eksporter kontakter (vcf, vCard)"
BUTTON_EXPORT_CSV: "Eksporter kontakter (csv)" BUTTON_EXPORT_CSV: "Eksporter kontakter (csv)"
ERROR_IMPORT_FILE: "Importerrings fejl (forkert fil type)" ERROR_IMPORT_FILE: "Importfejl (forkert fil type)"
LIST_LOADING: "Indlæser" LIST_LOADING: "Indlæser"
EMPTY_LIST: "Ingen kontakter" EMPTY_LIST: "Ingen kontakter"
EMPTY_SEARCH: "Ingen kontakter fundet" EMPTY_SEARCH: "Ingen kontakter fundet"
@ -181,16 +181,16 @@ da_DK:
LABEL_WEB: "Hjemmeside" LABEL_WEB: "Hjemmeside"
LABEL_BIRTHDAY: "Fødselsdag" LABEL_BIRTHDAY: "Fødselsdag"
LINK_ADD_EMAIL: "Tilføj e-mail adresse" LINK_ADD_EMAIL: "Tilføj e-mail adresse"
LINK_ADD_PHONE: "Tilføj telefon nummer" LINK_ADD_PHONE: "Tilføj telefonnummer"
LINK_BIRTHDAY: "Fødselsdag" LINK_BIRTHDAY: "Fødselsdag"
PLACEHOLDER_ENTER_DISPLAY_NAME: "Indtast kaldenavn" PLACEHOLDER_ENTER_DISPLAY_NAME: "Indtast kaldenavn"
PLACEHOLDER_ENTER_LAST_NAME: "Indtast efternavn" PLACEHOLDER_ENTER_LAST_NAME: "Indtast efternavn"
PLACEHOLDER_ENTER_FIRST_NAME: "Indtast fornavn(er)" PLACEHOLDER_ENTER_FIRST_NAME: "Indtast fornavn(e)"
PLACEHOLDER_ENTER_NICK_NAME: "Indtast kældenavn" PLACEHOLDER_ENTER_NICK_NAME: "Indtast kaldenavn"
LABEL_READ_ONLY: "Skrivebeskyttet" LABEL_READ_ONLY: "Skrivebeskyttet"
LABEL_SHARE: "Del" LABEL_SHARE: "Del"
ADD_MENU_LABEL: "Tilføj" ADD_MENU_LABEL: "Tilføj"
ADD_MENU_NICKNAME: "Kældenavn" ADD_MENU_NICKNAME: "Kaldenavn"
ADD_MENU_NOTES: "Noter" ADD_MENU_NOTES: "Noter"
ADD_MENU_EMAIL: "E-mail" ADD_MENU_EMAIL: "E-mail"
ADD_MENU_PHONE: "Telefon" ADD_MENU_PHONE: "Telefon"
@ -234,9 +234,9 @@ da_DK:
ATTACHMENTS_ERROR_DESC: "Advarsels! Ikke alle vedhæftninger er overført." ATTACHMENTS_ERROR_DESC: "Advarsels! Ikke alle vedhæftninger er overført."
ATTACHMENTS_UPLOAD_ERROR_DESC: "Overførsel af vedhæftninger igang." ATTACHMENTS_UPLOAD_ERROR_DESC: "Overførsel af vedhæftninger igang."
BUTTON_REQUEST_READ_RECEIPT: "Bed om kvittering for læsning" BUTTON_REQUEST_READ_RECEIPT: "Bed om kvittering for læsning"
BUTTON_MARK_AS_IMPORTANT: "Marker som vigtig" BUTTON_MARK_AS_IMPORTANT: "Markér som vigtig"
BUTTON_OPEN_PGP: "OpenPGP (kun plain tekst)" BUTTON_OPEN_PGP: "OpenPGP (kun plain tekst)"
BUTTON_REQUEST_DSN: "Bed om kvittering om kvittering for modtagelse" BUTTON_REQUEST_DSN: "Bed om kvittering for modtagelse"
POPUPS_WELCOME_PAGE: POPUPS_WELCOME_PAGE:
BUTTON_CLOSE: "Luk" BUTTON_CLOSE: "Luk"
POPUPS_ASK: POPUPS_ASK:
@ -265,7 +265,7 @@ da_DK:
LABEL_SIGNATURE_INSERT_BEFORE: "Indsæt signatur før citeret tekst" LABEL_SIGNATURE_INSERT_BEFORE: "Indsæt signatur før citeret tekst"
POPUPS_CREATE_FOLDER: POPUPS_CREATE_FOLDER:
TITLE_CREATE_FOLDER: "Opret ny mappe?" TITLE_CREATE_FOLDER: "Opret ny mappe?"
LABEL_NAME: "Mappe navn" LABEL_NAME: "Mappenavn"
LABEL_PARENT: "Hovedmappe" LABEL_PARENT: "Hovedmappe"
BUTTON_CREATE: "Opret ny mappe" BUTTON_CREATE: "Opret ny mappe"
BUTTON_CANCEL: "Annuller" BUTTON_CANCEL: "Annuller"
@ -282,7 +282,7 @@ da_DK:
TITLE_CLEARING_PROCESS: "Tømmer mappe..." TITLE_CLEARING_PROCESS: "Tømmer mappe..."
POPUPS_IMPORT_OPEN_PGP_KEY: POPUPS_IMPORT_OPEN_PGP_KEY:
TITLE_IMPORT_OPEN_PGP_KEY: "Importer OpenPGP nøgle" TITLE_IMPORT_OPEN_PGP_KEY: "Importer OpenPGP nøgle"
BUTTON_IMPORT_OPEN_PGP_KEY: "Importet" BUTTON_IMPORT_OPEN_PGP_KEY: "Importer"
POPUPS_VIEW_OPEN_PGP_KEY: POPUPS_VIEW_OPEN_PGP_KEY:
TITLE_VIEW_OPEN_PGP_KEY: "Vis OpenPGP nøgle" TITLE_VIEW_OPEN_PGP_KEY: "Vis OpenPGP nøgle"
BUTTON_SELECT: "Vælg" BUTTON_SELECT: "Vælg"
@ -292,11 +292,11 @@ da_DK:
LABEL_EMAIL: "E-mail" LABEL_EMAIL: "E-mail"
LABEL_NAME: "Navn" LABEL_NAME: "Navn"
LABEL_PASSWORD: "Adgangskode" LABEL_PASSWORD: "Adgangskode"
LABEL_KEY_BIT_LENGTH: "Nøgle længde" LABEL_KEY_BIT_LENGTH: "Nøglelængde"
BUTTON_GENERATE_OPEN_PGP_KEYS: "Generer" BUTTON_GENERATE_OPEN_PGP_KEYS: "Generér"
POPUPS_COMPOSE_OPEN_PGP: POPUPS_COMPOSE_OPEN_PGP:
TITLE_COMPOSE_OPEN_PGP: "OpenPGP Signer/Krypter" TITLE_COMPOSE_OPEN_PGP: "OpenPGP Signer/Krypter"
LABEL_SIGN: "Signer" LABEL_SIGN: "Signér"
LABEL_ENCRYPT: "Krypter" LABEL_ENCRYPT: "Krypter"
LABEL_PASSWORD: "Adgangskode" LABEL_PASSWORD: "Adgangskode"
BUTTON_SIGN: "Signér" BUTTON_SIGN: "Signér"
@ -306,9 +306,9 @@ da_DK:
TITLE_MESSAGE_OPEN_PGP: "OpenPGP Dekrypter" TITLE_MESSAGE_OPEN_PGP: "OpenPGP Dekrypter"
LABEL_KEY: "Privat nøgle" LABEL_KEY: "Privat nøgle"
LABEL_PASSWORD: "Adgangskode" LABEL_PASSWORD: "Adgangskode"
BUTTON_DECRYPT: "Afkrypter" BUTTON_DECRYPT: "Dekrypter"
POPUPS_TWO_FACTOR_TEST: POPUPS_TWO_FACTOR_TEST:
TITLE_TEST_CODE: "2-trins verificeringstest" TITLE_TEST_CODE: "2-trins verifikationstest"
LABEL_CODE: "Kode" LABEL_CODE: "Kode"
BUTTON_TEST: "Test" BUTTON_TEST: "Test"
POPUPS_FILTER: POPUPS_FILTER:
@ -323,44 +323,44 @@ da_DK:
SELECT_ACTION_MOVE_TO: "Flyt til" SELECT_ACTION_MOVE_TO: "Flyt til"
SELECT_ACTION_FORWARD_TO: "Videresend til" SELECT_ACTION_FORWARD_TO: "Videresend til"
SELECT_ACTION_REJECT: "Afvis" SELECT_ACTION_REJECT: "Afvis"
SELECT_ACTION_VACATION_MESSAGE: "Ferie meddelelse" SELECT_ACTION_VACATION_MESSAGE: "Feriemeddelelse"
SELECT_ACTION_DISCARD: "Kasser" SELECT_ACTION_DISCARD: "Kassér"
SELECT_FIELD_FROM: "Fra" SELECT_FIELD_FROM: "Fra"
SELECT_FIELD_RECIPIENTS: "Modtagere (Til eller CC)" SELECT_FIELD_RECIPIENTS: "Modtagere (Til eller CC)"
SELECT_FIELD_SUBJECT: "Emne" SELECT_FIELD_SUBJECT: "Emne"
SELECT_FIELD_HEADER: "Meddelsesoplysninger" SELECT_FIELD_HEADER: "Meddelelsesoplysninger"
SELECT_FIELD_SIZE: "Størrelse" SELECT_FIELD_SIZE: "Størrelse"
SELECT_TYPE_CONTAINS: "Indenholder" SELECT_TYPE_CONTAINS: "Indeholder"
SELECT_TYPE_NOT_CONTAINS: "Indenholder ikke" SELECT_TYPE_NOT_CONTAINS: "Indeholder ikke"
SELECT_TYPE_MATCHES: "Svare til (* og ? kan bruges)" SELECT_TYPE_MATCHES: "Svarer til (* og ? kan bruges)"
SELECT_TYPE_NOT_MATCHES: "Svare ikke til (* og ? kan bruges)" SELECT_TYPE_NOT_MATCHES: "Svarer ikke til (* og ? kan bruges)"
SELECT_TYPE_REGEXP: "Regexp" SELECT_TYPE_REGEXP: "Regexp"
SELECT_TYPE_NOT_REGEXP: "Ikke Regexp" SELECT_TYPE_NOT_REGEXP: "Ikke Regexp"
SELECT_TYPE_EQUAL_TO: "Lig med" SELECT_TYPE_EQUAL_TO: "Lig med"
SELECT_TYPE_NOT_EQUAL_TO: "Ikke lige med" SELECT_TYPE_NOT_EQUAL_TO: "Ikke lige med"
SELECT_TYPE_OVER: "Over" SELECT_TYPE_OVER: "Over"
SELECT_TYPE_UNDER: "Under" SELECT_TYPE_UNDER: "Under"
SELECT_MATCH_ANY: "Passer en af følgene regler" SELECT_MATCH_ANY: "Passer til en af følgende regler"
SELECT_MATCH_ALL: "Passer alle af følgende regler" SELECT_MATCH_ALL: "Passer til alle følgende regler"
MARK_AS_READ_LABEL: "Marker som læst" MARK_AS_READ_LABEL: "Markér som læst"
REPLY_INTERVAL_LABEL: "Svar interval (dage)" REPLY_INTERVAL_LABEL: "Svarinterval (dage)"
KEEP_LABEL: "Behold" KEEP_LABEL: "Behold"
STOP_LABEL: "Forsæt med at tjekker regler" STOP_LABEL: "Forsæt med at tjekke regler"
EMAIL_LABEL: "E-mail" EMAIL_LABEL: "E-mail"
VACATION_SUBJECT_LABEL: "Emne (valgfri)" VACATION_SUBJECT_LABEL: "Emne (valgfrit)"
VACATION_MESSAGE_LABEL: "Meddelse" VACATION_MESSAGE_LABEL: "Meddelelse"
VACATION_RECIPIENTS_LABEL: "Modtagere (komma seperarede)" VACATION_RECIPIENTS_LABEL: "Modtagere (kommaseparerede)"
REJECT_MESSAGE_LABEL: "Afvis meddelse" REJECT_MESSAGE_LABEL: "Afvis meddelelse"
ALL_INCOMING_MESSAGES_DESC: "Alle modtagede meddelser" ALL_INCOMING_MESSAGES_DESC: "Alle modtagne meddelelser"
POPUPS_SYSTEM_FOLDERS: POPUPS_SYSTEM_FOLDERS:
TITLE_SYSTEM_FOLDERS: "Vælg system mapper" TITLE_SYSTEM_FOLDERS: "Vælg systemmapper"
SELECT_CHOOSE_ONE: "Vælg en" SELECT_CHOOSE_ONE: "Vælg en"
SELECT_UNUSE_NAME: "Brug ikke" SELECT_UNUSE_NAME: "Brug ikke"
LABEL_SENT: "Sendte meddelser" LABEL_SENT: "Sendte meddelelser"
LABEL_DRAFTS: "Kladder" LABEL_DRAFTS: "Kladder"
LABEL_SPAM: "Uønskede meddelser" LABEL_SPAM: "Uønskede meddelelser"
LABEL_TRASH: "Slettede meddelser" LABEL_TRASH: "Slettede meddelelser"
LABEL_ARCHIVE: "Arkiverede meddelser" LABEL_ARCHIVE: "Arkiverede meddelelser"
BUTTON_CANCEL: "Annuller" BUTTON_CANCEL: "Annuller"
BUTTON_CLOSE: "Luk" BUTTON_CLOSE: "Luk"
NOTIFICATION_SENT: | NOTIFICATION_SENT: |
@ -373,14 +373,14 @@ da_DK:
Hvis du vil slette meddelelser permanent, vælg "Brug ikke". Hvis du vil slette meddelelser permanent, vælg "Brug ikke".
NOTIFICATION_ARCHIVE: "Du har ikke valgt en systemmappe til arkiverede meddelelser." NOTIFICATION_ARCHIVE: "Du har ikke valgt en systemmappe til arkiverede meddelelser."
POPUPS_TWO_FACTOR_CFG: POPUPS_TWO_FACTOR_CFG:
LEGEND_TWO_FACTOR_AUTH: "2-trins verificering (TOTP)" LEGEND_TWO_FACTOR_AUTH: "2-trins verifikation (TOTP)"
LABEL_ENABLE_TWO_FACTOR: "Aktiver 2-trins verificering" LABEL_ENABLE_TWO_FACTOR: "Aktivér 2-trins verifikation"
LABEL_TWO_FACTOR_USER: "Bruger" LABEL_TWO_FACTOR_USER: "Bruger"
LABEL_TWO_FACTOR_STATUS: "Status" LABEL_TWO_FACTOR_STATUS: "Status"
LABEL_TWO_FACTOR_SECRET: "2-trins verificeringshemmelighed" LABEL_TWO_FACTOR_SECRET: "2-trins verificeringshemmelighed"
LABEL_TWO_FACTOR_BACKUP_CODES: "Tag backup af 2-trins verificeringshemmeligheder" LABEL_TWO_FACTOR_BACKUP_CODES: "Tag backup af 2-trins verificeringshemmeligheder"
BUTTON_CREATE: "Opret en hemmelighed" BUTTON_CREATE: "Opret en hemmelighed"
BUTTON_ACTIVATE: "Aktiver" BUTTON_ACTIVATE: "Aktivér"
BUTTON_CLEAR: "Slet" BUTTON_CLEAR: "Slet"
BUTTON_LOGOUT: "Log ud" BUTTON_LOGOUT: "Log ud"
BUTTON_DONE: "Færdig" BUTTON_DONE: "Færdig"
@ -388,13 +388,12 @@ da_DK:
LINK_TEST: "test" LINK_TEST: "test"
BUTTON_SHOW_SECRET: "Vis hemmelighed" BUTTON_SHOW_SECRET: "Vis hemmelighed"
BUTTON_HIDE_SECRET: "Skjul hemmelighed" BUTTON_HIDE_SECRET: "Skjul hemmelighed"
TWO_FACTOR_REQUIRE_DESC: "Din konto kræver 2-trins verificering." TWO_FACTOR_REQUIRE_DESC: "Din konto kræver 2-trins verifikation."
TWO_FACTOR_SECRET_CONFIGURED_DESC: "Konfigureret" TWO_FACTOR_SECRET_CONFIGURED_DESC: "Konfigureret"
TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC: "Ikke konfigureret" TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC: "Ikke konfigureret"
TWO_FACTOR_SECRET_DESC: >+ TWO_FACTOR_SECRET_DESC: >
Importer denne information til din Google Autentificering app (eller en anden Importer denne information til din Google Autentificering app (eller en anden
TOTP klient) ved hjælp af QR koden herunder eller ved at indtaste koden manuelt. TOTP klient) ved hjælp af QR koden herunder eller ved at indtaste koden manuelt.
TWO_FACTOR_BACKUP_CODES_DESC: > TWO_FACTOR_BACKUP_CODES_DESC: >
Hvis du ikke kan modtage koder ved hjælp af Google Autentificering appen (eller Hvis du ikke kan modtage koder ved hjælp af Google Autentificering appen (eller
en anden TOTP klient), kan du bruge backup kode til at logge ind med. Når en anden TOTP klient), kan du bruge backup kode til at logge ind med. Når
@ -412,15 +411,15 @@ da_DK:
ERROR_NO_FILE_UPLOADED: "Ingen file oploadet" ERROR_NO_FILE_UPLOADED: "Ingen file oploadet"
ERROR_MISSING_TEMP_FOLDER: "Midlertidig fil findes ikke" ERROR_MISSING_TEMP_FOLDER: "Midlertidig fil findes ikke"
ERROR_ON_SAVING_FILE: "Ukendt upload fejl" ERROR_ON_SAVING_FILE: "Ukendt upload fejl"
ERROR_FILE_TYPE: "Forkert filtyppe" ERROR_FILE_TYPE: "Forkert filtype"
ERROR_UNKNOWN: "Ukendt upload fejl" ERROR_UNKNOWN: "Ukendt upload fejl"
EDITOR: EDITOR:
TEXT_SWITCHER_PLAINT_TEXT: "HTML <-> TEXT" TEXT_SWITCHER_PLAINT_TEXT: "HTML <-> TEXT"
TEXT_SWITCHER_RICH_FORMATTING: "Rig formatering" TEXT_SWITCHER_RICH_FORMATTING: "Rig formatering"
TEXT_SWITCHER_CONFIRM: "Formatring og billeder vil gå tabt. Forsæt?" TEXT_SWITCHER_CONFIRM: "Formatering og billeder vil gå tabt. Forsæt?"
SETTINGS_LABELS: SETTINGS_LABELS:
LABEL_PERSONAL_NAME: "Personlig" LABEL_PERSONAL_NAME: "Personlig"
LABEL_GENERAL_NAME: "Generalt" LABEL_GENERAL_NAME: "Generelt"
LABEL_CONTACTS_NAME: "Kontakter" LABEL_CONTACTS_NAME: "Kontakter"
LABEL_FOLDERS_NAME: "Mapper" LABEL_FOLDERS_NAME: "Mapper"
LABEL_ACCOUNTS_NAME: "Kontoer" LABEL_ACCOUNTS_NAME: "Kontoer"
@ -444,7 +443,7 @@ da_DK:
SUBNAME_MOVE_TO: "Flyt til \"%FOLDER%\"" SUBNAME_MOVE_TO: "Flyt til \"%FOLDER%\""
SUBNAME_FORWARD_TO: "Videresend til \"%EMAIL%\"" SUBNAME_FORWARD_TO: "Videresend til \"%EMAIL%\""
SUBNAME_REJECT: "Afvis" SUBNAME_REJECT: "Afvis"
SUBNAME_VACATION_MESSAGE: "Ferie meddelelse" SUBNAME_VACATION_MESSAGE: "Feriemeddelelse"
SUBNAME_DISCARD: "Kasser" SUBNAME_DISCARD: "Kasser"
CAPABILITY_LABEL: "Evner" CAPABILITY_LABEL: "Evner"
LOADING_PROCESS: "Opdater oversigten over filtre" LOADING_PROCESS: "Opdater oversigten over filtre"
@ -458,7 +457,7 @@ da_DK:
LABEL_ADD_SIGNATURE_TO_ALL: "Tilføj din signatur til alle meddelelser" LABEL_ADD_SIGNATURE_TO_ALL: "Tilføj din signatur til alle meddelelser"
SETTINGS_SECURITY: SETTINGS_SECURITY:
LEGEND_SECURITY: "Sikkerhed" LEGEND_SECURITY: "Sikkerhed"
LABEL_CONFIGURE_TWO_FACTOR: "Op sæt 2-trins verificering" LABEL_CONFIGURE_TWO_FACTOR: "Opsæt 2-trins verifikation"
LABEL_AUTOLOGOUT: "Automatisk log ud" LABEL_AUTOLOGOUT: "Automatisk log ud"
AUTOLOGIN_NEVER_OPTION_NAME: "Aldrig" AUTOLOGIN_NEVER_OPTION_NAME: "Aldrig"
AUTOLOGIN_MINUTES_OPTION_NAME: "%MINUTES% minut(er)" AUTOLOGIN_MINUTES_OPTION_NAME: "%MINUTES% minut(er)"
@ -474,9 +473,9 @@ da_DK:
LABEL_EDITOR: "Standard tekst program" LABEL_EDITOR: "Standard tekst program"
LABEL_EDITOR_HTML: "Html" LABEL_EDITOR_HTML: "Html"
LABEL_EDITOR_PLAIN: "Plain" LABEL_EDITOR_PLAIN: "Plain"
LABEL_EDITOR_HTML_FORCED: "Html (gennetvunget)" LABEL_EDITOR_HTML_FORCED: "Html (gennemtvunget)"
LABEL_EDITOR_PLAIN_FORCED: "Plain (gennemtvunget)" LABEL_EDITOR_PLAIN_FORCED: "Plain (gennemtvunget)"
LABEL_ANIMATION: "Grænseflade animation" LABEL_ANIMATION: "Grænsefladeanimation"
LABEL_ANIMATION_FULL: "Fuld" LABEL_ANIMATION_FULL: "Fuld"
LABEL_ANIMATION_NORMAL: "Normal" LABEL_ANIMATION_NORMAL: "Normal"
LABEL_ANIMATION_NONE: "Ingen" LABEL_ANIMATION_NONE: "Ingen"
@ -484,7 +483,7 @@ da_DK:
LABEL_USE_PREVIEW_PANE: "Brug preview panel" LABEL_USE_PREVIEW_PANE: "Brug preview panel"
LABEL_USE_CHECKBOXES_IN_LIST: "Vis afkrydsningsfelt i oversigten" LABEL_USE_CHECKBOXES_IN_LIST: "Vis afkrydsningsfelt i oversigten"
LABEL_USE_THREADS: "Brug samtaler" LABEL_USE_THREADS: "Brug samtaler"
LABEL_REPLY_SAME_FOLDER: "Placer svar i samme mappe som original besked" LABEL_REPLY_SAME_FOLDER: "Placer svar i samme mappe som oprindelig meddelelse"
LABEL_SHOW_IMAGES: "Vis altid eksterne billeder" LABEL_SHOW_IMAGES: "Vis altid eksterne billeder"
LABEL_SHOW_ANIMATION: "Vis animationer" LABEL_SHOW_ANIMATION: "Vis animationer"
LABEL_MESSAGE_PER_PAGE: "Meddelelser per side" LABEL_MESSAGE_PER_PAGE: "Meddelelser per side"
@ -496,14 +495,14 @@ da_DK:
LEGEND_CONTACTS: "Kontakter" LEGEND_CONTACTS: "Kontakter"
LABEL_CONTACTS_AUTOSAVE: "Tilføj automatisk modtager til adressebog" LABEL_CONTACTS_AUTOSAVE: "Tilføj automatisk modtager til adressebog"
LEGEND_CONTACTS_SYNC: "Synkroniser (CardDAV)" LEGEND_CONTACTS_SYNC: "Synkroniser (CardDAV)"
LABEL_CONTACTS_SYNC_ENABLE: "Aktiver synkronisering" LABEL_CONTACTS_SYNC_ENABLE: "Aktivér synkronisering"
LABEL_CONTACTS_SYNC_SERVER: "Server" LABEL_CONTACTS_SYNC_SERVER: "Server"
LABEL_CONTACTS_SYNC_AB_URL: "Adressebogs URL" LABEL_CONTACTS_SYNC_AB_URL: "Adressebogs URL"
LABEL_CONTACTS_SYNC_USER: "Bruger" LABEL_CONTACTS_SYNC_USER: "Bruger"
LABEL_CONTACTS_SYNC_PASSWORD: "Adgangskode" LABEL_CONTACTS_SYNC_PASSWORD: "Adgangskode"
SETTINGS_THEMES: SETTINGS_THEMES:
LEGEND_THEMES: "Temaer" LEGEND_THEMES: "Temaer"
LEGEND_THEMES_CUSTOM: "Brugerdefineret tema konfiguration" LEGEND_THEMES_CUSTOM: "Brugerdefineret temakonfiguration"
LABEL_CUSTOM_TYPE: "Type" LABEL_CUSTOM_TYPE: "Type"
LABEL_CUSTOM_TYPE_LIGHT: "Lys" LABEL_CUSTOM_TYPE_LIGHT: "Lys"
LABEL_CUSTOM_TYPE_DARK: "Mørk" LABEL_CUSTOM_TYPE_DARK: "Mørk"
@ -526,22 +525,22 @@ da_DK:
BUTTON_TWITTER_DISCONNECT: "Afbryd forbindelse til Twitter" BUTTON_TWITTER_DISCONNECT: "Afbryd forbindelse til Twitter"
MAIN_TWITTER_DESC: "Ved aktivering af log ind via Twitter. Kan der logges ind ved hjælp af Twitter knappen på log ind skærmen." MAIN_TWITTER_DESC: "Ved aktivering af log ind via Twitter. Kan der logges ind ved hjælp af Twitter knappen på log ind skærmen."
SETTINGS_FOLDERS: SETTINGS_FOLDERS:
LEGEND_FOLDERS: "Mappe oversigt" LEGEND_FOLDERS: "Mappeoversigt"
BUTTON_CREATE: "Opret ny mappe" BUTTON_CREATE: "Opret ny mappe"
BUTTON_SYSTEM: "System mapper" BUTTON_SYSTEM: "Systemmapper"
BUTTON_DELETE: "Slet" BUTTON_DELETE: "Slet"
BUTTON_SUBSCRIBE: "Abonnér" BUTTON_SUBSCRIBE: "Abonnér"
BUTTON_UNSUBSCRIBE: "Afmeld" BUTTON_UNSUBSCRIBE: "Afmeld"
LOADING_PROCESS: "Opdater mappe oversigt" LOADING_PROCESS: "Opdater mappeoversigt"
CREATING_PROCESS: "Opretter mappe" CREATING_PROCESS: "Opretter mappe"
DELETING_PROCESS: "Sletter mappe" DELETING_PROCESS: "Sletter mappe"
RENAMING_PROCESS: "Omdøbber mappe" RENAMING_PROCESS: "Omdøber mappe"
DELETING_ASK: "Er du sikker?" DELETING_ASK: "Er du sikker?"
TO_MANY_FOLDERS_DESC_1: "For mange mapper!" TO_MANY_FOLDERS_DESC_1: "For mange mapper!"
TO_MANY_FOLDERS_DESC_2: "Kun nogle mapper vises for at undgå problemer" TO_MANY_FOLDERS_DESC_2: "Kun nogle mapper vises for at undgå problemer"
HELP_DELETE_FOLDER: "Slet mappe" HELP_DELETE_FOLDER: "Slet mappe"
HELP_SHOW_HIDE_FOLDER: "Vis/skjul mappe" HELP_SHOW_HIDE_FOLDER: "Vis/skjul mappe"
HELP_CHECK_FOR_NEW_MESSAGES: "Marker/fjern markering for nye meddelelser" HELP_CHECK_FOR_NEW_MESSAGES: "Markér/fjern markering for nye meddelelser"
SETTINGS_ACCOUNTS: SETTINGS_ACCOUNTS:
LEGEND_ACCOUNTS: "Kontoer" LEGEND_ACCOUNTS: "Kontoer"
LEGEND_IDENTITIES: "Identiteter" LEGEND_IDENTITIES: "Identiteter"
@ -549,7 +548,7 @@ da_DK:
BUTTON_ADD_ACCOUNT: "Tilføj konto" BUTTON_ADD_ACCOUNT: "Tilføj konto"
BUTTON_ADD_IDENTITY: "Tilføj identitet?" BUTTON_ADD_IDENTITY: "Tilføj identitet?"
BUTTON_DELETE: "Slet" BUTTON_DELETE: "Slet"
LOADING_PROCESS: "Opdatere..." LOADING_PROCESS: "Opdaterer..."
DELETING_ASK: "Er du sikker?" DELETING_ASK: "Er du sikker?"
DEFAULT_IDENTITY_LABEL: "standard" DEFAULT_IDENTITY_LABEL: "standard"
SETTINGS_IDENTITIES: SETTINGS_IDENTITIES:
@ -562,7 +561,7 @@ da_DK:
LABEL_ADD_SIGNATURE_TO_ALL: "Tilføj din signatur til alle meddelelser" LABEL_ADD_SIGNATURE_TO_ALL: "Tilføj din signatur til alle meddelelser"
BUTTON_ADD_IDENTITY: "Tilføj identitet" BUTTON_ADD_IDENTITY: "Tilføj identitet"
BUTTON_DELETE: "Slet" BUTTON_DELETE: "Slet"
LOADING_PROCESS: "Opdatere identitets oversigt" LOADING_PROCESS: "Opdaterer identitetsoversigt"
DELETING_ASK: "Er du sikker?" DELETING_ASK: "Er du sikker?"
SETTINGS_CHANGE_PASSWORD: SETTINGS_CHANGE_PASSWORD:
LEGEND_CHANGE_PASSWORD: "Skift adgangskode" LEGEND_CHANGE_PASSWORD: "Skift adgangskode"
@ -580,47 +579,47 @@ da_DK:
DELETING_ASK: "Er du sikker?" DELETING_ASK: "Er du sikker?"
GENERATE_ONLY_HTTPS: "Kun HTTPS" GENERATE_ONLY_HTTPS: "Kun HTTPS"
SHORTCUTS_HELP: SHORTCUTS_HELP:
LEGEND_SHORTCUTS_HELP: "Hjælp til tastetur genveje" LEGEND_SHORTCUTS_HELP: "Hjælp til tasteturgenveje"
TAB_MAILBOX: "Postkasse" TAB_MAILBOX: "Postkasse"
TAB_MESSAGE_LIST: "Meddelelses oversigt" TAB_MESSAGE_LIST: "Meddelelsesoversigt"
TAB_MESSAGE_VIEW: "Meddelelses visning" TAB_MESSAGE_VIEW: "Meddelelsesvisning"
TAB_COMPOSE: "Forfat" TAB_COMPOSE: "Forfat"
LABEL_OPEN_USER_DROPDOWN: "Åben bruger menu" LABEL_OPEN_USER_DROPDOWN: "Åben brugermenu"
LABEL_REPLY: "Svar" LABEL_REPLY: "Svar"
LABEL_REPLY_ALL: "Svar alle" LABEL_REPLY_ALL: "Svar alle"
LABEL_FORWARD: "Videresend" LABEL_FORWARD: "Videresend"
LABEL_FORWARD_MULTIPLY: "Videresend som vedhæftning(er)" LABEL_FORWARD_MULTIPLY: "Videresend som vedhæftning(er)"
LABEL_HELP: "Hjælp" LABEL_HELP: "Hjælp"
LABEL_CHECK_ALL: "Vælg alle meddelelser" LABEL_CHECK_ALL: "Vælg alle meddelelser"
LABEL_ARCHIVE: "Arkiver" LABEL_ARCHIVE: "Arkivér"
LABEL_DELETE: "Slet" LABEL_DELETE: "Slet"
LABEL_OPEN_THREAD: "Åben valgte samtale" LABEL_OPEN_THREAD: "Åben valgte samtale"
LABEL_MOVE: "Flyt" LABEL_MOVE: "Flyt"
LABEL_READ: "Marker valgte meddelelser som læst" LABEL_READ: "Markér valgte meddelelser som læste"
LABEL_UNREAD: "Marker valgte meddelelser som ulæst" LABEL_UNREAD: "Markér valgte meddelelser som ulæste"
LABEL_IMPORTANT: "Marker valgte meddelelser som vigtige" LABEL_IMPORTANT: "Markér valgte meddelelser som vigtige"
LABEL_SEARCH: "Søg" LABEL_SEARCH: "Søg"
LABEL_CANCEL_SEARCH: "Annuller søgning" LABEL_CANCEL_SEARCH: "Annuller søgning"
LABEL_FULLSCREEN_ENTER: "Fuld skærm (Preview panel layout)" LABEL_FULLSCREEN_ENTER: "Fuld skærm (Preview panel layout)"
LABEL_VIEW_MESSAGE_ENTER: "Vis meddelelser (Uden preview panel layout)" LABEL_VIEW_MESSAGE_ENTER: "Vis meddelelser (Uden preview panel layout)"
LABEL_SWITCH_TO_MESSAGE: "Fokuser på valgte meddelelser" LABEL_SWITCH_TO_MESSAGE: "Fokuser på valgte meddelelser"
LABEL_SWITCH_TO_FOLDER_LIST: "Fokuser på mappe oversigt" LABEL_SWITCH_TO_FOLDER_LIST: "Fokuser på mappeoversigt"
LABEL_FULLSCREEN_TOGGLE: "Fuld skærm" LABEL_FULLSCREEN_TOGGLE: "Fuld skærm"
LABEL_BLOCKQUOTES_TOGGLE: "Slå blokcitater til/fra i meddelelser" LABEL_BLOCKQUOTES_TOGGLE: "Slå blokcitater til/fra i meddelelser"
LABEL_THREAD_NEXT: "Næste besked i samtale" LABEL_THREAD_NEXT: "Næste besked i samtale"
LABEL_THREAD_PREV: "Forrige besked i samtale" LABEL_THREAD_PREV: "Forrige besked i samtale"
LABEL_PRINT: "Print" LABEL_PRINT: "Udskriv"
LABEL_EXIT_FULLSCREEN: "Luk fuld skærm" LABEL_EXIT_FULLSCREEN: "Luk fuld skærm"
LABEL_CLOSE_MESSAGE: "Luk meddelelses (Uden preview panel layout)" LABEL_CLOSE_MESSAGE: "Luk meddelelse (Uden preview panel layout)"
LABEL_SWITCH_TO_LIST: "Fokuser på meddelelses oversigt" LABEL_SWITCH_TO_LIST: "Fokuser på meddelelsesoversigt"
LABEL_OPEN_COMPOSE_POPUP: "Åben forfatter popup" LABEL_OPEN_COMPOSE_POPUP: "Åben forfatter popup"
LABEL_MINIMIZE_COMPOSE_POPUP: "Minimer forfatter popup" LABEL_MINIMIZE_COMPOSE_POPUP: "Minimer forfatter popup"
LABEL_OPEN_IDENTITIES_DROPDOWN: "Åben identitets menu" LABEL_OPEN_IDENTITIES_DROPDOWN: "Åben identitetsmenu"
LABEL_SAVE_MESSAGE: "Gem meddelelse" LABEL_SAVE_MESSAGE: "Gem meddelelse"
LABEL_SEND_MESSAGE: "Send meddelelse" LABEL_SEND_MESSAGE: "Send meddelelse"
LABEL_CLOSE_COMPOSE: "Luk forfatter mode" LABEL_CLOSE_COMPOSE: "Luk forfatter mode"
PGP_NOTIFICATIONS: PGP_NOTIFICATIONS:
NO_PUBLIC_KEYS_FOUND: "Igen offentlige nøgler fundet" NO_PUBLIC_KEYS_FOUND: "Ingen offentlige nøgler fundet"
NO_PUBLIC_KEYS_FOUND_FOR: "Ingen offentlige nøgler fundet tilhørende \"%EMAIL%\"" NO_PUBLIC_KEYS_FOUND_FOR: "Ingen offentlige nøgler fundet tilhørende \"%EMAIL%\""
NO_PRIVATE_KEY_FOUND: "Ingen privat nøgle fundet" NO_PRIVATE_KEY_FOUND: "Ingen privat nøgle fundet"
NO_PRIVATE_KEY_FOUND_FOR: "Ingen privat nøgle fundet tilhørende \"%EMAIL%\"" NO_PRIVATE_KEY_FOUND_FOR: "Ingen privat nøgle fundet tilhørende \"%EMAIL%\""
@ -630,7 +629,7 @@ da_DK:
DECRYPTION_ERROR: "OpenPGP dekrypterings fejl" DECRYPTION_ERROR: "OpenPGP dekrypterings fejl"
GOOD_SIGNATURE: "Accepteret signatur for %USER\"" GOOD_SIGNATURE: "Accepteret signatur for %USER\""
PGP_ERROR: "OpenPGP fejl: %ERROR%" PGP_ERROR: "OpenPGP fejl: %ERROR%"
SPECIFY_FROM_EMAIL: "Udfyld afsender adresse" SPECIFY_FROM_EMAIL: "Udfyld afsenderadresse"
SPECIFY_AT_LEAST_ONE_RECIPIENT: "Angiv mindst en modtager" SPECIFY_AT_LEAST_ONE_RECIPIENT: "Angiv mindst en modtager"
NOTIFICATIONS: NOTIFICATIONS:
INVALID_TOKEN: "Ugyldigt tegn" INVALID_TOKEN: "Ugyldigt tegn"
@ -649,15 +648,15 @@ da_DK:
af e-mail og tilføj ID'et under konto indstillinger. af e-mail og tilføj ID'et under konto indstillinger.
DOMAIN_NOT_ALLOWED: "Domæne ikke tilladt" DOMAIN_NOT_ALLOWED: "Domæne ikke tilladt"
ACCOUNT_NOT_ALLOWED: "Konto ikke tilladt" ACCOUNT_NOT_ALLOWED: "Konto ikke tilladt"
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED: "2-faktor verificering påbudt." ACCOUNT_TWO_FACTOR_AUTH_REQUIRED: "2-faktor verifikation påbudt."
ACCOUNT_TWO_FACTOR_AUTH_ERROR: "2-faktor verifikations fejl" ACCOUNT_TWO_FACTOR_AUTH_ERROR: "2-faktor verifikationsfejl"
COULD_NOT_SAVE_NEW_PASSWORD: "Kunne ikke gemme ny adgangskode" COULD_NOT_SAVE_NEW_PASSWORD: "Kunne ikke gemme ny adgangskode"
CURRENT_PASSWORD_INCORRECT: "Nuværende adgangskode forkert" CURRENT_PASSWORD_INCORRECT: "Nuværende adgangskode forkert"
NEW_PASSWORD_SHORT: "Adgangskoden for kort" NEW_PASSWORD_SHORT: "Adgangskoden for kort"
NEW_PASSWORD_WEAK: "Adgangskoden for simpel" NEW_PASSWORD_WEAK: "Adgangskoden for simpel"
NEW_PASSWORD_FORBIDDENT: "Adgangskode indenholder forbudte tegn" NEW_PASSWORD_FORBIDDENT: "Adgangskode indeholder forbudte tegn"
CONTACTS_SYNC_ERROR: "Fejl ved synkronisering af kontakter" CONTACTS_SYNC_ERROR: "Fejl ved synkronisering af kontakter"
CANT_GET_MESSAGE_LIST: "Kan ikke indlæse meddelelses oversigt " CANT_GET_MESSAGE_LIST: "Kan ikke indlæse meddelelsesoversigt "
CANT_GET_MESSAGE: "Kan ikke indlæse meddelelse" CANT_GET_MESSAGE: "Kan ikke indlæse meddelelse"
CANT_DELETE_MESSAGE: "Kan ikke slette meddelelse" CANT_DELETE_MESSAGE: "Kan ikke slette meddelelse"
CANT_MOVE_MESSAGE: "Kan ikke flytte meddelelse" CANT_MOVE_MESSAGE: "Kan ikke flytte meddelelse"
@ -678,24 +677,24 @@ da_DK:
DOMAIN_ALREADY_EXISTS: "Domæne eksisterer allerede" DOMAIN_ALREADY_EXISTS: "Domæne eksisterer allerede"
CANT_INSTALL_PACKAGE: "Installation af pakke mislykkedes" CANT_INSTALL_PACKAGE: "Installation af pakke mislykkedes"
CANT_DELETE_PACKAGE: "Fjernelse af pakke mislykkedes" CANT_DELETE_PACKAGE: "Fjernelse af pakke mislykkedes"
INVALID_PLUGIN_PACKAGE: "Ugyldig tilføjelses pakke" INVALID_PLUGIN_PACKAGE: "Ugyldig tilføjelsespakke"
UNSUPPORTED_PLUGIN_PACKAGE: "Tilføjelses pakke ikke understøttet" UNSUPPORTED_PLUGIN_PACKAGE: "Tilføjelsespakke ikke understøttet"
LICENSING_SERVER_IS_UNAVAILABLE: "Abonnomentsserver ikke tilgængelig" LICENSING_SERVER_IS_UNAVAILABLE: "Abonnementsserver ikke tilgængelig"
LICENSING_DOMAIN_EXPIRED: "Abonnement på domæne udløbet." LICENSING_DOMAIN_EXPIRED: "Abonnement på domæne udløbet."
LICENSING_DOMAIN_BANNED: "Abonnement på domæne forbudt." LICENSING_DOMAIN_BANNED: "Abonnement på domæne forbudt."
DEMO_SEND_MESSAGE_ERROR: "Denne konto kan af sikkerheds hensyn ikke sende e-mails til eksterne adresser!" DEMO_SEND_MESSAGE_ERROR: "Denne konto kan af sikkerhedshensyn ikke sende e-mails til eksterne adresser!"
DEMO_ACCOUNT_ERROR: "Denne konto kan af sikkerheds hensyn ikke udføre denne handling!" DEMO_ACCOUNT_ERROR: "Denne konto kan af sikkerhedshensyn ikke udføre denne handling!"
ACCOUNT_ALREADY_EXISTS: "Kontoen eksistere allerede" ACCOUNT_ALREADY_EXISTS: "Kontoen eksisterer allerede"
ACCOUNT_DOES_NOT_EXIST: "Kontoen eksiterer ikke" ACCOUNT_DOES_NOT_EXIST: "Kontoen eksisterer ikke"
MAIL_SERVER_ERROR: "Der skete en fejl under adgang til e-mail serveren" MAIL_SERVER_ERROR: "Der skete en fejl under adgang til e-mail serveren"
INVALID_INPUT_ARGUMENT: "Ugyldigt argument" INVALID_INPUT_ARGUMENT: "Ugyldigt argument"
UNKNOWN_ERROR: "Ukendt fejl" UNKNOWN_ERROR: "Ukendt fejl"
STATIC: STATIC:
BACK_LINK: "Genindlæs" BACK_LINK: "Genindlæs"
DOMAIN_LIST_DESC: "Liste over domæner webmail er tilladt adgang til." DOMAIN_LIST_DESC: "Liste over domæner webmail er tilladt adgang til."
PHP_EXSTENSIONS_ERROR_DESC: "Nødvendige PHP udvidelser er ikke tilgengænlige!" PHP_EXSTENSIONS_ERROR_DESC: "Nødvendige PHP udvidelser er ikke tilgængelige!"
PHP_VERSION_ERROR_DESC: "PHP versionen (%VERSION%) er for gammel. Minimum 5.3.0 er nødvendig!" PHP_VERSION_ERROR_DESC: "PHP versionen (%VERSION%) er for gammel. Minimum 5.3.0 er nødvendig!"
NO_SCRIPT_TITLE: "JavaScript er nødvendig for dette program." NO_SCRIPT_TITLE: "JavaScript er nødvendigt for dette program."
NO_SCRIPT_DESC: | NO_SCRIPT_DESC: |
JavaScript er slået fra i din browser. JavaScript er slået fra i din browser.
Slå JavaScript til og prøv igen. Slå JavaScript til og prøv igen.
@ -705,5 +704,5 @@ da_DK:
Slå Cookies til og prøv igen. Slå Cookies til og prøv igen.
BAD_BROWSER_TITLE: "Din browser er forældet." BAD_BROWSER_TITLE: "Din browser er forældet."
BAD_BROWSER_DESC: | BAD_BROWSER_DESC: |
Enkle funktioner fungere ikke med denne browser. Enkelte funktioner fungerer ikke med denne browser.
For at bruge alle funktioner, hent en af følgende: For at bruge alle funktioner, hent en af følgende:

View file

@ -102,6 +102,7 @@ sl_SI:
BUTTON_BACK: "Nazaj" BUTTON_BACK: "Nazaj"
BUTTON_CLOSE: "Zapri" BUTTON_CLOSE: "Zapri"
BUTTON_DELETE: "Izbriši" BUTTON_DELETE: "Izbriši"
BUTTON_UNSUBSCRIBE: "Odjava s tega seznama"
BUTTON_ARCHIVE: "Arhiviraj" BUTTON_ARCHIVE: "Arhiviraj"
BUTTON_SPAM: "Vsiljena pošta" BUTTON_SPAM: "Vsiljena pošta"
BUTTON_NOT_SPAM: "Ni vsiljena pošta" BUTTON_NOT_SPAM: "Ni vsiljena pošta"
@ -144,6 +145,7 @@ sl_SI:
PRINT_LABEL_ATTACHMENTS: "Priloge" PRINT_LABEL_ATTACHMENTS: "Priloge"
MESSAGE_LOADING: "Nalaganje" MESSAGE_LOADING: "Nalaganje"
MESSAGE_VIEW_DESC: "Izberite sporočilo s seznama za ogled." MESSAGE_VIEW_DESC: "Izberite sporočilo s seznama za ogled."
MESSAGE_VIEW_MOVE_DESC: "Za izbor cilja kliknite na ime mape na levi strani."
PGP_PASSWORD_INPUT_PLACEHOLDER: "Geslo" PGP_PASSWORD_INPUT_PLACEHOLDER: "Geslo"
PGP_SIGNED_MESSAGE_DESC: "Sporočilo, podpisano z OpenPGP (kliknite za overovitev)" PGP_SIGNED_MESSAGE_DESC: "Sporočilo, podpisano z OpenPGP (kliknite za overovitev)"
PGP_ENCRYPTED_MESSAGE_DESC: "Sporočilo, šifrirano z OpenPGP (kliknite za dešifriranje)" PGP_ENCRYPTED_MESSAGE_DESC: "Sporočilo, šifrirano z OpenPGP (kliknite za dešifriranje)"

View file

@ -22,7 +22,7 @@ module.exports = function(publicPath, pro) {
publicPath: publicPath || 'rainloop/v/0.0.0/static/' publicPath: publicPath || 'rainloop/v/0.0.0/static/'
}, },
plugins: [ plugins: [
new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'RL_COMMUNITY': !pro, 'RL_COMMUNITY': !pro,
'process.env': { 'process.env': {
@ -86,7 +86,6 @@ module.exports = function(publicPath, pro) {
'key': 'window.key', 'key': 'window.key',
'_': 'window._', '_': 'window._',
'qr': 'window.qr', 'qr': 'window.qr',
'Promise': 'window.Promise',
'$': 'window.jQuery' '$': 'window.jQuery'
} }
}; };

774
yarn.lock

File diff suppressed because it is too large Load diff