summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libdivecomputer.c6
-rw-r--r--profile.c6
-rw-r--r--uemis.c41
3 files changed, 31 insertions, 22 deletions
diff --git a/libdivecomputer.c b/libdivecomputer.c
index 713ee7599..8c5a4f180 100644
--- a/libdivecomputer.c
+++ b/libdivecomputer.c
@@ -74,6 +74,8 @@ static int parse_gasmixes(device_data_t *devdata, struct dive *dive, dc_parser_t
static void handle_event(struct dive *dive, struct sample *sample, dc_sample_value_t value)
{
int type, time;
+ /* we mark these for translation here, but we store the untranslated strings
+ * and only translate them when they are displayed on screen */
static const char *events[] = {
N_("none"), N_("deco"), N_("rbt"), N_("ascent"), N_("ceiling"), N_("workload"),
N_("transmitter"), N_("violation"), N_("bookmark"), N_("surface"), N_("safety stop"),
@@ -98,9 +100,9 @@ static void handle_event(struct dive *dive, struct sample *sample, dc_sample_val
* Other evens might be more interesting, but for now we just print them out.
*/
type = value.event.type;
- name = _("invalid event number");
+ name = N_("invalid event number");
if (type < nr_events)
- name = _(events[type]);
+ name = events[type];
time = value.event.time;
if (sample)
diff --git a/profile.c b/profile.c
index 9e06e79e5..80010ef7c 100644
--- a/profile.c
+++ b/profile.c
@@ -284,7 +284,8 @@ void evn_foreach(void (*callback)(const char *, int *, void *), void *data)
int i;
for (i = 0; i < evn_used; i++) {
- callback(ev_namelist[i].ev_name, &ev_namelist[i].plot_ev, data);
+ /* here we display an event name on screen - so translate */
+ callback(_(ev_namelist[i].ev_name), &ev_namelist[i].plot_ev, data);
}
}
@@ -349,7 +350,8 @@ static void plot_one_event(struct graphics_context *gc, struct plot_info *pi, st
cairo_move_to(gc->cr, x-9, y+4);
cairo_line_to(gc->cr, x-9, y+4);
cairo_stroke(gc->cr);
- attach_tooltip(x-15, y-6, 12, 12, event->name);
+ /* we display the event on screen - so translate */
+ attach_tooltip(x-15, y-6, 12, 12, _(event->name));
}
static void plot_events(struct graphics_context *gc, struct plot_info *pi, struct dive *dive)
diff --git a/uemis.c b/uemis.c
index 1ac458458..d4c166b88 100644
--- a/uemis.c
+++ b/uemis.c
@@ -123,51 +123,56 @@ bail:
* These bits basically represent what is displayed on screen at sample time.
* Many of these 'warnings' are way hyper-active and seriously clutter the
* profile plot - so these are disabled by default
+ *
+ * we mark all the strings for translation, but we store the untranslated
+ * strings and only convert them when displaying them on screen - this way
+ * when we write them to the XML file we'll always have the English strings,
+ * regardless of locale
*/
void uemis_event(struct dive *dive, struct sample *sample, uemis_sample_t *u_sample)
{
uint8_t *flags = u_sample->flags;
if (flags[1] & 0x01)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Safety Stop Violation"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Safety Stop Violation"));
if (flags[1] & 0x08)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Speed Alarm"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Speed Alarm"));
#if WANT_CRAZY_WARNINGS
if (flags[1] & 0x06) /* both bits 1 and 2 are a warning */
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Speed Warning"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Speed Warning"));
if (flags[1] & 0x10)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("PO2 Green Warning"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("PO2 Green Warning"));
#endif
if (flags[1] & 0x20)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("PO2 Ascend Warning"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("PO2 Ascend Warning"));
if (flags[1] & 0x40)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("PO2 Ascend Alarm"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("PO2 Ascend Alarm"));
/* flags[2] reflects the deco / time bar
* flags[3] reflects more display details on deco and pO2 */
if (flags[4] & 0x01)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Tank Pressure Info"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Tank Pressure Info"));
if (flags[4] & 0x04)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("RGT Warning"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("RGT Warning"));
if (flags[4] & 0x08)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("RGT Alert"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("RGT Alert"));
if (flags[4] & 0x40)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Tank Change Suggested"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Tank Change Suggested"));
if (flags[4] & 0x80)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Depth Limit Exceeded"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Depth Limit Exceeded"));
if (flags[5] & 0x01)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Max Deco Time Warning"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Max Deco Time Warning"));
if (flags[5] & 0x04)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Dive Time Info"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Dive Time Info"));
if (flags[5] & 0x08)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Dive Time Alert"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Dive Time Alert"));
if (flags[5] & 0x10)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Marker"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Marker"));
if (flags[6] & 0x02)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("No Tank Data"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("No Tank Data"));
if (flags[6] & 0x04)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Low Battery Warning"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Low Battery Warning"));
if (flags[6] & 0x08)
- add_event(dive, sample->time.seconds, 0, 0, 0, _("Low Battery Alert"));
+ add_event(dive, sample->time.seconds, 0, 0, 0, N_("Low Battery Alert"));
/* flags[7] reflects the little on screen icons that remind of previous
* warnings / alerts - not useful for events */
}