From 99846da77f960a72d615c82bf5c5881a2df83616 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Thu, 11 Oct 2012 09:42:59 +0900 Subject: 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 --- dive.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'dive.c') diff --git a/dive.c b/dive.c index 641e1eda8..85b2f3b04 100644 --- a/dive.c +++ b/dive.c @@ -2,6 +2,7 @@ /* maintains the internal dive list structure */ #include #include +#include #include "dive.h" @@ -614,7 +615,7 @@ static char *merge_text(const char *a, const char *b) res = malloc(strlen(a) + strlen(b) + 9); if (!res) return (char *)a; - sprintf(res, "(%s) or (%s)", a, b); + sprintf(res, _("(%s) or (%s)"), a, b); return res; } -- cgit v1.2.3-70-g09d2