ReadMe ! How-to translate.
Fatal error: Call to undefined function bindtextdomain() in W:\home\c5.ru\www\concrete\libraries\localization.php on line 21
do you have a public link to a phpinfo page?
Translating a huge number of lines, but once in a while i would like to see the progress in the site.
Anyone found a different or more easy way?
Scrtipt is here;http://jo1upk.blogdns.net/saito/?plugin=attach&refer=%E8%87%AA%...
Do you need detailed explanation?
Im testing in Firefox, some overflow problems will generate exploding parts in IE6.
An example is added as attachment.
What to do with those lines? Gather them and post them when i finish?
What to do with those lines? Gather them and post them when i finish?
"A username must be between at least %s characters long."
While we try our best, I've been alerted to probably close to a dozen strings we missed, in the build that we posted for download. I was planning on waiting for a few more language files to come in (from you, perhaps from a few others). Then, I'd post a new 5.1 alpha, along with a new strings file, as well as merged versions of all the strings files people had been working on.
This would probably result in your files having 12-20 more strings to translate (which wouldn't take that long) - and I'd give those files back to you. We'd also be pretty certain that we'd gotten the spots that we'd forgotten to make translatable in the first place.
Does this sound like a decent idea?
Dutch modern will come in tomorrow.
Once Gettext loaded a .mo file, it get's cached. Only when the webserver restarts it gets flooded.
Can you check these three options;
- Are you missing required headers?
- Do you have some incomplete strings [%s]?
- Restart the webserver to clear any possible compiled cache.
These 3 were my problems in start. hope it helps u out.
When your translation holds a special char, single quote or dbl quote you might want to look at how it shows in the page.
I got a JS error on the text "Pagina's zoeken" [Search pages] because in JS it was put in single quotes as well. And since it was in one of the first scripts, c5 seized to work.
Had some string error from the file edited in notepad++, so I will stick with poedit now.
19:06:15: C:\Users\Fredrik\Documents\messages.po:7: some header fields still have the initial default value
19:06:15: C:\Users\Fredrik\Documents\messages.po:1946: a format specification for argument 2 doesn't exist in 'msgstr'
19:06:15: msgfmt: found 1 fatal error
Can anyone help me out how to fix it?
Newbie on all this stuff.
They are "%s". Make sure your translation has the same amount as the original.
I have had this prob in the start as well. It's quite easy to mistype around this.
Any flaw could be [my personal shortlist]:
- Missing "%s"
- A "%s" to many
- Mistyped like "% s" or "$s" etc [very easy to do :)]
- Attached var to string "this is an %sexample"
but, The problem occurred.
translate messages not correctly displayed.
maybe gettext() returned character-code that is not correct.
Therefore, it corrected it as follows.
file : \concrete\libraries\localization.php:line 23
It my japanese translate site is working correctly when bind_textdomain_codeset() was added.
I want to contribute to your project, so after that completed, what should I do? Commits to your cvs/svn? Or sends via e-mail?
Please let me know.
BTW, I'm also contributing to many open source projects such as Drupal, TYPOlight, Piwik and more...
But this does not always make sense. Imagine we have a page in 2 languages, English and German.
We have a "mo file" to translate the interface, the user has now a German interface which is nice.
But some parts of the blocks are echo'ed to the page which is sometimes English and sometimes German.
Interface (Dashboard) is not part of the page..
Jeez that explanation is so bad, I hope you understand what I mean ;-)
if a block is spitting out a "thank you for taking the survey" or "Messages:" type string in the view mode of the page, that string shouldn't be part of the interface translation by default. Just because you're using the German UI for editing the site, doesnt mean the site is always going to be in german...
strikes me what we really should be doing is making sure any block that DOES spit text out on the page gives you the ability to customize that through a tab in the block.. for that instance of the block..
that would kill too birds with one stone, no?
For example - right now I switch the language using the url "/en/" and "/de/".
Means there is no language switch in the dashboard. The block has to know which language is currently selected and right now this is ugly since there's just a sitemap structure.
But if you have a good idea for that, it would certainly be nice!
I should have two single pages that get called by a shop in case of a successful transaction
there is some functionality in these pages, a single page is therefore a good solution.
however, it's not possible to have to single pages with the same name since all the single pages are stored in a flat directory "single_pages"..
Any ideas about that?
for example - the dashboard toolbar (on the left, sitemap ..) doesn't appear to be German but we certainly translated a couple of these words...
At least there should be some code that updates this table when I change the language? Reinstalling is not an option.. Well it is but one that is connected with a lot of work.
Or did I just miss something?
>I see that there are a few translated >string in the table collectionversions but >that shouldn't be like that, should it?
I do not understand what you mean. Are there some strings saved in the database wich are used on the page? If so, I would think this is a bug (a relict from an only-english-version).
>At least there should be some code that
>updates this table when I change the
If it's a "bug" it should be removed. CReating a script which changes DB contents to a certain (backend-) language is probably a lot of unnecessary work.
> Reinstalling is not an option..
where should we send/post a translation that is 100% done and has been checked?
I've just released 5.1 on SourceForge. What does this mean? This means that we are anxiously awaiting all of your messages files to include on SourceForge along with it, for those who want c5 in another language.
However, this is challenging, in that our latest version of 5.1 has some strings that your files don't, since you've been working off an earlier messages.po file.
So what I'd like to do is this: I'd like each group who's pretty happy with their progress so far (and doesn't want to start over on a new messages.po file) to send me a message, along with their _current_, up-to-date messages.po file. I will generate a messages.po file from the current 5.1 build and merge it with that file, and post that file to our sourceforge internationalization repository.
Then, I will create a user account for that particular internationalization group on the repository, and let you continue working. Then, when you have all the remaining 5.1 strings translated, let me know, and I will check out that copy of the 5.1 messages.po file from the repository, and post it to sourceforge.
Does that make sense? Thanks everybody for working on this!
a) well, since you did not give an email address, I am already attaching the latest GERMAN translation (po an mo extension) to this reply.
You can email me to
(no spaces, as 1 email addres, no at but @ ... you know the drill)
I will send you the latest german file to your address as well.
b) How will the Souceforge translation group be working?
c) it seems that we still need to adjust the files (very top of this thread) to use our translations. Am I correct here or is there another way to change the language?
please drop me a message as soon as the svn is ready!
in your po file? line 3025,3046, etc.
I'm using poedit to translate but poedit give me some error. When i deleted this from your po file everything is ok.
so do not delete this line but instead try to fix the msgid strings
for example, to fix the first error you have, you can rewrite the line 3023 like this:
msgid "The directory %s already exists. Perhaps this item has already been installed."
I noticed, that there are some strings which have not been translated yet. "Delete User"-Button and the options in the page-search for example.
Is there a location where we can hint you to those strings, maybe post screenshots of the location?
When this happens in the future, it'd probably be best if they just got submitted as bug reports in the bug tracker section of the site. We monitor that pretty closely.
just for your information.
I am not sure how to translate this - what does this mean?
Also: "Public Date/Time" -> does this mean when the page should go public?
I think the date you're referring to is just when the page was made, not when it will be displayed.
Do you think it is possible to do translation by this way? If i made some gramatikal mistake just forgive me. My native langugae is not english :-).
If there is simple way to translate it to my laguage please send me mail with instruction to my email xyrk0myrk0 (at) gmail (dot) com.
Thanks a lot for your answer and help.
Btw your work on this CMS is great.
just download POEDIT for Windows (I am using this as well):
install it and start the exe. I even installed it in a sandbox and copied the extracted files to a different directory - works like a charm.
I did the german translation in cooperation with with Remo.
Instead of using POEdit (which is the easier way probably) you can also use a text editor and translate the .po file "by hand".
>But this way is a little bit hard for me.
Take your time. Start with the short, easy to translate words /sentences and work your way further and further. Do not force yourself, but translate only when you have some time and feel like it. You will see, sooner or later 100% will be done and you can start doing the improvements (by trying out your translation over and over again).
>Do you think it is not possible to think
>about new version of concrete where could
>be external files with language.
What do you mean? The files are external.
>And when you make new external language
>file with all sentences and words which
>are used in cocrete just go to dasboard
>and try to click on properties whole page
>and chose your language and it is all
Aha, I suggested this as a feature (http://www.concrete5.org/community/features/easy_switch_of_language)
>Do you think it is possible to do
>translation by this way?
Well, I am not part of the programming team, but I would think this is not a good way. It would probably work with static pages, but since c5 is using dynamically generated pages I doubt it. Software for this kind of translation is for example CatsCradle (http://www.stormdance.net/software/catscradle/overview.htm)
>If i made some gramatikal mistake just
>forgive me. My native langugae is not
As I said, don't worry. You will see for yourself, that the initla translation is more or less good and most likely will need improvements once it's 100%.
>If there is simple way to translate it to
What is your language?
Almost forgot: To translate using SVN (which is more complicated for a beginner) I suggest using RapidSVN (http://rapidsvn.tigris.org/). It's free and also portable (which type of software I prefer): Just unzip and start - no install needed.
I am using a (the latest) "nightly build".
One question for me is a little hard also to make my own theme but i try to read all rlevant theme on blog and try to study theme which are in your compilation. Hope i understand all :-)
Anyway thanks for your answer to me.
Thanks for your help
you should ask Andrew (http://www.concrete5.org/profile/-/4) to give you SVN access for your language. Even though it's a little more tricky, it's much better than posting files here and there.
For now - so that you can start translating, I am attaching the latest english .po file (SVN repository version 10, from Dec 2nd 2008, 17:52:34).
I have user Xampp myself - some time ago and not for this project. I am sorry, that I can not help you to install gettext. Maybe you need to recompile php :-( or you might be ablt to install gettext as some sort of plugin?
It would help a lot if you would have a webhoster who could help.
PS: Hint to C5 "staff": Can you make it possible for translators to try translations on your webspace?
Let me translate the bar on the left of the dashboard, directly in the code, if possible ...
what are the file where I can find the texts related?
While we recognize there is some server configuration involved in getting a system setup where you can work on your language, this is true for the final site as well, and frankly I haven't seen anyone else do anything remarkably simpler.
Given a perfect world with infinite time, yes a sandbox for each language on our servers would be on a goals list. Of course, if we do that, how do we decide who "controls" that language? It's a bit sticky when you're working with volunteers who may suddenly not have as much time to give as they did before...
Good news though: We've changed the way that the dashboard grabs the titles of these pages, to localize them at runtime, instead of just during installation. What does this mean? It means that if you install c5 and then decide that you want to change the language, the nav options in the dashboard should change as well.
This is NOT the case for the whole site. If you change the language after the fact your front-end website will still be in English. However, the dashboard is reasonably well-contained that we thought this was a good enough thing to do, especially because it's pretty unlikely that someone will manually change the language before installation, just to ensure everything installs in their language (although this is something that we hope user groups around the world will help us with, in the future.)
Hope this helps... this is the case in our in-development version. In the meantime, you should be able to get this to work by installing c5 AFTER changing the default language in concrete/config/base.php from en_US to your particular language.
If I change the language (to Finnish) after C5 installation, I get lots of important strings in English. For example the titles of blocks are in English when I add something to area.
The currently used gettext library has some issues when you want to load multiple translation files (core, block 1, block 2 etc.)
Andrew committed a few improvements to the trunk which I guess will be released with the next version.
This will allow addons developers to translate their addons.
Any plans to support that?
This discussion got pretty long in the meanwhile :)
the flash files, im not sure what can really be done today. you're talking about the multi-file uploader? That's going to quickly become legacy stuff as we rebuild the file manager using something more standard..
Yes, I'm talking about flash. I know this is annoying.. You would have to add a few parameters or an external xml file that contains the strings....
But if you're using something like swfupload this is soon not a problem anymore.
So I'm almost done with Japanese translation with a couple problems.
This applies to Chinese, Japanese, Korean, and other non-ASCII multi-bytes languages.
1. Database connection is only set as latin1
2. Interactive Form cannot input multibyte
3. Email notification needs some work
4. Search does not work at all [Fix?]
5. RSS Displayer truncate problem
6. Installation Problem for multi-bytes languages
1. Solution to Database connection
So the current c5 connection to database is set as latin1 whether you are sending/receiving other character sets.
So my quick solution that I found on the net was to insert
mysql_query( "SET NAMES utf8");
on line 371 of
However, once you set this, you must set your database collation to utf-8 related sets.
I feel like this is not a rigid fix... so I need somebody else's follow-ups.
I got this trick one from this guy's blog (Japanese)
1a. How to fix MySQL data corruption due to multi-byte characters
For those of who accidentally went ahead created latin1 database collation......
If you think your database meant to be UTF-8, but you see a lot of mysterious letters such as, ooS/~. in your MySQL data.
That means, these data are treated as latin1 via MySQL connection.
If you want to fix this problem... you need the knowledge of SSH and mysqldump.
1. Make your site offline
2. Use mysqldump command through SSH
$ mysqldump -u [USERNAME] -p --default-character-set=latin1 [DATABASE NAME] > [Exported File Name]
3. And them import them back to your database
4. Modify "adodb-mysql.inc.php" mentioned above
5. Bring your site back online
This is what I spent my entire afternoon on one weekend :-)
2. Contact Form Questions
Current easiest solution is...
1. Make the number of questions in ASCII alphabet
2. Go to phpMyAdmin, and go to "btFormQuestions" and directly change the name there.
3. Contact Form Title and Guest Book notification
The mail body text is encoded properly.
However, the problem is the subject line.
Again they are treated as latin1 characters although they are not.....
This.... we may have to re-write...
[Correction] I guess Remo fixed this problem
5. RSS Displayer
When truncate the characters, RSS displayer ignore the check if it's multi-byte characters or ASCII.
So it sometime cuts the multibyte letter, and only the last character gets corrupted.
Here is the example.
If you can take a look at the end of Feb 10th post, you will see "1.1.1、1.1.0".
The last character after "0" is not supposed to be there.
6. Installation Error
When installing the new c5 with multi-bytes, the database MUST be UTF-8 collation. But c5 installer does not check or create UTF-8 specific tables in the database.
Here is the error message during the installation.
This happen because I did the modification #1 to ADOdb to use UTF-8. This action must to be done to multibyte languages in MySQL properly.
The result is... installer try to insert UTF-8 multi-byte characters into the latin1 database, and the letter gets corrupted and becomes "?".
So the installer should check and create UTF-8 collation database.
Again this only applies to multi-bytes characters...
So I didn't bother to submit a bug ticket.
I'll try to find the solution by myself... and when I'm done with everything, I'll submit the code to Andrew.
If you have a question for French c5, you should go to
I'm starting thai translation for C5.
follow me :http://twitter.com/joomlacorner...
I just edit the .po to .mo and that file i uploaded to
/languages/ in_ID/ LC_MESSAGES/ messages.po and messages.po
and edit the
it works for me.
i use poedit for this translate
I get no errormessages but also no translations. What can I do? Are there any other patches to make c5 speak german??
you can always make a file called info.php and place
<?php phpinfo(); ?>
in it to make sure.
Did you tried local or on live server?
"GetText Support enabled"
(it's hostet, I cannot compile php myself...)
It's on a live server on the internet (the server itself and the rest of the website is working properly).
if you've modified config/site.php with
it should work after browser and concrete5 cache clearing.
maybe this helps
try the file attached
Reinstalled the whole concrete5-system.
Also tryed the language file from synlags post.
It's still not working.
How can I merge it with 5.3.2 and then submit it to SVN ?
I'm using PoEdit to translate.
and it worked. I don't know why, but it does. I found this hint somewhere in the web while I searched for information on poedit and gettext ...
(I thought I posted this already but obviously I didn't!?)
Gettext is only for editing and generating the messages.mo or need it to work too?
It´s not enabled on my system.
1. Add the LOCALE define in your config.
2. Make sure your server has the locale. Use the following command to check what locales your server support:
# locale -a
on mine it returns:
So, I have both Arabic (Kuwait) and English (US) only.
3. Make sure you have php-gettext or gettext installed and enabled in PHP. Use phpinfo() to make sure.
4. Make sure you have you translation .mo file in languages/de_DE/LC_MESSAGES/messages.mo
I think the error is in setlocale.
when I insert the code:
appears 'no no no.......'
and the code:
How can I fix this?
Here is the link of the explanation.
I used Zend Community Server.
<?php define('LOCALE', 'pt_BR.utf8'); ?>
Post's okhayat will help me find the problem in windows.
Thank you all! Now I get time to help with translation
It is not working under windows (Vista) - but when I copy the folders to my Linux Webspace the translations are shown.
I need to convert the files from root path (for english I previously did) to /en/ and now I want to developed in 6 additional language what Structure I need to follow.
other thing is that, how it will be supported as I integrate the forms as well. do I can work as every email will be sent to different language agents, secondly i am also using Photos as well so how can I switch so that if I upload the photos one time and put the title in multiple language depened on page language.
Hope I got good thaughts to make my project fixed.
What I need to do is translate a number of Concrete5 sites into multiple languages (6-8) and were it WordPress I would simply add Transposh and translate the sites on the fly.
I haven't found it yet but is there a Translation add-on (paid or free) for Concrete5? I have seen a Google Ajax Translation plugin Dojo Google Translate which is not so good and not what I'm looking for, for a couple of reasons -- it doesn't store the translated pages and it requires the user to read the menu in a foreign language in order to decide which language to choose. Would be much better and easier to use with a national flags menu, like Transposh.
However, does anyone know of anything like that or of a translation add-on in development?
Sorry I am new on this:! :$
Where can i find 5.4.1's language file?
or are there any way for build language file i.e with scanning or command or php codes?
i found 5.4.1 of .po file but it's not contain all sentences and some of messages in concrete code not available in .po file.
so, what can i do for that messages?
i have c5.4.2 fr_FR files ready since a while (udated on the fly during the beta progression) and would like to don't rewrite all line by line on the web interface with is less powerfull than PoEdit.
1) What is the proper way to create a menu and include it globally? I couldn't figure the autonav edits at all. Let's see what I did. It didn't work.
- I structured my website as shown on the Internationalization video
- I tried creating an autonav instance which shows items from the top level and their relevant subpages + 1 level down. With this I intended to create a language-specific menu and include it globally to prevent my client from accidentally deleting it.
- I literally tried every possible option to tweak the Autonav but it just refused to work with my multilingual website.
2) What is the proper way to translate addons? We have .mo/.po files just for the core.
3) Any quick way to copy the old homepage's blocks to the freshly created language-specific homepage?
I've been wanting to help make concrete5 in Hebrew. I've downloaded the zip file from MyGengo (where it says master is 28% complete), extracted the files and they are already all translated. Not sure what I should do next?
I've read this thread:http://www.concrete5.org/developers/translate/... But should I upload a 28% complete translation?
Ultimately, I'd like to set up a concrete5 site in Hebrew to help promote c5 here in Israel. The site will contain links to relevant tutorials in Hebrew which I will write up, and with time, possibly a forum etc.
I'd be more than happy to put the time and work in, but I need to know what to do. Is there a tutorial for internationalization? Please point me in the right direction.