-if ($row->{id}) {
- my $children = $db->select(word => '*', {ref => $row->{id}}, 'lang, id');
- printf '<li><label>%s</label><div><ul class="inline">', 'Translations';
- while (my $row = $children->hash) {
+if ($row->{id} and not $row->{ref}) {
+ printf '<li><label for="%s">%s</label><div><ul class="inline" id="%1$s">',
+ 'trans', 'Translations';
+ my @children = $db->select(word => '*', {ref => $row->{id}}, 'lang, id')->hashes;
+ while (my ($lang, $val) = each %fields) {
+ $lang =~ s/^trans-// or next;
+ push @children, { lang => $lang, form => $val };
+ }
+ for my $ref (@children) {
+ printf(
+ '<li><label for="%s" title="%3$s">%s </label>',
+ "trans-$ref->{lang}", @{$lang{ $ref->{lang} }}, # flag, name
+ );