aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile22
-rw-r--r--meson.build12
-rw-r--r--po/LINGUAS0
-rw-r--r--po/POTFILES0
-rw-r--r--po/meson.build7
-rw-r--r--weltschmerz.desktop.in (renamed from weltschmerz.desktop)0
-rw-r--r--weltschmerz.vala5
8 files changed, 44 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index 4aad62a..931223b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
build/*
*.c
+*.mo
weltschmerz
+weltschmerz.desktop
diff --git a/Makefile b/Makefile
index 6e84f4f..4be1213 100644
--- a/Makefile
+++ b/Makefile
@@ -2,22 +2,38 @@ PREFIX ?= /usr/local
EXEC_PREFIX ?= ${PREFIX}
BINDIR ?= ${EXEC_PREFIX}/bin
DATAROOTDIR ?= ${PREFIX}/share
+LOCALEDIR ?= ${DATAROOTDIR}/locale
MANDIR ?= ${DATAROOTDIR}/man
VALAC ?= valac
+POFILES := $(wildcard po/*.po)
+MOFILES := $(POFILES:.po=.mo)
+
weltschmerz: weltschmerz.vala terminal.vala config.vala configreader.vala utils.vala resources.c
- ${VALAC} -X -lm --pkg posix --pkg gtk+-3.0 --pkg vte-2.91 --gresources resources.xml \
+ ${VALAC} -X -DGETTEXT_PACKAGE=\"weltschmerz\" -X -DLOCALEDIR="\"${LOCALEDIR}\"" \
+ -X -lm --pkg posix --pkg gtk+-3.0 --pkg vte-2.91 --gresources resources.xml \
weltschmerz.vala terminal.vala config.vala configreader.vala utils.vala resources.c
resources.c: resources.xml terminal.ui terminal.css
glib-compile-resources $< --target=$@ --generate-source
-install: weltschmerz weltschmerz.1 weltschmerz.desktop
+%.mo: %.po
+ msgfmt $< -o $@
+
+weltschmerz.desktop: weltschmerz.desktop.in
+ msgfmt --desktop -d po --template $< -o $@
+
+install: weltschmerz weltschmerz.1 weltschmerz.desktop $(MOFILES)
install -D -m 755 -t '${DESTDIR}${BINDIR}' weltschmerz
install -D -m 644 -t '${DESTDIR}${MANDIR}/man1' weltschmerz.1
install -D -m 644 -t '${DESTDIR}${DATAROOTDIR}/applications' weltschmerz.desktop
+ for mo in $(MOFILES); do \
+ lang=$$(basename "$$mo" .mo); \
+ install -D -m 644 "$$mo" "${DESTDIR}${LOCALEDIR}/$$lang/LC_MESSAGES/weltschmerz.mo"; \
+ done
clean:
- rm -f weltschmerz resources.c
+ rm -f weltschmerz weltschmerz.desktop resources.c
+ rm -f po/*.mo
.PHONY: install clean
diff --git a/meson.build b/meson.build
index dc83f80..4bae2de 100644
--- a/meson.build
+++ b/meson.build
@@ -11,10 +11,20 @@ dependencies = [
dependency('vte-2.91'),
]
+subdir('po')
+
sources = files('weltschmerz.vala', 'terminal.vala', 'config.vala', 'configreader.vala', 'utils.vala')
sources += gnome.compile_resources('resources', 'resources.xml')
executable('weltschmerz', sources, dependencies: dependencies, install: true)
install_man('weltschmerz.1')
-install_data('weltschmerz.desktop', install_dir: join_paths(get_option('datadir'), 'applications'))
+
+i18n.merge_file(
+ input: 'weltschmerz.desktop.in',
+ output: 'weltschmerz.desktop',
+ po_dir: 'po',
+ type: 'desktop',
+ install: true,
+ install_dir: get_option('datadir') / 'applications',
+)
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/po/LINGUAS
diff --git a/po/POTFILES b/po/POTFILES
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/po/POTFILES
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000..6870f58
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,7 @@
+i18n = import('i18n')
+
+localedir = join_paths(get_option('prefix'), get_option('localedir'))
+add_project_arguments('-DGETTEXT_PACKAGE="weltschmerz"', language: 'c')
+add_project_arguments('-DLOCALEDIR="@0@"'.format(localedir), language: 'c')
+
+i18n.gettext(meson.project_name(), args: '--directory=' + meson.source_root())
diff --git a/weltschmerz.desktop b/weltschmerz.desktop.in
index 2b61982..2b61982 100644
--- a/weltschmerz.desktop
+++ b/weltschmerz.desktop.in
diff --git a/weltschmerz.vala b/weltschmerz.vala
index dac2291..42349d9 100644
--- a/weltschmerz.vala
+++ b/weltschmerz.vala
@@ -1,3 +1,4 @@
+[CCode(cname="LOCALEDIR")] extern const string LOCALEDIR;
const string PROGRAM_NAME = "weltschmerz";
void warning(string message) {
@@ -5,6 +6,10 @@ void warning(string message) {
}
static int main(string[] args) {
+ Intl.bindtextdomain(PROGRAM_NAME, LOCALEDIR);
+ Intl.bind_textdomain_codeset(PROGRAM_NAME, "UTF-8");
+ Intl.textdomain(PROGRAM_NAME);
+
unowned string[]? nullargs = null;
Gtk.init(ref nullargs);