29 April, 2010
By lobo

The past 8 days have been an amazing period for the CiviCRM community and core team members. Its been incredibly intense, extremely fulfilling and mind-blowing. A huge thank you and tip of the hat to the members of the community who participated in the event and came together from various parts of the world (asia, europe, north america) to push the project to greater heights, from a usability, documentation and localization viewpoint.

Thank you to Jimmy H, Erik B, Goran G, Matheiu L, Mathieu P for working on improving CiviCRM's localization and internationalization features. Thank you to Michael M, Xavier D, Adam H, Sarah G, Mari T, Alice G, Jack A, Josue G, Kyle J for burning the midnight oil to update, improve and extend the CiviCRM: A comprehensive guide. Thank you to OSI and our program officer: Janet Haven, Chintu Gudiya Foundation, Yellow Dog Foundation and ...

Read more
28 April, 2010
By shot
As you have already read in the previous blog posts, one of the outcomes of the translation sprint is the fact that we’re switching our translation server to a new tool, Transifex. We decided to go with Transifex for various reasons:
  • Transifex allows teams of people to collaborate on translations – this is not an issue when you have a single person working on a translation, but as soon as you have two or more contributors working remotely, it’s crucial to use a tool that streamlines the process and allows for easy and centralised communication,
  • the user hierarchy is simple, clean and seems to be efficient: project maintainers accept language maintainers who, in turn, accept language team members and coordinate given language’s...
Read more
27 April, 2010
By goran
Filed under Architecture, CiviCRM, Sprints
It is said that optimizing too early is the root of all evil. However it is not so easy to say when is the right time. Looking at CiviCRM performance there are a number of instances where even on medium sized installations search queries take a long time to execute. One of the searches that caught my eye is the AJAX search at the top left in the menu bar. Returning a maximum of ten entries from a medium sized database (~50k records) should take negligible time and on the CiviCRM test data this request was taking around 3 seconds (putting full load on server). The culprit query from CRM/Contact/Page/AJAX.php is: $query = " SELECT DISTINCT(cc.id) as id, CONCAT_WS( ' :: ', {$select} ) as data FROM civicrm_contact cc {$from} {$aclFrom} {$additionalFrom} {$whereClause} ORDER BY sort_name LIMIT 0, {$limit} "; First of all, MySQL does not have DISTINCT(field) statement that returns rows distinct only in value of a single field. Still MySQL does not give errors on ... Read more
26 April, 2010
By bgm
Today's localisation sprint started with a presentation from Piotr on how multilingual installations works in CiviCRM. Multilingual is when you want to have not only a localised interface, but many co-existing languages. So for example the labels of custom fields may need to be in English or Spanish if the organisation has a bilingual website. In general, most labels can be translated using multilingual, but not the data itself. The main except to this is the contact name, so that it can be entered in multiple alphabets. Multilingual was labeled as an experimental feature until CiviCRM 3.1, but this warning might be removed in 3.2. A few large installs have reported using it successfully. On the coding side,
  • Lobo and Goran have pretty much wrapped up the multi-currency support. For now this allows to enter contributions offline (in the backend) in multiple currencies. Changes in the frontend will probably appear in 3.3.
  • Lobo and Goran have also worked on "per...
Read more
25 April, 2010
By scyrma

Well, it's been done, we chose the translation platform: Transifex. We're fully aware that we did not actually choose a platform that fully supports the ideal situation, but such a platform does not exists. This is more the choice of a promising back-end which we hope we can eventually develop into the ideal situation.

The interesting part in the discussion was finding a balance between the technical and functional interests.

Programmers were not too keen on choosing a platform that would require big changes to the way strings are stored and manipulated. On the other hand translators would benefit from more intuitive user interface, giving immediate feedback on results and overall progress, such as being able to find the context in which a string is used. The Drupal localization client's "on-screen translator" offers...

Read more
25 April, 2010
By michal
That's right, you probably noticed there are two sprints going on here in Tahoe. You can read the report from the book sprint in Jack blog post, now it's time you found out what's the second sprint about. Internationalisation has been available in CiviCRM almost from the very beginning, but we never had a chance to sit down with people who use it and work on different issues that appear when you want to use CiviCRM in other languages and environments than English. So, this time finally came and we have an excellent group of folks sitting in one room and working on making CiviCRM better from i18n perspective. Our three main goals include:
  • choosing the best translation platform and possibly switching to it
  • mapping the best community process for maintaining translations
  • wiping out various issues connected to internationalisation and localisation
We started in the... Read more