| Home > Application Framework > Messaging & Localization
StrataFrame contains a complete solution for user interface messaging and
localization. The framework provides an effective solution for storing
localized messages and text in a centralized location for easy retrieval
by the developer.
| |
Overview
The Messaging & Localization infrastructure is an integral part of the StrataFrame
Application Framework. It provides an efficient, user-friendly, and asthetically
pleasing alternative to the default method of presenting messages and localized
text to the end-user. The central data-store, themed messaged forms, and alert
boxes compose the StrataFrame Messaging & Localization infrastructure. Understanding StrataFrame Localization
StrataFrame provides a complete localization solution that can be used in every layer of the
framework. This includes labels, button text, broken rules, message boxes, and every other area
that text may be presented to the end-user.
There are two distinct localization types, a rich text message for the message box support, and
text values. A rich text message is presented to the end-user in a Message Box that replaces the
standard Windows Message Box interface. A text value is used for any text value that does not
need rich text formatting. This would include labels, broken rules, etc.
Centralized Message StorageMessage Store
StrataFrame localization provides support for XML and database integrated message storage.
Regardless of the storage type, centralized messages and text can be modified easily. All localization
messages are retrieved by a key which prevents any message information from being hard coded within
the application. Additionally, the same key is used regardless of language selection making it as
simple as translating the text behind the key to have multi-lingual support.
XML and Database Integrated Storage
Depending on the size of an application and how it will be distributed, there are several
options for message storage. For smaller applications and XML database can be used to store all
messages. As the message store grows, it may be necessary to integrate the messages into a database
such as SQL Server for a faster and more centralized store. Implementing the messaging structures
into a SQL Server database is as simple as a mouse click with the Database Deployment Toolkit.
Common Message Repository
Many times there are common messages that exist across multiple applications and projects. When this
occurs, the Common Repository can be used preventing the developer from creating a message over and over again.
Any localization project can include the messages within the Common Repository by setting a single preference
for the project. When set, all of the messages within the Common Repository will be included with the project
when exported just as though they were part of that localization project.
Integrated Language Selection DialogsAutomated Language Selection Display
When more than a single language is detected within the messaging database, a language
selection dialog will appear the first time an end-user starts the application. This is stored
in the same manner as the Connection String Management using an application key. In addition
to the application key, the language selection can be remembered by logged in Windows user as well.
This allows multiple end-users to use the same computer while running the applicaiton with
different language settings.
Programmatic Dialog Control
In addition to the automated language selection dialog, there may be a need to a user to change
their language selection. The language selection dialog can be programmatically displayed in a
single line of code. All localized controls will be automatically updated with the end-users selected
language settings.
No Satellite DLLsData Driven
Localization is generally implemented by including satellite DLLs with an application;
localized text is stored as resources within the satellite DLLs. StrataFrame does not
use this technique, and it is, therefore, not necessary to distribute additional DLLs.
Localized text is stored within the central message-store and uses a key-based system
that does not need resource numbers to retrieve the text. The keys used in the
localization interface are text and promote easier retention during use versus a
system using numbers.
Base Language Support
Additionally, by not separating each localized language into its own satellite DLL,
StrataFrame is able to use one language as a base for supplementary languages. This
flexibility enables the developer to only create text values and messages for the keys
that differ from the base language. The ability to use a base language is especially
beneficial for dialects as it prevents duplication of messages and text values within
the data-store. Example: English (United States) can be the base language for English
(UK) and only messages that differ in spelling must be entered into the data-store for the UK messages.
Translation ToolsCreate Translation Projects
There are many different options when translating messages for an application. Some
frameworks take the approach that requires the end-user to translate their own interface. Though
this can be done in StrataFrame, the preferred approach is to deploy the application
with the content and messages already translated. When taking this approach it is
necessary to translate the messages in a structured format, thus translation projects.
Translation projects can be created and have messages associated with each project. Additionally,
multiple langauge translations for the same messages can take place simultaneously.
Package Support for Translators
Once translation projects are created, they can be packaged up and sent to the translators in
several different formats. The localization interface provides a translation tool that allows
all messages within the translation project to be translated quickly and easily. The text that
needs to be translated appears at the top of the form and the translated text is entered at the bottom. This
translation tool application can be sent to the translators and installed using an install that comes
with StrataFrame for this very purpose. Once the translations have been made, they only need to
be imported back into the localization project and they are ready for use.
Rich Text MessagingLocalizable Messaging Interface
Even if localization is not required by an application, the developer can take full advantage
of the system to centralize messages within the application. The same data store that houses
the localized text also houses messages. Messages can be stored without a format or in Rich
Text Format. The message form used by StrataFrame is a replacement for the .NET MessageBox
and displays messages with RTF support. This allows the developer to present the end-user with
colorized text that can include hyperlinks, images, bullets and more. Replacement values are
also supported, allowing portions of each message to be dynamic. Messages are stored in the
same location as localized text and are also retrieved by key. All messages are localizable. Event ID Feature
All localized messages can be given a unique event ID. This event ID will appear within the
header of the message and is extremely beneficial from a support point of view. This approach
allows a document to be created that can be given to support staff and improve the communication
between the end-user, service technician, and developer. Simply leave the event ID blank to ignore
this feature; otherwise, the editor has an event ID generator to aid in the creation of the unique values.
Easy-To-Use Message and Text Value Editor
Even if localization is not required by an application, the developer can take full
advantage of the system to centralize messages within the application. The same data
store that houses the localized text also houses messages. Messages can be stored without
a format or in Rich Text Format. The message form used by StrataFrame is a replacement
for the .NET MessageBox and displays messages as RTF files. This allows the developer to
present the end-user with colorized text that can include hyperlinks, images, bullets and
more. Replacement values are also supported, allowing portions of each message to be
dynamic. Messages are stored in the same location as localized text and are also retrieved
by key. All messages are localizable.
|