{"id":397,"date":"2016-05-31T07:00:15","date_gmt":"2016-05-31T14:00:15","guid":{"rendered":"http:\/\/eriknovales.com\/blog\/?p=397"},"modified":"2016-05-31T07:00:15","modified_gmt":"2016-05-31T14:00:15","slug":"introducing-ludum-linguarum","status":"publish","type":"post","link":"https:\/\/eriknovales.com\/?p=397","title":{"rendered":"Introducing Ludum Linguarum"},"content":{"rendered":"<p>I\u2019ve been working on a side project for some time now, and it\u2019s gotten far enough along that it\u2019s worth releasing it, and discussing it. It\u2019s called <a href=\"https:\/\/github.com\/enovales\/LudumLinguarum\">Ludum Linguarum<\/a> (LL) \u2013 a little awkward, yeah, but I figured that a unique name would be better in this case than spending a lot of time trying to find an available-yet-expressive one.<\/p>\n<h3>What does it do?<\/h3>\n<p>Well, it\u2019s intended to be a tool for extracting localized resources from games, and then converting them into language learning resources. In other words, the end goal is that you can turn your <a href=\"http:\/\/store.steampowered.com\/\">Steam<\/a> library (full of games that you bought for $0.99 in some random bundle) into material to help you learn another language.<\/p>\n<p>The current version pulls strings from games, and turns them into flash cards for use with <a href=\"http:\/\/ankisrs.net\/\">Anki<\/a> (and compatible apps). LL <a href=\"http:\/\/enovales.github.io\/LudumLinguarum\/supported-games.html\">supports 21 games right now<\/a>, and the goal is to expand that over time.<\/p>\n<h3>Why write something like this?<\/h3>\n<p>Well, it involves two things that have always interested me (games and languages), and as far as I know, nothing else like this exists! (<a href=\"http:\/\/subs2srs.sourceforge.net\/\">subs2srs<\/a> is a tool in a similar vein, but it generates flash cards from subtitled videos instead.) I figure you might be able to get a little extra motivation and drive by learning another language in the context of gaming.<\/p>\n<p>Another reason is that the vocabulary of games is often well off the beaten path of most language courses \u2013 I don\u2019t think that <a href=\"http:\/\/www.rosettastone.com\/\">Rosetta Stone<\/a> or even <a href=\"https:\/\/www.duolingo.com\/\">Duolingo<\/a> is going to tell you that \u201cmagic missile\u201d is <em>Zauberfaust<\/em> in German. There aren\u2019t that many opportunities to <em>learn<\/em> this stuff otherwise \u2013 think of it like professional vocabulary, but for a really <em>weird<\/em> job.<\/p>\n<p>I also find cultural differences interesting, and that includes the way that game content gets translated. Seeing how colloquialisms and \u201crealistic\u201d conversation get translated is really interesting to me \u2013 I get a huge kick out of learning that <em>platt wie Flundern<\/em> is how someone chose to translate \u201cflat as a pancake.\u201d<\/p>\n<p>Finally, game content in itself is an interesting treasure trove where you can often see the remnants of things that were tried and abandoned, or cut in order to get the product to the finish line. And naturally, some of the most common types of remnants are text and audio.<\/p>\n<h3>Next Posts<\/h3>\n<p>I\u2019m going to spend the next few posts talking about the development of Ludum Linguarum, and writing the code to extract strings out of the first few games it supports. There were quite a few interesting problems that came up while getting to this point, and a few interesting tidbits and trivia that I can share about some of the supported games.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019ve been working on a side project for some time now, and it\u2019s gotten far enough along that it\u2019s worth releasing it, and discussing it. It\u2019s called Ludum Linguarum (LL) \u2013 a little awkward, yeah, but I figured that a unique name would be better in this case than spending a lot of time trying [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[7,9,10],"tags":[],"class_list":["post-397","post","type-post","status-publish","format-standard","hentry","category-development","category-games","category-ludum-linguarum"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/eriknovales.com\/index.php?rest_route=\/wp\/v2\/posts\/397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eriknovales.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eriknovales.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eriknovales.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eriknovales.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=397"}],"version-history":[{"count":0,"href":"https:\/\/eriknovales.com\/index.php?rest_route=\/wp\/v2\/posts\/397\/revisions"}],"wp:attachment":[{"href":"https:\/\/eriknovales.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eriknovales.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eriknovales.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}