| OLD | NEW |
| 1 #!/bin/bash | 1 #!/bin/bash |
| 2 # Copyright (c) 2014 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 | 6 |
| 7 # Remove display names for languages that are not listed in the accept-language | 7 # Remove display names for languages that are not listed in the accept-language |
| 8 # list of Chromium. | 8 # list of Chromium. |
| 9 function filter_display_language_names { | 9 function filter_display_language_names { |
| 10 UI_LANG_PATTERN="(${UI_LANGUAGES})[^a-z]" | 10 for lang in $(grep -v '^#' accept_lang.list) |
| 11 do |
| 12 # Set $OP to '|' only if $ACCEPT_LANG_PATTERN is not empty. |
| 13 OP=${ACCEPT_LANG_PATTERN:+|} |
| 14 ACCEPT_LANG_PATTERN="${ACCEPT_LANG_PATTERN}${OP}${lang}" |
| 15 done |
| 16 ACCEPT_LANG_PATTERN="(${ACCEPT_LANG_PATTERN})[^a-z]" |
| 11 | 17 |
| 12 echo "Filtering out display names for non-UI languages in ${langdatapath}" | 18 echo "Filtering out display names for non-A-L languages ${langdatapath}" |
| 13 for lang in $(grep -v '^#' chrome_ui_languages.list) | 19 for lang in $(grep -v '^#' chrome_ui_languages.list) |
| 14 do | 20 do |
| 15 target=${langdatapath}/${lang}.txt | 21 target=${langdatapath}/${lang}.txt |
| 22 echo Overwriting ${target} ... |
| 16 sed -r -i \ | 23 sed -r -i \ |
| 17 '/^ Keys\{$/,/^ \}$/d | 24 '/^ Keys\{$/,/^ \}$/d |
| 18 /^ Languages\{$/, /^ \}$/ { | 25 /^ Languages\{$/, /^ \}$/ { |
| 19 /^ Languages\{$/p | 26 /^ Languages\{$/p |
| 20 /^ '${UI_LANG_PATTERN}'/p | 27 /^ '${ACCEPT_LANG_PATTERN}'/p |
| 21 /^ \}$/p | 28 /^ \}$/p |
| 22 d | 29 d |
| 23 } | 30 } |
| 24 /^ Types\{$/,/^ \}$/d | 31 /^ Types\{$/,/^ \}$/d |
| 25 /^ Variants\{$/,/^ \}$/d' ${target} | 32 /^ Variants\{$/,/^ \}$/d' ${target} |
| 26 done | 33 done |
| 27 } | 34 } |
| 28 | 35 |
| 29 | 36 |
| 30 # Keep only the minimum locale data for non-UI languages. | 37 # Keep only the minimum locale data for non-UI languages. |
| 31 function abridge_locale_data_for_non_ui_languages { | 38 function abridge_locale_data_for_non_ui_languages { |
| 39 for lang in $(grep -v '^#' chrome_ui_languages.list) |
| 40 do |
| 41 # Set $OP to '|' only if $UI_LANGUAGES is not empty. |
| 42 OP=${UI_LANGUAGES:+|} |
| 43 UI_LANGUAGES="${UI_LANGUAGES}${OP}${lang}" |
| 44 done |
| 45 |
| 32 EXTRA_LANGUAGES=$(egrep -v -e '^#' -e "(${UI_LANGUAGES})" accept_lang.list) | 46 EXTRA_LANGUAGES=$(egrep -v -e '^#' -e "(${UI_LANGUAGES})" accept_lang.list) |
| 33 | 47 |
| 34 echo Creating minimum locale data in ${localedatapath} | 48 echo Creating minimum locale data in ${localedatapath} |
| 35 for lang in ${EXTRA_LANGUAGES} | 49 for lang in ${EXTRA_LANGUAGES} |
| 36 do | 50 do |
| 37 target=${localedatapath}/${lang}.txt | 51 target=${localedatapath}/${lang}.txt |
| 38 [ -e ${target} ] || { echo "missing ${lang}"; continue; } | 52 [ -e ${target} ] || { echo "missing ${lang}"; continue; } |
| 39 echo Overwriting ${target} ... | 53 echo Overwriting ${target} ... |
| 40 sed -n -r -i \ | 54 sed -n -r -i \ |
| 41 '1, /^'${lang}'\{$/p | 55 '1, /^'${lang}'\{$/p |
| 56 /^ "%%ALIAS"\{/p |
| 42 /^ AuxExemplarCharacters\{.*\}$/p | 57 /^ AuxExemplarCharacters\{.*\}$/p |
| 43 /^ AuxExemplarCharacters\{$/, /^ \}$/p | 58 /^ AuxExemplarCharacters\{$/, /^ \}$/p |
| 44 /^ ExemplarCharacters\{.*\}$/p | 59 /^ ExemplarCharacters\{.*\}$/p |
| 45 /^ ExemplarCharacters\{$/, /^ \}$/p | 60 /^ ExemplarCharacters\{$/, /^ \}$/p |
| 46 /^ (LocaleScript|layout)\{$/, /^ \}$/p | 61 /^ (LocaleScript|layout)\{$/, /^ \}$/p |
| 47 /^ Version\{.*$/p | 62 /^ Version\{.*$/p |
| 48 /^\}$/p' ${target} | 63 /^\}$/p' ${target} |
| 49 done | 64 done |
| 50 | 65 |
| 51 echo Creating minimum locale data in ${langdatapath} | 66 echo Creating minimum locale data in ${langdatapath} |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 sed -i '/^ zoneStrings/, /^ "meta:/ { | 116 sed -i '/^ zoneStrings/, /^ "meta:/ { |
| 102 /^ zoneStrings/ p | 117 /^ zoneStrings/ p |
| 103 /^ "meta:/ p | 118 /^ "meta:/ p |
| 104 d | 119 d |
| 105 }' $i | 120 }' $i |
| 106 done | 121 done |
| 107 } | 122 } |
| 108 | 123 |
| 109 # Keep only duration and compound in units* sections. | 124 # Keep only duration and compound in units* sections. |
| 110 function filter_locale_data { | 125 function filter_locale_data { |
| 111 for i in "${dataroot}/locales/*.txt" | 126 for i in ${dataroot}/locales/*.txt |
| 112 do | 127 do |
| 113 echo Overwriting $i ... | 128 echo Overwriting $i ... |
| 114 sed -r -i \ | 129 sed -r -i \ |
| 115 '/^ units(|Narrow|Short)\{$/, /^ \}$/ { | 130 '/^ units(|Narrow|Short)\{$/, /^ \}$/ { |
| 116 /^ units(|Narrow|Short)\{$/ p | 131 /^ units(|Narrow|Short)\{$/ p |
| 117 /^ (duration|compound)\{$/, /^ \}$/ p | 132 /^ (duration|compound)\{$/, /^ \}$/ p |
| 118 /^ \}$/ p | 133 /^ \}$/ p |
| 119 d | 134 d |
| 120 }' ${i} | 135 }' ${i} |
| 121 done | 136 done |
| 122 } | 137 } |
| 123 | 138 |
| 124 # big5han and gb2312han collation do not make any sense and nobody uses them. | 139 # big5han and gb2312han collation do not make any sense and nobody uses them. |
| 125 function remove_legacy_chinese_codepoint_collation { | 140 function remove_legacy_chinese_codepoint_collation { |
| 126 echo "Removing Big5 / GB2312 collation data from Chinese locale" | 141 echo "Removing Big5 / GB2312 collation data from Chinese locale" |
| 127 target="${dataroot}/coll/zh.txt" | 142 target="${dataroot}/coll/zh.txt" |
| 128 echo "Overwriting ${target}" | 143 echo "Overwriting ${target}" |
| 129 sed -r -i '/^ (big5|gb2312)han\{$/,/^ \}$/ d' ${target} | 144 sed -r -i '/^ (big5|gb2312)han\{$/,/^ \}$/ d' ${target} |
| 130 } | 145 } |
| 131 | 146 |
| 132 dataroot="$(dirname $0)/../source/data" | 147 dataroot="$(dirname $0)/../source/data" |
| 133 localedatapath="${dataroot}/locales" | 148 localedatapath="${dataroot}/locales" |
| 134 langdatapath="${dataroot}/lang" | 149 langdatapath="${dataroot}/lang" |
| 135 | 150 |
| 136 for lang in $(grep -v '^#' chrome_ui_languages.list) | |
| 137 do | |
| 138 # Set $OP to '|' only if $UI_LANGUAGES is not empty. | |
| 139 OP=${UI_LANGUAGES:+|} | |
| 140 UI_LANGUAGES="${UI_LANGUAGES}${OP}${lang}" | |
| 141 done | |
| 142 | 151 |
| 143 | 152 |
| 144 filter_display_language_names | 153 filter_display_language_names |
| 145 abridge_locale_data_for_non_ui_languages | 154 abridge_locale_data_for_non_ui_languages |
| 146 filter_currency_data | 155 filter_currency_data |
| 147 filter_region_data | 156 filter_region_data |
| 148 remove_legacy_chinese_codepoint_collation | 157 remove_legacy_chinese_codepoint_collation |
| 149 filter_locale_data | 158 filter_locale_data |
| 150 | 159 |
| 151 # Chromium OS needs exemplar cities for timezones, but not Chromium. | 160 # Chromium OS needs exemplar cities for timezones, but not Chromium. |
| 152 # It'll save 400kB (uncompressed), but the size difference in | 161 # It'll save 400kB (uncompressed), but the size difference in |
| 153 # 7z compressed installer is <= 100kB. | 162 # 7z compressed installer is <= 100kB. |
| 154 # TODO(jshin): Make separate data files for CrOS and Chromium. | 163 # TODO(jshin): Make separate data files for CrOS and Chromium. |
| 155 #remove_exemplar_cities | 164 #remove_exemplar_cities |
| OLD | NEW |