aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--CHANGELOG.md1
-rw-r--r--Makefile8
-rw-r--r--TODOs.md2
-rw-r--r--aux/guix/manifest.scm2
-rwxr-xr-xaux/workflow/commonmark.sh14
-rwxr-xr-xaux/workflow/l10n.sh56
-rwxr-xr-xaux/workflow/public.sh18
8 files changed, 67 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index 99c4547..e389a63 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,6 @@
/tests/remotes/
/tests/prefix/
/doc/*.1
+/README.*.md
+/CHANGELOG.*.md
+/messages.mo
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f7f56ef..8056375 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
<!-- Entry template: -->
+
<!--
# Unreleased
## Added
diff --git a/Makefile b/Makefile
index 0633a18..d2a2d54 100644
--- a/Makefile
+++ b/Makefile
@@ -47,16 +47,18 @@ uninstall:
sh aux/workflow/manpages.sh -up $(DESTDIR)$(MANPREFIX) $(manpages)
clean:
- rm -rf public/ src/git-permalink $(manpages)
+ rm -rf public/ src/git-permalink $(manpages) README.*.md CHANGELOG.*.md messages.mo doc/po/*.po~
dist:
sh aux/workflow/dist.sh -d $(DATE) -V $(VERSION) -n $(NAME) -m $(MAILING_LIST)
l10n-gen:
- sh aux/workflow/l10n.sh -l '$(TRANSLATIONS)' $(manpages.en.in)
+ ln -fs README.md README.en.md
+ ln -fs CHANGELOG.md CHANGELOG.en.md
+ sh aux/workflow/l10n.sh -l '$(TRANSLATIONS)' $(manpages.en.in) README.en.md CHANGELOG.en.md
public: l10n-gen all README.md TODOs.md CHANGELOG.md
- sh aux/workflow/public.sh -n $(NAME) -m $(MAILING_LIST) -o public
+ sh aux/workflow/public.sh -l '$(TRANSLATIONS) en' -n $(NAME) -m $(MAILING_LIST) -o public
sh aux/workflow/manpages.sh -Ho public $(manpages)
spellcheck: public
diff --git a/TODOs.md b/TODOs.md
index 3562ed3..0d2c793 100644
--- a/TODOs.md
+++ b/TODOs.md
@@ -29,7 +29,7 @@ As with manpages, the actual file will be `README.en.md`, and `README.md` is a s
I should also add links to the translated versions on each translation.
-This should bring an accompanying change to `aux/workflow/assert-readme.sh` and `aux/workflow/assert-changelog.sh'.
+This should bring an accompanying change to `aux/workflow/assert-readme.sh` and `aux/workflow/assert-changelog.sh`.
## DONE Remove hard coded `public/` path in some files under `aux/` {#task-f09dedb7-1b25-0b5e-2520-910a9aa32562}
- DONE in 2021-06-22
diff --git a/aux/guix/manifest.scm b/aux/guix/manifest.scm
index f9ee4f2..b6075f4 100644
--- a/aux/guix/manifest.scm
+++ b/aux/guix/manifest.scm
@@ -13,7 +13,7 @@
shellcheck
pandoc
gettext
- po4a
+ po4a-text
hunspell
hunspell-dict-en-utf8
hunspell-dict-pt-utf8
diff --git a/aux/workflow/commonmark.sh b/aux/workflow/commonmark.sh
index 2333f5d..b196867 100755
--- a/aux/workflow/commonmark.sh
+++ b/aux/workflow/commonmark.sh
@@ -1,7 +1,7 @@
#!/bin/sh
set -eu
-while getopts 'N:o:r:w:' flag; do
+while getopts 'N:o:r:w:L:' flag; do
case "$flag" in
N)
PROJECT_UC="$OPTARG"
@@ -15,6 +15,9 @@ while getopts 'N:o:r:w:' flag; do
w)
OUT_FILE="$OPTARG"
;;
+ L)
+ THE_LANG="$OPTARG"
+ ;;
*)
exit 2
;;
@@ -32,20 +35,23 @@ assert_arg() {
assert_arg "${PROJECT_UC:-}" '-N PROJECT_UC'
assert_arg "${OUTDIR:-}" '-o OUTDIR'
assert_arg "${IN_FILE:-}" '-i IN_FILE'
+assert_arg "${THE_LANG:-}" '-L THE_LANG'
if [ -z "${OUT_FILE:-}" ]; then
OUT_FILE="${IN_FILE%.md}.html"
fi
+OUT="$OUTDIR/$OUT_FILE"
+mkdir -p "$(dirname "$OUT")"
pandoc \
--toc \
--highlight-style pygments \
--toc-depth=2 \
-s \
- --metadata title="$PROJECT_UC - ${IN_FILE%.md}" \
- --metadata lang=en \
+ --metadata title="$PROJECT_UC - ${IN_FILE%%.*}" \
+ --metadata "lang=$THE_LANG" \
-r commonmark \
-w html \
-H aux/workflow/favicon.html \
- < "$IN_FILE" > "$OUTDIR/$OUT_FILE"
+ < "$IN_FILE" > "$OUT"
diff --git a/aux/workflow/l10n.sh b/aux/workflow/l10n.sh
index e1fd3bb..89f2a6e 100755
--- a/aux/workflow/l10n.sh
+++ b/aux/workflow/l10n.sh
@@ -1,6 +1,8 @@
#!/bin/sh
set -eu
+mkdir -p doc/po
+
LANGS=
while getopts 'l:' flag; do
case "$flag" in
@@ -18,33 +20,39 @@ if [ -z "$LANGS" ]; then
exit 2
fi
-end="\033[0m"
-yellow="\033[0;33m"
-manpage() {
- from_f="$1"
- for l in $LANGS; do
- to_f="$(echo "$from_f" | sed "s/\.en\./.$l./")"
+po() {
+ format="$1"
+ from_f="$2"
+ to_f="$3"
+ lang="$4"
+ po4a-updatepo -M UTF-8 -f "$format" -m "$from_f" -p "doc/po/$lang.po" -v --previous
+ po4a-translate -M UTF-8 -f "$format" -m "$from_f" -p "doc/po/$lang.po" -v -L UTF-8 -l "$to_f" -k 0 >&2
+}
+for from_f in "$@"; do
+ for lang in $LANGS; do
+ to_f="$(echo "$from_f" | sed "s/\.en\./.$lang./")"
printf 'Generating %s...\n' "$to_f"
- OUT="$(mktemp)"
- po4a-updatepo -f man -m "$from_f" -p "doc/po/$l.po"
- po4a-translate -f man -m "$from_f" -p "doc/po/$l.po" -l "$to_f" -k 0 -v 2>&1 | tee "$OUT" >&2
- if ! grep -qF ' is 100% translated (' "$OUT"; then
- printf "\n\t${yellow}WARNING${end}!\n Missing translations for %s\n\n" "$to_f" >&2
- fi
+ case "$from_f" in
+ *.en.[1-9].in)
+ po man "$from_f" "$to_f" "$lang"
+ ;;
+ *.en.md|*.en.msg)
+ po text "$from_f" "$to_f" "$lang"
+ ;;
+ *)
+ echo "Unsupported file format: $from_f" >&2
+ exit 2
+ ;;
+ esac
done
-}
+done
-for f in "$@"; do
- case "$f" in
- *.en.[1-9].in)
- mkdir -p doc/po
- manpage "$f"
- ;;
- *)
- echo "Unsupported file format: $f" >&2
- exit 2
- ;;
- esac
+end="\033[0m"
+yellowb="\033[1;33m"
+for lang in $LANGS; do
+ if LANG=POSIX msgfmt --statistics "doc/po/$lang.po" 2>&1 | grep translated; then
+ printf "\n\t${yellowb}WARNING${end}!\n Missing translations for %s\n\n" "doc/po/$lang.po" >&2
+ fi
done
diff --git a/aux/workflow/public.sh b/aux/workflow/public.sh
index ef89d07..be32ac1 100755
--- a/aux/workflow/public.sh
+++ b/aux/workflow/public.sh
@@ -2,7 +2,7 @@
set -eu
PROJECT_UC=
-while getopts 'n:N:m:o:' flag; do
+while getopts 'n:N:m:o:l:' flag; do
case "$flag" in
n)
PROJECT="$OPTARG"
@@ -16,6 +16,9 @@ while getopts 'n:N:m:o:' flag; do
o)
OUTDIR="$OPTARG"
;;
+ l)
+ LANGS="$OPTARG"
+ ;;
*)
exit 2
;;
@@ -41,12 +44,19 @@ fi
mkdir -p "$OUTDIR"
sh aux/workflow/TODOs.sh -N "$PROJECT_UC" -n "$PROJECT" -m "$MAILING_LIST" -o "$OUTDIR"
-sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r README.md -w index.html
+sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r README.md -w index.html -Len
if [ -f CHANGELOG.md ]; then
- sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r CHANGELOG.md
+ sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r CHANGELOG.md -Len
+fi
+if [ -n "${LANGS:-}" ]; then
+ for lang in $LANGS; do
+ sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r "README.$lang.md" -w "$lang/index.html" -L "$lang"
+ if [ -f CHANGELOG.md ]; then
+ sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r "CHANGELOG.$lang.md" -w "$lang/CHANGELOG.html" -L "$lang"
+ fi
+ done
fi
sh aux/ci/report.sh -n "$PROJECT" -o "$OUTDIR"
-
cp aux/workflow/favicon.svg aux/workflow/favicon.png "$OUTDIR"