Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6064841
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T09:19:27+00:00 2026-05-23T09:19:27+00:00

Does Expression Engine have a built-in solution for i18n (internationalization)? I have to build

  • 0

Does Expression Engine have a built-in solution for i18n (internationalization)?

I have to build a multi-language site, and would like to know the best approaches in EE for doing so.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T09:19:27+00:00Added an answer on May 23, 2026 at 9:19 am

    There are many ways you can create a multilingual or country-specific site in ExpressionEngine to deliver content specific to each language/country.

    The two most popular solutions are summarized from the following ExpressionEngine Wiki articles:

    MultiLingual Websites in ExpressionEngine

    The basic idea is to present your content in different languages using a combination of URL Segments, custom fields and a bit of PHP.

    Advantages

    • Single entry manages multiple languages
    • Simple URL structure

    As an example, say you have a 3-language site: English (en), Spanish (es) and German (de).

    For every piece of content in your site, you’d create a custom field with the language identifier as a postfix (or prefix, whatever you prefer) to the fields.

    Your custom field names might look like this:

    custom_field_en
    custom_field_es
    custom_field_de
    

    To switch between languages, simply add a corresponding URL segment (/en, /es or /de) that matches the language:

    example.com/template_group/template/en
    example.com/template_group/template/es
    example.com/template_group/template/de
    

    The main advantage of this approach is that it keeps all versions of your content inside a single entry, making updates and edits easy and consistent.


    MultiLingual Websites in ExpressionEngine, Alternative

    The alternative approach idea is to create sub-directories for each country, and use ExpressionEngine’s path.php Global Variables to hold the country code and/or language as a variable.

    Advantages

    • No PHP needed
    • No need to keep track of which segment holds the language variable
    • Elegant URL structure

    Using the same 3-languages as an example from the first method, you would create a new directory in the root of your EE install and name it after the country code of the language you want to add:

    Your folder structure might look like this:

    + /de
    + /en
    + /es
    index.php
    + /images
    + /system
    + /themes
    

    To allow this method work, place a copy of the main index.php inside each of the language directories. You would then modify each file by assigning variables corresponding to each language’s directory:

    $assign_to_config['site_index'] = 'http://www.example.com/en/';
    $assign_to_config['global_vars'] = array(
        "country_code" => "en",
        "language" => "english"
    );
    

    The URLs built will use whatever language/country designation you choose:

    example.com/es-MX/template_group/template/
    example.com/MX/template_group/template/
    

    The main advantage of the alternative approach is using Global Variables, leveraging the fact they are are parsed very early, and can be used almost anywhere in templates.

    See: ExpressionEngine’s Parse Order (PDF, 33 KB)


    Other Solutions

    Embracing the philosophy of ExpressionEngine, the flexibility you’re given as a designer/developer allows you to tailor a custom solution that suits your unique needs.

    If either of these approaches don’t quite meet your needs, you can eaily craft your own method or take a hybrid approach.

    With this in mind, a good starting point would be to look into the Multilingual Add-Ons at Devot-ee that may aide in your development.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am working with Expression Engine 2.1 and would like to have a relationship
Which regular expression engine does Java uses? In a tool like RegexBuddy if I
I’m looking at using Expression Engine for a new site I’m developing does anyone
In Expression Engine the {edit_date} tag would not return a UNIX timestamp like {entry_date}
I wrote my own Regular Expression Engine. Does anybody know how to test it,
^([0-9]*[1-9][0-9]*(\.[0-9]+)?|[0]+\.[0-9]*[1-9][0-9]*)$ I don't know regular expression well. Above regular expression does not allow input
Does anyone have a regular expression handy that will match any legal DNS hostname
Does anyone have any suggestions (or a regular expression) for parsing the HTTP Accept
Does anyone know if the following expression will be possible in the next version(s)
My Questions is Is there any regular expression engine that does Just-In-Time compiling during

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.