diff options
author | Bruno 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) |
commit | e19b035ed943ae1ce278cb7a306d269b75ae906b (patch) | |
tree | 3cadd9671ec8c4da77318b4df7e2cf88c14407b0 | |
parent | 7d1064105959a7f8b02402742fc4735b9ff27b6a (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.in | 2 | ||||
-rwxr-xr-x | nsis/langmacros.nsh | 6 | ||||
-rw-r--r-- | nsis_translations.desktop.in | 12 | ||||
-rwxr-xr-x | tools/create_nsis_translations.pl | 73 |
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; } |