Building a multi lingual CMS driven website

Events happening in the community are now at Drupal community events on www.drupal.org.
helmethead's picture

Hello everyone!

I'm Craig, and i am a complete Newbie to Drupal (well, i have been reading the docs for a good few days now), and i was wandering whether anyone would be able to give me some help or advice on the task that i have, and hopefully give me some answers to the questions i have whizzing around in my head right now.

The task:
In a nutshell, i want to provide a CMS that can control the content of a multi-lingual and multi-region website. Here is more of a breakdown of the some of the things i need to do or provide:
1. CMS - My client needs an admin account containing multiple users with various permissions, to be able to login to the admin area and control the content of a site.
2. The user needs to be able to log in to the admin area, and using their role, select a product type, which will then automatically pull in the countries and languages assigned to that product group.
3. After doing that, the user then has a hierarchy of options, where they can choose the different sections of the site, and manipulate or generate pages as they see fit. They can select the language at anytime for a certain page/content piece and the content of which will be automatically generated in that desired language.
4. The admin section needs to control the same site (in terms of visual appearance, images, menu's, overall theme) but for different languages. So the content of the site will be in different languages, and will be stored on separate domains. ie www.mysite.co.uk - english. www.mysite.it -italian.

So in theory, i want a central CMS hub, where my client can log in and control the content for any of the various sites on those different domains.

I have become very confused with the route to take with this. I have read the Drupal docs and can see the great power Drupal has. The various modules etc. I am certain this is the CMS to use. But what i am struggling to get my head around is how i configure the CMS specifically to my clients needs, and use that configured CMS to provide a admin panel to control their sites content. In a sense, what i am after are two seperate systems. The first being an admin for the user to log into and control content for the sites, and secondly, the site itself which Joe public will use.

Now, in terms of the admin area and the site itself - my approach will be to set up a subsite on my site called admin. So, say my site is called www.mysite.com. The area in which my client can log in and change the content of the site will be here www.mysite.com/admin. The homepage for the site will then be www.mysite.com. Which the public will use. Does that sound like a feasible setup?

Basically, before i invest a lot more time in investigating this, if anyone can advise me on the route to take, or have any guidance to point me in the right direction on how to tackle this, that would be great! I don't want to jump in at the deepend and start drowning.

Your help would be much appreciated guys, thanks for reading (sorry i became a long post, hard to explain!)

cheers : )

Craig

Comments

In a sense, what i am after

Garrett Albright's picture

In a sense, what i am after are two seperate systems. The first being an admin for the user to log into and control content for the sites, and secondly, the site itself which Joe public will use.

In Drupal, the "separation" between the admin interface and the public interface, visually speaking at least, is not as apparent by default, but it's there. If it helps, setting different administration theme (Administer > Site configuration > Administration theme) will help provide more visible separation between the two separate parts of the site.

Theoretically, it is possible for the administration section of a site to be a separate subsite, but that'd probably cause more problems than it solves.

As for your tasks, I don't really understand how languages would be associated with a product - do you just mean translations for the text of that product node?

A big thank you

helmethead's picture

Hey Garret,

Thanks ever so much for your reply. That was EXACTLY what i was after! I just couldn't get my head around the individual components of the site.

Does anyone know of any further documentation of putting your own hierarchical structure to the administer section?

For example, i want my user to have the following journey:

Go to admin section (via www.mysite.com/admin) and log in.
Be presented by the themed administer area, and be able to select Product type.
After selecting product type, select country, and language.
Then edit pages that are available.

Is there any documentation out there for altering the administer area fully? and customising it for your specific needs?

cheers in advance

thanks

Craig

Craig: So are you basically

Garrett Albright's picture

Craig: So are you basically saying you want to create a list of products which is sortable/filterable by type and other properties?

Usually, when your problem is "I want to create a list of X," your solution is the Views module. Your products would be nodes of a certain type; the product type would probably be done with taxonomy. Country would probably be a CCK field. You could then create a view which only shows nodes of the the certain type, with "exposed filters" for the type and country (not sure if Views is capable of sorting/filtering by translation, but I think it's possible). This is all easier said than done, but hopefully this points you in the right direction.

EDIT: As for completely altering the theme area, it's possible, though it might do more harm than good. I personally hate them, but you might be interested in the RootCandy theme, a theme designed to give the administration area an icon-heavy appearance; and the Administration menu, which gives the administration menu items a drop-down menu-bar-like interface - see the screenshots for both of those for a better idea of what they do.

Administration zone structure

helmethead's picture

Hey Garret,

Again, thanks for your help. It is really appreciated!

What I essentially want is a list of product groups, which are already preconfigured by myself as administer. Then I want to be able to assign countries, and languages to those product groups. Also, I will eventually need to assign products themselves to a product group too. This will all be preconfigured by me. Then my employee, and manager admin accounts i have created, can then select a product group, then select one of the languages assigned to that group, then edit/add pages to the site.

I believe the product groups are what will be the main control of the admin area structure. So, I need some kind of underlying structure to the admin. Where, a user can login, then choose a product group and have all the content assigned to that product group at their fingertips.
The selected languages/countries for that product group will then control the subdirectory for each language translation for the site.

So for example, if I have a product group called "ENG 4", which has the following countries assigned: "Canada." This will then have the following language options defined according to the country: English, French.
The user journey will then be: Select Product Group(ENG 4)-->Select Language(French). Then they can select "Range" tab and add a product to the range for "FrenchCanadian" subdirectory. So that when a Joe public user then goes to www.mysite.com/FrenchCanadian/range, they will then see the products on that page that have been assigned to that language group, and it will be translated to French. Does that make sense?! it kinda does in my head :P.

I have a good understanding of how to create my templates and styles for the site I am building (that joe public use) but what i'm struggling with is the admin aspect of things. I need to somehow store the countries, language and products for each of the product groups. Then, be able to build blocks and pages pulling in the products and the language translation when that subdirectory is being looked at by Joe Public.

Man, I really hope that makes sense. It's just so hard to put into words. I feel like when I have this initial admin structure sorted in my head. I can really get cracking. I just seem to be going round in circles in my head at the moment, with what the 'Correct way of doing this' is.

Be great if you, or any other you guys could give me more guidance on this!

thanks again

Helmethead

Nodes and Taxonomy

helmethead's picture

Hey Garret(and all other readers),

Since my last post I have been completely concentrating on the taxonomy/nodes structure. To try and make sense of that first!
So, i have been able to identify my key structures of the site content as follows:
- Product group
- Countries
- Languages
- Products

Now, thinking about theses in an OO type approach, i can identify the following relationships between the structures groups:
- A product group can have many countries assigned to it, and can also have many products assigned to it.
- A country can have many languages attached to it, but can only belong to ONE product group.
- A product can belong to multiple product groups.

This structure will then control both the admin side of things, and also the "Joe public" site itself.

In terms of the admin, what I want to be able to do ideally is for a logged in admin to be able to select product group (which then auto pulls in countries, and then available languages). Then they are free to add/create a product for that product group. Or create a new page for the site, which can then be auto translated for any of the languages assigned to that group.

For example:
The user wants to add an "About us" page for the product group EN2. They can select the product group, then "create page", create a page and then select what language they want it available in.

So in terms of nodes and taxonomy. Would i assigned my structure groups like this:
- Product group = Node
- Countries = Taxonomy vocabulary
- Language = Taxonomy vocabulary
- Products = Taxonomy vocabulary

So, if I then wanted to create a product group, I could then choose countries, languages, and products. I think that would make sense?!

Then, in terms of the ACTUAL joe public site. I want the different translated versions of the site to be controlled by URI. So, if a user goes to www.mysite.com/french/about/ they will be able to see the same about us page but translated in French rather than English.

So, my question is really. Do i need complete separate sites for this functionality? Or is there a way of translating page content, pulling in the different products etc by pulling in the selected language?

I think I am starting to make much better sense of how this will all be pulled in. But how about auto translating content for each language? and how would i store the html content of my pages for each language if they change slightly? in terms of images etc. Would i need to store my pages in separate folders? So in a sense have separate sites for the different languages?!

AHHHHHHH i will get there eventually....I hope!

cheers

Helmet

Multisite

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: