Conversation
📝 WalkthroughWalkthroughAdds six new locale files ( Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
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: Cancelinstead of "Abbrechen",save: Save settingsinstead 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: Cancelinstead 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: Cancelinstead of "Cancelar",enabled: Enabledinstead 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: キャンセル, notcancel: 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: Cancelinstead 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
📒 Files selected for processing (6)
config/locales/ca.ymlconfig/locales/de.ymlconfig/locales/es.ymlconfig/locales/fr.ymlconfig/locales/ja.ymlconfig/locales/pt.yml
| --- | ||
| 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 |
There was a problem hiding this comment.
🧩 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"
fiRepository: 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.ymlRepository: 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.ymlRepository: 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 -20Repository: 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.
There was a problem hiding this comment.
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
📒 Files selected for processing (6)
config/locales/ca.ymlconfig/locales/de.ymlconfig/locales/es.ymlconfig/locales/fr.ymlconfig/locales/ja.ymlconfig/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
| --- | ||
| 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 |
There was a problem hiding this comment.
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 becancel: Abbrechen - Line 16:
loading: Loading...→ should beloading: Laden... - Line 18:
save: Save settings→ should besave: 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.
| --- | ||
| 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 |
There was a problem hiding this comment.
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 becancel: Cancelar - Line 16:
loading: Loading...→ should beloading: Cargando... - Line 18:
save: Save settings→ should besave: 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.
| --- | ||
| 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 |
There was a problem hiding this comment.
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 becancel: キャンセル - Line 16:
loading: Loading...→ should beloading: 読み込み中... - Line 18:
save: Save settings→ should besave: 設定を保存
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.
Summary by CodeRabbit