e6491d6a80
## Summary This PR fixes translation QA issues and adds automation to prevent future issues. ### Translation Fixes - Fixed **escaped Unicode sequences** in translations (e.g., `\u62db\u5f85` → `招待`) - Removed **corrupted control characters** from .po files (null bytes, invalid characters) - Fixed **missing/incorrect placeholders** in various languages - Deleted **35 problematic translations** via Crowdin API that had variable mismatches ### New Scripts (in `packages/twenty-utils/`) - `fix-crowdin-translations.ts` - Auto-fixes encoding issues and syncs to Crowdin - `fix-qa-issues.ts` - Fixes specific QA issues via Crowdin API - `translation-qa-report.ts` - Generates weekly QA report from Crowdin API ### New Workflow - `i18n-qa-report.yaml` - Weekly workflow that creates a PR with translation QA issues for review ### Other Changes - Moved GitHub Actions from `.github/workflows/actions/` to `.github/actions/` - Fixed `date-utils.ts` to avoid nested `t` macros in plural expressions (root cause of confusing placeholders) ### QA Status After Fixes | Category | Count | Status | |----------|-------|--------| | variables | 0 ✅ | Fixed | | tags | 1 | Minor | | empty | 0 ✅ | Fixed | | spaces | 127 | Low priority | | numbers | 246 | Locale-specific | | special_symbols | 268 | Locale-specific |
44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
#
|
|
# Crowdin CLI configuration for Documentation translations
|
|
# Project ID: 2
|
|
# See https://crowdin.github.io/crowdin-cli/configuration for more information
|
|
#
|
|
|
|
"preserve_hierarchy": true
|
|
|
|
files: [
|
|
{
|
|
#
|
|
# MDX documentation files - user-guide
|
|
# Using md type to preserve JSX component structure
|
|
# This prevents Crowdin from reformatting <Warning>, <Accordion>, etc.
|
|
#
|
|
"source": "packages/twenty-docs/user-guide/**/*.mdx",
|
|
"translation": "packages/twenty-docs/l/%two_letters_code%/user-guide/**/%original_file_name%",
|
|
},
|
|
{
|
|
#
|
|
# MDX documentation files - developers
|
|
# Using md type to preserve JSX component structure
|
|
#
|
|
"source": "packages/twenty-docs/developers/**/*.mdx",
|
|
"translation": "packages/twenty-docs/l/%two_letters_code%/developers/**/%original_file_name%",
|
|
},
|
|
{
|
|
#
|
|
# MDX documentation files - twenty-ui
|
|
# Using md type to preserve JSX component structure
|
|
#
|
|
"source": "packages/twenty-docs/twenty-ui/**/*.mdx",
|
|
"translation": "packages/twenty-docs/l/%two_letters_code%/twenty-ui/**/%original_file_name%",
|
|
},
|
|
{
|
|
#
|
|
# Navigation labels template - translated into per-locale navigation.json
|
|
#
|
|
"source": "packages/twenty-docs/navigation/navigation.template.json",
|
|
"translation": "packages/twenty-docs/l/%two_letters_code%/navigation.json",
|
|
}
|
|
]
|
|
|