This repository contains custom WorldServer components developed using the WorldServer SDK (WSSDK), based on filters and other components available as part of the open source Okapi Framework.
Currently, this repository contains:
- Filters, including
- IDML
- JSON
- OpenXML (Word, PowerPoint, Excel, Visio)
- po/pot (gettext)
- XLIFF
- YAML
- MT Adapters, including
- Google MT (v2 API)
- Google AutoML Translation Service Adapter
- Google Cloud Translation (v3 API); This supports glossaries and AutoML generated language models.
- Microsoft Translator Hub
- Automatic Actions, including
- An automatic action to improve MT quality of HTML and XML content, when used with the Microsoft Translator Hub
- An automic action to import target segment data from source XLIFF files, for use when processing bilingual XLIFF as a source format
- Common code, including
- Classes for generating table-based config UIs
- Classes to simplify working with
WSAttribute
values
The code also includes a common framework for developing WorldServer filters
that adhere to the Okapi IFilter
interface, making it easy to add
additional components. Our intention is that over time, the set of
available components will grow to fill gaps in the WorldServer filter and
MT Adapter using open source code from Okapi.
Note: Google Cloud Translation (v3 API) is a native implementation and does not use an Okapi MT connector.
The project builds with maven. However, the code has a compile-time dependency
on the wssdk-server.jar
which SDL includes as part of its WorldServer
SDK distribution. This file is not normally accessible to Maven, so you
must install it in a local repository to use it.
The project pom.xml
references the dependency via invented artifact
and group IDs:
- Artifact ID:
com.idiominc.wssdk
- Group ID:
wssdk-server
- Version: We use the WS Build version, which for us is currently
11.4.0.5
.
To install your copy of wssdk-server.jar to your local maven repository, you can run this command from within your WSSDK distribution:
mvn install:install-file -DgroupId=com.idiominc.wssdk \
-DartifactId=wssdk-server \
-Dversion=11.4.0.5 \
-Dpackaging=jar \
-Dfile=lib/server/wssdk-server.jar
You can also use mvn deploy:deploy-file
to deploy to a shared repository
for convenience.
This code was developed and tested against the WSSDK 11.4 SDK, however it
should be expected to work on most 11.x versions of WorldServer, due to the stability of the WSSDK.
You will need to update the ws.version
property in the root pom.xml
to match the version you are
compiling against.
All Okapi releases since M36 require Java 8 or later, so these components must be deployed to a WorldServer instance running Java 8 or later.
Run mvn install
from the root directory to build all components.
If you are using an IDE, you should still build once from the command line
in order to generate the Version.java
file that is referenced from various
places in the code.
Components can be deployed individually or in bundles. All components
are deployed as JARs via the Management > Administration > Customization
screen in WorldServer. (WSSDK components are usually deployed as zip files,
but WorldServer doesn't care about the extension; a JAR file works fine, as
long as it contains a desc.xml
file, as these do.)
To deploy an individual components, upload any of:
filters/idml/target/okapi-ws-filters-idml-
release-deployable.jar
filters/json/target/okapi-ws-filters-json-
release-deployable.jar
filters/openxml/target/okapi-ws-filters-openxml-
release-deployable.jar
filters/po/target/okapi-ws-filters-po-
release-deployable.jar
filters/xliff/target/okapi-ws-filters-xliff-
release-deployable.jar
filters/yaml/target/okapi-ws-filters-yaml-
release-deployable.jar
mt/google/target/okapi-ws-mt-google-
release-deployable.jar
mt/googleautoml/target/okapi-ws-mt-googleautoml-
release-deployable.jar
mt/googlev3/target/okapi-ws-mt-google-v3-
release-deployable.jar
mt/mshub/target/okapi-ws-mt-mshub-
release-deployable.jar
autoactions/mshub/target/okapi-ws-autoactions-mshub-
release-deployable.jar
autoactions/xliff/target/okapi-ws-autoactions-xliff-
release-deployable.jar
To deploy all filters at once, upload:
filters/bundle/target/okapi-ws-filters-bundle-
release.jar
To deploy all components (all filters + MT Adapters + AAs), upload:
bundle/target/okapi-ws-components-bundle-
release.jar
These jars include all dependencies, including the necessary Okapi components.
Currently, the filter configurations are hard-coded internally to sensible defaults, with some options exposed through the WorldServer UI. Over time, we would like to improve this to expose the full configurability of the Okapi filters to WorldServer users.
Some MT Adapters offer no real configuration beyond the credentials to use. These are exposed through the the normal WorldServer MT Adapter configuration interface.
This project is a joint collaboration between Spartan Software, Inc. and Tableau Software. Additional support has been provided by VMware, Veritas, Vistatec, Intuit, and ebay.
All code is licensed under the MIT License.
Contributions from the community are welcome. Issues and pull requests should be opened through GitHub. Discussion can be directed to one of the two Okapi discussion lists:
- okapi-users, for user discussions
- okapi-devel, for developer discussions
Additional documentation can be found on the wiki.
Questions or comments can also be sent to opensource@spartansoftwareinc.com.