IMPORTANT NOTICE - Apr-30-2009:
This .NET implementation of Okapi is no longer actively developed.
Instead, a NEW JAVA IMPLEMENTATION IS
AVAILABLE and is being actively developed.
The material on this Web site is for archive propose. Some applications of the old .NET implementation
(e.g. Olifant) will be maintained to some degree until they have a replacement in the Java project.
The Okapi Framework is a set of interface specifications, format definitions,
components and applications that provides an environment to build interoperable
tools for the different steps of the translation and
The goal of the Okapi Framework is to allow tools developers and localizers
to build new localization processes or enhance existing ones to best meet their
needs, while preserving a level of compatibility and interoperability. It also
provides them with a way to share (and re-use) components across different
solutions. The project uses and promotes open standards, where they exist. For
the aspects where open standards are not defined yet, the framework offers its
own. The ultimate goal is to adopt the industry standards when they are defined
In short, the Okapi Framework aims at being a crucible where we forge
common components that can be used in any localization and translation
application, providing faster development time and better interoperability, but
still allowing for the diversity of solutions.
[Okapi is pronounced o-ka-py (hear
Here are some concrete examples of Okapi-made tools:
— A graphical user interface to launch any
Okapi-compliant utility. Utilizing Rainbow allows the users to have a simple
and common way to specify some of the options of all utilities. See a
screen shot of Rainbow.
- The Text
Extraction utility — A component
that make use of the various Okapi filters to extract translatable text from
different file formats and can produce RTF, XLIFF and other type of output
files. These files can then be used in different translation tools.
— A command-line program to launch any
Okapi-compliant utility. Tikal runs on both the Microsoft and the
Mono implementation of .NET,
allowing to use some of the utilities and filters on different operating
- The Properties Filter
— A component that
provide you a way to read and write java properties files, using a
programming interface common to the other Okapi filters. This simplify
enormously the development of programs or scripts to perform any type of
tasks on the translatable text of the files. Many
other formats are have also their own filter.
— A Windows application to create, edit and manage
translation memory file. It uses TMX as its main
format, but also supports a few others. Olifant supports multilingual
TMs, filtering, global find and replace function with regular expression,
and much more.
Quality Check utility — A component that allows you to
compare source and target text and search for generic differences, or
user-defined patterns. For example, it will find if there is the same number
%s' codes in the source and the target text, or if the
translation for a given source term occurs in the translated text, etc.
See the Components and
Applications pages for more examples.
The Okapi project is hosted on SourceForge.net,
a repository of open source software. Anyone is welcome to join and offer contributions. You can do this many different
ways. For example, by:
- using the various Okapi components and applications and reporting bugs and issues
- providing feedback, corrections and suggestions on the documentation and
- suggesting improvements to the existing material or recommending new developments
In addition, if you have the appropriate skills for some of the current
work being done, you can also participate directly in the development of Okapi
libraries, components, and applications, or in developing help and
documentation. For more information on this topic, please contact
the Okapi Framework administrator.
See also the Credits section for more information on
the contributions to Okapi.
The Okapi Framework is organized around the following parts:
- Interface Specifications
Okapi's components and applications communicate through several common API
sets: the interfaces. A few of them are defined as high-level specifications.
Implementing these interfaces allows you to seamlessly plug new components in
the overall framework.
- See the Interface Specifications page for more
- Format Specifications
Storing and exchanging data is an important part of the localization process.
Using open standards for as many formats as possible increases interoperability.
Whenever possible the Okapi Framework make use of existing standards.
- See the Formats Specifications page for more
While providing specifications is a good first step, providing
implementations of these specifications makes a more significant impact on
the use of the framework. This is why the Okapi Framework also includes a
growing set of components. Some are basic and low-level parts that can be
re-used when programming more high-level components, while others are
plug-ins that can be used directly in scripts or applications.
- See the Components page for more information.
Lastly, the Okapi Framework also provides end-user applications that can be
utilized out-of-the-box. These tools are making use of the Okapi components and provide ready-made platforms for plugging in your own components.
- See the Applications page for more
The material developed under the Okapi Framework project is licensed under
the GNU Lesser General Public License agreement (GNU LGPL). This
is one of the
licenses approved by the Free
In summary, the GNU Lesser General Public License is designed to ensure that
the code, as written by the author, must always remain free. However, the
library where the code is contained in may be used and linked by non-free
You can read the
of the license on the GNU Web site, and find more information on the
Wikipedia's article on LGPL.
Open source software can exist only because of the resources provided by some people and companies:
- ENLASO Corporation has donated a large portion of the .NET implementation
of the Okapi Framework, and
provides resources in all areas of the project.
- End-users (localization engineers, developers, translators, and project
managers), especially the one actively involved in the
Okapi Tools users group
mailing list, supply valuable feedback, ideas, bug
reports, and other
contributions to the project.
- Brooks Kline did the Okapi Framework logo.
Project's Team members are contributing time and ongoing efforts to the cause.