{"id":124,"date":"2014-09-19T09:10:33","date_gmt":"2014-09-19T07:10:33","guid":{"rendered":"http:\/\/qed.dk\/rasmus-kaae\/?p=123"},"modified":"2016-12-19T07:10:11","modified_gmt":"2016-12-19T07:10:11","slug":"fleresprogede-websites","status":"publish","type":"post","link":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/","title":{"rendered":"Flersprogede websites &#8211; what to do?"},"content":{"rendered":"<p><a href=\"https:\/\/i0.wp.com\/qed.dk\/rasmus-kaae\/wp-content\/uploads\/sites\/10\/earth-405096_640.jpg\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-126\" src=\"https:\/\/i0.wp.com\/qed.dk\/rasmus-kaae\/wp-content\/uploads\/sites\/10\/earth-405096_640.jpg?resize=640%2C426\" alt=\"earth-405096_640\" width=\"640\" height=\"426\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>Jeg har i en \u00e5rr\u00e6kke vedligeholdt sites med flersproget indhold. Det har ledt til en del problemer og tilh\u00f8rende l\u00f8sninger, men findes der andre alternativer?<\/p>\n<p>For en del \u00e5r siden byggede jeg mit f\u00f8rste website der skulle v\u00e6ret &#8220;let&#8221; at vedligeholde. \u00c9n af parametrene var at jeg ikke skulle ind i en CMS-skabelon for at \u00e6ndre s\u00e6tninger og ordlyd i statisk indhold. Sidenhen har denne egenskab udviklet sig og er blevet til mit &#8220;system&#8221; til at skabe og vedligeholde sprog-uafh\u00e6ngige websites i flere forskellige kontekster.<\/p>\n<p>De fleste websites jeg har arbejdet med er opbygget omkring en HTML-template der bliver populeret af to ting:<\/p>\n<ul>\n<li>Brugergenereret indhold (skal ikke overs\u00e6ttes)<\/li>\n<li>Systemgenereret indhold (skal kunne overs\u00e6ttes)<\/li>\n<\/ul>\n<p>At arbejde med en HTML-template som fundament og lade systemet HTML-siden med b\u00e5de brugergenereret indhold og systemgenereret indhold baseret p\u00e5 tags i HTML-templaten.<\/p>\n<p>&#8220;Systemet&#8221; er basalt set ikke er et system, men mere en grundtanke eller et design m\u00f8nster, som jeg har rafineret og finjusteret baseret p\u00e5 behov og erfaringer gjort gennem \u00e5rene. Rent evolution\u00e6rt har det v\u00e6ret gennem f\u00f8lgende livscyklus:<\/p>\n<ul>\n<li><strong>Kodedrevet<\/strong>: Sprog og indhold til systemgenereret indhold var indlejret, direkte i kodefilen. Dette gav hurtig udf\u00f8rsel af koden, men var vanskelig at vedligeholde over tid.<\/li>\n<li><strong>Databasedrevet<\/strong>: Sprog og indhold til systemgenereret indhold var gemt i tabeller i en databasen. Dette gav hurtig og let \u00e6ndring af sprog samt let vedligehold af flere sprog-varianter. En ulempe var dog at systemet skulle lave mange opslag i databasen per sidevisning hvilket gav d\u00e5rlig performance.<\/li>\n<li><strong>Fildrevet<\/strong>: Sprog og indhold til systemgenerert indhold var gemt i sprogfiler sammen med kildekoden. Dette gav, igen, hurtig udf\u00f8rsel af kode og forholdsvis let \u00e6ndring af sprog samt forholdsvis let vedligehold af flere sprog-varianter.<\/li>\n<\/ul>\n<p>F\u00e6lles for alle l\u00f8sninger er at de fungerer til en vis gr\u00e6nse. Det kr\u00e6ver stor omhu at vedligeholde sprogfilerne og ikke lade sig friste af at indlejre front-end funktionalitet, f.eks. er HTML-tags til layout acceptabel, mens Javascript er big no-go p\u00e5 grund af fare for at systemerne vil &#8220;drifte&#8221; fra hinanden.<\/p>\n<p>I det mange af mine systemer er lavet i PHP vil jeg eksemplificere via PHP:<\/p>\n<p>Kodedrevet:<\/p>\n<blockquote><p>\u00a0&lt;?<br \/>\nfunction do_something_nice()<br \/>\n{<br \/>\nif (evaluate_something())<br \/>\n{<br \/>\nreturn &#8220;Din evaluering &lt;strong&gt;korrekt&lt;\/strong&gt;&#8221;;<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nreturn &#8220;Din evaluering: &lt;strong&gt;ikke korrekt&lt;\/strong&gt;&#8221;;<br \/>\n}<br \/>\n}<br \/>\n?&gt;<\/p><\/blockquote>\n<p>Generelt for database- og fildrevet:<\/p>\n<blockquote><p>\u00a0&lt;?<br \/>\nfunction do_something_nice()<br \/>\n{<br \/>\nif (evaluate_something())<br \/>\n{<br \/>\nreturn term(&#8216;evalutate_false&#8217;);<br \/>\n}<br \/>\nelse<br \/>\n{<br \/>\nreturn term(&#8216;evaluate_true&#8217;);<br \/>\n}<br \/>\n}<br \/>\n?&gt;<\/p><\/blockquote>\n<p>Databasedrevet definition af &#8220;term&#8221;:<\/p>\n<blockquote><p>&lt;?<br \/>\nfunction term($t)<br \/>\n{<br \/>\n$lang = get_current_country();<br \/>\nreturn $g_db-&gt;fetch_single_field(&#8220;SELECT term FROM terms WHERE token='{$}&#8217; AND language='{$lang}'&#8221;);<br \/>\n}<br \/>\n?&gt;<\/p><\/blockquote>\n<p>Fildrevet definition af &#8220;term&#8221;:<\/p>\n<blockquote><p>&lt;?<br \/>\n$terms = array(<br \/>\n&#8216;evaluate_true&#8217; =&gt; array(&#8216;DK&#8217;=&gt;&#8217;Din evaluering: &lt;strong&gt;korrekt&lt;\/strong&gt;&#8217;, &#8216;EN&#8217;=&gt;&#8217;Your evaluation: &lt;strong&gt;true&lt;\/strong&gt;&#8217;),<br \/>\n&#8216;evaluate_false&#8217; =&gt; array(&#8216;DK&#8217;=&gt;&#8217;Din evaluering: &lt;strong&gt;ikke korrekt&lt;\/strong&gt;&#8217;, &#8216;EN&#8217;=&gt;&#8217;Your evaluation: &lt;strong&gt;false&lt;\/strong&gt;&#8217;)<br \/>\n);<br \/>\nfunction term($t)<br \/>\n{<br \/>\n$lang = get_current_country();<br \/>\nreturn $terms[$t][$lang];<br \/>\n}<br \/>\n?&gt;<\/p><\/blockquote>\n<p>Variant af fildrevet definition af &#8220;term&#8221;:<\/p>\n<blockquote><p>&lt;?<br \/>\n$lang = get_current_country();<br \/>\nrequire_once &#8220;terms.{$lang}.php&#8221;;<br \/>\nfunction term($t)<br \/>\n{<br \/>\nreturn $terms[$t];<br \/>\n}<br \/>\n?&gt;<\/p><\/blockquote>\n<p>Personligt synes jeg ikke nogen af mine l\u00f8sninger er specielt brugervenlige og elegante, men hver i s\u00e6r har de deres styrker. Den sidste variant af fildrevet er den der performer best, omvendt er det ogs\u00e5 den som er sv\u00e6rest at vedligeholde (af de to).<\/p>\n<p>Hvad er jeres erfaringer &#8211; og hvad g\u00f8r I? Det beh\u00f8ver ikke n\u00f8dvendigvis at v\u00e6re sprogspecifikt, da jeg er p\u00e5 jagt efter designm\u00f8nstre frem for kodeudvekskling.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Jeg har i en \u00e5rr\u00e6kke vedligeholdt sites med flersproget indhold. Det har ledt til en del problemer og tilh\u00f8rende l\u00f8sninger, men findes der andre alternativer? For en del \u00e5r siden byggede jeg mit f\u00f8rste website&#8230;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[2,1],"tags":[52,53,55],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Flersprogede websites - what to do? - @agilerasmus<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flersprogede websites - what to do? - @agilerasmus\" \/>\n<meta property=\"og:description\" content=\"Jeg har i en \u00e5rr\u00e6kke vedligeholdt sites med flersproget indhold. Det har ledt til en del problemer og tilh\u00f8rende l\u00f8sninger, men findes der andre alternativer? For en del \u00e5r siden byggede jeg mit f\u00f8rste website...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/\" \/>\n<meta property=\"og:site_name\" content=\"@agilerasmus\" \/>\n<meta property=\"article:published_time\" content=\"2014-09-19T07:10:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-12-19T07:10:11+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#website\",\"url\":\"https:\/\/agilerasmus.com\/wordpress\/\",\"name\":\"@agilerasmus\",\"description\":\"agile coach, trainer and scrum master\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/agilerasmus.com\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#webpage\",\"url\":\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/\",\"name\":\"Flersprogede websites - what to do? - @agilerasmus\",\"isPartOf\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#primaryimage\"},\"datePublished\":\"2014-09-19T07:10:33+00:00\",\"dateModified\":\"2016-12-19T07:10:11+00:00\",\"author\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096\"},\"breadcrumb\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/agilerasmus.com\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flersprogede websites &#8211; what to do?\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/agilerasmus.com\/wordpress\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Flersprogede websites - what to do? - @agilerasmus","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/","og_locale":"en_GB","og_type":"article","og_title":"Flersprogede websites - what to do? - @agilerasmus","og_description":"Jeg har i en \u00e5rr\u00e6kke vedligeholdt sites med flersproget indhold. Det har ledt til en del problemer og tilh\u00f8rende l\u00f8sninger, men findes der andre alternativer? For en del \u00e5r siden byggede jeg mit f\u00f8rste website...","og_url":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/","og_site_name":"@agilerasmus","article_published_time":"2014-09-19T07:10:33+00:00","article_modified_time":"2016-12-19T07:10:11+00:00","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/agilerasmus.com\/wordpress\/#website","url":"https:\/\/agilerasmus.com\/wordpress\/","name":"@agilerasmus","description":"agile coach, trainer and scrum master","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/agilerasmus.com\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"ImageObject","@id":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#primaryimage","inLanguage":"en-GB","url":"","contentUrl":""},{"@type":"WebPage","@id":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#webpage","url":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/","name":"Flersprogede websites - what to do? - @agilerasmus","isPartOf":{"@id":"https:\/\/agilerasmus.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#primaryimage"},"datePublished":"2014-09-19T07:10:33+00:00","dateModified":"2016-12-19T07:10:11+00:00","author":{"@id":"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096"},"breadcrumb":{"@id":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/agilerasmus.com\/wordpress\/fleresprogede-websites\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/agilerasmus.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Flersprogede websites &#8211; what to do?"}]},{"@type":"Person","@id":"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096","name":"admin","image":{"@type":"ImageObject","@id":"https:\/\/agilerasmus.com\/wordpress\/#personlogo","inLanguage":"en-GB","url":"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/agilerasmus.com\/wordpress\/author\/admin\/"}]}},"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8dzln-20","jetpack-related-posts":[{"id":174,"url":"https:\/\/agilerasmus.com\/wordpress\/naar-scrum-ikke-skalerer\/","url_meta":{"origin":124,"position":0},"title":"N\u00e5r Scrum ikke skalerer","date":"February 2, 2015","format":false,"excerpt":"\u00a0 I Danske Bank har vi i flere \u00e5r arbejdet med at implementere agilitet i Group IT i form af introducering af b\u00e5de Scrum og Kanban. De seneste \u00e5r har fokus v\u00e6gtet stabile teams meget h\u00f8jt, hvilket stiller nye krav til den resterende del af organisationen. Problemstilling Mange medarbejdere og\u2026","rel":"","context":"In &quot;Dansk&quot;","img":{"alt_text":"safe","src":"https:\/\/i2.wp.com\/qed.dk\/rasmus-kaae\/wp-content\/uploads\/sites\/10\/safe-1024x740.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":116,"url":"https:\/\/agilerasmus.com\/wordpress\/breaking-agile-retrospective-meetings-2\/","url_meta":{"origin":124,"position":1},"title":"Breaking agile &#8211; Retrospective meetings","date":"February 10, 2014","format":false,"excerpt":"I dette indl\u00e6g vil jeg guide dig til nedbrydning af den agile tanke om retrospective meetings. I mit daglige virke som agile coach har jeg observeret en r\u00e6kke guldkorn der alle bidrager til nedbrydning af den agile tankegang. F\u00f8lg med i de kommende indl\u00e6g og f\u00e5 flere hints til hvordan\u2026","rel":"","context":"In &quot;Dansk&quot;","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/qed.dk\/rasmus-kaae\/wp-content\/uploads\/sites\/10\/bomb-154456_640-300x261.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":113,"url":"https:\/\/agilerasmus.com\/wordpress\/laeser-du-rulletekster\/","url_meta":{"origin":124,"position":2},"title":"L\u00e6ser du rulletekster?","date":"January 17, 2014","format":false,"excerpt":"Hvorfor er det at alle tv-udsendelser og film skal afsluttes med alen lange rulletekster der beskriver holdet bag produktionen? I weekenden var jeg alene hjemme og afholdte Netflix maraton. Det var en hyggelig aften og der blev set b\u00e5de serier og film. \u00c9n ting der generede mig var anvendelsen af\u2026","rel":"","context":"In &quot;Dansk&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":848,"url":"https:\/\/agilerasmus.com\/wordpress\/selv-ledelse-versus-medarbejderledelse\/","url_meta":{"origin":124,"position":3},"title":"Selv-ledelse versus medarbejderledelse","date":"May 7, 2019","format":false,"excerpt":"For nyligt afholdte Kristian Haugaard og jeg et indl\u00e6g for en gruppe HR-ledere i Aarhus. Det har efterf\u00f8lgende givet anledning til refleksion hos mig: Hvilke elementer, der traditionelt h\u00f8rer hjemme hos enten en HR afdeling eller h\u00f8rer under personaleledelse, kunne et agilt team liges\u00e5vel selv administrere? For ikke at teoretisere\u2026","rel":"","context":"In &quot;Dansk&quot;","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/05\/boss-454867_960_720.jpg?fit=960%2C638&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":700,"url":"https:\/\/agilerasmus.com\/wordpress\/springapp-fra-ide-til-markedsledende-app\/","url_meta":{"origin":124,"position":4},"title":"SpringApp &#8211; fra ide til markedsledende app","date":"September 21, 2018","format":false,"excerpt":"Tilbage i 2014 fik jeg en ide til en app som jeg kunne se et potentielt marked for. Tanken med SpringApp var i f\u00f8rste omgang ikke at det skulle v\u00e6re en stor succes med mange downloads, men blot et v\u00e6rkt\u00f8j jeg selv kunne anvende i fritiden. Det har dog efterf\u00f8lgende\u2026","rel":"","context":"In &quot;Dansk&quot;","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2018\/09\/Sk\u00e6rmbillede-2018-09-21-10.16.39.png?fit=1200%2C673&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":122,"url":"https:\/\/agilerasmus.com\/wordpress\/tool-chain-til-webudvikling\/","url_meta":{"origin":124,"position":5},"title":"Tool chain til webudvikling","date":"July 8, 2014","format":false,"excerpt":"S\u00e5, nu blev det endelig tid til at skrive en rant omkring teknik og n\u00f8rderi - bedre kendt som \"rigtig arbejde\". Jeg h\u00e5ber at kunne f\u00e5 lidt feedback p\u00e5 min tool chain fra nogen der har erfaringer fra noget tilsvarende eller blot at give lidt inspiration til andre. I min\u2026","rel":"","context":"In &quot;Dansk&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2014\/07\/children-593313_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts\/124"}],"collection":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/comments?post=124"}],"version-history":[{"count":1,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts\/124\/revisions"}],"predecessor-version":[{"id":344,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts\/124\/revisions\/344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/media\/126"}],"wp:attachment":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/media?parent=124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/categories?post=124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/tags?post=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}