<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Converting a Rails application from Gettext to I18n</title>
	<atom:link href="http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/feed/" rel="self" type="application/rss+xml" />
	<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 20 Nov 2009 23:38:19 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Hack to Learn : Converting a Rails application from Gettext to I18n</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-624</link>
		<dc:creator>Hack to Learn : Converting a Rails application from Gettext to I18n</dc:creator>
		<pubDate>Fri, 29 May 2009 22:17:15 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-624</guid>
		<description>[...] by Administrator Fri, 29 May 2009 22:23:00 GMT &#8216;jaap&#8217; wrote a rake task to convert your Rails application from using Gettext translation into the new I18n support, which [...]</description>
		<content:encoded><![CDATA[<p>[...] by Administrator Fri, 29 May 2009 22:23:00 GMT &#8216;jaap&#8217; wrote a rake task to convert your Rails application from using Gettext translation into the new I18n support, which [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: grosser</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-449</link>
		<dc:creator>grosser</dc:creator>
		<pubDate>Sat, 21 Feb 2009 12:55:14 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-449</guid>
		<description>simply stay with gettext, its simpler ;)

fast+threadsave+simple Gettext http://github.com/grosser/fast_gettext

2.2+ rails plugin for gettext and i18n http://github.com/grosser/gettext_i18n_rails

Example 2.3 application fast_gettext+i18n http://github.com/grosser/gettext_i18n_rails_example</description>
		<content:encoded><![CDATA[<p>simply stay with gettext, its simpler <img src='http://techblog.floorplanner.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>fast+threadsave+simple Gettext <a href="http://github.com/grosser/fast_gettext" rel="nofollow">http://github.com/grosser/fast_gettext</a></p>
<p>2.2+ rails plugin for gettext and i18n <a href="http://github.com/grosser/gettext_i18n_rails" rel="nofollow">http://github.com/grosser/gettext_i18n_rails</a></p>
<p>Example 2.3 application fast_gettext+i18n <a href="http://github.com/grosser/gettext_i18n_rails_example" rel="nofollow">http://github.com/grosser/gettext_i18n_rails_example</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andre Foeken</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-207</link>
		<dc:creator>Andre Foeken</dc:creator>
		<pubDate>Mon, 08 Dec 2008 08:20:49 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-207</guid>
		<description>Uglyness == i18n in rails 2.2 :(</description>
		<content:encoded><![CDATA[<p>Uglyness == i18n in rails 2.2 <img src='http://techblog.floorplanner.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Willem van Bergen</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-201</link>
		<dc:creator>Willem van Bergen</dc:creator>
		<pubDate>Wed, 03 Dec 2008 15:39:27 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-201</guid>
		<description>I forgot to mention that we have implemented a fallback to English if a string is not available in the current locale. So there is no fallback to the identifier, because we always have an English string available.</description>
		<content:encoded><![CDATA[<p>I forgot to mention that we have implemented a fallback to English if a string is not available in the current locale. So there is no fallback to the identifier, because we always have an English string available.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Willem van Bergen</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-200</link>
		<dc:creator>Willem van Bergen</dc:creator>
		<pubDate>Wed, 03 Dec 2008 15:38:05 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-200</guid>
		<description>I understand the concerns you have with the new i18n API. However, I can argue against the gettext approach as well:

We tend to adjust the English strings from time to time, to correct grammar mistakes or create more fluent sentences. This is usually NOT done by the developers. Using gettext, this means that all the translations for that string are no longer valid, because the key has changed. This was a common problem for us when we were using gettext. Using i18n and translation keys, this problem doesn&#039;t occur, and somebody other than the developers can adjust it.

Another problem is strings that are exactly the same in English but can mean different things, like &quot;bank&quot;. In other languages, these different meanings can be the cause of different translations. 

To overcome your problems, you can make the identifiers a bit nicer than your example: &lt;code&gt;t(:cannot_parse_this_shit)&lt;/code&gt;. This makes it much more clear for developers as well.</description>
		<content:encoded><![CDATA[<p>I understand the concerns you have with the new i18n API. However, I can argue against the gettext approach as well:</p>
<p>We tend to adjust the English strings from time to time, to correct grammar mistakes or create more fluent sentences. This is usually NOT done by the developers. Using gettext, this means that all the translations for that string are no longer valid, because the key has changed. This was a common problem for us when we were using gettext. Using i18n and translation keys, this problem doesn&#8217;t occur, and somebody other than the developers can adjust it.</p>
<p>Another problem is strings that are exactly the same in English but can mean different things, like &#8220;bank&#8221;. In other languages, these different meanings can be the cause of different translations. </p>
<p>To overcome your problems, you can make the identifiers a bit nicer than your example: <code>t(:cannot_parse_this_shit)</code>. This makes it much more clear for developers as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gunnar Wolf</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-199</link>
		<dc:creator>Gunnar Wolf</dc:creator>
		<pubDate>Mon, 01 Dec 2008 03:16:22 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-199</guid>
		<description>Oops... I have to agree with Fabio: So far, the Rails improvements have felt just right. However, this time... It feels I&#039;m going to stick with gettext for all of my projects :-/ 
Writing an application with just the labels as symbols, which have to be referenced from an external table, looks like the oldest and most awkward way to solve a problem. One of gettext&#039;s biggest selling points, which has mad it a Unix-wide standard, is the ability to just write English applications - and use the English as the message identifiers themselves. Switching everything back to :ecannotparse (instead of a &#039;cannot parse this shit&#039;) just means more work to authors. And translators will also have a harder time, as they might not be technically skilled people, and will now have to open the to-be-translated files as well as the English ones to understand really what needs to be translated. 
And of course, gettext degrades quite nicely - a missing string gets sent as English. Now... even the English translation might be missing. It is much preferrable for an i18n application to give an English string every now and then than to fail towards an internal-use-onl string.</description>
		<content:encoded><![CDATA[<p>Oops&#8230; I have to agree with Fabio: So far, the Rails improvements have felt just right. However, this time&#8230; It feels I&#8217;m going to stick with gettext for all of my projects :-/<br />
Writing an application with just the labels as symbols, which have to be referenced from an external table, looks like the oldest and most awkward way to solve a problem. One of gettext&#8217;s biggest selling points, which has mad it a Unix-wide standard, is the ability to just write English applications &#8211; and use the English as the message identifiers themselves. Switching everything back to :ecannotparse (instead of a &#8216;cannot parse this shit&#8217;) just means more work to authors. And translators will also have a harder time, as they might not be technically skilled people, and will now have to open the to-be-translated files as well as the English ones to understand really what needs to be translated.<br />
And of course, gettext degrades quite nicely &#8211; a missing string gets sent as English. Now&#8230; even the English translation might be missing. It is much preferrable for an i18n application to give an English string every now and then than to fail towards an internal-use-onl string.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jaap</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-115</link>
		<dc:creator>jaap</dc:creator>
		<pubDate>Thu, 18 Sep 2008 16:31:11 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-115</guid>
		<description>@Fabio The call can be more simple,  you can just use t(:message_1) without the I18n before it, and if you don&#039;t use the scopes, you even don&#039;t have to include them. So only t(:message_1) can be enough!</description>
		<content:encoded><![CDATA[<p>@Fabio The call can be more simple,  you can just use t(:message_1) without the I18n before it, and if you don&#8217;t use the scopes, you even don&#8217;t have to include them. So only t(:message_1) can be enough!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jaap</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-114</link>
		<dc:creator>jaap</dc:creator>
		<pubDate>Thu, 18 Sep 2008 16:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-114</guid>
		<description>@Evgeny: that&#039;s the advantage of the I18n API, we can now use this API and switch to whatever we plugin(that makes use of I18n) we want! Maybe if we find it usefull we switch to such a plugin, but for now the SimpleBackend is enough, as this is only a test for us.</description>
		<content:encoded><![CDATA[<p>@Evgeny: that&#8217;s the advantage of the I18n API, we can now use this API and switch to whatever we plugin(that makes use of I18n) we want! Maybe if we find it usefull we switch to such a plugin, but for now the SimpleBackend is enough, as this is only a test for us.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fabio</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-113</link>
		<dc:creator>Fabio</dc:creator>
		<pubDate>Thu, 18 Sep 2008 13:33:47 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-113</guid>
		<description>This tool is very interesting.  I&#039;m following with interest Rails I18n evolutions
but replacing the more concise

  _(&quot;to be translated&quot;)

with

  I18n.t :message_0, :scope =&gt; [:txt, :controller, :controller_name])

is not exactly what I would expect from a brand new API.
I&#039;m still looking concrete advantages (performance, code clarity, etc...)
to left gettext and switch to new I18n API.

Anyway, thanks for your post.

Ciao.
-- fabio</description>
		<content:encoded><![CDATA[<p>This tool is very interesting.  I&#8217;m following with interest Rails I18n evolutions<br />
but replacing the more concise</p>
<p>  _(&#8221;to be translated&#8221;)</p>
<p>with</p>
<p>  I18n.t :message_0, :scope =&gt; [:txt, :controller, :controller_name])</p>
<p>is not exactly what I would expect from a brand new API.<br />
I&#8217;m still looking concrete advantages (performance, code clarity, etc&#8230;)<br />
to left gettext and switch to new I18n API.</p>
<p>Anyway, thanks for your post.</p>
<p>Ciao.<br />
&#8211; fabio</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evgeny</title>
		<link>http://techblog.floorplanner.com/2008/09/16/converting-a-rails-application-from-gettext-to-i18n/comment-page-1/#comment-112</link>
		<dc:creator>Evgeny</dc:creator>
		<pubDate>Thu, 18 Sep 2008 12:10:28 +0000</pubDate>
		<guid isPermaLink="false">http://techblog.floorplanner.com/?p=178#comment-112</guid>
		<description>But why don&#039;t you want to use Gibberish, or some other existing i18n plugin?</description>
		<content:encoded><![CDATA[<p>But why don&#8217;t you want to use Gibberish, or some other existing i18n plugin?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
