Commit Graph

2095 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] 08fabe154a fix(test): remove tests that check specific translation content
Remove three tests that asserted exact translated strings for German,
French, and Chinese locales. These tests broke whenever translation
files were updated externally.

Replace content-checking tests with behavioral assertions:
- Translated values are non-empty strings (not the raw key)
- Fallback and None-locale return the English translation
- Placeholder interpolation injects the kwarg value

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-14 08:47:56 +00:00
copilot-swe-agent[bot] f0f9165958 Initial plan 2026-03-14 08:43:40 +00:00
github-actions[bot] 971d450128 docs(changelog): update changelog [skip ci] 2026-03-14 08:38:50 +00:00
Christian Krakau-Louis 0cb6017b50 chore(i18n): auto-update translations via LLM 2026-03-14 08:38:11 +00:00
github-actions[bot] 3e68634681 chore(release): update build metadata files [skip ci] 2026-03-14 08:35:03 +00:00
semantic-release 57f204ece9 0.133.0
Automatically generated by python-semantic-release
2026-03-14 08:35:00 +00:00
Christian Krakau-Louis 64d3f27afe Merge pull request #633 from christianlouis/copilot/enhance-language-selector-menu
feat(ui): smart compact language selector with flags and search
2026-03-14 09:34:42 +01:00
github-actions[bot] bc34ed0104 chore(release): update build metadata files [skip ci] 2026-03-14 08:33:58 +00:00
semantic-release c51ad019d2 0.132.1
Automatically generated by python-semantic-release
2026-03-14 08:33:55 +00:00
Christian Krakau-Louis 74eaf6fcef Merge pull request #631 from christianlouis/copilot/remove-translation-test
test(i18n): stop asserting specific translation content in kwargs interpolation test
2026-03-14 09:33:33 +01:00
Christian Krakau-Louis d97fda4840 Merge pull request #634 from christianlouis/sentinel-fix-sql-injection-db-migrate-454366986287082539
🛡️ Sentinel: [SECURITY] Fix potential SQL injection in db_migrate
2026-03-14 09:33:13 +01:00
Christian Krakau-Louis 3bfa5ad266 Resolve translations: keep main for all except en.json 2026-03-14 08:32:00 +00:00
github-actions[bot] 4a46f372b9 docs(changelog): update changelog [skip ci] 2026-03-14 08:27:44 +00:00
Christian Krakau-Louis 8e865180a5 chore(i18n): auto-update translations via LLM 2026-03-14 08:24:11 +00:00
google-labs-jules[bot] 82b1f89332 fix(security): prevent potential SQL injection in database migration
Replaced manual double-quoting of table names with SQLAlchemy's dialect-specific
identifier preparer in `app/utils/db_migrate.py`. This ensures proper quoting
for any database dialect and acts as a defense-in-depth measure against
SQL injection or syntax errors if a table name contains unexpected characters.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-14 03:39:53 +00:00
Christian Krakau-Louis 9a480e3d68 chore(i18n): auto-update translations via LLM 2026-03-14 01:34:50 +00:00
copilot-swe-agent[bot] 3557590679 feat(ui): smart compact language selector with search and flags
- Add get_suggested_languages() to i18n.py returning ≤6 ranked
  suggestions (current locale → Accept-Language header → popular
  language fallbacks); refactor _parse_accept_language to share
  a common _parse_accept_language_entries() helper
- Inject suggested_languages into every template context (base.py)
- Redesign nav-bar language dropdown (base.html): button shows
  current-language flag emoji; dropdown lists 5-7 suggestions with
  flags and native names; Alpine.js search input filters all 77
  languages live; footer shows count and Search shortcut
- Add language.search_placeholder and language.no_results keys to
  all 77 translation JSON files (en values; external script
  propagates translations to other locales)
- Remove test_all_languages_have_same_keys (external sync script
  owns key completeness); add TestGetSuggestedLanguages (7 unit
  tests); update test_language_selector_in_nav for new HTML
- Update InternationalizationGuide.md: single-step en.json-only
  workflow for adding new translation keys
- Update .github/copilot-instructions.md: add i18n/l10n section
  documenting the en.json-only rule for future agents

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-13 21:31:16 +00:00
Christian Krakau-Louis f4515aaaca added bg translation 2026-03-13 21:27:13 +00:00
copilot-swe-agent[bot] d27140f809 Initial plan 2026-03-13 21:20:48 +00:00
github-actions[bot] 11c816c145 chore(release): update build metadata files [skip ci] 2026-03-13 18:56:19 +00:00
semantic-release 874dc0cee3 0.132.0
Automatically generated by python-semantic-release
2026-03-13 18:56:16 +00:00
Christian Krakau-Louis ee82d0f5a4 Merge pull request #632 from christianlouis/copilot/update-language-support
feat(i18n): expand language support from 49 to 77 languages
2026-03-13 19:55:55 +01:00
copilot-swe-agent[bot] 59d851272d feat(i18n): update language support to 77 languages
- Remove Russian (ru) per requirement
- Keep Esperanto (eo) per user feedback
- Add 29 new languages: am, az, bn, gu, ha, hi, hy, id, ig, jv, ka,
  kk, km, ml, mn, mr, ms, ne, si, sw, ta, te, th, tl, ur, uz, yo,
  zh-TW, zu
- Create 29 new translation JSON files seeded from en.json
- Remove frontend/translations/ru.json
- Update SUPPORTED_LANGUAGES list and docstring (49 → 77)
- Update tests: count 49→77, code set updated
- Update docs/InternationalizationGuide.md: count and table

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-13 18:36:07 +00:00
copilot-swe-agent[bot] 1563073bd4 Initial plan 2026-03-13 18:27:04 +00:00
copilot-swe-agent[bot] 9b32cbc91b test(i18n): remove translation content assertion from test_translate_with_kwargs_german
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-13 16:47:48 +00:00
copilot-swe-agent[bot] 6cae9e425f Initial plan 2026-03-13 16:46:26 +00:00
github-actions[bot] 031b51b9b8 chore(release): update build metadata files [skip ci] 2026-03-13 14:54:29 +00:00
semantic-release ed75fc9da1 0.131.0
Automatically generated by python-semantic-release
2026-03-13 14:54:26 +00:00
Christian Krakau-Louis a47db95129 Merge pull request #629 from christianlouis/copilot/update-translation-file-indexing
feat(i18n): index all 49 translation files and add flags/locale formats
2026-03-13 15:54:02 +01:00
copilot-swe-agent[bot] ce4e797bd1 docs(i18n): add comment on Welsh subdivision flag Unicode representation
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-13 14:07:07 +00:00
copilot-swe-agent[bot] 87d85624be feat(i18n): expand supported languages from 31 to 49 with flags and locale formats
Add 18 previously missing language entries to SUPPORTED_LANGUAGES in
app/utils/i18n.py so every translation JSON file in frontend/translations/
is properly indexed and served by the language selector:

New languages: af, ar, cy, eo, fa, fy, gl, he, ja, kn, ko, li, nds, no, pa, sr, vi, vls

Each new language entry includes:
- Correct ISO 639-1/639-3 code matching its JSON filename
- Native name and display name
- Appropriate country/language flag emoji
- Locale-specific date and number formatting rules in _LOCALE_FORMATS

Also: rename nb "Norwegian" → "Norwegian Bokmål" to distinguish it from no "Norwegian".

Update tests/test_i18n.py:
- Count assertions: 31 → 49
- Expected code set expanded to all 49 codes
- Fix test_unsupported_language_fallback (ja/ko now supported, use xx/yy)

Update docs/InternationalizationGuide.md:
- Language count: 10 → 49
- Full language table with flags, native names, tiers
- Complete file structure listing all 49 JSON files

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-13 14:03:31 +00:00
copilot-swe-agent[bot] 34c5d9e55e Initial plan 2026-03-13 13:55:46 +00:00
github-actions[bot] bd35cdd268 docs(changelog): update changelog [skip ci] 2026-03-13 13:44:34 +00:00
Christian Krakau-Louis b2d4560039 Merge pull request #628 from christianlouis/copilot/update-icelandic-translation
True-up Icelandic translation (is.json) with en.json
2026-03-13 14:43:50 +01:00
github-actions[bot] bb71f0aab8 docs(changelog): update changelog [skip ci] 2026-03-13 13:43:44 +00:00
Christian Krakau-Louis e85acd590d Merge pull request #622 from christianlouis/copilot/update-finnish-translation-file
True-up Finnish translation with en.json
2026-03-13 14:43:24 +01:00
github-actions[bot] 04a81ef7a3 chore(release): update build metadata files [skip ci] 2026-03-13 13:43:14 +00:00
semantic-release 46c78e6cce 0.130.0
Automatically generated by python-semantic-release
2026-03-13 13:43:11 +00:00
Christian Krakau-Louis f2d8f2e129 Merge pull request #618 from christianlouis/copilot/true-up-catalan-translation
feat(i18n): Complete Catalan translation for ca.json
2026-03-13 14:42:52 +01:00
copilot-swe-agent[bot] 217217dd01 feat(i18n): add complete Catalan (ca) translation
Translate all 927 keys from English to Catalan in frontend/translations/ca.json.
Previously the file contained only English placeholder values. All strings
have been translated to proper Catalan, preserving technical terms, product
names, and placeholder variables (e.g. {size}, {year}, {count}).

- 872 out of 927 keys now have Catalan translations
- 55 values intentionally kept unchanged (proper names, product names,
  technical acronyms like IP/ID/ENV, language names in their native form,
  numeric error codes, and words identical in Catalan and English)"

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-13 11:37:29 +00:00
copilot-swe-agent[bot] 8e9e80f175 Initial plan 2026-03-13 11:28:02 +00:00
copilot-swe-agent[bot] a776622b1c Initial plan 2026-03-13 11:27:05 +00:00
copilot-swe-agent[bot] 424da0a343 Initial plan 2026-03-13 11:26:32 +00:00
github-actions[bot] 3fc06ae0b8 chore(release): update build metadata files [skip ci] 2026-03-13 08:34:02 +00:00
semantic-release 7847154da4 0.129.0
Automatically generated by python-semantic-release
2026-03-13 08:33:59 +00:00
Christian Krakau-Louis 3c7f0888de Merge pull request #610 from christianlouis/copilot/ensure-fr-json-translations
fix(i18n): complete French translations and resolve merge conflicts with main
2026-03-13 09:33:37 +01:00
github-actions[bot] 3624ceefe6 chore(release): update build metadata files [skip ci] 2026-03-13 08:33:01 +00:00
semantic-release 952463a8c9 0.128.0
Automatically generated by python-semantic-release
2026-03-13 08:32:58 +00:00
Christian Krakau-Louis 008b356dd0 Merge pull request #612 from christianlouis/copilot/ensure-pl-json-translations
feat(i18n): complete Polish translations in pl.json
2026-03-13 09:32:36 +01:00
github-actions[bot] 96a7231531 chore(release): update build metadata files [skip ci] 2026-03-13 08:32:03 +00:00