Hi,
I would like to modify the database scheme to have the multilanguage support (2 languages in fact) for some fields of "albums" and "images" tables like the title and the description fields. I would like use the "dynamic-locale" plugins to switch between the 2 languages.
It's specify in the dynamic-locale documentation page that I have to create a set of custom functions to handle database strings and need a scheme for storing multiple versions of texts.
My questions...
1/ Is it possible to modify Zen Photo without lost the possibility to upgrade it in the futur ?
2/ In which file could I modify the database scheme and add title_fr and description_fr fields in the tables ?
3/ Where could I code a set of custom functions to handle database strings ?
Thank you by advance for your help.
Nico.
Modifying the zenphoto core is always a risk. You can modify your database and add fields without much risk. Only problem would be if you happened to choose a field name that zenphoto eventually started to use.
You modify the database schema directly with a tool like phpMyAdmin. You do have the "custom data" fields already in zenphoto that you could use for a second language. However that is just one field per object.
You can create custom function in a file in your theme or you can create a zenphoto plugin (http://www.zenphoto.org/2008/04/zenphoto-plugin-architecture/) if the functions are to be generally used. Generally you can use the class get() and put() functions with any database field so your custom functions could do things like return $get('title_fr'); to return your French title.
Your biggest challenge is that there is no Admin support for editing your new fields. Perhaps you could consider the following idea:
Use the custom data fields that are already present. They can be edited with the admin interface. Setup a convention for how your data will be placed: for instance it could be:
title | description | ....
Then you can have your custom functions map the field into the appropriate destinations:
$translations = explode('|', getAlbumCustomData());
Then $translations[0] would be the title, $translations[1] the descriptions, etc.
After a long reflection, I have decided to use unnecessary fields for my application (like credit and the city) for the translations FR/ENG concerning the title field and the descriptions field.
I have just changed the file admin.php of the zp-core to rename and move the labels for a better comprehension in the administration.
Yes, I will have to redo the modifications each time I will upgrade ZP but there is not a lot of code changes.
I also have to code some functions like printImageCity() and getImageCredit() to have access to this informations from the image template. I have found it nowhere ... :/
It would be great if the title and the description fields could be translated. In fact they are the only fields that I need to translate...
With your work could I use the "dynamic-locale" plugins to switch between the 2 languages ?
If you publish it before the end of July, I could be interested by your modifications.
The implementation has been released in [1969] and will show up in tonight's nightly build. To activate, find the "multi-lingual' checkbox next to the language selector on the admin gallery configuration tab. Check the box and you will have fields to enter translations for any of the zp supported languages. They do not all have to be populated. There is a fallback default whick will select the user's language if it exists falling back to the language specified by the language selector, falling back to the en_US string. (If none of these exist it will select the first non empty string.)
Please report problems through the ticket system so we can keep tabs on them. Remember that this is a brand new feature. There may be some things that don't quite work right. Let us know.
Visit http://www.zenphoto.org/trac/browser/trunk. At the bottom of the page is a link to download a zip archive of the revision. Revisions keep being made. This link is to the most current development release of zenphoto. You can also get what we call the "nightly" build. Visit this link http://www.zenphoto.org/files/nightly/ and pick the most recent.
Generally it is a better choice to use the nightly builds. In your case that is my recommendaton. All the language changes are in the build from 2008-07-20.