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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#!/usr/bin/gawk -f
#// 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 )
}
}
|