Start the work of installing locales in a better place
diff --git a/locale_install.sh b/locale_install.sh
new file mode 100755
index 0000000..886969c
--- /dev/null
+++ b/locale_install.sh
@@ -0,0 +1,56 @@
+#! /bin/sh
+#
+# Copyright 2018 Gavin D. Howard
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+
+usage() {
+	printf "usage: %s install_dir main_exec\n" "$0" 1>&2
+	exit 1
+}
+
+script="$0"
+scriptdir=$(dirname "$script")
+
+. "$scriptdir/tests/functions.sh"
+
+INSTALL="$scriptdir/safe-install.sh"
+
+test "$#" -ge 2 || usage
+
+install_dir="$1"
+shift
+
+main_exec="$1"
+shift
+
+catalog_dir="$scriptdir/locales/catalogs"
+
+for file in $catalog_dir/*.cat; do
+
+	base=$(basename "$file")
+	name=$(removeext "$base")
+	d="$install_dir/$name/LC_MESSAGES"
+	loc="$install_dir/$name/LC_MESSAGES/$main_exec.cat"
+
+	mkdir -p "$d"
+
+	if [ -L "$file" ]; then
+		link=$(readlink "$file")
+		linkname=$(basename "$link")
+		"$INSTALL" -Dlm 755 "../../$linkname/LC_MESSAGES/$link" "$loc"
+	else
+		"$INSTALL" -Dm 755 "$file" "$loc"
+	fi
+
+done