Multilingual Approaches to ExpressionEngine

So, it's been two years since I built a multilingual site, and I'm starting a new strait.

The last site I built used the biber multi multilingual module, which since then seems to have changed its name and is now called Multi-language Support . In the last build, I used a matrix and dropped out to set the language settings for each row, thereby ensuring that each page was in one record, and it would be easy to add additional languages ​​by simply adding an additional row to the matrix field.

My question is twofold. Are there any other approaches to consideration at this stage, since two years have passed since I built a multilingual site.

Secondly, with the last site, all SEO (meta description, meta keywords and title tags were in English only). The new site will need all this in English and French. I usually use the SEO Lite module to handle SEO, but I don’t see the possibility of having multiple languages ​​with it. Is there an easy way to set this or do I need to go with matrix fields as above?

I am open to any and all approaches that are available to me.

** UPDATE **

Will not use Structure so that there is no factor.

+4
source share
7 answers

I used several different approaches:

  • Transcribe has been used recently. It works great with rewriting patterns, language variables. It's pretty easy to set up, but also sometimes a little more powerful. It should work well with the structure, but I have not yet studied it. One advantage is that you do not need to have all pages in all languages.

  • Structure With structure and low variables, you can easily configure the tree as:

    Home / About Us / Products / P / Home / nl / over ons / P / Products

You can reuse your field groups, but not all content must exist in different languages

+7
source

I don't have a long answer, but Boldminded Publisher looks pretty pretty and full of features. And it's on sale.

Brian is a great developer with lots of support. Based on past support experiences, I highly recommend taking a look.

http://boldminded.com/add-ons/publisher

+11
source

I would say that this will depend on the size of the website. For a small site built of two columns in a matrix, it would be great, like you. I did this with Mobile, which simply had a column for English and for Spanish for all content elements, as well as for meta tags. Then I just passed the variable based on the language in which the visitor was originally selected.

But I would say that working with Multi Site Manager is probably your best bet. It is true that you will need to purchase additional add-ons if you use them on your site by default, but it is very easy to manage. Plus, you don’t want your URL structures to be different? For SEO purposes, you really want to have Spanish / French or any language in order to have your own unique URL.

I usually use MSM and NSM Better Meta addon. I would say that this provides maximum flexibility regardless of the size of the site.

+6
source

my approach on multiple sites, regardless of size, was:

  • Low variables for language variables inside a template
  • strategic planning of template names and templates (since this is one that is a little more difficult to handle translation using nothing but htaccess)
  • "languages" channel for extensibility
  • Each channel has a language field that uses a radio button derived from the language channel, so the language is assigned to the record (and then used in the loop of records as a limiter).
  • Playa associates the “equivalents” records with each other (that is, it allows one or one language switch WITHOUT all languages ​​in one record) - the relationship field is technically the best fix, but Playa has the ability to search when field relations are not
  • SEO handled with custom fields in channels with conditional default return to Low Variables

I prefer this approach (I used Transcribe, but I found it a bit resource intensive in terms of queries, where this approach is a bit easier, especially when caching). This allows me to support sequential enforcement and verification of required fields, for example, and allows me to use many other advantages - language heading entries in the language (without the need to format the content editor to create them manually), asynchronous content, asynchronous content translation (which always seems to be a problem - English is available before French, pending translation, for example), individual workflows potentially, etc.

This approach can be seen at www.cps.ca

+2
source

I have made several multilingual sites with EE, although never with the Bieber module. My preference is to use Republic Variables to create a variable matrix for labels (then this is just a simple flexible tag on the page). There's a bit of tweaking that needs to be done, but as soon as you have done this a couple of times, it only works for 5 minutes:

A basic overview of the steps (I started documenting them on my very old EE site ):

1) Use the .htaccess method to remove index.php from URLs (making them clean) and in EE, set the system to use the title as the article link

2) Create ANSI directories for each language and move copies of index.php and .htaccess, where the system path is fixed:

$system_path = '..system'; 

and in the languages ​​directory create .htaccess to re-run requests with the current language:

 RewriteEngine on RewriteCond $1 !^(index\.php) [NC] RewriteRule ^(.*)$ /ru/index.php/$1 [L] 

( check out my site for more detailed instructions)

3) Install the wonderful Republic Variables and install the required number of languages. (_en for English, _ru for Russian, _es for Spanish, etc.) and do the same by default as the default language in your index.php. In the configuration, I prefer to set the language postfix. Add the teaser variable for testing and fill in all languages.

4) On the page, mark the tag in this format: {variable_ {language}}, for example.

 {teaser_{language} 

and you should see the default language variable. Paste the language into the URL in front of the template / page (for example, www.sitename.com/en/directory/template) and the language will switch on the fly. I will document this in a follow-up post this weekend.

+2
source

I think MSM can also be considered an option for multilingual sites due to the following factors:

  • For content-rich sites, MSM is really easier for content contributors, who are usually responsible for the subscription language. One language == one site equation is easy to understand.
  • Multilingual sites tend to serve different audiences. These audiences typically develop over the course of 3 or 4 years, which your site will last. MSM offers you the ability to add sections or functionality for a specific language on the first line, which is much more complicated with a more confusing data structure.
  • As a developer, MSM installation offers you great flexibility. Adding or removing languages ​​is as easy as copying, deleting an MSM site, SEO is usually easier, because you can quickly translate your templates / template groups / url _titles. If your template structure is clean, and if you use add-ons such as low variables or even global variables to avoid the contents in your templates, it is very easy to maintain different sets of templates. It can also be a bonus if one day you need to deal with the right to left languages ​​or something like that.

Here is an example site that I support

+2
source

I also want to point out multilingual episodes on the EE podcast:

http://ee-podcast.com/episodes/tag/multi-lingual

Ep 49 does broadcast Tom Jaeger, talking about the multilingual process and gotchas.

Ep 54 tells Nicholas Bottari about his processes.

+2
source

Source: https://habr.com/ru/post/1443668/


All Articles