aboutsummaryrefslogblamecommitdiff
path: root/v2/src/bin/i18n
blob: 30404eb56449a6358d6a4ff35bf308c9f35e47f0 (plain) (tree)












































































                                                                                

                                         
                                     











                                                                        




                         
#!/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) {
		split(idx[k1][0], b, /:/)
		base = b[2] ".i18n"
		for (k2 in idx[k1]) {
			split(idx[k1][k2], f, /:/)
			file = f[2] ".i18n"
			if (k2 == 0) {
				for (k3 in idx[k1]) {
					"url-for " f[2] | getline url
					print idx[k1][k3] ":" url > file
				}
			} else {
				ret = system("cp " base " " file)
				if (ret) {
					exit ret
				}
			}
		}
	}
}
'