If you want to take full control of your site’s languages, it is suggested to install also the Internationalization add-on. With this add-on you don’t get the mapping functionality of the language pages that the Internationalization add-on offers.

Before installation

Before installing the package you need to allow your web server process (that is running the PHP) to write and access the following locations (ignore the second one if you're installing through the marketplace):

  • /c5root/libraries/
  • /c5root/packages/language_manager/config/

And while you're at it, you also need to allow access (read+write) to one more directory in order to use the automatic language installer. This directory is:

  • /c5root/languages/

In linux basically this is what you need to do (change original_user to the user account that originally owned the directory/file and www-data to the user name that is running your web server process):

chown original_user:www-data /c5root/libraries/ /c5root/packages/langauge_manager/config/
chmod g+rw  /c5root/libraries/ /c5root/packages/langauge_manager/config/

These are needed because the installation process will add an override to one of the core libraries. The second one will be needed to handle the configuration through the UI.

For the languages directory you need to allow access to the whole directory including subdirectories and their files:

chown -R original_user:www-data /c5root/languages/
chmod -R g+rw  /c5root/languages/

Language package management

You can view and install language packages (language translation files) on the Language Packages page.  You can use the option “From concrete5 translation repository” to automatically download the language package and install it. If you have your own translation files, you can also install them with file upload or by entering an external url.

Here’s how to use install your own language files:

  1. From file upload:
    1. Give the locale of the language that you are installing. The locale should look something like “en_US”. Other option is to name the file “en_US.po” and check the “Filename contains locale” option.
    2. Provide the .po file for the language to be installed.
    3. Click “Install”
  2. From external URL
    1. Just the same way like “From file upload” but instead of the file selection, just paste the URL to the .po file for the language to be installed.

How to configure the automatic language detection?

  1. Go to the Language Detection page in the Language Manager. 
  2. First you see the “default locale” setting. It is set either from the Multilingual-section on the left main dashboard menu or under the Sitewide settings, depending whether you have the Internationalization add-on installed. The change link will redirect you to the correct location. With older versions of concrete5, you’ll see a text box here where you can write the default locale.
  3. Check  the “Force user redirection...” box if you don’t want to use the main home page of your site but to redirect users straight to the detected language page.
  4. Check  the “Allow redirection on site...” box  if you want  the user be redirected to a site translation in the site structure even if the language translation file is not installed
  5. Check  the “Redirect language front page to the first child” box if you want to redirect the visitor to the first page under the language page. Does not take effect if the language main page does not have child pages.
  6. Enable site and dashboard detection depending on your preferences where you want to use the automatic detection methods. Prioritize the detection methods by dragging them to the correct position in the list. Here are explanations for the four detection methods: 
    1. Default locale: The default locale setting. Under this, all detection methods will be ignored.  This is visualized by the dashed line in the list under the default locale.
    2. Browser language: The language setting that is set in the user’s browser settings. 
    3. User’s IP address geolocation:  User’s country based on their IP address. If you choose to use this detection method, please see also the IP configuration section of this documentation.
    4. User defined locale:  User’s personal language preference is part of Concrete 5.4.2 core. It can be set on the login page. With older versions of concrete, you can set this by editing the user’s attributes. There is one available for this purpose after installing the Language Manager.


I've done everything and my translatable texts still don't translate
For the detection and translations to work correctly, you must have the system language installed for that locale in the root /languages directory. If the language folder for your problematic language does not exist, some of the functionality (like picking up the correct locale) might not work correctly.

To fix this, you could simply just install the language package for that langauge from the "Language Packages" section.

IP-Country  mappings

In order to use the IP detection method, you must import the IP-to-country mappings to the database. Please note that the companies providing these mapping files usually have some kind of licensing terms for them to be used on your site. The terms might include the type of site you’re running.

These instructions use a normally formatted CSV file with IP address and country information. The IP addresses in the file are in IP-format (e.g. 111.222.333.444) and country codes are in two-letter format (e.g. US).

Mainio Tech Ltd. will not take any responsibility of the correctness of the data provided by third parties! You should also be aware of the terms of usage for these mappings before importing them to any site!

Here’s how to import the IP-country mappings:

  1. Navigate to the Language Detection page and find the IP-Country  Mappings  section
  2. Select the file. It must contain the mappings in CSV-format. The character “;” must be used as the column delimiter!
  3. Select the right columns from the file to be imported. The importer will ask you to specify three columns: 
    1. IP address range start (in IP-format like 111.222.333.444)
    2. IP address range end (also in IP-format), and
    3. The country code (in two-letter format like US, GB, ES, DE, FI, etc.)
  4. After this,  you’re ready to begin the import! It can take a while, because the IP-country databases are usually quite big. So be prepared to wait for a while.

Using the IP-country mappings

WIPmania no longer provides free of use databases to download so we suggest using some alternative providers for this information.