Table of Contents

Multilingual Sites

This feature lets you create multiple translated versions of a site on one domain. See the FAQ New Rotation Hints section “Site menu translation (i18)” for interface translation. Here we'll cover translating content.

Start by creating additional languages in Rotation - Settings - Multilingual. Then, when editing galleries, you can provide a description for each language. For automatic translation, use Google translate. Let's say you've added German (de) and Spanish (es) to your English (en) site.

Switch languages by adding &force_lng=… to the URL (de or es in this example).

There are 2 ways to display the correct language via 2 options in Rotation - Settings - Multilingual:

1. Auto Switch language - the URL stays the same, but the page language changes based on browser language

2. Auto redirect to existing language - the URL changes, and the language is always fixed for that URL regardless of browser settings

Auto Switch language

The script reads the browser's language preference from HTTP headers and displays the page in that language. The URL doesn't change. Simply enable this option to show the same page in different languages based on browser settings.

Auto redirect to existing language

This option redirects users to a language-specific URL. The default pattern is:

http://{DOMAIN}/{LANGUAGE}/{ORIGINAL_REQUEST}

For example, a request to http://domain/category/asd/ with language set to ru will redirect to http://domain/ru/category/asd/ (assuming ru is configured). Pages accessed via http://domain/ru/category/asd/ are always in Russian, regardless of browser language.

To enable this, add the default rewrite rule at the start of .htaccess:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]{2})/(.*)$ $2?force_lng=$1&%{QUERY_STRING} [L]

Of course, you can create your own URL patterns.

Subdomains

If you use language subdomains (de.domain.com, fr.domain.com, etc.), point them all to the main domain in your Apache config and add this rewrite:

RewriteCond %{HTTP_HOST} ^([a-z]{2})\.domain\.com$ [NC]
RewriteRule ^ %{REQUEST_URI}?force_lng=%1 [QSA,L]

Each language can maintain statistics separately via two options: Own category stats and Own thumb stats.

If both are disabled, you get a simple translation. This is good for SEO.

Own category stats - When enabled, category thumbnails are sorted by click stats for that specific language. For example, clicks on http://domain/ and http://domain/de/ are counted separately. This is useful when comparing languages with different user preferences (e.g., jp vs en may have very different category popularity).

Own thumb stats - Gallery thumbnails get separate statistics per language. The system creates an additional set of category thumbnails to ensure category headers appear first. If you enable this without Own category stats, the category thumbnail may differ from other top thumbnails in that category.

Auto Switch language

This option displays the translation on the same URL.

When a user with DE language (if configured) visits the site, the page automatically displays in DE without changing the URL.

To clarify: Auto redirect to existing language - redirects to a language-specific URL (language visible in the URL). Auto Switch language - displays the correct language without redirecting (language not visible in the URL).

Save language preferences

Saves the user's language preference in a cookie. Only relevant for Auto Switch language.

To redirect users to the main language (ignoring their saved cookie), use &force_lng=main.

GeoIP Based

Beyond browser language, you can rotate by country using GeoIP.

Create a language like FR (you don't need translations, but Own thumb stats is required for separate rotation stats). Then decide that traffic from France (and Belgium, for example) should be counted as FR. In the language settings, add GeoIP codes in the “+ GeoIP Codes” field: FR,BE.

This setting takes priority. For example, if you have FR and DE languages, a user with browser language DE but an IP from Belgium will be counted as FR, not DE.

This lets you group countries together.

Don't create separate rotations for every language unless necessary—you'll need to manage rotations separately for each group, and you need sufficient traffic to justify it.

Translations

Translating the site menu (links like “Most Popular”, “Order By Date”, etc.) is straightforward.

Go to Rotation - CMS Templates - Tpl Custom Var and add custom variables like most_popular. Use these in templates as <!–CUSTOM_VAR_MOST_POPULAR–>. You can set a different translation for each language.