User Interface Language
By default, PortalGuard ships with only a US English language file. All user interface messages/text are completely contained within the pg_custom.js file (found in C:\inetpub\PortalGuard\_layouts\images\PG\js) and this file is meant to be modified directly by customers. To support multiple languages, you must make duplicate copies of this file and translate the string contents to your target language(s). Your end users will have the ability to choose their preferred language from a drop-down list right on the PortalGuard login screen:
As of PortalGuard version 126.96.36.199 (January 2015), multiple language support still only extends to ISO-8859-1/ISO Latin 1 languages. This limitation is because the PortalGuard serverrsquo;s back-end does not yet fully support Unicode/UTF-8 encoding. This means character sets amp; languages such as Shift JIS (Japanese), Simplified Chinese and Traditional Chinese are not supported by PortalGuard regardless of any steps performed in this section.
Language Resolution Logic
Multiple things are checked to determine what language the PortalGuard UI should display. The following items are ranked in order from highest priority to lowest.
1) If the userrsquo;s browser sends a PGLang cookie with a proper locale value (e.g. ldquo;fr-FRrdquo;), then it alone determines the display language. PortalGuard browser screens will display a drop-down list of available languages that the user can choose from. Choosing a language from this drop-down list sets a cookie that persists across restarts of the web browser.
2) If the userrsquo;s browser sends an Accept-Language header in the request to the PortalGuard web server, the first value will determine the PortalGuard display language.
3) As the final stopgap, PortalGuardrsquo;s web.config contains the list of all supported languages as configured by your administrator. For this configuration to be valid, one of the languages must be designated as the default to be used if no other methods determine the display language.
Enabling Multiple Language Support
Please use the following steps to enable multiple language support on your PortalGuard server:
1) In inetpub\PortalGuard\_layouts\images\PG\js, rename pg_custom.js to pg_custom.en-US.js. When multiple language support is enabled, the ldquo;pg_custom.jsrdquo; file is no longer used.
2) Create a copy of pg_custom.en-US.js for each language you need to support. These files must be saved in the same ldquo;jsrdquo; folder and the name of each should be in the following format:
pg_custom.[2 letter language code]-[2 letter region code].js
3) Translate the string contents of each of the files to the target languages.
4) In InetPub\PortalGuard, edit the web.config file in a text editor as an administrator.
5) Find the lt;LanguageSupportgt; element near the bottom of the file and remove the HTML comments that precede it (ldquo;lt;!--") and that follow the lt;/LanguageSupportgt; closing tag (ldquo;--gt;"). The text to remove are shown in red highlight in the screenshot below:
6) For each language you want to support, create an lt;addgt; element with the following attributes (please note, these attribute names *must* be all lowercase):
a. lang ndash; The locale that matches the files you created in step #2.
b. display ndash; The value of the language that will be shown in the Language drop-down list seen by end-users on the PortalGuard UI.
c. default ndash; This attribute must only be present on the one language that you want to be the default. When present, the value of this attribute must be ldquo;truerdquo;.
7) Run ldquo;iisresetrdquo; from an administrative Command Prompt. Please note that *ALL* changes to these web.config settings are cached and require ldquo;iisresetrdquo; to be run before they take effect. This includes both enabling and disabling multiple language support.
Accessing the PortalGuard website should now show a drop-down list of enabled languages in the upper right corner where users can manually choose their preferred language. The corresponding copy of pg_custom.[locale].js will automatically be loaded based on the steps described in the Language Resolution Logic section.
Localizing Challenge Question Text
PortalGuard stores challenge question text in its security policies which are only configurable by administrators. This text has typically come directly from the security policy and is displayed to end-users, but this does not work for multiple languages since there is only a single security policy applied to a user, irrespective of the UI language. Here are the steps for localizing challenge questions for each language you must support:
1) Using PG_Config.exe, continue to define all challenge question text (both ldquo;optionalrdquo; and ldquo;mandatoryrdquo;) in English or your default language. The challenge question text can be found in the following tabs of PortalGuardrsquo;s security policies:
Auth Methods -gt; Q/A -gt; Optional Questions
Auth Methods -gt; Q/A -gt; Mandatory Questions
2) Copy the question text in your base language into a temporary text file. You can double-click the question in PG_Config to edit/copy it. It is imperative that this copy have no typographical errors in it.
3) Perform step 2 for all security policies and remove any redundant questions that appear in more than one policy.
4) Open pg_custom.en-US.js (or your default) in a text editor and search for the function named:
This function will only appear once in each localized copy of pg_custom.js. It contains the mapping for each question you have defined in all your PortalGuard security policies and the associated translation. This function will contain a line for each question with the left side being the question text from the security policy and the right side being the translation for the language:
5) For English (or your default language), the left and right side of each line will contain the same value:
6) Save the changes and refresh your browser to see the newly changed question text.
7) Edit each language-specific copy of pg_custom, make the same changes and save them. Again, the left-hand values will be the same across all files. Only the right-hand string values will need to be changed to match each filersquo;s associated language. Below is an example in German:
If you do not see the updated questions, be sure to manually refresh the browser when viewing the PortalGuard page or clear the browser cache.
Phone Enrollment ndash; Default Country
The PortalGuard Configuration utility is used to set PortalGuardrsquo;s ldquo;homerdquo; country. This is used to determine if national IDD/exit codes and international dialing codes should be used when calling or texting a userrsquo;s phone.
When users are prompted to enroll a primary or backup telephone, a drop-down control containing all the supported countries is available for them to choose their country. The list of countries as well as the one selected by default is controlled by the _PG_Countries.xml file. This is located in the ldquo;Program Files\PistolStar\PortalGuard\Policiesrdquo; folder. PortalGuard ships with the ldquo;United Statesrdquo; as the default country. To change this default, perform the following steps:
1. Open the ldquo;_PG_Countries.xmlrdquo; file in a text editor and search for the text ldquo;united statesrdquo;. Yoursquo;ll see the element for the US has a default=rdquo;1rdquo; attribute as highlighted below:
2. To make ldquo;United Kingdomrdquo; the default country for users during phone enrollment, remove the ldquo;defaultrdquo; attribute from the US element and add it to the United Kingdom element as shown below:
3. Close the file editor and save the changes
4. Lastly, restart PortalGuard (e.g. using ldquo;iisresetrdquo; on an IIS server) and refresh the web browser for these changes to take effect.