Skip to content

i18n - translations#15619

Merged
FelixMalfait merged 2 commits intomainfrom
i18n
Nov 4, 2025
Merged

i18n - translations#15619
FelixMalfait merged 2 commits intomainfrom
i18n

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Nov 4, 2025

Created by Github action

@FelixMalfait FelixMalfait merged commit 6a8dcf8 into main Nov 4, 2025
6 checks passed
@FelixMalfait FelixMalfait deleted the i18n branch November 4, 2025 23:32
@github-actions
Copy link
Copy Markdown
Contributor Author

github-actions bot commented Nov 4, 2025

Fails
🚫

node failed.

Log

Details
�[31mError: �[39m SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
�[90m    at parseJSONFromBytes (node:internal/deps/undici/undici:6433:19)�[39m
�[90m    at successSteps (node:internal/deps/undici/undici:6414:27)�[39m
�[90m    at readAllBytes (node:internal/deps/undici/undici:5380:13)�[39m
�[90m    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)�[39m
danger-results://tmp/danger-results-b35a5ba7.json

Generated by 🚫 dangerJS against 6c6ef22

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.

Greptile Overview

Greptile Summary

This PR adds a new translation string "Last credentials refreshed at" (translation ID: hHtzNQ) across all 31 supported locales in the i18n system. The string is used to describe a field in the connected account entity.

Changes Made

  • Added new msgid entry "Last credentials refreshed at" to all 31 .po source files (af-ZA, ar-SA, ca-ES, cs-CZ, da-DK, de-DE, el-GR, en, es-ES, fi-FI, fr-FR, he-IL, hu-HU, it-IT, ja-JP, ko-KR, nl-NL, no-NO, pl-PL, pseudo-en, pt-BR, pt-PT, ro-RO, ru-RU, sr-Cyrl, sv-SE, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW)
  • English locale (en.po) has the translated msgstr set to the same value
  • All other locales have empty msgstr "" entries, which is the standard workflow for newly extracted strings awaiting translation by translators
  • Regenerated all 31 .ts compiled translation catalogs with the new translation key included
  • Generated files are properly formatted as minified single-line TypeScript exports

Translation Workflow

This follows the standard i18n workflow:

  1. Developer adds translatable string in source code
  2. Extraction script runs to update all .po files with new msgid
  3. Compilation script generates TypeScript files from .po sources
  4. Application will use English fallback for untranslated locales until translators provide translations

Confidence Score: 5/5

  • This PR is safe to merge with no risk - it's an automated i18n update that follows the standard translation workflow
  • Score of 5 given because: (1) This is an automated translation extraction/compilation PR generated by GitHub Actions, (2) Changes follow the established i18n pattern used throughout the codebase, (3) Only adds a new translation key without modifying any logic, (4) All 62 files are consistent in their updates, (5) Generated TypeScript files are properly formatted and include the new key, (6) Empty translations for non-English locales are expected and standard practice
  • No files require special attention - all changes are routine i18n updates

Important Files Changed

File Analysis

Filename Score Overview
packages/twenty-server/src/engine/core-modules/i18n/locales/en.po 5/5 Added new translation string "Last credentials refreshed at" (ID: hHtzNQ) for connected account field - source English text is correct
packages/twenty-server/src/engine/core-modules/i18n/locales/generated/en.ts 5/5 Generated TypeScript translation catalog updated with new translation key hHtzNQ - file is properly formatted as minified single-line JSON
packages/twenty-server/src/engine/core-modules/i18n/locales/fr-FR.po 5/5 Added new translation entry with empty msgstr (awaiting translation) - standard workflow for newly extracted strings
packages/twenty-server/src/engine/core-modules/i18n/locales/de-DE.po 5/5 Added new translation entry with empty msgstr (awaiting translation) - consistent with other locale files
packages/twenty-server/src/engine/core-modules/i18n/locales/generated/fr-FR.ts 5/5 Generated TypeScript catalog updated - properly compiled from source .po file with empty translations
packages/twenty-server/src/engine/core-modules/i18n/locales/es-ES.po 5/5 Added new translation entry with empty msgstr - awaiting Spanish translation
packages/twenty-server/src/engine/core-modules/i18n/locales/ja-JP.po 5/5 Added new translation entry with empty msgstr - awaiting Japanese translation
packages/twenty-server/src/engine/core-modules/i18n/locales/zh-CN.po 5/5 Added new translation entry with empty msgstr - awaiting Chinese translation

Sequence Diagram

sequenceDiagram
    participant Dev as Developer
    participant Code as Source Code
    participant Extract as Extract Script
    participant PO as .po Files (31 locales)
    participant Compile as Compile Script
    participant TS as .ts Files (31 locales)
    participant App as Application

    Dev->>Code: Add new translatable string<br/>in connected-account entity
    Code->>Extract: Trigger translation extraction
    Extract->>Code: Scan source code for<br/>translation markers
    Extract->>PO: Add msgid "Last credentials refreshed at"<br/>with empty msgstr to all 31 locales
    Note over PO: English (en.po) has msgstr set,<br/>others have empty msgstr ""
    PO->>Compile: Trigger compilation
    Compile->>PO: Read .po files
    Compile->>TS: Generate minified TypeScript<br/>with JSON.parse() for all locales
    Note over TS: Single-line files with<br/>translation key hHtzNQ added
    App->>TS: Import translation catalogs<br/>at runtime
    TS->>App: Provide translations<br/>(fallback to English for untranslated)
Loading

No files reviewed, no comments

Edit Code Review Agent Settings | Greptile

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