mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Conversion to gettext to allow localization
This is just the first step - convert the string literals, try to catch all the places where this isn't possible and the program needs to convert string constants at runtime (those are the N_ macros). Add a very rough first German localization so I can at least test what I have done. Seriously, I have never used a localized OS, so I am certain that I have many of the 'standard' translations wrong. Someone please take over :-) Major issues with this: - right now it hardcodes the search path for the message catalog to be ./locale - that's of course bogus, but it works well while doing initial testing. Once the tooling support is there we just should use the OS default. - even though de_DE defaults to ISO-8859-15 (or ISO-8859-1 - the internets can't seem to agree) I went with UTF-8 as that is what Gtk appears to want to use internally. ISO-8859-15 encoded .mo files create funny looking artefacts instead of Umlaute. - no support at all in the Makefile - I was hoping someone with more experience in how to best set this up would contribute a good set of Makefile rules - likely this will help fix the first issue in that it will also install the .mo file(s) in the correct place(s) For now simply run msgfmt -c -o subsurface.mo deutsch.po to create the subsurface.mo file and then move it to ./locale/de_DE.UTF-8/LC_MESSAGES/subsurface.mo If you make changes to the sources and need to add new strings to be translated, this is what seems to work (again, should be tooled through the Makefile): xgettext -o subsurface-new.pot -s -k_ -kN_ --add-comments="++GETTEXT" *.c msgmerge -s -U po/deutsch.po subsurface-new.pot If you do this PLEASE do one commit that just has the new msgid as changes in line numbers create a TON of diff-noise. Do changes to translations in a SEPARATE commit. - no testing at all on Windows or Mac It builds on Windows :-) Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
a2afe41280
commit
99846da77f
16 changed files with 1255 additions and 250 deletions
37
uemis.c
37
uemis.c
|
@ -12,6 +12,7 @@
|
|||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <glib/gi18n.h>
|
||||
#define __USE_XOPEN
|
||||
#include <time.h>
|
||||
|
||||
|
@ -128,45 +129,45 @@ void uemis_event(struct dive *dive, struct sample *sample, uemis_sample_t *u_sam
|
|||
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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("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, _("Low Battery Alert"));
|
||||
/* flags[7] reflects the little on screen icons that remind of previous
|
||||
* warnings / alerts - not useful for events */
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue