accent/cli
2023-05-17 10:06:38 -04:00
..
bin Add cli in the repo to truly become a MONOREPO 🎉 2019-03-04 17:16:50 -05:00
examples Fix other flags override 2023-05-17 10:06:38 -04:00
src Fix other flags override 2023-05-17 10:06:38 -04:00
CHANGELOG.md Fix document path parsing for parent directory 2019-12-12 12:36:50 -05:00
LICENSE.md Add cli in the repo to truly become a MONOREPO 🎉 2019-03-04 17:16:50 -05:00
package-lock.json Bump cli to 0.13.2 2023-05-16 15:18:58 -04:00
package.json Bump cli to 0.13.2 2023-05-16 15:18:58 -04:00
README.md Bump cli to 0.13.2 2023-05-16 15:18:58 -04:00
tsconfig.json Update NodeJS deps for webapp and cli 2022-02-28 11:41:08 -05:00

Accent CLI

Version Build Status

Usage

$ npm install -g accent-cli
$ accent COMMAND
running command...
$ accent (-v|--version|version)
accent-cli/0.13.2 darwin-arm64 node-v16.15.1
$ accent --help [COMMAND]
USAGE
  $ accent COMMAND
...

Configuration

accent-cli reads from a accent.json file. The file should contain valid JSON representing the configuration of your project.

Example

{
  "apiUrl": "http://your.accent.instance",
  "apiKey": "2nziVSaa8yUJxLkwoZA",
  "files": [
    {
      "format": "json",
      "source": "localization/fr/*.json",
      "target": "localization/%slug%/%document_path%.json",
      "hooks": {
        "afterSync": "touch sync-done.txt"
      }
    }
  ]
}

Document configuration

Each operation section sync and addTranslations can contain the following object:

  • language: The identifier of the documents language
  • format: The format of the document
  • source: The path of the document. This can contain glob pattern (See [the node glob library] used as a dependancy (https://github.com/isaacs/node-glob))
  • target: Path of the target languages
  • hooks: List of hooks to be run

Hooks

Here is a list of available hooks. Those are self-explanatory

  • beforeSync
  • afterSync
  • beforeExport
  • afterExport

Commands

accent export

Export files from Accent and write them to your local filesystem

USAGE
  $ accent export

OPTIONS
  --config=config       [default: accent.json] Path to the config file
  --order-by=index|key  [default: index] Order of the keys
  --version=version     Fetch a specific version

EXAMPLES
  $ accent export
  $ accent export --order-by=key --version=build.myapp.com:0.12.345

See code: src/commands/export.ts

accent format

Format local files from server. Exit code is 1 if there are errors.

USAGE
  $ accent format

OPTIONS
  --config=config                   [default: accent.json] Path to the config file
  --order-by=index|key|-index|-key  [default: index] Order of the keys

EXAMPLE
  $ accent format

See code: src/commands/format.ts

accent help [COMMAND]

display help for accent

USAGE
  $ accent help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

accent jipt PSEUDOLANGUAGENAME

Export jipt files from Accent and write them to your local filesystem

USAGE
  $ accent jipt PSEUDOLANGUAGENAME

ARGUMENTS
  PSEUDOLANGUAGENAME  The pseudo language for in-place-translation-editing

OPTIONS
  --config=config  [default: accent.json] Path to the config file

EXAMPLE
  $ accent jipt

See code: src/commands/jipt.ts

accent lint

Lint local files and display errors if any. Exit code is 1 if there are errors.

USAGE
  $ accent lint

OPTIONS
  --config=config  [default: accent.json] Path to the config file

EXAMPLE
  $ accent lint

See code: src/commands/lint.ts

accent stats

Fetch stats from the API and display it beautifully

USAGE
  $ accent stats

OPTIONS
  --config=config  [default: accent.json] Path to the config file

EXAMPLE
  $ accent stats

See code: src/commands/stats.ts

accent sync

Sync files in Accent and write them to your local filesystem

USAGE
  $ accent sync

OPTIONS
  --add-translations                Add translations in Accent to help translators if you already have translated
                                    strings locally

  --config=config                   [default: accent.json] Path to the config file

  --dry-run                         Do not write the file from the export _after_ the operation

  --merge-type=smart|passive|force  [default: passive] Algorithm to use on existing strings when adding translation

  --order-by=index|key              [default: index] Will be used in the export call as the order of the keys

  --sync-type=smart|passive         [default: smart] Algorithm to use on existing strings when syncing the main language

  --version=version                 Sync a specific version, the tag needs to exists in Accent first

EXAMPLES
  $ accent sync
  $ accent sync --dry-run --sync-type=force
  $ accent sync --add-translations --merge-type=smart --order-key=key --version=v0.23

See code: src/commands/sync.ts

GitHub Actions

In addition to syncing the translations manually, you can add a GitHub Actions workflow to your project in order to automate the process.

Example

name: Accent

on:
  schedule:
    - cron: "0 4 * * *"

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - run: npm install -g accent-cli
      - run: accent sync --add-translations --merge-type=passive --order-by=key
      - uses: peter-evans/create-pull-request@v4
        with:
          add-paths: "*.json"
          commit-message: Update translations
          committer: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
          author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
          branch: accent
          draft: false
          delete-branch: true
          title: New translations are available to merge
          body: The translation files have been updated, feel free to merge this pull request after review.

In this example the translations will be synchronized daily at midnight eastern time. Using a pull request gives you the opportunity to review the changes before merging them in your codebase.

License

accent-cli is © 2019 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md file.

About Mirego

Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. Were a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.

We also love open-source software and we try to give back to the community as much as we can.