Browse Source

Updated translations.

Lauri Ojansivu 1 day ago
parent
commit
df9fba4765
100 changed files with 6300 additions and 0 deletions
  1. 63 0
      imports/i18n/data/af.i18n.json
  2. 63 0
      imports/i18n/data/af_ZA.i18n.json
  3. 63 0
      imports/i18n/data/ar-DZ.i18n.json
  4. 63 0
      imports/i18n/data/ar-EG.i18n.json
  5. 63 0
      imports/i18n/data/ar.i18n.json
  6. 63 0
      imports/i18n/data/ary.i18n.json
  7. 63 0
      imports/i18n/data/ast-ES.i18n.json
  8. 63 0
      imports/i18n/data/az-AZ.i18n.json
  9. 63 0
      imports/i18n/data/az-LA.i18n.json
  10. 63 0
      imports/i18n/data/az.i18n.json
  11. 63 0
      imports/i18n/data/bg.i18n.json
  12. 63 0
      imports/i18n/data/br.i18n.json
  13. 63 0
      imports/i18n/data/ca.i18n.json
  14. 63 0
      imports/i18n/data/ca@valencia.i18n.json
  15. 63 0
      imports/i18n/data/ca_ES.i18n.json
  16. 63 0
      imports/i18n/data/cmn.i18n.json
  17. 63 0
      imports/i18n/data/cs-CZ.i18n.json
  18. 63 0
      imports/i18n/data/cs.i18n.json
  19. 63 0
      imports/i18n/data/cy-GB.i18n.json
  20. 63 0
      imports/i18n/data/cy.i18n.json
  21. 63 0
      imports/i18n/data/da.i18n.json
  22. 63 0
      imports/i18n/data/de-AT.i18n.json
  23. 63 0
      imports/i18n/data/de-CH.i18n.json
  24. 63 0
      imports/i18n/data/de.i18n.json
  25. 63 0
      imports/i18n/data/de_DE.i18n.json
  26. 63 0
      imports/i18n/data/el-GR.i18n.json
  27. 63 0
      imports/i18n/data/el.i18n.json
  28. 63 0
      imports/i18n/data/en-BR.i18n.json
  29. 63 0
      imports/i18n/data/en-DE.i18n.json
  30. 63 0
      imports/i18n/data/en-GB.i18n.json
  31. 63 0
      imports/i18n/data/en-IT.i18n.json
  32. 63 0
      imports/i18n/data/en-MY.i18n.json
  33. 63 0
      imports/i18n/data/en-YS.i18n.json
  34. 63 0
      imports/i18n/data/en_AU.i18n.json
  35. 63 0
      imports/i18n/data/en_ID.i18n.json
  36. 63 0
      imports/i18n/data/en_SG.i18n.json
  37. 63 0
      imports/i18n/data/en_TR.i18n.json
  38. 63 0
      imports/i18n/data/en_ZA.i18n.json
  39. 63 0
      imports/i18n/data/eo.i18n.json
  40. 63 0
      imports/i18n/data/es-AR.i18n.json
  41. 63 0
      imports/i18n/data/es-CL.i18n.json
  42. 63 0
      imports/i18n/data/es-LA.i18n.json
  43. 63 0
      imports/i18n/data/es-MX.i18n.json
  44. 63 0
      imports/i18n/data/es-PE.i18n.json
  45. 63 0
      imports/i18n/data/es-PY.i18n.json
  46. 63 0
      imports/i18n/data/es.i18n.json
  47. 63 0
      imports/i18n/data/es_CO.i18n.json
  48. 63 0
      imports/i18n/data/et-EE.i18n.json
  49. 63 0
      imports/i18n/data/eu.i18n.json
  50. 63 0
      imports/i18n/data/fa-IR.i18n.json
  51. 63 0
      imports/i18n/data/fa.i18n.json
  52. 63 0
      imports/i18n/data/fi.i18n.json
  53. 63 0
      imports/i18n/data/fr-CH.i18n.json
  54. 63 0
      imports/i18n/data/fr-FR.i18n.json
  55. 63 0
      imports/i18n/data/fr.i18n.json
  56. 63 0
      imports/i18n/data/fy-NL.i18n.json
  57. 63 0
      imports/i18n/data/fy.i18n.json
  58. 63 0
      imports/i18n/data/gl-ES.i18n.json
  59. 63 0
      imports/i18n/data/gl.i18n.json
  60. 63 0
      imports/i18n/data/gu-IN.i18n.json
  61. 63 0
      imports/i18n/data/he-IL.i18n.json
  62. 63 0
      imports/i18n/data/he.i18n.json
  63. 63 0
      imports/i18n/data/hi-IN.i18n.json
  64. 63 0
      imports/i18n/data/hi.i18n.json
  65. 63 0
      imports/i18n/data/hr.i18n.json
  66. 63 0
      imports/i18n/data/hu.i18n.json
  67. 63 0
      imports/i18n/data/hy.i18n.json
  68. 63 0
      imports/i18n/data/id.i18n.json
  69. 63 0
      imports/i18n/data/ig.i18n.json
  70. 63 0
      imports/i18n/data/it.i18n.json
  71. 63 0
      imports/i18n/data/ja-HI.i18n.json
  72. 63 0
      imports/i18n/data/ja.i18n.json
  73. 63 0
      imports/i18n/data/ka.i18n.json
  74. 63 0
      imports/i18n/data/km.i18n.json
  75. 63 0
      imports/i18n/data/ko-KR.i18n.json
  76. 63 0
      imports/i18n/data/ko.i18n.json
  77. 63 0
      imports/i18n/data/lt.i18n.json
  78. 63 0
      imports/i18n/data/lv.i18n.json
  79. 63 0
      imports/i18n/data/mk.i18n.json
  80. 63 0
      imports/i18n/data/mn.i18n.json
  81. 63 0
      imports/i18n/data/ms-MY.i18n.json
  82. 63 0
      imports/i18n/data/ms.i18n.json
  83. 63 0
      imports/i18n/data/nb.i18n.json
  84. 63 0
      imports/i18n/data/nl-NL.i18n.json
  85. 63 0
      imports/i18n/data/nl.i18n.json
  86. 63 0
      imports/i18n/data/oc.i18n.json
  87. 63 0
      imports/i18n/data/or_IN.i18n.json
  88. 63 0
      imports/i18n/data/pa.i18n.json
  89. 63 0
      imports/i18n/data/pl-PL.i18n.json
  90. 63 0
      imports/i18n/data/pl.i18n.json
  91. 63 0
      imports/i18n/data/pt-BR.i18n.json
  92. 63 0
      imports/i18n/data/pt.i18n.json
  93. 63 0
      imports/i18n/data/pt_PT.i18n.json
  94. 63 0
      imports/i18n/data/ro-RO.i18n.json
  95. 63 0
      imports/i18n/data/ro.i18n.json
  96. 63 0
      imports/i18n/data/ru-UA.i18n.json
  97. 63 0
      imports/i18n/data/ru.i18n.json
  98. 63 0
      imports/i18n/data/sk.i18n.json
  99. 63 0
      imports/i18n/data/sl.i18n.json
  100. 63 0
      imports/i18n/data/sr.i18n.json

+ 63 - 0
imports/i18n/data/af.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/af_ZA.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ar-DZ.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ar-EG.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ar.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "تفاصيل",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ary.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ast-ES.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/az-AZ.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/az-LA.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/az.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/bg.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Състояние",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Завършено",
   "completed": "Завършено",

+ 63 - 0
imports/i18n/data/br.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ca.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Estat",
+  "migration-progress-details": "Detalls",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completat",
   "completed": "Completat",

+ 63 - 0
imports/i18n/data/ca@valencia.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ca_ES.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/cmn.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/cs-CZ.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Stav",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Dokončeno",
   "completed": "Dokončeno",

+ 63 - 0
imports/i18n/data/cs.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Stav",
+  "migration-progress-details": "Podrobnosti",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Dokončeno",
   "completed": "Dokončeno",

+ 63 - 0
imports/i18n/data/cy-GB.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/cy.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/da.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Fuldført",
   "completed": "Fuldført",

+ 63 - 0
imports/i18n/data/de-AT.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "abgeschlossen",
   "completed": "abgeschlossen",

+ 63 - 0
imports/i18n/data/de-CH.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "abgeschlossen",
   "completed": "abgeschlossen",

+ 63 - 0
imports/i18n/data/de.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Abgeschlossen",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "abgeschlossen",
   "completed": "abgeschlossen",

+ 63 - 0
imports/i18n/data/de_DE.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Zurück zu den Einstellungen",
   "back-to-settings": "Zurück zu den Einstellungen",
   "board-id": "Brett ID",
   "board-id": "Brett ID",
   "board-migration": "Brettmigration",
   "board-migration": "Brettmigration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Zeige Listen auf der Minikarte",
   "card-show-lists-on-minicard": "Zeige Listen auf der Minikarte",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Vollständig",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Gesamtfortschritt",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Aufräumen",
   "cleanup": "Aufräumen",
   "cleanup-old-jobs": "Alte Aufgaben aufräumen",
   "cleanup-old-jobs": "Alte Aufgaben aufräumen",
   "completed": "abgeschlossen",
   "completed": "abgeschlossen",

+ 63 - 0
imports/i18n/data/el-GR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/el.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en-BR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en-DE.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en-GB.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en-IT.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en-MY.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en-YS.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en_AU.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en_ID.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en_SG.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en_TR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/en_ZA.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/eo.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/es-AR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/es-CL.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completada",
   "completed": "Completada",

+ 63 - 0
imports/i18n/data/es-LA.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/es-MX.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/es-PE.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Estado",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completada",
   "completed": "Completada",

+ 63 - 0
imports/i18n/data/es-PY.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/es.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Completado",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Estado",
+  "migration-progress-details": "Detalles",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completada",
   "completed": "Completada",

+ 63 - 0
imports/i18n/data/es_CO.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/et-EE.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Staatus",
+  "migration-progress-details": "Üksikasjad",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Lõpetatud",
   "completed": "Lõpetatud",

+ 63 - 0
imports/i18n/data/eu.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/fa-IR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "وضعیت",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "تمام شده",
   "completed": "تمام شده",

+ 63 - 0
imports/i18n/data/fa.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "وضعیت",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "تمام شده",
   "completed": "تمام شده",

+ 63 - 0
imports/i18n/data/fi.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Takaisin asetuksiin",
   "back-to-settings": "Takaisin asetuksiin",
   "board-id": "Taulun tunnus",
   "board-id": "Taulun tunnus",
   "board-migration": "Taulun siirto",
   "board-migration": "Taulun siirto",
+  "board-migrations": "Taulu migraatiot",
   "card-show-lists-on-minicard": "Näytä listat minikortilla",
   "card-show-lists-on-minicard": "Näytä listat minikortilla",
+  "comprehensive-board-migration": "Perusteellinen taulu migraatio",
+  "comprehensive-board-migration-description": "Suorittaa kattavia tarkistuksia ja korjauksia taulun tietojen eheyden varmistamiseksi, mukaan lukien listajärjestyksen, korttien sijainnit ja uimaratarakenteen.",
+  "delete-duplicate-empty-lists-migration": "Poista kaksoiskappaleet tyhjistä listoista",
+  "delete-duplicate-empty-lists-migration-description": "Poistaa tyhjät kaksoiskappalelistat turvallisesti. Poistaa vain listat, joissa ei ole kortteja JA joilla on toinen samanniminen lista, joka sisältää kortteja.",
+  "lost-cards": "Kadonneet kortit",
+  "lost-cards-list": "Palautetut kohteet",
+  "restore-lost-cards-migration": "Palauta kadonneet kortit",
+  "restore-lost-cards-migration-description": "Etsii ja palauttaa kortit ja listat, joista puuttuu swimlaneId tai listId. Luo 'Kadonneet kortit' -uimaradan, jotta kaikki kadonneet ovat taas näkyvissä.",
+  "restore-all-archived-migration": "Palauta kaikki arkistoidut",
+  "restore-all-archived-migration-description": "Palauttaa kaikki arkistoidut uimaradat, listat ja kortit. Korjaa automaattisesti puuttuvat uimaratatunnukset tai listatunnukset, jotta kohteet ovat näkyvissä.",
+  "fix-missing-lists-migration": "Korjaa puuttuvat listat",
+  "fix-missing-lists-migration-description": "Havaitsee ja korjaa puuttuvat tai vioittuneet listat taulun rakenteessa.",
+  "fix-avatar-urls-migration": "Korjaa avatar-URL-osoitteet",
+  "fix-avatar-urls-migration-description": "Päivittää taulun jäsenten avatar-osoitteiden URL-osoitteet oikean tallennustilan käyttämiseksi ja korjaa rikkinäiset avatar-viittaukset.",
+  "fix-all-file-urls-migration": "Korjaa kaikki tiedostojen URL-osoitteet",
+  "fix-all-file-urls-migration-description": "Päivittää kaikkien tällä taululla olevien tiedostoliitteiden URL-osoitteet käyttämään oikeaa tallennuspalvelinta ja korjaa rikkinäiset tiedostoviittaukset.",
+  "migration-needed": "Migraatio tarvitaan",
+  "migration-complete": "Valmis",
+  "migration-running": "Suoritetaan...",
+  "migration-successful": "Migraatio valmistui onnistuneesti",
+  "migration-failed": "Migraatio epäonnistui",
+  "migrations": "Migraatiot",
+  "migrations-admin-only": "Vain taulu ylläpitäjät voivat suorittaa migraatioita",
+  "migrations-description": "Suorita tietojen eheystarkistukset ja korjaukset tälle taululle. Jokainen migraatio voidaan suorittaa erikseen.",
+  "no-issues-found": "Ei löytynyt ongelmia",
+  "run-migration": "Suorita migraatio",
+  "run-comprehensive-migration-confirm": "Tämä suorittaa kattavan migraation, jolla tarkistetaan ja korjataan taulun tietojen eheys. Tämä voi kestää hetken. Jatketaanko?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "Tämä muuntaa ensin kaikki jaetut listat uimaratakohtaisiksi listoiksi ja poistaa sitten tyhjät listat, joissa on samanniminen kaksoiskappale, joka sisältää kortteja. Vain todella tarpeettomat tyhjät listat poistetaan. Jatketaanko?",
+  "run-restore-lost-cards-migration-confirm": "Tämä luo Kadonneet kortit -uimaradan ja palauttaa kaikki kortit ja listat, joista puuttuu uimaradan tunnus tai listan tunnus. Tämä vaikuttaa vain arkistoimattomiin kohteisiin. Jatketaanko?",
+  "run-restore-all-archived-migration-confirm": "Tämä palauttaa KAIKKI arkistoidut uintikaistat, listat ja kortit, jolloin ne näkyvät taas. Puuttuvista tunnuksista puuttuvat kohteet korjataan automaattisesti. Tätä ei voi helposti perua. Jatketaanko?",
+  "run-fix-missing-lists-migration-confirm": "Tämä havaitsee ja korjaa puuttuvat tai vioittuneet listat taulun rakenteessa. Jatketaanko?",
+  "run-fix-avatar-urls-migration-confirm": "Tämä päivittää taulun jäsenten avatar-URL-osoitteet käyttämään oikeaa tallennustilaa. Jatketaanko?",
+  "run-fix-all-file-urls-migration-confirm": "Tämä päivittää kaikkien tällä taululla olevien tiedostoliitteiden URL-osoitteet käyttämään oikeaa tallennuspalvelinta. Jatketaanko?",
+  "restore-lost-cards-nothing-to-restore": "Ei kadonneita uintikaistoja, listoja tai kortteja palautettavaksi",
+  
+  "migration-progress-title": "Taulu migraatio meneillään",
+  "migration-progress-overall": "Kokonaisedistyminen",
+  "migration-progress-current-step": "Nykyinen vaihe",
+  "migration-progress-status": "Tilanne",
+  "migration-progress-details": "Yksityiskohdat",
+  "migration-progress-note": "Odota hetki, siirrämme taulusi uusimpaan rakenteeseen...",
+  
+  "step-analyze-board-structure": "Analysoi taulun rakennetta",
+  "step-fix-orphaned-cards": "Korjaa orvot kortit",
+  "step-convert-shared-lists": "Muunna jaetut listat",
+  "step-ensure-per-swimlane-lists": "Varmista uimaratakohtaiset listat",
+  "step-validate-migration": "Varmistetaan migraatio",
+  "step-fix-avatar-urls": "Korjaa avatar-URL-osoitteet",
+  "step-fix-attachment-urls": "Korjaa liitetiedosto URLit",
+  "step-analyze-lists": "Analysoidaan listoja",
+  "step-create-missing-lists": "Luo puuttuvat listat",
+  "step-update-cards": "Päivitä kortit",
+  "step-finalize": "Viimeistellään",
+  "step-delete-duplicate-empty-lists": "Poista kaksoiskappaleet tyhjistä listoista",
+  "step-ensure-lost-cards-swimlane": "Varmistetaan hävinneiden korttien uimarata",
+  "step-restore-lists": "Palauta listat",
+  "step-restore-cards": "Palauta kortit",
+  "step-restore-swimlanes": "Palauta uimaradat",
+  "step-fix-missing-ids": "Korjaa puuttuvat ID:t",
+  "step-scan-users": "Tarkistetaan taulun jäsenten avatarit",
+  "step-scan-files": "Tarkistetaan taulun liitetiedostot",
+  "step-fix-file-urls": "Korjataan tiedosto URLit",
   "cleanup": "Siivous",
   "cleanup": "Siivous",
   "cleanup-old-jobs": "Siivoa vanhat työt",
   "cleanup-old-jobs": "Siivoa vanhat työt",
   "completed": "Valmistunut",
   "completed": "Valmistunut",

+ 63 - 0
imports/i18n/data/fr-CH.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/fr-FR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Statut",
+  "migration-progress-details": "Détails",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Terminé",
   "completed": "Terminé",

+ 63 - 0
imports/i18n/data/fr.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Retour aux paramètres",
   "back-to-settings": "Retour aux paramètres",
   "board-id": "ID du tableau",
   "board-id": "ID du tableau",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Afficher les listes sur la mini-carte",
   "card-show-lists-on-minicard": "Afficher les listes sur la mini-carte",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Terminé",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Statut",
+  "migration-progress-details": "Détails",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Terminé",
   "completed": "Terminé",

+ 63 - 0
imports/i18n/data/fy-NL.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/fy.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/gl-ES.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/gl.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/gu-IN.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/he-IL.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/he.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "חזרה להגדרות",
   "back-to-settings": "חזרה להגדרות",
   "board-id": "מזהה לוח",
   "board-id": "מזהה לוח",
   "board-migration": "הסבת לוחות",
   "board-migration": "הסבת לוחות",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "הצגת רשימות בכרטיסון",
   "card-show-lists-on-minicard": "הצגת רשימות בכרטיסון",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "הושלם",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "סך כל ההתקדמות",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "מצב",
+  "migration-progress-details": "פרטים",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "ניקיון",
   "cleanup": "ניקיון",
   "cleanup-old-jobs": "ניקוי משימות ישנות",
   "cleanup-old-jobs": "ניקוי משימות ישנות",
   "completed": "הושלמה",
   "completed": "הושלמה",

+ 63 - 0
imports/i18n/data/hi-IN.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/hi.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/hr.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/hu.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Állapot",
+  "migration-progress-details": "Részletek",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Kész",
   "completed": "Kész",

+ 63 - 0
imports/i18n/data/hy.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/id.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ig.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/it.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Completato",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Stato",
+  "migration-progress-details": "Dettagli",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completato/a",
   "completed": "Completato/a",

+ 63 - 0
imports/i18n/data/ja-HI.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ja.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "完了",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "ステータス",
+  "migration-progress-details": "詳細",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "完了した時",
   "completed": "完了した時",

+ 63 - 0
imports/i18n/data/ka.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/km.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ko-KR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ko.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "완료",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "상세",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "완료",
   "completed": "완료",

+ 63 - 0
imports/i18n/data/lt.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/lv.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Statuss",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Pabeigts",
   "completed": "Pabeigts",

+ 63 - 0
imports/i18n/data/mk.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/mn.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ms-MY.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Maklumat",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ms.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Perincian",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Lengkap",
   "completed": "Lengkap",

+ 63 - 0
imports/i18n/data/nb.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Detaljer",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Gjennomført",
   "completed": "Gjennomført",

+ 63 - 0
imports/i18n/data/nl-NL.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Afgewerkt",
   "completed": "Afgewerkt",

+ 63 - 0
imports/i18n/data/nl.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Terug naar Instellingen",
   "back-to-settings": "Terug naar Instellingen",
   "board-id": "Bord ID",
   "board-id": "Bord ID",
   "board-migration": "Bord Migratie",
   "board-migration": "Bord Migratie",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Toon Lijsten op Minikaart",
   "card-show-lists-on-minicard": "Toon Lijsten op Minikaart",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Voltooid",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Algehele Voortgang",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Opschonen",
   "cleanup": "Opschonen",
   "cleanup-old-jobs": "Schoon Oude Taken Op",
   "cleanup-old-jobs": "Schoon Oude Taken Op",
   "completed": "Afgewerkt",
   "completed": "Afgewerkt",

+ 63 - 0
imports/i18n/data/oc.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/or_IN.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/pa.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/pl-PL.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Szczegóły",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "ukończona",
   "completed": "ukończona",

+ 63 - 0
imports/i18n/data/pl.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Szczegóły",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "ukończona",
   "completed": "ukończona",

+ 63 - 0
imports/i18n/data/pt-BR.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Voltar às Configurações",
   "back-to-settings": "Voltar às Configurações",
   "board-id": "ID do Quadro",
   "board-id": "ID do Quadro",
   "board-migration": "Migração de Quadro",
   "board-migration": "Migração de Quadro",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Mostrar Listas no Mini cartão",
   "card-show-lists-on-minicard": "Mostrar Listas no Mini cartão",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Concluído",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Progresso Geral",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Detalhes",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Limpeza",
   "cleanup": "Limpeza",
   "cleanup-old-jobs": "Limpar Trabalhos Antigos",
   "cleanup-old-jobs": "Limpar Trabalhos Antigos",
   "completed": "Completado",
   "completed": "Completado",

+ 63 - 0
imports/i18n/data/pt.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Concluído",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Estado",
+  "migration-progress-details": "Detalhes",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completada",
   "completed": "Completada",

+ 63 - 0
imports/i18n/data/pt_PT.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Estado",
+  "migration-progress-details": "Detalhes",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completada",
   "completed": "Completada",

+ 63 - 0
imports/i18n/data/ro-RO.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ro.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/ru-UA.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Статус",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Завершен",
   "completed": "Завершен",

+ 63 - 0
imports/i18n/data/ru.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Завершено",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Статус",
+  "migration-progress-details": "Детали",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Завершен",
   "completed": "Завершен",

+ 63 - 0
imports/i18n/data/sk.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Completed",
   "completed": "Completed",

+ 63 - 0
imports/i18n/data/sl.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Status",
+  "migration-progress-details": "Details",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "zaključen",
   "completed": "zaključen",

+ 63 - 0
imports/i18n/data/sr.i18n.json

@@ -1404,7 +1404,70 @@
   "back-to-settings": "Back to Settings",
   "back-to-settings": "Back to Settings",
   "board-id": "Board ID",
   "board-id": "Board ID",
   "board-migration": "Board Migration",
   "board-migration": "Board Migration",
+  "board-migrations": "Board Migrations",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
   "card-show-lists-on-minicard": "Show Lists on Minicard",
+  "comprehensive-board-migration": "Comprehensive Board Migration",
+  "comprehensive-board-migration-description": "Performs comprehensive checks and fixes for board data integrity, including list ordering, card positions, and swimlane structure.",
+  "delete-duplicate-empty-lists-migration": "Delete Duplicate Empty Lists",
+  "delete-duplicate-empty-lists-migration-description": "Safely deletes empty duplicate lists. Only removes lists that have no cards AND have another list with the same title that contains cards.",
+  "lost-cards": "Lost Cards",
+  "lost-cards-list": "Restored Items",
+  "restore-lost-cards-migration": "Restore Lost Cards",
+  "restore-lost-cards-migration-description": "Finds and restores cards and lists with missing swimlaneId or listId. Creates a 'Lost Cards' swimlane to make all lost items visible again.",
+  "restore-all-archived-migration": "Restore All Archived",
+  "restore-all-archived-migration-description": "Restores all archived swimlanes, lists, and cards. Automatically fixes any missing swimlaneId or listId to make items visible.",
+  "fix-missing-lists-migration": "Fix Missing Lists",
+  "fix-missing-lists-migration-description": "Detects and repairs missing or corrupted lists in the board structure.",
+  "fix-avatar-urls-migration": "Fix Avatar URLs",
+  "fix-avatar-urls-migration-description": "Updates avatar URLs for board members to use the correct storage backend and fixes broken avatar references.",
+  "fix-all-file-urls-migration": "Fix All File URLs",
+  "fix-all-file-urls-migration-description": "Updates all file attachment URLs on this board to use the correct storage backend and fixes broken file references.",
+  "migration-needed": "Migration Needed",
+  "migration-complete": "Complete",
+  "migration-running": "Running...",
+  "migration-successful": "Migration completed successfully",
+  "migration-failed": "Migration failed",
+  "migrations": "Migrations",
+  "migrations-admin-only": "Only board administrators can run migrations",
+  "migrations-description": "Run data integrity checks and repairs for this board. Each migration can be executed individually.",
+  "no-issues-found": "No issues found",
+  "run-migration": "Run Migration",
+  "run-comprehensive-migration-confirm": "This will perform a comprehensive migration to check and fix board data integrity. This may take a few moments. Continue?",
+  "run-delete-duplicate-empty-lists-migration-confirm": "This will first convert any shared lists to per-swimlane lists, then delete empty lists that have a duplicate list with the same title containing cards. Only truly redundant empty lists will be removed. Continue?",
+  "run-restore-lost-cards-migration-confirm": "This will create a 'Lost Cards' swimlane and restore all cards and lists with missing swimlaneId or listId. This only affects non-archived items. Continue?",
+  "run-restore-all-archived-migration-confirm": "This will restore ALL archived swimlanes, lists, and cards, making them visible again. Any items with missing IDs will be automatically fixed. This cannot be easily undone. Continue?",
+  "run-fix-missing-lists-migration-confirm": "This will detect and repair missing or corrupted lists in the board structure. Continue?",
+  "run-fix-avatar-urls-migration-confirm": "This will update avatar URLs for board members to use the correct storage backend. Continue?",
+  "run-fix-all-file-urls-migration-confirm": "This will update all file attachment URLs on this board to use the correct storage backend. Continue?",
+  "restore-lost-cards-nothing-to-restore": "No lost swimlanes, lists, or cards to restore",
+  
+  "migration-progress-title": "Board Migration in Progress",
+  "migration-progress-overall": "Overall Progress",
+  "migration-progress-current-step": "Current Step",
+  "migration-progress-status": "Стање",
+  "migration-progress-details": "Детаљи",
+  "migration-progress-note": "Please wait while we migrate your board to the latest structure...",
+  
+  "step-analyze-board-structure": "Analyze Board Structure",
+  "step-fix-orphaned-cards": "Fix Orphaned Cards",
+  "step-convert-shared-lists": "Convert Shared Lists",
+  "step-ensure-per-swimlane-lists": "Ensure Per-Swimlane Lists",
+  "step-validate-migration": "Validate Migration",
+  "step-fix-avatar-urls": "Fix Avatar URLs",
+  "step-fix-attachment-urls": "Fix Attachment URLs",
+  "step-analyze-lists": "Analyze Lists",
+  "step-create-missing-lists": "Create Missing Lists",
+  "step-update-cards": "Update Cards",
+  "step-finalize": "Finalize",
+  "step-delete-duplicate-empty-lists": "Delete Duplicate Empty Lists",
+  "step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
+  "step-restore-lists": "Restore Lists",
+  "step-restore-cards": "Restore Cards",
+  "step-restore-swimlanes": "Restore Swimlanes",
+  "step-fix-missing-ids": "Fix Missing IDs",
+  "step-scan-users": "Checking board member avatars",
+  "step-scan-files": "Checking board file attachments",
+  "step-fix-file-urls": "Fixing file URLs",
   "cleanup": "Cleanup",
   "cleanup": "Cleanup",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "cleanup-old-jobs": "Cleanup Old Jobs",
   "completed": "Обављен",
   "completed": "Обављен",

Some files were not shown because too many files changed in this diff