#!/bin/bash

cd $(dirname "$0")/..

function update_lang() {
  file=$1

	echo "Updating: $file"
	path=$(dirname $file)
	msgmerge --quiet --no-location --width 512 --backup none --update $file locales/base.pot
	msgfmt -o $path/base.mo $file
}


function generate_all() {
  for file in $(find locales/ -name "base.po"); do
    update_lang "$file"
  done
}

function generate_single_lang() {
  lang_file="locales/$1/LC_MESSAGES/base.po"

  if [ ! -f "$lang_file" ]; then
    echo "Language files not found: $lang_file"
    exit 1
  fi

  update_lang "$lang_file"
}



if [ $# -eq 0 ]
  then
    echo "Usage: locales_generator.sh <language_abbr>"
    exit 1
fi

lang=$1

# Update the base file containing all translatable string
find . -type f -iname "*.py" | xargs xgettext --join-existing --no-location --omit-header -d base -o locales/base.pot

case "$lang" in
  "all") generate_all
  ;;
  *) generate_single_lang "$lang"
esac