| .. | ||
| scripts | ||
| src | ||
| xliff | ||
| .env | ||
| .gitignore | ||
| Dockerfile | ||
| lit-localize.json | ||
| nginx.conf.template | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| sample.env.local | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| web-test-runner.config.mjs | ||
| webpack.config.js | ||
| webpack.prod.js | ||
| yarn.lock | ||
Browsertrix Cloud frontend
Quickstart
Copy environment variables from the sample file:
cp sample.env.local .env.local
Install dependencies:
yarn
Generate locale files:
yarn localize:build
Start the dev server:
yarn start
This will open localhost:9870 in a new tab in your default browser.
To develop against a local instance of the backend API,
follow instructions for deploying to a local Docker instance. Update API_BASE_URL and then restart the dev server.
Scripts
| yarn <name> | |
|---|---|
| start | runs app in development server, reloading on file changes | 
| test | runs tests in chromium with playwright | 
| build-dev | bundles app and outputs it in distdirectory | 
| build | bundles app app, optimized for production, and outputs it to dist | 
| lint | find and fix auto-fixable javascript errors | 
| format | formats js, html and css files | 
| localize:extract | generate XLIFF file to be translated | 
| localize:build | output a localized version of strings/templates | 
| env:sync | sync environment variables with API settings | 
Testing
Tests assertions are written in Chai.
To watch for file changes while running tests:
yarn test --watch
To run tests in multiple browsers:
yarn test --browsers chromium firefox webkit
Localization
Wrap text or templates in the msg helper to make them localizable:
// import from @lit/localize:
import { msg } from "@lit/localize";
// later, in the render function:
render() {
  return html`
    <button>
      ${msg("Click me")}
    </button>
  `
}
Entire templates can be wrapped as well:
render() {
  return msg(html`
    <p>Click the button</p>
    <button>Click me</button>
  `)
}
See: https://lit.dev/docs/localization/overview/#message-types
To add new languages:
- Add BCP 47 language tag to targetLocalesinlit-localize.json
- Run yarn localize:extractto generate new .xlf file in/xliff
- Provide .xlf file to translation team
- Replace .xlf file once translated
- Run yarn localize:buildbring translation intosrc
See: https://lit.dev/docs/localization/overview/#extracting-messages