Files
opencloud/services/idp/i18n/Makefile
2022-10-24 20:31:56 +02:00

58 lines
1.1 KiB
Makefile

# Tools
PNPM ?= pnpm
MSGCAT ?= msgcat
MSGMERGE ?= msgmerge
MSGFMT ?= msgfmt
# Variables
POT = translation.pot
POS ?= $(wildcard *.po)
# Translations
.PHONY: build
build: json
.PYTHON: json
json:
@for po in $(POS); do \
lang=$$(echo $$po | sed "s/\.po//"); \
$(PNPM) i18next-conv -K --skipUntranslated -l $$lang -s i18n/$$po -t ../src/locales/$$lang/translation.json; \
done
$(PNPM) node i18n/build-json.js ../src/locales/locales.json $(POS)
dev-translation.json: FORCE
$(PNPM) i18next --fail-on-warnings
.PHONY: extract
extract: pot
.PHONY: pot
pot: dev-translation.json
@tmpfile1=$(shell mktemp).po; \
tmpfile2=$(shell mktemp).po; \
trap 'rm -f "$$tmpfile1" "$$tmpfile2"' EXIT; \
$(PNPM) i18next-conv --project "LibreGraph Connect Identifier" -K -l en -s i18n/dev-translation.json -t $$tmpfile1; \
$(PNPM) node i18n/build-pot.js $$tmpfile1 $$tmpfile2; \
$(MSGCAT) --no-wrap -o $(POT) $$tmpfile2
.PHONY: merge
merge: $(POS)
$(POS): FORCE $(POT)
@echo -n "$@ " && \
$(MSGMERGE) -U \
--backup=none \
--no-wrap \
--sort-output \
$@ $(POT)
.PHONY: stats
stats:
$(foreach po, $(POS), $(shell $(MSGFMT) -v --statistics $(po)))
@- true
FORCE: