<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" 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/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>WPML</title>
	
	<link>http://wpml.org</link>
	<description>Using WordPress to build full multilingual websites</description>
	<lastBuildDate>Mon, 02 Nov 2009 23:18:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/wpml" type="application/rss+xml" /><feedburner:emailServiceId>wpml</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>WPML 1.4.0 preview</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/m5_kqAoOvDw/</link>
		<comments>http://wpml.org/2009/11/wpml-1-4-0-preview/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 23:18:00 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=3110</guid>
		<description><![CDATA[We&#8217;re getting ready for WPML 1.4.0 and have a preview release for it &#8211; wpml_140_prev2.zip
The main change is this release is having two modes:

Basic &#8211; allowing only to enter multilingual contents.
Advanced &#8211; allowing everything else too.

Before the final release, we&#8217;re also going to make the professional translation interface much simpler.
Bugs fixed since 1.3.5
A lot of [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re getting ready for WPML 1.4.0 and have a preview release for it &#8211; <strong><a href="http://wpml.org/wp-content/uploads/2009/11/wpml_140_prev2.zip">wpml_140_prev2.zip</a></strong></p>
<p>The main change is this release is having two modes:</p>
<ul>
<li><strong>Basic</strong> &#8211; allowing only to enter multilingual contents.</li>
<li><strong>Advanced</strong> &#8211; allowing everything else too.</li>
</ul>
<p>Before the final release, we&#8217;re also going to make the professional translation interface much simpler.</p>
<h2>Bugs fixed since 1.3.5</h2>
<p>A lot of energy went into finding and fixing bugs. Here&#8217;s what was fixed so far:</p>
<ul>
<li>Language information was deleted when doing <strong>future publishing</strong>.</li>
<li><strong>Slashes</strong> were removed from posts and pages.</li>
<li>WPML admin functions didn&#8217;t work when using <strong>HTTPs</strong>.</li>
<li>WPML refused to run if plugins directory was different then <strong>wp-contents</strong> (WP has some bugs there too, so care is needed when doing that).</li>
<li>Admin <strong>language per user</strong> was not working.</li>
<li>Language <strong>locales</strong> not set by default.</li>
<li>Categories disappearing after doing <strong>quick-edit</strong>.</li>
<li><strong>Static</strong> home/blog page could not be set for new installations.</li>
<li>Some <strong>MySQL query</strong> errors.</li>
<li>Cleaned up the <strong>HTML</strong> in lots of places (unescaped <strong>&amp;</strong> signs).</li>
</ul>
<h2>Any problems remaining?</h2>
<p>So, if you are seeing one of these bugs on WPML 1.3.5, please try this version. It&#8217;s clean and can be used on live sites (running on wpml.org right now).</p>
<p>Make sure you report them in the <a href="http://forum.wpml.org">forum</a>. The devil&#8217;s in the details, so when you report problems, make it easy for us to fix by explaining how we can see it and how we can reproduce.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=m5_kqAoOvDw:O-8Awsapcao:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=m5_kqAoOvDw:O-8Awsapcao:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=m5_kqAoOvDw:O-8Awsapcao:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=m5_kqAoOvDw:O-8Awsapcao:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=m5_kqAoOvDw:O-8Awsapcao:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=m5_kqAoOvDw:O-8Awsapcao:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/m5_kqAoOvDw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/11/wpml-1-4-0-preview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/11/wpml-1-4-0-preview/</feedburner:origLink></item>
		<item>
		<title>Making WPML’s admin way simpler</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/XVhO77ktY7g/</link>
		<comments>http://wpml.org/2009/10/making-wpmls-admin-way-simpler/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 17:59:33 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[New features]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=3097</guid>
		<description><![CDATA[We have a big challenge on our hands and are looking for your suggestions.
How do we make WPML&#8217;s admin as simple and friendly as possible, while keeping all the advanced features available?
The idea is to give WPML two modes &#8211; Basic and Advanced. Basic mode will be for people who want to run a multilingual [...]]]></description>
			<content:encoded><![CDATA[<p>We have a big challenge on our hands and are looking for your suggestions.</p>
<p><strong>How do we make WPML&#8217;s admin as simple and friendly as possible, while keeping all the advanced features available?</strong></p>
<p>The idea is to give WPML two modes &#8211; <strong>Basic</strong> and <strong>Advanced</strong>. Basic mode will be for people who want to run a multilingual blog with minimal setup and nothing besides the ability to translate contents. Advanced mode is for everything else.</p>
<h2>WPML in Basic mode</h2>
<p>This is intended for folks who want to run multilingual, but not spend any time configuring anything. Really anything. It means that some elements in custom themes may not be multilingual, but it&#8217;s not a problem in this case.</p>
<p>In Basic mode, WPML&#8217;s admin menu will include just the Languages page. No theme localization, string translation, etc. Just select the site&#8217;s languages and that&#8217;s it.</p>
<h2>WPML in Advanced mode</h2>
<p>Advanced mode will be what WPML looks like now. It includes all the functionality.</p>
<p>The Languages page will also appear in &#8216;Advanced&#8217; mode, allowing to choose the URL structure, admin language and other fun stuff.</p>
<p>Unlike today, the switch between Basic and Advanced will be persistent. Meaning, once you&#8217;ve gone Advanced, it stays Advanced until you click on Basic again.</p>
<h2>Help us tune it</h2>
<p>To fine tune this new change, we really want to know what you&#8217;re using WPML for. This is a poll we published a while back. Click your answer here:</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p>Thanks a lot, you&#8217;re really helping us here!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=XVhO77ktY7g:Hno7-Ki0NaE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=XVhO77ktY7g:Hno7-Ki0NaE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=XVhO77ktY7g:Hno7-Ki0NaE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=XVhO77ktY7g:Hno7-Ki0NaE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=XVhO77ktY7g:Hno7-Ki0NaE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=XVhO77ktY7g:Hno7-Ki0NaE:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/XVhO77ktY7g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/10/making-wpmls-admin-way-simpler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/10/making-wpmls-admin-way-simpler/</feedburner:origLink></item>
		<item>
		<title>Building a flexible multilingual content site with WordPress</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/MDFfJ6KYic0/</link>
		<comments>http://wpml.org/2009/10/building-a-flexible-multilingual-content-site-with-wordpress/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 19:42:45 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=3031</guid>
		<description><![CDATA[The iStudio Canada team built teamcopd.ca for the Canadian Lung Association. He used WordPress as a content management system and WPML for both its multilingual and navigational capabilities.
Mike wrote the following post, which makes for great reading for anyone building full sites with WordPress and WPML.
When working on the development of TeamCOPD, I knew there [...]]]></description>
			<content:encoded><![CDATA[<p><em>The</em><em> <a href="http://www.istudio.ca">iStudio Canada</a> team built <a href="http://www.teamcopd.ca">teamcopd.ca</a> for the <strong>Canadian Lung Association</strong>. He used <strong>WordPress</strong> as a content management system<strong> </strong>and <strong>WPML</strong> for both its multilingual and navigational capabilities.</em></p>
<p><strong><em>Mike</em></strong><em> wrote the following post, which makes for great reading for anyone building full sites with WordPress and WPML.</em></p>
<hr />When working on the development of <a href="http://www.teamcopd.ca/">TeamCOPD</a>, I knew there would be a need for a plugin that allowed for a multilingual setup, since the Web site was going to be offered in English and French. There are a lot of different multilingulal plugin solutions out there, but the one I found to work the best (by far!) was WPML.</p>
<p>The following is a brief summary of my experience with the WPML plugin.</p>
<h2>Primary Navigation</h2>
<p><img class="alignnone size-full wp-image-3053 framed" title="navigation" src="http://wpml.org/wp-content/uploads/2009/10/navigation.jpg" alt="navigation" width="632" height="226" /></p>
<p>The primary navigation of this site is image based, so instead of using <em>do_action(’icl_navigation_menu’)</em>, and being forced to either disable or overwrite the CSS they produce, I instead went the faster route by using the <em>icl_link_to_element()</em> function, like so:</p>
<pre>&lt;ul id="primary"&gt;
  &lt;li class="bg link1"&gt;&lt;?php icl_link_to_element(22); ?&gt;&lt;/li&gt;
  &lt;li class="bg link2"&gt;&lt;?php icl_link_to_element(24); ?&gt;&lt;/li&gt;
  &lt;li class="bg link3"&gt;&lt;?php icl_link_to_element(37); ?&gt;&lt;/li&gt;
  &lt;li class="bg link4"&gt;&lt;?php icl_link_to_element(27); ?&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>The down side of going this route is if the page ID changes (which it shouldn’t) the link will be dead. However, the up side is that it took no time at all to implement and I didn’t have to worry about overriding the default styling that WPML applies to its “menuing” functions.</p>
<p>NOTE:</p>
<p>The WPML plugin is shipped with a style sheet that automatically styles the various navigation types that it renders. The only way to completely avoid this is to delete the styles sheets that come with WMPL. However, the do re-appear when you update the product.</p>
<p>In my opinion, there should be a feature built-in to WPML that allows the user to enable/disable the style sheets.</p>
<p><em><strong>Amir</strong>: As of WPML 1.3.3, it&#8217;s possible to disable loading any of WPML&#8217;s CSS and JS files. Use one of the constants described in the <a href="http://wpml.org/support/wpml-coding-api/#disable_css_js">coding API page</a>.</em></p>
<h2>Breadcrumb Navigation</h2>
<p><img class="alignnone size-full wp-image-3056 framed" title="breadcrumbs" src="http://wpml.org/wp-content/uploads/2009/10/breadcrumbs.png" alt="breadcrumbs" width="507" height="100" /></p>
<p>To implement the breadcrumb trail that is shown on all pages (with the exception of the home page), I used the following function:</p>
<pre>&lt;?php do_action('icl_navigation_breadcrumb'); ?&gt;</pre>
<p>Easy to implement and did what I needed “out of the box”. However, I believe some customization should be available – namely having the ability to choose what the separator between each link should be. Granted, this is pretty minor stuff, but still, having the option would be nice.</p>
<h2>Sidebar Navigation</h2>
<p><img class="alignnone size-full wp-image-3057 framed" title="sidebar-navigation" src="http://wpml.org/wp-content/uploads/2009/10/sidebar-navigation.png" alt="sidebar-navigation" width="609" height="191" /></p>
<p>Only one section of the site has sub/secondary navigation, and again I was able to use one of WPML’s built-in functions to create this:</p>
<pre>&lt;?php do_action('icl_navigation_sidebar'); ?&gt;</pre>
<p>This function has an interesting  way of rendering the navigation. It first echos the parent page as a header (&lt;h4&gt;) and then renders the links (children) that belong to it. Again, like the other functions I’ve discussed, there is not a whole lot of customization that is available. In this case, I didn’t need any – but what if I wanted the page name (currently as an &lt;h4&gt; element) to be a link instead?</p>
<p><em><strong>Amir</strong>: Good point. Just like for the top navigation, we&#8217;re going to add hooks to this function so that designers can create custom HTML for elements.</em></p>
<h2>Language Switching</h2>
<p><img class="alignnone size-full wp-image-3059 framed" title="language-switcher" src="http://wpml.org/wp-content/uploads/2009/10/language-switcher.png" alt="language-switcher" width="288" height="109" /></p>
<p>Finally, the language switching was where I had to do the most customization. The default method for displaying the available languages was not going to work – instead I used a nifty little function (<em>icl_get_languages(’skip_missing=N’)</em>)  that return an array of all the available languages and a parameter for each (active) which has a value of ‘0’ or ‘1’. The active language will have a value of ‘1’, while all the other languages will have a value of ‘0’.</p>
<p>For this site, all I had to do was run the resulting array through the loop and when I found the active attribute having a value of ‘0’, I would return the language name, like so:</p>
<pre>&lt;?php
function wpml_language_switch() {
  $lang = icl_get_languages('skip_missing=N');
  $ret = '';
  if(count($lang) &gt; 0) {
    foreach($lang as $value) {
      $ret .= ($value['active'] == 0) ? '&lt;li&gt;&lt;a href="' . $value['url'] . '"&gt;' .
               $value['native_name']  . '&lt;/a&gt;&lt;/li&gt;' : '';
    }
  }
  return $ret;
}
?&gt;</pre>
<h2>Final Notes and Remarks</h2>
<p>In conclusion, WPML is a plugin that I intend to on any WordPress-related build that I am a part of. Even for sites that are in one language only, the navigational features that the plugin offers make it a “must have”. Sure, there are things that could be worked on and improved, but all in all it’s a great product that will only get better!</p>
<hr /><em>Want to have your site featured on wpml.org too? Add it to the <a href="http://forum.wpml.org/forum.php?id=6">showcase section of our forum</a>. We pick great sites and write about them.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=MDFfJ6KYic0:IlwGh3ujY6Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=MDFfJ6KYic0:IlwGh3ujY6Y:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=MDFfJ6KYic0:IlwGh3ujY6Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=MDFfJ6KYic0:IlwGh3ujY6Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=MDFfJ6KYic0:IlwGh3ujY6Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=MDFfJ6KYic0:IlwGh3ujY6Y:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/MDFfJ6KYic0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/10/building-a-flexible-multilingual-content-site-with-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/10/building-a-flexible-multilingual-content-site-with-wordpress/</feedburner:origLink></item>
		<item>
		<title>Introducing BuddyPress Multilingual</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/Z_TSKXuN2Yc/</link>
		<comments>http://wpml.org/2009/10/introducing-buddypress-multilingual/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 16:37:41 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Multilingual]]></category>
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=3007</guid>
		<description><![CDATA[We&#8217;re just out with a first release of BuddyPress Multilingual. This plugin enables running multilingual BuddyPress sites with WPML.
It adds a language switcher to BuddyPress bar, allowing visitors to select their languages. Then, it hooks to different elements that BuddyPress generates and makes sure they are all language sensitive.
The main blog and guest blogs can [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re just out with a first release of <a href="http://wordpress.org/extend/plugins/buddypress-multilingual/">BuddyPress Multilingual</a>. This plugin enables running multilingual BuddyPress sites with WPML.</p>
<p><strong>It adds a language switcher to BuddyPress bar</strong>, allowing visitors to select their languages. Then, it hooks to different elements that BuddyPress generates and makes sure they are all language sensitive.</p>
<p><strong>The main blog and guest blogs can run multilingual</strong>. WPML allows different authors to select their admin language, so that different users can manage their guest blogs in their native languages.</p>
<p>Here is how the famous BuddyPress bar looks like with the plugin running:</p>
<div id="attachment_2891" class="wp-caption alignnone" style="width: 310px"><a href="http://wpml.org/wp-content/uploads/2009/10/buddypress-bar.jpg" rel="lightbox[3007]"><img class="size-medium wp-image-2891" title="buddypress-bar" src="http://wpml.org/wp-content/uploads/2009/10/buddypress-bar-300x112.jpg" alt="BuddyPress bar with language switcher" width="300" height="112" /></a><p class="wp-caption-text">BuddyPress bar with language switcher</p></div>
<p>It&#8217;s running fine on BuddyPress 1.0, and we&#8217;re working hard to complete support for BuddyPress 1.1 (should be available next week).</p>
<p>To get started, have a look at the (very basic) <a href="http://wpml.org/wordpress-translation/buddypress-multilingual/">users guide</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=Z_TSKXuN2Yc:fgoDOsXCWyU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=Z_TSKXuN2Yc:fgoDOsXCWyU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=Z_TSKXuN2Yc:fgoDOsXCWyU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=Z_TSKXuN2Yc:fgoDOsXCWyU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=Z_TSKXuN2Yc:fgoDOsXCWyU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=Z_TSKXuN2Yc:fgoDOsXCWyU:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/Z_TSKXuN2Yc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/10/introducing-buddypress-multilingual/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/10/introducing-buddypress-multilingual/</feedburner:origLink></item>
		<item>
		<title>A full test suite for WPML</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/jilI7sgME6c/</link>
		<comments>http://wpml.org/2009/10/a-full-test-suite-for-wpml/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 22:38:56 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=2950</guid>
		<description><![CDATA[On every release of WPML, we add new and cool features, fix bugs and&#8230; create new ones. This is very disturbing for us, as well as for the thousands who depend on WPML for their sites and we&#8217;ve decided to do something about it.
The next step in WPML development is to add a full test [...]]]></description>
			<content:encoded><![CDATA[<p>On every release of WPML, we add new and cool features, fix bugs and&#8230; create new ones. This is very disturbing for us, as well as for the thousands who depend on WPML for their sites and we&#8217;ve decided to do something about it.</p>
<p>The next step in WPML development is to add a full test suite to it. The plan is to use the <a href="http://codex.wordpress.org/Automated_Testing">Automated Testing</a> framework used by WordPress core itself. This way, we can add new features without running the risk of breaking existing functionality.</p>
<h2>Background and some figures</h2>
<p>WPML started as a pretty large plugin and over time evolved into a huge project (20,000 lines of code). It provides much of the functionality you can find in other, mature, content management systems.</p>
<p>For instance, in <a href="http://drupal.org">Drupal</a>, the same functionality is achieved by no less than 8 modules &#8211; <em>i18n</em>, <em>country flags</em>, <em>translation tables</em>, <em>translation overview</em>, <em>l10n server</em>, <em>potx</em>, <em>ICanLocalize Translator</em> and <em>menus</em>.</p>
<p>Instead of complaining about how complex it is, we better create robust tests that allow us to develop it without having to manually test dozens of scenarios on every release.</p>
<h2>We need your help to the test suite complete</h2>
<p>By now, you must be wondering why I&#8217;m explaining all this.</p>
<p>We&#8217;re making a long list of tests, which we hope will cover as much as possible. However, I&#8217;m pretty sure that we&#8217;re going to miss out on many important things that need to be tested. And here is where you get to help.</p>
<p>Over the next week, we&#8217;re going to set up a bug tracking system. In order to report bugs, you will need to:</p>
<ol>
<li>Provide access to a place where the bug can be validated.</li>
<li>Supply information about how to duplicate it in our testing environment.</li>
</ol>
<p>Then, we&#8217;ll be able to add this case to the bug-tracking system and track its progress. Every bug will be added to the test suite, making sure that once it&#8217;s fixed, it stays fixed and doesn&#8217;t surface up again.</p>
<p><strong>Ready to help? We know that reporting bugs this way is going to be harder, but the end results would be much better. By reporting bugs in a way we can track and fix, you&#8217;ll help make WPML better.</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=jilI7sgME6c:ftDR0XyT-8c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=jilI7sgME6c:ftDR0XyT-8c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=jilI7sgME6c:ftDR0XyT-8c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=jilI7sgME6c:ftDR0XyT-8c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=jilI7sgME6c:ftDR0XyT-8c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=jilI7sgME6c:ftDR0XyT-8c:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/jilI7sgME6c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/10/a-full-test-suite-for-wpml/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/10/a-full-test-suite-for-wpml/</feedburner:origLink></item>
		<item>
		<title>WPML compatibility for popular themes and plugins</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/djThMs3n_s0/</link>
		<comments>http://wpml.org/2009/10/wpml-compatibility-for-popular-themes-and-plugins/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 17:40:26 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[New features]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=2939</guid>
		<description><![CDATA[WPML includes API functions that allow themes and plugins to get multilingual services from it, but it seems that no major theme framework or plugin is using them &#8211; and they&#8217;re right!
Most people who use WordPress don&#8217;t run multilingual, so it actually makes little sense for theme designers to add support just for us. And, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>WPML includes API functions that allow themes and plugins to get multilingual services from it, but it seems that no major theme framework or plugin is using them &#8211; and they&#8217;re right!</strong></p>
<p><img class="size-medium wp-image-2945 alignright" title="puzzle" src="http://wpml.org/wp-content/uploads/2009/10/puzzle-300x225.jpg" alt="puzzle" width="300" height="225" />Most people who use WordPress don&#8217;t run multilingual, so it actually makes little sense for theme designers to add support just for us. And, there are other multilingual plugins out there, so should the theme author add support for all?</p>
<p><strong>We have a different idea, and I want to hear your opinion about it.</strong></p>
<p>Instead of asking them to play by our tune, we&#8217;ll play by their. WPML will include a compatibility module which will allow it to use hooks by themes and plugins. This will allow us to make those themes fully multilingual without changing a single line of code (in the theme).</p>
<p>Here are some examples we&#8217;ve looked at:</p>
<ul>
<li><a href="http://diythemes.com/thesis/">Thesis theme</a></li>
<li><a href="http://themeshaper.com/">Thematic theme framework</a></li>
<li><a href="http://themehybrid.com/">ThemeHybrid theme framework</a></li>
<li><a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/">All in One SEO Pack plugin</a></li>
</ul>
<p>We&#8217;re going to make this very easy to use and well documented. Users will be able to contribute their own theme/plugin compatibility code, so if you&#8217;re using something that we don&#8217;t know, you can make it multilingual yourself.</p>
<h2>For example, a compatibility module for All in One SEO Pack</h2>
<p>AIOSEOP includes hooks for reading and modifying the blog title and other texts that users enter in the plugin admin page To run multilingual, these texts need to be translated.</p>
<p>The compatibility module for AIOSEOP will use these hooks. It will get the texts that need translation and add them to WPML&#8217;s string translation screen. Then, when the site is displayed, it will use the same hooks to replace those strings with their translation.</p>
<h2>Things that it will be able to do</h2>
<p>A multilingual compatibility pack for a theme will do stuff like:</p>
<ol>
<li>Translate texts that you enter in the theme administration page.</li>
<li>Turn featured categories and other IDs into multilingual.</li>
<li>Allow inserting language selectors into different places in the theme (already styled to fit that theme).</li>
<li>Fix navigation, so that everything points to the right language (like the home page link).</li>
</ol>
<p><strong>How does this sound to you? Would you be interested in compatibility packs for any theme or plugin?</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=djThMs3n_s0:9tFURgVK-As:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=djThMs3n_s0:9tFURgVK-As:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=djThMs3n_s0:9tFURgVK-As:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=djThMs3n_s0:9tFURgVK-As:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=djThMs3n_s0:9tFURgVK-As:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=djThMs3n_s0:9tFURgVK-As:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/djThMs3n_s0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/10/wpml-compatibility-for-popular-themes-and-plugins/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/10/wpml-compatibility-for-popular-themes-and-plugins/</feedburner:origLink></item>
		<item>
		<title>WPML 1.3.3 with database caching</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/X8qhf_OmHJY/</link>
		<comments>http://wpml.org/2009/10/wpml-1-3-3-with-database-caching/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 17:01:19 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=2913</guid>
		<description><![CDATA[Ever since the beginning, WPML performed way too many database accesses. If your site was on a busy shared host, you might have noticed a serious drop in performance with WPML. Version 1.3.3 fixes this, by eliminating 90% of these queries.
You can grab the first beta release and try it. We&#8217;re already using it on [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since the beginning, WPML performed way too many database accesses. If your site was on a busy shared host, you might have noticed a serious drop in performance with WPML. Version 1.3.3 fixes this, by eliminating 90% of these queries.</p>
<p>You can grab the first <a href="http://wpml.org/wp-content/uploads/2009/10/wpml_133_beta1.zip">beta release</a> and try it. We&#8217;re already using it on wpml.org and it looks fine.</p>
<p>There are no new functions (a few minor bug fixes did make it in) and if you&#8217;re running from a very fast server, you may not notice any change. However, busy sites running on shared hosting will see an immediate improvement in site response.</p>
<h2>Caching and prefetching for language information</h2>
<p>WPML now includes a new caching class which is responsible for holding information that&#8217;s used more than once. Before, whenever any function needed something, it asked the database server. Now, it asks the cache which only accesses the database if it doesn&#8217;t yet have that information.</p>
<p>Additionally, some pages like the blog page (or home) contain multiple posts. WPML now gets the language information for all posts in one database access and saves in it the cache for when it&#8217;s needed.</p>
<p>The results are:</p>
<ul>
<li><strong>Before language caching &#8211; 160 queries</strong></li>
<li><strong>After caching &#8211; 17 queries</strong></li>
</ul>
<h2>Caching for CMS navigation</h2>
<p>We thought that there&#8217;s a problem with the language information, but the CMS navigation actually took even us by surprise.</p>
<p>To generate the navigational elements in wpml.org, it took no less than 250 database queries. There&#8217;s a good reason for that too. WPML&#8217;s sidebar and top navigation are complex elements. They go up and down the page hierarchy, determining what needs to be displayed.</p>
<p>Caching for those is now done on the HTML level. E.g., the navigation elements are produced once and then saved. Subsequent page displays will require just one single call to fetch from the cache.</p>
<p>It turns out that we&#8217;re not alone. If you&#8217;re using a different plugin for drop down menus, check how many database accesses it&#8217;s causing. You&#8217;re in for a surprise&#8230;</p>
<h2>How to test database queries</h2>
<p>If you&#8217;re wondering how to test the number of database queries WordPress does, look no further than the great <a href="http://wordpress.org/extend/plugins/debug-queries/">Debug Queries</a> plugin. It will show you the accesses, how long they actually took and the breakdown between PHP processing and database access time.</p>
<p><strong>Let us know how it&#8217;s going. We&#8217;re looking to release WPML 1.3.3 soon and want to know if there are any problems.</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=X8qhf_OmHJY:D5kKrIGLGps:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=X8qhf_OmHJY:D5kKrIGLGps:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=X8qhf_OmHJY:D5kKrIGLGps:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=X8qhf_OmHJY:D5kKrIGLGps:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=X8qhf_OmHJY:D5kKrIGLGps:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=X8qhf_OmHJY:D5kKrIGLGps:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/X8qhf_OmHJY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/10/wpml-1-3-3-with-database-caching/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/10/wpml-1-3-3-with-database-caching/</feedburner:origLink></item>
		<item>
		<title>An inside look at WPML’s professional translation</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/fwI2VGQQbqY/</link>
		<comments>http://wpml.org/2009/10/wpml-professional-translation/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 15:11:44 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=2879</guid>
		<description><![CDATA[WPML is somewhat of a dual beast. It lets users translate their own sites and also offers professional translation. Today, I&#8217;d like to show how the professional translation works.
How WPML&#8217;s professional translation works

You write contents in your language.
WPML sends posts and pages to ICanLocalize for translation.
Translators work on ICanLocalize&#8217;s translation system.
WPML fetches the completed translations [...]]]></description>
			<content:encoded><![CDATA[<p>WPML is somewhat of a dual beast. It lets users translate their own sites and also offers professional translation. Today, I&#8217;d like to show how the professional translation works.</p>
<h2>How WPML&#8217;s professional translation works</h2>
<ol>
<li>You write contents in your language.</li>
<li>WPML sends posts and pages to <a href="http://www.icanlocalize.com">ICanLocalize</a> for translation.</li>
<li>Translators work on ICanLocalize&#8217;s translation system.</li>
<li>WPML fetches the completed translations and either publishes  or holds  for review.</li>
</ol>
<p>When you use this, you can concentrate on the contents in your language and WPML takes care of the rest. For example, it will adjust links to go to other translated pages,  creates pages in the correct hierarchy and  handle any custom field that you&#8217;re using.</p>
<h2>Who is doing the translation?</h2>
<p>When you set up professional translation, you can choose between two options:</p>
<ul>
<li>Using translators from ICanLocalize.</li>
<li>Using your own translators.</li>
</ul>
<p>Most people prefer using translators from ICanLocalize, as they&#8217;re all excellent at their work and highly trained at using our translation system.</p>
<p>When you choose this option, translators from our pool would apply to work on your site. They&#8217;re all very good but each comes from a different background. So, for example, if you&#8217;re doing a tourist related site, you would probably prefer a translator who&#8217;s already worked on other similar websites.</p>
<h2>Setting up and using professional translation</h2>
<p>Go to <strong>WPML-&gt;Pro translation</strong> and click to enable it. Next, you need to select which languages to translate between, which translators to use and enter information for an account (just your name and email).</p>
<p>For now, you&#8217;re done. Over the next day or two, translators will apply for this work. You can see their resumes and chat with them.</p>
<p>Once you&#8217;ve selected translators, you can start sending documents to translation.</p>
<p>Go to <strong>Tools-&gt;Translation dashboard</strong>, select what needs to be translated (you can select everything at once) and click to send to translation. That&#8217;s it. Your translator will get it, translate and it appears back in your site.</p>
<p>Want to see it in action? Here&#8217;s a live demo (featuring my voice, with a slight cold):</p>
<p><!-- Smart Youtube --><span class="youtube"><object width="680" height="350"><param name="movie" value="http://www.youtube.com/v/NnJY5i4p4H0&amp;rel=0&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" /><param name="allowFullScreen" value="true" /><embed wmode="transparent" src="http://www.youtube.com/v/NnJY5i4p4H0&amp;rel=0&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" type="application/x-shockwave-flash" allowfullscreen="true" width="680" height="350" ></embed><param name="wmode" value="transparent" /></object></span></p>
<h2>Handing off translated sites to your clients</h2>
<p>Web developers often need to supply sites with initial contents and then hand them off to their clients.</p>
<p>You can use ICanLocalize&#8217;s professional translation to build the initial translations for the client site and show off a nice multilingual site with real contents.</p>
<p>Then, when you hand the site over to your client, tell us and we&#8217;ll transfer the ownership of the translation to the client as well. This means that the client will be paying for the translations from now on (and of course, manage them).</p>
<p>And, as a sign of gratitude, <strong>we will keep you as an affiliate for that site</strong>. When we get paid for translation work, you&#8217;re credited as well. It&#8217;s just fair as you&#8217;re the one who got us the job in the first place.</p>
<p>If you&#8217;re building multilingual sites for clients, can you help us by participating in this poll?</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=fwI2VGQQbqY:-a2m8gEXtwA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=fwI2VGQQbqY:-a2m8gEXtwA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=fwI2VGQQbqY:-a2m8gEXtwA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=fwI2VGQQbqY:-a2m8gEXtwA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=fwI2VGQQbqY:-a2m8gEXtwA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=fwI2VGQQbqY:-a2m8gEXtwA:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/fwI2VGQQbqY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/10/wpml-professional-translation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/10/wpml-professional-translation/</feedburner:origLink></item>
		<item>
		<title>Creating a multilingual product catalog</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/8b9k8ar1cIQ/</link>
		<comments>http://wpml.org/2009/09/creating-a-multilingual-product-catalog/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 23:34:33 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=2830</guid>
		<description><![CDATA[In this is guest post, Michael Wassmer explains how to build a multilingual product catalog using WordPress.
The idea for this post came from a discussion in the forum about sharing custom fields and media between translations.
The goal -  a multilingual product catalog with WordPress
To set up my small bilingual shop I didn&#8217;t want to use [...]]]></description>
			<content:encoded><![CDATA[<p><em>In this is guest post, <a href="http://www.michaelwassmer.net/">Michael Wassmer</a> explains how to build a multilingual product catalog using WordPress.</em></p>
<p><em>The idea for this post came from a discussion in the forum about <a href="http://forum.wpml.org/topic.php?id=376">sharing custom fields and media between translations</a>.</em></p>
<h2>The goal -  a multilingual product catalog with WordPress</h2>
<p>To set up my small bilingual shop I didn&#8217;t want to use a complex e-commerce CMS, WordPress was just the right thing for what I needed. Also I was looking forward to testing the WPML plugin on a slightly more complex project than the usual classical blog or website.</p>
<p>So, in my English/French online catalog, the products are each described in a dedicated post. To add a product I simply add a post in the back-end of WordPress, giving it the name of my product as title, typing the description in the content text-area, uploading the products photos to the images gallery of the post, and using the custom fields for values like price, reference and size.</p>
<p>Here&#8217;s how a product post in English (the default language) would look :</p>
<p><a href="http://wpml.org/wp-content/uploads/2009/09/post_example.jpg" rel="lightbox[2830]"><img class="alignnone size-medium wp-image-2832" title="post_example" src="http://wpml.org/wp-content/uploads/2009/09/post_example-300x207.jpg" alt="post_example" width="300" height="207" /></a></p>
<p>Now, after creating the original post for a product, how do I create the translated (French) version of it? Following WPML&#8217;s instruction, I simply click on the Language box under the post content window, click on &#8220;show&#8221; next to &#8220;Translations&#8221; and then click on &#8220;add&#8221;. It opens up a new post page where I can type in all the translated informations of my product : French title, French description, etc.</p>
<h2>Problem &#8211; translations duplicate product information</h2>
<p>But wait! Here is the annoying thing. I also have to type in again the custom fields values: reference, price and size. In my case those values are the same in any language so it makes no sense having to enter them twice. This is an obvious problem that would make me lose a lot of time if I had to type in the same information multiple times for each product post translation.</p>
<p>It&#8217;s the same issue with the product images, I don&#8217;t want to upload all the product photos a second time for the same product in it&#8217;s translated version. Logically, product photos are the same in any language, so I should be able to upload them only once.</p>
<p>So, let&#8217;s save the translated post just like this, <strong>without</strong> typing in a translation for the custom fields and <strong>without</strong> uploading the product images.</p>
<p>Ok, now let&#8217;s have a look at some code. Here&#8217;s a very basic example of a product listing page for a category (usually the <em>archive.php</em> file of your WP theme) :</p>
<pre>&lt;?php while (have_posts()) : the_post(); ?&gt;
  &lt;ul class = "product"&gt;
    &lt;li class = "title"&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;li class = "ref"&gt;&lt;?php echo get_post_meta($post-&gt;ID, 'Reference', true); ?&gt;&lt;/li&gt;
    &lt;li class = "price"&gt;&lt;?php echo get_post_meta($post-&gt;ID, 'Price', true); ?&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;?php endwhile; ?&gt;</pre>
<p>That&#8217;s the classical loop. It shows a list of my products and the associated custom field values &#8211; Price and Reference.</p>
<p>Now if I click on another language in the language selector on the front-end of my website (French in my case), it shows the translation of the articles title, but it doesn&#8217;t show the reference and the price value. That&#8217;s normal, remember we didn&#8217;t enter them in the translated post..</p>
<p>So, how do I get WordPress to show the custom values I entered in the original English post ?</p>
<h2>Solution &#8211; sharing custom fields between translations</h2>
<p>Well, WPML is a powerful plugin that provides us with a very useful function to fetch those values from the original post, even on the translated pages.</p>
<p>We are going to use the <em>icl_object_id()</em> function and replace the previous code by the following :</p>
<pre>&lt;?php while (have_posts()) : the_post(); ?&gt;
&lt;?php
  // Get the original post ID (in my case the english one)
  $o_ID = icl_object_id($post-&gt;ID, 'post', false, 'en'); ?&gt;
  &lt;ul class= "product"&gt;
    &lt;li class = "title"&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;li class = "ref"&gt;&lt;?php echo get_post_meta($o_ID, 'Reference', true); ?&gt;&lt;/li&gt;
    &lt;li class = "price"&gt;&lt;?php echo get_post_meta($o_ID, 'Price', true); ?&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;?php endwhile; ?&gt;</pre>
<p>Basically what we did was to retrieve the ID of the original post corresponding to any translated post, and using this ID to get the custom values. Depending on the original language of your posts, you can change the last parameter of icl_object_id (&#8217;de&#8217; for German, &#8216;fr&#8217; for French, etc.). You can get more information about the other parameters of this function <a href="http://wpml.org/home/getting-started-guide/language-dependent-ids/">here</a> and a list of other functions in the <a href="http://wpml.org/support/wpml-coding-api/">coding API page</a>.</p>
<p>That was for the custom fields, now how do I do the same with the image gallery?</p>
<p>Let&#8217;s take our first example and also show three thumbnails images for each post in the list:</p>
<pre>&lt;?php while (have_posts()) : the_post(); ?&gt;

&lt;?php
  // Get the original post ID (in my case the english one)
  $o_ID = icl_object_id($post-&gt;ID, 'post', false, 'en'); ?&gt;

  &lt;ul class= "product"&gt;
    &lt;li class = "title"&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;li class = "ref"&gt;&lt;?php echo get_post_meta($o_ID, 'Reference', true); ?&gt;&lt;/li&gt;
    &lt;li class = "price"&gt;&lt;?php echo get_post_meta($o_ID, 'Price', true); ?&gt;&lt;/li&gt;

&lt;?php

  // Get 3 thumbnails from the original post
  $args = array('post_type' =&gt; 'attachment','numberposts' =&gt; 3,'post_status' =&gt; null,'post_parent' =&gt; $o_ID);
  $attachments = get_posts($args);
  if ($attachments) {
    foreach ($attachments as $attachment) {
      echo '&lt;li class="thumbnail"&gt;'.wp_get_attachment_image($attachment-&gt;ID).'&lt;/li&gt;';
    }
  }
?&gt;
&lt;/ul&gt;

&lt;?php endwhile; ?&gt;</pre>
<h2>Summary</h2>
<p>You can easily customize this little script to fit your needs, showing more (or less) images or different sizes.</p>
<p>That&#8217;s it. Now we can show our product list in any language, and it will always contain all the product custom fields and images, even if technically these are only stored in the original post.</p>
<p>This gets really interesting for bigger catalogs with more languages. Imagine you have to change the price of a product in five languages. With the normal method you would have to edit all five posts. With this easy method you always have one &#8220;master&#8221; language with its posts containing the complete information about your products and translations reusing it.</p>
<p><em><strong>Michael Wassmer</strong> is a freelance web designer based in <strong>Barcelona</strong>, <strong>Spain</strong>. You can contact him at <strong>mike@michaelwassmer.net</strong></em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=8b9k8ar1cIQ:1HsaQbXnQBk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=8b9k8ar1cIQ:1HsaQbXnQBk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=8b9k8ar1cIQ:1HsaQbXnQBk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=8b9k8ar1cIQ:1HsaQbXnQBk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=8b9k8ar1cIQ:1HsaQbXnQBk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=8b9k8ar1cIQ:1HsaQbXnQBk:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/8b9k8ar1cIQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/09/creating-a-multilingual-product-catalog/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/09/creating-a-multilingual-product-catalog/</feedburner:origLink></item>
		<item>
		<title>WPML tables description (and a poll)</title>
		<link>http://feedproxy.google.com/~r/wpml/~3/mas2raTUAZk/</link>
		<comments>http://wpml.org/2009/09/wpml-tables-description/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 14:23:51 +0000</pubDate>
		<dc:creator>amir</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://wpml.org/?p=2802</guid>
		<description><![CDATA[Many folks have asked us how WPML&#8217;s language information is stored. Some have even spent valuable time reverse engineering it in order to solve immediate problems (like migrating from Gengo to WPML).
Without further delay, have a look at WPML&#8217;s tables description. That page describes the languages and translation table, the country flags table and the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Many folks have asked us how WPML&#8217;s language information is stored.</strong> Some have even spent valuable time reverse engineering it in order to solve immediate problems (like <a href="http://www.bernawebdesign.ch/byteblog/2009/08/15/migrating-wordpress-from-gengo-to-wpml/">migrating from Gengo to WPML</a>).</p>
<p>Without further delay, have a look at <a href="http://wpml.org/support/wpml-tables/">WPML&#8217;s tables description</a>. That page describes the <strong>languages and translation</strong> table, the <strong>country flags</strong> table and the <strong>strings translation</strong> table.</p>
<p>I hope that this description helps develop themes and plugins that work with WPML.</p>
<h2>WPML&#8217;s Sticky Links &#8211; what&#8217;s that?</h2>
<p>From time to time, folks ask us what are WPML&#8217;s <strong>Sticky Links</strong>. In case you&#8217;re wondering, you can see it by going to WPML&#8217;s menu and click on <strong>Sticky Links</strong>.</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p>Thanks for answering this poll. <strong>Sticky Links are one of WPML&#8217;s more powerful functions</strong> and we&#8217;re trying to make them easier and more obvious to use.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/wpml?a=mas2raTUAZk:ZW5E-jk8twM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/wpml?i=mas2raTUAZk:ZW5E-jk8twM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=mas2raTUAZk:ZW5E-jk8twM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/wpml?i=mas2raTUAZk:ZW5E-jk8twM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/wpml?a=mas2raTUAZk:ZW5E-jk8twM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/wpml?i=mas2raTUAZk:ZW5E-jk8twM:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/wpml/~4/mas2raTUAZk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpml.org/2009/09/wpml-tables-description/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://wpml.org/2009/09/wpml-tables-description/</feedburner:origLink></item>
	</channel>
</rss>
