Skip to content

Instantly share code, notes, and snippets.

@zengargoyle
Created January 7, 2011 21:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zengargoyle/770157 to your computer and use it in GitHub Desktop.
Save zengargoyle/770157 to your computer and use it in GitHub Desktop.
approximate XML to Anki example.
att passa någon som handen i handske;to be right up somebody's alley
(bildligt) rycka in och hjälpa till, (omedelbart) hjälpa till;step into the breach
bli sämre;be losing one's grip
bort med tassarna!;take your paws off!
brännas på bål;be burnt at the stake
bromsa något, hejda något;put the (a) brake on something
finnas i alla former och storlekar;come in all shapes and sizes
förbarma sig över någon;take pity on somebody
för Guds skull! (informellt);for crying out loud!
försöka lyckas i världen (särskilt litterärt);seek one's fortune
ge någon betalt för gammal ost;have a score to settle with somebody
hålla ihop i vått och torrt;through thick and thin
hamna i onåd;fall into disfavor
inbyggda skåp;built-in cupboards
inte ge sig i första taget (bildligt);die hard
jag har inte berättat det värsta ännu;you don't know the half of it
lägga benen på ryggen (gammaldags; informellt);show a clean pair of heels
om jag vore som du, om jag vore i dina kläder;if I were you
opinionens;the swing of the pendulum
på rak arm, utan närmare eftertanke;on the spur of the moment
(skämtsamt) nya jakmarker, nya (friskare) betesmarker;pastures new (greener)
spela pajas, larva sig, bära sig dumt åt, göra en tabbe, göra bort sig;act the fool
vara beredd på allt;keep one's/a weather eye open (for)
vara svårt för någon att acceptera;go hard with someone
#!/usr/bin/env perl
use strict;
use warnings;
use String::Approx qw(amatch);
$|++;
my $source_file = './folkets_public.xml';
binmode STDOUT, ':utf8';
use XML::Twig;
my $twig = XML::Twig->new(
twig_roots => {
# only handle the <word /> elements.
'word' => sub { do_word(@_), $_->delete },
},
);
$twig->parsefile( $source_file );
exit;
sub do_word {
my ($twig, $word) = @_;
my $english = $word->{att}{value};
my $class = $word->{att}{class} || '';
my @translations = $word->children('translation');
my @examples = $word->children('example');
my @idioms = $word->children('idiom');
# uncomment one of these:
# parts_of_speech;swedish_word;english_word;swedish_example
#do_example($english, $class, \@examples, \@translations);
# swedish_idiom;english_translation
do_idioms(\@idioms);
};
sub do_idioms {
my ($idioms) = @_;
for my $i (@$idioms) {
my $t = $i->first_child('translation');
print "$i->{att}{value};$t->{att}{value}\n";
}
}
sub do_example {
my ($english, $class, $examples, $translations) = @_;
# cross product (@examples X @translations)
# works better if you do some pruning before printing
for my $e (@$examples) {
my $example = $e->{att}{value};
#proper($example); # uncomment for prudishness
for my $t (@$translations) {
my $comment = $t->{att}{comment} ? " ($t->{att}{comment})" : '';
# uncomment following line to prune by approximate match
#next unless amatch( $t->{att}{value}, $e->{att}{value} );
print "$class;$t->{att}{value}$comment;$english;$example\n";
}
}
}
#
# enforce formatting
#
sub proper {
# initial caps
$_[0] = ucfirst $_[0];
# end with period or other punctuation
$_[0] .= '.' unless $_[0] =~ /[[:punct:]]$/;
}
ab;någonstans;somewhere;Någonstans mellan sju- och åttatusen pund.
ab;verkligen;truly;jag är verkligen glad för din skull
jj;framlidne;late;hans framlidna hustru
jj;full (tabu, slanguttryck);pissed;är du full?
jj;genomträngande (om ljud);piercing;hon har en ganska genomträngande röst
jj;kinkig;particular;hon är mycket kinkig med vad hon äter
jj;makaber;ghoulish;hon tycks finna något slags makabert nöje i att läsa om de här fruktansvärda olyckorna
jj;nära förestående;impending;hon oroade sig över den nära förestående operationen
jj;psykiatrisk;psychiatric;psykiatrisk vård
jj;vederhäftig;reliable;enligt vederhäftiga uppgifter
nn;hjärta;heart;mitt hjärta blöder för henne, jag tycker så synd om henne
nn;natt;night;i natt drömde jag om dej
nn;vik;bay;jag har utsikt över bukten från mitt fönster
pn;sig själv;herself;hon var inte sig själv i dag, eller vad tycker du?
pp;gånger;by;rummet är två gånger fyra meter stort
prefix;o-;non-;jag är icke-rökare
vb;gå upp (om ridå på teater eller opera);go up;ridån går upp klockan sju
vb;ge;give;hon skrattade till kort och nervöst
vb;ha samröre med (nedsättande);collaborate;hur länge har han haft samröre med fienden?
vb;hota;threaten;Jag har mottagit ett hotbrev.
vb;hota;threaten;Jag har mottagit ett hotbrev.
vb;riva sönder;rip;han rev sönder min klänning
vb;sänka sig;lower;hon skulle aldrig sänka sig till hans vulgära nivå
vb;tugga;gnaw;sluta tugga på naglarna!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment