aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2021-06-27 22:06:40 -0300
committerEuAndreh <eu@euandre.org>2021-07-06 16:29:15 -0300
commit67f7c956239a7bc811a1d655d389666048e45fc3 (patch)
treee31dd02c3e591828313a9578ee82bca986038dcf
parentTODOs.md: Mark #task-d6f1ddb3-2111-bcdb-1873-0a414a5f7157 as CANCELLED (diff)
downloadgit-permalink-67f7c956239a7bc811a1d655d389666048e45fc3.tar.gz
git-permalink-67f7c956239a7bc811a1d655d389666048e45fc3.tar.xz
Translate CHANGELOG.md adn README.md
Partially implements #task-7c5cd2aa-6d92-0423-bfa7-81f2e8436586. As mentioned in the task, instead of making "README.md" as symlink to "README.en.md", "README.md" is kept as it is, as the translated file doesn't need to live in the repository. The same goes for the "CHANGELOG.md" file.
Diffstat (limited to '')
-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"