Bug 399665 - Support replacing BrandShortName and BrandFullName in the installer. r=sspitzer, approvalM9=mconnor, approval1.9=mconnor

This commit is contained in:
rob_strong@exchangecode.com 2007-10-24 00:02:57 -07:00
Родитель a2f4cc4bdc
Коммит 35d3db39d6
8 изменённых файлов: 318 добавлений и 104 удалений

Просмотреть файл

@ -120,6 +120,7 @@ VIAddVersionKey "FileDescription" "${BrandShortName} Installer"
!insertmacro RegCleanAppHandler
!insertmacro RegCleanMain
!insertmacro RegCleanUninstall
!insertmacro SetBrandNameVars
!insertmacro UnloadUAC
!insertmacro WriteRegStr2
!insertmacro WriteRegDWORD2
@ -787,6 +788,9 @@ FunctionEnd
# Initialization Functions
Function .onInit
StrCpy $LANGUAGE 0
${SetBrandNameVars} "$EXEDIR\localized\distribution\setup.ini"
${InstallOnInitCommon} "$(WARN_UNSUPPORTED_MSG)"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "options.ini"
@ -797,8 +801,6 @@ Function .onInit
!insertmacro createComponentsINI
!insertmacro createShortcutsINI
StrCpy $LANGUAGE 0
; There must always be nonlocalized and localized directories.
${GetSize} "$EXEDIR\nonlocalized\" "/S=0K" $R5 $R7 $R8
${GetSize} "$EXEDIR\localized\" "/S=0K" $R6 $R7 $R8

Просмотреть файл

@ -121,6 +121,7 @@ VIAddVersionKey "FileDescription" "${BrandShortName} Helper"
!insertmacro un.RegCleanUninstall
!insertmacro un.RegCleanProtocolHandler
!insertmacro un.RemoveQuotesFromPath
!insertmacro un.SetBrandNameVars
!include shared.nsh
@ -466,7 +467,9 @@ Function un.onInit
${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}"
Abort
${EndUnless}
StrCpy $LANGUAGE 0
${un.SetBrandNameVars} "$INSTDIR\distribution\setup.ini"
; Initialize $hHeaderBitmap to prevent redundant changing of the bitmap if
; the user clicks the back button

Просмотреть файл

@ -193,6 +193,12 @@ include $(call EXPAND_LOCALE_SRCDIR,toolkit/locales)/installer/windows/charset.m
repackage-win32-installer: WIN32_INSTALLER_OUT=$(_ABS_DIST)/install/sea/$(PKG_BASENAME).installer.exe
repackage-win32-installer: $(WIN32_INSTALLER_IN) $(SUBMAKEFILES)
ifneq (en-US,$(AB_CD))
@echo "Comparing $(AB_CD) to en-US installer locale files"
@$(PERL) $(topsrcdir)/toolkit/locales/compare-locales.pl $(srcdir)/en-US/installer $(LOCALE_SRCDIR)/installer
@echo "Verifying $(AB_CD) installer variable usage"
@$(PERL) $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/check-locales.pl $(LOCALE_SRCDIR)/installer
endif
@echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
ifdef MOZ_BRANDING_DIRECTORY
$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY) export

Просмотреть файл

@ -41,67 +41,68 @@
# Accesskeys are defined by prefixing the letter that is to be used for the
# accesskey with an ampersand (e.g. &).
# Do not replace ${BrandShortName} or ${BrandFullName} with a custom string.
# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
# custom string and always use the same one as used by the en-US files.
# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
# for double ampersand) and prevents the letter following the ampersand from
# being used as an accesskey.
# You can use \n to create a newline in the string but only when the string
# from en-US contains a \n.
REG_APP_DESC=${BrandShortName} delivers safe, easy web browsing. A familiar user interface, enhanced security features including protection from online identity theft, and integrated search let you get the most out of the web.
REG_APP_DESC=$BrandShortName delivers safe, easy web browsing. A familiar user interface, enhanced security features including protection from online identity theft, and integrated search let you get the most out of the web.
OPTIONAL_COMPONENTS_TITLE=Choose Optional Components
OPTIONAL_COMPONENTS_SUBTITLE=Choose which features of $(^NameDA) you want to install.
OPTIONAL_COMPONENTS_SUBTITLE=Choose which features of $BrandShortName you want to install.
OPTIONAL_COMPONENTS_LABEL=Optional Components:
APP_DESC=Required files for the ${BrandShortName} application
DOMI_TITLE=DOM Inspector
DOMI_TEXT=Inspects the structure and properties of a window and its contents.
QFA_TITLE=Quality Feedback Agent
QFA_TEXT=Sends information about program crashes to Mozilla.
CONTEXT_OPTIONS=${BrandShortName} &Options
CONTEXT_SAFE_MODE=${BrandShortName} &Safe Mode
CONTEXT_OPTIONS=$BrandShortName &Options
CONTEXT_SAFE_MODE=$BrandShortName &Safe Mode
SAFE_MODE=Safe Mode
OPTIONS_PAGE_TITLE=Setup Type
OPTIONS_PAGE_SUBTITLE=Choose setup options
SHORTCUTS_PAGE_TITLE=Set Up Shortcuts
SHORTCUTS_PAGE_SUBTITLE=Create Program Icons
SUMMARY_PAGE_TITLE=Summary
SUMMARY_PAGE_SUBTITLE=Ready to start installing ${BrandShortName}
SUMMARY_INSTALLED_TO=${BrandShortName} will be installed to the following location:
SUMMARY_PAGE_SUBTITLE=Ready to start installing $BrandShortName
SUMMARY_INSTALLED_TO=$BrandShortName will be installed to the following location:
SUMMARY_CLICK=Click Install to continue.
SURVEY_TEXT=&Tell us what you thought of ${BrandShortName}
LAUNCH_TEXT=&Launch ${BrandFullName} now
WARN_APP_RUNNING_INSTALL=${BrandFullName} must be closed to proceed with the installation.\n\nClick "OK" to exit ${BrandFullName} automatically and continue.
CREATE_ICONS_DESC=Create icons for ${BrandShortName}:
SURVEY_TEXT=&Tell us what you thought of $BrandShortName
LAUNCH_TEXT=&Launch $BrandShortName now
WARN_APP_RUNNING_INSTALL=$BrandShortName must be closed to proceed with the installation.\n\nClick "OK" to exit $BrandShortName automatically and continue.
CREATE_ICONS_DESC=Create icons for $BrandShortName:
ICONS_DESKTOP=On my &Desktop
ICONS_STARTMENU=In my &Start Menu Programs folder
ICONS_QUICKLAUNCH=In my &Quick Launch bar
WARN_MANUALLY_CLOSE_APP_UNINSTALL=${BrandFullName} must be closed to proceed with the uninstall.\n\nPlease close ${BrandFullName} to continue.
WARN_MANUALLY_CLOSE_APP_LAUNCH=${BrandFullName} is already running.\n\nPlease close ${BrandFullName} prior to launching the version you have just installed.
WARN_MANUALLY_CLOSE_APP_UNINSTALL=$BrandShortName must be closed to proceed with the uninstall.\n\nPlease close $BrandShortName to continue.
WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName is already running.\n\nPlease close $BrandShortName prior to launching the version you have just installed.
WARN_WRITE_ACCESS=You don't have access to write to the installation directory.\n\nClick OK to select a different directory.
WARN_DISK_SPACE=You don't have sufficient disk space to install to this location.\n\nClick OK to select a different location.
WARN_UNSUPPORTED_MSG=Sorry, ${BrandShortName} can't be installed. This version of ${BrandShortName} requires ${MinUnsupportedVer} or newer.
WARN_RESTART_REQUIRED_UNINSTALL=Your computer must be restarted to complete a previous uninstall of ${BrandShortName}. Do you want to reboot now?
WARN_UNSUPPORTED_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinUnsupportedVer} or newer.
WARN_RESTART_REQUIRED_UNINSTALL=Your computer must be restarted to complete a previous uninstall of $BrandShortName. Do you want to reboot now?
ERROR_CREATE_DIRECTORY=Error creating directory:\n\n$0\n\nClick Cancel to stop the installation or\nRetry to try again.
UN_CONFIRM_PAGE_TITLE=Uninstall ${BrandFullName}
UN_CONFIRM_PAGE_SUBTITLE=Remove ${BrandFullName} from your computer.
UN_CONFIRM_UNINSTALLED_FROM=${BrandShortName} will be uninstalled from the following location:
UN_CONFIRM_PAGE_TITLE=Uninstall $BrandFullName
UN_CONFIRM_PAGE_SUBTITLE=Remove $BrandFullName from your computer.
UN_CONFIRM_UNINSTALLED_FROM=$BrandShortName will be uninstalled from the following location:
UN_CONFIRM_CLICK=Click Uninstall to continue.
UN_REMOVE_PROFILES=&Remove my ${BrandShortName} personal data and customizations
UN_REMOVE_PROFILES_DESC=This will permanently remove your bookmarks, saved passwords, cookies and customizations. You may wish to keep this information if you plan on installing another version of ${BrandShortName} in the future.
UN_REMOVE_PROFILES=&Remove my $BrandShortName personal data and customizations
UN_REMOVE_PROFILES_DESC=This will permanently remove your bookmarks, saved passwords, cookies and customizations. You may wish to keep this information if you plan on installing another version of $BrandShortName in the future.
STATUS_INSTALL_APP=Installing ${BrandShortName}...
STATUS_INSTALL_APP=Installing $BrandShortName...
STATUS_INSTALL_LANG=Installing Language Files (${AB_CD})...
STATUS_INSTALL_OPTIONAL=Installing Optional Components...
STATUS_UNINSTALL_MAIN=Uninstalling ${BrandShortName}...
STATUS_UNINSTALL_MAIN=Uninstalling $BrandShortName...
STATUS_CLEANUP=A Little Housekeeping...
# _DESC strings support approximately 65 characters per line.
# One line
OPTIONS_SUMMARY=Choose the type of setup you prefer, then click Next.
# One line
OPTION_STANDARD_DESC=${BrandShortName} will be installed with the most common options.
OPTION_STANDARD_DESC=$BrandShortName will be installed with the most common options.
OPTION_STANDARD_RADIO=&Standard
# One line
OPTION_COMPLETE_DESC=${BrandShortName} will be installed with all available options.
OPTION_COMPLETE_DESC=$BrandShortName will be installed with all available options.
OPTION_COMPLETE_RADIO=C&omplete
# Two lines
OPTION_CUSTOM_DESC=You may choose individual options to be installed. Recommended for experienced users.

Просмотреть файл

@ -44,54 +44,55 @@
# Accesskeys are defined by prefixing the letter that is to be used for the
# accesskey with an ampersand (e.g. &).
# Do not replace $(^NameDA) or $(^Name) with a custom string.
# Do not change $(^NameDA) to $(^Name) or $(^Name) to $(^NameDA). NameDA allows
# Name to contain an ampersand (e.g. DA stands for double ampersand) and
# prevents the letter following the ampersand being used as an accesskey.
# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
# custom string and always use the same one as used by the en-US files.
# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
# for double ampersand) and prevents the letter following the ampersand from
# being used as an accesskey.
# You can use \n to create a newline in the string but only when the string
# from en-US contains a \n.
MUI_TEXT_WELCOME_INFO_TITLE=Welcome to the $(^NameDA) Setup Wizard
MUI_TEXT_WELCOME_INFO_TEXT=This wizard will guide you through the installation of $(^NameDA).\n\nIt is recommended that you close all other applications before starting Setup. This will make it possible to update relevant system files without having to reboot your computer.\n\n$_CLICK
MUI_TEXT_WELCOME_INFO_TITLE=Welcome to the $BrandFullNameDA Setup Wizard
MUI_TEXT_WELCOME_INFO_TEXT=This wizard will guide you through the installation of $BrandFullNameDA.\n\nIt is recommended that you close all other applications before starting Setup. This will make it possible to update relevant system files without having to reboot your computer.\n\n$_CLICK
MUI_TEXT_LICENSE_TITLE=License Agreement
MUI_TEXT_LICENSE_SUBTITLE=Please review the license terms before installing $(^NameDA).
MUI_TEXT_LICENSE_SUBTITLE=Please review the license terms before installing $BrandFullNameDA.
MUI_INNERTEXT_LICENSE_TOP=Press Page Down to see the rest of the agreement.
MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX=If you accept the terms of the agreement, click the check box below. You must accept the agreement to install $(^NameDA). $_CLICK
MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS=If you accept the terms of the agreement, select the first option below. You must accept the agreement to install $(^NameDA). $_CLICK
MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX=If you accept the terms of the agreement, click the check box below. You must accept the agreement to install $BrandFullNameDA. $_CLICK
MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS=If you accept the terms of the agreement, select the first option below. You must accept the agreement to install $BrandFullNameDA. $_CLICK
MUI_TEXT_COMPONENTS_TITLE=Choose Components
MUI_TEXT_COMPONENTS_SUBTITLE=Choose which features of $(^NameDA) you want to install.
MUI_TEXT_COMPONENTS_SUBTITLE=Choose which features of $BrandFullNameDA you want to install.
MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE=Description
MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO=Position your mouse over a component to see its description.
MUI_TEXT_DIRECTORY_TITLE=Choose Install Location
MUI_TEXT_DIRECTORY_SUBTITLE=Choose the folder in which to install $(^NameDA).
MUI_TEXT_DIRECTORY_SUBTITLE=Choose the folder in which to install $BrandFullNameDA.
MUI_TEXT_INSTALLING_TITLE=Installing
MUI_TEXT_INSTALLING_SUBTITLE=Please wait while $(^NameDA) is being installed.
MUI_TEXT_INSTALLING_SUBTITLE=Please wait while $BrandFullNameDA is being installed.
MUI_TEXT_FINISH_TITLE=Installation Complete
MUI_TEXT_FINISH_SUBTITLE=Setup was completed successfully.
MUI_TEXT_ABORT_TITLE=Installation Aborted
MUI_TEXT_ABORT_SUBTITLE=Setup was not completed successfully.
MUI_BUTTONTEXT_FINISH=&Finish
MUI_TEXT_FINISH_INFO_TITLE=Completing the $(^NameDA) Setup Wizard
MUI_TEXT_FINISH_INFO_TEXT=$(^NameDA) has been installed on your computer.\n\nClick Finish to close this wizard.
MUI_TEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the installation of $(^NameDA). Do you want to reboot now?
MUI_TEXT_FINISH_INFO_TITLE=Completing the $BrandFullNameDA Setup Wizard
MUI_TEXT_FINISH_INFO_TEXT=$BrandFullNameDA has been installed on your computer.\n\nClick Finish to close this wizard.
MUI_TEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the installation of $BrandFullNameDA. Do you want to reboot now?
MUI_TEXT_FINISH_REBOOTNOW=Reboot now
MUI_TEXT_FINISH_REBOOTLATER=I want to manually reboot later
MUI_TEXT_STARTMENU_TITLE=Choose Start Menu Folder
MUI_TEXT_STARTMENU_SUBTITLE=Choose a Start Menu folder for the $(^NameDA) shortcuts.
MUI_TEXT_STARTMENU_SUBTITLE=Choose a Start Menu folder for the $BrandFullNameDA shortcuts.
MUI_INNERTEXT_STARTMENU_TOP=Select the Start Menu folder in which you would like to create the program's shortcuts. You can also enter a name to create a new folder.
MUI_TEXT_ABORTWARNING=Are you sure you want to quit $(^Name) Setup?
MUI_UNTEXT_WELCOME_INFO_TITLE=Welcome to the $(^NameDA) Uninstall Wizard
MUI_UNTEXT_WELCOME_INFO_TEXT=This wizard will guide you through the uninstallation of $(^NameDA).\n\nBefore starting the uninstallation, make sure $(^NameDA) is not running.\n\n$_CLICK
MUI_UNTEXT_CONFIRM_TITLE=Uninstall $(^NameDA)
MUI_UNTEXT_CONFIRM_SUBTITLE=Remove $(^NameDA) from your computer.
MUI_TEXT_ABORTWARNING=Are you sure you want to quit $BrandFullName Setup?
MUI_UNTEXT_WELCOME_INFO_TITLE=Welcome to the $BrandFullNameDA Uninstall Wizard
MUI_UNTEXT_WELCOME_INFO_TEXT=This wizard will guide you through the uninstallation of $BrandFullNameDA.\n\nBefore starting the uninstallation, make sure $BrandFullNameDA is not running.\n\n$_CLICK
MUI_UNTEXT_CONFIRM_TITLE=Uninstall $BrandFullNameDA
MUI_UNTEXT_CONFIRM_SUBTITLE=Remove $BrandFullNameDA from your computer.
MUI_UNTEXT_UNINSTALLING_TITLE=Uninstalling
MUI_UNTEXT_UNINSTALLING_SUBTITLE=Please wait while $(^NameDA) is being uninstalled.
MUI_UNTEXT_UNINSTALLING_SUBTITLE=Please wait while $BrandFullNameDA is being uninstalled.
MUI_UNTEXT_FINISH_TITLE=Uninstallation Complete
MUI_UNTEXT_FINISH_SUBTITLE=Uninstall was completed successfully.
MUI_UNTEXT_ABORT_TITLE=Uninstallation Aborted
MUI_UNTEXT_ABORT_SUBTITLE=Uninstall was not completed successfully.
MUI_UNTEXT_FINISH_INFO_TITLE=Completing the $(^NameDA) Uninstall Wizard
MUI_UNTEXT_FINISH_INFO_TEXT=$(^NameDA) has been uninstalled from your computer.\n\nClick Finish to close this wizard.
MUI_UNTEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the uninstallation of $(^NameDA). Do you want to reboot now?
MUI_UNTEXT_ABORTWARNING=Are you sure you want to quit $(^Name) Uninstall?
MUI_UNTEXT_FINISH_INFO_TITLE=Completing the $BrandFullNameDA Uninstall Wizard
MUI_UNTEXT_FINISH_INFO_TEXT=$BrandFullNameDA has been uninstalled from your computer.\n\nClick Finish to close this wizard.
MUI_UNTEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the uninstallation of $BrandFullNameDA. Do you want to reboot now?
MUI_UNTEXT_ABORTWARNING=Are you sure you want to quit $BrandFullName Uninstall?

Просмотреть файл

@ -41,11 +41,11 @@
# Accesskeys are defined by prefixing the letter that is to be used for the
# accesskey with an ampersand (e.g. &).
# Do not replace $(^NameDA) or $(^Name) with a custom string.
# Do not change $(^NameDA) to $(^Name) or $(^Name) to $(^NameDA). NameDA allows
# Name to contain an ampersand (e.g. DA stands for double ampersand) and
# prevents the letter following the ampersand being used as an accesskey.
# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
# custom string and always use the same one as used by the en-US files.
# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
# for double ampersand) and prevents the letter following the ampersand from
# being used as an accesskey.
# You can use \n to create a newline in the string but only when the string
# from en-US contains a \n.
@ -55,8 +55,8 @@
# and end of a strong enclose the add and additional double quote to the
# beginning and end of the string (e.g. ""This will include quotes"").
SetupCaption=$(^Name) Setup
UninstallCaption=$(^Name) Uninstall
SetupCaption=$BrandFullName Setup
UninstallCaption=$BrandFullName Uninstall
BackBtn=< &Back
NextBtn=&Next >
AcceptBtn=I &accept the terms in the License Agreement
@ -71,15 +71,15 @@ ClickNext=Click Next to continue.
ClickInstall=Click Install to start the installation.
ClickUninstall=Click Uninstall to start the uninstallation.
Completed=Completed
LicenseTextRB=Please review the license agreement before installing $(^NameDA). If you accept all terms of the agreement, select the first option below. $_CLICK
LicenseTextRB=Please review the license agreement before installing $BrandFullNameDA. If you accept all terms of the agreement, select the first option below. $_CLICK
ComponentsText=Check the components you want to install and uncheck the components you don't want to install. $_CLICK
ComponentsSubText2_NoInstTypes=Select components to install:
DirText=Setup will install $(^NameDA) in the following folder. To install in a different folder, click Browse and select another folder. $_CLICK
DirText=Setup will install $BrandFullNameDA in the following folder. To install in a different folder, click Browse and select another folder. $_CLICK
DirSubText=Destination Folder
DirBrowseText=Select the folder to install $(^NameDA) in:
DirBrowseText=Select the folder to install $BrandFullNameDA in:
SpaceAvailable="Space available: "
SpaceRequired="Space required: "
UninstallingText=$(^NameDA) will be uninstalled from the following folder. $_CLICK
UninstallingText=$BrandFullNameDA will be uninstalled from the following folder. $_CLICK
UninstallingSubText=Uninstalling from:
FileError=Error opening file for writing: \r\n\r\n$0\r\n\r\nClick Abort to stop the installation,\r\nRetry to try again, or\r\nIgnore to skip this file.
FileError_NoIgnore=Error opening file for writing: \r\n\r\n$0\r\n\r\nClick Retry to try again, or\r\nCancel to stop the installation.

Просмотреть файл

@ -0,0 +1,115 @@
#!/usr/bin/perl -w
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla Installer locale verification.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# Note: this was written using compare-locales.pl as a template.
$failure = 0;
sub readProperties
{
my ($file) = @_;
open PROPS, "<$file" || die ("Couldn't open file $file");
local $/ = undef;
my $contents = <PROPS>;
close PROPS;
$contents =~ s/\\$$//gm;
return $contents =~ /^\s*([^#!\r\n]*)$/gm;
}
sub checkProperties
{
my ($path) = @_;
my @invalid;
my @entities = readProperties("$gSourceDir/$path");
foreach my $entity (@entities) {
if ($entity =~ m|.*(\$\(\^Name\)).*| ||
$entity =~ m|.*(\$\(\^NameDA\)).*| ||
$entity =~ m|.*(\$\{BrandFullName\}).*| ||
$entity =~ m|.*(\$\{BrandShortName\}).*|) {
push @invalid, "$entity\n *** incorrect variable usage please refer to en-US";
}
}
if (@invalid) {
$failure = 1;
print "Properties in $path using invalid values:\n";
if (@invalid) {
print " In $gSourceDir: (change these in your localization)\n";
map { print " $_\n"; } @invalid;
}
}
}
sub checkDir
{
my ($path) = @_;
my (@entries);
opendir(DIR, "$gSourceDir/$path") ||
die ("Couldn't list $gSourceDir/$path");
@entries = grep(!(/^(\.|CVS)/ || /~$/), readdir(DIR));
closedir(DIR);
foreach my $file (@entries) {
if (-d "$gSourceDir/$path/$file") {
checkDir("$path/$file");
} else {
if ($file =~ /\.properties$/) {
checkProperties("$path/$file");
}
}
}
}
local ($gSourceDir) = @ARGV;
($gSourceDir) || die("Specify one directory to verify");
if (!-d $gSourceDir) {
die("Not a directory");
}
checkDir(".");
exit $failure;

Просмотреть файл

@ -324,47 +324,24 @@
WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Top "5"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Bottom "15"
StrCpy $R1 2
${If} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Type "checkbox"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Text "$(DOMI_TITLE)"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Left "15"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Right "-1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Top "20"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Bottom "30"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" State "1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Flags "GROUP"
IntOp $R1 $R1 + 1
${EndIf}
${If} ${FileExists} "$EXEDIR\optional\extensions\talkback@mozilla.org"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Type "checkbox"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Text "$(QFA_TITLE)"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Left "15"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Right "-1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Top "55"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Bottom "65"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" State "1"
IntOp $R1 $R1 + 1
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Type "checkbox"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Text "$(DOMI_TITLE)"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Left "15"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Right "-1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Top "20"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Bottom "30"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" State "1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Flags "GROUP"
${EndIf}
${If} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Type "label"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Text "$(DOMI_TEXT)"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Left "30"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Right "-1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Top "32"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Bottom "52"
IntOp $R1 $R1 + 1
${EndIf}
${If} ${FileExists} "$EXEDIR\optional\extensions\talkback@mozilla.org"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Type "label"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Text "$(QFA_TEXT)"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Left "30"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Right "-1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Top "67"
WriteINIStr "$PLUGINSDIR\components.ini" "Field $R1" Bottom "87"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 3" Type "label"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 3" Text "$(DOMI_TEXT)"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 3" Left "30"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 3" Right "-1"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 3" Top "32"
WriteINIStr "$PLUGINSDIR\components.ini" "Field 3" Bottom "52"
${EndIf}
!macroend
@ -1377,6 +1354,7 @@
StrCmp "$R5" "" +2 +1
WriteRegStr SHCTX "$R4\shell\open\command" "" "$R5"
!ifdef DDEApplication
StrCmp "$R9" "true" +1 +11
WriteRegStr SHCTX "$R4\shell\open\ddeexec" "" "$\"%1$\",,0,0,,,,"
WriteRegStr SHCTX "$R4\shell\open\ddeexec" "NoActivateHandler" ""
@ -1388,6 +1366,7 @@
; default handler and if this key exists IE's shell integration breaks.
DeleteRegKey HKLM "$R4\shell\open\ddeexec\ifexec"
DeleteRegKey HKCU "$R4\shell\open\ddeexec\ifexec"
!endif
ClearErrors
@ -3662,6 +3641,113 @@
################################################################################
# Macros for custom branding
/**
* Sets BrandFullName and / or BrandShortName to values provided in the specified
* ini file and defaults to BrandShortName and BrandFullName as defined in
* branding.nsi when the associated ini file entry is not specified.
*
* ini file format:
* [Branding]
* BrandFullName=Custom Full Name
* BrandShortName=Custom Short Name
*
* @param _PATH_TO_INI
* Path to the ini file.
*
* $R6 = return value from ReadINIStr
* $R7 = stores BrandShortName
* $R8 = stores BrandFullName
* $R9 = _PATH_TO_INI
*/
!macro SetBrandNameVars
!ifndef ${_MOZFUNC_UN}SetBrandNameVars
!define _MOZFUNC_UN_TMP ${_MOZFUNC_UN}
!insertmacro ${_MOZFUNC_UN_TMP}WordReplace
!undef _MOZFUNC_UN
!define _MOZFUNC_UN ${_MOZFUNC_UN_TMP}
!undef _MOZFUNC_UN_TMP
; Prevent declaring vars twice when the SetBrandNameVars macro is
; inserted into both the installer and uninstaller.
!ifndef SetBrandNameVars
Var BrandFullName
Var BrandFullNameDA
Var BrandShortName
!endif
!verbose push
!verbose ${_MOZFUNC_VERBOSE}
!define ${_MOZFUNC_UN}SetBrandNameVars "!insertmacro ${_MOZFUNC_UN}SetBrandNameVarsCall"
Function ${_MOZFUNC_UN}SetBrandNameVars
Exch $R9
Push $R8
Push $R7
Push $R6
StrCpy $R8 "${BrandFullName}"
StrCpy $R7 "${BrandShortName}"
IfFileExists "$R9" +1 finish
ClearErrors
ReadINIStr $R6 $R9 "Branding" "BrandFullName"
IfErrors +2 +1
StrCpy $R8 "$R6"
ClearErrors
ReadINIStr $R6 $R9 "Branding" "BrandShortName"
IfErrors +2 +1
StrCpy $R7 "$R6"
finish:
StrCpy $BrandFullName "$R8"
${${_MOZFUNC_UN}WordReplace} "$R8" "&" "&&" "+" $R8
StrCpy $BrandFullNameDA "$R8"
StrCpy $BrandShortName "$R7"
Pop $R6
Pop $R7
Pop $R8
Exch $R9
FunctionEnd
!verbose pop
!endif
!macroend
!macro SetBrandNameVarsCall _PATH_TO_INI
!verbose push
!verbose ${_MOZFUNC_VERBOSE}
Push "${_PATH_TO_INI}"
Call SetBrandNameVars
!verbose pop
!macroend
!macro un.SetBrandNameVarsCall _PATH_TO_INI
!verbose push
!verbose ${_MOZFUNC_VERBOSE}
Push "${_PATH_TO_INI}"
Call un.SetBrandNameVars
!verbose pop
!macroend
!macro un.SetBrandNameVars
!ifndef un.SetBrandNameVars
!verbose push
!verbose ${_MOZFUNC_VERBOSE}
!undef _MOZFUNC_UN
!define _MOZFUNC_UN "un."
!insertmacro SetBrandNameVars
!undef _MOZFUNC_UN
!define _MOZFUNC_UN
!verbose pop
!endif
!macroend
/**
* Replaces the wizard's header image with the one specified.
*