mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-23 04:52:58 +00:00
39 lines
1.8 KiB
Markdown
39 lines
1.8 KiB
Markdown
# How to add translations
|
|
|
|
Self-hosted LiveSync owns its multilingual catalogue. Commonlib supplies only the typed English messages which its services request; the plug-in combines those keys with its application messages and injects the selected translator at each service composition root.
|
|
|
|
## Getting ready
|
|
|
|
1. Clone this repository.
|
|
|
|
```sh
|
|
git clone https://github.com/vrtmrz/obsidian-livesync
|
|
cd obsidian-livesync
|
|
npm ci
|
|
```
|
|
|
|
2. Create an `ls-debug` directory below the test Vault's `.obsidian` directory, for example `.obsidian/ls-debug`.
|
|
|
|
## Add translations for existing messages
|
|
|
|
1. Edit the human-readable YAML files under `src/common/messagesYAML/`.
|
|
2. Regenerate the JSON and TypeScript resources.
|
|
|
|
```sh
|
|
npm run i18n:bake
|
|
```
|
|
|
|
3. Build the plug-in in development mode, install it in the test Vault, and run Self-hosted LiveSync.
|
|
4. Review any `missing-translation-yyyy-mm-dd.jsonl` file written below `.obsidian/ls-debug`, and add the required translations to the YAML catalogue.
|
|
5. Bake and build again, then confirm the displayed text and placeholder substitution in the relevant workflow.
|
|
|
|
Commit the edited YAML and all regenerated JSON and TypeScript resources together.
|
|
|
|
## Make a message translatable
|
|
|
|
1. Add its canonical English entry and translations to `src/common/messagesYAML/`.
|
|
2. Replace the source literal with `$msg()` or another existing translation helper, using the English catalogue key as the typed contract.
|
|
3. Run `npm run i18n:bake`, build the plug-in, and verify the affected workflow.
|
|
|
|
When a new message belongs to Commonlib rather than the application, add its canonical English definition and key type in Commonlib first. Add any available translations to LiveSync when consuming that package; untranslated languages use Commonlib's canonical English fallback.
|