Files
net.aliasvault.app/crowdin.yml
T
2025-07-11 14:59:18 +02:00

148 lines
4.6 KiB
YAML

# Crowdin configuration for AliasVault
# This file configures the translation workflow for the entire AliasVault monorepo
# Works with GitHub App integration
# Base path for files
base_path: "./"
# Preserve hierarchy for nested JSON objects
preserve_hierarchy: true
# Files configuration
files:
# ============================================================================
# Web App (Blazor WASM) - Server Client
# ============================================================================
# Blazor WASM Client JSON localization files
- source: "apps/server/AliasVault.Client/wwwroot/locales/en.json"
translation: "apps/server/AliasVault.Client/wwwroot/locales/%two_letters_code%.json"
type: "json"
# .NET Resource files (RESX) for Blazor components
- source: "apps/server/AliasVault.Client/Resources/SharedResources.en.resx"
translation: "apps/server/AliasVault.Client/Resources/SharedResources.%two_letters_code%.resx"
type: "resx"
# Blazor component resource files
- source: "apps/server/AliasVault.Client/Resources/**/*.en.resx"
translation: "apps/server/AliasVault.Client/Resources/**/*.%two_letters_code%.resx"
type: "resx"
ignore:
- "apps/server/AliasVault.Client/Resources/**/*.nl.resx"
# ============================================================================
# Browser Extension
# ============================================================================
# Browser Extension JSON translation files (nested structure)
- source: "apps/browser-extension/src/locales/en/**/*.json"
translation: "apps/browser-extension/src/locales/%two_letters_code%/**/%original_file_name%"
type: "json"
languages_mapping:
two_letters_code:
nl: 'nl'
fr: 'fr'
de: 'de'
es: 'es'
it: 'it'
pt: 'pt'
uk: 'uk'
zh: 'zh'
ja: 'ja'
ko: 'ko'
# ============================================================================
# Mobile App (React Native + Native iOS/Android)
# ============================================================================
# React Native JSON translation files
- source: "apps/mobile-app/i18n/locales/en.json"
translation: "apps/mobile-app/i18n/locales/%two_letters_code%.json"
type: "json"
# iOS native localization files
- source: "apps/mobile-app/ios/AliasVault/en.lproj/Localizable.strings"
translation: "apps/mobile-app/ios/AliasVault/%two_letters_code%.lproj/Localizable.strings"
type: "strings"
- source: "apps/mobile-app/ios/AliasVault/en.lproj/InfoPlist.strings"
translation: "apps/mobile-app/ios/AliasVault/%two_letters_code%.lproj/InfoPlist.strings"
type: "strings"
# iOS Autofill extension localization files
- source: "apps/mobile-app/ios/Autofill/en.lproj/Localizable.strings"
translation: "apps/mobile-app/ios/Autofill/%two_letters_code%.lproj/Localizable.strings"
type: "strings"
# iOS VaultUI framework localization files
- source: "apps/mobile-app/ios/VaultUI/en.lproj/Localizable.strings"
translation: "apps/mobile-app/ios/VaultUI/%two_letters_code%.lproj/Localizable.strings"
type: "strings"
# Android native localization files
- source: "apps/mobile-app/android/app/src/main/res/values/strings.xml"
translation: "apps/mobile-app/android/app/src/main/res/values-%two_letters_code%/strings.xml"
type: "android"
ignore:
- "apps/mobile-app/android/app/src/main/res/values-*/**"
# Translation memory settings
translation_memory:
tm_id: "auto"
# Quality assurance settings
quality_assurance:
- inconsistent_translations
- empty_translations
- duplicate_translations
# Workflow settings
workflow_id: "auto"
# Export settings
export_settings:
- pattern: "**/*.json"
format: "json"
escape_quotes: 0
- pattern: "**/*.resx"
format: "resx"
- pattern: "**/*.strings"
format: "strings"
- pattern: "**/*.xml"
format: "android"
# Notification settings
notifications:
- event: "translation_request"
user_role: "translator"
- event: "translation_completed"
user_role: "manager"
# Branch settings (for git integration)
# branch: "main"
# Commit message for automated commits
commit_message: "Update translations from Crowdin [ci skip]"
# Pull request settings
pull_request:
title: "Update translations from Crowdin"
body: "This PR contains updated translations from Crowdin. Please review and merge if everything looks correct."
# Languages to translate to
languages:
- "nl" # Dutch
- "de" # German
- "fr" # French
- "es" # Spanish
- "it" # Italian
- "pt" # Portuguese
- "uk" # Ukrainian
- "zh" # Chinese
- "ja" # Japanese
- "ko" # Korean