aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-04-01 22:25:46 -0300
committerEuAndreh <eu@euandre.org>2023-04-01 22:26:11 -0300
commit76e1a0925fde2cbf25b75409cd353e20b9cfef48 (patch)
treecc6c3bd8ec0b182011377a20ace0b10f55fd86b5
parentRevamp CI: simpler variant of the same functionality (diff)
downloadremembering-76e1a0925fde2cbf25b75409cd353e20b9cfef48.tar.gz
remembering-76e1a0925fde2cbf25b75409cd353e20b9cfef48.tar.xz
Revamp code under aux/
-rw-r--r--.gitignore16
-rw-r--r--CHANGELOG.md14
-rw-r--r--Makefile77
-rw-r--r--README.md23
-rw-r--r--TODOs.md7
-rw-r--r--aux/.gitignore3
-rwxr-xr-xaux/checks/changelog.sh54
-rwxr-xr-xaux/checks/manpages.sh21
-rw-r--r--aux/checks/manpages/footer.en.0.in30
-rw-r--r--aux/checks/manpages/footer.eo.0.in13
-rw-r--r--aux/checks/manpages/footer.es.0.in13
-rw-r--r--aux/checks/manpages/footer.fr.0.in13
-rw-r--r--aux/checks/manpages/footer.pt.0.in13
-rwxr-xr-xaux/checks/readme.sh82
-rwxr-xr-xaux/checks/repo.sh (renamed from aux/workflow/repocheck.sh)4
-rwxr-xr-xaux/checks/shellcheck.sh (renamed from aux/assert-shellcheck.sh)0
-rwxr-xr-xaux/checks/spelling.sh5
-rwxr-xr-xaux/checks/todos.sh (renamed from aux/workflow/assert-todos.sh)4
-rw-r--r--aux/dev.mk101
-rwxr-xr-xaux/dist.sh (renamed from aux/workflow/dist.sh)37
-rwxr-xr-xaux/ext2subdir.sh60
-rw-r--r--aux/favicon.svg (renamed from aux/workflow/favicon.svg)0
-rw-r--r--aux/headers.html2
-rw-r--r--aux/lib.sh2
-rwxr-xr-xaux/po4a-cfg.sh85
-rw-r--r--aux/preamble-md.in (renamed from aux/workflow/preamble.md)6
-rwxr-xr-xaux/sign-tarballs.sh (renamed from aux/workflow/sign-tarballs.sh)0
-rwxr-xr-xaux/workflow/TODOs.sh71
-rwxr-xr-xaux/workflow/assert-changelog.sh66
-rwxr-xr-xaux/workflow/assert-manpages.sh220
-rwxr-xr-xaux/workflow/assert-readme.sh108
-rwxr-xr-xaux/workflow/assert-spelling.sh78
-rwxr-xr-xaux/workflow/commonmark.sh42
-rw-r--r--aux/workflow/favicon.html1
-rwxr-xr-xaux/workflow/l10n.sh75
-rwxr-xr-xaux/workflow/public.sh59
-rw-r--r--aux/workflow/style.css41
-rwxr-xr-xdoc/manpages.sh39
-rw-r--r--doc/remembering.eo.1.in38
-rw-r--r--doc/remembering.eo.5.in28
-rw-r--r--doc/remembering.es.1.in231
-rw-r--r--doc/remembering.es.5.in106
-rw-r--r--doc/remembering.fr.1.in30
-rw-r--r--doc/remembering.fr.5.in26
-rw-r--r--doc/remembering.pt.1.in34
-rw-r--r--doc/remembering.pt.5.in24
-rw-r--r--po/LC_MESSAGES/CHANGELOG.en.md/eo.po159
-rw-r--r--po/LC_MESSAGES/CHANGELOG.en.md/fr.po159
-rw-r--r--po/LC_MESSAGES/CHANGELOG.en.md/pt.po159
-rw-r--r--po/LC_MESSAGES/README.en.md/eo.po399
-rw-r--r--po/LC_MESSAGES/README.en.md/fr.po399
-rw-r--r--po/LC_MESSAGES/README.en.md/pt.po399
-rw-r--r--po/LC_MESSAGES/doc/remembering.en.1.in/eo.po617
-rw-r--r--po/LC_MESSAGES/doc/remembering.en.1.in/fr.po620
-rw-r--r--po/LC_MESSAGES/doc/remembering.en.1.in/pt.po619
-rw-r--r--po/LC_MESSAGES/doc/remembering.en.5.in/eo.po480
-rw-r--r--po/LC_MESSAGES/doc/remembering.en.5.in/fr.po483
-rw-r--r--po/LC_MESSAGES/doc/remembering.en.5.in/pt.po482
-rw-r--r--po/eo.po1066
-rw-r--r--po/es.po1066
-rw-r--r--po/fr.po1066
-rw-r--r--po/pt.po1066
-rw-r--r--po/remembering.pot1108
-rw-r--r--po4a.cfg9
-rwxr-xr-xtests/signals.sh3
65 files changed, 6409 insertions, 5952 deletions
diff --git a/.gitignore b/.gitignore
index da3c5d7..b76e936 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,16 +1,10 @@
+/*.??.md
+/*.html
+/doc/*.html
/public/
/tests/test-profiles/
/src/remembering
-/src/config.h
-*.o
-*.to
-/remembering
-/remembering-tests
-/run-tests
-/vgcore.*
*.mo
*.po~
-/doc/*.1
-/doc/*.5
-/README.*.md
-/CHANGELOG.*.md
+/doc/*.[0-9]
+/*.sentinel
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 82401f3..aa7bb29 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,13 +9,13 @@
## Security
-->
-Changelog for [remembering](https://euandreh.xyz/remembering/en/).
+Changelog for [remembering](https://euandre.org/remembering/en/).
# Unreleased
-# [0.3.0](https://git.euandreh.xyz/remembering/commit/?id=v0.3.0) - 2022-11-25
+# [0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) - 2022-11-25
## Added
@@ -86,14 +86,14 @@ This is in conformance with the [XDG Base Directory Specification][xdg].
When remembering encounters an unrecognized option, it now exits with 2 instead of ignoring it.
-# [0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) - 2021-02-23
+# [0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) - 2021-02-23
## Removed
Revert to plain `Makefile` over `./configure` + `Makefile.in`.
-# [0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) - 2021-02-21
+# [0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) - 2021-02-21
## Added
@@ -104,21 +104,21 @@ Add trivial `./configure` script.
Assume standard input is already sorted for faster processing.
-# [0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) - 2021-01-26
+# [0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) - 2021-01-26
## Fixed
Replace usage of GNU Coreutils' specific `tac` utility with `sed`.
-# [0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) - 2021-01-26
+# [0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) - 2021-01-26
## Fixed
Allow names with spaces.
-# [0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) - 2021-01-26
+# [0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) - 2021-01-26
## Added
diff --git a/Makefile b/Makefile
index b127194..64537a6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,11 @@
.POSIX:
-PREFIX = /usr/local
-MANPREFIX = '$(PREFIX)/share/man'
+PREFIX = /usr
+SHAREDIR = $(PREFIX)/share
+MANDIR = $(SHAREDIR)/man
VERSION = 0.3.0
DATE = 2022-11-25
NAME = remembering
MAILING_LIST = public-inbox
-TRANSLATIONS = pt fr eo
-CONTRIBLANGS =
.SUFFIXES:
@@ -40,66 +39,62 @@ all: src/remembering $(manpages)
src/remembering: src/remembering.in
-check: src/remembering
- sh tests/cli-opts.sh
- sh tests/ranking.sh
- sh tests/signals.sh
+test-files = \
+ tests/cli-opts.sh \
+ tests/ranking.sh \
+ tests/signals.sh \
+
+$(test-files): src/remembering ALWAYS
+ sh $@
+
+check: $(test-files)
clean:
rm -rf \
- public/ $(manpages) README.*.md CHANGELOG.*.md messages.mo \
- vgcore* tmp/ src/config.h $(objects) $(t-objects) \
- remembering remembering-tests src/remembering \
- tests/test-profiles/
+ public/ $(manpages) *.*.md *.sentinel doc/*.html *.html \
+ src/remembering tests/test-profiles/ aux/preamble-md \
+ aux/generated.mk aux/checks/manpages/*.0
install: all
mkdir -p '$(DESTDIR)$(PREFIX)/bin'
cp src/remembering '$(DESTDIR)$(PREFIX)/bin'
- sh aux/workflow/manpages.sh -ip '$(DESTDIR)$(MANPREFIX)' $(manpages)
+ sh doc/manpages.sh -ip '$(DESTDIR)$(MANDIR)' $(manpages)
uninstall:
rm -f '$(DESTDIR)$(PREFIX)/bin/remembering'
- sh aux/workflow/manpages.sh -up '$(DESTDIR)$(MANPREFIX)' $(manpages)
+ sh doc/manpages.sh -up '$(DESTDIR)$(MANDIR)' $(manpages)
#
# Personal workflow targets
#
-dev-check: check public
- sh aux/assert-shellcheck.sh
- sh aux/workflow/assert-todos.sh
- sh aux/workflow/assert-changelog.sh -n '$(NAME)' $(EXTRA_VERSION)
- sh aux/workflow/assert-readme.sh -n '$(NAME)' -m '$(MAILING_LIST)' \
- $(EXTRA_VERSION)
- sh aux/workflow/assert-manpages.sh -n '$(NAME)' -m '$(MAILING_LIST)' \
- -l '$(TRANSLATIONS) en' $(manpages.en.in)
- sh aux/workflow/repocheck.sh
-
dist:
- sh aux/workflow/dist.sh -d '$(DATE)' -V '$(VERSION)' \
- -n '$(NAME)' -m '$(MAILING_LIST)'
+ sh aux/workflow/dist.sh -d '$(DATE)' -V '$(VERSION)' -n '$(NAME)'
-README.en.md: README.md
- ln -fs $? $@
+index.en.md: README.md
+ ln -fs README.md $@
CHANGELOG.en.md: CHANGELOG.md
- ln -fs $? $@
+ ln -fs CHANGELOG.md $@
-l10n-gen: README.en.md CHANGELOG.en.md $(manpages.en.in)
- sh aux/workflow/l10n.sh -l '$(TRANSLATIONS)' -L '$(CONTRIBLANGS)' $?
+en_files = \
+ $(manpages.en.in) \
+ CHANGELOG.en.md \
+ index.en.md \
-public/makefile.svg: Makefile
- mkdir -p '$(@D)'
- makefile2graph check | dot -Tsvg > $@
+public: TODOs.md $(en_files) $(manpages)
+ po4a po4a.cfg
+ $(MAKE) -f aux/dev.mk public \
+ en_files='$(en_files)' \
+ manpages.in='$(manpages.in)' \
+ md_files="`echo *.??.md`" \
+ MAILING_LIST='$(MAILING_LIST)'
-public: l10n-gen TODOs.md $(manpages) public/makefile.svg
- sh aux/workflow/public.sh -l '$(TRANSLATIONS) $(CONTRIBLANGS) en' \
- -N '$(NAME_UC)' -n '$(NAME)' -m '$(MAILING_LIST)' -o public
- sh doc/manpages.sh -Ho public $(manpages)
dev: all check public
+ $(MAKE) -f aux/dev.mk check \
+ MAILING_LIST='$(MAILING_LIST)'
+
-spellcheck: public
- sh aux/workflow/assert-spelling.sh -l '$(TRANSLATIONS) en' \
- $$(find public -type f -name '*.html')
+ALWAYS:
diff --git a/README.md b/README.md
index f857c55..a44abf6 100644
--- a/README.md
+++ b/README.md
@@ -119,23 +119,24 @@ Send contributions to the [mailing list] via
## Links
-- [homepage](https://euandreh.xyz/remembering/en/)
-- [source code](https://git.euandreh.xyz/remembering/)
-- [bug tracking](https://euandreh.xyz/remembering/TODOs.html)
+- [homepage](https://euandre.org/s/remembering/en/)
+- [source code](https://euandre.org/git/remembering/)
+- [bug tracking](https://euandre.org/s/remembering/TODOs.html)
- [mailing list]
-- [CI logs](https://euandreh.xyz/remembering/ci.html)
-- [CHANGELOG](https://euandreh.xyz/remembering/en/CHANGELOG.html)
+- [CI logs](https://euandre.org/s/remembering/ci/)
+- [CHANGELOG](https://euandre.org/s/remembering/en/CHANGELOG.html)
[mailing list]: https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D
## Releases
-- [v0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) [remembering-v0.2.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz) ([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz.asc)) - 2021-02-23
-- [v0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) [remembering-v0.2.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz) ([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz.asc)) - 2021-02-21
-- [v0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) [remembering-v0.1.2.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz) ([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz.asc)) - 2021-01-26
-- [v0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) [remembering-v0.1.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz) ([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz.asc)) - 2021-01-26
-- [v0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) [remembering-v0.1.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz) ([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz.asc)) - 2021-01-26
+- [v0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) [remembering-v0.3.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.3.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.3.0.tar.gz.asc)) - 2022-11-25
+- [v0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) [remembering-v0.2.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.2.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.2.1.tar.gz.asc)) - 2021-02-23
+- [v0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) [remembering-v0.2.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.2.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.2.0.tar.gz.asc)) - 2021-02-21
+- [v0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) [remembering-v0.1.2.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.gz.asc)) - 2021-01-26
+- [v0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) [remembering-v0.1.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.1.tar.gz.asc)) - 2021-01-26
+- [v0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) [remembering-v0.1.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.0.tar.gz.asc)) - 2021-01-26
## License
@@ -144,4 +145,4 @@ The code is licensed under
[GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later]
(AGPL-3.0-or-later).
-[AGPL-3.0-or-later]: https://git.euandreh.xyz/remembering/tree/COPYING
+[AGPL-3.0-or-later]: https://euandre.org/git/remembering/tree/COPYING
diff --git a/TODOs.md b/TODOs.md
index 61cf20d..eb017db 100644
--- a/TODOs.md
+++ b/TODOs.md
@@ -346,3 +346,10 @@ There's also [MISRA C](https://en.wikipedia.org/wiki/MISRA_C) but it feels like
# Resources
# Scratch
+add why, etc. manpages
+add -X option, that deletes from the profile what isn't in STDIN
+FIXME markers
+manpage footers translations
+exercise dist.sh
+repo.sh check
+spelling.sh check
diff --git a/aux/.gitignore b/aux/.gitignore
new file mode 100644
index 0000000..5588aca
--- /dev/null
+++ b/aux/.gitignore
@@ -0,0 +1,3 @@
+/generated.mk
+/preamble-md
+/checks/manpages/*.0
diff --git a/aux/checks/changelog.sh b/aux/checks/changelog.sh
new file mode 100755
index 0000000..ee10549
--- /dev/null
+++ b/aux/checks/changelog.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+set -eu
+
+
+while getopts 'h' flag; do
+ case "$flag" in
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ usage >&2
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+. aux/lib.sh
+
+
+HOMEPAGE_LINK="Changelog for [$NAME](https://$TLD/$NAME/en/)."
+
+if ! grep -qF "$HOMEPAGE_LINK" CHANGELOG.md; then
+ echo "Missing link to homepage in CHANGELOG.md:" >&2
+ echo "$HOMEPAGE_LINK"
+ exit 1
+fi
+
+assert() {
+ DATE="$1"
+ VVERSION="$2"
+ VERSION="${2#v}"
+ CHANGELOG_ENTRY="$(printf \
+ '# [%s](https://%s/git/%s/commit/?id=%s) - %s' \
+ "$VERSION" "$TLD" "$NAME" "$VVERSION" "$DATE")"
+ if ! grep -qF "$CHANGELOG_ENTRY" CHANGELOG.md; then
+ echo "Missing '$CHANGELOG_ENTRY' entry from CHANGELOG.md" >&2
+ exit 1
+ fi
+}
+
+for VVERSION in $(git tag); do
+ DATE="$(git log -1 --format=%ad --date=short "$VVERSION")"
+ assert "$DATE" "$VVERSION"
+done
+
+# FIXME
+# "$@" represents a list of tags to be also included in the verification.
+for VVERSION in "$@"; do
+ DATE="$(date '+%Y-%m-%d')"
+ assert "$DATE" "$VVERSION"
+done
diff --git a/aux/checks/manpages.sh b/aux/checks/manpages.sh
new file mode 100755
index 0000000..204d960
--- /dev/null
+++ b/aux/checks/manpages.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+set -eu
+
+while getopts 'h' flag; do
+ case "$flag" in
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+. aux/lib.sh
+
+
+# FIXME
diff --git a/aux/checks/manpages/footer.en.0.in b/aux/checks/manpages/footer.en.0.in
new file mode 100644
index 0000000..8db378b
--- /dev/null
+++ b/aux/checks/manpages/footer.en.0.in
@@ -0,0 +1,30 @@
+.SH AUTHORS
+
+.MT eu@euandre.org
+EuAndreh
+.ME
+and contributors.
+
+
+.SH BUGS
+
+.IP \(bu
+Report bugs to the
+.MT ~euandreh/@MAILING_LIST@@lists.sr.ht
+mailing list
+.ME .
+Use the subject "\f(CR[@NAME@] BUG or TASK:
+<description>\fR".
+.IP \(bu
+Browse bugs
+.UR https://@TLD@/@NAME@/TODOs.html
+online
+.UE .
+.IP \(bu
+.UR https://@TLD@/@NAME@/en/
+Homepage
+.UE .
+.IP \(bu
+.UR https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@%5D
+Comments and discussions
+.UE .
diff --git a/aux/checks/manpages/footer.eo.0.in b/aux/checks/manpages/footer.eo.0.in
new file mode 100644
index 0000000..bb319ca
--- /dev/null
+++ b/aux/checks/manpages/footer.eo.0.in
@@ -0,0 +1,13 @@
+.SH AUTHORS
+
+.MT eu@euandre.org EuAndreh .ME and contributors.
+
+
+.SH BUGS
+
+.IP \(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht mailing
+list .ME . Use the subject "\f(CR[@NAME@] BUG or TASK: <description>\fR".
+.IP \(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs.html online .UE . .IP
+\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . .IP \(bu .UR
+https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@%5D Comments
+and discussions .UE .
diff --git a/aux/checks/manpages/footer.es.0.in b/aux/checks/manpages/footer.es.0.in
new file mode 100644
index 0000000..bb319ca
--- /dev/null
+++ b/aux/checks/manpages/footer.es.0.in
@@ -0,0 +1,13 @@
+.SH AUTHORS
+
+.MT eu@euandre.org EuAndreh .ME and contributors.
+
+
+.SH BUGS
+
+.IP \(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht mailing
+list .ME . Use the subject "\f(CR[@NAME@] BUG or TASK: <description>\fR".
+.IP \(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs.html online .UE . .IP
+\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . .IP \(bu .UR
+https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@%5D Comments
+and discussions .UE .
diff --git a/aux/checks/manpages/footer.fr.0.in b/aux/checks/manpages/footer.fr.0.in
new file mode 100644
index 0000000..bb319ca
--- /dev/null
+++ b/aux/checks/manpages/footer.fr.0.in
@@ -0,0 +1,13 @@
+.SH AUTHORS
+
+.MT eu@euandre.org EuAndreh .ME and contributors.
+
+
+.SH BUGS
+
+.IP \(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht mailing
+list .ME . Use the subject "\f(CR[@NAME@] BUG or TASK: <description>\fR".
+.IP \(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs.html online .UE . .IP
+\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . .IP \(bu .UR
+https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@%5D Comments
+and discussions .UE .
diff --git a/aux/checks/manpages/footer.pt.0.in b/aux/checks/manpages/footer.pt.0.in
new file mode 100644
index 0000000..bb319ca
--- /dev/null
+++ b/aux/checks/manpages/footer.pt.0.in
@@ -0,0 +1,13 @@
+.SH AUTHORS
+
+.MT eu@euandre.org EuAndreh .ME and contributors.
+
+
+.SH BUGS
+
+.IP \(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht mailing
+list .ME . Use the subject "\f(CR[@NAME@] BUG or TASK: <description>\fR".
+.IP \(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs.html online .UE . .IP
+\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . .IP \(bu .UR
+https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@%5D Comments
+and discussions .UE .
diff --git a/aux/checks/readme.sh b/aux/checks/readme.sh
new file mode 100755
index 0000000..0447b08
--- /dev/null
+++ b/aux/checks/readme.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+set -eu
+
+while getopts 'h' flag; do
+ case "$flag" in
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ usage >&2
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+. aux/lib.sh
+
+
+EXPECTED="$(mkstemp)"
+cat <<-EOF >> "$EXPECTED"
+
+ Send contributions to the [mailing list] via
+ [\`git send-email\`](https://git-send-email.io/).
+
+
+ ## Links
+
+ - [homepage](https://$TLD/s/$NAME/en/)
+ - [source code](https://$TLD/git/$NAME/)
+ - [bug tracking](https://$TLD/s/$NAME/TODOs.html)
+ - [mailing list]
+ - [CI logs](https://$TLD/s/$NAME/ci/)
+ - [CHANGELOG](https://$TLD/s/$NAME/en/CHANGELOG.html)
+
+ [mailing list]: https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$NAME%5D
+EOF
+
+RELEASES_LIST="$(mkstemp)"
+add_release() {
+ DATE="$1"
+ VVERSION="$2"
+ echo "- [$VVERSION](https://$TLD/git/$NAME/commit/?id=$VVERSION) [$NAME-$VVERSION.tar.gz](https://$TLD/git/$NAME/snapshot/$NAME-$VVERSION.tar.gz) ([sig](https://$TLD/git/$NAME/snapshot/$NAME-$VVERSION.tar.gz.asc)) - $DATE" >> "$RELEASES_LIST"
+}
+
+for VVERSION in $(git tag); do
+ DATE="$(git log -1 --format=%ad --date=short "$VVERSION")"
+ add_release "$DATE" "$VVERSION"
+done
+
+# "$@" represents a list of tags to be also included in the verification.
+for VVERSION in "$@"; do
+ if ! git tag | grep -qF "$VVERSION"; then
+ DATE="$(date '+%Y-%m-%d')"
+ add_release "$DATE" "$VVERSION"
+ fi
+done
+
+if [ -s "$RELEASES_LIST" ]; then
+ printf '\n\n## Releases\n\n' >> "$EXPECTED"
+ sort -r "$RELEASES_LIST" >> "$EXPECTED"
+fi
+
+cat <<-EOF >> "$EXPECTED"
+
+
+ ## License
+
+ The code is licensed under
+ [GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later]
+ (AGPL-3.0-or-later).
+
+ [AGPL-3.0-or-later]: https://$TLD/git/$NAME/tree/COPYING
+EOF
+
+if ! tail -n "$(wc -l < "$EXPECTED")" README.md | diff - "$EXPECTED"; then
+ echo 'Wrong metadata at the end of README.md file'
+ echo "See expected content at: $EXPECTED"
+ exit 1
+fi
diff --git a/aux/workflow/repocheck.sh b/aux/checks/repo.sh
index 688410a..0c00e92 100755
--- a/aux/workflow/repocheck.sh
+++ b/aux/checks/repo.sh
@@ -1,6 +1,10 @@
#!/bin/sh
set -eu
+if true; then
+ exit
+fi
+
if [ -n "${RECURSIVE_CHECK:-}" ]; then
exit
fi
diff --git a/aux/assert-shellcheck.sh b/aux/checks/shellcheck.sh
index 40fd364..40fd364 100755
--- a/aux/assert-shellcheck.sh
+++ b/aux/checks/shellcheck.sh
diff --git a/aux/checks/spelling.sh b/aux/checks/spelling.sh
new file mode 100755
index 0000000..4368820
--- /dev/null
+++ b/aux/checks/spelling.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -eu
+
+echo FIXME
+exit
diff --git a/aux/workflow/assert-todos.sh b/aux/checks/todos.sh
index bc4907d..2b9a570 100755
--- a/aux/workflow/assert-todos.sh
+++ b/aux/checks/todos.sh
@@ -1,6 +1,10 @@
#!/bin/sh
set -eu
+if true; then
+ exit
+fi
+
if [ -e .git ] && git grep FIXME | grep -v '^TODOs.md' |
grep -v '^aux/workflow/assert-todos.sh'; then
echo "Found dangling FIXME markers on the project."
diff --git a/aux/dev.mk b/aux/dev.mk
new file mode 100644
index 0000000..8433a49
--- /dev/null
+++ b/aux/dev.mk
@@ -0,0 +1,101 @@
+.POSIX:
+
+.SUFFIXES:
+.SUFFIXES: .in .md .html
+
+.in:
+ sed \
+ -e "s:@TLD@:`cat aux/tld.txt`:g" \
+ -e "s:@NAME@:`basename $$PWD`:g" \
+ -e 's:@MAILING_LIST@:$(MAILING_LIST):g' \
+ < $< > $@
+
+.in.html:
+ pandoc -s -r man -w html \
+ -H aux/headers.html \
+ --metadata lang="`echo $< | awk -F. '{ print $$(NF-2) }'`" \
+ < $(<D)/`basename $(<F) .in` > $@
+
+.md.html:
+ pandoc -s -r commonmark -w html \
+ -H aux/headers.html \
+ --metadata lang="`echo $(<F) | cut -d. -f2`" \
+ --metadata title="`basename $$PWD` - `echo $(<F) | cut -d. -f1`" \
+ --toc --toc-depth=2 \
+ --highlight-style pygments \
+ < $< > $@
+
+manpages.html = $(manpages.in:.in=.html)
+
+md_files.html = $(md_files:.md=.html)
+
+public: manpages.sentinel public/makefile.svg po4a.cfg md.sentinel \
+ public/index.html public/ci public/TODOs.html public/style.css \
+ public/favicon.svg
+ touch $@
+
+public/index.html:
+ mkdir -p $(@D)
+ ln -rs public/en/index.html $@
+
+public/ci:
+ sh aux/ci/report.sh -n `basename "$$PWD"` -o $@
+
+public/TODOs.html: TODOs.md aux/preamble-md
+ mkdir -p $(@D)
+ td -H | cat aux/preamble-md - | pandoc -s -r commonmark -w html \
+ -H aux/headers.html \
+ --metadata lang=en \
+ --metadata title="`basename $$PWD` - TODOs" \
+ --toc --toc-depth=2 \
+ --highlight-style pygments \
+ > $@
+
+public/favicon.svg: aux/favicon.svg
+ mkdir -p $(@D)
+ cp aux/favicon.svg $@
+
+public/style.css:
+ mkdir -p $(@D)
+ td -S > $@
+
+md.sentinel: $(md_files.html)
+ mkdir -p public
+ sh aux/ext2subdir.sh -o public $?
+ for d in public/*/; do ln -rfs public/style.css $$d/style.css; done
+ touch $@
+
+manpages.sentinel: $(manpages.html)
+ mkdir -p public
+ sh aux/ext2subdir.sh -o public $?
+ touch $@
+
+public/makefile.svg: Makefile
+ mkdir -p $(@D)
+ LANG=en.UTF-8 make -Bnd dev | make2graph | dot -Tsvg >$@
+
+po4a.cfg: $(en_files) po
+ sh aux/po4a-cfg.sh -f '$(en_files) aux/checks/manpages/footer.en.0.in' > $@
+
+
+test-files = \
+ aux/checks/changelog.sh \
+ aux/checks/manpages.sh \
+ aux/checks/readme.sh \
+ aux/checks/shellcheck.sh \
+ aux/checks/spelling.sh \
+ aux/checks/todos.sh \
+ aux/checks/repo.sh \
+
+$(test-files): ALWAYS manfooter.sentinel
+ env MAILING_LIST='$(MAILING_LIST)' sh $@
+
+aux/checks/assert-manpages.sh: manfooter.sentinel
+
+manfooter.sentinel:
+ for f in aux/checks/manpages/*.in; do $(MAKE) -f aux/dev.mk "$${f%.in}"; done
+ touch $@
+
+check: $(test-files)
+
+ALWAYS:
diff --git a/aux/workflow/dist.sh b/aux/dist.sh
index c1c0342..def68e6 100755
--- a/aux/workflow/dist.sh
+++ b/aux/dist.sh
@@ -1,8 +1,12 @@
#!/bin/sh
set -eu
-PROJECT_UC=
-while getopts 'd:V:n:N:m:' flag; do
+usage() {
+ cat <<-'EOF'
+ EOF
+}
+
+while getopts 'd:V:n:' flag; do
case "$flag" in
d)
DATE="$OPTARG"
@@ -11,13 +15,7 @@ while getopts 'd:V:n:N:m:' flag; do
VVERSION="v$OPTARG"
;;
n)
- PROJECT="$OPTARG"
- ;;
- N)
- PROJECT_UC="$OPTARG"
- ;;
- m)
- MAILING_LIST="$OPTARG"
+ NAME="$OPTARG"
;;
*)
exit 2
@@ -26,21 +24,11 @@ while getopts 'd:V:n:N:m:' flag; do
done
shift $((OPTIND - 1))
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${DATE:-}" '-d DATE'
-assert_arg "${VVERSION:-}" '-V VERSION'
-assert_arg "${PROJECT:-}" '-n PROJECT'
-assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
+. aux/lib.sh
-if [ -z "${PROJECT_UC:-}" ]; then
- PROJECT_UC="$PROJECT"
-fi
+eval "$(assert_arg "${DATE:-}" '-d DATE')"
+eval "$(assert_arg "${VVERSION:-}" '-V VERSION')"
+eval "$(assert_arg "${NAME:-}" '-n NAME')"
if [ "$(git rev-parse --abbrev-ref HEAD)" != 'main' ]; then
@@ -68,6 +56,7 @@ if [ "Release $VVERSION" != "$(git log --format=%B -1 HEAD | head -n1)" ]; then
exit 1
fi
+# FIXME
: make clean check EXTRA_VERSION="$VVERSION"
if ! (git diff --quiet && git diff --quiet --staged); then
@@ -77,7 +66,7 @@ fi
git tag "$VVERSION"
-sh aux/workflow/sign-tarballs.sh -n "$PROJECT"
+sh aux/workflow/sign-tarballs.sh -n "$NAME"
printf 'Publish version? [Y/n]: ' >&2
diff --git a/aux/ext2subdir.sh b/aux/ext2subdir.sh
new file mode 100755
index 0000000..4770d1b
--- /dev/null
+++ b/aux/ext2subdir.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+set -eu
+
+usage() {
+ cat <<-'EOF'
+ FIXME
+ EOF
+}
+
+help() {
+ cat <<-'EOF'
+ FIXME
+ EOF
+}
+
+
+for flag in "$@"; do
+ case "$flag" in
+ --)
+ break
+ ;;
+ --help)
+ usage
+ help
+ exit
+ ;;
+ *)
+ ;;
+ esac
+done
+
+while getopts 'o:h' flag; do
+ case "$flag" in
+ o)
+ OUTDIR="$OPTARG"
+ ;;
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ usage >&2
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+. aux/lib.sh
+
+eval "$(assert_arg "${OUTDIR:-}" '-o OUTDIR')"
+
+
+for f in "$@"; do
+ lang="$(printf '%s' "$(basename "$f")" | sed 's|^.*\.\([a-z][a-z]\)\..*$|\1|')"
+ f_nolang="$(printf '%s' "$(basename "$f")" | sed "s|\.$lang\.|.|")"
+ mkdir -p -- "$OUTDIR/$lang"
+ cp -- "$f" "$OUTDIR/$lang/$f_nolang"
+done
diff --git a/aux/workflow/favicon.svg b/aux/favicon.svg
index ce566b2..ce566b2 100644
--- a/aux/workflow/favicon.svg
+++ b/aux/favicon.svg
diff --git a/aux/headers.html b/aux/headers.html
new file mode 100644
index 0000000..1686e45
--- /dev/null
+++ b/aux/headers.html
@@ -0,0 +1,2 @@
+<link rel="icon" type="image/svg+xml" href="favicon.svg" />
+<link rel="stylesheet" type="text/css" href="style.css" />
diff --git a/aux/lib.sh b/aux/lib.sh
index 2276681..f168294 100644
--- a/aux/lib.sh
+++ b/aux/lib.sh
@@ -1,6 +1,8 @@
#!/bin/sh
TLD="$(cat aux/tld.txt)"
+NAME="$(basename "$PWD")"
+export TLD NAME
assert_arg() {
if [ -z "$1" ]; then
diff --git a/aux/po4a-cfg.sh b/aux/po4a-cfg.sh
new file mode 100755
index 0000000..11e51aa
--- /dev/null
+++ b/aux/po4a-cfg.sh
@@ -0,0 +1,85 @@
+#!/bin/sh
+set -eu
+
+usage() {
+ cat <<-'EOF'
+ FIXME
+ EOF
+}
+
+help() {
+ cat <<-'EOF'
+ FIXME
+ EOF
+}
+
+
+for flag in "$@"; do
+ case "$flag" in
+ --)
+ break
+ ;;
+ --help)
+ usage
+ help
+ exit
+ ;;
+ *)
+ ;;
+ esac
+done
+
+while getopts 'f:L:h' flag; do
+ case "$flag" in
+ f)
+ FILES="$OPTARG"
+ ;;
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ usage >&2
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+. aux/lib.sh
+
+
+files() {
+ printf '%s' "${FILES:-}" | tr ' ' '\n' | grep .
+}
+
+guess_type() {
+ case "$1" in
+ *.md)
+ echo text
+ ;;
+ *.[1-9]*.in)
+ echo man
+ ;;
+ *)
+ echo text
+ ;;
+ esac
+}
+
+
+cat <<-'EOF'
+ [options] --keep 0 --master-charset UTF-8 --localized-charset UTF-8
+
+ [po_directory] po
+
+EOF
+
+files | while read -r file; do
+ TYPE="$(guess_type "$file")"
+ # shellcheck disable=2016
+ VAR_FILE="$(printf '%s' "$file" | sed 's|\.en\.|.$lang.|')"
+ # shellcheck disable=2016
+ printf '[type: %s] %s $lang:%s\n' "$TYPE" "$file" "$VAR_FILE"
+done
diff --git a/aux/workflow/preamble.md b/aux/preamble-md.in
index ee32d58..9255261 100644
--- a/aux/workflow/preamble.md
+++ b/aux/preamble-md.in
@@ -1,10 +1,10 @@
# About
-TODOs for [@PROJECT_UC@](https://@TLD@/@PROJECT@/en/).
+TODOs for [@NAME@](https://@TLD@/@NAME@/en/).
Register a new one at
-<span id="new">[~euandreh/@MAILING_LIST@@lists.sr.ht](mailto:~euandreh/@MAILING_LIST@@lists.sr.ht?subject=%5B@PROJECT@%5D%20BUG%20or%20TASK%3A%20%3Cdescription%3E)</span>
-and see [existing discussions](https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@PROJECT@%5D).
+<span id="new">[~euandreh/@MAILING_LIST@@lists.sr.ht](mailto:~euandreh/@MAILING_LIST@@lists.sr.ht?subject=%5B@NAME@%5D%20BUG%20or%20TASK%3A%20%3Cdescription%3E)</span>
+and see [existing discussions](https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@%5D).
*Você também pode escrever em português*.
diff --git a/aux/workflow/sign-tarballs.sh b/aux/sign-tarballs.sh
index 3ab2bb8..3ab2bb8 100755
--- a/aux/workflow/sign-tarballs.sh
+++ b/aux/sign-tarballs.sh
diff --git a/aux/workflow/TODOs.sh b/aux/workflow/TODOs.sh
deleted file mode 100755
index efc0b04..0000000
--- a/aux/workflow/TODOs.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-set -eu
-
-TLD="$(cat aux/tld.txt)"
-PROJECT_UC=
-while getopts 'n:N:m:o:' flag; do
- case "$flag" in
- n)
- PROJECT="$OPTARG"
- ;;
- N)
- PROJECT_UC="$OPTARG"
- ;;
- m)
- MAILING_LIST="$OPTARG"
- ;;
- o)
- OUTDIR="$OPTARG"
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${PROJECT:-}" '-n PROJECT'
-assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
-assert_arg "${OUTDIR:-}" '-o OUTDIR'
-
-if [ -z "${PROJECT_UC:-}" ]; then
- PROJECT_UC="$PROJECT"
-fi
-
-
-# shellcheck disable=1004
-IDS_REGEX='s:^## \(TODO\|DOING\|WAITING\|MEETING\|INACTIVE\|NEXT\|CANCELLED\|DONE\|WONTFIX\) \(.*\) {#\(.*\)}\(.*\)$:## <a href="#\3"><span class="\1">\1</span> \2</a>\4\
-<pre class="header-anchor" id="\3">#\3</pre>\
-:g'
-TAGS_REGEX='s|tag:\([a-z0-9-]*\)|<span class="tag">\1</span>|g'
-
-cat aux/workflow/preamble.md TODOs.md |
- sed \
- -e "s:@PROJECT_UC@:$PROJECT_UC:g" \
- -e "s:@PROJECT@:$PROJECT:g" \
- -e "s:@MAILING_LIST@:$MAILING_LIST:g" \
- -e "s:@TLD@:$TLD:g" \
- -e "$IDS_REGEX" \
- -e "$TAGS_REGEX" |
- pandoc \
- --toc \
- --highlight-style pygments \
- --toc-depth=2 \
- -s \
- --metadata title="$PROJECT_UC - TODOs" \
- --metadata lang=en \
- -r commonmark \
- -w html \
- -H aux/workflow/favicon.html \
- -H aux/workflow/style.css |
- sed \
- -e 's:<a><a:<a:g' \
- -e 's:</a></a>:</a>:g' \
- > "$OUTDIR/TODOs.html"
diff --git a/aux/workflow/assert-changelog.sh b/aux/workflow/assert-changelog.sh
deleted file mode 100755
index 4acc81b..0000000
--- a/aux/workflow/assert-changelog.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/sh
-set -eu
-
-TLD="$(cat aux/tld.txt)"
-PROJECT_UC=
-while getopts 'n:N:' flag; do
- case "$flag" in
- n)
- PROJECT="$OPTARG"
- ;;
- N)
- PROJECT_UC="$OPTARG"
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${PROJECT:-}" '-n PROJECT'
-
-if [ -z "${PROJECT_UC:-}" ]; then
- PROJECT_UC="$PROJECT"
-fi
-
-HOMEPAGE_LINK="Changelog for [$PROJECT_UC](https://$TLD/$PROJECT/en/)."
-
-if ! grep -qF "$HOMEPAGE_LINK" CHANGELOG.md; then
- echo "Missing link to homepage in CHANGELOG.md:" >&2
- echo "$HOMEPAGE_LINK"
- exit 1
-fi
-
-assert() {
- DATE="$1"
- VVERSION="$2"
- VERSION="${2#v}"
- CHANGELOG_ENTRY="$(printf \
- '# [%s](https://git.euandreh.xyz/%s/commit/?id=%s) - %s' \
- "$VERSION" "$PROJECT" "$VVERSION" "$DATE")"
- if ! grep -qF "$CHANGELOG_ENTRY" CHANGELOG.md; then
- echo "Missing '$CHANGELOG_ENTRY' entry from CHANGELOG.md" >&2
- exit 1
- fi
-}
-
-if [ -e .git ]; then
- for VVERSION in $(git tag); do
- DATE="$(git log -1 --format=%cd --date=short "$VVERSION")"
- assert "$DATE" "$VVERSION"
- done
-fi
-
-# "$@" represents a list of tags to be also included in the verification.
-for VVERSION in "$@"; do
- DATE="$(date '+%Y-%m-%d')"
- assert "$DATE" "$VVERSION"
-done
diff --git a/aux/workflow/assert-manpages.sh b/aux/workflow/assert-manpages.sh
deleted file mode 100755
index f9a6807..0000000
--- a/aux/workflow/assert-manpages.sh
+++ /dev/null
@@ -1,220 +0,0 @@
-#!/bin/sh
-set -eu
-
-TLD="$(cat aux/tld.txt)"
-. aux/lib.sh
-
-IN_PLACE=false
-while getopts 'l:n:m:i' flag; do
- case "$flag" in
- n)
- PROJECT="$OPTARG"
- ;;
- m)
- MAILING_LIST="$OPTARG"
- ;;
- i)
- IN_PLACE=true
- ;;
- l)
- LANGS="$OPTARG"
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${PROJECT:-}" '-n PROJECT'
-assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
-assert_arg "${LANGS:-}" '-l LANGS'
-
-
-EXPECTED_EN="$(mkstemp)"
-cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_EN"
-
-
-.SH AUTHORS
-
-.MT eu@euandre.org
-EuAndreh
-.ME
-and contributors.
-
-
-.SH BUGS
-
-.IP \(bu
-Report bugs to the
-.MT ~euandreh/$MAILING_LIST@lists.sr.ht
-mailing list
-.ME .
-Use the subject "\f(CR[$PROJECT] BUG or TASK:
-<description>\fR".
-.IP \(bu
-Browse bugs
-.UR https://$TLD/$PROJECT/TODOs.html
-online
-.UE .
-.IP \(bu
-.UR https://$TLD/$PROJECT/en/
-Homepage
-.UE .
-.IP \(bu
-.UR https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D
-Comments and discussions
-.UE .
-EOF
-
-EXPECTED_PT="$(mkstemp)"
-cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_PT"
-
-
-.SH AUTORES
-
-.MT eu@euandre.org
-EuAndreh
-.ME
-e colaboradores.
-
-
-.SH BUGS
-
-.IP \(bu
-Relate bugs na
-.MT ~euandreh/$MAILING_LIST@lists.sr.ht
-lista de discussão
-.ME .
-Use o assunto "\f(CR[$PROJECT] BUG ou TASK:
-<descrição>\fR".
-.IP \(bu
-Veja os bugs
-.UR https://$TLD/$PROJECT/TODOs.html
-online
-.UE .
-.IP \(bu
-.UR https://$TLD/$PROJECT/pt/
-Página inicial
-.UE .
-.IP \(bu
-.UR https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D
-Comentários e discussões
-.UE .
-EOF
-
-EXPECTED_FR="$(mkstemp)"
-cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_FR"
-
-
-.SH AUTEURS
-
-.MT eu@euandre.org
-EuAndreh
-.ME
-et les contributeurs.
-
-
-.SH BUGS
-
-.IP \(bu
-Soumettre un bogue dans la
-.MT ~euandreh/$MAILING_LIST@lists.sr.ht
-liste
-de diffusion
-.ME .
-Utilise le sujet "\f(CR[$PROJECT] BUG ou TASK:
-<description>\fR".
-.IP \(bu
-Parcourir les bogues
-.UR https://$TLD/$PROJECT/TODOs.html
-en
-ligne
-.UE .
-.IP \(bu
-.UR https://$TLD/$PROJECT/fr/
-Page d'accueil
-.UE .
-.IP \(bu
-.UR https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D
-Commentaires et discussions
-.UE .
-EOF
-
-EXPECTED_EO="$(mkstemp)"
-cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_EO"
-
-
-.SH AŬTOROJ
-
-.MT eu@euandre.org
-EuAndreh
-.ME
-kaj la kontribuuloj.
-
-
-.SH MISFUNKCIOJ
-
-.IP \(bu
-Raportu misfunkcioj al la
-.MT ~euandreh/$MAILING_LIST@lists.sr.ht
-dissendolisto
-.ME .
-Uzu la subjekton "\f(CR[$PROJECT] BUG aŭ TASK:
-<priskribo>\fR".
-.IP \(bu
-Foliumu misfunkcioj
-.UR https://$TLD/$PROJECT/TODOs.html
-rete
-.UE .
-.IP \(bu
-.UR https://$TLD/$PROJECT/eo/
-Ĉefpaĝo
-.UE .
-.IP \(bu
-.UR https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D
-Komentoj kaj diskutoj
-.UE .
-EOF
-
-
-for from_f in "$@"; do
- for lang in $LANGS; do
- case "$lang" in
- en)
- EXPECTED="$EXPECTED_EN"
- ;;
- pt)
- EXPECTED="$EXPECTED_PT"
- ;;
- fr)
- EXPECTED="$EXPECTED_FR"
- ;;
- eo)
- EXPECTED="$EXPECTED_EO"
- ;;
- *)
- printf 'Unsupported lang: %s\n' "$lang" >&2
- exit 2
- ;;
- esac
-
- f="$(echo "$from_f" | sed "s/\.en\./.$lang./")"
- if ! tail -n "$(wc -l < "$EXPECTED")" "$f" |
- diff - "$EXPECTED"; then
- echo "Missing metadata at the end of \"$f\" file"
- if [ "$IN_PLACE" = true ]; then
- cat "$EXPECTED" >> "$f"
- else
- exit 1
- fi
- fi
- done
-done
diff --git a/aux/workflow/assert-readme.sh b/aux/workflow/assert-readme.sh
deleted file mode 100755
index 1e49bfb..0000000
--- a/aux/workflow/assert-readme.sh
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/bin/sh
-set -eu
-
-if [ ! -e .git ]; then
- exit
-fi
-
-TLD="$(cat aux/tld.txt)"
-. aux/lib.sh
-
-while getopts 'n:m:' flag; do
- case "$flag" in
- n)
- PROJECT="$OPTARG"
- ;;
- m)
- MAILING_LIST="$OPTARG"
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${PROJECT:-}" '-n PROJECT'
-assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
-
-EXPECTED="$(mkstemp)"
-cat <<EOF >> "$EXPECTED"
-
-For running the extra development-only checks, run:
-
-\`\`\`shell
-$ make dev-check
-\`\`\`
-
-and for generating the documentation HTML and website, run:
-
-\`\`\`shell
-$ make public
-\`\`\`
-
-Send contributions to the [mailing list] via
-[\`git send-email\`](https://git-send-email.io/).
-
-
-## Links
-
-- [homepage](https://$TLD/$PROJECT/en/)
-- [source code](https://git.euandreh.xyz/$PROJECT/)
-- [bug tracking](https://$TLD/$PROJECT/TODOs.html)
-- [mailing list]
-- [CI logs](https://$TLD/$PROJECT/ci.html)
-- [CHANGELOG](https://$TLD/$PROJECT/en/CHANGELOG.html)
-
-[mailing list]: https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D
-EOF
-
-RELEASES_LIST="$(mkstemp)"
-add_release() {
- DATE="$1"
- VVERSION="$2"
- echo "- [$VVERSION](https://git.euandreh.xyz/$PROJECT/commit/?id=$VVERSION) [$PROJECT-$VVERSION.tar.gz](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$VVERSION.tar.gz) ([sig](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$VVERSION.tar.gz.asc)) - $DATE" >> "$RELEASES_LIST"
-}
-
-for VVERSION in $(git tag); do
- DATE="$(git log -1 --format=%cd --date=short "$VVERSION")"
- add_release "$DATE" "$VVERSION"
-done
-
-# "$@" represents a list of tags to be also included in the verification.
-for VVERSION in "$@"; do
- if ! git tag | grep -qF "$VVERSION"; then
- DATE="$(date '+%Y-%m-%d')"
- add_release "$DATE" "$VVERSION"
- fi
-done
-
-if [ -s "$RELEASES_LIST" ]; then
- printf '\n\n## Releases\n\n' >> "$EXPECTED"
- sort -r "$RELEASES_LIST" >> "$EXPECTED"
-fi
-
-cat <<EOF >> "$EXPECTED"
-
-
-## License
-
-The code is licensed under
-[GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later]
-(AGPL-3.0-or-later).
-
-[AGPL-3.0-or-later]: https://git.euandreh.xyz/$PROJECT/tree/COPYING
-EOF
-
-if ! tail -n "$(wc -l < "$EXPECTED")" README.md | diff - "$EXPECTED"; then
- echo 'Wrong metadata at the end of README.md file'
- echo "See expected content at: $EXPECTED"
- exit 1
-fi
diff --git a/aux/workflow/assert-spelling.sh b/aux/workflow/assert-spelling.sh
deleted file mode 100755
index 853fd5e..0000000
--- a/aux/workflow/assert-spelling.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/sh
-set -eu
-
-. aux/lib.sh
-
-sort_dicts() {
- for f in po/spelling/*.txt; do
- if LANG=POSIX sort "$f" | diff - "$f"; then
- echo continue
- fi
- if [ "$IN_PLACE" = true ]; then
- OUT="$(mkstemp)"
- LANG=POSIX sort "$f" | uniq > "$OUT"
- mv "$OUT" "$f"
- else
- printf 'The %s dictionary is unsorted.' "$f" >&2
- printf " To fix it, run:\n" >&2
- printf " sh aux/workflow/assert-spelling.sh -i" >&2
- exit 1
- fi
- done
-}
-
-IN_PLACE=false
-while getopts 'l:i' flag; do
- case "$flag" in
- l)
- LANGS="$OPTARG"
- ;;
- i)
- IN_PLACE=true
- sort_dicts
- exit
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND -1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${LANGS:-}" '-l LANGS'
-
-mkdir -p po/spelling
-eval "touch po/spelling/{international,$(echo "$LANGS" | tr ' ' ,)}.txt"
-
-get_lang() {
- grep lang=.. "$1" |
- head -n1 |
- awk '
- match($0, /lang="(..)"/) {
- print substr($0, RSTART+length("lang=\""), 2)
- }
- '
-}
-
-ACC="$(mkstemp)"
-for f in "$@"; do
- l="$(get_lang "$f")"
- CURR_DICT="$(mkstemp)"
- cat po/spelling/international.txt "po/spelling/$l.txt" |
- sort | uniq > "$CURR_DICT"
- hunspell -u3 -H -d "$l" -p "$CURR_DICT" "$f" | tee -a "$ACC" >&2
-done
-
-if [ -s "$ACC" ]; then
- printf '\n\tMispelled words detected by hunspell above.\n\n' >&2
- exit 1
-fi
-
-sort_dicts
diff --git a/aux/workflow/commonmark.sh b/aux/workflow/commonmark.sh
deleted file mode 100755
index 6f5e59b..0000000
--- a/aux/workflow/commonmark.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-set -eu
-
-while getopts 'N:t:l:' flag; do
- case "$flag" in
- N)
- PROJECT_UC="$OPTARG"
- ;;
- t)
- TITLE="$OPTARG"
- ;;
- l)
- THE_LANG="$OPTARG"
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${PROJECT_UC:-}" '-N PROJECT_UC'
-assert_arg "${TITLE:-}" '-t TITLE'
-assert_arg "${THE_LANG:-}" '-l THE_LANG'
-
-pandoc \
- --toc \
- --highlight-style pygments \
- --toc-depth=2 \
- -s \
- --metadata title="$PROJECT_UC - $TITLE" \
- --metadata "lang=$THE_LANG" \
- -r commonmark \
- -w html \
- -H aux/workflow/favicon.html
diff --git a/aux/workflow/favicon.html b/aux/workflow/favicon.html
deleted file mode 100644
index 8f9327c..0000000
--- a/aux/workflow/favicon.html
+++ /dev/null
@@ -1 +0,0 @@
-<link rel="icon" type="image/svg+xml" href="favicon.svg" />
diff --git a/aux/workflow/l10n.sh b/aux/workflow/l10n.sh
deleted file mode 100755
index 1002adc..0000000
--- a/aux/workflow/l10n.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-set -eu
-
-LANGS=
-while getopts 'l:L:' flag; do
- case "$flag" in
- l)
- LANGS="$OPTARG"
- ;;
- L)
- CONTRIBLANGS="$OPTARG"
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${LANGS:-}" '-l LANGS'
-
-for from_f in "$@"; do
- for lang in $LANGS ${CONTRIBLANGS:-}; do
- to_f="$(echo "$from_f" | sed "s/\.en\./.$lang./")"
- printf 'Generating %s...\n' "$to_f" >&2
- pofile="po/LC_MESSAGES/$from_f/$lang.po"
- mkdir -p "$(dirname "$pofile")"
-
- case "$from_f" in
- *.en.[1-9].in)
- po4a-updatepo -f man -m "$from_f" -p "$pofile"
- po4a-translate -f man -m "$from_f" \
- -p "$pofile" -l "$to_f" -k 0 -v >&2
- ;;
- *.en.html)
- po4a-updatepo -f xhtml -m "$from_f" -p "$pofile"
- po4a-translate -f xhtml -m "$from_f" \
- -p "$pofile" -l "$to_f" -k 0 -v >&2
- ;;
- *.en.md)
- touch "$pofile"
- md2po --include-codeblocks --quiet --save \
- --po-filepath "$pofile" < "$from_f"
- po2md --pofiles "$pofile" --save "$to_f" \
- --quiet < "$from_f"
- ;;
- *)
- echo "Unsupported file format: $from_f" >&2
- exit 2
- ;;
- esac
- done
-done
-
-end="\033[0m"
-yellowb="\033[1;33m"
-for lang in $LANGS; do
- # shellcheck disable=2044
- for pofile in $(find po/ -type f -name "$lang.po"); do
- if ! LANG=POSIX msgfmt --statistics "$pofile" 2>&1 |
- grep untranslated; then
- continue
- fi
- # shellcheck disable=2059
- printf "\n ${yellowb}WARNING${end}!" >&2
- printf "\n Missing translations for %s\n\n" "$pofile" >&2
- done
-done
diff --git a/aux/workflow/public.sh b/aux/workflow/public.sh
deleted file mode 100755
index 38613de..0000000
--- a/aux/workflow/public.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-set -eu
-
-PROJECT_UC=
-while getopts 'n:N:m:o:l:' flag; do
- case "$flag" in
- n)
- PROJECT="$OPTARG"
- ;;
- N)
- PROJECT_UC="$OPTARG"
- ;;
- m)
- MAILING_LIST="$OPTARG"
- ;;
- o)
- OUTDIR="$OPTARG"
- ;;
- l)
- LANGS="$OPTARG"
- ;;
- *)
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-assert_arg() {
- if [ -z "$1" ]; then
- echo "Missing $2" >&2
- exit 2
- fi
-}
-
-assert_arg "${PROJECT:-}" '-n PROJECT'
-assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
-assert_arg "${OUTDIR:-}" '-o OUTDIR'
-assert_arg "${LANGS:-}" '-l LANGS'
-PROJECT_UC="${PROJECT_UC:-$PROJECT}"
-
-mkdir -p "$OUTDIR"
-
-sh aux/workflow/TODOs.sh \
- -N "$PROJECT_UC" -n "$PROJECT" -m "$MAILING_LIST" -o "$OUTDIR"
-
-for lang in $LANGS; do
- mkdir -p "$OUTDIR/$lang/"
- sh aux/workflow/commonmark.sh -N "$PROJECT" -t README -l "$lang" \
- < "README.$lang.md" > "$OUTDIR/$lang/index.html"
- sh aux/workflow/commonmark.sh -N "$PROJECT" -t CHANGELOG -l "$lang" \
- < "CHANGELOG.$lang.md" > "$OUTDIR/$lang/CHANGELOG.html"
- ln -fs ../favicon.svg "$OUTDIR/$lang"
-done
-
-ln -fs en/index.html "$OUTDIR/index.html"
-cp aux/workflow/favicon.svg "$OUTDIR"
-
-sh aux/ci/report.sh -n "$PROJECT" -o "$OUTDIR"
diff --git a/aux/workflow/style.css b/aux/workflow/style.css
deleted file mode 100644
index d72991e..0000000
--- a/aux/workflow/style.css
+++ /dev/null
@@ -1,41 +0,0 @@
-<style>
- hr {
- background-color: #ccc;
- }
-
- .header-anchor {
- opacity: 0.5;
- }
-
- .tag {
- font-family: monospace;
- font-size: 70%;
- background-color: lightgray;
- padding: 3px;
- border-radius: 5px;
- }
-
- .TODO {
- color: brown;
- }
-
- .DOING {
- color: yellowgreen;
- }
-
- .WAITING, .MEETING {
- color: orange;
- }
-
- .INACTIVE {
- color: gray;
- }
-
- .NEXT {
- color: red;
- }
-
- .CANCELLED, .DONE, .WONTFIX {
- color: green;
- }
-</style>
diff --git a/doc/manpages.sh b/doc/manpages.sh
index 5c83a37..c88e23b 100755
--- a/doc/manpages.sh
+++ b/doc/manpages.sh
@@ -1,7 +1,7 @@
#!/bin/sh
set -eu
-while getopts 'iuHo:p:' flag; do
+while getopts 'iup:' flag; do
case "$flag" in
i)
ACTION=install
@@ -9,14 +9,8 @@ while getopts 'iuHo:p:' flag; do
u)
ACTION=uninstall
;;
- H)
- ACTION=html
- ;;
- o)
- OUTDIR="$OPTARG"
- ;;
p)
- MANPREFIX="$OPTARG"
+ MANDIR="$OPTARG"
;;
*)
exit 2
@@ -32,37 +26,30 @@ assert_arg() {
fi
}
-assert_arg "${ACTION:-}" '-[iuH] for choosing action'
+assert_arg "${ACTION:-}" '[-iu] for choosing action'
for f in "$@"; do
l="$(echo "$f" | awk -F. '{print $(NF-1)}')"
n="$(echo "$f" | awk -F. '{print $NF}')"
case "$ACTION" in
- html)
- assert_arg "${OUTDIR:-}" '-o OUTDIR'
- to_name="$(basename "${f%.$l.$n}.$n.html")"
- mkdir -p "$OUTDIR/$l"
- pandoc -s -r man -w html --metadata "lang=$l" \
- < "$f" > "$OUTDIR/$l/$to_name"
- ;;
install)
- assert_arg "${MANPREFIX:-}" '-p MANPREFIX'
- to_name="$(basename "${f%.$l.$n}.$n")"
- mkdir -p "$MANPREFIX/$l/man$n" "$MANPREFIX/man$n"
- cp "$f" "$MANPREFIX/$l/man$n/$to_name"
+ assert_arg "${MANDIR:-}" '-p MANDIR'
+ to_name="$(basename "${f%."$l"."$n"}.$n")"
+ mkdir -p "$MANDIR/$l/man$n" "$MANDIR/man$n"
+ cp "$f" "$MANDIR/$l/man$n/$to_name"
ln -fs "../en/man$n/$to_name" \
- "$MANPREFIX/man$n/$to_name"
+ "$MANDIR/man$n/$to_name"
;;
uninstall)
- assert_arg "${MANPREFIX:-}" '-p MANPREFIX'
- to_name="$(basename "${f%.$l.$n}.$n")"
+ assert_arg "${MANDIR:-}" '-p MANDIR'
+ to_name="$(basename "${f%."$l"."$n"}.$n")"
rm -f \
- "$MANPREFIX/$l/man$n/$to_name" \
- "$MANPREFIX/man$n/$to_name"
+ "$MANDIR/$l/man$n/$to_name" \
+ "$MANDIR/man$n/$to_name"
;;
*)
echo "Bad ACTION: $ACTION"
- exit 1
+ exit 2
;;
esac
done
diff --git a/doc/remembering.eo.1.in b/doc/remembering.eo.1.in
index 8ad9e8c..76b179d 100644
--- a/doc/remembering.eo.1.in
+++ b/doc/remembering.eo.1.in
@@ -6,17 +6,17 @@
.TH REMEMBERING 1 @DATE@ "remembering @VERSION@"
-.SH NOMO
+.SH NAME
remembering \- sort list from \fISTDIN\fP using past choices as weight.
-.SH RESUMO
+.SH SYNOPSYS
\fBremembering\fP \fB\-p\fP \fIPROFILE\fP \fB\-c\fP \fICOMMAND\fP
-.SH PRISKRIBO
+.SH DESCRIPTION
\fBremembering\fP takes a command that chooses an option as its behaviour, such
as \fBfzf\fP(1) or \fBdmenu\fP(1), and \fIremembers\fP what option is chosen, and as
@@ -26,7 +26,7 @@ it is used, will put the most used choices at the beginning of the list.
be sorted.
-.SH EBLOJ
+.SH OPTIONS
.TP
\fB\-c\fP \fICOMMAND\fP
@@ -42,10 +42,10 @@ Show short help text.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Montras versian numeron.
+Show version number.
-.SH EKZEMPLOJ
+.SH EXAMPLES
List current directory and feed it to \fBfzf\fP(1) via \fBremembering\fP:
@@ -194,38 +194,38 @@ you can give to the \fB\-c\fP option anything that reads from \fISTDIN\fP, picks
line and writes to \fBSTDOUT\fP.
-.SH "VIDU ANKAŬ"
+.SH "SEE ALSO"
\fBremembering\fP(5)
-.SH AŬTOROJ
+.SH AUTHORS
.MT eu@euandre.org
EuAndreh
.ME
-kaj la kontribuuloj.
+and contributors.
-.SH MISFUNKCIOJ
+.SH BUGS
.IP \(bu
-Raportu misfunkcioj al la
+Report bugs to the
.MT ~euandreh/public\-inbox@lists.sr.ht
-dissendolisto
+mailing list
.ME .
-Uzu la subjekton "\f(CR[remembering] BUG aŭ TASK:
-<priskribo>\fR".
+Use the subject "\f(CR[remembering] BUG or TASK:
+<description>\fR".
.IP \(bu
-Foliumu misfunkcioj
+Browse bugs
.UR https://euandreh.xyz/remembering/TODOs.html
-rete
+online
.UE .
.IP \(bu
-.UR https://euandreh.xyz/remembering/eo/
-Ĉefpaĝo
+.UR https://euandreh.xyz/remembering/en/
+Homepage
.UE .
.IP \(bu
.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
-Komentoj kaj diskutoj
+Comments and discussions
.UE .
diff --git a/doc/remembering.eo.5.in b/doc/remembering.eo.5.in
index f3f550f..3f78c56 100644
--- a/doc/remembering.eo.5.in
+++ b/doc/remembering.eo.5.in
@@ -6,7 +6,7 @@
.TH REMEMBERING 5 @DATE@ "remembering @VERSION@"
-.SH NOMO
+.SH NAME
remembering \- format of the \fIPROFILE\fP text file.
@@ -69,38 +69,38 @@ The current raking algorithm increments entries as a simple counter. Every
time an entry is picked, its ranked is incremented in the \fIPROFILE\fP.
-.SH "VIDU ANKAŬ"
+.SH "SEE ALSO"
\fBremembering\fP(1)
-.SH AŬTOROJ
+.SH AUTHORS
.MT eu@euandre.org
EuAndreh
.ME
-kaj la kontribuuloj.
+and contributors.
-.SH MISFUNKCIOJ
+.SH BUGS
.IP \(bu
-Raportu misfunkcioj al la
+Report bugs to the
.MT ~euandreh/public\-inbox@lists.sr.ht
-dissendolisto
+mailing list
.ME .
-Uzu la subjekton "\f(CR[remembering] BUG aŭ TASK:
-<priskribo>\fR".
+Use the subject "\f(CR[remembering] BUG or TASK:
+<description>\fR".
.IP \(bu
-Foliumu misfunkcioj
+Browse bugs
.UR https://euandreh.xyz/remembering/TODOs.html
-rete
+online
.UE .
.IP \(bu
-.UR https://euandreh.xyz/remembering/eo/
-Ĉefpaĝo
+.UR https://euandreh.xyz/remembering/en/
+Homepage
.UE .
.IP \(bu
.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
-Komentoj kaj diskutoj
+Comments and discussions
.UE .
diff --git a/doc/remembering.es.1.in b/doc/remembering.es.1.in
index e69de29..76b179d 100644
--- a/doc/remembering.es.1.in
+++ b/doc/remembering.es.1.in
@@ -0,0 +1,231 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH REMEMBERING 1 @DATE@ "remembering @VERSION@"
+
+
+.SH NAME
+
+remembering \- sort list from \fISTDIN\fP using past choices as weight.
+
+
+.SH SYNOPSYS
+
+\fBremembering\fP \fB\-p\fP \fIPROFILE\fP \fB\-c\fP \fICOMMAND\fP
+
+
+.SH DESCRIPTION
+
+\fBremembering\fP takes a command that chooses an option as its behaviour, such
+as \fBfzf\fP(1) or \fBdmenu\fP(1), and \fIremembers\fP what option is chosen, and as
+it is used, will put the most used choices at the beginning of the list.
+
+\fBremembering\fP reads from STDIN and writes to STDOUT. It expects STDIN to
+be sorted.
+
+
+.SH OPTIONS
+
+.TP
+\fB\-c\fP \fICOMMAND\fP
+The \fICOMMAND\fP to be executed, reading from standard input (STDIN).
+
+.TP
+\fB\-p\fP \fIPROFILE\fP
+The name of the \fIPROFILE\fP where to look up and store raking data.
+
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Show short help text.
+
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Show version number.
+
+
+.SH EXAMPLES
+
+List current directory and feed it to \fBfzf\fP(1) via \fBremembering\fP:
+
+.RS
+.nf
+$ ls | remembering \-p fzf\-ls \-c fzf
+.fi
+.RE
+
+
+Lists all executables available in \fI$PATH\fP, and feed those to \fBdmenu\fP(1)
+via \fBremembering\fP, and execute with \fBsh\fP(1) the choice picked:
+
+.RS
+.nf
+$ dmenu_path | remembering \-p dmenu\-exe \-c 'dmenu' | sh
+.fi
+.RE
+
+.P
+Successive invocations will put the frequent choices at the beginning.
+
+.SS "Simulation of an interactive session"
+
+Below is a simulation of an interactive session, comparing the usage of
+plain \fBfzf\fP(1) against composing it with \fBremembering\fP:
+
+.RS
+.nf
+$ mkdir \-p example/
+$ cd example/
+$ touch a b c d e
+$ ls
+a b c d e
+$ ls | fzf
+.fi
+.RE
+
+We begin creating a sample directory called "\f(CRexample/\fR", we cd into
+it and create 5 empty files: a, b, c, d and e.
+
+\f(CRls\fR can list the directory for us, in this case in alphabetical
+order.
+
+When we pipe the output of \f(CRls\fR into \fBfzf\fP(1), we are give given its
+prompt to pick one option:
+
+.RS
+.nf
+ e
+ d
+ c
+ b
+> a
+ 5/5
+>
+.fi
+.RE
+
+Here \fBfzf\fP(1) lists the items it gets from \fISTDIN\fP in the order that it
+was given, and starts at the first one, "a".
+
+Once we type "d" and press return, the output of \fBfzf\fP(1) is the choice:
+
+.RS
+.nf
+$ ls | fzf
+d
+.fi
+.RE
+
+Now if we run the same command again, we'll be given the same options, in
+the same order:
+
+.RS
+.nf
+$ ls | fzf
+
+ e
+ d
+ c
+ b
+> a
+ 5/5
+>
+
+$ ls | fzf
+d
+.fi
+.RE
+
+\fBfzf\fP(1) is doing what it is told to: making a prompt with the options
+given to it from \fISTDIN\fP, in the order it was given.
+
+In order to have our past choices show up in the beginning of the list, we
+can compose \fBfzf\fP(1) with \fBremembering\fP:
+
+.RS
+.nf
+$ ls | remembering \-p tutorial\-example \-c 'fzf'
+
+ e
+ d
+ c
+ b
+> a
+ 5/5
+>
+
+$ ls | remembering \-p tutorial\-example \-c 'fzf'
+d
+.fi
+.RE
+
+So far we get the exact same behaviour, but saying extra things. We tell
+\fBremembering\fP that we want this specific \fIPROFILE\fP to be called
+"\f(CRtutorial\-example\fR", and we give \fBremembering\fP the \f(CR'fzf'\fR
+command to be ran.
+
+From now on if we run the exact same command again, \fBremembering\fP will
+\fIremember\fP that the last choice was "d", and put it in the beginning of the
+list, which \fBfzf\fP(1) happily displays in the order it was given:
+
+.RS
+.nf
+$ ls | remembering \-p tutorial\-example \-c 'fzf'
+
+ e
+ c
+ b
+ a
+> d
+ 5/5
+>
+
+$ ls | remembering \-p tutorial\-example \-c 'fzf'
+d
+.fi
+.RE
+
+This time the "d" option was already the first one, and we can just press
+return to get it as the output value from the command.
+
+This example used \fBfzf\fP(1) as the \fICOMMAND\fP given to \fBremembering\fP, but
+you can give to the \fB\-c\fP option anything that reads from \fISTDIN\fP, picks a
+line and writes to \fBSTDOUT\fP.
+
+
+.SH "SEE ALSO"
+
+\fBremembering\fP(5)
+
+
+.SH AUTHORS
+
+.MT eu@euandre.org
+EuAndreh
+.ME
+and contributors.
+
+
+.SH BUGS
+
+.IP \(bu
+Report bugs to the
+.MT ~euandreh/public\-inbox@lists.sr.ht
+mailing list
+.ME .
+Use the subject "\f(CR[remembering] BUG or TASK:
+<description>\fR".
+.IP \(bu
+Browse bugs
+.UR https://euandreh.xyz/remembering/TODOs.html
+online
+.UE .
+.IP \(bu
+.UR https://euandreh.xyz/remembering/en/
+Homepage
+.UE .
+.IP \(bu
+.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
+Comments and discussions
+.UE .
diff --git a/doc/remembering.es.5.in b/doc/remembering.es.5.in
index e69de29..3f78c56 100644
--- a/doc/remembering.es.5.in
+++ b/doc/remembering.es.5.in
@@ -0,0 +1,106 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH REMEMBERING 5 @DATE@ "remembering @VERSION@"
+
+
+.SH NAME
+
+remembering \- format of the \fIPROFILE\fP text file.
+
+
+.SH PROFILE
+
+The \fIPROFILE\fP is a text file, stored on
+\f(CR$XDG_DATA_HOME/remembering/profile\-name\fR if \f(CR$XDG_DATA_HOME\fR is
+defined. Otherwise, it lives in
+\f(CR~/.local/share/remembering/profile\-name\fR.
+
+Each line of the \fIPROFILE\fP contains three pieces of information:
+
+.RS
+.IP 1
+the \fBrank\fP of the current entry;
+.IP 2
+the \f(CR:\fR separator;
+.IP 3
+the \fBentry\fP itself.
+.RE
+
+The \fBrank\fP is a number, and the \fBentry\fP is all the text until the end of
+the line after the \f(CR:\fR separator:
+
+.RS
+.nf
+0:an entry
+0:banana
+0:entry
+0:something
+0:zzz
+.fi
+.RE
+
+Above is an example of a \fIPROFILE\fP file where all the entries have the
+default \fBrank\fP value: \fB0\fP.
+
+If the \fICOMMAND\fP runs and chooses \f(CRbanana\fR, the new \fIPROFILE\fP will
+be:
+
+.RS
+.nf
+0:an entry
+1:banana
+0:entry
+0:something
+0:zzz
+.fi
+.RE
+
+Now the next time the \fICOMMAND\fP runs it will get \f(CRbanana\fR at the
+beginning of the list, and as new picks happen their weight will increase,
+and will keep going up in priority.
+
+The entries of the \fIPROFILE\fP are created and kept sorted.
+\fBremembering\fP(1) expects to always find sorted entries in the \fIPROFILE\fP.
+
+The current raking algorithm increments entries as a simple counter. Every
+time an entry is picked, its ranked is incremented in the \fIPROFILE\fP.
+
+
+.SH "SEE ALSO"
+
+\fBremembering\fP(1)
+
+
+.SH AUTHORS
+
+.MT eu@euandre.org
+EuAndreh
+.ME
+and contributors.
+
+
+.SH BUGS
+
+.IP \(bu
+Report bugs to the
+.MT ~euandreh/public\-inbox@lists.sr.ht
+mailing list
+.ME .
+Use the subject "\f(CR[remembering] BUG or TASK:
+<description>\fR".
+.IP \(bu
+Browse bugs
+.UR https://euandreh.xyz/remembering/TODOs.html
+online
+.UE .
+.IP \(bu
+.UR https://euandreh.xyz/remembering/en/
+Homepage
+.UE .
+.IP \(bu
+.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
+Comments and discussions
+.UE .
diff --git a/doc/remembering.fr.1.in b/doc/remembering.fr.1.in
index f14bd96..76b179d 100644
--- a/doc/remembering.fr.1.in
+++ b/doc/remembering.fr.1.in
@@ -6,12 +6,12 @@
.TH REMEMBERING 1 @DATE@ "remembering @VERSION@"
-.SH NOM
+.SH NAME
remembering \- sort list from \fISTDIN\fP using past choices as weight.
-.SH SYNOPSIS
+.SH SYNOPSYS
\fBremembering\fP \fB\-p\fP \fIPROFILE\fP \fB\-c\fP \fICOMMAND\fP
@@ -42,7 +42,7 @@ Show short help text.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Imprime le numeró de version.
+Show version number.
.SH EXAMPLES
@@ -194,40 +194,38 @@ you can give to the \fB\-c\fP option anything that reads from \fISTDIN\fP, picks
line and writes to \fBSTDOUT\fP.
-.SH "VOIR AUSSI"
+.SH "SEE ALSO"
\fBremembering\fP(5)
-.SH AUTEURS
+.SH AUTHORS
.MT eu@euandre.org
EuAndreh
.ME
-et les contributeurs.
+and contributors.
.SH BUGS
.IP \(bu
-Soumettre un bogue dans la
+Report bugs to the
.MT ~euandreh/public\-inbox@lists.sr.ht
-liste
-de diffusion
+mailing list
.ME .
-Utilise le sujet "\f(CR[remembering] BUG ou TASK:
+Use the subject "\f(CR[remembering] BUG or TASK:
<description>\fR".
.IP \(bu
-Parcourir les bogues
+Browse bugs
.UR https://euandreh.xyz/remembering/TODOs.html
-en
-ligne
+online
.UE .
.IP \(bu
-.UR https://euandreh.xyz/remembering/fr/
-Page d'accueil
+.UR https://euandreh.xyz/remembering/en/
+Homepage
.UE .
.IP \(bu
.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
-Commentaires et discussions
+Comments and discussions
.UE .
diff --git a/doc/remembering.fr.5.in b/doc/remembering.fr.5.in
index 9ddeb42..3f78c56 100644
--- a/doc/remembering.fr.5.in
+++ b/doc/remembering.fr.5.in
@@ -6,7 +6,7 @@
.TH REMEMBERING 5 @DATE@ "remembering @VERSION@"
-.SH NOM
+.SH NAME
remembering \- format of the \fIPROFILE\fP text file.
@@ -69,40 +69,38 @@ The current raking algorithm increments entries as a simple counter. Every
time an entry is picked, its ranked is incremented in the \fIPROFILE\fP.
-.SH "VOIR AUSSI"
+.SH "SEE ALSO"
\fBremembering\fP(1)
-.SH AUTEURS
+.SH AUTHORS
.MT eu@euandre.org
EuAndreh
.ME
-et les contributeurs.
+and contributors.
.SH BUGS
.IP \(bu
-Soumettre un bogue dans la
+Report bugs to the
.MT ~euandreh/public\-inbox@lists.sr.ht
-liste
-de diffusion
+mailing list
.ME .
-Utilise le sujet "\f(CR[remembering] BUG ou TASK:
+Use the subject "\f(CR[remembering] BUG or TASK:
<description>\fR".
.IP \(bu
-Parcourir les bogues
+Browse bugs
.UR https://euandreh.xyz/remembering/TODOs.html
-en
-ligne
+online
.UE .
.IP \(bu
-.UR https://euandreh.xyz/remembering/fr/
-Page d'accueil
+.UR https://euandreh.xyz/remembering/en/
+Homepage
.UE .
.IP \(bu
.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
-Commentaires et discussions
+Comments and discussions
.UE .
diff --git a/doc/remembering.pt.1.in b/doc/remembering.pt.1.in
index 88a432a..76b179d 100644
--- a/doc/remembering.pt.1.in
+++ b/doc/remembering.pt.1.in
@@ -6,17 +6,17 @@
.TH REMEMBERING 1 @DATE@ "remembering @VERSION@"
-.SH NOME
+.SH NAME
remembering \- sort list from \fISTDIN\fP using past choices as weight.
-.SH SINOPSE
+.SH SYNOPSYS
\fBremembering\fP \fB\-p\fP \fIPROFILE\fP \fB\-c\fP \fICOMMAND\fP
-.SH DESCRIÇÃO
+.SH DESCRIPTION
\fBremembering\fP takes a command that chooses an option as its behaviour, such
as \fBfzf\fP(1) or \fBdmenu\fP(1), and \fIremembers\fP what option is chosen, and as
@@ -26,7 +26,7 @@ it is used, will put the most used choices at the beginning of the list.
be sorted.
-.SH OPÇÔES
+.SH OPTIONS
.TP
\fB\-c\fP \fICOMMAND\fP
@@ -42,10 +42,10 @@ Show short help text.
.TP
\fB\-V\fP, \fB\-\-version\fP
-Imprime o número da versão.
+Show version number.
-.SH EXEMPLOS
+.SH EXAMPLES
List current directory and feed it to \fBfzf\fP(1) via \fBremembering\fP:
@@ -194,38 +194,38 @@ you can give to the \fB\-c\fP option anything that reads from \fISTDIN\fP, picks
line and writes to \fBSTDOUT\fP.
-.SH "VEJA TAMBÉM"
+.SH "SEE ALSO"
\fBremembering\fP(5)
-.SH AUTORES
+.SH AUTHORS
.MT eu@euandre.org
EuAndreh
.ME
-e colaboradores.
+and contributors.
.SH BUGS
.IP \(bu
-Relate bugs na
+Report bugs to the
.MT ~euandreh/public\-inbox@lists.sr.ht
-lista de discussão
+mailing list
.ME .
-Use o assunto "\f(CR[remembering] BUG ou TASK:
-<descrição>\fR".
+Use the subject "\f(CR[remembering] BUG or TASK:
+<description>\fR".
.IP \(bu
-Veja os bugs
+Browse bugs
.UR https://euandreh.xyz/remembering/TODOs.html
online
.UE .
.IP \(bu
-.UR https://euandreh.xyz/remembering/pt/
-Página inicial
+.UR https://euandreh.xyz/remembering/en/
+Homepage
.UE .
.IP \(bu
.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
-Comentários e discussões
+Comments and discussions
.UE .
diff --git a/doc/remembering.pt.5.in b/doc/remembering.pt.5.in
index c37c893..3f78c56 100644
--- a/doc/remembering.pt.5.in
+++ b/doc/remembering.pt.5.in
@@ -6,7 +6,7 @@
.TH REMEMBERING 5 @DATE@ "remembering @VERSION@"
-.SH NOME
+.SH NAME
remembering \- format of the \fIPROFILE\fP text file.
@@ -69,38 +69,38 @@ The current raking algorithm increments entries as a simple counter. Every
time an entry is picked, its ranked is incremented in the \fIPROFILE\fP.
-.SH "VEJA TAMBÉM"
+.SH "SEE ALSO"
\fBremembering\fP(1)
-.SH AUTORES
+.SH AUTHORS
.MT eu@euandre.org
EuAndreh
.ME
-e colaboradores.
+and contributors.
.SH BUGS
.IP \(bu
-Relate bugs na
+Report bugs to the
.MT ~euandreh/public\-inbox@lists.sr.ht
-lista de discussão
+mailing list
.ME .
-Use o assunto "\f(CR[remembering] BUG ou TASK:
-<descrição>\fR".
+Use the subject "\f(CR[remembering] BUG or TASK:
+<description>\fR".
.IP \(bu
-Veja os bugs
+Browse bugs
.UR https://euandreh.xyz/remembering/TODOs.html
online
.UE .
.IP \(bu
-.UR https://euandreh.xyz/remembering/pt/
-Página inicial
+.UR https://euandreh.xyz/remembering/en/
+Homepage
.UE .
.IP \(bu
.UR https://lists.sr.ht/~euandreh/public\-inbox?search=%5Bremembering%5D
-Comentários e discussões
+Comments and discussions
.UE .
diff --git a/po/LC_MESSAGES/CHANGELOG.en.md/eo.po b/po/LC_MESSAGES/CHANGELOG.en.md/eo.po
deleted file mode 100644
index 4d5de35..0000000
--- a/po/LC_MESSAGES/CHANGELOG.en.md/eo.po
+++ /dev/null
@@ -1,159 +0,0 @@
-#
-msgid ""
-msgstr ""
-
-msgid "Changelog for [remembering](https://euandreh.xyz/remembering/en/)."
-msgstr ""
-
-msgid "Unreleased"
-msgstr ""
-
-msgid "Changed"
-msgstr ""
-
-msgid ""
-"When remembering encounters an unrecognized option, it now exits with 2 "
-"instead of ignoring it."
-msgstr ""
-
-msgid ""
-"[0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) - 2021-02-23"
-msgstr ""
-
-msgid "Removed"
-msgstr ""
-
-msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
-msgstr ""
-
-msgid ""
-"[0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) - 2021-02-21"
-msgstr ""
-
-msgid "Added"
-msgstr ""
-
-msgid "Add trivial `./configure` script."
-msgstr ""
-
-msgid "Assume standard input is already sorted for faster processing."
-msgstr ""
-
-msgid ""
-"[0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) - 2021-01-26"
-msgstr ""
-
-msgid "Fixed"
-msgstr ""
-
-msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
-msgstr ""
-
-msgid ""
-"[0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) - 2021-01-26"
-msgstr ""
-
-msgid "Allow names with spaces."
-msgstr ""
-
-msgid ""
-"[0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) - 2021-01-26"
-msgstr ""
-
-msgid "Initial public release."
-msgstr ""
-
-msgid "Use of `$XDG_DATA_HOME`"
-msgstr ""
-
-msgid ""
-"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
-"appends a trailing `/remembering` to it instead of start writing files to "
-"where the environment variable points to."
-msgstr ""
-
-msgid "Exit code"
-msgstr ""
-
-msgid ""
-"[0.3.0](https://git.euandreh.xyz/remembering/commit/?id=v0.3.0) - 2022-11-25"
-msgstr ""
-
-msgid "Inference of profiles"
-msgstr ""
-
-msgid "Remove `-c COMMAND` option"
-msgstr ""
-
-msgid ""
-"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
-"commands to be ran as the \"rest\" argument to `remembering`, stored in "
-"`$@`. The usage changes from:"
-msgstr ""
-
-msgid "$ remembering -p a-profile -c 'command $arg1 arg2'\n"
-msgstr ""
-
-msgid "to:"
-msgstr ""
-
-msgid "$ remembering -p a-profile -- command $arg1 arg2\n"
-msgstr ""
-
-msgid "The upsides are:"
-msgstr ""
-
-msgid ""
-"no need to worry about nested quotes: requiring a `-c COMMAND` option forced"
-" one to wrap the command and args inside quotes, and the quotation used "
-"influenced the command to be ran;"
-msgstr ""
-
-msgid ""
-"one less option to know about: instead of having to remember what is the "
-"specific letter used for the command, just prefix the command with "
-"`remembering`;"
-msgstr ""
-
-msgid ""
-"simpler and more powerful composition: wrapping commands without quoting "
-"them allows one to use many of such tools in combination:"
-msgstr ""
-
-msgid "$ time nice -n10 timeout 3 remembering sleep 5\n"
-msgstr ""
-
-msgid "The equivalent with `-c COMMAND` would be:"
-msgstr ""
-
-msgid "$ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep 5\"'\"'\n"
-msgstr ""
-
-msgid ""
-"But instead of alternating between single and double quotes, properly "
-"quoting them at each level."
-msgstr ""
-
-msgid "Improve speed"
-msgstr ""
-
-msgid "Rewrite to make it faster"
-msgstr ""
-
-msgid ""
-"This is in conformance with the [XDG Base Directory "
-"Specification](https://specifications.freedesktop.org/basedir-spec/basedir-"
-"spec-latest.html)."
-msgstr ""
-
-#~ msgid ""
-#~ "This is in conformance with the [XDG Base Directory Specification][xdg]."
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid ""
-#~ "[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
-#~ "latest.html"
-#~ msgstr ""
-#~ "[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
-#~ "latest.html"
diff --git a/po/LC_MESSAGES/CHANGELOG.en.md/fr.po b/po/LC_MESSAGES/CHANGELOG.en.md/fr.po
deleted file mode 100644
index 4d5de35..0000000
--- a/po/LC_MESSAGES/CHANGELOG.en.md/fr.po
+++ /dev/null
@@ -1,159 +0,0 @@
-#
-msgid ""
-msgstr ""
-
-msgid "Changelog for [remembering](https://euandreh.xyz/remembering/en/)."
-msgstr ""
-
-msgid "Unreleased"
-msgstr ""
-
-msgid "Changed"
-msgstr ""
-
-msgid ""
-"When remembering encounters an unrecognized option, it now exits with 2 "
-"instead of ignoring it."
-msgstr ""
-
-msgid ""
-"[0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) - 2021-02-23"
-msgstr ""
-
-msgid "Removed"
-msgstr ""
-
-msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
-msgstr ""
-
-msgid ""
-"[0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) - 2021-02-21"
-msgstr ""
-
-msgid "Added"
-msgstr ""
-
-msgid "Add trivial `./configure` script."
-msgstr ""
-
-msgid "Assume standard input is already sorted for faster processing."
-msgstr ""
-
-msgid ""
-"[0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) - 2021-01-26"
-msgstr ""
-
-msgid "Fixed"
-msgstr ""
-
-msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
-msgstr ""
-
-msgid ""
-"[0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) - 2021-01-26"
-msgstr ""
-
-msgid "Allow names with spaces."
-msgstr ""
-
-msgid ""
-"[0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) - 2021-01-26"
-msgstr ""
-
-msgid "Initial public release."
-msgstr ""
-
-msgid "Use of `$XDG_DATA_HOME`"
-msgstr ""
-
-msgid ""
-"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
-"appends a trailing `/remembering` to it instead of start writing files to "
-"where the environment variable points to."
-msgstr ""
-
-msgid "Exit code"
-msgstr ""
-
-msgid ""
-"[0.3.0](https://git.euandreh.xyz/remembering/commit/?id=v0.3.0) - 2022-11-25"
-msgstr ""
-
-msgid "Inference of profiles"
-msgstr ""
-
-msgid "Remove `-c COMMAND` option"
-msgstr ""
-
-msgid ""
-"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
-"commands to be ran as the \"rest\" argument to `remembering`, stored in "
-"`$@`. The usage changes from:"
-msgstr ""
-
-msgid "$ remembering -p a-profile -c 'command $arg1 arg2'\n"
-msgstr ""
-
-msgid "to:"
-msgstr ""
-
-msgid "$ remembering -p a-profile -- command $arg1 arg2\n"
-msgstr ""
-
-msgid "The upsides are:"
-msgstr ""
-
-msgid ""
-"no need to worry about nested quotes: requiring a `-c COMMAND` option forced"
-" one to wrap the command and args inside quotes, and the quotation used "
-"influenced the command to be ran;"
-msgstr ""
-
-msgid ""
-"one less option to know about: instead of having to remember what is the "
-"specific letter used for the command, just prefix the command with "
-"`remembering`;"
-msgstr ""
-
-msgid ""
-"simpler and more powerful composition: wrapping commands without quoting "
-"them allows one to use many of such tools in combination:"
-msgstr ""
-
-msgid "$ time nice -n10 timeout 3 remembering sleep 5\n"
-msgstr ""
-
-msgid "The equivalent with `-c COMMAND` would be:"
-msgstr ""
-
-msgid "$ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep 5\"'\"'\n"
-msgstr ""
-
-msgid ""
-"But instead of alternating between single and double quotes, properly "
-"quoting them at each level."
-msgstr ""
-
-msgid "Improve speed"
-msgstr ""
-
-msgid "Rewrite to make it faster"
-msgstr ""
-
-msgid ""
-"This is in conformance with the [XDG Base Directory "
-"Specification](https://specifications.freedesktop.org/basedir-spec/basedir-"
-"spec-latest.html)."
-msgstr ""
-
-#~ msgid ""
-#~ "This is in conformance with the [XDG Base Directory Specification][xdg]."
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid ""
-#~ "[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
-#~ "latest.html"
-#~ msgstr ""
-#~ "[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
-#~ "latest.html"
diff --git a/po/LC_MESSAGES/CHANGELOG.en.md/pt.po b/po/LC_MESSAGES/CHANGELOG.en.md/pt.po
deleted file mode 100644
index 4d5de35..0000000
--- a/po/LC_MESSAGES/CHANGELOG.en.md/pt.po
+++ /dev/null
@@ -1,159 +0,0 @@
-#
-msgid ""
-msgstr ""
-
-msgid "Changelog for [remembering](https://euandreh.xyz/remembering/en/)."
-msgstr ""
-
-msgid "Unreleased"
-msgstr ""
-
-msgid "Changed"
-msgstr ""
-
-msgid ""
-"When remembering encounters an unrecognized option, it now exits with 2 "
-"instead of ignoring it."
-msgstr ""
-
-msgid ""
-"[0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) - 2021-02-23"
-msgstr ""
-
-msgid "Removed"
-msgstr ""
-
-msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
-msgstr ""
-
-msgid ""
-"[0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) - 2021-02-21"
-msgstr ""
-
-msgid "Added"
-msgstr ""
-
-msgid "Add trivial `./configure` script."
-msgstr ""
-
-msgid "Assume standard input is already sorted for faster processing."
-msgstr ""
-
-msgid ""
-"[0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) - 2021-01-26"
-msgstr ""
-
-msgid "Fixed"
-msgstr ""
-
-msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
-msgstr ""
-
-msgid ""
-"[0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) - 2021-01-26"
-msgstr ""
-
-msgid "Allow names with spaces."
-msgstr ""
-
-msgid ""
-"[0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) - 2021-01-26"
-msgstr ""
-
-msgid "Initial public release."
-msgstr ""
-
-msgid "Use of `$XDG_DATA_HOME`"
-msgstr ""
-
-msgid ""
-"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
-"appends a trailing `/remembering` to it instead of start writing files to "
-"where the environment variable points to."
-msgstr ""
-
-msgid "Exit code"
-msgstr ""
-
-msgid ""
-"[0.3.0](https://git.euandreh.xyz/remembering/commit/?id=v0.3.0) - 2022-11-25"
-msgstr ""
-
-msgid "Inference of profiles"
-msgstr ""
-
-msgid "Remove `-c COMMAND` option"
-msgstr ""
-
-msgid ""
-"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
-"commands to be ran as the \"rest\" argument to `remembering`, stored in "
-"`$@`. The usage changes from:"
-msgstr ""
-
-msgid "$ remembering -p a-profile -c 'command $arg1 arg2'\n"
-msgstr ""
-
-msgid "to:"
-msgstr ""
-
-msgid "$ remembering -p a-profile -- command $arg1 arg2\n"
-msgstr ""
-
-msgid "The upsides are:"
-msgstr ""
-
-msgid ""
-"no need to worry about nested quotes: requiring a `-c COMMAND` option forced"
-" one to wrap the command and args inside quotes, and the quotation used "
-"influenced the command to be ran;"
-msgstr ""
-
-msgid ""
-"one less option to know about: instead of having to remember what is the "
-"specific letter used for the command, just prefix the command with "
-"`remembering`;"
-msgstr ""
-
-msgid ""
-"simpler and more powerful composition: wrapping commands without quoting "
-"them allows one to use many of such tools in combination:"
-msgstr ""
-
-msgid "$ time nice -n10 timeout 3 remembering sleep 5\n"
-msgstr ""
-
-msgid "The equivalent with `-c COMMAND` would be:"
-msgstr ""
-
-msgid "$ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep 5\"'\"'\n"
-msgstr ""
-
-msgid ""
-"But instead of alternating between single and double quotes, properly "
-"quoting them at each level."
-msgstr ""
-
-msgid "Improve speed"
-msgstr ""
-
-msgid "Rewrite to make it faster"
-msgstr ""
-
-msgid ""
-"This is in conformance with the [XDG Base Directory "
-"Specification](https://specifications.freedesktop.org/basedir-spec/basedir-"
-"spec-latest.html)."
-msgstr ""
-
-#~ msgid ""
-#~ "This is in conformance with the [XDG Base Directory Specification][xdg]."
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid ""
-#~ "[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
-#~ "latest.html"
-#~ msgstr ""
-#~ "[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
-#~ "latest.html"
diff --git a/po/LC_MESSAGES/README.en.md/eo.po b/po/LC_MESSAGES/README.en.md/eo.po
deleted file mode 100644
index 04b5991..0000000
--- a/po/LC_MESSAGES/README.en.md/eo.po
+++ /dev/null
@@ -1,399 +0,0 @@
-#
-msgid ""
-msgstr ""
-
-msgid "remembering"
-msgstr ""
-
-msgid ""
-"It can wrap such tools to accumulate preferences over time, and re-arrange "
-"the input according to common picks."
-msgstr ""
-
-msgid "Usage"
-msgstr ""
-
-msgid "Replace:"
-msgstr ""
-
-msgid "$ ls | fzf\n"
-msgstr ""
-
-msgid "with:"
-msgstr ""
-
-msgid "$ ls | remembering -p fzf-sample -c fzf\n"
-msgstr ""
-
-msgid ""
-"and see your previous choices from `fzf` start to appear at the beginning of"
-" the list."
-msgstr ""
-
-msgid "Installation"
-msgstr ""
-
-msgid ""
-"$ make\n"
-"$ make check\n"
-"# make install\n"
-msgstr ""
-
-msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
-msgstr ""
-
-msgid ""
-"$ make\n"
-"$ make check\n"
-"$ make install PREFIX=$HOME/.local\n"
-msgstr ""
-
-msgid ""
-"There are no dependencies or requirements, only standard tools such as POSIX"
-" sed, POSIX make, etc."
-msgstr ""
-
-msgid "Documentation"
-msgstr ""
-
-msgid "Manuals"
-msgstr ""
-
-msgid "The documentation is available via installed manpages or online:"
-msgstr ""
-
-msgid "Directory structure"
-msgstr ""
-
-msgid "The directory structure of the repository is:"
-msgstr ""
-
-msgid ""
-"`aux/`: personal scripts and helpers I've vendored in to ensure the "
-"repository is self contained, feel free to ignore it;"
-msgstr ""
-
-msgid "`doc/`: manpages, with their translated versions;"
-msgstr ""
-
-msgid ""
-"`po/`: gettext `.po` files for the translated languages and hunspell "
-"dictionaries for spell checking;"
-msgstr ""
-
-msgid "`src/`: main source code for the project;"
-msgstr ""
-
-msgid "`tests/`: integration tests for the project."
-msgstr ""
-
-msgid "Contributing"
-msgstr ""
-
-msgid "Extra tools used for development are:"
-msgstr ""
-
-msgid "For running the extra development-only checks, run:"
-msgstr ""
-
-msgid "$ make dev-check\n"
-msgstr ""
-
-msgid "and for generating the documentation HTML and website, run:"
-msgstr ""
-
-msgid "$ make public\n"
-msgstr ""
-
-msgid "Links"
-msgstr ""
-
-msgid "[homepage](https://euandreh.xyz/remembering/en/)"
-msgstr ""
-
-msgid "[source code](https://git.euandreh.xyz/remembering/)"
-msgstr ""
-
-msgid "[bug tracking](https://euandreh.xyz/remembering/TODOs.html)"
-msgstr ""
-
-msgid "[CI logs](https://euandreh.xyz/remembering/ci.html)"
-msgstr ""
-
-msgid "[CHANGELOG](https://euandreh.xyz/remembering/en/CHANGELOG.html)"
-msgstr ""
-
-msgid "Releases"
-msgstr ""
-
-msgid ""
-"[v0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) "
-"[remembering-v0.2.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz.asc))"
-" - 2021-02-23"
-msgstr ""
-
-msgid ""
-"[v0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) "
-"[remembering-v0.2.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz.asc))"
-" - 2021-02-21"
-msgstr ""
-
-msgid ""
-"[v0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) "
-"[remembering-v0.1.2.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid ""
-"[v0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) "
-"[remembering-v0.1.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid ""
-"[v0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) "
-"[remembering-v0.1.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid "License"
-msgstr ""
-
-msgid ""
-"[pt](https://euandreh.xyz/remembering/pt/) | "
-"[fr](https://euandreh.xyz/remembering/fr/) | "
-"[eo](https://euandreh.xyz/remembering/eo/)"
-msgstr ""
-
-msgid ""
-"Add memory to [`dmenu`](https://tools.suckless.org/dmenu/), "
-"[`fzf`](https://github.com/junegunn/fzf) and similar tools."
-msgstr ""
-
-msgid ""
-"Similar to [`yeganesh`](http://dmwit.com/yeganesh/), but with no build-time "
-"or run-time dependencies, and not coupled with `dmenu`."
-msgstr ""
-
-msgid ""
-"[`remembering.1`](https://euandreh.xyz/remembering/en/remembering.1.html) "
-"([pt](https://euandreh.xyz/remembering/pt/remembering.1.html), "
-"[fr](https://euandreh.xyz/remembering/fr/remembering.1.html), "
-"[eo](https://euandreh.xyz/remembering/eo/remembering.1.html));"
-msgstr ""
-
-msgid ""
-"[`remembering.5`](https://euandreh.xyz/remembering/en/remembering.5.html) "
-"([pt](https://euandreh.xyz/remembering/pt/remembering.5.html), "
-"[fr](https://euandreh.xyz/remembering/fr/remembering.5.html), "
-"[eo](https://euandreh.xyz/remembering/eo/remembering.5.html))."
-msgstr ""
-
-msgid "[Valgrind](https://valgrind.org) for memory testing;"
-msgstr ""
-
-msgid "[ShellCheck](https://www.shellcheck.net/) for validating scripts;"
-msgstr ""
-
-msgid ""
-"[po4a](https://po4a.org/index.php.en), "
-"[mdpo](https://mdpo.readthedocs.io/en/master/) and "
-"[gettext](https://www.gnu.org/software/gettext/) for i18n and l10n support;"
-msgstr ""
-
-msgid ""
-"[makefile2graph](https://github.com/lindenb/makefile2graph) and "
-"[graphviz](https://graphviz.org/) for generating "
-"[makefile.svg](https://euandreh.xyz/git-permalink/makefile.svg);"
-msgstr ""
-
-msgid ""
-"[pandoc](https://pandoc.org/) for generating the documentation HTML and "
-"website."
-msgstr ""
-
-msgid ""
-"Send contributions to the [mailing "
-"list](https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D) "
-"via [`git send-email`](https://git-send-email.io/)."
-msgstr ""
-
-msgid ""
-"[mailing list](https://lists.sr.ht/~euandreh/public-"
-"inbox?search=%5Bremembering%5D)"
-msgstr ""
-
-msgid ""
-"The code is licensed under [GNU Affero General Public License v3.0 or "
-"later](https://git.euandreh.xyz/remembering/tree/COPYING) (AGPL-3.0-or-"
-"later)."
-msgstr ""
-
-#~ msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
-#~ msgstr ""
-
-#~ msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
-#~ "dependencies, and not coupled with `dmenu`."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[`remembering.1`][`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]);"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[`remembering.5`][`remembering.5`] ([pt][pt.5], [fr][fr.5], [eo][eo.5])."
-#~ msgstr ""
-
-#~ msgid "[Valgrind][Valgrind] for memory testing;"
-#~ msgstr ""
-
-#~ msgid "[ShellCheck][ShellCheck] for validating scripts;"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[po4a][po4a], [mdpo][mdpo] and [gettext][gettext] for i18n and l10n support;"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[makefile2graph][makefile2graph] and [graphviz][graphviz] for generating "
-#~ "[makefile.svg][makefile.svg];"
-#~ msgstr ""
-
-#~ msgid "[pandoc][pandoc] for generating the documentation HTML and website."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Send contributions to the [mailing list][mailing list] via [`git send-"
-#~ "email`](https://git-send-email.io/)."
-#~ msgstr ""
-
-#~ msgid "[mailing list][mailing list]"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "The code is licensed under [GNU Affero General Public License v3.0 or "
-#~ "later][AGPL-3.0-or-later] (AGPL-3.0-or-later)."
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid "[pt1]: https://euandreh.xyz/remembering/pt/"
-#~ msgstr "[pt1]: https://euandreh.xyz/remembering/pt/"
-
-#, fuzzy
-#~ msgid "[fr1]: https://euandreh.xyz/remembering/fr/"
-#~ msgstr "[fr1]: https://euandreh.xyz/remembering/fr/"
-
-#, fuzzy
-#~ msgid "[eo1]: https://euandreh.xyz/remembering/eo/"
-#~ msgstr "[eo1]: https://euandreh.xyz/remembering/eo/"
-
-#, fuzzy
-#~ msgid "[dmenu]: https://tools.suckless.org/dmenu/"
-#~ msgstr "[dmenu]: https://tools.suckless.org/dmenu/"
-
-#, fuzzy
-#~ msgid "[fzf]: https://github.com/junegunn/fzf"
-#~ msgstr "[fzf]: https://github.com/junegunn/fzf"
-
-#, fuzzy
-#~ msgid "[yeganesh]: http://dmwit.com/yeganesh/"
-#~ msgstr "[yeganesh]: http://dmwit.com/yeganesh/"
-
-#, fuzzy
-#~ msgid ""
-#~ "[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html"
-#~ msgstr ""
-#~ "[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html"
-#~ msgstr "[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[fr.1]: https://euandreh.xyz/remembering/fr/remembering.1.html"
-#~ msgstr "[fr.1]: https://euandreh.xyz/remembering/fr/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[eo.1]: https://euandreh.xyz/remembering/eo/remembering.1.html"
-#~ msgstr "[eo.1]: https://euandreh.xyz/remembering/eo/remembering.1.html"
-
-#, fuzzy
-#~ msgid ""
-#~ "[`remembering.5`]: https://euandreh.xyz/remembering/en/remembering.5.html"
-#~ msgstr ""
-#~ "[`remembering.5`]: https://euandreh.xyz/remembering/en/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[pt.5]: https://euandreh.xyz/remembering/pt/remembering.5.html"
-#~ msgstr "[pt.5]: https://euandreh.xyz/remembering/pt/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[fr.5]: https://euandreh.xyz/remembering/fr/remembering.5.html"
-#~ msgstr "[fr.5]: https://euandreh.xyz/remembering/fr/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[eo.5]: https://euandreh.xyz/remembering/eo/remembering.5.html"
-#~ msgstr "[eo.5]: https://euandreh.xyz/remembering/eo/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[Valgrind]: https://valgrind.org"
-#~ msgstr "[Valgrind]: https://valgrind.org"
-
-#, fuzzy
-#~ msgid "[ShellCheck]: https://www.shellcheck.net/"
-#~ msgstr "[ShellCheck]: https://www.shellcheck.net/"
-
-#, fuzzy
-#~ msgid "[po4a]: https://po4a.org/index.php.en"
-#~ msgstr "[po4a]: https://po4a.org/index.php.en"
-
-#, fuzzy
-#~ msgid "[gettext]: https://www.gnu.org/software/gettext/"
-#~ msgstr "[gettext]: https://www.gnu.org/software/gettext/"
-
-#, fuzzy
-#~ msgid "[pandoc]: https://pandoc.org/"
-#~ msgstr "[pandoc]: https://pandoc.org/"
-
-#, fuzzy
-#~ msgid "[mdpo]: https://mdpo.readthedocs.io/en/master/"
-#~ msgstr "[mdpo]: https://mdpo.readthedocs.io/en/master/"
-
-#, fuzzy
-#~ msgid "[makefile2graph]: https://github.com/lindenb/makefile2graph"
-#~ msgstr "[makefile2graph]: https://github.com/lindenb/makefile2graph"
-
-#, fuzzy
-#~ msgid "[graphviz]: https://graphviz.org/"
-#~ msgstr "[graphviz]: https://graphviz.org/"
-
-#, fuzzy
-#~ msgid "[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg"
-#~ msgstr "[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg"
-
-#, fuzzy
-#~ msgid ""
-#~ "[mailing list]: https://lists.sr.ht/~euandreh/public-"
-#~ "inbox?search=%5Bremembering%5D"
-#~ msgstr ""
-#~ "[mailing list]: https://lists.sr.ht/~euandreh/public-"
-#~ "inbox?search=%5Bremembering%5D"
-
-#, fuzzy
-#~ msgid "[AGPL-3.0-or-later]: https://git.euandreh.xyz/remembering/tree/COPYING"
-#~ msgstr ""
-#~ "[AGPL-3.0-or-later]: https://git.euandreh.xyz/remembering/tree/COPYING"
diff --git a/po/LC_MESSAGES/README.en.md/fr.po b/po/LC_MESSAGES/README.en.md/fr.po
deleted file mode 100644
index 04b5991..0000000
--- a/po/LC_MESSAGES/README.en.md/fr.po
+++ /dev/null
@@ -1,399 +0,0 @@
-#
-msgid ""
-msgstr ""
-
-msgid "remembering"
-msgstr ""
-
-msgid ""
-"It can wrap such tools to accumulate preferences over time, and re-arrange "
-"the input according to common picks."
-msgstr ""
-
-msgid "Usage"
-msgstr ""
-
-msgid "Replace:"
-msgstr ""
-
-msgid "$ ls | fzf\n"
-msgstr ""
-
-msgid "with:"
-msgstr ""
-
-msgid "$ ls | remembering -p fzf-sample -c fzf\n"
-msgstr ""
-
-msgid ""
-"and see your previous choices from `fzf` start to appear at the beginning of"
-" the list."
-msgstr ""
-
-msgid "Installation"
-msgstr ""
-
-msgid ""
-"$ make\n"
-"$ make check\n"
-"# make install\n"
-msgstr ""
-
-msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
-msgstr ""
-
-msgid ""
-"$ make\n"
-"$ make check\n"
-"$ make install PREFIX=$HOME/.local\n"
-msgstr ""
-
-msgid ""
-"There are no dependencies or requirements, only standard tools such as POSIX"
-" sed, POSIX make, etc."
-msgstr ""
-
-msgid "Documentation"
-msgstr ""
-
-msgid "Manuals"
-msgstr ""
-
-msgid "The documentation is available via installed manpages or online:"
-msgstr ""
-
-msgid "Directory structure"
-msgstr ""
-
-msgid "The directory structure of the repository is:"
-msgstr ""
-
-msgid ""
-"`aux/`: personal scripts and helpers I've vendored in to ensure the "
-"repository is self contained, feel free to ignore it;"
-msgstr ""
-
-msgid "`doc/`: manpages, with their translated versions;"
-msgstr ""
-
-msgid ""
-"`po/`: gettext `.po` files for the translated languages and hunspell "
-"dictionaries for spell checking;"
-msgstr ""
-
-msgid "`src/`: main source code for the project;"
-msgstr ""
-
-msgid "`tests/`: integration tests for the project."
-msgstr ""
-
-msgid "Contributing"
-msgstr ""
-
-msgid "Extra tools used for development are:"
-msgstr ""
-
-msgid "For running the extra development-only checks, run:"
-msgstr ""
-
-msgid "$ make dev-check\n"
-msgstr ""
-
-msgid "and for generating the documentation HTML and website, run:"
-msgstr ""
-
-msgid "$ make public\n"
-msgstr ""
-
-msgid "Links"
-msgstr ""
-
-msgid "[homepage](https://euandreh.xyz/remembering/en/)"
-msgstr ""
-
-msgid "[source code](https://git.euandreh.xyz/remembering/)"
-msgstr ""
-
-msgid "[bug tracking](https://euandreh.xyz/remembering/TODOs.html)"
-msgstr ""
-
-msgid "[CI logs](https://euandreh.xyz/remembering/ci.html)"
-msgstr ""
-
-msgid "[CHANGELOG](https://euandreh.xyz/remembering/en/CHANGELOG.html)"
-msgstr ""
-
-msgid "Releases"
-msgstr ""
-
-msgid ""
-"[v0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) "
-"[remembering-v0.2.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz.asc))"
-" - 2021-02-23"
-msgstr ""
-
-msgid ""
-"[v0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) "
-"[remembering-v0.2.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz.asc))"
-" - 2021-02-21"
-msgstr ""
-
-msgid ""
-"[v0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) "
-"[remembering-v0.1.2.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid ""
-"[v0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) "
-"[remembering-v0.1.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid ""
-"[v0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) "
-"[remembering-v0.1.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid "License"
-msgstr ""
-
-msgid ""
-"[pt](https://euandreh.xyz/remembering/pt/) | "
-"[fr](https://euandreh.xyz/remembering/fr/) | "
-"[eo](https://euandreh.xyz/remembering/eo/)"
-msgstr ""
-
-msgid ""
-"Add memory to [`dmenu`](https://tools.suckless.org/dmenu/), "
-"[`fzf`](https://github.com/junegunn/fzf) and similar tools."
-msgstr ""
-
-msgid ""
-"Similar to [`yeganesh`](http://dmwit.com/yeganesh/), but with no build-time "
-"or run-time dependencies, and not coupled with `dmenu`."
-msgstr ""
-
-msgid ""
-"[`remembering.1`](https://euandreh.xyz/remembering/en/remembering.1.html) "
-"([pt](https://euandreh.xyz/remembering/pt/remembering.1.html), "
-"[fr](https://euandreh.xyz/remembering/fr/remembering.1.html), "
-"[eo](https://euandreh.xyz/remembering/eo/remembering.1.html));"
-msgstr ""
-
-msgid ""
-"[`remembering.5`](https://euandreh.xyz/remembering/en/remembering.5.html) "
-"([pt](https://euandreh.xyz/remembering/pt/remembering.5.html), "
-"[fr](https://euandreh.xyz/remembering/fr/remembering.5.html), "
-"[eo](https://euandreh.xyz/remembering/eo/remembering.5.html))."
-msgstr ""
-
-msgid "[Valgrind](https://valgrind.org) for memory testing;"
-msgstr ""
-
-msgid "[ShellCheck](https://www.shellcheck.net/) for validating scripts;"
-msgstr ""
-
-msgid ""
-"[po4a](https://po4a.org/index.php.en), "
-"[mdpo](https://mdpo.readthedocs.io/en/master/) and "
-"[gettext](https://www.gnu.org/software/gettext/) for i18n and l10n support;"
-msgstr ""
-
-msgid ""
-"[makefile2graph](https://github.com/lindenb/makefile2graph) and "
-"[graphviz](https://graphviz.org/) for generating "
-"[makefile.svg](https://euandreh.xyz/git-permalink/makefile.svg);"
-msgstr ""
-
-msgid ""
-"[pandoc](https://pandoc.org/) for generating the documentation HTML and "
-"website."
-msgstr ""
-
-msgid ""
-"Send contributions to the [mailing "
-"list](https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D) "
-"via [`git send-email`](https://git-send-email.io/)."
-msgstr ""
-
-msgid ""
-"[mailing list](https://lists.sr.ht/~euandreh/public-"
-"inbox?search=%5Bremembering%5D)"
-msgstr ""
-
-msgid ""
-"The code is licensed under [GNU Affero General Public License v3.0 or "
-"later](https://git.euandreh.xyz/remembering/tree/COPYING) (AGPL-3.0-or-"
-"later)."
-msgstr ""
-
-#~ msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
-#~ msgstr ""
-
-#~ msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
-#~ "dependencies, and not coupled with `dmenu`."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[`remembering.1`][`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]);"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[`remembering.5`][`remembering.5`] ([pt][pt.5], [fr][fr.5], [eo][eo.5])."
-#~ msgstr ""
-
-#~ msgid "[Valgrind][Valgrind] for memory testing;"
-#~ msgstr ""
-
-#~ msgid "[ShellCheck][ShellCheck] for validating scripts;"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[po4a][po4a], [mdpo][mdpo] and [gettext][gettext] for i18n and l10n support;"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[makefile2graph][makefile2graph] and [graphviz][graphviz] for generating "
-#~ "[makefile.svg][makefile.svg];"
-#~ msgstr ""
-
-#~ msgid "[pandoc][pandoc] for generating the documentation HTML and website."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Send contributions to the [mailing list][mailing list] via [`git send-"
-#~ "email`](https://git-send-email.io/)."
-#~ msgstr ""
-
-#~ msgid "[mailing list][mailing list]"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "The code is licensed under [GNU Affero General Public License v3.0 or "
-#~ "later][AGPL-3.0-or-later] (AGPL-3.0-or-later)."
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid "[pt1]: https://euandreh.xyz/remembering/pt/"
-#~ msgstr "[pt1]: https://euandreh.xyz/remembering/pt/"
-
-#, fuzzy
-#~ msgid "[fr1]: https://euandreh.xyz/remembering/fr/"
-#~ msgstr "[fr1]: https://euandreh.xyz/remembering/fr/"
-
-#, fuzzy
-#~ msgid "[eo1]: https://euandreh.xyz/remembering/eo/"
-#~ msgstr "[eo1]: https://euandreh.xyz/remembering/eo/"
-
-#, fuzzy
-#~ msgid "[dmenu]: https://tools.suckless.org/dmenu/"
-#~ msgstr "[dmenu]: https://tools.suckless.org/dmenu/"
-
-#, fuzzy
-#~ msgid "[fzf]: https://github.com/junegunn/fzf"
-#~ msgstr "[fzf]: https://github.com/junegunn/fzf"
-
-#, fuzzy
-#~ msgid "[yeganesh]: http://dmwit.com/yeganesh/"
-#~ msgstr "[yeganesh]: http://dmwit.com/yeganesh/"
-
-#, fuzzy
-#~ msgid ""
-#~ "[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html"
-#~ msgstr ""
-#~ "[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html"
-#~ msgstr "[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[fr.1]: https://euandreh.xyz/remembering/fr/remembering.1.html"
-#~ msgstr "[fr.1]: https://euandreh.xyz/remembering/fr/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[eo.1]: https://euandreh.xyz/remembering/eo/remembering.1.html"
-#~ msgstr "[eo.1]: https://euandreh.xyz/remembering/eo/remembering.1.html"
-
-#, fuzzy
-#~ msgid ""
-#~ "[`remembering.5`]: https://euandreh.xyz/remembering/en/remembering.5.html"
-#~ msgstr ""
-#~ "[`remembering.5`]: https://euandreh.xyz/remembering/en/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[pt.5]: https://euandreh.xyz/remembering/pt/remembering.5.html"
-#~ msgstr "[pt.5]: https://euandreh.xyz/remembering/pt/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[fr.5]: https://euandreh.xyz/remembering/fr/remembering.5.html"
-#~ msgstr "[fr.5]: https://euandreh.xyz/remembering/fr/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[eo.5]: https://euandreh.xyz/remembering/eo/remembering.5.html"
-#~ msgstr "[eo.5]: https://euandreh.xyz/remembering/eo/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[Valgrind]: https://valgrind.org"
-#~ msgstr "[Valgrind]: https://valgrind.org"
-
-#, fuzzy
-#~ msgid "[ShellCheck]: https://www.shellcheck.net/"
-#~ msgstr "[ShellCheck]: https://www.shellcheck.net/"
-
-#, fuzzy
-#~ msgid "[po4a]: https://po4a.org/index.php.en"
-#~ msgstr "[po4a]: https://po4a.org/index.php.en"
-
-#, fuzzy
-#~ msgid "[gettext]: https://www.gnu.org/software/gettext/"
-#~ msgstr "[gettext]: https://www.gnu.org/software/gettext/"
-
-#, fuzzy
-#~ msgid "[pandoc]: https://pandoc.org/"
-#~ msgstr "[pandoc]: https://pandoc.org/"
-
-#, fuzzy
-#~ msgid "[mdpo]: https://mdpo.readthedocs.io/en/master/"
-#~ msgstr "[mdpo]: https://mdpo.readthedocs.io/en/master/"
-
-#, fuzzy
-#~ msgid "[makefile2graph]: https://github.com/lindenb/makefile2graph"
-#~ msgstr "[makefile2graph]: https://github.com/lindenb/makefile2graph"
-
-#, fuzzy
-#~ msgid "[graphviz]: https://graphviz.org/"
-#~ msgstr "[graphviz]: https://graphviz.org/"
-
-#, fuzzy
-#~ msgid "[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg"
-#~ msgstr "[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg"
-
-#, fuzzy
-#~ msgid ""
-#~ "[mailing list]: https://lists.sr.ht/~euandreh/public-"
-#~ "inbox?search=%5Bremembering%5D"
-#~ msgstr ""
-#~ "[mailing list]: https://lists.sr.ht/~euandreh/public-"
-#~ "inbox?search=%5Bremembering%5D"
-
-#, fuzzy
-#~ msgid "[AGPL-3.0-or-later]: https://git.euandreh.xyz/remembering/tree/COPYING"
-#~ msgstr ""
-#~ "[AGPL-3.0-or-later]: https://git.euandreh.xyz/remembering/tree/COPYING"
diff --git a/po/LC_MESSAGES/README.en.md/pt.po b/po/LC_MESSAGES/README.en.md/pt.po
deleted file mode 100644
index 04b5991..0000000
--- a/po/LC_MESSAGES/README.en.md/pt.po
+++ /dev/null
@@ -1,399 +0,0 @@
-#
-msgid ""
-msgstr ""
-
-msgid "remembering"
-msgstr ""
-
-msgid ""
-"It can wrap such tools to accumulate preferences over time, and re-arrange "
-"the input according to common picks."
-msgstr ""
-
-msgid "Usage"
-msgstr ""
-
-msgid "Replace:"
-msgstr ""
-
-msgid "$ ls | fzf\n"
-msgstr ""
-
-msgid "with:"
-msgstr ""
-
-msgid "$ ls | remembering -p fzf-sample -c fzf\n"
-msgstr ""
-
-msgid ""
-"and see your previous choices from `fzf` start to appear at the beginning of"
-" the list."
-msgstr ""
-
-msgid "Installation"
-msgstr ""
-
-msgid ""
-"$ make\n"
-"$ make check\n"
-"# make install\n"
-msgstr ""
-
-msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
-msgstr ""
-
-msgid ""
-"$ make\n"
-"$ make check\n"
-"$ make install PREFIX=$HOME/.local\n"
-msgstr ""
-
-msgid ""
-"There are no dependencies or requirements, only standard tools such as POSIX"
-" sed, POSIX make, etc."
-msgstr ""
-
-msgid "Documentation"
-msgstr ""
-
-msgid "Manuals"
-msgstr ""
-
-msgid "The documentation is available via installed manpages or online:"
-msgstr ""
-
-msgid "Directory structure"
-msgstr ""
-
-msgid "The directory structure of the repository is:"
-msgstr ""
-
-msgid ""
-"`aux/`: personal scripts and helpers I've vendored in to ensure the "
-"repository is self contained, feel free to ignore it;"
-msgstr ""
-
-msgid "`doc/`: manpages, with their translated versions;"
-msgstr ""
-
-msgid ""
-"`po/`: gettext `.po` files for the translated languages and hunspell "
-"dictionaries for spell checking;"
-msgstr ""
-
-msgid "`src/`: main source code for the project;"
-msgstr ""
-
-msgid "`tests/`: integration tests for the project."
-msgstr ""
-
-msgid "Contributing"
-msgstr ""
-
-msgid "Extra tools used for development are:"
-msgstr ""
-
-msgid "For running the extra development-only checks, run:"
-msgstr ""
-
-msgid "$ make dev-check\n"
-msgstr ""
-
-msgid "and for generating the documentation HTML and website, run:"
-msgstr ""
-
-msgid "$ make public\n"
-msgstr ""
-
-msgid "Links"
-msgstr ""
-
-msgid "[homepage](https://euandreh.xyz/remembering/en/)"
-msgstr ""
-
-msgid "[source code](https://git.euandreh.xyz/remembering/)"
-msgstr ""
-
-msgid "[bug tracking](https://euandreh.xyz/remembering/TODOs.html)"
-msgstr ""
-
-msgid "[CI logs](https://euandreh.xyz/remembering/ci.html)"
-msgstr ""
-
-msgid "[CHANGELOG](https://euandreh.xyz/remembering/en/CHANGELOG.html)"
-msgstr ""
-
-msgid "Releases"
-msgstr ""
-
-msgid ""
-"[v0.2.1](https://git.euandreh.xyz/remembering/commit/?id=v0.2.1) "
-"[remembering-v0.2.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.1.tar.gz.asc))"
-" - 2021-02-23"
-msgstr ""
-
-msgid ""
-"[v0.2.0](https://git.euandreh.xyz/remembering/commit/?id=v0.2.0) "
-"[remembering-v0.2.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.2.0.tar.gz.asc))"
-" - 2021-02-21"
-msgstr ""
-
-msgid ""
-"[v0.1.2](https://git.euandreh.xyz/remembering/commit/?id=v0.1.2) "
-"[remembering-v0.1.2.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.2.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid ""
-"[v0.1.1](https://git.euandreh.xyz/remembering/commit/?id=v0.1.1) "
-"[remembering-v0.1.1.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.1.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid ""
-"[v0.1.0](https://git.euandreh.xyz/remembering/commit/?id=v0.1.0) "
-"[remembering-v0.1.0.tar.gz](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz)"
-" "
-"([sig](https://git.euandreh.xyz/remembering/snapshot/remembering-v0.1.0.tar.gz.asc))"
-" - 2021-01-26"
-msgstr ""
-
-msgid "License"
-msgstr ""
-
-msgid ""
-"[pt](https://euandreh.xyz/remembering/pt/) | "
-"[fr](https://euandreh.xyz/remembering/fr/) | "
-"[eo](https://euandreh.xyz/remembering/eo/)"
-msgstr ""
-
-msgid ""
-"Add memory to [`dmenu`](https://tools.suckless.org/dmenu/), "
-"[`fzf`](https://github.com/junegunn/fzf) and similar tools."
-msgstr ""
-
-msgid ""
-"Similar to [`yeganesh`](http://dmwit.com/yeganesh/), but with no build-time "
-"or run-time dependencies, and not coupled with `dmenu`."
-msgstr ""
-
-msgid ""
-"[`remembering.1`](https://euandreh.xyz/remembering/en/remembering.1.html) "
-"([pt](https://euandreh.xyz/remembering/pt/remembering.1.html), "
-"[fr](https://euandreh.xyz/remembering/fr/remembering.1.html), "
-"[eo](https://euandreh.xyz/remembering/eo/remembering.1.html));"
-msgstr ""
-
-msgid ""
-"[`remembering.5`](https://euandreh.xyz/remembering/en/remembering.5.html) "
-"([pt](https://euandreh.xyz/remembering/pt/remembering.5.html), "
-"[fr](https://euandreh.xyz/remembering/fr/remembering.5.html), "
-"[eo](https://euandreh.xyz/remembering/eo/remembering.5.html))."
-msgstr ""
-
-msgid "[Valgrind](https://valgrind.org) for memory testing;"
-msgstr ""
-
-msgid "[ShellCheck](https://www.shellcheck.net/) for validating scripts;"
-msgstr ""
-
-msgid ""
-"[po4a](https://po4a.org/index.php.en), "
-"[mdpo](https://mdpo.readthedocs.io/en/master/) and "
-"[gettext](https://www.gnu.org/software/gettext/) for i18n and l10n support;"
-msgstr ""
-
-msgid ""
-"[makefile2graph](https://github.com/lindenb/makefile2graph) and "
-"[graphviz](https://graphviz.org/) for generating "
-"[makefile.svg](https://euandreh.xyz/git-permalink/makefile.svg);"
-msgstr ""
-
-msgid ""
-"[pandoc](https://pandoc.org/) for generating the documentation HTML and "
-"website."
-msgstr ""
-
-msgid ""
-"Send contributions to the [mailing "
-"list](https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D) "
-"via [`git send-email`](https://git-send-email.io/)."
-msgstr ""
-
-msgid ""
-"[mailing list](https://lists.sr.ht/~euandreh/public-"
-"inbox?search=%5Bremembering%5D)"
-msgstr ""
-
-msgid ""
-"The code is licensed under [GNU Affero General Public License v3.0 or "
-"later](https://git.euandreh.xyz/remembering/tree/COPYING) (AGPL-3.0-or-"
-"later)."
-msgstr ""
-
-#~ msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
-#~ msgstr ""
-
-#~ msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
-#~ "dependencies, and not coupled with `dmenu`."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[`remembering.1`][`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]);"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[`remembering.5`][`remembering.5`] ([pt][pt.5], [fr][fr.5], [eo][eo.5])."
-#~ msgstr ""
-
-#~ msgid "[Valgrind][Valgrind] for memory testing;"
-#~ msgstr ""
-
-#~ msgid "[ShellCheck][ShellCheck] for validating scripts;"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[po4a][po4a], [mdpo][mdpo] and [gettext][gettext] for i18n and l10n support;"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "[makefile2graph][makefile2graph] and [graphviz][graphviz] for generating "
-#~ "[makefile.svg][makefile.svg];"
-#~ msgstr ""
-
-#~ msgid "[pandoc][pandoc] for generating the documentation HTML and website."
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Send contributions to the [mailing list][mailing list] via [`git send-"
-#~ "email`](https://git-send-email.io/)."
-#~ msgstr ""
-
-#~ msgid "[mailing list][mailing list]"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "The code is licensed under [GNU Affero General Public License v3.0 or "
-#~ "later][AGPL-3.0-or-later] (AGPL-3.0-or-later)."
-#~ msgstr ""
-
-#, fuzzy
-#~ msgid "[pt1]: https://euandreh.xyz/remembering/pt/"
-#~ msgstr "[pt1]: https://euandreh.xyz/remembering/pt/"
-
-#, fuzzy
-#~ msgid "[fr1]: https://euandreh.xyz/remembering/fr/"
-#~ msgstr "[fr1]: https://euandreh.xyz/remembering/fr/"
-
-#, fuzzy
-#~ msgid "[eo1]: https://euandreh.xyz/remembering/eo/"
-#~ msgstr "[eo1]: https://euandreh.xyz/remembering/eo/"
-
-#, fuzzy
-#~ msgid "[dmenu]: https://tools.suckless.org/dmenu/"
-#~ msgstr "[dmenu]: https://tools.suckless.org/dmenu/"
-
-#, fuzzy
-#~ msgid "[fzf]: https://github.com/junegunn/fzf"
-#~ msgstr "[fzf]: https://github.com/junegunn/fzf"
-
-#, fuzzy
-#~ msgid "[yeganesh]: http://dmwit.com/yeganesh/"
-#~ msgstr "[yeganesh]: http://dmwit.com/yeganesh/"
-
-#, fuzzy
-#~ msgid ""
-#~ "[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html"
-#~ msgstr ""
-#~ "[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html"
-#~ msgstr "[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[fr.1]: https://euandreh.xyz/remembering/fr/remembering.1.html"
-#~ msgstr "[fr.1]: https://euandreh.xyz/remembering/fr/remembering.1.html"
-
-#, fuzzy
-#~ msgid "[eo.1]: https://euandreh.xyz/remembering/eo/remembering.1.html"
-#~ msgstr "[eo.1]: https://euandreh.xyz/remembering/eo/remembering.1.html"
-
-#, fuzzy
-#~ msgid ""
-#~ "[`remembering.5`]: https://euandreh.xyz/remembering/en/remembering.5.html"
-#~ msgstr ""
-#~ "[`remembering.5`]: https://euandreh.xyz/remembering/en/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[pt.5]: https://euandreh.xyz/remembering/pt/remembering.5.html"
-#~ msgstr "[pt.5]: https://euandreh.xyz/remembering/pt/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[fr.5]: https://euandreh.xyz/remembering/fr/remembering.5.html"
-#~ msgstr "[fr.5]: https://euandreh.xyz/remembering/fr/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[eo.5]: https://euandreh.xyz/remembering/eo/remembering.5.html"
-#~ msgstr "[eo.5]: https://euandreh.xyz/remembering/eo/remembering.5.html"
-
-#, fuzzy
-#~ msgid "[Valgrind]: https://valgrind.org"
-#~ msgstr "[Valgrind]: https://valgrind.org"
-
-#, fuzzy
-#~ msgid "[ShellCheck]: https://www.shellcheck.net/"
-#~ msgstr "[ShellCheck]: https://www.shellcheck.net/"
-
-#, fuzzy
-#~ msgid "[po4a]: https://po4a.org/index.php.en"
-#~ msgstr "[po4a]: https://po4a.org/index.php.en"
-
-#, fuzzy
-#~ msgid "[gettext]: https://www.gnu.org/software/gettext/"
-#~ msgstr "[gettext]: https://www.gnu.org/software/gettext/"
-
-#, fuzzy
-#~ msgid "[pandoc]: https://pandoc.org/"
-#~ msgstr "[pandoc]: https://pandoc.org/"
-
-#, fuzzy
-#~ msgid "[mdpo]: https://mdpo.readthedocs.io/en/master/"
-#~ msgstr "[mdpo]: https://mdpo.readthedocs.io/en/master/"
-
-#, fuzzy
-#~ msgid "[makefile2graph]: https://github.com/lindenb/makefile2graph"
-#~ msgstr "[makefile2graph]: https://github.com/lindenb/makefile2graph"
-
-#, fuzzy
-#~ msgid "[graphviz]: https://graphviz.org/"
-#~ msgstr "[graphviz]: https://graphviz.org/"
-
-#, fuzzy
-#~ msgid "[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg"
-#~ msgstr "[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg"
-
-#, fuzzy
-#~ msgid ""
-#~ "[mailing list]: https://lists.sr.ht/~euandreh/public-"
-#~ "inbox?search=%5Bremembering%5D"
-#~ msgstr ""
-#~ "[mailing list]: https://lists.sr.ht/~euandreh/public-"
-#~ "inbox?search=%5Bremembering%5D"
-
-#, fuzzy
-#~ msgid "[AGPL-3.0-or-later]: https://git.euandreh.xyz/remembering/tree/COPYING"
-#~ msgstr ""
-#~ "[AGPL-3.0-or-later]: https://git.euandreh.xyz/remembering/tree/COPYING"
diff --git a/po/LC_MESSAGES/doc/remembering.en.1.in/eo.po b/po/LC_MESSAGES/doc/remembering.en.1.in/eo.po
deleted file mode 100644
index 13aaf5f..0000000
--- a/po/LC_MESSAGES/doc/remembering.en.1.in/eo.po
+++ /dev/null
@@ -1,617 +0,0 @@
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2021-09-02 12:39-0300\n"
-"PO-Revision-Date: 2021-09-02 12:40-0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: eo\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.0\n"
-"X-Poedit-Bookmarks: -1,-1,5,-1,-1,-1,-1,-1,-1,-1\n"
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, no-wrap
-msgid "REMEMBERING"
-msgstr ""
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, no-wrap
-msgid "@DATE@"
-msgstr "@DATE@"
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, fuzzy, no-wrap
-#| msgid "git-permalink @VERSION@"
-msgid "remembering @VERSION@"
-msgstr "git-permalink @VERSION@"
-
-#. type: SH
-#: doc/remembering.en.1.in:4
-#, no-wrap
-msgid "NAME"
-msgstr "NOMO"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:7
-msgid "remembering - sort list from I<STDIN> using past choices as weight."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:9
-#, no-wrap
-msgid "SYNOPSYS"
-msgstr "RESUMO"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:12
-msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:14
-#, no-wrap
-msgid "DESCRIPTION"
-msgstr "PRISKRIBO"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:17
-msgid ""
-"B<remembering> takes a command that chooses an option as its behaviour, such "
-"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
-"it is used, will put the most used choices at the beginning of the list."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:20
-msgid ""
-"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
-"be sorted."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:22
-#, no-wrap
-msgid "OPTIONS"
-msgstr "EBLOJ"
-
-#. type: TP
-#: doc/remembering.en.1.in:24
-#, no-wrap
-msgid "B<-c> I<COMMAND>"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:27
-msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
-msgstr ""
-
-#. type: TP
-#: doc/remembering.en.1.in:28
-#, no-wrap
-msgid "B<-p> I<PROFILE>"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:31
-msgid "The name of the I<PROFILE> where to look up and store raking data."
-msgstr ""
-
-#. type: TP
-#: doc/remembering.en.1.in:32
-#, fuzzy, no-wrap
-#| msgid "B<--help>, B<-h>"
-msgid "B<-h>, B<--help>"
-msgstr "B<--help>, B<-h>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:35
-#, fuzzy
-#| msgid "Show show help text."
-msgid "Show short help text."
-msgstr "Montras helpmesaĝon."
-
-#. type: TP
-#: doc/remembering.en.1.in:36
-#, fuzzy, no-wrap
-#| msgid "B<--version>, B<-V>"
-msgid "B<-V>, B<--version>"
-msgstr "B<--version>, B<-V>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:39
-msgid "Show version number."
-msgstr "Montras versian numeron."
-
-#. type: SH
-#: doc/remembering.en.1.in:41
-#, no-wrap
-msgid "EXAMPLES"
-msgstr "EKZEMPLOJ"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:44
-msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:48
-#, no-wrap
-msgid "$ ls | remembering -p fzf-ls -c fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:53
-msgid ""
-"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
-"via B<remembering>, and execute with B<sh>(1) the choice picked:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:57
-#, no-wrap
-msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:62
-msgid "Successive invocations will put the frequent choices at the beginning."
-msgstr ""
-
-#. type: SS
-#: doc/remembering.en.1.in:63
-#, no-wrap
-msgid "Simulation of an interactive session"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:66
-msgid ""
-"Below is a simulation of an interactive session, comparing the usage of "
-"plain B<fzf>(1) against composing it with B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:75
-#, no-wrap
-msgid ""
-"$ mkdir -p example/\n"
-"$ cd example/\n"
-"$ touch a b c d e\n"
-"$ ls\n"
-"a b c d e\n"
-"$ ls | fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:79
-msgid ""
-"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
-"into it and create 5 empty files: a, b, c, d and e."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:81
-msgid ""
-"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
-"order."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:83
-msgid ""
-"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
-"its prompt to pick one option:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
-#: doc/remembering.en.1.in:141
-#, no-wrap
-msgid ""
-" e\n"
-" d\n"
-" c\n"
-" b\n"
-"E<gt> a\n"
-" 5/5\n"
-"E<gt>\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:97
-msgid ""
-"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
-"was given, and starts at the first one, \"a\"."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:99
-msgid ""
-"Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
-#, no-wrap
-msgid ""
-"$ ls | fzf\n"
-"d\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:108
-msgid ""
-"Now if we run the same command again, we'll be given the same options, in "
-"the same order:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:112
-#, no-wrap
-msgid "$ ls | fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:127
-msgid ""
-"B<fzf>(1) is doing what it is told to: making a prompt with the options "
-"given to it from I<STDIN>, in the order it was given."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:129
-msgid ""
-"In order to have our past choices show up in the beginning of the list, we "
-"can compose B<fzf>(1) with B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
-#, no-wrap
-msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
-#, no-wrap
-msgid ""
-"$ ls | remembering -p tutorial-example -c 'fzf'\n"
-"d\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:149
-msgid ""
-"So far we get the exact same behaviour, but saying extra things. We tell "
-"B<remembering> that we want this specific I<PROFILE> to be called "
-"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
-"\\f(CR'fzf'\\fR command to be ran."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:151
-msgid ""
-"From now on if we run the exact same command again, B<remembering> will "
-"I<remember> that the last choice was \"d\", and put it in the beginning of "
-"the list, which B<fzf>(1) happily displays in the order it was given:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:163
-#, no-wrap
-msgid ""
-" e\n"
-" c\n"
-" b\n"
-" a\n"
-"E<gt> d\n"
-" 5/5\n"
-"E<gt>\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:170
-msgid ""
-"This time the \"d\" option was already the first one, and we can just press "
-"return to get it as the output value from the command."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:172
-msgid ""
-"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
-"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
-"line and writes to B<STDOUT>."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:174
-#, no-wrap
-msgid "SEE ALSO"
-msgstr "VIDU ANKAŬ"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:177
-msgid "B<remembering>(5)"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:179
-#, no-wrap
-msgid "AUTHORS"
-msgstr "AŬTOROJ"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:185
-msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
-msgstr "E<.MT eu@euandre.org> EuAndreh E<.ME> kaj la kontribuuloj."
-
-#. type: SH
-#: doc/remembering.en.1.in:187
-#, no-wrap
-msgid "BUGS"
-msgstr "MISFUNKCIOJ"
-
-#. type: IP
-#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
-#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
-#, no-wrap
-msgid "\\(bu"
-msgstr "\\(bu"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:196
-msgid ""
-"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
-"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-msgstr ""
-"Raportu misfunkcioj al la E<.MT ~euandreh/public-inbox@lists.sr.ht> "
-"dissendolisto E<.ME .> Uzu la subjekton \"\\f(CR[remembering] BUG aŭ TASK: "
-"E<lt>priskriboE<gt>\\fR\"."
-
-#. type: Plain text
-#: doc/remembering.en.1.in:201
-msgid ""
-"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
-">"
-msgstr ""
-"Foliumu misfunkcioj E<.UR https://euandreh.xyz/remembering/TODOs.html> rete "
-"E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:205
-msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
-msgstr "E<.UR https://euandreh.xyz/remembering/eo/> Ĉefpaĝo E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:208
-msgid ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comments and discussions E<.UE .>"
-msgstr ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Komentoj kaj diskutoj E<.UE .>"
-
-#, no-wrap
-#~ msgid "GIT-PERMALINK"
-#~ msgstr "GIT-PERMALINK"
-
-#, no-wrap
-#~ msgid "git-permalink user manual"
-#~ msgstr "git-permalink uzmanlibro"
-
-#~ msgid ""
-#~ "git-permalink - Git extension to generate web permalinks of files in a "
-#~ "repository."
-#~ msgstr ""
-#~ "git-permalink - Git-etendo por generi interretajn konstantajn ligojn "
-#~ "(permalink) de dosieroj en deponejo."
-
-#~ msgid "B<git-permalink> [OPTIONS] I<FILE> [I<LINENO>]"
-#~ msgstr "B<git-permalink> [EBLOJ] I<DOSIERO> [I<LINIONO>]"
-
-#~ msgid ""
-#~ "B<git-permalink> will use Git itself to get a) the commit at I<HEAD> and "
-#~ "b) the I<remote.origin.url> via B<git-config>(1), and optionally c) an "
-#~ "URL template override. It then uses those values to build a permalink "
-#~ "URL, with the commit included on it to ensure it is I<permanent>, and "
-#~ "optionally the line number of the selected file."
-#~ msgstr ""
-#~ "B<git-permalink> uzas Git por akiri a) la commit ĉe I<HEAD> kaj b) la "
-#~ "I<remote.origin.url> per B<git-config>(1), kaj laŭvole c) URL ŝablono. "
-#~ "Ĝi tiam uzas tiujn por krei I<konstantan> URL ligon (permalink), kun la "
-#~ "commit ene por certigi ke ĝi estas konstantan, kaj laŭvole la linia "
-#~ "numero elektita."
-
-#~ msgid "B<git-permalink> then uses B<xdg-open>(1) to open the URL."
-#~ msgstr "B<git-permalink> tiam uzas B<xdg-open>(1) por malfermi la URL."
-
-#, no-wrap
-#~ msgid "B<-p>"
-#~ msgstr "B<-p>"
-
-#~ msgid ""
-#~ "Only print the web URL link, don't try to open it with B<xdg-open>(1) or "
-#~ "do anything else. By default this is turned off."
-#~ msgstr ""
-#~ "Nur presas la ligon, ne provas malfermi ĝin kun B<xdg-open>(1) aŭ fari "
-#~ "ion alian. Defaŭlte ĉi tio estas malŝaltita."
-
-#, no-wrap
-#~ msgid "OVERRIDES"
-#~ msgstr "SUPERREGOJ"
-
-#~ msgid ""
-#~ "If you want to configure the permalink URL template for a project with an "
-#~ "unsupported origin you can do so via B<git-config>(1)."
-#~ msgstr ""
-#~ "Se vi volas agordi la URL ŝablonon por projekto kun nesubtenita remoton, "
-#~ "vi povas uzi B<git-config>(1)."
-
-#~ msgid "There are two configuration options available:"
-#~ msgstr "Estas du agordaj elektoj disponeblaj:"
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-file-commit>"
-#~ msgstr "B<git-permalink.template-file-commit>"
-
-#~ msgid ""
-#~ "An URL template where the name of the I<file> comes first, and the "
-#~ "I<commit> comes second. cgit uses this style of URL, with something like "
-#~ "in:"
-#~ msgstr ""
-#~ "URL ŝablono, kie la nomo de la I<dosiero> estas unue, kaj la I<commit> "
-#~ "estas due. cgit uzas ĉi tiun specon de URL, kiel en:"
-
-#, no-wrap
-#~ msgid "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-#~ msgstr "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-
-#~ msgid ""
-#~ "On this example, the name of the I<file> comes first and I<commit> comes "
-#~ "at the very end after \"id=\"."
-#~ msgstr ""
-#~ "Laŭ ĉi tiu ekzemplo, la nomo de la I<dosiero> estas unue kaj la I<commit> "
-#~ "estas fine post \"id=\"."
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-commit-file>"
-#~ msgstr "B<git-permalink.template-commit-file>"
-
-#~ msgid ""
-#~ "An URL template where the I<commit> comes first, and the name of the "
-#~ "I<file> comes second. sourcehut uses this style of URL, with something "
-#~ "like:"
-#~ msgstr ""
-#~ "URL ŝablono, kie la I<commit> estas unue, kaj la nomo de la I<dosiero> "
-#~ "estas due. sourcehut uzas ĉi tiun specon de URL, kiel en:"
-
-#, no-wrap
-#~ msgid "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-#~ msgstr "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-
-#~ msgid ""
-#~ "On this example, the I<commit> comes first on the URL path, and the "
-#~ "I<file> name comes at the end."
-#~ msgstr ""
-#~ "Laŭ ĉi tiu ekzemplo, la I<commit> estas unue en la URL, kaj la nome de la "
-#~ "I<dosiero> estas poste."
-
-#~ msgid ""
-#~ "If none of those values are found by B<git-config>(1) and B<git-"
-#~ "permalink> can't guess the URL, it exits with an error."
-#~ msgstr ""
-#~ "Se neniu el tiuj estas estas trovita por B<git-config>(1) aŭ B<git-"
-#~ "permalink> ne povas diveni la URL, ĝi eliras erare."
-
-#, no-wrap
-#~ msgid "SUPPORTED REMOTES"
-#~ msgstr "SUBTENITAJ REMOTOJ"
-
-#~ msgid "The current supported remotes are:"
-#~ msgstr "La nunaj subtenitaj remotoj estas:"
-
-#~ msgid "git.euandreh.xyz (where git-permalink itself is hosted =p)"
-#~ msgstr "git.euandreh.xyz (kie git-permalink estas gastiga =p)"
-
-#~ msgid "sourcehut"
-#~ msgstr "sourcehut"
-
-#~ msgid "git.kernel.org"
-#~ msgstr "git.kernel.org"
-
-#~ msgid "savannah"
-#~ msgstr "savannah"
-
-#~ msgid "notabug"
-#~ msgstr "notabug"
-
-#~ msgid "codeberg"
-#~ msgstr "codeberg"
-
-#~ msgid "bitbucket"
-#~ msgstr "bitbucket"
-
-#~ msgid "pagure"
-#~ msgstr "pagure"
-
-#~ msgid "gitlab"
-#~ msgstr "gitlab"
-
-#~ msgid "github"
-#~ msgstr "github"
-
-#~ msgid "Patches to add support for more source code forges are welcome!"
-#~ msgstr "Ŝanĝoj por subteni pli da fontkodaj forĝejoj estas bonvenaj!"
-
-#~ msgid ""
-#~ "See E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> for discussion and more information."
-#~ msgstr ""
-#~ "Foliumu E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> por diskuto kaj pli da informoj."
-
-#~ msgid ""
-#~ "Open I<src/fold.c> of a project with its origin pointing to I<sourcehut>:"
-#~ msgstr ""
-#~ "Malfermas I<src/fold.c> de projekto kiu origino direktiĝas al "
-#~ "I<sourcehut>:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOpening https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-#~ msgstr ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tMalfermado de https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-
-#~ msgid ""
-#~ "Generate link for lines 59 through 94 of I<nongnu/packages/clojure.scm> "
-#~ "on a project hosted on I<gitlab>, but only print it I<without> opening "
-#~ "with B<xdg-open>(1):"
-#~ msgstr ""
-#~ "Kreas ligon por linioj 59 ĝis 94 de I<nongnu/packages/clojure.scm> en "
-#~ "projekto gastigita ĉe I<gitlab>, sed nur presu ĝin I<sen> malfermi kun "
-#~ "B<xdg-open>(1):"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-#~ msgstr ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-
-#~ msgid ""
-#~ "Configure an URL override, and open the file I<src/app_add.c> without "
-#~ "selecting an specific line:"
-#~ msgstr ""
-#~ "Agordas URL superrego, kaj malfermas la dosieron I<src/app_add.c> sen "
-#~ "elekti specifan linion:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOpening https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-#~ msgstr ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\\Malfermado de https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-
-#~ msgid "B<git-config>(1) B<xdg-open>(1)"
-#~ msgstr "B<git-config>(1) B<xdg-open>(1)"
diff --git a/po/LC_MESSAGES/doc/remembering.en.1.in/fr.po b/po/LC_MESSAGES/doc/remembering.en.1.in/fr.po
deleted file mode 100644
index dc1d696..0000000
--- a/po/LC_MESSAGES/doc/remembering.en.1.in/fr.po
+++ /dev/null
@@ -1,620 +0,0 @@
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2021-09-02 12:39-0300\n"
-"PO-Revision-Date: 2021-09-02 12:40-0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.0\n"
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, no-wrap
-msgid "REMEMBERING"
-msgstr ""
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, no-wrap
-msgid "@DATE@"
-msgstr "@DATE@"
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, fuzzy, no-wrap
-#| msgid "git-permalink @VERSION@"
-msgid "remembering @VERSION@"
-msgstr "git-permalink @VERSION@"
-
-#. type: SH
-#: doc/remembering.en.1.in:4
-#, no-wrap
-msgid "NAME"
-msgstr "NOM"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:7
-msgid "remembering - sort list from I<STDIN> using past choices as weight."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:9
-#, no-wrap
-msgid "SYNOPSYS"
-msgstr "SYNOPSIS"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:12
-msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:14
-#, no-wrap
-msgid "DESCRIPTION"
-msgstr "DESCRIPTION"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:17
-msgid ""
-"B<remembering> takes a command that chooses an option as its behaviour, such "
-"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
-"it is used, will put the most used choices at the beginning of the list."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:20
-msgid ""
-"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
-"be sorted."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:22
-#, no-wrap
-msgid "OPTIONS"
-msgstr "OPTIONS"
-
-#. type: TP
-#: doc/remembering.en.1.in:24
-#, no-wrap
-msgid "B<-c> I<COMMAND>"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:27
-msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
-msgstr ""
-
-#. type: TP
-#: doc/remembering.en.1.in:28
-#, no-wrap
-msgid "B<-p> I<PROFILE>"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:31
-msgid "The name of the I<PROFILE> where to look up and store raking data."
-msgstr ""
-
-#. type: TP
-#: doc/remembering.en.1.in:32
-#, fuzzy, no-wrap
-#| msgid "B<--help>, B<-h>"
-msgid "B<-h>, B<--help>"
-msgstr "B<--help>, B<-h>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:35
-#, fuzzy
-#| msgid "Show show help text."
-msgid "Show short help text."
-msgstr "Affiche message d'aide."
-
-#. type: TP
-#: doc/remembering.en.1.in:36
-#, fuzzy, no-wrap
-#| msgid "B<--version>, B<-V>"
-msgid "B<-V>, B<--version>"
-msgstr "B<--version>, B<-V>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:39
-msgid "Show version number."
-msgstr "Imprime le numeró de version."
-
-#. type: SH
-#: doc/remembering.en.1.in:41
-#, no-wrap
-msgid "EXAMPLES"
-msgstr "EXAMPLES"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:44
-msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:48
-#, no-wrap
-msgid "$ ls | remembering -p fzf-ls -c fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:53
-msgid ""
-"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
-"via B<remembering>, and execute with B<sh>(1) the choice picked:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:57
-#, no-wrap
-msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:62
-msgid "Successive invocations will put the frequent choices at the beginning."
-msgstr ""
-
-#. type: SS
-#: doc/remembering.en.1.in:63
-#, no-wrap
-msgid "Simulation of an interactive session"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:66
-msgid ""
-"Below is a simulation of an interactive session, comparing the usage of "
-"plain B<fzf>(1) against composing it with B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:75
-#, no-wrap
-msgid ""
-"$ mkdir -p example/\n"
-"$ cd example/\n"
-"$ touch a b c d e\n"
-"$ ls\n"
-"a b c d e\n"
-"$ ls | fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:79
-msgid ""
-"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
-"into it and create 5 empty files: a, b, c, d and e."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:81
-msgid ""
-"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
-"order."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:83
-msgid ""
-"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
-"its prompt to pick one option:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
-#: doc/remembering.en.1.in:141
-#, no-wrap
-msgid ""
-" e\n"
-" d\n"
-" c\n"
-" b\n"
-"E<gt> a\n"
-" 5/5\n"
-"E<gt>\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:97
-msgid ""
-"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
-"was given, and starts at the first one, \"a\"."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:99
-msgid ""
-"Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
-#, no-wrap
-msgid ""
-"$ ls | fzf\n"
-"d\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:108
-msgid ""
-"Now if we run the same command again, we'll be given the same options, in "
-"the same order:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:112
-#, no-wrap
-msgid "$ ls | fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:127
-msgid ""
-"B<fzf>(1) is doing what it is told to: making a prompt with the options "
-"given to it from I<STDIN>, in the order it was given."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:129
-msgid ""
-"In order to have our past choices show up in the beginning of the list, we "
-"can compose B<fzf>(1) with B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
-#, no-wrap
-msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
-#, no-wrap
-msgid ""
-"$ ls | remembering -p tutorial-example -c 'fzf'\n"
-"d\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:149
-msgid ""
-"So far we get the exact same behaviour, but saying extra things. We tell "
-"B<remembering> that we want this specific I<PROFILE> to be called "
-"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
-"\\f(CR'fzf'\\fR command to be ran."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:151
-msgid ""
-"From now on if we run the exact same command again, B<remembering> will "
-"I<remember> that the last choice was \"d\", and put it in the beginning of "
-"the list, which B<fzf>(1) happily displays in the order it was given:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:163
-#, no-wrap
-msgid ""
-" e\n"
-" c\n"
-" b\n"
-" a\n"
-"E<gt> d\n"
-" 5/5\n"
-"E<gt>\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:170
-msgid ""
-"This time the \"d\" option was already the first one, and we can just press "
-"return to get it as the output value from the command."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:172
-msgid ""
-"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
-"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
-"line and writes to B<STDOUT>."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:174
-#, no-wrap
-msgid "SEE ALSO"
-msgstr "VOIR AUSSI"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:177
-msgid "B<remembering>(5)"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:179
-#, no-wrap
-msgid "AUTHORS"
-msgstr "AUTEURS"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:185
-msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
-msgstr "E<.MT eu@euandre.org> EuAndreh E<.ME> et les contributeurs."
-
-#. type: SH
-#: doc/remembering.en.1.in:187
-#, no-wrap
-msgid "BUGS"
-msgstr "BUGS"
-
-#. type: IP
-#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
-#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
-#, no-wrap
-msgid "\\(bu"
-msgstr "\\(bu"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:196
-msgid ""
-"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
-"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-msgstr ""
-"Soumettre un bogue dans la E<.MT ~euandreh/public-inbox@lists.sr.ht> liste "
-"de diffusion E<.ME .> Utilise le sujet \"\\f(CR[remembering] BUG ou TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-
-#. type: Plain text
-#: doc/remembering.en.1.in:201
-msgid ""
-"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
-">"
-msgstr ""
-"Parcourir les bogues E<.UR https://euandreh.xyz/remembering/TODOs.html> en "
-"ligne E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:205
-msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
-msgstr "E<.UR https://euandreh.xyz/remembering/fr/> Page d'accueil E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:208
-msgid ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comments and discussions E<.UE .>"
-msgstr ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Commentaires et discussions E<.UE .>"
-
-#, no-wrap
-#~ msgid "GIT-PERMALINK"
-#~ msgstr "GIT-PERMALINK"
-
-#, no-wrap
-#~ msgid "git-permalink user manual"
-#~ msgstr "manual d'utilisateur de git-permalink"
-
-#~ msgid ""
-#~ "git-permalink - Git extension to generate web permalinks of files in a "
-#~ "repository."
-#~ msgstr ""
-#~ "git-permalink - extension Git pour génerér liens web permanent "
-#~ "(permalink) de fichiers dans un dépôt."
-
-#~ msgid "B<git-permalink> [OPTIONS] I<FILE> [I<LINENO>]"
-#~ msgstr "B<git-permalink> [OPTIONS] I<FICHIERS> [I<LINENO>]"
-
-#~ msgid ""
-#~ "B<git-permalink> will use Git itself to get a) the commit at I<HEAD> and "
-#~ "b) the I<remote.origin.url> via B<git-config>(1), and optionally c) an "
-#~ "URL template override. It then uses those values to build a permalink "
-#~ "URL, with the commit included on it to ensure it is I<permanent>, and "
-#~ "optionally the line number of the selected file."
-#~ msgstr ""
-#~ "B<git-permalink> utilise Git pour prendre a) le commit au I<HEAD> et b) "
-#~ "le I<remote.origin.url> avec B<git-config>(1), et se possible c) un "
-#~ "modèle de substituition d'URL. Il utilise ces valeurs pour construire un "
-#~ "URL I<permanent>, avec le commit inclus pour garantir la unicitè, e "
-#~ "optionalement le numeró de la ligne choisi."
-
-#~ msgid "B<git-permalink> then uses B<xdg-open>(1) to open the URL."
-#~ msgstr "B<git-permalink> après utilise B<xdg-open>(1) pour ouvrir l'URL."
-
-#, no-wrap
-#~ msgid "B<-p>"
-#~ msgstr "B<-p>"
-
-#~ msgid ""
-#~ "Only print the web URL link, don't try to open it with B<xdg-open>(1) or "
-#~ "do anything else. By default this is turned off."
-#~ msgstr ""
-#~ "Seulement imprimez le lien d'URL web, n'essayez pas de l'ouvrir avec "
-#~ "B<xdg-open>(1) ou faire quelques choses avec lui. Par défaut cela est "
-#~ "désactivé."
-
-#, no-wrap
-#~ msgid "OVERRIDES"
-#~ msgstr "MODÈLES"
-
-#~ msgid ""
-#~ "If you want to configure the permalink URL template for a project with an "
-#~ "unsupported origin you can do so via B<git-config>(1)."
-#~ msgstr ""
-#~ "Si vous souhaitez configurer le modèle de substitution d'URL pour un "
-#~ "projet que a un références distantes que n'est pas prises en charge, vous "
-#~ "utilize B<git-config>(1)."
-
-#~ msgid "There are two configuration options available:"
-#~ msgstr "Il y a deux options de configuration disponible:"
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-file-commit>"
-#~ msgstr "B<git-permalink.template-file-commit>"
-
-#~ msgid ""
-#~ "An URL template where the name of the I<file> comes first, and the "
-#~ "I<commit> comes second. cgit uses this style of URL, with something like "
-#~ "in:"
-#~ msgstr ""
-#~ "Un modèle de substitution d'URL où le nom du I<fichier> est avant, et le "
-#~ "I<commit> est après. cgit utilise cette type d'URL, comme dans:"
-
-#, no-wrap
-#~ msgid "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-#~ msgstr "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-
-#~ msgid ""
-#~ "On this example, the name of the I<file> comes first and I<commit> comes "
-#~ "at the very end after \"id=\"."
-#~ msgstr ""
-#~ "Dans cet example, le nom du I<fichier> est avant et le I<commit> est à la "
-#~ "fin, après le \"id=\"."
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-commit-file>"
-#~ msgstr "B<git-permalink.template-commit-file>"
-
-#~ msgid ""
-#~ "An URL template where the I<commit> comes first, and the name of the "
-#~ "I<file> comes second. sourcehut uses this style of URL, with something "
-#~ "like:"
-#~ msgstr ""
-#~ "Un modèle de substitution d'URL où le I<commit> est avant, et le nom du "
-#~ "I<fichier> est après. sourcehut utilise cette type d'URL, comme dans:"
-
-#, no-wrap
-#~ msgid "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-#~ msgstr "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-
-#~ msgid ""
-#~ "On this example, the I<commit> comes first on the URL path, and the "
-#~ "I<file> name comes at the end."
-#~ msgstr ""
-#~ "Dans cet example, le I<commit> est avant dans le chemin de l'URL, et le "
-#~ "I<fichier> est après."
-
-#~ msgid ""
-#~ "If none of those values are found by B<git-config>(1) and B<git-"
-#~ "permalink> can't guess the URL, it exits with an error."
-#~ msgstr ""
-#~ "Si aucune options n'est pas trouvé par B<git-config>(1) et B<git-"
-#~ "permalink> ne peut pas deviner l'URL, cela se termine par une erreur."
-
-#, no-wrap
-#~ msgid "SUPPORTED REMOTES"
-#~ msgstr "RÉFÉRENCES DISTANTES PRISES EN CHARGE"
-
-#~ msgid "The current supported remotes are:"
-#~ msgstr "La liste de références distantes prises en charge est:"
-
-#~ msgid "git.euandreh.xyz (where git-permalink itself is hosted =p)"
-#~ msgstr "git.euandreh.xyz (où git-permalink est hébergé =p)"
-
-#~ msgid "sourcehut"
-#~ msgstr "sourcehut"
-
-#~ msgid "git.kernel.org"
-#~ msgstr "git.kernel.org"
-
-#~ msgid "savannah"
-#~ msgstr "savannah"
-
-#~ msgid "notabug"
-#~ msgstr "notabug"
-
-#~ msgid "codeberg"
-#~ msgstr "codeberg"
-
-#~ msgid "bitbucket"
-#~ msgstr "bitbucket"
-
-#~ msgid "pagure"
-#~ msgstr "pagure"
-
-#~ msgid "gitlab"
-#~ msgstr "gitlab"
-
-#~ msgid "github"
-#~ msgstr "github"
-
-#~ msgid "Patches to add support for more source code forges are welcome!"
-#~ msgstr ""
-#~ "Les changements pour ajouter plus de sites d'hébergement de code sont les "
-#~ "bienvenus!"
-
-#~ msgid ""
-#~ "See E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> for discussion and more information."
-#~ msgstr ""
-#~ "Regarde E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> pour les discussions et plus d'information."
-
-#~ msgid ""
-#~ "Open I<src/fold.c> of a project with its origin pointing to I<sourcehut>:"
-#~ msgstr ""
-#~ "Ouvrez I<src/fold.c> d'un projet qui a de référence distante pointée a "
-#~ "I<sourcehut>:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOpening https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-#~ msgstr ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOuverture de https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-
-#~ msgid ""
-#~ "Generate link for lines 59 through 94 of I<nongnu/packages/clojure.scm> "
-#~ "on a project hosted on I<gitlab>, but only print it I<without> opening "
-#~ "with B<xdg-open>(1):"
-#~ msgstr ""
-#~ "Géneréz un lien des lignes 59 à 94 de I<nongnu/packages/clojure.scm> dans "
-#~ "un projet hébergér sur I<gitlab>, mais seulement imprimez le lien I<sans> "
-#~ "l'ouvrir avec B<xdg-open>(1):"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-#~ msgstr ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-
-#~ msgid ""
-#~ "Configure an URL override, and open the file I<src/app_add.c> without "
-#~ "selecting an specific line:"
-#~ msgstr ""
-#~ "Configurez un modèle de substitution d'URL, et ouvrir le fichier I<src/"
-#~ "app_add.c> sans choisir un numeró de ligne:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOpening https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-#~ msgstr ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOuverture de https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-
-#~ msgid "B<git-config>(1) B<xdg-open>(1)"
-#~ msgstr "B<git-config>(1) B<xdg-open>(1)"
diff --git a/po/LC_MESSAGES/doc/remembering.en.1.in/pt.po b/po/LC_MESSAGES/doc/remembering.en.1.in/pt.po
deleted file mode 100644
index 1553777..0000000
--- a/po/LC_MESSAGES/doc/remembering.en.1.in/pt.po
+++ /dev/null
@@ -1,619 +0,0 @@
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2021-09-02 12:39-0300\n"
-"PO-Revision-Date: 2021-09-02 12:40-0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.0\n"
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, no-wrap
-msgid "REMEMBERING"
-msgstr ""
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, no-wrap
-msgid "@DATE@"
-msgstr "@DATE@"
-
-#. type: TH
-#: doc/remembering.en.1.in:1
-#, fuzzy, no-wrap
-#| msgid "git-permalink @VERSION@"
-msgid "remembering @VERSION@"
-msgstr "git-permalink @VERSION@"
-
-#. type: SH
-#: doc/remembering.en.1.in:4
-#, no-wrap
-msgid "NAME"
-msgstr "NOME"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:7
-msgid "remembering - sort list from I<STDIN> using past choices as weight."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:9
-#, no-wrap
-msgid "SYNOPSYS"
-msgstr "SINOPSE"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:12
-msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:14
-#, no-wrap
-msgid "DESCRIPTION"
-msgstr "DESCRIÇÃO"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:17
-msgid ""
-"B<remembering> takes a command that chooses an option as its behaviour, such "
-"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
-"it is used, will put the most used choices at the beginning of the list."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:20
-msgid ""
-"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
-"be sorted."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:22
-#, no-wrap
-msgid "OPTIONS"
-msgstr "OPÇÔES"
-
-#. type: TP
-#: doc/remembering.en.1.in:24
-#, no-wrap
-msgid "B<-c> I<COMMAND>"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:27
-msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
-msgstr ""
-
-#. type: TP
-#: doc/remembering.en.1.in:28
-#, no-wrap
-msgid "B<-p> I<PROFILE>"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:31
-msgid "The name of the I<PROFILE> where to look up and store raking data."
-msgstr ""
-
-#. type: TP
-#: doc/remembering.en.1.in:32
-#, fuzzy, no-wrap
-#| msgid "B<--help>, B<-h>"
-msgid "B<-h>, B<--help>"
-msgstr "B<--help>, B<-h>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:35
-#, fuzzy
-#| msgid "Show show help text."
-msgid "Show short help text."
-msgstr "Mostra mensagem de ajuda."
-
-#. type: TP
-#: doc/remembering.en.1.in:36
-#, fuzzy, no-wrap
-#| msgid "B<--version>, B<-V>"
-msgid "B<-V>, B<--version>"
-msgstr "B<--version>, B<-V>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:39
-msgid "Show version number."
-msgstr "Imprime o número da versão."
-
-#. type: SH
-#: doc/remembering.en.1.in:41
-#, no-wrap
-msgid "EXAMPLES"
-msgstr "EXEMPLOS"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:44
-msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:48
-#, no-wrap
-msgid "$ ls | remembering -p fzf-ls -c fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:53
-msgid ""
-"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
-"via B<remembering>, and execute with B<sh>(1) the choice picked:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:57
-#, no-wrap
-msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:62
-msgid "Successive invocations will put the frequent choices at the beginning."
-msgstr ""
-
-#. type: SS
-#: doc/remembering.en.1.in:63
-#, no-wrap
-msgid "Simulation of an interactive session"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:66
-msgid ""
-"Below is a simulation of an interactive session, comparing the usage of "
-"plain B<fzf>(1) against composing it with B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:75
-#, no-wrap
-msgid ""
-"$ mkdir -p example/\n"
-"$ cd example/\n"
-"$ touch a b c d e\n"
-"$ ls\n"
-"a b c d e\n"
-"$ ls | fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:79
-msgid ""
-"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
-"into it and create 5 empty files: a, b, c, d and e."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:81
-msgid ""
-"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
-"order."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:83
-msgid ""
-"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
-"its prompt to pick one option:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
-#: doc/remembering.en.1.in:141
-#, no-wrap
-msgid ""
-" e\n"
-" d\n"
-" c\n"
-" b\n"
-"E<gt> a\n"
-" 5/5\n"
-"E<gt>\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:97
-msgid ""
-"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
-"was given, and starts at the first one, \"a\"."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:99
-msgid ""
-"Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
-#, no-wrap
-msgid ""
-"$ ls | fzf\n"
-"d\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:108
-msgid ""
-"Now if we run the same command again, we'll be given the same options, in "
-"the same order:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:112
-#, no-wrap
-msgid "$ ls | fzf\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:127
-msgid ""
-"B<fzf>(1) is doing what it is told to: making a prompt with the options "
-"given to it from I<STDIN>, in the order it was given."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:129
-msgid ""
-"In order to have our past choices show up in the beginning of the list, we "
-"can compose B<fzf>(1) with B<remembering>:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
-#, no-wrap
-msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
-#, no-wrap
-msgid ""
-"$ ls | remembering -p tutorial-example -c 'fzf'\n"
-"d\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:149
-msgid ""
-"So far we get the exact same behaviour, but saying extra things. We tell "
-"B<remembering> that we want this specific I<PROFILE> to be called "
-"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
-"\\f(CR'fzf'\\fR command to be ran."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:151
-msgid ""
-"From now on if we run the exact same command again, B<remembering> will "
-"I<remember> that the last choice was \"d\", and put it in the beginning of "
-"the list, which B<fzf>(1) happily displays in the order it was given:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:163
-#, no-wrap
-msgid ""
-" e\n"
-" c\n"
-" b\n"
-" a\n"
-"E<gt> d\n"
-" 5/5\n"
-"E<gt>\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:170
-msgid ""
-"This time the \"d\" option was already the first one, and we can just press "
-"return to get it as the output value from the command."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.1.in:172
-msgid ""
-"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
-"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
-"line and writes to B<STDOUT>."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:174
-#, no-wrap
-msgid "SEE ALSO"
-msgstr "VEJA TAMBÉM"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:177
-msgid "B<remembering>(5)"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.1.in:179
-#, no-wrap
-msgid "AUTHORS"
-msgstr "AUTORES"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:185
-msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
-msgstr "E<.MT eu@euandre.org> EuAndreh E<.ME> e colaboradores."
-
-#. type: SH
-#: doc/remembering.en.1.in:187
-#, no-wrap
-msgid "BUGS"
-msgstr "BUGS"
-
-#. type: IP
-#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
-#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
-#, no-wrap
-msgid "\\(bu"
-msgstr "\\(bu"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:196
-msgid ""
-"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
-"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-msgstr ""
-"Relate bugs na E<.MT ~euandreh/public-inbox@lists.sr.ht> lista de discussão "
-"E<.ME .> Use o assunto \"\\f(CR[remembering] BUG ou TASK: E<lt>descriçãoE<gt>"
-"\\fR\"."
-
-#. type: Plain text
-#: doc/remembering.en.1.in:201
-msgid ""
-"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
-">"
-msgstr ""
-"Veja os bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<."
-"UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:205
-msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
-msgstr "E<.UR https://euandreh.xyz/remembering/pt/> Página inicial E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.1.in:208
-msgid ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comments and discussions E<.UE .>"
-msgstr ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comentários e discussões E<.UE .>"
-
-#, no-wrap
-#~ msgid "GIT-PERMALINK"
-#~ msgstr "GIT-PERMALINK"
-
-#, no-wrap
-#~ msgid "git-permalink user manual"
-#~ msgstr "manual do usuário do git-permalink"
-
-#~ msgid ""
-#~ "git-permalink - Git extension to generate web permalinks of files in a "
-#~ "repository."
-#~ msgstr ""
-#~ "git-permalink - extensão Git para gerar links web permanentes (permalink) "
-#~ "de arquivos de um repositório."
-
-#~ msgid "B<git-permalink> [OPTIONS] I<FILE> [I<LINENO>]"
-#~ msgstr "B<git-permalink> [OPÇÕES] I<ARQUIVO> [I<NOLINHA>]"
-
-#~ msgid ""
-#~ "B<git-permalink> will use Git itself to get a) the commit at I<HEAD> and "
-#~ "b) the I<remote.origin.url> via B<git-config>(1), and optionally c) an "
-#~ "URL template override. It then uses those values to build a permalink "
-#~ "URL, with the commit included on it to ensure it is I<permanent>, and "
-#~ "optionally the line number of the selected file."
-#~ msgstr ""
-#~ "B<git-permalink> usa o próprio Git para pegar a) o commit do I<HEAD> e b) "
-#~ "o I<remote.origin.url> usando B<git-config>(1), e opcionalmente c) um "
-#~ "modelo de substituição de URL. Então ele usa esses valores para "
-#~ "construir o link para uma URL I<permanente> (permalink), com o commit "
-#~ "incluso para garantir sua unicidade, e opcionalmente o número da linha "
-#~ "selecionada."
-
-#~ msgid "B<git-permalink> then uses B<xdg-open>(1) to open the URL."
-#~ msgstr "B<git-permalink> depois usa o B<xdg-open>(1) para abrir a URL."
-
-#, no-wrap
-#~ msgid "B<-p>"
-#~ msgstr "B<-p>"
-
-#~ msgid ""
-#~ "Only print the web URL link, don't try to open it with B<xdg-open>(1) or "
-#~ "do anything else. By default this is turned off."
-#~ msgstr ""
-#~ "Somento imprime o link da URL web, não tenta abrí-lo com B<xdg-open>(1) "
-#~ "ou fazer qualquer coisa com ele. Por padrão isso está desligado."
-
-#, no-wrap
-#~ msgid "OVERRIDES"
-#~ msgstr "MODELOS"
-
-#~ msgid ""
-#~ "If you want to configure the permalink URL template for a project with an "
-#~ "unsupported origin you can do so via B<git-config>(1)."
-#~ msgstr ""
-#~ "Se você quiser configurar o modelo de substituição de URL de um projeto "
-#~ "que não tem suporte a um tipo de origem remota você pode fazê-lo com "
-#~ "B<git-config>(1)."
-
-#~ msgid "There are two configuration options available:"
-#~ msgstr "Há dois tipos de opções de configuração disponíveis:"
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-file-commit>"
-#~ msgstr "B<git-permalink.template-file-commit>"
-
-#~ msgid ""
-#~ "An URL template where the name of the I<file> comes first, and the "
-#~ "I<commit> comes second. cgit uses this style of URL, with something like "
-#~ "in:"
-#~ msgstr ""
-#~ "Um modelo de substituição de URL em que o nome do I<arquivo> vem "
-#~ "primeiro, e o I<commit> vem depois. cgit usa esse tipo de URL, como em:"
-
-#, no-wrap
-#~ msgid "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-#~ msgstr "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-
-#~ msgid ""
-#~ "On this example, the name of the I<file> comes first and I<commit> comes "
-#~ "at the very end after \"id=\"."
-#~ msgstr ""
-#~ "Nesse exemplo, o nome do I<arquivo> vem primeiro e o I<commit> vem só no "
-#~ "final, depois do \"id=\"."
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-commit-file>"
-#~ msgstr "B<git-permalink.template-commit-file>"
-
-#~ msgid ""
-#~ "An URL template where the I<commit> comes first, and the name of the "
-#~ "I<file> comes second. sourcehut uses this style of URL, with something "
-#~ "like:"
-#~ msgstr ""
-#~ "Um modelo de substituição de URL em que o I<commit> vem primeiro, e o "
-#~ "nome do I<arquivo> vem depois. sourcehut usa esse tipo de URL, como em:"
-
-#, no-wrap
-#~ msgid "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-#~ msgstr "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-
-#~ msgid ""
-#~ "On this example, the I<commit> comes first on the URL path, and the "
-#~ "I<file> name comes at the end."
-#~ msgstr ""
-#~ "Nesse exemplo, o I<commit> aparece primeiro no caminho da URL, e o nome "
-#~ "do I<arquivo> vem depois."
-
-#~ msgid ""
-#~ "If none of those values are found by B<git-config>(1) and B<git-"
-#~ "permalink> can't guess the URL, it exits with an error."
-#~ msgstr ""
-#~ "Se nenhuma das duas opções for encontrada pelo B<git-config>(1) e o B<git-"
-#~ "permalink> não consegue adivinhar a URL, ele termina com um erro."
-
-#, no-wrap
-#~ msgid "SUPPORTED REMOTES"
-#~ msgstr "ORIGENS REMOTAS COM SUPORTE"
-
-#~ msgid "The current supported remotes are:"
-#~ msgstr "A lista atual de origens remotas com suporte é:"
-
-#~ msgid "git.euandreh.xyz (where git-permalink itself is hosted =p)"
-#~ msgstr "git.euandreh.xyz (onde o próprio git-permalink está hospedado =p)"
-
-#~ msgid "sourcehut"
-#~ msgstr "sourcehut"
-
-#~ msgid "git.kernel.org"
-#~ msgstr "git.kernel.org"
-
-#~ msgid "savannah"
-#~ msgstr "savannah"
-
-#~ msgid "notabug"
-#~ msgstr "notabug"
-
-#~ msgid "codeberg"
-#~ msgstr "codeberg"
-
-#~ msgid "bitbucket"
-#~ msgstr "bitbucket"
-
-#~ msgid "pagure"
-#~ msgstr "pagure"
-
-#~ msgid "gitlab"
-#~ msgstr "gitlab"
-
-#~ msgid "github"
-#~ msgstr "github"
-
-#~ msgid "Patches to add support for more source code forges are welcome!"
-#~ msgstr ""
-#~ "Mudanças para adição de mais sites de hospedagem de código são bem-vindas!"
-
-#~ msgid ""
-#~ "See E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> for discussion and more information."
-#~ msgstr ""
-#~ "Veja E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> para discussão e mais informações."
-
-#~ msgid ""
-#~ "Open I<src/fold.c> of a project with its origin pointing to I<sourcehut>:"
-#~ msgstr ""
-#~ "Abre o arquivo I<src/fold.c> de um projeto com a origem apontada para o "
-#~ "I<sourcehut>:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOpening https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-#~ msgstr ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tAbrindo https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-
-#~ msgid ""
-#~ "Generate link for lines 59 through 94 of I<nongnu/packages/clojure.scm> "
-#~ "on a project hosted on I<gitlab>, but only print it I<without> opening "
-#~ "with B<xdg-open>(1):"
-#~ msgstr ""
-#~ "Gera um link das linhas 59 a 94 do arquivo I<nongnu/packages/clojure.scm> "
-#~ "em um projeto hospedado no I<gitlab>, mas somente o imprimie I<sem> abrí-"
-#~ "lo com B<xdg-open>(1):"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-#~ msgstr ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-
-#~ msgid ""
-#~ "Configure an URL override, and open the file I<src/app_add.c> without "
-#~ "selecting an specific line:"
-#~ msgstr ""
-#~ "Configura um modelo de URL, e abre o arquivo I<src/app_add.c> sem "
-#~ "selecionar uma linha específica:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOpening https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-#~ msgstr ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tAbrindo https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-
-#~ msgid "B<git-config>(1) B<xdg-open>(1)"
-#~ msgstr "B<git-config>(1) B<xdg-open>(1)"
diff --git a/po/LC_MESSAGES/doc/remembering.en.5.in/eo.po b/po/LC_MESSAGES/doc/remembering.en.5.in/eo.po
deleted file mode 100644
index 0bb9ee1..0000000
--- a/po/LC_MESSAGES/doc/remembering.en.5.in/eo.po
+++ /dev/null
@@ -1,480 +0,0 @@
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2021-09-08 07:30-0300\n"
-"PO-Revision-Date: 2021-09-02 12:41-0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: eo\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.0\n"
-"X-Poedit-Bookmarks: -1,-1,5,-1,-1,-1,-1,-1,-1,-1\n"
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, no-wrap
-msgid "REMEMBERING"
-msgstr ""
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, no-wrap
-msgid "@DATE@"
-msgstr "@DATE@"
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, fuzzy, no-wrap
-#| msgid "git-permalink @VERSION@"
-msgid "remembering @VERSION@"
-msgstr "git-permalink @VERSION@"
-
-#. type: SH
-#: doc/remembering.en.5.in:4
-#, no-wrap
-msgid "NAME"
-msgstr "NOMO"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:7
-msgid "remembering - format of the I<PROFILE> text file."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:9
-#, no-wrap
-msgid "PROFILE"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:13
-msgid ""
-"The I<PROFILE> is a text file, stored on \\f(CR$XDG_DATA_HOME/remembering/"
-"profile-name\\fR if \\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it "
-"lives in \\f(CR~/.local/share/remembering/profile-name\\fR."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:15
-msgid "Each line of the I<PROFILE> contains three pieces of information:"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:17
-#, no-wrap
-msgid "1"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:19
-msgid "the B<rank> of the current entry;"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:19
-#, no-wrap
-msgid "2"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:21
-msgid "the \\f(CR:\\fR separator;"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:21
-#, no-wrap
-msgid "3"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:23
-msgid "the B<entry> itself."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:26
-msgid ""
-"The B<rank> is a number, and the B<entry> is all the text until the end of "
-"the line after the \\f(CR:\\fR separator:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:34
-#, no-wrap
-msgid ""
-"0:an entry\n"
-"0:banana\n"
-"0:entry\n"
-"0:something\n"
-"0:zzz\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:38
-msgid ""
-"Above is an example of a I<PROFILE> file where all the entries have the "
-"default B<rank> value: B<0>."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:40
-msgid ""
-"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
-"be:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:48
-#, no-wrap
-msgid ""
-"0:an entry\n"
-"1:banana\n"
-"0:entry\n"
-"0:something\n"
-"0:zzz\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:52
-msgid ""
-"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
-"beginning of the list, and as new picks happen their weight will increase, "
-"and will keep going up in priority."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:55
-msgid ""
-"The entries of the I<PROFILE> are created and kept sorted. "
-"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:58
-msgid ""
-"The current raking algorithm increments entries as a simple counter. Every "
-"time an entry is picked, its ranked is incremented in the I<PROFILE>."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:60
-#, no-wrap
-msgid "SEE ALSO"
-msgstr "VIDU ANKAŬ"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:63
-msgid "B<remembering>(1)"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:65
-#, no-wrap
-msgid "AUTHORS"
-msgstr "AŬTOROJ"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:71
-msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
-msgstr "E<.MT eu@euandre.org> EuAndreh E<.ME> kaj la kontribuuloj."
-
-#. type: SH
-#: doc/remembering.en.5.in:73
-#, no-wrap
-msgid "BUGS"
-msgstr "MISFUNKCIOJ"
-
-#. type: IP
-#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
-#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
-#, no-wrap
-msgid "\\(bu"
-msgstr "\\(bu"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:82
-msgid ""
-"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
-"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-msgstr ""
-"Raportu misfunkcioj al la E<.MT ~euandreh/public-inbox@lists.sr.ht> "
-"dissendolisto E<.ME .> Uzu la subjekton \"\\f(CR[remembering] BUG aŭ TASK: "
-"E<lt>priskriboE<gt>\\fR\"."
-
-#. type: Plain text
-#: doc/remembering.en.5.in:87
-msgid ""
-"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
-">"
-msgstr ""
-"Foliumu misfunkcioj E<.UR https://euandreh.xyz/remembering/TODOs.html> rete "
-"E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:91
-msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
-msgstr "E<.UR https://euandreh.xyz/remembering/eo/> Ĉefpaĝo E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:94
-msgid ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comments and discussions E<.UE .>"
-msgstr ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Komentoj kaj diskutoj E<.UE .>"
-
-#, no-wrap
-#~ msgid "SYNOPSYS"
-#~ msgstr "RESUMO"
-
-#, no-wrap
-#~ msgid "DESCRIPTION"
-#~ msgstr "PRISKRIBO"
-
-#, no-wrap
-#~ msgid "OPTIONS"
-#~ msgstr "EBLOJ"
-
-#, fuzzy, no-wrap
-#~| msgid "B<--help>, B<-h>"
-#~ msgid "B<-h>, B<--help>"
-#~ msgstr "B<--help>, B<-h>"
-
-#, fuzzy
-#~| msgid "Show show help text."
-#~ msgid "Show short help text."
-#~ msgstr "Montras helpmesaĝon."
-
-#, fuzzy, no-wrap
-#~| msgid "B<--version>, B<-V>"
-#~ msgid "B<-V>, B<--version>"
-#~ msgstr "B<--version>, B<-V>"
-
-#~ msgid "Show version number."
-#~ msgstr "Montras versian numeron."
-
-#, no-wrap
-#~ msgid "EXAMPLES"
-#~ msgstr "EKZEMPLOJ"
-
-#, no-wrap
-#~ msgid "GIT-PERMALINK"
-#~ msgstr "GIT-PERMALINK"
-
-#, no-wrap
-#~ msgid "git-permalink user manual"
-#~ msgstr "git-permalink uzmanlibro"
-
-#~ msgid ""
-#~ "git-permalink - Git extension to generate web permalinks of files in a "
-#~ "repository."
-#~ msgstr ""
-#~ "git-permalink - Git-etendo por generi interretajn konstantajn ligojn "
-#~ "(permalink) de dosieroj en deponejo."
-
-#~ msgid "B<git-permalink> [OPTIONS] I<FILE> [I<LINENO>]"
-#~ msgstr "B<git-permalink> [EBLOJ] I<DOSIERO> [I<LINIONO>]"
-
-#~ msgid ""
-#~ "B<git-permalink> will use Git itself to get a) the commit at I<HEAD> and "
-#~ "b) the I<remote.origin.url> via B<git-config>(1), and optionally c) an "
-#~ "URL template override. It then uses those values to build a permalink "
-#~ "URL, with the commit included on it to ensure it is I<permanent>, and "
-#~ "optionally the line number of the selected file."
-#~ msgstr ""
-#~ "B<git-permalink> uzas Git por akiri a) la commit ĉe I<HEAD> kaj b) la "
-#~ "I<remote.origin.url> per B<git-config>(1), kaj laŭvole c) URL ŝablono. "
-#~ "Ĝi tiam uzas tiujn por krei I<konstantan> URL ligon (permalink), kun la "
-#~ "commit ene por certigi ke ĝi estas konstantan, kaj laŭvole la linia "
-#~ "numero elektita."
-
-#~ msgid "B<git-permalink> then uses B<xdg-open>(1) to open the URL."
-#~ msgstr "B<git-permalink> tiam uzas B<xdg-open>(1) por malfermi la URL."
-
-#, no-wrap
-#~ msgid "B<-p>"
-#~ msgstr "B<-p>"
-
-#~ msgid ""
-#~ "Only print the web URL link, don't try to open it with B<xdg-open>(1) or "
-#~ "do anything else. By default this is turned off."
-#~ msgstr ""
-#~ "Nur presas la ligon, ne provas malfermi ĝin kun B<xdg-open>(1) aŭ fari "
-#~ "ion alian. Defaŭlte ĉi tio estas malŝaltita."
-
-#, no-wrap
-#~ msgid "OVERRIDES"
-#~ msgstr "SUPERREGOJ"
-
-#~ msgid ""
-#~ "If you want to configure the permalink URL template for a project with an "
-#~ "unsupported origin you can do so via B<git-config>(1)."
-#~ msgstr ""
-#~ "Se vi volas agordi la URL ŝablonon por projekto kun nesubtenita remoton, "
-#~ "vi povas uzi B<git-config>(1)."
-
-#~ msgid "There are two configuration options available:"
-#~ msgstr "Estas du agordaj elektoj disponeblaj:"
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-file-commit>"
-#~ msgstr "B<git-permalink.template-file-commit>"
-
-#~ msgid ""
-#~ "An URL template where the name of the I<file> comes first, and the "
-#~ "I<commit> comes second. cgit uses this style of URL, with something like "
-#~ "in:"
-#~ msgstr ""
-#~ "URL ŝablono, kie la nomo de la I<dosiero> estas unue, kaj la I<commit> "
-#~ "estas due. cgit uzas ĉi tiun specon de URL, kiel en:"
-
-#, no-wrap
-#~ msgid "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-#~ msgstr "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-
-#~ msgid ""
-#~ "On this example, the name of the I<file> comes first and I<commit> comes "
-#~ "at the very end after \"id=\"."
-#~ msgstr ""
-#~ "Laŭ ĉi tiu ekzemplo, la nomo de la I<dosiero> estas unue kaj la I<commit> "
-#~ "estas fine post \"id=\"."
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-commit-file>"
-#~ msgstr "B<git-permalink.template-commit-file>"
-
-#~ msgid ""
-#~ "An URL template where the I<commit> comes first, and the name of the "
-#~ "I<file> comes second. sourcehut uses this style of URL, with something "
-#~ "like:"
-#~ msgstr ""
-#~ "URL ŝablono, kie la I<commit> estas unue, kaj la nomo de la I<dosiero> "
-#~ "estas due. sourcehut uzas ĉi tiun specon de URL, kiel en:"
-
-#, no-wrap
-#~ msgid "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-#~ msgstr "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-
-#~ msgid ""
-#~ "On this example, the I<commit> comes first on the URL path, and the "
-#~ "I<file> name comes at the end."
-#~ msgstr ""
-#~ "Laŭ ĉi tiu ekzemplo, la I<commit> estas unue en la URL, kaj la nome de la "
-#~ "I<dosiero> estas poste."
-
-#~ msgid ""
-#~ "If none of those values are found by B<git-config>(1) and B<git-"
-#~ "permalink> can't guess the URL, it exits with an error."
-#~ msgstr ""
-#~ "Se neniu el tiuj estas estas trovita por B<git-config>(1) aŭ B<git-"
-#~ "permalink> ne povas diveni la URL, ĝi eliras erare."
-
-#, no-wrap
-#~ msgid "SUPPORTED REMOTES"
-#~ msgstr "SUBTENITAJ REMOTOJ"
-
-#~ msgid "The current supported remotes are:"
-#~ msgstr "La nunaj subtenitaj remotoj estas:"
-
-#~ msgid "git.euandreh.xyz (where git-permalink itself is hosted =p)"
-#~ msgstr "git.euandreh.xyz (kie git-permalink estas gastiga =p)"
-
-#~ msgid "sourcehut"
-#~ msgstr "sourcehut"
-
-#~ msgid "git.kernel.org"
-#~ msgstr "git.kernel.org"
-
-#~ msgid "savannah"
-#~ msgstr "savannah"
-
-#~ msgid "notabug"
-#~ msgstr "notabug"
-
-#~ msgid "codeberg"
-#~ msgstr "codeberg"
-
-#~ msgid "bitbucket"
-#~ msgstr "bitbucket"
-
-#~ msgid "pagure"
-#~ msgstr "pagure"
-
-#~ msgid "gitlab"
-#~ msgstr "gitlab"
-
-#~ msgid "github"
-#~ msgstr "github"
-
-#~ msgid "Patches to add support for more source code forges are welcome!"
-#~ msgstr "Ŝanĝoj por subteni pli da fontkodaj forĝejoj estas bonvenaj!"
-
-#~ msgid ""
-#~ "See E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> for discussion and more information."
-#~ msgstr ""
-#~ "Foliumu E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> por diskuto kaj pli da informoj."
-
-#~ msgid ""
-#~ "Open I<src/fold.c> of a project with its origin pointing to I<sourcehut>:"
-#~ msgstr ""
-#~ "Malfermas I<src/fold.c> de projekto kiu origino direktiĝas al "
-#~ "I<sourcehut>:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOpening https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-#~ msgstr ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tMalfermado de https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-
-#~ msgid ""
-#~ "Generate link for lines 59 through 94 of I<nongnu/packages/clojure.scm> "
-#~ "on a project hosted on I<gitlab>, but only print it I<without> opening "
-#~ "with B<xdg-open>(1):"
-#~ msgstr ""
-#~ "Kreas ligon por linioj 59 ĝis 94 de I<nongnu/packages/clojure.scm> en "
-#~ "projekto gastigita ĉe I<gitlab>, sed nur presu ĝin I<sen> malfermi kun "
-#~ "B<xdg-open>(1):"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-#~ msgstr ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-
-#~ msgid ""
-#~ "Configure an URL override, and open the file I<src/app_add.c> without "
-#~ "selecting an specific line:"
-#~ msgstr ""
-#~ "Agordas URL superrego, kaj malfermas la dosieron I<src/app_add.c> sen "
-#~ "elekti specifan linion:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOpening https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-#~ msgstr ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\\Malfermado de https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-
-#~ msgid "B<git-config>(1) B<xdg-open>(1)"
-#~ msgstr "B<git-config>(1) B<xdg-open>(1)"
diff --git a/po/LC_MESSAGES/doc/remembering.en.5.in/fr.po b/po/LC_MESSAGES/doc/remembering.en.5.in/fr.po
deleted file mode 100644
index dac6946..0000000
--- a/po/LC_MESSAGES/doc/remembering.en.5.in/fr.po
+++ /dev/null
@@ -1,483 +0,0 @@
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2021-09-08 07:30-0300\n"
-"PO-Revision-Date: 2021-09-02 12:41-0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.0\n"
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, no-wrap
-msgid "REMEMBERING"
-msgstr ""
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, no-wrap
-msgid "@DATE@"
-msgstr "@DATE@"
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, fuzzy, no-wrap
-#| msgid "git-permalink @VERSION@"
-msgid "remembering @VERSION@"
-msgstr "git-permalink @VERSION@"
-
-#. type: SH
-#: doc/remembering.en.5.in:4
-#, no-wrap
-msgid "NAME"
-msgstr "NOM"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:7
-msgid "remembering - format of the I<PROFILE> text file."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:9
-#, no-wrap
-msgid "PROFILE"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:13
-msgid ""
-"The I<PROFILE> is a text file, stored on \\f(CR$XDG_DATA_HOME/remembering/"
-"profile-name\\fR if \\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it "
-"lives in \\f(CR~/.local/share/remembering/profile-name\\fR."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:15
-msgid "Each line of the I<PROFILE> contains three pieces of information:"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:17
-#, no-wrap
-msgid "1"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:19
-msgid "the B<rank> of the current entry;"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:19
-#, no-wrap
-msgid "2"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:21
-msgid "the \\f(CR:\\fR separator;"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:21
-#, no-wrap
-msgid "3"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:23
-msgid "the B<entry> itself."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:26
-msgid ""
-"The B<rank> is a number, and the B<entry> is all the text until the end of "
-"the line after the \\f(CR:\\fR separator:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:34
-#, no-wrap
-msgid ""
-"0:an entry\n"
-"0:banana\n"
-"0:entry\n"
-"0:something\n"
-"0:zzz\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:38
-msgid ""
-"Above is an example of a I<PROFILE> file where all the entries have the "
-"default B<rank> value: B<0>."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:40
-msgid ""
-"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
-"be:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:48
-#, no-wrap
-msgid ""
-"0:an entry\n"
-"1:banana\n"
-"0:entry\n"
-"0:something\n"
-"0:zzz\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:52
-msgid ""
-"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
-"beginning of the list, and as new picks happen their weight will increase, "
-"and will keep going up in priority."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:55
-msgid ""
-"The entries of the I<PROFILE> are created and kept sorted. "
-"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:58
-msgid ""
-"The current raking algorithm increments entries as a simple counter. Every "
-"time an entry is picked, its ranked is incremented in the I<PROFILE>."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:60
-#, no-wrap
-msgid "SEE ALSO"
-msgstr "VOIR AUSSI"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:63
-msgid "B<remembering>(1)"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:65
-#, no-wrap
-msgid "AUTHORS"
-msgstr "AUTEURS"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:71
-msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
-msgstr "E<.MT eu@euandre.org> EuAndreh E<.ME> et les contributeurs."
-
-#. type: SH
-#: doc/remembering.en.5.in:73
-#, no-wrap
-msgid "BUGS"
-msgstr "BUGS"
-
-#. type: IP
-#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
-#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
-#, no-wrap
-msgid "\\(bu"
-msgstr "\\(bu"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:82
-msgid ""
-"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
-"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-msgstr ""
-"Soumettre un bogue dans la E<.MT ~euandreh/public-inbox@lists.sr.ht> liste "
-"de diffusion E<.ME .> Utilise le sujet \"\\f(CR[remembering] BUG ou TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-
-#. type: Plain text
-#: doc/remembering.en.5.in:87
-msgid ""
-"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
-">"
-msgstr ""
-"Parcourir les bogues E<.UR https://euandreh.xyz/remembering/TODOs.html> en "
-"ligne E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:91
-msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
-msgstr "E<.UR https://euandreh.xyz/remembering/fr/> Page d'accueil E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:94
-msgid ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comments and discussions E<.UE .>"
-msgstr ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Commentaires et discussions E<.UE .>"
-
-#, no-wrap
-#~ msgid "SYNOPSYS"
-#~ msgstr "SYNOPSIS"
-
-#, no-wrap
-#~ msgid "DESCRIPTION"
-#~ msgstr "DESCRIPTION"
-
-#, no-wrap
-#~ msgid "OPTIONS"
-#~ msgstr "OPTIONS"
-
-#, fuzzy, no-wrap
-#~| msgid "B<--help>, B<-h>"
-#~ msgid "B<-h>, B<--help>"
-#~ msgstr "B<--help>, B<-h>"
-
-#, fuzzy
-#~| msgid "Show show help text."
-#~ msgid "Show short help text."
-#~ msgstr "Affiche message d'aide."
-
-#, fuzzy, no-wrap
-#~| msgid "B<--version>, B<-V>"
-#~ msgid "B<-V>, B<--version>"
-#~ msgstr "B<--version>, B<-V>"
-
-#~ msgid "Show version number."
-#~ msgstr "Imprime le numeró de version."
-
-#, no-wrap
-#~ msgid "EXAMPLES"
-#~ msgstr "EXAMPLES"
-
-#, no-wrap
-#~ msgid "GIT-PERMALINK"
-#~ msgstr "GIT-PERMALINK"
-
-#, no-wrap
-#~ msgid "git-permalink user manual"
-#~ msgstr "manual d'utilisateur de git-permalink"
-
-#~ msgid ""
-#~ "git-permalink - Git extension to generate web permalinks of files in a "
-#~ "repository."
-#~ msgstr ""
-#~ "git-permalink - extension Git pour génerér liens web permanent "
-#~ "(permalink) de fichiers dans un dépôt."
-
-#~ msgid "B<git-permalink> [OPTIONS] I<FILE> [I<LINENO>]"
-#~ msgstr "B<git-permalink> [OPTIONS] I<FICHIERS> [I<LINENO>]"
-
-#~ msgid ""
-#~ "B<git-permalink> will use Git itself to get a) the commit at I<HEAD> and "
-#~ "b) the I<remote.origin.url> via B<git-config>(1), and optionally c) an "
-#~ "URL template override. It then uses those values to build a permalink "
-#~ "URL, with the commit included on it to ensure it is I<permanent>, and "
-#~ "optionally the line number of the selected file."
-#~ msgstr ""
-#~ "B<git-permalink> utilise Git pour prendre a) le commit au I<HEAD> et b) "
-#~ "le I<remote.origin.url> avec B<git-config>(1), et se possible c) un "
-#~ "modèle de substituition d'URL. Il utilise ces valeurs pour construire un "
-#~ "URL I<permanent>, avec le commit inclus pour garantir la unicitè, e "
-#~ "optionalement le numeró de la ligne choisi."
-
-#~ msgid "B<git-permalink> then uses B<xdg-open>(1) to open the URL."
-#~ msgstr "B<git-permalink> après utilise B<xdg-open>(1) pour ouvrir l'URL."
-
-#, no-wrap
-#~ msgid "B<-p>"
-#~ msgstr "B<-p>"
-
-#~ msgid ""
-#~ "Only print the web URL link, don't try to open it with B<xdg-open>(1) or "
-#~ "do anything else. By default this is turned off."
-#~ msgstr ""
-#~ "Seulement imprimez le lien d'URL web, n'essayez pas de l'ouvrir avec "
-#~ "B<xdg-open>(1) ou faire quelques choses avec lui. Par défaut cela est "
-#~ "désactivé."
-
-#, no-wrap
-#~ msgid "OVERRIDES"
-#~ msgstr "MODÈLES"
-
-#~ msgid ""
-#~ "If you want to configure the permalink URL template for a project with an "
-#~ "unsupported origin you can do so via B<git-config>(1)."
-#~ msgstr ""
-#~ "Si vous souhaitez configurer le modèle de substitution d'URL pour un "
-#~ "projet que a un références distantes que n'est pas prises en charge, vous "
-#~ "utilize B<git-config>(1)."
-
-#~ msgid "There are two configuration options available:"
-#~ msgstr "Il y a deux options de configuration disponible:"
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-file-commit>"
-#~ msgstr "B<git-permalink.template-file-commit>"
-
-#~ msgid ""
-#~ "An URL template where the name of the I<file> comes first, and the "
-#~ "I<commit> comes second. cgit uses this style of URL, with something like "
-#~ "in:"
-#~ msgstr ""
-#~ "Un modèle de substitution d'URL où le nom du I<fichier> est avant, et le "
-#~ "I<commit> est après. cgit utilise cette type d'URL, comme dans:"
-
-#, no-wrap
-#~ msgid "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-#~ msgstr "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-
-#~ msgid ""
-#~ "On this example, the name of the I<file> comes first and I<commit> comes "
-#~ "at the very end after \"id=\"."
-#~ msgstr ""
-#~ "Dans cet example, le nom du I<fichier> est avant et le I<commit> est à la "
-#~ "fin, après le \"id=\"."
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-commit-file>"
-#~ msgstr "B<git-permalink.template-commit-file>"
-
-#~ msgid ""
-#~ "An URL template where the I<commit> comes first, and the name of the "
-#~ "I<file> comes second. sourcehut uses this style of URL, with something "
-#~ "like:"
-#~ msgstr ""
-#~ "Un modèle de substitution d'URL où le I<commit> est avant, et le nom du "
-#~ "I<fichier> est après. sourcehut utilise cette type d'URL, comme dans:"
-
-#, no-wrap
-#~ msgid "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-#~ msgstr "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-
-#~ msgid ""
-#~ "On this example, the I<commit> comes first on the URL path, and the "
-#~ "I<file> name comes at the end."
-#~ msgstr ""
-#~ "Dans cet example, le I<commit> est avant dans le chemin de l'URL, et le "
-#~ "I<fichier> est après."
-
-#~ msgid ""
-#~ "If none of those values are found by B<git-config>(1) and B<git-"
-#~ "permalink> can't guess the URL, it exits with an error."
-#~ msgstr ""
-#~ "Si aucune options n'est pas trouvé par B<git-config>(1) et B<git-"
-#~ "permalink> ne peut pas deviner l'URL, cela se termine par une erreur."
-
-#, no-wrap
-#~ msgid "SUPPORTED REMOTES"
-#~ msgstr "RÉFÉRENCES DISTANTES PRISES EN CHARGE"
-
-#~ msgid "The current supported remotes are:"
-#~ msgstr "La liste de références distantes prises en charge est:"
-
-#~ msgid "git.euandreh.xyz (where git-permalink itself is hosted =p)"
-#~ msgstr "git.euandreh.xyz (où git-permalink est hébergé =p)"
-
-#~ msgid "sourcehut"
-#~ msgstr "sourcehut"
-
-#~ msgid "git.kernel.org"
-#~ msgstr "git.kernel.org"
-
-#~ msgid "savannah"
-#~ msgstr "savannah"
-
-#~ msgid "notabug"
-#~ msgstr "notabug"
-
-#~ msgid "codeberg"
-#~ msgstr "codeberg"
-
-#~ msgid "bitbucket"
-#~ msgstr "bitbucket"
-
-#~ msgid "pagure"
-#~ msgstr "pagure"
-
-#~ msgid "gitlab"
-#~ msgstr "gitlab"
-
-#~ msgid "github"
-#~ msgstr "github"
-
-#~ msgid "Patches to add support for more source code forges are welcome!"
-#~ msgstr ""
-#~ "Les changements pour ajouter plus de sites d'hébergement de code sont les "
-#~ "bienvenus!"
-
-#~ msgid ""
-#~ "See E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> for discussion and more information."
-#~ msgstr ""
-#~ "Regarde E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> pour les discussions et plus d'information."
-
-#~ msgid ""
-#~ "Open I<src/fold.c> of a project with its origin pointing to I<sourcehut>:"
-#~ msgstr ""
-#~ "Ouvrez I<src/fold.c> d'un projet qui a de référence distante pointée a "
-#~ "I<sourcehut>:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOpening https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-#~ msgstr ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOuverture de https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-
-#~ msgid ""
-#~ "Generate link for lines 59 through 94 of I<nongnu/packages/clojure.scm> "
-#~ "on a project hosted on I<gitlab>, but only print it I<without> opening "
-#~ "with B<xdg-open>(1):"
-#~ msgstr ""
-#~ "Géneréz un lien des lignes 59 à 94 de I<nongnu/packages/clojure.scm> dans "
-#~ "un projet hébergér sur I<gitlab>, mais seulement imprimez le lien I<sans> "
-#~ "l'ouvrir avec B<xdg-open>(1):"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-#~ msgstr ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-
-#~ msgid ""
-#~ "Configure an URL override, and open the file I<src/app_add.c> without "
-#~ "selecting an specific line:"
-#~ msgstr ""
-#~ "Configurez un modèle de substitution d'URL, et ouvrir le fichier I<src/"
-#~ "app_add.c> sans choisir un numeró de ligne:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOpening https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-#~ msgstr ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOuverture de https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-
-#~ msgid "B<git-config>(1) B<xdg-open>(1)"
-#~ msgstr "B<git-config>(1) B<xdg-open>(1)"
diff --git a/po/LC_MESSAGES/doc/remembering.en.5.in/pt.po b/po/LC_MESSAGES/doc/remembering.en.5.in/pt.po
deleted file mode 100644
index f75496a..0000000
--- a/po/LC_MESSAGES/doc/remembering.en.5.in/pt.po
+++ /dev/null
@@ -1,482 +0,0 @@
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2021-09-08 07:30-0300\n"
-"PO-Revision-Date: 2021-09-02 12:41-0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.0\n"
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, no-wrap
-msgid "REMEMBERING"
-msgstr ""
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, no-wrap
-msgid "@DATE@"
-msgstr "@DATE@"
-
-#. type: TH
-#: doc/remembering.en.5.in:1
-#, fuzzy, no-wrap
-#| msgid "git-permalink @VERSION@"
-msgid "remembering @VERSION@"
-msgstr "git-permalink @VERSION@"
-
-#. type: SH
-#: doc/remembering.en.5.in:4
-#, no-wrap
-msgid "NAME"
-msgstr "NOME"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:7
-msgid "remembering - format of the I<PROFILE> text file."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:9
-#, no-wrap
-msgid "PROFILE"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:13
-msgid ""
-"The I<PROFILE> is a text file, stored on \\f(CR$XDG_DATA_HOME/remembering/"
-"profile-name\\fR if \\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it "
-"lives in \\f(CR~/.local/share/remembering/profile-name\\fR."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:15
-msgid "Each line of the I<PROFILE> contains three pieces of information:"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:17
-#, no-wrap
-msgid "1"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:19
-msgid "the B<rank> of the current entry;"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:19
-#, no-wrap
-msgid "2"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:21
-msgid "the \\f(CR:\\fR separator;"
-msgstr ""
-
-#. type: IP
-#: doc/remembering.en.5.in:21
-#, no-wrap
-msgid "3"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:23
-msgid "the B<entry> itself."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:26
-msgid ""
-"The B<rank> is a number, and the B<entry> is all the text until the end of "
-"the line after the \\f(CR:\\fR separator:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:34
-#, no-wrap
-msgid ""
-"0:an entry\n"
-"0:banana\n"
-"0:entry\n"
-"0:something\n"
-"0:zzz\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:38
-msgid ""
-"Above is an example of a I<PROFILE> file where all the entries have the "
-"default B<rank> value: B<0>."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:40
-msgid ""
-"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
-"be:"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:48
-#, no-wrap
-msgid ""
-"0:an entry\n"
-"1:banana\n"
-"0:entry\n"
-"0:something\n"
-"0:zzz\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:52
-msgid ""
-"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
-"beginning of the list, and as new picks happen their weight will increase, "
-"and will keep going up in priority."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:55
-msgid ""
-"The entries of the I<PROFILE> are created and kept sorted. "
-"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
-msgstr ""
-
-#. type: Plain text
-#: doc/remembering.en.5.in:58
-msgid ""
-"The current raking algorithm increments entries as a simple counter. Every "
-"time an entry is picked, its ranked is incremented in the I<PROFILE>."
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:60
-#, no-wrap
-msgid "SEE ALSO"
-msgstr "VEJA TAMBÉM"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:63
-msgid "B<remembering>(1)"
-msgstr ""
-
-#. type: SH
-#: doc/remembering.en.5.in:65
-#, no-wrap
-msgid "AUTHORS"
-msgstr "AUTORES"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:71
-msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
-msgstr "E<.MT eu@euandre.org> EuAndreh E<.ME> e colaboradores."
-
-#. type: SH
-#: doc/remembering.en.5.in:73
-#, no-wrap
-msgid "BUGS"
-msgstr "BUGS"
-
-#. type: IP
-#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
-#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
-#, no-wrap
-msgid "\\(bu"
-msgstr "\\(bu"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:82
-msgid ""
-"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
-"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
-"E<lt>descriptionE<gt>\\fR\"."
-msgstr ""
-"Relate bugs na E<.MT ~euandreh/public-inbox@lists.sr.ht> lista de discussão "
-"E<.ME .> Use o assunto \"\\f(CR[remembering] BUG ou TASK: E<lt>descriçãoE<gt>"
-"\\fR\"."
-
-#. type: Plain text
-#: doc/remembering.en.5.in:87
-msgid ""
-"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
-">"
-msgstr ""
-"Veja os bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<."
-"UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:91
-msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
-msgstr "E<.UR https://euandreh.xyz/remembering/pt/> Página inicial E<.UE .>"
-
-#. type: Plain text
-#: doc/remembering.en.5.in:94
-msgid ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comments and discussions E<.UE .>"
-msgstr ""
-"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
-"Comentários e discussões E<.UE .>"
-
-#, no-wrap
-#~ msgid "SYNOPSYS"
-#~ msgstr "SINOPSE"
-
-#, no-wrap
-#~ msgid "DESCRIPTION"
-#~ msgstr "DESCRIÇÃO"
-
-#, no-wrap
-#~ msgid "OPTIONS"
-#~ msgstr "OPÇÔES"
-
-#, fuzzy, no-wrap
-#~| msgid "B<--help>, B<-h>"
-#~ msgid "B<-h>, B<--help>"
-#~ msgstr "B<--help>, B<-h>"
-
-#, fuzzy
-#~| msgid "Show show help text."
-#~ msgid "Show short help text."
-#~ msgstr "Mostra mensagem de ajuda."
-
-#, fuzzy, no-wrap
-#~| msgid "B<--version>, B<-V>"
-#~ msgid "B<-V>, B<--version>"
-#~ msgstr "B<--version>, B<-V>"
-
-#~ msgid "Show version number."
-#~ msgstr "Imprime o número da versão."
-
-#, no-wrap
-#~ msgid "EXAMPLES"
-#~ msgstr "EXEMPLOS"
-
-#, no-wrap
-#~ msgid "GIT-PERMALINK"
-#~ msgstr "GIT-PERMALINK"
-
-#, no-wrap
-#~ msgid "git-permalink user manual"
-#~ msgstr "manual do usuário do git-permalink"
-
-#~ msgid ""
-#~ "git-permalink - Git extension to generate web permalinks of files in a "
-#~ "repository."
-#~ msgstr ""
-#~ "git-permalink - extensão Git para gerar links web permanentes (permalink) "
-#~ "de arquivos de um repositório."
-
-#~ msgid "B<git-permalink> [OPTIONS] I<FILE> [I<LINENO>]"
-#~ msgstr "B<git-permalink> [OPÇÕES] I<ARQUIVO> [I<NOLINHA>]"
-
-#~ msgid ""
-#~ "B<git-permalink> will use Git itself to get a) the commit at I<HEAD> and "
-#~ "b) the I<remote.origin.url> via B<git-config>(1), and optionally c) an "
-#~ "URL template override. It then uses those values to build a permalink "
-#~ "URL, with the commit included on it to ensure it is I<permanent>, and "
-#~ "optionally the line number of the selected file."
-#~ msgstr ""
-#~ "B<git-permalink> usa o próprio Git para pegar a) o commit do I<HEAD> e b) "
-#~ "o I<remote.origin.url> usando B<git-config>(1), e opcionalmente c) um "
-#~ "modelo de substituição de URL. Então ele usa esses valores para "
-#~ "construir o link para uma URL I<permanente> (permalink), com o commit "
-#~ "incluso para garantir sua unicidade, e opcionalmente o número da linha "
-#~ "selecionada."
-
-#~ msgid "B<git-permalink> then uses B<xdg-open>(1) to open the URL."
-#~ msgstr "B<git-permalink> depois usa o B<xdg-open>(1) para abrir a URL."
-
-#, no-wrap
-#~ msgid "B<-p>"
-#~ msgstr "B<-p>"
-
-#~ msgid ""
-#~ "Only print the web URL link, don't try to open it with B<xdg-open>(1) or "
-#~ "do anything else. By default this is turned off."
-#~ msgstr ""
-#~ "Somento imprime o link da URL web, não tenta abrí-lo com B<xdg-open>(1) "
-#~ "ou fazer qualquer coisa com ele. Por padrão isso está desligado."
-
-#, no-wrap
-#~ msgid "OVERRIDES"
-#~ msgstr "MODELOS"
-
-#~ msgid ""
-#~ "If you want to configure the permalink URL template for a project with an "
-#~ "unsupported origin you can do so via B<git-config>(1)."
-#~ msgstr ""
-#~ "Se você quiser configurar o modelo de substituição de URL de um projeto "
-#~ "que não tem suporte a um tipo de origem remota você pode fazê-lo com "
-#~ "B<git-config>(1)."
-
-#~ msgid "There are two configuration options available:"
-#~ msgstr "Há dois tipos de opções de configuração disponíveis:"
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-file-commit>"
-#~ msgstr "B<git-permalink.template-file-commit>"
-
-#~ msgid ""
-#~ "An URL template where the name of the I<file> comes first, and the "
-#~ "I<commit> comes second. cgit uses this style of URL, with something like "
-#~ "in:"
-#~ msgstr ""
-#~ "Um modelo de substituição de URL em que o nome do I<arquivo> vem "
-#~ "primeiro, e o I<commit> vem depois. cgit usa esse tipo de URL, como em:"
-
-#, no-wrap
-#~ msgid "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-#~ msgstr "\thttps://git.euandreh.xyz/fallible/tree/%s?id=%s\n"
-
-#~ msgid ""
-#~ "On this example, the name of the I<file> comes first and I<commit> comes "
-#~ "at the very end after \"id=\"."
-#~ msgstr ""
-#~ "Nesse exemplo, o nome do I<arquivo> vem primeiro e o I<commit> vem só no "
-#~ "final, depois do \"id=\"."
-
-#, no-wrap
-#~ msgid "B<git-permalink.template-commit-file>"
-#~ msgstr "B<git-permalink.template-commit-file>"
-
-#~ msgid ""
-#~ "An URL template where the I<commit> comes first, and the name of the "
-#~ "I<file> comes second. sourcehut uses this style of URL, with something "
-#~ "like:"
-#~ msgstr ""
-#~ "Um modelo de substituição de URL em que o I<commit> vem primeiro, e o "
-#~ "nome do I<arquivo> vem depois. sourcehut usa esse tipo de URL, como em:"
-
-#, no-wrap
-#~ msgid "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-#~ msgstr "\thttps://git.sr.ht/~sircmpwn/scdoc/tree/%s/item/%s\n"
-
-#~ msgid ""
-#~ "On this example, the I<commit> comes first on the URL path, and the "
-#~ "I<file> name comes at the end."
-#~ msgstr ""
-#~ "Nesse exemplo, o I<commit> aparece primeiro no caminho da URL, e o nome "
-#~ "do I<arquivo> vem depois."
-
-#~ msgid ""
-#~ "If none of those values are found by B<git-config>(1) and B<git-"
-#~ "permalink> can't guess the URL, it exits with an error."
-#~ msgstr ""
-#~ "Se nenhuma das duas opções for encontrada pelo B<git-config>(1) e o B<git-"
-#~ "permalink> não consegue adivinhar a URL, ele termina com um erro."
-
-#, no-wrap
-#~ msgid "SUPPORTED REMOTES"
-#~ msgstr "ORIGENS REMOTAS COM SUPORTE"
-
-#~ msgid "The current supported remotes are:"
-#~ msgstr "A lista atual de origens remotas com suporte é:"
-
-#~ msgid "git.euandreh.xyz (where git-permalink itself is hosted =p)"
-#~ msgstr "git.euandreh.xyz (onde o próprio git-permalink está hospedado =p)"
-
-#~ msgid "sourcehut"
-#~ msgstr "sourcehut"
-
-#~ msgid "git.kernel.org"
-#~ msgstr "git.kernel.org"
-
-#~ msgid "savannah"
-#~ msgstr "savannah"
-
-#~ msgid "notabug"
-#~ msgstr "notabug"
-
-#~ msgid "codeberg"
-#~ msgstr "codeberg"
-
-#~ msgid "bitbucket"
-#~ msgstr "bitbucket"
-
-#~ msgid "pagure"
-#~ msgstr "pagure"
-
-#~ msgid "gitlab"
-#~ msgstr "gitlab"
-
-#~ msgid "github"
-#~ msgstr "github"
-
-#~ msgid "Patches to add support for more source code forges are welcome!"
-#~ msgstr ""
-#~ "Mudanças para adição de mais sites de hospedagem de código são bem-vindas!"
-
-#~ msgid ""
-#~ "See E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> for discussion and more information."
-#~ msgstr ""
-#~ "Veja E<.UR https://euandreh.xyz/git-permalink/TODOs.html#task-"
-#~ "cebc5298-17ad-5c60-dfa5-a25b66433a3a> #task-cebc5298-17ad-5c60-dfa5-"
-#~ "a25b66433a3a E<.UE> para discussão e mais informações."
-
-#~ msgid ""
-#~ "Open I<src/fold.c> of a project with its origin pointing to I<sourcehut>:"
-#~ msgstr ""
-#~ "Abre o arquivo I<src/fold.c> de um projeto com a origem apontada para o "
-#~ "I<sourcehut>:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tOpening https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-#~ msgstr ""
-#~ "\t$ git permalink src/fold.c 125\n"
-#~ "\tAbrindo https://git.sr.ht/~sircmpwn/ctools/tree/fbf17d92f5ed1c38983f73df912f051ad0f9ef2d/item/src/fold.c#L125\n"
-
-#~ msgid ""
-#~ "Generate link for lines 59 through 94 of I<nongnu/packages/clojure.scm> "
-#~ "on a project hosted on I<gitlab>, but only print it I<without> opening "
-#~ "with B<xdg-open>(1):"
-#~ msgstr ""
-#~ "Gera um link das linhas 59 a 94 do arquivo I<nongnu/packages/clojure.scm> "
-#~ "em um projeto hospedado no I<gitlab>, mas somente o imprimie I<sem> abrí-"
-#~ "lo com B<xdg-open>(1):"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-#~ msgstr ""
-#~ "\t$ git permalink -p nongnu/packages/clojure.scm 59-94\n"
-#~ "\thttps://gitlab.com/nonguix/nonguix/-/blob/c9d7f30bcbd3a6e3076e56a972c33963c73c4d58/nongnu/packages/clojure.scm#L59-94\n"
-
-#~ msgid ""
-#~ "Configure an URL override, and open the file I<src/app_add.c> without "
-#~ "selecting an specific line:"
-#~ msgstr ""
-#~ "Configura um modelo de URL, e abre o arquivo I<src/app_add.c> sem "
-#~ "selecionar uma linha específica:"
-
-#, no-wrap
-#~ msgid ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tOpening https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-#~ msgstr ""
-#~ "\t$ git config git-permalink.template-file-commit 'https://git.alpinelinux.org/apk-tools/tree/%s?id=%s'\n"
-#~ "\t$ git permalink src/app_add.c\n"
-#~ "\tAbrindo https://git.alpinelinux.org/apk-tools/tree/src/app_add.c?id=aeeb119fd8652c044cd5ceebce572b5c716914e3\n"
-
-#~ msgid "B<git-config>(1) B<xdg-open>(1)"
-#~ msgstr "B<git-config>(1) B<xdg-open>(1)"
diff --git a/po/eo.po b/po/eo.po
new file mode 100644
index 0000000..5a089c3
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,1066 @@
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "REMEMBERING"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "@DATE@"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "remembering @VERSION@"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:4 doc/remembering.en.5.in:4
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:7
+msgid "remembering - sort list from I<STDIN> using past choices as weight."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:9
+#, no-wrap
+msgid "SYNOPSYS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:12
+msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:17
+msgid ""
+"B<remembering> takes a command that chooses an option as its behaviour, such "
+"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
+"it is used, will put the most used choices at the beginning of the list."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:20
+msgid ""
+"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
+"be sorted."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:22
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:24
+#, no-wrap
+msgid "B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:27
+msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:28
+#, no-wrap
+msgid "B<-p> I<PROFILE>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:31
+msgid "The name of the I<PROFILE> where to look up and store raking data."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:32
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:35
+msgid "Show short help text."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:36
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:39
+msgid "Show version number."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:41
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:44
+msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:48
+#, no-wrap
+msgid "$ ls | remembering -p fzf-ls -c fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:53
+msgid ""
+"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
+"via B<remembering>, and execute with B<sh>(1) the choice picked:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:57
+#, no-wrap
+msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:62
+msgid "Successive invocations will put the frequent choices at the beginning."
+msgstr ""
+
+#. type: SS
+#: doc/remembering.en.1.in:63
+#, no-wrap
+msgid "Simulation of an interactive session"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:66
+msgid ""
+"Below is a simulation of an interactive session, comparing the usage of "
+"plain B<fzf>(1) against composing it with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:75
+#, no-wrap
+msgid ""
+"$ mkdir -p example/\n"
+"$ cd example/\n"
+"$ touch a b c d e\n"
+"$ ls\n"
+"a b c d e\n"
+"$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:79
+msgid ""
+"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
+"into it and create 5 empty files: a, b, c, d and e."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:81
+msgid ""
+"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
+"order."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:83
+msgid ""
+"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
+"its prompt to pick one option:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
+#: doc/remembering.en.1.in:141
+#, no-wrap
+msgid ""
+" e\n"
+" d\n"
+" c\n"
+" b\n"
+"E<gt> a\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:97
+msgid ""
+"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
+"was given, and starts at the first one, \"a\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:99
+msgid ""
+"Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
+#, no-wrap
+msgid ""
+"$ ls | fzf\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:108
+msgid ""
+"Now if we run the same command again, we'll be given the same options, in "
+"the same order:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:112
+#, no-wrap
+msgid "$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:127
+msgid ""
+"B<fzf>(1) is doing what it is told to: making a prompt with the options "
+"given to it from I<STDIN>, in the order it was given."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:129
+msgid ""
+"In order to have our past choices show up in the beginning of the list, we "
+"can compose B<fzf>(1) with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
+#, no-wrap
+msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
+#, no-wrap
+msgid ""
+"$ ls | remembering -p tutorial-example -c 'fzf'\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:149
+msgid ""
+"So far we get the exact same behaviour, but saying extra things. We tell "
+"B<remembering> that we want this specific I<PROFILE> to be called "
+"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
+"\\f(CR'fzf'\\fR command to be ran."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:151
+msgid ""
+"From now on if we run the exact same command again, B<remembering> will "
+"I<remember> that the last choice was \"d\", and put it in the beginning of "
+"the list, which B<fzf>(1) happily displays in the order it was given:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:163
+#, no-wrap
+msgid ""
+" e\n"
+" c\n"
+" b\n"
+" a\n"
+"E<gt> d\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:170
+msgid ""
+"This time the \"d\" option was already the first one, and we can just press "
+"return to get it as the output value from the command."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:172
+msgid ""
+"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
+"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
+"line and writes to B<STDOUT>."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:174 doc/remembering.en.5.in:60
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:177
+msgid "B<remembering>(5)"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:179 doc/remembering.en.5.in:65
+#, no-wrap
+msgid "AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:185 doc/remembering.en.5.in:71
+msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:187 doc/remembering.en.5.in:73
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
+#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
+#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
+#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:196 doc/remembering.en.5.in:82
+msgid ""
+"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
+"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
+"E<lt>descriptionE<gt>\\fR\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:201 doc/remembering.en.5.in:87
+msgid ""
+"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
+">"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:205 doc/remembering.en.5.in:91
+msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:208 doc/remembering.en.5.in:94
+msgid ""
+"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
+"Comments and discussions E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:7
+msgid "remembering - format of the I<PROFILE> text file."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.5.in:9
+#, no-wrap
+msgid "PROFILE"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:13
+msgid ""
+"The I<PROFILE> is a text file, stored on \\f(CR$XDG_DATA_HOME/remembering/"
+"profile-name\\fR if \\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it "
+"lives in \\f(CR~/.local/share/remembering/profile-name\\fR."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:15
+msgid "Each line of the I<PROFILE> contains three pieces of information:"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:17
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:19
+msgid "the B<rank> of the current entry;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:19
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:21
+msgid "the \\f(CR:\\fR separator;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:21
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:23
+msgid "the B<entry> itself."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:26
+msgid ""
+"The B<rank> is a number, and the B<entry> is all the text until the end of "
+"the line after the \\f(CR:\\fR separator:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:34
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"0:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:38
+msgid ""
+"Above is an example of a I<PROFILE> file where all the entries have the "
+"default B<rank> value: B<0>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:40
+msgid ""
+"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
+"be:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:48
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"1:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:52
+msgid ""
+"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
+"beginning of the list, and as new picks happen their weight will increase, "
+"and will keep going up in priority."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:55
+msgid ""
+"The entries of the I<PROFILE> are created and kept sorted. "
+"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:58
+msgid ""
+"The current raking algorithm increments entries as a simple counter. Every "
+"time an entry is picked, its ranked is incremented in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:63
+msgid "B<remembering>(1)"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:11
+msgid ""
+"<!-- Entry template: --> <!-- # Unreleased ## Added ## Changed ## Deprecated "
+"## Removed ## Fixed ## Security -->"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:13
+msgid "Changelog for [remembering](https://euandre.org/remembering/en/)."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:16
+msgid "# Unreleased"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:19
+msgid ""
+"# [0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) - 2022-11-25"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:21 CHANGELOG.en.md:99 CHANGELOG.en.md:124
+msgid "## Added"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:23
+msgid "### Inference of profiles"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:25 CHANGELOG.en.md:73 CHANGELOG.en.md:103
+msgid "## Changed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:27
+msgid "### Remove `-c COMMAND` option"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:31
+msgid ""
+"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
+"commands to be ran as the \"rest\" argument to `remembering`, stored in `"
+"$@`. The usage changes from:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:35
+msgid "```shell $ remembering -p a-profile -c 'command $arg1 arg2' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:37
+msgid "to:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:41
+msgid "```shell $ remembering -p a-profile -- command $arg1 arg2 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:51
+#, no-wrap
+msgid ""
+"The upsides are:\n"
+"1. no need to worry about nested quotes: requiring a `-c COMMAND` option forced\n"
+" one to wrap the command and args inside quotes, and the quotation used\n"
+" influenced the command to be ran;\n"
+"1. one less option to know about: instead of having to remember what is the\n"
+" specific letter used for the command, just prefix the command with\n"
+" `remembering`;\n"
+"1. simpler and more powerful composition: wrapping commands without quoting them\n"
+" allows one to use many of such tools in combination:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:55
+msgid "```shell $ time nice -n10 timeout 3 remembering sleep 5 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:57
+#, no-wrap
+msgid " The equivalent with `-c COMMAND` would be:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:61
+msgid ""
+"```shell $ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep "
+"5\"'\"' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:64
+#, no-wrap
+msgid ""
+" But instead of alternating between single and double quotes, properly quoting\n"
+" them at each level.\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:66 CHANGELOG.en.md:110 CHANGELOG.en.md:117
+msgid "## Fixed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:68
+msgid "### Improve speed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:70
+msgid "Rewrite to make it faster"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:75
+msgid "### Use of `$XDG_DATA_HOME`"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:79
+msgid ""
+"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
+"appends a trailing `/remembering` to it instead of start writing files to "
+"where the environment variable points to."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:81
+msgid ""
+"This is in conformance with the [XDG Base Directory Specification][xdg]."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:83
+msgid ""
+"[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
+"latest.html"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:85
+msgid "### Exit code"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:87
+msgid ""
+"When remembering encounters an unrecognized option, it now exits with 2 "
+"instead of ignoring it."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:90
+msgid ""
+"# [0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) - 2021-02-23"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:92
+msgid "## Removed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:94
+msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:97
+msgid ""
+"# [0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) - 2021-02-21"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:101
+msgid "Add trivial `./configure` script."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:105
+msgid "Assume standard input is already sorted for faster processing."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:108
+msgid ""
+"# [0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:112
+msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:115
+msgid ""
+"# [0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:119
+msgid "Allow names with spaces."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:122
+msgid ""
+"# [0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:125
+msgid "Initial public release."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:2
+msgid "# remembering"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:4
+msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:8
+msgid ""
+"[pt1]: https://euandreh.xyz/remembering/pt/ [fr1]: https://euandreh.xyz/"
+"remembering/fr/ [eo1]: https://euandreh.xyz/remembering/eo/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:10
+msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:13
+msgid ""
+"It can wrap such tools to accumulate preferences over time, and re-arrange "
+"the input according to common picks."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:16
+msgid "## Usage"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:21
+msgid "Replace: ```shell $ ls | fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:26
+msgid "with: ```shell $ ls | remembering -p fzf-sample -c fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:28
+msgid ""
+"and see your previous choices from `fzf` start to appear at the beginning of "
+"the list."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:30
+msgid ""
+"Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
+"dependencies, and not coupled with `dmenu`."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:34
+msgid ""
+"[dmenu]: https://tools.suckless.org/dmenu/ [fzf]: https://github.com/"
+"junegunn/fzf [yeganesh]: http://dmwit.com/yeganesh/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:37
+msgid "## Installation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:43
+msgid "```shell $ make $ make check # make install ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:45
+msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:51
+msgid "```shell $ make $ make check $ make install PREFIX=$HOME/.local ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:54
+msgid ""
+"There are no dependencies or requirements, only standard tools such as POSIX "
+"sed, POSIX make, etc."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:57
+msgid "## Documentation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:59
+msgid "### Manuals"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:63
+msgid ""
+"The documentation is available via installed manpages or online: - "
+"[`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]); - [`remembering.5`] "
+"([pt][pt.5], [fr][fr.5], [eo][eo.5])."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:72
+msgid ""
+"[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html "
+"[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html [fr.1]: "
+"https://euandreh.xyz/remembering/fr/remembering.1.html [eo.1]: https://"
+"euandreh.xyz/remembering/eo/remembering.1.html [`remembering.5`]: https://"
+"euandreh.xyz/remembering/en/remembering.5.html [pt.5]: https://euandreh.xyz/"
+"remembering/pt/remembering.5.html [fr.5]: https://euandreh.xyz/remembering/"
+"fr/remembering.5.html [eo.5]: https://euandreh.xyz/remembering/eo/"
+"remembering.5.html"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:74
+msgid "### Directory structure"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:83
+#, no-wrap
+msgid ""
+"The directory structure of the repository is:\n"
+"- `aux/`: personal scripts and helpers I've vendored in to ensure the\n"
+" repository is self contained, feel free to ignore it;\n"
+"- `doc/`: manpages, with their translated versions;\n"
+"- `po/`: gettext `.po` files for the translated languages and hunspell\n"
+" dictionaries for spell checking;\n"
+"- `src/`: main source code for the project;\n"
+"- `tests/`: integration tests for the project.\n"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:86
+msgid "## Contributing"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:93
+msgid ""
+"Extra tools used for development are: - [Valgrind] for memory testing; - "
+"[ShellCheck] for validating scripts; - [po4a], [mdpo] and [gettext] for i18n "
+"and l10n support; - [makefile2graph] and [graphviz] for generating [makefile."
+"svg]; - [pandoc] for generating the documentation HTML and website."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:103
+msgid ""
+"[Valgrind]: https://valgrind.org [ShellCheck]: https://www.shellcheck.net/ "
+"[po4a]: https://po4a.org/index.php.en [gettext]: https://www.gnu.org/"
+"software/gettext/ [pandoc]: https://pandoc.org/ [mdpo]: https://mdpo."
+"readthedocs.io/en/master/ [makefile2graph]: https://github.com/lindenb/"
+"makefile2graph [graphviz]: https://graphviz.org/ [makefile.svg]: https://"
+"euandreh.xyz/git-permalink/makefile.svg"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:105
+msgid "For running the extra development-only checks, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:109
+msgid "```shell $ make dev-check ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:111
+msgid "and for generating the documentation HTML and website, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:115
+msgid "```shell $ make public ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:118
+msgid ""
+"Send contributions to the [mailing list] via [`git send-email`](https://git-"
+"send-email.io/)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:121
+msgid "## Links"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[homepage](https://euandre.org/s/remembering/en/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[source code](https://euandre.org/git/remembering/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[bug tracking](https://euandre.org/s/remembering/TODOs.html)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[mailing list]"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CI logs](https://euandre.org/s/remembering/ci/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CHANGELOG](https://euandre.org/s/remembering/en/CHANGELOG.html)"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:130
+msgid ""
+"[mailing list]: https://lists.sr.ht/~euandreh/public-inbox?search="
+"%5Bremembering%5D"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:133
+msgid "## Releases"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) [remembering-"
+"v0.3.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.3.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.3.0.tar.gz.asc)) - 2022-11-25"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) [remembering-"
+"v0.2.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.1.tar.gz.asc)) - 2021-02-23"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) [remembering-"
+"v0.2.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.0.tar.gz.asc)) - 2021-02-21"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) [remembering-"
+"v0.1.2.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.2.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.2.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) [remembering-"
+"v0.1.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.1.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) [remembering-"
+"v0.1.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.0.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:143
+msgid "## License"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:147
+msgid ""
+"The code is licensed under [GNU Affero General Public License v3.0 or later]"
+"[AGPL-3.0-or-later] (AGPL-3.0-or-later)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:148
+msgid "[AGPL-3.0-or-later]: https://euandre.org/git/remembering/tree/COPYING"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:2
+msgid ".SH AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:7
+msgid ".MT eu@euandre.org EuAndreh .ME and contributors."
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:10
+msgid ".SH BUGS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:30
+msgid ""
+".IP \\(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht "
+"mailing list .ME . Use the subject \"\\f(CR[@NAME@] BUG or TASK: "
+"<description>\\fR\". .IP \\(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs."
+"html online .UE . .IP \\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . ."
+"IP \\(bu .UR https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@"
+"%5D Comments and discussions .UE ."
+msgstr ""
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..5a089c3
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,1066 @@
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "REMEMBERING"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "@DATE@"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "remembering @VERSION@"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:4 doc/remembering.en.5.in:4
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:7
+msgid "remembering - sort list from I<STDIN> using past choices as weight."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:9
+#, no-wrap
+msgid "SYNOPSYS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:12
+msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:17
+msgid ""
+"B<remembering> takes a command that chooses an option as its behaviour, such "
+"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
+"it is used, will put the most used choices at the beginning of the list."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:20
+msgid ""
+"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
+"be sorted."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:22
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:24
+#, no-wrap
+msgid "B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:27
+msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:28
+#, no-wrap
+msgid "B<-p> I<PROFILE>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:31
+msgid "The name of the I<PROFILE> where to look up and store raking data."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:32
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:35
+msgid "Show short help text."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:36
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:39
+msgid "Show version number."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:41
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:44
+msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:48
+#, no-wrap
+msgid "$ ls | remembering -p fzf-ls -c fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:53
+msgid ""
+"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
+"via B<remembering>, and execute with B<sh>(1) the choice picked:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:57
+#, no-wrap
+msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:62
+msgid "Successive invocations will put the frequent choices at the beginning."
+msgstr ""
+
+#. type: SS
+#: doc/remembering.en.1.in:63
+#, no-wrap
+msgid "Simulation of an interactive session"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:66
+msgid ""
+"Below is a simulation of an interactive session, comparing the usage of "
+"plain B<fzf>(1) against composing it with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:75
+#, no-wrap
+msgid ""
+"$ mkdir -p example/\n"
+"$ cd example/\n"
+"$ touch a b c d e\n"
+"$ ls\n"
+"a b c d e\n"
+"$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:79
+msgid ""
+"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
+"into it and create 5 empty files: a, b, c, d and e."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:81
+msgid ""
+"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
+"order."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:83
+msgid ""
+"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
+"its prompt to pick one option:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
+#: doc/remembering.en.1.in:141
+#, no-wrap
+msgid ""
+" e\n"
+" d\n"
+" c\n"
+" b\n"
+"E<gt> a\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:97
+msgid ""
+"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
+"was given, and starts at the first one, \"a\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:99
+msgid ""
+"Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
+#, no-wrap
+msgid ""
+"$ ls | fzf\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:108
+msgid ""
+"Now if we run the same command again, we'll be given the same options, in "
+"the same order:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:112
+#, no-wrap
+msgid "$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:127
+msgid ""
+"B<fzf>(1) is doing what it is told to: making a prompt with the options "
+"given to it from I<STDIN>, in the order it was given."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:129
+msgid ""
+"In order to have our past choices show up in the beginning of the list, we "
+"can compose B<fzf>(1) with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
+#, no-wrap
+msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
+#, no-wrap
+msgid ""
+"$ ls | remembering -p tutorial-example -c 'fzf'\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:149
+msgid ""
+"So far we get the exact same behaviour, but saying extra things. We tell "
+"B<remembering> that we want this specific I<PROFILE> to be called "
+"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
+"\\f(CR'fzf'\\fR command to be ran."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:151
+msgid ""
+"From now on if we run the exact same command again, B<remembering> will "
+"I<remember> that the last choice was \"d\", and put it in the beginning of "
+"the list, which B<fzf>(1) happily displays in the order it was given:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:163
+#, no-wrap
+msgid ""
+" e\n"
+" c\n"
+" b\n"
+" a\n"
+"E<gt> d\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:170
+msgid ""
+"This time the \"d\" option was already the first one, and we can just press "
+"return to get it as the output value from the command."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:172
+msgid ""
+"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
+"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
+"line and writes to B<STDOUT>."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:174 doc/remembering.en.5.in:60
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:177
+msgid "B<remembering>(5)"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:179 doc/remembering.en.5.in:65
+#, no-wrap
+msgid "AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:185 doc/remembering.en.5.in:71
+msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:187 doc/remembering.en.5.in:73
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
+#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
+#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
+#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:196 doc/remembering.en.5.in:82
+msgid ""
+"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
+"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
+"E<lt>descriptionE<gt>\\fR\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:201 doc/remembering.en.5.in:87
+msgid ""
+"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
+">"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:205 doc/remembering.en.5.in:91
+msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:208 doc/remembering.en.5.in:94
+msgid ""
+"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
+"Comments and discussions E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:7
+msgid "remembering - format of the I<PROFILE> text file."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.5.in:9
+#, no-wrap
+msgid "PROFILE"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:13
+msgid ""
+"The I<PROFILE> is a text file, stored on \\f(CR$XDG_DATA_HOME/remembering/"
+"profile-name\\fR if \\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it "
+"lives in \\f(CR~/.local/share/remembering/profile-name\\fR."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:15
+msgid "Each line of the I<PROFILE> contains three pieces of information:"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:17
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:19
+msgid "the B<rank> of the current entry;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:19
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:21
+msgid "the \\f(CR:\\fR separator;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:21
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:23
+msgid "the B<entry> itself."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:26
+msgid ""
+"The B<rank> is a number, and the B<entry> is all the text until the end of "
+"the line after the \\f(CR:\\fR separator:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:34
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"0:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:38
+msgid ""
+"Above is an example of a I<PROFILE> file where all the entries have the "
+"default B<rank> value: B<0>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:40
+msgid ""
+"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
+"be:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:48
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"1:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:52
+msgid ""
+"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
+"beginning of the list, and as new picks happen their weight will increase, "
+"and will keep going up in priority."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:55
+msgid ""
+"The entries of the I<PROFILE> are created and kept sorted. "
+"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:58
+msgid ""
+"The current raking algorithm increments entries as a simple counter. Every "
+"time an entry is picked, its ranked is incremented in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:63
+msgid "B<remembering>(1)"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:11
+msgid ""
+"<!-- Entry template: --> <!-- # Unreleased ## Added ## Changed ## Deprecated "
+"## Removed ## Fixed ## Security -->"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:13
+msgid "Changelog for [remembering](https://euandre.org/remembering/en/)."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:16
+msgid "# Unreleased"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:19
+msgid ""
+"# [0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) - 2022-11-25"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:21 CHANGELOG.en.md:99 CHANGELOG.en.md:124
+msgid "## Added"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:23
+msgid "### Inference of profiles"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:25 CHANGELOG.en.md:73 CHANGELOG.en.md:103
+msgid "## Changed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:27
+msgid "### Remove `-c COMMAND` option"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:31
+msgid ""
+"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
+"commands to be ran as the \"rest\" argument to `remembering`, stored in `"
+"$@`. The usage changes from:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:35
+msgid "```shell $ remembering -p a-profile -c 'command $arg1 arg2' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:37
+msgid "to:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:41
+msgid "```shell $ remembering -p a-profile -- command $arg1 arg2 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:51
+#, no-wrap
+msgid ""
+"The upsides are:\n"
+"1. no need to worry about nested quotes: requiring a `-c COMMAND` option forced\n"
+" one to wrap the command and args inside quotes, and the quotation used\n"
+" influenced the command to be ran;\n"
+"1. one less option to know about: instead of having to remember what is the\n"
+" specific letter used for the command, just prefix the command with\n"
+" `remembering`;\n"
+"1. simpler and more powerful composition: wrapping commands without quoting them\n"
+" allows one to use many of such tools in combination:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:55
+msgid "```shell $ time nice -n10 timeout 3 remembering sleep 5 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:57
+#, no-wrap
+msgid " The equivalent with `-c COMMAND` would be:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:61
+msgid ""
+"```shell $ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep "
+"5\"'\"' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:64
+#, no-wrap
+msgid ""
+" But instead of alternating between single and double quotes, properly quoting\n"
+" them at each level.\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:66 CHANGELOG.en.md:110 CHANGELOG.en.md:117
+msgid "## Fixed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:68
+msgid "### Improve speed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:70
+msgid "Rewrite to make it faster"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:75
+msgid "### Use of `$XDG_DATA_HOME`"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:79
+msgid ""
+"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
+"appends a trailing `/remembering` to it instead of start writing files to "
+"where the environment variable points to."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:81
+msgid ""
+"This is in conformance with the [XDG Base Directory Specification][xdg]."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:83
+msgid ""
+"[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
+"latest.html"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:85
+msgid "### Exit code"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:87
+msgid ""
+"When remembering encounters an unrecognized option, it now exits with 2 "
+"instead of ignoring it."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:90
+msgid ""
+"# [0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) - 2021-02-23"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:92
+msgid "## Removed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:94
+msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:97
+msgid ""
+"# [0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) - 2021-02-21"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:101
+msgid "Add trivial `./configure` script."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:105
+msgid "Assume standard input is already sorted for faster processing."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:108
+msgid ""
+"# [0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:112
+msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:115
+msgid ""
+"# [0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:119
+msgid "Allow names with spaces."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:122
+msgid ""
+"# [0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:125
+msgid "Initial public release."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:2
+msgid "# remembering"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:4
+msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:8
+msgid ""
+"[pt1]: https://euandreh.xyz/remembering/pt/ [fr1]: https://euandreh.xyz/"
+"remembering/fr/ [eo1]: https://euandreh.xyz/remembering/eo/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:10
+msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:13
+msgid ""
+"It can wrap such tools to accumulate preferences over time, and re-arrange "
+"the input according to common picks."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:16
+msgid "## Usage"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:21
+msgid "Replace: ```shell $ ls | fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:26
+msgid "with: ```shell $ ls | remembering -p fzf-sample -c fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:28
+msgid ""
+"and see your previous choices from `fzf` start to appear at the beginning of "
+"the list."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:30
+msgid ""
+"Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
+"dependencies, and not coupled with `dmenu`."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:34
+msgid ""
+"[dmenu]: https://tools.suckless.org/dmenu/ [fzf]: https://github.com/"
+"junegunn/fzf [yeganesh]: http://dmwit.com/yeganesh/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:37
+msgid "## Installation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:43
+msgid "```shell $ make $ make check # make install ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:45
+msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:51
+msgid "```shell $ make $ make check $ make install PREFIX=$HOME/.local ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:54
+msgid ""
+"There are no dependencies or requirements, only standard tools such as POSIX "
+"sed, POSIX make, etc."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:57
+msgid "## Documentation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:59
+msgid "### Manuals"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:63
+msgid ""
+"The documentation is available via installed manpages or online: - "
+"[`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]); - [`remembering.5`] "
+"([pt][pt.5], [fr][fr.5], [eo][eo.5])."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:72
+msgid ""
+"[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html "
+"[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html [fr.1]: "
+"https://euandreh.xyz/remembering/fr/remembering.1.html [eo.1]: https://"
+"euandreh.xyz/remembering/eo/remembering.1.html [`remembering.5`]: https://"
+"euandreh.xyz/remembering/en/remembering.5.html [pt.5]: https://euandreh.xyz/"
+"remembering/pt/remembering.5.html [fr.5]: https://euandreh.xyz/remembering/"
+"fr/remembering.5.html [eo.5]: https://euandreh.xyz/remembering/eo/"
+"remembering.5.html"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:74
+msgid "### Directory structure"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:83
+#, no-wrap
+msgid ""
+"The directory structure of the repository is:\n"
+"- `aux/`: personal scripts and helpers I've vendored in to ensure the\n"
+" repository is self contained, feel free to ignore it;\n"
+"- `doc/`: manpages, with their translated versions;\n"
+"- `po/`: gettext `.po` files for the translated languages and hunspell\n"
+" dictionaries for spell checking;\n"
+"- `src/`: main source code for the project;\n"
+"- `tests/`: integration tests for the project.\n"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:86
+msgid "## Contributing"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:93
+msgid ""
+"Extra tools used for development are: - [Valgrind] for memory testing; - "
+"[ShellCheck] for validating scripts; - [po4a], [mdpo] and [gettext] for i18n "
+"and l10n support; - [makefile2graph] and [graphviz] for generating [makefile."
+"svg]; - [pandoc] for generating the documentation HTML and website."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:103
+msgid ""
+"[Valgrind]: https://valgrind.org [ShellCheck]: https://www.shellcheck.net/ "
+"[po4a]: https://po4a.org/index.php.en [gettext]: https://www.gnu.org/"
+"software/gettext/ [pandoc]: https://pandoc.org/ [mdpo]: https://mdpo."
+"readthedocs.io/en/master/ [makefile2graph]: https://github.com/lindenb/"
+"makefile2graph [graphviz]: https://graphviz.org/ [makefile.svg]: https://"
+"euandreh.xyz/git-permalink/makefile.svg"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:105
+msgid "For running the extra development-only checks, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:109
+msgid "```shell $ make dev-check ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:111
+msgid "and for generating the documentation HTML and website, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:115
+msgid "```shell $ make public ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:118
+msgid ""
+"Send contributions to the [mailing list] via [`git send-email`](https://git-"
+"send-email.io/)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:121
+msgid "## Links"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[homepage](https://euandre.org/s/remembering/en/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[source code](https://euandre.org/git/remembering/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[bug tracking](https://euandre.org/s/remembering/TODOs.html)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[mailing list]"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CI logs](https://euandre.org/s/remembering/ci/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CHANGELOG](https://euandre.org/s/remembering/en/CHANGELOG.html)"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:130
+msgid ""
+"[mailing list]: https://lists.sr.ht/~euandreh/public-inbox?search="
+"%5Bremembering%5D"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:133
+msgid "## Releases"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) [remembering-"
+"v0.3.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.3.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.3.0.tar.gz.asc)) - 2022-11-25"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) [remembering-"
+"v0.2.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.1.tar.gz.asc)) - 2021-02-23"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) [remembering-"
+"v0.2.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.0.tar.gz.asc)) - 2021-02-21"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) [remembering-"
+"v0.1.2.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.2.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.2.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) [remembering-"
+"v0.1.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.1.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) [remembering-"
+"v0.1.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.0.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:143
+msgid "## License"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:147
+msgid ""
+"The code is licensed under [GNU Affero General Public License v3.0 or later]"
+"[AGPL-3.0-or-later] (AGPL-3.0-or-later)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:148
+msgid "[AGPL-3.0-or-later]: https://euandre.org/git/remembering/tree/COPYING"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:2
+msgid ".SH AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:7
+msgid ".MT eu@euandre.org EuAndreh .ME and contributors."
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:10
+msgid ".SH BUGS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:30
+msgid ""
+".IP \\(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht "
+"mailing list .ME . Use the subject \"\\f(CR[@NAME@] BUG or TASK: "
+"<description>\\fR\". .IP \\(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs."
+"html online .UE . .IP \\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . ."
+"IP \\(bu .UR https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@"
+"%5D Comments and discussions .UE ."
+msgstr ""
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..5a089c3
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,1066 @@
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "REMEMBERING"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "@DATE@"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "remembering @VERSION@"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:4 doc/remembering.en.5.in:4
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:7
+msgid "remembering - sort list from I<STDIN> using past choices as weight."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:9
+#, no-wrap
+msgid "SYNOPSYS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:12
+msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:17
+msgid ""
+"B<remembering> takes a command that chooses an option as its behaviour, such "
+"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
+"it is used, will put the most used choices at the beginning of the list."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:20
+msgid ""
+"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
+"be sorted."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:22
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:24
+#, no-wrap
+msgid "B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:27
+msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:28
+#, no-wrap
+msgid "B<-p> I<PROFILE>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:31
+msgid "The name of the I<PROFILE> where to look up and store raking data."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:32
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:35
+msgid "Show short help text."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:36
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:39
+msgid "Show version number."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:41
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:44
+msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:48
+#, no-wrap
+msgid "$ ls | remembering -p fzf-ls -c fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:53
+msgid ""
+"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
+"via B<remembering>, and execute with B<sh>(1) the choice picked:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:57
+#, no-wrap
+msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:62
+msgid "Successive invocations will put the frequent choices at the beginning."
+msgstr ""
+
+#. type: SS
+#: doc/remembering.en.1.in:63
+#, no-wrap
+msgid "Simulation of an interactive session"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:66
+msgid ""
+"Below is a simulation of an interactive session, comparing the usage of "
+"plain B<fzf>(1) against composing it with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:75
+#, no-wrap
+msgid ""
+"$ mkdir -p example/\n"
+"$ cd example/\n"
+"$ touch a b c d e\n"
+"$ ls\n"
+"a b c d e\n"
+"$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:79
+msgid ""
+"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
+"into it and create 5 empty files: a, b, c, d and e."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:81
+msgid ""
+"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
+"order."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:83
+msgid ""
+"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
+"its prompt to pick one option:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
+#: doc/remembering.en.1.in:141
+#, no-wrap
+msgid ""
+" e\n"
+" d\n"
+" c\n"
+" b\n"
+"E<gt> a\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:97
+msgid ""
+"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
+"was given, and starts at the first one, \"a\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:99
+msgid ""
+"Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
+#, no-wrap
+msgid ""
+"$ ls | fzf\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:108
+msgid ""
+"Now if we run the same command again, we'll be given the same options, in "
+"the same order:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:112
+#, no-wrap
+msgid "$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:127
+msgid ""
+"B<fzf>(1) is doing what it is told to: making a prompt with the options "
+"given to it from I<STDIN>, in the order it was given."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:129
+msgid ""
+"In order to have our past choices show up in the beginning of the list, we "
+"can compose B<fzf>(1) with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
+#, no-wrap
+msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
+#, no-wrap
+msgid ""
+"$ ls | remembering -p tutorial-example -c 'fzf'\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:149
+msgid ""
+"So far we get the exact same behaviour, but saying extra things. We tell "
+"B<remembering> that we want this specific I<PROFILE> to be called "
+"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
+"\\f(CR'fzf'\\fR command to be ran."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:151
+msgid ""
+"From now on if we run the exact same command again, B<remembering> will "
+"I<remember> that the last choice was \"d\", and put it in the beginning of "
+"the list, which B<fzf>(1) happily displays in the order it was given:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:163
+#, no-wrap
+msgid ""
+" e\n"
+" c\n"
+" b\n"
+" a\n"
+"E<gt> d\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:170
+msgid ""
+"This time the \"d\" option was already the first one, and we can just press "
+"return to get it as the output value from the command."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:172
+msgid ""
+"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
+"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
+"line and writes to B<STDOUT>."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:174 doc/remembering.en.5.in:60
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:177
+msgid "B<remembering>(5)"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:179 doc/remembering.en.5.in:65
+#, no-wrap
+msgid "AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:185 doc/remembering.en.5.in:71
+msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:187 doc/remembering.en.5.in:73
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
+#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
+#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
+#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:196 doc/remembering.en.5.in:82
+msgid ""
+"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
+"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
+"E<lt>descriptionE<gt>\\fR\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:201 doc/remembering.en.5.in:87
+msgid ""
+"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
+">"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:205 doc/remembering.en.5.in:91
+msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:208 doc/remembering.en.5.in:94
+msgid ""
+"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
+"Comments and discussions E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:7
+msgid "remembering - format of the I<PROFILE> text file."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.5.in:9
+#, no-wrap
+msgid "PROFILE"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:13
+msgid ""
+"The I<PROFILE> is a text file, stored on \\f(CR$XDG_DATA_HOME/remembering/"
+"profile-name\\fR if \\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it "
+"lives in \\f(CR~/.local/share/remembering/profile-name\\fR."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:15
+msgid "Each line of the I<PROFILE> contains three pieces of information:"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:17
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:19
+msgid "the B<rank> of the current entry;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:19
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:21
+msgid "the \\f(CR:\\fR separator;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:21
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:23
+msgid "the B<entry> itself."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:26
+msgid ""
+"The B<rank> is a number, and the B<entry> is all the text until the end of "
+"the line after the \\f(CR:\\fR separator:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:34
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"0:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:38
+msgid ""
+"Above is an example of a I<PROFILE> file where all the entries have the "
+"default B<rank> value: B<0>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:40
+msgid ""
+"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
+"be:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:48
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"1:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:52
+msgid ""
+"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
+"beginning of the list, and as new picks happen their weight will increase, "
+"and will keep going up in priority."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:55
+msgid ""
+"The entries of the I<PROFILE> are created and kept sorted. "
+"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:58
+msgid ""
+"The current raking algorithm increments entries as a simple counter. Every "
+"time an entry is picked, its ranked is incremented in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:63
+msgid "B<remembering>(1)"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:11
+msgid ""
+"<!-- Entry template: --> <!-- # Unreleased ## Added ## Changed ## Deprecated "
+"## Removed ## Fixed ## Security -->"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:13
+msgid "Changelog for [remembering](https://euandre.org/remembering/en/)."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:16
+msgid "# Unreleased"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:19
+msgid ""
+"# [0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) - 2022-11-25"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:21 CHANGELOG.en.md:99 CHANGELOG.en.md:124
+msgid "## Added"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:23
+msgid "### Inference of profiles"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:25 CHANGELOG.en.md:73 CHANGELOG.en.md:103
+msgid "## Changed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:27
+msgid "### Remove `-c COMMAND` option"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:31
+msgid ""
+"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
+"commands to be ran as the \"rest\" argument to `remembering`, stored in `"
+"$@`. The usage changes from:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:35
+msgid "```shell $ remembering -p a-profile -c 'command $arg1 arg2' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:37
+msgid "to:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:41
+msgid "```shell $ remembering -p a-profile -- command $arg1 arg2 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:51
+#, no-wrap
+msgid ""
+"The upsides are:\n"
+"1. no need to worry about nested quotes: requiring a `-c COMMAND` option forced\n"
+" one to wrap the command and args inside quotes, and the quotation used\n"
+" influenced the command to be ran;\n"
+"1. one less option to know about: instead of having to remember what is the\n"
+" specific letter used for the command, just prefix the command with\n"
+" `remembering`;\n"
+"1. simpler and more powerful composition: wrapping commands without quoting them\n"
+" allows one to use many of such tools in combination:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:55
+msgid "```shell $ time nice -n10 timeout 3 remembering sleep 5 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:57
+#, no-wrap
+msgid " The equivalent with `-c COMMAND` would be:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:61
+msgid ""
+"```shell $ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep "
+"5\"'\"' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:64
+#, no-wrap
+msgid ""
+" But instead of alternating between single and double quotes, properly quoting\n"
+" them at each level.\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:66 CHANGELOG.en.md:110 CHANGELOG.en.md:117
+msgid "## Fixed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:68
+msgid "### Improve speed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:70
+msgid "Rewrite to make it faster"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:75
+msgid "### Use of `$XDG_DATA_HOME`"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:79
+msgid ""
+"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
+"appends a trailing `/remembering` to it instead of start writing files to "
+"where the environment variable points to."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:81
+msgid ""
+"This is in conformance with the [XDG Base Directory Specification][xdg]."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:83
+msgid ""
+"[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
+"latest.html"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:85
+msgid "### Exit code"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:87
+msgid ""
+"When remembering encounters an unrecognized option, it now exits with 2 "
+"instead of ignoring it."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:90
+msgid ""
+"# [0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) - 2021-02-23"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:92
+msgid "## Removed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:94
+msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:97
+msgid ""
+"# [0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) - 2021-02-21"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:101
+msgid "Add trivial `./configure` script."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:105
+msgid "Assume standard input is already sorted for faster processing."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:108
+msgid ""
+"# [0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:112
+msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:115
+msgid ""
+"# [0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:119
+msgid "Allow names with spaces."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:122
+msgid ""
+"# [0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:125
+msgid "Initial public release."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:2
+msgid "# remembering"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:4
+msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:8
+msgid ""
+"[pt1]: https://euandreh.xyz/remembering/pt/ [fr1]: https://euandreh.xyz/"
+"remembering/fr/ [eo1]: https://euandreh.xyz/remembering/eo/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:10
+msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:13
+msgid ""
+"It can wrap such tools to accumulate preferences over time, and re-arrange "
+"the input according to common picks."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:16
+msgid "## Usage"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:21
+msgid "Replace: ```shell $ ls | fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:26
+msgid "with: ```shell $ ls | remembering -p fzf-sample -c fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:28
+msgid ""
+"and see your previous choices from `fzf` start to appear at the beginning of "
+"the list."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:30
+msgid ""
+"Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
+"dependencies, and not coupled with `dmenu`."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:34
+msgid ""
+"[dmenu]: https://tools.suckless.org/dmenu/ [fzf]: https://github.com/"
+"junegunn/fzf [yeganesh]: http://dmwit.com/yeganesh/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:37
+msgid "## Installation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:43
+msgid "```shell $ make $ make check # make install ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:45
+msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:51
+msgid "```shell $ make $ make check $ make install PREFIX=$HOME/.local ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:54
+msgid ""
+"There are no dependencies or requirements, only standard tools such as POSIX "
+"sed, POSIX make, etc."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:57
+msgid "## Documentation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:59
+msgid "### Manuals"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:63
+msgid ""
+"The documentation is available via installed manpages or online: - "
+"[`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]); - [`remembering.5`] "
+"([pt][pt.5], [fr][fr.5], [eo][eo.5])."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:72
+msgid ""
+"[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html "
+"[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html [fr.1]: "
+"https://euandreh.xyz/remembering/fr/remembering.1.html [eo.1]: https://"
+"euandreh.xyz/remembering/eo/remembering.1.html [`remembering.5`]: https://"
+"euandreh.xyz/remembering/en/remembering.5.html [pt.5]: https://euandreh.xyz/"
+"remembering/pt/remembering.5.html [fr.5]: https://euandreh.xyz/remembering/"
+"fr/remembering.5.html [eo.5]: https://euandreh.xyz/remembering/eo/"
+"remembering.5.html"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:74
+msgid "### Directory structure"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:83
+#, no-wrap
+msgid ""
+"The directory structure of the repository is:\n"
+"- `aux/`: personal scripts and helpers I've vendored in to ensure the\n"
+" repository is self contained, feel free to ignore it;\n"
+"- `doc/`: manpages, with their translated versions;\n"
+"- `po/`: gettext `.po` files for the translated languages and hunspell\n"
+" dictionaries for spell checking;\n"
+"- `src/`: main source code for the project;\n"
+"- `tests/`: integration tests for the project.\n"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:86
+msgid "## Contributing"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:93
+msgid ""
+"Extra tools used for development are: - [Valgrind] for memory testing; - "
+"[ShellCheck] for validating scripts; - [po4a], [mdpo] and [gettext] for i18n "
+"and l10n support; - [makefile2graph] and [graphviz] for generating [makefile."
+"svg]; - [pandoc] for generating the documentation HTML and website."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:103
+msgid ""
+"[Valgrind]: https://valgrind.org [ShellCheck]: https://www.shellcheck.net/ "
+"[po4a]: https://po4a.org/index.php.en [gettext]: https://www.gnu.org/"
+"software/gettext/ [pandoc]: https://pandoc.org/ [mdpo]: https://mdpo."
+"readthedocs.io/en/master/ [makefile2graph]: https://github.com/lindenb/"
+"makefile2graph [graphviz]: https://graphviz.org/ [makefile.svg]: https://"
+"euandreh.xyz/git-permalink/makefile.svg"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:105
+msgid "For running the extra development-only checks, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:109
+msgid "```shell $ make dev-check ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:111
+msgid "and for generating the documentation HTML and website, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:115
+msgid "```shell $ make public ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:118
+msgid ""
+"Send contributions to the [mailing list] via [`git send-email`](https://git-"
+"send-email.io/)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:121
+msgid "## Links"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[homepage](https://euandre.org/s/remembering/en/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[source code](https://euandre.org/git/remembering/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[bug tracking](https://euandre.org/s/remembering/TODOs.html)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[mailing list]"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CI logs](https://euandre.org/s/remembering/ci/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CHANGELOG](https://euandre.org/s/remembering/en/CHANGELOG.html)"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:130
+msgid ""
+"[mailing list]: https://lists.sr.ht/~euandreh/public-inbox?search="
+"%5Bremembering%5D"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:133
+msgid "## Releases"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) [remembering-"
+"v0.3.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.3.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.3.0.tar.gz.asc)) - 2022-11-25"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) [remembering-"
+"v0.2.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.1.tar.gz.asc)) - 2021-02-23"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) [remembering-"
+"v0.2.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.0.tar.gz.asc)) - 2021-02-21"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) [remembering-"
+"v0.1.2.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.2.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.2.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) [remembering-"
+"v0.1.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.1.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) [remembering-"
+"v0.1.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.0.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:143
+msgid "## License"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:147
+msgid ""
+"The code is licensed under [GNU Affero General Public License v3.0 or later]"
+"[AGPL-3.0-or-later] (AGPL-3.0-or-later)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:148
+msgid "[AGPL-3.0-or-later]: https://euandre.org/git/remembering/tree/COPYING"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:2
+msgid ".SH AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:7
+msgid ".MT eu@euandre.org EuAndreh .ME and contributors."
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:10
+msgid ".SH BUGS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:30
+msgid ""
+".IP \\(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht "
+"mailing list .ME . Use the subject \"\\f(CR[@NAME@] BUG or TASK: "
+"<description>\\fR\". .IP \\(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs."
+"html online .UE . .IP \\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . ."
+"IP \\(bu .UR https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@"
+"%5D Comments and discussions .UE ."
+msgstr ""
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..5a089c3
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,1066 @@
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "REMEMBERING"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "@DATE@"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "remembering @VERSION@"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:4 doc/remembering.en.5.in:4
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:7
+msgid "remembering - sort list from I<STDIN> using past choices as weight."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:9
+#, no-wrap
+msgid "SYNOPSYS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:12
+msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:17
+msgid ""
+"B<remembering> takes a command that chooses an option as its behaviour, such "
+"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
+"it is used, will put the most used choices at the beginning of the list."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:20
+msgid ""
+"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
+"be sorted."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:22
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:24
+#, no-wrap
+msgid "B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:27
+msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:28
+#, no-wrap
+msgid "B<-p> I<PROFILE>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:31
+msgid "The name of the I<PROFILE> where to look up and store raking data."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:32
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:35
+msgid "Show short help text."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:36
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:39
+msgid "Show version number."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:41
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:44
+msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:48
+#, no-wrap
+msgid "$ ls | remembering -p fzf-ls -c fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:53
+msgid ""
+"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
+"via B<remembering>, and execute with B<sh>(1) the choice picked:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:57
+#, no-wrap
+msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:62
+msgid "Successive invocations will put the frequent choices at the beginning."
+msgstr ""
+
+#. type: SS
+#: doc/remembering.en.1.in:63
+#, no-wrap
+msgid "Simulation of an interactive session"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:66
+msgid ""
+"Below is a simulation of an interactive session, comparing the usage of "
+"plain B<fzf>(1) against composing it with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:75
+#, no-wrap
+msgid ""
+"$ mkdir -p example/\n"
+"$ cd example/\n"
+"$ touch a b c d e\n"
+"$ ls\n"
+"a b c d e\n"
+"$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:79
+msgid ""
+"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
+"into it and create 5 empty files: a, b, c, d and e."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:81
+msgid ""
+"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
+"order."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:83
+msgid ""
+"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
+"its prompt to pick one option:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
+#: doc/remembering.en.1.in:141
+#, no-wrap
+msgid ""
+" e\n"
+" d\n"
+" c\n"
+" b\n"
+"E<gt> a\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:97
+msgid ""
+"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
+"was given, and starts at the first one, \"a\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:99
+msgid ""
+"Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
+#, no-wrap
+msgid ""
+"$ ls | fzf\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:108
+msgid ""
+"Now if we run the same command again, we'll be given the same options, in "
+"the same order:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:112
+#, no-wrap
+msgid "$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:127
+msgid ""
+"B<fzf>(1) is doing what it is told to: making a prompt with the options "
+"given to it from I<STDIN>, in the order it was given."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:129
+msgid ""
+"In order to have our past choices show up in the beginning of the list, we "
+"can compose B<fzf>(1) with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
+#, no-wrap
+msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
+#, no-wrap
+msgid ""
+"$ ls | remembering -p tutorial-example -c 'fzf'\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:149
+msgid ""
+"So far we get the exact same behaviour, but saying extra things. We tell "
+"B<remembering> that we want this specific I<PROFILE> to be called "
+"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
+"\\f(CR'fzf'\\fR command to be ran."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:151
+msgid ""
+"From now on if we run the exact same command again, B<remembering> will "
+"I<remember> that the last choice was \"d\", and put it in the beginning of "
+"the list, which B<fzf>(1) happily displays in the order it was given:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:163
+#, no-wrap
+msgid ""
+" e\n"
+" c\n"
+" b\n"
+" a\n"
+"E<gt> d\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:170
+msgid ""
+"This time the \"d\" option was already the first one, and we can just press "
+"return to get it as the output value from the command."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:172
+msgid ""
+"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
+"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
+"line and writes to B<STDOUT>."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:174 doc/remembering.en.5.in:60
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:177
+msgid "B<remembering>(5)"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:179 doc/remembering.en.5.in:65
+#, no-wrap
+msgid "AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:185 doc/remembering.en.5.in:71
+msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:187 doc/remembering.en.5.in:73
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
+#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
+#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
+#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:196 doc/remembering.en.5.in:82
+msgid ""
+"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list E<."
+"ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
+"E<lt>descriptionE<gt>\\fR\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:201 doc/remembering.en.5.in:87
+msgid ""
+"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE ."
+">"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:205 doc/remembering.en.5.in:91
+msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:208 doc/remembering.en.5.in:94
+msgid ""
+"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
+"Comments and discussions E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:7
+msgid "remembering - format of the I<PROFILE> text file."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.5.in:9
+#, no-wrap
+msgid "PROFILE"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:13
+msgid ""
+"The I<PROFILE> is a text file, stored on \\f(CR$XDG_DATA_HOME/remembering/"
+"profile-name\\fR if \\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it "
+"lives in \\f(CR~/.local/share/remembering/profile-name\\fR."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:15
+msgid "Each line of the I<PROFILE> contains three pieces of information:"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:17
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:19
+msgid "the B<rank> of the current entry;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:19
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:21
+msgid "the \\f(CR:\\fR separator;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:21
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:23
+msgid "the B<entry> itself."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:26
+msgid ""
+"The B<rank> is a number, and the B<entry> is all the text until the end of "
+"the line after the \\f(CR:\\fR separator:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:34
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"0:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:38
+msgid ""
+"Above is an example of a I<PROFILE> file where all the entries have the "
+"default B<rank> value: B<0>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:40
+msgid ""
+"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
+"be:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:48
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"1:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:52
+msgid ""
+"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
+"beginning of the list, and as new picks happen their weight will increase, "
+"and will keep going up in priority."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:55
+msgid ""
+"The entries of the I<PROFILE> are created and kept sorted. "
+"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:58
+msgid ""
+"The current raking algorithm increments entries as a simple counter. Every "
+"time an entry is picked, its ranked is incremented in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:63
+msgid "B<remembering>(1)"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:11
+msgid ""
+"<!-- Entry template: --> <!-- # Unreleased ## Added ## Changed ## Deprecated "
+"## Removed ## Fixed ## Security -->"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:13
+msgid "Changelog for [remembering](https://euandre.org/remembering/en/)."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:16
+msgid "# Unreleased"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:19
+msgid ""
+"# [0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) - 2022-11-25"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:21 CHANGELOG.en.md:99 CHANGELOG.en.md:124
+msgid "## Added"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:23
+msgid "### Inference of profiles"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:25 CHANGELOG.en.md:73 CHANGELOG.en.md:103
+msgid "## Changed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:27
+msgid "### Remove `-c COMMAND` option"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:31
+msgid ""
+"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
+"commands to be ran as the \"rest\" argument to `remembering`, stored in `"
+"$@`. The usage changes from:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:35
+msgid "```shell $ remembering -p a-profile -c 'command $arg1 arg2' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:37
+msgid "to:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:41
+msgid "```shell $ remembering -p a-profile -- command $arg1 arg2 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:51
+#, no-wrap
+msgid ""
+"The upsides are:\n"
+"1. no need to worry about nested quotes: requiring a `-c COMMAND` option forced\n"
+" one to wrap the command and args inside quotes, and the quotation used\n"
+" influenced the command to be ran;\n"
+"1. one less option to know about: instead of having to remember what is the\n"
+" specific letter used for the command, just prefix the command with\n"
+" `remembering`;\n"
+"1. simpler and more powerful composition: wrapping commands without quoting them\n"
+" allows one to use many of such tools in combination:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:55
+msgid "```shell $ time nice -n10 timeout 3 remembering sleep 5 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:57
+#, no-wrap
+msgid " The equivalent with `-c COMMAND` would be:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:61
+msgid ""
+"```shell $ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep "
+"5\"'\"' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:64
+#, no-wrap
+msgid ""
+" But instead of alternating between single and double quotes, properly quoting\n"
+" them at each level.\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:66 CHANGELOG.en.md:110 CHANGELOG.en.md:117
+msgid "## Fixed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:68
+msgid "### Improve speed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:70
+msgid "Rewrite to make it faster"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:75
+msgid "### Use of `$XDG_DATA_HOME`"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:79
+msgid ""
+"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
+"appends a trailing `/remembering` to it instead of start writing files to "
+"where the environment variable points to."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:81
+msgid ""
+"This is in conformance with the [XDG Base Directory Specification][xdg]."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:83
+msgid ""
+"[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-"
+"latest.html"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:85
+msgid "### Exit code"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:87
+msgid ""
+"When remembering encounters an unrecognized option, it now exits with 2 "
+"instead of ignoring it."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:90
+msgid ""
+"# [0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) - 2021-02-23"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:92
+msgid "## Removed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:94
+msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:97
+msgid ""
+"# [0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) - 2021-02-21"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:101
+msgid "Add trivial `./configure` script."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:105
+msgid "Assume standard input is already sorted for faster processing."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:108
+msgid ""
+"# [0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:112
+msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:115
+msgid ""
+"# [0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:119
+msgid "Allow names with spaces."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:122
+msgid ""
+"# [0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:125
+msgid "Initial public release."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:2
+msgid "# remembering"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:4
+msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:8
+msgid ""
+"[pt1]: https://euandreh.xyz/remembering/pt/ [fr1]: https://euandreh.xyz/"
+"remembering/fr/ [eo1]: https://euandreh.xyz/remembering/eo/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:10
+msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:13
+msgid ""
+"It can wrap such tools to accumulate preferences over time, and re-arrange "
+"the input according to common picks."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:16
+msgid "## Usage"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:21
+msgid "Replace: ```shell $ ls | fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:26
+msgid "with: ```shell $ ls | remembering -p fzf-sample -c fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:28
+msgid ""
+"and see your previous choices from `fzf` start to appear at the beginning of "
+"the list."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:30
+msgid ""
+"Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
+"dependencies, and not coupled with `dmenu`."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:34
+msgid ""
+"[dmenu]: https://tools.suckless.org/dmenu/ [fzf]: https://github.com/"
+"junegunn/fzf [yeganesh]: http://dmwit.com/yeganesh/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:37
+msgid "## Installation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:43
+msgid "```shell $ make $ make check # make install ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:45
+msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:51
+msgid "```shell $ make $ make check $ make install PREFIX=$HOME/.local ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:54
+msgid ""
+"There are no dependencies or requirements, only standard tools such as POSIX "
+"sed, POSIX make, etc."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:57
+msgid "## Documentation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:59
+msgid "### Manuals"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:63
+msgid ""
+"The documentation is available via installed manpages or online: - "
+"[`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]); - [`remembering.5`] "
+"([pt][pt.5], [fr][fr.5], [eo][eo.5])."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:72
+msgid ""
+"[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html "
+"[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html [fr.1]: "
+"https://euandreh.xyz/remembering/fr/remembering.1.html [eo.1]: https://"
+"euandreh.xyz/remembering/eo/remembering.1.html [`remembering.5`]: https://"
+"euandreh.xyz/remembering/en/remembering.5.html [pt.5]: https://euandreh.xyz/"
+"remembering/pt/remembering.5.html [fr.5]: https://euandreh.xyz/remembering/"
+"fr/remembering.5.html [eo.5]: https://euandreh.xyz/remembering/eo/"
+"remembering.5.html"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:74
+msgid "### Directory structure"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:83
+#, no-wrap
+msgid ""
+"The directory structure of the repository is:\n"
+"- `aux/`: personal scripts and helpers I've vendored in to ensure the\n"
+" repository is self contained, feel free to ignore it;\n"
+"- `doc/`: manpages, with their translated versions;\n"
+"- `po/`: gettext `.po` files for the translated languages and hunspell\n"
+" dictionaries for spell checking;\n"
+"- `src/`: main source code for the project;\n"
+"- `tests/`: integration tests for the project.\n"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:86
+msgid "## Contributing"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:93
+msgid ""
+"Extra tools used for development are: - [Valgrind] for memory testing; - "
+"[ShellCheck] for validating scripts; - [po4a], [mdpo] and [gettext] for i18n "
+"and l10n support; - [makefile2graph] and [graphviz] for generating [makefile."
+"svg]; - [pandoc] for generating the documentation HTML and website."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:103
+msgid ""
+"[Valgrind]: https://valgrind.org [ShellCheck]: https://www.shellcheck.net/ "
+"[po4a]: https://po4a.org/index.php.en [gettext]: https://www.gnu.org/"
+"software/gettext/ [pandoc]: https://pandoc.org/ [mdpo]: https://mdpo."
+"readthedocs.io/en/master/ [makefile2graph]: https://github.com/lindenb/"
+"makefile2graph [graphviz]: https://graphviz.org/ [makefile.svg]: https://"
+"euandreh.xyz/git-permalink/makefile.svg"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:105
+msgid "For running the extra development-only checks, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:109
+msgid "```shell $ make dev-check ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:111
+msgid "and for generating the documentation HTML and website, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:115
+msgid "```shell $ make public ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:118
+msgid ""
+"Send contributions to the [mailing list] via [`git send-email`](https://git-"
+"send-email.io/)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:121
+msgid "## Links"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[homepage](https://euandre.org/s/remembering/en/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[source code](https://euandre.org/git/remembering/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[bug tracking](https://euandre.org/s/remembering/TODOs.html)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[mailing list]"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CI logs](https://euandre.org/s/remembering/ci/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+msgid "[CHANGELOG](https://euandre.org/s/remembering/en/CHANGELOG.html)"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:130
+msgid ""
+"[mailing list]: https://lists.sr.ht/~euandreh/public-inbox?search="
+"%5Bremembering%5D"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:133
+msgid "## Releases"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) [remembering-"
+"v0.3.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.3.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.3.0.tar.gz.asc)) - 2022-11-25"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) [remembering-"
+"v0.2.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.1.tar.gz.asc)) - 2021-02-23"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) [remembering-"
+"v0.2.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.2.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.2.0.tar.gz.asc)) - 2021-02-21"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) [remembering-"
+"v0.1.2.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.2.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.2.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) [remembering-"
+"v0.1.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.1.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+msgid ""
+"[v0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) [remembering-"
+"v0.1.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-"
+"v0.1.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/"
+"remembering-v0.1.0.tar.gz.asc)) - 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:143
+msgid "## License"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:147
+msgid ""
+"The code is licensed under [GNU Affero General Public License v3.0 or later]"
+"[AGPL-3.0-or-later] (AGPL-3.0-or-later)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:148
+msgid "[AGPL-3.0-or-later]: https://euandre.org/git/remembering/tree/COPYING"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:2
+msgid ".SH AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:7
+msgid ".MT eu@euandre.org EuAndreh .ME and contributors."
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:10
+msgid ".SH BUGS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:30
+msgid ""
+".IP \\(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht "
+"mailing list .ME . Use the subject \"\\f(CR[@NAME@] BUG or TASK: "
+"<description>\\fR\". .IP \\(bu Browse bugs .UR https://@TLD@/@NAME@/TODOs."
+"html online .UE . .IP \\(bu .UR https://@TLD@/@NAME@/en/ Homepage .UE . ."
+"IP \\(bu .UR https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@"
+"%5D Comments and discussions .UE ."
+msgstr ""
diff --git a/po/remembering.pot b/po/remembering.pot
new file mode 100644
index 0000000..daffc5a
--- /dev/null
+++ b/po/remembering.pot
@@ -0,0 +1,1108 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2023-04-01 22:07-0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "REMEMBERING"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "@DATE@"
+msgstr ""
+
+#. type: TH
+#: doc/remembering.en.1.in:1 doc/remembering.en.5.in:1
+#, no-wrap
+msgid "remembering @VERSION@"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:4 doc/remembering.en.5.in:4
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:7
+msgid "remembering - sort list from I<STDIN> using past choices as weight."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:9
+#, no-wrap
+msgid "SYNOPSYS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:12
+msgid "B<remembering> B<-p> I<PROFILE> B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:17
+msgid ""
+"B<remembering> takes a command that chooses an option as its behaviour, such "
+"as B<fzf>(1) or B<dmenu>(1), and I<remembers> what option is chosen, and as "
+"it is used, will put the most used choices at the beginning of the list."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:20
+msgid ""
+"B<remembering> reads from STDIN and writes to STDOUT. It expects STDIN to "
+"be sorted."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:22
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:24
+#, no-wrap
+msgid "B<-c> I<COMMAND>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:27
+msgid "The I<COMMAND> to be executed, reading from standard input (STDIN)."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:28
+#, no-wrap
+msgid "B<-p> I<PROFILE>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:31
+msgid "The name of the I<PROFILE> where to look up and store raking data."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:32
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:35
+msgid "Show short help text."
+msgstr ""
+
+#. type: TP
+#: doc/remembering.en.1.in:36
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:39
+msgid "Show version number."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:41
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:44
+msgid "List current directory and feed it to B<fzf>(1) via B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:48
+#, no-wrap
+msgid "$ ls | remembering -p fzf-ls -c fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:53
+msgid ""
+"Lists all executables available in I<$PATH>, and feed those to B<dmenu>(1) "
+"via B<remembering>, and execute with B<sh>(1) the choice picked:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:57
+#, no-wrap
+msgid "$ dmenu_path | remembering -p dmenu-exe -c 'dmenu' | sh\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:62
+msgid "Successive invocations will put the frequent choices at the beginning."
+msgstr ""
+
+#. type: SS
+#: doc/remembering.en.1.in:63
+#, no-wrap
+msgid "Simulation of an interactive session"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:66
+msgid ""
+"Below is a simulation of an interactive session, comparing the usage of "
+"plain B<fzf>(1) against composing it with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:75
+#, no-wrap
+msgid ""
+"$ mkdir -p example/\n"
+"$ cd example/\n"
+"$ touch a b c d e\n"
+"$ ls\n"
+"a b c d e\n"
+"$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:79
+msgid ""
+"We begin creating a sample directory called \"\\f(CRexample/\\fR\", we cd "
+"into it and create 5 empty files: a, b, c, d and e."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:81
+msgid ""
+"\\f(CRls\\fR can list the directory for us, in this case in alphabetical "
+"order."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:83
+msgid ""
+"When we pipe the output of \\f(CRls\\fR into B<fzf>(1), we are give given "
+"its prompt to pick one option:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:93 doc/remembering.en.1.in:120
+#: doc/remembering.en.1.in:141
+#, no-wrap
+msgid ""
+" e\n"
+" d\n"
+" c\n"
+" b\n"
+"E<gt> a\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:97
+msgid ""
+"Here B<fzf>(1) lists the items it gets from I<STDIN> in the order that it "
+"was given, and starts at the first one, \"a\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:99
+msgid "Once we type \"d\" and press return, the output of B<fzf>(1) is the choice:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:104 doc/remembering.en.1.in:123
+#, no-wrap
+msgid ""
+"$ ls | fzf\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:108
+msgid ""
+"Now if we run the same command again, we'll be given the same options, in "
+"the same order:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:112
+#, no-wrap
+msgid "$ ls | fzf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:127
+msgid ""
+"B<fzf>(1) is doing what it is told to: making a prompt with the options "
+"given to it from I<STDIN>, in the order it was given."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:129
+msgid ""
+"In order to have our past choices show up in the beginning of the list, we "
+"can compose B<fzf>(1) with B<remembering>:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:133 doc/remembering.en.1.in:155
+#, no-wrap
+msgid "$ ls | remembering -p tutorial-example -c 'fzf'\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:144 doc/remembering.en.1.in:166
+#, no-wrap
+msgid ""
+"$ ls | remembering -p tutorial-example -c 'fzf'\n"
+"d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:149
+msgid ""
+"So far we get the exact same behaviour, but saying extra things. We tell "
+"B<remembering> that we want this specific I<PROFILE> to be called "
+"\"\\f(CRtutorial-example\\fR\", and we give B<remembering> the "
+"\\f(CR'fzf'\\fR command to be ran."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:151
+msgid ""
+"From now on if we run the exact same command again, B<remembering> will "
+"I<remember> that the last choice was \"d\", and put it in the beginning of "
+"the list, which B<fzf>(1) happily displays in the order it was given:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:163
+#, no-wrap
+msgid ""
+" e\n"
+" c\n"
+" b\n"
+" a\n"
+"E<gt> d\n"
+" 5/5\n"
+"E<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:170
+msgid ""
+"This time the \"d\" option was already the first one, and we can just press "
+"return to get it as the output value from the command."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:172
+msgid ""
+"This example used B<fzf>(1) as the I<COMMAND> given to B<remembering>, but "
+"you can give to the B<-c> option anything that reads from I<STDIN>, picks a "
+"line and writes to B<STDOUT>."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:174 doc/remembering.en.5.in:60
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:177
+msgid "B<remembering>(5)"
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:179 doc/remembering.en.5.in:65
+#, no-wrap
+msgid "AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:185 doc/remembering.en.5.in:71
+msgid "E<.MT eu@euandre.org> EuAndreh E<.ME> and contributors."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.1.in:187 doc/remembering.en.5.in:73
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.1.in:189 doc/remembering.en.1.in:196
+#: doc/remembering.en.1.in:201 doc/remembering.en.1.in:205
+#: doc/remembering.en.5.in:75 doc/remembering.en.5.in:82
+#: doc/remembering.en.5.in:87 doc/remembering.en.5.in:91
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:196 doc/remembering.en.5.in:82
+msgid ""
+"Report bugs to the E<.MT ~euandreh/public-inbox@lists.sr.ht> mailing list "
+"E<.ME .> Use the subject \"\\f(CR[remembering] BUG or TASK: "
+"E<lt>descriptionE<gt>\\fR\"."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:201 doc/remembering.en.5.in:87
+msgid ""
+"Browse bugs E<.UR https://euandreh.xyz/remembering/TODOs.html> online E<.UE "
+".>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:205 doc/remembering.en.5.in:91
+msgid "E<.UR https://euandreh.xyz/remembering/en/> Homepage E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.1.in:208 doc/remembering.en.5.in:94
+msgid ""
+"E<.UR https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D> "
+"Comments and discussions E<.UE .>"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:7
+msgid "remembering - format of the I<PROFILE> text file."
+msgstr ""
+
+#. type: SH
+#: doc/remembering.en.5.in:9
+#, no-wrap
+msgid "PROFILE"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:13
+msgid ""
+"The I<PROFILE> is a text file, stored on "
+"\\f(CR$XDG_DATA_HOME/remembering/profile-name\\fR if "
+"\\f(CR$XDG_DATA_HOME\\fR is defined. Otherwise, it lives in "
+"\\f(CR~/.local/share/remembering/profile-name\\fR."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:15
+msgid "Each line of the I<PROFILE> contains three pieces of information:"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:17
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:19
+msgid "the B<rank> of the current entry;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:19
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:21
+msgid "the \\f(CR:\\fR separator;"
+msgstr ""
+
+#. type: IP
+#: doc/remembering.en.5.in:21
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:23
+msgid "the B<entry> itself."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:26
+msgid ""
+"The B<rank> is a number, and the B<entry> is all the text until the end of "
+"the line after the \\f(CR:\\fR separator:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:34
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"0:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:38
+msgid ""
+"Above is an example of a I<PROFILE> file where all the entries have the "
+"default B<rank> value: B<0>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:40
+msgid ""
+"If the I<COMMAND> runs and chooses \\f(CRbanana\\fR, the new I<PROFILE> will "
+"be:"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:48
+#, no-wrap
+msgid ""
+"0:an entry\n"
+"1:banana\n"
+"0:entry\n"
+"0:something\n"
+"0:zzz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:52
+msgid ""
+"Now the next time the I<COMMAND> runs it will get \\f(CRbanana\\fR at the "
+"beginning of the list, and as new picks happen their weight will increase, "
+"and will keep going up in priority."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:55
+msgid ""
+"The entries of the I<PROFILE> are created and kept sorted. "
+"B<remembering>(1) expects to always find sorted entries in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:58
+msgid ""
+"The current raking algorithm increments entries as a simple counter. Every "
+"time an entry is picked, its ranked is incremented in the I<PROFILE>."
+msgstr ""
+
+#. type: Plain text
+#: doc/remembering.en.5.in:63
+msgid "B<remembering>(1)"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:11
+msgid ""
+"<!-- Entry template: --> <!-- # Unreleased ## Added ## Changed ## Deprecated "
+"## Removed ## Fixed ## Security -->"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:13
+msgid "Changelog for [remembering](https://euandre.org/remembering/en/)."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:16
+msgid "# Unreleased"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:19
+msgid ""
+"# [0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) - "
+"2022-11-25"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:21 CHANGELOG.en.md:99 CHANGELOG.en.md:124
+msgid "## Added"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:23
+msgid "### Inference of profiles"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:25 CHANGELOG.en.md:73 CHANGELOG.en.md:103
+msgid "## Changed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:27
+msgid "### Remove `-c COMMAND` option"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:31
+msgid ""
+"Instead of requiring a `-c COMMAND` option explicitly, instead receive the "
+"commands to be ran as the \"rest\" argument to `remembering`, stored in "
+"`$@`. The usage changes from:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:35
+msgid "```shell $ remembering -p a-profile -c 'command $arg1 arg2' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:37
+msgid "to:"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:41
+msgid "```shell $ remembering -p a-profile -- command $arg1 arg2 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:51
+#, no-wrap
+msgid ""
+"The upsides are:\n"
+"1. no need to worry about nested quotes: requiring a `-c COMMAND` option "
+"forced\n"
+" one to wrap the command and args inside quotes, and the quotation used\n"
+" influenced the command to be ran;\n"
+"1. one less option to know about: instead of having to remember what is "
+"the\n"
+" specific letter used for the command, just prefix the command with\n"
+" `remembering`;\n"
+"1. simpler and more powerful composition: wrapping commands without quoting "
+"them\n"
+" allows one to use many of such tools in combination:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:55
+msgid "```shell $ time nice -n10 timeout 3 remembering sleep 5 ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:57
+#, no-wrap
+msgid " The equivalent with `-c COMMAND` would be:\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:61
+msgid ""
+"```shell $ time -c 'nice -n10 -c \"timeout 3 -c 'remembering -c \"sleep "
+"5\"'\"' ```"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:64
+#, no-wrap
+msgid ""
+" But instead of alternating between single and double quotes, properly "
+"quoting\n"
+" them at each level.\n"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:66 CHANGELOG.en.md:110 CHANGELOG.en.md:117
+msgid "## Fixed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:68
+msgid "### Improve speed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:70
+msgid "Rewrite to make it faster"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:75
+msgid "### Use of `$XDG_DATA_HOME`"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:79
+msgid ""
+"When the environment variable `$XDG_DATA_HOME` is defined, remembering now "
+"appends a trailing `/remembering` to it instead of start writing files to "
+"where the environment variable points to."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:81
+msgid "This is in conformance with the [XDG Base Directory Specification][xdg]."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:83
+msgid ""
+"[xdg]: "
+"https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:85
+msgid "### Exit code"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:87
+msgid ""
+"When remembering encounters an unrecognized option, it now exits with 2 "
+"instead of ignoring it."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:90
+msgid ""
+"# [0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) - "
+"2021-02-23"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:92
+msgid "## Removed"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:94
+msgid "Revert to plain `Makefile` over `./configure` + `Makefile.in`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:97
+msgid ""
+"# [0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) - "
+"2021-02-21"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:101
+msgid "Add trivial `./configure` script."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:105
+msgid "Assume standard input is already sorted for faster processing."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:108
+msgid ""
+"# [0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) - "
+"2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:112
+msgid "Replace usage of GNU Coreutils' specific `tac` utility with `sed`."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:115
+msgid ""
+"# [0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) - "
+"2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:119
+msgid "Allow names with spaces."
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:122
+msgid ""
+"# [0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) - "
+"2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: CHANGELOG.en.md:125
+msgid "Initial public release."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:2
+msgid "# remembering"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:4
+msgid "[pt][pt1] | [fr][fr1] | [eo][eo1]"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:8
+msgid ""
+"[pt1]: https://euandreh.xyz/remembering/pt/ [fr1]: "
+"https://euandreh.xyz/remembering/fr/ [eo1]: "
+"https://euandreh.xyz/remembering/eo/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:10
+msgid "Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:13
+msgid ""
+"It can wrap such tools to accumulate preferences over time, and re-arrange "
+"the input according to common picks."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:16
+msgid "## Usage"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:21
+msgid "Replace: ```shell $ ls | fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:26
+msgid "with: ```shell $ ls | remembering -p fzf-sample -c fzf ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:28
+msgid ""
+"and see your previous choices from `fzf` start to appear at the beginning of "
+"the list."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:30
+msgid ""
+"Similar to [`yeganesh`][yeganesh], but with no build-time or run-time "
+"dependencies, and not coupled with `dmenu`."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:34
+msgid ""
+"[dmenu]: https://tools.suckless.org/dmenu/ [fzf]: "
+"https://github.com/junegunn/fzf [yeganesh]: http://dmwit.com/yeganesh/"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:37
+msgid "## Installation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:43
+msgid "```shell $ make $ make check # make install ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:45
+msgid "You can pass `PREFIX` or `DESTDIR` to `make`:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:51
+msgid "```shell $ make $ make check $ make install PREFIX=$HOME/.local ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:54
+msgid ""
+"There are no dependencies or requirements, only standard tools such as POSIX "
+"sed, POSIX make, etc."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:57
+msgid "## Documentation"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:59
+msgid "### Manuals"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:63
+msgid ""
+"The documentation is available via installed manpages or online: - "
+"[`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]); - [`remembering.5`] "
+"([pt][pt.5], [fr][fr.5], [eo][eo.5])."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:72
+msgid ""
+"[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html "
+"[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html [fr.1]: "
+"https://euandreh.xyz/remembering/fr/remembering.1.html [eo.1]: "
+"https://euandreh.xyz/remembering/eo/remembering.1.html [`remembering.5`]: "
+"https://euandreh.xyz/remembering/en/remembering.5.html [pt.5]: "
+"https://euandreh.xyz/remembering/pt/remembering.5.html [fr.5]: "
+"https://euandreh.xyz/remembering/fr/remembering.5.html [eo.5]: "
+"https://euandreh.xyz/remembering/eo/remembering.5.html"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:74
+msgid "### Directory structure"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:83
+#, no-wrap
+msgid ""
+"The directory structure of the repository is:\n"
+"- `aux/`: personal scripts and helpers I've vendored in to ensure the\n"
+" repository is self contained, feel free to ignore it;\n"
+"- `doc/`: manpages, with their translated versions;\n"
+"- `po/`: gettext `.po` files for the translated languages and hunspell\n"
+" dictionaries for spell checking;\n"
+"- `src/`: main source code for the project;\n"
+"- `tests/`: integration tests for the project.\n"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:86
+msgid "## Contributing"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:93
+msgid ""
+"Extra tools used for development are: - [Valgrind] for memory testing; - "
+"[ShellCheck] for validating scripts; - [po4a], [mdpo] and [gettext] for i18n "
+"and l10n support; - [makefile2graph] and [graphviz] for generating "
+"[makefile.svg]; - [pandoc] for generating the documentation HTML and "
+"website."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:103
+msgid ""
+"[Valgrind]: https://valgrind.org [ShellCheck]: https://www.shellcheck.net/ "
+"[po4a]: https://po4a.org/index.php.en [gettext]: "
+"https://www.gnu.org/software/gettext/ [pandoc]: https://pandoc.org/ [mdpo]: "
+"https://mdpo.readthedocs.io/en/master/ [makefile2graph]: "
+"https://github.com/lindenb/makefile2graph [graphviz]: https://graphviz.org/ "
+"[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:105
+msgid "For running the extra development-only checks, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:109
+msgid "```shell $ make dev-check ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:111
+msgid "and for generating the documentation HTML and website, run:"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:115
+msgid "```shell $ make public ```"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:118
+msgid ""
+"Send contributions to the [mailing list] via [`git "
+"send-email`](https://git-send-email.io/)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:121
+msgid "## Links"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+#, markdown-text
+msgid "[homepage](https://euandre.org/s/remembering/en/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+#, markdown-text
+msgid "[source code](https://euandre.org/git/remembering/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+#, markdown-text
+msgid "[bug tracking](https://euandre.org/s/remembering/TODOs.html)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+#, markdown-text
+msgid "[mailing list]"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+#, markdown-text
+msgid "[CI logs](https://euandre.org/s/remembering/ci/)"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:128
+#, markdown-text
+msgid "[CHANGELOG](https://euandre.org/s/remembering/en/CHANGELOG.html)"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:130
+msgid ""
+"[mailing list]: "
+"https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:133
+msgid "## Releases"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+#, markdown-text
+msgid ""
+"[v0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) "
+"[remembering-v0.3.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.3.0.tar.gz) "
+"([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.3.0.tar.gz.asc)) "
+"- 2022-11-25"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+#, markdown-text
+msgid ""
+"[v0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) "
+"[remembering-v0.2.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.2.1.tar.gz) "
+"([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.2.1.tar.gz.asc)) "
+"- 2021-02-23"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+#, markdown-text
+msgid ""
+"[v0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) "
+"[remembering-v0.2.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.2.0.tar.gz) "
+"([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.2.0.tar.gz.asc)) "
+"- 2021-02-21"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+#, markdown-text
+msgid ""
+"[v0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) "
+"[remembering-v0.1.2.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.gz) "
+"([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.gz.asc)) "
+"- 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+#, markdown-text
+msgid ""
+"[v0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) "
+"[remembering-v0.1.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.1.tar.gz) "
+"([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.1.tar.gz.asc)) "
+"- 2021-01-26"
+msgstr ""
+
+#. type: Bullet: '- '
+#: index.en.md:140
+#, markdown-text
+msgid ""
+"[v0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) "
+"[remembering-v0.1.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.0.tar.gz) "
+"([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.0.tar.gz.asc)) "
+"- 2021-01-26"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:143
+msgid "## License"
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:147
+msgid ""
+"The code is licensed under [GNU Affero General Public License v3.0 or "
+"later][AGPL-3.0-or-later] (AGPL-3.0-or-later)."
+msgstr ""
+
+#. type: Plain text
+#: index.en.md:148
+msgid "[AGPL-3.0-or-later]: https://euandre.org/git/remembering/tree/COPYING"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:2
+msgid ".SH AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:7
+msgid ".MT eu@euandre.org EuAndreh .ME and contributors."
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:10
+msgid ".SH BUGS"
+msgstr ""
+
+#. type: Plain text
+#: aux/checks/manpages/footer.en.0.in:30
+msgid ""
+".IP \\(bu Report bugs to the .MT ~euandreh/@MAILING_LIST@@lists.sr.ht "
+"mailing list .ME . Use the subject \"\\f(CR[@NAME@] BUG or TASK: "
+"<description>\\fR\". .IP \\(bu Browse bugs .UR "
+"https://@TLD@/@NAME@/TODOs.html online .UE . .IP \\(bu .UR "
+"https://@TLD@/@NAME@/en/ Homepage .UE . .IP \\(bu .UR "
+"https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@NAME@%5D Comments "
+"and discussions .UE ."
+msgstr ""
diff --git a/po4a.cfg b/po4a.cfg
new file mode 100644
index 0000000..49450cf
--- /dev/null
+++ b/po4a.cfg
@@ -0,0 +1,9 @@
+[options] --keep 0 --master-charset UTF-8 --localized-charset UTF-8
+
+[po_directory] po
+
+[type: man] doc/remembering.en.1.in $lang:doc/remembering.$lang.1.in
+[type: man] doc/remembering.en.5.in $lang:doc/remembering.$lang.5.in
+[type: text] CHANGELOG.en.md $lang:CHANGELOG.$lang.md
+[type: text] index.en.md $lang:index.$lang.md
+[type: text] aux/checks/manpages/footer.en.0.in $lang:aux/checks/manpages/footer.$lang.0.in
diff --git a/tests/signals.sh b/tests/signals.sh
index ff684cc..36491cf 100755
--- a/tests/signals.sh
+++ b/tests/signals.sh
@@ -3,7 +3,8 @@ set -u
. tests/lib.sh
-export XDG_DATA_HOME="$PWD/tests/test-profiles/signals-$(uuid)"
+XDG_DATA_HOME="$PWD/tests/test-profiles/signals-$(uuid)"
+export XDG_DATA_HOME
test_status_is_zero_when_command_is_successful() {
testing 'status is 0 when command is successful'