https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115451

Revision: 115451
Author:   amire80
Date:     2012-05-28 19:04:31 +0000 (Mon, 28 May 2012)
Log Message:
-----------
Cleaned up and updated. Made it possible to add more products and not just the 
browser, although new products will probably require more tweaks.

Modified Paths:
--------------
    trunk/translatewiki/Mozilla/genMozilla.php

Modified: trunk/translatewiki/Mozilla/genMozilla.php
===================================================================
--- trunk/translatewiki/Mozilla/genMozilla.php  2012-05-28 06:12:41 UTC (rev 
115450)
+++ trunk/translatewiki/Mozilla/genMozilla.php  2012-05-28 19:04:31 UTC (rev 
115451)
@@ -15,6 +15,10 @@
 // Array of supported products. Any of browser, calendar, chat, dom, editor,
 // embedding, extensions, mail, mobile, netwerk, other-licenses, security,
 // services, suite, toolkit.
+// Currently only browser.
+$products = array(
+       'browser'
+);
 // Folder below $projectFolder in which source files are.
 $sourceFolder = 'en';
 // File pattern for gettext template files.
@@ -26,25 +30,29 @@
 // excluded files.
 $excludedFiles = array(
        'chrome/browser/browser.properties',
+       'chrome/browser/feeds/subscribe.dtd',
+       'chrome/browser/preferences/selectBookmark.dtd',
 );
 
-$baseFolder = "$projectsFolder/$projectFolder/${sourceFolder}/";
+foreach ( $products as $product ) {
+       $baseFolder = 
"$projectsFolder/$projectFolder/${sourceFolder}/$product/";
 
-foreach ( $fileTypes as $fileType ) {
-       $output = '';
+       foreach ( $fileTypes as $fileType ) {
+               $output = '';
 
-       $fileExtension = $fileType[0];
-       $FFS = $fileType[1];
-       $files = shell_exec( "find ${baseFolder} -name '*.${fileExtension}'" );
-       $files = explode( "\n", $files );
-       $files = array_filter( $files );
+               $fileExtension = $fileType[0];
+               $FFS = $fileType[1];
+               $findCmd = "find ${baseFolder} -name '*.${fileExtension}'";
+               $files = shell_exec( $findCmd );
+               $files = explode( "\n", $files );
+               $files = array_filter( $files );
 
-       foreach ( $files as $index => $file ) {
-               $files[$index] = str_replace( $baseFolder, '', $file );
-       }
+               foreach ( $files as $index => $file ) {
+                       $files[$index] = str_replace( $baseFolder, '', $file );
+               }
 
-       // Template header for YAML config file.
-       $header = <<<PHP
+               // Template header for YAML config file.
+               $header = <<<PHP
 TEMPLATE:
   BASIC:
     description: "{{int:translate-group-desc-mozilla-browser}}"
@@ -68,62 +76,64 @@
 
 PHP;
 
-       $output .= $header . "\n";
+               $output .= $header . "\n";
 
-       $localeFolder = "${projectFolder}/%CODE%/";
+               $localeFolder = "${projectFolder}/%CODE%/$product";
 
-       asort( $files );
+               asort( $files );
 
-       // Add config for each file.
-       foreach ( $files as $file ) {
-               // Exclude some files.
-               if( in_array( $file, $excludedFiles ) ) {
-                       echo "$file\n";
-                       continue;
-               }
+               // Add config for each file.
+               foreach ( $files as $file ) {
+                       // Exclude some files.
+                       if( in_array( $file, $excludedFiles ) ) {
+                               echo "excluding $file\n";
+                               continue;
+                       }
+                       echo "reading $file\n";
 
-               // Strip extension from file name and break into parts for 
plugin name.
-               // Later on, used to create a group name.
-               $groupName = explode( "/", str_replace( '.' . $fileExtension, 
'', $file ) );
+                       // Strip extension from file name and break into parts 
for plugin name.
+                       // Later on, used to create a group name.
+                       $groupName = explode( "/", str_replace( '.' . 
$fileExtension, '', $file ) );
 
-               // File name in lower case.
-               $fileL = strtolower( $file );
+                       // File name in lower case.
+                       $fileL = strtolower( $file );
 
-               // Create group ID by replacing directory separators by dashes 
after
-               // file extension was stripped.
-               $groupId = str_replace( "/", '-', $fileL );
-               $groupId = str_replace( '.' . $fileExtension, '', $groupId );
-               $groupId .= '-' . strtolower( $FFS );
+                       // Create group ID by replacing directory separators by 
dashes after
+                       // file extension was stripped.
+                       $groupId = str_replace( "/", '-', $fileL );
+                       $groupId = str_replace( '.' . $fileExtension, '', 
$groupId );
+                       $groupId .= '-' . strtolower( $FFS );
 
-               // Create a group name by concatenating the directory and file 
name parts
-               // after capitalising them.
-               foreach ( $groupName as $index => $groupNamePart ) {
-                       $groupName[$index] = ucfirst( $groupNamePart );
+                       // Create a group name by concatenating the directory 
and file name parts
+                       // after capitalising them.
+                       foreach ( $groupName as $index => $groupNamePart ) {
+                               $groupName[$index] = ucfirst( $groupNamePart );
+                       }
+                       $groupName = implode( ' - ', $groupName );
+                       $groupName .= " - ${FFS}";
+
+                       // Actual configuration.
+                       $output .= "---\n";
+                       $output .= "BASIC:\n";
+                       $output .= "  id: mozilla-${groupId}\n";
+                       $output .= "  label: Mozilla - ${groupName}\n";
+                       $output .= "\n";
+                       $output .= "FILES:\n";
+                       $output .= "  sourcePattern: 
%GROUPROOT%/${localeFolder}/${file}\n";
+                       $output .= "  targetPattern: ${localeFolder}/${file}\n";
+                       $output .= "\n";
+                       // Mangler prefix based on group ID.
+                       $output .= "MANGLER:\n";
+                       $output .= "  prefix: ${groupId}-\n";
+                       $output .= "\n";
                }
-               $groupName = implode( ' - ', $groupName );
-               $groupName .= " - ${FFS}";
 
-               // Actual configuration.
-               $output .= "---\n";
-               $output .= "BASIC:\n";
-               $output .= "  id: mozilla-${groupId}\n";
-               $output .= "  label: Mozilla - ${groupName}\n";
-               $output .= "\n";
-               $output .= "FILES:\n";
-               $output .= "  sourcePattern: 
%GROUPROOT%/${localeFolder}${file}\n";
-               $output .= "  targetPattern: ${localeFolder}${file}\n";
-               $output .= "\n";
-               // Mangler prefix based on group ID.
-               $output .= "MANGLER:\n";
-               $output .= "  prefix: ${groupId}-\n";
-               $output .= "\n";
+               // Write a file for each file type to Mozilla<FFSName>.yaml in 
current
+               // directory.
+               $fp = fopen( "Mozilla${FFS}.yaml", 'w' );
+               fwrite( $fp, $output );
+               fclose( $fp );
        }
-
-       // Write a file for each file type to Mozilla<FFSName>.yaml in current
-       // directory.
-       $fp = fopen( "Mozilla${FFS}.yaml", 'w' );
-       fwrite( $fp, $output );
-       fclose( $fp );
 }
 
 echo "Done.\n";


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to