gdk: Make gen-keyname-table.pl work again

keyname-table.h was modified by hand, and gen-keyname-table.pl
couldn't be used to generate that file again.

https://bugzilla.gnome.org/show_bug.cgi?id=662628
This commit is contained in:
Bastien Nocera 2011-10-25 14:34:27 +01:00
parent 0f17a846a0
commit aceccd5819
3 changed files with 60 additions and 4 deletions

View File

@ -17,6 +17,7 @@ CLEANFILES =
EXTRA_DIST += \
keynames.txt \
keynames-translate.txt \
keyname-table.h \
gdkkeynames.c \
gen-keyname-table.pl \

View File

@ -1,7 +1,7 @@
#!/usr/bin/perl -w
if (@ARGV != 1) {
die "Usage: gen-keyname-table.pl keynames.txt > keyname-table.h\n";
if (@ARGV != 2) {
die "Usage: gen-keyname-table.pl keynames.txt keynames-translate.txt > keyname-table.h\n";
}
open IN, $ARGV[0] || die "Cannot open $ARGV[0]: $!\n";
@ -20,6 +20,18 @@ while (defined($_ = <IN>)) {
push @translate, $2;
}
}
close IN;
open IN, $ARGV[1] || die "Cannot open $ARGV[1]: $!\n";
while (defined($_ = <IN>)) {
next if /^!/;
if (!/^\s*([\w_]*\S)\s+$/) {
die "Cannot parse line $_";
}
push @translate, $1;
}
close IN;
$offset = 0;
@ -99,13 +111,30 @@ print <<EOT;
#if 0
/*
* Translators, the strings in the 'keyboard label' context are
* display names for keyboard keys. Some of them have prefixes like
* XF86 or ISO_ - these should be removed in the translation. Similarly,
* underscores should be replaced by spaces. The prefix 'KP_' stands
* for 'key pad' and you may want to include that in your translation.
* Here are some examples of English translations:
* XF86AudioMute - Audio mute
* Scroll_lock - Scroll lock
* KP_Space - Space (keypad)
*/
EOT
for $key (@translate) {
if ($key eq 'KP_Space') {
print "/* Translators: KP_ means 'key pad' here */\n";
}
if ($key eq 'XF86MonBrightnessUp') {
print "/* Translators: 'Mon' means Monitor here, and the XF86 prefix should be removed */\n";
}
print <<EOT;
N_("keyboard label|$key")
NC_("keyboard label", "$key")
EOT
}
}
print <<EOT;

View File

@ -0,0 +1,26 @@
XF86MonBrightnessUp
XF86MonBrightnessDown
XF86AudioMute
XF86AudioLowerVolume
XF86AudioRaiseVolume
XF86AudioPlay
XF86AudioStop
XF86AudioNext
XF86AudioPrev
XF86AudioRecord
XF86AudioPause
XF86AudioRewind
XF86AudioMedia
XF86ScreenSaver
XF86Battery
XF86Launch1
XF86Forward
XF86Back
XF86Sleep
XF86Hibernate
XF86WLAN
XF86WebCam
XF86Display
XF86TouchpadToggle
XF86WakeUp
XF86Suspend