Localizing ACT! plug-ins

ACT! LDK

Localizing ACT! plug-ins

In the ACT! localization files area, auxiliary files for each locale are kept in folders that are canonically named for the version and target language. The Spanish file set for ACT! 8.02, for example, is:

\\sagelocobuild1\Resources\802_LDK\ES\ES802

Each such folder contains a Visual Studio solution (here ES802.sln) that presents the auxiliary file set as a series of projects. These projects organize the files into related sets, such as print templates. Projects IEPluginProj contains the files for the Internet Explorer plug-in, and OfficePluginProj contains the files for the MS Office plugin.

Plug-in localization does not take place in the TTKs. Any references to plug-in code in the current set of TTKs should be removed. In releases after Mercury, the TTK mechanism will be extended to include these plug-ins in a special TTK of their own. These instructions hold until then.

Make all localization changes directly in the source as given below. Do not compile source in this project. These files will be included with the other projects in this solution, then compiled as part of the localization build. Start all localizations by copying the ENU base for the current Mercury version, which will contain the original English strings to be manually translated, then changing the version and target language names to form a new aux files tree for the locale. Because the file links in the solution are relative, no changes to the solution and project structure need be made unless files are added or subtracted for a new version.

Localization Changes to Plugins Source

Changes are indicated are indicated:

  • In .cs files by comments of the form // Example Localize -->
  • In .resx files by comments of the form <!-- Example Localize -->

All modifiable source files for each plugin are included in these projects, but not all source contains changes. The changes in each file are given below, it is good practice to check for new occurrences of a comment containing Example. This comment precedes each set of strings to be translated.

Project IEPluginProj:

CAttachFile.cs

const string REMOTING_CONNECT_ERROR = “Translation”

const string MENU_TEXT = “Translation”

const string MENU_STATUS_BAR = “Translation”

const string BUTTON_TEXT = “Translation”

CAttachFile.resx

Value for <data name="DEFAULT_VISIBLE">

Value for <data name="MENU_TEXT">

Value for <data name="MENU_STATUS_BAR">

Value for <data name="BUTTON_TEXT">

Value for <data name="REMOTING_CONNECT_ERROR">

Project OfficePluginProj:

AddTemplateFieldDialog.cs

ret = “Translation”

ret = “Translation”

ret = “Translation”

AddTemplateFieldDialog.resx

Value for <data name="label1.Text">

Value for <data name="add.Text">

Value for <data name="close.Text">

Value for <data name="$this.Text">

Connect.cs

Constants.cs

ExcelAdapter.cs

ExcelAdapter.resx

Value for <data name="MENU_ACT_CAPTION">

Value for <data name="MENU_ATTACH_CAPTION">

Value for <data name="MapToContactButtonCaption">

Value for <data name="MapToCompanyButtonCaption">

Value for <data name="MapToGroupButtonCaption">

Value for <data name="RefreshButtonCaption">

Value for <data name="CouldNotConnectMessage">

Value for <data name="MapToActMessageTitle">

Value for <data name="CouldNotConnectUnknownMessage">

Value for <data name="CanNotAddPermissionMessage">

Value for <data name="SerializationExceptionMessage">

Value for <data name="MapFieldsContactLabelText">

Value for <data name="MapFieldsCompanyLabelText">

Value for <data name="MapFieldsGroupLabelText">

Value for <data name="MESSAGE_DOC_NOT_SAVED">

Value for <data name="MESSAGE_TITLE_TEXT">

Value for <data name="MESSAGE_WORKBOOK_ATTACHED">

IMFieldsDialogHost.cs

LibraryTabConnect.cs

MapFieldsDialog.cs

MapFieldsDialog.resx

OfficeAdapterBase.cs

attachButtonItem.Caption = “Translation”

OfficeAdapterBase.resx

Value for <data name="MENU_ACT_CAPTION">

Value for <data name="MENU_ATTACH_CAPTION">

OfficeAdapterFactory.cs

OfficeConnect.cs

if ( string.Compare( installTarget, “Translation”, true ) == 0 )

PowerPointAdapter.cs

PowerPointAdapter.resx

Value for <data name="MESSAGE_TITLE_TEXT">

Value for <data name="DOC_NOT_SAVED_MESSAGE">

Value for <data name="CouldNotConnectMessage">

Value for <data name="CouldNotConnectUnknownMessage">

Value for <data name="CanNotAddPermissionMessage">