{"id":1143,"date":"2009-02-20T23:08:16","date_gmt":"2009-02-20T21:08:16","guid":{"rendered":"http:\/\/planetozh.com\/blog\/?p=1143"},"modified":"2009-02-20T23:08:16","modified_gmt":"2009-02-20T21:08:16","slug":"echo-__i-hate-localizing-my-plugins-how-about-something-different","status":"publish","type":"post","link":"https:\/\/planetozh.com\/blog\/2009\/02\/echo-__i-hate-localizing-my-plugins-how-about-something-different\/","title":{"rendered":"echo __(&#8216;I Hate Localizing My Plugins. How About Something Different?&#8217;);"},"content":{"rendered":"<p>Most of the time, I quite like coding WordPress plugins. Nonetheless, in the programming flow, there is something that I hate: all the localization process that takes place at the end of a project. That is, making sure I didn&#39;t hardcode a string that won&#39;t be translated, creating or updating the .pot template files (&quot;<em>OK, for the 1000th time, how the f** does Poedit work, again?<\/em>&quot;).<\/p>\n<p>This <a href=\"http:\/\/en.wikipedia.org\/wiki\/L18n\">L10n<\/a> process has no added value for me as a user, as I&#39;ve always used the default (<em>ie<\/em> English) WordPress version. Yet, I know some value it more than I do (I guess a lot of people don&#39;t understand a single word of English after all), and, that&#39;s were it gets painful to me, a few people put time of theirs into creating translation files for my plugins, expecting me to provide an up to date and clean translating framework. So basically, every time I botched the adminmenu.pot file in my <a href=\"https:\/\/planetozh.com\/blog\/my-projects\/wordpress-admin-menu-drop-down-css\/\">Admin Drop Down Menu<\/a> plugin recently (by leaving hard coded hence untranslatable strings in it), I sort of wasted kind translators&#39; work and probably confused end users. Sorry peeps.<\/p>\n<p>This recurring problem has got me thinking a bit. For my next plugin, instead of using the built-in translating API (a .pot template file, localized .po and .mo files, internal translating functions such as <tt>__()<\/tt>), maybe I&#39;m going to sort of reinvent the wheel (something I always advocate not to do, obviously) with a new concept I still have to polish: the plugin would fetch (and probably cache) translation files from a location a user would point it to, that is from a translator&#39;s web site. This way, the translator would be able to update their translation without having to wait for me to include their work, and I would also give them more exposure. The key point being: I would never have to bother with updating the plugin just because of translation files or problems.<\/p>\n<p>Still something I have to work on, but the idea really nags me during my morning showers these days :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most of the time, I quite like coding WordPress plugins. Nonetheless, in the programming flow, there is something that I hate: all the localization process that takes place at the end of a project. That is, making sure I didn&#39;t hardcode a string that won&#39;t be translated, creating or updating the .pot template files (&quot;OK, for the 1000th time, how\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[284,85,256,245],"class_list":["post-1143","post","type-post","status-publish","format-standard","hentry","category-published","tag-admin-drop-down-menu","tag-plugins","tag-translation","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/posts\/1143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/comments?post=1143"}],"version-history":[{"count":0,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/posts\/1143\/revisions"}],"wp:attachment":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/media?parent=1143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/categories?post=1143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/tags?post=1143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}