bergamot-translator/wasm
Jerin Philip 8771078177
Basic HTML property testing for WebAssembly (#425)
Import
https://gist.github.com/jelmervdl/a4c8b6b92ad88a885e1cbd51c6ad4902 and
attach it to CI.  NodeJS-14 is failing on trying to use the WebAssembly
binary. So we use node-16 independently setup.  This paves way for more
complicated testing for WebAssembly bindings in the future.
2022-06-21 14:07:17 +01:00
..
bindings JS: Using supervised QE models for available language pairs (#378) 2022-03-15 15:55:28 +01:00
test_page JS: Fix swap button on test-page (#388) 2022-03-24 15:05:45 +00:00
CMakeLists.txt Upgrade emsdk to 3.1.8 (#414) 2022-04-20 00:39:32 +01:00
import-gemm-module.js JS/WASM: Re-enable importing optimized gemm module for (#336) 2022-02-07 16:55:31 +01:00
node-test.js Basic HTML property testing for WebAssembly (#425) 2022-06-21 14:07:17 +01:00
patch-artifacts-enable-wormhole.sh Improved wasm scripts and README (#128) 2021-05-04 10:18:45 +01:00
patch-artifacts-import-gemm-module.sh Import optimized gemm implementation (when available) for wasm target (#265) 2021-11-17 09:18:55 +01:00
project_version.js.in Modified wasm cmake file to include version information in built artifacts 2021-05-17 19:34:58 +02:00
README.md JS: Reuse Model registry from firefox-translation-models for test page (#377) 2022-03-14 18:05:22 +01:00

Using Bergamot Translator in JavaScript

All the instructions below are meant to run from the current directory.

Using JS APIs

Please refer to the file test_page/js/worker.js that demonstrates how to use the bergamot translator in JavaScript via a <script> tag.

Demo

  • Download bergamot model files required for translation

    Use following instructions to download model files (make sure that git-lfs is installed and initialized before running these instructions):

    cd test_page
    git clone --depth 1 --branch main --single-branch https://github.com/mozilla/firefox-translations-models/
    mkdir models
    cp -rf firefox-translations-models/registry.json models
    cp -rf firefox-translations-models/models/prod/* models
    cp -rf firefox-translations-models/models/dev/* models
    gunzip models/*/*
    
  • Start the test webserver (ensure you have the latest nodejs installed)

    cd test_page
    bash start_server.sh ../../build-wasm
    

    Provide the folder containing the wasm artifacts as the first argument of start_server.sh script (../../build-wasm in this case).

  • Open any of the browsers below

    • Firefox Nightly +87: make sure the following prefs are on (about:config)

      dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled = true
      javascript.options.wasm_simd = true
      javascript.options.wasm_simd_wormhole = true
      
    • Chrome Canary +90: start with the following argument

      --js-flags="--experimental-wasm-simd"
      
  • Browse to the following page:

    http://localhost:80
    
  • Perform translations:

    • Choose the source and target languages using From and To dropdowns.
    • Type a sentence to be translated in the From textbox.
    • See the result in the To textbox.