CheckTick is available in 13 languages. You can use CheckTick in your preferred language, and the interface will automatically adapt to show all buttons, labels, and messages in that language.
Note: This document covers CheckTick's interface languages (menus, buttons, labels). For information about translating survey content into multiple languages, see Multi-language surveys.
Choosing Your Language
- Log in to CheckTick
- Click your username in the top navigation bar to open your Profile
- Find the Language dropdown menu
- Select your preferred language
- Click Save Changes
CheckTick will remember your language choice and use it every time you log in.
If you haven't selected a language, CheckTick will try to match your browser's language settings automatically.
Available Languages
Click on a language below to see the complete translation reference with all 329 interface strings:
| Language | Native Name | Status | Translation Reference |
|---|---|---|---|
| English (UK) | English (UK) | ✅ Fully available (default) | - |
| English (US) | English | ✅ Fully available | - |
| Welsh | Cymraeg | 🔧 Coming soon | View translations |
| French | Français | 🟡 Partially available (45%) | View translations |
| Spanish | Español | 🔧 Coming soon | View translations |
| German | Deutsch | 🔧 Coming soon | View translations |
| Italian | Italiano | 🔧 Coming soon | View translations |
| Portuguese | Português | 🔧 Coming soon | View translations |
| Polish | Polski | 🔧 Coming soon | View translations |
| Arabic | العربية | 🔧 Coming soon | View translations |
| Simplified Chinese | 简体中文 | 🔧 Coming soon | View translations |
| Hindi | हिन्दी | 🔧 Coming soon | View translations |
| Urdu | اردو | 🔧 Coming soon | View translations |
Status Legend: - ✅ Fully available: Complete translations, ready to use - 🟡 Partially available: Some translations in place, English used for remaining text - 🔧 Coming soon: Translation infrastructure ready, translations in progress
Translation Coverage
CheckTick has 329 text strings throughout the interface covering all user-facing elements from authentication to survey management.
Sample Interface Translations
Here's how some common interface elements appear in different languages:
| English | Français | العربية | 简体中文 |
|---|---|---|---|
| Sign up | S'inscrire | اشتراك | 注册 |
| Create a survey | Créer une enquête | إنشاء استبيان | 创建调查 |
| Dashboard | Tableau de bord | لوحة التحكم | 仪表板 |
| Save changes | Enregistrer | حفظ التغييرات | 保存更改 |
Complete Translation References
Each language has a detailed translation reference page with all 329 strings organized by category:
- Arabic translations - العربية
- Chinese translations - 简体中文
- French translations - Français
- German translations - Deutsch
- Hindi translations - हिन्दी
- Italian translations - Italiano
- Polish translations - Polski
- Portuguese translations - Português
- Spanish translations - Español
- Urdu translations - اردو
- Welsh translations - Cymraeg
Each reference page contains tables organized by category (Authentication, Survey Management, Profile & Settings, etc.) showing the English text and its translation.
For Developers & Self-Hosters
Technical Implementation
CheckTick uses Django's internationalization (i18n) framework with automatic language detection:
Language Detection Priority: 1. User's saved language preference (stored in database) 2. Session language 3. Browser's Accept-Language header 4. Default: English (UK)
Key Components:
- LocaleMiddleware: Detects language from session and browser
- UserLanguageMiddleware: Custom middleware that applies user's saved preference
- UserLanguagePreference model: Stores per-user language choices
Translation Workflow
For contributors helping with translations:
- Translation source files:
/locale/{language}/LC_MESSAGES/django.po - Reference tables:
/docs/languages/{language}.md(linked above) - Import command:
docker compose exec web python manage.py import_translations
For developers adding new translatable strings:
from django.utils.translation import gettext as _
message = _("Your translatable text here")
Then generate and compile:
docker compose exec web python manage.py makemessages -a
docker compose exec web python manage.py compilemessages
docker compose restart web
For complete technical documentation, see /locale/README.md.