Skip to content

Add translator tooling docs, plural examples, and tests#262

Merged
leynos merged 4 commits intomainfrom
add-translator-tooling-docs-j138yt
Feb 1, 2026
Merged

Add translator tooling docs, plural examples, and tests#262
leynos merged 4 commits intomainfrom
add-translator-tooling-docs-j138yt

Conversation

@leynos
Copy link
Copy Markdown
Owner

@leynos leynos commented Jan 31, 2026

Summary

  • Introduces translator tooling plan and documentation to Netsuke localization
  • Adds a dedicated translator guide, plural form examples, and unit tests
  • Updates localization keys, user docs, and roadmap to reflect progress
  • Introduces an ExecPlan documenting ongoing work for translator tooling

Changes

Documentation

  • Added docs/translators-guide.md – comprehensive translator guide covering Fluent basics, key conventions, variable usage, plural forms, adding locales, and QA checklist
  • Added docs/execplans/3-7-3-translator-tooling-and-documentation.md – living ExecPlan for translator tooling
  • Updated docs/users-guide.md to reference the Translator Guide
  • Updated docs/roadmap.md to mark item 3.7.3 as done (with concrete sub-tasks completed)

Localization data

  • Updated locales/en-US/messages.ftl with plural form examples for translators
  • Updated locales/es-ES/messages.ftl with corresponding Spanish plural form examples

Code

  • Extended src/localization/keys.rs with new keys for example messages:
    • EXAMPLE_FILES_PROCESSED => "example.files_processed"
    • EXAMPLE_ERRORS_FOUND => "example.errors_found"

Tests

  • Updated tests/localization_tests.rs to include plural form tests:
    • en-US and es-ES plural rendering (with count interpolation)
    • Variable interpolation checks for example messages

Review & QA

  • Added tests that verify plural forms render and interpolate, noting current API limitation (string arguments) and defaulting to the [other] variant
  • Ensured existing compile-time audits (build_l10n_audit.rs) remain intact and still validate key parity

Validation and test plan

  • Run formatting, linting, and tests:
    • make fmt
    • make check-fmt
    • make lint
    • make test
  • Verify translator guide exists and covers: introduction, FTL syntax, key conventions, variable usage, plural forms, locale expansion, and QA checklist
  • Verify plural example messages render in en-US and es-ES tests and that unit tests cover variable interpolation
  • Confirm roadmap entry 3.7.3 is marked as done and associated tasks pass

Artefacts

  • docs/translators-guide.md (new)
  • docs/execplans/3-7-3-translator-tooling-and-documentation.md (new)
  • locales/en-US/messages.ftl (plural examples added)
  • locales/es-ES/messages.ftl (plural examples added)
  • src/localization/keys.rs (new keys added)
  • tests/localization_tests.rs (plural tests added)
  • docs/users-guide.md (translator guide reference added)
  • docs/roadmap.md (3.7.3 done)

Rationale

  • Provides a structured, documented approach for translator tooling and localization validation
  • Establishes a single source of truth for translator workflows and expectations
  • Enables translators to experiment with plural forms and variable usage in a controlled, test-backed manner

Notes for reviewers

  • Plural form tests rely on Fluent CLDR rules; due to the current API’s string-argument handling, tests assert that the default [other] variant is used while interpolation remains correct
  • No new external dependencies introduced

◳ Generated by DevBoxer


ℹ️ Tag @devboxerhub to ask questions and address PR feedback

📎 Task: https://www.devboxer.com/task/d6b30e20-e037-407a-b761-6c1769fcd2b1

Summary by Sourcery

Document translator workflows and pluralization patterns, add example plural messages to English and Spanish locales, and validate them with new localization tests while marking the corresponding roadmap item complete.

New Features:

  • Add example pluralized messages for file processing and errors in en-US and es-ES locales for translator reference.

Enhancements:

  • Introduce new localization keys for example plural messages to keep FTL files and Rust key definitions in sync.

Documentation:

  • Add a comprehensive translator guide describing Fluent usage, key conventions, variables, plural forms, adding locales, and QA expectations.
  • Add an execplan describing the translator tooling and documentation work and update the user guide and roadmap to reference and close out this effort.

Tests:

  • Extend localization tests to cover pluralized example messages and variable interpolation across en-US and es-ES locales.

… and tests

This adds comprehensive translator documentation covering message keys, variable usage, plural forms, and adding new locales. It includes plural form example messages in en-US and es-ES locales demonstrating Fluent's CLDR plural syntax and limitations due to the current API passing arguments as strings.

Key constants for the examples are added to src/localization/keys.rs with compile-time audit support.

Unit tests are introduced to verify plural message resolution and variable interpolation for English and Spanish locales.

The user guide is updated to reference the new translator guide, and the roadmap marks item 3.7.3 done, fulfilling the goal of providing tooling and documentation for translators.

No new dependencies are introduced; quality gates for formatting, linting, and testing pass successfully.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jan 31, 2026

Summary by CodeRabbit

Release Notes

  • Documentation

    • Added comprehensive Translator Guide covering Fluent syntax, message key conventions, variable usage, CLDR plural handling, and workflow for adding new locales.
    • Updated product roadmap and users guide with references to translator documentation.
    • Published localisation tooling documentation including examples and quality checklists.
  • New Features

    • Added example translations demonstrating plural form handling in English and Spanish localisations.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

Introduce translator tooling and localisation documentation for ExecPlan 3.7.3. Add a translators guide, example plural messages for en-US and es-ES, two new localisation key constants, extended localisation tests for plural forms and variable interpolation, and update roadmap and user docs to reference translator resources.

Changes

Cohort / File(s) Summary
Documentation & Guides
docs/execplans/3-7-3-translator-tooling-and-documentation.md, docs/translators-guide.md, docs/users-guide.md, docs/roadmap.md
Add translator tooling plan and a translators guide; mark ExecPlan 3.7.3 as published; insert links to the translators guide in user docs; document Fluent/FTL conventions, key patterns, plural guidance and testing checklist.
Localisation Examples
locales/en-US/messages.ftl, locales/es-ES/messages.ftl
Add example.files_processed and example.errors_found Fluent messages demonstrating CLDR plural variants and variable interpolation for en-US and es-ES.
Localisation Constants
src/localization/keys.rs
Add two public constants: EXAMPLE_FILES_PROCESSED = "example.files_processed" and EXAMPLE_ERRORS_FOUND = "example.errors_found", included in the generated ALL_KEYS list.
Tests & Helpers
tests/localization_tests.rs
Introduce LocalizerTestGuards helper with a mutex-based guard pattern; replace manual localizer setup with the helper; add tests for plural resolution and variable interpolation for en-US and es-ES.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

codex

Poem

Fluent strings set sail across the sea,
Counts and clauses sing in harmony,
Keys and tests in tidy rows align,
Docs unfold the path for every line,
Translator tools now ready — let them shine! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and concisely summarises the main changes: adding translator tooling documentation, plural form examples, and tests.
Description check ✅ Passed The description comprehensively covers all major changes across documentation, localization data, code, and tests, providing clear rationale and validation steps.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch add-translator-tooling-docs-j138yt

Comment @coderabbitai help to get the list of available commands and usage tips.

@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Jan 31, 2026

Reviewer's Guide

Adds a comprehensive translator guide and exec plan for Netsuke localization, introduces example pluralized messages in English and Spanish with corresponding localization keys, and extends localization tests and user/roadmap docs to validate plural interpolation and mark translator tooling work as complete.

Sequence diagram for example plural message rendering and fallback

sequenceDiagram
    actor Test as LocalizationTests
    participant LM as LocalizedMessage
    participant FL as FluentLocalizer
    participant FE as FluentEngine

    Test->>LM: new(EXAMPLE_FILES_PROCESSED)
    Test->>LM: with_arg("count", 1)
    LM->>LM: convert 1 to String
    LM->>FL: resolve(key, args_as_strings)
    FL->>FE: format_pattern(key, args_as_strings)
    FE-->>FL: select default_other_variant
    FL-->>LM: "Processed 1 files." (other variant)
    LM-->>Test: formatted_message

    note over Test,FE: Tests assert interpolation works
    note over Test,FE: but plural selection uses other variant due to string args
Loading

File-Level Changes

Change Details Files
Add translator-focused documentation and execution plan for localization workflow.
  • Introduce docs/translators-guide.md with Fluent basics, key conventions, variables, plural forms, locale onboarding, and QA checklist.
  • Add docs/execplans/3-7-3-translator-tooling-and-documentation.md describing constraints, risks, plan, progress, and outcomes for translator tooling.
  • Update docs/users-guide.md to link to the Translator Guide for contributors.
  • Mark roadmap item 3.7.3 and its subtasks as completed in docs/roadmap.md.
docs/translators-guide.md
docs/execplans/3-7-3-translator-tooling-and-documentation.md
docs/users-guide.md
docs/roadmap.md
Extend Fluent locale files with pluralization example messages for translators.
  • Add example.files_processed and example.errors_found plural select expressions to the English messages file with comments explaining Fluent plural usage and current API limitations.
  • Add equivalent Spanish plural examples with appropriate verb conjugations and comments mirroring the English explanations.
locales/en-US/messages.ftl
locales/es-ES/messages.ftl
Expose new example localization keys in Rust and add tests to validate plural example rendering and variable interpolation.
  • Add EXAMPLE_FILES_PROCESSED and EXAMPLE_ERRORS_FOUND key constants to the localization key definition macro.
  • Extend localization_tests.rs to cover example plural messages in en-US and es-ES, asserting locale-specific substrings and correct interpolation of count arguments despite current string-only FluentValue handling.
  • Add a focused test verifying variable interpolation for an existing message (STDLIB_FETCH_URL_INVALID) using multiple named arguments.
src/localization/keys.rs
tests/localization_tests.rs

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@leynos leynos marked this pull request as ready for review January 31, 2026 02:50
Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 3 issues, and left some high level feedback:

  • In the translator guide, the CLDR plural categories table lists French as having one, many, other, but CLDR defines only one and other for French—updating this to match CLDR would avoid confusing translators.
  • The plural examples for example.errors_found in the ExecPlan and translator guide use the [0] selector, while the actual FTL files use [zero]; consider aligning the examples with the implemented [zero] form so documentation and source stay consistent.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In the translator guide, the CLDR plural categories table lists French as having `one`, `many`, `other`, but CLDR defines only `one` and `other` for French—updating this to match CLDR would avoid confusing translators.
- The plural examples for `example.errors_found` in the ExecPlan and translator guide use the `[0]` selector, while the actual FTL files use `[zero]`; consider aligning the examples with the implemented `[zero]` form so documentation and source stay consistent.

## Individual Comments

### Comment 1
<location> `docs/translators-guide.md:187` </location>
<code_context>
+| -------- | ---------- |
+| English | `one`, `other` |
+| Spanish | `one`, `other` |
+| French | `one`, `many`, `other` |
+| Russian | `one`, `few`, `many`, `other` |
+| Arabic | `zero`, `one`, `two`, `few`, `many`, `other` |
</code_context>

<issue_to_address>
**issue:** French CLDR plural categories are misstated; CLDR defines `one` and `other` (no `many`).

Please update the French row to list only `one` and `other` so it matches the CLDR plural rules and avoids confusing translators.
</issue_to_address>

### Comment 2
<location> `docs/translators-guide.md:142` </location>
<code_context>
+
+## 5. Plural Forms
+
+Fluent uses CLDR plural rules to handle grammatical number. Different languages
+have different plural categories.
+
</code_context>

<issue_to_address>
**suggestion (review_instructions):** "CLDR" is introduced here without being defined; it should be expanded on first use.

Consider updating this sentence to something like "Fluent uses Common Locale Data Repository (CLDR) plural rules" so that the acronym is defined when first introduced. Later uses can remain as CLDR.

<details>
<summary>Review instructions:</summary>

**Path patterns:** `**/*.md`

**Instructions:**
Define uncommon acronyms on first use.

</details>
</issue_to_address>

### Comment 3
<location> `docs/translators-guide.md:192` </location>
<code_context>
+| Arabic | `zero`, `one`, `two`, `few`, `many`, `other` |
+| Japanese | `other` (no grammatical plural) |
+
+Consult the [CLDR plural rules][cldr-plural] for your target language.
+
+[cldr-plural]: https://cldr.unicode.org/index/cldr-spec/plural-rules
</code_context>

<issue_to_address>
**suggestion (review_instructions):** This sentence uses the second-person pronoun "your", which the style guide prohibits.

To avoid second-person pronouns, rephrase this line in an impersonal form, for example: "Consult the [CLDR plural rules][cldr-plural] for the target language."

<details>
<summary>Review instructions:</summary>

**Path patterns:** `**/*.md`

**Instructions:**
Avoid 2nd person or 1st person pronouns ("I", "you", "we").

</details>
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread docs/translators-guide.md Outdated
Comment thread docs/translators-guide.md Outdated
Comment thread docs/translators-guide.md Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ac967d6ae3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread locales/en-US/messages.ftl
Comment thread locales/es-ES/messages.ftl
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 13

🤖 Fix all issues with AI agents
In `@docs/execplans/3-7-3-translator-tooling-and-documentation.md`:
- Line 163: Update the phrase in the documentation heading that currently reads
"FTL file structure - Location, section organisation, comments" to use
en-US/oxendict spelling by replacing "organisation" with "organization"; locate
the exact heading text in the translator tooling doc and make the single-word
substitution so the line reads "FTL file structure - Location, section
organization, comments".
- Line 172: Replace the British spelling "pluralisation" with the required
"-ize" form "pluralization" in the line containing the phrase "Add demonstration
messages showing pluralisation:" so the sentence reads "Add demonstration
messages showing pluralization:"; update any other occurrences of
"pluralisation" in this document (search for the exact token) to "pluralization"
to comply with the en-GB-oxendict spelling rule.
- Line 67: The doc contains the British spelling "synchronised" which must be
changed to the required -ize form; locate the occurrence of "synchronised" in
the text (the sentence "are not synchronised across all locales. Severity: low.
Likelihood: medium."), replace it with "synchronized", and scan the same
document for other -ise endings (e.g., "synchronise", "organise") and convert
them to the -ize variants to comply with the documentation spelling guideline.
- Line 145: Replace the British spelling "organised" with the American "-ize"
form "organized" in the sentence containing "`stdlib.fetch.url_invalid`)
organised by domain:"; update the text so it reads "`stdlib.fetch.url_invalid`)
organized by domain:" ensuring the only change is the spelling of "organised" to
"organized".

In `@docs/roadmap.md`:
- Around line 237-239: Update roadmap item 3.7.3 to define measurable outcomes
instead of intentions: replace the current bullet "Provide translator tooling
and documentation" and its sub-bullets with the proposed wording that states
deliverables and acceptance criteria (e.g., "Publish translator tooling
documentation with verified examples", sub-bullets "Document message keys,
plural categories, and variable usage with worked FTL samples" and "Add smoke
tests covering en-US plus one secondary locale (es-ES)") so the task and
completion criteria are explicit and testable.

In `@docs/translators-guide.md`:
- Around line 192-193: Replace the second-person wording in the sentence
"Consult the [CLDR plural rules][cldr-plural] for your target language." with a
neutral phrasing: change "your target language" to "the target language" so the
line reads "Consult the [CLDR plural rules][cldr-plural] for the target
language." This removes second-person pronouns to comply with the documentation
style guidelines.
- Around line 8-10: Replace reference-style Markdown links with inline links for
the "Project Fluent" and "CLDR plural rules" references: locate the occurrences
of "[Project Fluent][fluent]" and "[CLDR plural rules][cldr-plural]" in
docs/translators-guide.md and change them to inline form
"(https://projectfluent.org/)" and
"(https://cldr.unicode.org/index/cldr-spec/plural-rules)" respectively, then
remove the corresponding reference definitions "[fluent]: ..." and
"[cldr-plural]: ..." (also apply the same replacement to the other occurrences
mentioned at the comment locations such as lines ~25 and ~192-194).
- Around line 1-7: Change all markdown headings in the translators-guide
document from title case to sentence case; find headings like "Netsuke
Translator Guide", "File Structure", "Message Key Conventions" (and any other
level-1/2/3 headings including those in the block around the previously noted
section) and update them to sentence case (e.g., "Netsuke translator guide",
"File structure", "Message key conventions") consistently across the file;
ensure you only alter the heading text casing and preserve hashes, links, and
surrounding content.
- Around line 63-64: Replace the British spelling "organised" with the OED -ize
variant "organized" in the sentence "Netsuke uses hierarchical dot-notation for
message keys, organised by domain:" so it reads "Netsuke uses hierarchical
dot-notation for message keys, organized by domain:"; update that exact string
in docs/translators-guide.md (the line containing the sentence) to conform to
en-GB-oxendict -ize spelling.
- Around line 65-76: Add a short caption line immediately above each table and
diagram in the translators-guide.md; for the shown table (the one starting with
the header "| Domain | Purpose | Example |" and listing domains like `cli.*`,
`clap-error-*`, `runner.*`, `manifest.*`, `ir.*`, `ninja_gen.*`, `stdlib.*`,
`host_pattern.*`, `network_policy.*`, `example.*`) insert a caption such as
"Table: Message key domains and examples." Do the same for the other tables
referenced (the blocks around the ranges you noted) and for any diagrams—ensure
each caption is a single plain-text line starting with "Table:" or "Figure:" as
appropriate and placed directly above the table/diagram so it meets the
documentation requirement.

In `@locales/en-US/messages.ftl`:
- Around line 329-333: The plural selector for example.errors_found uses the
non-CLDR key [zero]; update the selector to the numeric form [0] so the zero
case will match for $count, i.e., in the message pattern for
example.errors_found replace the [zero] selector with [0] and keep the existing
[one] and [other] branches intact.

In `@locales/es-ES/messages.ftl`:
- Around line 330-334: The plural variants in the message key
example.errors_found use an invalid CLDR category [zero]; replace the [zero]
variant with a numeric selector [0] so zero is matched explicitly for $count,
keeping the existing [one] and [other] branches intact; update the selector in
the example.errors_found pattern to use [0] instead of [zero].

In `@tests/localization_tests.rs`:
- Around line 39-123: The tests repeat the same lock/localizer/guard setup; add
an rstest fixture named localiser_guards that accepts a locale: &str and returns
the acquired MutexGuard and LocalizerGuard by calling localizer_test_lock(),
cli_localization::build_localizer(Some(locale)), and
localization::set_localizer_for_tests(Arc::from(...)); then update the test
functions example_files_processed_message_resolves,
example_errors_found_message_resolves, and
variable_interpolation_works_correctly to take the fixture (e.g.,
localiser_guards: Result<(MutexGuard<'static, ()>, LocalizerGuard)>) or
destructured guards as an argument and remove the duplicated calls to
localizer_test_lock, cli_localization::build_localizer, and
localization::set_localizer_for_tests.

Comment thread docs/execplans/3-7-3-translator-tooling-and-documentation.md Outdated
Comment thread docs/execplans/3-7-3-translator-tooling-and-documentation.md Outdated
Comment thread docs/execplans/3-7-3-translator-tooling-and-documentation.md Outdated
Comment thread docs/execplans/3-7-3-translator-tooling-and-documentation.md Outdated
Comment thread docs/roadmap.md Outdated
Comment thread docs/translators-guide.md
Comment thread docs/translators-guide.md Outdated
Comment thread locales/en-US/messages.ftl
Comment thread locales/es-ES/messages.ftl
Comment thread tests/localization_tests.rs
…zation tests

- Add `docs/translators-guide.md` with detailed instructions on Fluent syntax, message key conventions, variable usage, plural forms, and locale addition.
- Add plural form examples to `en-US` and `es-ES` locales with matching key constants.
- Enhance localization smoke tests to verify message resolution for `en-US` and `es-ES`.
- Update roadmap to reflect completed translator tooling and documentation.
- Fix minor typos and wording for consistency and clarity in localization docs.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@docs/execplans/3-7-3-translator-tooling-and-documentation.md`:
- Around line 107-111: Edit the sentence starting "Keep plural form examples as
documentation despite selection not working." in the docs/execplans file and
insert a comma after "documentation" so it reads "Keep plural form examples as
documentation, despite selection not working." — update the block containing
that Decision paragraph (the lines with "Decision: Keep plural form examples as
documentation despite selection not working.") to include the comma.

In `@docs/translators-guide.md`:
- Around line 63-77: Replace the invisible HTML comment "<!-- Table 1: Message
key domains and their purposes -->" with a visible plain-text caption line
(e.g., "Table 1: Message key domains and their purposes") immediately above the
table that begins with the header "| Domain | Purpose | Example |"; do the same
for the other two tables that currently use HTML comments (the other "<!-- Table
... -->" comment blocks) so captions render in the Markdown output.

Comment thread docs/execplans/3-7-3-translator-tooling-and-documentation.md Outdated
Comment thread docs/translators-guide.md Outdated
…kdown

- Corrected punctuation for clarity in execplans documentation.
- Replaced HTML comment tags with markdown text in translators-guide.md for better rendering of table captions.
- Improved overall readability of documentation files.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Fix all issues with AI agents
In `@docs/execplans/3-7-3-translator-tooling-and-documentation.md`:
- Around line 13-16: Update the prose in Roadmap item 3.7.3 to use en-GB
spelling by replacing US "localization" with en-GB "localisation" throughout the
narrative text (e.g., the paragraph starting "Roadmap item 3.7.3 requires...")
and in the other noted prose blocks (around the referenced ranges), while
leaving any identifiers, file names, or external API names that intentionally
use US spelling unchanged; ensure the documentation follows en-GB-oxendict
conventions for spelling and grammar.
- Around line 31-36: Update the success criteria bullet that currently reads
"FTL files containing working plural form examples" to explicitly reflect the
documented plural-selection limitation: replace that phrase with something like
"FTL files containing plural examples demonstrating that missing plural forms
resolve to the default [other] form" and ensure the wording aligns with the
translator guide and unit tests for plural rendering (en-US and es-ES).

In `@docs/translators-guide.md`:
- Around line 201-203: Update the paragraph that starts with "The netsuke
localization API currently passes all arguments..." by replacing the lowercase
product name "netsuke" with the correctly capitalized "Netsuke" so the sentence
reads "The Netsuke localization API..." (search for the exact phrase "The
netsuke localization API" to locate the paragraph).
- Around line 8-10: The document uses US spelling "localization" in narrative
text; update these narrative occurrences to British en-GB spelling
"localisation" (following en-GB-oxendict, e.g., “-our”) while leaving any
identifiers, filenames, or external API references that intentionally use US
spelling unchanged; search for the token "localization" in narrative paragraphs
(including the initial paragraph mentioning Project Fluent and the other cited
sections) and replace with "localisation", keeping contextual grammar intact and
not altering code/identifier blocks or links.
- Around line 80-82: Reflow the paragraph that mentions src/localization/keys.rs
and the example constant CLI_FLAG_FILE_HELP so no line exceeds 80 characters;
break the sentence into multiple lines at sensible word boundaries (e.g., after
"defined in `src/localization/keys.rs`" and before/after the example) while
preserving the exact text and inline code fragments (`UPPER_SNAKE_CASE`,
`CLI_FLAG_FILE_HELP`, `cli.flag.file.help`).

Comment thread docs/execplans/3-7-3-translator-tooling-and-documentation.md
Comment thread docs/execplans/3-7-3-translator-tooling-and-documentation.md
Comment thread docs/translators-guide.md
Comment thread docs/translators-guide.md
Comment thread docs/translators-guide.md Outdated
- Updated translator tooling and documentation to note that FTL plural form examples default to `[other]` variant due to string argument passing.
- Clarified unit tests validate message resolution and variable interpolation in both en-US and es-ES.
- Revised translators guide to improve formatting and corrected capitalization of "Netsuke".
- Added explanation of current limitation where the localization API passes arguments as strings rather than numeric types, affecting CLDR plural selector matching.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
@leynos
Copy link
Copy Markdown
Owner Author

leynos commented Feb 1, 2026

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 1, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot added the codex label Feb 1, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/translators-guide.md`:
- Around line 197-198: Reflow the paragraph containing the CLDR link so no line
exceeds 80 characters while preserving the inline Markdown link; specifically
edit the sentence "Consult the [CLDR plural
rules](https://cldr.unicode.org/index/cldr-spec/plural-rules) for the target
language." into multiple wrapped lines (max 80 cols) or short clauses that keep
the [CLDR plural rules](https://cldr.unicode.org/index/cldr-spec/plural-rules)
link intact and on the same Markdown line as its text.

Comment thread docs/translators-guide.md
@leynos leynos merged commit 523d215 into main Feb 1, 2026
16 checks passed
@leynos leynos deleted the add-translator-tooling-docs-j138yt branch February 1, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant