{"id":656,"date":"2025-12-05T16:11:36","date_gmt":"2025-12-05T22:11:36","guid":{"rendered":"https:\/\/www.dphrygian.com\/wordpress\/?p=656"},"modified":"2025-12-05T16:11:36","modified_gmt":"2025-12-05T22:11:36","slug":"devs-journal-5-dec-2025","status":"publish","type":"post","link":"https:\/\/www.dphrygian.com\/wordpress\/?p=656","title":{"rendered":"Dev&#8217;s Journal &#8211; 5 Dec 2025"},"content":{"rendered":"\n<p><em>Eldritch 2<\/em>\u00a0is coming to Steam! Please wishlist it\u00a0<a href=\"https:\/\/store.steampowered.com\/app\/2279280\/Eldritch_2\/\">here<\/a>.<\/p>\n\n\n\n<p>I took a little detour this morning and finally tackled one last bit of <a href=\"https:\/\/www.dphrygian.com\/wordpress\/?p=417\" data-type=\"link\" data-id=\"https:\/\/www.dphrygian.com\/wordpress\/?p=417\">localization prep<\/a> that I&#8217;d been putting off for a long time: supporting translated names of keyboard keys. Ever since the first version of my input system, way way back in (oh no) 2008, I&#8217;ve hard-coded the names of keys. And that&#8217;s mostly fine for most of the keyboard, but things like &#8220;Left Ctrl&#8221; or &#8220;Caps Lock&#8221; should really be translated.<\/p>\n\n\n\n<p>I had briefly attempted this last year when working on my new localization system, and I can&#8217;t remember exactly why I reverted it. I don&#8217;t think there were any real blocking issues, it probably just felt like too much tedious work for relatively little value. But it kept itching my brain, so I finally decided to do it. And it <em>was<\/em> a lot of tedious work, but now it&#8217;s done and I&#8217;m pretty sure that every single string displayed in the game is now localizable.<\/p>\n\n\n\n<p>I don&#8217;t think I ever wrote about it, but about two years ago, I also did some work to decouple virtual keys and scancodes in my keyboard input system, so that non-QWERTY layouts would use the correct key <em>placements<\/em>, instead of using whatever key corresponds to the equivalently <em>named<\/em> key on a QWERTY layout. So now, if you&#8217;re playing in French with an AZERTY keyboard, the default WASD cluster will be ZQSD, and &#8220;Esc&#8221; could be rendered as &#8220;\u00c9chap&#8221;.<\/p>\n\n\n\n<p>Of course, this ultimately depends on what languages I can afford to have the game translated into, and I&#8217;ve got a lot more game to make before I need to think about that. But it feels good to have this sort of thing figured out in advance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eldritch 2\u00a0is coming to Steam! Please wishlist it\u00a0here. I took a little detour this morning and finally tackled one last bit of localization prep that I&#8217;d been putting off for a long time: supporting translated names of keyboard keys. Ever since the first version of my input system, way way back in (oh no) 2008, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-656","post","type-post","status-publish","format-standard","hentry","category-eldritch-2"],"_links":{"self":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/656"}],"collection":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=656"}],"version-history":[{"count":1,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions"}],"predecessor-version":[{"id":657,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions\/657"}],"wp:attachment":[{"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dphrygian.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}