From ea64727f90a5f9a66c2fa81612e46ecdae438303 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Thu, 28 Jun 2018 21:35:23 +0200 Subject: all: I18N support This adds I18N support using standard gettext system together with an initial German translation. This can be used to search locales in some directory: Intl.bindtextdomain("shopsystem", "/home/sre/src/serial-barcode-scanner"); And this can be used to switch language at runtime: Intl.setlocale(LocaleCategory.ALL, ""); --- src/invoice/Makefile | 4 ++-- src/invoice/invoice.vala | 8 ++++---- src/invoice/main.vala | 11 +++++++---- src/invoice/single.vala | 4 ++-- 4 files changed, 15 insertions(+), 12 deletions(-) (limited to 'src/invoice') diff --git a/src/invoice/Makefile b/src/invoice/Makefile index 73eaf48..d8d72c0 100644 --- a/src/invoice/Makefile +++ b/src/invoice/Makefile @@ -2,10 +2,10 @@ all: invoice single-invoice @echo > /dev/null invoice: main.vala invoice.vala ../mail/mailer-interface.vala ../pdf-invoice/pdf-invoice-interface.vala ../database/db-interface.vala ../config/config-interface.vala ../price.vapi - valac -X -w -o $@ --pkg gio-2.0 $^ + valac -X -D'GETTEXT_PACKAGE="shopsystem"' -X -w -o $@ --pkg gio-2.0 $^ single-invoice: single.vala invoice.vala ../mail/mailer-interface.vala ../pdf-invoice/pdf-invoice-interface.vala ../database/db-interface.vala ../config/config-interface.vala ../price.vapi - valac -X -w -o $@ --pkg gio-2.0 $^ + valac -X -D'GETTEXT_PACKAGE="shopsystem"' -X -w -o $@ --pkg gio-2.0 $^ clean: rm -f invoice single-invoice diff --git a/src/invoice/invoice.vala b/src/invoice/invoice.vala index c0a162c..f899cb5 100644 --- a/src/invoice/invoice.vala +++ b/src/invoice/invoice.vala @@ -249,7 +249,7 @@ public class InvoiceImplementation { try { FileUtils.get_contents(datadir + "/treasurer.mail.txt", out text); } catch(GLib.FileError e) { - throw new IOError.FAILED("Could not open invoice template: %s", e.message); + throw new IOError.FAILED(_("Could not open invoice template: %s"), e.message); } text = text.replace("{{{SHORTNAME}}}", shortname); @@ -311,12 +311,12 @@ public class InvoiceImplementation { table = generate_invoice_table_html(entries); if(filename == "") - throw new IOError.FAILED("Unknown MessageType"); + throw new IOError.FAILED(_("Unknown MessageType")); try { FileUtils.get_contents(datadir + "/" + filename, out text); } catch(GLib.FileError e) { - throw new IOError.FAILED("Could not open invoice template: %s", e.message); + throw new IOError.FAILED(_("Could not open invoice template: %s"), e.message); } text = text.replace("{{{ADDRESS}}}", address); @@ -335,7 +335,7 @@ public class InvoiceImplementation { try { FileUtils.get_contents(datadir + "/" + vattextfilename, out vattext); } catch(GLib.FileError e) { - throw new IOError.FAILED("Could not open VAT template: %s", e.message); + throw new IOError.FAILED(_("Could not open VAT template: %s"), e.message); } text = text.replace("{{{VAT}}}", vattext); diff --git a/src/invoice/main.vala b/src/invoice/main.vala index b341adb..f5ec69b 100644 --- a/src/invoice/main.vala +++ b/src/invoice/main.vala @@ -16,11 +16,14 @@ InvoiceImplementation invoice; public static void help(string name) { - stderr.printf("Usage: %s [timestamp]\n", name); - stderr.printf("Possible values for : temporary, final\n"); + stderr.printf(_("Usage: %s [timestamp]\n"), name); + stderr.printf(_("Possible values for : temporary, final\n")); } public static int main(string[] args) { + Intl.setlocale(LocaleCategory.ALL, ""); + Intl.textdomain("shopsystem"); + bool temporary = false; int64 timestamp = new DateTime.now_local().to_unix(); @@ -45,14 +48,14 @@ public static int main(string[] args) { try { invoice = new InvoiceImplementation(); } catch(Error e) { - stderr.printf("Error: %s\n", e.message); + stderr.printf(_("Error: %s\n"), e.message); return 1; } try { invoice.send_invoices(temporary, timestamp); } catch(Error e) { - stderr.printf("Error: %s\n", e.message); + stderr.printf(_("Error: %s\n"), e.message); return 1; } diff --git a/src/invoice/single.vala b/src/invoice/single.vala index 54cba26..6f54afe 100644 --- a/src/invoice/single.vala +++ b/src/invoice/single.vala @@ -48,14 +48,14 @@ public static int main(string[] args) { try { invoice = new InvoiceImplementation(); } catch(Error e) { - stderr.printf("Error: %s\n", e.message); + stderr.printf(_("Error: %s\n"), e.message); return 1; } try { invoice.send_invoice(temporary, timestamp, user); } catch(Error e) { - stderr.printf("Error: %s\n", e.message); + stderr.printf(_("Error: %s\n"), e.message); return 1; } -- cgit v1.2.3