Skip to content

PTC accessibility-checker (1985): Automatic Translations June 24, 2025 19:07:12490043 - #1032

Closed
SteveJonesDev wants to merge 33 commits into
developfrom
automatic_translations_june-24-2025-19-07-12490043
Closed

PTC accessibility-checker (1985): Automatic Translations June 24, 2025 19:07:12490043#1032
SteveJonesDev wants to merge 33 commits into
developfrom
automatic_translations_june-24-2025-19-07-12490043

Conversation

@SteveJonesDev

@SteveJonesDev SteveJonesDev commented Jun 24, 2025

Copy link
Copy Markdown
Member

For more information go to https://app.ptc.wpml.org/#/dashboard/merge-requests-history/1985

Summary by CodeRabbit

  • New Features

    • Added new translation strings for error messages, including "An error occurred while clearing issues," across multiple languages.
  • Chores

    • Updated translation files for various languages to version 1.25.0, including metadata and formatting improvements for better translation support.
    • Enhanced translation entries with formatting flags for improved handling of placeholders and dynamic content.

@coderabbitai

coderabbitai Bot commented Jun 24, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This update revises multiple translation files for the Accessibility Checker plugin, aligning them with version 1.25.0. Changes include updated metadata, addition of php-format and js-format flags to translation entries, corrections to source code references, and new translation strings for error messages. No logic or code flow modifications are present.

Changes

Files Change Summary
languages/accessibility-checker-ar.po
languages/accessibility-checker-bg_BG.po
languages/accessibility-checker-cs_CZ.po
languages/accessibility-checker-da_DK.po
languages/accessibility-checker-de_DE.po
languages/accessibility-checker-el.po
languages/accessibility-checker-es_ES.po
languages/accessibility-checker-et.po
languages/accessibility-checker-fi.po
languages/accessibility-checker-fr_FR.po
languages/accessibility-checker-he_IL.po
languages/accessibility-checker-hu_HU.po
languages/accessibility-checker-id_ID.po
languages/accessibility-checker-it_IT.po
languages/accessibility-checker-ja.po
languages/accessibility-checker-ko_KR.po
languages/accessibility-checker-lt_LT.po
languages/accessibility-checker-lv.po
languages/accessibility-checker-nb_NO.po
languages/accessibility-checker-nl_NL.po
languages/accessibility-checker-pl_PL.po
Updated translation files for version 1.25.0: revised metadata, added php-format/js-format flags, corrected references, and introduced new error message translations. No code or logic changes.

Possibly related PRs

Poem

In every tongue, from Dutch to Greek,
Our checker now can clearly speak.
With flags for format, errors, too—
Translations polished, shiny, new!
Rabbits hop and gently cheer,
For every message’s crystal clear.
🐇✨


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Summary of Changes

Hello @SteveJonesDev, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on updating the plugin's localization files across multiple languages. The changes primarily involve refreshing metadata and adding specific formatting directives to translatable strings, which is crucial for accurate and dynamic content translation within the application.

Highlights

  • Localization File Updates: All localization (.po) files have been updated to reflect the latest plugin version and generation metadata.
  • Improved String Formatting: New formatting directives (#, php-format, #, js-format) have been added to translatable strings, enhancing the internationalization process for dynamic content.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions

Copy link
Copy Markdown
Contributor

The POT file has changed. Please update the POT file in your PR to keep translations up to date.
The updated POT file is available in the artifacts of this workflow run: https://github.com/equalizedigital/accessibility-checker/actions/runs/15859818690

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

The number of changes in this pull request is too large for Gemini Code Assist to generate a review.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 7

🔭 Outside diff range comments (3)
languages/accessibility-checker-lt_LT.po (1)

226-230: Unbalanced escaped quote in translation string.

msgstr ends with an opening escaped quote (\"pro) but never closes it, producing the literal text "pro instead of „Pro“ (or similar). Fix to avoid a stray quote shown to end-users.

-msgstr "atnaujinti į \"pro"
+msgstr "atnaujinti į „Pro“"
languages/accessibility-checker-lv.po (1)

254-285: Latvian plural rules are incomplete – third msgstr[2] form is missing

Latvian requires three plural forms (nplurals=3).
All newly-flagged plural messages here supply only msgstr[0] and msgstr[1].
At runtime this will trigger ngettext() look-ups that expect msgstr[2], causing missing-string fall-backs or PHP notices.

Add the third form for every plural block (Error(s), Contrast Error(s), Warning(s), Ignored Item(s)).

Example fix for one block:

 msgid "%s Error"
 msgid_plural "%s Errors"
 msgstr[0] "%s Kļūda"
 msgstr[1] "%s Kļūdas"
+msgstr[2] "%s Kļūdu"

Repeat for the other three segments (lines 264-269, 272-277, 280-285).

languages/accessibility-checker-pl_PL.po (1)

281-285: Plural array incomplete for “Ignored Item”

 msgid "%s Ignored Item"
 msgid_plural "%s Ignored Items"
-msgstr[0] "%s Zignorowany element"
-msgstr[1] "%s Zignorowanych elementów"
+msgstr[0] "%s Zignorowany element"
+msgstr[1] "%s Zignorowane elementy"
+msgstr[2] "%s Zignorowanych elementów"
🧹 Nitpick comments (19)
languages/accessibility-checker-it_IT.po (2)

144-147: Check spacing around numbered placeholders
The source string has “… %1$srelease announcement post%2$s.”.
The translation reads “… %1$spost di annuncio del rilascio%2$s.” (no space after the first placeholder).
If the linked anchor in %1$s includes a trailing space you’re fine; otherwise add one in the Italian string for correct word separation.


37-40: Capitalisation inconsistency
The author name was translated to “Equalize digital” (lower-case d) while other occurrences keep the original casing. Consider “Equalize Digital” for brand consistency.

languages/accessibility-checker-ja.po (2)

5-15: Header placeholders should be finalized before shipping
Last-Translator and Language-Team still contain template placeholders (FULL NAME <EMAIL@ADDRESS> / LANGUAGE <LL@li.org>). These values propagate to the compiled mo and appear in various tooling. Consider filling them with real contact info (or removing them entirely) before release.


1258-1262: Capitalisation inconsistency for product name
msgstr translates “Accessibility Checker Pro” as “Accessibility checker pro” (lower-case “checker” / “pro”). Elsewhere in this file the product name is consistently capitalised: “Accessibility Checker Pro”. Align this instance for brand consistency.

-msgstr "Accessibility checker pro"
+msgstr "Accessibility Checker Pro"
languages/accessibility-checker-ko_KR.po (1)

254-285: Plural forms: consider trimming redundant msgstr[1] entries

Korean uses nplurals=1 (plural=0). Keeping two plural strings doubles maintenance effort without changing behaviour:

-msgstr[0] "%s개의 오류"
-msgstr[1] "%s개의 오류"
+msgstr[0] "%s개의 오류"

Same applies to the Warning / Contrast / Ignored blocks. Optional, but simplifies the file.

languages/accessibility-checker-es_ES.po (3)

37-40: Preserve brand capitalization (“Equalize Digital”)

msgstr "Equalize digital" loses the capital “D” present in the company name. Brand names are proper nouns and should keep their original capitalization even inside translations.

-msgstr "Equalize digital"
+msgstr "Equalize Digital"

66-70: Inconsistent rendering of “Pro” product tier

Here and in several later entries (“actualizar a pro”, “obtener pro”) the word Pro appears lower-cased in Spanish while the English source keeps the product-tier capitalization. For consistency and to avoid user-visible branding mismatches, capitalise it:

-msgstr "Obtener pro"
+msgstr "Obtener Pro"

Please audit the rest of the file for the same pattern (e.g. lines 186-187, 229-230, 475-476, 1780-1781).


226-230: Same “Pro” capitalization issue

msgstr "actualizar a pro"Actualizar a Pro.

languages/accessibility-checker-et.po (1)

254-285: Plural translations identical to singular may confuse users

For the pluralised strings

%s Error / %s Errors  
%s Contrast Error / %s Contrast Errors  
%s Warning / %s Warnings  
%s Ignored Item / %s Ignored Items

both msgstr[0] and msgstr[1] use the same wording ("Viga", "Kontrasti viga", "Hoiatus", "Ignoreeritud üksus").
In Estonian, the form that follows a numeral differs between singular ( 1 viga) and plural counts ( 2 viga → typically viga in partitive plural, or sometimes vigu/vead depending on context).

Consider revising the second plural form to make the distinction clearer and to avoid sounding grammatically odd to native readers, e.g.

-msgstr[1] "%s Viga"
+msgstr[1] "%s viga"      # or "%s vigu"

Repeat the adjustment for the other message pairs as appropriate.

languages/accessibility-checker-da_DK.po (1)

144-147: Minor spacing nitpick in translated anchor text
"Læs mere i vores %1$sindlæg om udgivelsesmeddelelsen%2$s."
There is no space after the opening %1$s. Depending on how the anchor tag gets rendered, this can concatenate the link with the preceding word. Consider inserting a leading space inside the placeholder or after it for clarity:

- "Læs mere i vores %1$sindlæg om udgivelsesmeddelelsen%2$s."
+ "Læs mere i vores %1$s indlæg om udgivelsesmeddelelsen%2$s."
languages/accessibility-checker-ar.po (1)

5-15: Header metadata still contains boiler-plate values

Last-Translator, Language-Team, and (likely a few lines further down) Language: / Plural-Forms: are still the template placeholders. Leaving them unchanged can break contributor attribution and, for plural rules, potentially cause run-time warnings in gettext.
Please replace the placeholders with real values before packaging.

languages/accessibility-checker-hu_HU.po (1)

78-81: Use positional placeholders with php-format strings

Now that the entry is flagged php-format, relying on an un-numbered %s locks Hungarian word-order to the English source. Switching to a positional specifier (%1$s) gives translators freedom to reorder arguments if needed and avoids accidental mismatch in future.

-msgstr "Olvassa el a %s dokumentációját. Új ablakban nyílik meg."
+msgstr "Olvassa el a %1$s dokumentációját. Új ablakban nyílik meg."
languages/accessibility-checker-id_ID.po (1)

5-15: Header still carries placeholders – please finalize metadata before shipping
Last-Translator, Language-Team, PO-Revision-Date, and the optional Language header are still the default placeholders (FULL NAME, LANGUAGE, YEAR-MO-DA, etc.). Leaving them unchanged causes build tools to treat the file as unfinished and can break language-fallback logic in some setups.

-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+# Fill with real data before merge
+"Last-Translator: <translator-name> <translator@example.com>\n"
+"Language-Team: Indonesian <i18n-team@example.com>\n"
+"PO-Revision-Date: 2025-06-25 12:34+0000\n"
+"Language: id_ID\n"
languages/accessibility-checker-el.po (1)

67-70: Brand names should keep original casing
Translations for “Get Pro” / “upgrade to pro” became “Αποκτήστε pro” and “αναβάθμιση σε pro”. Consider capitalising “Pro” (and “Digital” where applicable) to preserve the product name exactly as branded.

languages/accessibility-checker-fr_FR.po (1)

810-813: Triple placeholder order is brittle – lock it in

There are three ordered placeholders %1$s, %2$s, %3$s.
If a future translator tool “optimises” word order, the sequence can break.
Consider adding an inline translator comment (e.g. # translators: keep placeholder order) to guard against accidental re-ordering.

languages/accessibility-checker-nb_NO.po (1)

144-147: Missing space after the first positional placeholder

%1$s is glued to the Norwegian word “kunngjøring”, producing “%1$skunngjøring”.
Screen-readers will literally merge the anchor text with the next word. Insert a space (or ‑ if intended - a NBSP) after the placeholder.

-"Les mer i vår %1$skunngjøring om utgivelsen%2$s."
+"Les mer i vår %1$s kunngjøring om utgivelsen%2$s."
languages/accessibility-checker-nl_NL.po (3)

6-9: Fill-in the PO-header placeholders before shipping
Last-Translator and Language-Team are still the template defaults (“FULL NAME”, “LANGUAGE”). WordPress will surface these values publicly in the translation meta and they are also used by tools like GlotPress for contributor attribution.
Update them with the actual translator / team details, or drop the lines entirely if you prefer to hide personal data.


37-40: Brand name capitalization drift
"Equalize digital" loses the capital “D” that is used everywhere else (“Equalize Digital”).
Brand consistency matters and keeps translators from accidentally introducing duplicates in the glossary.

-msgstr "Equalize digital"
+msgstr "Equalize Digital"

66-70: Inconsistent “Pro” call-to-action
"Ga voor pro" mixes sentence-case with the product name. All other variants use capital “P” (“Pro”).

-msgstr "Ga voor pro"
+msgstr "Ga voor Pro"

Keeping it consistent avoids splitting translation memory suggestions in future updates.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b3ef906 and 19772d0.

📒 Files selected for processing (21)
  • languages/accessibility-checker-ar.po (50 hunks)
  • languages/accessibility-checker-bg_BG.po (50 hunks)
  • languages/accessibility-checker-cs_CZ.po (50 hunks)
  • languages/accessibility-checker-da_DK.po (50 hunks)
  • languages/accessibility-checker-de_DE.po (50 hunks)
  • languages/accessibility-checker-el.po (50 hunks)
  • languages/accessibility-checker-es_ES.po (50 hunks)
  • languages/accessibility-checker-et.po (50 hunks)
  • languages/accessibility-checker-fi.po (50 hunks)
  • languages/accessibility-checker-fr_FR.po (50 hunks)
  • languages/accessibility-checker-he_IL.po (50 hunks)
  • languages/accessibility-checker-hu_HU.po (50 hunks)
  • languages/accessibility-checker-id_ID.po (50 hunks)
  • languages/accessibility-checker-it_IT.po (50 hunks)
  • languages/accessibility-checker-ja.po (50 hunks)
  • languages/accessibility-checker-ko_KR.po (50 hunks)
  • languages/accessibility-checker-lt_LT.po (50 hunks)
  • languages/accessibility-checker-lv.po (50 hunks)
  • languages/accessibility-checker-nb_NO.po (50 hunks)
  • languages/accessibility-checker-nl_NL.po (50 hunks)
  • languages/accessibility-checker-pl_PL.po (50 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: Integration Test: PHP 8.1 | WP latest (+ ms)
  • GitHub Check: make-pot
🔇 Additional comments (45)
languages/accessibility-checker-bg_BG.po (2)

78-81: Place-holder consistency looks good – spot-checked %s, %1$s, %2$s strings.
All new/updated #, php-format entries preserve the same parameter count/order between msgid and msgstr. No localisation-breaking issues detected.

Also applies to: 143-147, 256-269, 264-269


5-15: Metadata updates acknowledged.
Project-Id-Version, POT-Creation-Date, and X-Generator have been bumped to 1.25.0 / 2025-06-18 / WP-CLI 2.12.0. No action required.

languages/accessibility-checker-it_IT.po (3)

5-15: Metadata updates look good
Project-Id-Version, POT-Creation-Date, and X-Generator were bumped correctly to 1.25.0 / 2025-06-18 / WP-CLI 2.12.0. No action needed.


78-81: Placeholder ordering preserved – nice
The %s placeholder is kept in the same position in the Italian translation, avoiding the classic php-format mismatch.


2001-2004: js-format string – placeholders OK
Both %s tokens survived the translation, so runtime sprintf() in JS won’t explode. Good catch adding the flag.

languages/accessibility-checker-cs_CZ.po (4)

5-15: Metadata looks correct – double-check consistency across all locales

Version, POT creation date and generator values were bumped.
Please ensure the exact same values have been propagated to every other .po file in the repository; mismatches silently break cross-file msgmerge workflows.
No change requested here, just confirm.


78-80: Place-holder retained – translation safe to merge

The %s token is still present in the Czech string, and the new php-format flag has been added, so runtime substitution will work.


144-147: Plural/numbered placeholders preserved

Both %1$s and %2$s are kept in the translated string and the entry is correctly marked php-format.
Nothing else to do.


2037-2039: New error string translated accurately

The concise Czech translation (“Při mazání problémů došlo k chybě.”) conveys the same meaning and requires no variables. Good to go.

languages/accessibility-checker-lt_LT.po (1)

76-81: Placeholder count matches – no action needed.

#, php-format was added and the translation keeps a single %s placeholder.
Looks correct.

languages/accessibility-checker-ja.po (2)

78-81: Place-holder tokens retained – good job
The %s specifier survives in msgstr, matching the English source and preventing run-time sprintf errors.


144-147: Plural-aware tokens correctly mirrored
%1$s / %2$s placeholders are preserved and ordering is unchanged in the Japanese translation – nice attention to detail.

languages/accessibility-checker-ko_KR.po (4)

5-15: Header metadata updates are correct

Version bump, POT creation date and generator entries line-up with the 1.25.0 release – nothing else to flag.


76-82: Be sure positional placeholder %s is preserved

#, php-format was added, the Korean string keeps a single %s, good. No action needed, just confirming.


142-147: Place-holder order verified

The translation retains %1$s / %2$s in the same order, so runtime printf calls will render safely.


2036-2038: New error string translated appropriately

"An error occurred while clearing issues.""문제 해결 중 오류가 발생했습니다." conveys intent clearly.

languages/accessibility-checker-es_ES.po (2)

1235-1239: Minor Spanish accent: “utiliza” vs “utiliza”

Current translation is fine; just noting that in European Spanish “Utiliza” with capital U at start of sentence would read a bit smoother. Feel free to ignore if style-guide prefers lowercase after a colon.


2001-2004: Placeholder order verified – looks good

#, js-format string keeps the %s placeholders in the correct order in Spanish. No action needed.

languages/accessibility-checker-et.po (2)

2000-2004: Placeholder order verified – looks good

The new js-formatted message
Settings saved successfully. You must %svisit the editor%s …
keeps the two %s placeholders in the same order in the translation
"Peate %skülastama redaktorit%s …" which is correct for Estonian grammar.


2036-2038: New error string translation OK

The added string “An error occurred while clearing issues.” is accurately translated and poses no placeholder/formatting concerns.

languages/accessibility-checker-da_DK.po (3)

78-81: Place-holder flag correctly added – looks good
The added #, php-format flag aligns with the %s token in both source and translation. No action needed.


256-268: Plural strings & flags correctly updated
#, php-format was added and both plural forms are present for Danish (n != 1). Token ordering is preserved.


2036-2039: New error string translated appropriately
The added message “Der opstod en fejl under rydning af problemer.” accurately reflects the source and needs no change.

languages/accessibility-checker-ar.po (2)

78-81: Placeholder order preserved – looks good

#, php-format flag added and both %s placeholders are kept intact in the Arabic translation. No action needed.


2036-2039: New error-state string translated correctly

The added “An error occurred while clearing issues.” entry is present and accurately translated.
No further changes required.

languages/accessibility-checker-hu_HU.po (3)

5-15: Metadata update looks correct

Project-Id-Version, POT-Creation-Date, and X-Generator were bumped to 1.25.0 / 2025-06-18 / WP-CLI 2.12.0 respectively. No functional impact—good to go.


142-147: Placeholders preserved — nice

Both %1$s and %2$s are present in the translation, matching the source string. No issues.


2036-2038: New error-message translation reads well

The added string “Hiba történt a problémák törlése közben.” correctly conveys the meaning and introduces no format specifiers.

languages/accessibility-checker-id_ID.po (2)

78-81: Placeholder count matches – LGTM
The newly added #, php-format flag correctly marks this string, and the %s placeholder is preserved in the translation.


145-147: Numbered placeholders preserved – looks good
Both %1$s and %2$s are present and in the same order, so the added php-format flag is safe.

languages/accessibility-checker-el.po (3)

5-15: Header updates look correct
Version bump, POT date and generator strings align with plugin v1.25.0.


2036-2038: New string translated & punctuation preserved – LGTM
The added entry for “An error occurred while clearing issues.” is present and faithfully translated.


78-81: Verify placeholder consistency after adding #, php-format flag
Now that this string is marked php-format, any mismatch in placeholder count or order between msgid and msgstr will raise a fatal run-time warning in PHP.
Run a quick check before shipping:

#!/bin/bash
msgfmt --check-format --statistics languages/accessibility-checker-el.po

If the command exits non-zero or reports format errors, adjust the %1$s, %2$s, … tokens in the Greek translation to match the English source.

languages/accessibility-checker-fr_FR.po (4)

5-14: Set real metadata before shipping

Last-Translator and PO-Revision-Date are still placeholders (FULL NAME, YEAR-MO-DA …). These fields are required by GlotPress/Poedit to generate valid MO files and for attribution. Please fill them in or they’ll remain literal strings in the compiled header.


76-81: Placeholder retained correctly – LGTM

#, php-format flag has been added and %s is preserved in both msgid and msgstr.


142-146: Plural-placeholders mirrored accurately

The %1$s / %2$s tokens are kept verbatim in the French string, so runtime formatting will be safe.


2036-2039: New string added – translation looks good

No placeholders involved; French wording is accurate and matches tone of the rest of the file.

languages/accessibility-checker-nb_NO.po (2)

78-81: Place-holder usage looks correct.

php-format flag was added and the %s token is preserved 1-for-1 in the Norwegian translation – no action needed.


2036-2038: New error message translated accurately

The Norwegian string conveys the same meaning and no variables are involved.

languages/accessibility-checker-he_IL.po (1)

76-81: Placeholders preserved – good job

msgid contains a %s placeholder and the translation keeps it intact and in the correct position.
Flag #, php-format is also present, so tooling will validate it automatically.

languages/accessibility-checker-de_DE.po (4)

78-81: Placeholder order OK – flag added correctly

#, php-format has been added and the German translation keeps the solitary %s placeholder intact. Looks good.


142-147: Plural placeholders preserved

Both %1$s / %2$s placeholders are present in the translation, and #, php-format is set. No action needed.


255-269: Plural strings: confirm header once fixed

The plural forms (msgid, msgid_plural, msgstr[0], msgstr[1]) are correct for German. Once the Plural-Forms header (see first comment) is in place, these entries will evaluate properly.


2036-2039: New string added – no placeholder flag required

The new message has no interpolation tokens, so the absence of php-format / js-format flags is fine.

languages/accessibility-checker-nl_NL.po (1)

78-83: ```shell
#!/bin/bash

Verify placeholder parity across msgid/msgstr entries in languages/accessibility-checker-nl_NL.po

python3 - <<'PY'
import re

bad = []
with open('languages/accessibility-checker-nl_NL.po', encoding='utf-8') as f:
entries = f.read().split('\n\n')
for entry in entries:
lines = entry.splitlines()
msgid = next((l[len('msgid '):].strip().strip('"') for l in lines if l.startswith('msgid ')), None)
msgstr = next((l[len('msgstr '):].strip().strip('"') for l in lines if l.startswith('msgstr ')), None)
if msgid and msgstr and '%' in msgid:
cnt_id = len(re.findall(r'%\d*$?[sd]', msgid))
cnt_str = len(re.findall(r'%\d*$?[sd]', msgstr))
if cnt_id != cnt_str:
bad.append((msgid, cnt_id, cnt_str))
if bad:
for m, i, s in bad:
print(f"Mismatch: "{m}" has {i} placeholders in msgid vs {s} in msgstr")
print(f"{len(bad)} mismatch(es) found")
else:
print("0 mismatch(es) found")
PY


</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment on lines 254 to 261
#. translators: %s: Number of errors
#: admin/class-ajax.php:133
#, php-format
msgid "%s Error"
msgid_plural "%s Errors"
msgstr[0] "%s خطأ"
msgstr[1] "%s أخطاء"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Arabic plural forms reduced to 2 – will render incorrectly

Arabic requires six plural forms (nplurals=6; plural=...).
The current entry defines only msgstr[0] and msgstr[1], so four forms are missing and WordPress will fall back to English when those indices are requested.

Suggested pattern (adjust wording as you see fit):

-msgstr[0] "%s خطأ"
-msgstr[1] "%s أخطاء"
+msgstr[0] "%s خطأ"
+msgstr[1] "%s خطأان"
+msgstr[2] "%s أخطاء"
+msgstr[3] "%s خطأ"
+msgstr[4] "%s خطأ"
+msgstr[5] "%s أخطاء"

Replicate the 6-item structure for every pluralised string (Errors, Warnings, etc.) added in this PR.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#. translators: %s: Number of errors
#: admin/class-ajax.php:133
#, php-format
msgid "%s Error"
msgid_plural "%s Errors"
msgstr[0] "%s خطأ"
msgstr[1] "%s أخطاء"
#. translators: %s: Number of errors
#: admin/class-ajax.php:133
#, php-format
msgid "%s Error"
msgid_plural "%s Errors"
msgstr[0] "%s خطأ"
msgstr[1] "%s خطأان"
msgstr[2] "%s أخطاء"
msgstr[3] "%s خطأ"
msgstr[4] "%s خطأ"
msgstr[5] "%s أخطاء"
🤖 Prompt for AI Agents
In languages/accessibility-checker-ar.po around lines 254 to 261, the Arabic
plural forms are incorrectly defined with only two forms, but Arabic requires
six plural forms. Update the plural forms to include all six required msgstr
indices, providing appropriate translations for each plural form to ensure
correct rendering in WordPress. Replicate this six-form structure for every
pluralized string in the file.

Comment on lines 265 to 269
msgid "%s Contrast Error"
msgid_plural "%s Contrast Errors"
msgstr[0] "%s Błąd kontrastu"
msgstr[1] "%s Błędów kontrastu"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Missing plural form for “Contrast Error” message

Same problem as above – only two plural indices are provided.

 msgid "%s Contrast Error"
 msgid_plural "%s Contrast Errors"
-msgstr[0] "%s Błąd kontrastu"
-msgstr[1] "%s Błędów kontrastu"
+msgstr[0] "%s Błąd kontrastu"
+msgstr[1] "%s Błędy kontrastu"
+msgstr[2] "%s Błędów kontrastu"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
msgid "%s Contrast Error"
msgid_plural "%s Contrast Errors"
msgstr[0] "%s Błąd kontrastu"
msgstr[1] "%s Błędów kontrastu"
msgid "%s Contrast Error"
msgid_plural "%s Contrast Errors"
msgstr[0] "%s Błąd kontrastu"
msgstr[1] "%s Błędy kontrastu"
msgstr[2] "%s Błędów kontrastu"
🤖 Prompt for AI Agents
In languages/accessibility-checker-pl_PL.po around lines 265 to 269, the plural
forms for the "%s Contrast Error" message only provide two plural indices, but
Polish requires more plural forms. Update the file to include all necessary
plural forms according to Polish pluralization rules by adding the correct
number of msgstr entries and adjusting the plural formula in the header if
needed.

Comment on lines 273 to 277
msgid "%s Warning"
msgid_plural "%s Warnings"
msgstr[0] "%s Ostrzeżenie"
msgstr[1] "%s Ostrzeżeń"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Plural array incomplete for “Warning”

 msgid "%s Warning"
 msgid_plural "%s Warnings"
-msgstr[0] "%s Ostrzeżenie"
-msgstr[1] "%s Ostrzeżeń"
+msgstr[0] "%s Ostrzeżenie"
+msgstr[1] "%s Ostrzeżenia"
+msgstr[2] "%s Ostrzeżeń"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
msgid "%s Warning"
msgid_plural "%s Warnings"
msgstr[0] "%s Ostrzeżenie"
msgstr[1] "%s Ostrzeżeń"
msgid "%s Warning"
msgid_plural "%s Warnings"
msgstr[0] "%s Ostrzeżenie"
msgstr[1] "%s Ostrzeżenia"
msgstr[2] "%s Ostrzeżeń"
🤖 Prompt for AI Agents
In languages/accessibility-checker-pl_PL.po around lines 273 to 277, the plural
forms for the translation of "Warning" are incomplete. Review the Polish plural
rules and add the missing plural forms to the msgstr array so that all plural
cases are properly covered according to the language's pluralization rules.

Comment on lines 255 to 261
#: admin/class-ajax.php:133
#, php-format
msgid "%s Error"
msgid_plural "%s Errors"
msgstr[0] "%s Błąd"
msgstr[1] "%s Błędów"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Polish plural rule not respected – add the third plural form

Polish requires three plural forms (msgstr[0], msgstr[1], msgstr[2]).
This entry only defines two, which breaks runtime plural-selection and can surface as %s Error being shown in Polish UIs.

 msgid "%s Error"
 msgid_plural "%s Errors"
-msgstr[0] "%s Błąd"
-msgstr[1] "%s Błędów"
+msgstr[0] "%s Błąd"        # singular (1)
+msgstr[1] "%s Błędy"       # few   (2-4, 22-24 …)
+msgstr[2] "%s Błędów"      # many  (0, 5-21, 25…)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#: admin/class-ajax.php:133
#, php-format
msgid "%s Error"
msgid_plural "%s Errors"
msgstr[0] "%s Błąd"
msgstr[1] "%s Błędów"
#: admin/class-ajax.php:133
#, php-format
msgid "%s Error"
msgid_plural "%s Errors"
msgstr[0] "%s Błąd" # singular (1)
msgstr[1] "%s Błędy" # few (2-4, 22-24 …)
msgstr[2] "%s Błędów" # many (0, 5-21, 25…)
🤖 Prompt for AI Agents
In languages/accessibility-checker-pl_PL.po around lines 255 to 261, the Polish
plural forms are incomplete as only two forms are defined. Add the third plural
form msgstr[2] according to Polish plural rules to ensure correct plural
selection at runtime. Update the entry to include msgstr[2] with the appropriate
translation for the third plural case.

Comment on lines 3 to 16
msgid ""
msgstr ""
"Project-Id-Version: Accessibility Checker 1.23.1\n"
"Project-Id-Version: Accessibility Checker 1.25.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accessibility-checker\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2025-06-03T13:44:51+00:00\n"
"POT-Creation-Date: 2025-06-18T17:40:04+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.11.0\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: accessibility-checker\n"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Missing Language and Plural-Forms headers – plural rules will not be applied

The PO header lacks both the Language: and the Plural-Forms: directives.
Without them, msgid/msgid_plural pairs (e.g. the %s Error/Errors strings) will default to English rules at run-time, producing wrong Hebrew inflections or even runtime warnings when the MO file is loaded.

Add the two mandatory lines right after the existing header keys:

 "Content-Transfer-Encoding: 8bit\n"
+"Language: he_IL\n"
+"Plural-Forms: nplurals=4; \
+ plural=n==1 ? 0 : n==2 ? 1 : n<10 ? 2 : 3;\n"
 "POT-Creation-Date: 2025-06-18T17:40:04+00:00\n"

(WordPress follows CLDR and expects 4-form Hebrew rules; adjust only if you use a different plural formula engine.)

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In languages/accessibility-checker-he_IL.po between lines 3 and 16, the PO file
header is missing the mandatory Language and Plural-Forms entries. Add a
Language header specifying "he" and a Plural-Forms header with the Hebrew plural
formula (nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n%10>=3 && n%10<=10 ? 2 :
3);) immediately after the existing header keys to ensure correct pluralization
and avoid runtime warnings.

Comment on lines +5 to 15
"Project-Id-Version: Accessibility Checker 1.25.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accessibility-checker\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2025-06-03T13:44:51+00:00\n"
"POT-Creation-Date: 2025-06-18T17:40:04+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.11.0\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: accessibility-checker\n"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Header metadata incomplete – update Language, Plural-Forms, Last-Translator, and PO-Revision-Date

The header still contains the boiler-plate placeholders (FULL NAME, LANGUAGE <LL@li.org>, YEAR-MO-DA …) and misses the mandatory
"Language: de_DE\n" and Plural-Forms lines. These fields are required for WordPress to recognise the locale and to apply correct plural rules.

 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de_DE\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: 2025-06-24 18:00+0000\n"

Please also fill in a real translator name / e-mail before shipping.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"Project-Id-Version: Accessibility Checker 1.25.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accessibility-checker\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2025-06-03T13:44:51+00:00\n"
"POT-Creation-Date: 2025-06-18T17:40:04+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.11.0\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: accessibility-checker\n"
"Project-Id-Version: Accessibility Checker 1.25.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/accessibility-checker\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German <de@li.org>\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2025-06-18T17:40:04+00:00\n"
"PO-Revision-Date: 2025-06-24 18:00+0000\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: accessibility-checker\n"
🤖 Prompt for AI Agents
In languages/accessibility-checker-de_DE.po around lines 5 to 15, update the
header metadata by replacing placeholder values with actual data: set "Language:
de_DE\n", add the correct "Plural-Forms" line for German, fill in a real
translator name and email in "Last-Translator", and update "PO-Revision-Date"
with the current date and time. This ensures WordPress correctly recognizes the
locale and applies plural rules.

Comment on lines 808 to 812
#. translators: %1%s: A <code> tag containing target="_blank".
#: includes/classes/Fixes/Fix/AddNewWindowWarningFix.php:73
#, php-format
msgid "Add a label and icon to links with %1$s informing users they will open a new tab/window. %2$sNote: This setting will have no effect if the \"Block Links Opening New Windows\" fix is enabled.%3$s"
msgstr "Lisää %1$s sisältäviin linkkeihin merkintä ja kuvake, jotka ilmoittavat käyttäjille, että ne avaavat uuden välilehden/ikkunan. %2$sHuomautus: Tällä asetuksella ei ole vaikutusta, jos \"Estää linkkien avautumisen uuteen ikkunaan\" -korjaus on käytössä%3$s.%3$s"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Duplicate %3$s placeholder – will cause printf() mismatch

msgid contains %1$s, %2$s, %3$s — each once.
The Finnish translation repeats %3$s twice (…%3$s.%3$s), so printf() will receive 4 placeholders while only 3 values are passed. This triggers runtime warnings and breaks rendering.

-msgstr "Lisää %1$s sisältäviin linkkeihin merkintä ja kuvake, jotka ilmoittavat käyttäjille, että ne avaavat uuden välilehden/ikkunan. %2$sHuomautus: Tällä asetuksella ei ole vaikutusta, jos \"Estää linkkien avautumisen uuteen ikkunaan\" -korjaus on käytössä%3$s.%3$s"
+msgstr "Lisää %1$s sisältäviin linkkeihin merkintä ja kuvake, jotka ilmoittavat käyttäjille, että ne avaavat uuden välilehden/ikkunan. %2$sHuomautus: Tällä asetuksella ei ole vaikutusta, jos \"Estää linkkien avautumisen uuteen ikkunaan\" -korjaus on käytössä%3$s"

One %3$s is sufficient and keeps placeholder counts aligned.

🤖 Prompt for AI Agents
In languages/accessibility-checker-fi.po around lines 808 to 812, the Finnish
translation msgstr repeats the %3$s placeholder twice, causing a mismatch with
the msgid which has only one %3$s. Remove the duplicate %3$s in the translation
so that the number of placeholders matches exactly the msgid, preventing runtime
warnings and rendering issues.

@pattonwebz pattonwebz closed this Jun 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants