Our Own Server for Jenkins CI

Jenkins CIA short time ago we installed an own server for the continuous integration tool Jenkins. Presently the common, metric code analysis is running and checking the oTranCe Code before the release. During the next few weeks the tool will be expanded by including the automatic execution of the PHPUnit tests. Wo of you is curious and want to see if the build is green? Take a look here: http://ci.otrance.de

We want to especially thank SysEleven GmbH
SysEleven. Hosting. Skaliert. for gratefully allocating this server for our open source project. SysEleven is specialized in scalable high performance, especially in e-commerce. They serve medium to enterprise sized online merchants with peaks due to TV commercials, like baby-markt.de for example.

Lifelong Free Hosting – Please Vote for Us!

Presently, the hosting provider domainFACTORY provides a great campagne: DF wants to support an open source project of your choosing and tenders a lifelong free hosting. We applied for this package and – giddy with pleasure – came to the final round. Now we need your help: please vote in domainFACTORY’s blog for the project oTranCe! Please visit this page to the poll:


Thanks for your support!

oTranCe Code Repository Moved to GitHub

By the end of October, Atlassian announced that they retired the Source + Review bundle, bringing their hosted Subversion offering and Fisheye/Crucible OnDemand to an end by October 15th 2013. All customers and users have been requested to move their source code to other places.

Atlassian provides an easy integration of GitHub to Jira and Confluence. Also, when dealing with GitHub, we recognized that it provides a couple of other cool features that can make collaboration in an open source environment very easy and generate some additional virality called “social coding”.

Developers who want to join the project don’t have to write an email to the project owner, waiting for an answer, sending sample code, diffs etc. any longer until they get write permissions for the core repository. If you feel fancy to help, simply go to https://github.com/DSB/oTranCe, fork the project to your own account, make the changes you want to do and send a pull request back to the original repository. We will review the code and can merge it with a simple click into the main branch. Of course, your contribution will appear in the commit history with your account.

Happy forking 🙂

Rights and Roles, Translator Name Placeholders and Easy Deleting Languages

During the last week, we have been working really hard. In this blog post we want to inform you about the latest news of our development:

Assing language to translator in oTranCeAssigning translators in language administration
While managing the languages in oTranCe, it is possible to assign a translator to it. Of course, this user has to be entered before. There is a full text search and a pagination for systems with many translators now. Clicking on the translator’s name, access to the language is granted without page re-loading. You’ll get response immediately via icons.

Placeholders for languages and names in header
From now on it is possible to export translator names and assigned languages in the header or the footer of your language file. The following values are possible: {LANG_NAME}, {LOCALE} and {TRANSLATOR_NAMES}.

As an example:
// {LANG_NAME} is maintained by {TRANSLATOR_NAMES}

will become this in output:
// Deutsch is maintained by joachim.bosch, admin, dsb

New right and role options for every user
All new options for rights and roles for existing or newly registered users will be de-activated by default and must be activated explicitely.

  • User is allowed to delete users
    Does what it says: A user with this right will be able to delete another user. The translations made by the deleted user is not concerned.
  • User is allowed to delete languages
    If this option is checked, the user is allowed to delete languages. All log files for this language will be cleared. All other assigned users for this language will lose their rights to hit it.

Deleting file templates will also delete keys and translations
Deleting a file template will cause the deletion of all assigned language keys as well as translations. Optionally they can be assigned to other file templates entered before.

Status “unassigned” has been deleted
Until this change it was possible to set the status of a language constant to “unassigned”. From now on, a language constant must be assigned to a template file to avoid database rubbish.

Keeping your database clean
All deletion actions (except of deleting language keys) will automatically provoke a defragmentation and optimization of the database on a file system level.

Optimizing the usability (OTC-79)
On the start page, now a click on to the language or the locale directly leads to a list of untranslated keys.

Export untranslated language keys with no value or with the fall back language (OTC-83)
This option in Admin -> Project defines if a missing translation of a language key shall be exported with either the value of the fall back language or with no value. This behaviour might become important for projects using unit tests and selenium tests.

Building up a Wiki – Help Appreciated

Just announcing that we are building up a manual/wiki site for oTranCe.

Of course, this page will be linked from http://www.otrance.org once there are a couple of entries. Here is a good example of how it could look like in the near future:

BTW: kudos to Daniel who made this script – it is already in use on oTranCe demo installation and on OXIDforge translation center

If you want to join this project and help us writing the documentation, please feel free to drop us a note. We appreciate your help!

oTranCe Demo Available

Touching something is better than to watch it, isn’t it? 🙂

That’s why, a couple of days before, we set up a demo installation of oTranCe. Basically, you can check the functionality of the translation platform without any restrictions here.

You will get unlimited admin access with the user name “admin” and the password “admin”. Don’t worry – you can’t damage anything – not even with an import of your own language files: none of the hold data in the system will be used; the demo installation will be reset ever day. Those of you who want to see how an interpreter will look at oTranCe shall use “tester” as user name and “tester” as the appropriate password.

Good luck with checking the system now! Let us know what you like, if you could determine bugs and what doesn’t work properly in your opinion yet.

Performance Improvements Before oTranCe Version 1.0

While the first interpreters where busy filling the language databases we recognized that the performance gets pure on the “Entries”-page at a certain amount of languages and/or keys.

The oTranCe team reacted immediately and already could find a solution for this behavior.

Before, the search mechanism took effect in both, language keys and translations. Additionally, a filter was applied for languages, assigned templates and for not yet translated phrases. Thus, the generated SQL query became too complex and brought the MySQL server to its knees. Putting out the search results, an additional query was generated per output line to pick up all related information.

To avert this performance issues, oTranCe now became more intelligent. The single different queries have been capsuled so that every single area can care about its specific requirements. Moreover, the additional output data will be picked up in a single step and thus will keep the load of the MySQL server on a lower level.

At the end of the day, a much higher speed of replies has been reached. Interpreters don’t have to wait too long for the reaction of the surface and can work much faster.

You can download the changes with a new SVN checkout.

Print Article About oTranCe at PHP Magazin

article about oTranCe at PHP MagazinHello and welcome to our brand-new project website where you can find all information about oTranCe – the webbased translation platform for your multilingual web project. Please let us know if you are missing important information. From now on, we will publish all news about oTranCe on this blog. Make sure you register to the oTranCe RSS feed.

We are proud to announce that an article about oTranCe has been published in German in the latest PHP magazin which was published on November 9th. This article describes how to manage translations of your project with oTranCe.

Of course, we cannot copy the entire text to this blogpost due to possible copyright violations. If you feel fancy, you can order this edition of PHP Magazin.