aboutsummaryrefslogtreecommitdiff
path: root/v2/src/bin/i18n
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-04-09 18:59:09 -0300
committerEuAndreh <eu@euandre.org>2023-04-09 19:05:39 -0300
commit19a8b995c59cce5315e1d121054f9c27aad5c960 (patch)
treef2c2d83751245004beed21b31d973c1d412cd026 /v2/src/bin/i18n
parentv2: CSS dark mode, including SVGs (diff)
downloadeuandre.org-19a8b995c59cce5315e1d121054f9c27aad5c960.tar.gz
euandre.org-19a8b995c59cce5315e1d121054f9c27aad5c960.tar.xz
v2: Support translated alternates in <nav>
Diffstat (limited to 'v2/src/bin/i18n')
-rwxr-xr-xv2/src/bin/i18n87
1 files changed, 87 insertions, 0 deletions
diff --git a/v2/src/bin/i18n b/v2/src/bin/i18n
new file mode 100755
index 0000000..76e07e7
--- /dev/null
+++ b/v2/src/bin/i18n
@@ -0,0 +1,87 @@
+#!/bin/sh
+set -eu
+
+usage() {
+ cat <<-'EOF'
+ Usage:
+ i18n
+ i18n -h
+ EOF
+}
+
+help() {
+ cat <<-'EOF'
+
+
+ Options:
+ -h, --help show this message
+
+
+ Look at the mappings file provided via STDIN and notify all of
+ the files of all of their translations, so that they can include
+ it in their header.
+
+
+ Examples:
+
+ Generate it from "po/i18n.mappings":
+
+ $ i18n < po/i18n.mappings
+ EOF
+}
+
+
+for flag in "$@"; do
+ case "$flag" in
+ --)
+ break
+ ;;
+ --help)
+ usage
+ help
+ exit
+ ;;
+ *)
+ ;;
+ esac
+done
+
+while getopts 'h' flag; do
+ case "$flag" in
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ usage >&2
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+
+
+awk '
+{
+ from = $3
+ idx[from][0] = "en:" from
+ for (i = 4; i <= NF; i++) {
+ to = $i
+ idx[from][length(idx[from])] = to
+ }
+}
+
+END {
+ for (k1 in idx) {
+ for (k2 in idx[k1]) {
+ split(idx[k1][k2], a, /:/)
+ file = a[2] ".i18n"
+ for (k3 in idx[k1]) {
+ print idx[k1][k3] > file
+ }
+ }
+ }
+}
+'