Skip to content

Online Patch Editor

@voerkai18n/patch provides functionality for online language pack editing, allowing users to edit language packs directly in the interface and submit them to the server.

Usage

Step 1: Installation

shell
npm install @voerkai18n/patch
shell
yarn add @voerkai18n/patch
shell
pnpm add @voerkai18n/patch

Step 2: Initialization

Modify the languages/index.{ts|js} file by adding the following code:

ts
import { VoerkaI18nScope } from "@voerkai18n/runtime"
import "@voerkai18n/patch"

const messages = {  ... }

export const i18nScope = new VoerkaI18nScope<TranslateComponentType,TransformResultType>({    
    //...
}) 
export const t = i18nScope.t
export const $t = i18nScope.$t
export const Translate = i18nScope.Translate
  • Simply importing import "@voerkai18n/patch" is sufficient.

Step 3: Activate Editing

After enabling @voerkai18n/patch, you can call the i18nScope.patch(<true/false>,options) method to activate editing.

ts
import { i18nScope } from "./languages"

i18nScope.patch()        // Activate editing       
i18nScope.patch(true)    // Activate editing
i18nScope.patch(false)   // Deactivate editing

After executing i18nScope.patch, translation components on the page will display a yellow background to indicate they are editable, as shown in the image below:

Note

You can directly execute VoerkaI18n.patch(<true/false>,options) in the console to activate editing.

Step 4: Submit Changes

When editing is complete, pressing Enter or losing focus will automatically submit the changes to the server.

  • Default submission address: /api/voerkai18n/patch
  • Submission data format:
json
{
    "id": "<messageId or paragraphId>",
    "language": "zh-CN",
    "message": "<modified message>",
    "scope": "<scopeId>"
}

Step 5: Update Patches

When the server receives the submitted patch, it needs to update the corresponding patch file.

This step needs to be implemented by the server itself.

Summary

Once completed, you can proceed with the normal online language patch process, see Language Patches for details.

Note

@voerkai18n/patch only works with Translate components and cannot be applied to content wrapped with the t function. This is because the translation component wraps the translation results with HTML tags.