1.1 --- a/imiptools/client.py Wed Nov 04 23:35:16 2015 +0100
1.2 +++ b/imiptools/client.py Thu Nov 05 00:58:02 2015 +0100
1.3 @@ -26,6 +26,7 @@
1.4 uri_dict, uri_item, uri_items, uri_parts, uri_values
1.5 from imiptools.dates import check_permitted_values, format_datetime, get_default_timezone, \
1.6 get_duration, get_timestamp
1.7 +from imiptools.i18n import get_translator
1.8 from imiptools.period import can_schedule, remove_event_periods, \
1.9 remove_additional_periods, remove_affected_period, \
1.10 update_freebusy
1.11 @@ -59,6 +60,11 @@
1.12 self.preferences_dir = preferences_dir
1.13 self.preferences = None
1.14
1.15 + # Localise the messenger.
1.16 +
1.17 + if self.messenger:
1.18 + self.messenger.gettext = self.get_translator()
1.19 +
1.20 # Store-related methods.
1.21
1.22 def acquire_lock(self):
1.23 @@ -74,6 +80,12 @@
1.24 self.preferences = Preferences(self.user, self.preferences_dir)
1.25 return self.preferences
1.26
1.27 + def get_locale(self):
1.28 + return self.get_preferences().get("LANG", "en", True)
1.29 +
1.30 + def get_translator(self):
1.31 + return get_translator([self.get_locale()])
1.32 +
1.33 def get_user_attributes(self):
1.34 prefs = self.get_preferences()
1.35 return prefs and prefs.get_all(["CN"]) or {}
1.36 @@ -203,7 +215,7 @@
1.37 """
1.38
1.39 obj = obj or self.obj
1.40 - calendar_uri = get_uri(self.messenger.sender)
1.41 + calendar_uri = self.messenger and get_uri(self.messenger.sender)
1.42 for attendee, attendee_attr in uri_items(obj.get_items("ATTENDEE")):
1.43 if attendee != self.user:
1.44 if attendee_attr.get("SENT-BY") == calendar_uri:
1.45 @@ -224,7 +236,7 @@
1.46
1.47 # Search for the sender of the message or the calendar system address.
1.48
1.49 - senders = self.senders or [self.messenger.sender]
1.50 + senders = self.senders or self.messenger and [self.messenger.sender] or []
1.51
1.52 for attendee, attendee_attr in uri_items(self.obj.get_items("ATTENDEE")):
1.53 if get_address(attendee) in senders or \
1.54 @@ -618,6 +630,9 @@
1.55 recipient since the generic calendar user will be the actual sender.
1.56 """
1.57
1.58 + if not self.messenger:
1.59 + return
1.60 +
1.61 if not bcc_sender:
1.62 message = self.messenger.make_outgoing_message(parts, recipients)
1.63 self.messenger.sendmail(recipients, message.as_string())
1.64 @@ -629,6 +644,9 @@
1.65
1.66 "Send a message composed of the given 'parts' to the given user."
1.67
1.68 + if not self.messenger:
1.69 + return
1.70 +
1.71 sender = get_address(self.user)
1.72 message = self.messenger.make_outgoing_message(parts, [sender])
1.73 self.messenger.sendmail([sender], message.as_string())