summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHung-Te Lin <hungte@chromium.org>2012-08-10 19:01:52 +0800
committerGerrit <chrome-bot@google.com>2012-08-10 11:18:52 -0700
commitc951eb8257862a3f85c8d23050cf3b617ce1e1c0 (patch)
treeba64f714c4535b311d9a87bbf50b3550d5722e63
parent69742668297ac9e5e82f0dbb704a3714bd0cba62 (diff)
downloadvboot-c951eb8257862a3f85c8d23050cf3b617ce1e1c0.tar.gz
newbitmaps: Refine font and text generation.
The bmpblk build scripts used to rely on lots of pre-generated resources, and the HWID font data was fixed to x86 special size & scaling parameters. Since the screens now rely on more platform dependent parameters, this CL refined whole flow so fonts are now generated and processed (ex, re-scale) in the same way as other text messages. BUG=chrome-os-partner:11078 TEST=make # x86 and arm bitmaps both works. Change-Id: I59a4fb31718ef052c6b54cd4642f4fc487893f2b Reviewed-on: https://gerrit.chromium.org/gerrit/29873 Tested-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Ready: Hung-Te Lin <hungte@chromium.org>
-rw-r--r--.gitignore5
-rw-r--r--scripts/newbitmaps/Makefile21
-rwxr-xr-xscripts/newbitmaps/fonts/make_ascii_bmps.py90
-rw-r--r--scripts/newbitmaps/images/DEFAULT.yaml1002
-rw-r--r--scripts/newbitmaps/images/Makefile20
-rw-r--r--scripts/newbitmaps/images/Url.bmpbin8086 -> 0 bytes
-rwxr-xr-xscripts/newbitmaps/images/build_images40
-rw-r--r--scripts/newbitmaps/images/hwid_fonts.binbin52592 -> 0 bytes
-rwxr-xr-xscripts/newbitmaps/images/make_default_yaml45
-rwxr-xr-xscripts/newbitmaps/lib/bmpblock.py1
-rw-r--r--scripts/newbitmaps/strings/Makefile27
-rw-r--r--scripts/newbitmaps/strings/Url.TXT2
-rw-r--r--scripts/newbitmaps/strings/Url.txt1
-rwxr-xr-xscripts/newbitmaps/strings/build_font41
-rw-r--r--scripts/newbitmaps/strings/current_hwid.txt1
-rw-r--r--scripts/newbitmaps/strings/hwid_unknown.txt1
-rw-r--r--scripts/newbitmaps/strings/localized_text/Makefile6
-rwxr-xr-xscripts/newbitmaps/strings/text_to_png71
18 files changed, 192 insertions, 1182 deletions
diff --git a/.gitignore b/.gitignore
index b2f7a2ea..dde2e785 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,8 @@
/build-au
/build-main
ID
+scripts/newbitmaps/images/out_*
scripts/newbitmaps/lib/*.pyc
+scripts/newbitmaps/strings/font
scripts/newbitmaps/strings/localized_text/*/*.png
-scripts/newbitmaps/fonts/outdir
-scripts/newbitmaps/images/out_*
+scripts/newbitmaps/strings/*.png
diff --git a/scripts/newbitmaps/Makefile b/scripts/newbitmaps/Makefile
index 90c4a560..d9840ab1 100644
--- a/scripts/newbitmaps/Makefile
+++ b/scripts/newbitmaps/Makefile
@@ -11,9 +11,9 @@ ALL_LOCALES=en es_419 pt_BR en_GB fr es pt_PT ca it de \
uk tr iw ar fa hi th vi id fil zh_CN zh_TW ko ja
# Here are the launch locales for Stumpy/Lumpy (issue 6595), same ordering.
-DEFAULT_LOCALES=en es_419 pt_BR en_GB fr es it de nl da no sv ko ja
+LOCALES=en es_419 pt_BR en_GB fr es it de nl da no sv ko ja
-default: outside_chroot fonts strings x86 arm clean
+default: outside_chroot strings x86 arm clean
outside_chroot:
@if [ -e /etc/debian_chroot ]; then \
@@ -23,26 +23,19 @@ outside_chroot:
exit 1; \
fi
-
-fonts:
- # TODO(hungte) Move fonts generation to its own Makefile.
- cd fonts && ./make_ascii_bmps.py
- bmpblk_font --outfile images/hwid_fonts.bin fonts/outdir/*
-
strings:
- $(MAKE) -C strings/localized_text
+ $(MAKE) -C strings
x86:
- $(MAKE) -C images $@ DEFAULT_LOCALES="$(DEFAULT_LOCALES)"
+ $(MAKE) -C images $@ LOCALES="$(LOCALES)"
cp -f images/out_$@/bmpblock.bin bmpblock_$@.bin
arm:
- $(MAKE) -C images $@ DEFAULT_LOCALES="$(DEFAULT_LOCALES)"
+ $(MAKE) -C images $@ LOCALES="$(LOCALES)"
cp -f images/out_$@/bmpblock.bin bmpblock_$@.bin
clean:
- rm -rf fonts/outdir
- $(MAKE) -C strings/localized_text clean
+ $(MAKE) -C strings clean
$(MAKE) -C images clean
-.PHONY: outside_chroot fonts strings x86 arm
+.PHONY: outside_chroot strings x86 arm clean
diff --git a/scripts/newbitmaps/fonts/make_ascii_bmps.py b/scripts/newbitmaps/fonts/make_ascii_bmps.py
deleted file mode 100755
index 8d58849d..00000000
--- a/scripts/newbitmaps/fonts/make_ascii_bmps.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/python -tt
-# Copyright (c) 2011 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.
-
-import optparse
-import os
-import subprocess
-import sys
-import tempfile
-
-chars = '* 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ{}-_'
-
-def main():
- """Convert a set of text chars into individual BMPs.
-
- This uses ImageMagick, so don't run it inside the build chroot.
- Not all characters in the world are supported.
- """
-
- parser = optparse.OptionParser()
- parser.description = ' '.join(main.__doc__.split())
- parser.add_option("--foreground", default='#000000',
- dest="fg", action="store", metavar="COLOR",
- help="foreground color (%default)")
- parser.add_option("--background", default='#ffffff',
- dest="bg", action="store", metavar="COLOR",
- help="background color (%default)")
- parser.add_option("--font", default='Helvetica',
- dest="font", action="store",
- help="font to use (%default)")
- parser.add_option("--size", default='15', metavar="POINTSIZE",
- dest="size", action="store",
- help="font size (%default)")
- parser.add_option('--dir', default='./outdir',
- dest="outdir", action="store",
- help="output directory (%default)")
- (options, args) = parser.parse_args()
-
-
- if not os.path.isdir(options.outdir):
- os.mkdir(options.outdir)
-
- # ARM U-Boot is very picky about its BMPs. They have to have exactly 256
- # colors in their colormap. Imagemagick generally tries to reduce the
- # colormap when it can, so we have to play some games to force it not to.
- # We'll create a gradient file with 256 colors, and then make sure that all
- # our rendered characters use the same colormap. This makes the resulting
- # images larger, but it also means they'll work on x86 too. Sigh.
- (handle, gradient_file) = tempfile.mkstemp(".png")
- os.close(handle)
-
- cmd = ('convert', '-size', '256x1',
- 'gradient:%s-%s' % (options.fg, options.bg),
- gradient_file)
- print ' '.join(cmd)
- subprocess.call(cmd)
-
-
- count=0
- for ascii in chars:
- outfile = os.path.join(options.outdir,
- "idx%03d_%x.bmp" % (count,ord(ascii)))
- # TODO(hungte) Support assigning size & scaling for character images.
- print outfile
- cmd = ('convert',
- '-font', options.font,
- '-background', options.bg,
- '-fill', options.fg,
- '-bordercolor', options.bg,
- '-border', '0x3',
- '-gravity', 'Center',
- '-pointsize', options.size,
- '-resize', '120%x100', # Yes, magic.
- '-scale', '59%x78%', # Here, too.
- 'label:%s' % ascii,
- '-remap', gradient_file,
- '-compress', 'none',
- '-alpha', 'off',
- outfile)
- print ' '.join(cmd)
- count += 1
- subprocess.call(cmd)
-
- os.unlink(gradient_file)
-
-
-# Start it all off
-if __name__ == '__main__':
- main()
diff --git a/scripts/newbitmaps/images/DEFAULT.yaml b/scripts/newbitmaps/images/DEFAULT.yaml
deleted file mode 100644
index aea250ba..00000000
--- a/scripts/newbitmaps/images/DEFAULT.yaml
+++ /dev/null
@@ -1,1002 +0,0 @@
-bmpblock: 1.2
-
-compression: 2
-
-images:
-
- # We must specify a font blob to use to render the HWID
- $HWID: hwid_fonts.bin
-
- # This URL never changes
- url: Url.bmp
-
- # Various UI elements
- arrow_left: arrow_left.bmp
- arrow_right: arrow_right.bmp
- chrome_logo: chrome_logo.bmp
- devmode_graphic: Devmode_graphic.bmp
- divider_btm: divider_btm.bmp
- divider_top: divider_top.bmp
- remove_graphic: Remove_graphic.bmp
- insert_graphic: Insert_graphic.bmp
- white_bg: Background_white.bmp
- yuck_graphic: Yuck_graphic.bmp
-
- # The following strings must be approved by the localization people
- en_model_text: ./localized_images/en/model.bmp
- en_devmode_text: ./localized_images/en/devmode.bmp
- en_remove_text: ./localized_images/en/remove.bmp
- en_yuck_text: ./localized_images/en/yuck.bmp
- en_insert_text: ./localized_images/en/insert.bmp
- en_insert_usb_text: ./localized_images/en/insert_usb.bmp
- en_language_text: ./localized_images/en/language.bmp
- en_for_help_text: ./localized_images/en/for_help.bmp
-
- es_419_model_text: ./localized_images/es_419/model.bmp
- es_419_devmode_text: ./localized_images/es_419/devmode.bmp
- es_419_remove_text: ./localized_images/es_419/remove.bmp
- es_419_yuck_text: ./localized_images/es_419/yuck.bmp
- es_419_insert_text: ./localized_images/es_419/insert.bmp
- es_419_insert_usb_text: ./localized_images/es_419/insert_usb.bmp
- es_419_language_text: ./localized_images/es_419/language.bmp
- es_419_for_help_text: ./localized_images/es_419/for_help.bmp
-
- pt_BR_model_text: ./localized_images/pt_BR/model.bmp
- pt_BR_devmode_text: ./localized_images/pt_BR/devmode.bmp
- pt_BR_remove_text: ./localized_images/pt_BR/remove.bmp
- pt_BR_yuck_text: ./localized_images/pt_BR/yuck.bmp
- pt_BR_insert_text: ./localized_images/pt_BR/insert.bmp
- pt_BR_insert_usb_text: ./localized_images/pt_BR/insert_usb.bmp
- pt_BR_language_text: ./localized_images/pt_BR/language.bmp
- pt_BR_for_help_text: ./localized_images/pt_BR/for_help.bmp
-
- en_GB_model_text: ./localized_images/en_GB/model.bmp
- en_GB_devmode_text: ./localized_images/en_GB/devmode.bmp
- en_GB_remove_text: ./localized_images/en_GB/remove.bmp
- en_GB_yuck_text: ./localized_images/en_GB/yuck.bmp
- en_GB_insert_text: ./localized_images/en_GB/insert.bmp
- en_GB_insert_usb_text: ./localized_images/en_GB/insert_usb.bmp
- en_GB_language_text: ./localized_images/en_GB/language.bmp
- en_GB_for_help_text: ./localized_images/en_GB/for_help.bmp
-
- fr_model_text: ./localized_images/fr/model.bmp
- fr_devmode_text: ./localized_images/fr/devmode.bmp
- fr_remove_text: ./localized_images/fr/remove.bmp
- fr_yuck_text: ./localized_images/fr/yuck.bmp
- fr_insert_text: ./localized_images/fr/insert.bmp
- fr_insert_usb_text: ./localized_images/fr/insert_usb.bmp
- fr_language_text: ./localized_images/fr/language.bmp
- fr_for_help_text: ./localized_images/fr/for_help.bmp
-
- es_model_text: ./localized_images/es/model.bmp
- es_devmode_text: ./localized_images/es/devmode.bmp
- es_remove_text: ./localized_images/es/remove.bmp
- es_yuck_text: ./localized_images/es/yuck.bmp
- es_insert_text: ./localized_images/es/insert.bmp
- es_insert_usb_text: ./localized_images/es/insert_usb.bmp
- es_language_text: ./localized_images/es/language.bmp
- es_for_help_text: ./localized_images/es/for_help.bmp
-
- it_model_text: ./localized_images/it/model.bmp
- it_devmode_text: ./localized_images/it/devmode.bmp
- it_remove_text: ./localized_images/it/remove.bmp
- it_yuck_text: ./localized_images/it/yuck.bmp
- it_insert_text: ./localized_images/it/insert.bmp
- it_insert_usb_text: ./localized_images/it/insert_usb.bmp
- it_language_text: ./localized_images/it/language.bmp
- it_for_help_text: ./localized_images/it/for_help.bmp
-
- de_model_text: ./localized_images/de/model.bmp
- de_devmode_text: ./localized_images/de/devmode.bmp
- de_remove_text: ./localized_images/de/remove.bmp
- de_yuck_text: ./localized_images/de/yuck.bmp
- de_insert_text: ./localized_images/de/insert.bmp
- de_insert_usb_text: ./localized_images/de/insert_usb.bmp
- de_language_text: ./localized_images/de/language.bmp
- de_for_help_text: ./localized_images/de/for_help.bmp
-
- nl_model_text: ./localized_images/nl/model.bmp
- nl_devmode_text: ./localized_images/nl/devmode.bmp
- nl_remove_text: ./localized_images/nl/remove.bmp
- nl_yuck_text: ./localized_images/nl/yuck.bmp
- nl_insert_text: ./localized_images/nl/insert.bmp
- nl_insert_usb_text: ./localized_images/nl/insert_usb.bmp
- nl_language_text: ./localized_images/nl/language.bmp
- nl_for_help_text: ./localized_images/nl/for_help.bmp
-
- da_model_text: ./localized_images/da/model.bmp
- da_devmode_text: ./localized_images/da/devmode.bmp
- da_remove_text: ./localized_images/da/remove.bmp
- da_yuck_text: ./localized_images/da/yuck.bmp
- da_insert_text: ./localized_images/da/insert.bmp
- da_insert_usb_text: ./localized_images/da/insert_usb.bmp
- da_language_text: ./localized_images/da/language.bmp
- da_for_help_text: ./localized_images/da/for_help.bmp
-
- no_model_text: ./localized_images/no/model.bmp
- no_devmode_text: ./localized_images/no/devmode.bmp
- no_remove_text: ./localized_images/no/remove.bmp
- no_yuck_text: ./localized_images/no/yuck.bmp
- no_insert_text: ./localized_images/no/insert.bmp
- no_insert_usb_text: ./localized_images/no/insert_usb.bmp
- no_language_text: ./localized_images/no/language.bmp
- no_for_help_text: ./localized_images/no/for_help.bmp
-
- sv_model_text: ./localized_images/sv/model.bmp
- sv_devmode_text: ./localized_images/sv/devmode.bmp
- sv_remove_text: ./localized_images/sv/remove.bmp
- sv_yuck_text: ./localized_images/sv/yuck.bmp
- sv_insert_text: ./localized_images/sv/insert.bmp
- sv_insert_usb_text: ./localized_images/sv/insert_usb.bmp
- sv_language_text: ./localized_images/sv/language.bmp
- sv_for_help_text: ./localized_images/sv/for_help.bmp
-
- ko_model_text: ./localized_images/ko/model.bmp
- ko_devmode_text: ./localized_images/ko/devmode.bmp
- ko_remove_text: ./localized_images/ko/remove.bmp
- ko_yuck_text: ./localized_images/ko/yuck.bmp
- ko_insert_text: ./localized_images/ko/insert.bmp
- ko_insert_usb_text: ./localized_images/ko/insert_usb.bmp
- ko_language_text: ./localized_images/ko/language.bmp
- ko_for_help_text: ./localized_images/ko/for_help.bmp
-
- ja_model_text: ./localized_images/ja/model.bmp
- ja_devmode_text: ./localized_images/ja/devmode.bmp
- ja_remove_text: ./localized_images/ja/remove.bmp
- ja_yuck_text: ./localized_images/ja/yuck.bmp
- ja_insert_text: ./localized_images/ja/insert.bmp
- ja_insert_usb_text: ./localized_images/ja/insert_usb.bmp
- ja_language_text: ./localized_images/ja/language.bmp
- ja_for_help_text: ./localized_images/ja/for_help.bmp
-
-screens:
- en_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [342, 333, en_devmode_text]
- - [211, 482, divider_btm]
- - [341, 506, en_model_text]
- - [379, 508, $HWID]
-
- en_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_language_text]
- - [585, 83, arrow_right]
- - [262, 169, en_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [282, 506, en_for_help_text]
- - [348, 506, url]
- - [341, 530, en_model_text]
- - [379, 532, $HWID]
-
- en_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_language_text]
- - [585, 83, arrow_right]
- - [278, 169, en_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [282, 506, en_for_help_text]
- - [348, 506, url]
- - [341, 530, en_model_text]
- - [379, 532, $HWID]
-
- en_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [252, 347, en_insert_usb_text]
- - [211, 482, divider_btm]
- - [282, 506, en_for_help_text]
- - [348, 506, url]
- - [341, 530, en_model_text]
- - [379, 532, $HWID]
-
- es_419_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_419_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [297, 333, es_419_devmode_text]
- - [211, 482, divider_btm]
- - [339, 506, es_419_model_text]
- - [382, 508, $HWID]
-
- es_419_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_419_language_text]
- - [585, 83, arrow_right]
- - [187, 169, es_419_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [249, 506, es_419_for_help_text]
- - [380, 506, url]
- - [339, 530, es_419_model_text]
- - [382, 532, $HWID]
-
- es_419_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_419_language_text]
- - [585, 83, arrow_right]
- - [275, 169, es_419_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [249, 506, es_419_for_help_text]
- - [380, 506, url]
- - [339, 530, es_419_model_text]
- - [382, 532, $HWID]
-
- es_419_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_419_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [179, 347, es_419_insert_usb_text]
- - [211, 482, divider_btm]
- - [249, 506, es_419_for_help_text]
- - [380, 506, url]
- - [339, 530, es_419_model_text]
- - [382, 532, $HWID]
-
- pt_BR_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [521, 83, arrow_left]
- - [530, 78, pt_BR_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [327, 333, pt_BR_devmode_text]
- - [211, 482, divider_btm]
- - [339, 506, pt_BR_model_text]
- - [382, 508, $HWID]
-
- pt_BR_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [521, 83, arrow_left]
- - [530, 78, pt_BR_language_text]
- - [585, 83, arrow_right]
- - [181, 169, pt_BR_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [270, 506, pt_BR_for_help_text]
- - [360, 506, url]
- - [339, 530, pt_BR_model_text]
- - [382, 532, $HWID]
-
- pt_BR_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [521, 83, arrow_left]
- - [530, 78, pt_BR_language_text]
- - [585, 83, arrow_right]
- - [294, 169, pt_BR_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [270, 506, pt_BR_for_help_text]
- - [360, 506, url]
- - [339, 530, pt_BR_model_text]
- - [382, 532, $HWID]
-
- pt_BR_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [521, 83, arrow_left]
- - [530, 78, pt_BR_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [202, 347, pt_BR_insert_usb_text]
- - [211, 482, divider_btm]
- - [270, 506, pt_BR_for_help_text]
- - [360, 506, url]
- - [339, 530, pt_BR_model_text]
- - [382, 532, $HWID]
-
- en_GB_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_GB_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [342, 333, en_GB_devmode_text]
- - [211, 482, divider_btm]
- - [341, 506, en_GB_model_text]
- - [379, 508, $HWID]
-
- en_GB_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_GB_language_text]
- - [585, 83, arrow_right]
- - [262, 169, en_GB_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [282, 506, en_GB_for_help_text]
- - [348, 506, url]
- - [341, 530, en_GB_model_text]
- - [379, 532, $HWID]
-
- en_GB_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_GB_language_text]
- - [585, 83, arrow_right]
- - [278, 169, en_GB_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [282, 506, en_GB_for_help_text]
- - [348, 506, url]
- - [341, 530, en_GB_model_text]
- - [379, 532, $HWID]
-
- en_GB_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, en_GB_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [252, 347, en_GB_insert_usb_text]
- - [211, 482, divider_btm]
- - [282, 506, en_GB_for_help_text]
- - [348, 506, url]
- - [341, 530, en_GB_model_text]
- - [379, 532, $HWID]
-
- fr_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, fr_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [321, 333, fr_devmode_text]
- - [211, 482, divider_btm]
- - [337, 506, fr_model_text]
- - [383, 508, $HWID]
-
- fr_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, fr_language_text]
- - [585, 83, arrow_right]
- - [167, 169, fr_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [262, 506, fr_for_help_text]
- - [367, 506, url]
- - [337, 530, fr_model_text]
- - [383, 532, $HWID]
-
- fr_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, fr_language_text]
- - [585, 83, arrow_right]
- - [251, 169, fr_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [262, 506, fr_for_help_text]
- - [367, 506, url]
- - [337, 530, fr_model_text]
- - [383, 532, $HWID]
-
- fr_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, fr_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [206, 347, fr_insert_usb_text]
- - [211, 482, divider_btm]
- - [262, 506, fr_for_help_text]
- - [367, 506, url]
- - [337, 530, fr_model_text]
- - [383, 532, $HWID]
-
- es_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [297, 333, es_devmode_text]
- - [211, 482, divider_btm]
- - [339, 506, es_model_text]
- - [382, 508, $HWID]
-
- es_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_language_text]
- - [585, 83, arrow_right]
- - [187, 169, es_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [249, 506, es_for_help_text]
- - [380, 506, url]
- - [339, 530, es_model_text]
- - [382, 532, $HWID]
-
- es_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_language_text]
- - [585, 83, arrow_right]
- - [275, 169, es_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [249, 506, es_for_help_text]
- - [380, 506, url]
- - [339, 530, es_model_text]
- - [382, 532, $HWID]
-
- es_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [533, 83, arrow_left]
- - [542, 78, es_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [179, 347, es_insert_usb_text]
- - [211, 482, divider_btm]
- - [249, 506, es_for_help_text]
- - [380, 506, url]
- - [339, 530, es_model_text]
- - [382, 532, $HWID]
-
- it_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, it_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [333, 333, it_devmode_text]
- - [211, 482, divider_btm]
- - [337, 506, it_model_text]
- - [383, 508, $HWID]
-
- it_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, it_language_text]
- - [585, 83, arrow_right]
- - [200, 169, it_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [267, 506, it_for_help_text]
- - [363, 506, url]
- - [337, 530, it_model_text]
- - [383, 532, $HWID]
-
- it_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, it_language_text]
- - [585, 83, arrow_right]
- - [294, 169, it_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [267, 506, it_for_help_text]
- - [363, 506, url]
- - [337, 530, it_model_text]
- - [383, 532, $HWID]
-
- it_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [535, 83, arrow_left]
- - [544, 78, it_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [222, 347, it_insert_usb_text]
- - [211, 482, divider_btm]
- - [267, 506, it_for_help_text]
- - [363, 506, url]
- - [337, 530, it_model_text]
- - [383, 532, $HWID]
-
- de_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [530, 83, arrow_left]
- - [539, 78, de_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [308, 333, de_devmode_text]
- - [211, 482, divider_btm]
- - [340, 506, de_model_text]
- - [380, 508, $HWID]
-
- de_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [530, 83, arrow_left]
- - [539, 78, de_language_text]
- - [585, 83, arrow_right]
- - [207, 169, de_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [274, 506, de_for_help_text]
- - [355, 506, url]
- - [340, 530, de_model_text]
- - [380, 532, $HWID]
-
- de_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [530, 83, arrow_left]
- - [539, 78, de_language_text]
- - [585, 83, arrow_right]
- - [275, 169, de_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [274, 506, de_for_help_text]
- - [355, 506, url]
- - [340, 530, de_model_text]
- - [380, 532, $HWID]
-
- de_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [530, 83, arrow_left]
- - [539, 78, de_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [176, 347, de_insert_usb_text]
- - [211, 482, divider_btm]
- - [274, 506, de_for_help_text]
- - [355, 506, url]
- - [340, 530, de_model_text]
- - [380, 532, $HWID]
-
- nl_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [517, 83, arrow_left]
- - [526, 78, nl_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [300, 333, nl_devmode_text]
- - [211, 482, divider_btm]
- - [341, 506, nl_model_text]
- - [379, 508, $HWID]
-
- nl_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [517, 83, arrow_left]
- - [526, 78, nl_language_text]
- - [585, 83, arrow_right]
- - [252, 169, nl_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [256, 506, nl_for_help_text]
- - [373, 506, url]
- - [341, 530, nl_model_text]
- - [379, 532, $HWID]
-
- nl_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [517, 83, arrow_left]
- - [526, 78, nl_language_text]
- - [585, 83, arrow_right]
- - [278, 169, nl_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [256, 506, nl_for_help_text]
- - [373, 506, url]
- - [341, 530, nl_model_text]
- - [379, 532, $HWID]
-
- nl_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [517, 83, arrow_left]
- - [526, 78, nl_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [184, 347, nl_insert_usb_text]
- - [211, 482, divider_btm]
- - [256, 506, nl_for_help_text]
- - [373, 506, url]
- - [341, 530, nl_model_text]
- - [379, 532, $HWID]
-
- da_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [540, 83, arrow_left]
- - [549, 78, da_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [332, 333, da_devmode_text]
- - [211, 482, divider_btm]
- - [341, 506, da_model_text]
- - [379, 508, $HWID]
-
- da_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [540, 83, arrow_left]
- - [549, 78, da_language_text]
- - [585, 83, arrow_right]
- - [266, 169, da_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [274, 506, da_for_help_text]
- - [355, 506, url]
- - [341, 530, da_model_text]
- - [379, 532, $HWID]
-
- da_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [540, 83, arrow_left]
- - [549, 78, da_language_text]
- - [585, 83, arrow_right]
- - [281, 169, da_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [274, 506, da_for_help_text]
- - [355, 506, url]
- - [341, 530, da_model_text]
- - [379, 532, $HWID]
-
- da_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [540, 83, arrow_left]
- - [549, 78, da_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [248, 347, da_insert_usb_text]
- - [211, 482, divider_btm]
- - [274, 506, da_for_help_text]
- - [355, 506, url]
- - [341, 530, da_model_text]
- - [379, 532, $HWID]
-
- no_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 83, arrow_left]
- - [552, 78, no_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [339, 333, no_devmode_text]
- - [211, 482, divider_btm]
- - [340, 506, no_model_text]
- - [380, 508, $HWID]
-
- no_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 83, arrow_left]
- - [552, 78, no_language_text]
- - [585, 83, arrow_right]
- - [250, 169, no_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [249, 506, no_for_help_text]
- - [381, 506, url]
- - [340, 530, no_model_text]
- - [380, 532, $HWID]
-
- no_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 83, arrow_left]
- - [552, 78, no_language_text]
- - [585, 83, arrow_right]
- - [290, 169, no_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [249, 506, no_for_help_text]
- - [381, 506, url]
- - [340, 530, no_model_text]
- - [380, 532, $HWID]
-
- no_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 83, arrow_left]
- - [552, 78, no_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [255, 347, no_insert_usb_text]
- - [211, 482, divider_btm]
- - [249, 506, no_for_help_text]
- - [381, 506, url]
- - [340, 530, no_model_text]
- - [380, 532, $HWID]
-
- sv_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [531, 83, arrow_left]
- - [540, 78, sv_language_text]
- - [585, 83, arrow_right]
- - [362, 211, devmode_graphic]
- - [311, 333, sv_devmode_text]
- - [211, 482, divider_btm]
- - [340, 506, sv_model_text]
- - [380, 508, $HWID]
-
- sv_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [531, 83, arrow_left]
- - [540, 78, sv_language_text]
- - [585, 83, arrow_right]
- - [252, 169, sv_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [277, 506, sv_for_help_text]
- - [353, 506, url]
- - [340, 530, sv_model_text]
- - [380, 532, $HWID]
-
- sv_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [531, 83, arrow_left]
- - [540, 78, sv_language_text]
- - [585, 83, arrow_right]
- - [301, 169, sv_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [277, 506, sv_for_help_text]
- - [353, 506, url]
- - [340, 530, sv_model_text]
- - [380, 532, $HWID]
-
- sv_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [531, 83, arrow_left]
- - [540, 78, sv_language_text]
- - [585, 83, arrow_right]
- - [392, 199, insert_graphic]
- - [216, 347, sv_insert_usb_text]
- - [211, 482, divider_btm]
- - [277, 506, sv_for_help_text]
- - [353, 506, url]
- - [340, 530, sv_model_text]
- - [380, 532, $HWID]
-
- ko_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [541, 82, arrow_left]
- - [550, 77, ko_language_text]
- - [585, 82, arrow_right]
- - [362, 211, devmode_graphic]
- - [316, 334, ko_devmode_text]
- - [211, 482, divider_btm]
- - [346, 507, ko_model_text]
- - [375, 509, $HWID]
-
- ko_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [541, 82, arrow_left]
- - [550, 77, ko_language_text]
- - [585, 82, arrow_right]
- - [286, 170, ko_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [287, 507, ko_for_help_text]
- - [343, 507, url]
- - [346, 532, ko_model_text]
- - [375, 534, $HWID]
-
- ko_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [541, 82, arrow_left]
- - [550, 77, ko_language_text]
- - [585, 82, arrow_right]
- - [298, 170, ko_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [287, 507, ko_for_help_text]
- - [343, 507, url]
- - [346, 532, ko_model_text]
- - [375, 534, $HWID]
-
- ko_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [541, 82, arrow_left]
- - [550, 77, ko_language_text]
- - [585, 82, arrow_right]
- - [392, 199, insert_graphic]
- - [282, 349, ko_insert_usb_text]
- - [211, 482, divider_btm]
- - [287, 507, ko_for_help_text]
- - [343, 507, url]
- - [346, 532, ko_model_text]
- - [375, 534, $HWID]
-
- ja_devel:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 84, arrow_left]
- - [552, 80, ja_language_text]
- - [585, 84, arrow_right]
- - [362, 211, devmode_graphic]
- - [314, 333, ja_devmode_text]
- - [211, 482, divider_btm]
- - [342, 504, ja_model_text]
- - [379, 505, $HWID]
-
- ja_remove:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 84, arrow_left]
- - [552, 80, ja_language_text]
- - [585, 84, arrow_right]
- - [254, 167, ja_remove_text]
- - [245, 191, remove_graphic]
- - [211, 482, divider_btm]
- - [277, 507, ja_for_help_text]
- - [352, 506, url]
- - [342, 528, ja_model_text]
- - [379, 529, $HWID]
-
- ja_yuck:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 84, arrow_left]
- - [552, 80, ja_language_text]
- - [585, 84, arrow_right]
- - [270, 169, ja_yuck_text]
- - [369, 254, yuck_graphic]
- - [211, 482, divider_btm]
- - [277, 507, ja_for_help_text]
- - [352, 506, url]
- - [342, 528, ja_model_text]
- - [379, 529, $HWID]
-
- ja_insert:
- - [0, 0, white_bg]
- - [211, 105, divider_top]
- - [211, 74, chrome_logo]
- - [543, 84, arrow_left]
- - [552, 80, ja_language_text]
- - [585, 84, arrow_right]
- - [392, 199, insert_graphic]
- - [267, 345, ja_insert_usb_text]
- - [211, 482, divider_btm]
- - [277, 507, ja_for_help_text]
- - [352, 506, url]
- - [342, 528, ja_model_text]
- - [379, 529, $HWID]
-
-localizations:
-
- # This determines the order in which the localizations appear. The first
- # one is the default.
-
- - [ en_devel, en_remove, en_yuck, en_insert ]
- - [ es_419_devel, es_419_remove, es_419_yuck, es_419_insert ]
- - [ pt_BR_devel, pt_BR_remove, pt_BR_yuck, pt_BR_insert ]
- - [ en_GB_devel, en_GB_remove, en_GB_yuck, en_GB_insert ]
- - [ fr_devel, fr_remove, fr_yuck, fr_insert ]
- - [ es_devel, es_remove, es_yuck, es_insert ]
- - [ it_devel, it_remove, it_yuck, it_insert ]
- - [ de_devel, de_remove, de_yuck, de_insert ]
- - [ nl_devel, nl_remove, nl_yuck, nl_insert ]
- - [ da_devel, da_remove, da_yuck, da_insert ]
- - [ no_devel, no_remove, no_yuck, no_insert ]
- - [ sv_devel, sv_remove, sv_yuck, sv_insert ]
- - [ ko_devel, ko_remove, ko_yuck, ko_insert ]
- - [ ja_devel, ja_remove, ja_yuck, ja_insert ]
-
-locale_index:
-
- # List the locale names in order so we can choose the default at the factory
-
- - en
- - es_419
- - pt_BR
- - en_GB
- - fr
- - es
- - it
- - de
- - nl
- - da
- - no
- - sv
- - ko
- - ja
diff --git a/scripts/newbitmaps/images/Makefile b/scripts/newbitmaps/images/Makefile
index b36b8c0b..9757cbf3 100644
--- a/scripts/newbitmaps/images/Makefile
+++ b/scripts/newbitmaps/images/Makefile
@@ -11,20 +11,16 @@
# this occasional need.
TARGETS=x86 arm
-
-# These are all the known locales, sorted more-or-less geograpically. We
-# generally don't have room in the BIOS for all of them at once.
-DEFAULT_LOCALES=en es_419 pt_BR en_GB fr es pt_PT ca it de \
- el nl da no sv fi et lv lt ru pl cs sk hu sl sr hr bg ro \
- uk tr iw ar fa hi th vi id fil zh_CN zh_TW ko ja
+# To generate all locales, make from top level.
+LOCALES=en
default: outside_chroot
@echo "Specify a target to build for:"
@echo " ${TARGETS}"
+# TODO(hungte) It's now not easy to have bmpblk_utility outside
+# chroot... We need some better way to do this.
outside_chroot:
- # TODO(hungte) It's now not easy to have bmpblk_utility outside
- # chroot... We need some better way to do this.
@if [ -e /etc/debian_chroot ]; then \
echo "ImageMagick is too complex to build inside the chroot."; \
echo "You must be outside the chroot to do this"; \
@@ -35,15 +31,15 @@ outside_chroot:
${TARGETS}:: outside_chroot
x86::
- ./build_images "$@"
- cd "out_$@" && ../make_default_yaml ${DEFAULT_LOCALES}
+ LOCALES="$(LOCALES)" ./build_images "$@"
+ cd "out_$@" && ../make_default_yaml $(LOCALES)
cd "out_$@" && bmpblk_utility -c DEFAULT.yaml bmpblock.bin
ls -l "out_$@"/bmpblock.bin
arm::
- ./build_images "$@"
- cd "out_$@" && ../make_default_yaml ${DEFAULT_LOCALES}
+ LOCALES="$(LOCALES)" ./build_images "$@"
+ cd "out_$@" && ../make_default_yaml $(LOCALES)
cd "out_$@" && bmpblk_utility -c DEFAULT.yaml bmpblock.bin
ls -l "out_$@"/bmpblock.bin
diff --git a/scripts/newbitmaps/images/Url.bmp b/scripts/newbitmaps/images/Url.bmp
deleted file mode 100644
index ec6cd58d..00000000
--- a/scripts/newbitmaps/images/Url.bmp
+++ /dev/null
Binary files differ
diff --git a/scripts/newbitmaps/images/build_images b/scripts/newbitmaps/images/build_images
index 7ce4db59..6c54a2cb 100755
--- a/scripts/newbitmaps/images/build_images
+++ b/scripts/newbitmaps/images/build_images
@@ -12,7 +12,7 @@ BACKGROUND_COLOR=white
BACKGROUND_IMAGE=Background_white.bmp
die() {
- echo "$*" >&2
+ echo "ERROR: $*" >&2
exit 1
}
@@ -85,12 +85,11 @@ main() {
# Prepare output folder
mkdir -p "$output"
- cp hwid_fonts.bin "$output"
# Prepare images in current folder
# TODO(hungte) Deprecate arrow*.bmp by markup &#x25c0; and &#x25b6;, and
# Url.bmp by <span foreground="blue">http://</span>.
- for X in *.bmp *.png; do
+ for X in $(ls *.bmp *.png); do
if [ "$X" = "$BACKGROUND_IMAGE" ]; then
convert_to_bmp3 "$X" "$output" "$background_scale_param"
else
@@ -98,13 +97,38 @@ main() {
fi
done
- # Prepares localized images. All these images were rendered by pango-view and
- # should not have transparency, so we specify flatten="" to speed up.
+ # Prepares strings and localized images. All these images were rendered by
+ # pango-view and should not have transparency, so we specify flatten="" to
+ # speed up.
+ echo "Preparing common strings..."
+ base="../strings"
+ for X in $base/*.png; do
+ convert_to_bmp3 "$X" "$output" "$scale_param" ""
+ done
+ echo "Preparing localized messages... $LOCALES"
base="../strings/localized_text"
- for X in $base/*/*.png; do
- locale="$(basename $(dirname $X))"
- convert_to_bmp3 "$X" "$output/locale/$locale" "$scale_param" ""
+ if [ -z "$LOCALES" ]; then
+ # Collect all locales
+ for X in $(cd $base; ls); do
+ if [ -d "$base/$X" ]; then
+ LOCALES="${LOCALES}${X} "
+ fi
+ done
+ echo "Found locales: $LOCALES"
+ fi
+ for locale in $LOCALES; do
+ # Prepare all locales.
+ for X in $base/$locale/*.png; do
+ convert_to_bmp3 "$X" "$output/locale/$locale" "$scale_param" ""
+ done
+ done
+
+ # Prepare fonts
+ base="../strings/font"
+ for X in $base/*.png; do
+ convert_to_bmp3 "$X" "$output/font" "$scale_param" ""
done
+ bmpblk_font --outfile "$output/hwid_fonts.bin" "$output"/font/*.bmp
}
set -e
diff --git a/scripts/newbitmaps/images/hwid_fonts.bin b/scripts/newbitmaps/images/hwid_fonts.bin
deleted file mode 100644
index 2ec1f6ed..00000000
--- a/scripts/newbitmaps/images/hwid_fonts.bin
+++ /dev/null
Binary files differ
diff --git a/scripts/newbitmaps/images/make_default_yaml b/scripts/newbitmaps/images/make_default_yaml
index 8db28542..a93c39c7 100755
--- a/scripts/newbitmaps/images/make_default_yaml
+++ b/scripts/newbitmaps/images/make_default_yaml
@@ -248,7 +248,7 @@ add_footer_with_url() {
local lc=$1
set_centered_y_percent "white_bg" 80
insert_centered_below "divider_btm"
- insert_centered_below "${lc}_for_help_text" "url"
+ insert_centered_below "${lc}_help_left_text" "url" "${lc}_help_right_text"
if echo "$rtol" | grep -q -w "$lc" ; then
insert_centered_below 'hwid' "${lc}_model_text"
else
@@ -269,6 +269,7 @@ add_footer_without_url() {
echo "" >> "$yaml_file"
}
+# TODO(hungte) Remove the unnecessary hwid_*.bmp loop below.
# Generate a new yaml file for each specified hwid_*.bmp file.
for hwid_bmp in hwid_unknown.bmp; do
echo "$yaml_file"
@@ -302,7 +303,7 @@ images:
# The following strings must be approved by the localization people
EOF1
- # some global variables matching the yaml definitions
+ # Global variables matching the yaml definitions
arrow_left='arrow_left.bmp'
arrow_right='arrow_right.bmp'
chrome_logo='chrome_logo.bmp'
@@ -318,23 +319,7 @@ EOF1
# Enumerate the bitmaps for each locale-specific string.
for lc in $locales; do
- cat >>"$yaml_file" <<EOF2
- ${lc}_model_text: ${localedir}/$lc/model.bmp
- ${lc}_devmode_text: ${localedir}/$lc/devmode.bmp
- ${lc}_remove_text: ${localedir}/$lc/remove.bmp
- ${lc}_yuck_text: ${localedir}/$lc/yuck.bmp
- ${lc}_insert_text: ${localedir}/$lc/insert.bmp
- ${lc}_language_text: ${localedir}/$lc/language.bmp
- ${lc}_for_help_text: ${localedir}/$lc/for_help.bmp
-
- ${lc}_todev_text: ${localedir}/$lc/todev.bmp
- ${lc}_tonorm_text: ${localedir}/$lc/tonorm.bmp
- ${lc}_back_help_text: ${localedir}/$lc/back_help.bmp
- ${lc}_update_text: ${localedir}/$lc/update.bmp
-
-EOF2
-
- # Also define global variables matching those in the yaml file.
+ # Locale-specific variables matching those in the yaml file.
eval "${lc}_model_text=${localedir}/$lc/model.bmp"
eval "${lc}_devmode_text=${localedir}/$lc/devmode.bmp"
eval "${lc}_remove_text=${localedir}/$lc/remove.bmp"
@@ -342,10 +327,29 @@ EOF2
eval "${lc}_insert_text=${localedir}/$lc/insert.bmp"
eval "${lc}_language_text=${localedir}/$lc/language.bmp"
eval "${lc}_for_help_text=${localedir}/$lc/for_help.bmp"
+ eval "${lc}_help_left_text=${localedir}/$lc/for_help_left.bmp"
+ eval "${lc}_help_right_text=${localedir}/$lc/for_help_right.bmp"
eval "${lc}_todev_text=${localedir}/$lc/todev.bmp"
eval "${lc}_tonorm_text=${localedir}/$lc/tonorm.bmp"
eval "${lc}_back_help_text=${localedir}/$lc/back_help.bmp"
eval "${lc}_update_text=${localedir}/$lc/update.bmp"
+
+ cat >>"$yaml_file" <<EOF2
+ ${lc}_model_text: $(eval echo \$${lc}_model_text)
+ ${lc}_devmode_text: $(eval echo \$${lc}_devmode_text)
+ ${lc}_remove_text: $(eval echo \$${lc}_remove_text)
+ ${lc}_yuck_text: $(eval echo \$${lc}_yuck_text)
+ ${lc}_insert_text: $(eval echo \$${lc}_insert_text)
+ ${lc}_language_text: $(eval echo \$${lc}_language_text)
+ ${lc}_help_left_text: $(eval echo \$${lc}_help_left_text)
+ ${lc}_help_right_text: $(eval echo \$${lc}_help_right_text)
+ ${lc}_todev_text: $(eval echo \$${lc}_todev_text)
+ ${lc}_tonorm_text: $(eval echo \$${lc}_tonorm_text)
+ ${lc}_back_help_text: $(eval echo \$${lc}_back_help_text)
+ ${lc}_update_text: $(eval echo \$${lc}_update_text)
+
+EOF2
+
done
# List the screens. We need to composite four screens for each locale.
@@ -467,5 +471,6 @@ EOF3
done
# Now replace the 'hwid' string with '$HWID'.
-perl -i -p -e 's/\bhwid\b/\$HWID/g;' "$yaml_file"
+sed -i 's/\bhwid\b/\$HWID/g' "$yaml_file"
+
echo ""
diff --git a/scripts/newbitmaps/lib/bmpblock.py b/scripts/newbitmaps/lib/bmpblock.py
index d85ed387..a0d9ac5e 100755
--- a/scripts/newbitmaps/lib/bmpblock.py
+++ b/scripts/newbitmaps/lib/bmpblock.py
@@ -61,6 +61,7 @@ class BmpBlock(object):
print "WARNING: ignoring $HWID font blob"
if "$HWID.rtol" in images:
print "WARNING: ignoring $HWID.rtol font blob"
+ # TODO(hungte) Replace this by rendering with font block.
images["$HWID"] = os.path.join(self.libdir,'current_hwid.bmp')
images["$HWID.rtol"] = os.path.join(self.libdir, 'current_hwid.bmp')
diff --git a/scripts/newbitmaps/strings/Makefile b/scripts/newbitmaps/strings/Makefile
new file mode 100644
index 00000000..cfb7c957
--- /dev/null
+++ b/scripts/newbitmaps/strings/Makefile
@@ -0,0 +1,27 @@
+# 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.
+
+.SUFFIXES: .txt .TXT .png
+.PHONY: clean all font localized_text
+
+LOCALEDIR=localized_text
+
+.TXT.png:
+ ./text_to_png $<
+
+.txt.png:
+ ./text_to_png $<
+
+all: font Url.png localized_text
+
+localized_text:
+ make -C $(LOCALEDIR)
+
+font:
+ ./build_font $@
+
+clean:
+ rm -f *.png
+ rm -rf font
+ make -C $(LOCALEDIR) $@
diff --git a/scripts/newbitmaps/strings/Url.TXT b/scripts/newbitmaps/strings/Url.TXT
index 3ff970c7..8a90aade 100644
--- a/scripts/newbitmaps/strings/Url.TXT
+++ b/scripts/newbitmaps/strings/Url.TXT
@@ -1 +1 @@
-http://google.com/chromeos/recovery
+<span color="blue"><b> http://google.com/chromeos/recovery </b></span>
diff --git a/scripts/newbitmaps/strings/Url.txt b/scripts/newbitmaps/strings/Url.txt
deleted file mode 100644
index 3ff970c7..00000000
--- a/scripts/newbitmaps/strings/Url.txt
+++ /dev/null
@@ -1 +0,0 @@
-http://google.com/chromeos/recovery
diff --git a/scripts/newbitmaps/strings/build_font b/scripts/newbitmaps/strings/build_font
new file mode 100755
index 00000000..50f483b1
--- /dev/null
+++ b/scripts/newbitmaps/strings/build_font
@@ -0,0 +1,41 @@
+#!/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 font source images.
+
+SCRIPT="$(readlink -f "$0")"
+SCRIPT_DIR="$(dirname "$SCRIPT")"
+GLYPHS='* 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ{}-_'
+COLOR="#888888"
+FONT="Droid Sans Bold"
+
+die() {
+ echo "ERROR: $*" >&2
+ exit 1
+}
+
+main() {
+ [ "$#" = "1" ] || die "Usage: $0 output_dir"
+ local output="$1"
+ mkdir -p "$output"
+
+ local i=1
+ local c=''
+ echo "Generating glyph text source..."
+ while true; do
+ c="$(echo "$GLYPHS" | cut -b $i)"
+ [ -z "$c" ] && break
+ ord="0x$(echo "$c" | od -t x1 -A none | awk '{print $1}')"
+ echo "$c" >"$output/idx$(printf "%03d" $ord)_$(printf "%x" $ord).txt"
+ i=$((i + 1))
+ done
+
+ echo "Converting glyph images..."
+ "$SCRIPT_DIR/text_to_png" --margin=0 --font="$FONT" --color="$COLOR" \
+ "$output/*.txt"
+}
+
+set -e
+main "$@"
diff --git a/scripts/newbitmaps/strings/current_hwid.txt b/scripts/newbitmaps/strings/current_hwid.txt
deleted file mode 100644
index bc38691b..00000000
--- a/scripts/newbitmaps/strings/current_hwid.txt
+++ /dev/null
@@ -1 +0,0 @@
-<<< model name goes here >>>
diff --git a/scripts/newbitmaps/strings/hwid_unknown.txt b/scripts/newbitmaps/strings/hwid_unknown.txt
deleted file mode 100644
index b7faba0b..00000000
--- a/scripts/newbitmaps/strings/hwid_unknown.txt
+++ /dev/null
@@ -1 +0,0 @@
-CHROMEOS PROTOTYPE 0001
diff --git a/scripts/newbitmaps/strings/localized_text/Makefile b/scripts/newbitmaps/strings/localized_text/Makefile
index bd074288..96d8c8a1 100644
--- a/scripts/newbitmaps/strings/localized_text/Makefile
+++ b/scripts/newbitmaps/strings/localized_text/Makefile
@@ -2,9 +2,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-LOCALES=ar bg ca cs da de el en en_GB es es_419 et fa fi fil fr hi hr hu \
- id it iw ja ko lt lv nl no pl pt_BR pt_PT ro ru sk sl sr sv th tr \
- uk vi zh_CN zh_TW
+LOCALES=ar bg bn ca cs da de el en en_GB es es_419 et fa fi fil fr gu hi hr \
+ hu id it iw ja kn ko lt lv ml mr ms nl no pl pt_BR pt_PT ro ru sk sl \
+ sr sv ta te th tr uk vi zh_CN zh_TW
DIR_TARGETS=$(foreach DIR,$(LOCALES),$(DIR)-dir)
diff --git a/scripts/newbitmaps/strings/text_to_png b/scripts/newbitmaps/strings/text_to_png
index 260ca1ae..60d19f12 100755
--- a/scripts/newbitmaps/strings/text_to_png
+++ b/scripts/newbitmaps/strings/text_to_png
@@ -3,17 +3,27 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
-# Render a text file into a bitmap. Files named '*.txt' are small font, those
-# named '*.TXT' are large font.
+# Render a text file into a bitmap. Files named '*.txt' are normal text files,
+# while '*.TXT' files may contain markup.
#
# Options:
#
# --lan=LANGUAGE Render language (locale) settings
# --font=FONTNAME Use specified font (instead of Droid Sans)
+# --point=POINT Font size, in points (72dpi)
+# --margin=MARGIN Set different margin (usually for font bitmaps)
+# --color=COLOR Override foreground color (in '#ffffff' format)
+# --markup Render text as pango-view markup file
+# --align Override align settings
#
font="Droid Sans"
language=""
-point=15
+pointsize=15
+margin=3
+align="center"
+bgcolor="#ffffff"
+color="#000000"
+params=""
while true ; do
case "$1" in
@@ -27,8 +37,24 @@ while true ; do
[ -n "$param" ] && font="$param"
shift
;;
+ --align=*)
+ align="${1##*=}"
+ shift
+ ;;
+ --color=*)
+ color="${1##*=}"
+ shift
+ ;;
--point=*)
- point="${1##*=}"
+ pointsize="${1##*=}"
+ shift
+ ;;
+ --margin=*)
+ margin="${1##*=}"
+ shift
+ ;;
+ --markup)
+ params="$params --markup"
shift
;;
*)
@@ -42,42 +68,33 @@ done
# - New pango-view has --pixel to assign font size in pixel, but that is not
# supported by old (ex, 1.24.5 in chroot) so we must assign --dpi 72 for
# pointsize.
-# TODO(hungte) Replace font color & size settings to pango --markup.
-bg="#ffffff"
-small_color="#000000"
-small_font="$font"
-small_pointsize="$point"
-large_color="#585858"
-large_font="$font"
-large_pointsize="$((point * 8 / 3))"
for txtfile in $*; do
# pango-view does not support assigning output format options for bitmap, so
# we must create images in PNG format and then post-process it (ex, convert
# into BMP by ImageMagick).
-
pngfile="${txtfile%.*}".png
+ file_opt=""
case "$txtfile" in
*.txt)
- pango-view -q $language \
- --background "$bg" --foreground "$small_color" \
- --font "$small_font $small_pointsize" --dpi 72 \
- --margin=3 --align=center \
- --output "$pngfile" \
- "$txtfile"
- echo "wrote $pngfile"
+ file_opt=""
;;
*.TXT)
- pango-view -q $language \
- --background "$bg" --foreground "$large_color" \
- --font "$large_font $large_pointsize" --dpi 72 \
- --margin=10 --align=center \
- --output "$pngfile" \
- "$txtfile"
- echo "wrote $pngfile"
+ file_opt="--markup "
;;
*)
echo "Ignoring $txtfile. Filename should end with .txt or .TXT"
+ continue
;;
esac
+ pango-view -q $language \
+ --hinting=full \
+ --background "$bgcolor" --foreground "$color" \
+ --font "$font $pointsize" --dpi 72 \
+ --margin $margin \
+ --align="$align" \
+ $params $file_opt \
+ --output "$pngfile" \
+ "$txtfile"
+ echo "wrote $pngfile"
done