summaryrefslogtreecommitdiff
path: root/scripts/newbitmaps/strings/localized_text/build_message
blob: c488841758eaad6654f60b0bd3f38c7724063274 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Generates localized text images

SCRIPT="$(readlink -f "$0")"
SCRIPT_DIR="$(dirname "$SCRIPT")"
TXT_TO_PNG=$(readlink -f "$SCRIPT_DIR/../text_to_png")
BACKGROUND="$SCRIPT_DIR/../../images/Background_white.png"

die() {
  echo "ERROR: $*" >&2
  exit 1
}

get_width() {
  local input="$1"
  identify -format "%w" "$input"
}

do_locale() {
  local locale_dir="$1"
  local max_width="$2"
  local locale="$(basename $locale_dir)"
  local file conf entry font

  font="$(sed -nre "s/^$locale: *(.*) *$/\1/p" $SCRIPT_DIR/font.conf)"
  for file in $locale_dir/*.txt; do
    entry="$(basename $file)"
    entry="${entry%%.*}"
    conf="$(sed -nre "s/^$entry: *(.*) *$/\1/p" $SCRIPT_DIR/text.conf)"
    $TXT_TO_PNG --lan="$locale" --font="$font" $conf $file
    if [ "$(get_width ${file%.*}.png)" -gt $max_width ]; then
      die "Error: message to long: $entry"
    fi
  done
}

main() {
  [ "$#" -gt "0" ] || die "Usage: $0 locale(s)..."

  local max_width="$(( $(get_width $BACKGROUND) * 4 / 5 ))"
  for locale in "$@"; do
    do_locale "$locale" "$max_width"
  done
}

set -e
main "$@"