Commit 23930fe2 authored by CardBook's avatar CardBook

version 29.0

parent 68e91cb7
......@@ -17,6 +17,7 @@ locale cardbook da chrome/locale/da/
locale cardbook de chrome/locale/de/
locale cardbook el chrome/locale/el/
locale cardbook en-US chrome/locale/en-US/
locale cardbook es-ES chrome/locale/es-ES/
locale cardbook fr chrome/locale/fr/
locale cardbook hr chrome/locale/hr/
locale cardbook hu chrome/locale/hu/
......
......@@ -40,6 +40,7 @@
<script src="chrome://cardbook/content/cardbookObserver.js"/>
<script src="chrome://cardbook/content/preferences/cardbookPreferences.js"/>
<script src="chrome://cardbook/content/cardbookClipboard.js"/>
<script src="chrome://cardbook/content/cardbookUtils.js"/>
<script src="chrome://cardbook/content/cardbookDates.js"/>
<script src="chrome://cardbook/content/cardbookElementTools.js"/>
......
......@@ -38,39 +38,6 @@ if ("undefined" == typeof(wdw_imageEdition)) {
return myFile;
},
clipboardGetSupportedFlavors: function() {
var flavors = [];
flavors.push("image/jpeg");
flavors.push("image/jpg");
flavors.push("image/png");
flavors.push("image/gif");
flavors.push("application/x-moz-file");
flavors.push("text/unicode");
flavors.push("text/plain");
return flavors;
},
clipboardCanPaste: function() {
var clipboard = Services.clipboard;
var flavors = wdw_imageEdition.clipboardGetSupportedFlavors();
return clipboard.hasDataMatchingFlavors(flavors, flavors.length, clipboard.kGlobalClipboard);
},
clipboardGetData: function() {
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
var flavors = wdw_imageEdition.clipboardGetSupportedFlavors();
for (i = 0; i < flavors.length; i++) {
trans.addDataFlavor(flavors[i]);
}
Services.clipboard.getData(trans, Services.clipboard.kGlobalClipboard);
var flavor = {};
var data = {};
var len = {};
trans.getAnyTransferData(flavor, data, len);
return { flavor: flavor.value, data: data.value, length: len.value };
},
clearImageCard: function () {
document.getElementById('defaultCardImage').src = "";
document.getElementById('imageForSizing').src = "";
......@@ -200,8 +167,9 @@ if ("undefined" == typeof(wdw_imageEdition)) {
pasteImageCard: function () {
try {
if (wdw_imageEdition.clipboardCanPaste()) {
var data = wdw_imageEdition.clipboardGetData();
var myType = "IMAGES";
if (cardbookClipboard.clipboardCanPaste(myType)) {
var data = cardbookClipboard.clipboardGetData(myType);
if (data.flavor.startsWith("image/")) {
var myExtension = data.flavor == "image/png" ? "png" : (data.flavor == "image/gif" ? "gif" : "jpg");
......@@ -267,50 +235,7 @@ if ("undefined" == typeof(wdw_imageEdition)) {
copyImageCard: function () {
try {
var imgTools = Components.classes["@mozilla.org/image/tools;1"].getService(Components.interfaces.imgITools);
var myFileURISpec = document.getElementById('photolocalURITextBox').value;
var myFileURI = Services.io.newURI(myFileURISpec, null, null);
// Thunderbird 52 and Linux
if (imgTools.decodeImageData) {
var myExtension = cardbookUtils.getFileNameExtension(myFileURISpec);
var imagedata = 'data:image/' + myExtension + ';base64,' + btoa(cardbookSynchronization.getFileBinary(myFileURI));
var channel = Services.io.newChannel2(imagedata, null, null, null, null, null, null, null);
var input = channel.open();
var container = {};
imgTools.decodeImageData(input, channel.contentType, container);
var wrapped = Components.classes["@mozilla.org/supports-interface-pointer;1"].createInstance(Components.interfaces.nsISupportsInterfacePointer);
wrapped.data = container.value;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor(channel.contentType);
trans.setTransferData(channel.contentType, wrapped, 0);
var clipid = Components.interfaces.nsIClipboard;
var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
clipboard.setData(trans, null, clipid.kGlobalClipboard);
// Thunderbird 60
} else if (imgTools.decodeImageFromBuffer) {
var myChannel = Services.io.newChannelFromURI2(myFileURI,
null,
Services.scriptSecurityManager.getSystemPrincipal(),
null,
Components.interfaces.nsILoadInfo.SEC_REQUIRE_SAME_ORIGIN_DATA_INHERITS,
Components.interfaces.nsIContentPolicy.TYPE_OTHER);
NetUtil.asyncFetch(myChannel, function (inputStream, status) {
if (!Components.isSuccessCode(status)) {
return;
}
var buffer = NetUtil.readInputStreamToString(inputStream, inputStream.available());
var container = imgTools.decodeImageFromBuffer(buffer, buffer.length, myChannel.contentType);
var wrapped = Components.classes["@mozilla.org/supports-interface-pointer;1"].createInstance(Components.interfaces.nsISupportsInterfacePointer);
wrapped.data = container;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor(myChannel.contentType);
trans.setTransferData(myChannel.contentType, wrapped, 0);
var clipid = Components.interfaces.nsIClipboard;
var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
clipboard.setData(trans, null, clipid.kGlobalClipboard);
});
}
cardbookClipboard.clipboardSetImage(document.getElementById('photolocalURITextBox').value);
}
catch (e) {
wdw_cardbooklog.updateStatusProgressInformation("wdw_imageEdition.copyImageCard error : " + e, "Error");
......@@ -324,7 +249,7 @@ if ("undefined" == typeof(wdw_imageEdition)) {
var myFileURI = Services.io.newURI(myFileURISpec, null, null);
var myFile = myFileURI.QueryInterface(Components.interfaces.nsIFileURL).file;
cardbookUtils.clipboardSet(myFile.path);
cardbookClipboard.clipboardSetText('text/unicode', myFile.path);
}
catch (e) {
wdw_cardbooklog.updateStatusProgressInformation("wdw_imageEdition.copyImageLocationCard error : " + e, "Error");
......
if ("undefined" == typeof(cardbookClipboard)) {
try {
ChromeUtils.import("resource://gre/modules/Services.jsm");
}
catch(e) {
Components.utils.import("resource://gre/modules/Services.jsm");
}
var cardbookClipboard = {
clipboardSetImage: function (aURISpec) {
try {
var imgTools = Components.classes["@mozilla.org/image/tools;1"].getService(Components.interfaces.imgITools);
var myFileURI = Services.io.newURI(aURISpec, null, null);
// Thunderbird 52 and Linux
if (imgTools.decodeImageData) {
var myExtension = cardbookUtils.getFileNameExtension(aURISpec);
var imagedata = 'data:image/' + myExtension + ';base64,' + btoa(cardbookSynchronization.getFileBinary(myFileURI));
var channel = Services.io.newChannel2(imagedata, null, null, null, null, null, null, null);
var input = channel.open();
var container = {};
imgTools.decodeImageData(input, channel.contentType, container);
var wrapped = Components.classes["@mozilla.org/supports-interface-pointer;1"].createInstance(Components.interfaces.nsISupportsInterfacePointer);
wrapped.data = container.value;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor(channel.contentType);
trans.setTransferData(channel.contentType, wrapped, 0);
var clipid = Components.interfaces.nsIClipboard;
var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
clipboard.setData(trans, null, clipid.kGlobalClipboard);
// Thunderbird 60
} else if (imgTools.decodeImageFromBuffer) {
var myChannel = Services.io.newChannelFromURI2(myFileURI,
null,
Services.scriptSecurityManager.getSystemPrincipal(),
null,
Components.interfaces.nsILoadInfo.SEC_REQUIRE_SAME_ORIGIN_DATA_INHERITS,
Components.interfaces.nsIContentPolicy.TYPE_OTHER);
NetUtil.asyncFetch(myChannel, function (inputStream, status) {
if (!Components.isSuccessCode(status)) {
return;
}
var buffer = NetUtil.readInputStreamToString(inputStream, inputStream.available());
var container = imgTools.decodeImageFromBuffer(buffer, buffer.length, myChannel.contentType);
var wrapped = Components.classes["@mozilla.org/supports-interface-pointer;1"].createInstance(Components.interfaces.nsISupportsInterfacePointer);
wrapped.data = container;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor(myChannel.contentType);
trans.setTransferData(myChannel.contentType, wrapped, 0);
var clipid = Components.interfaces.nsIClipboard;
var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
clipboard.setData(trans, null, clipid.kGlobalClipboard);
});
}
}
catch (e) {
wdw_cardbooklog.updateStatusProgressInformation("wdw_imageEdition.copyImageCard error : " + e, "Error");
}
},
clipboardSetText: function (aFlavor, aText, aMessage) {
let ss = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);
let trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
let clipid = Components.interfaces.nsIClipboard;
let clipboard = Components.classes['@mozilla.org/widget/clipboard;1'].getService(clipid);
if (!clipboard)
return;
ss.data = aText;
trans.addDataFlavor(aFlavor);
trans.setTransferData(aFlavor, ss, aText.length * 2);
clipboard.setData(trans, null, clipid.kGlobalClipboard);
if (aMessage != null && aMessage !== undefined && aMessage != "") {
wdw_cardbooklog.updateStatusProgressInformation(aMessage);
}
},
clipboardGetSupportedFlavors: function(aType) {
var flavors = [];
if (aType == "IMAGES") {
flavors.push("image/jpeg");
flavors.push("image/jpg");
flavors.push("image/png");
flavors.push("image/gif");
flavors.push("application/x-moz-file");
flavors.push("text/unicode");
flavors.push("text/plain");
} else if (aType == "CARDS") {
flavors.push("text/x-moz-cardbook-id");
}
return flavors;
},
clipboardCanPaste: function(aType) {
var flavors = cardbookClipboard.clipboardGetSupportedFlavors(aType);
return Services.clipboard.hasDataMatchingFlavors(flavors, flavors.length, Services.clipboard.kGlobalClipboard);
},
clipboardGetData: function(aType) {
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
var flavors = cardbookClipboard.clipboardGetSupportedFlavors(aType);
for (i = 0; i < flavors.length; i++) {
trans.addDataFlavor(flavors[i]);
}
Services.clipboard.getData(trans, Services.clipboard.kGlobalClipboard);
var flavor = {};
var data = {};
var len = {};
trans.getAnyTransferData(flavor, data, len);
return { flavor: flavor.value, data: data.value, length: len.value };
}
};
var loader = Services.scriptloader;
loader.loadSubScript("chrome://cardbook/content/wdw_log.js");
};
......@@ -1897,47 +1897,6 @@ if ("undefined" == typeof(cardbookUtils)) {
}
},
clipboardSet: function (aText, aMessage) {
let ss = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);
let trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
let clipid = Components.interfaces.nsIClipboard;
let clipboard = Components.classes['@mozilla.org/widget/clipboard;1'].getService(clipid);
if (!clipboard)
return;
ss.data = aText;
trans.addDataFlavor('text/unicode');
trans.setTransferData('text/unicode', ss, aText.length * 2);
clipboard.setData(trans, null, clipid.kGlobalClipboard);
if (aMessage != null && aMessage !== undefined && aMessage != "") {
wdw_cardbooklog.updateStatusProgressInformation(aMessage);
}
},
clipboardGet: function () {
try {
let clipboard = Services.clipboard;
let trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor("text/unicode");
clipboard.getData(trans, clipboard.kGlobalClipboard);
let str = {};
let strLength = {};
trans.getTransferData("text/unicode", str, strLength);
if (str)
str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
return str ? str.data.substring(0, strLength.value / 2) : null;
}
catch (e) {
wdw_cardbooklog.updateStatusProgressInformation("cardbookUtils.clipboardGet error : " + e, "Error");
}
},
callFilePicker: function (aTitle, aMode, aType, aDefaultFileName, aCallback, aCallbackParam) {
try {
var strBundle = document.getElementById("cardbook-strings");
......
......@@ -47,3 +47,29 @@ toolbarbutton.focusbutton {
-moz-box-flex: 1;
}
.ruleactiontarget[type="cardbook#removeFrom"] {
-moz-binding: url("chrome://cardbook/content/filters/bindings.xml#abPickerAction");
-moz-box-flex: 1;
}
.ruleactiontarget[type="cardbook#removeTo"] {
-moz-binding: url("chrome://cardbook/content/filters/bindings.xml#abPickerAction");
-moz-box-flex: 1;
}
.ruleactiontarget[type="cardbook#removeCc"] {
-moz-binding: url("chrome://cardbook/content/filters/bindings.xml#abPickerAction");
-moz-box-flex: 1;
}
.ruleactiontarget[type="cardbook#removeBcc"] {
-moz-binding: url("chrome://cardbook/content/filters/bindings.xml#abPickerAction");
-moz-box-flex: 1;
}
.ruleactiontarget[type="cardbook#removeAll"] {
-moz-binding: url("chrome://cardbook/content/filters/bindings.xml#abPickerAction");
-moz-box-flex: 1;
}
......@@ -28,10 +28,10 @@ if ("undefined" == typeof(ovl_filters)) {
_addEmails: function(aMsgHdrs, aActionValue, aField) {
if (!cardbookPreferences.getEnabled(aActionValue)) {
cardbookUtils.formatStringForOutput("errorFiltersAddEmailsABNotEnabled", [aField, aActionValue], "Error");
cardbookUtils.formatStringForOutput("errorFiltersAddEmailsABDisabled", [aField, aActionValue], "Error");
return;
}
let count = aMsgHdrs.length;
for (var i = 0; i < count; i++) {
let hdr = aMsgHdrs.queryElementAt(i, Components.interfaces.nsIMsgDBHdr);
......@@ -43,9 +43,32 @@ if ("undefined" == typeof(ovl_filters)) {
}
},
_removeEmails: function(aMsgHdrs, aActionValue, aField) {
if (!cardbookPreferences.getEnabled(aActionValue)) {
cardbookUtils.formatStringForOutput("errorFiltersRemoveEmailsABDisabled", [aField, aActionValue], "Error");
return;
}
let count = aMsgHdrs.length;
for (var i = 0; i < count; i++) {
let hdr = aMsgHdrs.queryElementAt(i, Components.interfaces.nsIMsgDBHdr);
var addresses = {}, names = {}, fullAddresses = {};
MailServices.headerParser.parseHeadersWithArray(hdr[aField], addresses, names, fullAddresses);
for (var j = 0; j < addresses.value.length; j++) {
var myEmail = addresses.value[j].toLowerCase();
if (cardbookRepository.cardbookCardEmails[aActionValue]) {
if (cardbookRepository.cardbookCardEmails[aActionValue][myEmail]) {
var myCard = cardbookRepository.cardbookCardEmails[aActionValue][myEmail][0];
cardbookRepository.deleteCards([myCard], "cardbook.cardRemovedIndirect");
}
}
}
}
},
_matchEmails: function(aMsgHdrEmails, aSearchValue, aSearchOp) {
if (!cardbookPreferences.getEnabled(aSearchValue)) {
cardbookUtils.formatStringForOutput("errorFiltersMatchEmailsABNotEnabled", [aSearchValue], "Error");
cardbookUtils.formatStringForOutput("errorFiltersMatchEmailsABDisabled", [aSearchValue], "Error");
return false;
}
var addresses = {}, names = {}, fullAddresses = {};
......@@ -283,6 +306,74 @@ if ("undefined" == typeof(ovl_filters)) {
};
MailServices.filters.addCustomAction(addAll);
var removeFrom = {
id: "cardbook#removeFrom",
name: strBundle.GetStringFromName("cardbook.removeFrom.name"),
isValidForType: function(type, scope) {return true;},
validateActionValue: function(value, folder, type) { return null;},
allowDuplicates: true,
needsBody: false,
apply: function (aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) {
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "author");
}
};
MailServices.filters.addCustomAction(removeFrom);
var removeTo = {
id: "cardbook#removeTo",
name: strBundle.GetStringFromName("cardbook.removeTo.name"),
isValidForType: function(type, scope) {return true;},
validateActionValue: function(value, folder, type) { return null;},
allowDuplicates: true,
needsBody: false,
apply: function (aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) {
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "recipients");
}
};
MailServices.filters.addCustomAction(removeTo);
var removeCc = {
id: "cardbook#removeCc",
name: strBundle.GetStringFromName("cardbook.removeCc.name"),
isValidForType: function(type, scope) {return true;},
validateActionValue: function(value, folder, type) { return null;},
allowDuplicates: true,
needsBody: false,
apply: function (aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) {
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "ccList");
}
};
MailServices.filters.addCustomAction(removeCc);
var removeBcc = {
id: "cardbook#removeBcc",
name: strBundle.GetStringFromName("cardbook.removeBcc.name"),
isValidForType: function(type, scope) {return true;},
validateActionValue: function(value, folder, type) { return null;},
allowDuplicates: true,
needsBody: false,
apply: function (aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) {
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "bccList");
}
};
MailServices.filters.addCustomAction(removeBcc);
var removeAll = {
id: "cardbook#removeAll",
name: strBundle.GetStringFromName("cardbook.removeAll.name"),
isValidForType: function(type, scope) {return true;},
validateActionValue: function(value, folder, type) { return null;},
allowDuplicates: true,
needsBody: false,
apply: function (aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) {
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "author");
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "recipients");
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "ccList");
ovl_filters._removeEmails(aMsgHdrs, aActionValue, "bccList");
}
};
MailServices.filters.addCustomAction(removeAll);
window.removeEventListener('load', arguments.callee, true);
}
};
......
......@@ -20,6 +20,7 @@
<script src="wdw_cardbook.js"/>
<script src="chrome://cardbook/content/preferences/cardbookPreferences.js"/>
<script src="cardbookSynchronization.js"/>
<script src="cardbookClipboard.js"/>
<script src="cardbookUtils.js"/>
<script src="cardbookObserver.js"/>
<script src="wdw_log.js"/>
......
......@@ -76,12 +76,11 @@
<splitter id="dirTreeSplitter" collapse="before" persist="state orient" class="cardbookVerticalSplitterClass"/>
<box id="cardsBox" flex="1">
<hbox id="rightPaneUpHbox" flex="1" persist="width height collapsed">
<hbox id="rightPaneUpHbox" flex="1" persist="width height collapsed" ondragover="wdw_cardbook.canDropOnContactBox(event);" ondrop="wdw_cardbook.dragCards(event);">
<tree id="cardsTree" class="cardbookTreeClass cardbookCardsTreeClass" context="cardsTreeContextMenu" flex="1" enableColumnDrag="true" persist="height sortDirection sortResource" sortDirection="ascending" sortResource="lastname"
onkeyup="wdw_cardbook.selectCard(event);" onclick="wdw_cardbook.sortTrees(event);">
<treecols id="cardsTreecols"/>
<treechildren id="cardsTreeChildren" ondragstart="wdw_cardbook.startDrag(event);" ondrop="wdw_cardbook.dragCards(event);"
ondblclick="wdw_cardbook.doubleClickCardsTree(event);"/>
<treechildren id="cardsTreeChildren" ondragstart="wdw_cardbook.startDrag(event);" ondblclick="wdw_cardbook.doubleClickCardsTree(event);"/>
</tree>
</hbox>
......
......@@ -94,7 +94,7 @@ if ("undefined" == typeof(ovl_synchro)) {
prefs.setCharPref("accountsShown", "all");
prefs.setCharPref("accountShown", "");
prefs.setCharPref("uncategorizedCards", "");
prefs.setCharPref("addonVersion", "28.9");
prefs.setCharPref("addonVersion", "29.0");
},
lEventTimerSync : { notify: function(lTimerSync) {
......
This diff is collapsed.
......@@ -52,7 +52,7 @@ if ("undefined" == typeof(wdw_logEdition)) {
myLogArray.push(myTree.view.getCellText(i, {id: "logEditionValue"}));
}
}
cardbookUtils.clipboardSet(myLogArray.join("\n"));
cardbookClipboard.clipboardSetText('text/unicode', myLogArray.join("\n"));
}
catch (e) {
var errorTitle = "clipboard error";
......
......@@ -16,6 +16,7 @@
<stringbundleset id="stringbundleset"/>
<script src="cardbookClipboard.js"/>
<script src="cardbookUtils.js"/>
<script src="wdw_log.js"/>
<script src="wdw_logEdition.js"/>
......
......@@ -224,6 +224,11 @@ cardbook.addTo.name=Přidat komu do CardBooku
cardbook.addCc.name=Přidat cc do CardBooku
cardbook.addBcc.name=Přidat bcc do CardBooku
cardbook.addAll.name=Přidat od, komu, cc nebo bcc do CardBooku
cardbook.removeFrom.name=??Remove From from CardBook??
cardbook.removeTo.name=??Remove To from CardBook??
cardbook.removeCc.name=??Remove Cc from CardBook??
cardbook.removeBcc.name=??Remove Bcc from CardBook??
cardbook.removeAll.name=??Remove From, To, Cc or Bcc from CardBook??
urlDownloaded=URL stažena : %S
......@@ -299,8 +304,8 @@ calendarNotWritableTitle=BirthdayReminder - Synchronizace s Lightningem zrušena
calendarNotWritableMessage=Kalendář %S není zapisovatelný (možná je pouze pro čtení, nebo jste offline?). Synchronizace s Lightningem zrušena.
errorAttachingFile=Attaching vCard : Nelze vytvořit soubor pro přiložení vCard k mailu : %1$S (%2$S)
errorFiltersAddEmailsABNotEnabled=Filters : addEmails : %1$S akce, adresář není povolen : %2$S
errorFiltersMatchEmailsABNotEnabled=Filters : matchEmails, adresář není povolen : %S
errorFiltersAddEmailsABDisabled=Filters : addEmails : %1$S akce, adresář není povolen : %2$S
errorFiltersMatchEmailsABDisabled=Filters : matchEmails, adresář není povolen : %S
errorInfiniteLoopRecursion=Seznamy : nekonečná rekurzivní smyčka v seznamech : %S
WRONG_VERSION=Jsou podporovány pouze vCard verze 3.0 nebo 4.0
unableToParseResponse=%1$S : Díky následujícímu řádku se nepodařilo zpracovat odpověď serveru : %2$S
......
......@@ -224,6 +224,11 @@ cardbook.addTo.name=Tilføj Til til CardBook
cardbook.addCc.name=Tilføj Cc til CardBook
cardbook.addBcc.name=Tilføj Bcc til CardBook
cardbook.addAll.name=Tilføj Fra, Til, Cc eller Bcc til CardBook
cardbook.removeFrom.name=??Remove From from CardBook??
cardbook.removeTo.name=??Remove To from CardBook??
cardbook.removeCc.name=??Remove Cc from CardBook??
cardbook.removeBcc.name=??Remove Bcc from CardBook??
cardbook.removeAll.name=??Remove From, To, Cc or Bcc from CardBook??
urlDownloaded=URL hentet : %S
......@@ -299,8 +304,8 @@ calendarNotWritableTitle=Mærkedagspåmindelse - Synkronisering med Lightning an
calendarNotWritableMessage=Kalender %S er ikke skrivbar (måske skrivebeskyttet eller offline?). Synkronisering med Lightning annulleret.
errorAttachingFile=Vedlægning af vCard : Kan ikke generere filen til vedlæggelse af vCard'et til e-mailen : %1$S (%2$S)
errorFiltersAddEmailsABNotEnabled=Filtre : addEmails : %1$S handling, adressebog ikke aktiveret : %2$S
errorFiltersMatchEmailsABNotEnabled=Filtre : matchEmails, adressebog ikke aktiveret : %S
errorFiltersAddEmailsABDisabled=Filtre : addEmails : %1$S handling, adressebog ikke aktiveret : %2$S
errorFiltersMatchEmailsABDisabled=Filtre : matchEmails, adressebog ikke aktiveret : %S
errorInfiniteLoopRecursion=Lister : uendelig løkkerekursion for lister : %S
WRONG_VERSION=Kun vCards version 3.0 eller 4.0 understøttet
unableToParseResponse=%1$S : Umuligt at fortolke serversvaret pga. denne linje : %2$S
......
......@@ -224,6 +224,11 @@ cardbook.addTo.name=An (To) zu CardBook hinzufügen
cardbook.addCc.name=Kopie (Cc) zu CardBook hinzufügen
cardbook.addBcc.name=Blindkopie (Bcc) zu CardBook hinzufügen
cardbook.addAll.name=Von (From), An (To), Kopie (Cc) oder Blindkopie (Bcc) zu CardBook hinzufügen
cardbook.removeFrom.name=??Remove From from CardBook??
cardbook.removeTo.name=??Remove To from CardBook??
cardbook.removeCc.name=??Remove Cc from CardBook??
cardbook.removeBcc.name=??Remove Bcc from CardBook??
cardbook.removeAll.name=??Remove From, To, Cc or Bcc from CardBook??
urlDownloaded=URL heruntergeladen: %S
......@@ -299,8 +304,8 @@ calendarNotWritableTitle=Geburtstag-Erinnerung - Synchronisation mit Lightning a
calendarNotWritableMessage=Kalender %S ist nicht schreibbar, nur-lesend oder offline. Synchronisation mit Lightning abgebrochen.
errorAttachingFile=Attaching vCard : Die Datei zum Anhängen der vCard kann nicht erstellt werden : %1$S (%2$S)
errorFiltersAddEmailsABNotEnabled=Filters : addEmails : %1$S, Adressbuch nicht aktiviert : %2$S
errorFiltersMatchEmailsABNotEnabled=Filters : matchEmails, Adressbuch nicht aktiviert : %S
errorFiltersAddEmailsABDisabled=Filters : addEmails : %1$S, Adressbuch nicht aktiviert : %2$S
errorFiltersMatchEmailsABDisabled=Filters : matchEmails, Adressbuch nicht aktiviert : %S
errorInfiniteLoopRecursion=Lists : Nicht beendbare Rekursion in Listen : %S
WRONG_VERSION=Nur vCards Version 3.0 oder 4.0 werden unterstützt
unableToParseResponse=%1$S : Konnte die Antwort von Server nicht parsen. Fehlerhafte Zeile : %2$S
......
......@@ -224,6 +224,11 @@ cardbook.addTo.name=Προσθέστε Προς στο Επαφές
cardbook.addCc.name=Προσθέστε Κοιν στο Επαφές
cardbook.addBcc.name=Προσθέστε Κρυφ. κοιν στο Επαφές
cardbook.addAll.name=Προσθέστε Από, Προς, Κοιν ή Κρυφ. κοιν στις Επαφές
cardbook.removeFrom.name=??Remove From from CardBook??
cardbook.removeTo.name=??Remove To from CardBook??
cardbook.removeCc.name=??Remove Cc from CardBook??
cardbook.removeBcc.name=??Remove Bcc from CardBook??
cardbook.removeAll.name=??Remove From, To, Cc or Bcc from CardBook??
urlDownloaded=Παγκόσμιο εντοπισμό πόρων κατεβάσετε : %S
......@@ -299,8 +304,8 @@ calendarNotWritableTitle=Ειδοποιήσεις επετείου – συγχ
calendarNotWritableMessage=Ημερολόγιο %S δεν είναι εγγράψιμο (ίσως μόνο για ανάγνωση ή εκτός σύνδεσης;). Συγχρονισμός με τη Αστραπή (Lightning) αποκόπηκε.
errorAttachingFile=Σύνδεση της κάρτας εικονική κάρτα (vCard) : %1$S (%2$S)
errorFiltersAddEmailsABNotEnabled=Φίλτρα : προσθέστε μηνύματα ηλεκτρονικού ταχυδρομείου: %1$S δράση, βιβλίο διευθύνσεων δεν έχει ενεργοποιηθεί : %2$S
errorFiltersMatchEmailsABNotEnabled=Φίλτρα : αντιστοιχούν τα μηνύματα ηλεκτρονικού ταχυδρομείου, βιβλίο διευθύνσεων δεν έχει ενεργοποιηθεί : $S
errorFiltersAddEmailsABDisabled=Φίλτρα : προσθέστε μηνύματα ηλεκτρονικού ταχυδρομείου: %1$S δράση, βιβλίο διευθύνσεων δεν έχει ενεργοποιηθεί : %2$S
errorFiltersMatchEmailsABDisabled=Φίλτρα : αντιστοιχούν τα μηνύματα ηλεκτρονικού ταχυδρομείου, βιβλίο διευθύνσεων δεν έχει ενεργοποιηθεί : $S
errorInfiniteLoopRecursion=Λίστες : απεριόριστη επανάληψη βρόχου για λίστες : %S
WRONG_VERSION=Υποστηρίζονται μόνο εικονική κάρτα (vCard) έκδοση 3,0 ή 4,0
unableToParseResponse=%1$S : Αδύνατη η ανάλυση της απόκρισης του διακομιστή λόγω αυτής της γραμμής : %2$S
......
......@@ -224,6 +224,11 @@ cardbook.addTo.name=Add To to CardBook
cardbook.addCc.name=Add Cc to CardBook
cardbook.addBcc.name=Add Bcc to CardBook
cardbook.addAll.name=Add From, To, Cc or Bcc to CardBook
cardbook.removeFrom.name=Remove From from CardBook
cardbook.removeTo.name=Remove To from CardBook
cardbook.removeCc.name=Remove Cc from CardBook
cardbook.removeBcc.name=Remove Bcc from CardBook
cardbook.removeAll.name=Remove From, To, Cc or Bcc from CardBook
urlDownloaded=URL downloaded : %S
......@@ -299,8 +304,9 @@ calendarNotWritableTitle=Anniversary Reminder - Synchronization with Lightning a
calendarNotWritableMessage=Calendar %S is not writable (maybe read-only or offline?). Synchronization with Lightning aborted.
errorAttachingFile=Attaching vCard : Can not generate the file for attaching the vCard to the mail : %1$S (%2$S)
errorFiltersAddEmailsABNotEnabled=Filters : addEmails : %1$S action, address book not enabled : %2$S
errorFiltersMatchEmailsABNotEnabled=Filters : matchEmails, address book not enabled : %S
errorFiltersAddEmailsABDisabled=Filters : addEmails : %1$S action, %2$S : Address book disabled
errorFiltersRemoveEmailsABDisabled=Filters : removeEmails : %1$S action, %2$S : Address book disabled
errorFiltersMatchEmailsABDisabled=Filters : matchEmails, %1$S : Address book disabled
errorInfiniteLoopRecursion=Lists : infinite loop recursion for lists : %S
WRONG_VERSION=Only vCards version 3.0 or 4.0 supported
unableToParseResponse=%1$S : Impossible to parse the server response because of this line : %2$S
......
<!ENTITY NewGoogleTokenTitle "Nuevo token Google para CardBook">
......@@ -152,12 +152,12 @@ googleNewRefreshTokenOK=%1$S: Código de autorización recibido: %2$S…
googleRequestAccessToken=%1$S: Solicitud de "access token Google" sobre %2$S…
googleRequestRefreshToken=%1$S: Solicitud de "refresh token Google" sobre %2$S…
yahooAccessTokenOK=%1$S : Solicitud de "access token Yahoo!" exítosa, access token : %2$S
yahooRefreshTokenOK=%1$S : Solicitud de "refresh token Yahoo!" exítosa, refresh token : %2$S
yahooGetNewRefreshToken=%1$S : Recuperación de un nuevo "refresh token Yahoo!" sobre %2$S
yahooNewRefreshTokenOK=%1$S : Código de autorización recibido: %2$S
yahooRequestAccessToken=%1$S : Solicitud de "access token Yahoo!" sobre %2$S
yahooRequestRefreshToken=%1$S : Solicitud de "refresh token Yahoo!" sobre" %2$S
yahooAccessTokenOK=%1$S: Solicitud de "access token Yahoo!" exítosa, access token: %2$S
yahooRefreshTokenOK=%1$S: Solicitud de "refresh token Yahoo!" exítosa, refresh token: %2$S
yahooGetNewRefreshToken=%1$S: Recuperación de un nuevo "refresh token Yahoo!" sobre %2$S
yahooNewRefreshTokenOK=%1$S: Código de autorización recibido: %2$S
yahooRequestAccessToken=%1$S: Solicitud de "access token Yahoo!" sobre %2$S
yahooRequestRefreshToken=%1$S: Solicitud de "refresh token Yahoo!" sobre %2$S
periodicSyncDeleting=%1$S: Supresión del procesamiento de sincronización periódica (id: %2$S)
periodicSyncSetting=%1$S: Creación del procesamiento de sincronización periódica (intervalo: %2$S ms, id: %3$S)
......@@ -199,8 +199,6 @@ importNotIntoSameDir=No es posible importar en la misma carpeta
clipboardWrong=Los datos en el clipboard no son utilizables
clipboardEmpty=El clipboard está vacío
draggableWrong=Los contactos no se pueden llevar or drag-and-drop
imageError=Imagen no añadido por algun error
imageErrorWithMessage=Imagen no añadida: %S
imageSavedToFile=Imagen guardada en el archivo: %S
......@@ -226,6 +224,11 @@ cardbook.addTo.name=Añadir Para a CardBook
cardbook.addCc.name=Añadir Cc a CardBook
cardbook.addBcc.name=Añadir Bcc a CardBook
cardbook.addAll.name=Añadir De, Para, Cc o Bcc a CardBook
cardbook.removeFrom.name=??Remove From from CardBook??
cardbook.removeTo.name=??Remove To from CardBook??
cardbook.removeCc.name=??Remove Cc from CardBook??
cardbook.removeBcc.name=??Remove Bcc from CardBook??
cardbook.removeAll.name=??Remove From, To, Cc or Bcc from CardBook??
urlDownloaded=URL descargada: %S
......@@ -301,8 +304,8 @@ calendarNotWritableTitle=Recordatorio de cumpleaños - sincronización con Ligth
calendarNotWritableMessage=Calendario %S no se puede modificar (puede estar en modo solo lectura o estar inaccesible). Sincronización con Lightning cancelada.