npm.io
0.0.4 • Published 5 years ago

@shopify/i18n-as

Licence
MIT
Version
0.0.4
Deps
5
Size
92 kB
Vulns
0
Weekly
0

i18n-as

About this project | How to use this project | Development

About this project

i18n-as is a localization package for AssemblyScript projects. It works by using a compiler transform to make translations locally accessible within the WebAssembly binary.

How to use this project

Requirements
  • Node is installed locally.
Installation
# npm
$ npm install @shopify/i18n-as --save

# yarn
$ yarn add @shopify/i18n-as
Using the Transform

Since i18n-as uses a compiler transform to read and parse translations, you need to tell the compiler to use the transform. Options:

  1. During all asc calls, add --transform @shopify/i18n-as/dist/transform.js
    • Ex. asc entryFile.ts --transform @shopify/i18n-as/dist/transform.js
    • If you use additional projects that compile your code like as-pect, ensure those are configured to use this transform as well.
  2. Add a transform option to your asconfig.json file.
// asconfig.json
{
  ...
  "options": {
    ...
    "transform": "@shopify/i18n-as/dist/transform.js"
  }
}
Configuration

By default, i18n-as will look for locale files in the /locales folder at the project root. To configure this location, you can optionally add a i18n.config.json file:

// i18n.config.json
{
  "localeFilesDirectory": "/path/to/your/folder"
}
Locale Files

Locale files should be written in JSON files and abide by the following folder structure:

.
├── assembly/
├── locales/
│   ├── en.json
│   └── fr.json
|   └── <locale>.json
└── i18n.config.json
// locales/<locale>.json
{
  "my translation key": "some translated value",
  "another key: "another value"
}
AssemblyScript example
// locales/fr.json
{
  "hello": "bonjour",
}
// locales/es.json
{
  "hello": "hola",
}
// index.ts
import { translate } from '@shopify/i18n-as'

translate("fr", "hello") // => "bonjour"
translate("es", "hello") // => "hola"
translate("en", "hello") // => defaults to the key, "hello"
More Documentation

Additional documentation can be found in the wiki.

Development

Quick Start
$ git clone https://github.com/Shopify/i18n-as.git
$ cd i18n-as
$ npm install
$ npm run test
Commands
  • npm run asbuild - build the WebAssembly binary.
  • npm run build - compile the TypeScript transform into JavaScript.
  • npm run test - run the tests.