aboutsummaryrefslogtreecommitdiff
path: root/tools/tools/locale
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2016-07-03 18:21:11 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2016-07-03 18:21:11 +0000
commit3cf6509d70d2d3b5a8ef07944d3bf57f45f2ba9a (patch)
tree5a15a869f837abcd6acea9d7a7ce6d0c1e536aa0 /tools/tools/locale
parent46e47c4f8ddb5fa7b87399e5b4288a88139567de (diff)
downloadsrc-3cf6509d70d2d3b5a8ef07944d3bf57f45f2ba9a.tar.gz
src-3cf6509d70d2d3b5a8ef07944d3bf57f45f2ba9a.zip
Notes
Diffstat (limited to 'tools/tools/locale')
-rwxr-xr-xtools/tools/locale/tools/cldr2def.pl4
-rwxr-xr-xtools/tools/locale/tools/finalize57
2 files changed, 57 insertions, 4 deletions
diff --git a/tools/tools/locale/tools/cldr2def.pl b/tools/tools/locale/tools/cldr2def.pl
index b48220e4bd02..21a88a7d9c3f 100755
--- a/tools/tools/locale/tools/cldr2def.pl
+++ b/tools/tools/locale/tools/cldr2def.pl
@@ -848,7 +848,7 @@ sub make_makefile {
my $MAPLOC;
if ($TYPE eq "colldef") {
$SRCOUT = "localedef -D -U -i \${.IMPSRC} \\\n" .
- "\t-f \${MAPLOC}/map.\${.TARGET:T:R:E} " .
+ "\t-f \${MAPLOC}/map.\${.TARGET:T:R:E:C/@.*//} " .
"\${.OBJDIR}/\${.IMPSRC:T:R}";
$MAPLOC = "MAPLOC=\t\t\${.CURDIR}/../../tools/tools/" .
"locale/etc/final-maps\n";
@@ -859,7 +859,7 @@ sub make_makefile {
"FILESDIR_\$t.LC_COLLATE=\t\${LOCALEDIR}/\$t\n" .
"\$t.LC_COLLATE: \${.CURDIR}/\$f.src\n" .
"\tlocaledef -D -U -i \${.ALLSRC} \\\n" .
- "\t\t-f \${MAPLOC}/map.\${.TARGET:T:R:E} \\\n" .
+ "\t\t-f \${MAPLOC}/map.\${.TARGET:T:R:E:C/@.*//} \\\n" .
"\t\t\${.OBJDIR}/\${.TARGET:T:R}\n" .
".endfor\n\n";
$SRCOUT4 = "## LOCALES_MAPPED\n";
diff --git a/tools/tools/locale/tools/finalize b/tools/tools/locale/tools/finalize
index 709c6c26e45a..37c8db8c9638 100755
--- a/tools/tools/locale/tools/finalize
+++ b/tools/tools/locale/tools/finalize
@@ -8,6 +8,8 @@
# the generate makefile to pull the LOCALES first.
#
+set -e
+
usage ()
{
echo "finalize <type>' to package standard localization"
@@ -37,6 +39,56 @@ AWKCMD="/## PLACEHOLDER/ { \
while ( getline line < \"${TEMP4}\" ) {print line} } \
!/## / { print \$0 }"
+# Rename the sources with 3 components name into the POSIX version of the name using @modifier
+cd $old
+for i in *_*_*.*.src; do
+ oldname=${i%.*}
+ nname=`echo $oldname | awk '{ split($0, a, "_"); print a[1]"_"a[3]"@"a[2];} '`
+ mv -i ${oldname}.src ${nname}.src
+done
+ sed -i '' -Ee "s/([a-zA-Z]{2})_([a-zA-Z]+)_([a-zA-Z]{2}).([a-zA-Z0-9-]+)/\1_\3.\4@\2/g" ${old}/Makefile
+
+# For variable without @modifier ambiguity do not keep the @modifier
+for i in *@*.src; do
+ oldname=${i%.*}
+ shortname=${oldname%@*}
+ if [ $(ls ${shortname}@* | wc -l) -eq 1 -a ! -f ${shortname}.src ] ; then
+ mv -i $i ${shortname}.src
+ sed -i '' -e "s/${oldname}/${shortname}/g" ${old}/Makefile
+ fi
+done
+
+# Rename the modifiers into non abbreviated version
+for i in *@Latn.src; do
+ if [ "$i" = "*@Latn.src" ]; then
+ break
+ fi
+ mv ${i} ${i%@*}@latin.src
+done
+ sed -i '' -e "s/@Latn/@latin/g" ${old}/Makefile
+for i in *@Cyrl.src; do
+ if [ "$i" = "*@Cyrl.src" ]; then
+ break
+ fi
+ mv ${i} ${i%@*}@cyrillic.src
+done
+ sed -i '' -e "s/@Cyrl/@cyrillic/g" ${old}/Makefile
+
+# On locales with multiple modifiers rename the "default" version without the @modifier
+default_locales="sr_RS@cyrillic"
+for i in ${default_locales}; do
+ localename=${i%@*}
+ mod=${i#*@}
+ for l in ${localename}.*@${mod}.src; do
+ if [ "$l" = "${localename}.*@${mod}.src" ]; then
+ break
+ fi
+ mv ${l} ${l%@*}.src
+ sed -i '' -e "s/${l%.*}/${l%@*}/g" ${old}/Makefile
+ done
+done
+cd -
+
grep '^LOCALES+' ${old}/Makefile > ${TEMP}
if [ $1 = "ctypedef" ]
@@ -94,8 +146,9 @@ then
done
echo "" >> ${TEMP4}
for enc in ${COLLATIONS_SPECIAL}; do
- sed -i '' "/^.*${enc}$/d" ${TEMP4}
- echo "LOCALES+= ${enc}" >> ${TEMP4}
+ nname=`echo $enc | sed -e 's/_Hans//g'`
+ sed -i '' "/^.*${nname}$/d" ${TEMP4}
+ echo "LOCALES+= ${nname}" >> ${TEMP4}
done
keep=$(cat ${TEMP} | awk '{ print $2 }')