git clone of logicmail with some fixes/features added
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Initial commit of the updated setup wizard (#362) and an updated Italian translation

git-svn-id: https://logicmail.svn.sourceforge.net/svnroot/logicmail/trunk@966 5c734088-3d25-0410-9155-b3c3832efda5

octorian 838ae4df 1d358374

+960 -830
+7 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail.rrc
··· 268 268 WIZARD_NEXT#0="Next"; 269 269 WIZARD_PREV#0="Prev"; 270 270 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="Account name:"; 271 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="What name would you like to use to refer to this account?"; 272 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="Account name"; 273 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="What type of account would you like to create?"; 274 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="Account type"; 275 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="If you leave any of these settings blank, you will be prompted for them when LogicMail tries to connect to your mail server."; 276 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="Enter the user name and password used to access your account:"; 277 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="Authentication"; 278 271 WIZARD_SCREEN_FINAL_CONNECTION_FAILED#0="Connection failed"; 279 272 WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL#0="Connection successful"; 280 273 WIZARD_SCREEN_FINAL_LOGIN_CANCELED#0="Login canceled"; ··· 282 275 WIZARD_SCREEN_FINAL_TESTING#0="Testing {0}..."; 283 276 WIZARD_SCREEN_FINAL_TEST_CONFIGURATION#0="Test Configuration"; 284 277 WIZARD_SCREEN_FINAL_TITLE#0="Finish"; 285 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="Enter the name of your incoming mail server:"; 286 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="Mail server"; 287 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="The identity contains information people see about you when they read your messages."; 288 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="Create new"; 278 + WIZARD_SCREEN_INCOMING_PASSWORD_HELP#0="If blank, you will be prompted when connecting"; 279 + WIZARD_SCREEN_INCOMING_SERVER#0="{0} server:"; 280 + WIZARD_SCREEN_INCOMING_TITLE#0="Incoming mail server"; 281 + WIZARD_SCREEN_MISC_TITLE#0="Miscellaneous"; 282 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="Account type:"; 289 283 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="E-Mail address:"; 290 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="Identity:"; 291 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="Select the identity to use with this account:"; 292 284 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="New account setup"; 293 285 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="Your name:"; 294 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="If you leave any of these settings blank, you will be prompted for them when LogicMail tries to connect to your mail server."; 295 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="What type of authentication, if any, is required to send mail?"; 296 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="Outgoing authentication"; 297 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="Create new"; 298 - WIZARD_SCREEN_OUTGOING_QUESTION#0="Select the outgoing mail (SMTP) server to use with this account:"; 286 + WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME_HELP#0="Name that appears in the From field of email messages that you send"; 287 + WIZARD_SCREEN_OUTGOING_EMPTY_CONFIRM#0="You will not be able to send mail without an outgoing server. Are you sure you want to continue?"; 299 288 WIZARD_SCREEN_OUTGOING_TITLE#0="Outgoing mail server"; 300 289 WIZARD_SCREEN_TRANSPORT_TITLE#0="Connection settings"; 301 290 WIZARD_SCREEN_TRANSPORT_USE_DEFAULT#0="Use default setting";
+7 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail.rrh
··· 110 110 WIZARD_FINISH#0=112; 111 111 WIZARD_CONFIRM_CANCEL#0=113; 112 112 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0=114; 113 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0=115; 114 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0=116; 115 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0=117; 116 113 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0=118; 117 114 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0=119; 118 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0=120; 119 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0=121; 120 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0=122; 121 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0=123; 122 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0=124; 115 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0=121; 123 116 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0=125; 124 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0=126; 125 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0=127; 126 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0=128; 127 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0=129; 128 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0=130; 129 117 WIZARD_SCREEN_OUTGOING_TITLE#0=131; 130 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0=132; 131 - WIZARD_SCREEN_OUTGOING_QUESTION#0=133; 132 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0=134; 133 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0=135; 134 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0=136; 135 118 WIZARD_SCREEN_FINAL_TITLE#0=137; 136 119 MENUITEM_SELECT_ADDRESS#0=138; 137 120 EMAILADDRESSBOOKEDIT_WHICH_ADDRESS#0=139; ··· 288 271 MENUITEM_GET_HTML#0=292; 289 272 MENUITEM_GET_PLAIN_TEXT#0=294; 290 273 CONFIG_GLOBAL_ENABLE_HANDOVER#0=295; 274 + WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME_HELP#0=296; 275 + WIZARD_SCREEN_INCOMING_TITLE#0=297; 276 + WIZARD_SCREEN_INCOMING_SERVER#0=298; 277 + WIZARD_SCREEN_INCOMING_PASSWORD_HELP#0=299; 278 + WIZARD_SCREEN_OUTGOING_EMPTY_CONFIRM#0=300; 279 + WIZARD_SCREEN_MISC_TITLE#0=301;
+1 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail_de.rrc
··· 232 232 WIZARD_NEXT#0="N�chstes"; 233 233 WIZARD_PREV#0="Vorheriges"; 234 234 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="Name des Kontos:"; 235 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="Welchen Namen m�chten sie f�r dieses Konto verwenden?"; 236 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="Name des Kontos"; 237 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="Was f�r einen Konten-Typ m�chten sie erstellen?"; 238 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="Typ des Kontos"; 239 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="Wenn sie diese Einstellungen leer lassen, wird LogicMail bei jeder Server-Verbindung nachfragen."; 240 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="Geben sie Nutzername und Passwort f�r das Konto ein:"; 241 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="Authentifizierung"; 242 235 WIZARD_SCREEN_FINAL_CONNECTION_FAILED#0="Verbindung fehlgeschlagen"; 243 236 WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL#0="Verbindung erfolgreich"; 244 237 WIZARD_SCREEN_FINAL_LOGIN_CANCELED#0="Anmeldung abgebrochen"; ··· 246 239 WIZARD_SCREEN_FINAL_TESTING#0="Teste {0}..."; 247 240 WIZARD_SCREEN_FINAL_TEST_CONFIGURATION#0="Test Konfiguration"; 248 241 WIZARD_SCREEN_FINAL_TITLE#0="Abschlie�en"; 249 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="Geben sie den Namen des eigehenden E-Mail Servers ein:"; 250 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="E-Mail Server"; 251 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="Die Identit�t enth�lt Informationen, die Empf�ngern ihrer Nachrichten angezeigt werden."; 252 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="Neu anlegen"; 242 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="Typ des Kontos:"; 253 243 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="E-Mail Adresse:"; 254 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="Identit�t:"; 255 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="W�hlen sie die Identit�t f�r dieses Konto aus:"; 256 244 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="Neues Konto anlegen"; 257 245 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="Ihr Name:"; 258 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="Wenn sie diese Einstellungen leer lassen, wird LogicMail bei jeder Server-Verbindung nachfragen."; 259 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="Welcher Typ der Authentifizierung, wenn genutzt, ist notwendig um E-Mail zu versenden?"; 260 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="Ausgehende Authentifizierung"; 261 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="Neu anlegen"; 262 - WIZARD_SCREEN_OUTGOING_QUESTION#0="W�hlen sie den ausgehenden E-Mail Server (SMTP) f�r dieses Konto:"; 263 246 WIZARD_SCREEN_OUTGOING_TITLE#0="Ausgehender E-Mail Server"; 264 247 WIZARD_SCREEN_TRANSPORT_TITLE#0="Verbindungseinstellungen"; 265 248 WIZARD_SCREEN_TRANSPORT_USE_DEFAULT#0="Standardeinstellung verwenden";
+1 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail_es.rrc
··· 232 232 WIZARD_NEXT#0="Pr�ximo"; 233 233 WIZARD_PREV#0="Anterior"; 234 234 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="Nombre de Cuenta:"; 235 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="Que nombre quiere usar para la cuenta?"; 236 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="Nombre de Cuenta"; 237 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="Que tipo de cuenta quiere crear?"; 238 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="Tipo de Cuenta"; 239 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="Si deja alguna configuraci�n en blanco, van a ser preguntadas cuando LogicMail intente conectar con su servidor de correo."; 240 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="Ingresar el nombre de usuario y password utilizado para acceder a esta cuenta:"; 241 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="Autenticaci�n"; 242 235 WIZARD_SCREEN_FINAL_CONNECTION_FAILED#0="Fallo Conexi�n"; 243 236 WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL#0="Conexi�n Exitosa"; 244 237 WIZARD_SCREEN_FINAL_LOGIN_CANCELED#0="Login cancelado"; ··· 246 239 WIZARD_SCREEN_FINAL_TESTING#0="Testeando {0}..."; 247 240 WIZARD_SCREEN_FINAL_TEST_CONFIGURATION#0="Testear Configuraci�n"; 248 241 WIZARD_SCREEN_FINAL_TITLE#0="Finalizar"; 249 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="Ingresar el nombre del servidor de correo entrante:"; 250 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="Servidor de Correo"; 251 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="La identidad contiene informaci�n que puede ser vista cuando leen los mensajes."; 252 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="Crear nueva"; 242 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="Tipo de Cuenta:"; 253 243 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="Direcci�n de Correo:"; 254 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="Identidad:"; 255 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="Seleccionar identidad para usar con esta cuenta:"; 256 244 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="Configurar nueva cuenta"; 257 245 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="Su nombre:"; 258 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="Si deja alguna configuraci�n en blanco, van a ser preguntadas cuando LogicMail intente conectar con su servidor de correo."; 259 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="Que tipo de autenticaci�n, si alguna, es requerida para enviar un correo?"; 260 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="Autenticaci�n saliente"; 261 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="Crear nueva"; 262 - WIZARD_SCREEN_OUTGOING_QUESTION#0="Seleccionar servidor de Correo saliente (SMTP) para utilizar con esta cuenta:"; 263 246 WIZARD_SCREEN_OUTGOING_TITLE#0="Servidor de Correo saliente"; 264 247 WIZARD_SCREEN_TRANSPORT_TITLE#0="Configuraci�n de Conecci�n"; 265 248 WIZARD_SCREEN_TRANSPORT_USE_DEFAULT#0="Usar configuraci�n por defecto";
+1 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail_fr.rrc
··· 191 191 WIZARD_NEXT#0="Suivant"; 192 192 WIZARD_PREV#0="Pr�c�dent"; 193 193 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="Nom du compte :"; 194 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="Quel nom court pour ce compte voudriez-vous utiliser ?"; 195 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="Nom du compte"; 196 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="Quel type de compte voudriez-vous cr�er ?"; 197 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="Type du compte"; 198 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="Si vous laissez un champ vide, LogicMail vous demandera l'information lors de la connexion au serveur."; 199 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="Entrez le nom et le mot de passe utilis�s pour acc�der � ce compte :"; 200 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="Authentification"; 201 194 WIZARD_SCREEN_FINAL_TITLE#0="Fin"; 202 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="Entrez le nom du serveur entrant :"; 203 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="Serveur"; 204 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="L'identit� contient des informations qui seront visibles des destinataires de vos messages."; 205 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="Ajouter une identit�"; 195 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="Type du compte:"; 206 196 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="Adresse �lectronique :"; 207 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="Identit� :"; 208 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="Choisissez l'identit� � utiliser avec ce compte :"; 209 197 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="Cr�ation de compte"; 210 198 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="Votre nom :"; 211 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="Si vous laissez un champ vide, LogicMail vous demandera l'information lors de la connexion au serveur."; 212 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="Quel type d'authentification, s'il y a lieu, est n�cessaire pour l'envoi de messages ?"; 213 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="Authentification lors de l'envoi"; 214 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="Ajouter un serveur"; 215 - WIZARD_SCREEN_OUTGOING_QUESTION#0="Choisissez le serveur d'envoi (SMTP) � utiliser avec ce compte :"; 216 199 WIZARD_SCREEN_OUTGOING_TITLE#0="Serveur d'envoi";
+213 -97
LogicMail/res/org/logicprobe/LogicMail/LogicMail_it.rrc
··· 1 + ABOUT_ANALYTICS_ENABLE#0="Consenti raccolta anonima informazioni"; 1 2 ABOUT_LICENSE#0={ 3 + "LogicMail � un Copyright � 2006-2011, di Derek Konigsberg. Tutti i diritti sono riservati.", 4 + "", 5 + "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:", 6 + "1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.", 7 + "2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.", 8 + "3. Neither the name of the project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.", 9 + "", 10 + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.", 11 + "", 12 + "Icons used in this project are from the \"Tango Desktop Project\" (http://tango.freedesktop.org/) unless otherwise noted, and are either used directly or with minor modifications.", 13 + "", 14 + "Note: Using LogicMail to connect to E-Mail servers can incur data usage charges. For more information, please contact your service provider.", 2 15 }; 16 + ABOUT_LICENSE_ACCEPT#0="Clic su \"Accetto\" per accettare i termini della licenza, o su \"Declino\" per rifiutare e chiudere LogicMail."; 3 17 ABOUT_TITLE#0="Informazioni"; 18 + ABOUT_URL#0="http://logicmail.org/"; 19 + ACCOUNT_LOCAL_FOLDERS#0="Cartelle locali"; 4 20 APPNAME#0="LogicMail"; 5 - BASE_CLOSEANDEXIT#0="Chiudi le connessioni attive ed esci?"; 6 - COMPOSITION_PROMPT_DISCARD_UNSENT#0="Ignora i messaggi non inviati?"; 7 - COMPOSITION_PROMPT_SAVE_OR_DISCARD#0="Vuoi salvare questo messaggio o ignorarlo?"; 8 - CONFIG_ACCOUNTS#0="Profilo"; 9 - CONFIG_ACCOUNT_DRAFT_MESSAGE_FOLDER#0="Cartella messaggi bozza:"; 10 - CONFIG_ACCOUNT_IDENTITY#0="Identità:"; 11 - CONFIG_ACCOUNT_IMAP_DOWNLOAD_LIMIT#0="Grandezza massima messaggio (kb):"; 12 - CONFIG_ACCOUNT_IMAP_FOLDER_LIMIT#0="Massima profondità cartella:"; 13 - CONFIG_ACCOUNT_IMAP_FOLDER_PREFIX#0="Prefisso cartella:"; 14 - CONFIG_ACCOUNT_INCOMING_SERVER#0="Server in ingresso:"; 15 - CONFIG_ACCOUNT_NAME#0="Nome profilo:"; 21 + BASE_CLOSEANDEXIT#0="Chiudere connessioni attive e uscire?"; 22 + COMPOSITION_PROMPT_DISCARD_UNSENT#0="Messaggi ancora da inviare; uscire?"; 23 + COMPOSITION_PROMPT_SAVE_OR_DISCARD#0="Salvare i messaggi?"; 24 + CONFIG_ACCOUNTS#0="Account"; 25 + CONFIG_ACCOUNT_ABOVE_THE_QUOTE#0="sopra il quotato"; 26 + CONFIG_ACCOUNT_BELOW_THE_QUOTE#0="sotto il quotato"; 27 + CONFIG_ACCOUNT_DRAFT_MESSAGE_FOLDER#0="Cartella Bozze:"; 28 + CONFIG_ACCOUNT_FOLDERS_TO_REFRESH#0="Cartelle controllate"; 29 + CONFIG_ACCOUNT_IDENTITY#0="Identit�:"; 30 + CONFIG_ACCOUNT_IMAP_DOWNLOAD_LIMIT#0="Dimensione max messaggio (KB):"; 31 + CONFIG_ACCOUNT_IMAP_ENABLE_COMPRESSION#0="Comprimi se possibile"; 32 + CONFIG_ACCOUNT_IMAP_FOLDERS_TO_REFRESH#0="Cartelle aggiornate:"; 33 + CONFIG_ACCOUNT_IMAP_FOLDER_LIMIT#0="Max sottocartelle:"; 34 + CONFIG_ACCOUNT_IMAP_FOLDER_PREFIX#0="Percorso radice:"; 35 + CONFIG_ACCOUNT_IMAP_ONLY_SUBSCRIBED_FOLDERS#0="Mostra solo cartelle visibili"; 36 + CONFIG_ACCOUNT_INCLUDE_SIGNATURE_FOR_FORWARDS#0="Firma negli inoltri"; 37 + CONFIG_ACCOUNT_INCLUDE_SIGNATURE_FOR_REPLIES#0="Firma nelle risposte"; 38 + CONFIG_ACCOUNT_INCOMING_SERVER#0="Server ricezione:"; 39 + CONFIG_ACCOUNT_LOAD_INCREMENT#0="Nuovi messaggi:"; 40 + CONFIG_ACCOUNT_MESSAGES_TO_LOAD#0="Messaggi da scaricare:"; 41 + CONFIG_ACCOUNT_MESSAGES_TO_RETAIN#0="Messaggi da conservare:"; 42 + CONFIG_ACCOUNT_NAME#0="Nome account:"; 16 43 CONFIG_ACCOUNT_NONE#0="Nessuno"; 17 - CONFIG_ACCOUNT_OUTGOING_SERVER#0="Seerver in uscita:"; 44 + CONFIG_ACCOUNT_OUTGOING_SERVER#0="Server invio:"; 18 45 CONFIG_ACCOUNT_PAGE#0="Configurazione:"; 19 46 CONFIG_ACCOUNT_PAGE_ADVANCED#0="Configurazione avanzata"; 20 47 CONFIG_ACCOUNT_PAGE_BASIC#0="Configurazione base"; 48 + CONFIG_ACCOUNT_PAGE_COMPOSITION#0="Composizione"; 21 49 CONFIG_ACCOUNT_PAGE_FOLDER#0="Configurazione cartella"; 22 50 CONFIG_ACCOUNT_PASSWORD#0="Password:"; 23 - CONFIG_ACCOUNT_POP_DOWNLOAD_LIMIT#0="Numero massimo linee per messaggio:"; 51 + CONFIG_ACCOUNT_POP_DOWNLOAD_LIMIT#0="Linee max messaggio:"; 24 52 CONFIG_ACCOUNT_PORT#0="Porta:"; 25 53 CONFIG_ACCOUNT_PROTOCOL#0="Protocollo:"; 54 + CONFIG_ACCOUNT_REFRESH_FREQUENCY#0="Aggiorna ogni:"; 55 + CONFIG_ACCOUNT_REFRESH_FREQUENCY_MINUTES#0="{0} min"; 56 + CONFIG_ACCOUNT_REFRESH_HEADERS#0="Intestazioni"; 57 + CONFIG_ACCOUNT_REFRESH_ON_STARTUP#0="Aggiorna all'avvio:"; 58 + CONFIG_ACCOUNT_REFRESH_STATUS#0="Stato"; 59 + CONFIG_ACCOUNT_SECURITY#0="Connessione sicura:"; 60 + CONFIG_ACCOUNT_SECURITY_NEVER#0="Nessuna"; 61 + CONFIG_ACCOUNT_SECURITY_SSL#0="SSL"; 62 + CONFIG_ACCOUNT_SECURITY_TLS#0="TLS"; 63 + CONFIG_ACCOUNT_SECURITY_TLS_IF_AVAILABLE#0="TLS, se disponibile"; 64 + CONFIG_ACCOUNT_SELECTABLE_IDENTITY#0="Identit� selezionabile"; 26 65 CONFIG_ACCOUNT_SENT_MESSAGE_FOLDER#0="Cartella messaggi inviati:"; 27 66 CONFIG_ACCOUNT_SERVER#0="Server:"; 28 - CONFIG_ACCOUNT_TITLE#0="Profilo"; 29 - CONFIG_ACCOUNT_USERNAME#0="Nome utente:"; 30 - CONFIG_GLOBAL_CONNECTION_DEBUGGING#0="Debug connessione"; 67 + CONFIG_ACCOUNT_SHOW_NEW_MESSAGE_COUNT#0="Nuovi messaggi:"; 68 + CONFIG_ACCOUNT_SHOW_NEW_MESSAGE_COUNT_ALL_FOLDERS#0="Tutte le cartelle"; 69 + CONFIG_ACCOUNT_SHOW_NEW_MESSAGE_COUNT_REFRESHED_FOLDERS#0="Cartelle aggiornate"; 70 + CONFIG_ACCOUNT_SIGNATURE_PLACEMENT#0="Posizione firma:"; 71 + CONFIG_ACCOUNT_TITLE#0="Account"; 72 + CONFIG_ACCOUNT_TRANSPORT_USE_GLOBAL#0="Predefinito"; 73 + CONFIG_ACCOUNT_USERNAME#0="Username:"; 74 + CONFIG_GLOBAL_AUTO_STARTUP#0="Avvio automatico"; 75 + CONFIG_GLOBAL_CONNECTION_DEBUGGING#0="Analisi connessione"; 76 + CONFIG_GLOBAL_ENABLE_HANDOVER#0="Passa a WiFi su cambi copertura"; 77 + CONFIG_GLOBAL_ENABLE_WIFI#0="Usa WiFi se disponibile"; 78 + CONFIG_GLOBAL_EXPUNGE_ALWAYS#0="Sempre"; 79 + CONFIG_GLOBAL_EXPUNGE_BEHAVIOR#0="Eliminare messaggi cancellati?"; 80 + CONFIG_GLOBAL_EXPUNGE_NEVER#0="Mai"; 81 + CONFIG_GLOBAL_EXPUNGE_PROMPT#0="Chiedi"; 31 82 CONFIG_GLOBAL_HIDE_DELETED_MESSAGES#0="Nascondi messaggi cancellati"; 32 - CONFIG_GLOBAL_HOSTNAME#0="Nome Host:"; 83 + CONFIG_GLOBAL_HOSTNAME#0="Hostname:"; 33 84 CONFIG_GLOBAL_LANGUAGE#0="Lingua:"; 34 - CONFIG_GLOBAL_LOCAL_DATA_LOCATION#0="Posizione dati locali:"; 85 + CONFIG_GLOBAL_LOCAL_DATA_DEVICE_MEMORY#0="Memoria dispositivo"; 86 + CONFIG_GLOBAL_LOCAL_DATA_DISABLED#0="Disabilitata"; 87 + CONFIG_GLOBAL_LOCAL_DATA_LOCATION#0="Memoria locale:"; 88 + CONFIG_GLOBAL_LOCAL_DATA_MEDIA_CARD#0="Memory Card"; 89 + CONFIG_GLOBAL_MAILBOX_CACHE#0="Dati locali:"; 35 90 CONFIG_GLOBAL_MESSAGE_COUNT#0="Numero messaggi:"; 36 - CONFIG_GLOBAL_MESSAGE_FORMAT#0="Formato preferito messaggi:"; 91 + CONFIG_GLOBAL_MESSAGE_FORMAT#0="Formato messaggi:"; 37 92 CONFIG_GLOBAL_MESSAGE_FORMAT_PLAIN_TEXT#0="Testo"; 38 93 CONFIG_GLOBAL_MESSAGE_ORDER#0="Ordine messaggi:"; 94 + CONFIG_GLOBAL_NETWORK_TRANSPORT#0="Tipo connessione:"; 39 95 CONFIG_GLOBAL_OVERRIDE_HOSTNAME#0="Sovrascrivi hostname"; 96 + CONFIG_GLOBAL_PROMPT_ON_MESSAGE_DELETE#0="Conferma cancellazione"; 97 + CONFIG_GLOBAL_SECTION_MESSAGE_DISPLAY#0="Visualizzazione"; 98 + CONFIG_GLOBAL_SECTION_NETWORKING#0="Connessioni"; 99 + CONFIG_GLOBAL_SECTION_OTHER#0="Altro"; 40 100 CONFIG_GLOBAL_SETTINGS#0="Configurazione globale"; 41 - CONFIG_GLOBAL_TITLE#0="Globale"; 101 + CONFIG_GLOBAL_SHOW_NOTIFICATION_ICON#0="Mostrare icona notifica"; 102 + CONFIG_GLOBAL_TITLE#0="Generale"; 103 + CONFIG_GLOBAL_TRANSPORT_AUTO#0="Auto"; 104 + CONFIG_GLOBAL_TRANSPORT_DIRECT_TCP#0="TCP diretto"; 105 + CONFIG_GLOBAL_TRANSPORT_MDS#0="MDS"; 106 + CONFIG_GLOBAL_TRANSPORT_WAP2#0="WAP 2.0"; 107 + CONFIG_GLOBAL_TRANSPORT_WIFI_ONLY#0="Solo WiFi"; 42 108 CONFIG_GLOBAL_UNICODE_NORMALIZATION#0="Normalizzazione Unicode"; 43 - CONFIG_IDENTITIES#0="Identità"; 44 - CONFIG_IDENTITY_EMAIL_ADDRESS#0="Indirizzo E-Mail:"; 109 + CONFIG_IDENTITIES#0="Identit�"; 110 + CONFIG_IDENTITY_DEFAULT_NAME#0="Predefinito"; 111 + CONFIG_IDENTITY_EMAIL_ADDRESS#0="Indirizzo e-mail:"; 45 112 CONFIG_IDENTITY_FULL_NAME#0="Nome completo:"; 46 - CONFIG_IDENTITY_IDENTITY#0="Identità:"; 47 - CONFIG_IDENTITY_REPLYTO_ADDRESS#0="Indirizzo di risposta:"; 113 + CONFIG_IDENTITY_IDENTITY#0="Identit�:"; 114 + CONFIG_IDENTITY_REPLYTO_ADDRESS#0="Indirizzo per risposte:"; 48 115 CONFIG_IDENTITY_SIGNATURE#0="Firma:"; 49 - CONFIG_IDENTITY_TITLE#0="Identità"; 116 + CONFIG_IDENTITY_TITLE#0="Identit�"; 50 117 CONFIG_OUTGOING_AUTHENTICATION#0="Autenticazione:"; 51 - CONFIG_OUTGOING_SERVERS#0="Server in uscita"; 52 - CONFIG_OUTGOING_TITLE#0="In uscita (SMTP)"; 118 + CONFIG_OUTGOING_SERVERS#0="Server di invio"; 119 + CONFIG_OUTGOING_TITLE#0="Invio (SMTP)"; 53 120 CONFIG_PROMPT_INCOMPLETE#0="Configurazione incompleta!"; 54 121 CONFIG_TITLE#0="Configurazione"; 55 - CONFIG_WHAT_ACCOUNT_TYPE#0="Che tipo di identità?"; 56 - EMAILADDRESSBOOKEDIT_ALERT_GROUPS_UNSUPPORTED#0="Gruppo di contatti attualmente non supportato!"; 57 - EMAILADDRESSBOOKEDIT_ALERT_NO_ADDRESS#0="Il contatto selezionato non ha indirizzo email!"; 122 + CONFIG_WHAT_ACCOUNT_TYPE#0="Tipo account?"; 123 + EMAILADDRESSBOOKEDIT_ALERT_GROUPS_UNSUPPORTED#0="I gruppi di contatti non sono al momento disponibili!"; 124 + EMAILADDRESSBOOKEDIT_ALERT_NO_ADDRESS#0="Il contatto non ha un indirizzo e-mail!"; 58 125 EMAILADDRESSBOOKEDIT_WHICH_ADDRESS#0="Quale indirizzo?"; 126 + ERROR_RECIPIENT#0="Errore dal destinatario"; 127 + ERROR_UNABLE_TO_OPEN_CONNECTION#0="Impossibile stabilire la connessione"; 128 + ERROR_UNABLE_TO_SWITCH_TO_TLS_MODE#0="Impossibile usare TLS"; 59 129 ERROR_UNKNOWN#0="Errore sconosciuto"; 130 + FILEPICKERDIALOG_TITLE#0="Seleziona file:"; 60 131 FILESAVEDIALOG_NAME#0="Nome:"; 61 132 FILESAVEDIALOG_TITLE#0="Salva file"; 62 - FOLDERSELECTIONDIALOG_SELECT_FOLDER#0="Usa la cartella"; 133 + FOLDERSELECTIONDIALOG_SELECT_FOLDER#0="Usa cartella"; 63 134 FOLDERSELECTIONDIALOG_TITLE#0="Seleziona cartella:"; 135 + FOLDER_NAME_DRAFTS#0="Bozze"; 136 + FOLDER_NAME_INBOX#0="Posta in arrivo"; 137 + FOLDER_NAME_OUTBOX#0="Posta in uscita"; 138 + FOLDER_NAME_SENT#0="Posta inviata"; 139 + FOLDER_NAME_TRASH#0="Posta eliminata"; 64 140 LOGIN_TITLE#0="Autenticazione"; 65 - MAILBOX_DELETE_PROMPT#0="Sei sicuro che vuoi cancellare questo messaggio?"; 66 - MAILBOX_DRAFT_MULTIPLE_ACCOUNTS#0="Con quale identità vuoi che questo messaggio sia inviato?"; 141 + MAILBOX_DELETE_PROMPT#0="Cancellare questo messaggio?"; 142 + MAILBOX_DRAFT_MULTIPLE_ACCOUNTS#0="Quale account utilizzare per spedire il messaggio?"; 143 + MAILBOX_EXPUNGE_PROMPT#0="Eliminare messaggi cancellati?"; 144 + MAILBOX_INBOX#0="Inbox"; 145 + MAILBOX_LOAD_MORE_MESSAGES#0="Leggi altri messaggi..."; 146 + MAILBOX_MARK_ALL_PRIOR_ITEMS_OPENED_PROMPT#0="Segna precedenti come letti?"; 67 147 MAILCONNECTION_CLOSING_CONNECTION#0="Chiusura connessione..."; 68 148 MAILCONNECTION_OPENING_CONNECTION#0="Apertura connessione..."; 69 - MAILCONNECTION_REQUEST_FOLDER_MESSAGES#0="Scaricamento messaggi dalla cartella..."; 70 - MAILCONNECTION_REQUEST_FOLDER_STATUS#0="Rinfresco stato cartella..."; 71 - MAILCONNECTION_REQUEST_FOLDER_TREE#0="Scaricamento albero cartelle..."; 72 - MAILCONNECTION_REQUEST_MESSAGE#0="Caricamento messaggio..."; 73 - MAILCONNECTION_REQUEST_MESSAGE_APPEND#0="Salvataggio messaggio..."; 74 - MAILCONNECTION_REQUEST_MESSAGE_DELETE#0="Cancellazione messaggio..."; 75 - MAILCONNECTION_REQUEST_MESSAGE_UNDELETE#0="Ripristino messaggio..."; 76 - MAILCONNECTION_REQUEST_MESSAGE_UPDATING_FLAGS#0="Aggiornamento caratteristiche messaggio..."; 77 - MAILCONNECTION_REQUEST_SEND_MESSAGE#0="Invio messaggio..."; 78 - MAILHOME_NOACCOUNTS#0="Nessuna identità"; 79 - MAILHOME_TITLE#0="Principale"; 149 + MAILCONNECTION_REQUEST_FOLDER_EXPUNGE#0="Eliminazione messaggi cancellati..."; 150 + MAILCONNECTION_REQUEST_FOLDER_MESSAGES#0="Recupero messaggi"; 151 + MAILCONNECTION_REQUEST_FOLDER_STATUS#0="Aggiornamento stato cartelle..."; 152 + MAILCONNECTION_REQUEST_FOLDER_TREE#0="Recupero albero cartelle..."; 153 + MAILCONNECTION_REQUEST_MESSAGE#0="Lettura messaggi..."; 154 + MAILCONNECTION_REQUEST_MESSAGE_APPEND#0="Salvataggio messaggi..."; 155 + MAILCONNECTION_REQUEST_MESSAGE_COPY#0="Copia messaggi..."; 156 + MAILCONNECTION_REQUEST_MESSAGE_DELETE#0="Cancellazione messaggi..."; 157 + MAILCONNECTION_REQUEST_MESSAGE_UNDELETE#0="Ripristino messaggi..."; 158 + MAILCONNECTION_REQUEST_MESSAGE_UPDATING_FLAGS#0="Aggiornamento stato messaggi..."; 159 + MAILCONNECTION_REQUEST_SEND_MESSAGE#0="Invio messaggi..."; 160 + MAILHOME_NOACCOUNTS#0="Nessun account"; 161 + MAILHOME_TITLE#0="Home"; 80 162 MENUITEM_ABOUT#0="Informazioni"; 163 + MENUITEM_ACCEPT#0="Accetto"; 81 164 MENUITEM_ADD_ACCOUNT#0="Aggiungi profilo"; 82 - MENUITEM_ADD_BCC#0="Aggiungi Bcc: (Ccn)"; 165 + MENUITEM_ADD_BCC#0="Aggiungi Bcc:"; 83 166 MENUITEM_ADD_CC#0="Aggiungi Cc:"; 84 - MENUITEM_ADD_IDENTITY#0="Aggiungi identità"; 167 + MENUITEM_ADD_IDENTITY#0="Aggiungi identit�"; 85 168 MENUITEM_ADD_OUTGOING_SERVER#0="Aggiungi server in uscita"; 86 - MENUITEM_ADD_TO#0="Aggiungi To: (A:)"; 169 + MENUITEM_ADD_TO#0="Aggiungi To:"; 87 170 MENUITEM_ALWAYS#0="Sempre"; 88 - MENUITEM_CANCEL#0="Cancella"; 89 - MENUITEM_CLOSE#0="Chiudi"; 90 - MENUITEM_COMPOSE_EMAIL#0="Crea E-Mail"; 171 + MENUITEM_ATTACH_FILE#0="Allega"; 172 + MENUITEM_CANCEL#0="Annulla"; 173 + MENUITEM_CLEAR#0="Pulisci"; 174 + MENUITEM_CLOSE#0="Esci"; 175 + MENUITEM_COMPOSE#0="Componi"; 176 + MENUITEM_COMPOSE_EMAIL#0="Componi e-mail"; 91 177 MENUITEM_CONFIGURATION#0="Configurazione"; 92 178 MENUITEM_COPY_TO#0="Copia in..."; 179 + MENUITEM_DECLINE#0="Declino"; 93 180 MENUITEM_DELETE#0="Cancella"; 94 - MENUITEM_DELETE_ACCOUNT#0="Cancella profilo"; 95 - MENUITEM_DELETE_IDENTITY#0="Cancella identità"; 96 - MENUITEM_DELETE_OUTGOING_SERVER#0="Cancella server in uscita"; 97 - MENUITEM_DISABLED#0="Disabilitato"; 98 - MENUITEM_DISCARD#0="Elimina"; 181 + MENUITEM_DELETE_ACCOUNT#0="Cancella account"; 182 + MENUITEM_DELETE_FIELD#0="Cancella campo"; 183 + MENUITEM_DELETE_IDENTITY#0="Cancella identit�"; 184 + MENUITEM_DELETE_OUTGOING_SERVER#0="Cancella server invio"; 185 + MENUITEM_DISABLED#0="Disabled"; 186 + MENUITEM_DISCARD#0="Annulla"; 99 187 MENUITEM_DISCONNECT#0="Disconnetti"; 100 188 MENUITEM_EDIT#0="Modifica"; 101 - MENUITEM_EXIT#0="Esci"; 189 + MENUITEM_EXIT#0="Chiudi"; 102 190 MENUITEM_FORWARD#0="Inoltra..."; 103 - MENUITEM_MOVE_DOWN#0="Sposta sotto"; 104 - MENUITEM_MOVE_TO#0="Sposta in..."; 105 - MENUITEM_MOVE_UP#0="Sposta sopra"; 106 - MENUITEM_NEW_ACCOUNT_WIZARD#0="Autocomposizione nuovo profilo..."; 191 + MENUITEM_GET_HTML#0="Usa HTML"; 192 + MENUITEM_GET_PLAIN_TEXT#0="Usa solo testo"; 193 + MENUITEM_LOAD_ENTIRE_MESSAGE#0="Scarica intero messaggio"; 194 + MENUITEM_MARK_OPENED#0="Segna come letto"; 195 + MENUITEM_MARK_PRIOR_OPENED#0="Segna letti precedenti"; 196 + MENUITEM_MARK_UNOPENED#0="Segna non letto"; 197 + MENUITEM_MOVE_DOWN#0="Sposta gi�"; 198 + MENUITEM_MOVE_TO#0="Sposta..."; 199 + MENUITEM_MOVE_UP#0="Sposta su"; 200 + MENUITEM_NEVER#0="Mai"; 201 + MENUITEM_NEW_ACCOUNT_WIZARD#0="Procedura nuovo account..."; 202 + MENUITEM_NEXT#0="Avanti"; 107 203 MENUITEM_NONE#0="Nessuno"; 108 204 MENUITEM_OK#0="OK"; 109 - MENUITEM_ORDER_ASCENDING#0="Ascendente"; 110 - MENUITEM_ORDER_DESCENDING#0="Discendente"; 111 - MENUITEM_PROMPT#0="Cursore"; 112 - MENUITEM_PROPERTIES#0="Proprietà"; 113 - MENUITEM_REFRESH_FOLDERS#0="Rinfresca cartelle"; 114 - MENUITEM_REFRESH_STATUS#0="Rinfresca stato"; 205 + MENUITEM_ORDER_ASCENDING#0="Crescente"; 206 + MENUITEM_ORDER_DESCENDING#0="Decrescente"; 207 + MENUITEM_PREVIOUS#0="Indietro"; 208 + MENUITEM_PROMPT#0="Chiedi"; 209 + MENUITEM_PROPERTIES#0="Propriet�"; 210 + MENUITEM_REFRESH_FOLDERS#0="Aggiorna cartelle"; 211 + MENUITEM_REFRESH_STATUS#0="Aggiorna"; 115 212 MENUITEM_REPLY#0="Rispondi..."; 116 213 MENUITEM_REPLYTOALL#0="Rispondi a tutti..."; 117 214 MENUITEM_SAVE#0="Salva"; 118 215 MENUITEM_SAVE_AS_DRAFT#0="Salva come bozza"; 119 216 MENUITEM_SAVE_ATTACHMENT#0="Salva allegato"; 120 - MENUITEM_SELECT#0="Seleziona"; 217 + MENUITEM_SAVE_DRAFT#0="Salva bozza"; 218 + MENUITEM_SCROLL_DOWN#0="Scorri gi�"; 219 + MENUITEM_SCROLL_UP#0="Scorri su"; 220 + MENUITEM_SELECT#0="Apri"; 121 221 MENUITEM_SELECT_ADDRESS#0="Seleziona indirizzo"; 122 222 MENUITEM_SEND#0="Invia"; 123 - MENUITEM_UNDELETE#0="Recupera"; 124 - MESSAGEPROPERTIES_BCC#0="Bcc: (Ccn)"; 223 + MENUITEM_SEND_UNSENT_MESSAGES#0="Invio messaggi in uscita"; 224 + MENUITEM_TOGGLE_FOLDER#0="Fissa cartella"; 225 + MENUITEM_TO_BOTTOM#0="In fondo"; 226 + MENUITEM_TO_TOP#0="In cima"; 227 + MENUITEM_UNDELETE#0="Ripristina"; 228 + MESSAGEPROPERTIES_ACCOUNT#0="Account:"; 229 + MESSAGEPROPERTIES_BCC#0="Bcc:"; 125 230 MESSAGEPROPERTIES_CC#0="Cc:"; 126 231 MESSAGEPROPERTIES_DATE#0="Data:"; 127 - MESSAGEPROPERTIES_FROM#0="Mittente:"; 232 + MESSAGEPROPERTIES_FROM#0="From:"; 128 233 MESSAGEPROPERTIES_GENERAL#0="Generale"; 129 - MESSAGEPROPERTIES_REPLYTO#0="Rispondi A:"; 234 + MESSAGEPROPERTIES_MAILBOX#0="Casella:"; 235 + MESSAGEPROPERTIES_MAIL_SENDER#0="Server invio:"; 236 + MESSAGEPROPERTIES_MESSAGE_SIZE#0="Dimensione:"; 237 + MESSAGEPROPERTIES_OUTGOING#0="Uscita"; 238 + MESSAGEPROPERTIES_REPLYTO#0="Reply To:"; 239 + MESSAGEPROPERTIES_SENDING_ACCOUNT#0="Invio account:"; 130 240 MESSAGEPROPERTIES_STRUCTURE#0="Struttura"; 131 - MESSAGEPROPERTIES_SUBJECT#0="Soggetto:"; 132 - MESSAGEPROPERTIES_TITLE#0="Proprietà messaggio"; 133 - MESSAGEPROPERTIES_TO#0="To: (A:)"; 134 - MESSAGERENDERER_UNSUPPORTED#0="Tipo non supportato:"; 241 + MESSAGEPROPERTIES_SUBJECT#0="Oggetto:"; 242 + MESSAGEPROPERTIES_TITLE#0="Propriet� messaggio"; 243 + MESSAGEPROPERTIES_TO#0="To:"; 244 + MESSAGERENDERER_UNSUPPORTED#0="Non supportato:"; 245 + MESSAGE_ATTACHMENT#0="Allegato"; 135 246 MESSAGE_ATTACHMENTS#0="Allegati"; 136 - MESSAGE_NOTDISPLAYABLE#0="Questo messaggio non può essere visualizzato."; 137 - MESSAGE_SAVING_ATTACHMENT#0="Salvataggio allegati..."; 138 - MESSAGE_SELECT_FOLDER_COPY_TO#0="Seleziona una cartella dove copiare il messaggio:"; 139 - MESSAGE_SELECT_FOLDER_MOVE_TO#0="Seleziona una cartella dove spostare il messaggio:"; 247 + MESSAGE_FORWARD_CONTENT_PREFIX#0="Messaggio originale"; 248 + MESSAGE_LOAD_ALL_PROMPT#0="Si scaricheranno {0} di dati. Proseguire?"; 249 + MESSAGE_NOTDISPLAYABLE#0="Il messaggio non contiene alcun campo."; 250 + MESSAGE_NOT_LOADED#0="Il messaggio non pu� essere scaricato"; 251 + MESSAGE_NO_ACCOUNTS_HAVE_SENDERS#0="Nessun account configurato per invio mail."; 252 + MESSAGE_NO_OUTGOING_SERVERS#0="Impossibile spedire il messaggio senza configurare un server di invio."; 253 + MESSAGE_OVERWRITE_EXISTING_FILE#0="Sovrascrivere il file esistente?"; 254 + MESSAGE_REPLY_CONTENT_PREFIX#0="Di {0}, {1} ha scritto:"; 255 + MESSAGE_SAVING_ATTACHMENT#0="Salvataggio allegato..."; 256 + MESSAGE_SELECT_FOLDER_COPY_TO#0="Selezionare la cartella dove copiare il messaggio:"; 257 + MESSAGE_SELECT_FOLDER_MOVE_TO#0="Selezionare la cartella dove spostare il messaggio:"; 258 + MESSAGE_SELECT_OUTGOING_SERVER#0="Selezionare il server di invio per il messaggio:"; 140 259 MESSAGE_UNABLE_TO_SAVE_ATTACHMENT#0="Impossibile salvare l'allegato"; 260 + PERMISSION_EXTERNAL_CONNECTIONS#0="L'autorizzazione � richiesta per connettersi al server di posta da rete mobile."; 261 + PERMISSION_FILE_API#0="L'autorizzazione � richiesta per utilizzare le cartelle locali e salvare copie dei messaggi scaricati."; 262 + PERMISSION_INTERNAL_CONNECTIONS#0="L'autorizzazione � richiesta per connettersi al server di posta da rete BES/MDS."; 263 + PERMISSION_INTER_PROCESS_COMMUNICATION#0="L'autorizzazione � richiesta per l'accesso ai dati ed alla configurazione salvata."; 264 + PERMISSION_PIM#0="L'autorizzazione � richiesta per accedere alla rubrica nella composizione di un messaggio."; 265 + PERMISSION_WIFI#0="L'autorizzazione � richiesta per connettersi al server di posta da rete WiFi."; 141 266 WIZARD_CONFIRM_CANCEL#0="Sei sicuro di voler cancellare?"; 142 267 WIZARD_FINISH#0="Finito"; 143 268 WIZARD_NEXT#0="Prossimo"; 144 269 WIZARD_PREV#0="Precedente"; 145 270 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="Nome profilo:"; 146 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="Che nome vuoi usare per riferirti a questo profilo?"; 147 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="Nome profilo"; 148 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="Che tipo di profilo vuoi creare?"; 149 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="Tipo profilo"; 150 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="Se lasci le opzioni non compilate, ti verranno richieste quando LogicMail proverà a connettersi al server."; 151 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="Insisci nome utente e password per accedere al tuo account:"; 152 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="Autenticazione"; 271 + WIZARD_SCREEN_FINAL_CONNECTION_FAILED#0="Connection failed"; 272 + WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL#0="Connection successful"; 273 + WIZARD_SCREEN_FINAL_LOGIN_CANCELED#0="Login canceled"; 274 + WIZARD_SCREEN_FINAL_LOGIN_FAILED#0="Login failed"; 275 + WIZARD_SCREEN_FINAL_TESTING#0="Testing {0}..."; 276 + WIZARD_SCREEN_FINAL_TEST_CONFIGURATION#0="Test Configuration"; 153 277 WIZARD_SCREEN_FINAL_TITLE#0="Finito"; 154 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="Inserisci il nome del server in ingresso:"; 155 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="Server di posta"; 156 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="Il profilo include informazioni che le persone possono vedere quando leggono i tuoi messaggi."; 157 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="Crea nuovo"; 278 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="Tipo profilo:"; 158 279 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="Indirizzo e-Mail:"; 159 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="Identità:"; 160 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="Scegli l'identitè che vuoi usare con questo profilo:"; 161 280 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="Configurazione nuovo profilo"; 162 281 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="Il tuo nome:"; 163 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="Se lasci le opzioni non compilate, ti verranno richieste quando LogicMail proverà a connettersi al server."; 164 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="Che tipo di autenticazione, se determinata, è richiesta per inviare posta?"; 165 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="Autenticazione in uscita"; 166 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="Crea nuovo"; 167 - WIZARD_SCREEN_OUTGOING_QUESTION#0="Seleziona il server in uscita (SMTP) da usare con questo profilo:"; 168 282 WIZARD_SCREEN_OUTGOING_TITLE#0="Server di posta in uscita"; 283 + WIZARD_SCREEN_TRANSPORT_TITLE#0="Connection settings"; 284 + WIZARD_SCREEN_TRANSPORT_USE_DEFAULT#0="Use default setting";
+1 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail_ru.rrc
··· 232 232 WIZARD_NEXT#0="\u0414\u0430\u043B\u044C\u0448\u0435"; 233 233 WIZARD_PREV#0="\u041D\u0430\u0437\u0430\u0434"; 234 234 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="\u0418\u043C\u044F \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438:"; 235 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u0434\u043B\u044F \u044D\u0442\u043E\u0439 \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438"; 236 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="\u0418\u043C\u044F \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438"; 237 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043F \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438"; 238 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="\u0422\u0438\u043F \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438"; 239 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="\u0415\u0441\u043B\u0438 \u0432\u044B \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u043A\u0430\u043A\u043E\u0435-\u043B\u0438\u0431\u043E \u0438\u0437 \u044D\u0442\u0438\u0445 \u043F\u043E\u043B\u0435\u0439 \u043F\u0443\u0441\u0442\u044B\u043C, \u0432\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u0443\u0434\u0435\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435, \u043A\u043E\u0433\u0434\u0430 LogicMail \u043F\u043E\u043F\u044B\u0442\u0430\u0435\u0442\u0441\u044F \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0441\u044F \u0441 \u043F\u043E\u0447\u0442\u043E\u0432\u044B\u043C \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u043C."; 240 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043B\u043E\u0433\u0438\u043D \u0438 \u043F\u0430\u0440\u043E\u043B\u044C \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438:"; 241 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="\u0410\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F"; 242 235 WIZARD_SCREEN_FINAL_CONNECTION_FAILED#0="\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F"; 243 236 WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL#0="\u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E"; 244 237 WIZARD_SCREEN_FINAL_LOGIN_CANCELED#0="\u0410\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430"; ··· 246 239 WIZARD_SCREEN_FINAL_TESTING#0="\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u044E {0}..."; 247 240 WIZARD_SCREEN_FINAL_TEST_CONFIGURATION#0="\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F"; 248 241 WIZARD_SCREEN_FINAL_TITLE#0="\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C"; 249 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432\u0445\u043E\u0434\u044F\u0449\u0438\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439:"; 250 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="\u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0441\u0435\u0440\u0432\u0435\u0440"; 251 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="\u041F\u0440\u043E\u0444\u0438\u043B\u044C \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0432\u0438\u0434\u044F\u0442 \u043B\u044E\u0434\u0438, \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0449\u0438\u0435 \u0432\u0430\u0448\u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F."; 252 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439"; 242 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="\u0422\u0438\u043F \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438:"; 253 243 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="\u0410\u0434\u0440\u0435\u0441 \u0438\u043C\u0435\u0439\u043B:"; 254 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="\u041F\u0440\u043E\u0444\u0438\u043B\u044C:"; 255 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u043E\u0444\u0438\u043B\u044C \u0434\u043B\u044F \u044D\u0442\u043E\u0439 \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438:"; 256 244 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438"; 257 245 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="\u0412\u0430\u0448\u0435 \u0438\u043C\u044F:"; 258 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="\u0415\u0441\u043B\u0438 \u0432\u044B \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u043A\u0430\u043A\u043E\u0435-\u043B\u0438\u0431\u043E \u0438\u0437 \u044D\u0442\u0438\u0445 \u043F\u043E\u043B\u0435\u0439 \u043F\u0443\u0441\u0442\u044B\u043C, \u0432\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u0443\u0434\u0435\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435, \u043A\u043E\u0433\u0434\u0430 LogicMail \u043F\u043E\u043F\u044B\u0442\u0430\u0435\u0442\u0441\u044F \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0441\u044F \u0441 \u043F\u043E\u0447\u0442\u043E\u0432\u044B\u043C \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u043C."; 259 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="\u041A\u0430\u043A\u043E\u0439 \u0442\u0438\u043F \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 \u043F\u043E\u0447\u0442\u044B?"; 260 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="\u0410\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438\u0441\u0445\u043E\u0434\u044F\u0449\u0438\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439"; 261 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439"; 262 - WIZARD_SCREEN_OUTGOING_QUESTION#0="\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0441\u0445\u043E\u0434\u044F\u0449\u0438\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 (SMTP) \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0441 \u044D\u0442\u043E\u0439 \u0443\u0447\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u044C\u044E:"; 263 246 WIZARD_SCREEN_OUTGOING_TITLE#0="\u0421\u0435\u0440\u0432\u0435\u0440 \u0438\u0441\u0445\u043E\u0434\u044F\u0449\u0438\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439"; 264 247 WIZARD_SCREEN_TRANSPORT_TITLE#0="\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F"; 265 248 WIZARD_SCREEN_TRANSPORT_USE_DEFAULT#0="\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E";
+1 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail_vi.rrc
··· 114 114 WIZARD_NEXT#0="Ti�\u0301p tu\u0323c"; 115 115 WIZARD_PREV#0="Quay la\u0323i"; 116 116 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="Tên tài khoa\u0309n:"; 117 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="What name would you would like to use to refer to this account?"; 118 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="Tên tài khoa\u0309n"; 119 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="Tài khoa\u0309n POP/IMAP?"; 120 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="Loai tài khoa\u0309n"; 121 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="If you leave any of these settings blank, you will be prompted for them when LogicMail tries to connect to your mail server."; 122 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="Enter the user name and password used to access your account:"; 123 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="Th�\u0309m \u0111i\u0323nh"; 124 117 WIZARD_SCREEN_FINAL_TITLE#0="Hoàn t�\u0301t"; 125 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="Enter the name of your incoming mail server:"; 126 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="Mail server"; 127 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="The identity contains information people see about you when they read your messages."; 128 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="Ta\u0323o m\u01A1\u0301i"; 118 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="Loai tài khoa\u0309n:"; 129 119 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="\u0110i\u0323a chi\u0309 E-Mail:"; 130 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="H�\u0300 s\u01A1:"; 131 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="Chon h�\u0300 s\u01A1 to use with this account:"; 132 120 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="Thi�\u0301t l�\u0323p tài khoa\u0309n m\u01A1\u0301i"; 133 121 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="Tên cu\u0309a ba\u0323n:"; 134 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="If you leave any of these settings blank, you will be prompted for them when LogicMail tries to connect to your mail server."; 135 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="What type of authentication, if any, is required to send mail?"; 136 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="Th�\u0309m \u0111i\u0323nh khi g\u01B0\u0309i th\u01B0"; 137 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="Ta\u0323o m\u01A1\u0301i"; 138 - WIZARD_SCREEN_OUTGOING_QUESTION#0="Chon máy chu\u0309 g\u01B0\u0309i th\u01B0 dùng cho tài khoa\u0309n này:"; 139 122 WIZARD_SCREEN_OUTGOING_TITLE#0="Máy chu\u0309 g\u01B0\u0309i th\u01B0";
+1 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail_zh.rrc
··· 232 232 WIZARD_NEXT#0="\u4E0B\u4E00\u6B65"; 233 233 WIZARD_PREV#0="\u4E0A\u4E00\u6B65"; 234 234 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="\u8D26\u53F7\u540D\uFF1A"; 235 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="\u4F60\u5E0C\u671B\u7528\u4EC0\u4E48\u540D\u5B57\u4EE3\u8868\u8FD9\u4E2A\u5E10\u53F7\uFF1F"; 236 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="\u8D26\u53F7\u540D"; 237 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="\u4F60\u5E0C\u671B\u521B\u5EFA\u4EC0\u4E48\u7C7B\u578B\u7684\u8D26\u53F7\uFF1F"; 238 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="\u8D26\u53F7\u7C7B\u578B"; 239 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="\u5982\u679C\u4F60\u4E0D\u586B\u8FD9\u4E9B\u8BBE\u7F6E\uFF0C\u5F53LogicMail\u4F1A\u5728\u8FDE\u63A5\u4F60\u7684\u90AE\u4EF6\u670D\u52A1\u5668\u65F6\u63D0\u793A\u8F93\u5165\u3002"; 240 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="\u8F93\u5165\u4F60\u7684\u8D26\u53F7\u7684\u7528\u6237\u540D\u548C\u5BC6\u7801\uFF1A"; 241 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="\u8EAB\u5206\u8BA4\u8BC1"; 242 235 WIZARD_SCREEN_FINAL_CONNECTION_FAILED#0="\u8FDE\u63A5\u5931\u8D25"; 243 236 WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL#0="\u8FDE\u63A5\u6210\u529F"; 244 237 WIZARD_SCREEN_FINAL_LOGIN_CANCELED#0="\u767B\u5F55\u5DF2\u88AB\u53D6\u6D88"; ··· 246 239 WIZARD_SCREEN_FINAL_TESTING#0="\u7ED3\u675F"; 247 240 WIZARD_SCREEN_FINAL_TEST_CONFIGURATION#0="\u6D4B\u8BD5\u914D\u7F6E"; 248 241 WIZARD_SCREEN_FINAL_TITLE#0="\u5B8C\u6210"; 249 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="\u8F93\u5165\u4F60\u7684\u6536\u4EF6\u670D\u52A1\u5668\uFF1A"; 250 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="\u90AE\u4EF6\u670D\u52A1\u5668"; 251 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="\u6807\u8BC6\u662F\u522B\u4EBA\u6536\u5230\u4F60\u7684\u90AE\u4EF6\u7684\u65F6\u5019\u770B\u5F97\u5230\u7684\u4F60\u7684\u4FE1\u606F"; 252 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="\u65B0\u5EFA"; 242 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="\u8D26\u53F7\u7C7B\u578B:"; 253 243 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="\u90AE\u4EF6\u5730\u5740\uFF1A"; 254 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="\u6807\u8BC6\uFF1A"; 255 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="\u9009\u62E9\u7528\u4E8E\u8FD9\u4E2A\u5E10\u53F7\u7684\u6807\u8BC6\uFF1A"; 256 244 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="\u8BBE\u7F6E\u65B0\u5E10\u53F7"; 257 245 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="\u4F60\u7684\u540D\u5B57\uFF1A"; 258 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="\u5982\u679C\u4F60\u4E0D\u586B\u8FD9\u4E9B\u8BBE\u7F6E\uFF0C\u5F53LogicMail\u4F1A\u5728\u8FDE\u63A5\u4F60\u7684\u90AE\u4EF6\u670D\u52A1\u5668\u65F6\u63D0\u793A\u8F93\u5165\u3002"; 259 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="\u53D1\u9001\u90AE\u4EF6\u9700\u8981\u4EC0\u4E48\u6837\u7684\u8BA4\u8BC1\uFF1F"; 260 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="\u53D1\u9001\u670D\u52A1\u5668\u8BA4\u8BC1"; 261 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="\u65B0\u5EFA"; 262 - WIZARD_SCREEN_OUTGOING_QUESTION#0="\u5916\u53D1\u90AE\u4EF6\u670D\u52A1\u5668"; 263 246 WIZARD_SCREEN_OUTGOING_TITLE#0="\u5916\u53D1\u90AE\u4EF6\u670D\u52A1\u5668"; 264 247 WIZARD_SCREEN_TRANSPORT_TITLE#0="\u8FDE\u63A5\u8BBE\u7F6E"; 265 248 WIZARD_SCREEN_TRANSPORT_USE_DEFAULT#0="\u4F7F\u7528\u9ED8\u8BA4\u8BBE\u7F6E";
+1 -18
LogicMail/res/org/logicprobe/LogicMail/LogicMail_zh_CN.rrc
··· 232 232 WIZARD_NEXT#0="\u4E0B\u4E00\u6B65"; 233 233 WIZARD_PREV#0="\u4E0A\u4E00\u6B65"; 234 234 WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME#0="\u8D26\u53F7\u540D\uFF1A"; 235 - WIZARD_SCREEN_ACCOUNT_NAME_QUESTION#0="\u4F60\u5E0C\u671B\u7528\u4EC0\u4E48\u540D\u5B57\u4EE3\u8868\u8FD9\u4E2A\u5E10\u53F7\uFF1F"; 236 - WIZARD_SCREEN_ACCOUNT_NAME_TITLE#0="\u8D26\u53F7\u540D"; 237 - WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION#0="\u4F60\u5E0C\u671B\u521B\u5EFA\u4EC0\u4E48\u7C7B\u578B\u7684\u8D26\u53F7\uFF1F"; 238 - WIZARD_SCREEN_ACCOUNT_TYPE_TITLE#0="\u8D26\u53F7\u7C7B\u578B"; 239 - WIZARD_SCREEN_AUTHENTICATION_COMMENTS#0="\u5982\u679C\u4F60\u4E0D\u586B\u8FD9\u4E9B\u8BBE\u7F6E\uFF0C\u5F53LogicMail\u4F1A\u5728\u8FDE\u63A5\u4F60\u7684\u90AE\u4EF6\u670D\u52A1\u5668\u65F6\u63D0\u793A\u8F93\u5165\u3002"; 240 - WIZARD_SCREEN_AUTHENTICATION_QUESTION#0="\u8F93\u5165\u4F60\u7684\u8D26\u53F7\u7684\u7528\u6237\u540D\u548C\u5BC6\u7801\uFF1A"; 241 - WIZARD_SCREEN_AUTHENTICATION_TITLE#0="\u8EAB\u5206\u8BA4\u8BC1"; 242 235 WIZARD_SCREEN_FINAL_CONNECTION_FAILED#0="\u8FDE\u63A5\u5931\u8D25"; 243 236 WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL#0="\u8FDE\u63A5\u6210\u529F"; 244 237 WIZARD_SCREEN_FINAL_LOGIN_CANCELED#0="\u767B\u5F55\u5DF2\u88AB\u53D6\u6D88"; ··· 246 239 WIZARD_SCREEN_FINAL_TESTING#0="\u7ED3\u675F"; 247 240 WIZARD_SCREEN_FINAL_TEST_CONFIGURATION#0="\u6D4B\u8BD5\u914D\u7F6E"; 248 241 WIZARD_SCREEN_FINAL_TITLE#0="\u5B8C\u6210"; 249 - WIZARD_SCREEN_MAIL_SERVER_QUESTION#0="\u8F93\u5165\u4F60\u7684\u6536\u4EF6\u670D\u52A1\u5668\uFF1A"; 250 - WIZARD_SCREEN_MAIL_SERVER_TITLE#0="\u90AE\u4EF6\u670D\u52A1\u5668"; 251 - WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS#0="\u6807\u8BC6\u662F\u522B\u4EBA\u6536\u5230\u4F60\u7684\u90AE\u4EF6\u7684\u65F6\u5019\u770B\u5F97\u5230\u7684\u4F60\u7684\u4FE1\u606F"; 252 - WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY#0="\u65B0\u5EFA"; 242 + WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE#0="\u8D26\u53F7\u7C7B\u578B:"; 253 243 WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS#0="\u90AE\u4EF6\u5730\u5740\uFF1A"; 254 - WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY#0="\u6807\u8BC6\uFF1A"; 255 - WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY#0="\u9009\u62E9\u7528\u4E8E\u8FD9\u4E2A\u5E10\u53F7\u7684\u6807\u8BC6\uFF1A"; 256 244 WIZARD_SCREEN_NEW_ACCOUNT_TITLE#0="\u8BBE\u7F6E\u65B0\u5E10\u53F7"; 257 245 WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME#0="\u4F60\u7684\u540D\u5B57\uFF1A"; 258 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS#0="\u5982\u679C\u4F60\u4E0D\u586B\u8FD9\u4E9B\u8BBE\u7F6E\uFF0C\u5F53LogicMail\u4F1A\u5728\u8FDE\u63A5\u4F60\u7684\u90AE\u4EF6\u670D\u52A1\u5668\u65F6\u63D0\u793A\u8F93\u5165\u3002"; 259 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION#0="\u53D1\u9001\u90AE\u4EF6\u9700\u8981\u4EC0\u4E48\u6837\u7684\u8BA4\u8BC1\uFF1F"; 260 - WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE#0="\u53D1\u9001\u670D\u52A1\u5668\u8BA4\u8BC1"; 261 - WIZARD_SCREEN_OUTGOING_CREATE_NEW#0="\u65B0\u5EFA"; 262 - WIZARD_SCREEN_OUTGOING_QUESTION#0="\u5916\u53D1\u90AE\u4EF6\u670D\u52A1\u5668"; 263 246 WIZARD_SCREEN_OUTGOING_TITLE#0="\u5916\u53D1\u90AE\u4EF6\u670D\u52A1\u5668"; 264 247 WIZARD_SCREEN_TRANSPORT_TITLE#0="\u8FDE\u63A5\u8BBE\u7F6E"; 265 248 WIZARD_SCREEN_TRANSPORT_USE_DEFAULT#0="\u4F7F\u7528\u9ED8\u8BA4\u8BBE\u7F6E";
+270
LogicMail/src/org/logicprobe/LogicMail/ui/AccountConfigTester.java
··· 1 + /*- 2 + * Copyright (c) 2011, Derek Konigsberg 3 + * All rights reserved. 4 + * 5 + * Redistribution and use in source and binary forms, with or without 6 + * modification, are permitted provided that the following conditions 7 + * are met: 8 + * 9 + * 1. Redistributions of source code must retain the above copyright 10 + * notice, this list of conditions and the following disclaimer. 11 + * 2. Redistributions in binary form must reproduce the above copyright 12 + * notice, this list of conditions and the following disclaimer in the 13 + * documentation and/or other materials provided with the distribution. 14 + * 3. Neither the name of the project nor the names of its 15 + * contributors may be used to endorse or promote products derived 16 + * from this software without specific prior written permission. 17 + * 18 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 22 + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 23 + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 24 + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 27 + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 29 + * OF THE POSSIBILITY OF SUCH DAMAGE. 30 + */ 31 + package org.logicprobe.LogicMail.ui; 32 + 33 + import java.io.IOException; 34 + 35 + import org.logicprobe.LogicMail.LogicMailResource; 36 + import org.logicprobe.LogicMail.conf.AccountConfig; 37 + import org.logicprobe.LogicMail.conf.OutgoingConfig; 38 + import org.logicprobe.LogicMail.mail.MailClient; 39 + import org.logicprobe.LogicMail.mail.MailClientFactory; 40 + import org.logicprobe.LogicMail.mail.MailException; 41 + import org.logicprobe.LogicMail.util.WrappedIOException; 42 + 43 + import net.rim.device.api.i18n.MessageFormat; 44 + import net.rim.device.api.i18n.ResourceBundle; 45 + import net.rim.device.api.ui.Color; 46 + import net.rim.device.api.ui.FieldChangeListener; 47 + import net.rim.device.api.ui.Font; 48 + import net.rim.device.api.ui.Graphics; 49 + import net.rim.device.api.ui.UiApplication; 50 + import net.rim.device.api.ui.component.Dialog; 51 + import net.rim.device.api.ui.component.LabelField; 52 + import net.rim.device.api.ui.container.VerticalFieldManager; 53 + 54 + /** 55 + * Handles account configuration testing for the setup wizard. 56 + */ 57 + public class AccountConfigTester { 58 + protected static ResourceBundle resources = ResourceBundle.getBundle(LogicMailResource.BUNDLE_ID, LogicMailResource.BUNDLE_NAME); 59 + 60 + private final static int TYPE_INFO = 0; 61 + private final static int TYPE_SUCCESS = 1; 62 + private final static int TYPE_FAILURE = 2; 63 + private final static int TYPE_FAILURE_DETAIL = 3; 64 + 65 + public final static int TEST_COMPLETE = 1000; 66 + 67 + private VerticalFieldManager testOutputManager; 68 + private boolean testInProgress; 69 + private volatile boolean testCanceled; 70 + 71 + public AccountConfigTester() { 72 + testOutputManager = new VerticalFieldManager(); 73 + } 74 + 75 + /** 76 + * Gets the test output manager, which should be added to the screen 77 + * being used to display connection test results. 78 + * 79 + * @return the test output manager 80 + */ 81 + public VerticalFieldManager getTestOutputManager() { 82 + return testOutputManager; 83 + } 84 + 85 + /** 86 + * Checks if a connection test is in progress. 87 + * 88 + * @return true, if the test is in progress 89 + */ 90 + public boolean isTestInProgress() { 91 + return testInProgress; 92 + } 93 + 94 + /** 95 + * Sets the test as canceled, so that it will cease at the earliest 96 + * opportunity. 97 + */ 98 + public void setTestCanceled() { 99 + this.testCanceled = true; 100 + testOutputManager.deleteAll(); 101 + } 102 + 103 + /** 104 + * Runs the connection test process on a background thread. 105 + * The test output manager will be updated as the test progresses, 106 + * and its {@link FieldChangeListener} will be notified upon test 107 + * completion with a TEST_COMPLETE context parameter. 108 + * 109 + * @param accountConfig the account configuration to test 110 + */ 111 + public void runConnectionTest(final AccountConfig accountConfig) { 112 + testOutputManager.deleteAll(); 113 + testInProgress = true; 114 + testCanceled = false; 115 + (new Thread() { public void run() { 116 + addText(MessageFormat.format( 117 + resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_TESTING), 118 + new Object[] { accountConfig.toString() }), 119 + TYPE_INFO); 120 + MailClient mailClient = MailClientFactory.createTemporaryMailClient(accountConfig); 121 + testClientConnection(mailClient); 122 + 123 + if(testCanceled) { testComplete(); return; } 124 + 125 + if(accountConfig.getOutgoingConfig() != null) { 126 + OutgoingConfig outgoingConfig = accountConfig.getOutgoingConfig(); 127 + addText(MessageFormat.format( 128 + resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_TESTING), 129 + new Object[] { outgoingConfig.toString() }), 130 + TYPE_INFO); 131 + mailClient = MailClientFactory.createTemporaryOutgoingMailClient(outgoingConfig); 132 + testClientConnection(mailClient); 133 + } 134 + testComplete(); 135 + }}).start(); 136 + } 137 + 138 + private void testClientConnection(MailClient mailClient) { 139 + boolean success; 140 + String errorMessage = null; 141 + String errorDetail = null; 142 + try { 143 + if(checkLogin(mailClient)) { 144 + success = mailClient.open(); 145 + errorMessage = resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_LOGIN_FAILED); 146 + } 147 + else { 148 + success = false; 149 + errorMessage = resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_LOGIN_CANCELED); 150 + } 151 + } catch (IOException exp) { 152 + success = false; 153 + errorMessage = exp.getMessage(); 154 + if(exp instanceof WrappedIOException) { 155 + Throwable innerExp = ((WrappedIOException)exp).getInnerException(); 156 + if(innerExp != null) { 157 + errorDetail = innerExp.getMessage(); 158 + } 159 + } 160 + } catch (MailException exp) { 161 + success = false; 162 + errorMessage = exp.getMessage(); 163 + } 164 + 165 + if(mailClient.isConnected()) { 166 + try { 167 + mailClient.close(); 168 + } catch (Exception e) { } 169 + } 170 + 171 + if(testCanceled) { return; } 172 + 173 + if(success) { 174 + addText(resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL), TYPE_SUCCESS); 175 + } 176 + else { 177 + addText(resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_CONNECTION_FAILED), TYPE_FAILURE); 178 + if(errorMessage != null) { 179 + addText(errorMessage, TYPE_FAILURE_DETAIL); 180 + if(errorDetail != null) { 181 + addText(errorDetail, TYPE_FAILURE_DETAIL); 182 + } 183 + } 184 + } 185 + } 186 + 187 + private boolean checkLogin(final MailClient client) { 188 + if(!client.isLoginRequired()) { return true; } 189 + 190 + String username = client.getUsername(); 191 + String password = client.getPassword(); 192 + // If the username and password are not null, 193 + // but are empty, request login information. 194 + if((username != null && password != null) 195 + && (username.trim().equals("") || password.trim().equals(""))) { 196 + 197 + final boolean[] canceled = new boolean[1]; 198 + UiApplication.getUiApplication().invokeAndWait(new Runnable() { 199 + public void run() { 200 + String username = client.getUsername(); 201 + String password = client.getPassword(); 202 + LoginDialog dialog = new LoginDialog(username, password); 203 + if(dialog.doModal() == Dialog.OK) { 204 + client.setUsername(dialog.getUsername()); 205 + client.setPassword(dialog.getPassword()); 206 + canceled[0] = false; 207 + } 208 + else { 209 + canceled[0] = true; 210 + } 211 + } 212 + }); 213 + 214 + return !canceled[0]; 215 + } 216 + else { 217 + return true; 218 + } 219 + } 220 + 221 + private void testComplete() { 222 + UiApplication.getUiApplication().invokeLater(new Runnable() { 223 + public void run() { 224 + FieldChangeListener listener = testOutputManager.getChangeListener(); 225 + if(listener != null) { 226 + listener.fieldChanged(testOutputManager, TEST_COMPLETE); 227 + } 228 + testInProgress = false; 229 + if(testCanceled) { 230 + testOutputManager.deleteAll(); 231 + } 232 + } 233 + }); 234 + } 235 + 236 + private void addText(final String text, final int type) { 237 + UiApplication.getUiApplication().invokeLater(new Runnable() { 238 + public void run() { 239 + testOutputManager.add(new StatusLabelField(text, type)); 240 + } 241 + }); 242 + } 243 + 244 + class StatusLabelField extends LabelField { 245 + private final int type; 246 + StatusLabelField(final String text, final int type) { 247 + super(text); 248 + this.type = type; 249 + if(type == TYPE_SUCCESS) { 250 + this.setFont(this.getFont().derive(Font.BOLD)); 251 + } 252 + else if(type == TYPE_FAILURE) { 253 + this.setFont(this.getFont().derive(Font.BOLD)); 254 + } 255 + else if(type == TYPE_FAILURE_DETAIL) { 256 + this.setFont(this.getFont().derive(Font.ITALIC)); 257 + } 258 + } 259 + 260 + protected void paint(Graphics graphics) { 261 + if(type == TYPE_SUCCESS) { 262 + graphics.setColor(Color.GREEN); 263 + } 264 + else if(type == TYPE_FAILURE || type == TYPE_FAILURE_DETAIL) { 265 + graphics.setColor(Color.RED); 266 + } 267 + super.paint(graphics); 268 + }; 269 + } 270 + }
+413 -565
LogicMail/src/org/logicprobe/LogicMail/ui/AccountConfigWizard.java
··· 30 30 */ 31 31 package org.logicprobe.LogicMail.ui; 32 32 33 - import java.io.IOException; 34 - 35 33 import org.logicprobe.LogicMail.LogicMailResource; 34 + import org.logicprobe.LogicMail.PlatformInfo; 36 35 import org.logicprobe.LogicMail.conf.AccountConfig; 37 36 import org.logicprobe.LogicMail.conf.ConnectionConfig; 38 37 import org.logicprobe.LogicMail.conf.GlobalConfig; ··· 41 40 import org.logicprobe.LogicMail.conf.MailSettings; 42 41 import org.logicprobe.LogicMail.conf.IdentityConfig; 43 42 import org.logicprobe.LogicMail.conf.OutgoingConfig; 44 - import org.logicprobe.LogicMail.mail.MailClient; 45 - import org.logicprobe.LogicMail.mail.MailClientFactory; 46 - import org.logicprobe.LogicMail.mail.MailException; 47 43 import org.logicprobe.LogicMail.model.MailManager; 48 44 import org.logicprobe.LogicMail.model.MailRootNode; 49 45 import org.logicprobe.LogicMail.model.MailboxNode; 50 46 import org.logicprobe.LogicMail.model.NetworkAccountNode; 51 - import org.logicprobe.LogicMail.util.WrappedIOException; 52 47 53 48 import net.rim.device.api.i18n.MessageFormat; 54 49 import net.rim.device.api.ui.Color; 55 50 import net.rim.device.api.ui.Field; 56 51 import net.rim.device.api.ui.FieldChangeListener; 57 - import net.rim.device.api.ui.UiApplication; 52 + import net.rim.device.api.ui.Graphics; 53 + import net.rim.device.api.ui.Manager; 54 + import net.rim.device.api.ui.Ui; 58 55 import net.rim.device.api.ui.component.ButtonField; 59 56 import net.rim.device.api.ui.component.BasicEditField; 60 57 import net.rim.device.api.ui.component.CheckboxField; 58 + import net.rim.device.api.ui.component.ChoiceField; 61 59 import net.rim.device.api.ui.component.Dialog; 60 + import net.rim.device.api.ui.component.NullField; 62 61 import net.rim.device.api.ui.component.PasswordEditField; 63 62 import net.rim.device.api.ui.component.ObjectChoiceField; 64 63 import net.rim.device.api.ui.component.LabelField; 65 - import net.rim.device.api.ui.component.RichTextField; 66 64 import net.rim.device.api.ui.component.EditField; 67 65 import net.rim.device.api.ui.component.EmailAddressEditField; 68 66 import net.rim.device.api.ui.component.RadioButtonGroup; 69 67 import net.rim.device.api.ui.component.RadioButtonField; 68 + import net.rim.device.api.ui.component.SeparatorField; 69 + import net.rim.device.api.ui.component.TextField; 70 + import net.rim.device.api.ui.container.HorizontalFieldManager; 70 71 import net.rim.device.api.ui.container.VerticalFieldManager; 71 72 import net.rim.device.api.ui.text.TextFilter; 72 73 import net.rim.device.api.ui.Font; 73 74 74 75 public class AccountConfigWizard extends WizardController { 76 + private static final boolean hasIndicators = PlatformInfo.getInstance().hasApplicationIndicators(); 77 + 78 + private static String IMAP = "IMAP"; 79 + private static String IMAP_PORT = "143"; 80 + private static String IMAP_PORT_SSL = "993"; 81 + private static String POP = "POP"; 82 + private static String POP_PORT = "110"; 83 + private static String POP_PORT_SSL = "995"; 84 + private static String SMTP = "SMTP"; 85 + private static String SMTP_PORT = "587"; 86 + private static String SMTP_PORT_SSL = "465"; 87 + 75 88 private int accountType = -1; 76 - private boolean identityCreated; 77 89 private boolean outgoingCreated; 78 90 79 91 private static final int ACCOUNT_TYPE_IMAP = 0; ··· 84 96 85 97 public AccountConfigWizard() { 86 98 addWizardScreen(newAccountWizardScreen); 87 - addWizardScreen(accountTypeWizardScreen); 88 - addWizardScreen(accountNameWizardScreen); 89 - addWizardScreen(mailServerWizardScreen); 90 - addWizardScreen(authenticationWizardScreen); 99 + addWizardScreen(incomingServerWizardScreen); 91 100 addWizardScreen(outgoingServerWizardScreen); 92 - addWizardScreen(outgoingAuthenticationWizardScreen); 101 + addWizardScreen(miscWizardScreen); 93 102 addWizardScreen(transportWizardScreen); 94 103 addWizardScreen(finalWizardScreen); 95 104 } ··· 97 106 private IdentityConfig identityConfig; 98 107 private AccountConfig accountConfig; 99 108 private OutgoingConfig outgoingConfig; 109 + private boolean autoStartEnabled; 110 + private boolean notificationIconShown; 100 111 101 112 // Data objects shared by multiple screens 113 + private String accountName; 102 114 private String identityEmailAddress; 103 115 private String incomingServerName; 104 116 private String incomingServerUsername; 105 117 private String incomingServerPass; 106 118 119 + private static Field createDescribedField(Field field, String label, String description) { 120 + VerticalFieldManager manager = new VerticalFieldManager(Field.USE_ALL_WIDTH | Manager.NO_VERTICAL_SCROLL); 121 + if(label != null) { 122 + LabelField labelField = new LabelField(label); 123 + manager.add(labelField); 124 + } 125 + if(!(field instanceof ChoiceField)) { 126 + FieldFactory.getInstance().addRoundedBorder(field); 127 + } 128 + manager.add(field); 129 + if(description != null) { 130 + LabelField descField = new LabelField(description) { 131 + protected void paint(Graphics graphics) { 132 + graphics.setColor(Color.GRAY); 133 + super.paint(graphics); 134 + }; 135 + }; 136 + descField.setFont(Font.getDefault().derive(Font.PLAIN, 6, Ui.UNITS_pt)); 137 + manager.add(descField); 138 + } 139 + manager.add(BlankSeparatorField.createQuarterHeightSeparator()); 140 + return manager; 141 + } 142 + 143 + private static Field createDescribedField(Field field, String label) { 144 + return createDescribedField(field, label, null); 145 + } 146 + 147 + private static boolean hasText(TextField field) { 148 + return field.getText().trim().length() > 0; 149 + } 150 + 107 151 private WizardScreen newAccountWizardScreen = new WizardScreen( 108 152 WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_TITLE), 109 153 WizardScreen.PAGE_FIRST) { 154 + 110 155 private FieldChangeListener fieldChangeListener; 111 - private ObjectChoiceField identityChoiceField; 156 + private EditField accountNameEditField; 112 157 private EditField identityNameEditField; 113 - private EditField nameEditField; 114 158 private EmailAddressEditField emailAddressEditField; 115 - private RichTextField commentsField; 159 + private RadioButtonGroup accountTypeGroup; 160 + private RadioButtonField imapAccountType; 161 + private RadioButtonField popAccountType; 116 162 117 163 protected void initFields() { 118 - // Populate the list of existing identities 119 - MailSettings mailSettings = MailSettings.getInstance(); 120 - int numIdentities = mailSettings.getNumIdentities(); 121 - Object[] identityChoices = new Object[numIdentities + 1]; 122 - for(int i=0; i<numIdentities; i++) { 123 - identityChoices[i] = mailSettings.getIdentityConfig(i); 124 - } 125 - identityChoices[identityChoices.length - 1] = resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_CREATE_NEW_IDENTITY); 126 - 127 164 fieldChangeListener = new FieldChangeListener() { 128 165 public void fieldChanged(Field field, int context) { 129 - newAccountWizardScreen_fieldChanged(field, context); 130 - }}; 131 - 132 - identityChoiceField = new ObjectChoiceField( 133 - resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_SELECT_IDENTITY), 134 - identityChoices, 0); 135 - identityChoiceField.setChangeListener(fieldChangeListener); 136 - 137 - identityNameEditField = new EditField(resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_IDENTITY) + ' ', ""); 166 + validateData(); 167 + } 168 + }; 169 + 170 + accountNameEditField = new EditField(); 171 + accountNameEditField.setChangeListener(fieldChangeListener); 172 + add(createDescribedField( 173 + accountNameEditField, 174 + resources.getString(LogicMailResource.WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME))); 175 + 176 + identityNameEditField = new EditField(); 138 177 identityNameEditField.setChangeListener(fieldChangeListener); 139 - 140 - nameEditField = new EditField(resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME) + ' ', ""); 141 - nameEditField.setChangeListener(fieldChangeListener); 142 - 143 - emailAddressEditField = new EmailAddressEditField(resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS) + ' ', ""); 178 + add(createDescribedField( 179 + identityNameEditField, 180 + resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME), 181 + resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_YOUR_NAME_HELP))); 182 + 183 + emailAddressEditField = new EmailAddressEditField("", ""); 144 184 emailAddressEditField.setChangeListener(fieldChangeListener); 185 + add(createDescribedField( 186 + emailAddressEditField, 187 + resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_EMAIL_ADDRESS))); 188 + 189 + accountTypeGroup = new RadioButtonGroup(); 190 + accountTypeGroup.setChangeListener(fieldChangeListener); 191 + imapAccountType = new RadioButtonField(IMAP, accountTypeGroup, false) { 192 + protected void layout(int width, int height) { 193 + int temp = this.getPreferredWidth(); 194 + setExtent(temp, height); 195 + super.layout(temp, height); 196 + }; 197 + }; 198 + popAccountType = new RadioButtonField(POP, accountTypeGroup, false) { 199 + protected void layout(int width, int height) { 200 + int temp = this.getPreferredWidth(); 201 + setExtent(temp, height); 202 + super.layout(temp, height); 203 + }; 204 + }; 145 205 146 - commentsField = new RichTextField(resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_COMMENTS)); 147 - commentsField.setFont(this.getFont().derive(Font.ITALIC)); 148 - 149 - add(identityChoiceField); 150 - add(identityNameEditField); 151 - add(nameEditField); 152 - add(emailAddressEditField); 153 - add(BlankSeparatorField.createHalfHeightSeparator()); 154 - add(commentsField); 155 - 156 - populateIdentityItems(); 157 - validateData(); 206 + HorizontalFieldManager typeManager = new HorizontalFieldManager(Field.USE_ALL_WIDTH); 207 + typeManager.add(imapAccountType); 208 + typeManager.add(new LabelField(" ", Field.NON_FOCUSABLE)); 209 + typeManager.add(popAccountType); 210 + add(createDescribedField( 211 + typeManager, 212 + resources.getString(LogicMailResource.WIZARD_SCREEN_NEW_ACCOUNT_ACCOUNT_TYPE))); 158 213 159 - if(identityChoiceField.getSize() < 2) { 160 - identityChoiceField.setEditable(false); 161 - } 162 - identityNameEditField.setFocus(); 163 - } 164 - 165 - private void newAccountWizardScreen_fieldChanged(Field field, int context) { 166 - if(field == identityChoiceField) { 167 - populateIdentityItems(); 168 - } 169 214 validateData(); 170 215 } 171 - 216 + 172 217 private void validateData() { 173 - if(identityNameEditField.getText().trim().length() > 0 && 174 - nameEditField.getText().trim().length() > 0 && 175 - emailAddressEditField.getText().trim().length() > 0) { 218 + if(hasText(accountNameEditField) 219 + && hasText(identityNameEditField) 220 + && hasText(emailAddressEditField) 221 + && accountTypeGroup.getSelectedIndex() != -1) { 176 222 setInputValid(true); 177 223 } 178 224 else { 179 225 setInputValid(false); 180 226 } 181 227 } 182 - 228 + 183 229 protected void onPageFlip() { 184 - identityEmailAddress = emailAddressEditField.getText(); 185 - }; 186 - 187 - private void populateIdentityItems() { 188 - int index = identityChoiceField.getSelectedIndex(); 189 - Object item = identityChoiceField.getChoice(index); 190 - if(item instanceof IdentityConfig) { 191 - IdentityConfig identityConfig = (IdentityConfig)item; 192 - identityNameEditField.setText(identityConfig.getIdentityName()); 193 - nameEditField.setText(identityConfig.getFullName()); 194 - emailAddressEditField.setText(identityConfig.getEmailAddress()); 195 - 196 - identityNameEditField.setEditable(false); 197 - nameEditField.setEditable(false); 198 - emailAddressEditField.setEditable(false); 199 - } 200 - else { 201 - if(index == 0) { 202 - identityNameEditField.setText(IdentityConfig.getDefaultName()); 203 - } 204 - else { 205 - identityNameEditField.setText(""); 206 - } 207 - nameEditField.setText(""); 208 - emailAddressEditField.setText(""); 209 - 210 - identityNameEditField.setEditable(true); 211 - nameEditField.setEditable(true); 212 - emailAddressEditField.setEditable(true); 213 - } 214 - } 215 - 216 - public void gatherResults() { 217 - int index = identityChoiceField.getSelectedIndex(); 218 - Object item = identityChoiceField.getChoice(index); 219 - if(item instanceof IdentityConfig) { 220 - identityConfig = (IdentityConfig)item; 221 - identityCreated = false; 222 - } 223 - else { 224 - identityConfig.setIdentityName(identityNameEditField.getText()); 225 - identityConfig.setFullName(nameEditField.getText()); 226 - identityConfig.setEmailAddress(emailAddressEditField.getText()); 227 - identityCreated = true; 228 - } 229 - } 230 - }; 231 - private WizardScreen accountTypeWizardScreen = new WizardScreen( 232 - WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_ACCOUNT_TYPE_TITLE), 233 - WizardScreen.PAGE_NORMAL) { 234 - private LabelField descriptionLabelField; 235 - private RadioButtonGroup accountTypeGroup; 236 - private RadioButtonField imapAccountType; 237 - private RadioButtonField popAccountType; 238 - 239 - protected void initFields() { 240 - descriptionLabelField = new LabelField(resources.getString(LogicMailResource.WIZARD_SCREEN_ACCOUNT_TYPE_QUESTION)); 241 - accountTypeGroup = new RadioButtonGroup(); 242 - accountTypeGroup.setChangeListener(new FieldChangeListener() { 243 - public void fieldChanged(Field field, int context) { 244 - setInputValid(accountTypeGroup.getSelectedIndex() != -1); 245 - } 246 - }); 247 - imapAccountType = new RadioButtonField("IMAP", accountTypeGroup, false); 248 - popAccountType = new RadioButtonField("POP", accountTypeGroup, false); 249 - 250 - add(descriptionLabelField); 251 - add(imapAccountType); 252 - add(popAccountType); 253 - setInputValid(false); 254 - } 255 - 256 - protected void onPageFlip() { 230 + accountName = accountNameEditField.getText().trim(); 231 + identityEmailAddress = emailAddressEditField.getText().trim(); 232 + 257 233 if(imapAccountType.isSelected()) { 258 234 accountType = ACCOUNT_TYPE_IMAP; 259 235 } 260 236 else if(popAccountType.isSelected()) { 261 237 accountType = ACCOUNT_TYPE_POP; 262 238 } 263 - } 264 - 239 + }; 240 + 265 241 public void gatherResults() { 266 - // Nothing to gather here, since the account type is 267 - // already noted in onPageFlip(). 242 + String fullName = identityNameEditField.getText().trim(); 243 + String emailAddress = emailAddressEditField.getText().trim(); 244 + String identityName = MessageFormat.format( 245 + "{0} ({1})", 246 + new Object[] { fullName, accountName }); 247 + 248 + identityConfig.setIdentityName(identityName); 249 + identityConfig.setFullName(fullName); 250 + identityConfig.setEmailAddress(emailAddress); 268 251 } 269 252 }; 270 - private WizardScreen accountNameWizardScreen = new WizardScreen( 271 - WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_ACCOUNT_NAME_TITLE), 272 - WizardScreen.PAGE_NORMAL) { 273 - private LabelField descriptionLabelField; 274 - private EditField nameEditField; 275 - 276 - protected void initFields() { 277 - descriptionLabelField = new LabelField(resources.getString(LogicMailResource.WIZARD_SCREEN_ACCOUNT_NAME_QUESTION)); 278 - nameEditField = new EditField(resources.getString(LogicMailResource.WIZARD_SCREEN_ACCOUNT_NAME_ACCOUNT_NAME) + ' ', ""); 279 - nameEditField.setChangeListener(new FieldChangeListener() { 280 - public void fieldChanged(Field field, int context) { 281 - setInputValid(nameEditField.getText().trim().length() > 0); 282 - } 283 - }); 284 - 285 - add(descriptionLabelField); 286 - add(nameEditField); 287 - } 288 - public void gatherResults() { 289 - accountConfig.setAcctName(nameEditField.getText()); 290 - } 291 - }; 292 - private WizardScreen mailServerWizardScreen = new WizardScreen( 293 - WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_MAIL_SERVER_TITLE), 253 + 254 + private WizardScreen incomingServerWizardScreen = new WizardScreen( 255 + WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_INCOMING_TITLE), 294 256 WizardScreen.PAGE_NORMAL) { 295 257 private FieldChangeListener fieldChangeListener; 296 - private LabelField descriptionLabelField; 297 - private HostnameEditField nameEditField; 258 + private Manager serverNameManager; 259 + private HostnameEditField serverNameEditField; 298 260 private ObjectChoiceField securityChoiceField; 299 261 private BasicEditField portEditField; 262 + private BasicEditField userEditField; 263 + private PasswordEditField passEditField; 300 264 301 265 protected void initFields() { 302 266 fieldChangeListener = new FieldChangeListener() { 303 267 public void fieldChanged(Field field, int context) { 304 268 mailServerWizardScreen_fieldChanged(field, context); 305 - }}; 306 - 307 - descriptionLabelField = new LabelField(resources.getString(LogicMailResource.WIZARD_SCREEN_MAIL_SERVER_QUESTION)); 269 + } 270 + }; 308 271 309 - nameEditField = new HostnameEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_SERVER) + ' ', ""); 310 - nameEditField.setChangeListener(fieldChangeListener); 272 + serverNameEditField = new HostnameEditField("", ""); 273 + serverNameEditField.setChangeListener(fieldChangeListener); 311 274 275 + serverNameManager = (Manager)createDescribedField( 276 + serverNameEditField, 277 + ""); 278 + add(serverNameManager); 279 + 312 280 securityChoiceField = new ObjectChoiceField( 313 281 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY), 314 282 new Object[] { ··· 316 284 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY_TLS_IF_AVAILABLE), 317 285 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY_TLS), 318 286 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY_SSL)}, 319 - ConnectionConfig.SECURITY_NONE); 287 + ConnectionConfig.SECURITY_SSL); 320 288 securityChoiceField.setChangeListener(fieldChangeListener); 321 - 322 - portEditField = new BasicEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_PORT) + ' ', "143"); 289 + add(securityChoiceField); 290 + add(BlankSeparatorField.createQuarterHeightSeparator()); 291 + 292 + portEditField = new BasicEditField("", IMAP_PORT_SSL); 323 293 portEditField.setFilter(TextFilter.get(TextFilter.NUMERIC)); 324 294 portEditField.setChangeListener(fieldChangeListener); 295 + add(createDescribedField( 296 + portEditField, 297 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_PORT))); 298 + 299 + userEditField = new BasicEditField(TextField.NO_NEWLINE | TextField.NO_LEARNING); 300 + add(createDescribedField( 301 + userEditField, 302 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_USERNAME))); 325 303 326 - add(descriptionLabelField); 327 - add(nameEditField); 328 - add(securityChoiceField); 329 - add(portEditField); 304 + passEditField = new PasswordEditField(); 305 + add(createDescribedField( 306 + passEditField, 307 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_PASSWORD), 308 + resources.getString(LogicMailResource.WIZARD_SCREEN_INCOMING_PASSWORD_HELP))); 309 + 310 + add(new NullField()); 330 311 } 331 312 332 313 public void onPageEnter() { 333 - if (nameEditField.getText().equals("")) { 334 - nameEditField.setText(getDomainNameFromEmail()); 314 + ((LabelField)serverNameManager.getField(0)).setText( 315 + MessageFormat.format( 316 + resources.getString(LogicMailResource.WIZARD_SCREEN_INCOMING_SERVER), 317 + new Object[] { 318 + (accountType == ACCOUNT_TYPE_IMAP) ? IMAP : POP 319 + } 320 + )); 321 + 322 + if (!hasText(serverNameEditField)) { 323 + serverNameEditField.setText(getDomainNameFromEmail()); 335 324 336 325 if (accountType == ACCOUNT_TYPE_POP) { 337 - portEditField.setText("110"); 326 + portEditField.setText(POP_PORT_SSL); 338 327 } else if (accountType == ACCOUNT_TYPE_IMAP) { 339 - portEditField.setText("143"); 328 + portEditField.setText(IMAP_PORT_SSL); 340 329 } 330 + } 331 + if (!hasText(userEditField)) { 332 + userEditField.setText(getUsernameFromEmail()); 341 333 } 342 334 validateData(); 343 335 }; ··· 346 338 if(field == securityChoiceField) { 347 339 if(accountType == ACCOUNT_TYPE_POP) { 348 340 if(securityChoiceField.getSelectedIndex() == ConnectionConfig.SECURITY_SSL) { 349 - portEditField.setText("995"); 341 + portEditField.setText(POP_PORT_SSL); 350 342 } 351 343 else { 352 - portEditField.setText("110"); 344 + portEditField.setText(POP_PORT); 353 345 } 354 346 } 355 347 else if(accountType == ACCOUNT_TYPE_IMAP) { 356 348 if(securityChoiceField.getSelectedIndex() == ConnectionConfig.SECURITY_SSL) { 357 - portEditField.setText("993"); 349 + portEditField.setText(IMAP_PORT_SSL); 358 350 } 359 351 else { 360 - portEditField.setText("143"); 352 + portEditField.setText(IMAP_PORT); 361 353 } 362 354 } 363 355 } ··· 365 357 } 366 358 367 359 private void validateData() { 368 - if (nameEditField.getText().trim().length() > 0 && portEditField.getText().trim().length() > 0) { 360 + if (hasText(serverNameEditField) 361 + && hasText(portEditField)) { 369 362 setInputValid(true); 370 363 } else { 371 364 setInputValid(false); ··· 373 366 } 374 367 375 368 protected void onPageFlip() { 376 - incomingServerName = nameEditField.getText(); 369 + incomingServerName = serverNameEditField.getText().trim(); 370 + incomingServerUsername = userEditField.getText(); 371 + incomingServerPass = passEditField.getText(); 377 372 } 373 + 378 374 public void gatherResults() { 379 - accountConfig.setServerName(nameEditField.getText()); 375 + accountConfig.setAcctName(accountName); 376 + accountConfig.setServerName(serverNameEditField.getText().trim()); 380 377 accountConfig.setServerSecurity(securityChoiceField.getSelectedIndex()); 381 - accountConfig.setServerPort(Integer.parseInt(portEditField.getText())); 378 + accountConfig.setServerPort(Integer.parseInt(portEditField.getText().trim())); 382 379 accountConfig.setTransportType(ConnectionConfig.TRANSPORT_GLOBAL); 383 - } 384 - }; 385 - private WizardScreen authenticationWizardScreen = new WizardScreen( 386 - WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_AUTHENTICATION_TITLE), 387 - WizardScreen.PAGE_NORMAL) { 388 - private LabelField descriptionLabelField; 389 - private BasicEditField userEditField; 390 - private PasswordEditField passEditField; 391 - private RichTextField commentsField; 392 - 393 - protected void initFields() { 394 - descriptionLabelField = new LabelField(resources.getString(LogicMailResource.WIZARD_SCREEN_AUTHENTICATION_QUESTION)); 395 - userEditField = new BasicEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_USERNAME) + ' ', ""); 396 - 397 - passEditField = new PasswordEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_PASSWORD) + ' ', ""); 398 - 399 - commentsField = new RichTextField(resources.getString(LogicMailResource.WIZARD_SCREEN_AUTHENTICATION_COMMENTS)); 400 - commentsField.setFont(this.getFont().derive(Font.ITALIC)); 401 - 402 - add(descriptionLabelField); 403 - add(userEditField); 404 - add(passEditField); 405 - add(BlankSeparatorField.createHalfHeightSeparator()); 406 - add(commentsField); 407 - setInputValid(true); 408 - } 409 - 410 - public void onPageEnter() { 411 - if (userEditField.getText().equals("")) { 412 - userEditField.setText(getUsernameFromEmail()); 413 - } 414 - }; 415 - 416 - public void gatherResults() { 417 - accountConfig.setServerUser(userEditField.getText()); 380 + accountConfig.setServerUser(userEditField.getText().trim()); 418 381 accountConfig.setServerPass(passEditField.getText()); 419 382 } 420 - 421 - protected void onPageFlip() { 422 - incomingServerUsername = userEditField.getText(); 423 - incomingServerPass = passEditField.getText(); 424 - }; 425 383 }; 384 + 426 385 private WizardScreen outgoingServerWizardScreen = new WizardScreen( 427 386 WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_OUTGOING_TITLE), 428 387 WizardScreen.PAGE_NORMAL) { 429 388 private FieldChangeListener fieldChangeListener; 430 - private ObjectChoiceField outgoingChoiceField; 431 - private HostnameEditField nameEditField; 389 + private HostnameEditField serverNameEditField; 432 390 private ObjectChoiceField securityChoiceField; 433 391 private BasicEditField portEditField; 434 - private String nameProvided = ""; 435 - private String portProvided = ""; 436 - 392 + private ObjectChoiceField authChoiceField; 393 + private BasicEditField userEditField; 394 + private PasswordEditField passEditField; 395 + private Field userEditFieldManager; 396 + private Field passEditFieldManager; 397 + private String nameProvided; 398 + private String portProvided; 399 + private boolean authVisible; 400 + 437 401 protected void initFields() { 438 - // Populate the list of existing server configurations 439 - MailSettings mailSettings = MailSettings.getInstance(); 440 - int numOutgoing = mailSettings.getNumOutgoing(); 441 - Object[] outgoingChoices = new Object[numOutgoing + 2]; 442 - for(int i=0; i<numOutgoing; i++) { 443 - outgoingChoices[i] = mailSettings.getOutgoingConfig(i); 444 - } 445 - outgoingChoices[outgoingChoices.length - 2] = resources.getString(LogicMailResource.WIZARD_SCREEN_OUTGOING_CREATE_NEW); 446 - outgoingChoices[outgoingChoices.length - 1] = resources.getString(LogicMailResource.MENUITEM_DISABLED); 447 - 402 + nameProvided = ""; 403 + portProvided = ""; 448 404 fieldChangeListener = new FieldChangeListener() { 449 405 public void fieldChanged(Field field, int context) { 450 406 outgoingServerWizardScreen_fieldChanged(field, context); 451 407 }}; 452 - 453 - outgoingChoiceField = new ObjectChoiceField( 454 - resources.getString(LogicMailResource.WIZARD_SCREEN_OUTGOING_QUESTION), 455 - outgoingChoices, 0); 456 - outgoingChoiceField.setChangeListener(fieldChangeListener); 457 - 458 - nameEditField = new HostnameEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_SERVER) + ' ', ""); 459 - nameEditField.setChangeListener(fieldChangeListener); 408 + 409 + serverNameEditField = new HostnameEditField("", ""); 410 + serverNameEditField.setChangeListener(fieldChangeListener); 411 + add(createDescribedField( 412 + serverNameEditField, 413 + MessageFormat.format( 414 + resources.getString(LogicMailResource.WIZARD_SCREEN_INCOMING_SERVER), 415 + new Object[] { SMTP } 416 + ))); 460 417 461 418 securityChoiceField = new ObjectChoiceField( 462 419 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY), ··· 465 422 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY_TLS_IF_AVAILABLE), 466 423 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY_TLS), 467 424 resources.getString(LogicMailResource.CONFIG_ACCOUNT_SECURITY_SSL)}, 468 - ConnectionConfig.SECURITY_NONE); 425 + ConnectionConfig.SECURITY_TLS); 469 426 securityChoiceField.setChangeListener(fieldChangeListener); 427 + add(securityChoiceField); 428 + add(BlankSeparatorField.createQuarterHeightSeparator()); 470 429 471 - portEditField = new BasicEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_PORT) + ' ', Integer.toString(587)); 430 + portEditField = new BasicEditField("", Integer.toString(587)); 472 431 portEditField.setFilter(TextFilter.get(TextFilter.NUMERIC)); 473 432 portEditField.setChangeListener(fieldChangeListener); 433 + add(createDescribedField( 434 + portEditField, 435 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_PORT))); 474 436 475 - add(outgoingChoiceField); 476 - add(nameEditField); 477 - add(securityChoiceField); 478 - add(portEditField); 437 + String authTypes[] = { 438 + resources.getString(LogicMailResource.MENUITEM_NONE), 439 + "PLAIN", "LOGIN", "CRAM-MD5" }; 440 + authChoiceField = new ObjectChoiceField( 441 + resources.getString(LogicMailResource.CONFIG_OUTGOING_AUTHENTICATION), 442 + authTypes, 1); 443 + authChoiceField.setChangeListener(fieldChangeListener); 444 + add(authChoiceField); 445 + add(BlankSeparatorField.createQuarterHeightSeparator()); 446 + 447 + userEditField = new BasicEditField(TextField.NO_NEWLINE | TextField.NO_LEARNING); 448 + userEditFieldManager = createDescribedField( 449 + userEditField, 450 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_USERNAME)); 451 + add(userEditFieldManager); 479 452 480 - populateOutgoingItems(); 481 - validateData(); 453 + passEditField = new PasswordEditField(); 454 + passEditFieldManager = createDescribedField( 455 + passEditField, 456 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_PASSWORD), 457 + resources.getString(LogicMailResource.WIZARD_SCREEN_INCOMING_PASSWORD_HELP)); 458 + add(passEditFieldManager); 459 + authVisible = true; 482 460 } 483 461 484 462 private void outgoingServerWizardScreen_fieldChanged(Field field, int context) { 485 463 if(field == securityChoiceField) { 486 464 if(securityChoiceField.getSelectedIndex() == ConnectionConfig.SECURITY_SSL) { 487 - portEditField.setText("465"); 465 + portEditField.setText(SMTP_PORT_SSL); 488 466 } 489 467 else { 490 - portEditField.setText("587"); 468 + portEditField.setText(SMTP_PORT); 491 469 } 492 470 } 493 - if(field == outgoingChoiceField) { 494 - populateOutgoingItems(); 471 + else if (field == authChoiceField) { 472 + updateAuthChoiceFields(); 495 473 } 474 + 496 475 validateData(); 497 476 } 477 + 478 + private void updateAuthChoiceFields() { 479 + if (authChoiceField.getSelectedIndex() == 0) { 480 + if(authVisible) { 481 + delete(userEditFieldManager); 482 + delete(passEditFieldManager); 483 + authVisible = false; 484 + } 485 + } else { 486 + if(!authVisible) { 487 + add(userEditFieldManager); 488 + add(passEditFieldManager); 489 + authVisible = true; 490 + } 491 + } 492 + 493 + if(authVisible) { 494 + if(!hasText(userEditField)) { 495 + userEditField.setText(incomingServerUsername); 496 + } 497 + if(!hasText(passEditField)) { 498 + passEditField.setText(incomingServerPass); 499 + } 500 + } 501 + } 498 502 499 503 private void validateData() { 500 - if(nameEditField.getText().trim().length() > 0 && portEditField.getText().trim().length() > 0) { 504 + if(hasText(serverNameEditField)) { 505 + setInputValid(hasText(portEditField)); 506 + } 507 + else { 501 508 setInputValid(true); 502 509 } 503 - else if(outgoingChoiceField.getSelectedIndex() == outgoingChoiceField.getSize() - 1) { 504 - setInputValid(true); 510 + } 511 + 512 + protected boolean confirmPageFlip() { 513 + if(hasText(serverNameEditField)) { 514 + return true; 505 515 } 506 516 else { 507 - setInputValid(false); 517 + int result = Dialog.ask( 518 + Dialog.D_YES_NO, 519 + resources.getString(LogicMailResource.WIZARD_SCREEN_OUTGOING_EMPTY_CONFIRM), 520 + Dialog.NO); 521 + return result == Dialog.YES; 508 522 } 509 - } 523 + }; 510 524 511 525 public void onPageEnter() { 512 526 populateOutgoingItems(); 527 + updateAuthChoiceFields(); 513 528 validateData(); 529 + serverNameEditField.setFocus(); 514 530 }; 515 531 516 532 private void populateOutgoingItems() { 517 - int index = outgoingChoiceField.getSelectedIndex(); 518 - Object item = outgoingChoiceField.getChoice(index); 519 - if(item instanceof OutgoingConfig) { 520 - OutgoingConfig outgoingConfig = (OutgoingConfig)item; 521 - nameEditField.setText(outgoingConfig.getServerName()); 522 - securityChoiceField.setSelectedIndex(outgoingConfig.getServerSecurity()); 523 - portEditField.setText(Integer.toString(outgoingConfig.getServerPort())); 524 - 525 - nameEditField.setEditable(false); 526 - securityChoiceField.setEditable(false); 527 - portEditField.setEditable(false); 528 - } 529 - else if(index == outgoingChoiceField.getSize() - 1) { 530 - nameEditField.setText(""); 531 - securityChoiceField.setSelectedIndex(0); 532 - portEditField.setText(""); 533 - nameEditField.setEditable(false); 534 - securityChoiceField.setEditable(false); 535 - portEditField.setEditable(false); 536 - } 537 - else { 538 - nameEditField.setText(nameProvided.equals("") ? getOutgoingServerFromIncoming() : nameProvided); 539 - portEditField.setText(portProvided.equals("") ? 540 - (securityChoiceField.getSelectedIndex() == securityChoiceField.getSize() - 1 ? "465" : "587") : 533 + serverNameEditField.setText(nameProvided.equals("") ? getOutgoingServerFromIncoming() : nameProvided); 534 + portEditField.setText(portProvided.equals("") ? 535 + (securityChoiceField.getSelectedIndex() == securityChoiceField.getSize() - 1 ? SMTP_PORT_SSL : SMTP_PORT) : 541 536 portProvided); 542 537 543 - nameEditField.setEditable(true); 544 - securityChoiceField.setEditable(true); 545 - portEditField.setEditable(true); 546 - } 538 + serverNameEditField.setEditable(true); 539 + securityChoiceField.setEditable(true); 540 + portEditField.setEditable(true); 547 541 } 548 542 protected void onPageFlip() { 549 - int index = outgoingChoiceField.getSelectedIndex(); 550 - Object item = outgoingChoiceField.getChoice(index); 551 - if(item instanceof OutgoingConfig 552 - || index == outgoingChoiceField.getSize() - 1) { 553 - outgoingAuthenticationWizardScreen.setEnabled(false); 554 - } 555 - else { 556 - outgoingAuthenticationWizardScreen.setEnabled(true); 557 - } 558 - nameProvided = nameEditField.getText(); 543 + nameProvided = serverNameEditField.getText().trim(); 559 544 portProvided = portEditField.getText(); 560 545 } 561 546 public void gatherResults() { 562 - int index = outgoingChoiceField.getSelectedIndex(); 563 - Object item = outgoingChoiceField.getChoice(index); 564 - if(item instanceof OutgoingConfig) { 565 - outgoingConfig = (OutgoingConfig)item; 566 - outgoingCreated = false; 567 - } 568 - else if(index == outgoingChoiceField.getSize() - 1) { 569 - outgoingConfig = null; 570 - outgoingCreated = false; 571 - } 572 - else { 573 - outgoingConfig.setAcctName(accountConfig.getAcctName()); 574 - outgoingConfig.setServerName(nameEditField.getText()); 547 + if(hasText(serverNameEditField)) { 548 + outgoingConfig.setAcctName(accountName); 549 + outgoingConfig.setServerName(serverNameEditField.getText().trim()); 575 550 outgoingConfig.setServerSecurity(securityChoiceField.getSelectedIndex()); 576 551 outgoingConfig.setServerPort(Integer.parseInt(portEditField.getText())); 577 552 outgoingConfig.setTransportType(ConnectionConfig.TRANSPORT_GLOBAL); 578 - outgoingConfig.setServerUser(accountConfig.getServerUser()); 579 - outgoingConfig.setServerPass(accountConfig.getServerPass()); 553 + 554 + int index = authChoiceField.getSelectedIndex(); 555 + outgoingConfig.setUseAuth(index); 556 + if(index > 0) { 557 + outgoingConfig.setServerUser(userEditField.getText().trim()); 558 + outgoingConfig.setServerPass(passEditField.getText()); 559 + } 560 + else { 561 + outgoingConfig.setServerUser(""); 562 + outgoingConfig.setServerPass(""); 563 + } 564 + 580 565 outgoingCreated = true; 581 566 } 567 + else { 568 + outgoingCreated = false; 569 + } 582 570 } 583 571 }; 584 - private WizardScreen outgoingAuthenticationWizardScreen = new WizardScreen( 585 - WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_OUTGOING_AUTHENTICATION_TITLE), 572 + 573 + private WizardScreen miscWizardScreen = new WizardScreen( 574 + WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_MISC_TITLE), 586 575 WizardScreen.PAGE_NORMAL) { 587 - private FieldChangeListener fieldChangeListener; 588 - private LabelField descriptionLabelField; 589 - private ObjectChoiceField authChoiceField; 590 - private BasicEditField userEditField; 591 - private PasswordEditField passEditField; 592 - private Field commentsSpacerLabel; 593 - private RichTextField commentsField; 594 - private boolean authMode; 595 576 577 + private CheckboxField autoStartupCheckboxField; 578 + private CheckboxField notificationIconCheckboxField; 579 + private ObjectChoiceField refreshOnStartupChoiceField; 580 + private ObjectChoiceField refreshFrequencyChoiceField; 581 + 596 582 protected void initFields() { 597 - fieldChangeListener = new FieldChangeListener() { 598 - public void fieldChanged(Field field, int context) { 599 - outgoingAuthenticationWizardScreen_fieldChanged(field, context); 600 - }}; 601 - 602 - descriptionLabelField = new LabelField(resources.getString(LogicMailResource.WIZARD_SCREEN_OUTGOING_AUTHENTICATION_QUESTION)); 603 - 604 - String authTypes[] = { 605 - resources.getString(LogicMailResource.MENUITEM_NONE), 606 - "PLAIN", "LOGIN", "CRAM-MD5" }; 607 - authChoiceField = 608 - new ObjectChoiceField(resources.getString(LogicMailResource.CONFIG_OUTGOING_AUTHENTICATION) + ' ', authTypes, 1); 609 - authChoiceField.setChangeListener(fieldChangeListener); 583 + GlobalConfig globalConfig = MailSettings.getInstance().getGlobalConfig(); 584 + 585 + refreshOnStartupChoiceField = new ObjectChoiceField( 586 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_REFRESH_ON_STARTUP), 587 + new Object[] { 588 + resources.getString(LogicMailResource.MENUITEM_NEVER), 589 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_REFRESH_STATUS), 590 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_REFRESH_HEADERS) 591 + }, 0); 592 + add(refreshOnStartupChoiceField); 593 + add(BlankSeparatorField.createHalfHeightSeparator()); 594 + 595 + String minutePattern = resources.getString(LogicMailResource.CONFIG_ACCOUNT_REFRESH_FREQUENCY_MINUTES); 596 + refreshFrequencyChoiceField = new ObjectChoiceField( 597 + resources.getString(LogicMailResource.CONFIG_ACCOUNT_REFRESH_FREQUENCY), 598 + new Object[] { 599 + resources.getString(LogicMailResource.MENUITEM_NEVER), 600 + MessageFormat.format(minutePattern, new Object[] { new Integer(5) }), 601 + MessageFormat.format(minutePattern, new Object[] { new Integer(10) }), 602 + MessageFormat.format(minutePattern, new Object[] { new Integer(15) }), 603 + MessageFormat.format(minutePattern, new Object[] { new Integer(30) }), 604 + }, 605 + 0); 606 + add(refreshFrequencyChoiceField); 607 + 608 + add(BlankSeparatorField.createHalfHeightSeparator()); 609 + add(new SeparatorField()); 610 + add(BlankSeparatorField.createHalfHeightSeparator()); 610 611 611 - userEditField = new BasicEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_USERNAME) + ' ', ""); 612 - 613 - passEditField = new PasswordEditField(resources.getString(LogicMailResource.CONFIG_ACCOUNT_PASSWORD) + ' ', ""); 614 - 615 - commentsSpacerLabel = BlankSeparatorField.createHalfHeightSeparator(); 616 - commentsField = new RichTextField(resources.getString(LogicMailResource.WIZARD_SCREEN_OUTGOING_AUTHENTICATION_COMMENTS)); 617 - commentsField.setFont(this.getFont().derive(Font.ITALIC)); 618 - 619 - add(descriptionLabelField); 620 - add(authChoiceField); 612 + autoStartupCheckboxField = new CheckboxField( 613 + resources.getString(LogicMailResource.CONFIG_GLOBAL_AUTO_STARTUP), 614 + globalConfig.isAutoStartupEnabled()); 615 + add(autoStartupCheckboxField); 616 + add(BlankSeparatorField.createHalfHeightSeparator()); 617 + 618 + if(hasIndicators) { 619 + notificationIconCheckboxField = new CheckboxField( 620 + resources.getString(LogicMailResource.CONFIG_GLOBAL_SHOW_NOTIFICATION_ICON), 621 + globalConfig.isNotificationIconShown()); 622 + add(notificationIconCheckboxField); 623 + add(BlankSeparatorField.createHalfHeightSeparator()); 624 + } 621 625 setInputValid(true); 622 626 } 623 - 624 - public void onPageEnter() { 625 - super.onPageEnter(); 626 - updateAuthChoiceFields(); 627 - }; 628 - 629 - private void outgoingAuthenticationWizardScreen_fieldChanged(Field field, int context) { 630 - if (field == authChoiceField) { 631 - updateAuthChoiceFields(); 632 - } 633 - } 634 - 635 - private void updateAuthChoiceFields() { 636 - if (authChoiceField.getSelectedIndex() == 0 && authMode) { 637 - authMode = false; 638 - delete(userEditField); 639 - delete(passEditField); 640 - delete(commentsSpacerLabel); 641 - delete(commentsField); 642 - } else if (!authMode) { 643 - authMode = true; 644 - add(userEditField); 645 - add(passEditField); 646 - add(commentsSpacerLabel); 647 - add(commentsField); 648 - 649 - userEditField.setText(incomingServerUsername); 650 - passEditField.setText(incomingServerPass); 651 - } 652 - } 653 - 627 + 654 628 public void gatherResults() { 655 - if(outgoingConfig == null) { return; } 656 - int index = authChoiceField.getSelectedIndex(); 657 - outgoingConfig.setUseAuth(index); 658 - if(index > 0) { 659 - outgoingConfig.setServerUser(userEditField.getText()); 660 - outgoingConfig.setServerPass(passEditField.getText()); 629 + accountConfig.setRefreshOnStartup(refreshOnStartupChoiceField.getSelectedIndex()); 630 + 631 + int refreshFrequency; 632 + switch(refreshFrequencyChoiceField.getSelectedIndex()) { 633 + case 1: 634 + refreshFrequency = 5; 635 + break; 636 + case 2: 637 + refreshFrequency = 10; 638 + break; 639 + case 3: 640 + refreshFrequency = 15; 641 + break; 642 + case 4: 643 + refreshFrequency = 30; 644 + break; 645 + default: 646 + refreshFrequency = 0; 661 647 } 662 - else { 663 - outgoingConfig.setServerUser(""); 664 - outgoingConfig.setServerPass(""); 648 + accountConfig.setRefreshFrequency(refreshFrequency); 649 + 650 + autoStartEnabled = autoStartupCheckboxField.getChecked(); 651 + if(hasIndicators) { 652 + notificationIconShown = notificationIconCheckboxField.getChecked(); 665 653 } 666 - } 654 + }; 667 655 }; 656 + 668 657 private WizardScreen transportWizardScreen = new WizardScreen( 669 658 WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_TRANSPORT_TITLE), 670 659 WizardScreen.PAGE_NORMAL) { ··· 809 798 WizardScreen.resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_TITLE), 810 799 WizardScreen.PAGE_LAST) { 811 800 private ButtonField testButton; 801 + private AccountConfigTester accountTester; 812 802 private VerticalFieldManager testOutputManager; 813 - private boolean testInProgress; 814 - private volatile boolean testClosed; 815 803 816 804 protected void initFields() { 817 805 testButton = new ButtonField( ··· 821 809 public void fieldChanged(Field field, int context) { 822 810 testButtonFieldChanged(); 823 811 }}); 824 - testOutputManager = new VerticalFieldManager(); 812 + accountTester = new AccountConfigTester(); 813 + testOutputManager = accountTester.getTestOutputManager(); 814 + testOutputManager.setChangeListener(new FieldChangeListener() { 815 + public void fieldChanged(Field field, int context) { 816 + if(context == AccountConfigTester.TEST_COMPLETE) { 817 + testComplete(); 818 + } 819 + } 820 + }); 825 821 826 822 add(testButton); 827 823 add(BlankSeparatorField.createHalfHeightSeparator()); ··· 849 845 private void testButtonFieldChanged() { 850 846 testButton.setEditable(false); 851 847 setInputValid(false); 852 - testOutputManager.deleteAll(); 853 - testInProgress = true; 854 - testClosed = false; 855 - (new Thread() { public void run() { 856 - addText(MessageFormat.format( 857 - resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_TESTING), 858 - new Object[] { accountConfig.toString() }), 859 - TYPE_INFO); 860 - MailClient mailClient = MailClientFactory.createTemporaryMailClient(accountConfig); 861 - testClientConnection(mailClient); 862 - 863 - if(testClosed) { testComplete(); return; } 864 - 865 - if(accountConfig.getOutgoingConfig() != null) { 866 - addText(MessageFormat.format( 867 - resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_TESTING), 868 - new Object[] { outgoingConfig.toString() }), 869 - TYPE_INFO); 870 - mailClient = MailClientFactory.createTemporaryOutgoingMailClient(outgoingConfig); 871 - testClientConnection(mailClient); 872 - } 873 - testComplete(); 874 - }}).start(); 875 - } 876 - 877 - private void testClientConnection(MailClient mailClient) { 878 - boolean success; 879 - String errorMessage = null; 880 - String errorDetail = null; 881 - try { 882 - if(checkLogin(mailClient)) { 883 - success = mailClient.open(); 884 - errorMessage = resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_LOGIN_FAILED); 885 - } 886 - else { 887 - success = false; 888 - errorMessage = resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_LOGIN_CANCELED); 889 - } 890 - } catch (IOException exp) { 891 - success = false; 892 - errorMessage = exp.getMessage(); 893 - if(exp instanceof WrappedIOException) { 894 - Throwable innerExp = ((WrappedIOException)exp).getInnerException(); 895 - if(innerExp != null) { 896 - errorDetail = innerExp.getMessage(); 897 - } 898 - } 899 - } catch (MailException exp) { 900 - success = false; 901 - errorMessage = exp.getMessage(); 902 - } 903 - 904 - if(mailClient.isConnected()) { 905 - try { 906 - mailClient.close(); 907 - } catch (Exception e) { } 908 - } 909 - 910 - if(testClosed) { return; } 911 - 912 - if(success) { 913 - addText(resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_CONNECTION_SUCCESSFUL), TYPE_SUCCESS); 914 - } 915 - else { 916 - addText(resources.getString(LogicMailResource.WIZARD_SCREEN_FINAL_CONNECTION_FAILED), TYPE_FAILURE); 917 - if(errorMessage != null) { 918 - addText(errorMessage, TYPE_FAILURE_DETAIL); 919 - if(errorDetail != null) { 920 - addText(errorDetail, TYPE_FAILURE_DETAIL); 921 - } 922 - } 923 - } 924 - } 925 - 926 - private boolean checkLogin(final MailClient client) { 927 - if(!client.isLoginRequired()) { return true; } 928 - 929 - String username = client.getUsername(); 930 - String password = client.getPassword(); 931 - // If the username and password are not null, 932 - // but are empty, request login information. 933 - if((username != null && password != null) 934 - && (username.trim().equals("") || password.trim().equals(""))) { 935 - 936 - final boolean[] canceled = new boolean[1]; 937 - UiApplication.getUiApplication().invokeAndWait(new Runnable() { 938 - public void run() { 939 - String username = client.getUsername(); 940 - String password = client.getPassword(); 941 - LoginDialog dialog = new LoginDialog(username, password); 942 - if(dialog.doModal() == Dialog.OK) { 943 - client.setUsername(dialog.getUsername()); 944 - client.setPassword(dialog.getPassword()); 945 - canceled[0] = false; 946 - } 947 - else { 948 - canceled[0] = true; 949 - } 950 - } 951 - }); 952 - 953 - return !canceled[0]; 954 - } 955 - else { 956 - return true; 957 - } 958 - } 959 - 960 - private final static int TYPE_INFO = 0; 961 - private final static int TYPE_SUCCESS = 1; 962 - private final static int TYPE_FAILURE = 2; 963 - private final static int TYPE_FAILURE_DETAIL = 3; 964 - 965 - private void addText(final String text, final int type) { 966 - UiApplication.getUiApplication().invokeLater(new Runnable() { 967 - public void run() { 968 - testOutputManager.add(new StatusLabelField(text, type)); 969 - } 970 - }); 971 - } 972 - 973 - class StatusLabelField extends LabelField { 974 - private final int type; 975 - StatusLabelField(final String text, final int type) { 976 - super(text); 977 - this.type = type; 978 - if(type == TYPE_SUCCESS) { 979 - this.setFont(this.getFont().derive(Font.BOLD)); 980 - } 981 - else if(type == TYPE_FAILURE) { 982 - this.setFont(this.getFont().derive(Font.BOLD)); 983 - } 984 - else if(type == TYPE_FAILURE_DETAIL) { 985 - this.setFont(this.getFont().derive(Font.ITALIC)); 986 - } 987 - } 988 - 989 - protected void paint(net.rim.device.api.ui.Graphics graphics) { 990 - if(type == TYPE_SUCCESS) { 991 - graphics.setColor(Color.GREEN); 992 - } 993 - else if(type == TYPE_FAILURE || type == TYPE_FAILURE_DETAIL) { 994 - graphics.setColor(Color.RED); 995 - } 996 - super.paint(graphics); 997 - }; 848 + accountTester.runConnectionTest(accountConfig); 998 849 } 999 850 1000 851 public boolean onClose() { 1001 852 if(super.onClose()) { 1002 - if(testInProgress) { 1003 - testClosed = true; 1004 - testOutputManager.deleteAll(); 853 + if(accountTester.isTestInProgress()) { 854 + accountTester.setTestCanceled(); 1005 855 } 1006 856 return true; 1007 857 } ··· 1011 861 }; 1012 862 1013 863 private void testComplete() { 1014 - UiApplication.getUiApplication().invokeLater(new Runnable() { 1015 - public void run() { 1016 - testButton.setEditable(true); 1017 - setInputValid(true); 1018 - testInProgress = false; 1019 - if(testClosed) { 1020 - testOutputManager.deleteAll(); 1021 - } 1022 - } 1023 - }); 864 + testButton.setEditable(true); 865 + setInputValid(true); 1024 866 } 1025 867 }; 1026 868 1027 869 protected void onWizardFinished() { 1028 870 // Add the configuration that was just built 1029 871 MailSettings mailSettings = MailSettings.getInstance(); 1030 - if(identityCreated) { mailSettings.addIdentityConfig(identityConfig); } 872 + mailSettings.addIdentityConfig(identityConfig); 1031 873 if(outgoingCreated) { mailSettings.addOutgoingConfig(outgoingConfig); } 1032 874 mailSettings.addAccountConfig(accountConfig); 1033 875 ··· 1043 885 accountConfig.setDraftMailbox(localMailboxes[i]); 1044 886 } 1045 887 } 888 + 889 + // Set the global options that may have been changed 890 + GlobalConfig globalConfig = mailSettings.getGlobalConfig(); 891 + globalConfig.setAutoStartupEnabled(autoStartEnabled); 892 + if(hasIndicators) { 893 + globalConfig.setNotificationIconShown(notificationIconShown); 894 + } 1046 895 1047 896 // Save the new configuration 1048 897 mailSettings.saveSettings(); ··· 1062 911 public AccountConfig getAccountConfig() { 1063 912 return this.accountConfig; 1064 913 } 1065 - 1066 914 1067 915 private String getDomainNameFromEmail() { 1068 916 String emailDomain = identityEmailAddress.substring(identityEmailAddress.indexOf("@") + 1);
+8
LogicMail/src/org/logicprobe/LogicMail/ui/BlankSeparatorField.java
··· 54 54 return new BlankSeparatorField(Font.getDefault().getAscent() >>> 1); 55 55 } 56 56 57 + /** 58 + * Convenience method for creating a new blank separator that is a quarter 59 + * the height of the default font. 60 + */ 61 + public static BlankSeparatorField createQuarterHeightSeparator() { 62 + return new BlankSeparatorField(Font.getDefault().getAscent() >>> 2); 63 + } 64 + 57 65 public int getPreferredHeight() { 58 66 return size; 59 67 }
+2
LogicMail/src/org/logicprobe/LogicMail/ui/FieldFactory.java
··· 81 81 * @return a field that displays the content. 82 82 */ 83 83 public abstract Field getHtmlMessageContentField(MessageNode messageNode, TextContent content); 84 + 85 + public abstract void addRoundedBorder(Field field); 84 86 }
+4
LogicMail/src/org/logicprobe/LogicMail/ui/FieldFactoryBB45.java
··· 63 63 64 64 return field; 65 65 } 66 + 67 + public void addRoundedBorder(Field field) { 68 + // Borders not supported 69 + } 66 70 }
+18 -6
LogicMail/src/org/logicprobe/LogicMail/ui/WizardScreen.java
··· 39 39 import net.rim.device.api.ui.Graphics; 40 40 import net.rim.device.api.ui.Keypad; 41 41 import net.rim.device.api.ui.Manager; 42 + import net.rim.device.api.ui.XYEdges; 42 43 import net.rim.device.api.ui.component.ButtonField; 43 44 import net.rim.device.api.ui.component.Dialog; 44 45 import net.rim.device.api.ui.component.LabelField; 45 46 import net.rim.device.api.ui.container.MainScreen; 46 47 import net.rim.device.api.ui.container.HorizontalFieldManager; 48 + import net.rim.device.api.ui.container.VerticalFieldManager; 47 49 48 50 /** 49 51 * Provides the base class for wizard pages, with a title ··· 57 59 private static String PREV_PREFIX = "< "; 58 60 private WizardController controller; 59 61 private LabelField titleLabel; 60 - private BorderedFieldManager contentFieldManager; 62 + private VerticalFieldManager contentFieldManager; 61 63 private HorizontalFieldManager statusFieldManager; 62 64 private ButtonField cancelButton; 63 65 private ButtonField prevButton; ··· 83 85 this.title = title; 84 86 this.pageType = pageType; 85 87 this.pageResult = RESULT_CANCEL; 86 - this.contentFieldManager = FieldFactory.getInstance().getBorderedFieldManager( 87 - BorderedFieldManager.BOTTOM_BORDER_NONE 88 - | BorderedFieldManager.FILL_NONE); 88 + this.contentFieldManager = new VerticalFieldManager(); 89 + this.contentFieldManager.setMargin(new XYEdges(5, 5, 5, 5)); 89 90 super.add(this.contentFieldManager); 90 91 initBaseFields(); 91 92 initFields(); ··· 286 287 } 287 288 288 289 private void nextButton_fieldChanged(Field field, int context) { 289 - pageResult = RESULT_NEXT; 290 - onClose(); 290 + if(confirmPageFlip()) { 291 + pageResult = RESULT_NEXT; 292 + onClose(); 293 + } 291 294 } 292 295 293 296 /** ··· 297 300 */ 298 301 public void onPageEnter() { } 299 302 303 + /** 304 + * Called when the Next button is clicked, before handling the event. 305 + * This can be used as a hook to prompt the user before advancing to 306 + * the next page. 307 + * 308 + * @return true, if the page should be flipped 309 + */ 310 + protected boolean confirmPageFlip() { return true; } 311 + 300 312 /** 301 313 * Called just before a page transition, so the screen can 302 314 * store any local data.
+11
LogicMail_BB46/src/org/logicprobe/LogicMail/ui/FieldFactoryBB46.java
··· 30 30 */ 31 31 package org.logicprobe.LogicMail.ui; 32 32 33 + import net.rim.device.api.ui.Color; 34 + import net.rim.device.api.ui.Field; 35 + import net.rim.device.api.ui.XYEdges; 36 + import net.rim.device.api.ui.decor.Border; 37 + import net.rim.device.api.ui.decor.BorderFactory; 38 + 33 39 public class FieldFactoryBB46 extends FieldFactoryBB45 { 34 40 public FieldFactoryBB46() { 41 + } 42 + 43 + public void addRoundedBorder(Field field) { 44 + field.setBorder(BorderFactory.createRoundedBorder( 45 + new XYEdges(5, 5, 5, 5), Color.GRAY, Border.STYLE_SOLID)); 35 46 } 36 47 }