<?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: Internationalization in applications &#8211; Call for discussion</title>
	<atom:link href="http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/</link>
	<description>PHP, AS3, Flex, Flash</description>
	<lastBuildDate>Tue, 29 Jun 2010 14:08:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mariano From Argentina</title>
		<link>http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/comment-page-1/#comment-513</link>
		<dc:creator>Mariano From Argentina</dc:creator>
		<pubDate>Wed, 04 Mar 2009 11:08:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eirikhoem.net/?p=52#comment-513</guid>
		<description>You should see the I18N and L18N chapters at Symfony-project documentation. They will be very helpful.</description>
		<content:encoded><![CDATA[<p>You should see the I18N and L18N chapters at Symfony-project documentation. They will be very helpful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrei</title>
		<link>http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/comment-page-1/#comment-496</link>
		<dc:creator>Andrei</dc:creator>
		<pubDate>Mon, 02 Mar 2009 16:56:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eirikhoem.net/?p=52#comment-496</guid>
		<description>You should take a look at r3 project:

http://sourceforge.net/projects/rthree

It has support for the generic &quot;contexts&quot; you talk about, but they are called &quot;intls&quot; there, although they should really be called &quot;variations&quot;.</description>
		<content:encoded><![CDATA[<p>You should take a look at r3 project:</p>
<p><a href="http://sourceforge.net/projects/rthree" rel="nofollow">http://sourceforge.net/projects/rthree</a></p>
<p>It has support for the generic &#8220;contexts&#8221; you talk about, but they are called &#8220;intls&#8221; there, although they should really be called &#8220;variations&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Artur Ejsmont</title>
		<link>http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/comment-page-1/#comment-491</link>
		<dc:creator>Artur Ejsmont</dc:creator>
		<pubDate>Mon, 02 Mar 2009 08:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eirikhoem.net/?p=52#comment-491</guid>
		<description>Well i have to agree with Bruce. Adding so much logic into translation service might become very hard to manage.

How would you use the service classes (or whatever would it be)? Passing context and tag? then context would be growing and growing and translation service with it.

I would employ simpler solution, keep the decision of which text to show in business logic as it is closes to the source of what should be shown (at least more or less what you want to show) and then in translation service just find the correct string for it depending on locale. All you pass is locale (lets say language and country). Or you can even keep it in the service static variable and set it during bootstrap or something.

View would just show the populated string.

Artur</description>
		<content:encoded><![CDATA[<p>Well i have to agree with Bruce. Adding so much logic into translation service might become very hard to manage.</p>
<p>How would you use the service classes (or whatever would it be)? Passing context and tag? then context would be growing and growing and translation service with it.</p>
<p>I would employ simpler solution, keep the decision of which text to show in business logic as it is closes to the source of what should be shown (at least more or less what you want to show) and then in translation service just find the correct string for it depending on locale. All you pass is locale (lets say language and country). Or you can even keep it in the service static variable and set it during bootstrap or something.</p>
<p>View would just show the populated string.</p>
<p>Artur</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruce Weirdan</title>
		<link>http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/comment-page-1/#comment-476</link>
		<dc:creator>Bruce Weirdan</dc:creator>
		<pubDate>Sun, 01 Mar 2009 17:23:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eirikhoem.net/?p=52#comment-476</guid>
		<description>&lt;blockquote cite=&quot;#commentbody-470&quot;&gt;
&lt;strong&gt;&lt;a href=&quot;#comment-470&quot; rel=&quot;nofollow&quot;&gt;admin&lt;/a&gt; :&lt;/strong&gt;
How would you implement support for the contexts as described? Please bear in mind that it’s not necessarily corporate vs residential, and perhaps that was a poor example chosen by me. User vs admin is perhaps better. The two different contexts will share 90%+ of the translated texts, hence splitting them is not a good approach in my opinion.
         &lt;/blockquote&gt;
I don&#039;t know the specifics of your application, but usually different levels of users are presented with different interfaces, like admin control panel vs user interface. This is definitely true for the application I&#039;m currently working on, but I understand that it may not be the case for your product. We have separate admin and user interface, but both use the same translation mechanism in view scripts, like this:

&lt;h1&gt;&lt;?=$this-&gt;translate(Message::LOGIN)?&gt;&lt;/h1&gt;

Since translations are stored independently of view scripts, we can reuse translations in different view scripts without problems. The only thing to note is that translations should be logically complete chunks of text, therefore some templating support (even if it&#039;s the most basic one, such as offered by &lt;a href=&quot;http://us2.php.net/manual/en/class.messageformatter.php&quot; rel=&quot;nofollow&quot;&gt;MessageFormater class from pecl/intl extension&lt;/a&gt;) should be provided.

If application required single interface for different levels of users I would go for using several view scripts and choose appropriate view in controller based on user level.</description>
		<content:encoded><![CDATA[<blockquote cite="#commentbody-470"><p>
<strong><a href="#comment-470" rel="nofollow">admin</a> :</strong><br />
How would you implement support for the contexts as described? Please bear in mind that it’s not necessarily corporate vs residential, and perhaps that was a poor example chosen by me. User vs admin is perhaps better. The two different contexts will share 90%+ of the translated texts, hence splitting them is not a good approach in my opinion.
         </p></blockquote>
<p>I don&#8217;t know the specifics of your application, but usually different levels of users are presented with different interfaces, like admin control panel vs user interface. This is definitely true for the application I&#8217;m currently working on, but I understand that it may not be the case for your product. We have separate admin and user interface, but both use the same translation mechanism in view scripts, like this:</p>
<p>&lt;h1&gt;&lt;?=$this-&gt;translate(Message::LOGIN)?&gt;&lt;/h1&gt;</p>
<p>Since translations are stored independently of view scripts, we can reuse translations in different view scripts without problems. The only thing to note is that translations should be logically complete chunks of text, therefore some templating support (even if it&#8217;s the most basic one, such as offered by <a href="http://us2.php.net/manual/en/class.messageformatter.php" rel="nofollow" onclick="javascript:pageTracker._trackPageview ('/outbound/us2.php.net');">MessageFormater class from pecl/intl extension</a>) should be provided.</p>
<p>If application required single interface for different levels of users I would go for using several view scripts and choose appropriate view in controller based on user level.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/comment-page-1/#comment-470</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sun, 01 Mar 2009 14:56:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eirikhoem.net/?p=52#comment-470</guid>
		<description>Hi Bruce, and thanks for the comment.

I agree that there are quite a number of features when it comes to formatting (currency etc) that&#039;s not covered there, and I&#039;ll update the post to cover those topics later on. 

How would you implement support for the contexts as described? Please bear in mind that it&#039;s not necessarily corporate vs residential, and perhaps that was a poor example chosen by me. User vs admin is perhaps better. The two different contexts will share 90%+ of the translated texts, hence splitting them is not a good approach in my opinion.</description>
		<content:encoded><![CDATA[<p>Hi Bruce, and thanks for the comment.</p>
<p>I agree that there are quite a number of features when it comes to formatting (currency etc) that&#8217;s not covered there, and I&#8217;ll update the post to cover those topics later on. </p>
<p>How would you implement support for the contexts as described? Please bear in mind that it&#8217;s not necessarily corporate vs residential, and perhaps that was a poor example chosen by me. User vs admin is perhaps better. The two different contexts will share 90%+ of the translated texts, hence splitting them is not a good approach in my opinion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruce Weirdan</title>
		<link>http://blog.eirikhoem.net/index.php/2009/03/01/internationalization-in-applications-call-for-discussion/comment-page-1/#comment-469</link>
		<dc:creator>Bruce Weirdan</dc:creator>
		<pubDate>Sun, 01 Mar 2009 14:42:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eirikhoem.net/?p=52#comment-469</guid>
		<description>I think you&#039;ve got your requirements overgeneralized and as such mixed up. Mixing business contexts (corporate and residential customers) with cultural is actually mixing cross-cutting concerns.

Besides, you missed many more features required for real internationalization, like formatting numbers and dates, handling text direction, different measurement systems (imperial vs. metric), etc.</description>
		<content:encoded><![CDATA[<p>I think you&#8217;ve got your requirements overgeneralized and as such mixed up. Mixing business contexts (corporate and residential customers) with cultural is actually mixing cross-cutting concerns.</p>
<p>Besides, you missed many more features required for real internationalization, like formatting numbers and dates, handling text direction, different measurement systems (imperial vs. metric), etc.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
