--- a/locfiles/group/switch_loc_generator.pl Thu Aug 19 11:06:18 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-# ============================================================================
-# Name : loc_generator.pl
-# Part of : create loc files to \epoc32\s60\locfiles base on subfolders in the same folder
-# Origin : S60 build team,NMP
-# Created : Tue Sep 24 11:32:47 2006
-# Version : 0.2
-# Description:
-# Version 0.2 changes(VL): added "dirty hack" so that new string is added for all layers,
-# this need to be removed when S60locfiles is exporting localized .loc files to correct layers !!!
-# Also added fix to sub routine update_locs [if ($key eq "") {next}; # skip empty ones]
-
-
-use strict;
-use File::Basename; # for fileparse
-use Getopt::Long;
-use Data::Dumper; # debugging purposes
-
-#
-# Variables...
-#
-my $version = "0.2";
-my $locfile_path;
-my $loc_sc_folder = "sc";
-my $loc_01_folder = "01";
-my @generated_files;
-
-my $input;
-my $dozip;
-my $noupdatelocfiles;
-my $force_generation;
-my $show_help;
-
-my $result = GetOptions('i:s' => \$input, 'zip:s' => \$dozip, 'noUpdate' => \$noupdatelocfiles, 'force' => \$force_generation , 'h' => \$show_help);
-
-if ($show_help) {help(); die "";};
-
-if ($input && (!-d $input)){&error_msg("Invalid parameter '$input'!");}
-if ($input && $input !~ m/\\$/) {$input .= "\\";};
-
-if (!$result){&error_msg("Required Arguments are missing or wrong");}
-#
-# Hello text
-#
-hello();
-
-# paths to exported loc files
-my @exportedlocfilepaths = ("\\epoc32\\include\\platform\\loc", "\\epoc32\\include\\platform\\mw\\loc", "\\epoc32\\include\\platform\\app\\loc");
-
-if ($input) {
- generate_locs($input);
- if ($dozip) {zipup_genfiles($input)};
-}
-foreach $locfile_path (@exportedlocfilepaths) {
- generate_locs($locfile_path);
-}
-
-sub zipup_genfiles {
- my $folder = shift;
- unlink($dozip);
- print "zip.exe -j -m $dozip @{generated_files}\n";
- system ("zip.exe -j -m $dozip @generated_files");
-}
-
-# generate switch loc files
-sub generate_locs {
- my $folder = shift;
- my @files;
- my @languageids;
- @generated_files=();
-
-# get language ids from folder names
-# use sc as reference
- if (-d ${folder}.${loc_sc_folder}) {
- opendir(SDIR, ${folder}.${loc_sc_folder}) or &error_msg("can not read ${folder}${loc_sc_folder}\n");
- @files = grep !/^\.\.?$/ && /.loc$/i, readdir SDIR;
- closedir(SDIR);
-
- opendir(SDIR, $folder) or &error_msg("can not read $folder\n");
- @languageids = grep !/^\.\.?$/ && /^\d+?$/i, readdir SDIR;
- closedir(SDIR);
- }
-# get language ids from zip file names.
-# use 01 as reference
- elsif (-f "${folder}${loc_01_folder}.zip") {
- open ZIP, "unzip -Z1 ${folder}${loc_01_folder}.zip |";
- while (<ZIP>)
- {
- chomp;
- $_ =~ s/.*\///i;
- $_ =~ s/_${loc_01_folder}//i;
-
- push @files ,$_;
- }
- close ZIP;
-
- opendir(SDIR, $folder) or &error_msg("can not read $folder\n");
- my @zipfiles = grep !/^\.\.?$/ && /^\d+?.zip$/i, readdir SDIR;
- closedir(SDIR);
- foreach (@zipfiles) {
- $_ =~ s/.zip//i;
- push @languageids, $_;
- }
- }
-
-# print Dumper( @languageids );
-
- foreach my $loc_file (@files) {
- $loc_file =~ s/_${loc_01_folder}//i;
- if (!-e $folder.$loc_file || $force_generation) {
- push @generated_files, $folder.$loc_file."\n";
- create_include_loc($folder, $loc_file, \@languageids);
- }
- if (!$noupdatelocfiles) {
- update_locs($folder, $loc_file, \@languageids);
- }
- }
-}
-
-# update exist localized loc files base on exported original loc.
-# create new files for all languages in case if loc is new one
-# update new defines from component exported loc to exist localized files
-sub update_locs {
- my $loc_path = shift;
- my $loc_file = shift;
- my $languageids = shift;
- my ($n, $ext) = split ('\.', $loc_file);
-
- if (!-f "${loc_path}${loc_sc_folder}\\${loc_file}"){return;};
-
- my %defines_orig = read_loc("${loc_path}${loc_sc_folder}\\${loc_file}");
-
- foreach my $languageID (@$languageids) {
- my @add;
-
- if (!-e "${loc_path}${languageID}\\${n}_${languageID}\.${ext}") {
- foreach my $key (keys %defines_orig) {
- push @add, $defines_orig{$key}."\n";
- }
- }
- else {
- my %defines = read_loc("${loc_path}${languageID}\\${n}_${languageID}\.${ext}");
- foreach my $key (keys %defines_orig) {
- if ($key eq "") {next}; # skip empty ones
- if (!exists $defines{$key}) {
- push @add, $defines_orig{$key}."\n";
- }
- }
-
- }
- next if (!scalar @add);
- # Dirty quick hack to go trough all paths in this phase also
- foreach my $locfile_path_temp (@exportedlocfilepaths) {
- if (!-f "${locfile_path_temp}${languageID}\\${n}_${languageID}\.${ext}"){next;};
- print "update ${locfile_path_temp}${languageID}\\${n}_${languageID}\.${ext} \n add lines\n @{add} \n";
- open (OUT_LOC,">>${locfile_path_temp}${languageID}\\${n}_${languageID}\.${ext}") or die "Cannot open ${locfile_path_temp}${languageID}\\${n}_${languageID}\.${ext} for reading: $!";
- print OUT_LOC "\n";
- print OUT_LOC @add;
- close OUT_LOC;
- }
-
- }
-}
-
-# read .loc file and return defined strings
-sub read_loc {
- my $read_loc = shift;
- my %defines;
-
- open (IN,"$read_loc") or die "Cannot open ${read_loc} for reading: $!";
- my @lines=<IN>;
- close IN;
-
- my $open_comment = 0;
- foreach (@lines) {
- chomp;
- if (m!^\s*/\*!) {
- $open_comment=1;
- if (m!\*/!) {
- $open_comment=0;
- }
- next;
- }
- if (m!\*/!) {
- $open_comment=0;
- next;
- }
- next if ($open_comment);
- next if (!m/^\s*?\#define/i);
- my $line = $_;
-
- $line =~ s/\"+/\"\#/;
- $_ =~ s/\s*?\#define\s+?//i;
- $_ =~ s/\s.*//i;
-
- $defines{$_}=$line;
- }
-
- return %defines;
-}
-
-
-# create switch loc file
-sub create_include_loc {
- my $loc_path = shift;
- my $loc_file = shift;
- my $languageids = shift;
-
- my ($n, $ext) = split ('\.', $loc_file);
- print "create file ${loc_path}${loc_file}\n";
- open (OUT,">${loc_path}${loc_file}") or die "Cannot open ${loc_path}${loc_file} for writing: $!";
-
-# my $first = 1;
- print OUT "\#if LANGUAGE_${loc_sc_folder}\n";
- print OUT "\t\#include <${loc_sc_folder}\/${loc_file}\>\n";
-
- foreach my $languageID (@$languageids) {
-# next if (!-f "${locfile_path}\\${languageID}\\${n}_${languageID}${ext}");
-# if ($first) {
-# print OUT "\#if LANGUAGE_${languageID}\n";
-# $first = 0;
-# }
-# else {
- print OUT "\#elif LANGUAGE_${languageID}\n";
-# }
- print OUT "\t\#include <${languageID}\/${n}_${languageID}\.${ext}\>\n";
- }
-
-# print OUT "\#else\n";
-# print OUT "\t\#include <${loc_sc_folder}\\${loc_file}\>\n";
- print OUT "\#endif\n";
-
-
- close OUT;
-}
-
-sub datetime {
- my ($sec,$min,$hour,$day,$month,$year,$wbday,$yday,$isdst)=gmtime();
- $month++;
- $year+=1900;
-
- return (sprintf("%04d.%02d.%02d %02d:%02d:%02d",$year,$month,$day,$hour,$min,$sec));
-}
-
-sub hello {
- print "This is switch_loc_generator version ${version}\n";
- print "\n";
-}
-
-sub error_msg ($){
- my($ErrorMsg);
- ($ErrorMsg)=@_;
- my $given_command=$0;
- $given_command =~ s/.*\\(\w+\.\w+)$/$1/;
- print "";
- print "\n";
- print "Error: $ErrorMsg \n\n";
- help();
- die "\n";
-}
-
-sub help {
- my $given_command=$0;
- $given_command =~ s/.*\\(\w+\.\w+)$/$1/;
-
- print "";
- print "\n";
- hello();
- print " Parameters:\n";
- print " -i <path to localized loc zips> : custom path to generated switch loc files. Option for localisation team\n";
- print " -zip <zip file name to zip up generated switch loc files> : path to zip up generated switch loc files. Option for localisation team\n";
- print " -noUpdate : do not update localised loc files in epoc32 -folder\n";
- print " -force : regenerate switch loc files even those are exists\n";
- print " -h : print this info message\n";
- print "Usage: \n$given_command -i <localised loc file folder>\n";
- print "Example: \n$given_command -i \\s60\\misc\\release\\S60LocFiles\\data\n\n";
- print "Example for localization team: \n$given_command -i ..\\data -zip ..\\data\\switch_loc.zip\n";
- print "\n";
-
-}
\ No newline at end of file