From: Marcus C. <ma...@br...> - 2007-01-23 19:27:29
|
Hi, Further investigations into language support; I'm making notes here as I=20 go to understand the process: CC_EVENT_TRANSLATE is invoked when a user changes language, and was commented out when admins change language, so I'm taking this as a stub for additional work... When CCMenu::KillCache is called the menu is not fully rebuilt. CCMenu::reset() calls _menu_data(true) but in the implementation of _menu_data: configs =3D& CCConfigs::GetTable(); $_menu_data['items'] =3D $configs->GetConfig('menu'); $_menu_data['groups'] =3D $configs->GetConfig('groups'); if( empty($_menu_data['items']) ) This is only true when the menus are reverted to the originals and the menu is fully rebuilt in the config array. So the translation file contains translations for the standard menu items and these are applied during the initial menu build (or when it's reverted to the original). So we could translate the existing config menu data each time the language is changed by the admin, but this would apply a global language change, for users as well. The main text for other pages is presumably built (and translated) each time it's it, or maybe cached and the cache invalidated when the admin changes language somewhere. More investigation needed... Now I'm guessing what's needed is a config array *per required language* for menu items. This shouldn't be restricted to two obviously. I guess each menu items for each language could be built when first requested by a user. Maybe a function to cache translations for all available language avalable to admins. I'm not sure what the policy is on this sort of thing. I hope you guys don't mind me posting this stuff - let me know if I'm barking up the wrong trees completely. regards Marcus Marcus Clements wrote: > Hi Victor, > > I've had a good look around, enabled the debugger, poked a few things=20 > and I'm slowly getting a clearer picture of how cchost works. > > One thing I've noticed is that the menu doesn't get rebuilt from=20 > scratch when the site language is changed. I expect an event needs to=20 > be raised when the language changes to make this happen. I'll have a=20 > look at that soon. > > A good proportion of the site is translated into Italian. I'll arrange=20 > the rest of it over the coming weeks, maybe by contacting the original=20 > translator. > > I'll continue to experiment with setting the user language in profiles=20 > and see where I can break it and maybe fix it. > > On the dreamhost dev site you gave me, can I have access to a MySQL=20 > admin interface of some sort? My command line SQL isn't what it could=20 > be ;=AC) > > Anyway I know you're busy with the big rewrite so I'm not expecting=20 > anything in the way of help. I'll keep the list up to date with my=20 > progress anyhow. > > One quick question - should I check out the code again now or wait a=20 > bit until it stabilises? > > cheers > > Marcus > > > Victor Stone wrote: >> On 1/19/07, Marcus Clements <ma...@br...> wrote: >>> With en_US set as default, I then tried switching the admin user >>> language to Italian (the only option I've given the site). >> >> If you're talking about the "Allow User to Set Language" (per-user >> language) feature then we had to disable that in the sources because >> it was causing configurations to be wiped out. The bug that was >> causing that has since been fixed, but the fix has not been tested >> (which means there is probably another bug waiting to happen). >> >> The code in question is in cclib/cc-language.php you want to enable >> the code around line 136 (the Id field at the top of the file for mine >> is 4467). The comment block above it says: >> >> // The code is an example of how to do things once the >> // user_language field is sure to work... (etc.) >> >> line 135: remove "/*" >> line 153: remove "*/" >> >> If it works it's a miracle, if not, Jon (who wrote this code) or I >> will take a stab at it. >> >> Also, Jon can speak as to how complete the Italian translation is, >> i.e. even if the code works, I have no idea how much of the site was >> actually translated in the Italian PO. >> >> VS >> > > --=20 > Marcus Clements > Brightonart Ltd. > www.brightonart.org > +44 (0)7866 316498 > +34 606 053 777 > -----------------------------------------------------------------------= - > > -----------------------------------------------------------------------= -- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share= your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDEV > -----------------------------------------------------------------------= - > > _______________________________________________ > Cctools-cchost mailing list > Cct...@li... > https://lists.sourceforge.net/lists/listinfo/cctools-cchost > =20 --=20 Marcus Clements Brightonart Ltd. www.brightonart.org +44 (0)7866 316498 +34 606 053 777 |