{"id":107,"date":"2011-04-09T18:12:58","date_gmt":"2011-04-09T22:12:58","guid":{"rendered":"http:\/\/www.mattbertolini.com\/blog\/?p=107"},"modified":"2011-04-09T18:17:09","modified_gmt":"2011-04-09T22:17:09","slug":"gwt-server-side-internationalization-with-hermes","status":"publish","type":"post","link":"https:\/\/www.mattbertolini.com\/blog\/2011\/04\/09\/gwt-server-side-internationalization-with-hermes\/","title":{"rendered":"GWT Server-side Internationalization With Hermes"},"content":{"rendered":"<p>I recently made a post on my company&#8217;s blog about a new open source project I just released called <a href=\"https:\/\/github.com\/MaliciousMonkey\/Hermes\">Hermes<\/a>. Here is a short excerpt:<\/p>\n<blockquote><p>Greetings interwebs! My name is Matt Bertolini and I am an engineer here  at Travel Tripper. I thought it was about time I made an appearance on  our tech blog. I want to talk about a new project I have recently  finished and am sharing with the world.<\/p>\n<p><strong>A Little Backstory<\/strong><\/p>\n<p>Our application, <a href=\"http:\/\/www.traveltripper.com\/hotel-reservation-services\/online-booking-engine\">RezTrip<\/a>, is in the process of being internationalized. Since it is a GWT based application, we chose to use the GWT <a href=\"http:\/\/code.google.com\/webtoolkit\/doc\/latest\/DevGuideI18n.html#DevGuideStaticStringInternationalization\">static string internationalization<\/a> features. Unfortunately, these features only work on the GWT  client-side and we have lots of other client-facing strings that need to  be internationalized (client emails, legacy HTML pages, etc.).<\/p>\n<p><strong>The gwt-i18n-server Library<\/strong><\/p>\n<p>A quick Google search on the subject of &#8220;server-side GWT i18n&#8221; found a library called <a href=\"http:\/\/code.google.com\/p\/gwt-i18n-server\/\">gwt-i18n-server<\/a>.  This library gives the server-side support for the GWT static string  i18n interfaces and properties files. We quickly incorporated the  library into RezTrip and found it was pretty buggy. Worse yet,  development on the library had stagnated and hadn&#8217;t been updated in over  a year. This is where I come in. Not satisfied with admitting defeat  and implementing a separate i18n system just for server-side content, I  decided to fork the gwt-i18n-server library and fix the bugs.<\/p><\/blockquote>\n<p>To read the rest of the story, <a href=\"http:\/\/techblog.traveltripper.com\/2011\/04\/gwt-server-side-internationalization.html\">click here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently made a post on my company&#8217;s blog about a new open source project I just released called Hermes. Here is a short excerpt: Greetings interwebs! My name is Matt Bertolini and I am an engineer here at Travel Tripper. I thought it was about time I made an appearance on our tech blog. &hellip; <a href=\"https:\/\/www.mattbertolini.com\/blog\/2011\/04\/09\/gwt-server-side-internationalization-with-hermes\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">GWT Server-side Internationalization With Hermes<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[145,103,47],"tags":[146,152,147,148,121,151,150,149],"class_list":["post-107","post","type-post","status-publish","format-standard","hentry","category-open-source","category-programming","category-technology","tag-gwt","tag-hermes","tag-i18n","tag-internationalization","tag-language","tag-locale","tag-server","tag-server-side"],"_links":{"self":[{"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/posts\/107"}],"collection":[{"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":6,"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"predecessor-version":[{"id":117,"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/posts\/107\/revisions\/117"}],"wp:attachment":[{"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mattbertolini.com\/blog\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}