Source for file t2xmlchk.php
Documentation is available at t2xmlchk.php
* Check XML files intended to be used with Translation2
* @author Olivier Guilyardi <ylf@xung.org>
//error_reporting (E_ALL);
exit ("Sorry, this script will only run under PHP4 (that is: not PHP5)\n");
echo "t2xmlchk checks and validates XML files intended to be used with \n" .
"the Translation2 internationalization package.\n" .
"Usage: t2xmlchk <xml filename>\n";
require_once 'Translation2/Container/xml.php';
require_once 'XML/DTD/XmlValidator.php';
if (!$xml_file = $argv[1 ]) {
echo ("ERROR : No xml filename provided\n\n");
echo (" ERROR : No such file : \"$xml_file\"\n\n" );
$validator = & new XML_DTD_XmlValidator ();
$fp = fopen($dtd_file,'w');
echo "Performing DTD validation... ";
$test = $validator->isValid ($dtd_file, $xml_file);
exit ("FAILED : " . $validator->getMessage () . "\n");
echo "Unserializing... ";
$unserializer = &new XML_Unserializer (array ('keyAttribute' => $keyAttr));
if (PEAR ::isError ($status = $unserializer->unserialize($xml_file, true ))) {
exit ("FAILED : " . $status->getMessage () . "\n");
$data = $unserializer->getUnserializedData ();
// This should be done by XML_DTD :
echo "Checking lang IDs... ";
foreach ($data['languages'] as $lang => $spec) {
exit (" FAILED : Found lang duplicate for \"$lang\"\n" );
echo "Checking string duplicates... ";
foreach($data['pages'] as $pagename => $pagedata) {
foreach($pagedata as $stringname => $stringvalues) {
exit (" FAILED : found duplicate in page \"$pagename\" for string \"stringname\"\n" );
// This should be done by XML_DTD :
echo "Checking lang IDREFs... ";
foreach ($data['pages'] as $pagename => $pagedata) {
foreach ($pagedata as $stringname => $stringvalues) {
foreach ($stringvalues as $lang => $translation) {
exit (" FAILED : Unknow lang \"$lang\" in page \"$pagename\" at string \"$stringname\"\n" );
echo "Checking translation duplicates... ";
foreach ($data['pages'] as $pagename => $pagedata) {
foreach ($pagedata as $stringname => $stringvalues) {
foreach ($stringvalues as $lang => $translation) {
exit (" FAILED : found duplicate in page \"$pagename\" for string \"stringname\" with lang \"$lang\"\n" );
Documentation generated on Mon, 11 Mar 2019 14:41:45 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|