Author:
    Creation:2024-08-11Last update:2025-11-22

    рд╢рдмреНрджрдХреЛрд╢ рднрд░реЗрдВ / рдСрдбрд┐рдЯ рдХрд░реЗрдВ / рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ

    bash
    npx intlayer fill
    

    рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЧрд╛рдпрдм рдЕрдиреБрд╡рд╛рдж, рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЕрд╕рдВрдЧрддрд┐рдпрд╛рдВ, рдпрд╛ рдкреНрд░рдХрд╛рд░ рдЕрд╕рдВрдЧрддрддрд╛рдПрдВред рдпрджрд┐ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкрд╛рддрд╛ рд╣реИ, рддреЛ intlayer fill рдЖрдкрдХреЗ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рд╕реБрд╕рдВрдЧрдд рдФрд░ рдкреВрд░реНрдг рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпрд╛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред

    рдореБрдЦреНрдп рдмрд┐рдВрджреБ:

    • рдмрдбрд╝реА JSON рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ chunks рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ AI рдореЙрдбрд▓ рдХреЗ context window рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд░рд╣рд╛ рдЬрд╛ рд╕рдХреЗред
    • рдпрджрд┐ рдЖрдЙрдЯрдкреБрдЯ format рдЧрд▓рдд рд╣реИ рддреЛ translation рдХреЛ retry рдХрд░рддрд╛ рд╣реИред
    • рдмреЗрд╣рддрд░ translation accuracy рдХреЗ рд▓рд┐рдП application рдФрд░ file-specific context рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред
    • рдореМрдЬреВрджрд╛ translations рдХреЛ preserve рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ overwrite рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
    • Speed рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП queue system рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ files, chunks, рдФрд░ locales рдХреЛ parallel рдореЗрдВ process рдХрд░рддрд╛ рд╣реИред

    рдЙрдкрдирд╛рдо:

    • npx intlayer dictionaries fill
    • npx intlayer dictionary fill
    • npx intlayer dic fill

    рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг:

    bash
    npx intlayer fill
    
    Preparing Intlayer (v7.5.14)
    Done 76ms
    @intlayer/ai found - Run process locally
    Provider: (default) - Model: (default) - API Key: тЬУ
    Affected dictionary keys for processing: app, comp-test, hello-world, lang-switcher
     - [comp-test]      No locales to fill, Skipping comp-test.content.json
     - [app]            Processing app.content.tsx
     - [app]            Filling missing metadata for app.content.tsx
     - [hello-world]    Processing test.content.ts
     - [hello-world]   [French (fr)]      Preparing test.content.ts
     - [hello-world]   [Spanish (es)]     Preparing test.content.ts
     - [lang-switcher]  Processing langSwitcher.content.ts
     - [lang-switcher]  Filling missing metadata for langSwitcher.content.ts
     - [hello-world]    Translation completed successfully for test.content.ts
     - [lang-switcher] [Spanish (es)]     Preparing langSwitcher.content.ts
     - [app]           [French (fr)]      Preparing app.content.tsx
     - [app]           [Spanish (es)]     Preparing app.content.tsx
     - [hello-world]    Content declaration written to test.content.ts
     - [app]            Translation completed successfully for app.content.tsx
     - [app]            Content declaration written to app.content.tsx
     - [lang-switcher]  Translation completed successfully for langSwitcher.content.ts
     - [lang-switcher]  Content declaration written to langSwitcher.content.ts
    

    рддрд░реНрдХ:

    рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреА рд╡рд┐рдХрд▓реНрдк:

    • -f, --file [files...]: рдСрдбрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреАред рдпрджрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯрдЕрдк рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рдЦреЛрдЬреА рдЧрдИ *.content.{ts,js,mjs,cjs,tsx,jsx,json} рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдСрдбрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer dictionary fill -f src/home/app.content.ts
    • -k, --keys [keys...]: рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВред рдпрджрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рднреА рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдСрдбрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer dictionary fill -k key1 key2
    • --key [keys...]: рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ (alias --keys рдХреЗ рд▓рд┐рдП)ред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer dictionary fill --key key1 key2
    • --excluded-keys [excludedKeys...]: рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВред рдпрджрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рднреА рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдСрдбрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer dictionary fill --excluded-keys key1 key2
    • --excluded-key [excludedKeys...]: рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ (alias --excluded-keys рдХреЗ рд▓рд┐рдП)ред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer dictionary fill --excluded-key key1 key2
    • --path-filter [pathFilters...]: рдлрд╝рд╛рдЗрд▓ рдкрдереЛрдВ рдХреЗ рд▓рд┐рдП рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer dictionary fill --path-filter "src/home/**"

    рдПрдВрдЯреНрд░реА рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдХрд▓реНрдк:

    • --source-locale [sourceLocale]: рд╕реНрд░реЛрдд рд▓реЛрдХрд▓ рдЬрд┐рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

    • --output-locales [outputLocales...]: рд▓рдХреНрд╖рд┐рдд рд▓реЛрдХрд▓ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд╕реНрд░реЛрдд рд▓реЛрдХрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд▓реЛрдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

    • --mode [mode]: рдЕрдиреБрд╡рд╛рдж рдореЛрдб: complete, reviewред рдбрд┐рдлрд╝реЙрд▓реНрдЯ complete рд╣реИред complete рд╕рднреА рдЧрд╛рдпрдм рд╕рд╛рдордЧреНрд░реА рдХреЛ рднрд░ рджреЗрдЧрд╛, review рдЧрд╛рдпрдм рд╕рд╛рдордЧреНрд░реА рдХреЛ рднрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореМрдЬреВрджрд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ред

    Git рд╡рд┐рдХрд▓реНрдк:

    • --git-diff: рдХреЗрд╡рд▓ рдЙрди рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдкрд░ рдЪрд▓рд╛рдПрдВ рдЬрд┐рдирдореЗрдВ рдмреЗрд╕ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ origin/main) рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: HEAD) рддрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
    • --git-diff-base: git diff рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ origin/main)ред
    • --git-diff-current: git diff рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: HEAD)ред
    • --uncommitted: рдмрд┐рдирд╛ рдХрдорд┐рдЯ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
    • --unpushed: рдмрд┐рдирд╛ рдкреБрд╢ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
    • --untracked: рдмрд┐рдирд╛ рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer doc translate --git-diff --git-diff-base origin/main --git-diff-current HEAD
      рдЙрджрд╛рд╣рд░рдг: npx intlayer doc translate --uncommitted --unpushed --untracked

    AI рд╡рд┐рдХрд▓реНрдк:

    • --model [model]: рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ AI рдореЙрдбрд▓ (рдЬреИрд╕реЗ, gpt-3.5-turbo)ред
    • --provider [provider]: рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ AI рдкреНрд░рджрд╛рддрд╛ред
    • --temperature [temperature]: AI рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рддрд╛рдкрдорд╛рди рд╕реЗрдЯрд┐рдВрдЧред
    • --api-key [apiKey]: AI рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА API рдХреБрдВрдЬреА рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
    • --custom-prompt [prompt]: рдЕрдкрдиреЗ рдЕрдиреБрд╡рд╛рдж рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
    • --application-context [applicationContext]: AI рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
    • --data-serialization [dataSerialization]: Intlayer рдХреА AI рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдбреЗрдЯрд╛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдкреНрд░рд╛рд░реВрдкред рд╡рд┐рдХрд▓реНрдк: json (рдорд╛рдирдХ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп), toon (рдХрдо рдЯреЛрдХрди, рдХрдо рд╕реБрд╕рдВрдЧрдд)ред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer fill --model gpt-3.5-turbo --provider openai --temperature 0.5 --api-key sk-1234567890 --application-context "My application is a cat store"

      рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╡рд┐рдХрд▓реНрдк:

    • --env: рдкрд░реНрдпрд╛рд╡рд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (рдЬреИрд╕реЗ, development, production)ред
    • --env-file [envFile]: рдЪрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдкрд░реНрдпрд╛рд╡рд░рдг рдлрд╝рд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer fill --env-file .env.production.local
      рдЙрджрд╛рд╣рд░рдг: npx intlayer fill --env production

    рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк:

    • --base-dir: рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer fill --base-dir ./src
    • --no-cache: рдХреИрд╢ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред

      рдЙрджрд╛рд╣рд░рдг: npx intlayer build --no-cache

    рддреИрдпрд╛рд░реА рд╡рд┐рдХрд▓реНрдк:

    • --build: рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рдХреНрд╢рдирд░реАрдЬрд╝ рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдЕрджреНрдпрддрд┐рдд рд░рд╣реЗред True рд╕реЗ рдмрд┐рд▓реНрдб рдЬрд╝рдмрд░рджрд╕реНрддреА рд╣реЛрдЧрд╛, false рд╕реЗ рдмрд┐рд▓реНрдб рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, undefined рд╕реЗ рдмрд┐рд▓реНрдб рдХреЗ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред

    • --skip-metadata: рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд╛рдпрдм рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рд╡рд┐рд╡рд░рдг, рд╢реАрд░реНрд╖рдХ, рдЯреИрдЧ) рднрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред

    рд▓реЙрдЧ рд╡рд┐рдХрд▓реНрдк:

    • --verbose: рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рд▓реЙрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред (CLI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ true)

    рдЙрджрд╛рд╣рд░рдг:

    bash
    npx intlayer fill --file src/home/*.content.ts --source-locale en --output-locales fr es --model gpt-3.5-turbo
    

    рдпрд╣ рдХрдорд╛рдВрдб GPT-3.5 рдЯрд░реНрдмреЛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП src/home/ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕рднреА рдХрдВрдЯреЗрдВрдЯ рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╕реЗ рдлреНрд░реЗрдВрдЪ рдФрд░ рд╕реНрдкреЗрдирд┐рд╢ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдЧрд╛ред