Skip to content

Add Hungarian translation and improve case-insensitive sorting#6

Merged
TX-RX merged 12 commits into
mainfrom
claude/repo-fork-sync-kqe55m
Jul 17, 2026
Merged

Add Hungarian translation and improve case-insensitive sorting#6
TX-RX merged 12 commits into
mainfrom
claude/repo-fork-sync-kqe55m

Conversation

@TX-RX

@TX-RX TX-RX commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

This PR adds Hungarian language support to OpenTakServer and improves the sorting behavior for string columns in the API to be case-insensitive.

Changes

  1. Hungarian Translation: Added complete Hungarian (HU) translation file (messages.po) with 742 translated strings covering all major UI components, error messages, and API responses.

  2. Case-Insensitive String Sorting: Modified the paginate() function in blueprints/ots_api/api.py to detect string-type columns and apply case-insensitive sorting. This ensures consistent alphabetical ordering regardless of character case (e.g., "alice" sorts next to "Alice" instead of after all uppercase entries).

  3. Configuration Update: Added Hungarian language entry to defaultconfig.py to register the new language in the system.

  4. Minor Fixes: Fixed import statement in eud_handler.py and corrected a route decorator in mission_marti_api.py.

Downstream vs upstream

  • Downstream-only patch (scope: localization and sorting improvements specific to this fork)

Test plan

  • Hungarian translation file validates against gettext format
  • Case-insensitive sorting logic handles string/text column types correctly
  • Existing API tests pass with sorting changes

Deploy verification

  • N/A (localization and sorting improvements are backward compatible)

https://claude.ai/code/session_015nvKFnhBJXi5M8QoaFfd2E

TX-RX and others added 11 commits May 23, 2026 12:10
The paginate() helper centralizes server-side sorting for every paginated
endpoint (Users, Groups, EUDs, Missions, Tokens, Markers, etc.). Postgres
default collation is byte-ordered, so a username sort by ascending puts
'ALICE', 'BOB', 'Charlie' all before 'alice', 'bob' -- making it hard to
find a user by name when case is uncertain.

For string columns (String/Text/Unicode/UnicodeText), wrap the sort
expression with func.lower() so 'alice', 'Bob', 'charlie', 'DAVID' sort
in natural mixed-case order. Non-string columns (timestamps, IDs, etc.)
keep their existing behavior.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…sort

fix(api): case-insensitive sort on string columns in paginate helper
The route was registered as `/Marti/api/missions/gui/<mission_guid>/contents`
(missing the `d` in `guid`), so any DELETE request using the guid-form URL
returned 405 Method Not Allowed. The companion routes (PUT, GET, etc.) on
the same handler all use the correct `/guid/` segment, and the handler
itself accepts `mission_guid`, confirming the typo was unintentional.

Clients that follow the TAK Server Marti API spec (e.g. CloudTAK via
node-tak's `Mission.detachContents`) only emit the guid form, so removing
individual CoTs from a mission via the API silently failed for all such
clients prior to this fix.
…te-guid-typo

fix(mission-api): correct typo in mission contents DELETE route
Currently translated at 10.6% (16 of 150 strings)

Translation: OpenTAKServer/OpenTAKServer
Translate-URL: https://weblate.opentakserver.io/projects/opentakserver/opentakserver/hu/
Currently translated at 46.0% (69 of 150 strings)

Translation: OpenTAKServer/OpenTAKServer
Translate-URL: https://weblate.opentakserver.io/projects/opentakserver/opentakserver/hu/
Translations update from OpenTAKServer
…sync-kqe55m

# Conflicts:
#	opentakserver/eud_handler/eud_handler.py
Copilot finished work on behalf of TX-RX July 17, 2026 03:19
@TX-RX
TX-RX merged commit a3fc84a into main Jul 17, 2026
10 checks passed
@TX-RX
TX-RX deleted the claude/repo-fork-sync-kqe55m branch July 17, 2026 03:33
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.

5 participants