Multi language Joomla site without 3rd-party-extensions
by Peter Martin (“pe7er”)
twitter: @pe7er
website: www.db8.nl
JoomlaDay Bangkok 2012February 25th 2012
2
Welcome!
Peter Martin (“pe7er”), Nijmegen, Netherlands
Sheets will be available electronically Thai examples → used Google Translate
3
My fictional Dutch website
Subject: Dutch website about Dutch cookies: “Stroopwafels”– Google Analytics:
many non-Dutch visitors
Goal:– Multilanguage website– Three languages: Dutch + English + Thai– Keep old hyperlinks to website (prevent 404 errors)
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
1. Install Language pack
In Extensions > Extension Manager > install language pack– Default = en-GB– Install: nl-NL + th-TH
Alternative installation: – Upload language folder to right locations & use
Extensions > Discover > install
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
2. Content Language
Create “Content Language”– In Extensions > Language Manager > Content– For every language create a "content language"
Title: Thai (Th) Title Native: ภาษาไทย (Th) URL Language Code: th Image Prefix: th Language Tag: th-TH
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
3. Enable “System - Language Filter” plugin
In Extensions > Plug-in Manager– "System - Language Filter"
Status: Enabled Menu associations: Yes Remove URL Language Code: Yes (For SEO)
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
4. Create Language Categories
In Content > Category Manager create a Root Category for every language– Dutch
Title: Dutch Language: Dutch (Nl) [select content language]
– English Title: English Language: English (Uk) [select content language]
– Thai Title: Thai Language: Thai (Th) [select content language]
4b. Create Language Categories
Create subcategories under the language categories– Nederlands (= Dutch)
Nieuws Stroopwafels
– English News Stroopwaffles
– Thai ข่าว Stroopwafels (no Thai translation?)
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
5. Create Articles
In Content > Article Manager create "Articles" and:– Select “Language” category
– Select “Language” [select content language]
5b. Create Articles
Usefull tool: Batch process the selected articles – Batch copy + set language of articles
Set Language Select Category for Move/Copy Copy Click [Process] button
5c. Create Articles
Don't forget:– Check “Category” & “Language”– Create title in Language– Create a new Alias
For non latin languages like Thai: Year-Month-Day-Hours-Minutes-Seconds
Alternative: use English AliasOr Global Configuration > Site > SEO
Settings > Unicode Aliases: Yes
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
6. Create Menu
In Menus > Menu Manager create a Menu for every language– Title: Dutch Menu, Menu Type: dutchmenu– Title: English Menu, Menu Type: englishmenu– Title: Thai Menu, Menu Type: thaimenu
Do not change “Main Menu”
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
7. Create Menu Item
In Menus > [language] menu > create some Menu Items:– Menu Item Type: [choose Type]– Menu Title (“menu button”) + Alias (“title in URL”)– Menu Location: [select “language menu"]– Language: [ select “content language”]– Under parameters: [select some [language] Article
or [language] Category]
7b. Menu items
Set default “Homepage” in every language menu– Click in Menus > Menu Manager [language]
on “default” star to set language flag
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
8. Create “Menu” Module
In Extensions > Module Manager:
create new Module of type "Menu"– Title: Dutch Menu
Language: Dutch (NL)Select Menu: Dutch Menu
– Title: English MenuLanguage: English (UK)Select Menu: English Menu
– Title: Thai MenuLanguage: Thai (TH)Select Menu: Thai Menu
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
9. Create “Language Switcher” Module
In Extensions > Module Manager: create new Module of type "Language Switcher"– Title: Language Switcher– Position: position-7– Language: All– Use Dropdown (on right): No
Multi language in 10 steps
1. Install Language Pack: Joomla system “labels”: “Read more...”
2. Define Content Languages
3. Enable & Configure “System - Language Filter” plugin
4. Create Root Category for every Language
5. Create Articles
6. Create Menus (every Language own Menu)
7. Create Menu Items & Menu Item Association
8. Create Menu Modules (every Language own Menu Module)
9. Create Language Switcher Module
10.Redirect old incoming links
10. Redirect old incoming links
Incoming links for old content?– Old link: /stroopwafels/stroopwafels.html– New link: /nl/stroopwafels
Redirect a couple of old URLs:– A couple of URLs: Components > Redirect
10b. Redirect old incoming links
Redirect a lot of old URLs:– use .htaccess– Redirect 301 /old/relative/URL http://new/absolute/URL
Redirect 301 /stroopwafels/stroopwafels.html http://www.example.com/nl/stroopwafels
Tool to collect old URLs:– Xmap Sitemap on old site– Browser → View HTML Source– Copy to Excel / Open Office Calc– Construct “Redirect” statements
10b. Screen: Redirect old links
Column A: old relative URLColumn B: new absolute URLColumn C: formula: ="Redirect 301 "&A1&" "&B1
Tool for Language status check
Extensions > Module Manager > [Site/Administrator -> select Administrator]– Multilanguage status Admin Module
This module shows status of multilanguage parameters.
Tool for Language status check
Extensions > Language Manager > Content: Dutch (NL) unpublished
Menus > English Menu: No default “Home”
Example 3rd Party Extension, XMap
Sitemap: Xmap– Install XMap, enable "Xmap - Content Plugin"
– Components > XMap > Create for all 3 menus a sitemap: Title + Enable + choose Menu
Example 3rd Party Extension, XMap
In Dutch/English/Thai menu, create Xmap Menu Item:
– Menu Item Type: [HTML Site map]
– Menu Title: ไทยปไซต์
– Menu Location: [Thai Menu]
– Language: [Thai (Th)]
– Choose a site map: [Thai]
Don't forget “Menu Item Association”!