{"id":1251,"date":"2026-08-23T06:34:37","date_gmt":"2026-08-23T06:34:37","guid":{"rendered":"https:\/\/hrafn-wikinger.com\/rune-translator\/"},"modified":"2026-08-28T06:49:23","modified_gmt":"2026-08-28T06:49:23","slug":"rune-translator","status":"publish","type":"page","link":"https:\/\/hrafn-wikinger.com\/en\/rune-translator\/","title":{"rendered":"Rune Translator"},"content":{"rendered":"<div class=\"hrafn-rt\" id=\"hrafnRuneTranslator\">\n<div class=\"hrafn-rt__intro\">\n<p>Enter your text and choose a rune alphabet. The tool converts your text phonetically into the chosen runic script.<\/p>\n<p class=\"hrafn-rt__note\">What&#8217;s the difference between the three rune alphabets? <a href=\"#hrafnRuneAlphabets\">More about that below<\/a>.<\/p><\/div>\n<div class=\"hrafn-rt__field\">\n    <label for=\"hrafnRtInput\">Your Text<\/label><br \/>\n    <textarea id=\"hrafnRtInput\" rows=\"3\" placeholder=\"Type your text here ...\" maxlength=\"300\"><\/textarea>\n  <\/div>\n<div class=\"hrafn-rt__field\">\n    <label for=\"hrafnRtSystem\">Rune Alphabet<\/label><br \/>\n    <select id=\"hrafnRtSystem\"><option value=\"elder\">Elder Futhark (c. 150\u2013800 AD, 24 runes)<\/option><option value=\"younger\" selected>Younger Futhark (c. 800\u20131100 AD, 16 runes, Viking Age)<\/option><option value=\"futhorc\">Anglo-Saxon Futhorc (c. 400\u20131100 AD, 29 runes)<\/option><\/select>\n  <\/div>\n<div class=\"hrafn-rt__outputs\">\n<div class=\"hrafn-rt__field\">\n<div class=\"hrafn-rt__field-head\">\n        <label for=\"hrafnRtPhon\">Phonetic Transcription<\/label><br \/>\n        <button type=\"button\" class=\"hrafn-rt__copy\" data-copy-target=\"hrafnRtPhon\">Copy<\/button>\n      <\/div>\n<p>      <textarea id=\"hrafnRtPhon\" rows=\"2\" readonly placeholder=\"...\"><\/textarea>\n    <\/div>\n<div class=\"hrafn-rt__field\">\n<div class=\"hrafn-rt__field-head\">\n        <label for=\"hrafnRtRunes\">In Runes<\/label><br \/>\n        <button type=\"button\" class=\"hrafn-rt__copy\" data-copy-target=\"hrafnRtRunes\">Copy<\/button>\n      <\/div>\n<p>      <textarea id=\"hrafnRtRunes\" rows=\"2\" readonly class=\"hrafn-rt__runes-out\" placeholder=\"...\"><\/textarea>\n    <\/div>\n<\/p><\/div>\n<p class=\"hrafn-rt__note\">Note: This is a phonetic transliteration (letter-to-rune transcription), not a linguistic translation into Old Norse. There is no reliable automatic translation of modern languages into Old Norse \u2013 for a historically accurate text, we recommend consulting someone versed in runes.<\/p>\n<\/div>\n<style>\n#hrafnRuneTranslator {\n  --gold: #C9A227;\n  --cream: #F5F0E6;\n  --dark: #0D0D0F;\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  color: var(--cream);\n  max-width: 720px;\n  margin: 0 auto;\n  padding: 32px 28px 36px;\n  background: rgba(245, 240, 230, 0.04);\n  border: 1px solid rgba(245, 240, 230, 0.12);\n  border-radius: 12px;\n  box-sizing: border-box;\n}\n#hrafnRuneTranslator *, #hrafnRuneTranslator *::before, #hrafnRuneTranslator *::after {\n  box-sizing: border-box;\n}\n#hrafnRuneTranslator .hrafn-rt__intro p {\n  margin: 0 0 24px;\n  color: rgba(245, 240, 230, 0.75);\n  font-size: 15px;\n  line-height: 1.6;\n}\n#hrafnRuneTranslator .hrafn-rt__field {\n  margin-bottom: 20px;\n}\n#hrafnRuneTranslator .hrafn-rt__field-head {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 12px;\n}\n#hrafnRuneTranslator label {\n  display: block;\n  font-family: 'Cinzel', Georgia, \"Times New Roman\", serif;\n  font-size: 13px;\n  font-weight: 600;\n  letter-spacing: 0.06em;\n  text-transform: uppercase;\n  color: var(--gold);\n  margin-bottom: 8px;\n}\n#hrafnRuneTranslator textarea,\n#hrafnRuneTranslator select {\n  width: 100%;\n  background: rgba(13, 13, 15, 0.55);\n  border: 1px solid rgba(245, 240, 230, 0.18);\n  border-radius: 8px;\n  color: var(--cream);\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  font-size: 16px;\n  padding: 12px 14px;\n  resize: vertical;\n  outline: none;\n  transition: border-color 0.2s ease;\n}\n#hrafnRuneTranslator textarea:focus,\n#hrafnRuneTranslator select:focus {\n  border-color: var(--gold);\n}\n#hrafnRuneTranslator textarea[readonly] {\n  background: rgba(13, 13, 15, 0.35);\n  color: var(--cream);\n  cursor: text;\n}\n#hrafnRuneTranslator .hrafn-rt__runes-out {\n  font-size: 26px;\n  line-height: 1.5;\n  letter-spacing: 0.04em;\n}\n#hrafnRuneTranslator select {\n  appearance: none;\n  -webkit-appearance: none;\n  background-image: url(\"data:image\/svg+xml;charset=UTF-8,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A227' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c\/polyline%3e%3c\/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right 14px center;\n  padding-right: 40px;\n  cursor: pointer;\n}\n#hrafnRuneTranslator .hrafn-rt__outputs {\n  margin-top: 28px;\n  padding-top: 24px;\n  border-top: 1px solid rgba(245, 240, 230, 0.12);\n}\n#hrafnRuneTranslator .hrafn-rt__copy {\n  font-family: 'Cinzel', Georgia, \"Times New Roman\", serif;\n  font-size: 12px;\n  font-weight: 600;\n  letter-spacing: 0.04em;\n  text-transform: uppercase;\n  background: transparent;\n  color: var(--cream);\n  border: 1px solid rgba(245, 240, 230, 0.25);\n  border-radius: 999px;\n  padding: 6px 16px;\n  cursor: pointer;\n  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;\n  white-space: nowrap;\n}\n#hrafnRuneTranslator .hrafn-rt__copy:hover {\n  border-color: var(--gold);\n  color: var(--gold);\n}\n#hrafnRuneTranslator .hrafn-rt__copy.is-copied {\n  background: var(--gold);\n  color: var(--dark);\n  border-color: var(--gold);\n}\n#hrafnRuneTranslator .hrafn-rt__note {\n  margin: 24px 0 0;\n  font-size: 12.5px;\n  line-height: 1.6;\n  color: rgba(245, 240, 230, 0.5);\n}\n@media (max-width: 560px) {\n  #hrafnRuneTranslator {\n    padding: 24px 18px 28px;\n  }\n  #hrafnRuneTranslator .hrafn-rt__runes-out {\n    font-size: 22px;\n  }\n}\n<\/style>\n<p><script>\n(function () {\n  var RUNES = {\n    elder: {\n      label: \"Elder Futhark\",\n      digraphs: [\n        [\"sch\", \"sk\"], [\"tsch\", \"k\"], [\"ch\", \"h\"], [\"ck\", \"k\"], [\"th\", \"\u00fe\"],\n        [\"ph\", \"f\"], [\"qu\", \"kv\"], [\"ng\", \"\u014b\"], [\"ei\", \"ei\"], [\"ie\", \"i\"],\n        [\"tz\", \"ts\"], [\"x\", \"ks\"]\n      ],\n      map: {\n        a:\"\u16a8\", b:\"\u16d2\", c:\"\u16b2\", d:\"\u16de\", e:\"\u16d6\", f:\"\u16a0\", g:\"\u16b7\", h:\"\u16ba\", i:\"\u16c1\",\n        j:\"\u16c3\", k:\"\u16b2\", l:\"\u16da\", m:\"\u16d7\", n:\"\u16be\", o:\"\u16df\", p:\"\u16c8\", q:\"\u16b2\", r:\"\u16b1\",\n        s:\"\u16ca\", t:\"\u16cf\", u:\"\u16a2\", v:\"\u16b9\", w:\"\u16b9\", y:\"\u16c1\", z:\"\u16c9\", \u00fe:\"\u16a6\", \u014b:\"\u16dc\"\n      }\n    },\n    younger: {\n      label: \"Younger Futhark\",\n      digraphs: [\n        [\"sch\", \"sk\"], [\"tsch\", \"k\"], [\"ch\", \"h\"], [\"ck\", \"k\"], [\"th\", \"\u00fe\"],\n        [\"ph\", \"f\"], [\"qu\", \"kv\"], [\"ng\", \"nk\"], [\"dh\", \"\u00fe\"], [\"tz\", \"ts\"],\n        [\"x\", \"ks\"], [\"c\", \"k\"]\n      ],\n      map: {\n        a:\"\u16c5\", b:\"\u16d2\", d:\"\u16cf\", e:\"\u16c1\", f:\"\u16a0\", g:\"\u16b4\", h:\"\u16bc\", i:\"\u16c1\", j:\"\u16c1\",\n        k:\"\u16b4\", l:\"\u16da\", m:\"\u16d8\", n:\"\u16be\", o:\"\u16a2\", p:\"\u16d2\", r:\"\u16b1\", s:\"\u16cb\", t:\"\u16cf\",\n        u:\"\u16a2\", v:\"\u16a2\", w:\"\u16a2\", y:\"\u16a2\", z:\"\u16e6\", \u00fe:\"\u16a6\"\n      }\n    },\n    futhorc: {\n      label: \"Anglo-Saxon Futhorc\",\n      digraphs: [\n        [\"sch\", \"sk\"], [\"tsch\", \"k\"], [\"sh\", \"sk\"], [\"ch\", \"h\"], [\"ck\", \"k\"], [\"th\", \"\u00fe\"],\n        [\"dh\", \"\u00f0\"], [\"ph\", \"f\"], [\"qu\", \"kw\"], [\"ng\", \"\u014b\"], [\"ea\", \"\u16e0\"],\n        [\"eo\", \"\u16c7\"], [\"ae\", \"\u00e6\"], [\"oe\", \"\u0153\"], [\"tz\", \"ts\"], [\"c\", \"k\"]\n      ],\n      map: {\n        a:\"\u16aa\", \u00e6:\"\u16ab\", b:\"\u16d2\", d:\"\u16de\", e:\"\u16d6\", f:\"\u16a0\", g:\"\u16b7\", h:\"\u16bb\", i:\"\u16c1\",\n        j:\"\u16c4\", k:\"\u16e3\", l:\"\u16da\", m:\"\u16d7\", n:\"\u16be\", o:\"\u16a9\", \u0153:\"\u16df\", p:\"\u16c8\", q:\"\u16e2\",\n        r:\"\u16b1\", s:\"\u16cb\", t:\"\u16cf\", u:\"\u16a2\", v:\"\u16a0\", w:\"\u16b9\", x:\"\u16c9\", y:\"\u16a3\", z:\"\u16cb\",\n        \u00fe:\"\u16a6\", \u00f0:\"\u16a6\", \u014b:\"\u16dd\"\n      }\n    }\n  };\n  function normalize(str) {\n    return str\n      .toLowerCase()\n      .replace(\/\u00e4\/g, \"ae\")\n      .replace(\/\u00f6\/g, \"oe\")\n      .replace(\/\u00fc\/g, \"ue\")\n      .replace(\/\u00df\/g, \"ss\")\n      .replace(\/[\u00e1\u00e0\u00e2]\/g, \"a\")\n      .replace(\/[\u00e9\u00e8\u00ea]\/g, \"e\")\n      .replace(\/[\u00ed\u00ec\u00ee]\/g, \"i\")\n      .replace(\/[\u00f3\u00f2\u00f4]\/g, \"o\")\n      .replace(\/[\u00fa\u00f9\u00fb]\/g, \"u\");\n  }\n  function applyDigraphs(str, digraphs) {\n    var sorted = digraphs.slice().sort(function (a, b) { return b[0].length - a[0].length; });\n    var result = \"\";\n    var i = 0;\n    outer:\n    while (i < str.length) {\n      for (var d = 0; d < sorted.length; d++) {\n        var from = sorted[d][0];\n        if (str.substr(i, from.length) === from) {\n          result += sorted[d][1];\n          i += from.length;\n          continue outer;\n        }\n      }\n      result += str[i];\n      i++;\n    }\n    return result;\n  }\n  function toRunes(phonetic, map) {\n    var out = \"\";\n    for (var i = 0; i < phonetic.length; i++) {\n      var ch = phonetic[i];\n      if (ch === \" \") { out += \"  \"; continue; }\n      if (\/[a-z\u00e4\u00e6\u00fe\u00f0\u0153\u014b]\/i.test(ch) &#038;&#038; map[ch]) {\n        out += map[ch];\n      } else {\n        out += ch;\n      }\n    }\n    return out;\n  }\n  function translate() {\n    var input = document.getElementById(\"hrafnRtInput\").value;\n    var systemKey = document.getElementById(\"hrafnRtSystem\").value;\n    var system = RUNES[systemKey];\n    var phonOut = document.getElementById(\"hrafnRtPhon\");\n    var runeOut = document.getElementById(\"hrafnRtRunes\");\n    if (!input.trim()) {\n      phonOut.value = \"\";\n      runeOut.value = \"\";\n      return;\n    }\n    var normalized = normalize(input);\n    var phonetic = applyDigraphs(normalized, system.digraphs);\n    var runes = toRunes(phonetic, system.map);\n    phonOut.value = phonetic;\n    runeOut.value = runes;\n  }\n  function setupCopyButtons() {\n    var buttons = document.querySelectorAll(\"#hrafnRuneTranslator .hrafn-rt__copy\");\n    buttons.forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        var targetId = btn.getAttribute(\"data-copy-target\");\n        var target = document.getElementById(targetId);\n        if (!target || !target.value) return;\n        navigator.clipboard.writeText(target.value).then(function () {\n          var original = btn.textContent;\n          btn.textContent = \"Copied!\";\n          btn.classList.add(\"is-copied\");\n          setTimeout(function () {\n            btn.textContent = original;\n            btn.classList.remove(\"is-copied\");\n          }, 1500);\n        }).catch(function () {\n          target.removeAttribute(\"readonly\");\n          target.focus();\n          target.select();\n          document.execCommand(\"copy\");\n          target.setAttribute(\"readonly\", \"readonly\");\n        });\n      });\n    });\n  }\n  function init() {\n    var input = document.getElementById(\"hrafnRtInput\");\n    var select = document.getElementById(\"hrafnRtSystem\");\n    if (!input || !select) return;\n    input.addEventListener(\"input\", translate);\n    select.addEventListener(\"change\", translate);\n    setupCopyButtons();\n  }\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n})();\n<\/script><\/p>\n<style>#hrafnRuneAlphabets{--gold:#C9A227;--cream:#F5F0E6;--dark:#0D0D0F;font-family:'Inter',-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;max-width:960px;margin:48px auto 0;padding:0 8px;box-sizing:border-box;}#hrafnRuneAlphabets *,#hrafnRuneAlphabets *::before,#hrafnRuneAlphabets *::after{box-sizing:border-box;}#hrafnRuneAlphabets h2{font-family:'Cinzel',Georgia,\"Times New Roman\",serif;text-align:center;margin:0 0 12px;}#hrafnRuneAlphabets>p.hrafn-ra__intro{text-align:center;color:rgba(245,240,230,0.65);font-size:15px;line-height:1.6;max-width:620px;margin:0 auto 32px;}#hrafnRuneAlphabets .hrafn-ra__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}@media (max-width:760px){#hrafnRuneAlphabets .hrafn-ra__grid{grid-template-columns:1fr;}}#hrafnRuneAlphabets .hrafn-ra__card{background:rgba(245,240,230,0.04);border:1px solid rgba(245,240,230,0.12);border-radius:12px;padding:24px 22px;}#hrafnRuneAlphabets .hrafn-ra__card h3{font-family:'Cinzel',Georgia,\"Times New Roman\",serif;color:var(--gold);font-size:17px;margin:0 0 6px;letter-spacing:0.02em;}#hrafnRuneAlphabets .hrafn-ra__meta{font-family:'Cinzel',Georgia,\"Times New Roman\",serif;color:rgba(201,162,39,0.75);font-size:11.5px;letter-spacing:0.06em;text-transform:uppercase;margin:0 0 14px;}#hrafnRuneAlphabets .hrafn-ra__card p:last-child{color:rgba(245,240,230,0.78);font-size:14px;line-height:1.65;margin:0;}<\/style>\n\n<div id=\"hrafnRuneAlphabets\" class=\"hrafn-ra\">\n<h2>The Three Rune Alphabets<\/h2>\n<p class=\"hrafn-ra__intro\">A brief look at the origin, time period, and development of the three rune systems offered by this tool.<\/p>\n<div class=\"hrafn-ra__grid\">\n<div class=\"hrafn-ra__card\">\n<h3>Elder Futhark<\/h3>\n<p class=\"hrafn-ra__meta\">c. 150\u2013800 CE \u00b7 24 runes<\/p>\n<p>The oldest known runic alphabet of the Germanic peoples. The earliest inscriptions date to the 2nd century CE \u2013 likely emerging from contact between Germanic groups and Mediterranean writing cultures. Used by tribes across Northern and Central Europe until it gave way to the Younger Futhark around 700\/800 CE.<\/p>\n<\/div>\n<div class=\"hrafn-ra__card\">\n<h3>Younger Futhark<\/h3>\n<p class=\"hrafn-ra__meta\">c. 800\u20131100 CE \u00b7 16 runes<\/p>\n<p>Derived from the Elder Futhark but radically simplified: only 16 of the original 24 characters remained, with several sounds now sharing a single symbol. It became the runic alphabet of the Viking Age proper and survives on thousands of runestones across Scandinavia.<\/p>\n<\/div>\n<div class=\"hrafn-ra__card\">\n<h3>Anglo-Saxon Futhorc<\/h3>\n<p class=\"hrafn-ra__meta\">c. 400\u20131100 CE \u00b7 29 runes<\/p>\n<p>An Anglo-Frisian development of the Elder Futhark, adapted to the richer sound system of Old English. In use in England and Frisia from the 5th century onward, it eventually grew to as many as 33 characters \u2013 found on artifacts such as the famous Franks Casket.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Enter your text and choose a rune alphabet. The tool converts your text phonetically into the chosen runic script. What&#8217;s the difference between the three rune alphabets? More\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1251","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/pages\/1251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/comments?post=1251"}],"version-history":[{"count":5,"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/pages\/1251\/revisions"}],"predecessor-version":[{"id":1625,"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/pages\/1251\/revisions\/1625"}],"wp:attachment":[{"href":"https:\/\/hrafn-wikinger.com\/en\/wp-json\/wp\/v2\/media?parent=1251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}