зеркало из https://github.com/mozilla/pjs.git
Checked in patches for bug 253420:
no import of tasks from ical files
This commit is contained in:
Родитель
e924b73566
Коммит
f9eff44e20
|
@ -644,25 +644,12 @@ function newEventCommand( event )
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the new event button is clicked
|
* Called when the new task button is clicked
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function newToDoCommand()
|
function newToDoCommand()
|
||||||
{
|
{
|
||||||
var calendarToDo = createToDo();
|
newToDo( null, null ); // new task button defaults to undated todo
|
||||||
|
|
||||||
// created todo has no start or due date unless user wants one
|
|
||||||
calendarToDo.start.setTime( k_NO_DATE );
|
|
||||||
calendarToDo.due.setTime( k_NO_DATE );
|
|
||||||
|
|
||||||
var args = new Object();
|
|
||||||
args.mode = "new";
|
|
||||||
args.onOk = self.addToDoDialogResponse;
|
|
||||||
args.calendarEvent = calendarToDo;
|
|
||||||
|
|
||||||
window.setCursor( "wait" );
|
|
||||||
// open the dialog modally
|
|
||||||
openDialog("chrome://calendar/content/toDoDialog.xul", "caEditEvent", "chrome,modal", args );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -696,8 +683,9 @@ function isToDo ( aObject )
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to launch the event composer to create a new event.
|
* Defaults null start/end date based on selected date in current view.
|
||||||
* When the user clicks OK "addEventDialogResponse" is called
|
* Defaults calendarFile to the selected calendar file.
|
||||||
|
* Calls editNewEvent.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function newEvent( startDate, endDate, allDay )
|
function newEvent( startDate, endDate, allDay )
|
||||||
|
@ -726,42 +714,67 @@ function newEvent( startDate, endDate, allDay )
|
||||||
if( allDay )
|
if( allDay )
|
||||||
calendarEvent.allDay = true;
|
calendarEvent.allDay = true;
|
||||||
|
|
||||||
//get the selected calendar
|
var server = getSelectedCalendarPathOrNull();
|
||||||
var selectedCalendarItem = document.getElementById( "list-calendars-listbox" ).selectedItem;
|
|
||||||
|
|
||||||
var server = null;
|
|
||||||
|
|
||||||
if( selectedCalendarItem )
|
|
||||||
{
|
|
||||||
server = selectedCalendarItem.getAttribute( "calendarPath" );
|
|
||||||
}
|
|
||||||
|
|
||||||
editNewEvent( calendarEvent, server );
|
editNewEvent( calendarEvent, server );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Defaults null start/due date to the no_date date.
|
||||||
|
* Defaults calendarFile to the selected calendar file.
|
||||||
|
* Calls editNewToDo.
|
||||||
|
*/
|
||||||
|
function newToDo ( startDate, dueDate ) {
|
||||||
|
var calendarToDo = createToDo();
|
||||||
|
|
||||||
|
// created todo has no start or due date unless user wants one
|
||||||
|
if (! startDate )
|
||||||
|
calendarToDo.start.clear();
|
||||||
|
if (! dueDate )
|
||||||
|
calendarToDo.due.clear();
|
||||||
|
|
||||||
|
var server = getSelectedCalendarPathOrNull();
|
||||||
|
|
||||||
|
editNewToDo(calendarToDo, server);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSelectedCalendarPathOrNull()
|
||||||
|
{
|
||||||
|
//get the selected calendar
|
||||||
|
var selectedCalendarItem = document.getElementById( "list-calendars-listbox" ).selectedItem;
|
||||||
|
|
||||||
|
if ( selectedCalendarItem )
|
||||||
|
return selectedCalendarItem.getAttribute( "calendarPath" );
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to launch the event composer to edit a new event.
|
* Launch the event dialog to edit a new (created, imported, or pasted) event.
|
||||||
|
* 'server' is calendarPath.
|
||||||
* When the user clicks OK "addEventDialogResponse" is called
|
* When the user clicks OK "addEventDialogResponse" is called
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function editNewEvent( calendarEvent, server )
|
function editNewEvent( calendarEvent, server )
|
||||||
{
|
{
|
||||||
// set up a bunch of args to pass to the dialog
|
openEventDialog(calendarEvent,
|
||||||
|
"new",
|
||||||
var args = new Object();
|
self.addEventDialogResponse,
|
||||||
args.mode = "new";
|
server);
|
||||||
args.onOk = self.addEventDialogResponse;
|
|
||||||
args.calendarEvent = calendarEvent;
|
|
||||||
|
|
||||||
if( server )
|
|
||||||
args.server = server;
|
|
||||||
|
|
||||||
window.setCursor( "wait" );
|
|
||||||
// open the dialog modally
|
|
||||||
openDialog("chrome://calendar/content/eventDialog.xul", "caEditEvent", "chrome,modal", args );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Launch the todo dialog to edit a new (created, imported, or pasted) ToDo.
|
||||||
|
* 'server' is calendarPath.
|
||||||
|
* When the user clicks OK "addToDoDialogResponse" is called
|
||||||
|
*/
|
||||||
|
function editNewToDo( calendarToDo, server )
|
||||||
|
{
|
||||||
|
openToDoDialog(calendarToDo,
|
||||||
|
"new",
|
||||||
|
self.addToDoDialogResponse,
|
||||||
|
server);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the user clicks OK in the new event dialog
|
* Called when the user clicks OK in the new event dialog
|
||||||
|
@ -794,20 +807,12 @@ function addToDoDialogResponse( calendarToDo, Server )
|
||||||
|
|
||||||
function editEvent( calendarEvent )
|
function editEvent( calendarEvent )
|
||||||
{
|
{
|
||||||
// set up a bunch of args to pass to the dialog
|
openEventDialog(calendarEvent,
|
||||||
|
"edit",
|
||||||
var args = new Object();
|
self.modifyEventDialogResponse,
|
||||||
args.mode = "edit";
|
null);
|
||||||
args.onOk = self.modifyEventDialogResponse;
|
|
||||||
args.calendarEvent = calendarEvent;
|
|
||||||
|
|
||||||
// open the dialog modally
|
|
||||||
|
|
||||||
window.setCursor( "wait" );
|
|
||||||
openDialog("chrome://calendar/content/eventDialog.xul", "caEditEvent", "chrome,modal", args );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to launch the event composer to edit an event.
|
* Helper function to launch the event composer to edit an event.
|
||||||
* When the user clicks OK "modifyEventDialogResponse" is called
|
* When the user clicks OK "modifyEventDialogResponse" is called
|
||||||
|
@ -815,19 +820,12 @@ function editEvent( calendarEvent )
|
||||||
|
|
||||||
function editToDo( calendarToDo )
|
function editToDo( calendarToDo )
|
||||||
{
|
{
|
||||||
// set up a bunch of args to pass to the dialog
|
openToDoDialog(calendarToDo,
|
||||||
|
"edit",
|
||||||
var args = new Object();
|
self.modifyToDoDialogResponse,
|
||||||
args.mode = "edit";
|
null);
|
||||||
args.onOk = self.modifyToDoDialogResponse;
|
|
||||||
args.calendarEvent = calendarToDo;
|
|
||||||
|
|
||||||
window.setCursor( "wait" );
|
|
||||||
// open the dialog modally
|
|
||||||
openDialog("chrome://calendar/content/toDoDialog.xul", "caEditToDo", "chrome,modal", args );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the user clicks OK in the edit event dialog
|
* Called when the user clicks OK in the edit event dialog
|
||||||
*
|
*
|
||||||
|
@ -854,6 +852,47 @@ function modifyToDoDialogResponse( calendarToDo, Server )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** PRIVATE: open event dialog in mode, and call onOk if ok is clicked.
|
||||||
|
'mode' is "new" or "edit".
|
||||||
|
'server' is path to calendar to update.
|
||||||
|
**/
|
||||||
|
function openEventDialog(calendarEvent, mode, onOk, server)
|
||||||
|
{
|
||||||
|
// set up a bunch of args to pass to the dialog
|
||||||
|
var args = new Object();
|
||||||
|
args.calendarEvent = calendarEvent;
|
||||||
|
args.mode = mode;
|
||||||
|
args.onOk = onOk;
|
||||||
|
|
||||||
|
if( server )
|
||||||
|
args.server = server;
|
||||||
|
|
||||||
|
// wait cursor will revert to auto in eventDialog.js loadCalendarEventDialog
|
||||||
|
window.setCursor( "wait" );
|
||||||
|
// open the dialog modally
|
||||||
|
openDialog("chrome://calendar/content/eventDialog.xul", "caEditEvent", "chrome,modal", args );
|
||||||
|
}
|
||||||
|
|
||||||
|
/** PRIVATE: open todo dialog in mode, and call onOk if ok is clicked.
|
||||||
|
'mode' is "new" or "edit".
|
||||||
|
'server' is path to calendar to update.
|
||||||
|
**/
|
||||||
|
function openToDoDialog(calendarToDo, mode, onOk, server)
|
||||||
|
{
|
||||||
|
// set up a bunch of args to pass to the dialog
|
||||||
|
var args = new Object();
|
||||||
|
args.calendarEvent = calendarToDo;
|
||||||
|
args.mode = mode;
|
||||||
|
args.onOk = onOk;
|
||||||
|
if( server )
|
||||||
|
args.server = server;
|
||||||
|
|
||||||
|
// wait cursor will revert to auto in todoDialog.js loadCalendarEventDialog
|
||||||
|
window.setCursor( "wait" );
|
||||||
|
// open the dialog modally
|
||||||
|
openDialog("chrome://calendar/content/toDoDialog.xul", "caEditToDo", "chrome,modal", args );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is called from the unifinder's edit command
|
* This is called from the unifinder's edit command
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -121,62 +121,80 @@ function loadEventsFromFile()
|
||||||
{
|
{
|
||||||
var calendarEventArray = new Array();
|
var calendarEventArray = new Array();
|
||||||
var duplicateEventArray = new Array();
|
var duplicateEventArray = new Array();
|
||||||
|
var calendarToDoArray = new Array();
|
||||||
|
var duplicateToDoArray = new Array();
|
||||||
var currentFile;
|
var currentFile;
|
||||||
var aDataStream;
|
var aDataStream;
|
||||||
var i;
|
var i;
|
||||||
var tempEventArray;
|
var parsedEventArray = null, parsedToDoArray = null;
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
|
|
||||||
|
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService();
|
||||||
|
promptService = promptService.QueryInterface(Components.interfaces.nsIPromptService);
|
||||||
|
var flags = ( promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0 ) +
|
||||||
|
( promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_1 ) +
|
||||||
|
( promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_2 );
|
||||||
var intoCalName = getSelectedCalendarNameOrDefault();
|
var intoCalName = getSelectedCalendarNameOrDefault();
|
||||||
|
var importAllStr = gCalendarBundle.getString( "importAll" );
|
||||||
|
var promptStr = gCalendarBundle.getString( "promptForEach" );
|
||||||
|
var discardAllStr = gCalendarBundle.getString( "discardAll" );
|
||||||
|
var importNewEventsTitle = gCalendarBundle.getString( "aboutToImportNewEventsTitle" );
|
||||||
|
var importDupEventsTitle = gCalendarBundle.getString( "aboutToImportDupEventsTitle" );
|
||||||
|
var importNewTasksTitle = gCalendarBundle.getString( "aboutToImportNewTasksTitle" );
|
||||||
|
var importDupTasksTitle = gCalendarBundle.getString( "aboutToImportDupTasksTitle" );
|
||||||
|
var fromFileNames = "";
|
||||||
|
|
||||||
while (filesToAppend.hasMoreElements())
|
while (filesToAppend.hasMoreElements())
|
||||||
{
|
{
|
||||||
currentFile = filesToAppend.getNext().QueryInterface(Components.interfaces.nsILocalFile);
|
currentFile = filesToAppend.getNext().QueryInterface(Components.interfaces.nsILocalFile);
|
||||||
|
fromFileNames += (fromFileNames == "" ? "" : ", ") + currentFile.leafName;
|
||||||
aDataStream = readDataFromFile( currentFile.path, "UTF-8" );
|
aDataStream = readDataFromFile( currentFile.path, "UTF-8" );
|
||||||
|
|
||||||
switch (fp.filterIndex) {
|
switch (fp.filterIndex) {
|
||||||
|
case 1 : // xcs: transform data into ics data
|
||||||
|
aDataStream = transformXCSData( aDataStream );
|
||||||
|
// fall thru to process ics data
|
||||||
case 0 : // ics
|
case 0 : // ics
|
||||||
case 3 : // vcs
|
case 3 : // vcs
|
||||||
tempEventArray = parseIcalData( aDataStream );
|
parsedEventArray = parseIcalEvents( aDataStream );
|
||||||
break;
|
parsedToDoArray = parseIcalToDos( aDataStream );
|
||||||
case 1 : // xcs
|
|
||||||
tempEventArray = parseXCSData( aDataStream );
|
|
||||||
break;
|
break;
|
||||||
case 2: // csv
|
case 2: // csv
|
||||||
tempEventArray = parseOutlookCSVData( aDataStream );
|
parsedEventArray = parseOutlookCSVEvents( aDataStream );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
tempEventArray = null;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if( tempEventArray ) {
|
if( parsedEventArray ) {
|
||||||
for( i = 0; i < tempEventArray.length; i++ ) {
|
for( i = 0; i < parsedEventArray.length; i++ ) {
|
||||||
|
var parsedEvent = parsedEventArray[i];
|
||||||
date.setTime( tempEventArray[i].start.getTime() );
|
date.setTime( parsedEvent.start.getTime() );
|
||||||
if( entryExists( date, tempEventArray[i].title ) )
|
if( eventExists( date, parsedEvent.title ) )
|
||||||
duplicateEventArray[duplicateEventArray.length] = tempEventArray[i];
|
duplicateEventArray[duplicateEventArray.length] = parsedEvent;
|
||||||
else
|
else
|
||||||
calendarEventArray[calendarEventArray.length] = tempEventArray[i];
|
calendarEventArray[calendarEventArray.length] = parsedEvent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( parsedToDoArray ) {
|
||||||
|
for( i = 0; i < parsedToDoArray.length; i++ ) {
|
||||||
|
var parsedToDo = parsedToDoArray[i];
|
||||||
|
date.setTime( parsedToDo.start.getTime() );
|
||||||
|
if( toDoExists( date, parsedToDo.title ) )
|
||||||
|
duplicateToDoArray[duplicateToDoArray.length] = parsedToDo;
|
||||||
|
else
|
||||||
|
calendarToDoArray[calendarToDoArray.length] = parsedToDo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService();
|
|
||||||
promptService = promptService.QueryInterface(Components.interfaces.nsIPromptService);
|
|
||||||
var result = {value:0};
|
var result = {value:0};
|
||||||
var fromFileName = currentFile.leafName;
|
|
||||||
var importText = gCalendarBundle.getFormattedString( "aboutToImport", [calendarEventArray.length, fromFileName, intoCalName]);
|
|
||||||
var dupeText = gCalendarBundle.getFormattedString( "aboutToImportDupes", [duplicateEventArray.length]);
|
|
||||||
var importAllStr = gCalendarBundle.getString( "importAll" );
|
|
||||||
var promptStr = gCalendarBundle.getString( "promptForEach" );
|
|
||||||
var discardAllStr = gCalendarBundle.getString( "discardAll" );
|
|
||||||
var flags = ( promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0 ) +
|
|
||||||
( promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_1 ) +
|
|
||||||
( promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_2 );
|
|
||||||
|
|
||||||
// Ask user what to import (all / prompt each / none)
|
|
||||||
var buttonPressed;
|
var buttonPressed;
|
||||||
|
|
||||||
|
// EVENTS:
|
||||||
if (calendarEventArray.length > 0) {
|
if (calendarEventArray.length > 0) {
|
||||||
buttonPressed = promptService.confirmEx( window, "Import", importText, flags,
|
// Ask user what to import (all / prompt each / none)
|
||||||
|
var importNewEventsText = gCalendarBundle.getFormattedString( "aboutToImportNewEvents", [calendarEventArray.length, intoCalName, fromFileNames]);
|
||||||
|
buttonPressed = promptService.confirmEx( window, importNewEventsTitle, importNewEventsText, flags,
|
||||||
importAllStr, discardAllStr, promptStr,
|
importAllStr, discardAllStr, promptStr,
|
||||||
null, result );
|
null, result );
|
||||||
|
|
||||||
|
@ -187,9 +205,10 @@ function loadEventsFromFile()
|
||||||
//else if(buttonPressed == 1) // discard all
|
//else if(buttonPressed == 1) // discard all
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ask user what to do with duplicates
|
|
||||||
if (duplicateEventArray.length > 0) {
|
if (duplicateEventArray.length > 0) {
|
||||||
buttonPressed = promptService.confirmEx( window, "Import duplicates", dupeText, flags,
|
// Ask user what to do with duplicates
|
||||||
|
var importDupEventsText = gCalendarBundle.getFormattedString( "aboutToImportDupEvents", [duplicateEventArray.length, intoCalName, fromFileNames]);
|
||||||
|
buttonPressed = promptService.confirmEx( window, importDupEventsTitle, importDupEventsText, flags,
|
||||||
importAllStr, discardAllStr, promptStr,
|
importAllStr, discardAllStr, promptStr,
|
||||||
null, result );
|
null, result );
|
||||||
if(buttonPressed == 0) // Import all
|
if(buttonPressed == 0) // Import all
|
||||||
|
@ -199,10 +218,38 @@ function loadEventsFromFile()
|
||||||
//else if(buttonPressed == 1) // Discard all
|
//else if(buttonPressed == 1) // Discard all
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there were no events to import, let the user know
|
// TODOS
|
||||||
|
if (calendarToDoArray.length > 0) {
|
||||||
|
// Ask user what to import (all / prompt each / none)
|
||||||
|
var importNewTasksText = gCalendarBundle.getFormattedString( "aboutToImportNewTasks", [calendarToDoArray.length, intoCalName, fromFileNames]);
|
||||||
|
buttonPressed = promptService.confirmEx( window, importNewTasksTitle, importNewTasksText, flags,
|
||||||
|
importAllStr, discardAllStr, promptStr,
|
||||||
|
null, result );
|
||||||
|
|
||||||
|
if(buttonPressed == 0) // Import all
|
||||||
|
addToDosToCalendar( calendarToDoArray, true );
|
||||||
|
else if(buttonPressed == 2) // prompt
|
||||||
|
addToDosToCalendar( calendarToDoArray );
|
||||||
|
//else if(buttonPressed == 1) // discard all
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ask user what to do with duplicates
|
||||||
|
if (duplicateToDoArray.length > 0) {
|
||||||
|
var importDupTasksText = gCalendarBundle.getFormattedString( "aboutToImportDupTasks", [duplicateToDoArray.length, intoCalName, fromFileNames]);
|
||||||
|
buttonPressed = promptService.confirmEx( window, importDupTasksTitle, importDupTasksText, flags,
|
||||||
|
importAllStr, discardAllStr, promptStr,
|
||||||
|
null, result );
|
||||||
|
if(buttonPressed == 0) // Import all
|
||||||
|
addToDosToCalendar( duplicateToDoArray, true );
|
||||||
|
else if(buttonPressed == 2) // Prompt for each
|
||||||
|
addToDosToCalendar( duplicateToDoArray );
|
||||||
|
//else if(buttonPressed == 1) // Discard all
|
||||||
|
}
|
||||||
|
|
||||||
|
// If there were no events or todos to import, let the user know
|
||||||
//
|
//
|
||||||
if (calendarEventArray.length == 0 && duplicateEventArray.length == 0 )
|
if (parsedEventArray.length == 0 && parsedToDoArray.length == 0)
|
||||||
alert( gCalendarBundle.getString( "noEventsToImport" ) );
|
alert( gCalendarBundle.getFormattedString( "noEventsOrTasksToImport", [fromFileNames] ) );
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -276,6 +323,57 @@ function addEventsToCalendar( calendarEventArray, silent, calendarPath )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****
|
||||||
|
* calendarToDoArray: array of calendar toDo objects.
|
||||||
|
* silent: If silent, adds them all to selected (or default) calendar.
|
||||||
|
* else shows new toDo dialog on each toDo, using selected (or default)
|
||||||
|
* calendar as the initial calendar in dialog.
|
||||||
|
* calendarPath (optional): if present, overrides selected calendar.
|
||||||
|
* Value is calendarPath from another item in calendar list.
|
||||||
|
*/
|
||||||
|
function addToDosToCalendar( calendarToDoArray, silent, calendarPath )
|
||||||
|
{
|
||||||
|
if( ! calendarPath ) // null, "", or false
|
||||||
|
{
|
||||||
|
calendarPath = getSelectedCalendarPathOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
gICalLib.batchMode = true;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
for(var i = 0; i < calendarToDoArray.length; i++)
|
||||||
|
{
|
||||||
|
var calendarToDo = calendarToDoArray[i];
|
||||||
|
|
||||||
|
// Check if toDo with same ID already in Calendar. If so, import toDo with new ID.
|
||||||
|
if( gICalLib.fetchTodo( calendarToDo.id ) != null )
|
||||||
|
{
|
||||||
|
calendarToDo.id = createUniqueID( );
|
||||||
|
}
|
||||||
|
|
||||||
|
// the start time is in zulu time, need to convert to current time
|
||||||
|
convertZuluToLocalToDo( calendarToDo );
|
||||||
|
|
||||||
|
if( silent )
|
||||||
|
{
|
||||||
|
// LINAGORA (We need to see the new added toDo in the window and to update remote cal)
|
||||||
|
addToDoDialogResponse( calendarToDo, calendarPath );
|
||||||
|
/* gICalLib.addToDo( calendarToDo, calendarPath ); */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// open the toDo dialog with the toDo to add, calls addToDoDialogResponse on OK.
|
||||||
|
editNewToDo( calendarToDo, calendarPath );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
gICalLib.batchMode = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Return the calendarPath of the calendar selected in list-calendars-listbox,
|
/** Return the calendarPath of the calendar selected in list-calendars-listbox,
|
||||||
or the default calendarPath if none selected. **/
|
or the default calendarPath if none selected. **/
|
||||||
function getSelectedCalendarPathOrDefault()
|
function getSelectedCalendarPathOrDefault()
|
||||||
|
@ -367,6 +465,18 @@ function convertLocalToZuluEvent( calendarEvent )
|
||||||
convertLocalToZuluOEDateTime(calendarEvent.end);
|
convertLocalToZuluOEDateTime(calendarEvent.end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function convertZuluToLocalToDo( calendarToDo )
|
||||||
|
{
|
||||||
|
convertZuluToLocalOEDateTime(calendarToDo.start);
|
||||||
|
convertZuluToLocalOEDateTime(calendarToDo.due);
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertLocalToZuluToDo( calendarToDO )
|
||||||
|
{
|
||||||
|
convertLocalToZuluOEDateTime(calendarToDo.start);
|
||||||
|
convertLocalToZuluOEDateTime(calendarToDo.due);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize an event with a start and end date.
|
* Initialize an event with a start and end date.
|
||||||
*/
|
*/
|
||||||
|
@ -393,6 +503,28 @@ function initCalendarEvent( calendarEvent )
|
||||||
calendarEvent.end.setTime( endDateTime );
|
calendarEvent.end.setTime( endDateTime );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function initCalendarToDo( calendarToDo )
|
||||||
|
{
|
||||||
|
var startDate = gCalendarWindow.currentView.getNewEventDate();
|
||||||
|
|
||||||
|
var Minutes = Math.ceil( startDate.getMinutes() / 5 ) * 5 ;
|
||||||
|
|
||||||
|
startDate = new Date( startDate.getFullYear(),
|
||||||
|
startDate.getMonth(),
|
||||||
|
startDate.getDate(),
|
||||||
|
startDate.getHours(),
|
||||||
|
Minutes,
|
||||||
|
0);
|
||||||
|
|
||||||
|
calendarToDo.start.setTime( startDate );
|
||||||
|
|
||||||
|
var MinutesToAddOn = getIntPref(gCalendarWindow.calendarPreferences.calendarPref, "event.defaultlength", 60 );
|
||||||
|
|
||||||
|
var endDateTime = startDate.getTime() + ( 1000 * 60 * MinutesToAddOn );
|
||||||
|
|
||||||
|
calendarToDo.due.setTime( endDateTime );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function datesAreEqual(icalDate, date) {
|
function datesAreEqual(icalDate, date) {
|
||||||
|
|
||||||
|
@ -407,7 +539,7 @@ function datesAreEqual(icalDate, date) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function entryExists( date, subject) {
|
function eventExists( date, subject) {
|
||||||
|
|
||||||
var events = gEventSource.getEventsForDay( date );
|
var events = gEventSource.getEventsForDay( date );
|
||||||
|
|
||||||
|
@ -429,6 +561,25 @@ function entryExists( date, subject) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toDoExists( dueDate, subject) {
|
||||||
|
|
||||||
|
var date = new Date(dueDate.getFullYear(), dueDate.getMonth(), dueDate.getDate());
|
||||||
|
var toDos = gEventSource.getToDosForRange( date, date );
|
||||||
|
|
||||||
|
if (toDos.length == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
for (var i = 0; i < toDos.length; i++) {
|
||||||
|
|
||||||
|
var toDo = toDos[i];
|
||||||
|
|
||||||
|
if ( toDo.title == subject && datesAreEqual(toDo.due, dueDate))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
function promptToKeepEntry(title, startTime, endTime)
|
function promptToKeepEntry(title, startTime, endTime)
|
||||||
{
|
{
|
||||||
return confirm(
|
return confirm(
|
||||||
|
@ -440,20 +591,20 @@ function promptToKeepEntry(title, startTime, endTime)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**** parseOutlookCSVData
|
/**** parseOutlookCSVEvents
|
||||||
*
|
*
|
||||||
* Takes a text block of Outlook-exported Comma Separated Values and tries to
|
* Takes a text block of Outlook-exported Comma Separated Values and tries to
|
||||||
* parse that into individual events (with a mother-of-all-regexps).
|
* parse that into individual events (with a mother-of-all-regexps).
|
||||||
* Returns: an array of new calendarEvents and
|
* Returns: an array of new calendarEvents and
|
||||||
* an array of events that are duplicates with existing ones.
|
* an array of events that are duplicates with existing ones.
|
||||||
*/
|
*/
|
||||||
function parseOutlookCSVData( outlookCsvStr ) {
|
function parseOutlookCSVEvents( outlookCsvStr ) {
|
||||||
|
|
||||||
// boolRegExp: regexp for finding a boolean value from event (6. field)
|
// boolRegExp: regexp for finding a boolean value from event (6. field)
|
||||||
// headerRegExp: regexp for reading CSV header line
|
// headerRegExp: regexp for reading CSV header line
|
||||||
// eventRegExp: regexp for reading events (this one'll be constructed on fly)
|
// eventRegExp: regexp for reading events (this one'll be constructed on fly)
|
||||||
var boolRegExp = /^".*?",".*?",".*?",".*?",".*?","(.*?)","/;
|
var boolRegExp = /^".*",".*",".*",".*",".*","(.*)?",".*"/;
|
||||||
var headerRegExp = /^"(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)"/g;
|
var headerRegExp = /^"(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?","(.*)?"/g;
|
||||||
var eventRegExp;
|
var eventRegExp;
|
||||||
headerRegExp.lastIndex=0;
|
headerRegExp.lastIndex=0;
|
||||||
|
|
||||||
|
@ -550,9 +701,9 @@ function parseOutlookCSVData( outlookCsvStr ) {
|
||||||
if( i != 1 )
|
if( i != 1 )
|
||||||
regExpStr += ",";
|
regExpStr += ",";
|
||||||
if( i == args.descriptionIndex )
|
if( i == args.descriptionIndex )
|
||||||
regExpStr += "(.*?(?:[\\s\\S]*?).*?)";
|
regExpStr += "(.*(?:[\\s\\S]*)?.*)?";
|
||||||
else
|
else
|
||||||
regExpStr += "(.*?)";
|
regExpStr += "(.*)?";
|
||||||
}
|
}
|
||||||
regExpStr += "\\r\\n";
|
regExpStr += "\\r\\n";
|
||||||
|
|
||||||
|
@ -621,24 +772,24 @@ function parseOutlookCSVData( outlookCsvStr ) {
|
||||||
return eventArray;
|
return eventArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**** parseIcalData
|
/**** parseIcalEvents
|
||||||
*
|
*
|
||||||
* Takes a text block of iCalendar events and tries to split that into individual events.
|
* Takes a text block of iCalendar events and tries to split that into individual events.
|
||||||
* Parses those events and returns an array of calendarEvents.
|
* Parses those events and returns an array of calendarEvents.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function parseIcalData( icalStr )
|
function parseIcalEvents( icalStr )
|
||||||
{
|
{
|
||||||
var calendarEventArray = new Array();
|
var calendarEventArray = new Array();
|
||||||
|
|
||||||
while( icalStr.indexOf("BEGIN:VEVENT") != -1 )
|
for(var i=0, j=0; (i = icalStr.indexOf("BEGIN:VEVENT", j)) != -1; )
|
||||||
{
|
{
|
||||||
// try to find the begin and end of an event. ParseIcalString does not support VCALENDAR
|
// try to find the begin and end of an event. ParseIcalString does not support VCALENDAR
|
||||||
var i = icalStr.indexOf("BEGIN:VEVENT");
|
j = icalStr.indexOf("END:VEVENT", i + "BEGIN:VEVENT".length);
|
||||||
var j = icalStr.indexOf("END:VEVENT") + 10;
|
j = (j == -1? icalStr.length : j + "END:VEVENT".length);
|
||||||
var eventData = icalStr.substring(i, j);
|
var eventData = icalStr.substring(i, j);
|
||||||
|
|
||||||
calendarEvent = createEvent();
|
var calendarEvent = createEvent();
|
||||||
|
|
||||||
// if parsing import iCalendar failed, add date as description
|
// if parsing import iCalendar failed, add date as description
|
||||||
if ( !calendarEvent.parseIcalString(eventData) )
|
if ( !calendarEvent.parseIcalString(eventData) )
|
||||||
|
@ -647,29 +798,59 @@ function parseIcalData( icalStr )
|
||||||
initCalendarEvent( calendarEvent );
|
initCalendarEvent( calendarEvent );
|
||||||
|
|
||||||
// Save the parsed text as description.
|
// Save the parsed text as description.
|
||||||
calendarEvent.description = icalStr;
|
calendarEvent.description = eventData;
|
||||||
}
|
}
|
||||||
|
|
||||||
calendarEventArray[ calendarEventArray.length ] = calendarEvent;
|
calendarEventArray[ calendarEventArray.length ] = calendarEvent;
|
||||||
// remove the parsed VEVENT from the calendar data to parse
|
|
||||||
icalStr = icalStr.substring(j+1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return calendarEventArray;
|
return calendarEventArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**** parseXCSData
|
/**** parseIcalToDos
|
||||||
*
|
*
|
||||||
|
* Takes a text block of iCalendar todos and tries to split that into individual todos.
|
||||||
|
* Parses those toDos and returns an array of calendarToDos.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function parseXCSData( xcsString )
|
function parseIcalToDos( icalStr )
|
||||||
|
{
|
||||||
|
var calendarToDoArray = new Array();
|
||||||
|
|
||||||
|
for(var i=0, j=0; (i = icalStr.indexOf("BEGIN:VTODO", j)) != -1; )
|
||||||
|
{
|
||||||
|
// try to find the begin and end of an toDo. ParseIcalString does not support VCALENDAR
|
||||||
|
j = icalStr.indexOf("END:VTODO", i + "BEGIN:VTODO".length);
|
||||||
|
j = (j == -1? icalStr.length : j + "END:VTODO".length);
|
||||||
|
var toDoData = icalStr.substring(i, j);
|
||||||
|
|
||||||
|
var calendarToDo = createToDo();
|
||||||
|
|
||||||
|
// if parsing import iCalendar failed, add data as description
|
||||||
|
if ( !calendarToDo.parseIcalString(toDoData) )
|
||||||
|
{
|
||||||
|
// initialize start and end dates.
|
||||||
|
initCalendarToDo( calendarToDo );
|
||||||
|
|
||||||
|
// Save the parsed text as description.
|
||||||
|
calendarToDo.description = toDoData;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendarToDoArray[ calendarToDoArray.length ] = calendarToDo;
|
||||||
|
}
|
||||||
|
|
||||||
|
return calendarToDoArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**** transformXCSData: transform into ics data
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function transformXCSData( xcsString )
|
||||||
{
|
{
|
||||||
var gParser = new DOMParser;
|
var gParser = new DOMParser;
|
||||||
var xmlDocument = gParser.parseFromString(xcsString, 'text/xml');
|
var xmlDocument = gParser.parseFromString(xcsString, 'text/xml');
|
||||||
|
|
||||||
var result = serializeDocument(xmlDocument, "xcs2ics.xsl");
|
return serializeDocument(xmlDocument, "xcs2ics.xsl");
|
||||||
|
|
||||||
return parseIcalData( result );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Necessita una acció
|
||||||
statusInProcess =En procés
|
statusInProcess =En procés
|
||||||
statusCompleted =Acabat
|
statusCompleted =Acabat
|
||||||
|
|
||||||
noEventsToImport=No hi ha cites per importar...
|
noEventsOrTasksToImport=No hi ha cites o tasca per importar\nd'un fitxer "%1$S".
|
||||||
noEventsToSave=No hi ha cites per desar.
|
noEventsToSave=No hi ha cites per desar.
|
||||||
aboutToImport=Quant a la importació de %1$S cita(es). Què voleu fer?
|
|
||||||
aboutToImportDupes=Quant a la importació de %1$S cita(es) duplicades de cites del vostre calendari.n\
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Importa Nova Cites
|
||||||
|
aboutToImportNewEvents=Quant a la importació de %1$S nova cita(es)\na un calendari "%2$S"\nd'un fitxer "%3$S".\nQuè voleu fer?
|
||||||
|
aboutToImportDupEventsTitle=Importa Duplicades de Cites
|
||||||
|
aboutToImportDupEvents=Quant a la importació de %1$S cita(es) duplicades de cites del vostre calendari,\na un calendari "%2$S"\nd'un fitxer "%3$S".\nQuè voleu fer?
|
||||||
|
aboutToImportNewTasksTitle=Importa Nova Tascas
|
||||||
|
aboutToImportNewTasks=Quant a la importació de %1$S nova tasca(s)\na un calendari "%2$S"\nd'un fitxer "%3$S".\nQuè voleu fer?
|
||||||
|
aboutToImportDupTasksTitle=Importa Duplicades de Tascas
|
||||||
|
aboutToImportDupTasks=Quant a la importació de %1$S tasca(s) duplicades de tascas del vostre calendari,\na un calendari "%2$S"\nd'un fitxer "%3$S".\nQuè voleu fer?
|
||||||
|
|
||||||
discardAll=Descarta-ho tot
|
discardAll=Descarta-ho tot
|
||||||
importAll=Importa-ho tot
|
importAll=Importa-ho tot
|
||||||
promptForEach=Pregunta'm per cadascún
|
promptForEach=Pregunta'm per cadascún
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Zjišťování akce
|
||||||
statusInProcess =V běhu
|
statusInProcess =V běhu
|
||||||
statusCompleted =Ukončena
|
statusCompleted =Ukončena
|
||||||
|
|
||||||
noEventsToImport=\u017D\u00E1dn\u00E9 ud\u00E1losti k importu...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=\u017D\u00E1dn\u00E9 vybran\u00E9 ud\u00E1losti k ulo\u017Een\u00ED.
|
noEventsToSave=\u017D\u00E1dn\u00E9 vybran\u00E9 ud\u00E1losti k ulo\u017Een\u00ED.
|
||||||
aboutToImport=O importu %1$S event(s)\nfrom file "%2$S"\ninto calendar "%3$S".\nWhat do you want to do?
|
|
||||||
aboutToImportDupes=Celkem %1$S ud\u00E1lost\u00ED je duplicitn\u00EDch.\nCo s nimi chcete ud\u011Blat?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=O importu %1$S event(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=Celkem %1$S ud\u00E1lost\u00ED je duplicitn\u00EDch\ninto calendar "%2$S"\nfrom file "%3$S".\nCo s nimi chcete ud\u011Blat?
|
||||||
|
aboutToImportNewTasksTitle=Import Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Zru\u0161it v\u0161echny
|
discardAll=Zru\u0161it v\u0161echny
|
||||||
importAll=Importovat v\u0161echny
|
importAll=Importovat v\u0161echny
|
||||||
promptForEach=Ka\u017Edou potvrzovat
|
promptForEach=Ka\u017Edou potvrzovat
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Angen Sylw
|
||||||
statusInProcess =Ar Waith
|
statusInProcess =Ar Waith
|
||||||
statusCompleted =Wedi Gorffen
|
statusCompleted =Wedi Gorffen
|
||||||
|
|
||||||
noEventsToImport=Dim digwyddiadau i'w mewnforio...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Heb ddewis digwyddiadau i'w cadw.
|
noEventsToSave=Heb ddewis digwyddiadau i'w cadw.
|
||||||
aboutToImport=Ar fin mewnforio %1$S digwyddiad(au)\nfrom file "%2$S"\ninto calendar "%3$S".\nHoffech chi agor yr holl ddigwyddiadau newydd i'w mewnforio cyn mewnforio?
|
|
||||||
aboutToImportDupes=About to import %1$S event(s) that are duplicates of events in your calendar.\nWhat do you want to do?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Ar fin mewnforio %1$S digwyddiad(au)\ninto calendar "%2$S"\from file "%3$S".\nHoffech chi agor yr holl ddigwyddiadau newydd i'w mewnforio cyn mewnforio?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Discard all
|
discardAll=Discard all
|
||||||
importAll=Import all
|
importAll=Import all
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Benötigt Eingriff
|
||||||
statusInProcess =In Arbeit
|
statusInProcess =In Arbeit
|
||||||
statusCompleted =Abgeschlossen
|
statusCompleted =Abgeschlossen
|
||||||
|
|
||||||
noEventsToImport=Keine Ereignisse zum Importieren...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Keine Ereignisse zum Speichern gew\u00E4hlt.
|
noEventsToSave=Keine Ereignisse zum Speichern gew\u00E4hlt.
|
||||||
aboutToImport=%1$S Ereignis(se) werden importiert.\nfrom file "%2$S"\ninto calendar "%3$S". Was wollen Sie machen?
|
|
||||||
aboutToImportDupes=%1$S Ereignis(se) sollen importiert werden, die Duplikate von Ereignisse in Ihrem Kalender sind.\nWas wollen Sie machen?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=About to import %1$S new event(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Alle ablehnen
|
discardAll=Alle ablehnen
|
||||||
importAll=Alle importieren
|
importAll=Alle importieren
|
||||||
promptForEach=Jedes einzeln best\u00E4tigen
|
promptForEach=Jedes einzeln best\u00E4tigen
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Needs Action
|
||||||
statusInProcess =In Process
|
statusInProcess =In Process
|
||||||
statusCompleted =Completed
|
statusCompleted =Completed
|
||||||
|
|
||||||
noEventsToImport=No events to import...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=No events selected to save.
|
noEventsToSave=No events selected to save.
|
||||||
aboutToImport=About to import %1$S event(s)\nfrom file "%2$S"\ninto calendar "%3$S".\nWhat do you want to do?
|
|
||||||
aboutToImportDupes=About to import %1$S event(s) that are duplicates of events in your calendar.\nWhat do you want to do?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=About to import %1$S new event(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Discard all
|
discardAll=Discard all
|
||||||
importAll=Import all
|
importAll=Import all
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
|
@ -47,10 +47,19 @@ statusNeedsAction=Necesita acción
|
||||||
statusInProcess =En proceso
|
statusInProcess =En proceso
|
||||||
statusCompleted =Completado
|
statusCompleted =Completado
|
||||||
|
|
||||||
noEventsToImport=No hay eventos que importar...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=No hay eventos seleccionados para guardar.
|
noEventsToSave=No hay eventos seleccionados para guardar.
|
||||||
aboutToImport=A punto de importar %1$S evento(s). \nfrom file "%2$S"\ninto calendar "%3$S".\u00BFQu\u00E9 desea hacer?
|
|
||||||
aboutToImportDupes=A punto de importar %1$S evento(s) que son duplicados de eventos en su calendaio.\n\u00BFQu\u00E9 desea hacer?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Importar Nuevo Eventos
|
||||||
|
aboutToImportNewEvents=A punto de importar %1$S evento(s)\ninto calendar "%2$S"\nfrom file "%3$S".\n\u00BFDesea abrir todos los eventos nuevos para importar antes de importarlos?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Descartar todos
|
discardAll=Descartar todos
|
||||||
importAll=Importar todos
|
importAll=Importar todos
|
||||||
promptForEach=Preguntar en cada uno
|
promptForEach=Preguntar en cada uno
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Une action est requise
|
||||||
statusInProcess =En cours
|
statusInProcess =En cours
|
||||||
statusCompleted =Achevé
|
statusCompleted =Achevé
|
||||||
|
|
||||||
noEventsToImport=Pas d'\u00e9v\u00e9nement \u00e0 importer\u2026
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Pas d'\u00e9v\u00e9nement s\u00e9lectionn\u00e9 pour une sauvegarde.
|
noEventsToSave=Pas d'\u00e9v\u00e9nement s\u00e9lectionn\u00e9 pour une sauvegarde.
|
||||||
aboutToImport=Pr\u00eat \u00e0 importer %1$S \u00e9v\u00e9nement(s)\n\u00e0 partir du fichier "%2$S"\ndans le calendrier "%3$S". Que voulez-vous faire\u00a0?
|
|
||||||
aboutToImportDupes=Pr\u00eat \u00e0 importer %1$S \u00e9v\u00e9nement(s) qui sont des doublons d'\u00e9v\u00e9nements d\u00e9j\u00e0 \u00e0 votre calendrier.\nQue voulez-vous faire\u00a0?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Pr\u00eat \u00e0 importer %1$S \u00e9v\u00e9nement(s) nouveau\ninto calendar "%2$S"\nfrom file "%3$S".\nQue voulez-vous faire\u00a0?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=Pr\u00eat \u00e0 importer %1$S \u00e9v\u00e9nement(s) qui sont des doublons d'\u00e9v\u00e9nements d\u00e9j\u00e0 \u00e0 votre calendrier, \ninto calendar "%2$S"\nfrom file "%3$S".\nQue voulez-vous faire\u00a0?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nQue voulez-vous faire\u00a0?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar, \ninto calendar "%2$S"\nfrom file "%3$S".\nQue voulez-vous faire\u00a0?
|
||||||
|
|
||||||
discardAll=Les ignorer tous
|
discardAll=Les ignorer tous
|
||||||
importAll=Les importer tous
|
importAll=Les importer tous
|
||||||
promptForEach=Me demander pour chacun
|
promptForEach=Me demander pour chacun
|
||||||
|
|
|
@ -50,10 +50,19 @@ statusNeedsAction=Foglalkozni kell vele
|
||||||
statusInProcess =Folyamatban
|
statusInProcess =Folyamatban
|
||||||
statusCompleted =Kész van
|
statusCompleted =Kész van
|
||||||
|
|
||||||
noEventsToImport=Nincs import\u00e1lhat\u00f3 esem\u00e9ny...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Nincs esem\u00e9ny kiv\u00e1lasztva a ment\u00e9shez.
|
noEventsToSave=Nincs esem\u00e9ny kiv\u00e1lasztva a ment\u00e9shez.
|
||||||
aboutToImport=%1$S esem\u00e9ny import\u00e1l\u00e1sa k\u00f6vetkezik\nfrom file "%2$S"\ninto calendar "%3$S".\nMit k\u00edv\u00e1n tenni?
|
|
||||||
aboutToImportDupes=%1$S olyan esem\u00e9ny import\u00e1l\u00e1sa k\u00f6vetkezik, amelyek m\u00e1r szerepelnek a napt\u00e1r\u00e1ban.\nMit k\u00edv\u00e1n tenni?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=%1$S esem\u00e9ny import\u00e1l\u00e1sa k\u00f6vetkezik\ninto calendar "%2$S"\nfrom file "%3$S".\nMit k\u00edv\u00e1n tenni?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=%1$S olyan esem\u00e9ny import\u00e1l\u00e1sa k\u00f6vetkezik, amelyek m\u00e1r szerepelnek a napt\u00e1r\u00e1ban,\ninto calendar "%2$S"\nfrom file "%3$S".\nMit k\u00edv\u00e1n tenni?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=\u00d6sszes eldob\u00e1sa
|
discardAll=\u00d6sszes eldob\u00e1sa
|
||||||
importAll=\u00d6sszes import\u00e1l\u00e1sa
|
importAll=\u00d6sszes import\u00e1l\u00e1sa
|
||||||
promptForEach=Meger\u0151s\u00edt\u00e9s mindegyikn\u00e9l
|
promptForEach=Meger\u0151s\u00edt\u00e9s mindegyikn\u00e9l
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Necessita Azione
|
||||||
statusInProcess =In Svolgimento
|
statusInProcess =In Svolgimento
|
||||||
statusCompleted =Completato
|
statusCompleted =Completato
|
||||||
|
|
||||||
noEventsToImport=Nessun evento da importare...
|
noEventsOrTasksToImport=Nessun evento o impegno da importare...
|
||||||
noEventsToSave=Nessun evento selezionato da salvare.
|
noEventsToSave=Nessun evento selezionato da salvare.
|
||||||
aboutToImport=Sto per importare %1$S eventi.\nfrom file "%2$S"\ninto calendar "%3$S".\nPrima di importarli vuoi aprire tutti i nuovi eventi?
|
|
||||||
aboutToImportDupes=Importazione di %1$S event(i) che risultato duplicati di eventi presenti nel tuo calendario.\nCosa desideri fare?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Importare Nuovo Eventi
|
||||||
|
aboutToImportNewEvents=Sto per importare %1$S nuovo event(i)\nnella calendario "%2$S"\nda file "%3$S".\nCosa desideri fare?
|
||||||
|
aboutToImportDupEventsTitle=Importare Duplicati Eventi
|
||||||
|
aboutToImportDupEvents=Sto per importare %1$S event(i) che risultato duplicati di eventi presenti nel tuo calendario,\nnella calendario "%2$S"\nda file "%3$S".\nCosa desideri fare?
|
||||||
|
aboutToImportNewTasksTitle=Importare Nuovo Impegni
|
||||||
|
aboutToImportNewTasks=Sto per importare %1$S nuovo impegn(i)\nnelle calendario "%2$S"\nda file "%3$S".\nCosa desideri fare?
|
||||||
|
aboutToImportDupTasksTitle=Importare Duplicati Impegni
|
||||||
|
aboutToImportDupTasks=Sto per importare %1$S impegn(i) che risultato duplicati di eventi presenti nel tuo calendario,\nnelle calendario "%2$S"\nda file "%3$S".\nCosa desideri fare?
|
||||||
|
|
||||||
discardAll=Elimina tutto
|
discardAll=Elimina tutto
|
||||||
importAll=Importi tutti
|
importAll=Importi tutti
|
||||||
promptForEach=Chiedi per ogni uno
|
promptForEach=Chiedi per ogni uno
|
||||||
|
|
|
@ -51,11 +51,21 @@ statusNeedsAction=Needs Action
|
||||||
statusInProcess =In Process
|
statusInProcess =In Process
|
||||||
statusCompleted =Completed
|
statusCompleted =Completed
|
||||||
|
|
||||||
noEventsToImport=\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u30a4\u30d9\u30f3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=\u4fdd\u5b58\u3059\u308b\u9078\u629e\u30a4\u30d9\u30f3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093\u3002
|
noEventsToSave=\u4fdd\u5b58\u3059\u308b\u9078\u629e\u30a4\u30d9\u30f3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093\u3002
|
||||||
aboutToImport=About to import %1$S event(s)\nfrom file "%2$S"\ninto calendar "%3$S".\nWhat do you want to do?
|
|
||||||
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=About to import %1$S new event(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
# aboutToImport=%1$S \u306e\u30a4\u30d9\u30f3\u30c8\u306e\u30a4\u30f3\u30dd\u30fc\u30c8\u306b\u3064\u3044\u3066\u3002\n\u30a4\u30f3\u30dd\u30fc\u30c8\u524d\u306b\u3059\u3079\u3066\u306e\u65b0\u3057\u3044\u30a4\u30d9\u30f3\u30c8\u3092\u958b\u304d\u307e\u3059\u304b\uff1f
|
# aboutToImport=%1$S \u306e\u30a4\u30d9\u30f3\u30c8\u306e\u30a4\u30f3\u30dd\u30fc\u30c8\u306b\u3064\u3044\u3066\u3002\n\u30a4\u30f3\u30dd\u30fc\u30c8\u524d\u306b\u3059\u3079\u3066\u306e\u65b0\u3057\u3044\u30a4\u30d9\u30f3\u30c8\u3092\u958b\u304d\u307e\u3059\u304b\uff1f
|
||||||
aboutToImportDupes=\u91cd\u8907\u3059\u308b %1$S \u306e\u30a4\u30d9\u30f3\u30c8\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002\n\u3069\u3046\u6271\u3044\u307e\u3059\u304b\uff1f
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
# aboutToImportDupEvents=\u91cd\u8907\u3059\u308b %1$S \u306e\u30a4\u30d9\u30f3\u30c8\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002\n\u3069\u3046\u6271\u3044\u307e\u3059\u304b\uff1f
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=\u3059\u3079\u3066\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u306a\u3044
|
discardAll=\u3059\u3079\u3066\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u306a\u3044
|
||||||
importAll=\u3059\u3079\u3066\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b
|
importAll=\u3059\u3079\u3066\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Veiksmas
|
||||||
statusInProcess =Vyksta
|
statusInProcess =Vyksta
|
||||||
statusCompleted =Baigtas
|
statusCompleted =Baigtas
|
||||||
|
|
||||||
noEventsToImport=N\u0117ra \u012fvyki\u0173, kurious b\u016bt\u0173 galima importuoti...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Pra\u0161om pa\u017eym\u0117ti \u012fvykius, kuriuos norite \u012fra\u0161yti.
|
noEventsToSave=Pra\u0161om pa\u017eym\u0117ti \u012fvykius, kuriuos norite \u012fra\u0161yti.
|
||||||
aboutToImport=Importuojami %1$S \u012fvykis(-iai)\nfrom file "%2$S"\ninto calendar "%3$S".\n\u005cnAr atverti kiekvieno \u012fvykio apra\u0161\u0105 prie\u0161 importuojant?
|
|
||||||
aboutToImportDupes=About to import %1$S event(s) that are duplicates of events in your calendar.\nWhat do you want to do?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Importuojami %1$S \u012fvykis(-iai)\ninto calendar "%2$S"\nfrom file "%3$S".\n\u005cnAr atverti kiekvieno \u012fvykio apra\u0161\u0105 prie\u0161 importuojant?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Discard all
|
discardAll=Discard all
|
||||||
importAll=Import all
|
importAll=Import all
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Handeling vereist
|
||||||
statusInProcess =Bezig
|
statusInProcess =Bezig
|
||||||
statusCompleted =Voltooid
|
statusCompleted =Voltooid
|
||||||
|
|
||||||
noEventsToImport=Geen gebeurtenissen om te importeren...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Geen gebeurtenissen geselecteerd om op te slaan.
|
noEventsToSave=Geen gebeurtenissen geselecteerd om op te slaan.
|
||||||
aboutToImport=Op het punt importeren te beginnen van %1$S gebeurtenis(sen)\nfrom file "%2$S"\ninto calendar "%3$S".\nWilt u alle nieuw te importeren gebeurtenissen openen voor het importeren?
|
|
||||||
aboutToImportDupes=Op het punt om %1$S gebeurtenis(sen) te importeren die duplikaten zijn van gebeurtenissen in uw kalendar.\nWat wilt u doen?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Op het punt importeren te beginnen van %1$S gebeurtenis(sen)\ninto calendar "%2$S"\nfrom file "%3$S".\nWilt u alle nieuw te importeren gebeurtenissen openen voor het importeren?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=Op het punt om %1$S gebeurtenis(sen) te importeren die duplikaten zijn van gebeurtenissen in uw kalendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWat wilt u doen?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Alle verwerpen
|
discardAll=Alle verwerpen
|
||||||
importAll=Alle importeren
|
importAll=Alle importeren
|
||||||
promptForEach=Voor elke vragen
|
promptForEach=Voor elke vragen
|
||||||
|
|
|
@ -47,10 +47,19 @@ statusNeedsAction=Wymaga działania
|
||||||
statusInProcess =Trwa
|
statusInProcess =Trwa
|
||||||
statusCompleted =Wykonane
|
statusCompleted =Wykonane
|
||||||
|
|
||||||
noEventsToImport=Brak wydarzeń do importu...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Nie zaznaczono wydarzeń do zapisania.
|
noEventsToSave=Nie zaznaczono wydarzeń do zapisania.
|
||||||
aboutToImport=O importowaniu %1$S event(s)\nfrom file "%2$S"\ninto calendar "%3$S".\nWhat do you want to do?
|
|
||||||
aboutToImportDupes=About to import %1$S event(s) that are duplicates of events in your calendar.\nWhat do you want to do?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=O importowaniu %1$S event(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Discard all
|
discardAll=Discard all
|
||||||
importAll=Import all
|
importAll=Import all
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
|
@ -49,10 +49,19 @@ statusNeedsAction=Necessita Atenção
|
||||||
statusInProcess =Em Curso
|
statusInProcess =Em Curso
|
||||||
statusCompleted =Completo
|
statusCompleted =Completo
|
||||||
|
|
||||||
noEventsToImport=Nenhum evento para importar...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Nenhum evento selecionado para salvar.
|
noEventsToSave=Nenhum evento selecionado para salvar.
|
||||||
aboutToImport=Prestes a importar %1$S evento(s)\nfrom file "%2$S"\ninto calendar "%3$S".\nVoce deseja abrir todos os novos eventos antes de serem importados?
|
|
||||||
aboutToImportDupes=About to import %1$S event(s) that are duplicates of events in your calendar.\nWhat do you want to do?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Prestes a importar %1$S evento(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nVoce deseja abrir todos os novos eventos antes de serem importados?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Discard all
|
discardAll=Discard all
|
||||||
importAll=Import all
|
importAll=Import all
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Zis\u0139\u0104ovanie akcie
|
||||||
statusInProcess =V behu
|
statusInProcess =V behu
|
||||||
statusCompleted =Ukon\u010Den\u00E9
|
statusCompleted =Ukon\u010Den\u00E9
|
||||||
|
|
||||||
noEventsToImport=\u017Diadne udalosti k importu...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=\u017Diadne vybran\u00E9 udalosti k ulo\u017Eeniu.
|
noEventsToSave=\u017Diadne vybran\u00E9 udalosti k ulo\u017Eeniu.
|
||||||
aboutToImport=Chyst\u00E1te sa importova\u0165 udalos\u0165(i).\nfrom file "%2$S"\ninto calendar "%3$S".\nChcete otvori\u0165 v\u0161etky novo importovan\u00E9 udalosti pred importom?
|
|
||||||
aboutToImportDupes=Chyst\u00E1te sa importova\u0165 %1$S udalos\u0165(i), ktor\u00E9 s\u00FA duplik\u00E1tmi udalost\u00ED vo va\u0161om kalend\u00E1ri.\n\u010Co sa m\u00E1 urobi\u0165?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Chyst\u00E1m sa importova\u0165 udalos\u0165(i)\ninto calendar "%2$S"\nfrom file "%3$S".\nChcete otvori\u0165 v\u0161etky novo importovan\u00E9 udalosti pred importom?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=Chyst\u00E1m sa importova\u0165 %1$S udalos\u0165(i), ktor\u00E9 s\u00FA duplik\u00E1tmi udalost\u00ED vo va\u0161om kalend\u00E1ri,\ninto calendar "%2$S"\nfrom file "%3$S".\n\u010o sa m\u00E1 urobi\u0165?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Zahodi\u0165 v\u0161etky
|
discardAll=Zahodi\u0165 v\u0161etky
|
||||||
importAll=Importova\u0165 v\u0161etky
|
importAll=Importova\u0165 v\u0161etky
|
||||||
promptForEach=Sp\u00FDta\u0165 sa na ka\u017Ed\u00FA
|
promptForEach=Sp\u00FDta\u0165 sa na ka\u017Ed\u00FA
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Potrebuje poseg
|
||||||
statusInProcess =Poteka
|
statusInProcess =Poteka
|
||||||
statusCompleted =Končan
|
statusCompleted =Končan
|
||||||
|
|
||||||
noEventsToImport=Ni dogodkov za uvoz...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Ni izbranih dogodkov za shranjevanje.
|
noEventsToSave=Ni izbranih dogodkov za shranjevanje.
|
||||||
aboutToImport=Pri\u010Denjam z uvozom %1$S dogodek(ov)\nfrom file "%2$S"\ninto calendar "%3$S".\n\u017Delite odpreti vse nove dogodke pred uvozom?
|
|
||||||
aboutToImportDupes=Pri\u010Denjam z uvozom %1$S dogodek(ov), ki so dvojniki dogodkov v va\u0161em koledarju.\nKaj \u017Eelite narediti z njimi?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Pri\u010Denjam z uvozom %1$S dogodek(ov)\ninto calendar "%2$S"\nfrom file "%3$S".\n\u017Delite odpreti vse nove dogodke pred uvozom?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=Pri\u010Denjam z uvozom %1$S dogodek(ov), ki so dvojniki dogodkov v va\u0161em koledarju,\ninto calendar "%2$S"\nfrom file "%3$S".\nKaj \u017Eelite narediti z njimi?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Izpusti vse
|
discardAll=Izpusti vse
|
||||||
importAll=Uvozi vse
|
importAll=Uvozi vse
|
||||||
promptForEach=Vpra\u0161aj za vsakega
|
promptForEach=Vpra\u0161aj za vsakega
|
||||||
|
|
|
@ -49,10 +49,19 @@ statusNeedsAction=Kräver Åtgärd
|
||||||
statusInProcess =Pågår
|
statusInProcess =Pågår
|
||||||
statusCompleted =Färdig
|
statusCompleted =Färdig
|
||||||
|
|
||||||
noEventsToImport=Inga importerbara händelser...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Inga händelser valda för att spara.
|
noEventsToSave=Inga händelser valda för att spara.
|
||||||
aboutToImport=Kommer att importera %1$S händelse(r)\nfrom file "%2$S"\ninto calendar "%3$S".\nVill du öppna alla nya händelser för kontroll innan de läggs till?
|
|
||||||
aboutToImportDupes=About to import %1$S event(s) that are duplicates of events in your calendar.\nWhat do you want to do?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Kommer att importera %1$S händelse(r)\ninto calendar "%2$S"\nfrom file "%3$S".\nVill du öppna alla nya händelser för kontroll innan de läggs till?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Discard all
|
discardAll=Discard all
|
||||||
importAll=Import all
|
importAll=Import all
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Gerekli işlemler
|
||||||
statusInProcess =Hazırlanan
|
statusInProcess =Hazırlanan
|
||||||
statusCompleted =Tamamlandı
|
statusCompleted =Tamamlandı
|
||||||
|
|
||||||
noEventsToImport=Aktar\u0131lacak olay yok....
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=Kaydolacak olay se\u00E7ilmedi.
|
noEventsToSave=No events selected to save.
|
||||||
aboutToImport=%1$S olay i\u00E7e aktar\u0131ld\u0131.\nfrom file "%2$S"\n\u0130\u00E7e aktarmadan \u00F6nce b\u00FCt\u00FCn olaylar\u0131 a\u00E7mak ister misiniz?
|
|
||||||
aboutToImportDupes=Takviminizdeki ayn\u0131 \u00E7ift %1$S olaylar\u0131 i\u00E7e aktar\u0131lacak.\nNe yapmak istiyorsunuz?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=About to import %1$S new event(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Hepsini reddet
|
discardAll=Hepsini reddet
|
||||||
importAll=Hepsi i\u00E7e aktar
|
importAll=Hepsi i\u00E7e aktar
|
||||||
promptForEach=Hepsini tektek onayla
|
promptForEach=Hepsini tektek onayla
|
||||||
|
|
|
@ -48,10 +48,19 @@ statusNeedsAction=Needs Action
|
||||||
statusInProcess =In Process
|
statusInProcess =In Process
|
||||||
statusCompleted =Completed
|
statusCompleted =Completed
|
||||||
|
|
||||||
noEventsToImport=\u017dane podawki za importowanje...
|
noEventsOrTasksToImport=No events or tasks to import\nfrom file "%1$S".
|
||||||
noEventsToSave=\u017dane podawki njewubrane za sk\u0142adowanje.
|
noEventsToSave=\u017dane podawki njewubrane za sk\u0142adowanje.
|
||||||
aboutToImport=Wo importowanju %1$S podawk(ow)\nfrom file "%2$S"\ninto calendar "%3$S".\n\u005cnChce\u0107e w\u0161\u011b nowe podawki do importowanja wotewr\u011b\u0107?
|
|
||||||
aboutToImportDupes=About to import %1$S event(s) that are duplicates of events in your calendar.\nWhat do you want to do?
|
# about to import x: "<br>into calendar y<br>from file z" (calendar more likely to wrong, so before file).
|
||||||
|
aboutToImportNewEventsTitle=Import New Events
|
||||||
|
aboutToImportNewEvents=Wo importowanju %1$S podawk(ow)\ninto calendar "%2$S"\nfrom file "%3$S".\n\u005cnChce\u0107e w\u0161\u011b nowe podawki do importowanja wotewr\u011b\u0107?
|
||||||
|
aboutToImportDupEventsTitle=Import Duplicate Events
|
||||||
|
aboutToImportDupEvents=About to import %1$S event(s) that are duplicates of events in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportNewTasksTitle=Import New Tasks
|
||||||
|
aboutToImportNewTasks=About to import %1$S new task(s)\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
aboutToImportDupTasksTitle=Import Duplicate Tasks
|
||||||
|
aboutToImportDupTasks=About to import %1$S task(s) that are duplicates of tasks in your calendar,\ninto calendar "%2$S"\nfrom file "%3$S".\nWhat do you want to do?
|
||||||
|
|
||||||
discardAll=Discard all
|
discardAll=Discard all
|
||||||
importAll=Import all
|
importAll=Import all
|
||||||
promptForEach=Prompt for each
|
promptForEach=Prompt for each
|
||||||
|
|
Загрузка…
Ссылка в новой задаче