diff options
Diffstat (limited to '')
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 22 | ||||
-rw-r--r-- | meson.build | 12 | ||||
-rw-r--r-- | po/LINGUAS | 0 | ||||
-rw-r--r-- | po/POTFILES | 0 | ||||
-rw-r--r-- | po/meson.build | 7 | ||||
-rw-r--r-- | weltschmerz.desktop.in (renamed from weltschmerz.desktop) | 0 | ||||
-rw-r--r-- | weltschmerz.vala | 5 |
8 files changed, 44 insertions, 4 deletions
@@ -1,3 +1,5 @@ build/* *.c +*.mo weltschmerz +weltschmerz.desktop @@ -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); |