<?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: Internationalisation d&#8217;une base de données</title>
	<atom:link href="http://www.cloudconnected.fr/2009/03/06/internationalisation-dune-base-de-donnees/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cloudconnected.fr/2009/03/06/internationalisation-dune-base-de-donnees/</link>
	<description>Thoughts of a french web developer</description>
	<lastBuildDate>Tue, 13 Dec 2011 14:12:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Pierre</title>
		<link>http://www.cloudconnected.fr/2009/03/06/internationalisation-dune-base-de-donnees/#comment-2320</link>
		<dc:creator>Pierre</dc:creator>
		<pubDate>Sat, 03 Apr 2010 09:02:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.the-asw.com/?p=407#comment-2320</guid>
		<description>Edit : 

class CategoryTrad
{
$langue (obj)
$catName;
// …
}</description>
		<content:encoded><![CDATA[<p>Edit : </p>
<p>class CategoryTrad<br />
{<br />
$langue (obj)<br />
$catName;<br />
// …<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pierre</title>
		<link>http://www.cloudconnected.fr/2009/03/06/internationalisation-dune-base-de-donnees/#comment-2319</link>
		<dc:creator>Pierre</dc:creator>
		<pubDate>Sat, 03 Apr 2010 09:00:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.the-asw.com/?p=407#comment-2319</guid>
		<description>Salut Rémi,

Excuse-moi de revenir si tardivement (j&#039;avais peu d&#039;espoir que tu répondes ).

Tout d&#039;abord, je te remercie de cette réponse qui me conforte dans ce que j&#039;avais commencé. 

Ensuite pour l&#039;objet &quot;Category&quot;, tu dis : 
&quot;Quant à l’objet Category, encore une fois ça dépend, mais je pense que j’ajouterais un paramètre “lang” au constructeur/getter, pour ne sélectionner que la langue concernée. Avec éventuellement une méthode pour sélectionner toutes les langues en cas de besoin (dans le backend notamment).&quot;

Effectivement dans mon backend je vais devoir lister toutes mes catégories de cette façon :
id - catName - langues
1,cat1,fr-en-ita
2,cat2,fr

Pour réaliser cet affichage, je fais appel à une requête qui me renvoie :
1,cat1,fr
1,cat1_en,en
1,cat1_ita,ita
2,cat2,fr

Et je crée un objet &quot;Category&quot; par langue. Je ne pense pas que ce soit très judicieux. J&#039;avais pensé créer un objet Category_trad avec les champs à traduire uniquement (cf.annexe). J&#039;obtenais alors deux objets Category. Cette solution me parait encore plus bizarre, car elle ne correspond plus à l&#039;idée que je me faisais d&#039;un objet métier.

Qu&#039;en penses-tu ?
Cdt,
Pierre

------------------
      Annexe
------------------

class Category
{
  $id;
  $dateAdd;
  $arrayTrad;
  // ...
}

class CategoryTrad
{
  $catName;
  // ...
}</description>
		<content:encoded><![CDATA[<p>Salut Rémi,</p>
<p>Excuse-moi de revenir si tardivement (j&#8217;avais peu d&#8217;espoir que tu répondes ).</p>
<p>Tout d&#8217;abord, je te remercie de cette réponse qui me conforte dans ce que j&#8217;avais commencé. </p>
<p>Ensuite pour l&#8217;objet &#8220;Category&#8221;, tu dis :<br />
&#8220;Quant à l’objet Category, encore une fois ça dépend, mais je pense que j’ajouterais un paramètre “lang” au constructeur/getter, pour ne sélectionner que la langue concernée. Avec éventuellement une méthode pour sélectionner toutes les langues en cas de besoin (dans le backend notamment).&#8221;</p>
<p>Effectivement dans mon backend je vais devoir lister toutes mes catégories de cette façon :<br />
id &#8211; catName &#8211; langues<br />
1,cat1,fr-en-ita<br />
2,cat2,fr</p>
<p>Pour réaliser cet affichage, je fais appel à une requête qui me renvoie :<br />
1,cat1,fr<br />
1,cat1_en,en<br />
1,cat1_ita,ita<br />
2,cat2,fr</p>
<p>Et je crée un objet &#8220;Category&#8221; par langue. Je ne pense pas que ce soit très judicieux. J&#8217;avais pensé créer un objet Category_trad avec les champs à traduire uniquement (cf.annexe). J&#8217;obtenais alors deux objets Category. Cette solution me parait encore plus bizarre, car elle ne correspond plus à l&#8217;idée que je me faisais d&#8217;un objet métier.</p>
<p>Qu&#8217;en penses-tu ?<br />
Cdt,<br />
Pierre</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
      Annexe<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>class Category<br />
{<br />
  $id;<br />
  $dateAdd;<br />
  $arrayTrad;<br />
  // &#8230;<br />
}</p>
<p>class CategoryTrad<br />
{<br />
  $catName;<br />
  // &#8230;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rémi</title>
		<link>http://www.cloudconnected.fr/2009/03/06/internationalisation-dune-base-de-donnees/#comment-2305</link>
		<dc:creator>Rémi</dc:creator>
		<pubDate>Wed, 31 Mar 2010 06:22:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.the-asw.com/?p=407#comment-2305</guid>
		<description>Salut Pierre,

L&#039;admin des langues en back est toujours problématique et j&#039;avoue ne pas avoir de solution idéale. D&#039;abord il faut une table qui liste toutes les langues possibles. Ensuite pour les catégories (par exemple), si je dois gérer beaucoup de langues, je fais un formulaire normal qui insère la langue obligatoire par défaut (par exemple le français) ainsi que les valeurs communes (genre date, etc.). Ensuite je fais une autre page pour insérer/editer/supprimer les autres langues (mais sans toucher aux valeurs communes), genre &quot;Ajouter une langue&quot;. L&#039;autre solution, s&#039;il y a peu de langues, c&#039;est de faire directement un formulaire avec deux ou trois champs (un par langue).

Quant à l&#039;objet Category, encore une fois ça dépend, mais je pense que j&#039;ajouterais un paramètre &quot;lang&quot; au constructeur/getter, pour ne selectionner que la langue concernée. Avec eventuellement une méthode pour selectionner toutes les langues en cas de besoin (dans le backend notamment).

Petite note au passage, car je m&#039;apperçois d&#039;une petite erreur dans l&#039;article: si le code de langue utilisé est au format ISO 639-1 (&quot;fr&quot;, &quot;en&quot;, ...) il vaut mieux utiliser le type CHAR(2), plus compact et plus rapide. Le type que j&#039;utilise dans l&#039;article, VARCHAR(6) date d&#039;un vieux projet pour stocker le tag IETF (genre &quot;en-US&quot;, &quot;en-CA&quot;, &quot;fr-FR&quot;, etc.), mais c&#039;était une mauvaise idée au final (en plus, ça rend la PK plus grosse).

Voila voila, j&#039;espère que ces quelques pistes pourront t&#039;aider.

a+</description>
		<content:encoded><![CDATA[<p>Salut Pierre,</p>
<p>L&#8217;admin des langues en back est toujours problématique et j&#8217;avoue ne pas avoir de solution idéale. D&#8217;abord il faut une table qui liste toutes les langues possibles. Ensuite pour les catégories (par exemple), si je dois gérer beaucoup de langues, je fais un formulaire normal qui insère la langue obligatoire par défaut (par exemple le français) ainsi que les valeurs communes (genre date, etc.). Ensuite je fais une autre page pour insérer/editer/supprimer les autres langues (mais sans toucher aux valeurs communes), genre &#8220;Ajouter une langue&#8221;. L&#8217;autre solution, s&#8217;il y a peu de langues, c&#8217;est de faire directement un formulaire avec deux ou trois champs (un par langue).</p>
<p>Quant à l&#8217;objet Category, encore une fois ça dépend, mais je pense que j&#8217;ajouterais un paramètre &#8220;lang&#8221; au constructeur/getter, pour ne selectionner que la langue concernée. Avec eventuellement une méthode pour selectionner toutes les langues en cas de besoin (dans le backend notamment).</p>
<p>Petite note au passage, car je m&#8217;apperçois d&#8217;une petite erreur dans l&#8217;article: si le code de langue utilisé est au format ISO 639-1 (&#8220;fr&#8221;, &#8220;en&#8221;, &#8230;) il vaut mieux utiliser le type CHAR(2), plus compact et plus rapide. Le type que j&#8217;utilise dans l&#8217;article, VARCHAR(6) date d&#8217;un vieux projet pour stocker le tag IETF (genre &#8220;en-US&#8221;, &#8220;en-CA&#8221;, &#8220;fr-FR&#8221;, etc.), mais c&#8217;était une mauvaise idée au final (en plus, ça rend la PK plus grosse).</p>
<p>Voila voila, j&#8217;espère que ces quelques pistes pourront t&#8217;aider.</p>
<p>a+</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pierre</title>
		<link>http://www.cloudconnected.fr/2009/03/06/internationalisation-dune-base-de-donnees/#comment-2303</link>
		<dc:creator>Pierre</dc:creator>
		<pubDate>Tue, 30 Mar 2010 22:13:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.the-asw.com/?p=407#comment-2303</guid>
		<description>Salut Rémi,
Je suis content de trouver ce post car je suis entrain de mettre en place la même solution mais je bloque sur mon objet métier. Dans ton cas, comment représenterais-tu l&#039;objet métier &quot;category&quot; ? et comment gères tu l&#039;administration des langues dans le backend ?
Merci d&#039;avance !</description>
		<content:encoded><![CDATA[<p>Salut Rémi,<br />
Je suis content de trouver ce post car je suis entrain de mettre en place la même solution mais je bloque sur mon objet métier. Dans ton cas, comment représenterais-tu l&#8217;objet métier &#8220;category&#8221; ? et comment gères tu l&#8217;administration des langues dans le backend ?<br />
Merci d&#8217;avance !</p>
]]></content:encoded>
	</item>
</channel>
</rss>

