diff --git a/imports/i18n/data/ace.i18n.json b/imports/i18n/data/ace.i18n.json
new file mode 100644
index 000000000..d48099de1
--- /dev/null
+++ b/imports/i18n/data/ace.i18n.json
@@ -0,0 +1,1605 @@
+{
+ "accept": "Accept",
+ "act-activity-notify": "Activity Notification",
+ "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-createBoard": "created board __board__",
+ "act-createSwimlane": "created swimlane __swimlane__ to board __board__",
+ "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
+ "act-createCustomField": "created custom field __customField__ at board __board__",
+ "act-deleteCustomField": "deleted custom field __customField__ at board __board__",
+ "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-createList": "added list __list__ to board __board__",
+ "act-addBoardMember": "added member __member__ to board __board__",
+ "act-archivedBoard": "Board __board__ moved to Archive",
+ "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
+ "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
+ "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
+ "act-importBoard": "imported board __board__",
+ "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
+ "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
+ "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
+ "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
+ "act-removeBoardMember": "removed member __member__ from board __board__",
+ "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
+ "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "act-withBoardTitle": "__board__",
+ "act-withCardTitle": "[__board__] __card__",
+ "actions": "Actions",
+ "activities": "Activities",
+ "activity": "Activity",
+ "activity-added": "added %s to %s",
+ "activity-archived": "%s moved to Archive",
+ "activity-attached": "attached %s to %s",
+ "activity-created": "created %s",
+ "activity-changedListTitle": "renamed list to %s",
+ "activity-customfield-created": "created custom field %s",
+ "activity-excluded": "excluded %s from %s",
+ "activity-imported": "imported %s into %s from %s",
+ "activity-imported-board": "imported %s from %s",
+ "activity-joined": "joined %s",
+ "activity-moved": "moved %s from %s to %s",
+ "activity-on": "on %s",
+ "activity-removed": "removed %s from %s",
+ "activity-sent": "sent %s to %s",
+ "activity-unjoined": "unjoined %s",
+ "activity-subtask-added": "added subtask to %s",
+ "activity-checked-item": "checked %s in checklist %s of %s",
+ "activity-unchecked-item": "unchecked %s in checklist %s of %s",
+ "activity-checklist-added": "added checklist to %s",
+ "activity-checklist-removed": "removed a checklist from %s",
+ "activity-checklist-completed": "completed checklist %s of %s",
+ "activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
+ "activity-checklist-item-added": "added checklist item to '%s' in %s",
+ "activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
+ "add": "Add",
+ "activity-checked-item-card": "checked %s in checklist %s",
+ "activity-unchecked-item-card": "unchecked %s in checklist %s",
+ "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+ "activity-checklist-uncompleted-card": "uncompleted the checklist %s",
+ "activity-editComment": "edited comment %s",
+ "activity-deleteComment": "deleted comment %s",
+ "activity-receivedDate": "edited received date to %s of %s",
+ "activity-startDate": "edited start date to %s of %s",
+ "allboards.starred": "Starred",
+ "allboards.templates": "Templates",
+ "allboards.remaining": "Remaining",
+ "allboards.workspaces": "Workspaces",
+ "allboards.add-workspace": "Add Workspace",
+ "allboards.add-workspace-prompt": "Workspace name",
+ "allboards.add-subworkspace": "Add Subworkspace",
+ "allboards.add-subworkspace-prompt": "Subworkspace name",
+ "allboards.edit-workspace": "Edit workspace",
+ "allboards.edit-workspace-name": "Workspace name",
+ "allboards.edit-workspace-icon": "Workspace icon (markdown)",
+ "multi-selection-active": "Click checkboxes to select boards",
+ "activity-dueDate": "edited due date to %s of %s",
+ "activity-endDate": "edited end date to %s of %s",
+ "add-attachment": "Add Attachment",
+ "add-board": "Add Board",
+ "add-template": "Add Template",
+ "add-card": "Add Card",
+ "add-card-to-top-of-list": "Add Card to Top of List",
+ "add-card-to-bottom-of-list": "Add Card to Bottom of List",
+ "setListWidthPopup-title": "Set Widths",
+ "set-list-width": "Set Widths",
+ "set-list-width-value": "Set Min & Max Widths (pixels)",
+ "list-width-error-message": "List widths must be integers greater than 100",
+ "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
+ "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
+ "setSwimlaneHeightPopup-title": "Set Swimlane Height",
+ "set-swimlane-height": "Set Swimlane Height",
+ "set-swimlane-height-value": "Swimlane Height (pixels)",
+ "swimlane-height-error-message": "Swimlane height must be a positive integer",
+ "add-swimlane": "Add Swimlane",
+ "add-subtask": "Add Subtask",
+ "add-checklist": "Add Checklist",
+ "add-checklist-item": "Add an item to checklist",
+ "close-add-checklist-item": "Close add an item to checklist form",
+ "close-edit-checklist-item": "Close edit an item to checklist form",
+ "convertChecklistItemToCardPopup-title": "Convert to Card",
+ "add-cover": "Add cover image to minicard",
+ "add-label": "Add Label",
+ "add-list": "Add List",
+ "add-after-list": "Add After List",
+ "add-members": "Add Members",
+ "added": "Added",
+ "addMemberPopup-title": "Members",
+ "memberPopup-title": "Member Settings",
+ "admin": "Admin",
+ "admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
+ "admin-announcement": "Announcement",
+ "admin-announcement-active": "Active System-Wide Announcement",
+ "admin-announcement-title": "Announcement from Administrator",
+ "all-boards": "All Boards",
+ "and-n-other-card": "And __count__ other card",
+ "and-n-other-card_plural": "And __count__ other cards",
+ "apply": "Apply",
+ "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
+ "app-try-reconnect": "Try to reconnect.",
+ "archive": "Move to Archive",
+ "archive-all": "Move All to Archive",
+ "archive-board": "Move Board to Archive",
+ "archive-board-confirm": "Are you sure you want to archive this board?",
+ "archive-card": "Move Card to Archive",
+ "archive-list": "Move List to Archive",
+ "archive-swimlane": "Move Swimlane to Archive",
+ "archive-selection": "Move selection to Archive",
+ "archiveBoardPopup-title": "Move Board to Archive?",
+ "archived-items": "Archive",
+ "archived-boards": "Boards in Archive",
+ "restore-board": "Restore Board",
+ "no-archived-boards": "No Boards in Archive.",
+ "archives": "Archive",
+ "template": "Template",
+ "templates": "Templates",
+ "template-container": "Template Container",
+ "add-template-container": "Add Template Container",
+ "assign-member": "Assign member",
+ "attached": "attached",
+ "attachment": "Attachment",
+ "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
+ "attachmentDeletePopup-title": "Delete Attachment?",
+ "attachments": "Attachments",
+ "auto-watch": "Automatically watch boards when they are created",
+ "avatar-too-big": "The avatar is too large (__size__ max)",
+ "back": "Back",
+ "board-change-color": "Change color",
+ "board-change-background-image": "Change Background Image",
+ "board-background-image-url": "Background Image URL",
+ "add-background-image": "Add Background Image",
+ "remove-background-image": "Remove Background Image",
+ "show-at-all-boards-page" : "Show at All Boards page",
+ "board-info-on-my-boards" : "All Boards Settings",
+ "boardInfoOnMyBoardsPopup-title" : "All Boards Settings",
+ "boardInfoOnMyBoards-title": "All Boards Settings",
+ "show-card-counter-per-list": "Show card count per list",
+ "show-board_members-avatar": "Show Board members avatars",
+ "board-nb-stars": "%s stars",
+ "board-not-found": "Board not found",
+ "board-private-info": "This board will be private.",
+ "board-public-info": "This board will be public.",
+ "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.",
+ "boardChangeColorPopup-title": "Change Board Background",
+ "boardChangeBackgroundImagePopup-title": "Change Background Image",
+ "allBoardsChangeColorPopup-title": "Change color",
+ "allBoardsChangeBackgroundImagePopup-title": "Change Background Image",
+ "boardChangeTitlePopup-title": "Rename Board",
+ "boardChangeVisibilityPopup-title": "Change Visibility",
+ "boardChangeWatchPopup-title": "Change Watch",
+ "boardMenuPopup-title": "Board Settings",
+ "allBoardsMenuPopup-title": "Settings",
+ "boardChangeViewPopup-title": "Board View",
+ "boards": "Boards",
+ "board-view": "Board View",
+ "desktop-mode": "Desktop Mode",
+ "mobile-mode": "Mobile Mode",
+ "mobile-desktop-toggle": "Toggle between Mobile and Desktop Mode",
+ "zoom-in": "Zoom In",
+ "zoom-out": "Zoom Out",
+ "click-to-change-zoom": "Click to change zoom level",
+ "zoom-level": "Zoom Level",
+ "enter-zoom-level": "Enter zoom level (50-300%):",
+ "board-view-cal": "Calendar",
+ "board-view-swimlanes": "Swimlanes",
+ "board-view-collapse": "Collapse",
+ "board-view-gantt": "Gantt",
+ "board-view-lists": "Lists",
+ "bucket-example": "Like \"Bucket List\" for example",
+ "calendar-previous-month-label": "Previous Month",
+ "calendar-next-month-label": "Next Month",
+ "cancel": "Cancel",
+ "card-archived": "This card is moved to Archive.",
+ "board-archived": "This board is moved to Archive.",
+ "card-comments-title": "This card has %s comment.",
+ "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.",
+ "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.",
+ "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
+ "card-archive-pop": "Card will not be visible at this list after archiving card.",
+ "card-archive-suggest-cancel": "You can later restore card from Archive.",
+ "card-due": "Due",
+ "card-due-on": "Due on",
+ "card-spent": "Spent Time",
+ "card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
+ "card-edit-labels": "Edit labels",
+ "card-edit-members": "Edit members",
+ "card-labels-title": "Change the labels for the card.",
+ "card-members-title": "Add or remove members of the board from the card.",
+ "card-start": "Start",
+ "card-start-on": "Starts on",
+ "cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
+ "cardStartVotingPopup-title": "Start a vote",
+ "positiveVoteMembersPopup-title": "Proponents",
+ "negativeVoteMembersPopup-title": "Opponents",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
+ "vote-question": "Voting question",
+ "vote-public": "Show who voted what",
+ "vote-for-it": "for it",
+ "vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
+ "cardStartPlanningPokerPopup-title": "Start a Planning Poker",
+ "card-edit-planning-poker": "Edit Planning Poker",
+ "editPokerEndDatePopup-title": "Change Planning Poker vote end date",
+ "poker-question": "Planning Poker",
+ "poker-one": "1",
+ "poker-two": "2",
+ "poker-three": "3",
+ "poker-five": "5",
+ "poker-eight": "8",
+ "poker-thirteen": "13",
+ "poker-twenty": "20",
+ "poker-forty": "40",
+ "poker-oneHundred": "100",
+ "poker-unsure": "?",
+ "poker-finish": "Finish",
+ "poker-result-votes": "Votes",
+ "poker-result-who": "Who",
+ "poker-replay": "Replay",
+ "set-estimation": "Set Estimation",
+ "deletePokerPopup-title": "Delete planning poker?",
+ "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.",
+ "cardDeletePopup-title": "Delete Card?",
+ "cardArchivePopup-title": "Archive Card?",
+ "cardDetailsActionsPopup-title": "Card Actions",
+ "cardLabelsPopup-title": "Labels",
+ "cardMembersPopup-title": "Members",
+ "cardMorePopup-title": "More",
+ "cardTemplatePopup-title": "Create template",
+ "cards": "Cards",
+ "cards-count": "Cards",
+ "cards-count-one": "Card",
+ "casSignIn": "Sign In with CAS",
+ "cardType-card": "Card",
+ "cardType-linkedCard": "Linked Card",
+ "cardType-linkedBoard": "Linked Board",
+ "change": "Change",
+ "change-avatar": "Change Avatar",
+ "change-password": "Change Password",
+ "change-permissions": "Change permissions",
+ "change-settings": "Change Settings",
+ "changeAvatarPopup-title": "Change Avatar",
+ "changeLanguagePopup-title": "Change Language",
+ "changePasswordPopup-title": "Change Password",
+ "changePermissionsPopup-title": "Change Permissions",
+ "changeSettingsPopup-title": "Change Settings",
+ "subtasks": "Subtasks",
+ "checklists": "Checklists",
+ "click-to-star": "Click to star this board.",
+ "click-to-unstar": "Click to unstar this board.",
+ "click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
+ "click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
+ "auto-list-width": "Auto list width",
+ "clipboard": "Clipboard or drag & drop",
+ "close": "Close",
+ "close-board": "Close Board",
+ "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
+ "close-card": "Close Card",
+ "color-black": "black",
+ "color-blue": "blue",
+ "color-crimson": "crimson",
+ "color-darkgreen": "darkgreen",
+ "color-gold": "gold",
+ "color-gray": "gray",
+ "color-green": "green",
+ "color-indigo": "indigo",
+ "color-lime": "lime",
+ "color-magenta": "magenta",
+ "color-mistyrose": "mistyrose",
+ "color-navy": "navy",
+ "color-orange": "orange",
+ "color-paleturquoise": "paleturquoise",
+ "color-peachpuff": "peachpuff",
+ "color-pink": "pink",
+ "color-plum": "plum",
+ "color-purple": "purple",
+ "color-red": "red",
+ "color-saddlebrown": "saddlebrown",
+ "color-silver": "silver",
+ "color-sky": "sky",
+ "color-slateblue": "slateblue",
+ "color-white": "white",
+ "color-yellow": "yellow",
+ "unset-color": "Unset",
+ "comments": "Comments",
+ "comment": "Comment",
+ "comment-placeholder": "Write Comment",
+ "comment-only": "Comment only",
+ "comment-only-desc": "Can comment on cards only.",
+ "comment-assigned-only": "Only Assigned Comment",
+ "comment-assigned-only-desc": "Only assigned cards visible. Can comment only.",
+ "comment-delete": "Are you sure you want to delete the comment?",
+ "deleteCommentPopup-title": "Delete comment?",
+ "no-comments": "No comments",
+ "no-comments-desc": "Can not see comments and activities.",
+ "read-only": "Read Only",
+ "read-only-desc": "Can view cards only. Can not edit.",
+ "read-assigned-only": "Only Assigned Read",
+ "read-assigned-only-desc": "Only assigned cards visible. Can not edit.",
+ "worker": "Worker",
+ "worker-desc": "Can only move cards, assign itself to card and comment.",
+ "computer": "Computer",
+ "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?",
+ "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?",
+ "subtaskDeletePopup-title": "Delete Subtask?",
+ "checklistDeletePopup-title": "Delete Checklist?",
+ "checklistItemDeletePopup-title": "Delete Checklist Item?",
+ "copy-card-link-to-clipboard": "Copy card link to clipboard",
+ "copy-text-to-clipboard": "Copy text to clipboard",
+ "linkCardPopup-title": "Link Card",
+ "searchElementPopup-title": "Search",
+ "copyCardPopup-title": "Copy Card",
+ "copyManyCardsPopup-title": "Copy Template to Many Cards",
+ "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
+ "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
+ "create": "Create",
+ "createBoardPopup-title": "Create Board",
+ "createTemplateContainerPopup-title": "Add Template Container",
+ "chooseBoardSourcePopup-title": "Import board",
+ "createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
+ "current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-currency": "Currency",
+ "custom-field-currency-option": "Currency Code",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
+ "date": "Date",
+ "date-format": "Date Format",
+ "date-format-yyyy-mm-dd": "YYYY-MM-DD",
+ "date-format-dd-mm-yyyy": "DD-MM-YYYY",
+ "date-format-mm-dd-yyyy": "MM-DD-YYYY",
+ "decline": "Decline",
+ "default-avatar": "Default avatar",
+ "delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
+ "deleteLabelPopup-title": "Delete Label?",
+ "description": "Description",
+ "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
+ "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
+ "discard": "Discard",
+ "done": "Done",
+ "download": "Download",
+ "edit": "Edit",
+ "edit-avatar": "Change Avatar",
+ "edit-profile": "Edit Profile",
+ "edit-wip-limit": "Edit WIP Limit",
+ "soft-wip-limit": "Soft WIP Limit",
+ "editCardStartDatePopup-title": "Change start date",
+ "editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
+ "addReactionPopup-title": "Add reaction",
+ "editCardSpentTimePopup-title": "Change spent time",
+ "editLabelPopup-title": "Change Label",
+ "editNotificationPopup-title": "Edit Notification",
+ "editProfilePopup-title": "Edit Profile",
+ "email": "Email",
+ "email-address": "Email Address",
+ "email-enrollAccount-subject": "An account created for you on __siteName__",
+ "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
+ "email-fail": "Sending email failed",
+ "email-fail-text": "Error trying to send email",
+ "email-invalid": "Invalid email",
+ "email-invite": "Invite via Email",
+ "email-invite-subject": "__inviter__ sent you an invitation",
+ "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.",
+ "email-resetPassword-subject": "Reset your password on __siteName__",
+ "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
+ "email-sent": "Email sent",
+ "email-verifyEmail-subject": "Verify your email address on __siteName__",
+ "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
+ "enable-vertical-scrollbars": "Enable vertical scrollbars",
+ "enable-wip-limit": "Enable WIP Limit",
+ "error-board-doesNotExist": "This board does not exist",
+ "error-board-notAdmin": "You need to be admin of this board to do that",
+ "error-board-notAMember": "You need to be a member of this board to do that",
+ "error-json-malformed": "Your text is not valid JSON",
+ "error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
+ "error-list-doesNotExist": "This list does not exist",
+ "error-user-doesNotExist": "This user does not exist",
+ "error-user-notAllowSelf": "You can not invite yourself",
+ "error-user-notCreated": "This user is not created",
+ "error-username-taken": "This username is already taken",
+ "error-orgname-taken": "This organization name is already taken",
+ "error-teamname-taken": "This team name is already taken",
+ "error-email-taken": "Email has already been taken",
+ "export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-excel": "Export board to Excel",
+ "user-can-not-export-excel": "User can not export Excel",
+ "export-board-html": "Export board to HTML",
+ "export-card": "Export card",
+ "export-card-pdf": "Export card to PDF",
+ "user-can-not-export-card-to-pdf": "User can not export card to PDF",
+ "exportBoardPopup-title": "Export board",
+ "exportCardPopup-title": "Export card",
+ "sort": "Sort",
+ "sorted": "Sorted",
+ "remove-sort": "Remove sort",
+ "sort-desc": "Click to Sort List",
+ "list-sort-by": "Sort the List By:",
+ "list-label-modifiedAt": "Last Access Time",
+ "list-label-title": "Name of the List",
+ "list-label-sort": "Your Manual Order",
+ "list-label-short-modifiedAt": "(L)",
+ "list-label-short-title": "(N)",
+ "list-label-short-sort": "(M)",
+ "filter": "Filter",
+ "filter-cards": "Filter Cards or Lists",
+ "filter-dates-label": "Filter by date",
+ "filter-no-due-date": "No due date",
+ "filter-overdue": "Overdue",
+ "filter-due-today": "Due today",
+ "filter-due-this-week": "Due this week",
+ "filter-due-next-week": "Due next week",
+ "filter-due-tomorrow": "Due tomorrow",
+ "list-filter-label": "Filter List by Title",
+ "filter-clear": "Clear filter",
+ "filter-labels-label": "Filter by label",
+ "filter-no-label": "No label",
+ "filter-member-label": "Filter by member",
+ "filter-no-member": "No member",
+ "filter-assignee-label": "Filter by assignee",
+ "filter-no-assignee": "No assignee",
+ "filter-custom-fields-label": "Filter by Custom Fields",
+ "filter-no-custom-fields": "No Custom Fields",
+ "filter-show-archive": "Show archived lists",
+ "filter-hide-empty": "Hide empty lists",
+ "filter-on": "Filter is on",
+ "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
+ "filter-to-selection": "Filter to selection",
+ "other-filters-label": "Other Filters",
+ "advanced-filter-label": "Advanced Filter",
+ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+ "fullname": "Full Name",
+ "header-logo-title": "Go back to your boards page.",
+ "show-activities": "Show Activities",
+ "headerBarCreateBoardPopup-title": "Create Board",
+ "home": "Home",
+ "import": "Import",
+ "impersonate-user": "Impersonate user",
+ "link": "Link",
+ "import-board": "import board",
+ "import-board-c": "Import board",
+ "import-board-title-trello": "Import board from Trello",
+ "import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
+ "from-trello": "From Trello",
+ "from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
+ "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
+ "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
+ "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
+ "import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
+ "import-map-members": "Map members",
+ "import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
+ "import-members-map-note": "Note: Unmapped members will be assigned to the current user.",
+ "import-show-user-mapping": "Review members mapping",
+ "import-user-select": "Pick your existing user you want to use as this member",
+ "importMapMembersAddPopup-title": "Select member",
+ "info": "Version",
+ "initials": "Initials",
+ "invalid-date": "Invalid date",
+ "invalid-time": "Invalid time",
+ "invalid-user": "Invalid user",
+ "joined": "joined",
+ "just-invited": "You are just invited to this board",
+ "keyboard-shortcuts": "Keyboard shortcuts",
+ "label-create": "Create Label",
+ "label-default": "%s label (default)",
+ "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
+ "labels": "Labels",
+ "language": "Language",
+ "last-admin-desc": "You can’t change roles because there must be at least one admin.",
+ "leave-board": "Leave Board",
+ "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
+ "leaveBoardPopup-title": "Leave Board ?",
+ "link-card": "Link to this card",
+ "list-archive-cards": "Move all cards in this list to Archive",
+ "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
+ "list-move-cards": "Move all cards in this list",
+ "list-select-cards": "Select all cards in this list",
+ "set-color-list": "Set Color",
+ "listActionPopup-title": "List Actions",
+ "settingsUserPopup-title": "User Settings",
+ "settingsTeamPopup-title": "Team Settings",
+ "settingsOrgPopup-title": "Organization Settings",
+ "swimlaneActionPopup-title": "Swimlane Actions",
+ "swimlaneAddPopup-title": "Add a Swimlane below",
+ "listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
+ "listMorePopup-title": "More",
+ "link-list": "Link to this list",
+ "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
+ "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
+ "lists": "Lists",
+ "swimlanes": "Swimlanes",
+ "log-out": "Log Out",
+ "log-in": "Log In",
+ "loginPopup-title": "Log In",
+ "memberMenuPopup-title": "Member Settings",
+ "grey-icons": "Grey Icons",
+ "members": "Members",
+ "menu": "Menu",
+ "move-selection": "Move selection",
+ "moveCardPopup-title": "Move Card",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
+ "moveSelectionPopup-title": "Move selection",
+ "copySelectionPopup-title": "Copy selection",
+ "selection-color": "Selection Color",
+ "multi-selection": "Multi-Selection",
+ "multi-selection-label": "Set label for selection",
+ "multi-selection-member": "Set member for selection",
+ "multi-selection-on": "Multi-Selection is on",
+ "muted": "Muted",
+ "muted-info": "You will never be notified of any changes in this board",
+ "my-boards": "My Boards",
+ "name": "Name",
+ "no-archived-cards": "No cards in Archive.",
+ "no-archived-lists": "No lists in Archive.",
+ "no-archived-swimlanes": "No swimlanes in Archive.",
+ "no-results": "No results",
+ "normal": "Normal",
+ "normal-desc": "Can view and edit cards. Can't change settings.",
+ "normal-assigned-only": "Only Assigned Normal",
+ "normal-assigned-only-desc": "Only assigned cards visible. Edit as Normal user.",
+ "not-accepted-yet": "Invitation not accepted yet",
+ "notify-participate": "Receive updates to any cards you participate as creator or member",
+ "notify-watch": "Receive updates to any boards, lists, or cards you’re watching",
+ "optional": "optional",
+ "or": "or",
+ "page-maybe-private": "This page may be private. You may be able to view it by logging in.",
+ "page-not-found": "Page not found.",
+ "password": "Password",
+ "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
+ "participating": "Participating",
+ "preview": "Preview",
+ "previewAttachedImagePopup-title": "Preview",
+ "previewClipboardImagePopup-title": "Preview",
+ "private": "Private",
+ "private-desc": "This board is private. Only people added to the board can view and edit it.",
+ "profile": "Profile",
+ "public": "Public",
+ "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.",
+ "quick-access-description": "Star a board to add a shortcut in this bar.",
+ "remove-cover": "Remove cover image from minicard",
+ "remove-from-board": "Remove from Board",
+ "remove-label": "Remove Label",
+ "listDeletePopup-title": "Delete List ?",
+ "remove-member": "Remove Member",
+ "remove-member-from-card": "Remove from Card",
+ "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.",
+ "removeMemberPopup-title": "Remove Member?",
+ "rename": "Rename",
+ "rename-board": "Rename Board",
+ "restore": "Restore",
+ "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions",
+ "rescue-card-description-dialogue": "Overwrite current card description with your changes?",
+ "save": "Save",
+ "search": "Search",
+ "rules": "Rules",
+ "search-cards": "Search from card/list titles, descriptions and custom fields on this board",
+ "search-example": "Write text you search and press Enter",
+ "select-color": "Select Color",
+ "select-board": "Select Board",
+ "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
+ "setWipLimitPopup-title": "Set WIP Limit",
+ "shortcut-add-self": "Add yourself to current card",
+ "shortcut-assign-self": "Assign yourself to current card",
+ "shortcut-autocomplete-emoji": "Autocomplete emoji",
+ "shortcut-autocomplete-members": "Autocomplete members",
+ "shortcut-clear-filters": "Clear all filters",
+ "shortcut-close-dialog": "Close Dialog",
+ "shortcut-filter-my-cards": "Filter my cards",
+ "shortcut-filter-my-assigned-cards": "Filter my assigned cards",
+ "shortcut-show-shortcuts": "Bring up this shortcuts list",
+ "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
+ "shortcut-toggle-searchbar": "Toggle Search Sidebar",
+ "shortcut-toggle-sidebar": "Toggle Board Sidebar",
+ "show-cards-minimum-count": "Show cards count if list contains more than",
+ "sidebar-open": "Open Sidebar",
+ "sidebar-close": "Close Sidebar",
+ "signupPopup-title": "Create an Account",
+ "star-board-title": "Click to star this board. It will show up at top of your boards list.",
+ "starred-boards": "Starred Boards",
+ "starred-boards-description": "Starred boards show up at the top of your boards list.",
+ "subscribe": "Subscribe",
+ "team": "Team",
+ "this-board": "this board",
+ "this-card": "this card",
+ "spent-time-hours": "Spent time (hours)",
+ "overtime-hours": "Overtime (hours)",
+ "overtime": "Overtime",
+ "has-overtime-cards": "Has overtime cards",
+ "has-spenttime-cards": "Has spent time cards",
+ "time": "Time",
+ "title": "Title",
+ "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
+ "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9",
+ "remove-labels-multiselect": "Multi-Selection removes labels 1-9",
+ "tracking": "Tracking",
+ "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
+ "unassign-member": "Unassign member",
+ "unsaved-description": "You have an unsaved description.",
+ "unwatch": "Unwatch",
+ "upload": "Upload",
+ "upload-avatar": "Upload an avatar",
+ "uploaded-avatar": "Uploaded an avatar",
+ "uploading-files": "Uploading files",
+ "upload-failed": "Upload failed",
+ "upload-completed": "Upload completed",
+ "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL",
+ "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL",
+ "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
+ "custom-login-logo-image-url": "Custom Login Logo Image URL",
+ "custom-login-logo-link-url": "Custom Login Logo Link URL",
+ "custom-help-link-url": "Custom Help Link URL",
+ "text-below-custom-login-logo": "Text below Custom Login Logo",
+ "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
+ "username": "Username",
+ "import-usernames": "Import Usernames",
+ "view-it": "View it",
+ "warn-list-archived": "warning: this card is in an list at Archive",
+ "watch": "Watch",
+ "watching": "Watching",
+ "watching-info": "You will be notified of any change in this board",
+ "welcome-board": "Welcome Board",
+ "welcome-swimlane": "Milestone 1",
+ "welcome-list1": "Basics",
+ "welcome-list2": "Advanced",
+ "card-templates-swimlane": "Card Templates",
+ "list-templates-swimlane": "List Templates",
+ "board-templates-swimlane": "Board Templates",
+ "what-to-do": "What do you want to do?",
+ "wipLimitErrorPopup-title": "Invalid WIP Limit",
+ "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
+ "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
+ "admin-panel": "Admin Panel",
+ "settings": "Settings",
+ "people": "People",
+ "registration": "Registration",
+ "disable-self-registration": "Disable Self-Registration",
+ "disable-forgot-password": "Disable Forgot Password",
+ "invite": "Invite",
+ "invite-people": "Invite People",
+ "to-boards": "To board(s)",
+ "email-addresses": "Email Addresses",
+ "smtp-host-description": "The address of the SMTP server that handles your emails.",
+ "smtp-port-description": "The port your SMTP server uses for outgoing emails.",
+ "smtp-tls-description": "Enable TLS support for SMTP server",
+ "smtp-host": "SMTP Host",
+ "smtp-port": "SMTP Port",
+ "smtp-username": "Username",
+ "smtp-password": "Password",
+ "smtp-tls": "TLS support",
+ "send-from": "From",
+ "send-smtp-test": "Send a test email to yourself",
+ "invitation-code": "Invitation Code",
+ "email-invite-register-subject": "__inviter__ sent you an invitation",
+ "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
+ "email-smtp-test-subject": "SMTP Test Email",
+ "email-smtp-test-text": "You have successfully sent an email",
+ "error-invitation-code-not-exist": "Invitation code doesn't exist",
+ "error-notAuthorized": "You are not authorized to view this page.",
+ "webhook-title": "Webhook Name",
+ "webhook-token": "Token (Optional for Authentication)",
+ "outgoing-webhooks": "Outgoing Webhooks",
+ "bidirectional-webhooks": "Two-Way Webhooks",
+ "outgoingWebhooksPopup-title": "Outgoing Webhooks",
+ "boardCardTitlePopup-title": "Card Title Filter",
+ "disable-webhook": "Disable This Webhook",
+ "global-webhook": "Global Webhooks",
+ "new-outgoing-webhook": "New Outgoing Webhook",
+ "no-name": "(Unknown)",
+ "Node_version": "Node version",
+ "Meteor_version": "Meteor version",
+ "MongoDB_version": "MongoDB version",
+ "MongoDB_storage_engine": "MongoDB storage engine",
+ "MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
+ "OS_Arch": "OS Arch",
+ "OS_Cpus": "OS CPU Count",
+ "OS_Freemem": "OS Free Memory",
+ "OS_Loadavg": "OS Load Average",
+ "OS_Platform": "OS Platform",
+ "OS_Release": "OS Release",
+ "OS_Totalmem": "OS Total Memory",
+ "OS_Type": "OS Type",
+ "OS_Uptime": "OS Uptime",
+ "days": "days",
+ "hours": "hours",
+ "minutes": "minutes",
+ "seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
+ "automatically-field-on-card": "Add field to new cards",
+ "always-field-on-card": "Add field to all cards",
+ "showLabel-field-on-card": "Show field label on minicard",
+ "showSum-field-on-list": "Show sum of fields at top of list",
+ "yes": "Yes",
+ "no": "No",
+ "accounts": "Accounts",
+ "accounts-allowEmailChange": "Allow Email Change",
+ "accounts-allowUserNameChange": "Allow Username Change",
+ "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only",
+ "tableVisibilityMode" : "Boards visibility",
+ "createdAt": "Created at",
+ "modifiedAt": "Modified at",
+ "verified": "Verified",
+ "active": "Active",
+ "card-received": "Received",
+ "card-received-on": "Received on",
+ "card-end": "End",
+ "card-end-on": "Ends on",
+ "editCardReceivedDatePopup-title": "Change received date",
+ "editCardEndDatePopup-title": "Change end date",
+ "setCardColorPopup-title": "Set color",
+ "setSelectionColorPopup-title": "Set selection color",
+ "setCardActionsColorPopup-title": "Choose a color",
+ "setSwimlaneColorPopup-title": "Choose a color",
+ "setListColorPopup-title": "Choose a color",
+ "assigned-by": "Assigned By",
+ "requested-by": "Requested By",
+ "card-sorting-by-number": "Card sorting by number",
+ "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
+ "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
+ "boardDeletePopup-title": "Delete Board?",
+ "delete-board": "Delete Board",
+ "delete-duplicate-lists": "Delete Duplicate Lists",
+ "delete-duplicate-lists-confirm": "Are you sure? This will delete all duplicate lists that have the same name and contain no cards.",
+ "default-subtasks-board": "Subtasks for __board__ board",
+ "default": "Default",
+ "defaultdefault": "Default",
+ "queue": "Queue",
+ "subtask-settings": "Subtasks Settings",
+ "card-settings": "Card Settings",
+ "minicard-settings": "Minicard Settings",
+ "boardSubtaskSettingsPopup-title": "Subtasks Settings",
+ "boardCardSettingsPopup-title": "Card Settings",
+ "boardMinicardSettingsPopup-title": "Minicard Settings",
+ "deposit-subtasks-board": "Deposit subtasks to this board:",
+ "deposit-subtasks-list": "Landing list for subtasks deposited here:",
+ "show-parent-in-minicard": "Show parent in minicard:",
+ "description-on-minicard": "Description on minicard",
+ "cover-attachment-on-minicard": "Cover image on minicard",
+ "badge-attachment-on-minicard": "Count of attachments on minicard",
+ "card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
+ "prefix-with-full-path": "Prefix with full path",
+ "prefix-with-parent": "Prefix with parent",
+ "subtext-with-full-path": "Subtext with full path",
+ "subtext-with-parent": "Subtext with parent",
+ "change-card-parent": "Change card's parent",
+ "parent-card": "Parent card",
+ "source-board": "Source board",
+ "no-parent": "Don't show parent",
+ "activity-added-label": "added label '%s' to %s",
+ "activity-removed-label": "removed label '%s' from %s",
+ "activity-delete-attach": "deleted an attachment from %s",
+ "activity-added-label-card": "added label '%s'",
+ "activity-removed-label-card": "removed label '%s'",
+ "activity-delete-attach-card": "deleted an attachment",
+ "activity-set-customfield": "set custom field '%s' to '%s' in %s",
+ "activity-unset-customfield": "unset custom field '%s' in %s",
+ "r-rule": "Rule",
+ "r-add-trigger": "Add trigger",
+ "r-add-action": "Add action",
+ "r-board-rules": "Board rules",
+ "r-add-rule": "Add rule",
+ "r-view-rule": "View rule",
+ "r-delete-rule": "Delete rule",
+ "r-new-rule-name": "New rule title",
+ "r-no-rules": "No rules",
+ "r-trigger": "Trigger",
+ "r-action": "Action",
+ "r-when-a-card": "When a card",
+ "r-is": "is",
+ "r-is-moved": "is moved",
+ "r-added-to": "Added to",
+ "r-removed-from": "Removed from",
+ "r-the-board": "the board",
+ "r-list": "list",
+ "set-filter": "Set Filter",
+ "r-moved-to": "Moved to",
+ "r-moved-from": "Moved from",
+ "r-archived": "Moved to Archive",
+ "r-unarchived": "Restored from Archive",
+ "r-a-card": "a card",
+ "r-when-a-label-is": "When a label is",
+ "r-when-the-label": "When the label",
+ "r-list-name": "list name",
+ "r-when-a-member": "When a member is",
+ "r-when-the-member": "When the member",
+ "r-name": "name",
+ "r-when-a-attach": "When an attachment",
+ "r-when-a-checklist": "When a checklist is",
+ "r-when-the-checklist": "When the checklist",
+ "r-completed": "Completed",
+ "r-made-incomplete": "Made incomplete",
+ "r-when-a-item": "When a checklist item is",
+ "r-when-the-item": "When the checklist item",
+ "r-checked": "Checked",
+ "r-unchecked": "Unchecked",
+ "r-move-card-to": "Move card to",
+ "r-top-of": "Top of",
+ "r-bottom-of": "Bottom of",
+ "r-its-list": "its list",
+ "r-archive": "Move to Archive",
+ "r-unarchive": "Restore from Archive",
+ "r-card": "card",
+ "r-add": "Add",
+ "r-remove": "Remove",
+ "r-label": "label",
+ "r-member": "member",
+ "r-remove-all": "Remove all members from the card",
+ "r-set-color": "Set color to",
+ "r-checklist": "checklist",
+ "r-check-all": "Check all",
+ "r-uncheck-all": "Uncheck all",
+ "r-items-check": "items of checklist",
+ "r-check": "Check",
+ "r-uncheck": "Uncheck",
+ "r-item": "item",
+ "r-of-checklist": "of checklist",
+ "r-send-email": "Send an email",
+ "r-to": "to",
+ "r-of": "of",
+ "r-subject": "subject",
+ "r-rule-details": "Rule details",
+ "r-d-move-to-top-gen": "Move card to top of its list",
+ "r-d-move-to-top-spec": "Move card to top of list",
+ "r-d-move-to-bottom-gen": "Move card to bottom of its list",
+ "r-d-move-to-bottom-spec": "Move card to bottom of list",
+ "r-d-send-email": "Send email",
+ "r-d-send-email-to": "to",
+ "r-d-send-email-subject": "subject",
+ "r-d-send-email-message": "message",
+ "r-d-archive": "Move card to Archive",
+ "r-d-unarchive": "Restore card from Archive",
+ "r-d-add-label": "Add label",
+ "r-d-remove-label": "Remove label",
+ "r-create-card": "Create new card",
+ "r-in-list": "in list",
+ "r-in-swimlane": "in swimlane",
+ "r-d-add-member": "Add member",
+ "r-d-remove-member": "Remove member",
+ "r-d-remove-all-member": "Remove all member",
+ "r-d-check-all": "Check all items of a list",
+ "r-d-uncheck-all": "Uncheck all items of a list",
+ "r-d-check-one": "Check item",
+ "r-d-uncheck-one": "Uncheck item",
+ "r-d-check-of-list": "of checklist",
+ "r-d-add-checklist": "Add checklist",
+ "r-d-remove-checklist": "Remove checklist",
+ "r-by": "by",
+ "r-add-checklist": "Add checklist",
+ "r-with-items": "with items",
+ "r-items-list": "item1,item2,item3",
+ "r-add-swimlane": "Add swimlane",
+ "r-swimlane-name": "swimlane name",
+ "r-board-note": "Note: leave a field empty to match every possible value. ",
+ "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
+ "r-when-a-card-is-moved": "When a card is moved to another list",
+ "r-set": "Set",
+ "r-update": "Update",
+ "r-datefield": "date field",
+ "r-df-start-at": "start",
+ "r-df-due-at": "due",
+ "r-df-end-at": "end",
+ "r-df-received-at": "received",
+ "r-to-current-datetime": "to current date/time",
+ "r-remove-value-from": "Remove value from",
+ "r-link-card": "Link card to",
+ "ldap": "LDAP",
+ "oauth2": "OAuth2",
+ "cas": "CAS",
+ "authentication-method": "Authentication method",
+ "authentication-type": "Authentication type",
+ "custom-product-name": "Custom Product Name",
+ "layout": "Layout",
+ "hide-logo": "Hide Logo",
+ "hide-card-counter-list": "Hide card counter list on All Boards",
+ "hide-board-member-list": "Hide board member list on All Boards",
+ "add-custom-html-after-body-start": "Add Custom HTML after
start",
+ "add-custom-html-before-body-end": "Add Custom HTML before end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login",
+ "display-authentication-method": "Display Authentication Method",
+ "oidc-button-text": "Customize the OIDC button text",
+ "default-authentication-method": "Default Authentication Method",
+ "duplicate-board": "Duplicate Board",
+ "duplicate-board-confirm": "Are you sure you want to duplicate this board?",
+ "org-number": "The number of organizations is: ",
+ "team-number": "The number of teams is: ",
+ "people-number": "The number of people is: ",
+ "swimlaneDeletePopup-title": "Delete Swimlane ?",
+ "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
+ "restore-all": "Restore all",
+ "delete-all": "Delete all",
+ "loading": "Loading, please wait.",
+ "previous_as": "last time was",
+ "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
+ "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
+ "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
+ "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
+ "a-dueAt": "modified due time to be",
+ "a-endAt": "modified ending time to be",
+ "a-startAt": "modified starting time to be",
+ "a-receivedAt": "modified received time to be",
+ "above-selected-card": "Above selected card",
+ "below-selected-card": "Below selected card",
+ "almostdue": "current due time %s is approaching",
+ "pastdue": "current due time %s is past",
+ "duenow": "current due time %s is today",
+ "act-newDue": "__list__/__card__ has 1st due reminder [__board__]",
+ "act-withDue": "__list__/__card__ due reminders [__board__]",
+ "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
+ "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
+ "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
+ "act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
+ "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
+ "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.",
+ "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.",
+ "accounts-allowUserDelete": "Allow users to self delete their account",
+ "hide-minicard-label-text": "Hide minicard label text",
+ "show-desktop-drag-handles": "Show desktop drag handles",
+ "assignee": "Assignee",
+ "cardAssigneesPopup-title": "Assignee",
+ "addmore-detail": "Add a more detailed description",
+ "show-on-card": "Show on Card",
+ "show-on-minicard": "Show on Minicard",
+ "new": "New",
+ "editOrgPopup-title": "Edit Organization",
+ "newOrgPopup-title": "New Organization",
+ "editTeamPopup-title": "Edit Team",
+ "newTeamPopup-title": "New Team",
+ "editUserPopup-title": "Edit User",
+ "newUserPopup-title": "New User",
+ "notifications": "Notifications",
+ "help": "Help",
+ "view-all": "View All",
+ "filter-by-unread": "Filter by Unread",
+ "mark-all-as-read": "Mark all as read",
+ "remove-all-read": "Remove all read",
+ "allow-rename": "Allow Rename",
+ "allowRenamePopup-title": "Allow Rename",
+ "start-day-of-week": "Set day of the week start",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
+ "hide-checked-items": "Hide checked items",
+ "hide-finished-checklist": "Hide finished checklist",
+ "task": "Task",
+ "create-task": "Create Task",
+ "ok": "OK",
+ "organizations": "Organizations",
+ "teams": "Teams",
+ "displayName": "Display Name",
+ "shortName": "Short Name",
+ "autoAddUsersWithDomainName": "Automatically add users with the domain name",
+ "website": "Website",
+ "person": "Person",
+ "my-cards": "My Cards",
+ "card": "Card",
+ "list": "List",
+ "board": "Board",
+ "context-separator": "/",
+ "myCardsViewChange-title": "My Cards View",
+ "myCardsViewChangePopup-title": "My Cards View",
+ "myCardsViewChange-choice-boards": "Boards",
+ "myCardsViewChange-choice-table": "Table",
+ "myCardsSortChange-title": "My Cards Sort",
+ "myCardsSortChangePopup-title": "My Cards Sort",
+ "myCardsSortChange-choice-board": "By Board",
+ "myCardsSortChange-choice-dueat": "By Due Date",
+ "dueCards-title": "Due Cards",
+ "dueCardsViewChange-title": "Due Cards View",
+ "dueCardsViewChangePopup-title": "Due Cards View",
+ "dueCardsViewChange-choice-me": "Me",
+ "dueCardsViewChange-choice-all": "All Users",
+ "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
+ "dueCards-noResults-title": "No Due Cards Found",
+ "dueCards-noResults-description": "You don't have any cards with due dates at the moment.",
+ "broken-cards": "Broken Cards",
+ "board-title-not-found": "Board '%s' not found.",
+ "swimlane-title-not-found": "Swimlane '%s' not found.",
+ "list-title-not-found": "List '%s' not found.",
+ "label-not-found": "Label '%s' not found.",
+ "label-color-not-found": "Label color %s not found.",
+ "user-username-not-found": "Username '%s' not found.",
+ "comment-not-found": "Card with comment containing text '%s' not found.",
+ "org-name-not-found": "Organization '%s' not found.",
+ "team-name-not-found": "Team '%s' not found.",
+ "globalSearch-title": "Search All Boards",
+ "no-cards-found": "No Cards Found",
+ "one-card-found": "One Card Found",
+ "n-cards-found": "%s Cards Found",
+ "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found",
+ "operator-board": "board",
+ "operator-board-abbrev": "b",
+ "operator-swimlane": "swimlane",
+ "operator-swimlane-abbrev": "s",
+ "operator-list": "list",
+ "operator-list-abbrev": "l",
+ "operator-label": "label",
+ "operator-label-abbrev": "#",
+ "operator-user": "user",
+ "operator-user-abbrev": "@",
+ "operator-member": "member",
+ "operator-member-abbrev": "m",
+ "operator-assignee": "assignee",
+ "operator-assignee-abbrev": "a",
+ "operator-creator": "creator",
+ "operator-status": "status",
+ "operator-due": "due",
+ "operator-created": "created",
+ "operator-modified": "modified",
+ "operator-sort": "sort",
+ "operator-comment": "comment",
+ "operator-has": "has",
+ "operator-limit": "limit",
+ "operator-debug": "debug",
+ "operator-org": "org",
+ "operator-team": "team",
+ "predicate-archived": "archived",
+ "predicate-open": "open",
+ "predicate-ended": "ended",
+ "predicate-all": "all",
+ "predicate-overdue": "overdue",
+ "predicate-week": "week",
+ "predicate-month": "month",
+ "predicate-quarter": "quarter",
+ "predicate-year": "year",
+ "predicate-due": "due",
+ "predicate-modified": "modified",
+ "predicate-created": "created",
+ "predicate-attachment": "attachment",
+ "predicate-description": "description",
+ "predicate-checklist": "checklist",
+ "predicate-start": "start",
+ "predicate-end": "end",
+ "predicate-assignee": "assignee",
+ "predicate-member": "member",
+ "predicate-public": "public",
+ "predicate-private": "private",
+ "predicate-selector": "selector",
+ "predicate-projection": "projection",
+ "operator-unknown-error": "%s is not an operator",
+ "operator-number-expected": "operator __operator__ expected a number, got '__value__'",
+ "operator-sort-invalid": "sort of '%s' is invalid",
+ "operator-status-invalid": "'%s' is not a valid status",
+ "operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
+ "operator-debug-invalid": "%s is not a valid debug predicate",
+ "next-page": "Next Page",
+ "previous-page": "Previous Page",
+ "heading-notes": "Notes",
+ "globalSearch-instructions-heading": "Search Instructions",
+ "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
+ "globalSearch-instructions-operators": "Available operators:",
+ "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-creator": "`__operator_creator__:` - cards where ** is the card's creator",
+ "globalSearch-instructions-operator-org": "`__operator_org__:` - cards belonging to a board assigned to organization **",
+ "globalSearch-instructions-operator-team": "`__operator_team__:` - cards belonging to a board assigned to team **",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where ** is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of ** searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+ "globalSearch-instructions-operator-sort": "`__operator_sort__:` - where ** is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
+ "globalSearch-instructions-operator-limit": "`__operator_limit__:` - where ** is a positive integer expressing the number of cards to be displayed per page.",
+ "globalSearch-instructions-notes-1": "Multiple operators may be specified.",
+ "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
+ "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
+ "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
+ "globalSearch-instructions-notes-4": "Text searches are case insensitive.",
+ "globalSearch-instructions-notes-5": "By default archived cards are not searched.",
+ "link-to-search": "Link to this search",
+ "excel-font": "Arial",
+ "number": "Number",
+ "label-colors": "Label Colors",
+ "label-names": "Label Names",
+ "archived-at": "archived at",
+ "sort-cards": "Sort Cards",
+ "sort-is-on": "Sort is on",
+ "cardsSortPopup-title": "Sort Cards",
+ "due-date": "Due Date",
+ "server-error": "Server Error",
+ "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`",
+ "title-alphabetically": "Title (Alphabetically)",
+ "created-at-newest-first": "Created At (Newest First)",
+ "created-at-oldest-first": "Created At (Oldest First)",
+ "links-heading": "Links",
+ "hide-activities-of-all-boards": "Don't show the board activities on all boards",
+ "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
+ "move-swimlane": "Move Swimlane",
+ "moveSwimlanePopup-title": "Move Swimlane",
+ "custom-field-stringtemplate": "String Template",
+ "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)",
+ "custom-field-stringtemplate-separator": "Separator (use or for a space)",
+ "custom-field-stringtemplate-item-placeholder": "Press enter to add more items",
+ "creator": "Creator",
+ "creator-on-minicard": "Creator on minicard",
+ "filesReportTitle": "Files Report",
+ "reports": "Reports",
+ "rulesReportTitle": "Rules Report",
+ "boardsReportTitle": "Boards Report",
+ "cardsReportTitle": "Cards Report",
+ "copy-swimlane": "Copy Swimlane",
+ "copySwimlanePopup-title": "Copy Swimlane",
+ "display-card-creator": "Display Card Creator",
+ "wait-spinner": "Wait Spinner",
+ "Bounce": "Bounce Wait Spinner",
+ "Cube": "Cube Wait Spinner",
+ "Cube-Grid": "Cube-Grid Wait Spinner",
+ "Dot": "Dot Wait Spinner",
+ "Double-Bounce": "Double Bounce Wait Spinner",
+ "Rotateplane": "Rotateplane Wait Spinner",
+ "Scaleout": "Scaleout Wait Spinner",
+ "Wave": "Wave Wait Spinner",
+ "maximize-card": "Maximize Card",
+ "minimize-card": "Minimize Card",
+ "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
+ "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it",
+ "subject": "Subject",
+ "details": "Details",
+ "carbon-copy": "Carbon Copy (Cc:)",
+ "ticket": "Ticket",
+ "tickets": "Tickets",
+ "ticket-number": "Ticket Number",
+ "open": "Open",
+ "pending": "Pending",
+ "closed": "Closed",
+ "resolved": "Resolved",
+ "cancelled": "Cancelled",
+ "history": "History",
+ "request": "Request",
+ "requests": "Requests",
+ "help-request": "Help Request",
+ "editCardSortOrderPopup-title": "Change Sorting",
+ "cardDetailsPopup-title": "Card Details",
+ "add-teams": "Add teams",
+ "add-teams-label": "Added teams are displayed below:",
+ "remove-team-from-table": "Are you sure you want to remove this team from the board ?",
+ "confirm-btn": "Confirm",
+ "remove-btn": "Remove",
+ "filter-card-title-label": "Filter by card title",
+ "invite-people-success": "Invitation to register sent with success",
+ "invite-people-error": "Error while sending invitation to register",
+ "can-invite-if-same-mailDomainName": "Email domain name",
+ "to-create-teams-contact-admin": "To create teams, please contact the administrator.",
+ "Node_heap_total_heap_size": "Node heap: total heap size",
+ "Node_heap_total_heap_size_executable": "Node heap: total heap size executable",
+ "Node_heap_total_physical_size": "Node heap: total physical size",
+ "Node_heap_total_available_size": "Node heap: total available size",
+ "Node_heap_used_heap_size": "Node heap: used heap size",
+ "Node_heap_heap_size_limit": "Node heap: heap size limit",
+ "Node_heap_malloced_memory": "Node heap: malloced memory",
+ "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory",
+ "Node_heap_does_zap_garbage": "Node heap: does zap garbage",
+ "Node_heap_number_of_native_contexts": "Node heap: number of native contexts",
+ "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts",
+ "Node_memory_usage_rss": "Node memory usage: resident set size",
+ "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap",
+ "Node_memory_usage_heap_used": "Node memory usage: actual memory used",
+ "Node_memory_usage_external": "Node memory usage: external",
+ "add-organizations": "Add organizations",
+ "add-organizations-label": "Added organizations are displayed below:",
+ "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?",
+ "to-create-organizations-contact-admin": "To create organizations, please contact administrator.",
+ "custom-legal-notice-link-url": "Custom legal notice page URL",
+ "acceptance_of_our_legalNotice": "By continuing, you accept our",
+ "legalNotice": "legal notice",
+ "copied": "Copied!",
+ "checklistActionsPopup-title": "Checklist Actions",
+ "moveChecklist": "Move Checklist",
+ "moveChecklistPopup-title": "Move Checklist",
+ "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
+ "newLineNewItem": "One line of text = one checklist item",
+ "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
+ "originOrder": "original order",
+ "copyChecklist": "Copy Checklist",
+ "copyChecklistPopup-title": "Copy Checklist",
+ "card-show-lists": "Card Show Lists",
+ "subtaskActionsPopup-title": "Subtask Actions",
+ "attachmentActionsPopup-title": "Attachment Actions",
+ "attachment-move-storage-fs": "Move attachment to filesystem",
+ "attachment-move-storage-gridfs": "Move attachment to GridFS",
+ "attachment-move-storage-s3": "Move attachment to S3",
+ "attachment-move": "Move Attachment",
+ "move-all-attachments-to-fs": "Move all attachments to filesystem",
+ "move-all-attachments-to-gridfs": "Move all attachments to GridFS",
+ "move-all-attachments-to-s3": "Move all attachments to S3",
+ "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem",
+ "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS",
+ "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3",
+ "path": "Path",
+ "version-name": "Version-Name",
+ "size": "Size",
+ "storage": "Storage",
+ "action": "Action",
+ "board-title": "Board Title",
+ "attachmentRenamePopup-title": "Rename",
+ "uploading": "Uploading",
+ "remaining_time": "Remaining time",
+ "speed": "Speed",
+ "progress": "Progress",
+ "password-again": "Password (again)",
+ "if-you-already-have-an-account": "If you already have an account",
+ "register": "Register",
+ "forgot-password": "Forgot password",
+ "minicardDetailsActionsPopup-title": "Card Details",
+ "Mongo_sessions_count": "Mongo sessions count",
+ "change-visibility": "Change Visibility",
+ "max-upload-filesize": "Max upload filesize in bytes:",
+ "allowed-upload-filetypes": "Allowed upload filetypes:",
+ "max-avatar-filesize": "Max avatar filesize in bytes:",
+ "allowed-avatar-filetypes": "Allowed avatar filetypes:",
+ "invalid-file": "If filename is invalid, upload or rename is cancelled.",
+ "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
+ "drag-board": "Drag board",
+ "translation-number": "The number of custom translation strings is:",
+ "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
+ "newTranslationPopup-title": "New custom translation string",
+ "editTranslationPopup-title": "Edit custom translation string",
+ "settingsTranslationPopup-title": "Delete this custom translation string?",
+ "translation": "Translation",
+ "text": "Text",
+ "translation-text": "Translation text",
+ "show-subtasks-field": "Show subtasks field",
+ "show-week-of-year": "Show week of year (ISO 8601)",
+ "convert-to-markdown": "Convert to markdown",
+ "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
+ "collapse": "Collapse",
+ "uncollapse": "Uncollapse",
+ "hideCheckedChecklistItems": "Hide checked checklist items",
+ "hideAllChecklistItems": "Hide all checklist items",
+ "support": "Support",
+ "supportPopup-title": "Support",
+ "support-page-enabled": "Support page enabled",
+ "support-info-not-added-yet": "Support info has not been added yet",
+ "support-info-only-for-logged-in-users": "Support info is only for logged in users.",
+ "support-title": "Support title",
+ "support-content": "Support content",
+ "accessibility": "Accessibility",
+ "accessibility-page-enabled": "Accessibility page enabled",
+ "accessibility-info-not-added-yet": "Accessibility info has not been added yet",
+ "accessibility-title": "Accessibility title",
+ "accessibility-content": "Accessibility content",
+ "accounts-lockout-settings": "Brute Force Protection Settings",
+ "accounts-lockout-info": "These settings control how login attempts are protected against brute force attacks.",
+ "accounts-lockout-known-users": "Settings for known users (correct username, wrong password)",
+ "accounts-lockout-unknown-users": "Settings for unknown users (non-existent username)",
+ "accounts-lockout-failures-before": "Failures before lockout",
+ "accounts-lockout-period": "Lockout period (seconds)",
+ "accounts-lockout-failure-window": "Failure window (seconds)",
+ "accounts-lockout-settings-updated": "Brute force protection settings have been updated",
+ "accounts-lockout-locked-users": "Locked Users",
+ "accounts-lockout-locked-users-info": "Users currently locked out due to too many failed login attempts",
+ "accounts-lockout-no-locked-users": "There are currently no locked users",
+ "accounts-lockout-failed-attempts": "Failed Attempts",
+ "accounts-lockout-remaining-time": "Remaining Time",
+ "accounts-lockout-user-unlocked": "User has been unlocked successfully",
+ "accounts-lockout-confirm-unlock": "Are you sure you want to unlock this user?",
+ "accounts-lockout-confirm-unlock-all": "Are you sure you want to unlock all locked users?",
+ "accounts-lockout-show-locked-users": "Show locked users only",
+ "accounts-lockout-user-locked": "User is locked",
+ "accounts-lockout-click-to-unlock": "Click to unlock this user",
+ "accounts-lockout-status": "Status",
+ "admin-people-filter-show": "Show:",
+ "admin-people-filter-all": "All Users",
+ "admin-people-filter-locked": "Locked Users Only",
+ "admin-people-filter-active": "Active",
+ "admin-people-filter-inactive": "Not Active",
+ "admin-people-active-status": "Active Status",
+ "admin-people-user-active": "User is active - click to deactivate",
+ "admin-people-user-inactive": "User is inactive - click to activate",
+ "accounts-lockout-all-users-unlocked": "All locked users have been unlocked",
+ "accounts-lockout-unlock-all": "Unlock All",
+ "active-cron-jobs": "Active Scheduled Jobs",
+ "add-cron-job": "Add Scheduled Job",
+ "add-cron-job-placeholder": "Add Scheduled Job functionality coming soon",
+ "attachment-storage-configuration": "Attachment Storage Configuration",
+ "attachments-path": "Attachments Path",
+ "attachments-path-description": "Path where attachment files are stored",
+ "avatars-path": "Avatars Path",
+ "avatars-path-description": "Path where avatar files are stored",
+ "board-archive-failed": "Failed to schedule board archive",
+ "board-archive-scheduled": "Board archive scheduled successfully",
+ "board-backup-failed": "Failed to schedule board backup",
+ "board-backup-scheduled": "Board backup scheduled successfully",
+ "board-cleanup-failed": "Failed to schedule board cleanup",
+ "board-cleanup-scheduled": "Board cleanup scheduled successfully",
+ "board-operations": "Board Operations",
+ "cron-jobs": "Scheduled Jobs",
+ "cron-migrations": "Scheduled Migrations",
+ "cron-job-delete-confirm": "Are you sure you want to delete this scheduled job?",
+ "cron-job-delete-failed": "Failed to delete scheduled job",
+ "cron-job-deleted": "Scheduled job deleted successfully",
+ "cron-job-pause-failed": "Failed to pause scheduled job",
+ "cron-job-paused": "Scheduled job paused successfully",
+ "filesystem-path-description": "Base path for file storage",
+ "gridfs-enabled": "GridFS Enabled",
+ "gridfs-enabled-description": "Use MongoDB GridFS for file storage",
+ "migration-pause-failed": "Failed to pause migrations",
+ "migration-paused": "Migrations paused successfully",
+ "migration-progress": "Migration Progress",
+ "migration-start-failed": "Failed to start migrations",
+ "migration-started": "Migrations started successfully",
+ "migration-status": "Migration Status",
+ "migration-stop-confirm": "Are you sure you want to stop all migrations?",
+ "migration-stop-failed": "Failed to stop migrations",
+ "migration-stopped": "Migrations stopped successfully",
+ "mongodb-gridfs-storage": "MongoDB GridFS Storage",
+ "pause-all-migrations": "Pause All Migrations",
+ "s3-access-key": "S3 Access Key",
+ "s3-access-key-description": "AWS S3 access key for authentication",
+ "s3-access-key-placeholder": "Enter S3 access key",
+ "s3-bucket": "S3 Bucket",
+ "s3-bucket-description": "S3 bucket name for storing files",
+ "s3-connection-failed": "S3 connection failed",
+ "s3-connection-success": "S3 connection successful",
+ "s3-enabled": "S3 Enabled",
+ "s3-enabled-description": "Use AWS S3 or MinIO for file storage",
+ "s3-endpoint": "S3 Endpoint",
+ "s3-endpoint-description": "S3 endpoint URL (e.g., s3.amazonaws.com or minio.example.com)",
+ "s3-minio-storage": "S3/MinIO Storage",
+ "s3-port": "S3 Port",
+ "s3-port-description": "S3 endpoint port number",
+ "s3-region": "S3 Region",
+ "s3-region-description": "AWS S3 region (e.g., us-east-1)",
+ "s3-secret-key": "S3 Secret Key",
+ "s3-secret-key-description": "AWS S3 secret key for authentication",
+ "s3-secret-key-placeholder": "Enter S3 secret key",
+ "s3-secret-key-required": "S3 secret key is required",
+ "s3-settings-save-failed": "Failed to save S3 settings",
+ "s3-settings-saved": "S3 settings saved successfully",
+ "s3-ssl-enabled": "S3 SSL Enabled",
+ "s3-ssl-enabled-description": "Use SSL/TLS for S3 connections",
+ "save-s3-settings": "Save S3 Settings",
+ "schedule-board-archive": "Schedule Board Archive",
+ "schedule-board-backup": "Schedule Board Backup",
+ "schedule-board-cleanup": "Schedule Board Cleanup",
+ "scheduled-board-operations": "Scheduled Board Operations",
+ "start-all-migrations": "Start All Migrations",
+ "stop-all-migrations": "Stop All Migrations",
+ "test-s3-connection": "Test S3 Connection",
+ "writable-path": "Writable Path",
+ "writable-path-description": "Base directory path for file storage",
+ "add-job": "Add Job",
+ "attachment-migration": "Attachment Migration",
+ "attachment-monitoring": "Attachment Monitoring",
+ "attachment-settings": "Attachment Settings",
+ "attachment-storage-settings": "Storage Settings",
+ "automatic-migration": "Automatic Migration",
+ "back-to-settings": "Back to Settings",
+ "board-id": "Board ID",
+ "board-migration": "Board Migration",
+ "board-migrations": "Board Migrations",
+ "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...",
+ "steps": "steps",
+ "view": "View",
+ "has-swimlanes": "Has Swimlanes",
+
+ "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",
+ "conversion-info-text": "This conversion is performed once per board and improves performance. You can continue using the board normally.",
+ "converting-board": "Converting Board",
+ "converting-board-description": "Converting board structure for improved functionality. This may take a few moments.",
+ "cpu-cores": "CPU Cores",
+ "cpu-usage": "CPU Usage",
+ "current-action": "Current Action",
+ "database-migration": "Database Migration",
+ "database-migration-description": "Updating database structure for improved functionality and performance. This process may take several minutes.",
+ "database-migrations": "Database Migrations",
+ "days-old": "Days Old",
+ "duration": "Duration",
+ "errors": "Errors",
+ "estimated-time-remaining": "Estimated time remaining",
+ "every-1-day": "Every 1 day",
+ "every-1-hour": "Every 1 hour",
+ "every-1-minute": "Every 1 minute",
+ "every-10-minutes": "Every 10 minutes",
+ "every-30-minutes": "Every 30 minutes",
+ "every-5-minutes": "Every 5 minutes",
+ "every-6-hours": "Every 6 hours",
+ "export-monitoring": "Export Monitoring",
+ "filesystem-attachments": "Filesystem Attachments",
+ "filesystem-size": "Filesystem Size",
+ "filesystem-storage": "Filesystem Storage",
+ "force-board-scan": "Force Board Scan",
+ "gridfs-attachments": "GridFS Attachments",
+ "gridfs-size": "GridFS Size",
+ "gridfs-storage": "GridFS",
+ "hide-list-on-minicard": "Hide List on Minicard",
+ "idle-migration": "Idle Migration",
+ "job-description": "Job Description",
+ "job-details": "Job Details",
+ "job-name": "Job Name",
+ "job-queue": "Job Queue",
+ "last-run": "Last Run",
+ "max-concurrent": "Max Concurrent",
+ "memory-usage": "Memory Usage",
+ "migrate-all-to-filesystem": "Migrate All to Filesystem",
+ "migrate-all-to-gridfs": "Migrate All to GridFS",
+ "migrate-all-to-s3": "Migrate All to S3",
+ "migrated-attachments": "Migrated Attachments",
+ "migration-batch-size": "Batch Size",
+ "migration-batch-size-description": "Number of attachments to process in each batch (1-100)",
+ "migration-cpu-threshold": "CPU Threshold (%)",
+ "migration-cpu-threshold-description": "Pause migration when CPU usage exceeds this percentage (10-90)",
+ "migration-delay-ms": "Delay (ms)",
+ "migration-delay-ms-description": "Delay between batches in milliseconds (100-10000)",
+ "migration-detector": "Migration Detector",
+ "migration-info-text": "Database migrations are performed once and improve system performance. The process continues in the background even if you close your browser.",
+ "migration-log": "Migration Log",
+ "migration-markers": "Migration Markers",
+ "migration-resume-failed": "Failed to resume migration",
+ "migration-resumed": "Migration resumed",
+ "migration-steps": "Migration Steps",
+ "migration-warning-text": "Please do not close your browser during migration. The process will continue in the background but may take longer to complete.",
+ "monitoring-export-failed": "Failed to export monitoring data",
+ "monitoring-refresh-failed": "Failed to refresh monitoring data",
+ "next": "Next",
+ "next-run": "Next Run",
+ "of": "of",
+ "operation-type": "Operation Type",
+ "overall-progress": "Overall Progress",
+ "page": "Page",
+ "pause": "Pause",
+ "pause-migration": "Pause Migration",
+ "previous": "Previous",
+ "refresh": "Refresh",
+ "refresh-monitoring": "Refresh Monitoring",
+ "remaining-attachments": "Remaining Attachments",
+ "resume-migration": "Resume Migration",
+ "run-once": "Run once",
+ "s3-attachments": "S3 Attachments",
+ "s3-size": "S3 Size",
+ "s3-storage": "S3",
+ "scanning-status": "Scanning Status",
+ "schedule": "Schedule",
+ "search-boards-or-operations": "Search boards or operations...",
+ "show-list-on-minicard": "Show List on Minicard",
+ "showChecklistAtMinicard": "Show Checklist at Minicard",
+ "showing": "Showing",
+ "start-test-operation": "Start Test Operation",
+ "start-time": "Start Time",
+ "step-progress": "Step Progress",
+ "stop-migration": "Stop Migration",
+ "storage-distribution": "Storage Distribution",
+ "system-resources": "System Resources",
+ "total-attachments": "Total Attachments",
+ "total-operations": "Total Operations",
+ "total-size": "Total Size",
+ "unmigrated-boards": "Unmigrated Boards",
+ "weight": "Weight",
+ "idle": "Idle",
+ "complete": "Complete",
+ "cron": "Cron",
+ "current-step": "Current Step"
+}
diff --git a/imports/i18n/data/de_DE.i18n.json b/imports/i18n/data/de_DE.i18n.json
index 9f79fb0f2..afea7ddde 100644
--- a/imports/i18n/data/de_DE.i18n.json
+++ b/imports/i18n/data/de_DE.i18n.json
@@ -78,18 +78,18 @@
"activity-deleteComment": "löschte Kommentar %s",
"activity-receivedDate": "hat Empfangsdatum zu %s geändert auf %s",
"activity-startDate": "hat Startdatum zu %s geändert auf %s",
- "allboards.starred": "Starred",
+ "allboards.starred": "Markiert",
"allboards.templates": "Vorlagen",
- "allboards.remaining": "Remaining",
- "allboards.workspaces": "Workspaces",
- "allboards.add-workspace": "Add Workspace",
- "allboards.add-workspace-prompt": "Workspace name",
- "allboards.add-subworkspace": "Add Subworkspace",
- "allboards.add-subworkspace-prompt": "Subworkspace name",
- "allboards.edit-workspace": "Edit workspace",
- "allboards.edit-workspace-name": "Workspace name",
- "allboards.edit-workspace-icon": "Workspace icon (markdown)",
- "multi-selection-active": "Click checkboxes to select boards",
+ "allboards.remaining": "Verbleibend",
+ "allboards.workspaces": "Arbeitsplatz",
+ "allboards.add-workspace": "Arbeitsplatz hinzufügen",
+ "allboards.add-workspace-prompt": "Arbeitsplatzname",
+ "allboards.add-subworkspace": "Teilarbeitsplatz hinzufügen",
+ "allboards.add-subworkspace-prompt": "Teilarbeitsplatzname",
+ "allboards.edit-workspace": "Arbeitsplatz ändern",
+ "allboards.edit-workspace-name": "Arbeitsplatzname",
+ "allboards.edit-workspace-icon": "Arbeitsplatzsymbol (markdown)",
+ "multi-selection-active": "Wähle Kontrollkästchen um Bretter auszuwählen",
"activity-dueDate": "hat Fälligkeitsdatum zu %s geändert auf %s",
"activity-endDate": "hat Enddatum zu %s geändert auf %s",
"add-attachment": "Datei anhängen",
@@ -328,16 +328,16 @@
"comment-placeholder": "Kommentar schreiben",
"comment-only": "Nur Kommentare",
"comment-only-desc": "Kann Karten nur kommentieren.",
- "comment-assigned-only": "Only Assigned Comment",
- "comment-assigned-only-desc": "Only assigned cards visible. Can comment only.",
+ "comment-assigned-only": "Nur zugewiesener Kommentar",
+ "comment-assigned-only-desc": "Nur zugewiesene Karten sichtbar. Nur Kommentar möglich.",
"comment-delete": "Sind Sie sicher, dass Sie den Kommentar löschen wollen?",
"deleteCommentPopup-title": "Kommentar löschen?",
"no-comments": "Keine Kommentare",
"no-comments-desc": "Kann keine Kommentare und Aktivitäten sehen.",
- "read-only": "Read Only",
- "read-only-desc": "Can view cards only. Can not edit.",
- "read-assigned-only": "Only Assigned Read",
- "read-assigned-only-desc": "Only assigned cards visible. Can not edit.",
+ "read-only": "Nur lesen",
+ "read-only-desc": "Kann Karten nur sehen, nicht bearbeiten.",
+ "read-assigned-only": "Nur Zugewiesene lesen.",
+ "read-assigned-only-desc": "Nur zugewiesene Karten sichtbar. Keine Änderung.",
"worker": "Arbeiter",
"worker-desc": "Kann Karten nur verschieben, sich selbst zuweisen und kommentieren.",
"computer": "Computer",
@@ -345,7 +345,7 @@
"confirm-checklist-delete-popup": "Wollen Sie diese Checkliste wirklich löschen?",
"subtaskDeletePopup-title": "Teilaufgabe löschen?",
"checklistDeletePopup-title": "Checkliste löschen?",
- "checklistItemDeletePopup-title": "Delete Checklist Item?",
+ "checklistItemDeletePopup-title": "Element der Checkliste löschen?",
"copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage",
"copy-text-to-clipboard": "Text in die Zwischenablage kopieren",
"linkCardPopup-title": "Karte verknüpfen",
@@ -554,7 +554,7 @@
"log-in": "Einloggen",
"loginPopup-title": "Einloggen",
"memberMenuPopup-title": "Nutzereinstellungen",
- "grey-icons": "Grey Icons",
+ "grey-icons": "Graue Symbole",
"members": "Mitglieder",
"menu": "Menü",
"move-selection": "Auswahl verschieben",
@@ -562,8 +562,8 @@
"moveCardToBottom-title": "Ans Ende verschieben",
"moveCardToTop-title": "Zum Anfang verschieben",
"moveSelectionPopup-title": "Auswahl verschieben",
- "copySelectionPopup-title": "Copy selection",
- "selection-color": "Selection Color",
+ "copySelectionPopup-title": "Auswahl kopieren",
+ "selection-color": "Auswahlfarbe",
"multi-selection": "Mehrfachauswahl",
"multi-selection-label": "Label für die Auswahl setzen",
"multi-selection-member": "Mitglied für die Auswahl setzen",
@@ -579,7 +579,7 @@
"normal": "Normal",
"normal-desc": "Kann Karten anzeigen und bearbeiten, aber keine Einstellungen ändern.",
"normal-assigned-only": "Only Assigned Normal",
- "normal-assigned-only-desc": "Only assigned cards visible. Edit as Normal user.",
+ "normal-assigned-only-desc": "Nur zugewiesene Karten sichtbar. Änderung als normaler Benutzer.",
"not-accepted-yet": "Die Einladung wurde noch nicht angenommen",
"notify-participate": "Benachrichtigungen zu allen Karten erhalten, bei denen Sie Ersteller oder Mitglied sind",
"notify-watch": "Benachrichtigungen über alle Boards, Listen oder Karten erhalten, die Sie beobachten",
@@ -770,7 +770,7 @@
"editCardReceivedDatePopup-title": "Empfangsdatum ändern",
"editCardEndDatePopup-title": "Enddatum ändern",
"setCardColorPopup-title": "Farbe festlegen",
- "setSelectionColorPopup-title": "Set selection color",
+ "setSelectionColorPopup-title": "Auswahlfarbe setzen",
"setCardActionsColorPopup-title": "Farbe wählen",
"setSwimlaneColorPopup-title": "Farbe wählen",
"setListColorPopup-title": "Farbe wählen",
@@ -961,8 +961,8 @@
"a-endAt": "hat Ende geändert auf",
"a-startAt": "hat Startzeit geändert auf",
"a-receivedAt": "hat Empfangszeit geändert auf",
- "above-selected-card": "Above selected card",
- "below-selected-card": "Below selected card",
+ "above-selected-card": "Oben ausgewählte Karte",
+ "below-selected-card": "Unten ausgewählte Karte",
"almostdue": "aktuelles Fälligkeitsdatum %s bevorstehend",
"pastdue": "aktuelles Fälligkeitsdatum %s überschritten",
"duenow": "aktuelles Fälligkeitsdatum %s heute",
@@ -1318,11 +1318,11 @@
"hideAllChecklistItems": "Verberge alle Checklisteneinträge",
"support": "Unterstützung",
"supportPopup-title": "Unterstützung",
- "support-page-enabled": "Support page enabled",
- "support-info-not-added-yet": "Support info has not been added yet",
- "support-info-only-for-logged-in-users": "Support info is only for logged in users.",
- "support-title": "Support title",
- "support-content": "Support content",
+ "support-page-enabled": "Supportseite eingeschaltet",
+ "support-info-not-added-yet": "Supportinfo wurde noch nicht hinzugefügt",
+ "support-info-only-for-logged-in-users": "Supportinfo ist nur für angemeldete Benutzer",
+ "support-title": "Supporttitel",
+ "support-content": "Supportinhalt",
"accessibility": "Bedienungshilfe",
"accessibility-page-enabled": "Barrierefreie Seite freigeschaltet",
"accessibility-info-not-added-yet": "Es wurde noch keine Information zur Bedienungshilfe hinzugefügt",
@@ -1437,21 +1437,21 @@
"back-to-settings": "Zurück zu den Einstellungen",
"board-id": "Brett ID",
"board-migration": "Brettmigration",
- "board-migrations": "Board Migrations",
+ "board-migrations": "Brettmigrationen",
"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",
+ "comprehensive-board-migration": "Umfassende Brettmigration",
+ "comprehensive-board-migration-description": "Führt umfassende Überprüfungen und Korrekturen für die Integrität der Board-Daten durch, einschließlich Listensortierung, Kartenpositionen und Swimlane-Struktur.",
+ "delete-duplicate-empty-lists-migration": "Lösche doppelte leere Listen",
+ "delete-duplicate-empty-lists-migration-description": "Löscht sicher leere doppelte Listen. Entfernt nur Listen, die keine Karten haben UND eine andere Liste mit dem gleichen Titel haben, der Karten enthält.",
+ "lost-cards": "Verlorene Karten",
+ "lost-cards-list": "Wiederhergestelle Artikel",
+ "restore-lost-cards-migration": "Verlorene Karten wiederherstellen",
+ "restore-lost-cards-migration-description": "Findet Karten und Listen mit fehlender swimlaneId oder listID und stellt sie wieder her. Erstellt eine 'LostCards' Swimlane um die verlorenen Dinge wieder sichtbar zu machen.",
+ "restore-all-archived-migration": "Alles Archivierte wiederherstellen",
+ "restore-all-archived-migration-description": "Stellt alle archivierten Swimmlanes, Listen und Karten wieder her. Repariert automatisch jede fehlende swimlaneId oder listId um sie sichtbar zu machen.",
+ "fix-missing-lists-migration": "Repariere fehlende Listen",
+ "fix-missing-lists-migration-description": "Entdeckt und repariert fehlende oder defekte Listen in der Brettstruktur.",
+ "fix-avatar-urls-migration": "Repariere 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.",
@@ -1489,13 +1489,13 @@
"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-avatar-urls": "Repariere 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-delete-duplicate-empty-lists": "Lösche doppelte leere Listen",
"step-ensure-lost-cards-swimlane": "Ensure Lost Cards Swimlane",
"step-restore-lists": "Restore Lists",
"step-restore-cards": "Restore Cards",
diff --git a/imports/i18n/data/zh-TW.i18n.json b/imports/i18n/data/zh-TW.i18n.json
index 90e0e4dca..0554148af 100644
--- a/imports/i18n/data/zh-TW.i18n.json
+++ b/imports/i18n/data/zh-TW.i18n.json
@@ -1570,7 +1570,7 @@
"operation-type": "操作類型",
"overall-progress": "整體進度",
"page": "頁面",
- "pause": "Pause",
+ "pause": "暫停",
"pause-migration": "暫停遷移",
"previous": "前一個",
"refresh": "重新整理",
diff --git a/imports/i18n/languages.js b/imports/i18n/languages.js
index a3c566e45..cb5c99e46 100644
--- a/imports/i18n/languages.js
+++ b/imports/i18n/languages.js
@@ -1,848 +1,982 @@
export default {
+ "ace": {
+ code: "ace",
+ tag: "ace",
+ name: "Acehnese",
+ load: () => import('./data/ace.i18n.json'),
+ rtl: false,
+ },
"af": {
code: "af",
tag: "af",
name: "Afrikaans",
load: () => import('./data/af.i18n.json'),
- rtl: "false",
+ rtl: false,
},
"af_ZA": {
code: "af",
tag: "af_ZA",
name: "Afrikaans (South Africa)",
load: () => import('./data/af_ZA.i18n.json'),
- rtl: "false",
+ rtl: false,
},
"en_AU": {
code: "en",
tag: "en_AU",
name: "English (Australia)",
load: () => import('./data/en_AU.i18n.json'),
- rtl: "false",
+ rtl: false,
},
"en_ZA": {
code: "en",
tag: "en_ZA",
name: "English (South Africa)",
load: () => import('./data/en_ZA.i18n.json'),
- rtl: "false",
+ rtl: false,
},
"ar-DZ": {
code: "ar",
tag: "ar-DZ",
name: "دزيرية",
load: () => import('./data/ar-DZ.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"ar-EG": {
code: "ar",
tag: "ar-EG",
name: "مَصرى",
load: () => import('./data/ar-EG.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"ar": {
code: "ar",
tag: "ar",
name: "العربية",
load: () => import('./data/ar.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"ary": {
code: "ary",
tag: "ary",
name: "عربي مغربي",
load: () => import('./data/ary.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"az-AZ": {
code: "az",
tag: "az-AZ",
name: "Azərbaycan (Azərbaycan)",
load: () => import('./data/az-AZ.i18n.json'),
+ rtl: false,
},
"az-LA": {
code: "az",
tag: "az-LA",
name: "Azərbaycan (Latin)",
load: () => import('./data/az-LA.i18n.json'),
+ rtl: false,
},
"az": {
code: "az",
tag: "az",
name: "Azərbaycan",
load: () => import('./data/az.i18n.json'),
+ rtl: false,
},
"bg": {
code: "bg",
tag: "bg",
name: "Български",
load: () => import('./data/bg.i18n.json'),
+ rtl: false,
},
"br": {
code: "br",
tag: "br",
name: "Brezhoneg",
load: () => import('./data/br.i18n.json'),
+ rtl: false,
},
"ca": {
code: "ca",
tag: "ca",
name: "Català",
load: () => import('./data/ca.i18n.json'),
+ rtl: false,
},
"ca-ES": {
code: "ca",
tag: "ca-ES",
name: "Català (Espanya)",
load: () => import('./data/ca_ES.i18n.json'),
+ rtl: false,
},
"cmn": {
code: "cn",
tag: "cnm",
name: "官話 / 官话",
load: () => import('./data/cmn.i18n.json'),
+ rtl: false,
},
"cs": {
code: "cs",
tag: "cs",
name: "čeština",
load: () => import('./data/cs.i18n.json'),
+ rtl: false,
},
"cs-CZ": {
code: "cs",
tag: "cs-CZ",
name: "čeština (Česká republika)",
load: () => import('./data/cs-CZ.i18n.json'),
+ rtl: false,
},
"cy-GB": {
code: "cy",
tag: "cy-GB",
name: "Welsh (UK)",
load: () => import('./data/cy-GB.i18n.json'),
+ rtl: false,
},
"cy": {
code: "cy",
tag: "cy",
name: "Welsh",
load: () => import('./data/cy.i18n.json'),
+ rtl: false,
},
"da": {
code: "da",
tag: "da",
name: "Dansk",
load: () => import('./data/da.i18n.json'),
+ rtl: false,
},
"de-AT": {
code: "de",
tag: "de-AT",
name: "Deutsch (Österreich)",
load: () => import('./data/de-AT.i18n.json'),
+ rtl: false,
},
"de-CH": {
code: "de",
tag: "de-CH",
name: "Deutsch (Schweiz)",
load: () => import('./data/de-CH.i18n.json'),
+ rtl: false,
},
"de-DE": {
code: "de",
tag: "de-DE",
name: "Deutsch (Deutschland)",
load: () => import('./data/de_DE.i18n.json'),
+ rtl: false,
},
"de": {
code: "de",
tag: "de",
name: "Deutsch",
load: () => import('./data/de.i18n.json'),
+ rtl: false,
},
"el-GR": {
code: "el",
tag: "el-GR",
name: "Ελληνικά (Ελλάδα)",
load: () => import('./data/el-GR.i18n.json'),
+ rtl: false,
},
"el": {
code: "el",
tag: "el",
name: "Ελληνικά",
load: () => import('./data/el.i18n.json'),
+ rtl: false,
},
"en-BR": {
code: "en",
tag: "en-BR",
name: "English (Brazil)",
load: () => import('./data/en-BR.i18n.json'),
+ rtl: false,
},
"en-DE": {
code: "en",
tag: "en-DE",
name: "English (Germany)",
load: () => import('./data/en-DE.i18n.json'),
+ rtl: false,
},
"en-GB": {
code: "en",
tag: "en-GB",
name: "English (UK)",
load: () => import('./data/en-GB.i18n.json'),
+ rtl: false,
},
"en-IT": {
code: "en",
tag: "en-IT",
name: "English (Italy)",
load: () => import('./data/en-IT.i18n.json'),
+ rtl: false,
},
"en-MY": {
code: "en",
tag: "en-MY",
name: "English (Malaysia)",
load: () => import('./data/en-MY.i18n.json'),
+ rtl: false,
},
"en-YS": {
code: "en",
tag: "en-YS",
name: "English (Yeshivish)",
load: () => import('./data/en-YS.i18n.json'),
+ rtl: false,
},
"en": {
code: "en",
tag: "en",
name: "English",
load: () => import('./data/en.i18n.json'),
+ rtl: false,
},
"eo": {
code: "eo",
tag: "eo",
name: "Esperanto",
load: () => import('./data/eo.i18n.json'),
+ rtl: false,
},
"ast-ES": {
code: "es",
tag: "ast-ES",
name: "Español de Asturias",
load: () => import('./data/ast-ES.i18n.json'),
+ rtl: false,
},
"es-AR": {
code: "es",
tag: "es-AR",
name: "Español de Argentina",
load: () => import('./data/es-AR.i18n.json'),
+ rtl: false,
},
"es-CL": {
code: "es",
tag: "es-CL",
name: "Español de Chile",
load: () => import('./data/es-CL.i18n.json'),
+ rtl: false,
},
"es-CO": {
code: "es",
tag: "es-CO",
name: "Español en Colombia",
load: () => import('./data/es-CO.i18n.json'),
+ rtl: false,
},
"es-LA": {
code: "es",
tag: "es-LA",
name: "Español de América Latina",
load: () => import('./data/es-LA.i18n.json'),
+ rtl: false,
},
"es-MX": {
code: "es",
tag: "es-MX",
name: "Español de México",
load: () => import('./data/es-MX.i18n.json'),
+ rtl: false,
},
"es-PE": {
code: "es",
tag: "es-PE",
name: "Español de Perú",
load: () => import('./data/es-PE.i18n.json'),
+ rtl: false,
},
"es-PY": {
code: "es",
tag: "es-PY",
name: "Español de Paraguayo",
load: () => import('./data/es-PY.i18n.json'),
+ rtl: false,
},
"es": {
code: "es",
tag: "es",
name: "Español",
load: () => import('./data/es.i18n.json'),
+ rtl: false,
},
"et-EE": {
code: "et",
tag: "et-EE",
name: "Eesti keel (Eesti)",
load: () => import('./data/et-EE.i18n.json'),
+ rtl: false,
},
"eu": {
code: "eu",
tag: "eu",
name: "Euskara",
load: () => import('./data/eu.i18n.json'),
+ rtl: false,
},
"fa-IR": {
code: "fa",
tag: "fa-IR",
name: "فارسی/پارسی (ایران\u200e)",
load: () => import('./data/fa-IR.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"fa": {
code: "fa",
tag: "fa",
name: "فارسی",
load: () => import('./data/fa.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"fi": {
code: "fi",
tag: "fi",
name: "Suomi",
load: () => import('./data/fi.i18n.json'),
+ rtl: false,
},
"fr-BE": {
code: "fr",
tag: "fr-BE",
name: "Français (Belgique)",
load: () => import('./data/fr-BE.i18n.json'),
+ rtl: false,
},
"fr-CA": {
code: "fr",
tag: "fr-CA",
name: "Français (Canada)",
load: () => import('./data/fr-CA.i18n.json'),
+ rtl: false,
},
"fr-CH": {
code: "fr",
tag: "fr-CH",
name: "Français (Schweiz)",
load: () => import('./data/fr-CH.i18n.json'),
+ rtl: false,
},
"fr": {
code: "fr",
tag: "fr",
name: "Français",
load: () => import('./data/fr.i18n.json'),
+ rtl: false,
},
"fy-NL": {
code: "fy",
tag: "fy-NL",
name: "Westerlauwersk Frysk (Nederlân)",
load: () => import('./data/fy-NL.i18n.json'),
+ rtl: false,
},
"fy": {
code: "fy",
tag: "fy",
name: "Westerlauwersk Frysk",
load: () => import('./data/fy.i18n.json'),
+ rtl: false,
},
"gl-ES": {
code: "gl",
tag: "gl-ES",
name: "Galego (España)",
load: () => import('./data/gl-ES.i18n.json'),
+ rtl: false,
},
"gl": {
code: "gl",
tag: "gl",
name: "Galego",
load: () => import('./data/gl.i18n.json'),
+ rtl: false,
},
"gu-IN": {
code: "gu",
tag: "gu-IN",
name: "ગુજરાતી",
load: () => import('./data/gu-IN.i18n.json'),
+ rtl: false,
},
"he-IL": {
code: "he",
tag: "he-IL",
name: "עברית (ישראל)",
load: () => import('./data/he-IL.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"he": {
code: "he",
tag: "he",
name: "עברית",
load: () => import('./data/he.i18n.json'),
- rtl: "true",
+ rtl: true,
},
"hi-IN": {
code: "hi",
tag: "hi-IN",
name: "हिंदी (भारत)",
load: () => import('./data/hi-IN.i18n.json'),
+ rtl: false,
},
"hi": {
code: "hi",
tag: "hi",
name: "हिन्दी",
load: () => import('./data/hi.i18n.json'),
+ rtl: false,
},
"hr": {
code: "hr",
tag: "hr",
name: "Hrvatski",
load: () => import('./data/hr.i18n.json'),
+ rtl: false,
},
"hu": {
code: "hu",
tag: "hu",
name: "Magyar",
load: () => import('./data/hu.i18n.json'),
+ rtl: false,
},
"hy": {
code: "hy",
tag: "hy",
name: "Հայերեն",
load: () => import('./data/hy.i18n.json'),
+ rtl: false,
},
"id": {
code: "id",
tag: "id",
name: "Bahasa Indonesia",
load: () => import('./data/id.i18n.json'),
+ rtl: false,
},
"ig": {
code: "ig",
tag: "ig",
name: "Igbo",
load: () => import('./data/ig.i18n.json'),
+ rtl: false,
},
"it": {
code: "it",
tag: "it",
name: "Italiano",
load: () => import('./data/it.i18n.json'),
+ rtl: false,
},
"ja": {
code: "ja",
tag: "ja",
name: "日本語",
load: () => import('./data/ja.i18n.json'),
+ rtl: false,
},
"ja-Hira": {
code: "ja",
tag: "ja-Hira",
name: "平仮名",
load: () => import('./data/ja-HI.i18n.json'),
+ rtl: false,
},
"ja-JP": {
code: "ja",
tag: "ja-JP",
name: "日本語(日本)",
load: () => import('./data/ja-JP.i18n.json'),
+ rtl: false,
},
"ka": {
code: "ka",
tag: "ka",
name: "ქართული",
load: () => import('./data/ka.i18n.json'),
+ rtl: false,
},
"km": {
code: "km",
tag: "km",
name: "ភាសាខ្មែរ",
load: () => import('./data/km.i18n.json'),
+ rtl: false,
},
"km-KH": {
code: "km",
tag: "km_KH",
name: "ខ្មែរ (កម្ពុជា)",
load: () => import('./data/km-KH.i18n.json'),
+ rtl: false,
},
"ko-KR": {
code: "ko",
tag: "ko-KR",
name: "한국어(한국)",
load: () => import('./data/ko-KR.i18n.json'),
+ rtl: false,
},
"ko": {
code: "ko",
tag: "ko",
name: "한국어",
load: () => import('./data/ko.i18n.json'),
+ rtl: false,
},
"lt": {
code: "lt",
tag: "lt",
name: "Lietuvių kalba",
load: () => import('./data/lt.i18n.json'),
+ rtl: false,
},
"lv": {
code: "lv",
tag: "lv",
name: "Latviešu valoda",
load: () => import('./data/lv.i18n.json'),
+ rtl: false,
},
"mk": {
code: "mk",
tag: "mk",
name: "македонски јазик",
load: () => import('./data/mk.i18n.json'),
+ rtl: false,
},
"mn": {
code: "mn",
tag: "mn",
name: "Монгол",
load: () => import('./data/mn.i18n.json'),
+ rtl: false,
},
"ms": {
code: "ms",
tag: "ms",
name: "بهاس ملايو",
load: () => import('./data/ms.i18n.json'),
+ rtl: false, // Malesia on nykyään LTR (Latinalainen Rumi)
},
"ms-MY": {
code: "ms",
tag: "ms-MY",
name: "بهاس ملايو (Malaysia)",
load: () => import('./data/ms-MY.i18n.json'),
+ rtl: false,
},
"nb": {
code: "nb",
tag: "nb",
name: "Norsk bokmål",
load: () => import('./data/nb.i18n.json'),
+ rtl: false,
},
"nl-NL": {
code: "nl",
tag: "nl-NL",
name: "Nederlands (Nederland)",
load: () => import('./data/nl-NL.i18n.json'),
+ rtl: false,
},
"nl": {
code: "nl",
tag: "nl",
name: "Nederlands",
load: () => import('./data/nl.i18n.json'),
+ rtl: false,
},
"oc": {
code: "oc",
tag: "oc",
name: "Occitan",
load: () => import('./data/oc.i18n.json'),
+ rtl: false,
},
"or-IN": {
code: "or",
tag: "or-IN",
name: "ଓଡିଆ (ଭାରତ)",
load: () => import('./data/or_IN.i18n.json'),
+ rtl: false,
},
"pa": {
code: "pa",
tag: "pa",
name: "ਪੰਜਾਬੀ",
load: () => import('./data/pa.i18n.json'),
+ rtl: false,
},
"pl-PL": {
code: "pl",
tag: "pl-PL",
name: "Polski (Polska)",
load: () => import('./data/pl-PL.i18n.json'),
+ rtl: false,
},
"pl": {
code: "pl",
tag: "pl",
name: "Polski",
load: () => import('./data/pl.i18n.json'),
+ rtl: false,
},
"pt-BR": {
code: "pt",
tag: "pt-BR",
name: "Português do Brasil",
load: () => import('./data/pt-BR.i18n.json'),
+ rtl: false,
},
"pt": {
code: "pt",
tag: "pt",
name: "Português",
load: () => import('./data/pt.i18n.json'),
+ rtl: false,
},
"pt-PT": {
code: "pt",
tag: "pt-PT",
name: "Português de Portugal",
load: () => import('./data/pt-PT.i18n.json'),
+ rtl: false,
},
"ro": {
code: "ro",
tag: "ro",
name: "Română",
load: () => import('./data/ro.i18n.json'),
+ rtl: false,
},
"ro-RO": {
code: "ro",
tag: "ro-RO",
name: "Română (România)",
load: () => import('./data/ro-RO.i18n.json'),
+ rtl: false,
},
"ru": {
code: "ru",
tag: "ru",
name: "Русский",
load: () => import('./data/ru.i18n.json'),
+ rtl: false,
},
"ru-RU": {
code: "ru",
tag: "ru_RU",
name: "Русский язык (Россия)",
load: () => import('./data/ru-RU.i18n.json'),
+ rtl: false,
},
"sk": {
code: "sk",
tag: "sk",
name: "Slovenčina",
load: () => import('./data/sk.i18n.json'),
+ rtl: false,
},
"sl": {
code: "sl",
tag: "sl",
name: "Slovenščina",
load: () => import('./data/sl.i18n.json'),
+ rtl: false,
},
"sl_SI": {
code: "sl",
tag: "sl_SI",
name: "Slovenščina (slovenija)",
load: () => import('./data/sl_SI.i18n.json'),
+ rtl: false,
},
"sr": {
code: "sr",
tag: "sr",
name: "Српски језик",
load: () => import('./data/sr.i18n.json'),
+ rtl: false,
},
"sv": {
code: "sv",
tag: "sv",
name: "Svenska",
load: () => import('./data/sv.i18n.json'),
+ rtl: false,
},
"sw": {
code: "sw",
tag: "sw",
name: "Kiswahili",
load: () => import('./data/sw.i18n.json'),
+ rtl: false,
},
"ta": {
code: "ta",
tag: "ta",
name: "தமிழ்",
load: () => import('./data/ta.i18n.json'),
+ rtl: false,
},
"te-IN": {
code: "te",
tag: "te_IN",
name: "తెలుగు (భారతదేశం)",
load: () => import('./data/te-IN.i18n.json'),
+ rtl: false,
},
"th": {
code: "th",
tag: "th",
name: "ไทย",
load: () => import('./data/th.i18n.json'),
+ rtl: false,
},
"tlh": {
code: "tlh",
tag: "tlh",
name: "TlhIngan Hol",
load: () => import('./data/tlh.i18n.json'),
+ rtl: false,
},
"tr": {
code: "tr",
tag: "tr",
name: "Türkçe",
load: () => import('./data/tr.i18n.json'),
+ rtl: false,
},
"ug": {
code: "ug",
tag: "ug",
name: "ئۇيغۇر تىلى",
load: () => import('./data/ug.i18n.json'),
+ rtl: true,
},
"uk": {
code: "uk",
tag: "uk",
name: "українська мова",
load: () => import('./data/uk.i18n.json'),
+ rtl: false,
},
"uk-UA": {
code: "uk",
tag: "uk-UA",
name: "Українська (Україна)",
load: () => import('./data/uk-UA.i18n.json'),
+ rtl: false,
},
"uz-AR": {
code: "uz",
tag: "uz-AR",
name: "O'zbek (arab)",
load: () => import('./data/uz-AR.i18n.json'),
+ rtl: true,
},
"uz-LA": {
code: "uz",
tag: "uz-LA",
name: "O'zbek (lotin)",
load: () => import('./data/uz-LA.i18n.json'),
+ rtl: false,
},
"uz-UZ": {
code: "uz",
tag: "uz-UZ",
name: "O'zbek (O'zbekiston)",
load: () => import('./data/uz-UZ.i18n.json'),
+ rtl: false,
},
"uz": {
code: "uz",
tag: "uz",
name: "O'zbek",
load: () => import('./data/uz.i18n.json'),
+ rtl: false,
},
"ve-CC": {
code: "ve",
tag: "ve-CC",
name: "Vèneto",
load: () => import('./data/ve-CC.i18n.json'),
+ rtl: false,
},
"ve-PP": {
code: "ve",
tag: "ve-PP",
name: "Vepsän kelʹ",
load: () => import('./data/ve-PP.i18n.json'),
+ rtl: false,
},
"ve": {
code: "ve",
tag: "ve",
name: "Tshivenḓa",
load: () => import('./data/ve.i18n.json'),
+ rtl: false,
},
"vi-VN": {
code: "vi",
tag: "vi-VN",
name: "Tiếng Việt (Việt Nam)",
load: () => import('./data/vi-VN.i18n.json'),
+ rtl: false,
},
"vi": {
code: "vi",
tag: "vi",
name: "Tiếng Việt",
load: () => import('./data/vi.i18n.json'),
+ rtl: false,
},
"vl-SS": {
code: "vl",
tag: "vl-SS",
name: "Vlaams",
load: () => import('./data/vl-SS.i18n.json'),
+ rtl: false,
},
"vo": {
code: "vo",
tag: "vo",
name: "Volapük",
load: () => import('./data/vo.i18n.json'),
+ rtl: false,
},
"wa-RR": {
code: "wa",
tag: "wa-RR",
name: "Wáray-Wáray",
load: () => import('./data/wa-RR.i18n.json'),
+ rtl: false,
},
"wa": {
code: "wa",
tag: "wa",
name: "Walon",
load: () => import('./data/wa.i18n.json'),
+ rtl: false,
},
"wo": {
code: "wo",
tag: "wo",
name: "ولوفل",
load: () => import('./data/wo.i18n.json'),
+ rtl: true,
},
"xh": {
code: "xh",
tag: "xh",
name: "IsiXhosa",
load: () => import('./data/xh.i18n.json'),
+ rtl: false,
},
"yi": {
code: "yi",
tag: "yi",
name: "ייִדיש, יידיש",
load: () => import('./data/yi.i18n.json'),
+ rtl: true,
},
"yo": {
code: "yo",
tag: "yo",
name: "Èdè Yorùbá",
load: () => import('./data/yo.i18n.json'),
+ rtl: false,
},
"zgh": {
code: "zgh",
tag: "zgh",
name: "ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ",
load: () => import('./data/zgh.i18n.json'),
+ rtl: false, // Tifinagh-kirjoitusta kirjoitetaan LTR
},
"yue_CN": {
code: "yue",
tag: "yue_CN",
name: "廣東話",
load: () => import('./data/yue_CN.i18n.json'),
+ rtl: false,
},
"zh-CN": {
code: "zh",
tag: "zh-CN",
name: "简体中文",
load: () => import('./data/zh-CN.i18n.json'),
+ rtl: false,
},
"zh-GB": {
code: "zh",
tag: "zh-GB",
name: "简体中文 GB2312",
load: () => import('./data/zh-GB.i18n.json'),
+ rtl: false,
},
"zh-Hans": {
code: "zh",
tag: "zh-Hans",
name: "简化字",
load: () => import('./data/zh-Hans.i18n.json'),
+ rtl: false,
},
"zh-Hant": {
code: "zh",
tag: "zh-Hant",
name: "正體字",
load: () => import('./data/zh-Hant.i18n.json'),
+ rtl: false,
},
"zh-HK": {
code: "zh",
tag: "zh-HK",
name: "繁体中文(香港)",
load: () => import('./data/zh-HK.i18n.json'),
+ rtl: false,
},
"zh-SG": {
code: "zh",
tag: "zh-SG",
name: "中文 (新加坡)",
load: () => import('./data/zh_SG.i18n.json'),
+ rtl: false,
},
"zh-TW": {
code: "zh",
tag: "zh-TW",
name: "繁體中文(台灣)",
load: () => import('./data/zh-TW.i18n.json'),
+ rtl: false,
},
"zu-ZA": {
code: "zu",
tag: "zu-ZA",
name: "IsiZulu (Ningizimu Afrika)",
load: () => import('./data/zu-ZA.i18n.json'),
+ rtl: false,
},
"zu": {
code: "zu",
tag: "zu",
name: "IsiZulu",
load: () => import('./data/zu.i18n.json'),
+ rtl: false,
}
};