{"id":490,"date":"2012-07-20T09:18:41","date_gmt":"2012-07-20T16:18:41","guid":{"rendered":"http:\/\/blog.mozilla.org\/axel\/?p=490"},"modified":"2012-07-20T10:34:43","modified_gmt":"2012-07-20T17:34:43","slug":"why-l10n-tools-should-be-editors-instead-of-serializers","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/axel\/2012\/07\/20\/why-l10n-tools-should-be-editors-instead-of-serializers\/","title":{"rendered":"Why l10n tools should be editors instead of serializers"},"content":{"rendered":"<p>If your tool serializes internal state instead of editing files, it&#8217;ll do surprising things if it encounters surprising content. Like, turn<\/p>\n<p><code>errNotSemicolonTerminated=Named character reference was not terminated by a semicolon. (Or \u201c&\u201d should have been escaped as \u201c&amp;amp;\u201d.)<\/code><\/p>\n<p>into<\/p>\n<p><code>errNotSemicolonTerminated=Named character reference was not terminated by a semicolon. (Or \u201c\u201d should have been escaped as \u201camp;\u201d.)<\/code><\/p>\n<p>And that&#8217;s for a string the localizer never touched.<\/p>\n<p>(likely <a href=\"http:\/\/code.google.com\/p\/narro\/issues\/detail?id=316\">narro issue 316<\/a>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If your tool serializes internal state instead of editing files, it&#8217;ll do surprising things if it encounters surprising content. Like, turn errNotSemicolonTerminated=Named character reference was not terminated by a semicolon. (Or \u201c&#038;\u201d should have been escaped as \u201c&amp;amp;\u201d.) into errNotSemicolonTerminated=Named character reference was not terminated by a semicolon. (Or \u201c\u201d should have been escaped as [&hellip;]<\/p>\n","protected":false},"author":17,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,5],"tags":[23779,23778],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/posts\/490"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/comments?post=490"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/posts\/490\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/media?parent=490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/categories?post=490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/axel\/wp-json\/wp\/v2\/tags?post=490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}