how to build a multi-lingual site.4 users found helpful
I want to lead a discussion on how to approach multi-lingual site /content/ and what we can add in time to make that easier.
The biggest question that jumps in my mind when people say "we need a multi-lingual site" is "will every page exist in every language?" as soon as you get any wavering on that, I tend to think you need two separate trees in your site. So under Home you have English and Spanish and you can just copy assets and pages back and forth between the two as needed. This gives you all the flexibility of changing a navigation around a bit for one side and not the other, and lets you keep both sites complete, while translation happens. We did exactly this for the US and UK versions of MonsoonWorks.com - a little URL trickery and the .UK domain points to where it needs to and the .COM domain points to where it needs to and its simply a matter of choosing the US or UK version of the Theme.
true multi-lingual content would be different than that I guess however. In a truly multi-lingual system you'd have a /version/ of each page for every language. I suppose you'd need a part of the dashboard to set these up, and I suppose we'd basically hack the versioning system to pull it off. now every cID would have a multidimensional array of versions, a whole series for each language. The advantage here is your site architecture exists in only one place. The down side is, your site architecture exists in only one place. If you write something in english and you haven't translated it to spanish yet, you'd have to deal with that.
I suppose you could just hide pages that didn't have the language content for the section you were "in". I suppose you could define a fall back path.. So if I'm in German and no German content exists, try French. If no French exists, try English, etc.. This sounds complicated to build, prone to a lot of bugs and weird behavior, and not a very intuitive experience for the site owner. .. You'd also have to do translations for every block, page name, all the meta attributes - it'd be a big problem and impact the UI a LOT..
So the question is, does the "true" multi-lingual approach sound appealing to anyone? sounds like a nightmare to me and since we've already got a huge list of things to do, this is towards the bottom of it. If there are approaches, problems, or priorities I'm not seeing - tell me.
The idea of a multilingual site is compelling (I like your idea - German, if not available goto French - lol - most German people do not speak any French for sure). But it is a lot of work to maintain this, translate everything etc. But it would be an interesting feature (I would say nice to have), if you could switch between languages while you are creating content (e.g. first English, than a copy of this text for translation into German etc.).
I had two projects where I used some kind of a php proxy which makes every page area translateable via an AJAX inline editing. This allowed a translation without interacting with the backend server and enabled translators to do the work without the need to bother with the content presentation (1:1 solution).
I currently have the problem, that I have a page (german, english). On the first page (Home Page) I would like to have a page that looks completely different from the rest. A logo and two links (de,en)
Having a page type for that is ugly since it would be used only for that single page. I wasn't able to find a way, to use a single page as "Home Page".
Is there already a way to that and if not what do you think about that feature?
I prefer an "auto-hide" function. I create a page in the english structure, the pages gets copied to the german structure but is hidden by default. This would be nice, because it's easier to translate if you don't have to open a second window.
I don't think it's a good idea to change the way cID behaves. This sounds like a real nightmare... It might be enough, if you would like the pages together?
I create a page "Contact" (en), that automatically created a page "Contact" (de) and creates a link between those two. Remember, I still should be able to rename the page (Contact --> Kontakt). I like having the most important keyword in the url and not only in the content and meta tags...
For instance is it google-fu to define the language of the site, like the "da" for Danish below:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="da"> <head> <meta http-equiv="content-language" content="da" /> ... [rest of code]
We want to commit our result for your source. Therefore one in us hopes for participation as a developer for your project as a representative.
This is the first step to complete Japanization of concrete5.
We solve an original problem in not only simple translation but also the Japanization.
We want to concrete5 with the hope of better.Therefore we are by little, but want to submit a problem.
However, we do not understand concrete5 so as to be able to submit a problem.
We want to let Japanization complete for the time being.
I can't personally speak on behalf of the c5 team, but I wanted to thank you for your dedication to the concrete CMS and making it multi-language.
But what is really needed is some link between the different pages, saying that "these are the same page, in different languages".
Now there are several ways to accomplish this, of course. But I think that fleshing out _one_ design, and getting that into the core Concrete 5 if possible, would be a beneficial to (almost) everybody.
I have created a multi-lingual site for a client: It's possible to switch from every single page of one language (german) to another (english). At first this is no problem, but while the site grows there might be different things needed for different languages.
Therefore I think it would be better not to have the "real multi-lingual" possibility described by Franz. Instead: Let the user choose a language (for example by flag/language name). IF a user wants english - well, he won't care about any german on the site - and he might come to a domain by searching google in a language that he expects. If he searches for english words he will most likely want an english site. And even if he discovers that the site is available in german as well - he can always make a switch.
Actually the different language addresses a different audience. It's not a neccesity to have the same pages for all languages.
If a company want to have this kind of setup - they can always create this themselves (even with the possibilities we have right now).
One thought about the previous post. Concerning links to another language: The developer could insert some PHP which adjusts the language string.
| |__First page First language
| |__Second page First language
| |__Third page First language
|_ _Second language
|__First page Second language
|__Second page Second language
I have block Header Nav at top of the page. What I would like is changing of autonav block that link to "First language" is in fact link to "First page First language".
Can you help me?
In the second stage I would like to have:
If I am on "Second page First language" link on "Second language" goes to "Second page Second language".
What about if I am on "Third page First language". Link on "Second language" should goes to "Third page Second language" if exist. If not exist go to "First page Second language".
| |__First page EN
| |__Second page EN
| |__Third page EN
| |__First page DE
| |__Second page DE
| |__Third page DE
The only problem is to me (maybe) that on main navigation, when I choose to get pages from second level. and When I click on page item, nav disappears. Like if I want to see Second Page EN, Navigation will be empty, Now how to tell Nav Block to get only pages of level 2 and not to kill them if I am beneath that level?
This could help if we can do that.
EDIT: ok I figure it out, You have to change Header Nav Block properties to behave on different pages, Which is pain in the ass.
I think Header Nav block need some modification, like to say it to stick where I put it. SO, get All sub pages from Level 2 and thats it, don't misbehave :).
Create the ability to define multiple root nodes in the site map that represent the different languages. Which C5 actually uses as the root node would be defined by a session variable.
-Home - En
* Page 1
+ Page 2
* Page 3
+Home - Tr
* Page 1
+ Page 2
The trees with different root nodes could be different which would solve problems with differences in content. Pages could be aliased as well between root nodes.
A module would need to be created that would allow switching the SESSION language.
They could also be referenced absolutely if needed.
It would solve my need for a multilingual site. I am a PHP developer so I am going to start looking at the code, but the source is big - so it might take awhile...
add in the dispatcher.php @ line 117 the following (after the else statement):
case($domain == "www.domain.com"):
$page_path = "/com";
$page_path = "";
$c = Page::getByPath($page_path . "/");
comment this line:
$c = Page::getByID($req->getRequestCollectionID(), false);
you can make a case for multiple domains... the ony thing now has to be a rewrite rule so that "com/" will dissapear in the adres bar...
The site had many pages for specific countries, which could very well exist in only a single language. And as this site also allowed for user-generated content, which most often would only be available in one language as well, the visitor should not be left oblivious about the existence of that content, just because it happened to use a different language. Even worse: sometimes the language indicator would be wrong anyhow. :-)
As for Google: it would really be nice if search engines could know that some pages are actually the same, just using different languages.
(Now, the real problem comes when using Arabic or other right-to-left languages, in combination with left-to-right scripts. This would require to switch to a different layout when switching languages...)
The backend is not cool at the moment for i8n and l10n, but this is a very complex topic that is also dependant on many other factors, like block translations, super-scaled sites, ui-design et cetera.
However this needs some discussion with the core developers and yes there is already some progress. :)
But please hold on: This is nothing that can be done in "2 months", but it will be there in 2010. There is no releasedate so, you don't need to ask.
I'll keep you updated, if there is something new.
Multilang is a hard topic, the c5 team works hard on it trust me! I've provided my code and ideas to help the community :)
keep the planet a safe place.
Check my multilingual c5 site:http://fif-moebel.de
I think you must look at SilverStripe language system.
No excuse or bypass on this one...
Tell me now, before I waist my time here?
[b]And tell me I’m not seeing this, I probably don’t understand what you mean by that mumber?????[/b]
[quote] We are likely to price the commercial side high for a typical add-on, but low for enterprise software. $2,500 sounds about right today. [/quote]
I look at the ad-on last link and what popup that number again.....
I make multilinguals top notch complete Joomla web (even with ecommerce) site for less than 2,000 bukaroo.
I don’t care if you have the best cms of all, numbers like that are ridiculous...
Remember, I’m not here to trash, this is constructive remarks, and I hope take as such.
CMS solutions like Teamsite have license fees in the six figures, with recurring yearly fees too. MS Sharepoint is $20k/year base license. The leading CAT tool on the market has a license fee well over $2k.
I'm sure anyone can do anything for any amount of money if they want to. I'm not really interested in offering the cheapest solution to every problem. Regardless, we were pretty clear that the majority of the improvements would be available for free.
Numbers like that are not ridiculous, but thanks for the constructive remarks. We will certainly want to price this at a point where people who we can support buy it.
The pro version of the multilanguage component (Joomfish) is $119 euro for the gold membership full multi-domains license (with all upgrades) for one year. I see no limitation in size or capacity to my sites to drive extremly complexe corporate sites as they already do.
Even the free membership of the multilingual tool Joomfish is a full multi-domains license (with all upgrades) and have no limititation in it’s multilingual ability. You just have more bells and wistles from the DEV.
Just to let you know.
How can I said to my client
You want a Concrete multilingual site it will cost you $ 2000 on top of the 2 to $3.000 for the construction of your site. When I can offer a free Top Notch solution with Joomla.
I come back when you guys starting making sens....
Maybe I’s something I dont really understand....
Ya know, it does actually cost money to write software, so you'll have to excuse us if we sell some of it while we continue to give the majority away for free
Pecked out on an iPhone
There will be two add-ons available, one free, one commercial. The free add-on will do a LOT to make running a multilingual site easier than it ever has been in concrete5, including keeping track of pages and language associations, switching between language sections, etc... The commercial add-on will make the actual act of translating such a site easier.
And, if i understand correctly, multilingual functionality will require concrete5 5.4.2 and an add-on, which will be available at the marketplace?
Yes, you'll need 5.4.2.
There will be two add-ons, one free that does what you must have, and
one that costs something that adds ease of use tools for a larger
CEO - concrete5.org
I have a client who wants a GLOBAL site with multi-lingual support and wants the language to default to the appropriate language for that region. UAE and Hong Kong were mentioned. (Interesting challenge since I don't know squat about designing for Asian languages... or UAE, for that matter.)
please to announce when this add-on is ready on this here thread please. you will have much success with initial sales.
Not so free option:
CEO - concrete5.org
> Here ya go! Just launched it.
Let me first thank you for offering free i18n add-on.
I also support that you sell enterprise one for some bucks, but, in my case, I'm not interested for a free tool to help me translate the content, but to translate Concrete5 core & add-ons without fiddling with myGengo, poEdit, submitting *.mo etc. which, at the end, should help making C5 more attractive to wider audience.
What is the recommended procedure for translationg core & add-ons?
Is thishttp://www.concrete5.org/developers/translate/... still relevant?
p.s. Please, check Web2py framework where one can do all translation work within web-based IDE running on localhost.
Don’t want to rain on the party, but multilingual is a most, not an option for any serious CMS.
If I understand well, As a web designer, you want me to charge my customer $1700 to add a serious complete (It is complete?) multilingual solution with Concrete on top of the habitual $1700 I charge for a small top notch bilingual site (made with Joomla).
This is insane....
Maybe I don’t understand...
Help me here....
>If I understand well, As a web designer, you want me to charge my customer $1700 to add a serious complete (It is complete?) multilingual solution with Concrete on top of the habitual $1700 I charge for a small top notch bilingual site (made with Joomla).
Afaict, you can use free i18n add-on and do translation.
If you watch 'enterprise' videos, you can see that it is meant to help translating the site, but it's possible to do it manually by making copy of pages and then translate.
As far as I'm concerned, I'd just like to have free/add-on (maybe language manager will have it in the future) solution for providing translation for Concrete5 core and installed add-ons and NOT for the content.
enterprise international page that lets you do anything you need to run a
If you've got a team of translators involved and you need the additional
workflow of a centralized tool to manage their efforts, the
internationalization enterprise add-on makes sense for your needs, and
probably your budget as well.
If we're going to call me insane for selling software, why are we saying
I'm insane for pricing a group workflow management tool for translating
sites at $1750? The leading CAT tool on the market (Trados) costs $2k and
it doesn't actually integrate with any CMS at all. There are other CMS's
out there that aren't as nice as concrete5 and cost $20,000+ a year. Surely
I'm "insane" for giving concrete5 away for nothing under the MIT license in
the first place, no?
Regardless, here's a special offer to let you pick up enterprise
internationalization at half price:
Hope that helps.
CEO - concrete5.org
Is there any way to make those follow the user's language choice?
I start to see the light and understand a little more the proposition here. I think, the bes way it’s for me to install a demo and just try it.
Now let’s go see those instruction to install my first Concrete site...
Because I’m nice, I vote for Concrete in the Critic’s Choice Awards as my favorite CMS and other major CMS are strangely absent from it?????
I just warn people of the price tag involve in a top of the line multilingual solution at Concrete (That make me automatically drop all Concrete testing)
With Joomla 2.5 - 3.0 — I can have a Top Notch easy way for multilingual for peanut with the internal Joomla multilingual system and a third party pro-extension for around $30 US a year, including upgrade and support.
With Concrete their top notch solution is $1,750 or now with the fantastic special of $875
— Yes almost the going price for the construction of an entire CMS site in any other major platform. This is, to me ridiculous.
And I will not back down to provide my customers with any half-half free compromise just for a cool UI — This is for the coolness factor of Concrete that I cast my vote.
You know, there is a free solution, from us, for running a multi-lingual site:
Let me say again. Free.
There is also an enterprise version, which takes the SAME exact architecture and adds tools that a larger group would need to collaborate.
It strikes me as very reasonable to give away the product in a way that it works well for individuals, and charge for the version that groups use - if you're a group after all, chances are better theres some money involved.
With regards to scale, it is actually quite cheap for CMS at this level. We're putting it together with our Enterprise content workflow and production tools into a suite that costs 5-6 figures depending on how you want it licensed. Many commercial CMSs are licensed in the $200-300k+ range at this point. I get this may not be the projects you're working on, but believe me when I tell you others are.
At concrete5 we're trying to be a horizontal product that has solutions for all budgets and project types. Please just enjoy the wealth of free stuff in our marketplace. Don't worry about us pricing things in a way that the big brands feel comfortable buying it and we actually have money in the bank to keep building cool stuff in the core for free.
Fatal error: Exception thrown without a stack frame in Unknown on line 0
Question: is this demo the free or paying version?
My main question here will be.
With the free Internalization components:
1• Can I have a COMPLETE professional translation of a Concrete site with all third party add-ons (that support multilingual) — No half-half here...
2• Can you have multiple editors working on the site translation
3• Do you have some kind of central dashboard (as an administrator) when you see an overview of the translation progress.
4• Do you habe some kind of ACL to determine whoe can edit what?
I have difficulty to grasp where the differences are and what limitation are impose with the free version
I look at the additional tools for the Enterprise version
• Centralized content report delivers (maybe something to do with my question 3 (for the free version)?)
• Content report can integrate --- (OK)
• Language specific dictionaries --- (OK)
• Translate all theme and application strings centrally using a web GUI. (Not sure about that one, maybe something to do with my question 1 (for the free version)?)
• Use Google Translate, Bing, or your own custom dictionary (Ok)
Yes add-ons can be translated, but it does mean that they are property using t() strings everywhere. We try to enforce that in the PRB but its not absolute.
I've attached a PDF on the enterprise version. It has more of the workflow stuff you're speaking of.