VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

Translate Like a Pro | 11470 — i18next-cli Localization: Key Extraction, Namespaces, Status, Lint, Type Safety and CI QA

How can a JavaScript or React team find untranslated interface text, extract i18next keys, manage locale files and catch broken interpolation before release? The current i18next-cli toolchain brings extraction, translation status, linting, synchronization and type generation into a single command-line workflow. This tutorial explains what each operation does, the decisions it cannot make for translators and the tests needed to protect multilingual users.

Internationalization failures often begin as ordinary development changes. A developer adds a hardcoded button, renames a translation key, concatenates two translated phrases or changes a placeholder without updating every language. A build may succeed while one locale silently falls back to English or displays an awkward sentence. A professional workflow makes such changes visible early, but it still needs bilingual review, suitable text design and careful handling of dynamically constructed keys.

We will work through i18next-cli configuration, source-key extraction, namespaces, key stability, translation status, locale synchronization, lint rules, plural forms, interpolation contracts, TypeScript typings, branch-specific updates and continuous integration. The guide is for software engineers, localization managers, technical writers and translators maintaining multilingual web applications and component libraries.

  • Set a primary language, supported locales and an explicit namespace strategy.
  • Extract literal translation keys from supported source files; use plugins for other file types.
  • Check missing and unused keys without assuming static analysis sees every dynamic key.
  • Treat target-language plural categories and placeholder contracts as first-class requirements.
  • Review any file-changing synchronization or extraction step in version control.
  • Use linting for hardcoded JSX strings and broken interpolation.
  • Generate and validate TypeScript translation types where appropriate.
  • Validate fallback content, route-level loading and language switching in the browser.
  • Make CI fail on approved blocking defects, while retaining bilingual content review.

A practical starting point

This article focuses on i18next-cli as a specific localization-quality workflow, not as a general lesson on how to translate every type of text. Work on a copy of a representative project first. Identify the authoritative content, language variants, output format and risk-sensitive messages. Preserve the original material, document the result of each test and let reviewers approve changes to meaning. A command-line report is useful only when the next reader can understand what it shows and what corrective action is justified.

How the workflow is organised

What the unified CLI changes

i18next has long been used in JavaScript products, but different teams historically assembled independent scripts for key extraction, missing-key reports and type generation. The unified i18next-cli toolchain presents related operations through commands including extract, status, lint, sync and types.

Treat the CLI as a workflow coordinator, not as a guarantee that the application is internationalized. A project can have clean JSON resources and still render English because a component imports the wrong namespace or its server-side locale handling differs from the browser. The runtime setup must agree with the source analysis.

Begin with the language contract

Pick the primary locale and decide whether regional differences matter: en versus en-GB, pt versus pt-BR, or zh-Hans versus zh-Hant. Decide which strings belong to common navigation and which belong to individual features, so catalog ownership remains clear.

Put those decisions in configuration and a short editor guide. Translation keys should describe stable product intent, not be arbitrary English sentences that change every time copywriting improves. Include glossary and review responsibilities from the beginning, since tooling alone will not distinguish an accurate translation from a misleading one.

Example commands to inspect in a safe project

npx i18next-cli status
npx i18next-cli lint
npx i18next-cli extract --dry-run --ci
npx i18next-cli types --ci

These commands are illustrative starting points, not a universal deployment script. Verify option availability in the installed i18next-cli version and check every file-changing command on a disposable branch first. In particular, list, lint or diagnostic modes and modes that rewrite translation catalogs should be handled differently in a professional review process.

Understand extraction boundaries

The documented extractor supports JavaScript and TypeScript source by default; other file types such as Vue, Svelte or templates need a suitable plugin. Merely adding an extension to a glob is not enough. Extracting only what a parser understands avoids false confidence in incomplete catalogs.

Test one sample from each component technology in the repository. Make sure functions and Trans components are recognized and verify that comments, tests and stories do not produce unintended public keys. Read the tool’s version-specific configuration examples before enabling removal of unused keys.

Namespaces and code splitting

A namespace provides a unit of translation ownership and often a useful boundary for loading resources. A checkout page may use a checkout namespace while shared buttons live in common. This reduces the chance of unrelated teams overwriting the same key.

Consistency matters more than having many namespaces. Decide how shared labels are referenced, when they can be overridden and how fallback namespaces behave. Test direct navigation to a deep route where its translation bundle may be loaded separately from the home page.

Missing keys and unused keys

A status report can identify keys used by code but absent from resource files, and it can help track untranslated locales. An unused-key report is especially useful when features are retired. However, a key constructed dynamically can be real even when a static scanner cannot see it.

Keep a documented strategy for dynamic key families, comments or explicit preservation patterns supported by your installed tooling. Before deleting apparently unused translations, search runtime code paths, email templates and feature flags. Review deletion diffs rather than accepting the result as a mathematical proof.

Synchronization is a write operation

The sync command aligns secondary locales with the primary resource structure, and changed-only approaches can scope updates to a branch. That can save work, but uncontrolled syncing may clear or remove data that a translator spent time reviewing.

Run write operations in a clean git branch, inspect every affected locale and restore any unintended deletion. Evaluate plural families in target locales separately; their required categories can differ from those of the primary language. Do not equate the source file’s set of plural suffixes with the complete grammar of every destination.

Linting makes technical debt visible

The CLI can analyze hardcoded JSX strings, interpolation problems and other internationalization risks. Depending on configuration, some findings are warnings while others cause a non-zero exit. A team adopting lint late may need to distinguish old debt from newly introduced defects.

Document which finding classes block release. If you use a baseline, treat it as a temporary inventory with owners, not permanent permission to ship bad language. Review string concatenation and punctuation assembly because translators must be able to reorder complete messages according to the target grammar.

Typed translations and safe refactoring

Generated TypeScript declarations can improve editor completion and detect some invalid keys or arguments before code reaches production. This is useful when many engineers contribute to the same localization resources.

Types are only as accurate as the catalogs and configuration they were generated from. Do not assume a type-safe call means its translated sentence is culturally appropriate or that a future branch will load the correct namespace. Include the type generation check in normal pull-request work.

Continuous integration and real usability

A strong pipeline separates read-only status and lint jobs from operations that change catalogs. It checks source and target resources, then exercises key interface flows in supported locales. Failure messages should identify the namespace, source location and corrective action.

Review one or two routes per product area in the browser, including a long-message locale and a locale with non-Latin characters. Measure real completion through translated user journeys, not just translation key totals. Key coverage is necessary for release confidence, never sufficient.

Eighteen worked situations that reveal real localization risks

The following examples show why a single tidy status indicator cannot replace quality assurance. Each situation has a distinct failure mechanism, a practical corrective action and a way to decide whether the resulting translation is actually ready. Use the situations closest to your own publishing environment and adapt tests to the technologies, languages and users you serve.

1. A new button is hardcoded

Consider a release review involving a new button is hardcoded. A React developer adds a checkout confirmation button directly as visible JSX text. The difficulty is not simply that the wording looks different. The English site works but no translation key appears for other locales. That difference can escape a superficial proofread when the reviewer sees only a source string and a target string, without the action or document structure around them.

A sound response is practical and limited in scope. Run lint, replace the hardcoded label with a stable i18next key and extract it into the correct namespace. Keep a short record of why this change was necessary, and avoid rewriting unrelated language merely to silence a check. The owner of the source text and the reviewer of the target text should agree on the expected behavior.

Finish with evidence that a reader would recognize. Switch checkout to German and Arabic and confirm the new button has a reviewed label. A passing static check is not the final goal: the corrected document or application must remain understandable, usable and faithful to the intended operation.

2. A dynamic error identifier

A useful diagnostic exercise is a dynamic error identifier. Application code looks up error messages using a variable-based key name. The visible result may appear acceptable at a glance, yet static analysis may mark real keys unused and later remove them during a write operation. This is exactly why a product team should connect catalog findings to the screen, command, workflow or document where a reader meets the message.

For correction, keep an explicit record of the dynamic key family and use supported preservation strategies or named references. Make the change on reviewed resources, preserve the material that must not be localized and compare the resulting diff with the original problem. A clear audit trail is especially useful when another language team encounters a similar issue.

The acceptance check is concrete: trigger each error code under a test locale and verify the expected resource loads. Preserve a screenshot, diff, command result or test note where it adds real value. It should be possible for another reviewer to reproduce the result without guessing at the original context.

3. A missing primary-language key

One common real-world edge case is a missing primary-language key. Source code references a key that no longer exists in the English resource file. The important failure mode is specific: A fallback may show the raw key or misleading default text. Automated output should therefore be interpreted as a clue about the user’s task and not treated as self-explanatory proof that a string is either safe or defective.

The workflow should address the cause rather than only the alert. Run status for the primary locale and either restore the intended key or update the source reference. If the proposed fix changes a literal identifier, runtime behaviour or reader action, stop and bring the relevant technical owner into the review before merging.

Verification must be targeted to the risk. Render the affected route with missing-key logging enabled in a development build. If this last test fails, re-open the source-to-target decision instead of merely adjusting the dictionary, configuration or message catalog until a warning disappears.

4. Two routes share a label

Consider a release review involving two routes share a label. Separate features independently create a ‘Save’ translation with different meanings. The difficulty is not simply that the wording looks different. Translators may reuse wording that is appropriate for a document but wrong for an account setting. That difference can escape a superficial proofread when the reviewer sees only a source string and a target string, without the action or document structure around them.

A sound response is practical and limited in scope. Use feature namespaces or meaningful context keys, and give reviewers a screenshot for each action. Keep a short record of why this change was necessary, and avoid rewriting unrelated language merely to silence a check. The owner of the source text and the reviewer of the target text should agree on the expected behavior.

Finish with evidence that a reader would recognize. Test both routes and confirm the button does what the translated label promises. A passing static check is not the final goal: the corrected document or application must remain understandable, usable and faithful to the intended operation.

5. A German compound breaks layout

A useful diagnostic exercise is a german compound breaks layout. A correct German heading becomes substantially longer than the English original. The visible result may appear acceptable at a glance, yet the translation is valid but truncates a mobile navigation menu. This is exactly why a product team should connect catalog findings to the screen, command, workflow or document where a reader meets the message.

For correction, keep the approved meaning and revise the UI layout or agree on a concise context-specific variant. Make the change on reviewed resources, preserve the material that must not be localized and compare the resulting diff with the original problem. A clear audit trail is especially useful when another language team encounters a similar issue.

The acceptance check is concrete: screenshot the navigation at narrow widths and with larger user font settings. Preserve a screenshot, diff, command result or test note where it adds real value. It should be possible for another reviewer to reproduce the result without guessing at the original context.

6. An Arabic numeral beside punctuation

One common real-world edge case is an arabic numeral beside punctuation. A right-to-left banner contains a percentage, order number and localized message. The important failure mode is specific: Bidirectional ordering obscures which number refers to the discount and which to the order. Automated output should therefore be interpreted as a clue about the user’s task and not treated as self-explanatory proof that a string is either safe or defective.

The workflow should address the cause rather than only the alert. Preserve interpolation names and use the application’s supported direction and isolation handling. If the proposed fix changes a literal identifier, runtime behaviour or reader action, stop and bring the relevant technical owner into the review before merging.

Verification must be targeted to the risk. Copy the value from the rendered banner and compare it against the unlocalized data. If this last test fails, re-open the source-to-target decision instead of merely adjusting the dictionary, configuration or message catalog until a warning disappears.

7. A Russian plural family

Consider a release review involving a russian plural family. A count-based message needs plural categories not represented by a simple English one-other split. The difficulty is not simply that the wording looks different. The target locale can produce ungrammatical or missing messages for particular counts. That difference can escape a superficial proofread when the reviewer sees only a source string and a target string, without the action or document structure around them.

A sound response is practical and limited in scope. Review plural forms according to the installed runtime version and target CLDR rules. Keep a short record of why this change was necessary, and avoid rewriting unrelated language merely to silence a check. The owner of the source text and the reviewer of the target text should agree on the expected behavior.

Finish with evidence that a reader would recognize. Test counts such as one, two, five, twenty-one and large values in the actual component. A passing static check is not the final goal: the corrected document or application must remain understandable, usable and faithful to the intended operation.

8. A placeholder is renamed

A useful diagnostic exercise is a placeholder is renamed. A translator changes the expected interpolation from name to username inside a greeting. The visible result may appear acceptable at a glance, yet the user sees an unresolved marker although the source call still compiles. This is exactly why a product team should connect catalog findings to the screen, command, workflow or document where a reader meets the message.

For correction, use lint or placeholder comparison to detect the difference and restore the correct argument contract. Make the change on reviewed resources, preserve the material that must not be localized and compare the resulting diff with the original problem. A clear audit trail is especially useful when another language team encounters a similar issue.

The acceptance check is concrete: render the greeting using names with accents and punctuation, not only the default test value. Preserve a screenshot, diff, command result or test note where it adds real value. It should be possible for another reviewer to reproduce the result without guessing at the original context.

9. A JSX concatenation

One common real-world edge case is a jsx concatenation. A developer joins translated fragments around a changing filename. The important failure mode is specific: Many languages cannot preserve natural word order when sentences are split into separate keys. Automated output should therefore be interpreted as a clue about the user’s task and not treated as self-explanatory proof that a string is either safe or defective.

The workflow should address the cause rather than only the alert. Replace fragments with a complete translatable message containing a filename placeholder. If the proposed fix changes a literal identifier, runtime behaviour or reader action, stop and bring the relevant technical owner into the review before merging.

Verification must be targeted to the risk. Review the result in a language with different word order and with a very long filename. If this last test fails, re-open the source-to-target decision instead of merely adjusting the dictionary, configuration or message catalog until a warning disappears.

10. An unused-key cleanup

Consider a release review involving an unused-key cleanup. A refactor removes an old page and the extractor proposes deleting dozens of keys. The difficulty is not simply that the wording looks different. Some keys are still used by feature-flagged flows or a runtime lookup. That difference can escape a superficial proofread when the reviewer sees only a source string and a target string, without the action or document structure around them.

A sound response is practical and limited in scope. Run read-only unused reports and inspect the deletion diff before committing any sync. Keep a short record of why this change was necessary, and avoid rewriting unrelated language merely to silence a check. The owner of the source text and the reviewer of the target text should agree on the expected behavior.

Finish with evidence that a reader would recognize. Exercise feature-flag states or search preserved references before approving removal. A passing static check is not the final goal: the corrected document or application must remain understandable, usable and faithful to the intended operation.

11. A deep-linked route

A useful diagnostic exercise is a deep-linked route. The application lazy-loads a feature namespace only after navigation from the homepage. The visible result may appear acceptable at a glance, yet direct links can render placeholders or fallback English while the bundle is loading. This is exactly why a product team should connect catalog findings to the screen, command, workflow or document where a reader meets the message.

For correction, align route-level resource loading with namespace ownership and handle loading states intentionally. Make the change on reviewed resources, preserve the material that must not be localized and compare the resulting diff with the original problem. A clear audit trail is especially useful when another language team encounters a similar issue.

The acceptance check is concrete: open the deep link in a clean browser session for each supported locale. Preserve a screenshot, diff, command result or test note where it adds real value. It should be possible for another reviewer to reproduce the result without guessing at the original context.

12. A browser language fallback

One common real-world edge case is a browser language fallback. A visitor requests a regional locale without its own complete translations. The important failure mode is specific: An unspecified fallback chain can combine unrelated regional spellings. Automated output should therefore be interpreted as a clue about the user’s task and not treated as self-explanatory proof that a string is either safe or defective.

The workflow should address the cause rather than only the alert. Define and document locale fallback priorities and where a truly absent translation should appear. If the proposed fix changes a literal identifier, runtime behaviour or reader action, stop and bring the relevant technical owner into the review before merging.

Verification must be targeted to the risk. Simulate regional language preferences and inspect several representative screens. If this last test fails, re-open the source-to-target decision instead of merely adjusting the dictionary, configuration or message catalog until a warning disappears.

13. A changed source default

Consider a release review involving a changed source default. Copywriting alters a button’s English default value but keeps its stable key. The difficulty is not simply that the wording looks different. Old target translations remain technically present even when their semantics no longer match. That difference can escape a superficial proofread when the reviewer sees only a source string and a target string, without the action or document structure around them.

A sound response is practical and limited in scope. Flag meaningful source changes for linguistic review rather than using synchronization as automatic translation. Keep a short record of why this change was necessary, and avoid rewriting unrelated language merely to silence a check. The owner of the source text and the reviewer of the target text should agree on the expected behavior.

Finish with evidence that a reader would recognize. Compare source change notes and target wording for any new obligations or permissions. A passing static check is not the final goal: the corrected document or application must remain understandable, usable and faithful to the intended operation.

14. A missing TypeScript declaration

A useful diagnostic exercise is a missing typescript declaration. The generated typing file is stale after a localization resource update. The visible result may appear acceptable at a glance, yet editors suggest keys that no longer exist or reject a valid new key. This is exactly why a product team should connect catalog findings to the screen, command, workflow or document where a reader meets the message.

For correction, regenerate types in the approved tool version and commit reviewed declarations where the project requires them. Make the change on reviewed resources, preserve the material that must not be localized and compare the resulting diff with the original problem. A clear audit trail is especially useful when another language team encounters a similar issue.

The acceptance check is concrete: run the type check in CI and verify it fails on an intentionally invalid test key. Preserve a screenshot, diff, command result or test note where it adds real value. It should be possible for another reviewer to reproduce the result without guessing at the original context.

15. A new Vue component

One common real-world edge case is a new vue component. The team assumes its JS extractor will understand templates solely because the glob includes vue files. The important failure mode is specific: Hardcoded text in the new component remains invisible to localization reporting. Automated output should therefore be interpreted as a clue about the user’s task and not treated as self-explanatory proof that a string is either safe or defective.

The workflow should address the cause rather than only the alert. Install and configure a suitable file-type plugin or use an alternative supported extraction path. If the proposed fix changes a literal identifier, runtime behaviour or reader action, stop and bring the relevant technical owner into the review before merging.

Verification must be targeted to the risk. Add a sample Vue translation key and confirm extraction catches it. If this last test fails, re-open the source-to-target decision instead of merely adjusting the dictionary, configuration or message catalog until a warning disappears.

16. An accidental resource overwrite

Consider a release review involving an accidental resource overwrite. A contributor runs an extraction mode that removes unused keys on a working tree with unsaved translator edits. The difficulty is not simply that the wording looks different. Valuable locale work may disappear in the generated diff. That difference can escape a superficial proofread when the reviewer sees only a source string and a target string, without the action or document structure around them.

A sound response is practical and limited in scope. Use isolated branches, back up resource files and review write command configuration before execution. Keep a short record of why this change was necessary, and avoid rewriting unrelated language merely to silence a check. The owner of the source text and the reviewer of the target text should agree on the expected behavior.

Finish with evidence that a reader would recognize. Compare before-and-after locale files and restore any unintended changes. A passing static check is not the final goal: the corrected document or application must remain understandable, usable and faithful to the intended operation.

17. A CI job uses changed-only

A useful diagnostic exercise is a ci job uses changed-only. A pull request translates only its modified keys but lacks the main branch history. The visible result may appear acceptable at a glance, yet git merge-base detection cannot establish the intended scope. This is exactly why a product team should connect catalog findings to the screen, command, workflow or document where a reader meets the message.

For correction, fetch the required base history and verify the chosen base reference rather than silently accepting an incomplete analysis. Make the change on reviewed resources, preserve the material that must not be localized and compare the resulting diff with the original problem. A clear audit trail is especially useful when another language team encounters a similar issue.

The acceptance check is concrete: run the job on a representative pull request and inspect the selected namespace files. Preserve a screenshot, diff, command result or test note where it adds real value. It should be possible for another reviewer to reproduce the result without guessing at the original context.

18. A legal consent sentence

One common real-world edge case is a legal consent sentence. All technical checks pass but the Spanish consent button has softer meaning than the binding English action. The important failure mode is specific: Users may believe they are requesting information rather than granting permission. Automated output should therefore be interpreted as a clue about the user’s task and not treated as self-explanatory proof that a string is either safe or defective.

The workflow should address the cause rather than only the alert. Escalate the text to a qualified local legal and language reviewer with action context. If the proposed fix changes a literal identifier, runtime behaviour or reader action, stop and bring the relevant technical owner into the review before merging.

Verification must be targeted to the risk. Compare the consent decision and logged action in each locale before release. If this last test fails, re-open the source-to-target decision instead of merely adjusting the dictionary, configuration or message catalog until a warning disappears.

A release checklist that checks substance, not appearances

  • Identify the exact source revision and target locale; ensure both belong to the same release.
  • Compare any high-risk instructions and warnings with the approved source, not merely a translation memory match.
  • Confirm literal code tokens, identifiers, links, paths and placeholders are unchanged or intentionally localized.
  • Inspect the tool output in context and document justified exceptions.
  • Check expected language variants, plural categories, locale-aware formatting and typography.
  • Build and open the generated page, application or document rather than trusting only source files.
  • Exercise the user action a sentence describes, including failure and recovery cases.
  • Verify non-Latin characters, combining marks, long words, accessibility labels and right-to-left text where relevant.
  • Review the version-control diff and preserve an easy rollback route.
  • Record approval, ownership and unresolved risks before publishing.

The checklist should be scaled to potential harm. Marketing copy and developer documentation may have different risk profiles, but both benefit from a clear source of truth and a repeatable review. For security, financial, medical or legal material, obtain appropriate domain-specific review before the text is relied upon. A localization tool should expose uncertainty early rather than grant unwarranted authority to a release.

Troubleshooting: how to decide what to fix first

Start with failures that alter a user’s action, erase a negation, break a command, destroy interpolation or hide necessary text. Next address navigational defects, missing translations, formatting and accessibility. Finally review stylistic consistency, line wrapping and nonblocking dictionary or terminology warnings. The precise order can change for a product, but a clear severity policy stops the team from spending the entire review window on cosmetic alerts while a dangerous instruction remains wrong.

Do not conflate untranslated, unrecognized and incorrect. An untranslated entry might still show readable source-language text; an unrecognized word might be a valid brand; and an incorrect translation might consist entirely of dictionary-approved words. The reviewer should ask what the end user sees, what they believe it means, and what they are likely to do as a result. Answering those three questions often reveals the right next test.

Frequently asked questions

Is i18next-cli the same as i18next runtime?

No. The CLI analyzes and maintains source and translation resources; the application runtime loads and renders localized messages. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Which source files can it extract by default?

Official documentation describes JavaScript and TypeScript extraction by default, with plugins needed for other file types. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

What should I run first?

In an existing project, a read-only status or lint check helps establish the baseline before enabling commands that change files. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Can the tool delete translations?

Extraction and synchronization settings can change or remove resource entries. Review all write operations in version control. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

What does status measure?

It reports missing and present translation keys, with options for unused entries. It is not a measure of linguistic accuracy. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

How should I handle dynamic keys?

Use supported preservation or explicit reference strategies and test runtime paths because static extraction may not see computed identifiers. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Do namespaced catalogs improve performance?

They can support loading translations by feature or route, but the actual result depends on application bundling and runtime configuration. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Are plural forms the same everywhere?

No. Target languages can need different categories; test count-based messages according to their locale and message format. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Can typing replace QA?

No. Types catch some programming errors while human and rendering checks catch meaning, layout and accessibility defects. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Why does lint show only warnings?

Severity is configurable for some checks. Decide which issues are blocking and preserve the rationale in project configuration. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Should I synchronize on every commit?

Only with a documented policy and diff review. Read-only CI checks are safer for detecting unexpected changes. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

What should a global release test include?

Language switching, deep routes, namespaces, interpolation, plurals, right-to-left display, accessibility labels and fallback behaviour. A reliable decision also depends on the project’s language policy, the source context and an appropriate test of the final output. Keep the answer traceable to the relevant version of the tool and resource rather than generalising from a single successful run.

Further reading

Consult the maintained project reference for command syntax, supported formats and version-specific behaviour.

Official i18next-cli project and command reference

Conclusion

A resilient i18next application separates what the parser can prove from what people must judge. Keep translation keys stable, checks reproducible and language-specific user journeys under review from development to release.

Professional translation requires more than an accurate sentence in isolation. It requires a stable relationship among the original message, the translated wording, the technical constraints and the reader’s real-world task. Adopt the smallest repeatable workflow that catches consequential errors, write down the reasons for exceptions and inspect the final output with the people who will use it. That combination is what turns a translation check into dependable publishing practice.