<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Frobnic8</id>
	<title>Dwarf Fortress Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Frobnic8"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php/Special:Contributions/Frobnic8"/>
	<updated>2026-05-13T09:09:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:Lethosor&amp;diff=233410</id>
		<title>User talk:Lethosor</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:Lethosor&amp;diff=233410"/>
		<updated>2017-11-01T02:51:28Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: /* Sorry, I need a password reset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{User:Lethosor/header}}&lt;br /&gt;
{{Archive|&lt;br /&gt;
* [[/archive1|Archive 1 &amp;lt;br&amp;gt;(February-August 2013)]]&lt;br /&gt;
* [[/archive2|Archive 2 &amp;lt;br&amp;gt;(Sept. 2013 - May 2014)]]&lt;br /&gt;
}}&lt;br /&gt;
__TOC__&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==Bot requests==&lt;br /&gt;
&amp;lt;div style=&amp;quot;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[{{fullurl:User talk:Lethosor|action=edit&amp;amp;section=1&amp;amp;editintro={{urlencode:User:Lethosor/edit intro/bot}}}} '''Add a new request''']&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
To keep this organized, please add requests at the bottom of this section in a sub-section (e.g. === Title ===, with 3 = signs)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== Underpopulated categories ===&lt;br /&gt;
&lt;br /&gt;
Many categories in the DF2014 namespace don't list some of the pages that have the category link. An empty edit on a page (well, any edit) will correct this, but only for that page. This sounds like a job for a bot. [[User:VengefulDonut|VengefulDonut]] ([[User talk:VengefulDonut|talk]]) 19:00, 21 July 2014 (UTC)&lt;br /&gt;
:I'm pretty sure that's a cache problem, so I'll try rebuilding link tables on the server side and see if that helps (it would probably be a lot faster than sending a bot around to null-edit every page). &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 20:41, 21 July 2014 (UTC)&lt;br /&gt;
::This has been fixed. The problem was that the server that actually runs the job queue was still using the old configuration (without the DF2014 namespace). &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 21:17, 8 November 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Diagram ==&lt;br /&gt;
&lt;br /&gt;
Take a look over [[DF talk:diagram|here]]. [[User:VengefulDonut|VengefulDonut]] ([[User talk:VengefulDonut|talk]]) 15:45, 26 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ceramic Industry page assistance. ==&lt;br /&gt;
&lt;br /&gt;
(Message here) --[[User:DorfyDave|DorfyDave]] ([[User talk:DorfyDave|talk]]) 04:16, 24 August 2014 (UTC)&lt;br /&gt;
Thanks for the help with the ceramic industry stuff.&lt;br /&gt;
&lt;br /&gt;
I see what you are doing with the thumbnail workflows on other pages, so if you would rather it be small and let the reader expand it, that would be fine.&lt;br /&gt;
&lt;br /&gt;
I was thinking that the pages looked better with the intro section before the regular content, keeping it separate from the auto TOC / Header listed content, but if you prefer that everything follow the layered header format, that's fine.&lt;br /&gt;
&lt;br /&gt;
:My primary concern was the wrapping caused by inserting the full-size flowchart next to a section. It looks like you've addressed that by splitting up the flowchart, which looks good to me. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 15:48, 25 August 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Removing/restoring [[Main:Fruit]] ==&lt;br /&gt;
&lt;br /&gt;
Not that I am protesting it, but why exactly did you remove and then restore the [[Main:Fruit]] page? Because to me, all that happened now is that the creation entry on the page's history is gone, which isn't really anything notable either.&lt;br /&gt;
--{{User:Latias1290/Sig/src|13:03|August 26, 2014}} 13:03, 26 August 2014 (UTC)&lt;br /&gt;
:I deleted it at first because I didn't realize AutoRedirect wasn't handling section redirects properly, then restored it when I noticed it was broken. That article's [http://dwarffortresswiki.org/index.php?title=Fruit&amp;amp;action=history history] still shows your revision, so I'm not sure what you mean - is it missing from [[Special:RecentChanges]]? &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 13:07, 26 August 2014 (UTC)&lt;br /&gt;
::The creation entry I was talking about was actually the first entry, and the entry that is now the only one was the second before you removed it. When I created the page I first had it directly redirect to [[cv:Tree#Fruit]], which after testing didn't work. I usually save the page when the preview doesn't show a red link and the link is correct, and after saving I test it, This time, however, the link in the preview was blue and correct, but actually following the redirect only led to [[cv:Tree]] instead of [[cv:Tree#Fruit]]. The entry you are seeing now is the result of fixing this by making it into a double redirect through [[cv:Fruit]].&lt;br /&gt;
:::It looks to me like your first edit was to [[DF2014:Fruit]] - when [[Main:Fruit]] didn't exist, it would have automatically redirected to [[DF2014:Fruit]], so it might have appeared to exist when it didn't. (The problem here is that I made AutoRedirect follow redirect chains internally, since Mediawiki's maximum-redirect setting is buggy, so a nonexistent [[Main:Fruit]] would actually redirect to what [[cv:Fruit]] redirects to - the problem is that it ignores sections at the moment, so section redirects will need to be manually created until I can fix that.) &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 13:18, 26 August 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== settings-manager ==&lt;br /&gt;
&lt;br /&gt;
I don't know where to put it because I don't have a github account and don't know if you have a personal thread for your scripts like the others, but couldn't you add a TEXT mode entry in line 116 of your settings-manager script?&lt;br /&gt;
--[[Special:Contributions/78.250.50.116|78.250.50.116]] 04:40, 18 September 2014 (UTC)&lt;br /&gt;
:I originally excluded it because it only works on Linux, but I'll add it back for Linux users. Thanks! &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 19:44, 18 September 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Interesting glitch with redirects ==&lt;br /&gt;
&lt;br /&gt;
I went to see what &amp;quot;Candy&amp;quot; was by going to a page named &amp;quot;Candy&amp;quot;, and I found out that it meant Adamantine. But I saw that I got redirected to [[v0.34:Adamantine]], which shouldn't happen seeing as mainspace redirects should always go to the cv namespace. So I went back to fix it, and I saw that [[main:Candy]] redirected to [[main:Adamantine]], so I went there to fix it. But that page redirected properly to [[DF2014:Adamantine]]. This is where it gets interesting.&lt;br /&gt;
&lt;br /&gt;
So when you go to [[main:Candy]], you get redirected to [[main:Adamantine]] which in turn redirects to [[DF2014:Adamantine]]. But - for some reason, you don't get sent to [[DF2014:Adamantine]], but to [[v0.34:Adamantine]]. Going to [[main:Adamantine]] in the first place redirects you to [[DF2014:Adamantine]] properly.&lt;br /&gt;
&lt;br /&gt;
I have no idea how this happens, and since you maintain most of the wiki, I think you would be the right person to tell this to.&lt;br /&gt;
--{{User:Latias1290/Sig/src|13:42|November 01, 2014}} 13:42, 1 November 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:My best guess is that the [[Main:Candy]] redirect is cached and still points to [[v0.34:Adamantine]]. Our [[DF:REDIR|new policy]] is to keep redirects in versioned namespaces, so feel free to tag any broken redirects (in the main namespace) that you find with {{tl|bad redirect}} and I'll delete them. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 14:48, 1 November 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I just saw a redlink on the exploratory tunnels page(redlink to [[DF2014:Break]]) and went to create it, when I discovered that the pages for Break existed for 23a and 40d, but not for 34.11 and 40.x. I went to check those to import content, and they turned out to be redirects. So I just redirected [[DF2014:Break]] to [[DF2014:On break]] and when I went to create additional redirects in the mainspace, I found that [[main:Break]] redirects to [[main:On break]] which redirects to [[cv:On break]]. But, again, it ultimately did not redirect to cv:On break but to v0.34:Break. I think that if it is indeed a cache problem we should rebuild redirect caches. {{User:Latias1290/Sig/src|12:08|November 02, 2014}}&lt;br /&gt;
:PS: Or just batch-delete all of this kind of redirects. {{User:Latias1290/Sig/src|12:09|November 02, 2014}}&lt;br /&gt;
:I don't like &amp;quot;bumping&amp;quot; this message like this, but since it's rather annoying, and ten days have been since I told you, almost all of these redirects are broken. Take a look at [[main:Aluminium]] for example, it goes to its 34.11 page. I think that it goes like this; when a page in the mainspace redirects to another page in the mainspace, which in turn goes to a cv space page, it goes to 0.34 instead of the current version. Going to the main&amp;gt;cv redirect initially does not cause this glitch. {{User:Latias1290/Sig/src|12:46|November 12, 2014}}&lt;br /&gt;
::It would be helpful if you could add {{tl|bad redirect}} to those pages (preferably before the &amp;quot;#REDIRECT&amp;quot; line) so I can delete them. I'm not sure what's causing the problem, but I'll see if I can override broken redirects with the AutoRedirect extension as well. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 20:18, 12 November 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Migrated citations ==&lt;br /&gt;
&lt;br /&gt;
As seen on [[DF2014:Dragonfire]], migrated citations can become confused, pointing to non-existent pages. I'm not sure how to fix it, but in general citations shouldn't automatically change what they are pointing at.--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 18:26, 14 November 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;nowiki&amp;gt;{{ArticleVersion}}&amp;lt;/nowiki&amp;gt; bug ==&lt;br /&gt;
&lt;br /&gt;
I just found another very strange bug regarding the articleversion template. The more research I did on it, the weirder it got. The bug is that when you are not logged in, and you visit a non-DF2014 page with an av template, the latest version shows as v0.40.16 instead of v0.40.18. {{User:Latias1290/Sig/src|10:17|November 25, 2014}}&lt;br /&gt;
PS: This bug does not replicate when you are logged in. {{User:Latias1290/Sig/src|10:19|November 25, 2014}}&lt;br /&gt;
:This is because pages are cached for logged-out users. You can refresh individual pages by adding &amp;quot;?action=purge&amp;quot; to the end of the URL (or possibly by null-editing them). It appears to occur in DF2014 pages as well - [[DF2014:Hemp]], for example. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 23:49, 25 November 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Lost password request ==&lt;br /&gt;
&lt;br /&gt;
I've forgotten my password. User: Bumber&lt;br /&gt;
&lt;br /&gt;
:You don't seem to have an email address associated with your account. I sent a message to Bumber on the forums, assuming that's you. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 01:24, 30 April 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
== Redirects ==&lt;br /&gt;
&lt;br /&gt;
Thank you for the correction. I felt I might be doing it wrong but couldn't find an example of it done right to copy. Now I know. :) [[User:Volatar|Volatar]] ([[User talk:Volatar|talk]]) 16:02, 30 July 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== v0.42.05 raws update ==&lt;br /&gt;
&lt;br /&gt;
Just a friendly reminder that the wiki raws need updated to pick up the [http://dwarffortresswiki.org/index.php?title=Dwarf_Fortress_Wiki:Page_request/List&amp;amp;diff=222917&amp;amp;oldid=222913 new critters in v0.42.05]. It would also be nice if your bot could auto-create the new creature pages so we don't end up with [[back bear man]] and the like.--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 23:05, 2 February 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Quietust updated the extension, but I'm having trouble deploying the changes for some reason (which Emily can hopefully figure out). I don't know if I'll have enough time this/next week to write a script to create the new creature pages - if not, Quietust might have something still laying around from 0.34/0.40. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 17:45, 6 February 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Page move reminder ==&lt;br /&gt;
&lt;br /&gt;
[[DF2014:Box]] to [[DF2014:Container]] please. [[User:Brightgalrs|Brightgalrs]] ([[User talk:Brightgalrs|talk]]) 23:01, 7 July 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. It took me a second to figure out what the issue was - I'm surprised Mediawiki wouldn't let you move a page over another one that was just a redirect. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 00:21, 10 July 2016 (UTC)&lt;br /&gt;
::Thanks! [[User:Brightgalrs|Brightgalrs]] ([[User talk:Brightgalrs|talk]]) 22:50, 11 July 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== v0.43.05 raws update ==&lt;br /&gt;
&lt;br /&gt;
Just a friendly reminder that the wiki raws need updated to pick up the changes through v0.43.05.--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 19:48, 2 August 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 01:43, 22 August 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Multiple redirects leads to incorrect namespace ==&lt;br /&gt;
&lt;br /&gt;
Discussion here: [[Dwarf_Fortress_Wiki_talk:Centralized_Discussion#Solution_for_this]] [[User:Brightgalrs|Brightgalrs]] ([[User talk:Brightgalrs|talk]]) 10:49, 21 November 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Vandalism ==&lt;br /&gt;
&lt;br /&gt;
We had an attack on August 3rd. [[Talk:Main Page (fix plz)]] ‎needs moved back to Talk:Main Page, and the rest of [http://dwarffortresswiki.org/index.php/Special:Contributions/Etihand the vandal's handiwork] can just be deleted. I can't think of any legitimate reason a user would need to move Talk:Main Page, so it should probably be move-locked to prevent future hijacks.--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 15:53, 7 August 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
:It should be cleaned up now. Sorry for the delay there. [[Main Page]] was already move-protected, but apparently that didn't apply to the talk page, so both should be move-protected now too. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 13:29, 8 August 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Sorry, I need a password reset ==&lt;br /&gt;
&lt;br /&gt;
I just logged in, saw the post about passwords needing to be changed. (Feeling all smart since I just setup a password manager) I updated my password, only to realize I didn't save the new password correctly in the manager. I tried to reset it but the wiki had a note saying to contact you since it can't do outbound email right now.&lt;br /&gt;
&lt;br /&gt;
My user name is [[Frobnic8]]. &lt;br /&gt;
&lt;br /&gt;
My most notable contribution here are the PDF versions of the old Bronzemurder illustration by Tim Denee: [[Bronzemurder]]&lt;br /&gt;
&lt;br /&gt;
The files are still hosted at my website. To prove it's me, I've also left you a note at http://eldritch.org/erskin/temp/df_wiki.txt&lt;br /&gt;
&lt;br /&gt;
Sorry for the hassle, but if you could set me a temporary password or send me a link to a password reset to the associated email address for the account, that'd be awesome.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
--[[Special:Contributions/70.163.4.102|70.163.4.102]] 15:40, 30 October 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 01:59, 1 November 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Thanks! --[[User:Frobnic8|Frobnic8]] ([[User talk:Frobnic8|talk]]) 02:51, 1 November 2017 (UTC)&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.34:Hammerer&amp;diff=178301</id>
		<title>v0.34:Hammerer</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.34:Hammerer&amp;diff=178301"/>
		<updated>2012-10-20T22:54:09Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Fixed Armok link again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{quality|Fine|01:20, 31 March 2012 (UTC)}}{{Noble&lt;br /&gt;
| noble=Hammerer&lt;br /&gt;
| arrival=&lt;br /&gt;
* Appointed by the player&lt;br /&gt;
| function=&lt;br /&gt;
* [[Justice]]&lt;br /&gt;
* Executioner&lt;br /&gt;
}}{{av}}&lt;br /&gt;
&lt;br /&gt;
The [[Hammerer]] is the executioner of your [[fortress]].  Normally, a dwarf that has committed a crime will be subject to [[justice]] at the hands of your [[Sheriff]] (later the [[Captain of the guard]]), who will imprison the criminal in [[jail]].  However, if the crime was particularly [[fun]], the Hammerer will dispense the swift and brutal justice that rides on the head of his or her hammer.&lt;br /&gt;
&lt;br /&gt;
In order for the hammerer to execute criminals, you must have an available [[chain]] in your [[jail]] - a [[cage]] cannot be used. If you have no available chains, the criminal's punishment will be automatically reduced to a Beating.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are multiple theories as to why the hammerer has become a huge role in dwarven politics. Experts claim that he serves no real purpose, as [[Main:Armok|Armok]] usually finds a way to punish any delinquent no matter if no hammerer exists- magma, Justice Spiders, or bridge mistakes usually lead to a criminal's &amp;lt;s&amp;gt;un&amp;lt;/s&amp;gt;timely demise. Hammerers do, however, present a sort of a calming factor on a typical fortress, and give any unhappy dwarf a simple, just, and brutal(ly effective) way to let off steam.&lt;br /&gt;
{{Nobles}}&lt;br /&gt;
{{Category|Justice}}&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.34:Hammerer&amp;diff=178300</id>
		<title>v0.34:Hammerer</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.34:Hammerer&amp;diff=178300"/>
		<updated>2012-10-20T22:52:23Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Fixed Armok link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{quality|Fine|01:20, 31 March 2012 (UTC)}}{{Noble&lt;br /&gt;
| noble=Hammerer&lt;br /&gt;
| arrival=&lt;br /&gt;
* Appointed by the player&lt;br /&gt;
| function=&lt;br /&gt;
* [[Justice]]&lt;br /&gt;
* Executioner&lt;br /&gt;
}}{{av}}&lt;br /&gt;
&lt;br /&gt;
The [[Hammerer]] is the executioner of your [[fortress]].  Normally, a dwarf that has committed a crime will be subject to [[justice]] at the hands of your [[Sheriff]] (later the [[Captain of the guard]]), who will imprison the criminal in [[jail]].  However, if the crime was particularly [[fun]], the Hammerer will dispense the swift and brutal justice that rides on the head of his or her hammer.&lt;br /&gt;
&lt;br /&gt;
In order for the hammerer to execute criminals, you must have an available [[chain]] in your [[jail]] - a [[cage]] cannot be used. If you have no available chains, the criminal's punishment will be automatically reduced to a Beating.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are multiple theories as to why the hammerer has become a huge role in dwarven politics. Experts claim that he serves no real purpose, as [[Armok]] usually finds a way to punish any delinquent no matter if no hammerer exists- magma, Justice Spiders, or bridge mistakes usually lead to a criminal's &amp;lt;s&amp;gt;un&amp;lt;/s&amp;gt;timely demise. Hammerers do, however, present a sort of a calming factor on a typical fortress, and give any unhappy dwarf a simple, just, and brutal(ly effective) way to let off steam.&lt;br /&gt;
{{Nobles}}&lt;br /&gt;
{{Category|Justice}}&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Stonesense&amp;diff=178183</id>
		<title>Utility:Stonesense</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Stonesense&amp;diff=178183"/>
		<updated>2012-10-13T19:07:28Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: /* Stonesense */ Updated location of official thread to the new thread link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:stonesense_screen.png|thumb|right|Stonesense Screenshot]]&lt;br /&gt;
&lt;br /&gt;
==Stonesense==&lt;br /&gt;
Stonesense is a third party visualizer that lets you view your Dwarf Fortress world in a classic isometric perspective.&lt;br /&gt;
&lt;br /&gt;
The official thread for feedback, questions, requests or bug reports is located at http://www.bay12forums.com/smf/index.php?PHPSESSID=282901c9f7e1b642a6987f6a669b090c&amp;amp;topic=106497&lt;br /&gt;
&lt;br /&gt;
==Stonesense Content Repository==&lt;br /&gt;
The [[Utility:Stonesense/Content_repository|Stonesense Content Repository]] contains content packs that allow you to extend Stonesense functionality. These packs are made by members of the DF community.&lt;br /&gt;
&lt;br /&gt;
==Modding With Stonesense==&lt;br /&gt;
The following pages give introductions and tutorials on how to create custom content for Stonesense.&lt;br /&gt;
* [[Utility:Stonesense/Sprites|Understanding Sprites]]&lt;br /&gt;
* [[Utility:Stonesense/Adding a simple building|Adding a simple building]]&lt;br /&gt;
* [[Utility:Stonesense/Adding Creatures|Adding Creatures]]&lt;br /&gt;
* [[Utility:Stonesense/Adding Vegetation|Adding Vegetation]]&lt;br /&gt;
* [[Utility:Stonesense/Adding Terrain|Adding Terrain]]&lt;br /&gt;
&lt;br /&gt;
==Project Homepage / Source code==&lt;br /&gt;
The project homepage and Source code repository can be found at: https://github.com/peterix/stonesense&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
* Stonesense was written by Jonask, peterix, kaypy and Japa.&lt;br /&gt;
* Lead graphic development was done by Solifuge.&lt;br /&gt;
* Dfhack library was written by peterix.&lt;br /&gt;
* Additional Graphics and code were contributed by many many people, including (in alphabetical order):&lt;br /&gt;
* 7¢ Nickel, BatCountry, Belal, DeKaFu, Dante, Deon, dyze, Errol, fifth angel, frumpton, IDreamOfGiniCoeff, Impaler, Japa, jarathor, Jiri Petru, Lord Nightmare, McMe, Mike Mayday, Nexii Malthus, peterix, Seuss, soup, Talvara, winner, Xandrin.&lt;br /&gt;
(This list is not vigorously updated)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilities]][[Category:Stonesense]]&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.34:Water&amp;diff=178038</id>
		<title>v0.34:Water</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.34:Water&amp;diff=178038"/>
		<updated>2012-10-05T02:03:09Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: /* Getting rid of unwanted water */ Reorganized the comments on dumping water to underground lakes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{av}}&lt;br /&gt;
{{Quality|Exceptional|19:08, 6 July 2010 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
'''Water''' is a fluid found all over the world. It [[flow|flows]] from mountain springs, forming the world's [[ocean]]s, [[lake]]s, [[river]]s, and [[brook]]s. Water falls as [[rain]] and [[snow]], and freezes into [[ice]]. Water is home to a variety of [[creature|aquatic creatures]]. Many creatures can [[Swimmer|swim]] in deep water. Air-breathing creatures that are submerged in water can [[Swimmer#Drowning|drown]] in it. Water comes in two varieties: '''freshwater''', which makes up almost all inland water, and '''saltwater''', which fills the seas.  In this version, some brooks and murky pools can be saltwater even if the fortress site is partially mountainous.  It is not known if this is a bug.  To tell the difference, attempt to set up a drinking zone including some of the water in question.  If there are zero tiles of water source available, the water is saltwater.&lt;br /&gt;
&lt;br /&gt;
Mud is a [[contaminant]] which is created any time water covers an area. Any tiles that contain mud may be used for [[Agriculture|farming]].&lt;br /&gt;
&lt;br /&gt;
Water can be displayed in two ways, depending on the [[Technical tricks#The look of the game|settings]] in d_init.txt. By default it is displayed with the symbols {{Tile|≈|1:7:1}} and {{Tile|~|1:7:1}}, sometimes colored different blues, and white, showing ripples, and flow. Setting &amp;lt;nowiki&amp;gt;[SHOW_FLOW_AMOUNTS:YES]&amp;lt;/nowiki&amp;gt; in d_init.txt will cause water to display using a depth indicator of {{Tile|1|1:0:1}} through {{Tile|7|1:0:1}} instead. Water can also take on other colors indicating [[contaminant|contaminants]] such as '''blood''', '''ichor''', or '''goo'''.&lt;br /&gt;
&lt;br /&gt;
Dark-colored water symbols indicate the water is one [[Z-level]] below the camera level. Water has 7 depth levels per tile, with 1 being a shallow puddle, and 7 filling the tile completely. [[Dwarf|Dwarves]] can safely walk through water up to a depth of 3 - at depth 4 or higher, a dwarf will cancel jobs due to &amp;quot;Dangerous terrain&amp;quot; and begin to gain [[swimming]] experience. At depth 7, any dwarf that does not have sufficient Swimming skill will drown.&lt;br /&gt;
&lt;br /&gt;
Interestingly, water can slow falls with deep enough water and short enough falls. If the water is deep enough relative to the height of the fall, dwarves can be less injured or even completely uninjured (from a 4 level drop to a 3 level deep pool, for example)&lt;br /&gt;
&lt;br /&gt;
== Processes ==&lt;br /&gt;
===Evaporation===&lt;br /&gt;
Normally evaporation occurs when water or [[magma]] is at a depth of 1/7. Water or magma at 1/7 depth will even evaporate if it is on top of 7/7 depth water as shown in the example below. &lt;br /&gt;
{| style=&amp;quot;border-spacing: 0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|{{000}}&lt;br /&gt;
|{{000}}&lt;br /&gt;
|{{000}}&lt;br /&gt;
|{{000}}&lt;br /&gt;
|{{000}}&lt;br /&gt;
|-&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|{{RT0|1|#00F}}&lt;br /&gt;
|{{RT0|1|#00F}}&lt;br /&gt;
|{{RT0|1|#00F}}&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|-&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|{{RT0|7|#00F}}&lt;br /&gt;
|{{RT0|7|#00F}}&lt;br /&gt;
|{{RT0|7|#00F}}&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|-&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|{{CCC}}&lt;br /&gt;
|}&lt;br /&gt;
At high temperatures (usually found in Scorching climates) water can evaporate at greater depths, even 7/7. This is generally accompanied by the [[grass]] drying out and turning yellow.&lt;br /&gt;
&lt;br /&gt;
=== Freezing and thawing ===&lt;br /&gt;
Many environments get cold enough for water to freeze in winter. When this happens, any water that is exposed above ground will [[ice|freeze into ice]]. However, water a single tile away that is in an underground tunnel will not freeze. When ice walls thaw, they always leave a 7/7 water tile regardless of how much water may have been present when the ice formed.&lt;br /&gt;
&lt;br /&gt;
When outdoor water freezes or thaws it does so instantly.  Any dwarf [[swimming]] in water when it freezes will die, and any dwarf standing on a frozen pond will fall into it when it thaws, most probably leading to [[swimmer|drowning]].&lt;br /&gt;
&lt;br /&gt;
Mining ice can produce chunks of ice.  Taking these chunks into a stone layer will cause it eventually melt, turning it into a &amp;quot;water&amp;quot; item (much like those hauled in [[bucket]]s) which can't be used for anything. {{Bug|360}}&lt;br /&gt;
&lt;br /&gt;
[[Glacier#Cave-in_some ice_|Caving in an ice wall]] into a stone layer will cause it to instantly melt into water (provided it does not become exposed to the outdoors), which can be used to get water near the surface in a [[glacier]] biome without having to use a [[pump]] stack to pump water up from a [[cavern]] pool.&lt;br /&gt;
&lt;br /&gt;
If you constructed a [[well]] or a [[Grate|floor grate]] right over top of water and it freezes, the item will be deconstructed to its original parts, but some may fall into the water.&lt;br /&gt;
&lt;br /&gt;
==== Freezing point ====&lt;br /&gt;
The freezing point of water, {{ct|10000}}, is an important, if not the most important, [[temperature]] in Dwarf Fortress. Below this point, water freezes into ice, and above this point ice will melt into water. A [[biome]] that never dips below this temperature will make obtaining ice next to impossible, and a biome that never rises above this temperature will require underground storage, [[magma]], or an alternative heating method to obtain liquid water.&lt;br /&gt;
&lt;br /&gt;
Although it is most commonly known as the freezing point of water, {{ct|10000}} is also the freezing points of standard [[blood]], ichor, goo, slime, pus, [[milk]], egg white, and egg yolk. [[Nether-cap]]s are naturally constantly at this temperature, but will cause neither water to freeze or ice to melt. The temperature also acts as the condensation point of [[cave floater]] gas, at which it becomes cave floater juice. As a result of these dependencies, many [[creature]]s will die if they cannot keep their internal body temperature above the freezing point of water.&lt;br /&gt;
&lt;br /&gt;
Below this point, many machine components will not work, instead displaying &amp;quot;Frozen here&amp;quot;. This includes [[screw pump]]s, [[windmill]]s, and [[minecart]] rollers. In colder environments, these machines must either be kept indoors or heated with nearby [[fire]] or [[magma]].&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
===Depth===&lt;br /&gt;
Water can have a depth between 0 and 7.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Depth&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| No water present.&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Water may evaporate.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Dangerous terrain. Movement trains [[swimming]].&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Risk of drowning. Can have water on floorless tile above.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sourced water===&lt;br /&gt;
Water that comes from [[river]]s, [[brook]]s, [[ocean]]s, [[aquifer]]s or springs is considered to be '''sourced water'''. Any sourced water is an endless supply of water that can never run dry, although it can freeze for part or all of the year in colder biomes. Murky pools, although not 'sourced water' as described here, also slowly generate water during [[rain]] storms. This can make it possible for a murky pool to replenish itself even when it has been completely drained.&lt;br /&gt;
&lt;br /&gt;
When using sourced water you should strongly consider installing [[floodgate]]s and be aware of how [[pressure]] works or you could easily end up [[flood]]ing your fortress and having a lot more [[fun]] than anticipated.&lt;br /&gt;
&lt;br /&gt;
==Flow==&lt;br /&gt;
Water and [[magma]] are both fluids which are constantly trying to '''[[flow]]''' into adjacent tiles until they have filled all available space or until they run out of fluid. Fluids technically move in 9 directions: down, and to the sides. Fluids cannot move diagonally up or down. Fluids at a depth of 1/7 no longer attempt to move unless they can move down. Fluids under [[pressure]] can appear to travel upward until the pressure equalizes, though in reality they are moving downward and/or sideways relative to their source.&lt;br /&gt;
&lt;br /&gt;
If the flow is strong enough, it can move objects such as dwarves, pets, stones, weapons or corpses. &lt;br /&gt;
&lt;br /&gt;
Fluids in Dwarf Fortress act like a fairly thick, viscous material. This makes it possible to do highly implausible things like [[pump]] out a dry hole in the middle of a [[river]] or [[ocean]].&lt;br /&gt;
&lt;br /&gt;
== Contamination ==&lt;br /&gt;
Water can be contaminated in different methods, both natural and artificial. This contamination can have a negative effect on the water's quality, and can even harm dwarves that ingest it.&lt;br /&gt;
&lt;br /&gt;
===Salt water===&lt;br /&gt;
Dwarves can not use salt water directly; while healthy dwarves will usually prefer to drink [[booze]], wounded dwarves can only be given water to drink.&lt;br /&gt;
&lt;br /&gt;
To check to see if water is salty, use the {{k|i}} menu to see if the game shows the pond/pool as a water source. If the &amp;quot;water source (x)&amp;quot; is (0), then the source is salty. If not, then your dwarves will drink it.&lt;br /&gt;
&lt;br /&gt;
A [[screw pump]] can be used to desalinate water.&lt;br /&gt;
&lt;br /&gt;
Dwarves will drink water from a well over salt water, give it to sick dwarves and use it to clean wounds. You cannot designate the well as a water source (not that this is necessary to begin with), but the dwarves will still use it.{{verify}}&lt;br /&gt;
&lt;br /&gt;
=== Stagnant water ===&lt;br /&gt;
&lt;br /&gt;
Water taken from a murky pool or wetlands biome will be stagnant, just as water taken from near the ocean will be salty.  Dwarves get an unhappy [[thought]] if they have to drink stagnant water, and a [[doctor]] cleaning a [[wound]] with stagnant water will have an increased risk of [[Health care#Infection|infection]].&lt;br /&gt;
&lt;br /&gt;
Similar to salt water, [[pump]]ing stagnant water will make it clean. Also, if clean water touches stagnant water, it will kill it.&lt;br /&gt;
&lt;br /&gt;
The game will describe stagnant water as stagnant if it was in a [[bucket]] or [[flask]]/[[waterskin]], and looking at standing or flowing water with {{K|k}} will indicate whether or not it is stagnant.&lt;br /&gt;
&lt;br /&gt;
=== Water laced with mud ===&lt;br /&gt;
If a water source is only one z-level deep and its floor is covered by &amp;quot;a pile of mud&amp;quot; (like most [[cavern|underground pools]]), then any water taken from it will be &amp;quot;water laced with mud&amp;quot;.  Drinking water laced with mud will give your dwarves an unhappy thought.  It might also cause [[Health care#Infection|infection]] if used to clean a [[wound]].&lt;br /&gt;
&lt;br /&gt;
Unlike stagnant water, merely moving the water with flow or gravity will take care of the problem, since it only occurs if the water source tile contains &amp;quot;a pile of mud&amp;quot;, and water coming into contact with a clean floor only creates &amp;quot;a dusting of mud&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Contaminants===&lt;br /&gt;
Contaminants that get into water currently can do very strange things. A pool of blood that gets covered by water will be pushed out of the water as the water flows creating more pools of blood at the edge of the water. Overflowing a large reservoir that contains contaminants of blood will generate a large amount of blood very quickly. This behavior is thought to be a bug.&lt;br /&gt;
&lt;br /&gt;
==Getting rid of unwanted water==&lt;br /&gt;
Water will flow off the edge of the map, endlessly, which is one way to get rid of large amounts of water (evaporation works better with small amounts). Underground, there are at least two ways to accomplish this. One is to channel your excess water into a dry cavern that is open to the map edge, as the water will flow out (depending on slopes, original water level and such). Be careful if you dump the water into an underground lake, as such lakes have some sort of equilibrium built into them, and your excess water may cause them to flood. The other, probably easier method, is to mine to the map edge (since you cannot mine the map edge itself, just up to it), then smooth the edge and then carve [[fortification]]s into it. Water will flow through the fortifications and off the edge of the map. Make sure your exit flow is equal to or, for safety, greater than your input.&lt;br /&gt;
&lt;br /&gt;
Draining lakes and oceans from underneath can be a finicky task, but there's a bit of dwarven magic for it:  build a retractable bridge on the level beneath the sea bottom, with ramps directly underneath it.  Link this to a lever to control the flow as you desire.  Now evacuate the dwarves and wall off the area above the bridge.  Then, with the bridge in place, designate ramps around the bridge leading up - breaking through to the sea bottom.  Now how can the dwarves dig these squares out?  Yep, from beneath the bridge.  In this way they get the water flow started without ever getting their little feet wet.  This is a great way to set up channels one square in from the map edge near a water source, so that you can properly wall off the baddies from getting into the fort.&lt;br /&gt;
&lt;br /&gt;
{{gamedata|{{raw|DF2012:hardcoded_materials.txt|MATERIAL|WATER}}}}&lt;br /&gt;
&lt;br /&gt;
{{Category|Physics}}&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99467</id>
		<title>v0.31:Stories/Bronzemurder</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99467"/>
		<updated>2010-04-26T14:52:29Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Bronzemurder''' is both a fortress and an epic tale of [[dwarf|dwarven]] tenacity, gloriously illustrated by [http://www.timdenee.com Tim Denee]. It took place in the years of {{version|0.31.03}}.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
[[Image:Bm_book.jpg|thumb|right|The Bronzemurder booklet, printed and bound.]]&lt;br /&gt;
* [http://www.flickr.com/photos/denee/4536607036/ Bronzemurder on Tim's Flikr photostream]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder.pdf Basic PDF version]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder-up.pdf PDF imposed for two-up printing and binding on letter sized paper]&lt;br /&gt;
* [http://timdenee.livejournal.com/62778.html Tim's belated Bronzemurder blog post]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
==The Story==&lt;br /&gt;
&lt;br /&gt;
===Image Gallery===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Bronzemurder0.png|The thriving fortress Bronzemurder. Population: 66 and counting.&lt;br /&gt;
Image:Bronzemurder1.png|23 levels below the surface, a legendary fell beast rests on the first pump in a mighty pump stack.&lt;br /&gt;
Image:Bronzemurder2.png|Oggez Rashas&lt;br /&gt;
Image:Bronzemurder3.png|Send the militia, Bronzemurder's bravest sons&lt;br /&gt;
Image:Bronzemurder4.png|S.N.A.F.U&lt;br /&gt;
Image:Bronzemurder5.png|Five dwarves are alive&lt;br /&gt;
Image:Bronzemurder6.png|Oggez Rashas waits&lt;br /&gt;
Image:Bronzemurder7.png|One would think the soft humans would get massacred&lt;br /&gt;
Image:Bronzemurder8.png|Bronzemurder is alive&lt;br /&gt;
Image:Bronzemurder9.png|Smells like Dwarf Fortress&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Full Sized Images===&lt;br /&gt;
[[Image:Bronzemurder0.png|The thriving fortress Bronzemurder. Population: 66 and counting. (Above ground, lies the military barracks and windmills. Below one finds the entrance and workshops. Beneath these, stockpiles, and lower still the sleeping and dining quarters. Go down again and a trap lined tunnel connects the fortress to column of pumps which leads to the cavernous underground lake.)]]&lt;br /&gt;
[[Image:Bronzemurder1.png]]&lt;br /&gt;
[[Image:Bronzemurder2.png]]&lt;br /&gt;
[[Image:Bronzemurder3.png]]&lt;br /&gt;
[[Image:Bronzemurder4.png]]&lt;br /&gt;
[[Image:Bronzemurder5.png]]&lt;br /&gt;
[[Image:Bronzemurder6.png]]&lt;br /&gt;
[[Image:Bronzemurder7.png]]&lt;br /&gt;
[[Image:Bronzemurder8.png]]&lt;br /&gt;
[[Image:Bronzemurder9.png]]&lt;br /&gt;
&lt;br /&gt;
===Non-Illustrated Version===&lt;br /&gt;
'''Bronzemurder: a tale of Dwarf Fortress by Tim Denee'''&lt;br /&gt;
&lt;br /&gt;
The thriving fortress Bronzemurder. Population: 66 and counting. ''(Above ground, lies the military barracks and windmills. Below one finds the entrance and workshops. Beneath these, stockpiles, and lower still the sleeping and dining quarters. Go down again and a trap lined tunnel connects the fortress to column of pumps which leads to a cavernous underground lake.)''&lt;br /&gt;
----&lt;br /&gt;
'''23 levels below the surface''' A legendary fell beast rests on the first pump in a mighty pump stack, a grand project that has taken years of concerted dwarven effort in order to bring running water to the fort.&lt;br /&gt;
&lt;br /&gt;
All 23 pumps are in place, and the dwarves have finally figured out how to bring power to the pumps from the windmills above ground. The only problem is one small engineering error; the first pump, the lowest one, needs to be pumped manually.&lt;br /&gt;
&lt;br /&gt;
A dwarf has to go down there and operate it.&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Oggez Rashas''' &amp;quot;An enormous iguana with external ribs. It has thin wings of stretched skin and it appears to be emaciated. Beware its poisonous sting!&amp;quot;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
If an ordinary dwarf wakes the creature, he will run away when attacked and lead the beast right back to the heart of Bronzemurder.&lt;br /&gt;
&lt;br /&gt;
The militia, however... Maybe they will kill it, solving the problem. Even if they fail and die, at least they won't lead Rashas back.&lt;br /&gt;
&lt;br /&gt;
'''YES, SEND THE MILITIA. Bronzemurder's bravest sons.'''&lt;br /&gt;
----&lt;br /&gt;
'''S.N.A.F.U'''&lt;br /&gt;
&lt;br /&gt;
# Oggez Rashas destroys the militia in a matter of seconds. One war dog survives and backs up the stairs.&lt;br /&gt;
# Oggez Rashas chases the dog up the stairs, where a mechanic is installing several traps.&lt;br /&gt;
# The dog is slaughtered by the beast, and the mechanic runs all the way up the stairs to the main fortress.&lt;br /&gt;
# Oggez Rashas follows, now chasing a crowd of masons, architects, and mechanics who had been putting the finishing touches on various levels of the pump stack.&lt;br /&gt;
# The fell beasts [sic] blows straight past the trap-lined corridor.&lt;br /&gt;
# Chaos erupts in the dining room as the creature emerges from the stairs. Already a third of the fortress is dead.&lt;br /&gt;
# By coincidence, a party of unlucky migrants arrive. They are immediately drafted into a ramshackle militia.&lt;br /&gt;
# The ramshackle militia confront the beast as it storms the stockpiles. The militia is slaughtered in seconds.&lt;br /&gt;
# Chaos erupts in the stockpiles as Oggez Rashas chases and kills dwarves at random.&lt;br /&gt;
# Refugees cluster in the barracks outside. Masons are ordered to pave over the entrance stairs, to block the creature inside. Two of the three stairwells are blocked when it bursts out of the third, killing the masons.&lt;br /&gt;
# The last hope is that the field of traps around the main entrance will kill the creature when it makes it that far.&lt;br /&gt;
# Driven mad with trauma, dwarves in the barracks begin rioting and attacking each other. The militia starts arresting and beating dwarves. Oggez Rashas blows past the traps and puts the riot to rest by killing everything.&lt;br /&gt;
----&lt;br /&gt;
Although there are around seventy casualties, all is not lost.&lt;br /&gt;
While the beast finishes off the livestock above ground...&lt;br /&gt;
&lt;br /&gt;
'''FIVE DWARVES ARE ALIVE, GATHERED IN THE DINING HALL'''&lt;br /&gt;
&lt;br /&gt;
* One brewer, huddled in the corner crying.&lt;br /&gt;
* One jeweler, building a wall to block off the sleeping quarters. It is the only way to keep the beast away from the survivors. He walls them in and himself out. Does he think he is saving them or killing them? We will never know.&lt;br /&gt;
* A carpenter, a cheese-maker, and a miller. Walled into the bedroom wing of the fortress, cut off completely; from the stockpiles, from the surface, from everything.&lt;br /&gt;
----&lt;br /&gt;
'''The two dwarves outside the wall are struck down. With nothing still living in sight, Oggez Rashas rests at the entrance to the fortress.'''&lt;br /&gt;
&lt;br /&gt;
The three surviving dwarves set about immediate tasks.&lt;br /&gt;
&lt;br /&gt;
To prevent infection, corpses and body parts from the massacre are dragged into the large, ornate rooms previously occupied by nobles. Now vacant, these rooms are the only sizable ones left that the survivors can access. All the viscera is piled inside and the doors are barred.&lt;br /&gt;
&lt;br /&gt;
A donkey and a dog were walled in with the dwarves. They are the only food source.&lt;br /&gt;
&lt;br /&gt;
The dwarves can access the stairwell to the pumpstack, so they can get water.&lt;br /&gt;
&lt;br /&gt;
They're not happy, they have no plans and are certainly doomed, but they're alive.&lt;br /&gt;
&lt;br /&gt;
'''OGGEZ RASHAS WAITS'''&lt;br /&gt;
----&lt;br /&gt;
After several months, after all hopes has been lost, a human trade caravan arrives. One would think the soft humans would get massacred.&lt;br /&gt;
&lt;br /&gt;
As it turns out, Oggez Rashas has been severely wounded during his attack on the dwarf fortress. The three human caravan guards are experienced warriors. In battle, one human has both legs broken. One loses and eye and suffers a punctured lung.&lt;br /&gt;
&lt;br /&gt;
But finally, finally, they kill the beast.&lt;br /&gt;
----&lt;br /&gt;
'''HEARING THE CREATURE'S DEATHCRY, THE SURVIVORS BREAK DOWN THEIR BARRACADE'''&lt;br /&gt;
&lt;br /&gt;
One refuses to leave his bedroom and before long dies of thirst. A prolonged and painful suicide.&lt;br /&gt;
&lt;br /&gt;
But the other two carry on. Though it takes them three lonely years, they drag all the corpses outside into a pile, and clean all the blood out of the fortress. Three caravans come, and each time jewel-encrusted stonecrafts are wheeled out from the old Bronzemurder stockpiles and loaded on.&lt;br /&gt;
&lt;br /&gt;
The two dwarves don't need the trade, but they are sending a message to the outside world.&lt;br /&gt;
&lt;br /&gt;
'''BRONZEMURDER IS ALIVE'''&lt;br /&gt;
----&lt;br /&gt;
''Eventually, migrants do arrive. A lot of them.''&lt;br /&gt;
&lt;br /&gt;
The migrants find a mere two dwarves living in Bronzemurder.&lt;br /&gt;
Two tough-as-nails, poorly-clothed, deeply traumatized dwarves who reek of bad hygiene, rotting corpses, and booze.&lt;br /&gt;
&lt;br /&gt;
'''SMELLS LIKE DWARF FORTRESS'''&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99461</id>
		<title>v0.31:Stories/Bronzemurder</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99461"/>
		<updated>2010-04-26T14:50:42Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Added gallery quote captions and non-illustrated version.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Bronzemurder''' is both a fortress and an epic tale of [[dwarf|dwarven]] tenacity, gloriously illustrated by [http://www.timdenee.com Tim Denee]. It took place in the years of {{version|0.31.03}}.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
[[Image:Bm_book.jpg|thumb|right|The Bronzemurder booklet, printed and bound.]]&lt;br /&gt;
* [http://www.flickr.com/photos/denee/4536607036/ Bronzemurder on Tim's Flikr photostream]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder.pdf Basic PDF version]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder-up.pdf PDF imposed for two-up printing and binding on letter sized paper]&lt;br /&gt;
* [http://timdenee.livejournal.com/62778.html Tim's belated Bronzemurder blog post]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
==The Story==&lt;br /&gt;
&lt;br /&gt;
===Image Gallery===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Bronzemurder0.png|The thriving fortress Bronzemurder. Population: 66 and counting.&lt;br /&gt;
Image:Bronzemurder1.png|23 levels below the surface, a legendary fell beast rests on the first pump in a mighty pump stack.&lt;br /&gt;
Image:Bronzemurder2.png|Oggez Rashas&lt;br /&gt;
Image:Bronzemurder3.png|Send the militia, Bronzemurder's bravest sons&lt;br /&gt;
Image:Bronzemurder4.png|S.N.A.F.U&lt;br /&gt;
Image:Bronzemurder5.png|Five dwarves are alive&lt;br /&gt;
Image:Bronzemurder6.png|Oggez Rashas waits&lt;br /&gt;
Image:Bronzemurder7.png|One would think the soft humans would get massacred&lt;br /&gt;
Image:Bronzemurder8.png|Bronzemurder is alive&lt;br /&gt;
Image:Bronzemurder9.png|Smells like Dwarf Fortress&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Full Sized Images===&lt;br /&gt;
[[Image:Bronzemurder0.png|The thriving fortress Bronzemurder. Population: 66 and counting. (Above ground, lies the military barracks and windmills. Below one finds the entrance and workshops. Beneath these, stockpiles, and lower still the sleeping and dining quarters. Go down again and a trap lined tunnel connects the fortress to column of pumps which leads to the cavernous underground lake.)]]&lt;br /&gt;
[[Image:Bronzemurder1.png]]&lt;br /&gt;
[[Image:Bronzemurder2.png]]&lt;br /&gt;
[[Image:Bronzemurder3.png]]&lt;br /&gt;
[[Image:Bronzemurder4.png]]&lt;br /&gt;
[[Image:Bronzemurder5.png]]&lt;br /&gt;
[[Image:Bronzemurder6.png]]&lt;br /&gt;
[[Image:Bronzemurder7.png]]&lt;br /&gt;
[[Image:Bronzemurder8.png]]&lt;br /&gt;
[[Image:Bronzemurder9.png]]&lt;br /&gt;
&lt;br /&gt;
===Non-Illustrated Version===&lt;br /&gt;
'''Bronzemurder: a tale of Dwarf Fortress by Tim Denee'''&lt;br /&gt;
&lt;br /&gt;
The thriving fortress Bronzemurder. Population: 66 and counting. ''(Above ground, lies the military barracks and windmills. Below one finds the entrance and workshops. Beneath these, stockpiles, and lower still the sleeping and dining quarters. Go down again and a trap lined tunnel connects the fortress to column of pumps which leads to a cavernous underground lake.)''&lt;br /&gt;
----&lt;br /&gt;
'''23 levels below the surface''' A legendary fell beast rests on the first pump in a mighty pump stack, a grand project that has taken years of concerted dwarven effort in order to bring running water to the fort.&lt;br /&gt;
&lt;br /&gt;
All 23 pumps are in place, and the dwarves have finally figured out how to bring power to the pumps from the windmills above ground. The only problem is one small engineering error; the first pump, the lowest one, needs to be pumped manually.&lt;br /&gt;
&lt;br /&gt;
A dwarf has to go down there and operate it.&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Oggez Rashas''' &amp;quot;An enormous iguana with external ribs. It has thin wings of stretched skin and it appears to be emaciated. Beware its poisonous sting!&amp;quot;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
If an ordinary dwarf wakes the creature, he will run away when attacked and lead the beast right back to the heart of Bronzemurder.&lt;br /&gt;
&lt;br /&gt;
The militia, however... Maybe they will kill it, solving the problem. Even if they fail and die, at least they won't lead Rashas back.&lt;br /&gt;
&lt;br /&gt;
'''YES, SEND THE MILITIA. Bronemurder's bravest sons.'''&lt;br /&gt;
----&lt;br /&gt;
'''S.N.A.F.U'''&lt;br /&gt;
&lt;br /&gt;
# Oggez Rashas destroys the militia in a matter of seconds. One war dog survives and backs up the stairs.&lt;br /&gt;
# Oggez Rashas chases the dog up the stairs, where a mechanic is installing several traps.&lt;br /&gt;
# The dog is slaughtered by the beast, and the mechanic runs all the way up the stairs to the main fortress.&lt;br /&gt;
# Oggez Rashas follows, now chasing a crowd of masons, architects, and mechanics who had been putting the finishing touches on various levels of the pump stack.&lt;br /&gt;
# The fell beasts [sic] blows straight past the trap-lined corridor.&lt;br /&gt;
# Chaos erupts in the dining room as the creature emerges from the stairs. Already a third of the fortress is dead.&lt;br /&gt;
# By coincidence, a party of unlucky migrants arrive. They are immediately drafted into a ramshackle militia.&lt;br /&gt;
# The ramshackle militia confront the beast as it storms the stockpiles. The militia is slaughtered in seconds.&lt;br /&gt;
# Chaos erupts in the stockpiles as Oggez Rashas chases and kills dwarves at random.&lt;br /&gt;
# Refugees cluster in the barracks outside. Masons are ordered to pave over the entrance stairs, to block the creature inside. Two of the three stairwells are blocked when it bursts out of the third, killing the masons.&lt;br /&gt;
# The last hope is that the field of traps around the main entrance will kill the creature when it makes it that far.&lt;br /&gt;
# Driven mad with trauma, dwarves in the barracks begin rioting and attacking each other. The militia starts arresting and beating dwarves. Oggez Rashas blows past the traps and puts the riot to rest by killing everything.&lt;br /&gt;
----&lt;br /&gt;
Although there are around seventy casualties, all is not lost.&lt;br /&gt;
While the beast finishes off the livestock above ground...&lt;br /&gt;
&lt;br /&gt;
'''FIVE DWARVES ARE ALIVE, GATHERED IN THE DINING HALL'''&lt;br /&gt;
&lt;br /&gt;
* One brewer, huddled in the corner crying.&lt;br /&gt;
* One jeweler, building a wall to block off the sleeping quarters. It is the only way to keep the beast away from the survivors. He walls them in and himself out. Does he think he is saving them or killing them? We will never know.&lt;br /&gt;
* A carpenter, a cheese-maker, and a miller. Walled into the bedroom wing of the fortress, cut off completely; from the stockpiles, from the surface, from everything.&lt;br /&gt;
----&lt;br /&gt;
'''The two dwarves outside the wall are struck down. With nothing still living in sight, Oggez Rashas rests at the entrance to the fortress.'''&lt;br /&gt;
&lt;br /&gt;
The three surviving dwarves set about immediate tasks.&lt;br /&gt;
&lt;br /&gt;
To prevent infection, corpses and body parts from the massacre are dragged into the large, ornate rooms previously occupied by nobles. Now vacant, these rooms are the only sizable ones left that the survivors can access. All the viscera is piled inside and the doors are barred.&lt;br /&gt;
&lt;br /&gt;
A donkey and a dog were walled in with the dwarves. They are the only food source.&lt;br /&gt;
&lt;br /&gt;
The dwarves can access the stairwell to the pumpstack, so they can get water.&lt;br /&gt;
&lt;br /&gt;
They're not happy, they have no plans and are certainly doomed, but they're alive.&lt;br /&gt;
&lt;br /&gt;
'''OGGEZ RASHAS WAITS'''&lt;br /&gt;
----&lt;br /&gt;
After several months, after all hopes has been lost, a human trade caravan arrives. One would think the soft humans would get massacred.&lt;br /&gt;
&lt;br /&gt;
As it turns out, Oggez Rashas has been severely wounded during his attack on the dwarf fortress. The three human caravan guards are experienced warriors. In battle, one human has both legs broken. One loses and eye and suffers a punctured lung.&lt;br /&gt;
&lt;br /&gt;
But finally, finally, they kill the beast.&lt;br /&gt;
----&lt;br /&gt;
'''HEARING THE CREATURE'S DEATHCRY, THE SURVIVORS BREAK DOWN THEIR BARRACADE'''&lt;br /&gt;
&lt;br /&gt;
One refuses to leave his bedroom and before long dies of thirst. A prolonged and painful suicide.&lt;br /&gt;
&lt;br /&gt;
But the other two carry on. Though it takes them three lonely years, they drag all the corpses outside into a pile, and clean all the blood out of the fortress. Three caravans come, and each time jewel-encrusted stonecrafts are wheeled out from the old Bronzemurder stockpiles and loaded on.&lt;br /&gt;
&lt;br /&gt;
The two dwarves don't need the trade, but they are sending a message to the outside world.&lt;br /&gt;
&lt;br /&gt;
'''BRONZEMURDER IS ALIVE'''&lt;br /&gt;
----&lt;br /&gt;
''Eventually, migrants do arrive. A lot of them.''&lt;br /&gt;
&lt;br /&gt;
The migrants find a mere two dwarves living in Bronzemurder.&lt;br /&gt;
Two tough-as-nails, poorly-clothed, deeply traumatized dwarves who reek of bad hygiene, rotting corpses, and booze.&lt;br /&gt;
&lt;br /&gt;
'''SMELLS LIKE DWARF FORTRESS'''&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Template:Clear&amp;diff=99451</id>
		<title>Template:Clear</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Template:Clear&amp;diff=99451"/>
		<updated>2010-04-26T13:51:11Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template literally consists of &amp;lt;tt&amp;gt;&amp;amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{clear}}&amp;lt;/nowiki&amp;gt; Makes the following content start below all previous content in all columns. Often used to stop text from flowing next to unrelated images.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Template:Clear&amp;diff=99450</id>
		<title>Template:Clear</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Template:Clear&amp;diff=99450"/>
		<updated>2010-04-26T13:46:09Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Created page with '&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=File:Bm_book.jpg&amp;diff=99448</id>
		<title>File:Bm book.jpg</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=File:Bm_book.jpg&amp;diff=99448"/>
		<updated>2010-04-26T13:29:38Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Photo of the Bronzemurder booklet printed and bound.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Photo of the Bronzemurder booklet printed and bound.&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99439</id>
		<title>v0.31:Stories/Bronzemurder</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99439"/>
		<updated>2010-04-26T13:00:30Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Bronzemurder''' is both a fortress and an epic tale of [[dwarf|dwarven]] tenacity, gloriously illustrated by [http://www.timdenee.com Tim Denee]. It took place in the years of {{version|0.31.03}}.&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/denee/4536607036/ Bronzemurder on Tim's Flikr photostream]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder.pdf Basic PDF version]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder-up.pdf PDF imposed for two-up printing and binding on letter sized paper]&lt;br /&gt;
* [http://timdenee.livejournal.com/62778.html Tim's belated Bronzemurder blog post]&lt;br /&gt;
&lt;br /&gt;
==The tale==&lt;br /&gt;
[[File:Bronzemurder0.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder3.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder4.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder5.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder6.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder7.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder8.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder9.png]]&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99438</id>
		<title>v0.31:Stories/Bronzemurder</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99438"/>
		<updated>2010-04-26T13:00:08Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Bronzemurder''' is both a fortress and an epic tale of [[dwarf|dwarven]] tenacity, gloriously illustrated by [http://www.timdenee.com Tim Denee]. It took place in the years of {{version|0.31.03}}.&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/denee/4536607036/ Bronzemurder on Tim's Flikr photostream]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder.pdf Basic PDF version]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder-up.pdf PDF imposed for two-up printing and binding on letter sized paper]&lt;br /&gt;
* [http://timdenee.livejournal.com/62778.html Tim's belated blog post]&lt;br /&gt;
&lt;br /&gt;
==The tale==&lt;br /&gt;
[[File:Bronzemurder0.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder3.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder4.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder5.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder6.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder7.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder8.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder9.png]]&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99437</id>
		<title>v0.31:Stories/Bronzemurder</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=v0.31:Stories/Bronzemurder&amp;diff=99437"/>
		<updated>2010-04-26T12:59:41Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Added attribution for the creator and links to alternate versions and resources.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Bronzemurder''' is both a fortress and an epic tale of [[dwarf|dwarven]] tenacity, gloriously illustrated by [http://www.timdenee.com Tim Denee]. It took place in the years of {{version|0.31.03}}.&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/denee/4536607036/ Tim's Flikr photostream]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder.pdf Basic PDF version]&lt;br /&gt;
* [http://www.eldritch.org/erskin/roleplaying/Bronzemurder-up.pdf PDF imposed for two-up printing and binding on letter sized paper]&lt;br /&gt;
* [http://timdenee.livejournal.com/62778.html Tim's belated blog post]&lt;br /&gt;
&lt;br /&gt;
==The tale==&lt;br /&gt;
[[File:Bronzemurder0.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder1.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder2.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder3.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder4.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder5.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder6.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder7.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder8.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Bronzemurder9.png]]&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Dwarf_Fortress_Wiki:Magmawiki_skin&amp;diff=99361</id>
		<title>Dwarf Fortress Wiki:Magmawiki skin</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Dwarf_Fortress_Wiki:Magmawiki_skin&amp;diff=99361"/>
		<updated>2010-04-26T01:45:59Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Made the &amp;quot;my preferences&amp;quot; text a link to the actual page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Magmawiki skin is an altered version of the monobook skin designed to run as a test-drive of the draft skin for the [[df:Magmawiki|Magmawiki project]]. You can try it by going to [[Special:Preferences|&amp;quot;my preferences&amp;quot;]] and selecting it under the skins tab. Please leave comments, suggestions, ideas, etc... on the [[df talk: Magmawiki skin|talk page]].&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42851</id>
		<title>Utility:Accent Removal</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42851"/>
		<updated>2009-04-10T01:22:09Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: /* frobnic8's Modified Python Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
[[Image:Rj-unitlist.png|thumb|right|Replacing accented letters with normal ones in the raws fixes this problem.]]&lt;br /&gt;
Some tile sets use the accented characters for additional graphical symbols. This can make racial language test difficult to read. You can remove the accented characters and symbols from the data files. This works on existing worlds and saved games.&lt;br /&gt;
&lt;br /&gt;
Since the structure of language files might change, it is safest if you remove the problem characters from the files yourself. Here are two methods to do just that. The first (Jackard's) only works on Windows, but is probably the easiest for novice users. The second (frobnic8's) will work anywhere Python does (i.e. just about anywhere), but requires using the command line a little.&lt;br /&gt;
&lt;br /&gt;
==[[User:Jackard|Jackard]]'s [http://www.inforapid.de/html/searchreplace.htm InfoRapid] Script== &lt;br /&gt;
Download [http://www.inforapid.de/html/searchreplace.htm Inforapid Search and Replace.]&lt;br /&gt;
&lt;br /&gt;
Save the list below to a text file.&lt;br /&gt;
&lt;br /&gt;
Find the following files in &amp;lt;code&amp;gt;DF\raw\objects&amp;lt;/code&amp;gt;:&lt;br /&gt;
*&amp;lt;code&amp;gt;language_DWARF.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;language_ELF.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;language_GOBLIN.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;language_HUMAN.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select them all, right-click and choose 'Search with InfoRapid' from the menu.&lt;br /&gt;
&lt;br /&gt;
Click the Replace tab that shows up in the lower half of the window.&lt;br /&gt;
&lt;br /&gt;
Select your text file from before in the Replace With field, make sure Replace is set to 'Whole Search Expression' and click Start.&lt;br /&gt;
&lt;br /&gt;
A prompt will appear asking for confirmation. Check the Replace All button and click Yes. When the program stops running you are done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;CaseSensitive&amp;gt;Yes&amp;lt;/CaseSensitive&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[User:Frobnic8|frobnic8]]'s Modified [http://www.python.org Python] Script==&lt;br /&gt;
If you have the programming language Python installed on your machine (or don't mind installing it) and aren't scared of a command prompt, here is an alternate method. Python comes pre-installed on Mac OS X and almost all distributions of Linux. (If you are using Windows, the command line instructions shown will need to be modified slightly.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure you have [http://www.python.org Python] installed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and paste (this modified version of) &amp;quot;The Unicode Hammer&amp;quot; with the name &amp;lt;code&amp;gt;unicode_hammer.py&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;raw/objects&amp;lt;/code&amp;gt; sub-directory of your Dwarf FOrtress directory. (The Unicode Hammer: Is that a name worthy of Dwarf Fortress, or what?)&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
latin1_to_ascii -- The UNICODE Hammer -- AKA &amp;quot;The Stupid American&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
something equivalent in 7-bit ASCII. This returns a plain ASCII string. &lt;br /&gt;
This function makes a best effort to convert Latin-1 characters into &lt;br /&gt;
ASCII equivalents. It does not just strip out the Latin1 characters.&lt;br /&gt;
All characters in the standard 7-bit ASCII range are preserved. &lt;br /&gt;
In the 8th bit range all the Latin-1 accented letters are converted to &lt;br /&gt;
unaccented equivalents. Most symbol characters are converted to &lt;br /&gt;
something meaningful. Anything not converted is deleted.&lt;br /&gt;
&lt;br /&gt;
Background:&lt;br /&gt;
&lt;br /&gt;
One of my clients gets address data from Europe, but most of their systems &lt;br /&gt;
cannot handle Latin-1 characters. With all due respect to the umlaut,&lt;br /&gt;
scharfes s, cedilla, and all the other fine accented characters of Europe, &lt;br /&gt;
all I needed to do was to prepare addresses for a shipping system.&lt;br /&gt;
After getting headaches trying to deal with this problem using Python's &lt;br /&gt;
built-in UNICODE support I gave up and decided to use some brute force.&lt;br /&gt;
This function converts all accented letters to their unaccented equivalents. &lt;br /&gt;
I realize this is dirty, but for my purposes the mail gets delivered.&lt;br /&gt;
&lt;br /&gt;
Noah Spurrier noah at noah.org&lt;br /&gt;
License free and public domain&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;This version has had its translation table abused to produce&lt;br /&gt;
better results for the language files of the game Dwarf Fortress by&lt;br /&gt;
frobnic8. The original translation table is commented out.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def latin1_to_ascii (unicrap):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
    something equivalent in 7-bit ASCII. It returns a plain ASCII string.&lt;br /&gt;
    This function makes a best effort to convert Latin-1 characters into&lt;br /&gt;
    ASCII equivalents. It does not just strip out the Latin-1 characters.&lt;br /&gt;
    All characters in the standard 7-bit ASCII range are preserved.&lt;br /&gt;
    In the 8th bit range all the Latin-1 accented letters are converted&lt;br /&gt;
    to unaccented equivalents. Most symbol characters are converted to&lt;br /&gt;
    something meaningful. Anything not converted is deleted.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    xlate={0xc0:'A', 0xc1:'A', 0xc2:'A', 0xc3:'A', 0xc4:'A', 0xc5:'A',&lt;br /&gt;
        0xc6:'Ae', 0xc7:'C',&lt;br /&gt;
        0xc8:'E', 0xc9:'E', 0xca:'E', 0xcb:'E',&lt;br /&gt;
        0xcc:'I', 0xcd:'I', 0xce:'I', 0xcf:'I',&lt;br /&gt;
        0xd0:'Th', 0xd1:'N',&lt;br /&gt;
        0xd2:'O', 0xd3:'O', 0xd4:'O', 0xd5:'O', 0xd6:'O', 0xd8:'O',&lt;br /&gt;
        0xd9:'U', 0xda:'U', 0xdb:'U', 0xdc:'U',&lt;br /&gt;
        0xdd:'Y', 0xde:'th', 0xdf:'ss',&lt;br /&gt;
        0xe0:'a', 0xe1:'a', 0xe2:'a', 0xe3:'a', 0xe4:'a', 0xe5:'a',&lt;br /&gt;
        0xe6:'ae', 0xe7:'c',&lt;br /&gt;
        0xe8:'e', 0xe9:'e', 0xea:'e', 0xeb:'e',&lt;br /&gt;
        0xec:'i', 0xed:'i', 0xee:'i', 0xef:'i',&lt;br /&gt;
        0xf0:'th', 0xf1:'n',&lt;br /&gt;
        0xf2:'o', 0xf3:'o', 0xf4:'o', 0xf5:'o', 0xf6:'o', 0xf8:'o',&lt;br /&gt;
        0xf9:'u', 0xfa:'u', 0xfb:'u', 0xfc:'u',&lt;br /&gt;
        0xfd:'y', 0xfe:'th', 0xff:'y',&lt;br /&gt;
        0xa1:'aa', 0xa2:'cz', 0xa3:'ii', 0xa4:'tz',&lt;br /&gt;
        0xa5:'yy', 0xa6:'|', 0xa7:'zz', 0xa8:'&amp;quot;',&lt;br /&gt;
        0xa9:'CC', 0xaa:'aa', 0xab:'&amp;lt;&amp;lt;', 0xac:'not',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'o',&lt;br /&gt;
        0xb1:'+/-', 0xb2:'^2', 0xb3:'^3', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'uu', 0xb6:'PP', 0xb7:'*', 0xb8:',,',&lt;br /&gt;
        0xb9:'^1', 0xba:'^o', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'1/4', 0xbd:'1/2', 0xbe:'3/4', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Orignals below, the above is hacked for Dwarf Fortress languages.&lt;br /&gt;
        0xa1:'!', 0xa2:'{cent}', 0xa3:'{pound}', 0xa4:'{currency}',&lt;br /&gt;
        0xa5:'{yen}', 0xa6:'|', 0xa7:'{section}', 0xa8:'{umlaut}',&lt;br /&gt;
        0xa9:'{C}', 0xaa:'{^a}', 0xab:'&amp;lt;&amp;lt;', 0xac:'{not}',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'{degrees}',&lt;br /&gt;
        0xb1:'{+/-}', 0xb2:'{^2}', 0xb3:'{^3}', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'{micro}', 0xb6:'{paragraph}', 0xb7:'*', 0xb8:'{cedilla}',&lt;br /&gt;
        0xb9:'{^1}', 0xba:'{^o}', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'{1/4}', 0xbd:'{1/2}', 0xbe:'{3/4}', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    r = ''&lt;br /&gt;
    for i in unicrap:&lt;br /&gt;
        if xlate.has_key(ord(i)):&lt;br /&gt;
            r += xlate[ord(i)]&lt;br /&gt;
        elif ord(i) &amp;gt;= 0x80:&lt;br /&gt;
            pass&lt;br /&gt;
        else:&lt;br /&gt;
            r += str(i)&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    import sys&lt;br /&gt;
    input = sys.stdin&lt;br /&gt;
    output = sys.stdout&lt;br /&gt;
    if len(sys.argv) == 1 or (len(sys.argv) == 2 and \&lt;br /&gt;
       sys.argv[1] in ('-h', '-H', '-?', '--help', '/?', '/H', '/h')):&lt;br /&gt;
        print 'unicode_hammer.py [infile [outfile]]\n'&lt;br /&gt;
        s = unicode('','latin-1')&lt;br /&gt;
        for c in range(32, 256):&lt;br /&gt;
            if c != 0x7f:&lt;br /&gt;
                s = s + unicode(chr(c), 'latin-1')&lt;br /&gt;
            plain_ascii = latin1_to_ascii(s)&lt;br /&gt;
&lt;br /&gt;
        print 'INPUT type:', type(s)&lt;br /&gt;
        print 'INPUT:'&lt;br /&gt;
        print s.encode('latin-1')&lt;br /&gt;
        print&lt;br /&gt;
        print 'OUTPUT type:', type(plain_ascii)&lt;br /&gt;
        print 'OUTPUT:'&lt;br /&gt;
        print plain_ascii&lt;br /&gt;
        sys.exit()&lt;br /&gt;
&lt;br /&gt;
    if len(sys.argv) &amp;gt; 1:&lt;br /&gt;
        input = open(sys.argv[1])&lt;br /&gt;
    if len(sys.argv) &amp;gt; 2:&lt;br /&gt;
        output = open(sys.argv[2], 'w')&lt;br /&gt;
    for line in input:&lt;br /&gt;
        output.write(latin1_to_ascii(line))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a command prompt and change directory to your &amp;lt;code&amp;gt;raw/objects&amp;lt;/code&amp;gt; directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rename the four language files, adding '.orig' to the end of their names:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mv language_DWARF.txt language_DWARF.txt.orig&lt;br /&gt;
mv language_ELF.txt language_ELF.txt.orig&lt;br /&gt;
mv language_GOBLIN.txt language_GOBLIN.txt.orig&lt;br /&gt;
mv language_HUMAN.txt language_HUMAN.txt.orig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Apply the hammer to each of the four language files as follows:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
python unicode_hammer.py language_DWARF.txt.orig language_DWARF.txt&lt;br /&gt;
python unicode_hammer.py language_ELF.txt.orig language_ELF.txt&lt;br /&gt;
python unicode_hammer.py language_GOBLIN.txt.orig language_GOBLIN.txt&lt;br /&gt;
python unicode_hammer.py language_HUMAN.txt.orig language_HUMAN.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enjoy!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42850</id>
		<title>Utility:Accent Removal</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42850"/>
		<updated>2009-04-10T01:20:56Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: /* Jackard's InfoRapid Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
[[Image:Rj-unitlist.png|thumb|right|Replacing accented letters with normal ones in the raws fixes this problem.]]&lt;br /&gt;
Some tile sets use the accented characters for additional graphical symbols. This can make racial language test difficult to read. You can remove the accented characters and symbols from the data files. This works on existing worlds and saved games.&lt;br /&gt;
&lt;br /&gt;
Since the structure of language files might change, it is safest if you remove the problem characters from the files yourself. Here are two methods to do just that. The first (Jackard's) only works on Windows, but is probably the easiest for novice users. The second (frobnic8's) will work anywhere Python does (i.e. just about anywhere), but requires using the command line a little.&lt;br /&gt;
&lt;br /&gt;
==[[User:Jackard|Jackard]]'s [http://www.inforapid.de/html/searchreplace.htm InfoRapid] Script== &lt;br /&gt;
Download [http://www.inforapid.de/html/searchreplace.htm Inforapid Search and Replace.]&lt;br /&gt;
&lt;br /&gt;
Save the list below to a text file.&lt;br /&gt;
&lt;br /&gt;
Find the following files in &amp;lt;code&amp;gt;DF\raw\objects&amp;lt;/code&amp;gt;:&lt;br /&gt;
*&amp;lt;code&amp;gt;language_DWARF.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;language_ELF.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;language_GOBLIN.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;language_HUMAN.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select them all, right-click and choose 'Search with InfoRapid' from the menu.&lt;br /&gt;
&lt;br /&gt;
Click the Replace tab that shows up in the lower half of the window.&lt;br /&gt;
&lt;br /&gt;
Select your text file from before in the Replace With field, make sure Replace is set to 'Whole Search Expression' and click Start.&lt;br /&gt;
&lt;br /&gt;
A prompt will appear asking for confirmation. Check the Replace All button and click Yes. When the program stops running you are done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;CaseSensitive&amp;gt;Yes&amp;lt;/CaseSensitive&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[User:Frobnic8|frobnic8]]'s Modified [http://www.python.org Python] Script==&lt;br /&gt;
If you have the programming language Python installed on your machine (or don't mind installing it) and aren't scared of a command prompt, here is an alternate method. Python comes pre-installed on Mac OS X and almost all distributions of Linux. (If you are using Windows, the command line instructions shown will need to be modified slightly.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure you have [http://www.python.org Python] installed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and paste (this modified version of) &amp;quot;The Unicode Hammer&amp;quot; with the name 'unicode_hammer.py' in the 'raw/objects' sub-directory of your Dwarf FOrtress directory. (The Unicode Hammer: Is that a name worthy of Dwarf Fortress, or what?)&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
latin1_to_ascii -- The UNICODE Hammer -- AKA &amp;quot;The Stupid American&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
something equivalent in 7-bit ASCII. This returns a plain ASCII string. &lt;br /&gt;
This function makes a best effort to convert Latin-1 characters into &lt;br /&gt;
ASCII equivalents. It does not just strip out the Latin1 characters.&lt;br /&gt;
All characters in the standard 7-bit ASCII range are preserved. &lt;br /&gt;
In the 8th bit range all the Latin-1 accented letters are converted to &lt;br /&gt;
unaccented equivalents. Most symbol characters are converted to &lt;br /&gt;
something meaningful. Anything not converted is deleted.&lt;br /&gt;
&lt;br /&gt;
Background:&lt;br /&gt;
&lt;br /&gt;
One of my clients gets address data from Europe, but most of their systems &lt;br /&gt;
cannot handle Latin-1 characters. With all due respect to the umlaut,&lt;br /&gt;
scharfes s, cedilla, and all the other fine accented characters of Europe, &lt;br /&gt;
all I needed to do was to prepare addresses for a shipping system.&lt;br /&gt;
After getting headaches trying to deal with this problem using Python's &lt;br /&gt;
built-in UNICODE support I gave up and decided to use some brute force.&lt;br /&gt;
This function converts all accented letters to their unaccented equivalents. &lt;br /&gt;
I realize this is dirty, but for my purposes the mail gets delivered.&lt;br /&gt;
&lt;br /&gt;
Noah Spurrier noah at noah.org&lt;br /&gt;
License free and public domain&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;This version has had its translation table abused to produce&lt;br /&gt;
better results for the language files of the game Dwarf Fortress by&lt;br /&gt;
frobnic8. The original translation table is commented out.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def latin1_to_ascii (unicrap):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
    something equivalent in 7-bit ASCII. It returns a plain ASCII string.&lt;br /&gt;
    This function makes a best effort to convert Latin-1 characters into&lt;br /&gt;
    ASCII equivalents. It does not just strip out the Latin-1 characters.&lt;br /&gt;
    All characters in the standard 7-bit ASCII range are preserved.&lt;br /&gt;
    In the 8th bit range all the Latin-1 accented letters are converted&lt;br /&gt;
    to unaccented equivalents. Most symbol characters are converted to&lt;br /&gt;
    something meaningful. Anything not converted is deleted.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    xlate={0xc0:'A', 0xc1:'A', 0xc2:'A', 0xc3:'A', 0xc4:'A', 0xc5:'A',&lt;br /&gt;
        0xc6:'Ae', 0xc7:'C',&lt;br /&gt;
        0xc8:'E', 0xc9:'E', 0xca:'E', 0xcb:'E',&lt;br /&gt;
        0xcc:'I', 0xcd:'I', 0xce:'I', 0xcf:'I',&lt;br /&gt;
        0xd0:'Th', 0xd1:'N',&lt;br /&gt;
        0xd2:'O', 0xd3:'O', 0xd4:'O', 0xd5:'O', 0xd6:'O', 0xd8:'O',&lt;br /&gt;
        0xd9:'U', 0xda:'U', 0xdb:'U', 0xdc:'U',&lt;br /&gt;
        0xdd:'Y', 0xde:'th', 0xdf:'ss',&lt;br /&gt;
        0xe0:'a', 0xe1:'a', 0xe2:'a', 0xe3:'a', 0xe4:'a', 0xe5:'a',&lt;br /&gt;
        0xe6:'ae', 0xe7:'c',&lt;br /&gt;
        0xe8:'e', 0xe9:'e', 0xea:'e', 0xeb:'e',&lt;br /&gt;
        0xec:'i', 0xed:'i', 0xee:'i', 0xef:'i',&lt;br /&gt;
        0xf0:'th', 0xf1:'n',&lt;br /&gt;
        0xf2:'o', 0xf3:'o', 0xf4:'o', 0xf5:'o', 0xf6:'o', 0xf8:'o',&lt;br /&gt;
        0xf9:'u', 0xfa:'u', 0xfb:'u', 0xfc:'u',&lt;br /&gt;
        0xfd:'y', 0xfe:'th', 0xff:'y',&lt;br /&gt;
        0xa1:'aa', 0xa2:'cz', 0xa3:'ii', 0xa4:'tz',&lt;br /&gt;
        0xa5:'yy', 0xa6:'|', 0xa7:'zz', 0xa8:'&amp;quot;',&lt;br /&gt;
        0xa9:'CC', 0xaa:'aa', 0xab:'&amp;lt;&amp;lt;', 0xac:'not',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'o',&lt;br /&gt;
        0xb1:'+/-', 0xb2:'^2', 0xb3:'^3', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'uu', 0xb6:'PP', 0xb7:'*', 0xb8:',,',&lt;br /&gt;
        0xb9:'^1', 0xba:'^o', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'1/4', 0xbd:'1/2', 0xbe:'3/4', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Orignals below, the above is hacked for Dwarf Fortress languages.&lt;br /&gt;
        0xa1:'!', 0xa2:'{cent}', 0xa3:'{pound}', 0xa4:'{currency}',&lt;br /&gt;
        0xa5:'{yen}', 0xa6:'|', 0xa7:'{section}', 0xa8:'{umlaut}',&lt;br /&gt;
        0xa9:'{C}', 0xaa:'{^a}', 0xab:'&amp;lt;&amp;lt;', 0xac:'{not}',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'{degrees}',&lt;br /&gt;
        0xb1:'{+/-}', 0xb2:'{^2}', 0xb3:'{^3}', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'{micro}', 0xb6:'{paragraph}', 0xb7:'*', 0xb8:'{cedilla}',&lt;br /&gt;
        0xb9:'{^1}', 0xba:'{^o}', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'{1/4}', 0xbd:'{1/2}', 0xbe:'{3/4}', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    r = ''&lt;br /&gt;
    for i in unicrap:&lt;br /&gt;
        if xlate.has_key(ord(i)):&lt;br /&gt;
            r += xlate[ord(i)]&lt;br /&gt;
        elif ord(i) &amp;gt;= 0x80:&lt;br /&gt;
            pass&lt;br /&gt;
        else:&lt;br /&gt;
            r += str(i)&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    import sys&lt;br /&gt;
    input = sys.stdin&lt;br /&gt;
    output = sys.stdout&lt;br /&gt;
    if len(sys.argv) == 1 or (len(sys.argv) == 2 and \&lt;br /&gt;
       sys.argv[1] in ('-h', '-H', '-?', '--help', '/?', '/H', '/h')):&lt;br /&gt;
        print 'unicode_hammer.py [infile [outfile]]\n'&lt;br /&gt;
        s = unicode('','latin-1')&lt;br /&gt;
        for c in range(32, 256):&lt;br /&gt;
            if c != 0x7f:&lt;br /&gt;
                s = s + unicode(chr(c), 'latin-1')&lt;br /&gt;
            plain_ascii = latin1_to_ascii(s)&lt;br /&gt;
&lt;br /&gt;
        print 'INPUT type:', type(s)&lt;br /&gt;
        print 'INPUT:'&lt;br /&gt;
        print s.encode('latin-1')&lt;br /&gt;
        print&lt;br /&gt;
        print 'OUTPUT type:', type(plain_ascii)&lt;br /&gt;
        print 'OUTPUT:'&lt;br /&gt;
        print plain_ascii&lt;br /&gt;
        sys.exit()&lt;br /&gt;
&lt;br /&gt;
    if len(sys.argv) &amp;gt; 1:&lt;br /&gt;
        input = open(sys.argv[1])&lt;br /&gt;
    if len(sys.argv) &amp;gt; 2:&lt;br /&gt;
        output = open(sys.argv[2], 'w')&lt;br /&gt;
    for line in input:&lt;br /&gt;
        output.write(latin1_to_ascii(line))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a command prompt and change directory to your 'raw/objects' directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rename the four language files, adding '.orig' to the end of their names:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mv language_DWARF.txt language_DWARF.txt.orig&lt;br /&gt;
mv language_ELF.txt language_ELF.txt.orig&lt;br /&gt;
mv language_GOBLIN.txt language_GOBLIN.txt.orig&lt;br /&gt;
mv language_HUMAN.txt language_HUMAN.txt.orig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Apply the hammer to each of the four language files as follows:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
python unicode_hammer.py language_DWARF.txt.orig language_DWARF.txt&lt;br /&gt;
python unicode_hammer.py language_ELF.txt.orig language_ELF.txt&lt;br /&gt;
python unicode_hammer.py language_GOBLIN.txt.orig language_GOBLIN.txt&lt;br /&gt;
python unicode_hammer.py language_HUMAN.txt.orig language_HUMAN.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enjoy!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42849</id>
		<title>Utility:Accent Removal</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42849"/>
		<updated>2009-04-10T01:19:59Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
[[Image:Rj-unitlist.png|thumb|right|Replacing accented letters with normal ones in the raws fixes this problem.]]&lt;br /&gt;
Some tile sets use the accented characters for additional graphical symbols. This can make racial language test difficult to read. You can remove the accented characters and symbols from the data files. This works on existing worlds and saved games.&lt;br /&gt;
&lt;br /&gt;
Since the structure of language files might change, it is safest if you remove the problem characters from the files yourself. Here are two methods to do just that. The first (Jackard's) only works on Windows, but is probably the easiest for novice users. The second (frobnic8's) will work anywhere Python does (i.e. just about anywhere), but requires using the command line a little.&lt;br /&gt;
&lt;br /&gt;
==[[User:Jackard|Jackard]]'s [http://www.inforapid.de/html/searchreplace.htm InfoRapid] Script== &lt;br /&gt;
Download [http://www.inforapid.de/html/searchreplace.htm Inforapid Search and Replace.]&lt;br /&gt;
&lt;br /&gt;
Save the list below to a text file.&lt;br /&gt;
&lt;br /&gt;
Find the following files in DF\raw\objects:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
Select them all, right-click and choose 'Search with InfoRapid' from the menu.&lt;br /&gt;
&lt;br /&gt;
Click the Replace tab that shows up in the lower half of the window.&lt;br /&gt;
&lt;br /&gt;
Select your text file from before in the Replace With field, make sure Replace is set to 'Whole Search Expression' and click Start.&lt;br /&gt;
&lt;br /&gt;
A prompt will appear asking for confirmation. Check the Replace All button and click Yes. When the program stops running you are done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;CaseSensitive&amp;gt;Yes&amp;lt;/CaseSensitive&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[User:Frobnic8|frobnic8]]'s Modified [http://www.python.org Python] Script==&lt;br /&gt;
If you have the programming language Python installed on your machine (or don't mind installing it) and aren't scared of a command prompt, here is an alternate method. Python comes pre-installed on Mac OS X and almost all distributions of Linux. (If you are using Windows, the command line instructions shown will need to be modified slightly.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure you have [http://www.python.org Python] installed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and paste (this modified version of) &amp;quot;The Unicode Hammer&amp;quot; with the name 'unicode_hammer.py' in the 'raw/objects' sub-directory of your Dwarf FOrtress directory. (The Unicode Hammer: Is that a name worthy of Dwarf Fortress, or what?)&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
latin1_to_ascii -- The UNICODE Hammer -- AKA &amp;quot;The Stupid American&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
something equivalent in 7-bit ASCII. This returns a plain ASCII string. &lt;br /&gt;
This function makes a best effort to convert Latin-1 characters into &lt;br /&gt;
ASCII equivalents. It does not just strip out the Latin1 characters.&lt;br /&gt;
All characters in the standard 7-bit ASCII range are preserved. &lt;br /&gt;
In the 8th bit range all the Latin-1 accented letters are converted to &lt;br /&gt;
unaccented equivalents. Most symbol characters are converted to &lt;br /&gt;
something meaningful. Anything not converted is deleted.&lt;br /&gt;
&lt;br /&gt;
Background:&lt;br /&gt;
&lt;br /&gt;
One of my clients gets address data from Europe, but most of their systems &lt;br /&gt;
cannot handle Latin-1 characters. With all due respect to the umlaut,&lt;br /&gt;
scharfes s, cedilla, and all the other fine accented characters of Europe, &lt;br /&gt;
all I needed to do was to prepare addresses for a shipping system.&lt;br /&gt;
After getting headaches trying to deal with this problem using Python's &lt;br /&gt;
built-in UNICODE support I gave up and decided to use some brute force.&lt;br /&gt;
This function converts all accented letters to their unaccented equivalents. &lt;br /&gt;
I realize this is dirty, but for my purposes the mail gets delivered.&lt;br /&gt;
&lt;br /&gt;
Noah Spurrier noah at noah.org&lt;br /&gt;
License free and public domain&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;This version has had its translation table abused to produce&lt;br /&gt;
better results for the language files of the game Dwarf Fortress by&lt;br /&gt;
frobnic8. The original translation table is commented out.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def latin1_to_ascii (unicrap):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
    something equivalent in 7-bit ASCII. It returns a plain ASCII string.&lt;br /&gt;
    This function makes a best effort to convert Latin-1 characters into&lt;br /&gt;
    ASCII equivalents. It does not just strip out the Latin-1 characters.&lt;br /&gt;
    All characters in the standard 7-bit ASCII range are preserved.&lt;br /&gt;
    In the 8th bit range all the Latin-1 accented letters are converted&lt;br /&gt;
    to unaccented equivalents. Most symbol characters are converted to&lt;br /&gt;
    something meaningful. Anything not converted is deleted.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    xlate={0xc0:'A', 0xc1:'A', 0xc2:'A', 0xc3:'A', 0xc4:'A', 0xc5:'A',&lt;br /&gt;
        0xc6:'Ae', 0xc7:'C',&lt;br /&gt;
        0xc8:'E', 0xc9:'E', 0xca:'E', 0xcb:'E',&lt;br /&gt;
        0xcc:'I', 0xcd:'I', 0xce:'I', 0xcf:'I',&lt;br /&gt;
        0xd0:'Th', 0xd1:'N',&lt;br /&gt;
        0xd2:'O', 0xd3:'O', 0xd4:'O', 0xd5:'O', 0xd6:'O', 0xd8:'O',&lt;br /&gt;
        0xd9:'U', 0xda:'U', 0xdb:'U', 0xdc:'U',&lt;br /&gt;
        0xdd:'Y', 0xde:'th', 0xdf:'ss',&lt;br /&gt;
        0xe0:'a', 0xe1:'a', 0xe2:'a', 0xe3:'a', 0xe4:'a', 0xe5:'a',&lt;br /&gt;
        0xe6:'ae', 0xe7:'c',&lt;br /&gt;
        0xe8:'e', 0xe9:'e', 0xea:'e', 0xeb:'e',&lt;br /&gt;
        0xec:'i', 0xed:'i', 0xee:'i', 0xef:'i',&lt;br /&gt;
        0xf0:'th', 0xf1:'n',&lt;br /&gt;
        0xf2:'o', 0xf3:'o', 0xf4:'o', 0xf5:'o', 0xf6:'o', 0xf8:'o',&lt;br /&gt;
        0xf9:'u', 0xfa:'u', 0xfb:'u', 0xfc:'u',&lt;br /&gt;
        0xfd:'y', 0xfe:'th', 0xff:'y',&lt;br /&gt;
        0xa1:'aa', 0xa2:'cz', 0xa3:'ii', 0xa4:'tz',&lt;br /&gt;
        0xa5:'yy', 0xa6:'|', 0xa7:'zz', 0xa8:'&amp;quot;',&lt;br /&gt;
        0xa9:'CC', 0xaa:'aa', 0xab:'&amp;lt;&amp;lt;', 0xac:'not',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'o',&lt;br /&gt;
        0xb1:'+/-', 0xb2:'^2', 0xb3:'^3', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'uu', 0xb6:'PP', 0xb7:'*', 0xb8:',,',&lt;br /&gt;
        0xb9:'^1', 0xba:'^o', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'1/4', 0xbd:'1/2', 0xbe:'3/4', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Orignals below, the above is hacked for Dwarf Fortress languages.&lt;br /&gt;
        0xa1:'!', 0xa2:'{cent}', 0xa3:'{pound}', 0xa4:'{currency}',&lt;br /&gt;
        0xa5:'{yen}', 0xa6:'|', 0xa7:'{section}', 0xa8:'{umlaut}',&lt;br /&gt;
        0xa9:'{C}', 0xaa:'{^a}', 0xab:'&amp;lt;&amp;lt;', 0xac:'{not}',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'{degrees}',&lt;br /&gt;
        0xb1:'{+/-}', 0xb2:'{^2}', 0xb3:'{^3}', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'{micro}', 0xb6:'{paragraph}', 0xb7:'*', 0xb8:'{cedilla}',&lt;br /&gt;
        0xb9:'{^1}', 0xba:'{^o}', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'{1/4}', 0xbd:'{1/2}', 0xbe:'{3/4}', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    r = ''&lt;br /&gt;
    for i in unicrap:&lt;br /&gt;
        if xlate.has_key(ord(i)):&lt;br /&gt;
            r += xlate[ord(i)]&lt;br /&gt;
        elif ord(i) &amp;gt;= 0x80:&lt;br /&gt;
            pass&lt;br /&gt;
        else:&lt;br /&gt;
            r += str(i)&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    import sys&lt;br /&gt;
    input = sys.stdin&lt;br /&gt;
    output = sys.stdout&lt;br /&gt;
    if len(sys.argv) == 1 or (len(sys.argv) == 2 and \&lt;br /&gt;
       sys.argv[1] in ('-h', '-H', '-?', '--help', '/?', '/H', '/h')):&lt;br /&gt;
        print 'unicode_hammer.py [infile [outfile]]\n'&lt;br /&gt;
        s = unicode('','latin-1')&lt;br /&gt;
        for c in range(32, 256):&lt;br /&gt;
            if c != 0x7f:&lt;br /&gt;
                s = s + unicode(chr(c), 'latin-1')&lt;br /&gt;
            plain_ascii = latin1_to_ascii(s)&lt;br /&gt;
&lt;br /&gt;
        print 'INPUT type:', type(s)&lt;br /&gt;
        print 'INPUT:'&lt;br /&gt;
        print s.encode('latin-1')&lt;br /&gt;
        print&lt;br /&gt;
        print 'OUTPUT type:', type(plain_ascii)&lt;br /&gt;
        print 'OUTPUT:'&lt;br /&gt;
        print plain_ascii&lt;br /&gt;
        sys.exit()&lt;br /&gt;
&lt;br /&gt;
    if len(sys.argv) &amp;gt; 1:&lt;br /&gt;
        input = open(sys.argv[1])&lt;br /&gt;
    if len(sys.argv) &amp;gt; 2:&lt;br /&gt;
        output = open(sys.argv[2], 'w')&lt;br /&gt;
    for line in input:&lt;br /&gt;
        output.write(latin1_to_ascii(line))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a command prompt and change directory to your 'raw/objects' directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rename the four language files, adding '.orig' to the end of their names:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mv language_DWARF.txt language_DWARF.txt.orig&lt;br /&gt;
mv language_ELF.txt language_ELF.txt.orig&lt;br /&gt;
mv language_GOBLIN.txt language_GOBLIN.txt.orig&lt;br /&gt;
mv language_HUMAN.txt language_HUMAN.txt.orig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Apply the hammer to each of the four language files as follows:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
python unicode_hammer.py language_DWARF.txt.orig language_DWARF.txt&lt;br /&gt;
python unicode_hammer.py language_ELF.txt.orig language_ELF.txt&lt;br /&gt;
python unicode_hammer.py language_GOBLIN.txt.orig language_GOBLIN.txt&lt;br /&gt;
python unicode_hammer.py language_HUMAN.txt.orig language_HUMAN.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enjoy!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42848</id>
		<title>Utility:Accent Removal</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42848"/>
		<updated>2009-04-10T01:15:39Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: /* frobnic8's Modified Python Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
[[Image:Rj-unitlist.png|thumb|right|Replacing accented letters with normal ones in the raws fixes this problem.]]&lt;br /&gt;
You can remove accents from your texts - this even works on existing worlds.&lt;br /&gt;
&lt;br /&gt;
Since the structure of language files might change, it is safest if you remove the accents from the files yourself. Here are two methods to do just that. The first (Jackard's) only works on Windows, but is probably the easiest for novice users. The second (frobnic8's) will work anywhere Python does (i.e. just about anywhere), but requires using the command line a little.&lt;br /&gt;
&lt;br /&gt;
==[[User:Jackard|Jackard]]'s [http://www.inforapid.de/html/searchreplace.htm InfoRapid] Script== &lt;br /&gt;
Download [http://www.inforapid.de/html/searchreplace.htm Inforapid Search and Replace.]&lt;br /&gt;
&lt;br /&gt;
Save the list below to a text file.&lt;br /&gt;
&lt;br /&gt;
Find the following files in DF\raw\objects:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
Select them all, right-click and choose 'Search with InfoRapid' from the menu.&lt;br /&gt;
&lt;br /&gt;
Click the Replace tab that shows up in the lower half of the window.&lt;br /&gt;
&lt;br /&gt;
Select your text file from before in the Replace With field, make sure Replace is set to 'Whole Search Expression' and click Start.&lt;br /&gt;
&lt;br /&gt;
A prompt will appear asking for confirmation. Check the Replace All button and click Yes. When the program stops running you are done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;CaseSensitive&amp;gt;Yes&amp;lt;/CaseSensitive&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[User:Frobnic8|frobnic8]]'s Modified [http://www.python.org Python] Script==&lt;br /&gt;
If you have the programming language Python installed on your machine (or don't mind installing it) and aren't scared of a command prompt, here is an alternate method. Python comes pre-installed on Mac OS X and almost all distributions of Linux. (If you are using Windows, the command line instructions shown will need to be modified slightly.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure you have [http://www.python.org Python] installed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and paste (this modified version of) &amp;quot;The Unicode Hammer&amp;quot; with the name 'unicode_hammer.py' in the 'raw/objects' sub-directory of your Dwarf FOrtress directory. (The Unicode Hammer: Is that a name worthy of Dwarf Fortress, or what?)&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
latin1_to_ascii -- The UNICODE Hammer -- AKA &amp;quot;The Stupid American&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
something equivalent in 7-bit ASCII. This returns a plain ASCII string. &lt;br /&gt;
This function makes a best effort to convert Latin-1 characters into &lt;br /&gt;
ASCII equivalents. It does not just strip out the Latin1 characters.&lt;br /&gt;
All characters in the standard 7-bit ASCII range are preserved. &lt;br /&gt;
In the 8th bit range all the Latin-1 accented letters are converted to &lt;br /&gt;
unaccented equivalents. Most symbol characters are converted to &lt;br /&gt;
something meaningful. Anything not converted is deleted.&lt;br /&gt;
&lt;br /&gt;
Background:&lt;br /&gt;
&lt;br /&gt;
One of my clients gets address data from Europe, but most of their systems &lt;br /&gt;
cannot handle Latin-1 characters. With all due respect to the umlaut,&lt;br /&gt;
scharfes s, cedilla, and all the other fine accented characters of Europe, &lt;br /&gt;
all I needed to do was to prepare addresses for a shipping system.&lt;br /&gt;
After getting headaches trying to deal with this problem using Python's &lt;br /&gt;
built-in UNICODE support I gave up and decided to use some brute force.&lt;br /&gt;
This function converts all accented letters to their unaccented equivalents. &lt;br /&gt;
I realize this is dirty, but for my purposes the mail gets delivered.&lt;br /&gt;
&lt;br /&gt;
Noah Spurrier noah at noah.org&lt;br /&gt;
License free and public domain&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;This version has had its translation table abused to produce&lt;br /&gt;
better results for the language files of the game Dwarf Fortress by&lt;br /&gt;
frobnic8. The original translation table is commented out.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def latin1_to_ascii (unicrap):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
    something equivalent in 7-bit ASCII. It returns a plain ASCII string.&lt;br /&gt;
    This function makes a best effort to convert Latin-1 characters into&lt;br /&gt;
    ASCII equivalents. It does not just strip out the Latin-1 characters.&lt;br /&gt;
    All characters in the standard 7-bit ASCII range are preserved.&lt;br /&gt;
    In the 8th bit range all the Latin-1 accented letters are converted&lt;br /&gt;
    to unaccented equivalents. Most symbol characters are converted to&lt;br /&gt;
    something meaningful. Anything not converted is deleted.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    xlate={0xc0:'A', 0xc1:'A', 0xc2:'A', 0xc3:'A', 0xc4:'A', 0xc5:'A',&lt;br /&gt;
        0xc6:'Ae', 0xc7:'C',&lt;br /&gt;
        0xc8:'E', 0xc9:'E', 0xca:'E', 0xcb:'E',&lt;br /&gt;
        0xcc:'I', 0xcd:'I', 0xce:'I', 0xcf:'I',&lt;br /&gt;
        0xd0:'Th', 0xd1:'N',&lt;br /&gt;
        0xd2:'O', 0xd3:'O', 0xd4:'O', 0xd5:'O', 0xd6:'O', 0xd8:'O',&lt;br /&gt;
        0xd9:'U', 0xda:'U', 0xdb:'U', 0xdc:'U',&lt;br /&gt;
        0xdd:'Y', 0xde:'th', 0xdf:'ss',&lt;br /&gt;
        0xe0:'a', 0xe1:'a', 0xe2:'a', 0xe3:'a', 0xe4:'a', 0xe5:'a',&lt;br /&gt;
        0xe6:'ae', 0xe7:'c',&lt;br /&gt;
        0xe8:'e', 0xe9:'e', 0xea:'e', 0xeb:'e',&lt;br /&gt;
        0xec:'i', 0xed:'i', 0xee:'i', 0xef:'i',&lt;br /&gt;
        0xf0:'th', 0xf1:'n',&lt;br /&gt;
        0xf2:'o', 0xf3:'o', 0xf4:'o', 0xf5:'o', 0xf6:'o', 0xf8:'o',&lt;br /&gt;
        0xf9:'u', 0xfa:'u', 0xfb:'u', 0xfc:'u',&lt;br /&gt;
        0xfd:'y', 0xfe:'th', 0xff:'y',&lt;br /&gt;
        0xa1:'aa', 0xa2:'cz', 0xa3:'ii', 0xa4:'tz',&lt;br /&gt;
        0xa5:'yy', 0xa6:'|', 0xa7:'zz', 0xa8:'&amp;quot;',&lt;br /&gt;
        0xa9:'CC', 0xaa:'aa', 0xab:'&amp;lt;&amp;lt;', 0xac:'not',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'o',&lt;br /&gt;
        0xb1:'+/-', 0xb2:'^2', 0xb3:'^3', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'uu', 0xb6:'PP', 0xb7:'*', 0xb8:',,',&lt;br /&gt;
        0xb9:'^1', 0xba:'^o', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'1/4', 0xbd:'1/2', 0xbe:'3/4', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Orignals below, the above is hacked for Dwarf Fortress languages.&lt;br /&gt;
        0xa1:'!', 0xa2:'{cent}', 0xa3:'{pound}', 0xa4:'{currency}',&lt;br /&gt;
        0xa5:'{yen}', 0xa6:'|', 0xa7:'{section}', 0xa8:'{umlaut}',&lt;br /&gt;
        0xa9:'{C}', 0xaa:'{^a}', 0xab:'&amp;lt;&amp;lt;', 0xac:'{not}',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'{degrees}',&lt;br /&gt;
        0xb1:'{+/-}', 0xb2:'{^2}', 0xb3:'{^3}', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'{micro}', 0xb6:'{paragraph}', 0xb7:'*', 0xb8:'{cedilla}',&lt;br /&gt;
        0xb9:'{^1}', 0xba:'{^o}', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'{1/4}', 0xbd:'{1/2}', 0xbe:'{3/4}', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    r = ''&lt;br /&gt;
    for i in unicrap:&lt;br /&gt;
        if xlate.has_key(ord(i)):&lt;br /&gt;
            r += xlate[ord(i)]&lt;br /&gt;
        elif ord(i) &amp;gt;= 0x80:&lt;br /&gt;
            pass&lt;br /&gt;
        else:&lt;br /&gt;
            r += str(i)&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    import sys&lt;br /&gt;
    input = sys.stdin&lt;br /&gt;
    output = sys.stdout&lt;br /&gt;
    if len(sys.argv) == 1 or (len(sys.argv) == 2 and \&lt;br /&gt;
       sys.argv[1] in ('-h', '-H', '-?', '--help', '/?', '/H', '/h')):&lt;br /&gt;
        print 'unicode_hammer.py [infile [outfile]]\n'&lt;br /&gt;
        s = unicode('','latin-1')&lt;br /&gt;
        for c in range(32, 256):&lt;br /&gt;
            if c != 0x7f:&lt;br /&gt;
                s = s + unicode(chr(c), 'latin-1')&lt;br /&gt;
            plain_ascii = latin1_to_ascii(s)&lt;br /&gt;
&lt;br /&gt;
        print 'INPUT type:', type(s)&lt;br /&gt;
        print 'INPUT:'&lt;br /&gt;
        print s.encode('latin-1')&lt;br /&gt;
        print&lt;br /&gt;
        print 'OUTPUT type:', type(plain_ascii)&lt;br /&gt;
        print 'OUTPUT:'&lt;br /&gt;
        print plain_ascii&lt;br /&gt;
        sys.exit()&lt;br /&gt;
&lt;br /&gt;
    if len(sys.argv) &amp;gt; 1:&lt;br /&gt;
        input = open(sys.argv[1])&lt;br /&gt;
    if len(sys.argv) &amp;gt; 2:&lt;br /&gt;
        output = open(sys.argv[2], 'w')&lt;br /&gt;
    for line in input:&lt;br /&gt;
        output.write(latin1_to_ascii(line))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a command prompt and change directory to your 'raw/objects' directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rename the four language files, adding '.orig' to the end of their names:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mv language_DWARF.txt language_DWARF.txt.orig&lt;br /&gt;
mv language_ELF.txt language_ELF.txt.orig&lt;br /&gt;
mv language_GOBLIN.txt language_GOBLIN.txt.orig&lt;br /&gt;
mv language_HUMAN.txt language_HUMAN.txt.orig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Apply the hammer to each of the four language files as follows:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
python unicode_hammer.py language_DWARF.txt.orig language_DWARF.txt&lt;br /&gt;
python unicode_hammer.py language_ELF.txt.orig language_ELF.txt&lt;br /&gt;
python unicode_hammer.py language_GOBLIN.txt.orig language_GOBLIN.txt&lt;br /&gt;
python unicode_hammer.py language_HUMAN.txt.orig language_HUMAN.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enjoy!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42847</id>
		<title>Utility:Accent Removal</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Accent_Removal&amp;diff=42847"/>
		<updated>2009-04-10T01:14:43Z</updated>

		<summary type="html">&lt;p&gt;Frobnic8: Added alternate method.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
[[Image:Rj-unitlist.png|thumb|right|Replacing accented letters with normal ones in the raws fixes this problem.]]&lt;br /&gt;
You can remove accents from your texts - this even works on existing worlds.&lt;br /&gt;
&lt;br /&gt;
Since the structure of language files might change, it is safest if you remove the accents from the files yourself. Here are two methods to do just that. The first (Jackard's) only works on Windows, but is probably the easiest for novice users. The second (frobnic8's) will work anywhere Python does (i.e. just about anywhere), but requires using the command line a little.&lt;br /&gt;
&lt;br /&gt;
==[[User:Jackard|Jackard]]'s [http://www.inforapid.de/html/searchreplace.htm InfoRapid] Script== &lt;br /&gt;
Download [http://www.inforapid.de/html/searchreplace.htm Inforapid Search and Replace.]&lt;br /&gt;
&lt;br /&gt;
Save the list below to a text file.&lt;br /&gt;
&lt;br /&gt;
Find the following files in DF\raw\objects:&lt;br /&gt;
*language_DWARF.txt&lt;br /&gt;
*language_ELF.txt&lt;br /&gt;
*language_GOBLIN.txt&lt;br /&gt;
*language_HUMAN.txt&lt;br /&gt;
&lt;br /&gt;
Select them all, right-click and choose 'Search with InfoRapid' from the menu.&lt;br /&gt;
&lt;br /&gt;
Click the Replace tab that shows up in the lower half of the window.&lt;br /&gt;
&lt;br /&gt;
Select your text file from before in the Replace With field, make sure Replace is set to 'Whole Search Expression' and click Start.&lt;br /&gt;
&lt;br /&gt;
A prompt will appear asking for confirmation. Check the Replace All button and click Yes. When the program stops running you are done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;„&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt; &amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ƒ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;†&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;…&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;a&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;c&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‰&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‚&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Š&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;ˆ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;e&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;‹&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;CaseSensitive&amp;gt;Yes&amp;lt;/CaseSensitive&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¡&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;Œ&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;i&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¤&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;n&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;•&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;”&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;“&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;¢&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;o&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;—&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;–&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;£&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;u&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;Command&amp;gt;&lt;br /&gt;
	&amp;lt;Search&amp;gt;˜&amp;lt;/Search&amp;gt;&lt;br /&gt;
	&amp;lt;Replace&amp;gt;y&amp;lt;/Replace&amp;gt;&lt;br /&gt;
&amp;lt;/Command&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[User:Frobnic8|frobnic8]]'s Modified [http://www.python.org Python] Script==&lt;br /&gt;
If you have the programming language Python installed on your machine (or don't mind installing it) and aren't scared of a command prompt, here is an alternate method. Python comes pre-installed on Mac OS X and almost all distributions of Linux. (If you are using Windows, the command line instructions shown will need to be modified slightly.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure you have [http://www.python.org Python] installed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and paste (this modified version of) &amp;quot;The Unicode Hammer&amp;quot; with the name 'unicode_hammer.py' in the 'raw/objects' sub-directory of your Dwarf FOrtress directory. (The Unicode Hammer: Is that a name worthy of Dwarf Fortress, or what?)&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
latin1_to_ascii -- The UNICODE Hammer -- AKA &amp;quot;The Stupid American&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
something equivalent in 7-bit ASCII. This returns a plain ASCII string. &lt;br /&gt;
This function makes a best effort to convert Latin-1 characters into &lt;br /&gt;
ASCII equivalents. It does not just strip out the Latin1 characters.&lt;br /&gt;
All characters in the standard 7-bit ASCII range are preserved. &lt;br /&gt;
In the 8th bit range all the Latin-1 accented letters are converted to &lt;br /&gt;
unaccented equivalents. Most symbol characters are converted to &lt;br /&gt;
something meaningful. Anything not converted is deleted.&lt;br /&gt;
&lt;br /&gt;
Background:&lt;br /&gt;
&lt;br /&gt;
One of my clients gets address data from Europe, but most of their systems &lt;br /&gt;
cannot handle Latin-1 characters. With all due respect to the umlaut,&lt;br /&gt;
scharfes s, cedilla, and all the other fine accented characters of Europe, &lt;br /&gt;
all I needed to do was to prepare addresses for a shipping system.&lt;br /&gt;
After getting headaches trying to deal with this problem using Python's &lt;br /&gt;
built-in UNICODE support I gave up and decided to use some brute force.&lt;br /&gt;
This function converts all accented letters to their unaccented equivalents. &lt;br /&gt;
I realize this is dirty, but for my purposes the mail gets delivered.&lt;br /&gt;
&lt;br /&gt;
Noah Spurrier noah at noah.org&lt;br /&gt;
License free and public domain&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;This version has had its translation table abused to produce&lt;br /&gt;
better results for the language files of the game Dwarf Fortress by&lt;br /&gt;
frobnic8. The original translation table is commented out.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def latin1_to_ascii (unicrap):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;This takes a UNICODE string and replaces Latin-1 characters with&lt;br /&gt;
    something equivalent in 7-bit ASCII. It returns a plain ASCII string.&lt;br /&gt;
    This function makes a best effort to convert Latin-1 characters into&lt;br /&gt;
    ASCII equivalents. It does not just strip out the Latin-1 characters.&lt;br /&gt;
    All characters in the standard 7-bit ASCII range are preserved.&lt;br /&gt;
    In the 8th bit range all the Latin-1 accented letters are converted&lt;br /&gt;
    to unaccented equivalents. Most symbol characters are converted to&lt;br /&gt;
    something meaningful. Anything not converted is deleted.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    xlate={0xc0:'A', 0xc1:'A', 0xc2:'A', 0xc3:'A', 0xc4:'A', 0xc5:'A',&lt;br /&gt;
        0xc6:'Ae', 0xc7:'C',&lt;br /&gt;
        0xc8:'E', 0xc9:'E', 0xca:'E', 0xcb:'E',&lt;br /&gt;
        0xcc:'I', 0xcd:'I', 0xce:'I', 0xcf:'I',&lt;br /&gt;
        0xd0:'Th', 0xd1:'N',&lt;br /&gt;
        0xd2:'O', 0xd3:'O', 0xd4:'O', 0xd5:'O', 0xd6:'O', 0xd8:'O',&lt;br /&gt;
        0xd9:'U', 0xda:'U', 0xdb:'U', 0xdc:'U',&lt;br /&gt;
        0xdd:'Y', 0xde:'th', 0xdf:'ss',&lt;br /&gt;
        0xe0:'a', 0xe1:'a', 0xe2:'a', 0xe3:'a', 0xe4:'a', 0xe5:'a',&lt;br /&gt;
        0xe6:'ae', 0xe7:'c',&lt;br /&gt;
        0xe8:'e', 0xe9:'e', 0xea:'e', 0xeb:'e',&lt;br /&gt;
        0xec:'i', 0xed:'i', 0xee:'i', 0xef:'i',&lt;br /&gt;
        0xf0:'th', 0xf1:'n',&lt;br /&gt;
        0xf2:'o', 0xf3:'o', 0xf4:'o', 0xf5:'o', 0xf6:'o', 0xf8:'o',&lt;br /&gt;
        0xf9:'u', 0xfa:'u', 0xfb:'u', 0xfc:'u',&lt;br /&gt;
        0xfd:'y', 0xfe:'th', 0xff:'y',&lt;br /&gt;
        0xa1:'aa', 0xa2:'cz', 0xa3:'ii', 0xa4:'tz',&lt;br /&gt;
        0xa5:'yy', 0xa6:'|', 0xa7:'zz', 0xa8:'&amp;quot;',&lt;br /&gt;
        0xa9:'CC', 0xaa:'aa', 0xab:'&amp;lt;&amp;lt;', 0xac:'not',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'o',&lt;br /&gt;
        0xb1:'+/-', 0xb2:'^2', 0xb3:'^3', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'uu', 0xb6:'PP', 0xb7:'*', 0xb8:',,',&lt;br /&gt;
        0xb9:'^1', 0xba:'^o', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'1/4', 0xbd:'1/2', 0xbe:'3/4', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; Orignals below, the above is hacked for Dwarf Fortress languages.&lt;br /&gt;
        0xa1:'!', 0xa2:'{cent}', 0xa3:'{pound}', 0xa4:'{currency}',&lt;br /&gt;
        0xa5:'{yen}', 0xa6:'|', 0xa7:'{section}', 0xa8:'{umlaut}',&lt;br /&gt;
        0xa9:'{C}', 0xaa:'{^a}', 0xab:'&amp;lt;&amp;lt;', 0xac:'{not}',&lt;br /&gt;
        0xad:'-', 0xae:'{R}', 0xaf:'_', 0xb0:'{degrees}',&lt;br /&gt;
        0xb1:'{+/-}', 0xb2:'{^2}', 0xb3:'{^3}', 0xb4:&amp;quot;'&amp;quot;,&lt;br /&gt;
        0xb5:'{micro}', 0xb6:'{paragraph}', 0xb7:'*', 0xb8:'{cedilla}',&lt;br /&gt;
        0xb9:'{^1}', 0xba:'{^o}', 0xbb:'&amp;gt;&amp;gt;',&lt;br /&gt;
        0xbc:'{1/4}', 0xbd:'{1/2}', 0xbe:'{3/4}', 0xbf:'?',&lt;br /&gt;
        0xd7:'*', 0xf7:'/'&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    r = ''&lt;br /&gt;
    for i in unicrap:&lt;br /&gt;
        if xlate.has_key(ord(i)):&lt;br /&gt;
            r += xlate[ord(i)]&lt;br /&gt;
        elif ord(i) &amp;gt;= 0x80:&lt;br /&gt;
            pass&lt;br /&gt;
        else:&lt;br /&gt;
            r += str(i)&lt;br /&gt;
    return r&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    import sys&lt;br /&gt;
    input = sys.stdin&lt;br /&gt;
    output = sys.stdout&lt;br /&gt;
    if len(sys.argv) == 1 or (len(sys.argv) == 2 and \&lt;br /&gt;
       sys.argv[1] in ('-h', '-H', '-?', '--help', '/?', '/H', '/h')):&lt;br /&gt;
        print 'unicode_hammer.py [infile [outfile]]\n'&lt;br /&gt;
        s = unicode('','latin-1')&lt;br /&gt;
        for c in range(32, 256):&lt;br /&gt;
            if c != 0x7f:&lt;br /&gt;
                s = s + unicode(chr(c), 'latin-1')&lt;br /&gt;
            plain_ascii = latin1_to_ascii(s)&lt;br /&gt;
&lt;br /&gt;
        print 'INPUT type:', type(s)&lt;br /&gt;
        print 'INPUT:'&lt;br /&gt;
        print s.encode('latin-1')&lt;br /&gt;
        print&lt;br /&gt;
        print 'OUTPUT type:', type(plain_ascii)&lt;br /&gt;
        print 'OUTPUT:'&lt;br /&gt;
        print plain_ascii&lt;br /&gt;
        sys.exit()&lt;br /&gt;
&lt;br /&gt;
    if len(sys.argv) &amp;gt; 1:&lt;br /&gt;
        input = open(sys.argv[1])&lt;br /&gt;
    if len(sys.argv) &amp;gt; 2:&lt;br /&gt;
        output = open(sys.argv[2], 'w')&lt;br /&gt;
    for line in input:&lt;br /&gt;
        output.write(latin1_to_ascii(line))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save the script in your 'raw/objects' directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a command prompt and change directory to your 'raw/objects' directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rename the four language files, adding '.orig' to the end of their names:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mv language_DWARF.txt language_DWARF.txt.orig&lt;br /&gt;
mv language_ELF.txt language_ELF.txt.orig&lt;br /&gt;
mv language_GOBLIN.txt language_GOBLIN.txt.orig&lt;br /&gt;
mv language_HUMAN.txt language_HUMAN.txt.orig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Apply the hammer to each of the four language files as follows:&amp;lt;p&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
python unicode_hammer.py language_DWARF.txt.orig language_DWARF.txt&lt;br /&gt;
python unicode_hammer.py language_ELF.txt.orig language_ELF.txt&lt;br /&gt;
python unicode_hammer.py language_GOBLIN.txt.orig language_GOBLIN.txt&lt;br /&gt;
python unicode_hammer.py language_HUMAN.txt.orig language_HUMAN.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enjoy!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>Frobnic8</name></author>
	</entry>
</feed>