Skip to content

i18n - translations#17472

Merged
charlesBochet merged 2 commits intomainfrom
i18n
Jan 27, 2026
Merged

i18n - translations#17472
charlesBochet merged 2 commits intomainfrom
i18n

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Created by Github action

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Jan 27, 2026

Greptile Overview

Greptile Summary

This automated PR adds three new translation strings for Organization Plan record-level permissions features. The translations were extracted from SettingsRolePermissionsObjectLevelRecordLevelSection.tsx and propagated across all 31 supported locales.

Changes:

  • Added 3 new English translation strings: "Ability to filter the records a user can interact with", "This feature is part of the Organization Plan", and "Upgrade to access"
  • Updated all 31 .po locale files (source files) with new translation keys
  • Updated all 31 generated .ts files (compiled TypeScript) with the new translation data
  • Non-English locales have empty msgstr values awaiting community translations

Minor issue:

  • Duplicate file reference found in translation ID uMOyEH where the same component path appears twice in the location metadata

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk as it only adds translation strings through an automated process
  • This is a standard automated translation extraction PR generated by GitHub Actions. The changes are purely additive (new translation strings) and follow the established i18n workflow using Lingui. All generated TypeScript files are properly compiled from the source .po files. The only minor issue is a duplicate file reference in metadata which doesn't affect functionality.
  • No files require special attention - this is standard automated translation output

Important Files Changed

Filename Overview
packages/twenty-front/src/locales/en.po Added 3 new translation strings for record-level permissions in Organization Plan features
packages/twenty-front/src/locales/fr-FR.po Added 3 new translation keys but translations are empty (awaiting French translations)
packages/twenty-front/src/locales/de-DE.po Added 3 new translation keys but translations are empty (awaiting German translations)
packages/twenty-front/src/locales/generated/en.ts Generated TypeScript file updated with new translation entries from en.po source
packages/twenty-front/src/locales/generated/fr-FR.ts Generated TypeScript file updated with new translation keys (empty values for untranslated strings)

Sequence Diagram

sequenceDiagram
    participant Dev as Developer/Code
    participant GHA as GitHub Action
    participant Lingui as Lingui CLI
    participant PO as .po Files
    participant TS as Generated .ts Files

    Dev->>GHA: Commits code with new t() translation calls
    GHA->>Lingui: Runs lingui extract
    Lingui->>PO: Extracts translation strings from source code
    Lingui->>PO: Updates all locale .po files with new msgid entries
    Note over PO: English gets msgstr values<br/>Other locales get empty msgstr
    GHA->>Lingui: Runs lingui compile
    Lingui->>TS: Compiles .po files to TypeScript
    Lingui->>TS: Generates JSON.parse() messages for each locale
    GHA->>GHA: Creates automated PR with translation updates
    Note over GHA: PR contains updated .po and .ts files
Loading

Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines 9501 to +9502
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
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.

Duplicate file reference for translation ID uMOyEH. The same file path SettingsRolePermissionsObjectLevelRecordLevelSection.tsx is listed twice on lines 9501-9502.

Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/twenty-front/src/locales/en.po
Line: 9501:9502

Comment:
Duplicate file reference for translation ID `uMOyEH`. The same file path `SettingsRolePermissionsObjectLevelRecordLevelSection.tsx` is listed twice on lines 9501-9502.

How can I resolve this? If you propose a fix, please make it concise.

@charlesBochet charlesBochet merged commit 43c9a75 into main Jan 27, 2026
10 checks passed
@charlesBochet charlesBochet deleted the i18n branch January 27, 2026 12:15
@github-actions
Copy link
Copy Markdown
Contributor Author

Fails
🚫

node failed.

Log

Details
�[31mError: �[39m SyntaxError: Unexpected token 'C', "Contributo"... is not valid JSON
    at JSON.parse (<anonymous>)
�[90m    at parseJSONFromBytes (node:internal/deps/undici/undici:4259:19)�[39m
�[90m    at successSteps (node:internal/deps/undici/undici:6882:27)�[39m
�[90m    at readAllBytes (node:internal/deps/undici/undici:5807:13)�[39m
�[90m    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)�[39m
danger-results://tmp/danger-results-61fdee37.json

Generated by 🚫 dangerJS against cfd5728

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

22 issues found across 62 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="packages/twenty-front/src/locales/zh-CN.po">

<violation number="1" location="packages/twenty-front/src/locales/zh-CN.po:575">
P3: Add the Chinese translation for this new label so the locale doesn’t render an untranslated string.</violation>
</file>

<file name="packages/twenty-front/src/locales/pt-BR.po">

<violation number="1" location="packages/twenty-front/src/locales/pt-BR.po:575">
P2: Provide a pt-BR translation for this new string; empty msgstr will display the English source in the UI.</violation>
</file>

<file name="packages/twenty-front/src/locales/ja-JP.po">

<violation number="1" location="packages/twenty-front/src/locales/ja-JP.po:575">
P2: New ja-JP entry is left untranslated; provide a Japanese msgstr so the UI doesn’t fall back to English.</violation>
</file>

<file name="packages/twenty-front/src/locales/it-IT.po">

<violation number="1" location="packages/twenty-front/src/locales/it-IT.po:575">
P2: New Italian translation is missing; the empty msgstr will fall back to English for Italian users.</violation>
</file>

<file name="packages/twenty-front/src/locales/no-NO.po">

<violation number="1" location="packages/twenty-front/src/locales/no-NO.po:575">
P3: Translate this string into Norwegian so the no-NO locale remains fully localized.</violation>
</file>

<file name="packages/twenty-front/src/locales/nl-NL.po">

<violation number="1" location="packages/twenty-front/src/locales/nl-NL.po:575">
P2: Translate this new "Upgrade to access" message so the nl-NL locale remains complete.</violation>
</file>

<file name="packages/twenty-front/src/locales/pl-PL.po">

<violation number="1" location="packages/twenty-front/src/locales/pl-PL.po:575">
P2: New translation entry is missing a Polish translation (msgstr is empty), so the UI will display the English string.</violation>
</file>

<file name="packages/twenty-front/src/locales/es-ES.po">

<violation number="1" location="packages/twenty-front/src/locales/es-ES.po:575">
P3: Provide a Spanish translation for this new string so the UI doesn’t fall back to the source language.</violation>
</file>

<file name="packages/twenty-front/src/locales/vi-VN.po">

<violation number="1" location="packages/twenty-front/src/locales/vi-VN.po:575">
P3: Newly added string has an empty Vietnamese translation, which will fall back to English in vi-VN. Provide a localized msgstr.</violation>
</file>

<file name="packages/twenty-front/src/locales/zh-TW.po">

<violation number="1" location="packages/twenty-front/src/locales/zh-TW.po:575">
P3: Translate this new string for zh-TW instead of leaving msgstr empty.</violation>
</file>

<file name="packages/twenty-front/src/locales/el-GR.po">

<violation number="1" location="packages/twenty-front/src/locales/el-GR.po:575">
P2: Missing Greek translation for the new "Upgrade to access" string.</violation>
</file>

<file name="packages/twenty-front/src/locales/cs-CZ.po">

<violation number="1" location="packages/twenty-front/src/locales/cs-CZ.po:575">
P2: Provide a Czech translation for this newly added string; leaving msgstr empty will surface an untranslated label in the UI.</violation>
</file>

<file name="packages/twenty-front/src/locales/af-ZA.po">

<violation number="1" location="packages/twenty-front/src/locales/af-ZA.po:574">
P3: Missing Afrikaans translation for the new "Ability to filter the records a user can interact with" string (msgstr is empty). This will show untranslated text in the UI.</violation>

<violation number="2" location="packages/twenty-front/src/locales/af-ZA.po:11725">
P3: Missing Afrikaans translation for "This feature is part of the Organization Plan" (msgstr is empty).</violation>
</file>

<file name="packages/twenty-front/src/locales/ko-KR.po">

<violation number="1" location="packages/twenty-front/src/locales/ko-KR.po:575">
P3: The new Korean locale entry is missing a translation (empty msgstr), so this string will remain untranslated in the ko-KR UI. Provide the localized text for this msgid.</violation>
</file>

<file name="packages/twenty-front/src/locales/he-IL.po">

<violation number="1" location="packages/twenty-front/src/locales/he-IL.po:575">
P3: New translation entry is left empty. Provide a Hebrew translation so the UI doesn’t fall back to English for he-IL.</violation>
</file>

<file name="packages/twenty-front/src/locales/ro-RO.po">

<violation number="1" location="packages/twenty-front/src/locales/ro-RO.po:575">
P2: New Romanian translation entry is empty, so the UI will fall back to English for this string. Provide a translated msgstr.</violation>
</file>

<file name="packages/twenty-front/src/locales/da-DK.po">

<violation number="1" location="packages/twenty-front/src/locales/da-DK.po:575">
P3: New string is introduced with an empty msgstr; add the Danish translation so the UI is localized.</violation>
</file>

<file name="packages/twenty-front/src/locales/fr-FR.po">

<violation number="1" location="packages/twenty-front/src/locales/fr-FR.po:575">
P3: Provide a French translation for this new string so the fr-FR locale doesn’t fall back to English.</violation>
</file>

<file name="packages/twenty-front/src/locales/fi-FI.po">

<violation number="1" location="packages/twenty-front/src/locales/fi-FI.po:574">
P3: New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.</violation>

<violation number="2" location="packages/twenty-front/src/locales/fi-FI.po:11725">
P3: New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.</violation>

<violation number="3" location="packages/twenty-front/src/locales/fi-FI.po:12406">
P3: New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
msgstr ""
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P2: Provide a pt-BR translation for this new string; empty msgstr will display the English source in the UI.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/pt-BR.po, line 575:

<comment>Provide a pt-BR translation for this new string; empty msgstr will display the English source in the UI.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "Capacidade de adicionar mais de uma URL"
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
 #. js-lingui-id: 7J3Y++
</file context>
Suggested change
msgstr ""
msgstr "Capacidade de filtrar os registros com os quais um usuário pode interagir"
Fix with Cubic

#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
msgstr ""
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P2: New ja-JP entry is left untranslated; provide a Japanese msgstr so the UI doesn’t fall back to English.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/ja-JP.po, line 575:

<comment>New ja-JP entry is left untranslated; provide a Japanese msgstr so the UI doesn’t fall back to English.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "複数のURLを追加する機能"
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
 #. js-lingui-id: 7J3Y++
</file context>
Suggested change
msgstr ""
msgstr "ユーザーが操作できるレコードをフィルターする権限"
Fix with Cubic

#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
msgstr ""
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P2: New Italian translation is missing; the empty msgstr will fall back to English for Italian users.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/it-IT.po, line 575:

<comment>New Italian translation is missing; the empty msgstr will fall back to English for Italian users.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "Possibilità di aggiungere più di un URL"
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
 #. js-lingui-id: 7J3Y++
</file context>
Suggested change
msgstr ""
msgstr "Possibilità di filtrare i record con cui un utente può interagire"
Fix with Cubic

#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
msgstr ""
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P2: Translate this new "Upgrade to access" message so the nl-NL locale remains complete.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/nl-NL.po, line 575:

<comment>Translate this new "Upgrade to access" message so the nl-NL locale remains complete.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "Mogelijkheid om meer dan één URL toe te voegen"
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
 #. js-lingui-id: 7J3Y++
</file context>
Suggested change
msgstr ""
msgstr "Upgrade om toegang te krijgen"
Fix with Cubic

#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
msgstr ""
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P2: New translation entry is missing a Polish translation (msgstr is empty), so the UI will display the English string.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/pl-PL.po, line 575:

<comment>New translation entry is missing a Polish translation (msgstr is empty), so the UI will display the English string.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "Możliwość dodania więcej niż jednego adresu URL"
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
 #. js-lingui-id: 7J3Y++
</file context>
Fix with Cubic

#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
msgstr ""
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P3: New string is introduced with an empty msgstr; add the Danish translation so the UI is localized.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/da-DK.po, line 575:

<comment>New string is introduced with an empty msgstr; add the Danish translation so the UI is localized.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "Mulighed for at tilføje mere end én URL"
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
 #. js-lingui-id: 7J3Y++
</file context>
Fix with Cubic

#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
msgstr ""
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P3: Provide a French translation for this new string so the fr-FR locale doesn’t fall back to English.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/fr-FR.po, line 575:

<comment>Provide a French translation for this new string so the fr-FR locale doesn’t fall back to English.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "Possibilité d'ajouter plus d'une URL"
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
 #. js-lingui-id: 7J3Y++
</file context>
Suggested change
msgstr ""
msgstr "Possibilité de filtrer les enregistrements avec lesquels un utilisateur peut interagir"
Fix with Cubic


#. js-lingui-id: ggd+Ee
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Upgrade to access"
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P3: New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/fi-FI.po, line 12406:

<comment>New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.</comment>

<file context>
@@ -12388,6 +12401,11 @@ msgstr "Päivitys"
 
+#. js-lingui-id: ggd+Ee
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Upgrade to access"
+msgstr ""
+
</file context>
Fix with Cubic


#. js-lingui-id: qHAJQ2
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "This feature is part of the Organization Plan"
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P3: New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/fi-FI.po, line 11725:

<comment>New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.</comment>

<file context>
@@ -11713,6 +11720,11 @@ msgstr ""
 
+#. js-lingui-id: qHAJQ2
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "This feature is part of the Organization Plan"
+msgstr ""
+
</file context>
Fix with Cubic


#. js-lingui-id: MjUIIf
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
msgid "Ability to filter the records a user can interact with"
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 27, 2026

Choose a reason for hiding this comment

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

P3: New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/twenty-front/src/locales/fi-FI.po, line 574:

<comment>New i18n string was added without a Finnish translation, so the fi-FI locale will show the English fallback (or blank) for this text.</comment>

<file context>
@@ -569,6 +569,11 @@ msgstr "Kyky lisätä useampi kuin yksi URL-osoite"
 
+#. js-lingui-id: MjUIIf
+#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelSection.tsx
+msgid "Ability to filter the records a user can interact with"
+msgstr ""
+
</file context>
Fix with Cubic

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