1.0.3 • Published 12 months ago

weblate-sync-tool v1.0.3

Weekly downloads
-
License
ISC
Repository
github
Last release
12 months ago

Weblate Sync Locales

A tool to synchronize translation files with Weblate.

Installation

npm install weblate-sync-tool

or

yarn add weblate-sync-tool

Config sample

{
  "weblateApiKey": "your_api_key",
  "weblateProjectUrl": "https://weblate.example.com/api",
  "weblateProject": "my-project",
  "weblateComponent": "my-component",
  "supportedLanguages": ["en", "fr"],
  "translationFunction": "t"
  "sourceDirectory": "src",
  "localesDirectory": "src/locales",
  "temporaryDirectory": "locales_tmp",
}

Configuration Parameters

  • weblateApiKey: Your Weblate API key. This is required to authenticate with the Weblate server.
  • weblateProjectUrl: The base URL of your Weblate project API.
  • weblateProject: The name of your Weblate project.
  • weblateComponent: The name of the component within your Weblate project.
  • supportedLanguages: An array of languages you want to synchronize.
  • translationFunction: The name of the function used for translations in your code (e.g., t).
  • sourceDirectory: The root directory of your project where source files are located.
  • localesDirectory: The local path where translation files are stored.
  • temporaryDirectory: A temporary directory to store intermediate files. This directory will be cleaned up after the process completes.

How to use it

mkdir -p src/locales
touch src/locales/template.tpl

Template

You need to create a locales folder in your poject and create a template.tpl file. The part with #MESSAGES# will be replaced by the translations.

const translations = {
  messages: "#MESSAGES#"
};

export default translations;

Create a runtfile

touch runfile.js
const weblateSyncLocal = require('weblate-sync-tool');

const config = {
  weblateApiKey: 'MY KEY',
  weblateProjectUrl: 'https://weblate.example.com/api',
  weblateProject: 'my-project',
  weblateComponent: 'my-component',
  supportedLanguages: ['en', 'fr'],
  translationFunction: 't',
  sourceDirectory: 'src',
  localesDirectory: 'src/locales',
  temporaryDirectory: 'locales_tmp',
};

weblateSyncLocal(config);

Create a new script in your package.json

"scripts": {
  "sync:locales": "node runfile.js"
}

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago