<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>AB-WebLog.com&#187; plug-in</title>
	<atom:link href="http://www.ab-weblog.com/en/tag/plug-in/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ab-weblog.com/en</link>
	<description>Andreas Breitschopp</description>
	<lastBuildDate>Wed, 18 Mar 2015 09:47:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WordPress Multisite: Redirect Users Based on Their Browser Language</title>
		<link>http://www.ab-weblog.com/en/wordpress-multisite-redirect-users-based-on-their-browser-language/</link>
		<comments>http://www.ab-weblog.com/en/wordpress-multisite-redirect-users-based-on-their-browser-language/#comments</comments>
		<pubDate>Fri, 22 Jun 2012 16:44:12 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[multilingual]]></category>
		<category><![CDATA[multisite]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=502</guid>
		<description><![CDATA[Since I wrote the post about using the Multisite Language Switcher I got many questions asking how I &#8220;disabled&#8221; the main site &#8220;/&#8221; in my WordPress Multisite configuration. The answer is simple: I did not disable it, but just created an &#8230; <a href="http://www.ab-weblog.com/en/wordpress-multisite-redirect-users-based-on-their-browser-language/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I wrote the post about using the <a title="The Solution for Multilingual Blogs in WordPress" href="http://www.ab-weblog.com/en/the-solution-for-multilingual-blogs-in-wordpress/">Multisite Language Switcher</a> I got many questions asking how I &#8220;disabled&#8221; the main site &#8220;/&#8221; in my WordPress Multisite configuration.</p>
<p>The answer is simple: I did not disable it, but just created an own, small redirect theme to make sure every user accessing the main site &#8220;/&#8221; is redirected to the correct language URL &#8211; in my case either &#8220;/en/&#8221; or &#8220;/de/&#8221;.</p>
<p>The following source code isn&#8217;t completely from me. I remember that I just searched the web for a good solution and changed it as I needed it, but that&#8217;s a longer time ago. Therefore no idea where parts or this code are from originally.</p>
<p>Anyway, here is the source code of the file <em>index.php</em> of my redirect theme just as I use it on this WordPress site right now:</p>
<pre class="brush: php; gutter: true">&lt;?php
/**
 * The main template file.
 *
 * This is the most generic template file in a WordPress theme
 * and one of the two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * E.g., it puts together the home page when no home.php file exists.
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Redirect
 */

/**
 * Detect browser language.
 *
 * @param array $allowed_languages An array of languages that are available on the site.
 * @param string $default_language Default language to use if none could be detected.
 * @param string $lang_variable Custom user language support. If not specified $_SERVER[&#039;HTTP_ACCEPT_LANGUAGE&#039;] is used.
 * @param string $strict_mode If true (default) the whole language code (&quot;en-us&quot;) is used and not only the left part (&quot;en&quot;).
 * @return string The detected browser language.
 */
function get_lang_from_browser($allowed_languages, $default_language, $lang_variable = NULL, $strict_mode = TRUE) {
    // Use $_SERVER[&#039;HTTP_ACCEPT_LANGUAGE&#039;] if no language variable is available
    if (NULL === $lang_variable)
        $lang_variable = $_SERVER[&#039;HTTP_ACCEPT_LANGUAGE&#039;];

    // Any info sent?
    if (empty($lang_variable))
        return $default_language;

    // Split the header
    $accepted_languages = preg_split(&#039;/,\s*/&#039;, $lang_variable);

    // Set default values
    $current_lang = $default_language;
    $current_q    = 0;
    // Now work through all included languages
    foreach ($accepted_languages as $accepted_language) {
        // Get all info about this language
        $res = preg_match(
            &#039;/^([a-z]{1,8}(?:-[a-z]{1,8})*)&#039;.
            &#039;(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i&#039;,
            $accepted_language,
            $matches
        );

        if (!$res)
            continue;

        // Get language code and split into parts immediately
        $lang_code = explode(&#039;-&#039;, $matches[1]);

        // Is there a quality set?
        if (isset($matches[2]))
            $lang_quality = (float)$matches[2];
        else
            $lang_quality = 1.0;

        // Until the language code is empty...
        while (count($lang_code)) {
            // Check if the language code is available
            if (in_array(strtolower(join(&#039;-&#039;, $lang_code)), $allowed_languages)) {
                // Check quality
                if ($lang_quality &gt; $current_q) {
                    $current_lang = strtolower(join(&#039;-&#039;, $lang_code));
                    $current_q = $lang_quality;
                    break;
                }
            }
            // If we&#039;re in strict mode we won&#039;t try to minimalize the language
            if ($strict_mode)
                break;

            // Cut the most right part of the language code
            array_pop($lang_code);
        }
    }

    return $current_lang;
}

$allowed_langs = array(&#039;en&#039;, &#039;de&#039;);
$lang = get_lang_from_browser($allowed_langs, &#039;en&#039;, NULL, FALSE);
header(&#039;Location: http://&#039; . $_SERVER[&#039;HTTP_HOST&#039;] . &quot;/$lang/&quot;);

exit();
?&gt;</pre>
<p>So just create a new theme folder and copy the PHP code above (change the allowed languages if needed, of course) into a file named <em>index.php</em>.</p>
<p>Then you just need to create an additional dummy file <em>style.css</em> with some info about the theme. Otherwise WordPress won&#8217;t recognize your theme:</p>
<pre class="brush: css; gutter: true">/*
Theme Name: Redirect
Theme URI: http://wordpress.org/extend/themes/redirect
Author: AB-WebLog.com
Author URI: http://www.ab-weblog.com
Description: Redirects
Version: 1.0
Tags: redirect
*/</pre>
<p>That&#8217;s it: after you have seleted this new theme for your main site &#8220;/&#8221;, every user will automatically be redirected to the correct language version based on the browser language settings.</p>
<p><em>Do you use the Multisite Language Switcher or your blog, too?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/wordpress-multisite-redirect-users-based-on-their-browser-language/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flags Widget as Easy to Use WordPress Plug-In</title>
		<link>http://www.ab-weblog.com/en/flags-widget-as-easy-to-use-wordpress-plug-in/</link>
		<comments>http://www.ab-weblog.com/en/flags-widget-as-easy-to-use-wordpress-plug-in/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 19:21:52 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[country]]></category>
		<category><![CDATA[flag]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=347</guid>
		<description><![CDATA[Some minutes ago I’ve released my second WordPress plug-in: A simple plug-in that displays flag icons that link to other language versions of your blog. This plug-in combines my widget for displaying language selection flags in menu and footer with many &#8230; <a href="http://www.ab-weblog.com/en/flags-widget-as-easy-to-use-wordpress-plug-in/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some minutes ago I’ve released my second WordPress plug-in: A simple plug-in that displays <a title="Flags Widget" href="http://www.ab-weblog.com/en/wordpress-plug-ins/flags-widget/">flag icons</a> that link to other language versions of your blog.</p>
<p>This plug-in combines my <a title="Widget for Displaying Language Selection Flags in Menu and Footer" href="http://www.ab-weblog.com/en/widget-for-displaying-language-selection-flags-in-menu-and-footer/">widget for displaying language selection flags in menu and footer</a> with many additional options and settings in one clean WordPress plug-in.</p>
<p>The <a title="Flags Widget" href="http://www.ab-weblog.com/en/wordpress-plug-ins/flags-widget/">installation and configuration</a> is very easy. Just have a look und let me know your thoughts!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/flags-widget-as-easy-to-use-wordpress-plug-in/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Most Important Social Widgets as Easy to Use WordPress Plug-In</title>
		<link>http://www.ab-weblog.com/en/most-important-social-widgets-as-easy-to-use-wordpress-plug-in/</link>
		<comments>http://www.ab-weblog.com/en/most-important-social-widgets-as-easy-to-use-wordpress-plug-in/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 22:05:24 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=240</guid>
		<description><![CDATA[Some minutes ago I&#8217;ve released my first WordPress plug-in: it displays the most important social widgets of Facebook, Twitter and Google+ below your posts. Now the question is: Why yet another social widgets plug-in as there are already a lot &#8230; <a href="http://www.ab-weblog.com/en/most-important-social-widgets-as-easy-to-use-wordpress-plug-in/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some minutes ago I&#8217;ve released my first WordPress plug-in: it displays the most important <a title="Social Widgets" href="http://www.ab-weblog.com/en/wordpress-plug-ins/social-widgets/">social widgets of Facebook, Twitter and Google+ </a>below your posts.</p>
<p><em>Now the question is:</em><br />
Why yet another social widgets plug-in as there are already a lot of them?</p>
<p>The answer is that I&#8217;ve searched for a simple and easy to user plug-in and all plug-ins I&#8217;ve found were way to complicated: I did not want to have countless of social networks supported with hundreds of options &#8211; just a simple plug-in covering the most important social widgets without needing to configure anything!</p>
<p><em>And that&#8217;s my new plug-in:</em><br />
<a title="Social Widgets" href="http://www.ab-weblog.com/en/wordpress-plug-ins/social-widgets/">Install it</a>, activate it and the social widgets are displayed below your posts immediately &#8211; without doing any configuration.</p>
<p><em>What social widgets plug-in do you use?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/most-important-social-widgets-as-easy-to-use-wordpress-plug-in/feed/</wfw:commentRss>
		<slash:comments>105</slash:comments>
		</item>
		<item>
		<title>The Solution for Multilingual Blogs in WordPress</title>
		<link>http://www.ab-weblog.com/en/the-solution-for-multilingual-blogs-in-wordpress/</link>
		<comments>http://www.ab-weblog.com/en/the-solution-for-multilingual-blogs-in-wordpress/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 15:40:02 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[multilingual]]></category>
		<category><![CDATA[multisite]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=209</guid>
		<description><![CDATA[After I&#8217;ve tested several options for multilingual blogs in WordPress (see this post), Dennis Ploetner called my attention to his not just yet very famous, but excellent plug-in in a comment. The Multisite Language Switcher allows you to simply use a &#8230; <a href="http://www.ab-weblog.com/en/the-solution-for-multilingual-blogs-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After I&#8217;ve tested several options for multilingual blogs in WordPress (<a title="Multilingual Blog in WordPress: qTranslate, WPML or Multisite Feature" href="http://www.ab-weblog.com/en/multilingual-blog-in-wordpress-qtranslate-wpml-or-multisite-feature/">see this post</a>), Dennis Ploetner called my attention to his not just yet very famous, but excellent plug-in in a comment.</p>
<p>The <a title="Plug-In Page of the Multisite Language Switcher" href="http://wordpress.org/extend/plugins/multisite-language-switcher/" target="_blank">Multisite Language Switcher</a> allows you to simply use a multisite WordPress configuration with one WordPress administration for every blog language and still have a relation between the language versions of your posts, categories and tags.</p>
<p>That&#8217;s really great, because this way you don&#8217;t have the problem with all these translation plug-ins that you always have to make sure that every additional plug-in you use (like a special SEO plug-in) also supports the used translation plug-in. Otherwise you cannot add let&#8217;s say a translation for your page title or description which is important for SEO reasons.</p>
<p>But not with this plug-in: as it depends only on the default and official functionality of a WordPress multisite configuration, you can use whatever plug-in that supports the WordPress multisite functionality.</p>
<p>You may say it is unfunctional that you need to login to another WordPress admin area to change a translation. But with the <a title="Multisite Language Switcher Version 0.7" href="http://lloc.de/et-voila-multisite-language-switcher-0-7.html" target="_blank">current version of this plug-in</a> each translation is linked in the admin area directly (just click on the language flag). This way it is very easy to switch between different translations in the edit mode.</p>
<p>You can see this plug-in in action here, of course:<br />
it can add a link below every post to its translations. Additionally the flags displayed on the blog pages link directly to the translations of the current page, too.</p>
<p>As a summary I can only recommend to try this plug-in if you are searching for a solution to build a multilingual blog in WordPress.</p>
<p><em>Do you know other good solutions for multilingual blogs in WordPress?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/the-solution-for-multilingual-blogs-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>German Translation for MailPress Plug-In</title>
		<link>http://www.ab-weblog.com/en/german-translation-for-mailpress-plug-in/</link>
		<comments>http://www.ab-weblog.com/en/german-translation-for-mailpress-plug-in/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 18:30:41 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[MailPress]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[translation]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=93</guid>
		<description><![CDATA[As I am using the MailPress plug-in to support blog and comment subscriptions, I needed a German translation for it. Unfortunately the only available German translation for this plug-in was completely outdated. Therefore I decided to create one on my own. &#8230; <a href="http://www.ab-weblog.com/en/german-translation-for-mailpress-plug-in/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As I am using the <a title="WordPress MailPress Plug-In" href="http://www.mailpress.org/wiki/index.php?title=Main_Page" target="_blank">MailPress plug-in</a> to support blog and comment subscriptions, I needed a German translation for it. Unfortunately the only available German translation for this plug-in was completely outdated. Therefore I decided to create one on my own.</p>
<p>Download the German translation file:</p>
<ul>
<li><a title="German Translation for MailPress 5.3.0" href="http://www.ab-weblog.com/en/files/MailPress-5.3.0-de_DE.zip">MailPress-5.3.0-de_DE.zip</a></li>
<li><a title="German Translation for MailPress 5.2.1" href="http://www.ab-weblog.com/en/files/MailPress-5.2.1-de_DE.zip">MailPress-5.2.1-de_DE.zip</a></li>
<li><a title="German Translation for MailPress 5.1.1" href="http://www.ab-weblog.com/en/files/MailPress-5.1.1-de_DE.zip">MailPress-5.1.1-de_DE.zip</a></li>
<li><a title="German Translation for MailPress 5.1" href="http://www.ab-weblog.com/en/files/MailPress-5.1-de_DE.zip">MailPress-5.1-de_DE.zip</a></li>
</ul>
<p>Just unzip the translation files into the folder <em>/mailpress/mp-content/languages/</em>.</p>
<p>If you find mistakes, please post below!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/german-translation-for-mailpress-plug-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Widget for Displaying Language Selection Flags in Menu and Footer</title>
		<link>http://www.ab-weblog.com/en/widget-for-displaying-language-selection-flags-in-menu-and-footer/</link>
		<comments>http://www.ab-weblog.com/en/widget-for-displaying-language-selection-flags-in-menu-and-footer/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 18:37:27 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[multilingual]]></category>
		<category><![CDATA[multisite]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=32</guid>
		<description><![CDATA[After I decided to use the WordPress Multisite feature for my multilingual blog (see this post), I wanted to display language selection flags inside the menu and in the footer. It turned out that especially the integration of images on &#8230; <a href="http://www.ab-weblog.com/en/widget-for-displaying-language-selection-flags-in-menu-and-footer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After I decided to use the WordPress Multisite feature for my multilingual blog (<a title="Multilingual Blog in WordPress: qTranslate, WPML or Multisite Feature" href="http://www.ab-weblog.com/en/multilingual-blog-in-wordpress-qtranslate-wpml-or-multisite-feature/">see this post</a>), I wanted to display language selection flags inside the menu and in the footer.</p>
<p>It turned out that especially the integration of images on the right side of the (by default black) menu area was not very easy in the &#8220;Twenty Eleven&#8221; theme. Therefore I decided to just create a simple widget that displays the flags in a DIV which is placed above all other content and this way can easily be positioned with relative coordinates directly from within the admin widget interface.</p>
<p>Therefore you can define these settings in the admin area:</p>
<p><a href="http://www.ab-weblog.com/en/files/flags_widget_admin.png"><img class="aligncenter size-full wp-image-33" title="Flags Widget (Admin Interface)" src="http://www.ab-weblog.com/en/files/flags_widget_admin.png" alt="Flags Widget (Admin Interface)" width="262" height="252" /></a></p>
<ul>
<li>Flag position offset (left): the relative offset of the X coordinate of the DIV.</li>
<li>Flag position offset (top): the relative offset of the Y coordinate of the DIV.</li>
<li>Flag icon URL (en): the flag icon URL for the English flag (first uploaded, of course).</li>
<li>Flag icon URL (de): the flag icon URL for the German flag (first uploaded, of course).</li>
</ul>
<p>Obviously this can be easily extended with more or other languages if needed.</p>
<p>And here is the widget source code:</p>
<pre class="brush: php; gutter: true">&lt;?php
/**
 * Flags_Widget Class
 */
class Flags_Widget extends WP_Widget {
	/** constructor */
	function Flags_Widget() {
		parent::WP_Widget(false, $name = 'Flags_Widget');
	}

	/** @see WP_Widget::widget */
	function widget($args, $instance) {
		extract($args);
		?&gt;
			&lt;div style="position: relative;"&gt;
				&lt;div style="left: &lt;?php echo $instance['flags_position_left']; ?&gt;px; top: &lt;?php echo $instance['flags_position_top']; ?&gt;px; position: absolute; z-index: 10000 !important;"&gt;
					&lt;?php echo '&lt;a href="/en/"&gt;&lt;img src="' . $instance['flag_en'] . '" width="20" height="16" title="English" alt="English" /&gt;'; ?&gt;&lt;/a&gt;  
					&lt;?php echo '&lt;a href="/de/"&gt;&lt;img src="' . $instance['flag_de'] . '" width="20" height="16" title="Deutsch" alt="Deutsch" /&gt;&lt;/a&gt;'; ?&gt;
				&lt;/div&gt;
			&lt;/div&gt;
		&lt;?php
	}

	/** @see WP_Widget::update */
	function update($new_instance, $old_instance) {
		$instance = $old_instance;
		$instance['flags_position_left'] = strip_tags($new_instance['flags_position_left']);
		if (!is_numeric($instance['flags_position_left'])) $instance['flags_position_left'] = '0';
		$instance['flags_position_top'] = strip_tags($new_instance['flags_position_top']);
		if (!is_numeric($instance['flags_position_top'])) $instance['flags_position_top'] = '0';
		$instance['flag_en'] = strip_tags($new_instance['flag_en']);
		$instance['flag_de'] = strip_tags($new_instance['flag_de']);
		return $instance;
	}

	/** @see WP_Widget::form */
	function form($instance) {
		$flags_position_left = esc_attr($instance['flags_position_left']);
		if ($flags_position_left == '') $flags_position_left = '0';
		$flags_position_top = esc_attr($instance['flags_position_top']);
		if ($flags_position_top == '') $flags_position_top = '0';
		$flag_en = esc_attr($instance['flag_en']);
		$flag_de = esc_attr($instance['flag_de']);
		?&gt;
			&lt;p&gt;
				&lt;label for="&lt;?php echo $this-&gt;get_field_id('flags_position_left'); ?&gt;"&gt;&lt;?php _e('Flag position offset (left):'); ?&gt;&lt;/label&gt;
				&lt;input class="widefat" id="&lt;?php echo $this-&gt;get_field_id('flags_position_left'); ?&gt;"
					name="&lt;?php echo $this-&gt;get_field_name('flags_position_left'); ?&gt;" type="text" value="&lt;?php echo $flags_position_left; ?&gt;" /&gt;
				&lt;label for="&lt;?php echo $this-&gt;get_field_id('flags_position_top'); ?&gt;"&gt;&lt;?php _e('Flag position offset (top):'); ?&gt;&lt;/label&gt;
				&lt;input class="widefat" id="&lt;?php echo $this-&gt;get_field_id('flags_position_top'); ?&gt;"
					name="&lt;?php echo $this-&gt;get_field_name('flags_position_top'); ?&gt;" type="text" value="&lt;?php echo $flags_position_top; ?&gt;" /&gt;
				&lt;label for="&lt;?php echo $this-&gt;get_field_id('flag_en'); ?&gt;"&gt;&lt;?php _e('Flag icon URL (en):'); ?&gt;&lt;/label&gt;
				&lt;input class="widefat" id="&lt;?php echo $this-&gt;get_field_id('flag_en'); ?&gt;"
					name="&lt;?php echo $this-&gt;get_field_name('flag_en'); ?&gt;" type="text" value="&lt;?php echo $flag_en; ?&gt;" /&gt;
				&lt;label for="&lt;?php echo $this-&gt;get_field_id('flag_de'); ?&gt;"&gt;&lt;?php _e('Flag icon URL (de):'); ?&gt;&lt;/label&gt;
				&lt;input class="widefat" id="&lt;?php echo $this-&gt;get_field_id('flag_de'); ?&gt;"
					name="&lt;?php echo $this-&gt;get_field_name('flag_de'); ?&gt;" type="text" value="&lt;?php echo $flag_de; ?&gt;" /&gt;
			&lt;/p&gt;
		&lt;?php
	}
} // class Flags_Widget
add_action('widgets_init', create_function('', 'return register_widget("Flags_Widget");'));
?&gt;</pre>
<p>I wanted to keep it simple and therefore all together in one file. Otherwise you should at least put the CSS styles inside an external style sheet file, of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/widget-for-displaying-language-selection-flags-in-menu-and-footer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Multilingual Blog in WordPress: qTranslate, WPML or Multisite Feature</title>
		<link>http://www.ab-weblog.com/en/multilingual-blog-in-wordpress-qtranslate-wpml-or-multisite-feature/</link>
		<comments>http://www.ab-weblog.com/en/multilingual-blog-in-wordpress-qtranslate-wpml-or-multisite-feature/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 09:47:56 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[multilingual]]></category>
		<category><![CDATA[multisite]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[qTranslate]]></category>
		<category><![CDATA[WPML]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=47</guid>
		<description><![CDATA[As I setup this blog on a new platform, I wanted to make sure it is multilingual directly from the beginning. Disappointed I realized that WordPress still does not provide options for multilingual blogs originally. I don&#8217;t understand that, because &#8230; <a href="http://www.ab-weblog.com/en/multilingual-blog-in-wordpress-qtranslate-wpml-or-multisite-feature/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As I setup this blog on a new platform, I wanted to make sure it is multilingual directly from the beginning.</p>
<p>Disappointed I realized that WordPress still does not provide options for multilingual blogs originally. I don&#8217;t understand that, because obviously many people have exactly this problem: how to get the WordPress blog multilingual.</p>
<p>While searching for a solution, I basically found three useful options:</p>
<ul>
<li>Plug-in qTranslate</li>
<li>Plug-in WPML</li>
<li>Using the multisite feature of WordPress itself</li>
</ul>
<h2>qTranslate</h2>
<p>When I tested this plug-in I saw quite fast that it does not provide slug translation for posts, pages, categories and tags. This way this plug-in is useless in my opinion, because without a slug translation search engine optimization is basically impossible.</p>
<p>Obviously the original plug-in developer did not like or had no time to implement that feature yet, but although there are already other guys dealing with that issue (<a title="Forum post about qTranslate and slug translation" href="http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=4&amp;t=1049" target="_blank">see this forum post</a>), I don&#8217;t want to use such an incomplete plug-in right now.</p>
<h2>WPML</h2>
<p>On the first sight WPML looks like a good alternative. It is not free (anymore), but I don&#8217;t mind paying some dollars for a good plug-in.</p>
<p>But there are following reasons why I will not use it and asked for refunding my money (which is possible within 30 days):</p>
<ol>
<li>I want to have all languages (including the default one) in a subdirectory and this is not supported by WPML. The <a title="Work-around to get default language into subdirectory" href="http://forum.wpml.org/topic.php?id=4291" target="_blank">workaround provided in the forum</a> is a little bit too &#8220;hacky&#8221; (you never know which problems you&#8217;ll get with such hacks later on).</li>
<li>it is unhandy that WPML does not allow to have tags and categories with the same names and slugs for different languages. If different languages are placed in a subdirectory (or even subdomain), there is no need to have cross-language unique names and slugs.</li>
<li>there is a bug in WPML where posts are losing the translation relation to each other. <a title="Forum thread about posts loosing their translation relation" href="http://forum.wpml.org/topic.php?id=4298" target="_blank">No explanation or solution was provided therefore till now.</a></li>
</ol>
<p>But I would like to add that refunding the money was done very fast (within few hours) as promised by the company; so it&#8217;s save to test WPML yourself.</p>
<h2>WordPress Multisite</h2>
<p>Obviously there are not many options left. Therefore I go this way now.</p>
<p>Of course, there is a drawback with this solution, too: translated posts are not directly linked to each other and therefore the reader cannot switch to another language of the post easily. But maybe I&#8217;ll create a plug-in to fix this later on myself.</p>
<p>At least you don&#8217;t need to rely on other plug-ins for multilingual blogs with this solution.</p>
<p><a title="Widget for Displaying Language Selection Flags in Menu and Footer" href="http://www.ab-weblog.com/en/widget-for-displaying-language-selection-flags-in-menu-and-footer/">Here I explain how to add language selection flags although using WordPress Multisite.</a></p>
<p><em>And which option you are using for your multilingual blog?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/multilingual-blog-in-wordpress-qtranslate-wpml-or-multisite-feature/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dotclear as Alternative to WordPress</title>
		<link>http://www.ab-weblog.com/en/dotclear-as-alternative-to-wordpress/</link>
		<comments>http://www.ab-weblog.com/en/dotclear-as-alternative-to-wordpress/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 13:16:00 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[multilingual]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/en/?p=20</guid>
		<description><![CDATA[While searching for a good, new platform for this blog, the first blog software you came across obviously is WordPress. But as I was not so happy with the multi-language features of WordPress (see this other post), I searched for &#8230; <a href="http://www.ab-weblog.com/en/dotclear-as-alternative-to-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While searching for a good, new platform for this blog, the first blog software you came across obviously is WordPress. But as I was not so happy with the multi-language features of WordPress (see this other post), I searched for a better solution.</p>
<p>Then I found <a title="Dotclear webpage" href="http://dotclear.org" target="_blank">Dotclear</a> that looked at first sight like a interesting alternative:</p>
<ul>
<li>It looks clean and easy.</li>
<li>It’s written in PHP (as I’m developing in PHP myself, too, that’s important for me in case it should be necessary to add or change something myself).</li>
<li>It should be easily possible to use more than one language for the blog (that’s the reason why I’m unhappy with WordPress).</li>
</ul>
<p>Therefore I just gave it a try and installed it on my test server which worked without problems and errors.</p>
<p>Directly after the first login I wanted to have a look inside the documentation and the plug-in descriptions to see what plug-ins are available for this system. But then I was appalled: all plug-in descriptions and part of the documentation seem to be only available in French!</p>
<p>Maybe I could still understand it by using my school’s Latin knowledge and Google Translate, but I really don’t want to use a blogging system that’s main language is not English.</p>
<p>Although I’m a German native speaker, I even don’t think any bigger open source project should choose German as main language: if there are translations in other languages that’s great, of course, but as most of all people understand English, the main language of all projects should be English! Period.</p>
<p>Therefore I stopped testing Dotclear and stayed with WordPress.</p>
<p><em>Did you also have positive or negative experience with Dotclear yourself already?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/en/dotclear-as-alternative-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->