So what I did was create a specific locale_xml.php that contains all the localised string for a specific locale. For example mysite.com?type=loc&loc=en_US retreives the English content. (Other possible types are html & xml)
It was not that hard to figure out all the parts of the xml but it did take a while. So I'm posting it here, hoping it might be of some use to somebody else.
`
<?php if (isset($_GET['loc'])) {
$locale = $_GET['loc'];
} else {
$locale = getOption('locale');
}
global $_zp_gallery;
?>
<?php echo '<?xml version="1.0"?>'; ?>
<data>
<locale><?php echo $locale ?></locale>
<main_title><![CDATA[<?php echo get_language_string(getOption('website_title'),$locale); ?>]]></main_title>
<site_title><![CDATA[<?php echo get_language_string(getOption('gallery_title'),$locale); ?>]]></site_title>
<site_description><![CDATA[<?php echo get_language_string(getOption('Gallery_description'),$locale); ?>]]></site_description>
<albums>
<?php while (next_album()): ?>
<album>
<title><![CDATA[<?php echo get_language_string($_zp_current_album->get('title'),$locale); ?>]]></title>
<description><![CDATA[<?php echo get_language_string($_zp_current_album->get('desc'),$locale); ?>]]></description>
<custom_data><![CDATA[<?php echo get_language_string($_zp_current_album->get('custom_data'),$locale); ?>]]></custom_data>
<id><?php echo $_zp_current_album->get('id'); ?></id>
<subalbums>
<?php $subalbums = $_zp_current_album->getSubalbums();
foreach ($subalbums as $subalbum) {
$album = new Album($_zp_gallery, $subalbum); ?>
<subalbum>
<title><![CDATA[<?php echo get_language_string($album->get('title'),$locale); ?>]]></title>
<description><![CDATA[<?php echo get_language_string($album->get('desc'),$locale); ?>]]></description>
<custom_data><![CDATA[<?php echo get_language_string($album->get('custom_data'),$locale); ?>]]></custom_data>
<id><?php echo $album->get('id'); ?></id>
<images>
<?php $images = $album->getImages();
foreach ($images as $image) {
$imageobj = new _Image($album, $image); ?>
<image>
<title><![CDATA[<?php echo get_language_string($imageobj->get('title'),$locale); ?>]]></title>
<id><?php echo $imageobj->get('id'); ?></id>
<album_id><?php echo $album->get('id'); ?></album_id>
<description><![CDATA[<?php echo get_language_string($imageobj->get('desc'),$locale) ?>]]></description>
<custom_data><![CDATA[<?php echo get_language_string($imageobj->get('custom_data'),$locale); ?>]]></custom_data>
</image>
<?php } ?>
</images>
</subalbum>
<?php } ?>
</subalbums>
<images>
<?php $images = $_zp_current_album->getImages();
foreach ($images as $image) {
$imageobj = new _Image($_zp_current_album, $image); ?>
<image>
<title><![CDATA[<?php echo get_language_string($imageobj->get('title'),$locale); ?>]]></title>
<id><?php echo $imageobj->get('id'); ?></id>
<album_id><?php echo $_zp_current_album->get('id'); ?></album_id>
<description><![CDATA[<?php echo get_language_string($imageobj->get('desc'),$locale) ?>]]></description>
<custom_data><![CDATA[<?php echo get_language_string($imageobj->get('custom_data'),$locale); ?>]]></custom_data>
</image>
<?php } ?>
</images>
</album>
<?php endwhile; ?>
</albums>
<pages>
<?php $pages = getPages(true);
foreach($pages as $page) {
$pageobj = new ZenpagePage($page['titlelink']);?>
<page link="<?php echo getPageLinkPath().$pageobj->getTitleLink();?>"><![CDATA[<?php echo get_language_string($pageobj->get("title"),$locale); ?>]]></page>
<?php } ?>
</pages>
<?php if(function_exists("printAllNewsCategories")) { ?>
<news link="<?php echo getNewsBaseURL();?>"></news>
<?php } ?>
</data>
`