Skip to content

New Crowdin updates#13

Open
pokecodebot wants to merge 18 commits intomainfrom
l10n_main
Open

New Crowdin updates#13
pokecodebot wants to merge 18 commits intomainfrom
l10n_main

Conversation

@pokecodebot
Copy link
Collaborator

@pokecodebot pokecodebot commented Feb 12, 2026

Summary by CodeRabbit

  • New Features
    • Added comprehensive localization for Catalan, German, Spanish, French, Japanese, and Portuguese.
    • Translations cover the chatbot admin interface, configuration settings, forms, system messages, error handling, and workflow interactions across the new languages.

@coderabbitai
Copy link

coderabbitai bot commented Feb 25, 2026

📝 Walkthrough

Walkthrough

Adds six new locale files (config/locales/ca.yml, de.yml, es.yml, fr.yml, ja.yml, pt.yml) containing Catalan, German, Spanish, French, Japanese, and Portuguese translations for the chatbot admin UI, configuration forms, messages, providers, and workflow-related strings.

Changes

Cohort / File(s) Summary
New locale files
config/locales/ca.yml, config/locales/de.yml, config/locales/es.yml, config/locales/fr.yml, config/locales/ja.yml, config/locales/pt.yml
Adds localized strings for chatbot admin menus, settings and forms, messages (deactivated, generic_error, reset_workflows, stale_cleared), providers (WhatsApp), and multiple workflow groups (base, comments, organization_welcome, proposals, single_participatory_space). Purely data additions with consistent nested key structures across languages.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 New voices hop into the bot's little hive,
Català, Deutsch, Español, Français arrive.
日本語 and Português join the friendly throng,
Now every prompt and button sings along! 🥕✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'New Crowdin updates' accurately describes the pull request, which adds localization files for multiple languages (Catalan, German, Spanish, French, Japanese, Portuguese) from Crowdin, the translation management platform.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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 l10n_main

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

Copy link

@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

♻️ Duplicate comments (5)
config/locales/de.yml (1)

1-85: No German translations — all strings are English.

Same issue as flagged in ca.yml (e.g., cancel: Cancel instead of "Abbrechen", save: Save settings instead of "Einstellungen speichern").

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/de.yml` around lines 1 - 85, The de.yml file contains English
strings instead of German; replace the English values with proper German
translations for all keys under de: decidim: chatbot (notably
admin.settings.form keys like cancel, save, loading; admin.settings.index.title;
organization_welcome_form.custom_text and delegate_workflow;
single_participatory_space_form labels and errors such as component_id_blank and
select_space_first; toggle.disabled/enabled; update.error/success; messages.*;
providers.whatsapp.description/name; and workflows.* messages and buttons like
unprocessable_input, comment_received, instructions, comment_created, signature,
and all buttons). Update each value to its correct German equivalent while
keeping the YAML keys unchanged.
config/locales/fr.yml (1)

1-85: No French translations — all strings are English.

Same issue as flagged in ca.yml. Every value here is untranslated English (e.g., cancel: Cancel instead of "Annuler", loading: Loading... instead of "Chargement…").

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/fr.yml` around lines 1 - 85, The fr.yml file contains
untranslated English strings under the fr.decidim.chatbot namespace; replace
each English value with the correct French translation for keys such as
decidim.chatbot.admin.form.cancel, .form.loading, .admin.settings.edit.title,
.messages.*, .providers.whatsapp.description, and all .workflows.* entries
(e.g., .workflows.base.unprocessable_input, .workflows.comments.instructions,
.workflows.comments.comment_created, .workflows.proposals.no_proposals, etc.);
preserve interpolation tokens (%{workflow}, %{provider}, %{title}, %{count}) and
punctuation/quoting where present, and make sure special characters (accents,
ellipses) are valid YAML strings.
config/locales/es.yml (1)

1-85: No Spanish translations — all strings are English.

Same issue as flagged in ca.yml (e.g., cancel: Cancel instead of "Cancelar", enabled: Enabled instead of "Activado").

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/es.yml` around lines 1 - 85, The Spanish locale file contains
English strings; replace all English values with their correct Spanish
translations (e.g., change keys like cancel, enabled, loading, save, configure,
chatbot settings, organization_welcome_form.custom_text,
single_participatory_space_form.component, toggle.disabled/toggle.enabled,
update.error/update.success, messages.*, providers.whatsapp.description/name,
workflows.base.unprocessable_input, workflows.comments.* and buttons such as
submit/exit, proposals.* and single_participatory_space.*) so the values are
proper Spanish (e.g., "Cancel" -> "Cancelar", "Enabled" -> "Activado", etc.);
update every leaf value under the top-level es.decidim.chatbot namespace to
Spanish while keeping keys intact.
config/locales/ja.yml (1)

1-85: No Japanese translations — all strings are English.

Same issue as flagged in ca.yml. This is particularly evident for Japanese, where translated strings should use Japanese characters (e.g., cancel: キャンセル, not cancel: Cancel).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/ja.yml` around lines 1 - 85, The ja.yml file currently
contains English text for all chatbot locale keys; update all entries under
decidim.chatbot (e.g., admin.menu.chatbot, admin.settings.form.cancel,
admin.settings.form.configuration_for, admin.settings.index.title,
admin.organization_welcome_form.custom_text, single_participatory_space_form.*
keys, toggle.disabled/enabled, update.error/success, messages.* like
deactivated/generic_error, providers.whatsapp.description/name, and workflows.*
including buttons and messages) with proper Japanese translations (use Japanese
characters, correct phrasing and placeholders like %{workflow} and %{provider}
preserved). Ensure placeholder tokens remain unchanged, keep YAML structure and
indentation, and run a locale lint/check to confirm no missing keys compared to
the English source.
config/locales/pt.yml (1)

1-85: No Portuguese translations — all strings are English.

Same issue as flagged in ca.yml (e.g., cancel: Cancel instead of "Cancelar", loading: Loading... instead of "Carregando…").

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/pt.yml` around lines 1 - 85, The Portuguese locale file
contains English strings; replace them with proper Portuguese translations for
the keys under pt.decidim.chatbot (e.g.,
pt.decidim.chatbot.admin.settings.form.cancel, .loading, .no_extra_settings,
.save, .index.title, .organization_welcome_form.custom_text, and all messages
under pt.decidim.chatbot.workflows and providers). Locate and update each
English value to the correct Portuguese equivalent (for example "Cancel" ->
"Cancelar", "Loading..." -> "Carregando…", "Chatbot settings saved
successfully." -> "Configurações do chatbot salvas com sucesso.", etc.), keeping
interpolation placeholders (like %{workflow}, %{provider}, %{title}, %{count})
intact and preserving YAML structure and punctuation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@config/locales/ca.yml`:
- Around line 1-85: The locale files (e.g., top-level key "ca:" under
decidim.chatbot) contain only English strings (keys like "cancel", "enabled",
messages under "workflows", "providers", etc.); replace each English value with
the correct Catalan translations (or remove the locale file) and ensure the
Crowdin translation sync is complete before committing; specifically update
values for keys such as cancel, enabled, loading, save, configuration_for,
current_workflow, messages.deactivated/reset_workflows/generic_error,
providers.whatsapp.description/name, and all workflows.* strings, or omit the
locale files until verified translations exist.

---

Duplicate comments:
In `@config/locales/de.yml`:
- Around line 1-85: The de.yml file contains English strings instead of German;
replace the English values with proper German translations for all keys under
de: decidim: chatbot (notably admin.settings.form keys like cancel, save,
loading; admin.settings.index.title; organization_welcome_form.custom_text and
delegate_workflow; single_participatory_space_form labels and errors such as
component_id_blank and select_space_first; toggle.disabled/enabled;
update.error/success; messages.*; providers.whatsapp.description/name; and
workflows.* messages and buttons like unprocessable_input, comment_received,
instructions, comment_created, signature, and all buttons). Update each value to
its correct German equivalent while keeping the YAML keys unchanged.

In `@config/locales/es.yml`:
- Around line 1-85: The Spanish locale file contains English strings; replace
all English values with their correct Spanish translations (e.g., change keys
like cancel, enabled, loading, save, configure, chatbot settings,
organization_welcome_form.custom_text,
single_participatory_space_form.component, toggle.disabled/toggle.enabled,
update.error/update.success, messages.*, providers.whatsapp.description/name,
workflows.base.unprocessable_input, workflows.comments.* and buttons such as
submit/exit, proposals.* and single_participatory_space.*) so the values are
proper Spanish (e.g., "Cancel" -> "Cancelar", "Enabled" -> "Activado", etc.);
update every leaf value under the top-level es.decidim.chatbot namespace to
Spanish while keeping keys intact.

In `@config/locales/fr.yml`:
- Around line 1-85: The fr.yml file contains untranslated English strings under
the fr.decidim.chatbot namespace; replace each English value with the correct
French translation for keys such as decidim.chatbot.admin.form.cancel,
.form.loading, .admin.settings.edit.title, .messages.*,
.providers.whatsapp.description, and all .workflows.* entries (e.g.,
.workflows.base.unprocessable_input, .workflows.comments.instructions,
.workflows.comments.comment_created, .workflows.proposals.no_proposals, etc.);
preserve interpolation tokens (%{workflow}, %{provider}, %{title}, %{count}) and
punctuation/quoting where present, and make sure special characters (accents,
ellipses) are valid YAML strings.

In `@config/locales/ja.yml`:
- Around line 1-85: The ja.yml file currently contains English text for all
chatbot locale keys; update all entries under decidim.chatbot (e.g.,
admin.menu.chatbot, admin.settings.form.cancel,
admin.settings.form.configuration_for, admin.settings.index.title,
admin.organization_welcome_form.custom_text, single_participatory_space_form.*
keys, toggle.disabled/enabled, update.error/success, messages.* like
deactivated/generic_error, providers.whatsapp.description/name, and workflows.*
including buttons and messages) with proper Japanese translations (use Japanese
characters, correct phrasing and placeholders like %{workflow} and %{provider}
preserved). Ensure placeholder tokens remain unchanged, keep YAML structure and
indentation, and run a locale lint/check to confirm no missing keys compared to
the English source.

In `@config/locales/pt.yml`:
- Around line 1-85: The Portuguese locale file contains English strings; replace
them with proper Portuguese translations for the keys under pt.decidim.chatbot
(e.g., pt.decidim.chatbot.admin.settings.form.cancel, .loading,
.no_extra_settings, .save, .index.title, .organization_welcome_form.custom_text,
and all messages under pt.decidim.chatbot.workflows and providers). Locate and
update each English value to the correct Portuguese equivalent (for example
"Cancel" -> "Cancelar", "Loading..." -> "Carregando…", "Chatbot settings saved
successfully." -> "Configurações do chatbot salvas com sucesso.", etc.), keeping
interpolation placeholders (like %{workflow}, %{provider}, %{title}, %{count})
intact and preserving YAML structure and punctuation.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6140ecd and fe01f2f.

📒 Files selected for processing (6)
  • config/locales/ca.yml
  • config/locales/de.yml
  • config/locales/es.yml
  • config/locales/fr.yml
  • config/locales/ja.yml
  • config/locales/pt.yml

Comment on lines 1 to 85
---
ca:
decidim:
chatbot:
admin:
menu:
chatbot: Chatbot
settings:
edit:
title: Chatbot configuration
form:
cancel: Cancel
configuration_for: Configuration for %{workflow}
current_workflow: Current workflow (%{provider})
enabled: Enabled
loading: Loading...
no_extra_settings: No additional configuration needed for this workflow.
save: Save settings
index:
configure: Configure
title: Chatbot Settings
organization_welcome_form:
custom_text: Initial message (defaults to organization's short description)
delegate_workflow: Choose the workflow to handle the "Participate" button
errors:
invalid_delegate_workflow: The selected workflow is not valid or not configured.
no_workflows_available: No workflows available
single_participatory_space_form:
component: Choose the component
errors:
component_id_blank: Component is required
participatory_space_gid_blank: Participatory space is required
instructions: Instructions (optional) - displayed before showing the space information
participatory_space: Choose the participatory space
select_component: Select a component...
select_space: Select a participatory space...
select_space_first: Select a participatory space first
toggle:
disabled: Chatbot has been disabled.
enabled: Chatbot has been enabled.
update:
error: There was an error saving the settings.
success: Chatbot settings saved successfully.
messages:
deactivated: The chatbot is currently deactivated. Please try again later.
reset_workflows: Thanks for participating! You can start again by sending any message.
stale_cleared: Your previous session was cleared due to inactivity. Starting fresh!
generic_error: Sorry, something went wrong while processing your request. Please try again later.
providers:
whatsapp:
description: Enable to receive and respond to messages via WhatsApp Business API.
name: WhatsApp
workflows:
base:
buttons:
exit: Exit & go back
reset: End conversation
unprocessable_input: Sorry, I couldn't process that. Please try again with a different message or use "Exit & go back" or "End conversation" to start over.
comments:
comment_received: Here is your comment, if you want to change it just send a new message. If you're happy with it, click "Submit comment".
resource_not_found: Unfortunately, the requested resource could not be found. Please choose another one or exit and restart.
instructions: Thanks for your interest in commenting "%{title}"! Please write your comment below and send it to me. You will have the chance to review and edit your comment before submitting it.
comment_created: "Your comment has been published successfully! You can view it here:"
comment_creation_failed: "Unfortunately, your comment could not be published. Please try again or contact support."
signature: "\n\nSent via %{provider}"
buttons:
submit: Publish comment
exit: Cancel & go back
organization_welcome:
title: Organization Welcome
proposals:
buttons:
comment: Comment proposal
more: View more
view_proposal: View proposal
no_more_proposals: There are no more proposals to show. Please choose one of the proposals above.
no_proposals: There are no proposals published yet. Please check back later.
remaining_proposals: There are %{count} more proposals. Click "View more" to see them.
single_participatory_space:
buttons:
more_info: More info
participate: Participate
no_spaces: There are no active participatory spaces at the moment. Please try again later.
not_ready_yet: This feature is not ready yet. Please try again later.
title: Single Participatory Space
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find all locale files in the config/locales directory
echo "=== Checking what locale files exist ==="
find config/locales -name "*.yml" -type f | sort

echo ""
echo "=== File sizes comparison ==="
ls -lh config/locales/*.yml 2>/dev/null | grep -E "(ca|de|es|fr|ja|pt|en)" || echo "No matching files found"

Repository: openpoke/decidim-module-chatbot

Length of output: 797


🏁 Script executed:

#!/bin/bash
# Check if en.yml exists and compare sizes
echo "=== Comparing file sizes of all 6 locale files ==="
for file in ca de es fr ja pt; do
  wc -l "config/locales/${file}.yml" 2>/dev/null || echo "File config/locales/${file}.yml not found"
done

echo ""
echo "=== Check for English base ==="
wc -l config/locales/en.yml 2>/dev/null || echo "en.yml not found"

Repository: openpoke/decidim-module-chatbot

Length of output: 332


🏁 Script executed:

#!/bin/bash
# Extract and compare content (excluding first 2 lines with locale key)
echo "=== Comparing ca.yml vs de.yml (excluding top-level key) ==="
diff <(tail -n +3 config/locales/ca.yml) <(tail -n +3 config/locales/de.yml) | head -20

echo ""
echo "=== Comparing ca.yml vs en.yml (if en.yml exists) ==="
if [ -f config/locales/en.yml ]; then
  diff <(tail -n +3 config/locales/ca.yml) <(tail -n +3 config/locales/en.yml) | head -20
else
  echo "en.yml not found"
fi

Repository: openpoke/decidim-module-chatbot

Length of output: 383


🏁 Script executed:

#!/bin/bash
# Read first 20 lines of ca.yml and de.yml to spot check
echo "=== First 20 lines of ca.yml ==="
head -20 config/locales/ca.yml

echo ""
echo "=== First 20 lines of de.yml ==="
head -20 config/locales/de.yml

echo ""
echo "=== First 20 lines of en.yml ==="
head -20 config/locales/en.yml

Repository: openpoke/decidim-module-chatbot

Length of output: 1837


🏁 Script executed:

#!/bin/bash
# Extract just the content lines (skip YAML key line) for comparison
echo "=== Content of ca.yml (lines 3-20) ==="
sed -n '3,20p' config/locales/ca.yml

echo ""
echo "=== Content of de.yml (lines 3-20) ==="
sed -n '3,20p' config/locales/de.yml

echo ""
echo "=== Content of en.yml (lines 3-20) ==="
sed -n '3,20p' config/locales/en.yml

echo ""
echo "=== Are ca and de identical (except locale key)? ==="
diff <(sed '1,2d' config/locales/ca.yml) <(sed '1,2d' config/locales/de.yml) && echo "YES - identical" || echo "NO - different"

Repository: openpoke/decidim-module-chatbot

Length of output: 2005


🏁 Script executed:

#!/bin/bash
# Check specific translation examples
echo "=== Checking specific keys across files ==="
echo "ca.yml line with 'cancel':"
grep -n "cancel:" config/locales/ca.yml | head -1

echo ""
echo "de.yml line with 'cancel':"
grep -n "cancel:" config/locales/de.yml | head -1

echo ""
echo "en.yml line with 'cancel':"
grep -n "cancel:" config/locales/en.yml | head -1

echo ""
echo "=== Check actual values for 'enabled' key ==="
grep "enabled:" config/locales/ca.yml
grep "enabled:" config/locales/de.yml
grep "enabled:" config/locales/en.yml

Repository: openpoke/decidim-module-chatbot

Length of output: 566


🏁 Script executed:

#!/bin/bash
# Copy files and compare directly
cp config/locales/ca.yml /tmp/ca.yml
cp config/locales/de.yml /tmp/de.yml
cp config/locales/en.yml /tmp/en.yml
cp config/locales/es.yml /tmp/es.yml
cp config/locales/fr.yml /tmp/fr.yml
cp config/locales/ja.yml /tmp/ja.yml
cp config/locales/pt.yml /tmp/pt.yml

echo "=== Full diff: ca.yml vs de.yml ==="
diff /tmp/ca.yml /tmp/de.yml | head -30

echo ""
echo "=== Full diff: ca.yml vs en.yml (showing first 30 lines of diff) ==="
diff /tmp/ca.yml /tmp/en.yml | head -40

echo ""
echo "=== Full diff: ca.yml vs es.yml ==="
diff /tmp/ca.yml /tmp/es.yml | head -20

Repository: openpoke/decidim-module-chatbot

Length of output: 2507


🏁 Script executed:

#!/bin/bash
# Check if all 6 non-English files are identical to each other
echo "=== Checking if all 6 non-English files are identical ==="
for file in de es fr ja pt; do
  if diff /tmp/ca.yml /tmp/${file}.yml > /dev/null 2>&1; then
    echo "${file}.yml: IDENTICAL to ca.yml"
  else
    echo "${file}.yml: DIFFERENT from ca.yml"
  fi
done

echo ""
echo "=== Last 10 lines of ca.yml ==="
tail -10 /tmp/ca.yml

echo ""
echo "=== Last 10 lines of en.yml ==="
tail -10 /tmp/en.yml

echo ""
echo "=== Checking for non-English content in ca.yml ==="
# Look for accented characters or non-ASCII to detect translations
grep -n '[áàâäéèêëíìîïóòôöúùûüñç]' /tmp/ca.yml | head -5 || echo "No Catalan accents found (file likely untranslated)"

Repository: openpoke/decidim-module-chatbot

Length of output: 1462


All translation values in the six locale files are untranslated English — no actual Catalan, German, Spanish, French, Japanese, or Portuguese strings are present.

The files ca.yml, de.yml, es.yml, fr.yml, ja.yml, and pt.yml are byte-for-byte identical except for the top-level locale key. Every string value is in English:

  • Line 12: cancel: Cancel (should be "Cancel·la" in Catalan, "Abbrechen" in German, etc.)
  • Line 15: enabled: Enabled (should be "Activat", "Aktiviert", etc.)
  • All 85 lines of user-facing text (Lines 44–85) are entirely in English

Shipping these files means the application will advertise support for six languages while displaying only English to users in those locales, degrading their experience. Verify that the Crowdin project has completed translations for these languages before syncing, or remove these files until translations are ready.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/ca.yml` around lines 1 - 85, The locale files (e.g., top-level
key "ca:" under decidim.chatbot) contain only English strings (keys like
"cancel", "enabled", messages under "workflows", "providers", etc.); replace
each English value with the correct Catalan translations (or remove the locale
file) and ensure the Crowdin translation sync is complete before committing;
specifically update values for keys such as cancel, enabled, loading, save,
configuration_for, current_workflow,
messages.deactivated/reset_workflows/generic_error,
providers.whatsapp.description/name, and all workflows.* strings, or omit the
locale files until verified translations exist.

Copy link

@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: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@config/locales/de.yml`:
- Around line 1-89: The de locale contains English strings under keys like
de.decidem.chatbot.admin.form.cancel, de.decidem.chatbot.admin.form.loading,
de.decidem.chatbot.admin.form.save and many others; replace those English values
with proper German translations (e.g., "Cancel" -> "Abbrechen", "Loading..." ->
"Laden...", "Save settings" -> "Einstellungen speichern") across all keys under
de.decidem.chatbot.* or synchronize the file with Crowdin/your translation
source so the entire subtree (admin, messages, providers, workflows, etc.) is
translated into German before merging.

In `@config/locales/es.yml`:
- Around line 1-89: The es locale currently contains English strings; replace
all English values under the es.decidim.chatbot namespace with Spanish
translations (e.g., form.cancel -> "Cancelar", form.loading -> "Cargando...",
form.save -> "Guardar configuración") and translate other keys such as
messages.deactivated, messages.generic_error, messages.reset_workflows,
providers.whatsapp.description, workflows.base.unprocessable_input,
workflows.comments.* (comment_created, comment_creation_failed, instructions,
signature), organization_welcome_form.custom_text and
single_participatory_space.*; ensure every value under es.decidim.chatbot is
translated to Spanish or sync completed translations from Crowdin if you use it,
keeping key names (e.g., form.cancel,
organization_welcome_form.delegate_workflow, workflows.proposals.no_proposals)
unchanged.

In `@config/locales/ja.yml`:
- Around line 1-89: The ja: locale file contains English strings instead of
Japanese; update all chatbot translation values under decidim.chatbot (e.g.,
admin.form.cancel, admin.form.loading, admin.form.save and other keys like
messages.deactivated, workflows.base.unprocessable_input, comments.instructions,
etc.) with proper Japanese translations (or sync from Crowdin) so every value
under the ja: tree contains Japanese text rather than English; ensure YAML
structure and interpolation placeholders like %{workflow}, %{provider},
%{title}, and %{count} are preserved exactly.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fe01f2f and dbe4656.

📒 Files selected for processing (6)
  • config/locales/ca.yml
  • config/locales/de.yml
  • config/locales/es.yml
  • config/locales/fr.yml
  • config/locales/ja.yml
  • config/locales/pt.yml
🚧 Files skipped from review as they are similar to previous changes (3)
  • config/locales/ca.yml
  • config/locales/fr.yml
  • config/locales/pt.yml

Comment on lines +1 to +89
---
de:
decidim:
chatbot:
admin:
menu:
chatbot: Chatbot
settings:
edit:
title: Chatbot configuration
form:
cancel: Cancel
configuration_for: Configuration for %{workflow}
current_workflow: Current workflow (%{provider})
enabled: Enabled
loading: Loading...
no_extra_settings: No additional configuration needed for this workflow.
save: Save settings
index:
configure: Configure
title: Chatbot Settings
organization_welcome_form:
custom_text: Initial message (defaults to organization's short description)
delegate_workflow: Choose the workflow to handle the "Participate" button
errors:
invalid_delegate_workflow: The selected workflow is not valid or not configured.
no_workflows_available: No workflows available
single_participatory_space_form:
component: Choose the component
errors:
component_id_blank: Component is required
participatory_space_gid_blank: Participatory space is required
instructions: Instructions (optional) - displayed before showing the space information
participatory_space: Choose the participatory space
select_component: Select a component...
select_space: Select a participatory space...
select_space_first: Select a participatory space first
toggle:
disabled: Chatbot has been disabled.
enabled: Chatbot has been enabled.
update:
error: There was an error saving the settings.
success: Chatbot settings saved successfully.
messages:
deactivated: The chatbot is currently deactivated. Please try again later.
generic_error: Sorry, something went wrong while processing your request. Please try again later.
reset_workflows: Thanks for participating! You can start again by sending any message.
stale_cleared: Your previous session was cleared due to inactivity. Starting fresh!
providers:
whatsapp:
description: Enable to receive and respond to messages via WhatsApp Business API.
name: WhatsApp
workflows:
base:
buttons:
exit: Exit & go back
reset: End conversation
unprocessable_input: Sorry, I couldn't process that. Please try again with a different message or use "Exit & go back" or "End conversation" to start over.
comments:
buttons:
exit: Cancel & go back
submit: Publish comment
comment_created: 'Your comment has been published successfully! You can view it here:'
comment_creation_failed: Unfortunately, your comment could not be published. Please try again or contact support.
comment_received: Here is your comment, if you want to change it just send a new message. If you're happy with it, click "Publish comment".
instructions: Thanks for your interest in commenting "%{title}"! Please write your comment below and send it to me. You will have the chance to review and edit your comment before submitting it.
resource_not_found: Unfortunately, the requested resource could not be found. Please choose another one or exit and restart.
signature: |2-


Sent via %{provider}
organization_welcome:
title: Organization Welcome
proposals:
buttons:
comment: Comment proposal
more: View more
view_proposal: View proposal
comments_disabled: Commenting is disabled for this proposal.
no_more_proposals: There are no more proposals to show. Please choose one of the proposals above.
no_proposals: There are no proposals published yet. Please check back later.
remaining_proposals: There are %{count} more proposals. Click "View more" to see them.
single_participatory_space:
buttons:
more_info: More info
participate: Participate
no_spaces: There are no active participatory spaces at the moment. Please try again later.
not_ready_yet: This feature is not ready yet. Please try again later.
title: Single Participatory Space
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

German translations are missing — file contains English text only.

This locale file is declared as de: (German) but all string values remain in English. For example:

  • Line 12: cancel: Cancel → should be cancel: Abbrechen
  • Line 16: loading: Loading... → should be loading: Laden...
  • Line 18: save: Save settings → should be save: Einstellungen speichern

German-speaking users will see untranslated English text throughout the chatbot UI. Please ensure actual German translations are provided before merging, or coordinate with Crowdin to sync completed translations.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/de.yml` around lines 1 - 89, The de locale contains English
strings under keys like de.decidem.chatbot.admin.form.cancel,
de.decidem.chatbot.admin.form.loading, de.decidem.chatbot.admin.form.save and
many others; replace those English values with proper German translations (e.g.,
"Cancel" -> "Abbrechen", "Loading..." -> "Laden...", "Save settings" ->
"Einstellungen speichern") across all keys under de.decidem.chatbot.* or
synchronize the file with Crowdin/your translation source so the entire subtree
(admin, messages, providers, workflows, etc.) is translated into German before
merging.

Comment on lines +1 to +89
---
es:
decidim:
chatbot:
admin:
menu:
chatbot: Chatbot
settings:
edit:
title: Chatbot configuration
form:
cancel: Cancel
configuration_for: Configuration for %{workflow}
current_workflow: Current workflow (%{provider})
enabled: Enabled
loading: Loading...
no_extra_settings: No additional configuration needed for this workflow.
save: Save settings
index:
configure: Configure
title: Chatbot Settings
organization_welcome_form:
custom_text: Initial message (defaults to organization's short description)
delegate_workflow: Choose the workflow to handle the "Participate" button
errors:
invalid_delegate_workflow: The selected workflow is not valid or not configured.
no_workflows_available: No workflows available
single_participatory_space_form:
component: Choose the component
errors:
component_id_blank: Component is required
participatory_space_gid_blank: Participatory space is required
instructions: Instructions (optional) - displayed before showing the space information
participatory_space: Choose the participatory space
select_component: Select a component...
select_space: Select a participatory space...
select_space_first: Select a participatory space first
toggle:
disabled: Chatbot has been disabled.
enabled: Chatbot has been enabled.
update:
error: There was an error saving the settings.
success: Chatbot settings saved successfully.
messages:
deactivated: The chatbot is currently deactivated. Please try again later.
generic_error: Sorry, something went wrong while processing your request. Please try again later.
reset_workflows: Thanks for participating! You can start again by sending any message.
stale_cleared: Your previous session was cleared due to inactivity. Starting fresh!
providers:
whatsapp:
description: Enable to receive and respond to messages via WhatsApp Business API.
name: WhatsApp
workflows:
base:
buttons:
exit: Exit & go back
reset: End conversation
unprocessable_input: Sorry, I couldn't process that. Please try again with a different message or use "Exit & go back" or "End conversation" to start over.
comments:
buttons:
exit: Cancel & go back
submit: Publish comment
comment_created: 'Your comment has been published successfully! You can view it here:'
comment_creation_failed: Unfortunately, your comment could not be published. Please try again or contact support.
comment_received: Here is your comment, if you want to change it just send a new message. If you're happy with it, click "Publish comment".
instructions: Thanks for your interest in commenting "%{title}"! Please write your comment below and send it to me. You will have the chance to review and edit your comment before submitting it.
resource_not_found: Unfortunately, the requested resource could not be found. Please choose another one or exit and restart.
signature: |2-


Sent via %{provider}
organization_welcome:
title: Organization Welcome
proposals:
buttons:
comment: Comment proposal
more: View more
view_proposal: View proposal
comments_disabled: Commenting is disabled for this proposal.
no_more_proposals: There are no more proposals to show. Please choose one of the proposals above.
no_proposals: There are no proposals published yet. Please check back later.
remaining_proposals: There are %{count} more proposals. Click "View more" to see them.
single_participatory_space:
buttons:
more_info: More info
participate: Participate
no_spaces: There are no active participatory spaces at the moment. Please try again later.
not_ready_yet: This feature is not ready yet. Please try again later.
title: Single Participatory Space
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Spanish translations are missing — file contains English text only.

This locale file is declared as es: (Spanish) but all string values remain in English. For example:

  • Line 12: cancel: Cancel → should be cancel: Cancelar
  • Line 16: loading: Loading... → should be loading: Cargando...
  • Line 18: save: Save settings → should be save: Guardar configuración

Spanish-speaking users will see untranslated English text throughout the chatbot UI. Please ensure actual Spanish translations are provided before merging, or coordinate with Crowdin to sync completed translations.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/es.yml` around lines 1 - 89, The es locale currently contains
English strings; replace all English values under the es.decidim.chatbot
namespace with Spanish translations (e.g., form.cancel -> "Cancelar",
form.loading -> "Cargando...", form.save -> "Guardar configuración") and
translate other keys such as messages.deactivated, messages.generic_error,
messages.reset_workflows, providers.whatsapp.description,
workflows.base.unprocessable_input, workflows.comments.* (comment_created,
comment_creation_failed, instructions, signature),
organization_welcome_form.custom_text and single_participatory_space.*; ensure
every value under es.decidim.chatbot is translated to Spanish or sync completed
translations from Crowdin if you use it, keeping key names (e.g., form.cancel,
organization_welcome_form.delegate_workflow, workflows.proposals.no_proposals)
unchanged.

Comment on lines +1 to +89
---
ja:
decidim:
chatbot:
admin:
menu:
chatbot: Chatbot
settings:
edit:
title: Chatbot configuration
form:
cancel: Cancel
configuration_for: Configuration for %{workflow}
current_workflow: Current workflow (%{provider})
enabled: Enabled
loading: Loading...
no_extra_settings: No additional configuration needed for this workflow.
save: Save settings
index:
configure: Configure
title: Chatbot Settings
organization_welcome_form:
custom_text: Initial message (defaults to organization's short description)
delegate_workflow: Choose the workflow to handle the "Participate" button
errors:
invalid_delegate_workflow: The selected workflow is not valid or not configured.
no_workflows_available: No workflows available
single_participatory_space_form:
component: Choose the component
errors:
component_id_blank: Component is required
participatory_space_gid_blank: Participatory space is required
instructions: Instructions (optional) - displayed before showing the space information
participatory_space: Choose the participatory space
select_component: Select a component...
select_space: Select a participatory space...
select_space_first: Select a participatory space first
toggle:
disabled: Chatbot has been disabled.
enabled: Chatbot has been enabled.
update:
error: There was an error saving the settings.
success: Chatbot settings saved successfully.
messages:
deactivated: The chatbot is currently deactivated. Please try again later.
generic_error: Sorry, something went wrong while processing your request. Please try again later.
reset_workflows: Thanks for participating! You can start again by sending any message.
stale_cleared: Your previous session was cleared due to inactivity. Starting fresh!
providers:
whatsapp:
description: Enable to receive and respond to messages via WhatsApp Business API.
name: WhatsApp
workflows:
base:
buttons:
exit: Exit & go back
reset: End conversation
unprocessable_input: Sorry, I couldn't process that. Please try again with a different message or use "Exit & go back" or "End conversation" to start over.
comments:
buttons:
exit: Cancel & go back
submit: Publish comment
comment_created: 'Your comment has been published successfully! You can view it here:'
comment_creation_failed: Unfortunately, your comment could not be published. Please try again or contact support.
comment_received: Here is your comment, if you want to change it just send a new message. If you're happy with it, click "Publish comment".
instructions: Thanks for your interest in commenting "%{title}"! Please write your comment below and send it to me. You will have the chance to review and edit your comment before submitting it.
resource_not_found: Unfortunately, the requested resource could not be found. Please choose another one or exit and restart.
signature: |2-


Sent via %{provider}
organization_welcome:
title: Organization Welcome
proposals:
buttons:
comment: Comment proposal
more: View more
view_proposal: View proposal
comments_disabled: Commenting is disabled for this proposal.
no_more_proposals: There are no more proposals to show. Please choose one of the proposals above.
no_proposals: There are no proposals published yet. Please check back later.
remaining_proposals: There are %{count} more proposals. Click "View more" to see them.
single_participatory_space:
buttons:
more_info: More info
participate: Participate
no_spaces: There are no active participatory spaces at the moment. Please try again later.
not_ready_yet: This feature is not ready yet. Please try again later.
title: Single Participatory Space
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Japanese translations are missing — file contains English text only.

This locale file is declared as ja: (Japanese) but all string values remain in English with no Japanese characters present. For example:

  • Line 12: cancel: Cancel → should be cancel: キャンセル
  • Line 16: loading: Loading... → should be loading: 読み込み中...
  • Line 18: save: Save settings → should be save: 設定を保存

Japanese-speaking users will see untranslated English text throughout the chatbot UI. Please ensure actual Japanese translations are provided before merging, or coordinate with Crowdin to sync completed translations.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/locales/ja.yml` around lines 1 - 89, The ja: locale file contains
English strings instead of Japanese; update all chatbot translation values under
decidim.chatbot (e.g., admin.form.cancel, admin.form.loading, admin.form.save
and other keys like messages.deactivated, workflows.base.unprocessable_input,
comments.instructions, etc.) with proper Japanese translations (or sync from
Crowdin) so every value under the ja: tree contains Japanese text rather than
English; ensure YAML structure and interpolation placeholders like %{workflow},
%{provider}, %{title}, and %{count} are preserved exactly.

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.

1 participant