blob: 904d1c2cf53b1fc1379eac3fcc8aa25cde415582 [file] [log] [blame]
#!/usr/bin/gawk -f
# *************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# *************************************************************
#// Usage: gawk -f list-locales.awk *.xml
#// Simply create a verbose list of known locales as stated in XML files.
#// Author: Eike Rathke <erack@sun.com>
BEGIN {
file = ""
count = 0
}
function init_locale() {
lcinfo = 0
inlang = 0
incoun = 0
language = ""
country = ""
}
FILENAME != file {
printEntry()
file = FILENAME
++count
init_locale()
}
{
if ( !lcinfo )
{
if ( /<LC_INFO>/ )
lcinfo = 1
next
}
if ( /<\/LC_INFO>/ )
{
lcinfo = 0
next
}
if ( /<Language>/ )
inlang = 1
if ( inlang && /<DefaultName>/ )
{
split( $0, x, /<|>/ )
language = x[3]
}
if ( /<\/Language>/ )
inlang = 0
if ( /<Country>/ )
incoun = 1
if ( incoun && /<DefaultName>/ )
{
split( $0, x, /<|>/ )
country = x[3]
}
if ( /<\/Country>/ )
incoun = 0
}
END {
printEntry()
print "\n" count " locales"
}
function printEntry() {
if ( file )
{
tmp = file
gsub( /.*\//, "", tmp )
gsub( /\.xml/, "", tmp )
split( tmp, iso, /_/ )
if ( iso[2] )
printf( "%3s_%2s: %s - %s\n", iso[1], iso[2], language, country )
else
printf( "%3s %2s: %s %s\n", iso[1], iso[2], language, country )
}
}