Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Coudoin <bruno.coudoin@free.fr>2009-07-22 00:02:39 (GMT)
committer Bruno Coudoin <bruno.coudoin@free.fr>2009-07-22 00:02:39 (GMT)
commite19b035ed943ae1ce278cb7a306d269b75ae906b (patch)
tree3cadd9671ec8c4da77318b4df7e2cf88c14407b0
parent7d1064105959a7f8b02402742fc4735b9ff27b6a (diff)
Completed the integration of the create_nsis_translation.pl script
that does the export of nsis installer strings to translate to the po files.
-rw-r--r--gcompris-installer.nsi.in2
-rwxr-xr-xnsis/langmacros.nsh6
-rw-r--r--nsis_translations.desktop.in12
-rwxr-xr-xtools/create_nsis_translations.pl73
4 files changed, 72 insertions, 21 deletions
diff --git a/gcompris-installer.nsi.in b/gcompris-installer.nsi.in
index 60ce894..db5989b 100644
--- a/gcompris-installer.nsi.in
+++ b/gcompris-installer.nsi.in
@@ -103,8 +103,6 @@ SetDateSave on
!include "${GCOMPRIS_NSIS_INCLUDE_PATH}\langmacros.nsh"
- !define GCOMPRIS_DEFAULT_LANGFILE "${GCOMPRIS_NSIS_INCLUDE_PATH}\translations\english.nsh"
-
@GCOMPRIS_MACRO_INCLUDE_LANGFILE@
;--------------------------------
diff --git a/nsis/langmacros.nsh b/nsis/langmacros.nsh
index 0dfdd97..4a6b46e 100755
--- a/nsis/langmacros.nsh
+++ b/nsis/langmacros.nsh
@@ -29,11 +29,11 @@
; String labels should match those from the default language file.
; Startup checks
- !insertmacro GCOMPRIS_MACRO_LANGSTRING_INSERT InstallerIsRunning ${CUR_LANG}
- !insertmacro GCOMPRIS_MACRO_LANGSTRING_INSERT GcomprisIsRunning ${CUR_LANG}
+ !insertmacro GCOMPRIS_MACRO_LANGSTRING_INSERT InstallerIsRunning ${CUR_LANG}
+ !insertmacro GCOMPRIS_MACRO_LANGSTRING_INSERT GcomprisIsRunning ${CUR_LANG}
; License Page
- !insertmacro GCOMPRIS_MACRO_LANGSTRING_INSERT GcomprisLicenseButton ${CUR_LANG}
+ !insertmacro GCOMPRIS_MACRO_LANGSTRING_INSERT GcomprisLicenseButton ${CUR_LANG}
!insertmacro GCOMPRIS_MACRO_LANGSTRING_INSERT GcomprisLicenseBottomText ${CUR_LANG}
; Installer Finish Page
diff --git a/nsis_translations.desktop.in b/nsis_translations.desktop.in
index beb5d49..18e597f 100644
--- a/nsis_translations.desktop.in
+++ b/nsis_translations.desktop.in
@@ -1,11 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
_InstallerIsRunning=The installer is already running.
-_GcomprisisRunning=An instance of GCompris is currently running. Exit GCompris and then try again.
+_GcomprisIsRunning=An instance of GCompris is currently running. Exit GCompris and then try again.
_GcomprisLicenseButton=Next >
_GcomprisLicenseBottomText=GCompris is released under the GNU General Public License (GPL). The license is provided here for information purposes only. \$_CLICK
-_GcomprisFinishVisitWebSite=Visit the Windows GCompris Web Page
-_GcomprisPromptWipeout=Your old GCompris directory is about to be deleted. Would you like to continue?$\\r$\\rNote: Any non-standard plugins that you may have installed will be deleted.$\\rGCompris user settings will not be affected.
-_GcomprisPromptDirExists=The installation directory you specified already exists. Any contents$\\rwill be deleted. Would you like to continue?
-_unGCOMPRISUninstallError1=the uninstaller could not find registry entries for GCompris.$\\rIt is likely that another user installed this application.
-_unGCOMPRISUninstallError2=You do not have permission to uninstall this application.
+_GcomprisFinishVisitWebSite=Visit the GCompris Web Site
+_GcomprisPromptWipeout=Your old GCompris directory is about to be deleted. Would you like to continue?$\r$\rNote: Any non-standard plugins that you may have installed will be deleted.$\rGCompris user settings will not be affected.
+_GcomprisPromptDirExists=The installation directory you specified already exists. Any contents$\rwill be deleted. Would you like to continue?
+_unGcomprisUninstallError1=the uninstaller could not find registry entries for GCompris.$\rIt is likely that another user installed this application.
+_unGcomprisUninstallError2=You do not have permission to uninstall this application.
diff --git a/tools/create_nsis_translations.pl b/tools/create_nsis_translations.pl
index cc3e390..f2e8b0a 100755
--- a/tools/create_nsis_translations.pl
+++ b/tools/create_nsis_translations.pl
@@ -3,12 +3,14 @@
# You must 'cd' to the top directory of GCompris before you run it
use strict;
+use Data::Dumper;
my $gcompris_root_dir = ".";
my $ALL_LINGUAS_STR = `grep "ALL_LINGUAS=" $gcompris_root_dir/configure.in | cut -d= -f2`;
$ALL_LINGUAS_STR =~ s/\"//g;
my @ALL_LINGUAS = split(' ', $ALL_LINGUAS_STR);
+# Commented out locales that are not available in nsis
my %localeNames = (
"af", "Afrikaans",
# "am", "Amharic",
@@ -90,11 +92,13 @@ foreach my $lang (@localeKeys) {
# By the list of locales:
# !insertmacro GCOMPRIS_MACRO_INCLUDE_LANGFILE "ALBANIAN" "${GCOMPRIS_NSIS_INCLUDE_PATH}\translations\albanian.nsh"
-my $gcomprisLanguages;
+my $gcomprisLanguages = " !define GCOMPRIS_DEFAULT_LANGFILE" .
+ " \"\${GCOMPRIS_NSIS_INCLUDE_PATH}\\translations\\en.nsh\"\n\n";
+
foreach my $lang (@localeKeys) {
$gcomprisLanguages .= " !insertmacro GCOMPRIS_MACRO_INCLUDE_LANGFILE".
" \"$localeNames{$lang}\"".
- "\"\${GCOMPRIS_NSIS_INCLUDE_PATH}\\translations\\$lang.nsh\"\n";
+ " \"\${GCOMPRIS_NSIS_INCLUDE_PATH}\\translations\\$lang.nsh\"\n";
}
# We have all the data, let's replace it
@@ -123,21 +127,70 @@ open (MYFILE, '>gcompris-installer.nsi');
print MYFILE "$gcomprisInstaller";
close (MYFILE);
+#
# Create each nsh translation file
+#
+print "Parsing nsis_translations.desktop\n";
+
+# Create the holder for the results
+# %result{"locale"}{"stringname"} = result line
+my %result;
+
+# Create a hash of the keys to translate
+open (MYFILE, 'nsis_translations.desktop');
+while (<MYFILE>) {
+ chomp $_;
+ if ($_ =~ /Encoding=UTF-8/)
+ {
+ next;
+ }
+ elsif ($_ =~ /^(\w+)=(.*)/)
+ {
+ my $line = "!define $1 \"$2\"\n";
+ $result{"en"}{"$1"} = $line;
+ }
+ elsif ($_ =~ /^(\w+)\[(\w+)\]=(.*)/)
+ {
+ my $line = "!define $1 \"$3\"\n";
+ $result{"$2"}{"$1"} = $line;
+ }
+}
+close (MYFILE);
-print "Creating each nsh file\n";
+print "Creating the nsh default file\n";
+my $text_en = $result{"en"};
+open (DESC, ">nsis/translations/en.nsh");
+print DESC ";; Auto generated file by create_nsis_translations.pl\n";
+foreach my $keyEn (keys(%$text_en)) {
+ my $line = $result{'en'}{$keyEn};
+ $line =~ s/!define /!insertmacro GCOMPRIS_MACRO_DEFAULT_STRING /;
+ print DESC $line;
+}
+close DESC;
+print "Creating the nsh locale files\n";
foreach my $lang (@localeKeys) {
open (DESC, ">nsis/translations/$lang.nsh");
print DESC ";; Auto generated file by create_nsis_translations.pl\n";
- # Extract the string to translate from the nsis_translations file
- my @text = `grep "\\\[$lang\\\]" $gcompris_root_dir/nsis_translations.desktop`;
-
- foreach my $line (@text) {
- chomp $line;
- my @keyval = split("=", $line);
- print DESC "@keyval[0]=\"@keyval[1]\"\n";
+ my $text_locale = $result{"$lang"};
+ foreach my $keyEn (keys(%$text_en)) {
+ my $found = 0;
+ foreach my $keyLocale (keys(%$text_locale)) {
+ # Fine, we found a translation
+ if ( $keyLocale eq $keyEn )
+ {
+ print DESC "$result{$lang}{$keyLocale}";
+ $found = 1;
+ last;
+ }
+ }
+ # English keys are the reference.
+ # If not found they are inserted
+ if ( ! $found )
+ {
+ print DESC "$result{'en'}{$keyEn}";
+ }
}
close DESC;
}