From 161885d3bcdd465b8e9ecef8ec3105ce10c2cf5c Mon Sep 17 00:00:00 2001 From: Nexeon-Ai <205628096+Nexeon-Ai@users.noreply.github.com> Date: Tue, 9 Jun 2026 11:42:33 +0300 Subject: [PATCH] Add Arabic language with full RTL support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Register Arabic ('ar') as a supported UI language and implement full right-to-left layout mirroring — the platform's first RTL language. Language registration: - Add 'ar' to enabled-language lists (dev/prod + desktop platform.ts, branding.json) and the settings language dropdown (العربية). - Add the "Arabic" label string to the ui plugin + all locale files. Translation: - Add ar.json for all 66 plugins (~4000 strings, Modern Standard Arabic), preserving keys and ICU placeholders. Validated against en parity with the platform's intl-messageformat parser. - Extend the official lang parity test (testUtils) to cover 'ar'. RTL: - Theme.svelte sets document dir=rtl for RTL languages, live on switch. - scripts/rtl-codemod.mjs rewrites 971 physical CSS declarations across 292 files to logical properties (margin/padding/border/inset/text-align/ float) — identical to physical in LTR, so no LTR regression. - Chevron mirrors horizontal carets; _rtl.scss keeps code/mono LTR. Typography: - Bundle IBM Plex Sans Arabic (matches the IBM Plex UI family) and append it to the font stack so Latin and Arabic glyphs resolve per-glyph. Tooling: - scripts/translate-arabic.mjs (Claude API) for reproducible re-translation. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Nexeon-Ai <205628096+Nexeon-Ai@users.noreply.github.com> --- desktop/src/ui/platform.ts | 2 +- dev/prod/public/branding.json | 4 +- dev/prod/src/platform.ts | 2 +- foundations/core/packages/core/lang/ar.json | 77 ++++ .../core/packages/platform/lang/ar.json | 30 ++ .../core/packages/platform/src/testUtils.ts | 2 +- packages/presentation/lang/ar.json | 65 ++++ .../src/components/DrawingBoardToolbar.svelte | 6 +- .../presentation/src/components/Image.svelte | 2 +- .../components/PluginConfigurationCard.svelte | 2 +- .../src/components/SearchResult.svelte | 4 +- .../arabic/woff2/IBMPlexSansArabic-Bold.woff2 | Bin 0 -> 73788 bytes .../woff2/IBMPlexSansArabic-Medium.woff2 | Bin 0 -> 75936 bytes .../woff2/IBMPlexSansArabic-Regular.woff2 | Bin 0 -> 71904 bytes .../woff2/IBMPlexSansArabic-SemiBold.woff2 | Bin 0 -> 76408 bytes packages/theme/src/Theme.svelte | 6 + packages/theme/styles/_layouts.scss | 172 ++++----- packages/theme/styles/_rtl.scss | 33 ++ packages/theme/styles/_text-editor.scss | 46 +-- packages/theme/styles/button.scss | 60 ++-- packages/theme/styles/common.scss | 64 ++-- packages/theme/styles/components.scss | 194 +++++----- packages/theme/styles/dialogs.scss | 18 +- packages/theme/styles/editors.scss | 2 +- packages/theme/styles/global.scss | 37 +- packages/theme/styles/love.scss | 12 +- packages/theme/styles/mixins.scss | 4 +- packages/theme/styles/panel.scss | 34 +- packages/theme/styles/popups.scss | 44 +-- packages/theme/styles/prose.scss | 74 ++-- packages/theme/styles/tables.scss | 6 +- packages/ui/lang/ar.json | 116 ++++++ packages/ui/lang/cs.json | 1 + packages/ui/lang/de.json | 1 + packages/ui/lang/en.json | 1 + packages/ui/lang/es.json | 1 + packages/ui/lang/fr.json | 1 + packages/ui/lang/it.json | 1 + packages/ui/lang/ja.json | 1 + packages/ui/lang/ko.json | 1 + packages/ui/lang/pt-br.json | 1 + packages/ui/lang/pt.json | 1 + packages/ui/lang/ru.json | 1 + packages/ui/lang/tr.json | 1 + packages/ui/lang/zh.json | 1 + .../src/components/ButtonWithDropdown.svelte | 2 +- packages/ui/src/components/Chevron.svelte | 19 + packages/ui/src/components/Chip.svelte | 2 +- .../ui/src/components/CircleButton.svelte | 4 +- .../ui/src/components/DropdownLabels.svelte | 4 +- .../src/components/DropdownLabelsIntl.svelte | 4 +- .../ui/src/components/DropdownPopup.svelte | 2 +- .../src/components/FilterCategoryPopup.svelte | 4 +- .../src/components/FilterOptionPopup.svelte | 2 +- .../ui/src/components/HeaderButton.svelte | 4 +- packages/ui/src/components/Like.svelte | 4 +- packages/ui/src/components/Link.svelte | 2 +- packages/ui/src/components/Loading.svelte | 2 +- packages/ui/src/components/MiniToggle.svelte | 6 +- .../ui/src/components/ModernCheckbox.svelte | 4 +- .../ui/src/components/ModernDialog.svelte | 2 +- .../ui/src/components/ModernEditbox.svelte | 2 +- .../src/components/ModernRadioButton.svelte | 2 +- packages/ui/src/components/ModernTab.svelte | 2 +- .../ui/src/components/ModernToggle.svelte | 10 +- .../ui/src/components/MultiProgress.svelte | 12 +- packages/ui/src/components/NavItem.svelte | 14 +- .../ui/src/components/PanelInstance.svelte | 6 +- .../ui/src/components/PopupInstance.svelte | 2 +- packages/ui/src/components/Progress.svelte | 2 +- packages/ui/src/components/ScrollBox.svelte | 4 +- packages/ui/src/components/Scroller.svelte | 40 +-- packages/ui/src/components/ScrollerBar.svelte | 6 +- packages/ui/src/components/SearchInput.svelte | 2 +- packages/ui/src/components/SelectBox.svelte | 4 +- packages/ui/src/components/Separator.svelte | 6 +- packages/ui/src/components/ShowMore.svelte | 2 +- packages/ui/src/components/StepsDialog.svelte | 4 +- packages/ui/src/components/StylishEdit.svelte | 2 +- packages/ui/src/components/TabList.svelte | 10 +- packages/ui/src/components/Timeline.svelte | 24 +- packages/ui/src/components/Toggle.svelte | 4 +- .../ui/src/components/ToggleWithLabel.svelte | 2 +- .../ui/src/components/TooltipInstance.svelte | 12 +- .../components/calendar/DateInputBox.svelte | 2 +- .../components/calendar/DatePresenter.svelte | 6 +- .../calendar/DateRangePresenter.svelte | 4 +- .../components/calendar/DueDatePopup.svelte | 2 +- .../components/calendar/MonthCalendar.svelte | 2 +- .../components/calendar/MonthSquare.svelte | 18 +- .../ui/src/components/calendar/Shifts.svelte | 4 +- .../components/calendar/TimeInputBox.svelte | 2 +- .../src/components/internal/ClockFace.svelte | 8 +- .../ui/src/components/internal/Root.svelte | 2 +- .../components/internal/SettingsPopup.svelte | 3 +- .../components/internal/ThemeButton.svelte | 8 +- .../notifications/Notifications.svelte | 8 +- .../src/components/wizard/WizardStep.svelte | 4 +- packages/ui/src/plugin.ts | 1 + plugins/achievement-assets/lang/ar.json | 8 + plugins/activity-assets/lang/ar.json | 61 ++++ .../src/components/ActivityDocLink.svelte | 2 +- .../src/components/BasePreview.svelte | 10 +- .../src/components/Replies.svelte | 8 +- .../ActivityMessageHeader.svelte | 2 +- .../ActivityMessageTemplate.svelte | 14 +- .../DocUpdateMessageHeader.svelte | 2 +- .../DocUpdateMessageObjectValue.svelte | 2 +- .../DocUpdateMessagePreview.svelte | 4 +- .../attributes/SetAttributesPresenter.svelte | 10 +- .../src/components/reactions/Reactions.svelte | 2 +- .../reactions/ReactionsPreview.svelte | 2 +- plugins/ai-assistant-assets/lang/ar.json | 13 + .../analytics-collector-assets/lang/ar.json | 22 ++ plugins/attachment-assets/lang/ar.json | 59 ++++ .../AttachmentGalleryPresenter.svelte | 6 +- .../components/AttachmentImagePreview.svelte | 2 +- .../src/components/AttachmentPopup.svelte | 4 +- .../src/components/AttachmentPresenter.svelte | 2 +- .../src/components/AttachmentPreview.svelte | 4 +- .../src/components/AttachmentRefInput.svelte | 4 +- .../components/AttachmentsGalleryView.svelte | 2 +- .../src/components/AttachmentsListView.svelte | 2 +- .../src/components/LinkPreview.svelte | 2 +- .../src/components/LinkPreviewCard.svelte | 2 +- .../components/LinkPreviewPresenter.svelte | 2 +- .../src/components/Photos.svelte | 2 +- plugins/billing-assets/lang/ar.json | 63 ++++ plugins/bitrix-assets/lang/ar.json | 18 + plugins/board-assets/lang/ar.json | 107 ++++++ .../add-card/AddMultipleCardsPopup.svelte | 2 +- plugins/calendar-assets/lang/ar.json | 129 +++++++ .../src/components/ByDateSelector.svelte | 4 +- .../src/components/CreateEvent.svelte | 2 +- .../src/components/DateEditor.svelte | 2 +- .../src/components/DayCalendar.svelte | 24 +- .../src/components/EditEvent.svelte | 2 +- .../src/components/EventElement.svelte | 2 +- .../src/components/MonthSelector.svelte | 4 +- .../src/components/ScheduleEditor.svelte | 2 +- plugins/card-assets/lang/ar.json | 90 +++++ .../src/components/CardAttributeEditor.svelte | 2 +- .../src/components/CardPresenter.svelte | 2 +- .../src/components/CardTagColored.svelte | 2 +- .../src/components/ColoredCardIcon.svelte | 2 +- .../src/components/Description.svelte | 2 +- .../components/EditCardTableOfContents.svelte | 6 +- .../src/components/NewCardForm.svelte | 4 +- .../components/ParentNamesPresenter.svelte | 2 +- .../src/components/TagsEditor.svelte | 2 +- .../src/components/settings/EditRole.svelte | 4 +- .../components/settings/GeneralSection.svelte | 4 +- .../settings/ManageMasterTags.svelte | 2 +- plugins/chat-assets/lang/ar.json | 19 + plugins/chunter-assets/lang/ar.json | 138 ++++++++ .../components/ChannelEmbeddedContent.svelte | 4 +- .../src/components/ChannelInput.svelte | 2 +- .../src/components/ChannelSidebarView.svelte | 4 +- .../EditChannelDescriptionAttachments.svelte | 6 +- .../src/components/JumpToDateSelector.svelte | 2 +- .../src/components/PinnedMessagesPopup.svelte | 2 +- .../ReverseChannelScrollView.svelte | 4 +- .../activity/MembersChangedMessage.svelte | 2 +- .../chat-message/ChatMessageHeader.svelte | 2 +- .../chat-message/ChatMessagePreview.svelte | 4 +- plugins/communication-assets/lang/ar.json | 98 ++++++ .../src/components/AttachmentsPreview.svelte | 4 +- .../src/components/DateSeparator.svelte | 2 +- .../src/components/DirectIcon.svelte | 4 +- .../components/input/AttachmentsHeader.svelte | 2 +- .../src/components/message/MessageBody.svelte | 2 +- .../components/message/MessageFooter.svelte | 2 +- .../message/MessagePresenter.svelte | 2 +- .../message/OneRowMessageBody.svelte | 2 +- .../ActivityCollaborativeContentViewer.svelte | 2 +- .../ActivityUpdateCollaboratorsViewer.svelte | 2 +- .../src/components/poll/CreatePoll.svelte | 2 +- .../src/components/poll/PollPreview.svelte | 2 +- .../src/components/poll/PollResults.svelte | 6 +- .../components/preview/PreviewTemplate.svelte | 4 +- plugins/contact-assets/lang/ar.json | 155 ++++++++ .../src/components/ChannelEditor.svelte | 8 +- .../src/components/ChannelsPopup.svelte | 2 +- .../src/components/EditAvatarPopup.svelte | 8 +- .../src/components/PersonContent.svelte | 2 +- .../src/components/icons/AddAvatar.svelte | 2 +- .../person/DeactivatedHeader.svelte | 4 +- .../person/ModernProfilePopup.svelte | 10 +- .../controlled-documents-assets/lang/ar.json | 333 ++++++++++++++++++ .../presenters/CategoryPresenter.svelte | 2 +- .../create-doc/steps/TemplateStep.svelte | 2 +- .../document/DocumentHistory.svelte | 2 +- .../document/DocumentSignatories.svelte | 2 +- .../components/document/EditDocContent.svelte | 8 +- .../right-panel/DocumentApprovalItem.svelte | 2 +- .../right-panel/DocumentCommentsTab.svelte | 2 +- .../info/DocumentFlatHierarchy.svelte | 6 +- .../info/DocumentFlatTreeElement.svelte | 2 +- .../hierarchy/DocumentSpacePresenter.svelte | 4 +- .../src/components/hierarchy/DropArea.svelte | 4 +- .../components/hierarchy/DropMarker.svelte | 4 +- .../print/DocumentPrintTitlePage.svelte | 4 +- plugins/desktop-downloads-assets/lang/ar.json | 10 + .../components/FileDownloadStatusPopup.svelte | 6 +- .../desktop-preferences-assets/lang/ar.json | 11 + .../src/components/ModelView.svelte | 2 +- plugins/diffview-assets/lang/ar.json | 14 + .../src/components/FileDiffContent.svelte | 8 +- .../src/components/FileDiffHeader.svelte | 2 +- .../src/components/FileDiffView.svelte | 8 +- plugins/document-assets/lang/ar.json | 64 ++++ .../src/components/EditDoc.svelte | 4 +- .../src/components/navigator/DropArea.svelte | 4 +- .../components/navigator/DropMarker.svelte | 4 +- plugins/drive-assets/lang/ar.json | 45 +++ plugins/emoji-assets/lang/ar.json | 41 +++ .../src/components/EmojiButton.svelte | 2 +- .../src/components/EmojiGroup.svelte | 2 +- .../src/components/EmojiPopup.svelte | 2 +- plugins/export-assets/lang/ar.json | 58 +++ plugins/global-profile-assets/lang/ar.json | 29 ++ .../src/components/GlobalProfileApp.svelte | 20 +- .../src/components/ProfileField.svelte | 2 +- plugins/gmail-assets/lang/ar.json | 50 +++ .../src/components/NewMessages.svelte | 4 +- plugins/guest-assets/lang/ar.json | 10 + plugins/hr-assets/lang/ar.json | 69 ++++ .../src/components/schedule/MonthView.svelte | 12 +- .../components/schedule/StaffPresenter.svelte | 2 +- .../src/components/schedule/YearView.svelte | 2 +- plugins/huly-mail-assets/lang/ar.json | 20 ++ plugins/inbox-assets/lang/ar.json | 13 + .../src/components/InboxCard.svelte | 6 +- .../src/components/InboxCardIcon.svelte | 2 +- .../src/components/InboxHeader.svelte | 2 +- .../components/NotificationTemplate.svelte | 8 +- .../components/ReactionNotification.svelte | 6 +- .../ReactionInboxNotificationPresenter.svelte | 6 +- plugins/inventory-assets/lang/ar.json | 25 ++ .../src/components/HierarchyElement.svelte | 12 +- .../src/components/HierarchyView.svelte | 6 +- plugins/lead-assets/lang/ar.json | 40 +++ .../src/components/TitlePresenter.svelte | 2 +- plugins/login-assets/lang/ar.json | 106 ++++++ .../src/components/LoginApp.svelte | 2 +- .../src/components/Tabs.svelte | 2 +- plugins/love-assets/lang/ar.json | 98 ++++++ .../src/components/RoomSettingsPopup.svelte | 4 +- .../meeting/ControlBarContainer.svelte | 2 +- .../components/meeting/ParticipantView.svelte | 6 +- plugins/mail-assets/lang/ar.json | 5 + plugins/media-assets/lang/ar.json | 19 + plugins/notification-assets/lang/ar.json | 62 ++++ .../components/DocNotifyContextCard.svelte | 18 +- .../components/NotificationPresenter.svelte | 2 +- .../src/components/NotifyContextIcon.svelte | 2 +- .../ReactionInboxNotificationPresenter.svelte | 6 +- plugins/onboard-assets/lang/ar.json | 19 + .../src/components/OnboardApp.svelte | 2 +- plugins/preference-assets/lang/ar.json | 7 + plugins/print-assets/lang/ar.json | 8 + plugins/process-assets/lang/ar.json | 203 +++++++++++ .../attributeEditors/ConfigurePopup.svelte | 2 +- .../settings/AsideStepEditor.svelte | 2 +- .../settings/AsideTransitionEditor.svelte | 2 +- .../components/settings/ContextEditor.svelte | 2 +- plugins/products-assets/lang/ar.json | 39 ++ plugins/questions-assets/lang/ar.json | 37 ++ .../QuestionsCollectionEditor.svelte | 4 +- plugins/rating-assets/lang/ar.json | 12 + .../src/components/RatingEditor.svelte | 2 +- plugins/recorder-assets/lang/ar.json | 33 ++ .../src/components/RecorderExt.svelte | 2 +- plugins/recruit-assets/lang/ar.json | 134 +++++++ .../components/ApplicantNamePresenter.svelte | 2 +- .../src/components/CreateApplication.svelte | 2 +- .../src/components/MoveApplication.svelte | 2 +- plugins/request-assets/lang/ar.json | 25 ++ .../src/components/RequestDetail.svelte | 4 +- .../components/RequestStatusPresenter.svelte | 2 +- .../src/components/RequestView.svelte | 6 +- plugins/setting-assets/lang/ar.json | 245 +++++++++++++ .../src/components/EnumSetting.svelte | 2 +- .../GuestPermissionsSettings.svelte | 2 +- .../src/components/MailboxItem.svelte | 2 +- .../src/components/RelationSetting.svelte | 2 +- .../integrations/IntegrationTag.svelte | 2 +- .../components/socialIds/SocialIdRow.svelte | 2 +- .../components/spaceTypes/RoleEditor.svelte | 4 +- .../components/spaceTypes/SpaceTypes.svelte | 2 +- plugins/support-assets/lang/ar.json | 7 + plugins/survey-assets/lang/ar.json | 51 +++ plugins/tags-assets/lang/ar.json | 45 +++ .../src/components/CategoryBar.svelte | 2 +- .../src/components/CollapsedTags.svelte | 6 +- .../src/components/CreateTagElement.svelte | 2 +- .../src/components/EditTagElement.svelte | 2 +- .../src/components/LabelsPresenter.svelte | 2 +- .../src/components/TagItem.svelte | 4 +- .../components/TagReferencePresenter.svelte | 8 +- .../src/components/TagsAttributeEditor.svelte | 2 +- .../src/components/TagsPopup.svelte | 4 +- .../components/TagsReferencePresenter.svelte | 4 +- plugins/task-assets/lang/ar.json | 101 ++++++ .../src/components/CreateFilter.svelte | 2 +- .../src/components/TaskHeader.svelte | 4 +- .../components/kanban/KanbanDragDone.svelte | 2 +- .../src/components/state/StatesPopup.svelte | 2 +- .../components/state/TypeStatesPopup.svelte | 2 +- .../taskTypes/TaskTypeEditor.svelte | 4 +- plugins/telegram-assets/lang/ar.json | 99 ++++++ .../src/components/Configure.svelte | 2 +- .../src/components/Message.svelte | 4 +- .../src/components/PinPad.svelte | 4 +- plugins/templates-assets/lang/ar.json | 21 ++ plugins/test-management-assets/lang/ar.json | 95 +++++ plugins/text-editor-assets/lang/ar.json | 92 +++++ .../src/components/DrawingBoardEditor.svelte | 2 +- .../components/DrawingBoardNodeView.svelte | 16 +- .../src/components/InlineCommandsList.svelte | 4 +- .../src/components/MentionList.svelte | 6 +- .../src/components/StyledTextBox.svelte | 2 +- .../extension/embed/EmbedToolbarHead.svelte | 2 +- .../extension/popups/ColorPicker.svelte | 2 +- .../extension/table/TableNodeView.svelte | 10 +- .../extension/todo/ToDoItemNodeView.svelte | 2 +- .../extension/toolbar/EditorToolbar.svelte | 2 +- .../toc/TableOfContentsContent.svelte | 2 +- plugins/time-assets/lang/ar.json | 64 ++++ .../src/components/CreateToDoPopup.svelte | 12 +- .../src/components/EditToDo.svelte | 8 +- .../src/components/EditWorkSlot.svelte | 2 +- .../src/components/ToDosNavigator.svelte | 4 +- .../src/components/Workslots.svelte | 2 +- .../team/calendar/EventElement.svelte | 2 +- .../team/calendar/PersonCalendar.svelte | 12 +- plugins/tracker-assets/lang/ar.json | 296 ++++++++++++++++ .../components/ComponentEditor.svelte | 2 +- .../components/components/LeadPopup.svelte | 2 +- .../src/components/issues/IssueExtra.svelte | 2 +- .../components/issues/IssuePresenter.svelte | 2 +- .../src/components/issues/ParentIssue.svelte | 4 +- .../issues/ParentNamesPresenter.svelte | 2 +- .../issues/RelationEditorPart.svelte | 8 +- .../components/issues/TitlePresenter.svelte | 2 +- .../issues/edit/SubIssueSelector.svelte | 2 +- .../EstimationStatsPresenter.svelte | 2 +- .../milestones/MilestoneEditor.svelte | 2 +- .../components/projects/CreateProject.svelte | 2 +- .../templates/DraftIssueChildList.svelte | 2 +- .../templates/IssueTemplateChildList.svelte | 2 +- plugins/training-assets/lang/ar.json | 104 ++++++ .../TrainingPassingScoreSlider.svelte | 4 +- plugins/uploader-assets/lang/ar.json | 15 + .../components/FileUploadStatusPopup.svelte | 6 +- plugins/view-assets/lang/ar.json | 163 +++++++++ .../src/components/ActionsPopup.svelte | 14 +- .../src/components/BooleanEditorPopup.svelte | 2 +- .../src/components/ClassAttributeBar.svelte | 2 +- .../src/components/RelationshipTable.svelte | 6 +- .../src/components/RolePresenter.svelte | 2 +- .../src/components/Table.svelte | 4 +- .../components/filter/DatePresenter.svelte | 2 +- .../filter/FilterRemovedNotification.svelte | 4 +- .../components/filter/FilterSection.svelte | 4 +- .../linkPresenters/GithubPresenter.svelte | 2 +- .../linkPresenters/YoutubePresenter.svelte | 4 +- .../src/components/list/ListHeader.svelte | 24 +- .../src/components/list/SortableList.svelte | 4 +- .../masterDetail/MasterDetailBrowser.svelte | 2 +- plugins/workbench-assets/lang/ar.json | 40 +++ .../src/components/AppItem.svelte | 2 +- .../src/components/Applications.svelte | 2 +- .../src/components/ComponentNavigator.svelte | 2 +- .../src/components/HelpAndSupport.svelte | 2 +- .../src/components/NavFooter.svelte | 2 +- .../src/components/Workbench.svelte | 34 +- .../src/components/sidebar/Sidebar.svelte | 6 +- .../components/sidebar/SidebarExpanded.svelte | 6 +- .../src/components/sidebar/SidebarTabs.svelte | 2 +- scripts/rtl-codemod.mjs | 101 ++++++ scripts/translate-arabic.mjs | Bin 0 -> 7262 bytes server/account/lang/ar.json | 22 ++ services/github/github-assets/lang/ar.json | 94 +++++ .../components/MarkdownDescriptionDiff.svelte | 4 +- .../GithubReviewThreadPresenter.svelte | 6 +- 386 files changed, 5643 insertions(+), 975 deletions(-) create mode 100644 foundations/core/packages/core/lang/ar.json create mode 100644 foundations/core/packages/platform/lang/ar.json create mode 100644 packages/presentation/lang/ar.json create mode 100644 packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Bold.woff2 create mode 100644 packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Medium.woff2 create mode 100644 packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Regular.woff2 create mode 100644 packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-SemiBold.woff2 create mode 100644 packages/theme/styles/_rtl.scss create mode 100644 packages/ui/lang/ar.json create mode 100644 plugins/achievement-assets/lang/ar.json create mode 100644 plugins/activity-assets/lang/ar.json create mode 100644 plugins/ai-assistant-assets/lang/ar.json create mode 100644 plugins/analytics-collector-assets/lang/ar.json create mode 100644 plugins/attachment-assets/lang/ar.json create mode 100644 plugins/billing-assets/lang/ar.json create mode 100644 plugins/bitrix-assets/lang/ar.json create mode 100644 plugins/board-assets/lang/ar.json create mode 100644 plugins/calendar-assets/lang/ar.json create mode 100644 plugins/card-assets/lang/ar.json create mode 100644 plugins/chat-assets/lang/ar.json create mode 100644 plugins/chunter-assets/lang/ar.json create mode 100644 plugins/communication-assets/lang/ar.json create mode 100644 plugins/contact-assets/lang/ar.json create mode 100644 plugins/controlled-documents-assets/lang/ar.json create mode 100644 plugins/desktop-downloads-assets/lang/ar.json create mode 100644 plugins/desktop-preferences-assets/lang/ar.json create mode 100644 plugins/diffview-assets/lang/ar.json create mode 100644 plugins/document-assets/lang/ar.json create mode 100644 plugins/drive-assets/lang/ar.json create mode 100644 plugins/emoji-assets/lang/ar.json create mode 100644 plugins/export-assets/lang/ar.json create mode 100644 plugins/global-profile-assets/lang/ar.json create mode 100644 plugins/gmail-assets/lang/ar.json create mode 100644 plugins/guest-assets/lang/ar.json create mode 100644 plugins/hr-assets/lang/ar.json create mode 100644 plugins/huly-mail-assets/lang/ar.json create mode 100644 plugins/inbox-assets/lang/ar.json create mode 100644 plugins/inventory-assets/lang/ar.json create mode 100644 plugins/lead-assets/lang/ar.json create mode 100644 plugins/login-assets/lang/ar.json create mode 100644 plugins/love-assets/lang/ar.json create mode 100644 plugins/mail-assets/lang/ar.json create mode 100644 plugins/media-assets/lang/ar.json create mode 100644 plugins/notification-assets/lang/ar.json create mode 100644 plugins/onboard-assets/lang/ar.json create mode 100644 plugins/preference-assets/lang/ar.json create mode 100644 plugins/print-assets/lang/ar.json create mode 100644 plugins/process-assets/lang/ar.json create mode 100644 plugins/products-assets/lang/ar.json create mode 100644 plugins/questions-assets/lang/ar.json create mode 100644 plugins/rating-assets/lang/ar.json create mode 100644 plugins/recorder-assets/lang/ar.json create mode 100644 plugins/recruit-assets/lang/ar.json create mode 100644 plugins/request-assets/lang/ar.json create mode 100644 plugins/setting-assets/lang/ar.json create mode 100644 plugins/support-assets/lang/ar.json create mode 100644 plugins/survey-assets/lang/ar.json create mode 100644 plugins/tags-assets/lang/ar.json create mode 100644 plugins/task-assets/lang/ar.json create mode 100644 plugins/telegram-assets/lang/ar.json create mode 100644 plugins/templates-assets/lang/ar.json create mode 100644 plugins/test-management-assets/lang/ar.json create mode 100644 plugins/text-editor-assets/lang/ar.json create mode 100644 plugins/time-assets/lang/ar.json create mode 100644 plugins/tracker-assets/lang/ar.json create mode 100644 plugins/training-assets/lang/ar.json create mode 100644 plugins/uploader-assets/lang/ar.json create mode 100644 plugins/view-assets/lang/ar.json create mode 100644 plugins/workbench-assets/lang/ar.json create mode 100644 scripts/rtl-codemod.mjs create mode 100644 scripts/translate-arabic.mjs create mode 100644 server/account/lang/ar.json create mode 100644 services/github/github-assets/lang/ar.json diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts index fdf240389ee..ac042064155 100644 --- a/desktop/src/ui/platform.ts +++ b/desktop/src/ui/platform.ts @@ -412,7 +412,7 @@ export async function configurePlatform (onWorkbenchConnect?: () => Promise l.trim()) - : ['en', 'ru', 'es', 'pt', 'pt-br', 'zh', 'fr', 'cs', 'it', 'de', 'ja', 'ko', 'tr'] + : ['en', 'ru', 'es', 'pt', 'pt-br', 'zh', 'fr', 'cs', 'it', 'de', 'ja', 'ko', 'tr', 'ar'] setMetadata(uiPlugin.metadata.Languages, languages) diff --git a/dev/prod/public/branding.json b/dev/prod/public/branding.json index e5739e9f364..5603a3f9ed6 100644 --- a/dev/prod/public/branding.json +++ b/dev/prod/public/branding.json @@ -1,7 +1,7 @@ { "huly.local:8080": { "title": "Huly", - "languages": "en,ru,pt,pt-br,es,zh,fr,de,ja,ko,tr", + "languages": "en,ru,pt,pt-br,es,zh,fr,de,ja,ko,tr,ar", "defaultLanguage": "en", "defaultApplication": "tracker", "defaultSpace": "tracker:project:DefaultProject", @@ -30,7 +30,7 @@ }, "huly.local:8087": { "title": "Huly", - "languages": "en,ru,pt,pt-br,es,zh,fr,de,ja,ko,tr", + "languages": "en,ru,pt,pt-br,es,zh,fr,de,ja,ko,tr,ar", "defaultLanguage": "en", "defaultApplication": "tracker", "defaultSpace": "tracker:project:DefaultProject", diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index 6f3ac3f628f..f1291aac2de 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -545,7 +545,7 @@ export async function configurePlatform() { const languages = myBranding.languages ? myBranding.languages.split(',').map((l) => l.trim()) - : ['en', 'ru', 'es', 'pt', 'pt-br', 'zh', 'fr', 'cs', 'it', 'de', 'ja', 'ko', 'tr'] + : ['en', 'ru', 'es', 'pt', 'pt-br', 'zh', 'fr', 'cs', 'it', 'de', 'ja', 'ko', 'tr', 'ar'] setMetadata(uiPlugin.metadata.Languages, languages) diff --git a/foundations/core/packages/core/lang/ar.json b/foundations/core/packages/core/lang/ar.json new file mode 100644 index 00000000000..68e62a4c276 --- /dev/null +++ b/foundations/core/packages/core/lang/ar.json @@ -0,0 +1,77 @@ +{ + "string": { + "Id": "المعرّف", + "Space": "المساحة", + "Spaces": "المساحات", + "SpacesDescription": "إدارة نوع جميع المساحات", + "TypedSpace": "مساحة من نوع محدد", + "SpaceType": "نوع المساحة", + "Modified": "مُعدَّل", + "ModifiedDate": "تاريخ التعديل", + "ModifiedBy": "عُدِّل بواسطة", + "Class": "الفئة", + "AttachedTo": "مُرفق بـ", + "AttachedToClass": "مُرفق بالفئة", + "Name": "الاسم", + "Description": "الوصف", + "ShortDescription": "وصف موجز", + "Descriptor": "الواصف", + "TargetClass": "الفئة المستهدفة", + "Role": "الدور", + "Roles": "الأدوار", + "Private": "خاص", + "Archived": "مؤرشف", + "ClassLabel": "النوع", + "ClassPropertyLabel": "التسمية", + "String": "نص", + "Markup": "ترميز", + "Number": "رقم", + "Boolean": "مربع اختيار", + "Timestamp": "طابع زمني", + "Date": "تاريخ", + "IntlString": "IntlString", + "Ref": "مرجع", + "Collection": "مجموعة", + "Array": "اختيار متعدد", + "Enum": "اختيار", + "Members": "الأعضاء", + "Hyperlink": "URL", + "MarkupBlobRef": "تعاوني", + "Object": "كائن", + "System": "النظام", + "CreatedBy": "أنشئ بواسطة", + "CreatedDate": "تاريخ الإنشاء", + "Status": "الحالة", + "StatusCategory": "فئة الحالة", + "Account": "الحساب", + "Rank": "الترتيب", + "Owners": "المالكون", + "Permission": "الإذن", + "CreateObject": "إنشاء كائن", + "UpdateObject": "تحديث كائن", + "DeleteObject": "حذف كائن", + "ForbidDeleteObject": "منع حذف الكائن", + "UpdateSpace": "تحديث المساحة", + "ArchiveSpace": "أرشفة المساحة", + "CreateObjectDescription": "يمنح المستخدمين القدرة على إنشاء كائنات في المساحة", + "UpdateObjectDescription": "يمنح المستخدمين القدرة على تحديث الكائنات في المساحة", + "DeleteObjectDescription": "يمنح المستخدمين القدرة على حذف الكائنات في المساحة", + "ForbidDeleteObjectDescription": "منع المستخدمين من حذف الكائنات في المساحة", + "UpdateSpaceDescription": "يمنح المستخدمين القدرة على تحديث المساحة", + "ArchiveSpaceDescription": "يمنح المستخدمين القدرة على أرشفة المساحة", + "AutoJoin": "انضمام تلقائي", + "AutoJoinDescr": "إضافة الموظفين الجدد تلقائيًا إلى هذه المساحة", + "AutoJoinGuests": "انضمام الضيوف تلقائيًا", + "AutoJoinGuestsDescr": "عند التفعيل، يُضاف ضيوف مساحة العمل إلى هذه المساحة عند التنشيط", + "RBAC": "التحكم في الوصول المستند إلى الأدوار", + "RBACDescr": "اشتراط الوصول المستند إلى الأدوار لتنفيذ الإجراءات في هذه المساحة", + "BlobSize": "الحجم", + "BlobContentType": "نوع المحتوى", + "Relation": "علاقة", + "Relations": "العلاقات", + "AddRelation": "إضافة علاقة", + "PersonId": "الشخص", + "AccountId": "الحساب", + "Version": "الإصدار" + } +} diff --git a/foundations/core/packages/platform/lang/ar.json b/foundations/core/packages/platform/lang/ar.json new file mode 100644 index 00000000000..e41c9138be9 --- /dev/null +++ b/foundations/core/packages/platform/lang/ar.json @@ -0,0 +1,30 @@ +{ + "status": { + "LoadingPlugin": "جارٍ تحميل الإضافة {plugin}...", + "UnknownError": "خطأ غير معروف: {message}", + "InvalidId": "معرّف غير صالح: {id}", + "BadRequest": "طلب غير صالح", + "Forbidden": "محظور", + "Conflict": "تعارض", + "ExpiredLink": "انتهت صلاحية رابط الدعوة هذا", + "Unauthorized": "غير مصرَّح به", + "UnknownMethod": "طريقة غير معروفة: {method}", + "InternalServerError": "خطأ داخلي في الخادم", + "MaintenanceWarning": "الصيانة مجدولة خلال", + "MaintenanceWarningTime": "{time, plural, =1 {أقل من دقيقة} other {# دقيقة}}", + "AccountNotFound": "لم يُعثر على الحساب أو أن بيانات الاعتماد المقدَّمة غير صحيحة", + "AccountNotConfirmed": "لم يتم تأكيد الحساب", + "WorkspaceNotFound": "لم يُعثر على مساحة العمل", + "AccountAlreadyExists": "الحساب موجود بالفعل", + "WorkspaceRateLimit": "الخادم مشغول، يُرجى الانتظار قليلاً والمحاولة مرة أخرى", + "AccountAlreadyConfirmed": "تم تأكيد الحساب بالفعل", + "WorkspaceAlreadyExists": "مساحة العمل موجودة بالفعل", + "InvalidOtp": "رمز غير صالح", + "PasswordLoginLocked": "تم قفل تسجيل الدخول بكلمة المرور بسبب كثرة المحاولات الفاشلة. يُرجى استخدام طريقة تسجيل الدخول برمز OTP لإلغاء قفل حسابك.", + "InviteNotFound": "لم يُعثر على دعوة بالبريد الإلكتروني:{email}.", + "WorkspaceLimitReached": "لقد وصلت إلى الحد الأقصى لمساحات العمل. يُرجى التواصل معنا...", + "ReadOnlyAccount": "حساب ضيف تجريبي مجهول", + "SystemAccount": "حساب النظام", + "SocialIdAlreadyExists": "Social ID موجود بالفعل" + } +} diff --git a/foundations/core/packages/platform/src/testUtils.ts b/foundations/core/packages/platform/src/testUtils.ts index ac431aa993f..12f05689840 100644 --- a/foundations/core/packages/platform/src/testUtils.ts +++ b/foundations/core/packages/platform/src/testUtils.ts @@ -10,7 +10,7 @@ function makeLocaleMatcher (target: object): object { ) } -const langs = ['en', 'ru'] +const langs = ['en', 'ru', 'ar'] /** * @public diff --git a/packages/presentation/lang/ar.json b/packages/presentation/lang/ar.json new file mode 100644 index 00000000000..dcc67fee2ac --- /dev/null +++ b/packages/presentation/lang/ar.json @@ -0,0 +1,65 @@ +{ + "string": { + "Create": "إنشاء", + "Cancel": "إلغاء", + "Ok": "موافق", + "Save": "حفظ", + "Saved": "تم الحفظ...", + "Download": "تنزيل", + "DownloadOriginal": "تنزيل النسخة الأصلية", + "Delete": "حذف", + "Close": "إغلاق", + "NotSelected": "غير محدد", + "Deselect": "إلغاء التحديد", + "Archived": "(مؤرشف)", + "AddSocialLinks": "إضافة روابط التواصل الاجتماعي", + "EditSocialLinks": "تحرير روابط التواصل الاجتماعي", + "Change": "تغيير", + "Remove": "إزالة", + "Search": "بحث...", + "Spaces": "المساحات", + "NumberSpaces": "{count, plural, =0 {في} =1 {في مكان واحد} other {في # أماكن}}", + "InThis": "في هذه {space}", + "NoMatchesInThis": "لا توجد مطابقات في هذه {space}", + "NoMatchesFound": "لم يتم العثور على مطابقات", + "NotInThis": "ليس في هذه {space}", + "Match": "مطابقة", + "Add": "إضافة", + "Edit": "تحرير", + "DocumentPreview": "معاينة", + "MakePrivate": "جعله خاصاً", + "MakePrivateDescription": "يمكن للأعضاء فقط رؤيته", + "Created": "تم الإنشاء", + "Selected": "محدد", + "NoResults": "لا توجد نتائج لعرضها", + "Next": "التالي", + "FailedToPreview": "فشلت المعاينة", + "ContentType": "نوع المحتوى", + "ContentTypeNotSupported": "المعاينة غير متاحة لنوع المحتوى هذا", + "StartDrawing": "خربشة فوقه", + "DrawingHistory": "سجل الخربشة", + "ColorAdd": "إضافة لون مُعد مسبقاً", + "ColorRemove": "إزالة لون مُعد مسبقاً", + "ColorReset": "إعادة تعيين الألوان المُعدة مسبقاً", + "Copy": "نسخ", + "DocumentUrlCopied": "تم النسخ!", + "CopyLink": "نسخ الرابط", + "AccessDenied": "العنصر غير موجود أو ليس لديك إذن بالوصول إليه.", + "UnableToFollowMention": "تعذّر فتح العنصر المُشار إليه", + "Undo": "تراجع", + "Redo": "إعادة", + "ClearCanvas": "مسح لوحة الرسم", + "PenTool": "قلم", + "EraserTool": "ممحاة", + "PanTool": "تحريك", + "TextTool": "نص", + "LineTool": "خط", + "RectangleTool": "مستطيل", + "EllipseTool": "بيضاوي", + "PaletteManagementMenu": "إدارة الألوان المُعدة مسبقاً", + "BetaVersion": "نسخة تجريبية" + }, + "status": { + "FileTooLarge": "الملف كبير جداً" + } +} diff --git a/packages/presentation/src/components/DrawingBoardToolbar.svelte b/packages/presentation/src/components/DrawingBoardToolbar.svelte index e5a89d73cfa..60f56a5f051 100644 --- a/packages/presentation/src/components/DrawingBoardToolbar.svelte +++ b/packages/presentation/src/components/DrawingBoardToolbar.svelte @@ -351,9 +351,9 @@ bottom: 100%; &.inside { - left: 0.5rem; + inset-inline-start: 0.5rem; top: 0.5rem; - right: auto; + inset-inline-end: auto; bottom: unset; display: inline-flex; flex-wrap: wrap; @@ -393,7 +393,7 @@ .tool-indicator { position: absolute; bottom: -0.125rem; - right: -0.125rem; + inset-inline-end: -0.125rem; width: 0; height: 0; border-style: solid; diff --git a/packages/presentation/src/components/Image.svelte b/packages/presentation/src/components/Image.svelte index 558fbac9b42..dcbf9e5dce8 100644 --- a/packages/presentation/src/components/Image.svelte +++ b/packages/presentation/src/components/Image.svelte @@ -84,7 +84,7 @@ border-radius: inherit; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; display: flex; diff --git a/packages/presentation/src/components/PluginConfigurationCard.svelte b/packages/presentation/src/components/PluginConfigurationCard.svelte index 90064da9a0b..b5844c86fd9 100644 --- a/packages/presentation/src/components/PluginConfigurationCard.svelte +++ b/packages/presentation/src/components/PluginConfigurationCard.svelte @@ -142,6 +142,6 @@ opacity: 0.75; font-size: 0.8125rem; line-height: 1.4; - padding-left: calc(1.25rem + 0.625rem); + padding-inline-start: calc(1.25rem + 0.625rem); } diff --git a/packages/presentation/src/components/SearchResult.svelte b/packages/presentation/src/components/SearchResult.svelte index 7536c2a1ccc..f8a39f3d1eb 100644 --- a/packages/presentation/src/components/SearchResult.svelte +++ b/packages/presentation/src/components/SearchResult.svelte @@ -95,7 +95,7 @@ .shortTitle { display: flex; - padding-right: 0.5rem; + padding-inline-end: 0.5rem; color: var(--theme-darker-color); } .name { @@ -104,7 +104,7 @@ } .description { - padding-left: 0.5rem; + padding-inline-start: 0.5rem; color: var(--global-secondary-TextColor); } } diff --git a/packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Bold.woff2 b/packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..08e2028e2971a41251f29046cdc15ccd229487a6 GIT binary patch literal 73788 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

YM>Q>x(0(E4EWPiBVT=oOXc2O{}`hq=* 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ɩu8GJwoB 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

&%@yy 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�ie8%Z`MZ&-^aYb0H0iR2?S2xpw+LH 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 literal 0 HcmV?d00001 diff --git a/packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Medium.woff2 b/packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ced3646c77cdd8a054e0647ff46dc533e5419fa9 GIT binary patch literal 75936 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 literal 0 HcmV?d00001 diff --git a/packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Regular.woff2 b/packages/theme/fonts/arabic/woff2/IBMPlexSansArabic-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..695d303cc25104463a86fa0b42bad47b27d187bf GIT binary patch literal 71904 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ŕ$)IEG- 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

qmD`;j}Z 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∓I_+R?I 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 const currentEmoji = writable(getCurrentEmoji()) + // Languages whose UI should render right-to-left. + const rtlLanguages = new Set(['ar', 'he', 'fa', 'ur']) + const isRtlLanguage = (language: string): boolean => rtlLanguages.has((language ?? '').split(/[-_]/)[0]) + const setOptions = (currentFont: string, theme: string, language: string, emoji: string) => { themeOptions.set(new ThemeOptions(currentFont === 'normal-font' ? 16 : 14, isThemeDark(theme), language, emoji)) } @@ -70,6 +74,7 @@ setMetadata(platform.metadata.locale, $currentLanguage) await loadPluginStrings($currentLanguage, set) setOptions(getCurrentFontSize(), getCurrentTheme(), language, getCurrentEmoji()) + setDocumentLanguage() } const setEmoji = (emoji: string, set = true) => { currentEmoji.set(emoji) @@ -124,6 +129,7 @@ const setDocumentLanguage = (): void => { document.documentElement.lang = $currentLanguage + document.documentElement.dir = isRtlLanguage($currentLanguage) ? 'rtl' : 'ltr' } onMount(() => { diff --git a/packages/theme/styles/_layouts.scss b/packages/theme/styles/_layouts.scss index 90f3929ae41..07fdb45dcca 100644 --- a/packages/theme/styles/_layouts.scss +++ b/packages/theme/styles/_layouts.scss @@ -181,11 +181,11 @@ a.noBold { .float-left-box { box-sizing: border-box; width: 100%; - float: left; + float: inline-start; } .float-left { - float: left; + float: inline-start; } input.search { @@ -333,15 +333,15 @@ input.search { background-color: var(--avatar-bg-color); border-radius: 50%; } - &:not(.small-gap, .large-gap) { margin-right: .375rem; } - &.no-gap { margin-right: 0; } - &.small-gap { margin-right: .25rem; } - &.large-gap { margin-right: .5rem; } - &.flow:last-child { margin-right: 0; } + &:not(.small-gap, .large-gap) { margin-inline-end: .375rem; } + &.no-gap { margin-inline-end: 0; } + &.small-gap { margin-inline-end: .25rem; } + &.large-gap { margin-inline-end: .5rem; } + &.flow:last-child { margin-inline-end: 0; } } .label { min-width: 0; - text-align: left; + text-align: start; color: var(--theme-content-color); overflow: hidden; @@ -362,7 +362,7 @@ input.search { } .action { visibility: hidden; - margin-left: .75rem; + margin-inline-start: .75rem; } &:hover { .icon { @@ -439,8 +439,8 @@ input.search { flex-wrap: wrap; min-width: 0; - & > * { margin-right: 0.25rem; } - & > *:last-child { margin-right: 0; } + & > * { margin-inline-end: 0.25rem; } + & > *:last-child { margin-inline-end: 0; } .bold { font-weight: 500; @@ -450,30 +450,30 @@ input.search { } .gap-1, .gap-1-5 { - & > *:not(:last-child) { margin-right: .25rem; } + & > *:not(:last-child) { margin-inline-end: .25rem; } &.reverse { flex-direction: row-reverse; - & > :last-child { margin-right: .25rem; } - & > :first-child { margin-right: 0; } + & > :last-child { margin-inline-end: .25rem; } + & > :first-child { margin-inline-end: 0; } } } .gapV-1 > *:not(:last-child) { margin-bottom: .25rem; } .gap-1-5 { - &:not(.reverse) > *:not(:last-child) { margin-right: .375rem; } - &.reverse > *:not(:first-child) { margin-left: .375rem; } + &:not(.reverse) > *:not(:last-child) { margin-inline-end: .375rem; } + &.reverse > *:not(:first-child) { margin-inline-start: .375rem; } } .gap-2 { - &:not(.reverse) > *:not(:first-child) { margin-left: .5rem; } - &.reverse > *:not(:last-child) { margin-right: .5rem; } + &:not(.reverse) > *:not(:first-child) { margin-inline-start: .5rem; } + &.reverse > *:not(:last-child) { margin-inline-end: .5rem; } } .gapV-2 > *:not(:last-child) { margin-bottom: .5rem; } .gap-3 { - &:not(.reverse) > *:not(:first-child) { margin-left: .75rem; } - &.reverse > *:not(:last-child) { margin-right: .75rem; } + &:not(.reverse) > *:not(:first-child) { margin-inline-start: .75rem; } + &.reverse > *:not(:last-child) { margin-inline-end: .75rem; } } .gap-4 { - &:not(.reverse) > *:not(:first-child) { margin-left: 1rem; } - &.reverse > *:not(:last-child) { margin-right: 1rem; } + &:not(.reverse) > *:not(:first-child) { margin-inline-start: 1rem; } + &.reverse > *:not(:last-child) { margin-inline-end: 1rem; } } .gapV-4 > *:not(:last-child) { margin-bottom: 1rem; } .gapV-6 > *:not(:last-child) { margin-bottom: 1.5rem; } @@ -494,7 +494,7 @@ input.search { cursor: pointer; .icon { - margin-right: .375rem; + margin-inline-end: .375rem; color: var(--theme-content-color); &.small-size { width: 1.5rem; @@ -506,33 +506,33 @@ input.search { } /* Margins & Paddings */ -.ml-0 { margin-left: 0 !important; } -.ml-0-5 { margin-left: .125rem; } -.ml-1 { margin-left: .25rem; } -.ml-1-5 { margin-left: .375rem; } -.ml-2 { margin-left: .5rem; } -.ml-3 { margin-left: .75rem; } -.ml-4 { margin-left: 1rem; } -.ml-5-5 { margin-left: 1.375rem; } -.ml-6 { margin-left: 1.5rem; } -.ml-8 { margin-left: 2rem; } -.ml-10 { margin-left: 2.5rem; } -.ml-12 { margin-left: 3rem; } -.ml-14 { margin-left: 3.5rem; } -.ml-22 { margin-left: 5.5rem; } -.ml-auto { margin-left: auto; } -.mr-0-5 { margin-right: .125rem; } -.mr-1 { margin-right: .25rem; } -.mr-1-5 { margin-right: .375rem; } -.mr-2 { margin-right: .5rem; } -.mr-2-5 { margin-right: .625rem; } -.mr-3 { margin-right: .75rem; } -.mr-4 { margin-right: 1rem; } -.mr-5-5 { margin-right: 1.375rem; } -.mr-6 { margin-right: 1.5rem; } -.mr-8 { margin-right: 2rem; } -.mr-10 { margin-right: 2.5rem; } -.mr-32 { margin-right: 8rem } +.ml-0 { margin-inline-start: 0 !important; } +.ml-0-5 { margin-inline-start: .125rem; } +.ml-1 { margin-inline-start: .25rem; } +.ml-1-5 { margin-inline-start: .375rem; } +.ml-2 { margin-inline-start: .5rem; } +.ml-3 { margin-inline-start: .75rem; } +.ml-4 { margin-inline-start: 1rem; } +.ml-5-5 { margin-inline-start: 1.375rem; } +.ml-6 { margin-inline-start: 1.5rem; } +.ml-8 { margin-inline-start: 2rem; } +.ml-10 { margin-inline-start: 2.5rem; } +.ml-12 { margin-inline-start: 3rem; } +.ml-14 { margin-inline-start: 3.5rem; } +.ml-22 { margin-inline-start: 5.5rem; } +.ml-auto { margin-inline-start: auto; } +.mr-0-5 { margin-inline-end: .125rem; } +.mr-1 { margin-inline-end: .25rem; } +.mr-1-5 { margin-inline-end: .375rem; } +.mr-2 { margin-inline-end: .5rem; } +.mr-2-5 { margin-inline-end: .625rem; } +.mr-3 { margin-inline-end: .75rem; } +.mr-4 { margin-inline-end: 1rem; } +.mr-5-5 { margin-inline-end: 1.375rem; } +.mr-6 { margin-inline-end: 1.5rem; } +.mr-8 { margin-inline-end: 2rem; } +.mr-10 { margin-inline-end: 2.5rem; } +.mr-32 { margin-inline-end: 8rem } .mt--1 { margin-top: -.25rem; } .mt-0-5 { margin-top: .125rem; } .mt-1 { margin-top: .25rem; } @@ -576,25 +576,25 @@ input.search { .m-3 { margin: .75rem; } .m-4 { margin: 1rem; } -.pl-0-5 { padding-left: .125rem; } -.pl-1 { padding-left: .25rem; } -.pl-2 { padding-left: .5rem; } -.pl-3 { padding-left: .75rem; } -.pl-4 { padding-left: 1rem; } -.pl-5-5 { padding-left: 1.375rem; } -.pl-6 { padding-left: 1.5rem; } -.pl-7 { padding-left: 1.75rem; } -.pl-8 { padding-left: 2rem; } -.pl-9 { padding-left: 2.25rem; } -.pl-10 { padding-left: 2.5rem; } -.pl-12 { padding-left: 3rem; } -.pr-1 { padding-right: .25rem; } -.pr-2 { padding-right: .5rem; } -.pr-3 { padding-right: .75rem; } -.pr-4 { padding-right: 1rem; } -.pr-6 { padding-right: 1.5rem; } -.pr-8 { padding-right: 2rem; } -.pr-24 { padding-right: 6rem; } +.pl-0-5 { padding-inline-start: .125rem; } +.pl-1 { padding-inline-start: .25rem; } +.pl-2 { padding-inline-start: .5rem; } +.pl-3 { padding-inline-start: .75rem; } +.pl-4 { padding-inline-start: 1rem; } +.pl-5-5 { padding-inline-start: 1.375rem; } +.pl-6 { padding-inline-start: 1.5rem; } +.pl-7 { padding-inline-start: 1.75rem; } +.pl-8 { padding-inline-start: 2rem; } +.pl-9 { padding-inline-start: 2.25rem; } +.pl-10 { padding-inline-start: 2.5rem; } +.pl-12 { padding-inline-start: 3rem; } +.pr-1 { padding-inline-end: .25rem; } +.pr-2 { padding-inline-end: .5rem; } +.pr-3 { padding-inline-end: .75rem; } +.pr-4 { padding-inline-end: 1rem; } +.pr-6 { padding-inline-end: 1.5rem; } +.pr-8 { padding-inline-end: 2rem; } +.pr-24 { padding-inline-end: 6rem; } .pt-1 { padding-top: .25rem; } .pt-2 { padding-top: .5rem; } .pt-3 { padding-top: .75rem; } @@ -633,8 +633,8 @@ input.search { .p-text { padding: .125rem .25rem; } .p-text-2 { padding: .25rem .5rem; } -.step-lr25 + .step-lr25 { margin-left: .25rem; } -.step-lr75 + .step-lr75 { margin-left: .75rem; } +.step-lr25 + .step-lr25 { margin-inline-start: .25rem; } +.step-lr75 + .step-lr75 { margin-inline-start: .75rem; } .step-tb125 + .step-tb125 { margin-top: .125rem; } .step-tb25 + .step-tb25 { margin-top: .25rem; } .step-tb375 + .step-tb375 { margin-top: .375rem; } @@ -650,7 +650,7 @@ input.search { content: ''; position: absolute; top: -.25rem; - left: 0; + inset-inline-start: 0; width: 100%; height: 1px; background-color: var(--popup-bg-hover); @@ -664,29 +664,29 @@ input.search { .abs-lt-content { position: absolute; top: var(--modal-padding); - left: var(--modal-padding); + inset-inline-start: var(--modal-padding); } .abs-rt-content { position: absolute; top: var(--modal-padding); - right: var(--modal-padding); + inset-inline-end: var(--modal-padding); } .abs-lb-content { position: absolute; bottom: var(--modal-padding); - left: var(--modal-padding); + inset-inline-start: var(--modal-padding); } .abs-rb-content { position: absolute; bottom: var(--modal-padding); - right: var(--modal-padding); + inset-inline-end: var(--modal-padding); } .abs-full-content { position: absolute; top: 0; bottom: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; } .vScroll { @@ -914,8 +914,8 @@ a.no-line { .fs-bold { font-weight: 500; } .uppercase { text-transform: uppercase; } .lower { text-transform: lowercase; } -.text-left { text-align: left; } -.text-right { text-align: right !important; } +.text-left { text-align: start; } +.text-right { text-align: end !important; } .text-center { text-align: center; } .leading-16px { line-height: 16px; } .leading-3 { line-height: .75rem; } @@ -1067,9 +1067,9 @@ a.no-line { .border-radius-3 { border-radius: 0.75rem; } .border-radius-2 { border-radius: 0.5rem; } .border-radius-1 { border-radius: 0.25rem; } -.border-radius-left-1 { border-top-left-radius: 0.25rem; border-bottom-left-radius: 0.25rem; } -.border-radius-right-1 { border-top-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem; } -.border-radius-top-1 { border-top-right-radius: 0.25rem; border-top-left-radius: 0.25rem; } +.border-radius-left-1 { border-start-start-radius: 0.25rem; border-end-start-radius: 0.25rem; } +.border-radius-right-1 { border-start-end-radius: 0.25rem; border-end-end-radius: 0.25rem; } +.border-radius-top-1 { border-start-end-radius: 0.25rem; border-start-start-radius: 0.25rem; } .border-divider-color {border: 1px solid var(--theme-divider-color);} .border-primary-button { border-color: var(--primary-button-border); } @@ -1078,9 +1078,9 @@ a.no-line { .top-divider { border-top: 1px solid var(--theme-divider-color); } .bottom-divider { border-bottom: 1px solid var(--theme-divider-color); } -.left-divider { border-left: 1px solid var(--theme-divider-color); } -.right-divider { border-right: 1px solid var(--theme-divider-color); } -.right-navpanel-border { border-right: 1px solid var(--theme-navpanel-border); } +.left-divider { border-inline-start: 1px solid var(--theme-divider-color); } +.right-divider { border-inline-end: 1px solid var(--theme-divider-color); } +.right-navpanel-border { border-inline-end: 1px solid var(--theme-navpanel-border); } .bottom-highlight-select { border-bottom: 1px solid var(--highlight-select); } diff --git a/packages/theme/styles/_rtl.scss b/packages/theme/styles/_rtl.scss new file mode 100644 index 00000000000..b90c32945dc --- /dev/null +++ b/packages/theme/styles/_rtl.scss @@ -0,0 +1,33 @@ +// +// Right-to-left (RTL) adjustments. +// +// The bulk of mirroring is achieved by (a) `document.documentElement.dir = 'rtl'` +// (set in Theme.svelte for RTL languages) which flips all flex/grid/inline flow, +// and (b) the logical-property codemod (scripts/rtl-codemod.mjs) which rewrites +// margins, paddings, borders, offsets, text-align and float to inline-logical +// equivalents. This file covers only the things those two cannot express: +// directional glyphs and a few hard physical cases. +// + +// Generic helper — add `class="flip-rtl"` to any horizontally-directional glyph +// (custom arrows, carets) that must point the other way under RTL. +[dir='rtl'] { + .flip-rtl { + transform: scaleX(-1); + } + + // Box shadows that intentionally fall to one side don't auto-mirror; most of + // Huly's shadows are symmetric, so nothing to do here by default. Add specific + // overrides if a one-sided shadow looks wrong under RTL. + + // Keep code / pre / mono content left-to-right even inside an RTL document + // (source code and identifiers read LTR regardless of UI direction). + pre, + code, + .mono-font, + .embedded-monospace { + direction: ltr; + text-align: start; + unicode-bidi: embed; + } +} diff --git a/packages/theme/styles/_text-editor.scss b/packages/theme/styles/_text-editor.scss index b88609646a7..92c7f8bcf05 100644 --- a/packages/theme/styles/_text-editor.scss +++ b/packages/theme/styles/_text-editor.scss @@ -20,7 +20,7 @@ } .suggestion { - padding-left: 0.25rem; + padding-inline-start: 0.25rem; color: var(--theme-link-color); background-color: var(--theme-mention-bg-color); border-radius: .25rem; @@ -100,14 +100,14 @@ ol { margin-top: 0.5rem; margin-bottom: 0.5rem; - margin-right: .25rem; - margin-left: .75rem; + margin-inline-end: .25rem; + margin-inline-start: .75rem; padding: 0; } li { - margin-left: 0.75rem; - padding-left: 0.375rem; + margin-inline-start: 0.75rem; + padding-inline-start: 0.375rem; } ul>li:not(.todo-item)::before { @@ -115,7 +115,7 @@ font-size: 1.5rem; display: inline-block; position: absolute; - left: -1rem; + inset-inline-start: -1rem; font-family: Arial, Helvetica, sans-serif; } @@ -136,19 +136,19 @@ ul>li.todo-item, ol>li.todo-item { list-style: none; - margin-left: -2.25rem; - padding-left: 0; + margin-inline-start: -2.25rem; + padding-inline-start: 0; } ul.todo-list { list-style: none; - margin-left: 0; + margin-inline-start: 0; } ul.todo-list>li.todo-item { margin: 0; padding: 0; - margin-left: -1.5rem; + margin-inline-start: -1.5rem; } ol ol { @@ -178,7 +178,7 @@ /* Placeholder (at the top) */ p.is-editor-empty:first-child::before { content: attr(data-placeholder); - float: left; + float: inline-start; color: var(--theme-text-placeholder-color); pointer-events: none; height: 0; @@ -217,10 +217,10 @@ /* Give a remote user a caret */ .collaboration-cursor { - border-left: 1px solid transparent; - border-right: 1px solid transparent; - margin-left: -1px; - margin-right: -1px; + border-inline-start: 1px solid transparent; + border-inline-end: 1px solid transparent; + margin-inline-start: -1px; + margin-inline-end: -1px; position: relative; word-break: normal; cursor: text; @@ -233,7 +233,7 @@ height: 110%; width: 8px; top: -2px; - left: -4px; + inset-inline-start: -4px; position: absolute; &::after { @@ -243,8 +243,8 @@ border-style: solid; width: 0; height: 0; - border-left: 4px solid transparent; - border-right: 4px solid transparent; + border-inline-start: 4px solid transparent; + border-inline-end: 4px solid transparent; border-top-width: 4px; border-bottom: 0; } @@ -425,7 +425,7 @@ } .text-editor-note-marker { - padding-left: 0.25rem; + padding-inline-start: 0.25rem; color: transparent; background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%20id%3D%22note%22%3E%3Crect%20width%3D%22256%22%20height%3D%22256%22%20fill%3D%22none%22%3E%3C%2Frect%3E%3Cline%20x1%3D%2296%22%20x2%3D%22160%22%20y1%3D%2296%22%20y2%3D%2296%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2296%22%20x2%3D%22160%22%20y1%3D%22128%22%20y2%3D%22128%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2296%22%20x2%3D%22128%22%20y1%3D%22160%22%20y2%3D%22160%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%3E%3C%2Fline%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%20d%3D%22M156.68629%2C216H48a8%2C8%2C0%2C0%2C1-8-8V48a8%2C8%2C0%2C0%2C1%2C8-8H208a8%2C8%2C0%2C0%2C1%2C8%2C8V156.68629a8%2C8%2C0%2C0%2C1-2.34315%2C5.65686l-51.3137%2C51.3137A8%2C8%2C0%2C0%2C1%2C156.68629%2C216Z%22%3E%3C%2Fpath%3E%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%20points%3D%22215.277%20159.992%20160%20159.992%20160%20215.272%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; @@ -501,7 +501,7 @@ .text-editor-lint-icon { display: inline-block; position: absolute; - right: 2px; + inset-inline-end: 2px; cursor: pointer; border-radius: 100px; // background: #f22; @@ -512,7 +512,7 @@ width: 0.7em; height: 0.7em; text-align: center; - padding-left: 0.5px; + padding-inline-start: 0.5px; line-height: 1.1em; &.add { @@ -534,7 +534,7 @@ display: block; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; cursor: pointer; @@ -579,7 +579,7 @@ vertical-align: sub; margin-bottom: 1px; width: .875rem; - margin-right: 0.25rem; + margin-inline-end: 0.25rem; } } } diff --git a/packages/theme/styles/button.scss b/packages/theme/styles/button.scss index 1a39f047cc3..53e13d3fc27 100644 --- a/packages/theme/styles/button.scss +++ b/packages/theme/styles/button.scss @@ -184,7 +184,7 @@ content: ''; position: absolute; top: 0; - left: -100%; + inset-inline-start: -100%; width: 100%; height: 100%; background: var(--theme-button-attention-shine); @@ -197,7 +197,7 @@ transform: translateY(-2px); box-shadow: var(--theme-button-attention-hover-shadow); - &::before { left: 100%; } + &::before { inset-inline-start: 100%; } } &:not(.disabled, :disabled):active, @@ -364,15 +364,15 @@ pointer-events: none; } .btn-right-icon { - margin-left: .5rem; + margin-inline-start: .5rem; color: var(--theme-halfcontent-color); transition: color .15s; pointer-events: none; } - &.gap-large:not(.only-icon, .gap-medium) .btn-icon:not(.spinner) { margin-right: .5rem; } - &.gap-large:not(.only-icon, .gap-medium) .btn-right-icon { margin-left: .5rem; } - &.gap-medium:not(.only-icon, .gap-large) .btn-icon:not(.spinner) { margin-right: .375rem; } - &.gap-medium:not(.only-icon, .gap-large) .btn-right-icon { margin-left: .375rem; } + &.gap-large:not(.only-icon, .gap-medium) .btn-icon:not(.spinner) { margin-inline-end: .5rem; } + &.gap-large:not(.only-icon, .gap-medium) .btn-right-icon { margin-inline-start: .5rem; } + &.gap-medium:not(.only-icon, .gap-large) .btn-icon:not(.spinner) { margin-inline-end: .375rem; } + &.gap-medium:not(.only-icon, .gap-large) .btn-right-icon { margin-inline-start: .375rem; } &.short { max-width: 8.5rem; } &.accent { font-weight: 500; } @@ -382,12 +382,12 @@ &.sh-round2 { border-radius: .75rem; } &.sh-circle { border-radius: 1rem; } &.sh-rectangle-right { - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; + border-start-start-radius: .25rem; + border-end-start-radius: .25rem; } &.sh-rectangle-left { - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; + border-start-end-radius: .25rem; + border-end-end-radius: .25rem; } &.sh-filter { border-radius: 0 0 .5rem .5rem; } @@ -607,7 +607,7 @@ content: ''; position: absolute; top: 0; - left: -100%; + inset-inline-start: -100%; width: 100%; height: 100%; background: var(--theme-button-attention-shine); @@ -620,7 +620,7 @@ transform: translateY(-2px); box-shadow: var(--theme-button-attention-hover-shadow); - &::before { left: 100%; } + &::before { inset-inline-start: 100%; } } &:active, @@ -814,12 +814,12 @@ border-radius: var(--medium-BorderRadius); button:first-child { - border-top-left-radius: var(--medium-BorderRadius); - border-bottom-left-radius: var(--medium-BorderRadius); + border-start-start-radius: var(--medium-BorderRadius); + border-end-start-radius: var(--medium-BorderRadius); } button:last-child { - border-top-right-radius: var(--medium-BorderRadius); - border-bottom-right-radius: var(--medium-BorderRadius); + border-start-end-radius: var(--medium-BorderRadius); + border-end-end-radius: var(--medium-BorderRadius); } } &.small { @@ -830,12 +830,12 @@ font-size: .8125rem; } button:first-child { - border-top-left-radius: var(--small-BorderRadius); - border-bottom-left-radius: var(--small-BorderRadius); + border-start-start-radius: var(--small-BorderRadius); + border-end-start-radius: var(--small-BorderRadius); } button:last-child { - border-top-right-radius: var(--small-BorderRadius); - border-bottom-right-radius: var(--small-BorderRadius); + border-start-end-radius: var(--small-BorderRadius); + border-end-end-radius: var(--small-BorderRadius); } button .btn-icon { width: var(--spacing-2); @@ -856,12 +856,12 @@ border-radius: var(--extra-small-BorderRadius); button:first-child { - border-top-left-radius: var(--extra-small-BorderRadius); - border-bottom-left-radius: var(--extra-small-BorderRadius); + border-start-start-radius: var(--extra-small-BorderRadius); + border-end-start-radius: var(--extra-small-BorderRadius); } button:last-child { - border-top-right-radius: var(--extra-small-BorderRadius); - border-bottom-right-radius: var(--extra-small-BorderRadius); + border-start-end-radius: var(--extra-small-BorderRadius); + border-end-end-radius: var(--extra-small-BorderRadius); } button .btn-icon { width: var(--spacing-1_5); @@ -879,12 +879,12 @@ border-radius: var(--min-BorderRadius); button:first-child { - border-top-left-radius: var(--min-BorderRadius); - border-bottom-left-radius: var(--min-BorderRadius); + border-start-start-radius: var(--min-BorderRadius); + border-end-start-radius: var(--min-BorderRadius); } button:last-child { - border-top-right-radius: var(--min-BorderRadius); - border-bottom-right-radius: var(--min-BorderRadius); + border-start-end-radius: var(--min-BorderRadius); + border-end-end-radius: var(--min-BorderRadius); } button { font-size: .75rem; @@ -1002,7 +1002,7 @@ position: absolute; content: ''; top: 20%; - left: -0.5px; + inset-inline-start: -0.5px; width: 1px; height: 60%; opacity: 0.2; diff --git a/packages/theme/styles/common.scss b/packages/theme/styles/common.scss index b74aacad056..5aae8229a46 100644 --- a/packages/theme/styles/common.scss +++ b/packages/theme/styles/common.scss @@ -114,7 +114,7 @@ min-width: var(--app-panel-width); width: var(--app-panel-width); height: 100%; - border-right: 1px solid var(--theme-navpanel-divider); + border-inline-end: 1px solid var(--theme-navpanel-divider); } &.horizonatl { min-height: var(--app-panel-width); @@ -136,8 +136,8 @@ &.header { background-color: var(--theme-comp-header-color); } &.filled { background-color: var(--theme-bg-color); } &.filledNav { background-color: var(--theme-navpanel-color) !important; } - &.border-left { border-left: 1px solid var(--theme-divider-color); } - &.border-right { border-right: 1px solid var(--theme-divider-color); } + &.border-left { border-inline-start: 1px solid var(--theme-divider-color); } + &.border-right { border-inline-end: 1px solid var(--theme-divider-color); } } .antiPanel-navigator { position: relative; @@ -155,16 +155,16 @@ position: fixed; top: calc(var(--status-bar-height) + 3.5rem + 1px); height: calc(100% - var(--status-bar-height) - 3.5rem - 2px); - border-left: 1px solid var(--theme-divider-color); + border-inline-start: 1px solid var(--theme-divider-color); - &.portrait { left: 0; } - &.landscape { left: var(--app-panel-width); } + &.portrait { inset-inline-start: 0; } + &.landscape { inset-inline-start: var(--app-panel-width); } } &.inner { position: absolute; top: 3.5rem; - left: 0; + inset-inline-start: 0; height: calc(100% - 3.5rem); } } @@ -177,8 +177,8 @@ z-index: 450; filter: drop-shadow(2px 0 5px rgba(0, 0, 0, .2)); - &.portrait { left: 0; } - &.landscape { left: var(--app-panel-width); } + &.portrait { inset-inline-start: 0; } + &.landscape { inset-inline-start: var(--app-panel-width); } } } @@ -264,7 +264,7 @@ .an-element__icon { flex-shrink: 0; - margin-right: .5rem; + margin-inline-end: .5rem; color: var(--theme-dark-color); &.folder { @@ -314,10 +314,10 @@ } &:not(.arrow) { display: none; - margin-left: .5rem; + margin-inline-start: .5rem; color: var(--theme-dark-color); - & + & { margin-left: .125rem; } + & + & { margin-inline-start: .125rem; } } &:hover, &.pressed { color: var(--theme-caption-color); } @@ -329,16 +329,16 @@ min-width: 0; } - &.indent:not(.tree, .parent) { padding-left: 2.5rem; } + &.indent:not(.tree, .parent) { padding-inline-start: 2.5rem; } &:not(.tree) { .an-element__tool.arrow { - margin-left: .25rem; + margin-inline-start: .25rem; // background-color: transparent !important; } } &.tree { - .an-element__icon { margin-right: .375rem; } - .an-element__tool.arrow { margin-right: .125rem; } + .an-element__icon { margin-inline-end: .375rem; } + .an-element__tool.arrow { margin-inline-end: .125rem; } .an-element__tool.arrow.empty { background-color: transparent !important; } } @@ -356,7 +356,7 @@ &.collapsed .an-element__tool.arrow > * { transform: rotate(-90deg); } .an-element__counter { - margin-left: .75rem; + margin-inline-start: .75rem; font-weight: 600; font-size: .75rem; color: var(--theme-content-color); @@ -412,7 +412,7 @@ min-width: 0; min-height: 0; - &:not(:last-child) { margin-right: 12px; } + &:not(:last-child) { margin-inline-end: 12px; } .label { margin-top: .5rem; @@ -444,7 +444,7 @@ &__header { width: 15rem; - padding-right: 1rem; + padding-inline-end: 1rem; color: var(--theme-caption-color); &.withDesciption { @@ -487,7 +487,7 @@ .icon-wrapper, &.icon-wrapper { align-items: center; } .wrapped-icon, &.wrapped-icon { - margin-right: .75rem; + margin-inline-end: .75rem; color: var(--theme-content-color); } .wrapped-title, &.wrapped-title { @@ -612,7 +612,7 @@ border-bottom: 1px solid var(--theme-divider-color); &.high { - padding-right: 1rem; + padding-inline-end: 1rem; height: 3.5rem; min-height: 3.5rem; } @@ -623,7 +623,7 @@ display: flex; justify-content: center; align-items: center; - margin-right: .5rem; + margin-inline-end: .5rem; height: 2rem; color: var(--theme-caption-color); } @@ -663,7 +663,7 @@ border-radius: .25rem; .tag-icon { - margin-left: .5rem; + margin-inline-start: .5rem; width: 1rem; height: 1rem; color: var(--theme-content-color); @@ -673,7 +673,7 @@ &.highlight { color: var(--theme-content-color); } } - &__tag + &__tag { margin-left: .375rem; } + &__tag + &__tag { margin-inline-start: .375rem; } } .invisible { display: none; } &-empty { @@ -839,20 +839,20 @@ } &:first-child { - border-top-left-radius: .75rem; - border-top-right-radius: .75rem; + border-start-start-radius: .75rem; + border-start-end-radius: .75rem; } &:first-child .caption { - border-top-left-radius: .65rem; - border-top-right-radius: .65rem; + border-start-start-radius: .65rem; + border-start-end-radius: .65rem; } &:last-child { - border-bottom-left-radius: .75rem; - border-bottom-right-radius: .75rem; + border-end-start-radius: .75rem; + border-end-end-radius: .75rem; } &:last-child.closed .caption { - border-bottom-left-radius: .65rem; - border-bottom-right-radius: .65rem; + border-end-start-radius: .65rem; + border-end-end-radius: .65rem; } &:last-child:not(:first-child), &:not(:first-child):not(:last-child) { border-top: none; } diff --git a/packages/theme/styles/components.scss b/packages/theme/styles/components.scss index 31f2e487b38..f013c719788 100644 --- a/packages/theme/styles/components.scss +++ b/packages/theme/styles/components.scss @@ -33,11 +33,11 @@ background-color: var(--theme-comp-header-color); // var(--global-surface-02-BackgroundColor); } &.beforeAside { - border-right: none; + border-inline-end: none; border-radius: var(--small-focus-BorderRadius) 0 0 var(--small-focus-BorderRadius); } &.aside { - border-left: none; + border-inline-start: none; border-radius: 0 var(--small-focus-BorderRadius) var(--small-focus-BorderRadius) 0; } } @@ -183,7 +183,7 @@ .ava-text::after { position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; } .icon { width: 100%; @@ -285,7 +285,7 @@ /* Avatar status marker */ .hulyAvatar-statusMarker { position: absolute; - right: -4%; + inset-inline-end: -4%; bottom: -4%; width: 39%; aspect-ratio: 1; @@ -302,7 +302,7 @@ &.smaller, &.small, &.medium { - right: 0; + inset-inline-end: 0; bottom: 0; } .small-font &.xx-small { width: 3px; } @@ -328,17 +328,17 @@ width: 11px; &.modern { width: 12px; - right: 0px; + inset-inline-end: 0px; bottom: 0px; } } &.large { - right: -.125rem; + inset-inline-end: -.125rem; bottom: -.125rem; width: 36.5%; .small-font & { - right: -2px; + inset-inline-end: -2px; bottom: -2px; width: 37%; } @@ -359,15 +359,15 @@ align-items: center; .hulyCombineAvatar { - &.inline:not(:first-child) { margin-left: calc(1px - (0.875rem / 2)); } - &.tiny:not(:first-child) { margin-left: calc(1px - (1.13rem / 2)); } - &.card:not(:first-child) { margin-left: calc(1px - (1.25rem / 2)); } - &.x-small:not(:first-child) { margin-left: calc(1px - (1.5rem / 2)); } - &.smaller:not(:first-child) { margin-left: calc(1px - (1.75rem / 2)); } - &.small:not(:first-child) { margin-left: calc(1px - 1rem); } - &.medium:not(:first-child) { margin-left: calc(1px - (2.25rem / 2)); } - &.large:not(:first-child) { margin-left: calc(1px - (4.5rem / 2)); } - &.x-large:not(:first-child) { margin-left: calc(1px - (7.5rem / 2)); } + &.inline:not(:first-child) { margin-inline-start: calc(1px - (0.875rem / 2)); } + &.tiny:not(:first-child) { margin-inline-start: calc(1px - (1.13rem / 2)); } + &.card:not(:first-child) { margin-inline-start: calc(1px - (1.25rem / 2)); } + &.x-small:not(:first-child) { margin-inline-start: calc(1px - (1.5rem / 2)); } + &.smaller:not(:first-child) { margin-inline-start: calc(1px - (1.75rem / 2)); } + &.small:not(:first-child) { margin-inline-start: calc(1px - 1rem); } + &.medium:not(:first-child) { margin-inline-start: calc(1px - (2.25rem / 2)); } + &.large:not(:first-child) { margin-inline-start: calc(1px - (4.5rem / 2)); } + &.x-large:not(:first-child) { margin-inline-start: calc(1px - (7.5rem / 2)); } &.inline, &.tiny, @@ -392,7 +392,7 @@ content: attr(data-over); position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; color: var(--theme-caption-color); transform: translate(-53%, -52%); z-index: 2; @@ -401,7 +401,7 @@ content: ''; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; background-color: var(--theme-bg-color); @@ -510,7 +510,7 @@ &.extra { flex-shrink: 1; - margin-left: var(--spacing-2); + margin-inline-start: var(--spacing-2); &.overflow { overflow-x: auto; @@ -533,7 +533,7 @@ } } .hulyHeader-spaceFiller { flex: 1 1; } - .hulyHotKey-item { margin-right: .625rem; } + .hulyHotKey-item { margin-inline-end: .625rem; } &.doubleRow { flex-direction: column; @@ -543,11 +543,11 @@ .hulyHeader-row { min-height: var(--spacing-6_5); } .hulyHeader-buttonsGroup.search { flex-direction: row-reverse; } - .hulyHeader-buttonsGroup.actions { margin-left: 1rem; } + .hulyHeader-buttonsGroup.actions { margin-inline-start: 1rem; } } &:not(.doubleRow) { - .hulyHeader-buttonsGroup:not(.before) { margin-left: 1rem; } - .hulyHeader-buttonsGroup.search + .hulyHeader-divider + .hulyHeader-buttonsGroup.actions { margin-left: 0; } + .hulyHeader-buttonsGroup:not(.before) { margin-inline-start: 1rem; } + .hulyHeader-buttonsGroup.search + .hulyHeader-divider + .hulyHeader-buttonsGroup.actions { margin-inline-start: 0; } } } @@ -815,7 +815,7 @@ border: 1px solid transparent; } &.medium .hulyAccordionItem-header__chevron { - margin-right: var(--spacing-0_75); + margin-inline-end: var(--spacing-0_75); background-color: var(--global-ui-BackgroundColor); border: 1px solid var(--global-subtle-ui-BorderColor); } @@ -884,15 +884,15 @@ } } &.nested { - padding-left: var(--spacing-2); + padding-inline-start: var(--spacing-2); & + .hulyAccordionItem-content { - margin-left: var(--spacing-2); - margin-right: var(--spacing-2); + margin-inline-start: var(--spacing-2); + margin-inline-end: var(--spacing-2); } } .hulyAccordionItem-header__icon { - margin-right: var(--spacing-0_5); + margin-inline-end: var(--spacing-0_5); width: var(--global-extra-small-Size); height: var(--global-extra-small-Size); border-radius: var(--extra-small-BorderRadius); @@ -912,7 +912,7 @@ border-radius: var(--small-BorderRadius); } .hulyAccordionItem-header__label { - margin-left: var(--spacing-0_5); + margin-inline-start: var(--spacing-0_5); color: var(--global-secondary-TextColor); } .hulyAccordionItem-header__counter { @@ -1038,14 +1038,14 @@ } .hulyToDoLine-statusPriority { position: relative; - margin-right: var(--spacing-0_25); + margin-inline-end: var(--spacing-0_25); min-width: var(--global-min-Size); &.isNew::after { position: absolute; content: ''; top: var(--spacing-1_25); - right: calc(-1 * var(--spacing-0_75)); + inset-inline-end: calc(-1 * var(--spacing-0_75)); width: var(--spacing-0_5); height: var(--spacing-0_5); background-color: var(--global-primary-LinkColor); @@ -1144,7 +1144,7 @@ &:not(.withoutBackground) { background-color: var(--theme-comp-header-color); } &.caption-height { min-height: 3.5rem; } - &.search-start { padding-left: var(--spacing-3); } + &.search-start { padding-inline-start: var(--spacing-3); } &.tabs-start { padding: 0 2.25rem; } &.short { display: flex; @@ -1158,11 +1158,11 @@ align-items: center; min-width: 0; - &:not(.small-gap, .medium-gap) > *:not(:last-child) { margin-right: 1.25rem; } - &.small-gap > *:not(:last-child) { margin-right: .75rem; } - &.medium-gap > *:not(:last-child) { margin-right: 1rem; } + &:not(.small-gap, .medium-gap) > *:not(:last-child) { margin-inline-end: 1.25rem; } + &.small-gap > *:not(:last-child) { margin-inline-end: .75rem; } + &.medium-gap > *:not(:last-child) { margin-inline-end: 1rem; } } - // &.withSettings { padding-right: .75rem; } + // &.withSettings { padding-inline-end: .75rem; } &.mini { display: flex; flex-direction: column; @@ -1188,7 +1188,7 @@ padding-bottom: 0; } &.header-without-label { - padding-left: 0; + padding-inline-start: 0; } } @@ -1207,7 +1207,7 @@ } .ac-header__icon { - margin-right: 0.5rem; + margin-inline-end: 0.5rem; color: var(--theme-content-color); } .ac-header__title { @@ -1223,7 +1223,7 @@ } .ac-header__counter { flex-shrink: 0; - margin-left: .25rem; + margin-inline-start: .25rem; min-width: 0; font-size: 1rem; color: var(--theme-darker-color); @@ -1327,7 +1327,7 @@ cursor: default; } } - .ac-tabs__tab + .ac-tabs__tab { margin-left: 2.5rem; } + .ac-tabs__tab + .ac-tabs__tab { margin-inline-start: 2.5rem; } &__empty { min-width: 2.5rem; @@ -1366,13 +1366,13 @@ min-width: 17rem; max-width: 30rem; height: 100%; - border-right: 1px solid var(--theme-divider-color); + border-inline-end: 1px solid var(--theme-divider-color); &.max { flex-grow: 1; min-width: 25rem; max-width: 100%; - border-right: none; + border-inline-end: none; } &__list-item { @@ -1453,11 +1453,11 @@ } &.gap-medium { - padding-left: 0.375rem; + padding-inline-start: 0.375rem; } &.gap-large { - padding-left: 0.5rem; + padding-inline-start: 0.5rem; } } @@ -1474,7 +1474,7 @@ position: absolute; border-radius: 50%; top: calc(-0.1875rem - 1px); - left: calc(-0.1875rem - 1px); + inset-inline-start: calc(-0.1875rem - 1px); width: 1.375rem; height: 1.375rem; border: 1px solid var(--primary-button-default); @@ -1483,7 +1483,7 @@ &::after { position: absolute; top: calc(0.25rem - 1px); - left: calc(0.25rem - 1px); + inset-inline-start: calc(0.25rem - 1px); width: 0.5rem; height: 0.5rem; background-color: var(--primary-button-color); @@ -1649,8 +1649,8 @@ justify-content: center; align-items: center; top: 0; - left: .5rem; - right: .5rem; + inset-inline-start: .5rem; + inset-inline-end: .5rem; min-width: 0; width: calc(100% - 1rem); height: 100%; @@ -1747,12 +1747,12 @@ th, td { padding: .5rem 1.5rem; - text-align: left; + text-align: start; &:first-child { .metaColumn { - padding-left: 0; } + padding-inline-start: 0; } } &:last-child { .metaColumn { - padding-right: 0; } + padding-inline-end: 0; } } } th { @@ -1771,7 +1771,7 @@ color: var(--theme-caption-color); .icon { - margin-left: .25rem; + margin-inline-start: .25rem; opacity: .6; } } @@ -1784,9 +1784,9 @@ } td { - &.align-left { text-align: left; } + &.align-left { text-align: start; } &.align-center { text-align: center; } - &.align-right { text-align: right; } + &.align-right { text-align: end; } &:has(.cropped-text-presenters, .cropped-text-presenter) { max-width: 50cqw; } } &:has(td:nth-child(4)) td:has(.cropped-text-presenters, .cropped-text-presenter) { max-width: 40cqw; } @@ -1807,8 +1807,8 @@ width: 2.5rem; z-index: 1; } - &:nth-child(2) { padding-left: 0; } - &:last-child { padding-right: 1.5rem; } + &:nth-child(2) { padding-inline-start: 0; } + &:last-child { padding-inline-end: 1.5rem; } } } @@ -1829,7 +1829,7 @@ &-menuRow { visibility: hidden; - margin-left: .5rem; + margin-inline-start: .5rem; opacity: .6; cursor: pointer; @@ -1904,9 +1904,9 @@ &:first-child { position: sticky; padding: 0; - left: 0; + inset-inline-start: 0; background-color: var(--theme-bg-color); - border-right: 1px solid transparent !important; + border-inline-end: 1px solid transparent !important; z-index: 1; } .fullfill { @@ -1916,7 +1916,7 @@ width: 100%; height: 100%; background-color: var(--theme-bg-color); - border-right: 1px solid var(--theme-divider-color); + border-inline-end: 1px solid var(--theme-divider-color); &.center { justify-content: center; } } @@ -2026,7 +2026,7 @@ display: flex; flex-direction: column; flex-wrap: nowrap; - margin-left: .75rem; + margin-inline-start: .75rem; min-height: 0; } } @@ -2047,13 +2047,13 @@ .tools { opacity: 0; } - &.leftPadding { padding-left: 0.625rem; } + &.leftPadding { padding-inline-start: 0.625rem; } &::before { position: absolute; top: 0; bottom: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; border: 1px solid var(--primary-button-default); border-radius: .5rem; z-index: -1; @@ -2083,12 +2083,12 @@ } &::before { top: -2px; - left: -4px; + inset-inline-start: -4px; clip-path: path('M0,6v-6h6v1h-5v5z'); } &::after { bottom: -2px; - right: -4px; + inset-inline-end: -4px; clip-path: path('M0,6h6v-6h-1v5h-5z'); } } @@ -2165,7 +2165,7 @@ .notify { position: absolute; top: 1rem; - left: -1.125rem; + inset-inline-start: -1.125rem; height: 0.5rem; width: 0.5rem; background-color: var(--theme-inbox-notify); @@ -2189,7 +2189,7 @@ &.float { position: absolute; top: .5625rem; - right: 0; + inset-inline-end: 0; } &.people { color: var(--theme-inbox-people-notify); @@ -2199,7 +2199,7 @@ .arrow { position: absolute; top: 1.125rem; - right: 0; + inset-inline-end: 0; } &:last-child:not(.selected) { border-bottom: 1px solid var(--theme-inbox-activitymsg-divider); } @@ -2211,7 +2211,7 @@ border: 1px solid var(--theme-inbox-activitymsg-border); border-radius: 0.25rem; - .notify { left: .125rem; } + .notify { inset-inline-start: .125rem; } .inbox-activity__content { padding: 1rem 1.25rem; @@ -2220,9 +2220,9 @@ .counter { visibility: hidden; - &.float { right: 1.25rem; } + &.float { inset-inline-end: 1.25rem; } } - .arrow { right: 1.25rem; } + .arrow { inset-inline-end: 1.25rem; } } } } @@ -2243,7 +2243,7 @@ } .ap-label { min-width: 0; - text-align: left; + text-align: start; color: var(--theme-caption-color); &.colorInherit { color: inherit; } @@ -2267,10 +2267,10 @@ background-color: var(--theme-list-row-color); &.row { - border-left: 1px solid transparent; - border-right: 1px solid transparent; - // border-left: 1px solid var(--theme-list-border-color); - // border-right: 1px solid var(--theme-list-border-color); + border-inline-start: 1px solid transparent; + border-inline-end: 1px solid transparent; + // border-inline-start: 1px solid var(--theme-list-border-color); + // border-inline-end: 1px solid var(--theme-list-border-color); } &.row:not(.lastCat, .last) { border-bottom: 1px solid var(--theme-divider-color); @@ -2280,8 +2280,8 @@ // border-bottom: 1px solid var(--theme-list-subheader-divider); } &.row.lastCat { - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; + border-end-start-radius: 0.25rem; + border-end-end-radius: 0.25rem; border-bottom: 1px solid transparent; // border-bottom: 1px solid var(--theme-list-border-color); } @@ -2311,7 +2311,7 @@ .draggable-container { position: absolute; - left: 0; + inset-inline-start: 0; display: flex; align-items: center; height: 100%; @@ -2323,7 +2323,7 @@ flex-direction: column; justify-content: center; align-items: center; - margin-left: 0.125rem; + margin-inline-start: 0.125rem; width: 0.375rem; height: 100%; opacity: 0; @@ -2346,7 +2346,7 @@ } .hidden-panel { overflow: hidden; - right: 0; + inset-inline-end: 0; width: 80%; background-color: var(--theme-comp-header-color); opacity: 0; @@ -2384,7 +2384,7 @@ flex-direction: column; justify-content: center; padding: 0 0.125rem; - right: 0.125rem; + inset-inline-end: 0.125rem; width: 0.75rem; border: 1px solid transparent; border-radius: 0.25rem; @@ -2452,8 +2452,8 @@ /* ListView - global style */ .category-container.disableHeader .listGrid.row:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; + border-start-start-radius: 0.25rem; + border-start-end-radius: 0.25rem; border-top: 1px solid var(--theme-list-border-color); } .list-container .category-container.collapsed:not(.category-last, .category-one) .categoryHeader.subLevel, @@ -2462,13 +2462,13 @@ border-radius: 0; } .list-container .category-container .categoryHeader.subLevel.closed { - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; + border-end-start-radius: 0.25rem; + border-end-end-radius: 0.25rem; border-bottom: 1px solid var(--theme-list-border-color); } .list-container .category-container .categoryHeader.closed:not(.subLevel) { - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; + border-end-start-radius: 0.25rem; + border-end-end-radius: 0.25rem; &::before, &::after { @@ -2479,8 +2479,8 @@ } } .list-container .category-container .listGrid { - .fix-margin { margin-left: .875rem; } - .name { margin-left: .375rem; } + .fix-margin { margin-inline-start: .875rem; } + .name { margin-inline-start: .375rem; } .compression-bar { overflow: hidden; @@ -2499,7 +2499,7 @@ flex-shrink: 0; width: max-content; } - & > *:not(:first-child) { margin-left: .25rem; } + & > *:not(:first-child) { margin-inline-start: .25rem; } & > * > *:not(.only-icon) { min-width: fit-content; } } .panel-trigger > * { pointer-events: none; } @@ -2513,13 +2513,13 @@ .list-container .antiButton.list:hover, .list-container .datetime-button, .list-container .datetime-button:hover { - padding-left: .5rem !important; - padding-right: .5rem !important; + padding-inline-start: .5rem !important; + padding-inline-end: .5rem !important; font-size: 0.8125rem !important; background-color: var(--theme-list-button-color) !important; &:not(.only-icon) .btn-icon, - &:not(.only-icon) .icon { margin-right: .375rem !important; } + &:not(.only-icon) .icon { margin-inline-end: .375rem !important; } .label { font-size: 0.8125rem !important; color: var(--theme-halfcontent-color) !important; @@ -2544,7 +2544,7 @@ &:last-child { flex-shrink: 0; - margin-right: 0; + margin-inline-end: 0; } } .kanban-container .card-container .card-labels .datetime-button { diff --git a/packages/theme/styles/dialogs.scss b/packages/theme/styles/dialogs.scss index 44fdd235425..59db4c7dfc4 100644 --- a/packages/theme/styles/dialogs.scss +++ b/packages/theme/styles/dialogs.scss @@ -17,7 +17,7 @@ .antiOverlay { position: fixed; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100vh; background-color: var(--theme-overlay-color); @@ -55,7 +55,7 @@ align-items: center; min-width: 0; - & > *:not(:last-child) { margin-right: .5rem; } + & > *:not(:last-child) { margin-inline-end: .5rem; } } &__title { overflow: hidden; @@ -76,8 +76,8 @@ position: absolute; display: flex; top: 2.5rem; - left: 1rem; - right: 1rem; + inset-inline-start: 1rem; + inset-inline-end: 1rem; font-weight: 500; font-size: .75rem; color: var(--system-error-color); @@ -155,8 +155,8 @@ align-items: center; margin: 1rem 1.5rem; - & > * { margin-right: 1rem; } - & > *:last-child { margin-right: 1.5rem; } + & > * { margin-inline-end: 1rem; } + & > *:last-child { margin-inline-end: 1.5rem; } } } .antiCard-block { padding: 1.5rem; } @@ -178,7 +178,7 @@ &__error { flex-grow: 1; display: flex; - margin-left: .375rem; + margin-inline-start: .375rem; min-width: 0; font-weight: 500; font-size: .75rem; @@ -204,7 +204,7 @@ &:hover { background-color: var(--theme-popup-hover); } } span { - margin-right: .5rem; + margin-inline-end: .5rem; color: var(--theme-caption-color); } } @@ -231,7 +231,7 @@ .label { display: flex; align-items: center; - text-align: left; + text-align: start; font-weight: 500; font-size: .75rem; line-height: .75rem; diff --git a/packages/theme/styles/editors.scss b/packages/theme/styles/editors.scss index 52ca43cabdf..7dc2dde839f 100644 --- a/packages/theme/styles/editors.scss +++ b/packages/theme/styles/editors.scss @@ -34,7 +34,7 @@ &::after { position: absolute; top: 0; - left: -0.75rem; + inset-inline-start: -0.75rem; width: calc(100% + 1.5rem); height: 100%; border: 1px solid var(--theme-editbox-focus-border); diff --git a/packages/theme/styles/global.scss b/packages/theme/styles/global.scss index ba5c188e33c..2cc9b6efb79 100644 --- a/packages/theme/styles/global.scss +++ b/packages/theme/styles/global.scss @@ -34,6 +34,7 @@ @use "./mono.scss" as *; @use "./noto-color.scss" as *; +@use "./_rtl.scss" as *; @font-face { font-family: 'IBM Plex Sans'; @@ -72,6 +73,38 @@ url('../fonts/complete/woff/IBMPlexSans-Bold.woff') format('woff'); } +/* Arabic — IBM Plex Sans Arabic, matched to the IBM Plex Sans UI family. + Placed after IBM Plex Sans in --font-family so browsers resolve Latin glyphs + to Plex Sans and Arabic glyphs to Plex Sans Arabic, per glyph, app-wide. */ +@font-face { + font-family: 'IBM Plex Sans Arabic'; + font-style: normal; + font-weight: 400; + src: local('IBM Plex Sans Arabic'), + url('../fonts/arabic/woff2/IBMPlexSansArabic-Regular.woff2') format('woff2'); +} +@font-face { + font-family: 'IBM Plex Sans Arabic'; + font-style: normal; + font-weight: 500; + src: local('IBM Plex Sans Arabic Medium'), + url('../fonts/arabic/woff2/IBMPlexSansArabic-Medium.woff2') format('woff2'); +} +@font-face { + font-family: 'IBM Plex Sans Arabic'; + font-style: normal; + font-weight: 600; + src: local('IBM Plex Sans Arabic SemiBold'), + url('../fonts/arabic/woff2/IBMPlexSansArabic-SemiBold.woff2') format('woff2'); +} +@font-face { + font-family: 'IBM Plex Sans Arabic'; + font-style: normal; + font-weight: 700; + src: local('IBM Plex Sans Arabic Bold'), + url('../fonts/arabic/woff2/IBMPlexSansArabic-Bold.woff2') format('woff2'); +} + * { box-sizing: border-box; touch-action: manipulation; @@ -79,7 +112,7 @@ scrollbar-width: none; --body-font-size: .875rem; --panel-aside-width: 25rem; // 20rem; - --font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto; + --font-family: 'IBM Plex Sans', 'IBM Plex Sans Arabic', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto; --mono-font: 'IBM Plex Mono', monospace; --timing-shadow: cubic-bezier(0,.65,.35,1); --timing-main: cubic-bezier(0.25, 0.46, 0.45, 0.94); @@ -99,7 +132,7 @@ display: none; height: 2rem; position: absolute; - right: -3rem; + inset-inline-end: -3rem; top: -1rem; transform-origin: left; transform: rotate(-90deg); diff --git a/packages/theme/styles/love.scss b/packages/theme/styles/love.scss index 5ff230b7710..7abf1a6a8eb 100644 --- a/packages/theme/styles/love.scss +++ b/packages/theme/styles/love.scss @@ -10,8 +10,8 @@ justify-content: space-between; gap: .25rem; bottom: calc(100% + .125rem); - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; } &__field { position: relative; @@ -21,8 +21,8 @@ &::before { position: absolute; content: ''; - left: calc(100% / var(--huly-floor-roomWidth) / 5 * -1); - right: calc(100% / var(--huly-floor-roomWidth) / 5 * -1); + inset-inline-start: calc(100% / var(--huly-floor-roomWidth) / 5 * -1); + inset-inline-end: calc(100% / var(--huly-floor-roomWidth) / 5 * -1); background-color: var(--theme-popup-color); border: 1px solid var(--theme-popup-divider); border-radius: 1rem; @@ -76,8 +76,8 @@ .preview &::before { top: calc(100% / var(--huly-floor-roomHeight) / 3 * -1); bottom: calc(100% / var(--huly-floor-roomHeight) / 3 * -1); - left: calc(100% / var(--huly-floor-roomWidth) / 3 * -1); - right: calc(100% / var(--huly-floor-roomWidth) / 3 * -1); + inset-inline-start: calc(100% / var(--huly-floor-roomWidth) / 3 * -1); + inset-inline-end: calc(100% / var(--huly-floor-roomWidth) / 3 * -1); border-radius: .375rem; .floorGrid-room__field { border-radius: .25rem; } diff --git a/packages/theme/styles/mixins.scss b/packages/theme/styles/mixins.scss index b63f2902d7c..55e0fd4e299 100644 --- a/packages/theme/styles/mixins.scss +++ b/packages/theme/styles/mixins.scss @@ -2,8 +2,8 @@ position: absolute; top: 0; bottom: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; } @mixin bg-layer($color, $opacity) { diff --git a/packages/theme/styles/panel.scss b/packages/theme/styles/panel.scss index cb870e0770e..c908e5827dd 100644 --- a/packages/theme/styles/panel.scss +++ b/packages/theme/styles/panel.scss @@ -139,12 +139,12 @@ align-items: center; flex-shrink: 0; gap: var(--spacing-0_5); - margin-left: var(--spacing-1); + margin-inline-start: var(--spacing-1); min-width: 0; max-width: 50%; } &__arrow { - margin-left: var(--spacing-0_5); + margin-inline-start: var(--spacing-0_5); width: var(--global-min-Size); height: var(--global-min-Size); color: var(--global-accent-IconColor); @@ -200,7 +200,7 @@ min-height: var(--global-small-Size); border-radius: var(--small-BorderRadius); - &.selected { padding-right: var(--spacing-0_75); } + &.selected { padding-inline-end: var(--spacing-0_75); } &.isOpen { margin-bottom: 0; } } @@ -235,7 +235,7 @@ height: 100%; min-width: 0; min-height: 0; - border-right: 1px solid var(--theme-divider-color); + border-inline-end: 1px solid var(--theme-divider-color); border-radius: 0 var(--small-focus-BorderRadius) var(--small-focus-BorderRadius) 0; } @@ -256,7 +256,7 @@ display: flex; flex-direction: column; top: 5rem; - right: .5rem; + inset-inline-end: .5rem; width: 42rem; height: auto; min-height: 0; @@ -283,13 +283,13 @@ min-height: 0; width: 50%; - &.divide { border-right: 1px solid var(--divider-color); } + &.divide { border-inline-end: 1px solid var(--divider-color); } } .ad-tools { position: absolute; display: flex; top: 1.25rem; - right: 1.25rem; + inset-inline-end: 1.25rem; &.grow-reverse { display: flex; @@ -335,7 +335,7 @@ display: flex; align-items: center; flex-grow: 1; - margin-right: .75rem; + margin-inline-end: .75rem; min-width: 0; min-height: 0; @@ -347,7 +347,7 @@ background-color: var(--theme-breadcrumb-default); border-radius: .25rem; - &:not(:last-child) { margin-right: .125rem; } + &:not(:last-child) { margin-inline-end: .125rem; } &:not(.disabled, .not-active) { cursor: pointer; @@ -375,7 +375,7 @@ background-color: var(--theme-panel-color); // border: 1px solid var(--theme-divider-color); border-top: none; - border-left: none; + border-inline-start: none; &.main { justify-content: stretch; @@ -411,15 +411,15 @@ display: flex; flex-direction: column; // flex-shrink: 0; - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; width: calc(100% - 7.5rem); max-width: 54rem; &.side-content-space { --side-content-space: 21rem; max-width: calc(54rem + var(--side-content-space)); - padding-right: var(--side-content-space); + padding-inline-end: var(--side-content-space); } &.max { @@ -488,14 +488,14 @@ flex-direction: row; flex-shrink: 0; top: 0; - left: 100%; + inset-inline-start: 100%; width: var(--panel-aside-width); height: 100%; min-width: 0; min-height: 0; background-color: var(--theme-panel-color); - // border-left: 1px solid var(--theme-divider-color); - border-bottom-right-radius: .45rem; + // border-inline-start: 1px solid var(--theme-divider-color); + border-end-end-radius: .45rem; box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); transition: box-shadow 150ms ease 0s, transform 150ms cubic-bezier(0.175, 0.885, 0.32, 1.275); transform: translateX(0); @@ -548,7 +548,7 @@ align-self: start; margin-top: .4rem; } - .textPadding { margin-left: .875rem; } + .textPadding { margin-inline-start: .875rem; } } &-content { display: flex; diff --git a/packages/theme/styles/popups.scss b/packages/theme/styles/popups.scss index 95277987304..ae97278925d 100644 --- a/packages/theme/styles/popups.scss +++ b/packages/theme/styles/popups.scss @@ -42,7 +42,7 @@ padding: var(--spacing-1_5); min-width: 0; min-height: 0; - text-align: left; + text-align: start; border-radius: var(--extra-small-BorderRadius); border: none; @@ -88,7 +88,7 @@ } &__keys { gap: var(--spacing-0_25); - margin-left: var(--spacing-1); + margin-inline-start: var(--spacing-1); .key { padding: var(--spacing-0_5); @@ -237,7 +237,7 @@ // width: 100%; min-width: 0; min-height: 2.25rem; - text-align: left; + text-align: start; color: var(--theme-caption-color); border-radius: .25rem; @@ -246,7 +246,7 @@ .icon, .color, .tag { flex-shrink: 0; - margin-right: .5rem; + margin-inline-end: .5rem; } .icon, div.check { @@ -257,7 +257,7 @@ div.check { flex-shrink: 0; - &:not(.ml-0) { margin-left: .5rem; } + &:not(.ml-0) { margin-inline-start: .5rem; } } .color { width: .875rem; @@ -317,7 +317,7 @@ font-weight: 500; font-size: .625rem; text-transform: uppercase; - text-align: left; + text-align: start; color: var(--theme-caption-color); background-color: var(--theme-popup-color); @@ -410,7 +410,7 @@ .ap-menuItem { flex-shrink: 0; justify-content: flex-start; - text-align: left; + text-align: start; min-width: 0; color: var(--theme-caption-color); cursor: pointer; @@ -420,8 +420,8 @@ border-radius: .25rem; } &:not(.separator, .noMargin) { - margin-left: .5rem; - margin-right: .5rem; + margin-inline-start: .5rem; + margin-inline-end: .5rem; } &.withComp { display: flex; @@ -456,17 +456,17 @@ .drag { flex-shrink: 0; - margin-right: .375rem; + margin-inline-end: .375rem; color: var(--theme-trans-color); } .icon { flex-shrink: 0; - margin-right: .5rem; + margin-inline-end: .5rem; } .logo { overflow: hidden; flex-shrink: 0; - margin-right: .5rem; + margin-inline-end: .5rem; width: 2rem; height: 2rem; border-radius: .25rem; @@ -514,13 +514,13 @@ border-radius: .375rem; } .ap-menuItem:not(.separator, .noMargin) { - margin-left: .375rem; - margin-right: .375rem; + margin-inline-start: .375rem; + margin-inline-end: .375rem; } } .ap-check { flex-shrink: 0; - margin-left: 1rem; + margin-inline-start: 1rem; width: 1rem; height: 1rem; color: var(--theme-popup-checkicon); @@ -563,7 +563,7 @@ color: var(--theme-dark-color); outline: none; - &:not(:last-child) { margin-right: .375rem; } + &:not(:last-child) { margin-inline-end: .375rem; } &:not(.selected, .disabled) { cursor: pointer; } &.disabled { color: var(--theme-darker-color); } &.selected { color: var(--theme-caption-color); } @@ -572,7 +572,7 @@ &:not(.bordered) .tab.selected::after { position: absolute; content: ''; - left: 0; + inset-inline-start: 0; bottom: -1px; width: 100%; height: 2px; @@ -594,7 +594,7 @@ display: flex; flex-direction: column; margin: 0 .5rem; - text-align: left; + text-align: start; .ap-caption { margin: .5rem 0 0 .75rem; @@ -617,14 +617,14 @@ padding: .25rem .5rem; min-width: 0; min-height: 2.25rem; - text-align: left; + text-align: start; color: var(--theme-caption-color); border-radius: .25rem; outline: none; cursor: pointer; .icon { - margin-right: .5rem; + margin-inline-end: .5rem; color: var(--theme-dark-color); } &.withHover:hover { background-color: var(--theme-popup-hover); } @@ -635,13 +635,13 @@ .antiPopup-submenu { position: relative; span { - padding-right: 1rem; + padding-inline-end: 1rem; } &::after { content: '▶'; position: absolute; top: 50%; - right: 0.5rem; + inset-inline-end: 0.5rem; font-size: 0.375rem; color: var(--theme-dark-color); transform: translateY(-50%); diff --git a/packages/theme/styles/prose.scss b/packages/theme/styles/prose.scss index 235628047c0..09132688be9 100644 --- a/packages/theme/styles/prose.scss +++ b/packages/theme/styles/prose.scss @@ -34,7 +34,7 @@ table.proseTable td:not(:last-child), table.proseTable th:not(:last-child) { - border-right: none !important; + border-inline-end: none !important; } table.proseTable tr:not(:last-child) td, @@ -84,7 +84,7 @@ table.proseTable { } th { - text-align: left; + text-align: start; background-color: var(--text-editor-table-header-color); } @@ -105,8 +105,8 @@ table.proseTable { z-index: var(--table-selection-z-index); top: var(--table-selection-border-indent); bottom: var(--table-selection-border-indent); - left: var(--table-selection-border-indent); - right: var(--table-selection-border-indent); + inset-inline-start: var(--table-selection-border-indent); + inset-inline-end: var(--table-selection-border-indent); } &__border-top::before { @@ -117,12 +117,12 @@ table.proseTable { border-bottom-width: var(--table-selection-border-width); } - &__border-left::before { - border-left-width: var(--table-selection-border-width); + &__border-inline-start::before { + border-inline-start-width: var(--table-selection-border-width); } - &__border-right::before { - border-right-width: var(--table-selection-border-width); + &__border-inline-end::before { + border-inline-end-width: var(--table-selection-border-width); } } @@ -157,8 +157,8 @@ table.proseTable { z-index: var(--table-handlers-z-index); top: var(--table-selection-border-indent); bottom: var(--table-selection-border-indent); - left: var(--table-selection-border-indent); - right: var(--table-selection-border-indent); + inset-inline-start: var(--table-selection-border-indent); + inset-inline-end: var(--table-selection-border-indent); } &:hover button { @@ -186,8 +186,8 @@ table.proseTable { position: absolute; height: var(--table-handle-size); top: var(--table-handle-col-indent); - left: -1px; - right: -1px; + inset-inline-start: -1px; + inset-inline-end: -1px; button { height: 100%; @@ -196,8 +196,8 @@ table.proseTable { &:hover { border-radius: var(--table-selection-border-radius); - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; + border-end-start-radius: 0; + border-end-end-radius: 0; button { opacity: 1; @@ -205,15 +205,15 @@ table.proseTable { } &__selected { - left: 0; + inset-inline-start: 0; &::before { - right: 0; + inset-inline-end: 0; top: 0; bottom: 0; border-bottom-width: 0; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; + border-end-start-radius: 0; + border-end-end-radius: 0; } } } @@ -223,10 +223,10 @@ table.proseTable { width: var(--table-handle-size); top: -1px; bottom: -1px; - left: var(--table-handle-row-indent); + inset-inline-start: var(--table-handle-row-indent); border-radius: var(--table-selection-border-radius); - border-top-right-radius: 0; - border-bottom-right-radius: 0; + border-start-end-radius: 0; + border-end-end-radius: 0; button { width: 100%; @@ -250,11 +250,11 @@ table.proseTable { &::before { bottom: 0; - left: 0; - right: 0; - border-right-width: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 0; + inset-inline-start: 0; + inset-inline-end: 0; + border-inline-end-width: 0; + border-start-end-radius: 0; + border-end-end-radius: 0; } } } @@ -273,7 +273,7 @@ table.proseTable { justify-content: flex-start; align-items: center; top: var(--table-insert-marker-indent); - right: -0.625rem; + inset-inline-end: -0.625rem; width: 1.25rem; .table-insert-marker { @@ -283,7 +283,7 @@ table.proseTable { .column-resize-handle { position: absolute; - right: -1px; + inset-inline-end: -1px; top: -1px; bottom: -1px; width: 1px; @@ -294,8 +294,8 @@ table.proseTable { content: ''; position: absolute; top: 0; - left: -5px; - right: -5px; + inset-inline-start: -5px; + inset-inline-end: -5px; bottom: 0; cursor: col-resize; z-index: 100; @@ -307,7 +307,7 @@ table.proseTable { flex-direction: row; justify-content: flex-start; align-items: center; - left: var(--table-insert-marker-indent); + inset-inline-start: var(--table-insert-marker-indent); bottom: -0.625rem; height: 1.25rem; @@ -338,7 +338,7 @@ table.proseTable { content: ''; border: 2px solid var(--text-editor-table-marker-color); border-radius: 50%; - margin-left: calc(0.5rem - 1px); + margin-inline-start: calc(0.5rem - 1px); } svg { @@ -410,7 +410,7 @@ table.proseTable { .table-row-drag-marker { width: var(--table-handle-size); - left: var(--table-handle-row-indent); + inset-inline-start: var(--table-handle-row-indent); button { width: 100%; @@ -432,10 +432,10 @@ table.proseTable { .proseBlockQuote { margin-inline: 1px 0; - padding-left: 1.5em; - padding-right: 1.5em; + padding-inline-start: 1.5em; + padding-inline-end: 1.5em; position: relative; - border-left: 2px solid var(--text-editor-block-quote-color); + border-inline-start: 2px solid var(--text-editor-block-quote-color); } .proseCode { @@ -544,7 +544,7 @@ pre.proseCodeBlock>pre.proseCode { header { user-select: none; position: absolute; - right: 0.5rem; + inset-inline-end: 0.5rem; top: 0.5rem; display: flex; diff --git a/packages/theme/styles/tables.scss b/packages/theme/styles/tables.scss index 8d2d11e5494..f2bdf35d3ca 100644 --- a/packages/theme/styles/tables.scss +++ b/packages/theme/styles/tables.scss @@ -30,7 +30,7 @@ padding: var(--spacing-2) var(--spacing-2) var(--spacing-2) var(--spacing-2_5); span { - margin-left: var(--spacing-1_5); + margin-inline-start: var(--spacing-1_5); } } span { @@ -153,7 +153,7 @@ white-space: nowrap; word-break: break-all; text-overflow: ellipsis; - text-align: left; + text-align: start; flex-shrink: 1; min-width: 0; color: var(--global-primary-TextColor); @@ -251,7 +251,7 @@ border-radius: 0 0 var(--large-BorderRadius) var(--large-BorderRadius); } .hulyTableAttr-content__row-icon-wrapper { - margin-right: var(--spacing-0_5); + margin-inline-end: var(--spacing-0_5); } } .hulyTableAttr-content__row + .hulyTableAttr-content__row { diff --git a/packages/ui/lang/ar.json b/packages/ui/lang/ar.json new file mode 100644 index 00000000000..17a1c22f29e --- /dev/null +++ b/packages/ui/lang/ar.json @@ -0,0 +1,116 @@ +{ + "string": { + "EditBoxPlaceholder": "اكتب نصًا...", + "Ok": "موافق", + "Cancel": "إلغاء", + "Save": "حفظ", + "Publish": "نشر", + "SaveDraft": "حفظ كمسودة", + "MinutesAgo": "{minutes, plural, =0 {منذ أقل من دقيقة} =1 {منذ دقيقة} other {منذ # دقيقة}}", + "HoursAgo": "{hours, plural, =0 {منذ أقل من ساعة} =1 {منذ ساعة} other {منذ # ساعة}}", + "DaysAgo": "{days, plural, =0 {اليوم} =1 {الأمس} other {منذ # يوم}}", + "MonthsAgo": "{months, plural, =0 {هذا الشهر} =1 {منذ شهر} other {منذ # شهر}}", + "YearsAgo": "{years, plural, =0 {هذا العام} =1 {منذ عام} other {منذ # عام}}", + "Minutes": "{minutes, plural, =0 {أقل من دقيقة} =1 {دقيقة} other {# دقيقة}}", + "Hours": "{hours, plural, =0 {أقل من ساعة} =1 {ساعة} other {# ساعة}}", + "Days": "{days, plural, =0 {اليوم} =1 {يوم واحد} other {# يوم}}", + "Weeks": "{weeks, plural, =0 {هذا الأسبوع} =1 {أسبوع واحد} other {# أسبوع}}", + "Months": "{months, plural, =0 {هذا الشهر} =1 {شهر واحد} other {# شهر}}", + "Years": "{years, plural, =0 {هذا العام} =1 {عام} other {# عام}}", + "Before": "قبل", + "After": "بعد", + "MinutesShort": "{value}د", + "HoursShort": "{value}س", + "DaysShort": "{value}ي", + "ShowMore": "عرض المزيد", + "ShowLess": "عرض أقل", + "Search": "بحث", + "SearchDots": "بحث...", + "SearchResults": "نتائج البحث", + "Suggested": "مقترح", + "TimeTooltip": "{value}", + "SelectDate": "اختر تاريخًا", + "None": "لا شيء", + "NotSelected": "غير محدد", + "Today": "اليوم", + "NoDate": "بدون تاريخ", + "StartDate": "تاريخ البدء", + "TargetDate": "التاريخ المستهدف", + "Overdue": "متأخر", + "DueDate": "تاريخ الاستحقاق", + "AddDueDate": "إضافة تاريخ استحقاق", + "SetDueDate": "تحديد تاريخ الاستحقاق", + "EditDueDate": "تعديل تاريخ الاستحقاق", + "SaveDueDate": "حفظ تاريخ الاستحقاق", + "NeedsToBeCompletedByThisDate": "يجب إنجازه بحلول هذا التاريخ", + "DueDatePopupTitle": "يُستحق في {value}", + "DueDatePopupOverdueTitle": "كان مستحقًا في {value}", + "DueDatePopupDescription": "{value, plural, =0 {اليوم} =1 {غدًا} other {# يوم متبقٍ}}", + "DueDatePopupOverdueDescription": "{value, plural, =1 {متأخر بيوم واحد} other {متأخر بـ # يوم}}", + "English": "English", + "Russian": "Русский", + "Portuguese": "Português", + "PortugueseBrazil": "Português (Brasil)", + "Spanish": "Español", + "Chinese": "中文", + "French": "Français", + "Italian": "Italiano", + "Czech": "Čeština", + "German": "Deutsch", + "Japanese": "日本語", + "Korean": "Korean", + "Turkish": "Türkçe", + "Arabic": "العربية", + "MinutesBefore": "{minutes, plural, =1 {قبل دقيقة} other {قبل # دقيقة}}", + "HoursBefore": "{hours, plural, =1 {قبل ساعة} other {قبل # ساعة}}", + "DaysBefore": "{days, plural, =1 {قبل يوم} other {قبل # يوم}}", + "WeeksBefore": "{weeks, plural, =1 {قبل أسبوع} other {قبل # أسبوع}}", + "MonthsBefore": "{months, plural, =1 {قبل شهر} other {قبل # شهر}}", + "MinutesAfter": "{minutes, plural, =1 {خلال دقيقة} other {خلال # دقيقة}}", + "HoursAfter": "{hours, plural, =1 {خلال ساعة} other {خلال # ساعة}}", + "DaysAfter": "{days, plural, =1 {خلال يوم} other {خلال # يوم}}", + "WeeksAfter": "{weeks, plural, =1 {خلال أسبوع} other {خلال # أسبوع}}", + "MonthsAfter": "{months, plural, =1 {خلال شهر} other {خلال # شهر}}", + "NoActionsDefined": "لا توجد إجراءات متاحة", + "Incoming": "وارد", + "HoursLabel": "ساعات", + "Back": "رجوع", + "Next": "التالي", + "DropdownDefaultLabel": "اختر عنصرًا", + "DD": "يي", + "MM": "شش", + "YYYY": "سسسس", + "HH": "سس", + "Remove": "إزالة", + "NoResults": "لا توجد نتائج", + "MoreCount": "{count} إضافي", + "Spacious": "واسع", + "Compact": "مضغوط", + "ThemeLight": "فاتح", + "ThemeDark": "داكن", + "ThemeSystem": "النظام", + "NoTimeZonesFound": "لم يُعثر على مناطق زمنية", + "Selected": "المحدد:", + "Submit": "إرسال", + "NextStep": "الخطوة التالية", + "TypeHere": "اكتب هنا...", + "NormalSize": "حجم عادي", + "FullSize": "حجم كامل", + "UseMaxWidth": "أقصى عرض", + "Sidebar": "الشريط الجانبي", + "FontSize": "حجم الخط", + "Language": "اللغة", + "DaysWOValue": "{days, plural, =1 {يوم} other {أيام}}", + "WeeksWOValue": "{weeks, plural, =1 {أسبوع} other {أسابيع}}", + "MonthsWOValue": "{months, plural, =1 {شهر} other {أشهر}}", + "Filter": "تصفية", + "Clear": "مسح", + "Yesterday": "الأمس", + "ThisWeek": "هذا الأسبوع", + "ThisMonth": "هذا الشهر", + "ThisYear": "هذا العام", + "EmojiStyle": "نمط الرموز التعبيرية", + "EmojiSystem": "افتراضي النظام", + "EmojiNoto": "Noto الملونة" + } +} diff --git a/packages/ui/lang/cs.json b/packages/ui/lang/cs.json index cb07ff13955..14fb91deced 100644 --- a/packages/ui/lang/cs.json +++ b/packages/ui/lang/cs.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Korejština", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {1 minuta před} other {# minut před}}", "HoursBefore": "{hours, plural, =1 {1 hodina před} other {# hodin před}}", "DaysBefore": "{days, plural, =1 {1 den před} other {# dní před}}", diff --git a/packages/ui/lang/de.json b/packages/ui/lang/de.json index 6bb24862a02..f5aa9803cea 100644 --- a/packages/ui/lang/de.json +++ b/packages/ui/lang/de.json @@ -60,6 +60,7 @@ "Japanese": "Japanisch", "Korean": "Koreanisch", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {eine Minute vorher} other {# Minuten vorher}}", "HoursBefore": "{hours, plural, =1 {eine Stunde vorher} other {# Stunden vorher}}", "DaysBefore": "{days, plural, =1 {einen Tag vorher} other {# Tage vorher}}", diff --git a/packages/ui/lang/en.json b/packages/ui/lang/en.json index e80195398e4..1bc825b0294 100644 --- a/packages/ui/lang/en.json +++ b/packages/ui/lang/en.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Korean", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {a minute before} other {# minutes before}}", "HoursBefore": "{hours, plural, =1 {an hour before} other {# hours before}}", "DaysBefore": "{days, plural, =1 {a day before} other {# days before}}", diff --git a/packages/ui/lang/es.json b/packages/ui/lang/es.json index fbc22256d1e..8920653235e 100644 --- a/packages/ui/lang/es.json +++ b/packages/ui/lang/es.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Coreano", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {un minuto antes} other {# minutos antes}}", "HoursBefore": "{hours, plural, =1 {una hora antes} other {# horas antes}}", "DaysBefore": "{days, plural, =1 {un día antes} other {# días antes}}", diff --git a/packages/ui/lang/fr.json b/packages/ui/lang/fr.json index 16a0e6c1115..43c942805ac 100644 --- a/packages/ui/lang/fr.json +++ b/packages/ui/lang/fr.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Coréen", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {une minute avant} other {# minutes avant}}", "HoursBefore": "{hours, plural, =1 {une heure avant} other {# heures avant}}", "DaysBefore": "{days, plural, =1 {un jour avant} other {# jours avant}}", diff --git a/packages/ui/lang/it.json b/packages/ui/lang/it.json index 616c419cd44..23ed1a629ad 100644 --- a/packages/ui/lang/it.json +++ b/packages/ui/lang/it.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Coreano", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {un minuto prima} other {# minuti prima}}", "HoursBefore": "{hours, plural, =1 {un'ora prima} other {# ore prima}}", "DaysBefore": "{days, plural, =1 {un giorno prima} other {# giorni prima}}", diff --git a/packages/ui/lang/ja.json b/packages/ui/lang/ja.json index dd73156644f..c840b1f09c6 100644 --- a/packages/ui/lang/ja.json +++ b/packages/ui/lang/ja.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "韓国語", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {1分前} other {#分前}}", "HoursBefore": "{hours, plural, =1 {1時間前} other {#時間前}}", "DaysBefore": "{days, plural, =1 {1日前} other {#日前}}", diff --git a/packages/ui/lang/ko.json b/packages/ui/lang/ko.json index e032ac807bd..5dbcb439c5f 100644 --- a/packages/ui/lang/ko.json +++ b/packages/ui/lang/ko.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "한국어", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {1분 전} other {#분 전}}", "HoursBefore": "{hours, plural, =1 {1시간 전} other {#시간 전}}", "DaysBefore": "{days, plural, =1 {1일 전} other {#일 전}}", diff --git a/packages/ui/lang/pt-br.json b/packages/ui/lang/pt-br.json index bc00f863648..351c97aa276 100644 --- a/packages/ui/lang/pt-br.json +++ b/packages/ui/lang/pt-br.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Coreano", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {um minuto antes} other {# minutos antes}}", "HoursBefore": "{hours, plural, =1 {uma hora antes} other {# horas antes}}", "DaysBefore": "{days, plural, =1 {um dia antes} other {# dias antes}}", diff --git a/packages/ui/lang/pt.json b/packages/ui/lang/pt.json index 9a5a3bafd83..49e7bfb67e5 100644 --- a/packages/ui/lang/pt.json +++ b/packages/ui/lang/pt.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Coreano", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {um minuto antes} other {# minutos antes}}", "HoursBefore": "{hours, plural, =1 {uma hora antes} other {# horas antes}}", "DaysBefore": "{days, plural, =1 {um dia antes} other {# dias antes}}", diff --git a/packages/ui/lang/ru.json b/packages/ui/lang/ru.json index 1282a1e359b..8ff5dcef95b 100644 --- a/packages/ui/lang/ru.json +++ b/packages/ui/lang/ru.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Корейский", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {за минуту} one {за # минуту} few {за # минуты} other {за # минут}}", "HoursBefore": "{hours, plural, =1 {за час} one {за # час} few {за # часа} other {за # часов}}", "DaysBefore": "{days, plural, =1 {за день} one {за # день} few {за # дня} other {за # дней}}", diff --git a/packages/ui/lang/tr.json b/packages/ui/lang/tr.json index f5bc58063fb..821e5432ab0 100644 --- a/packages/ui/lang/tr.json +++ b/packages/ui/lang/tr.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "Korece", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {bir dakika önce} other {# dakika önce}}", "HoursBefore": "{hours, plural, =1 {bir saat önce} other {# saat önce}}", "DaysBefore": "{days, plural, =1 {bir gün önce} other {# gün önce}}", diff --git a/packages/ui/lang/zh.json b/packages/ui/lang/zh.json index bbb476d00d4..e9b17327056 100644 --- a/packages/ui/lang/zh.json +++ b/packages/ui/lang/zh.json @@ -60,6 +60,7 @@ "Japanese": "日本語", "Korean": "韩语", "Turkish": "Türkçe", + "Arabic": "العربية", "MinutesBefore": "{minutes, plural, =1 {一分钟前} other {# 分钟前}}", "HoursBefore": "{hours, plural, =1 {一小时前} other {# 小时前}}", "DaysBefore": "{days, plural, =1 {一天前} other {# 天前}}", diff --git a/packages/ui/src/components/ButtonWithDropdown.svelte b/packages/ui/src/components/ButtonWithDropdown.svelte index 29542b0a640..1ece17127be 100644 --- a/packages/ui/src/components/ButtonWithDropdown.svelte +++ b/packages/ui/src/components/ButtonWithDropdown.svelte @@ -109,7 +109,7 @@ background-color: var(--theme-content-color); min-width: 1px; opacity: 0.25; - right: -0.75rem; + inset-inline-end: -0.75rem; &.primary, &.secondary, diff --git a/packages/ui/src/components/Chevron.svelte b/packages/ui/src/components/Chevron.svelte index 06dd53004f4..e371cf18891 100644 --- a/packages/ui/src/components/Chevron.svelte +++ b/packages/ui/src/components/Chevron.svelte @@ -81,5 +81,24 @@ transform: rotate(90deg); } } + + // RTL: mirror horizontal chevrons (next/prev, breadcrumb, tree carets). + // Vertical states (expanded / down) are intentionally left unchanged. + :global([dir='rtl']) &.outline { + &.right { + transform: rotate(90deg); + } + &.left { + transform: rotate(-90deg); + } + } + :global([dir='rtl']) &:not(.outline):not(.expanded) { + &.right { + transform: rotate(180deg); + } + &.left { + transform: rotate(0deg); + } + } } diff --git a/packages/ui/src/components/Chip.svelte b/packages/ui/src/components/Chip.svelte index 58d7ac0a879..5bc710123ec 100644 --- a/packages/ui/src/components/Chip.svelte +++ b/packages/ui/src/components/Chip.svelte @@ -103,7 +103,7 @@ } & :global(button.type-button-icon) { - margin-right: var(--spacing-0_25); + margin-inline-end: var(--spacing-0_25); } } diff --git a/packages/ui/src/components/CircleButton.svelte b/packages/ui/src/components/CircleButton.svelte index 767e3107064..9b1e3eb9cd5 100644 --- a/packages/ui/src/components/CircleButton.svelte +++ b/packages/ui/src/components/CircleButton.svelte @@ -75,8 +75,8 @@ position: absolute; top: -0.25rem; bottom: -0.25rem; - left: -0.25rem; - right: -0.25rem; + inset-inline-start: -0.25rem; + inset-inline-end: -0.25rem; border: 1px solid var(--primary-button-default); border-radius: 50%; } diff --git a/packages/ui/src/components/DropdownLabels.svelte b/packages/ui/src/components/DropdownLabels.svelte index 8b3badd3067..9d4d28cad6a 100644 --- a/packages/ui/src/components/DropdownLabels.svelte +++ b/packages/ui/src/components/DropdownLabels.svelte @@ -141,13 +141,13 @@ diff --git a/packages/ui/src/components/Toggle.svelte b/packages/ui/src/components/Toggle.svelte index bb8f8e129dd..85d97499343 100644 --- a/packages/ui/src/components/Toggle.svelte +++ b/packages/ui/src/components/Toggle.svelte @@ -70,7 +70,7 @@ background-color: var(--theme-toggle-on-bg-hover); } &:before { - left: 1.125rem; + inset-inline-start: 1.125rem; background: var(--theme-toggle-on-sw-color); } } @@ -97,7 +97,7 @@ content: ''; position: absolute; top: 0.125rem; - left: 0.125rem; + inset-inline-start: 0.125rem; display: inline-block; width: 1rem; height: 1rem; diff --git a/packages/ui/src/components/ToggleWithLabel.svelte b/packages/ui/src/components/ToggleWithLabel.svelte index d7784ff2dc7..89bffa8a887 100644 --- a/packages/ui/src/components/ToggleWithLabel.svelte +++ b/packages/ui/src/components/ToggleWithLabel.svelte @@ -46,7 +46,7 @@ diff --git a/packages/ui/src/components/calendar/MonthSquare.svelte b/packages/ui/src/components/calendar/MonthSquare.svelte index 98a9d172192..4f00df7927a 100644 --- a/packages/ui/src/components/calendar/MonthSquare.svelte +++ b/packages/ui/src/components/calendar/MonthSquare.svelte @@ -257,16 +257,16 @@ color: var(--theme-caption-color); } &.startRow:not(.wrongMonth) { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - padding-left: 0; - margin-left: 0.125rem; + border-start-start-radius: 0.25rem; + border-end-start-radius: 0.25rem; + padding-inline-start: 0; + margin-inline-start: 0.125rem; } &.endRow:not(.wrongMonth) { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - padding-right: 0; - margin-right: 0.125rem; + border-start-end-radius: 0.25rem; + border-end-end-radius: 0.25rem; + padding-inline-end: 0; + margin-inline-end: 0.125rem; } } @@ -306,7 +306,7 @@ position: absolute; content: ''; top: 2.25rem; - left: 0; + inset-inline-start: 0; width: 100%; height: 1px; background-color: var(--theme-divider-color); diff --git a/packages/ui/src/components/calendar/Shifts.svelte b/packages/ui/src/components/calendar/Shifts.svelte index d79cfbafeef..936334c7978 100644 --- a/packages/ui/src/components/calendar/Shifts.svelte +++ b/packages/ui/src/components/calendar/Shifts.svelte @@ -79,7 +79,7 @@ flex-direction: column; padding: 0.5rem; top: 1rem; - right: calc(100% - 0.5rem); + inset-inline-end: calc(100% - 0.5rem); bottom: 1rem; width: fit-content; width: 12rem; @@ -92,7 +92,7 @@ .btn { flex-shrink: 0; - margin-right: 0.75rem; + margin-inline-end: 0.75rem; padding: 0.25rem 0.5rem; background-color: transparent; border-radius: 0.25rem; diff --git a/packages/ui/src/components/calendar/TimeInputBox.svelte b/packages/ui/src/components/calendar/TimeInputBox.svelte index f642db6bc7d..7f0aa97f845 100644 --- a/packages/ui/src/components/calendar/TimeInputBox.svelte +++ b/packages/ui/src/components/calendar/TimeInputBox.svelte @@ -264,7 +264,7 @@ &::after { position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; z-index: 11000; diff --git a/packages/ui/src/components/internal/ClockFace.svelte b/packages/ui/src/components/internal/ClockFace.svelte index c9e007335b9..b38a5b44eda 100644 --- a/packages/ui/src/components/internal/ClockFace.svelte +++ b/packages/ui/src/components/internal/ClockFace.svelte @@ -61,7 +61,7 @@ .hour { position: absolute; top: 1px; - left: 50%; + inset-inline-start: 50%; width: 1px; height: calc(var(--clockface-size, 64px) / 32); background: var(--theme-clockface-hours); @@ -97,7 +97,7 @@ .minute-arrow, .hour-arrow { position: absolute; - left: calc(50% - 0.5px); + inset-inline-start: calc(50% - 0.5px); box-shadow: va(--theme-clockface-arrows-shadow); transform: rotate(0deg); } @@ -112,7 +112,7 @@ &::after { content: ''; position: absolute; - left: 50%; + inset-inline-start: 50%; border-radius: 50%; transform: translateX(-50%); } @@ -138,7 +138,7 @@ } .hour-arrow { top: calc(var(--clockface-radius) * 0.5); - left: calc(50% - 1px); + inset-inline-start: calc(50% - 1px); width: 3px; height: var(--clockface-hour-arrow); background: var(--theme-clockface-min-arrow); diff --git a/packages/ui/src/components/internal/Root.svelte b/packages/ui/src/components/internal/Root.svelte index 3ef85713c2f..bd7ea9cc691 100644 --- a/packages/ui/src/components/internal/Root.svelte +++ b/packages/ui/src/components/internal/Root.svelte @@ -332,7 +332,7 @@ .history-box { -webkit-app-region: no-drag; - margin-left: var(--huly-history-box-left-indent, 4.625rem); + margin-inline-start: var(--huly-history-box-left-indent, 4.625rem); } .maintenanceScheduled { padding: 0 0.5rem; diff --git a/packages/ui/src/components/internal/SettingsPopup.svelte b/packages/ui/src/components/internal/SettingsPopup.svelte index 18926bfefc5..464c1839562 100644 --- a/packages/ui/src/components/internal/SettingsPopup.svelte +++ b/packages/ui/src/components/internal/SettingsPopup.svelte @@ -82,7 +82,8 @@ { id: 'de', label: ui.string.German, logo: '🇩🇪' }, { id: 'ja', label: ui.string.Japanese, logo: '🇯🇵' }, { id: 'ko', label: ui.string.Korean, logo: '🇰🇷' }, - { id: 'tr', label: ui.string.Turkish, logo: '🇹🇷' } + { id: 'tr', label: ui.string.Turkish, logo: '🇹🇷' }, + { id: 'ar', label: ui.string.Arabic, logo: '🇸🇦' } ].filter((lang) => uiLangs.has(lang.id)) if (langs.findIndex((l) => l.id === $currentLanguage) < 0 && langs.length !== 0) { diff --git a/packages/ui/src/components/internal/ThemeButton.svelte b/packages/ui/src/components/internal/ThemeButton.svelte index 45e365825b5..73db0e88d3c 100644 --- a/packages/ui/src/components/internal/ThemeButton.svelte +++ b/packages/ui/src/components/internal/ThemeButton.svelte @@ -52,7 +52,7 @@ :global(.statusPopupThemeButton svg.check) { position: absolute; bottom: 3px; - right: 3px; + inset-inline-end: 3px; width: 16px; height: 16px; } @@ -71,7 +71,7 @@ color: #000000cc; background-color: #fff; border-top: 1px solid rgba(0, 0, 0, 0.2); - border-left: 1px solid rgba(0, 0, 0, 0.2); + border-inline-start: 1px solid rgba(0, 0, 0, 0.2); } } .dark-container { @@ -81,7 +81,7 @@ color: #ffffffcc; background-color: #161516; border-top: 1px solid rgba(255, 255, 255, 0.2); - border-left: 1px solid rgba(255, 255, 255, 0.2); + border-inline-start: 1px solid rgba(255, 255, 255, 0.2); } } .light-container, @@ -98,7 +98,7 @@ } &.both { .light-container { - border-right: none; + border-inline-end: none; border-radius: 5.75px 0 0 5.75px; } .dark-container { diff --git a/packages/ui/src/components/notifications/Notifications.svelte b/packages/ui/src/components/notifications/Notifications.svelte index 2252d7dcbdb..220036090b9 100644 --- a/packages/ui/src/components/notifications/Notifications.svelte +++ b/packages/ui/src/components/notifications/Notifications.svelte @@ -30,24 +30,24 @@ .top-left { position: fixed; top: 0; - left: 0; + inset-inline-start: 0; } .top-right { position: fixed; top: 0; - right: 0; + inset-inline-end: 0; } .bottom-left { position: fixed; bottom: 0; - left: 0; + inset-inline-start: 0; } .bottom-right { position: fixed; bottom: 0; - right: 0; + inset-inline-end: 0; } diff --git a/packages/ui/src/components/wizard/WizardStep.svelte b/packages/ui/src/components/wizard/WizardStep.svelte index 752bf54c974..8882e8d96c0 100644 --- a/packages/ui/src/components/wizard/WizardStep.svelte +++ b/packages/ui/src/components/wizard/WizardStep.svelte @@ -129,8 +129,8 @@ justify-content: center; align-items: center; top: 0; - left: 0.5rem; - right: 0.5rem; + inset-inline-start: 0.5rem; + inset-inline-end: 0.5rem; min-width: 0; width: calc(100% - 1rem); height: 100%; diff --git a/packages/ui/src/plugin.ts b/packages/ui/src/plugin.ts index cf078edf597..f66a47496af 100644 --- a/packages/ui/src/plugin.ts +++ b/packages/ui/src/plugin.ts @@ -84,6 +84,7 @@ export const uis = plugin(uiId, { Japanese: '' as IntlString, Korean: '' as IntlString, Turkish: '' as IntlString, + Arabic: '' as IntlString, PortugueseBrazil: '' as IntlString, MinutesBefore: '' as IntlString, HoursBefore: '' as IntlString, diff --git a/plugins/achievement-assets/lang/ar.json b/plugins/achievement-assets/lang/ar.json new file mode 100644 index 00000000000..5113690e254 --- /dev/null +++ b/plugins/achievement-assets/lang/ar.json @@ -0,0 +1,8 @@ +{ + "string": { + "Achievements": "الإنجازات", + "EarliestAdopter": "أول المنضمين", + "Epic": "ملحمي", + "Legendary": "أسطوري" + } +} diff --git a/plugins/activity-assets/lang/ar.json b/plugins/activity-assets/lang/ar.json new file mode 100644 index 00000000000..0df8e30364a --- /dev/null +++ b/plugins/activity-assets/lang/ar.json @@ -0,0 +1,61 @@ +{ + "string": { + "Activity": "النشاط", + "Added": "أضاف", + "All": "الكل", + "AllActivity": "كل النشاط", + "Attributes": "السمات", + "Changed": "غيّر", + "CollectionUpdated": "تحديث {collection}", + "Created": "أنشأ", + "DocAdded": "أضاف {_class}", + "DocCreated": "أنشأ {_class}", + "DocDeleted": "حذف {_class}", + "Edit": "تعديل", + "Edited": "مُعدّل", + "Emoji": "إيموجي", + "For": "لـ", + "From": "من", + "In": "في", + "At": "في", + "LastReply": "آخر رد", + "New": "جديد", + "NewestFirst": "الأحدث أولاً", + "Pinned": "مثبّت", + "Reacted": "تفاعل", + "Reactions": "التفاعلات", + "Reaction": "تفاعل", + "Removed": "أزال", + "Replies": "الردود", + "RepliesCount": "{replies, plural, =1 {# رد} other {# ردود}}", + "Set": "عيّن", + "To": "إلى", + "Unset": "إلغاء التعيين", + "Update": "تحديث", + "Updated": "مُحدّث", + "UpdatedCollection": "مُحدّث", + "Message": "رسالة", + "Mentioned": "أشار", + "You": "أنت", + "Mentions": "الإشارات", + "MentionedYouIn": "أشار إليك في {title}", + "Messages": "الرسائل", + "Thread": "المحادثة", + "AddReaction": "إضافة تفاعل", + "SaveForLater": "حفظ لوقت لاحق", + "RemoveFromLater": "إزالة من المحفوظات", + "ReactionNotificationTitle": "تفاعل على {title}", + "ReactionNotificationBody": "{senderName}: {reaction}", + "NewObject": "{object} جديد", + "RemovedObject": "تمت إزالة {object}", + "ChangedObject": "تم تغيير {object}", + "UnsetObject": "تم إلغاء تعيين {object}", + "UpdatedObject": "تم تحديث {object}", + "NewObjectType": "{type} جديد: {title}", + "RemovedObjectType": "تمت إزالة {type} : {title}", + "AddedTag": "تمت إضافة وسم: {title}", + "RemovedTag": "تمت إزالة وسم: {title}", + "AttributeSetTo": "تم تعيين {name} إلى {value}", + "ValueTooLarge": "القيمة كبيرة جداً بحيث لا يمكن عرضها" + } +} diff --git a/plugins/activity-resources/src/components/ActivityDocLink.svelte b/plugins/activity-resources/src/components/ActivityDocLink.svelte index 08b0ad553f4..f8134340cdb 100644 --- a/plugins/activity-resources/src/components/ActivityDocLink.svelte +++ b/plugins/activity-resources/src/components/ActivityDocLink.svelte @@ -35,7 +35,7 @@ diff --git a/plugins/activity-resources/src/components/Replies.svelte b/plugins/activity-resources/src/components/Replies.svelte index 60415a948b7..478420424c7 100644 --- a/plugins/activity-resources/src/components/Replies.svelte +++ b/plugins/activity-resources/src/components/Replies.svelte @@ -134,11 +134,11 @@ border-radius: 0.5rem; padding: 0.25rem 0.5rem; height: 2.125rem; - margin-left: -0.5rem; + margin-inline-start: -0.5rem; min-width: 14.5rem; .plus { - margin-left: 0.25rem; + margin-inline-start: 0.25rem; } .repliesCount { @@ -151,11 +151,11 @@ .lastReply { flex: 1; font-size: 0.75rem; - margin-right: 0.25rem; + margin-inline-end: 0.25rem; } .notifyMarker { - margin-right: 0.25rem; + margin-inline-end: 0.25rem; width: 0.425rem; height: 0.425rem; border-radius: 50%; diff --git a/plugins/activity-resources/src/components/activity-message/ActivityMessageHeader.svelte b/plugins/activity-resources/src/components/activity-message/ActivityMessageHeader.svelte index 6b6c3d313e3..485045575a5 100644 --- a/plugins/activity-resources/src/components/activity-message/ActivityMessageHeader.svelte +++ b/plugins/activity-resources/src/components/activity-message/ActivityMessageHeader.svelte @@ -60,7 +60,7 @@ diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte index 20a2275b1c2..bb0e5e0d665 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageHeader.svelte @@ -84,7 +84,7 @@ diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte index 1e3764af17a..7da242c7a18 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessagePreview.svelte @@ -144,10 +144,10 @@ overflow: hidden; max-height: 1.25rem; color: var(--global-primary-TextColor); - margin-left: var(--spacing-0_5); + margin-inline-start: var(--spacing-0_5); &.contentOnly { - margin-left: 0; + margin-inline-start: 0; } } diff --git a/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte b/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte index 5dc87f8c750..1d5a6cfc5e2 100644 --- a/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/attributes/SetAttributesPresenter.svelte @@ -113,13 +113,13 @@ &.left { border-top: 0.25rem solid transparent; border-bottom: 0.25rem solid transparent; - border-left: 0.25rem solid var(--global-primary-LinkColor); - border-right: none; + border-inline-start: 0.25rem solid var(--global-primary-LinkColor); + border-inline-end: none; } &.down { - border-left: 0.25rem solid transparent; - border-right: 0.25rem solid transparent; + border-inline-start: 0.25rem solid transparent; + border-inline-end: 0.25rem solid transparent; border-top: 0.25rem solid var(--global-primary-LinkColor); border-bottom: none; } @@ -130,7 +130,7 @@ .triangle { &.left { - border-left-color: var(--global-focus-BorderColor); + border-inline-start-color: var(--global-focus-BorderColor); } &.down { diff --git a/plugins/activity-resources/src/components/reactions/Reactions.svelte b/plugins/activity-resources/src/components/reactions/Reactions.svelte index 186c7dca1ab..fc10d0b29d5 100644 --- a/plugins/activity-resources/src/components/reactions/Reactions.svelte +++ b/plugins/activity-resources/src/components/reactions/Reactions.svelte @@ -111,7 +111,7 @@ .counter { font-size: 0.75rem; color: var(--global-secondary-TextColor); - margin-left: 0.25rem; + margin-inline-start: 0.25rem; } .hulyReactions-button { diff --git a/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte b/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte index 4baa5a5acfa..cc02035f214 100644 --- a/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte +++ b/plugins/activity-resources/src/components/reactions/ReactionsPreview.svelte @@ -84,6 +84,6 @@ .preview { cursor: pointer; white-space: nowrap; - margin-left: 0.5rem; + margin-inline-start: 0.5rem; } diff --git a/plugins/ai-assistant-assets/lang/ar.json b/plugins/ai-assistant-assets/lang/ar.json new file mode 100644 index 00000000000..d46a95adcf8 --- /dev/null +++ b/plugins/ai-assistant-assets/lang/ar.json @@ -0,0 +1,13 @@ +{ + "string": { + "IntegrationLabel": "المساعد الذكي", + "IntegrationDescription": "مساعدك الشخصي المدعوم بالذكاء الاصطناعي الذي يساعدك على تنظيم سير عملك اليومي وأتمتته وتبسيطه عبر المنصة", + "ConfigLabel": "المساعد الذكي", + "ConfigDescription": "مساعد شخصي مدعوم بالذكاء الاصطناعي", + "Connect": "اتصال", + "Cancel": "إلغاء", + "Status": "الحالة", + "FailedToConnect": "خدمة المساعد الذكي غير متاحة", + "Configure": "تهيئة المساعد الذكي" + } +} diff --git a/plugins/analytics-collector-assets/lang/ar.json b/plugins/analytics-collector-assets/lang/ar.json new file mode 100644 index 00000000000..444520a3731 --- /dev/null +++ b/plugins/analytics-collector-assets/lang/ar.json @@ -0,0 +1,22 @@ +{ + "string": { + "OnboardingChannelDescription": "المستخدم: {user}؛ مساحة العمل: {workspace}", + "Error": "خطأ: ", + "InProject": " في المشروع ", + "NavigateToSpecial": "{app}: فتح {special}", + "OpenSpecial": "فتح {special} ", + "Set": "تعيين ", + "To": " إلى ", + "Open": "فتح ", + "Workbench": "منضدة العمل: ", + "OnboardingChannel": "قناة الإعداد", + "OnboardingChannels": "قنوات الإعداد", + "WorkspaceId": "معرّف مساحة العمل", + "WorkspaceName": "اسم مساحة العمل", + "WorkspaceUrl": "عنوان URL لمساحة العمل", + "Account": "الحساب", + "UserName": "اسم المستخدم", + "DisableAIReplies": "تعطيل ردود الذكاء الاصطناعي", + "ShowAIReplies": "إظهار ردود الذكاء الاصطناعي" + } +} diff --git a/plugins/attachment-assets/lang/ar.json b/plugins/attachment-assets/lang/ar.json new file mode 100644 index 00000000000..aa422d28927 --- /dev/null +++ b/plugins/attachment-assets/lang/ar.json @@ -0,0 +1,59 @@ +{ + "string": { + "UploadDropFilesHere": "ارفع الملفات أو أفلتها هنا", + "NoAttachments": "لا توجد مرفقات لهذا العنصر", + "NoParticipants": "لم تتم إضافة مشاركين", + "AddAttachment": "رفع مرفقًا", + "Attachments": "المرفقات", + "Photos": "الصور", + "File": "ملف", + "Files": "الملفات", + "NoFiles": "لا توجد ملفات", + "ShowMoreAttachments": "عرض المزيد", + "Type": "النوع", + "Size": "الحجم", + "Photo": "صورة", + "Date": "التاريخ", + "LastModified": "آخر تعديل", + "Name": "الاسم", + "FileBrowser": "متصفح الملفات", + "FileBrowserFileCounter": "{results, plural, =1 {# نتيجة} other {# نتائج}}", + "FileBrowserListView": "قائمة", + "FileBrowserGridView": "شبكة", + "FileBrowserFilterFrom": "من", + "FileBrowserFilterIn": "في", + "FileBrowserFilterDate": "التاريخ", + "FileBrowserFilterFileType": "نوع الملف", + "FileBrowserSort": "ترتيب", + "FileBrowserSortNewest": "الأحدث", + "FileBrowserSortOldest": "الأقدم", + "FileBrowserSortAZ": "من أ إلى ي", + "FileBrowserSortZA": "من ي إلى أ", + "FileBrowserSortSmallest": "الأصغر حجمًا", + "FileBrowserSortBiggest": "الأكبر حجمًا", + "FileBrowserDateFilterAny": "أي وقت", + "FileBrowserDateFilterToday": "اليوم", + "FileBrowserDateFilterYesterday": "أمس", + "FileBrowserDateFilter7Days": "آخر 7 أيام", + "FileBrowserDateFilter30Days": "آخر 30 يومًا", + "FileBrowserDateFilter3Months": "آخر 3 أشهر", + "FileBrowserDateFilter12Months": "آخر 12 شهرًا", + "FileBrowserTypeFilterAny": "أي نوع ملف", + "FileBrowserTypeFilterImages": "الصور", + "FileBrowserTypeFilterAudio": "الصوت", + "FileBrowserTypeFilterVideos": "الفيديو", + "FileBrowserTypeFilterPDFs": "ملفات PDF", + "AddAttachmentToSaved": "إضافة المرفق إلى المحفوظات", + "RemoveAttachmentFromSaved": "إزالة المرفق من المحفوظات", + "DeleteFile": "حذف الملف", + "Description": "الوصف", + "Pinned": "مهم", + "PinAttachment": "وضع علامة كمهم", + "UnPinAttachment": "وضع علامة كأقل أهمية", + "FilterAttachments": "المرفقات", + "RemovedAttachment": "تمت إزالة المرفق", + "ContentType": "نوع المحتوى", + "OpenInWindow": "فتح في نافذة", + "Embeddings": "التضمينات" + } +} diff --git a/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte b/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte index 666e4d3767c..2a9f2d74eac 100644 --- a/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte +++ b/plugins/attachment-resources/src/components/AttachmentGalleryPresenter.svelte @@ -152,14 +152,14 @@ .eCellInfoData { display: flex; flex-direction: column; - margin-left: 1rem; + margin-inline-start: 1rem; } .eCellInfoMenu { - margin-left: auto; + margin-inline-start: auto; position: absolute; bottom: 1rem; - right: 0.5rem; + inset-inline-end: 0.5rem; } .eCellInfoFilename { diff --git a/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte b/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte index 9fb081d82d7..5c310a68d85 100644 --- a/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte +++ b/plugins/attachment-resources/src/components/AttachmentImagePreview.svelte @@ -106,7 +106,7 @@ .image-overlay { position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; display: flex; diff --git a/plugins/attachment-resources/src/components/AttachmentPopup.svelte b/plugins/attachment-resources/src/components/AttachmentPopup.svelte index 799ccce04fd..cf0bea76e48 100644 --- a/plugins/attachment-resources/src/components/AttachmentPopup.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPopup.svelte @@ -137,8 +137,8 @@ .header { border-bottom: 1px solid var(--theme-divider-color); padding: 1rem 1.5rem; - margin-right: -0.5rem; - margin-left: -0.5rem; + margin-inline-end: -0.5rem; + margin-inline-start: -0.5rem; margin-bottom: 1rem; } diff --git a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte index 43ede45b2c7..7c492c52486 100644 --- a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte @@ -283,7 +283,7 @@ height: 100%; background-color: var(--theme-button-default); border: 1px solid var(--theme-button-border); - border-left: none; + border-inline-start: none; border-radius: 0 0.25rem 0.25rem 0; } .no-line:hover ~ .info-container, diff --git a/plugins/attachment-resources/src/components/AttachmentPreview.svelte b/plugins/attachment-resources/src/components/AttachmentPreview.svelte index f6cd7777fb9..200174c252f 100644 --- a/plugins/attachment-resources/src/components/AttachmentPreview.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPreview.svelte @@ -87,14 +87,14 @@ height: fit-content; &.extraWidth { - padding-right: 2.5rem; + padding-inline-end: 2.5rem; } .actions { visibility: hidden; position: absolute; top: 0.25rem; - right: 0.25rem; + inset-inline-end: 0.25rem; padding: 0.125rem; background-color: var(--theme-comp-header-color); border: 1px solid var(--theme-divider-color); diff --git a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte index d97660caa00..3ef85450eb7 100644 --- a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte +++ b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte @@ -557,8 +557,8 @@ overflow-y: hidden; .item + .item { - padding-left: 1rem; - border-left: 1px solid var(--theme-divider-color); + padding-inline-start: 1rem; + border-inline-start: 1px solid var(--theme-divider-color); } } diff --git a/plugins/attachment-resources/src/components/AttachmentsGalleryView.svelte b/plugins/attachment-resources/src/components/AttachmentsGalleryView.svelte index d74e264b6de..daec9a990e9 100644 --- a/plugins/attachment-resources/src/components/AttachmentsGalleryView.svelte +++ b/plugins/attachment-resources/src/components/AttachmentsGalleryView.svelte @@ -89,7 +89,7 @@ .eAttachmentCellMenu { visibility: hidden; - margin-left: 0.2rem; + margin-inline-start: 0.2rem; opacity: 0.6; cursor: pointer; diff --git a/plugins/attachment-resources/src/components/AttachmentsListView.svelte b/plugins/attachment-resources/src/components/AttachmentsListView.svelte index ea870418fc2..d91b02511a8 100644 --- a/plugins/attachment-resources/src/components/AttachmentsListView.svelte +++ b/plugins/attachment-resources/src/components/AttachmentsListView.svelte @@ -86,7 +86,7 @@ .eAttachmentRowMenu { visibility: hidden; - margin-left: 0.2rem; + margin-inline-start: 0.2rem; opacity: 0.6; cursor: pointer; diff --git a/plugins/attachment-resources/src/components/LinkPreview.svelte b/plugins/attachment-resources/src/components/LinkPreview.svelte index 5137d577884..4ddd5b3c8ab 100644 --- a/plugins/attachment-resources/src/components/LinkPreview.svelte +++ b/plugins/attachment-resources/src/components/LinkPreview.svelte @@ -115,7 +115,7 @@ } .link-preview__delete-button { - margin-left: auto; + margin-inline-start: auto; cursor: pointer; visibility: hidden; diff --git a/plugins/attachment-resources/src/components/LinkPreviewCard.svelte b/plugins/attachment-resources/src/components/LinkPreviewCard.svelte index d21bfbf2e3d..78ed7055d79 100644 --- a/plugins/attachment-resources/src/components/LinkPreviewCard.svelte +++ b/plugins/attachment-resources/src/components/LinkPreviewCard.svelte @@ -118,7 +118,7 @@ height: 100%; background-color: var(--theme-button-default); border: 1px solid var(--theme-button-border); - border-left: none; + border-inline-start: none; border-radius: 0 0.25rem 0.25rem 0; } .no-line:hover ~ .info-container, diff --git a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte index a3347653f5c..8250eaa55b2 100644 --- a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte +++ b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte @@ -150,7 +150,7 @@ } .link-preview__delete-button { - margin-left: auto; + margin-inline-start: auto; cursor: pointer; visibility: hidden; diff --git a/plugins/attachment-resources/src/components/Photos.svelte b/plugins/attachment-resources/src/components/Photos.svelte index eea1aafb26c..73239d4e03c 100644 --- a/plugins/attachment-resources/src/components/Photos.svelte +++ b/plugins/attachment-resources/src/components/Photos.svelte @@ -176,7 +176,7 @@ min-height: 5rem; } &:not(:last-child) { - margin-right: 0.625rem; + margin-inline-end: 0.625rem; } } diff --git a/plugins/billing-assets/lang/ar.json b/plugins/billing-assets/lang/ar.json new file mode 100644 index 00000000000..c238034642d --- /dev/null +++ b/plugins/billing-assets/lang/ar.json @@ -0,0 +1,63 @@ +{ + "string": { + "Billing": "الفوترة", + "Subscriptions": "الاشتراكات", + "AllPlans": "جميع الخطط", + "ActivePlan": "الخطة النشطة", + "ResourceUsage": "استخدام الموارد", + "DriveSize": "حجم الملفات", + "DriveCount": "عدد الملفات", + "OfficeSessionsDuration": "مدة الاجتماعات", + "OfficeSessionsBandwidth": "عرض نطاق الاجتماعات", + "OfficeEgressDuration": "مدة التسجيل", + "AI": "الذكاء الاصطناعي", + "TranscriptionTime": "وقت التفريغ النصي", + "TotalTokens": "إجمالي الرموز", + "Tier": "المستوى", + "StorageLimit": "{limit} {unit} تخزين", + "TrafficLimit": "{limit} {unit} حركة بيانات فيديو/صوت", + "Common": "Common", + "CommonDescription": "للأفراد والفرق الذين يبدأون رحلتهم مع Huly.", + "Rare": "Rare", + "RareDescription": "للمبدعين الأفراد والمستقلين والوكالات المصغّرة.", + "Epic": "Epic", + "EpicDescription": "للشركات الإبداعية الاحترافية والأعمال الصغيرة.", + "Legendary": "Legendary", + "LegendaryDescription": "الأفضل للفرق الكبيرة المتعددة التي تحتاج إلى أقصى الإمكانات.", + "UnlimitedUsers": "مستخدمون بلا حدود", + "UnlimitedObjects": "كائنات Huly بلا حدود", + "ChangePlan": "تغيير الخطة", + "Subscribe": "اشتراك", + "Monthly": "شهري", + "Active": "نشط", + "NoActivePlan": "لا توجد خطة نشطة", + "SelectPlanToBegin": "اختر خطة من الأسفل للبدء", + "SubscriptionEnds": "حتى {date}", + "SubscriptionRenews": "التجديد التالي: {date}", + "SubscriptionValidUntil": "صالح حتى {date}", + "ProcessingPayment": "جارٍ معالجة الدفع...", + "Downgrade": "تخفيض الخطة", + "CancelSubscription": "إلغاء الاشتراك", + "ConfirmUpgrade": "ترقية الاشتراك؟", + "ConfirmDowngrade": "تخفيض الاشتراك؟", + "ConfirmCancel": "إلغاء الاشتراك؟", + "UpgradeDescription": "سيتم محاسبتك بمبلغ يصل إلى ${amount} فورًا. يعتمد المبلغ الدقيق على فترة الفوترة الحالية لديك.", + "DowngradeDescription": "ستحصل على رصيد يصل إلى ${amount} مقابل المدة المتبقية من الاشتراك. يسري التخفيض فورًا.", + "CancelDescription": "سيبقى اشتراكك نشطًا حتى نهاية فترة الفوترة.", + "UncancelSubscription": "إعادة تفعيل الاشتراك", + "ConfirmUncancel": "إعادة تفعيل الاشتراك؟", + "UncancelDescription": "ستتم إعادة تفعيل اشتراكك ومتابعته من نهاية فترة الفوترة الحالية.", + "PriceDifference": "فرق السعر: {amount}", + "DialogCancel": "إلغاء", + "DialogConfirm": "تأكيد", + "StorageUsage": "التخزين", + "TrafficUsage": "حركة بيانات الفيديو/الصوت", + "Usage": "الاستخدام", + "Of": "من", + "UpgradePlan": "ترقية الخطة", + "LimitReached": "تم الوصول إلى حد مساحة العمل، وقد تتعطل بعض الوظائف. قم بالترقية لاستعادة الوصول الكامل.", + "RestrictedPlans": "يمكن فقط لمالك مساحة العمل أو مدير الفوترة تغيير خطة الاشتراك", + "SubscriptionOperationFailed": "فشلت عملية الاشتراك", + "SubscriptionErrorMessage": "حدث خطأ ما. يُرجى المحاولة مرة أخرى أو التواصل مع الدعم." + } +} diff --git a/plugins/bitrix-assets/lang/ar.json b/plugins/bitrix-assets/lang/ar.json new file mode 100644 index 00000000000..264486d7f7a --- /dev/null +++ b/plugins/bitrix-assets/lang/ar.json @@ -0,0 +1,18 @@ +{ + "string": { + "BitrixTokenUrl": "رابط رمز Bitrix24", + "Bitrix": "", + "BitrixDesc": "تكامل Bitrix 24", + "Settings": "تكوين", + "NotAllowed": "غير مسموح بدون صلاحيات إدارية", + "BitrixEntityType": "تعيين الكيانات", + "FieldMapping": "تعيين الحقول", + "AddField": "إضافة تعيين", + "Attribute": "السمة", + "MapField": "تعيين...", + "BitrixImport": "المزامنة مع Bitrix", + "AddMapping": "إضافة تعيين كيان", + "ConfigLabel": "Bitrix24", + "ConfigDescription": "ملحق لتكامل Bitrix 24" + } +} diff --git a/plugins/board-assets/lang/ar.json b/plugins/board-assets/lang/ar.json new file mode 100644 index 00000000000..3a38e98bd86 --- /dev/null +++ b/plugins/board-assets/lang/ar.json @@ -0,0 +1,107 @@ +{ + "string": { + "Completed": "مكتمل", + "Name": "الاسم", + "CreateBoard": "إنشاء لوحة", + "OpenCard": "فتح البطاقة", + "CreateCard": "إنشاء بطاقة", + "CardName": "اسم البطاقة", + "Cards": "البطاقات", + "SelectBoard": "اختيار لوحة", + "More": "المزيد...", + "Title": "العنوان", + "ManageBoardStatuses": "إدارة حالات اللوحة", + "BoardName": "اللوحة", + "CardCreateLabel": "بطاقة", + "CardPlaceholder": "عنصر نائب للبطاقة", + "Board": "اللوحة", + "Boards": "اللوحات", + "MyBoards": "لوحاتي", + "BoardApplication": "اللوحات", + "Card": "البطاقة", + "Assignee": "المُسنَد إليه", + "Description": "الوصف", + "DescriptionPlaceholder": "أضف وصفًا أكثر تفصيلًا...", + "Location": "الموقع", + "Members": "الأعضاء", + "IsArchived": "مؤرشف", + "BoardCreateLabel": "لوحة", + "Settings": "الإعدادات", + "Suggested": "مقترح", + "Labels": "التسميات", + "CreateLabel": "إنشاء تسمية جديدة", + "SearchLabels": "البحث في التسميات...", + "SelectColor": "اختيار لون", + "NoColor": "بلا لون.", + "NoColorInfo": "لن يظهر هذا على واجهة البطاقات.", + "Checklists": "قوائم المهام", + "ChecklistDropdownNone": "(بلا)", + "ShowDoneChecklistItems": "عرض العناصر المحددة ({done})", + "HideDoneChecklistItems": "إخفاء العناصر المحددة", + "CopyChecklistFrom": "نسخ العناصر من...", + "Dates": "التواريخ", + "Attachments": "المرفقات", + "AddAttachment": "إضافة مرفق", + "DropFileToUpload": "أفلت الملفات للرفع.", + "AttachFrom": "إرفاق من...", + "AttachmentTip": "تلميح: يمكنك سحب الملفات وإفلاتها على البطاقات لرفعها.", + "Computer": "الحاسوب", + "CustomFields": "حقول مخصصة", + "AddButton": "إضافة زر", + "Actions": "الإجراءات", + "Cover": "الغلاف", + "Join": "انضمام", + "Move": "نقل", + "Copy": "نسخ", + "MakeTemplate": "إنشاء قالب", + "Archive": "أرشفة", + "SendToBoard": "إرسال إلى اللوحة", + "Delete": "حذف", + "HideDetails": "إخفاء التفاصيل", + "ShowDetails": "عرض التفاصيل", + "NewList": "إضافة قائمة أخرى", + "AddList": "إضافة قائمة", + "NewListPlaceholder": "أدخل عنوان القائمة...", + "AddACard": "إضافة بطاقة", + "AddCard": "إضافة بطاقة", + "CardTitlePlaceholder": "أدخل عنوانًا لهذه البطاقة...", + "MoveCard": "نقل البطاقة", + "SelectDestination": "اختيار الوجهة", + "Create": "إنشاء", + "CreateDescription": "إذا أردت، يمكننا إنشاء بطاقة لكل سطر جديد ({number}). كما يمكنك إنشاء بطاقة واحدة بعنوان طويل.", + "CreateSingle": "بطاقة واحدة فقط", + "CreateMultiple": "إنشاء {number} بطاقة", + "Cancel": "إلغاء", + "List": "القائمة", + "Position": "الموضع", + "Current": "{label} (الحالي)", + "Save": "حفظ", + "Remove": "إزالة", + "NullDate": "M/D/YYYY", + "ViewProfile": "عرض الملف الشخصي", + "RemoveFromCard": "إزالة من البطاقة", + "LinkName": "اسم الرابط", + "Edit": "تعديل", + "Update": "تحديث", + "DeleteAttachment": "حذف المرفق نهائي. لا يمكن التراجع عنه.", + "DeleteCard": "ستتم إزالة جميع الإجراءات من سجل النشاط ولن تتمكن من إعادة فتح البطاقة. لا يمكن التراجع عن ذلك.", + "SearchMembers": "البحث في الأعضاء", + "Menu": "القائمة", + "ShowMenu": "عرض القائمة", + "ToArchive": "أرشفة", + "CopyCard": "نسخ البطاقة", + "AlsoCopy": "الإبقاء على...", + "CopyTo": "نسخ إلى...", + "NoResults": "لا توجد نتائج", + "SwitchToLists": "التبديل إلى القوائم", + "SwitchToCards": "التبديل إلى البطاقات", + "SearchArchive": "البحث في الأرشيف...", + "Size": "الحجم", + "RemoveCover": "إزالة الغلاف", + "DeleteChecklist": "حذف قائمة المهام", + "DeleteChecklistConfirm": "حذف قائمة المهام نهائي ولا توجد طريقة لاستعادتها.", + "ConvertToCard": "تحويل إلى بطاقة", + "ConfigLabel": "اللوحة", + "ConfigDescription": "امتداد لإدارة لوحات Kanban." + } +} diff --git a/plugins/board-resources/src/components/add-card/AddMultipleCardsPopup.svelte b/plugins/board-resources/src/components/add-card/AddMultipleCardsPopup.svelte index 25139baa09f..a03b8cb13a8 100644 --- a/plugins/board-resources/src/components/add-card/AddMultipleCardsPopup.svelte +++ b/plugins/board-resources/src/components/add-card/AddMultipleCardsPopup.svelte @@ -42,7 +42,7 @@ .close-icon { position: absolute; top: 0.75rem; - right: 0.75rem; + inset-inline-end: 0.75rem; } .header { diff --git a/plugins/calendar-assets/lang/ar.json b/plugins/calendar-assets/lang/ar.json new file mode 100644 index 00000000000..6ffe9a122e1 --- /dev/null +++ b/plugins/calendar-assets/lang/ar.json @@ -0,0 +1,129 @@ +{ + "string": { + "ApplicationLabelCalendar": "التقويم", + "Calendars": "التقويمات", + "Participants": "المشاركون", + "NoParticipants": "لم تتم إضافة مشاركين", + "PersonsLabel": "{name}", + "AddDescription": "إضافة وصف", + "Date": "التاريخ", + "DueTo": "تاريخ الاستحقاق", + "Description": "الوصف", + "Title": "العنوان", + "Location": "الموقع", + "Company": "الشركة", + "CreateCalendar": "إنشاء تقويم", + "Calendar": "التقويم", + "Events": "الأحداث", + "Event": "حدث", + "ModeDay": "يوم", + "ModeWeek": "أسبوع", + "ModeMonth": "شهر", + "ModeYear": "سنة", + "Today": "اليوم", + "TableView": "جدول", + "DueMinutes": "{minutes, plural, =0 {أقل من دقيقة} =1 {دقيقة واحدة} other {# دقيقة}}", + "DueHours": "{hours, plural, =0 {أقل من ساعة} =1 {ساعة واحدة} other {# ساعة}}", + "DueDays": "{days, plural, =0 {اليوم} =1 {يوم واحد} other {# يوم}}", + "Reminder": "تذكير", + "ReminderTime": "وقت التذكير", + "RemindMeAt": "ذكّرني في", + "CreateReminder": "إنشاء تذكير", + "CreatedReminder": "تم إنشاء تذكير", + "Reminders": "التذكيرات", + "Shift": "الإزاحة", + "State": "الحالة", + "NoReminders": "لا توجد تذكيرات", + "AllDay": "طوال اليوم", + "AndMore": "و{count} أخرى", + "CreateEvent": "إنشاء حدث", + "EventFor": "حدث لـ: ", + "ConfigLabel": "التقويم", + "ConfigDescription": "امتداد لعرض التقويم مع الأحداث", + "HideDetails": "إخفاء التفاصيل", + "ReccuringEvent": "حدث متكرر", + "ExternalParticipants": "مشاركون خارجيون", + "IntegrationDescr": "مزامنة الأحداث والمهام مع Google Calendar الخاص بك", + "Connect": "اتصال", + "RedirectGoogle": "ستتم إعادة توجيهك إلى صفحة مصادقة Google. يُرجى التأكد من تحديد جميع الأذونات.", + "ConnectCalendar": "ربط حساب Google Calendar", + "EditRecEvent": "تحرير الحدث المتكرر", + "RemoveRecEvent": "إزالة الحدث المتكرر", + "ThisEvent": "هذا الحدث", + "ThisAndNext": "هذا الحدث والأحداث التالية", + "AllEvents": "جميع الأحداث", + "EventTitlePlaceholder": "عنوان الحدث", + "TimeZone": "المنطقة الزمنية", + "Repeat": "تكرار", + "On": "في", + "Every": "كل", + "After": "بعد", + "Ends": "ينتهي", + "Never": "أبدًا", + "Day": "يوم", + "Week": "أسبوع", + "Month": "شهر", + "Year": "سنة", + "MondayShort": "إث", + "TuesdayShort": "ثل", + "WednesdayShort": "أر", + "ThursdayShort": "خم", + "FridayShort": "جم", + "SaturdayShort": "سب", + "SundayShort": "أح", + "OnUntil": "في", + "Times": "{count, plural, one {مرة} other {مرات}}", + "AddParticipants": "إضافة مشاركين", + "Sync": "المزامنة", + "Busy": "مشغول", + "AddReminder": "إضافة تذكير", + "SeeAllNumberParticipants": "{value, plural, other {عرض جميع المشاركين #}}", + "SeeAllNumberReminders": "{value, plural, other {عرض جميع التذكيرات #}}", + "Visibility": "الظهور", + "Private": "مرئي لك فقط", + "Public": "مرئي للجميع", + "FreeBusy": "متاح/مشغول", + "DefaultVisibility": "الظهور الافتراضي", + "NotAllPermissions": "لم يتم منح جميع الأذونات", + "GooglePrivacy": "سيلتزم استخدام Huly ونقلها للمعلومات الواردة من Google APIs إلى أي تطبيق آخر بـ سياسة بيانات مستخدمي خدمات Google API، بما في ذلك متطلبات الاستخدام المحدود.", + "Value": "{value}", + "Schedule": "جدول عام", + "ScheduleNew": "إضافة جدول", + "ScheduleDeleteConfirm": "سيتم حذف الجدول. هل تؤكد؟", + "ScheduleShareLink": "مشاركة الرابط", + "ScheduleSharedLinkMessage": "

شارك هذا الرابط للسماح للآخرين بحجز اجتماع معك:

{link}

", + "ScheduleAvailability": "التوفر", + "ScheduleUnavailable": "غير متاح", + "ScheduleTitlePlaceholder": "عنوان الجدول", + "ScheduleAddPeriod": "إضافة فترة", + "ScheduleRemovePeriod": "إزالة الفترة", + "MeetingDuration": "مدة الاجتماع", + "MeetingInterval": "الفاصل بين الاجتماعات", + "CalDavAccess": "وصول CalDAV", + "CalDavAccessPrompt": "يتيح بروتوكول CalDAV مزامنة تقويم Huly الشخصي الخاص بك مع تطبيقات التقويم الخارجية. استخدم هذا الحساب وكلمة المرور المقترحة لتسجيل خادم Huly CalDAV في تطبيق عميل التقويم.", + "CalDavAccessEnable": "تمكين وصول CalDAV إلى التقويم الشخصي في مساحة العمل {ws}", + "CalDavAccessServer": "خادم CalDAV", + "CalDavAccessAccount": "حساب Huly", + "CalDavAccessPassword": "كلمة المرور", + "CalDavAccessPasswordWarning": "لن تتمكن من رؤية كلمة المرور هذه مرة أخرى. يُرجى حفظها في مكان آمن.", + "MeetingScheduledNotification": "تمت جدولة الاجتماع", + "MeetingRescheduledNotification": "تم تغيير وقت الاجتماع", + "MeetingCanceledNotification": "تم إلغاء الاجتماع: {title}", + "PrimaryCalendar": "التقويم الأساسي", + "Hidden": "مخفي", + "Each": "كل", + "OnThe": "في", + "First": "الأول", + "Second": "الثاني", + "Third": "الثالث", + "Fourth": "الرابع", + "Fifth": "الخامس", + "NextToLast": "قبل الأخير", + "Last": "الأخير", + "Weekday": "يوم عمل", + "WeekendDay": "يوم عطلة نهاية الأسبوع", + "SynchronizedCalendars": "التقويمات المتزامنة", + "Account": "الحساب", + "NoCalendars": "لم يتم تحديد تقويمات للمزامنة" + } +} diff --git a/plugins/calendar-resources/src/components/ByDateSelector.svelte b/plugins/calendar-resources/src/components/ByDateSelector.svelte index 3f09e5d82f6..cb71a2b7a76 100644 --- a/plugins/calendar-resources/src/components/ByDateSelector.svelte +++ b/plugins/calendar-resources/src/components/ByDateSelector.svelte @@ -72,13 +72,13 @@ .cell { border-bottom: 1px solid var(--theme-divider-color); - border-right: 1px solid var(--theme-divider-color); + border-inline-end: 1px solid var(--theme-divider-color); display: flex; justify-content: center; align-items: center; &.left-border { - border-left: 1px solid var(--theme-divider-color); + border-inline-start: 1px solid var(--theme-divider-color); } &.top-border { diff --git a/plugins/calendar-resources/src/components/CreateEvent.svelte b/plugins/calendar-resources/src/components/CreateEvent.svelte index c2a8295f18e..6603d9e035d 100644 --- a/plugins/calendar-resources/src/components/CreateEvent.svelte +++ b/plugins/calendar-resources/src/components/CreateEvent.svelte @@ -321,7 +321,7 @@ .top-icon { flex-shrink: 0; margin-top: 1.375rem; - margin-right: 0.125rem; + margin-inline-end: 0.125rem; } } diff --git a/plugins/calendar-resources/src/components/DateEditor.svelte b/plugins/calendar-resources/src/components/DateEditor.svelte index 7ab9bf9da4e..ac0bddde5bc 100644 --- a/plugins/calendar-resources/src/components/DateEditor.svelte +++ b/plugins/calendar-resources/src/components/DateEditor.svelte @@ -203,6 +203,6 @@ .divider { width: 0; height: 1.25rem; - border-left: 1px solid var(--global-ui-BorderColor); + border-inline-start: 1px solid var(--global-ui-BorderColor); } diff --git a/plugins/calendar-resources/src/components/DayCalendar.svelte b/plugins/calendar-resources/src/components/DayCalendar.svelte index 5f821af4aea..3038fe2e17e 100644 --- a/plugins/calendar-resources/src/components/DayCalendar.svelte +++ b/plugins/calendar-resources/src/components/DayCalendar.svelte @@ -1161,8 +1161,8 @@ background-color: var(--highlight-red); } .now-line { - left: 3rem; - right: 0; + inset-inline-start: 3rem; + inset-inline-end: 0; width: 100%; height: 1px; min-height: 1px; @@ -1173,8 +1173,8 @@ &::before { content: ''; top: -0.5rem; - left: -2.75rem; - right: calc(100% - 0.25rem); + inset-inline-start: -2.75rem; + inset-inline-end: calc(100% - 0.25rem); height: 1rem; border-radius: 0.125rem; } @@ -1182,7 +1182,7 @@ position: absolute; content: attr(data-now); top: -0.46rem; - left: -1.25rem; + inset-inline-start: -1.25rem; font-weight: 500; font-size: 0.66rem; color: var(--primary-button-color); @@ -1203,7 +1203,7 @@ } } .empty-cell { - border-left: 1px solid var(--theme-divider-color); + border-inline-start: 1px solid var(--theme-divider-color); border-bottom: 1px solid var(--theme-divider-color); &:not(.weekend) { @@ -1234,8 +1234,8 @@ &-start, &-end { position: absolute; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; height: 0.25rem; border-radius: 0.5rem; cursor: row-resize; @@ -1243,8 +1243,8 @@ &::after { position: absolute; content: ''; - left: -0.25rem; - right: -0.25rem; + inset-inline-start: -0.25rem; + inset-inline-end: -0.25rem; height: 0.5rem; border: 1px solid transparent; transition-property: opacity, border-width, transform; @@ -1323,7 +1323,7 @@ justify-content: center; } &:not(.center) { - padding-left: var(--spacing-3); + padding-inline-start: var(--spacing-3); } .today { @@ -1388,7 +1388,7 @@ .header-time { position: absolute; top: var(--spacing-0_25); - right: var(--spacing-0_25); + inset-inline-end: var(--spacing-0_25); padding: var(--spacing-0_25) var(--spacing-1); font-size: 0.75rem; color: var(--theme-dark-color); diff --git a/plugins/calendar-resources/src/components/EditEvent.svelte b/plugins/calendar-resources/src/components/EditEvent.svelte index d5da0704399..da99a46566e 100644 --- a/plugins/calendar-resources/src/components/EditEvent.svelte +++ b/plugins/calendar-resources/src/components/EditEvent.svelte @@ -285,7 +285,7 @@ .top-icon { flex-shrink: 0; margin-top: 1.375rem; - margin-right: 0.125rem; + margin-inline-end: 0.125rem; &.disabled { margin-top: 0.875rem; diff --git a/plugins/calendar-resources/src/components/EventElement.svelte b/plugins/calendar-resources/src/components/EventElement.svelte index 413e76126e2..c2a09249157 100644 --- a/plugins/calendar-resources/src/components/EventElement.svelte +++ b/plugins/calendar-resources/src/components/EventElement.svelte @@ -87,7 +87,7 @@ font-size: 0.8125rem; background-color: var(--calendar-event-back-color); border: 1px solid var(--calendar-event-border-color); - border-left: 0.25rem solid var(--calendar-event-handle-color); + border-inline-start: 0.25rem solid var(--calendar-event-handle-color); border-radius: 0.25rem; cursor: pointer; padding: 0.25rem 0.5rem 0.25rem 1rem; diff --git a/plugins/calendar-resources/src/components/MonthSelector.svelte b/plugins/calendar-resources/src/components/MonthSelector.svelte index 597b1ee7167..a084b003e6f 100644 --- a/plugins/calendar-resources/src/components/MonthSelector.svelte +++ b/plugins/calendar-resources/src/components/MonthSelector.svelte @@ -63,13 +63,13 @@ .cell { border-bottom: 1px solid var(--theme-divider-color); - border-right: 1px solid var(--theme-divider-color); + border-inline-end: 1px solid var(--theme-divider-color); display: flex; justify-content: center; align-items: center; &.left-border { - border-left: 1px solid var(--theme-divider-color); + border-inline-start: 1px solid var(--theme-divider-color); } &.top-border { diff --git a/plugins/calendar-resources/src/components/ScheduleEditor.svelte b/plugins/calendar-resources/src/components/ScheduleEditor.svelte index d2894cddc78..69b780cb1b7 100644 --- a/plugins/calendar-resources/src/components/ScheduleEditor.svelte +++ b/plugins/calendar-resources/src/components/ScheduleEditor.svelte @@ -481,7 +481,7 @@ .top-icon { flex-shrink: 0; margin-top: 1.375rem; - margin-right: 0.125rem; + margin-inline-end: 0.125rem; } .weekDay { diff --git a/plugins/card-assets/lang/ar.json b/plugins/card-assets/lang/ar.json new file mode 100644 index 00000000000..92c88d21590 --- /dev/null +++ b/plugins/card-assets/lang/ar.json @@ -0,0 +1,90 @@ +{ + "string": { + "Card": "بطاقة", + "CardApplication": "البطاقات", + "Cards": "البطاقات", + "Content": "المحتوى", + "CreateCard": "إنشاء بطاقة", + "AllowCreatingCards": "السماح بإنشاء البطاقات", + "CreateMasterTag": "إنشاء نوع", + "CreateTag": "إنشاء وسم", + "MasterTag": "النوع", + "MasterTags": "الأنواع", + "Parent": "الأصل", + "Tags": "الوسوم", + "Tag": "وسم", + "AddTag": "إضافة وسم", + "CardLibrary": "مكتبة البطاقات", + "MinimizeAll": "تصغير الكل", + "ExpandAll": "توسيع الكل", + "DeleteTag": "حذف الوسم", + "TagRelations": "علاقات الوسم", + "DeleteTagConfirm": "هل أنت متأكد من رغبتك في حذف هذا الوسم؟ سيتم حذف جميع الخصائص المرتبطة به", + "DeleteMasterTag": "حذف النوع", + "DeleteMasterTagConfirm": "هل أنت متأكد من رغبتك في حذف هذا النوع؟ سيتم حذف جميع الكائنات المرتبطة بهذا النوع", + "UnsetParent": "إلغاء تعيين الأصل", + "SetParent": "تعيين الأصل", + "CreateChild": "إنشاء عنصر فرعي", + "Children": "العناصر الفرعية", + "Views": "العروض", + "CreateView": "إنشاء عرض", + "EditView": "تحرير العرض", + "SelectViewType": "اختيار نوع العرض", + "Document": "مستند", + "Documents": "المستندات", + "ChangeType": "تغيير النوع", + "ChangeTypeWarning": "تحذير: تغيير نوع البطاقة سيؤدي إلى إزالة جميع بيانات أي سمات غير موجودة في النوع الهدف. يمكن استعادة بيانات السمات السابقة بإعادة البطاقة إلى نوعها السابق. لن يتأثر محتوى البطاقة.", + "MasterDetailViews": "عروض الرئيسي والتفصيلي", + "SelectType": "اختيار النوع", + "CreateSpace": "إنشاء مساحة", + "NumberTypes": "{count, plural, one {# نوع} other {# أنواع}}", + "Labels": "التسميات", + "Properties": "الخصائص", + "NoChildren": "لا توجد عناصر فرعية", + "ConfigDescription": "امتداد لإدارة المعرفة بأسلوب قواعد البيانات.", + "AddCollaborators": "إضافة متعاونين", + "CardTitle": "العنوان", + "Post": "نشر", + "GetIndividualPublicLink": "الحصول على رابط عام مخصص", + "ShowLess": "عرض أقل", + "CardContent": "ماذا تريد أن تشارك؟", + "Feed": "الموجز", + "AllCards": "جميع البطاقات", + "Favorites": "المفضلة", + "RemoveCard": "إزالة البطاقة", + "UpdateCard": "تحديث البطاقة", + "CreateCardPermission": "إنشاء بطاقة", + "AddTagPermission": "إضافة وسم", + "RemoveTag": "إزالة الوسم", + "ForbidRemoveCard": "منع إزالة البطاقة", + "ForbidUpdateCard": "منع تحديث البطاقة", + "ForbidCreateCardPermission": "منع إنشاء البطاقة", + "ForbidAddTagPermission": "منع إضافة الوسم", + "ForbidRemoveTag": "منع إزالة الوسم", + "Duplicate": "تكرار", + "Version": "الإصدار", + "Versions": "الإصدارات", + "NewVersion": "إصدار جديد", + "Versioning": "إدارة الإصدارات", + "EnableVersioning": "تفعيل إدارة الإصدارات", + "EnableVersioningConfirm": "هل تريد تفعيل إدارة الإصدارات؟", + "NewVersionConfirmation": "هل تريد إنشاء إصدار جديد؟", + "RelationCopyDescr": "ما العلاقات التي تريد نسخها؟", + "Import": "استيراد", + "Export": "تصدير", + "CardUpdated": "تم تحديث البطاقة", + "CardCreated": "تم إنشاء البطاقة", + "MyCards": "بطاقاتي", + "GotoMyCards": "الانتقال إلى بطاقاتي", + "LockSection": "قفل القسم", + "UnLockSection": "إلغاء قفل القسم", + "SectionLocked": "تم قفل القسم {section}", + "SectionUnlocked": "تم إلغاء قفل القسم {section}", + "LayoutAuto": "تلقائي", + "SingleColumn": "عمود واحد", + "TwoColumns": "عمودان", + "Grid": "شبكة", + "RichtextProperties": "خصائص النص المنسق", + "ShowAllVersions": "إظهار جميع الإصدارات" + } +} diff --git a/plugins/card-resources/src/components/CardAttributeEditor.svelte b/plugins/card-resources/src/components/CardAttributeEditor.svelte index 47158c15a79..5324a97b9b1 100644 --- a/plugins/card-resources/src/components/CardAttributeEditor.svelte +++ b/plugins/card-resources/src/components/CardAttributeEditor.svelte @@ -95,7 +95,7 @@ border-bottom: 1px solid var(--theme-divider-color); height: 100%; padding: 1rem; - padding-left: 0; + padding-inline-start: 0; overflow: hidden; &.withoutBorder { diff --git a/plugins/card-resources/src/components/CardPresenter.svelte b/plugins/card-resources/src/components/CardPresenter.svelte index 9a9e81554e1..b119e6a9716 100644 --- a/plugins/card-resources/src/components/CardPresenter.svelte +++ b/plugins/card-resources/src/components/CardPresenter.svelte @@ -135,7 +135,7 @@ diff --git a/plugins/card-resources/src/components/CardTagColored.svelte b/plugins/card-resources/src/components/CardTagColored.svelte index ec90690d320..f447858ed40 100644 --- a/plugins/card-resources/src/components/CardTagColored.svelte +++ b/plugins/card-resources/src/components/CardTagColored.svelte @@ -81,7 +81,7 @@ &.removable { min-width: 3.25rem; - padding-right: 0.25rem; + padding-inline-end: 0.25rem; } } diff --git a/plugins/card-resources/src/components/ColoredCardIcon.svelte b/plugins/card-resources/src/components/ColoredCardIcon.svelte index 88def1302f0..26142f77c19 100644 --- a/plugins/card-resources/src/components/ColoredCardIcon.svelte +++ b/plugins/card-resources/src/components/ColoredCardIcon.svelte @@ -71,7 +71,7 @@ &__marker { position: absolute; top: -0.375rem; - right: 0; + inset-inline-end: 0; transform: translateX(calc(100% - 0.875rem)); display: flex; align-items: center; diff --git a/plugins/card-resources/src/components/Description.svelte b/plugins/card-resources/src/components/Description.svelte index 13b859076b8..a4eed779a90 100644 --- a/plugins/card-resources/src/components/Description.svelte +++ b/plugins/card-resources/src/components/Description.svelte @@ -118,7 +118,7 @@ .toc { width: 1rem; pointer-events: all; - margin-left: -3rem; + margin-inline-start: -3rem; position: sticky; top: 0; } diff --git a/plugins/card-resources/src/components/EditCardTableOfContents.svelte b/plugins/card-resources/src/components/EditCardTableOfContents.svelte index f35c6c3eb10..d9ff197ff8a 100644 --- a/plugins/card-resources/src/components/EditCardTableOfContents.svelte +++ b/plugins/card-resources/src/components/EditCardTableOfContents.svelte @@ -320,7 +320,7 @@ //inset: 0; z-index: 1; top: 0; - right: 0.25rem; + inset-inline-end: 0.25rem; width: 2rem; height: fit-content; @@ -351,8 +351,8 @@ animation: 0.5s fadeIn; animation-fill-mode: forwards; visibility: hidden; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; } @keyframes fadeIn { diff --git a/plugins/card-resources/src/components/NewCardForm.svelte b/plugins/card-resources/src/components/NewCardForm.svelte index 3dfa8b2e84f..6503e3bff3f 100644 --- a/plugins/card-resources/src/components/NewCardForm.svelte +++ b/plugins/card-resources/src/components/NewCardForm.svelte @@ -285,7 +285,7 @@ .corner-container { position: absolute; top: 0.75rem; - right: 1rem; + inset-inline-end: 1rem; z-index: 100; display: flex; align-items: center; @@ -314,7 +314,7 @@ z-index: 1; } &.description { - padding-left: 0.375rem; + padding-inline-start: 0.375rem; margin-top: -2rem; padding-top: 1rem; width: 100%; diff --git a/plugins/card-resources/src/components/ParentNamesPresenter.svelte b/plugins/card-resources/src/components/ParentNamesPresenter.svelte index 0ec37dcbcde..f6d604d13b8 100644 --- a/plugins/card-resources/src/components/ParentNamesPresenter.svelte +++ b/plugins/card-resources/src/components/ParentNamesPresenter.svelte @@ -79,7 +79,7 @@ .cards-container { display: inline-flex; flex-shrink: 1; - margin-left: 0; + margin-inline-start: 0; min-width: calc( (var(--cards-container-card-min-width, 2rem) + 1.26rem) * var(--cards-container-parents, 1) + var(--cards-container-card-min-width, 2rem) diff --git a/plugins/card-resources/src/components/TagsEditor.svelte b/plugins/card-resources/src/components/TagsEditor.svelte index e5c88a66b49..17d44836940 100644 --- a/plugins/card-resources/src/components/TagsEditor.svelte +++ b/plugins/card-resources/src/components/TagsEditor.svelte @@ -162,6 +162,6 @@ border: 1px solid var(--theme-content-color); width: 1px; height: 100%; - margin-left: 0.25rem; + margin-inline-start: 0.25rem; } diff --git a/plugins/card-resources/src/components/settings/EditRole.svelte b/plugins/card-resources/src/components/settings/EditRole.svelte index b30dcba6428..b8f261fc892 100644 --- a/plugins/card-resources/src/components/settings/EditRole.svelte +++ b/plugins/card-resources/src/components/settings/EditRole.svelte @@ -285,13 +285,13 @@ .name { width: 100%; font-weight: 500; - margin-left: 1rem; + margin-inline-start: 1rem; display: flex; align-items: center; font-size: 1.5rem; &.editable { - margin-left: 0; + margin-inline-start: 0; } } diff --git a/plugins/card-resources/src/components/settings/GeneralSection.svelte b/plugins/card-resources/src/components/settings/GeneralSection.svelte index 7de3ad16e8c..9c5c8ffe75e 100644 --- a/plugins/card-resources/src/components/settings/GeneralSection.svelte +++ b/plugins/card-resources/src/components/settings/GeneralSection.svelte @@ -235,8 +235,8 @@ diff --git a/plugins/chunter-resources/src/components/ChannelInput.svelte b/plugins/chunter-resources/src/components/ChannelInput.svelte index f434d8b3b9e..9263f74a501 100644 --- a/plugins/chunter-resources/src/components/ChannelInput.svelte +++ b/plugins/chunter-resources/src/components/ChannelInput.svelte @@ -135,7 +135,7 @@ display: flex; align-items: center; justify-content: center; - margin-left: 0.25rem; + margin-inline-start: 0.25rem; gap: 0.125rem; font-weight: 600; } diff --git a/plugins/chunter-resources/src/components/ChannelSidebarView.svelte b/plugins/chunter-resources/src/components/ChannelSidebarView.svelte index cb22412f115..a4a1b90669c 100644 --- a/plugins/chunter-resources/src/components/ChannelSidebarView.svelte +++ b/plugins/chunter-resources/src/components/ChannelSidebarView.svelte @@ -118,7 +118,7 @@ min-height: 0; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; &.invisible { visibility: hidden; @@ -133,7 +133,7 @@ min-width: 0; min-height: 0; top: 0; - left: 0; + inset-inline-start: 0; background-color: var(--theme-panel-color); } diff --git a/plugins/chunter-resources/src/components/EditChannelDescriptionAttachments.svelte b/plugins/chunter-resources/src/components/EditChannelDescriptionAttachments.svelte index 0c0c5ee06f6..412692e5a96 100644 --- a/plugins/chunter-resources/src/components/EditChannelDescriptionAttachments.svelte +++ b/plugins/chunter-resources/src/components/EditChannelDescriptionAttachments.svelte @@ -133,7 +133,7 @@ } .showMoreAttachmentsButton { - margin-left: 1.5rem; + margin-inline-start: 1.5rem; margin-top: 0.5rem; color: var(--caption-color); cursor: pointer; @@ -145,7 +145,7 @@ .attachmentRow { display: flex; align-items: center; - padding-right: 1rem; + padding-inline-end: 1rem; margin: 0 1.5rem; padding: 0.375rem 0; @@ -158,7 +158,7 @@ } .eAttachmentRowMenu { - margin-left: 0.2rem; + margin-inline-start: 0.2rem; visibility: hidden; opacity: 0.6; cursor: pointer; diff --git a/plugins/chunter-resources/src/components/JumpToDateSelector.svelte b/plugins/chunter-resources/src/components/JumpToDateSelector.svelte index e1b4779bed1..7f76499cae4 100644 --- a/plugins/chunter-resources/src/components/JumpToDateSelector.svelte +++ b/plugins/chunter-resources/src/components/JumpToDateSelector.svelte @@ -70,7 +70,7 @@ position: absolute; content: ''; top: 50%; - left: 0; + inset-inline-start: 0; width: 100%; height: 1px; background-color: var(--highlight-select-border); diff --git a/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte b/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte index f76d1b90096..ea93ff8f87d 100644 --- a/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte +++ b/plugins/chunter-resources/src/components/PinnedMessagesPopup.svelte @@ -126,7 +126,7 @@ visibility: hidden; position: absolute; top: -0.5rem; - right: 0.85rem; + inset-inline-end: 0.85rem; box-shadow: 0.25rem 0.75rem 1rem 0.125rem var(--global-popover-ShadowColor); border: 1px solid var(--global-subtle-ui-BorderColor); background: diff --git a/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte b/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte index fd878caeceb..ee7719617e5 100644 --- a/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte +++ b/plugins/chunter-resources/src/components/ReverseChannelScrollView.svelte @@ -730,8 +730,8 @@ .selectedDate { position: absolute; top: 0; - left: 0; - right: 0; + inset-inline-start: 0; + inset-inline-end: 0; background: transparent; } diff --git a/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte b/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte index 92f9903abde..6f6804d56c4 100644 --- a/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte +++ b/plugins/chunter-resources/src/components/activity/MembersChangedMessage.svelte @@ -117,6 +117,6 @@ } .separator { - margin-left: -0.25rem; + margin-inline-start: -0.25rem; } diff --git a/plugins/chunter-resources/src/components/chat-message/ChatMessageHeader.svelte b/plugins/chunter-resources/src/components/chat-message/ChatMessageHeader.svelte index e6dbacd49f4..c9f801ec237 100644 --- a/plugins/chunter-resources/src/components/chat-message/ChatMessageHeader.svelte +++ b/plugins/chunter-resources/src/components/chat-message/ChatMessageHeader.svelte @@ -24,7 +24,7 @@ diff --git a/plugins/communication-assets/lang/ar.json b/plugins/communication-assets/lang/ar.json new file mode 100644 index 00000000000..4671a15048d --- /dev/null +++ b/plugins/communication-assets/lang/ar.json @@ -0,0 +1,98 @@ +{ + "string": { + "Messages": "الرسائل", + "FirstMessages": "الرسائل الأولى", + "LatestMessages": "أحدث الرسائل", + "Subscribe": "اشتراك", + "Unsubscribe": "إلغاء الاشتراك", + "File": "ملف", + "Files": "الملفات", + "Added": "تمت الإضافة", + "All": "الكل ({count})", + "Attach": "إرفاق", + "Cancel": "إلغاء", + "Edit": "تعديل", + "Edited": "تم التعديل", + "Emoji": "رمز تعبيري", + "HoursAgo": "{hours, plural, =0 {منذ أقل من ساعة} =1 {منذ ساعة} other {منذ # ساعة}}", + "JustNow": "الآن", + "LastReply": "آخر رد", + "Mention": "إشارة", + "MinutesAgo": "{minutes, plural, =0 {منذ أقل من دقيقة} =1 {منذ دقيقة} other {منذ # دقيقة}}", + "MonthAt": "{month} في {time}", + "New": "جديد", + "Removed": "تمت الإزالة", + "RepliesCount": "{count, plural, =0 {لا ردود} =1 {رد واحد} other {# رد}}", + "Reply": "رد", + "Send": "إرسال", + "Set": "تعيين", + "ShowFormatting": "إظهار التنسيق", + "To": "إلى", + "Today": "اليوم", + "Unset": "إلغاء التعيين", + "WeekdayAt": "{weekday} في {time}", + "YearAt": "{year} في {time}", + "Yesterday": "أمس", + "YesterdayAt": "أمس في {time}", + "AndMore": "و{count} أخرى", + "IsTyping": "{count, plural, =1 {يكتب} other {يكتبون}}...", + "IsThinking": "{count, plural, =1 {يفكر} other {يفكرون}}...", + "Loading": "جارٍ التحميل...", + "MessageIn": "رسالة #{title}", + "ThreadWasRemoved": "تمت إزالة هذا الموضوع.", + "MessageWasRemoved": "تمت إزالة هذه الرسالة.", + "JoinedThe": "انضم إلى", + "LeftThe": "غادر", + "Translating": "جارٍ الترجمة...", + "ShowOriginal": "عرض النص الأصلي", + "AddReaction": "إضافة تفاعل", + "ReplyInThread": "الرد في الموضوع", + "TranslateMessage": "ترجمة الرسالة", + "ShowOriginalMessage": "عرض الرسالة الأصلية", + "EditMessage": "تعديل الرسالة", + "RemoveMessage": "إزالة الرسالة", + "CreateCard": "إنشاء بطاقة", + "MessageAlreadyHasCardAttached": "عذرًا! هذه الرسالة مرفق بها بطاقة بالفعل.", + "CreatePoll": "إنشاء استطلاع", + "Poll": "استطلاع", + "QuestionIsRequired": "السؤال مطلوب.", + "AnswerIsRequired": "الإجابة مطلوبة.", + "OptionIsRequired": "الخيار مطلوب.", + "StartDateMustBeInTheFuture": "يجب أن يكون تاريخ البدء في المستقبل.", + "EndDateMustBeInTheFuture": "يجب أن يكون تاريخ الانتهاء في المستقبل.", + "Question": "السؤال", + "AskQuestion": "اطرح سؤالاً", + "PollOptions": "خيارات الاستطلاع", + "Option": "الخيار", + "AnonymousVoting": "تصويت مجهول", + "MultipleChoice": "اختيار متعدد", + "QuizMode": "وضع الاختبار", + "StartTime": "وقت البدء", + "EndTime": "وقت الانتهاء", + "OpenPoll": "فتح الاستطلاع", + "RetractVote": "سحب التصويت", + "Quiz": "اختبار", + "VotesCount": "{count, plural, =0 {لا أصوات} =1 {صوت واحد} other {# صوت}}", + "Vote": "تصويت", + "ShowResults": "عرض النتائج", + "Ended": "انتهى", + "StartsAt": "يبدأ في {date}", + "EndsAt": "ينتهي في {date}", + "StartsTomorrow": "يبدأ غدًا في {date}", + "EndsTomorrow": "ينتهي غدًا في {date}", + "PollResults": "نتائج الاستطلاع", + "Polls": "الاستطلاعات", + "TotalVotes": "إجمالي الأصوات", + "Voted": "تم التصويت", + "VotedFor": "صوّت لصالح", + "RevokedVote": "تم إلغاء التصويت", + "AnonymousQuiz": "اختبار مجهول", + "Direct": "مباشر", + "Directs": "الرسائل المباشرة", + "Members": "الأعضاء", + "Translate": "ترجمة", + "WriteMessageEllipsis": "اكتب رسالة...", + "EditMessageEllipsis": "تعديل الرسالة...", + "ArrowDownMessages": "↓ أحدث الرسائل" + } +} diff --git a/plugins/communication-resources/src/components/AttachmentsPreview.svelte b/plugins/communication-resources/src/components/AttachmentsPreview.svelte index 66c5ca58761..009dbfa4da5 100644 --- a/plugins/communication-resources/src/components/AttachmentsPreview.svelte +++ b/plugins/communication-resources/src/components/AttachmentsPreview.svelte @@ -49,7 +49,7 @@ diff --git a/plugins/communication-resources/src/components/DateSeparator.svelte b/plugins/communication-resources/src/components/DateSeparator.svelte index 61635e0eb39..a6a9292a0b7 100644 --- a/plugins/communication-resources/src/components/DateSeparator.svelte +++ b/plugins/communication-resources/src/components/DateSeparator.svelte @@ -74,7 +74,7 @@ border: 1px solid var(--highlight-select-border); font-weight: 500; position: absolute; - left: 50%; + inset-inline-start: 50%; transform: translateX(-50%); top: 0.25rem; min-height: 1.625rem; diff --git a/plugins/communication-resources/src/components/DirectIcon.svelte b/plugins/communication-resources/src/components/DirectIcon.svelte index cc699644fd1..5e2ab973360 100644 --- a/plugins/communication-resources/src/components/DirectIcon.svelte +++ b/plugins/communication-resources/src/components/DirectIcon.svelte @@ -159,7 +159,7 @@ .persons-count { position: absolute; - right: -0.188rem; + inset-inline-end: -0.188rem; bottom: -0.188rem; width: 0.938rem; height: 0.938rem; @@ -174,7 +174,7 @@ font-weight: 500; &.medium { - right: -0.313rem; + inset-inline-end: -0.313rem; bottom: -0.313rem; width: 1.5rem; height: 1.5rem; diff --git a/plugins/communication-resources/src/components/input/AttachmentsHeader.svelte b/plugins/communication-resources/src/components/input/AttachmentsHeader.svelte index e45c9ccaca8..06f0fcd7cb8 100644 --- a/plugins/communication-resources/src/components/input/AttachmentsHeader.svelte +++ b/plugins/communication-resources/src/components/input/AttachmentsHeader.svelte @@ -86,7 +86,7 @@ diff --git a/plugins/communication-resources/src/components/message/MessageFooter.svelte b/plugins/communication-resources/src/components/message/MessageFooter.svelte index 56c1739c149..188c2c73260 100644 --- a/plugins/communication-resources/src/components/message/MessageFooter.svelte +++ b/plugins/communication-resources/src/components/message/MessageFooter.svelte @@ -169,7 +169,7 @@ .message__replies { padding-top: 0.5rem; - margin-left: -0.5rem; + margin-inline-start: -0.5rem; padding-bottom: 0; display: flex; flex-direction: column; diff --git a/plugins/communication-resources/src/components/message/MessagePresenter.svelte b/plugins/communication-resources/src/components/message/MessagePresenter.svelte index 73539a65554..78bbbde7dbc 100644 --- a/plugins/communication-resources/src/components/message/MessagePresenter.svelte +++ b/plugins/communication-resources/src/components/message/MessagePresenter.svelte @@ -222,7 +222,7 @@ .message__actions { position: absolute; top: -0.75rem; - right: 2.25rem; + inset-inline-end: 2.25rem; visibility: hidden; z-index: 2; diff --git a/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte b/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte index 1c0b0825ee2..a62e5912e6a 100644 --- a/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte +++ b/plugins/communication-resources/src/components/message/OneRowMessageBody.svelte @@ -119,6 +119,6 @@ .message__footer { display: flex; flex-direction: column; - margin-left: 3.5rem; + margin-inline-start: 3.5rem; } diff --git a/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte b/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte index 884bf7f97c5..946b63e7131 100644 --- a/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte +++ b/plugins/communication-resources/src/components/message/activity/ActivityCollaborativeContentViewer.svelte @@ -62,7 +62,7 @@ .triangle { &.left { - border-left-color: var(--global-focus-BorderColor); + border-inline-start-color: var(--global-focus-BorderColor); } &.down { diff --git a/plugins/communication-resources/src/components/message/activity/ActivityUpdateCollaboratorsViewer.svelte b/plugins/communication-resources/src/components/message/activity/ActivityUpdateCollaboratorsViewer.svelte index 6201645a324..28c6e49519e 100644 --- a/plugins/communication-resources/src/components/message/activity/ActivityUpdateCollaboratorsViewer.svelte +++ b/plugins/communication-resources/src/components/message/activity/ActivityUpdateCollaboratorsViewer.svelte @@ -79,7 +79,7 @@ :global(a:not(:last-of-type)) { :global(.ap-label)::after { content: ','; - margin-right: 0.25rem; + margin-inline-end: 0.25rem; } } } diff --git a/plugins/communication-resources/src/components/poll/CreatePoll.svelte b/plugins/communication-resources/src/components/poll/CreatePoll.svelte index 4c72e9fa175..ef0b27dfc58 100644 --- a/plugins/communication-resources/src/components/poll/CreatePoll.svelte +++ b/plugins/communication-resources/src/components/poll/CreatePoll.svelte @@ -334,6 +334,6 @@ display: flex; align-items: center; gap: 0.125rem; - margin-right: -0.5rem; + margin-inline-end: -0.5rem; } diff --git a/plugins/communication-resources/src/components/poll/PollPreview.svelte b/plugins/communication-resources/src/components/poll/PollPreview.svelte index 1b43aadc93a..dd6c7cc4a47 100644 --- a/plugins/communication-resources/src/components/poll/PollPreview.svelte +++ b/plugins/communication-resources/src/components/poll/PollPreview.svelte @@ -96,7 +96,7 @@ height: 100%; background-color: var(--theme-button-default); border: 1px solid var(--theme-button-border); - border-left: none; + border-inline-start: none; border-radius: 0 0.25rem 0.25rem 0; } diff --git a/plugins/communication-resources/src/components/poll/PollResults.svelte b/plugins/communication-resources/src/components/poll/PollResults.svelte index 9c55c27bec6..472d8d47147 100644 --- a/plugins/communication-resources/src/components/poll/PollResults.svelte +++ b/plugins/communication-resources/src/components/poll/PollResults.svelte @@ -120,14 +120,14 @@ &__percentage { font-size: 0.875rem; color: var(--global-secondary-TextColor); - margin-left: -0.375rem; - margin-right: 1rem; + margin-inline-start: -0.375rem; + margin-inline-end: 1rem; } &__result { font-size: 0.875rem; color: var(--global-secondary-TextColor); - margin-left: auto; + margin-inline-start: auto; } } diff --git a/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte b/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte index 28065265114..41e3f0ad99b 100644 --- a/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte +++ b/plugins/communication-resources/src/components/preview/PreviewTemplate.svelte @@ -170,7 +170,7 @@ display: flex; align-items: center; justify-content: center; - margin-right: 0.25rem; + margin-inline-end: 0.25rem; } &__content { @@ -210,7 +210,7 @@ font-size: 0.75rem; color: var(--global-tertiary-TextColor); white-space: nowrap; - margin-left: auto; + margin-inline-start: auto; max-width: 100%; min-width: 0; width: fit-content; diff --git a/plugins/contact-assets/lang/ar.json b/plugins/contact-assets/lang/ar.json new file mode 100644 index 00000000000..de7f401b171 --- /dev/null +++ b/plugins/contact-assets/lang/ar.json @@ -0,0 +1,155 @@ +{ + "string": { + "Apply": "تطبيق", + "Contacts": "جهات الاتصال", + "Persons": "الأشخاص", + "Organizations": "الشركات", + "CreatePerson": "شخص", + "CreateOrganization": "شركة", + "OrganizationNamePlaceholder": "اسم الشركة", + "OrganizationsNamePlaceholder": "الشركات", + "PersonFirstNamePlaceholder": "الاسم الأول", + "PersonLastNamePlaceholder": "اسم العائلة", + "PersonLocationPlaceholder": "الموقع", + "PersonsNamePlaceholder": "مجلد", + "Name": "الاسم", + "SelectFolder": "تحديد مجلد", + "OrganizationsFolder": "مجلد الشركات", + "PersonsFolder": "مجلد الأشخاص", + "ContactCreateLabel": "إنشاء جهة اتصال", + "SearchEmployee": "البحث عن موظف...", + "SearchPerson": "البحث عن شخص...", + "SearchOrganization": "البحث عن شركة...", + "ContactInfo": "معلومات الاتصال", + "Contact": "جهة اتصال", + "Location": "الموقع", + "Channel": "سجل الاتصال", + "ChannelProvider": "مزوّد القناة", + "Person": "شخص", + "Organization": "شركة", + "Employee": "موظف", + "DeleteEmployee": "حذف الموظف", + "DeleteEmployeeDescr": "هل أنت متأكد أنك تريد حذف الموظف من مساحة العمل؟", + "Value": "القيمة", + "FullDescription": "الوصف الكامل", + "Phone": "الهاتف", + "LinkedIn": "LinkedIn", + "GitHub": "GitHub", + "Twitter": "X", + "Google": "Google", + "Telegram": "Telegram", + "PhonePlaceholder": "+1 555 333 7777", + "LinkedInPlaceholder": "https://linkedin.com/in/jappleseed", + "AtPlaceHolder": "@appleseed", + "FacebookPlaceholder": "https://fb.com/jappleseed", + "Facebook": "Facebook", + "HomepagePlaceholder": "https://jappleseed.com", + "Homepage": "الصفحة الرئيسية", + "SocialLinks": "روابط التواصل الاجتماعي", + "ViewActivity": "عرض النشاط", + "PersonAlreadyExists": "جهة الاتصال موجودة بالفعل...", + "Status": "الحالة", + "SetStatus": "تعيين الحالة", + "ClearStatus": "مسح الحالة", + "SaveStatus": "حفظ", + "Cancel": "إلغاء", + "StatusDueDate": "تاريخ الاستحقاق", + "NoExpire": "بدون انتهاء صلاحية", + "TypeLabel": "النوع", + "StatusDueDateTooltip": "حتى {date}", + "CopyToClipboard": "نسخ", + "ViewFullProfile": "عرض الملف الشخصي الكامل", + "Member": "عضو", + "Members": "الأعضاء", + "NoMembers": "لم تتم إضافة أعضاء", + "AddMember": "إضافة عضو", + "KickEmployee": "طرد الموظف", + "KickEmployeeDescr": "هل أنت متأكد أنك تريد طرد الموظف من مساحة العمل؟ لا يمكن التراجع عن هذا الإجراء", + "ResendInvite": "إعادة إرسال الدعوة", + "ResendInviteDescr": "هل أنت متأكد أنك تريد إعادة إرسال دعوة إلى هذا المستخدم لمساحة العمل؟", + "Email": "البريد الإلكتروني", + "CreateEmployee": "موظف", + "Inactive": "غير نشط", + "Active": "نشط", + "Role": "الدور", + "Birthday": "تاريخ الميلاد", + "UseImage": "صورة مرفقة", + "UseGravatar": "Gravatar", + "UseColor": "لون", + "NotSpecified": "غير محدد", + "Whatsapp": "Whatsapp", + "WhatsappPlaceholder": "Whatsapp", + "Skype": "Skype", + "SkypePlaceholder": "Skype", + "Profile": "الملف الشخصي", + "ProfilePlaceholder": "الملف الشخصي...", + "CurrentEmployee": "الموظف الحالي", + "MergePersons": "دمج جهات الاتصال", + "MergePersonsFrom": "جهة الاتصال المصدر", + "MergePersonsTo": "جهة الاتصال النهائية", + "SelectAvatar": "تحديد صورة رمزية", + "Avatar": "صورة رمزية", + "AvatarProvider": "مزوّد الصورة الرمزية", + "GravatarsManaged": "تُدار صور Gravatar", + "Through": "عبر", + "AddMembersHeader": "إضافة أعضاء إلى {value}:", + "Assigned": "مُكلَّف", + "Unassigned": "غير مُكلَّف", + "CategoryCurrentUser": "المستخدم الحالي", + "CategoryOther": "أخرى", + "NumberMembers": "{count, plural, =0 {لا يوجد أعضاء} =1 {عضو واحد} other {# أعضاء}}", + "Position": "المنصب", + "ConfigLabel": "جهات الاتصال", + "ConfigDescription": "إضافة للاحتفاظ بمعلومات عن جميع الموظفين وجهات الاتصال الأخرى من الأشخاص/الشركات.", + "HasMessagesIn": "لديه رسائل في", + "HasNewMessagesIn": "لديه رسائل جديدة في", + "Employees": "الموظفون", + "People": "الأشخاص", + "For": "لـ", + "SelectUsers": "تحديد المستخدمين", + "AddGuest": "إضافة ضيف", + "ViewProfile": "عرض الملف الشخصي", + "Viber": "Viber", + "ViberPlaceholder": "Viber", + "SocialId": "معرّف التواصل الاجتماعي", + "SocialIds": "معرّفات التواصل الاجتماعي", + "Type": "النوع", + "Confirmed": "مؤكَّد", + "UserProfile": "الملف الشخصي للمستخدم", + "DeactivatedAccount": "حساب معطَّل", + "LocalTime": "التوقيت المحلي", + "Everyone": "الجميع", + "Here": "هنا", + "EveryoneDescription": "إشعار الجميع في هذا {title}", + "HereDescription": "إشعار كل عضو متصل في هذا {title}", + "Guest": "ضيف", + "Deleted": "محذوف", + "CannotMerge": "خطأ: لا يمكن دمج الأشخاص العامين", + "AutoTranslation": "الترجمة التلقائية", + "TranslateTo": "الترجمة إلى", + "DontTranslate": "عدم الترجمة", + "SelectLanguage": "تحديد اللغة", + "SelectLanguages": "تحديد اللغات", + "WorkspaceStatusNote": "حالة المستخدم", + "WorkspaceStatusUntil": "الإظهار حتى", + "WorkspaceStatusMenu": "حالتك", + "WorkspaceStatusSetYour": "تعيين حالتك", + "WorkspaceStatusUpdateYour": "تحديث حالتك", + "WorkspaceStatusMessage": "ما هي حالتك؟", + "WorkspaceStatusAway": "بعيد", + "WorkspaceStatusVacation": "في إجازة", + "WorkspaceStatusOutSick": "في إجازة مرضية", + "WorkspaceStatusClear": "مسح الحالة", + "WorkspaceStatusSave": "حفظ", + "WorkspaceStatusQuickPick": "حالات سريعة", + "WorkspaceStatusComposeHint": "أضف ملاحظة قصيرة (اختياري)", + "WorkspaceStatusClearUntil": "مسح التاريخ", + "WorkspaceStatusDoNotClear": "عدم مسح الحالة", + "WorkspaceStatusIn30Min": "خلال 30 دقيقة", + "WorkspaceStatusIn1Hour": "خلال ساعة واحدة", + "WorkspaceStatusIn4Hours": "خلال 4 ساعات", + "WorkspaceStatusEndOfDay": "نهاية اليوم", + "WorkspaceStatusPickDate": "اختيار التاريخ", + "HideInactive": "إخفاء غير النشط" + } +} diff --git a/plugins/contact-resources/src/components/ChannelEditor.svelte b/plugins/contact-resources/src/components/ChannelEditor.svelte index 526714c9c35..c46c2e51153 100644 --- a/plugins/contact-resources/src/components/ChannelEditor.svelte +++ b/plugins/contact-resources/src/components/ChannelEditor.svelte @@ -235,7 +235,7 @@ content: ''; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; background-color: var(--theme-popup-hover); @@ -254,7 +254,7 @@ overflow: hidden; min-width: 0; top: 50%; - left: 50%; + inset-inline-start: 50%; width: calc(100% - 0.5rem); text-align: center; font-size: 0.75rem; @@ -286,9 +286,9 @@ &.bottom::before { content: ''; position: absolute; - margin-left: -9px; + margin-inline-start: -9px; top: -6px; - left: 50%; + inset-inline-start: 50%; width: 18px; height: 7px; } diff --git a/plugins/contact-resources/src/components/ChannelsPopup.svelte b/plugins/contact-resources/src/components/ChannelsPopup.svelte index 7dd306a84ef..ef18f89ca64 100644 --- a/plugins/contact-resources/src/components/ChannelsPopup.svelte +++ b/plugins/contact-resources/src/components/ChannelsPopup.svelte @@ -49,7 +49,7 @@ diff --git a/plugins/controlled-documents-resources/src/components/create-doc/steps/TemplateStep.svelte b/plugins/controlled-documents-resources/src/components/create-doc/steps/TemplateStep.svelte index 7469efc2a36..5fbb2338548 100644 --- a/plugins/controlled-documents-resources/src/components/create-doc/steps/TemplateStep.svelte +++ b/plugins/controlled-documents-resources/src/components/create-doc/steps/TemplateStep.svelte @@ -209,7 +209,7 @@ } .template { - margin-left: 0.625rem; + margin-inline-start: 0.625rem; padding: 1.5rem 0; border-bottom: 1px solid var(--theme-divider-color); display: flex; diff --git a/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte b/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte index df566182612..1a4f994fda2 100644 --- a/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte +++ b/plugins/controlled-documents-resources/src/components/document/DocumentHistory.svelte @@ -121,7 +121,7 @@ .row { gap: 3rem; @media print { - border-left: 2px solid var(--theme-divider-color); + border-inline-start: 2px solid var(--theme-divider-color); } } diff --git a/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte b/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte index 9b17244a542..690e67ce229 100644 --- a/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte +++ b/plugins/controlled-documents-resources/src/components/document/DocumentSignatories.svelte @@ -129,7 +129,7 @@ .row { gap: 3rem; @media print { - border-left: 2px solid var(--theme-divider-color); + border-inline-start: 2px solid var(--theme-divider-color); } } diff --git a/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte b/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte index 3d57f207301..f6a6411d701 100644 --- a/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte +++ b/plugins/controlled-documents-resources/src/components/document/EditDocContent.svelte @@ -304,7 +304,7 @@ overflow: hidden; @media print { - margin-left: -1rem; + margin-inline-start: -1rem; overflow: visible; } @@ -340,13 +340,13 @@ position: absolute; width: 1rem; pointer-events: all; - left: 1px; + inset-inline-start: 1px; top: 1rem; z-index: 1; } .tocContent { - padding-left: 2.25rem; + padding-inline-start: 2.25rem; } .content { @@ -365,7 +365,7 @@ position: absolute; z-index: 100; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; display: flex; diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte index 077b704d475..e4eb98f4f33 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentApprovalItem.svelte @@ -121,7 +121,7 @@ } .chevron { - margin-left: 0.25rem; + margin-inline-start: 0.25rem; visibility: hidden; &.visible { diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentsTab.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentsTab.svelte index 99b813c8dc5..e3cfdec8997 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentsTab.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/DocumentCommentsTab.svelte @@ -102,7 +102,7 @@ .dirty-mark { position: absolute; top: 0.375rem; - right: 0.375rem; + inset-inline-end: 0.375rem; width: 0.5rem; height: 0.5rem; border-radius: 50%; diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatHierarchy.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatHierarchy.svelte index 5f0388c0fd0..f8a96816da9 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatHierarchy.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatHierarchy.svelte @@ -99,10 +99,10 @@ display: flex; flex-direction: column; padding: 0 1rem; - border-left: 2px solid var(--theme-navpanel-border); + border-inline-start: 2px solid var(--theme-navpanel-border); gap: 0.25rem; - padding-left: 0.25rem; - margin-left: 0.75rem; + padding-inline-start: 0.25rem; + margin-inline-start: 0.75rem; } diff --git a/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte b/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte index 85bf78e8ad0..5835f142c48 100644 --- a/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte +++ b/plugins/controlled-documents-resources/src/components/document/right-panel/info/DocumentFlatTreeElement.svelte @@ -63,6 +63,6 @@ diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte index 6fea79ff2ce..6e2a6339095 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DocumentSpacePresenter.svelte @@ -403,7 +403,7 @@ .pseudo-element { height: 2rem; margin: 0 0.75rem; - padding-left: 2.5rem; - padding-right: 0.75rem; + padding-inline-start: 2.5rem; + padding-inline-end: 0.75rem; } diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DropArea.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DropArea.svelte index 0d623e0634b..a6e2ef9cb62 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DropArea.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DropArea.svelte @@ -19,8 +19,8 @@ .drop-area { pointer-events: none; position: absolute; - left: 0.75rem; - right: 0.75rem; + inset-inline-start: 0.75rem; + inset-inline-end: 0.75rem; top: 0; bottom: 0; background-color: var(--global-ui-highlight-BackgroundColor); diff --git a/plugins/controlled-documents-resources/src/components/hierarchy/DropMarker.svelte b/plugins/controlled-documents-resources/src/components/hierarchy/DropMarker.svelte index ff849a72e51..2dfe82e329a 100644 --- a/plugins/controlled-documents-resources/src/components/hierarchy/DropMarker.svelte +++ b/plugins/controlled-documents-resources/src/components/hierarchy/DropMarker.svelte @@ -26,8 +26,8 @@ height: 0.125rem; background-color: var(--primary-button-focused); - left: 0.75rem; - right: 0.75rem; + inset-inline-start: 0.75rem; + inset-inline-end: 0.75rem; top: 10rem; } diff --git a/plugins/controlled-documents-resources/src/components/print/DocumentPrintTitlePage.svelte b/plugins/controlled-documents-resources/src/components/print/DocumentPrintTitlePage.svelte index f9f7654b12c..d5418904749 100644 --- a/plugins/controlled-documents-resources/src/components/print/DocumentPrintTitlePage.svelte +++ b/plugins/controlled-documents-resources/src/components/print/DocumentPrintTitlePage.svelte @@ -139,9 +139,9 @@ z-index: 9999; page-break-after: always; top: 0; - right: 0; + inset-inline-end: 0; bottom: 0; - left: 0; + inset-inline-start: 0; margin: auto; height: 4rem; width: 100%; diff --git a/plugins/desktop-downloads-assets/lang/ar.json b/plugins/desktop-downloads-assets/lang/ar.json new file mode 100644 index 00000000000..529d3ec8fd7 --- /dev/null +++ b/plugins/desktop-downloads-assets/lang/ar.json @@ -0,0 +1,10 @@ +{ + "string": { + "Downloads": "التنزيلات", + "Completed": "مكتمل", + "Cancelled": "ملغى", + "Interrupted": "متوقف", + "Paused": "موقَّف مؤقتًا", + "Progressing": "قيد التقدم" + } +} diff --git a/plugins/desktop-downloads-resources/src/components/FileDownloadStatusPopup.svelte b/plugins/desktop-downloads-resources/src/components/FileDownloadStatusPopup.svelte index 6f0aaf620a5..d2123f22c45 100644 --- a/plugins/desktop-downloads-resources/src/components/FileDownloadStatusPopup.svelte +++ b/plugins/desktop-downloads-resources/src/components/FileDownloadStatusPopup.svelte @@ -80,13 +80,13 @@ .upload-popup__header { padding-bottom: 1rem; - margin-left: 0.5rem; - margin-right: 0.625rem; + margin-inline-start: 0.5rem; + margin-inline-end: 0.625rem; } .upload-popup__content { margin: 0.5rem; - margin-right: 0.625rem; + margin-inline-end: 0.625rem; } } diff --git a/plugins/desktop-preferences-assets/lang/ar.json b/plugins/desktop-preferences-assets/lang/ar.json new file mode 100644 index 00000000000..1282af1d118 --- /dev/null +++ b/plugins/desktop-preferences-assets/lang/ar.json @@ -0,0 +1,11 @@ +{ + "string": { + "ShowNotifications": "إظهار الإشعارات", + "PlaySound": "تشغيل صوت", + "BounceAppIcon": "تحريك أيقونة التطبيق (لنظام mac فقط)", + "ShowBadge": "إظهار شارة على أيقونة التطبيق", + "SoundAndAppearance": "الصوت والمظهر", + "HaveGotANotification": "لديك إشعار", + "TotalNotificationsCount": "لديك {count, plural, =1 {# إشعار} other {# إشعارات}} في المجموع" + } +} diff --git a/plugins/devmodel-resources/src/components/ModelView.svelte b/plugins/devmodel-resources/src/components/ModelView.svelte index 2e9e755a716..919478c55fa 100644 --- a/plugins/devmodel-resources/src/components/ModelView.svelte +++ b/plugins/devmodel-resources/src/components/ModelView.svelte @@ -69,7 +69,7 @@ th, td { padding: 0.5rem 1.5rem; - text-align: left; + text-align: start; } th { diff --git a/plugins/diffview-assets/lang/ar.json b/plugins/diffview-assets/lang/ar.json new file mode 100644 index 00000000000..eb0e04909a2 --- /dev/null +++ b/plugins/diffview-assets/lang/ar.json @@ -0,0 +1,14 @@ +{ + "string": { + "ViewMode": "وضع العرض", + "Unified": "موحّد", + "Split": "مقسّم", + "Viewed": "تمت مشاهدته", + "ShowDiff": "إظهار الفروقات", + "NoChanges": "لا توجد تغييرات في فروقات الملف", + "LargeDiffsAreHidden": "لا تُعرض الفروقات الكبيرة افتراضياً.", + "FileIsTooLarge": "الملف كبير جداً بحيث لا يمكن عرضه.", + "FileWasRenamed": "تمت إعادة تسمية الملف دون تغييرات.", + "FileWasDeleted": "تم حذف الملف." + } +} diff --git a/plugins/diffview-resources/src/components/FileDiffContent.svelte b/plugins/diffview-resources/src/components/FileDiffContent.svelte index 5a5d2350a2e..72fca89de76 100644 --- a/plugins/diffview-resources/src/components/FileDiffContent.svelte +++ b/plugins/diffview-resources/src/components/FileDiffContent.svelte @@ -171,12 +171,12 @@ } .diff-table-split .code-line + .num-line { - border-left: 1px solid var(--theme-divider-color); + border-inline-start: 1px solid var(--theme-divider-color); } td { &.code-line { - border-left: 1px solid var(--theme-divider-color); + border-inline-start: 1px solid var(--theme-divider-color); } &.line-header { @@ -206,7 +206,7 @@ .num-line { padding: 0 0.5rem; - text-align: right; + text-align: end; vertical-align: top; text-overflow: ellipsis; white-space: nowrap; @@ -225,6 +225,6 @@ .code-line::before { content: attr(data-code-marker); position: absolute; - left: 0.5rem; + inset-inline-start: 0.5rem; } diff --git a/plugins/diffview-resources/src/components/FileDiffHeader.svelte b/plugins/diffview-resources/src/components/FileDiffHeader.svelte index d74c450ff99..6600311a779 100644 --- a/plugins/diffview-resources/src/components/FileDiffHeader.svelte +++ b/plugins/diffview-resources/src/components/FileDiffHeader.svelte @@ -101,7 +101,7 @@ .file-info { font-weight: 600; direction: rtl; - text-align: left; + text-align: start; } .file-stats { diff --git a/plugins/diffview-resources/src/components/FileDiffView.svelte b/plugins/diffview-resources/src/components/FileDiffView.svelte index e90d262a316..c8f52fb4f94 100644 --- a/plugins/diffview-resources/src/components/FileDiffView.svelte +++ b/plugins/diffview-resources/src/components/FileDiffView.svelte @@ -130,8 +130,8 @@ overflow-y: hidden; &.expanded { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; + border-end-start-radius: 0; + border-end-end-radius: 0; } } @@ -144,8 +144,8 @@ .file-content { border: 1px solid var(--theme-divider-color); border-top: 0; - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; + border-end-start-radius: 0.25rem; + border-end-end-radius: 0.25rem; overflow-y: hidden; } diff --git a/plugins/document-assets/lang/ar.json b/plugins/document-assets/lang/ar.json new file mode 100644 index 00000000000..15cb4aa91ff --- /dev/null +++ b/plugins/document-assets/lang/ar.json @@ -0,0 +1,64 @@ +{ + "string": { + "Document": "مستند", + "ParentDocument": "المستند الأصل", + "ChildDocument": "المستند الفرعي", + "CreateDocument": "إنشاء مستند", + "Documents": "المستندات", + "CreateAnVersion": "إنشاء إصدار جديد", + "DocumentNamePlaceholder": "بلا عنوان", + "Name": "الاسم", + "Cancel": "إلغاء", + "Version": "الإصدار", + "SearchDocument": "البحث في المستندات...", + "Snapshot": "لقطة", + "NoVersions": "لم يتم تعريف أي إصدار", + "DocumentApplication": "المستندات", + "MyDocuments": "مستنداتي", + "Teamspace": "مساحة الفريق", + "Teamspaces": "مساحات الفرق", + "Labels": "التسميات", + "AddLabel": "إضافة تسمية", + "Authors": "المؤلفون", + "Backlinks": "الروابط الخلفية", + "History": "السجل", + "DescriptionPlaceholder": "اكتب للتفاصيل...", + "CreateTeamspace": "إنشاء مساحة فريق", + "EditTeamspace": "تعديل مساحة الفريق", + "NewTeamspace": "مساحة فريق جديدة", + "TeamspaceTitle": "عنوان مساحة الفريق", + "TeamspaceTitlePlaceholder": "مساحة فريق جديدة", + "TeamspaceDescriptionPlaceholder": "إضافة وصف ...", + "ChooseIcon": "اختيار أيقونة", + "TeamspaceMembers": "الأعضاء", + "NoParentDocument": "لا يوجد مستند أصل", + "NoBacklinks": "لا توجد روابط خلفية", + "NoHistory": "لا يوجد سجل سابق", + "Untitled": "بلا عنوان", + + "Description": "الوصف", + + "CopyDocumentUrl": "نسخ URL المستند إلى الحافظة", + "DocumentUrlCopied": "تم النسخ!", + + "ViewMode": "عرض", + "EditMode": "تعديل", + "SuggestMode": "اقتراح", + + "CompareTo": "مقارنة بـ...", + "Star": "إضافة إلى المميَّزة", + "Unstar": "إزالة من المميَّزة", + + "Lock": "قفل", + "Unlock": "إلغاء القفل", + "Locked": "مقفل", + + "ConfigLabel": "المستندات", + "ConfigDescription": "امتداد لتحرير المستندات التعاوني", + + "Icon": "الأيقونة", + "Color": "اللون", + "ForbidCreateTeamspacePermission": "منع إنشاء مساحة فريق", + "ForbidCreateTeamspacePermissionDescription": "منع المستخدمين من إنشاء مساحات فرق جديدة" + } +} diff --git a/plugins/document-resources/src/components/EditDoc.svelte b/plugins/document-resources/src/components/EditDoc.svelte index 76991fc33cf..1df2419e26f 100644 --- a/plugins/document-resources/src/components/EditDoc.svelte +++ b/plugins/document-resources/src/components/EditDoc.svelte @@ -465,7 +465,7 @@ .toc { width: 1rem; pointer-events: all; - margin-left: -3rem; + margin-inline-start: -3rem; position: sticky; top: 0; } @@ -481,7 +481,7 @@ margin-bottom: 1rem; .icon { - margin-left: -3rem; + margin-inline-start: -3rem; width: 3rem; } } diff --git a/plugins/document-resources/src/components/navigator/DropArea.svelte b/plugins/document-resources/src/components/navigator/DropArea.svelte index 0d623e0634b..a6e2ef9cb62 100644 --- a/plugins/document-resources/src/components/navigator/DropArea.svelte +++ b/plugins/document-resources/src/components/navigator/DropArea.svelte @@ -19,8 +19,8 @@ .drop-area { pointer-events: none; position: absolute; - left: 0.75rem; - right: 0.75rem; + inset-inline-start: 0.75rem; + inset-inline-end: 0.75rem; top: 0; bottom: 0; background-color: var(--global-ui-highlight-BackgroundColor); diff --git a/plugins/document-resources/src/components/navigator/DropMarker.svelte b/plugins/document-resources/src/components/navigator/DropMarker.svelte index ff849a72e51..2dfe82e329a 100644 --- a/plugins/document-resources/src/components/navigator/DropMarker.svelte +++ b/plugins/document-resources/src/components/navigator/DropMarker.svelte @@ -26,8 +26,8 @@ height: 0.125rem; background-color: var(--primary-button-focused); - left: 0.75rem; - right: 0.75rem; + inset-inline-start: 0.75rem; + inset-inline-end: 0.75rem; top: 10rem; } diff --git a/plugins/drive-assets/lang/ar.json b/plugins/drive-assets/lang/ar.json new file mode 100644 index 00000000000..2e52991dd5f --- /dev/null +++ b/plugins/drive-assets/lang/ar.json @@ -0,0 +1,45 @@ +{ + "string": { + "Drive": "محرك الأقراص", + "Drives": "محركات الأقراص", + "Grid": "شبكة", + "File": "ملف", + "Files": "الملفات", + "FileVersion": "إصدار الملف", + "FileVersions": "إصدارات الملف", + "Folder": "مجلد", + "Folders": "المجلدات", + "Resource": "مورد", + "Name": "الاسم", + "Description": "الوصف", + "Parent": "الأصل", + "Path": "المسار", + "Version": "الإصدار", + "Size": "الحجم", + "ContentType": "نوع المحتوى", + "LastModified": "آخر تعديل", + "Download": "تنزيل", + "Upload": "رفع", + "CreateDrive": "إنشاء محرك أقراص", + "CreateFolder": "إنشاء مجلد", + "UploadFile": "رفع الملفات", + "EditDrive": "تحرير محرك الأقراص", + "Rename": "إعادة تسمية", + "Restore": "استعادة", + "Root": "/", + "ForbidCreateDrivePermission": "منع إنشاء محرك أقراص", + "ForbidCreateDrivePermissionDescription": "منع المستخدمين من إنشاء محركات أقراص جديدة", + "CreateFilePermission": "إنشاء ملف", + "CreateFilePermissionDescription": "يمنح المستخدمين القدرة على إنشاء الملفات", + "UpdateFilePermission": "تحديث ملف", + "UpdateFilePermissionDescription": "يمنح المستخدمين القدرة على تحديث الملفات", + "RemoveFilePermission": "إزالة ملف", + "RemoveFilePermissionDescription": "يمنح المستخدمين القدرة على إزالة الملفات", + "CreateFolderPermission": "إنشاء مجلد", + "CreateFolderPermissionDescription": "يمنح المستخدمين القدرة على إنشاء المجلدات", + "UpdateFolderPermission": "تحديث مجلد", + "UpdateFolderPermissionDescription": "يمنح المستخدمين القدرة على تحديث المجلدات", + "RemoveFolderPermission": "إزالة مجلد", + "RemoveFolderPermissionDescription": "يمنح المستخدمين القدرة على إزالة المجلدات" + } +} diff --git a/plugins/emoji-assets/lang/ar.json b/plugins/emoji-assets/lang/ar.json new file mode 100644 index 00000000000..90eede1d31d --- /dev/null +++ b/plugins/emoji-assets/lang/ar.json @@ -0,0 +1,41 @@ +{ + "string": { + "SmileysAndPeople": "الوجوه والأشخاص", + "Components": "المكوّنات", + "AnimalsAndNature": "الحيوانات والطبيعة", + "FoodAndDrink": "الطعام والشراب", + "TravelAndPlaces": "السفر والأماكن", + "Activities": "الأنشطة", + "Objects": "الأشياء", + "Symbols": "الرموز", + "Flags": "الأعلام", + "FrequentlyUsed": "الأكثر استخداماً", + "GettingWorkDone": "إنجاز العمل", + "DefaultSkinTone": "لون البشرة الافتراضي", + "NoTone": "بدون لون", + "Light": "فاتح", + "MediumLight": "فاتح متوسط", + "Medium": "متوسط", + "MediumDark": "داكن متوسط", + "Dark": "داكن", + "Remove": "إزالة", + "SearchDots": "بحث...", + "SearchResults": "نتائج البحث", + "CustomEmojis": "إيموجي مخصصة", + "Shortcode": "الاسم", + "ShortcodeDescription": "يمكن أن يحتوي على أحرف وأرقام والرموز '-' و'+' و'_'.", + "Image": "صورة", + "ImageDescription": "حدد ملف ‎.gif‎ أو ‎.png‎ أو ‎.jpg‎ للإيموجي الخاص بك.", + "UploadImage": "رفع", + "Preview": "معاينة", + "PreviewTextBegin": "هذه جملة تحتوي على ", + "PreviewTextEnd": " بداخلها.", + "CreateTitle": "إنشاء إيموجي مخصص", + "Create": "إنشاء", + "ImageAspectError": "يجب أن تكون نسبة أبعاد الصورة 1:1.", + "ShortcodeMatchError": "يمكن أن يحتوي على أحرف وأرقام والرموز '-' و'+' و'_'.", + "ShortcodeExistsError": "هذا الاسم مستخدم بالفعل. يرجى اختيار اسم آخر.", + "NewCustomEmojiDialogClose": "هل تريد إغلاق هذه النافذة؟", + "NewCustomEmojiDialogCloseNote": "ستُفقد جميع التغييرات" + } +} diff --git a/plugins/emoji-resources/src/components/EmojiButton.svelte b/plugins/emoji-resources/src/components/EmojiButton.svelte index 60ebec273a5..66d39845bd7 100644 --- a/plugins/emoji-resources/src/components/EmojiButton.svelte +++ b/plugins/emoji-resources/src/components/EmojiButton.svelte @@ -119,7 +119,7 @@ content: ''; position: absolute; top: -0.375rem; - right: -0.375rem; + inset-inline-end: -0.375rem; width: 1rem; height: 1rem; border-radius: 50%; diff --git a/plugins/emoji-resources/src/components/EmojiGroup.svelte b/plugins/emoji-resources/src/components/EmojiGroup.svelte index a47c81e988d..e033add291a 100644 --- a/plugins/emoji-resources/src/components/EmojiGroup.svelte +++ b/plugins/emoji-resources/src/components/EmojiGroup.svelte @@ -85,7 +85,7 @@ content: ''; position: absolute; top: -1px; - left: 0; + inset-inline-start: 0; width: 100%; height: 150%; background: var(--theme-popup-trans-gradient); diff --git a/plugins/emoji-resources/src/components/EmojiPopup.svelte b/plugins/emoji-resources/src/components/EmojiPopup.svelte index 4f9799080e0..1e31e5bdc0b 100644 --- a/plugins/emoji-resources/src/components/EmojiPopup.svelte +++ b/plugins/emoji-resources/src/components/EmojiPopup.svelte @@ -429,7 +429,7 @@ .hulyPopupEmoji-footer { position: absolute; - left: 50%; + inset-inline-start: 50%; bottom: 0.75rem; width: calc(100% - 1.5rem); height: 1rem; diff --git a/plugins/export-assets/lang/ar.json b/plugins/export-assets/lang/ar.json new file mode 100644 index 00000000000..0cd0c6393de --- /dev/null +++ b/plugins/export-assets/lang/ar.json @@ -0,0 +1,58 @@ +{ + "string": { + "WorkspaceNamePattern": "يجب أن يكون الاسم 40 حرفًا أو أقل، وغير فارغ، ولا يمكن أن يحتوي على أحرف خاصة (<، >، /)", + "Export": "تصدير", + "DataToExport": "البيانات المراد تصديرها", + "ExportDocuments": "المستندات", + "ExportMilestones": "معلم", + "ExportIssues": "القضايا", + "ExportTestCases": "حالات الاختبار", + "ExportTestRuns": "عمليات تشغيل الاختبار", + "ExportTestPlans": "خطط الاختبار", + "ExportFormat": "صيغة التصدير", + "ExportJSON": "JSON", + "ExportCSV": "CSV", + "ExportUnifiedFormat": "صيغة Huly الموحدة", + "ExportIncludeContent": "تضمين المحتوى", + "ExportEverything": "كل شيء", + "ExportAttributesOnly": "السمات فقط", + "ExportRequestSuccess": "بدأ التصدير.", + "ExportRequestSuccessMessage": "بدأ التصدير. ستتلقى إشعارًا في صندوق الوارد عند اكتماله.", + "ExportRequestFailed": "تعذّر إرسال التصدير.", + "ExportRequestFailedMessage": "حدث خطأ أثناء إرسال التصدير. يُرجى المحاولة لاحقًا.", + "ExportCompleted": "اكتمل التصدير. ملفاتك جاهزة. يمكنك تنزيلها من المساحة التخزينية.", + "ExportFailed": "تعذّر تصدير البيانات. يُرجى المحاولة لاحقًا.", + "ExportToWorkspace": "التصدير إلى مساحة عمل أخرى", + "TargetWorkspace": "مساحة العمل المستهدفة", + "ExportSource": "مصدر التصدير", + "ExportSelected": "العناصر المحددة", + "ExportAll": "جميع العناصر", + "ExportStarted": "بدأ التصدير", + "ExportStartedMessage": "بدأ التصدير. ستتلقى إشعارًا عند اكتماله.", + "ExportToWorkspaceCompleted": "اكتمل التصدير", + "ExportToWorkspaceCompletedMessage": "اكتمل التصدير بنجاح.", + "ImportToWorkspaceNotificationMessage": "تم استيراد {count} مستند إلى مساحة عملك", + "ImportCompleted": "تم استيراد المستندات إلى مساحة العمل", + "SourceWorkspace": "مساحة العمل المصدر", + "ExportedCount": "عدد العناصر المصدَّرة", + "ExportedDocumentIds": "معرّفات المستندات المصدَّرة", + "DocumentsImportedFromWorkspace": "{count, plural, one {تم استيراد مستند واحد من مساحة العمل {workspace}} other {تم استيراد # مستندات من مساحة العمل {workspace}}}:", + "ExportedDocumentClass": "فئة المستند المصدَّر", + "Import": "استيراد", + "ImportedDocuments": "مستندات جديدة", + "ExportToWorkspaceFailed": "فشل التصدير", + "SelectWorkspace": "اختر مساحة عمل", + "SelectWorkspaceToExport": "اختر مساحة عمل لتصدير {count, plural, =1 {مستند واحد} other {# مستندات}}", + "SelectWorkspaceToExportSpace": "اختر مساحة عمل لتصدير المستندات", + "SelectSpace": "اختر مساحة", + "NoSelectedDocuments": "لم يتم تحديد أي مستندات", + "NoDocumentsMatchedFilters": "لم يتم العثور على مستندات للتصدير بعوامل التصفية الحالية. حاول تعديل عوامل التصفية أو التحديد ثم أعد المحاولة.", + "RequestPermissionToImport": "يُرجى طلب الإذن من مالك مساحة العمل المستهدفة لاستيراد المستندات.", + "ExportOnlyEffective": "تصدير المستندات ذات الحالة السارية فقط", + "ExportFilterMode": "المستندات المراد تصديرها", + "ExportFilterEffectiveOnly": "تصدير المستندات السارية فقط", + "ExportFilterSkipArchivedObsolete": "جميع المستندات باستثناء المؤرشفة والمتقادمة", + "ExportFilterAll": "جميع المستندات", + "ExportResultRecordTitle": "تصدير المستندات من مساحة العمل {workspace} ({date})" + } +} diff --git a/plugins/global-profile-assets/lang/ar.json b/plugins/global-profile-assets/lang/ar.json new file mode 100644 index 00000000000..19e61f8fe12 --- /dev/null +++ b/plugins/global-profile-assets/lang/ar.json @@ -0,0 +1,29 @@ +{ + "string": { + "GlobalProfile": "الملف الشخصي العام", + "EditProfile": "تعديل الملف الشخصي", + "GeneralInformation": "المعلومات العامة", + "FirstName": "الاسم الأول", + "LastName": "اسم العائلة", + "City": "المدينة", + "Country": "الدولة", + "Bio": "نبذة تعريفية", + "FirstNamePlaceholder": "أدخل الاسم الأول", + "LastNamePlaceholder": "أدخل اسم العائلة", + "CityPlaceholder": "أدخل المدينة", + "CountryPlaceholder": "أدخل الدولة", + "BioPlaceholder": "أخبرنا عن نفسك...", + "Save": "حفظ", + "Cancel": "إلغاء", + "MaximumLength": "بحد أقصى {count} حرفًا", + "Required": "هذا الحقل مطلوب", + "ProfileVisibility": "ظهور الملف الشخصي", + "PublicProfile": "عام", + "PrivateProfile": "خاص", + "PublicProfileDescription": "ملفك الشخصي مرئي للجميع", + "PrivateProfileDescription": "ملفك الشخصي مرئي لك فقط", + "AddBioPlaceholder": "أضف نبذة تعريفية لتخبر الآخرين عن نفسك...", + "AddLocationPlaceholder": "أضف موقعك...", + "ProfileNotAvailable": "الملف الشخصي غير متوفر" + } +} diff --git a/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte b/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte index 8ff82cfd6b5..e9ce53a31c1 100644 --- a/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte +++ b/plugins/global-profile-resources/src/components/GlobalProfileApp.svelte @@ -251,8 +251,8 @@ .header { width: 100%; height: 12.5rem; - border-top-left-radius: 0.8rem; - border-top-right-radius: 0.8rem; + border-start-start-radius: 0.8rem; + border-start-end-radius: 0.8rem; overflow: hidden; } @@ -260,20 +260,20 @@ position: relative; width: 100%; flex: 1 1 0; - border-bottom-left-radius: 0.8rem; - border-bottom-right-radius: 0.8rem; + border-end-start-radius: 0.8rem; + border-end-end-radius: 0.8rem; } .edit { position: absolute; top: 1.5rem; - right: 1.5rem; + inset-inline-end: 1.5rem; } .actions { position: absolute; top: 1.5rem; - right: 1.5rem; + inset-inline-end: 1.5rem; display: flex; align-items: center; gap: 0.5rem; @@ -288,7 +288,7 @@ height: 10rem; background-color: var(--theme-popup-color); position: absolute; - left: 1.5rem; + inset-inline-start: 1.5rem; top: 6rem; border-radius: 100%; } @@ -301,9 +301,9 @@ margin: auto; border-radius: 100%; top: 0; - right: 0; + inset-inline-end: 0; bottom: 0; - left: 0; + inset-inline-start: 0; } .avatarText { @@ -316,7 +316,7 @@ transform: translate(-50%, -50%); position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; } } diff --git a/plugins/global-profile-resources/src/components/ProfileField.svelte b/plugins/global-profile-resources/src/components/ProfileField.svelte index 3cc5a272159..39b0a436b8a 100644 --- a/plugins/global-profile-resources/src/components/ProfileField.svelte +++ b/plugins/global-profile-resources/src/components/ProfileField.svelte @@ -70,7 +70,7 @@ .counter { color: var(--theme-dark-color); - margin-left: auto; + margin-inline-start: auto; &.error { color: var(--theme-error-color); diff --git a/plugins/gmail-assets/lang/ar.json b/plugins/gmail-assets/lang/ar.json new file mode 100644 index 00000000000..1e2b44ef1f5 --- /dev/null +++ b/plugins/gmail-assets/lang/ar.json @@ -0,0 +1,50 @@ +{ + "string": { + "MessageID": "معرّف الرسالة", + "IntegrationLabel": "Gmail", + "IntegrationDescription": "اربط حساب Gmail الخاص بك لإرسال رسائل البريد الإلكتروني واستقبالها وإدارتها", + "SharedMessages": "رسائل البريد الإلكتروني المشتركة", + "To": "إلى:", + "From": "من:", + "Copy": "نسخ", + "MessagesSelected": "الرسائل المحددة", + "PublishSelected": "نشر المحدد", + "CreateMessage": "إنشاء رسالة", + "ShareMessages": "مشاركة الرسائل", + "Connect": "اتصال", + "RedirectGoogle": "سيتم إعادة توجيهك إلى صفحة مصادقة Google. يُرجى التأكد من تحديد جميع الأذونات.", + "ConnectGmail": "ربط حساب Gmail", + "Reply": "رد", + "Subject": "الموضوع", + "Send": "إرسال", + "Resend": "إعادة الإرسال", + "NewMessage": "رسالة جديدة", + "NewMessageTo": "رسالة جديدة إلى", + "Cancel": "إلغاء", + "SubjectPlaceholder": "موضوع الرسالة", + "CopyPlaceholder": "نسخة إلى", + "ReplyTo": "الرد إلى", + "Message": "رسالة", + "Messages": "الرسائل", + "Incoming": "واردة", + "Email": "البريد الإلكتروني", + "Status": "الحالة", + "EmailPlaceholder": "john.appleseed@apple.com", + "WriteEmail": "كتابة بريد إلكتروني", + "Shared": "مشترك", + "AvailableTo": "متاح لـ", + "HaveWrittenEmail": "كتبوا بريدًا إلكترونيًا", + "NewIncomingMessage": "أرسل لك بريدًا إلكترونيًا جديدًا", + "ConfigLabel": "البريد الإلكتروني", + "ConfigDescription": "إضافة لتكامل بريد Gmail الإلكتروني", + "GooglePrivacy": "إن استخدام Huly ونقلها للمعلومات المستلمة من واجهات برمجة تطبيقات Google إلى أي تطبيق آخر سيلتزم بـ سياسة بيانات مستخدم خدمات Google API، بما في ذلك متطلبات الاستخدام المحدود.", + "EmailNotificationsDescription": "تلقّي الإشعارات الشخصية على البريد الإلكتروني.", + "FailedToConnect": "خدمة Gmail غير متوفرة", + "TotalMessages": "إجمالي الرسائل:", + "Configure": "تهيئة تكامل Gmail", + "GmailSpace": "مساحة لقناة الرسائل", + "PersonSpaceInfo": "سيكون البريد متاحًا لك", + "SharedSpaceInfo": "سيكون البريد متاحًا لجميع المشاركين في المساحة", + "ConfigurationRequired": "يُرجى تهيئة تكامل Gmail لبدء استخدامه" + } +} diff --git a/plugins/gmail-resources/src/components/NewMessages.svelte b/plugins/gmail-resources/src/components/NewMessages.svelte index b46d438c30f..b5941bf8b62 100644 --- a/plugins/gmail-resources/src/components/NewMessages.svelte +++ b/plugins/gmail-resources/src/components/NewMessages.svelte @@ -363,8 +363,8 @@ border-radius: 0.25rem; .item + .item { - padding-left: 1rem; - border-left: 1px solid var(--divider-color); + padding-inline-start: 1rem; + border-inline-start: 1px solid var(--divider-color); } } diff --git a/plugins/guest-assets/lang/ar.json b/plugins/guest-assets/lang/ar.json new file mode 100644 index 00000000000..5d34c034d44 --- /dev/null +++ b/plugins/guest-assets/lang/ar.json @@ -0,0 +1,10 @@ +{ + "string": { + "CreatePublicLink": "إنشاء رابط عام", + "PublicLink": "رابط عام", + "Revoke": "إبطال", + "RevokeConfirmation": "سيؤدي هذا إلى توقف الرابط الذي تمت مشاركته سابقًا عن العمل. هل أنت متأكد من رغبتك في إبطال هذا الرابط العام؟", + "LinkWasRevoked": "تم إبطال الرابط العام", + "Copy": "نسخ" + } +} diff --git a/plugins/hr-assets/lang/ar.json b/plugins/hr-assets/lang/ar.json new file mode 100644 index 00000000000..8b8f94c744b --- /dev/null +++ b/plugins/hr-assets/lang/ar.json @@ -0,0 +1,69 @@ +{ + "string": { + "Department": "القسم", + "ParentDepartmentLabel": "القسم الأصل", + "Structure":"الهيكل", + "CreateDepartment": "إنشاء قسم", + "CreateDepartmentLabel": "القسم", + "DepartmentPlaceholder": "القسم", + "TeamLead": "قائد الفريق", + "UnAssignLead": "إلغاء إسناد قائد الفريق", + "MemberCount": "{count, plural, =0 {لا يوجد موظفون} =1 {موظف واحد} other {# موظفين}}", + "AssignLead": "إسناد قائد الفريق", + "TeamLeadTooltip": "{value}", + "HRApplication": "الموارد البشرية (تجريبي)", + "MoveStaff": "نقل الموظف", + "MoveStaffDescr": "هل تريد نقل الموظف من {current} إلى {department}", + "Departments": "الأقسام", + "Positions": "المناصب", + "ShowEmployees": "عرض الموظفين", + "AddEmployee": "إضافة موظف", + "SelectEmployee": "اختيار موظف", + "Schedule": "الجدول الزمني", + "RequestType": "النوع", + "CreateRequest": "إنشاء {type}", + "Today": "اليوم", + "Summary": "الإجمالي", + "NoEmployeesInDepartment": "لا يوجد موظفون في القسم المحدد", + "Vacation": "إجازة", + "Sick": "إجازة مرضية", + "PTO": "إجازة مدفوعة", + "PTOs": "إجازات مدفوعة", + "Remote": "عمل عن بُعد", + "Overtime": "عمل إضافي", + "PTO2": "إجازة مدفوعة/2", + "Overtime2": "عمل إضافي/2", + "EditRequest": "تعديل {type}", + "EditRequestType": "تعديل النوع", + "ChooseNewType": "اختر نوعًا جديدًا:", + "UnchangeableType": "لا يمكن تغيير هذا النوع", + "Request": "الطلب", + "ExistingRequests": "توجد بالفعل طلبات للتواريخ المحددة", + "Staff": "العامل", + "Member": "العضو", + "Members": "الأعضاء", + "NoMembers": "لم تتم إضافة أعضاء", + "AddMember": "إضافة عضو", + "Subscribers": "المشتركون", + "PublicHoliday": "عطلة رسمية", + "Title": "العنوان", + "Description": "الوصف", + "PublicHolidays": "العطل الرسمية", + "MarkAsPublicHoliday": "تعليم كعطلة رسمية", + "EditPublicHoliday": "تعديل العطلة الرسمية", + "Managers": "المديرون", + "Export": "تصدير", + "Separator": "الفاصل", + "ChooseSeparator": "اختيار الفاصل", + "RequestCreated": "تم إنشاء الطلب", + "RequestUpdated": "تم تحديث الطلب", + "RequestRemoved": "تمت إزالة الطلب", + "ConfigLabel": "الموارد البشرية", + "ConfigDescription": "امتداد لإدارة هيكل المؤسسة وتقويم عمل الموظفين", + "WorkingDays": "أيام العمل", + "ReportedDays": "الأيام المبلّغ عنها", + "Tasks": "المهام", + "TPD": "TPD", + "EXTRa": "EXTRa" + } +} diff --git a/plugins/hr-resources/src/components/schedule/MonthView.svelte b/plugins/hr-resources/src/components/schedule/MonthView.svelte index 315d79c048f..e5a1263c897 100644 --- a/plugins/hr-resources/src/components/schedule/MonthView.svelte +++ b/plugins/hr-resources/src/components/schedule/MonthView.svelte @@ -437,7 +437,7 @@ z-index: 1; &.timeline-resource-header { - left: 0; + inset-inline-start: 0; z-index: 2; } } @@ -460,7 +460,7 @@ background-color: $timeline-bg-color; position: sticky; - left: 0; + inset-inline-start: 0; z-index: 1; } @@ -523,7 +523,7 @@ } .timeline-cell { - border-right: $timeline-border; + border-inline-end: $timeline-border; width: $timeline-column-width; height: 100%; @@ -554,7 +554,7 @@ } .timeline-resource-cell { - border-right: $timeline-border; + border-inline-end: $timeline-border; width: 100%; height: 100%; @@ -564,8 +564,8 @@ .timeline-event-wrapper { position: absolute; height: 1.5rem; - padding-left: 0.125rem; - padding-right: 0.125rem; + padding-inline-start: 0.125rem; + padding-inline-end: 0.125rem; pointer-events: all; } diff --git a/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte b/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte index c5870bdad90..d5dff009d59 100644 --- a/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte +++ b/plugins/hr-resources/src/components/schedule/StaffPresenter.svelte @@ -68,7 +68,7 @@ color: var(--theme-warning-color); opacity: 0.8; font-size: 0.75rem; - margin-left: 0.25rem; + margin-inline-start: 0.25rem; } .member-department { color: var(--theme-caption-color); diff --git a/plugins/hr-resources/src/components/schedule/YearView.svelte b/plugins/hr-resources/src/components/schedule/YearView.svelte index cf9eff2e39a..e0a38b0fee6 100644 --- a/plugins/hr-resources/src/components/schedule/YearView.svelte +++ b/plugins/hr-resources/src/components/schedule/YearView.svelte @@ -213,7 +213,7 @@ &.td-body { border-bottom: 1px solid var(--divider-color); &:not(:last-child) { - border-right: 1px solid var(--divider-color); + border-inline-end: 1px solid var(--divider-color); } } } diff --git a/plugins/huly-mail-assets/lang/ar.json b/plugins/huly-mail-assets/lang/ar.json new file mode 100644 index 00000000000..d107dd49b97 --- /dev/null +++ b/plugins/huly-mail-assets/lang/ar.json @@ -0,0 +1,20 @@ +{ + "string": { + "IntegrationLabel": "Huly Mail", + "IntegrationDescription": "اربط صندوق بريد Huly الخاص بك لإرسال الرسائل واستقبالها وإدارتها", + "Connect": "اتصال", + "ConnectHulyMail": "ربط صندوق بريد Huly", + "Cancel": "إلغاء", + "Email": "البريد الإلكتروني", + "Status": "الحالة", + "FailedToConnect": "خدمة بريد Huly غير متاحة", + "TotalMessages": "إجمالي الرسائل:", + "Configure": "تكوين بريد Huly", + "ChannelSpace": "مساحة قناة الرسائل", + "PersonSpaceInfo": "سيكون البريد متاحًا لك", + "SharedSpaceInfo": "سيكون البريد متاحًا لجميع المشاركين في المساحة", + "Mailbox": "صندوق البريد", + "MailboxesNotConfigured": "لم يتم العثور على صناديق بريد", + "ConfigureMailBoxes": "يرجى إضافة صندوق بريد في قسم `Mailboxes` للبدء" + } +} diff --git a/plugins/inbox-assets/lang/ar.json b/plugins/inbox-assets/lang/ar.json new file mode 100644 index 00000000000..70d3ba65079 --- /dev/null +++ b/plugins/inbox-assets/lang/ar.json @@ -0,0 +1,13 @@ +{ + "string": { + "Inbox": "صندوق الوارد", + "ReactedToYourMessage": "تفاعل مع رسالتك", + "ClearAll": "مسح الكل", + "InboxIsClear": "صندوق الوارد فارغ", + "YouDontHaveAnyNewMessages": "ليس لديك أي رسائل جديدة", + "ReadAll": "تعليم الكل كمقروء", + "Clearing": "جارٍ المسح...", + "Reading": "جارٍ القراءة...", + "HideUserNames": "إخفاء أسماء المستخدمين" + } +} diff --git a/plugins/inbox-resources/src/components/InboxCard.svelte b/plugins/inbox-resources/src/components/InboxCard.svelte index a00199e889a..d98a11aba8f 100644 --- a/plugins/inbox-resources/src/components/InboxCard.svelte +++ b/plugins/inbox-resources/src/components/InboxCard.svelte @@ -214,7 +214,7 @@ display: flex; align-items: center; gap: 0.5rem; - margin-left: var(--spacing-0_5); + margin-inline-start: var(--spacing-0_5); height: 2.5rem; min-height: 2.5rem; max-height: 2.5rem; @@ -223,14 +223,14 @@ &__remove { display: flex; align-items: center; - margin-left: auto; + margin-inline-start: auto; min-width: 1.5rem; } &__content { display: flex; width: 100%; - padding-left: 0.5rem; + padding-inline-start: 0.5rem; } &__notifications { diff --git a/plugins/inbox-resources/src/components/InboxCardIcon.svelte b/plugins/inbox-resources/src/components/InboxCardIcon.svelte index f444e07e789..b8663326566 100644 --- a/plugins/inbox-resources/src/components/InboxCardIcon.svelte +++ b/plugins/inbox-resources/src/components/InboxCardIcon.svelte @@ -65,7 +65,7 @@ &__marker { position: absolute; top: -0.375rem; - right: 0; + inset-inline-end: 0; transform: translateX(calc(100% - 0.875rem)); display: flex; align-items: center; diff --git a/plugins/inbox-resources/src/components/InboxHeader.svelte b/plugins/inbox-resources/src/components/InboxHeader.svelte index 86d3d9070b2..6c7d3be2ea5 100644 --- a/plugins/inbox-resources/src/components/InboxHeader.svelte +++ b/plugins/inbox-resources/src/components/InboxHeader.svelte @@ -134,6 +134,6 @@ color: var(--global-secondary-TextColor); font-weight: 500; font-size: 0.625rem; - margin-left: 0.25rem; + margin-inline-start: 0.25rem; } diff --git a/plugins/inbox-resources/src/components/NotificationTemplate.svelte b/plugins/inbox-resources/src/components/NotificationTemplate.svelte index 2c3b8de6a20..dff216437ee 100644 --- a/plugins/inbox-resources/src/components/NotificationTemplate.svelte +++ b/plugins/inbox-resources/src/components/NotificationTemplate.svelte @@ -28,13 +28,13 @@ user-select: none; &:first-child .marker { - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; + border-start-start-radius: 0.5rem; + border-start-end-radius: 0.5rem; } &:last-child .marker { - border-bottom-left-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; + border-end-start-radius: 0.5rem; + border-end-end-radius: 0.5rem; } &:hover .marker { diff --git a/plugins/inbox-resources/src/components/ReactionNotification.svelte b/plugins/inbox-resources/src/components/ReactionNotification.svelte index 1dcbe8ae8ea..20f688e7c2d 100644 --- a/plugins/inbox-resources/src/components/ReactionNotification.svelte +++ b/plugins/inbox-resources/src/components/ReactionNotification.svelte @@ -80,8 +80,8 @@ display: flex; align-items: center; gap: 0.25rem; - padding-right: var(--spacing-0_75); - padding-left: var(--spacing-1_25); + padding-inline-end: var(--spacing-0_75); + padding-inline-start: var(--spacing-1_25); } &__emoji { @@ -93,7 +93,7 @@ min-height: 1.325rem; height: 1.325rem; overflow: hidden; - margin-right: 0.25rem; + margin-inline-end: 0.25rem; } } diff --git a/plugins/inbox-resources/src/components/legacy/ReactionInboxNotificationPresenter.svelte b/plugins/inbox-resources/src/components/legacy/ReactionInboxNotificationPresenter.svelte index aca1dc51191..194f4071bda 100644 --- a/plugins/inbox-resources/src/components/legacy/ReactionInboxNotificationPresenter.svelte +++ b/plugins/inbox-resources/src/components/legacy/ReactionInboxNotificationPresenter.svelte @@ -82,8 +82,8 @@ display: flex; align-items: center; gap: 0.25rem; - padding-right: var(--spacing-0_75); - padding-left: var(--spacing-1_25); + padding-inline-end: var(--spacing-0_75); + padding-inline-start: var(--spacing-1_25); } &__emoji { @@ -95,7 +95,7 @@ min-height: 1.325rem; height: 1.325rem; overflow: hidden; - margin-right: 0.25rem; + margin-inline-end: 0.25rem; } } diff --git a/plugins/inventory-assets/lang/ar.json b/plugins/inventory-assets/lang/ar.json new file mode 100644 index 00000000000..afda015087f --- /dev/null +++ b/plugins/inventory-assets/lang/ar.json @@ -0,0 +1,25 @@ +{ + "status": { + "CategoryRequired": "الفئة مطلوبة", + "NameRequired": "الاسم مطلوب" + }, + "string": { + "Categories": "الفئات", + "Category": "الفئة", + "CategoryCreateLabel": "فئة", + "CreateCategory": "إنشاء فئة", + "CreateSubcategory": "إنشاء فئة فرعية", + "Inventory": "المخزون", + "ProductCreateLabel": "منتج", + "CreateProduct": "إنشاء منتج", + "Products": "المنتجات", + "Product": "المنتج", + "Variant": "المتغير", + "SKU": "SKU", + "Variants": "المتغيرات", + "NoVariantsForProduct": "لا توجد متغيرات لهذا المنتج.", + "CreateVariant": "إنشاء متغير", + "ConfigLabel": "المخزون", + "ConfigDescription": "امتداد لإدارة الامتدادات" + } +} diff --git a/plugins/inventory-resources/src/components/HierarchyElement.svelte b/plugins/inventory-resources/src/components/HierarchyElement.svelte index 6d792557af2..b486cb27e9d 100644 --- a/plugins/inventory-resources/src/components/HierarchyElement.svelte +++ b/plugins/inventory-resources/src/components/HierarchyElement.svelte @@ -103,11 +103,11 @@ align-items: center; .menuRow { visibility: hidden; - margin-left: 0.5rem; + margin-inline-start: 0.5rem; } .expand { - margin-left: -1.5rem; - margin-right: 0.5rem; + margin-inline-start: -1.5rem; + margin-inline-end: 0.5rem; } .expand, .menuRow { @@ -120,12 +120,12 @@ } td { padding: 0.5rem 1.5rem; - text-align: left; + text-align: start; &:first-child { - padding-left: 2.5rem; + padding-inline-start: 2.5rem; } &:last-child { - padding-right: 1.5rem; + padding-inline-end: 1.5rem; } } diff --git a/plugins/inventory-resources/src/components/HierarchyView.svelte b/plugins/inventory-resources/src/components/HierarchyView.svelte index 446d7fc53a9..34a945663f4 100644 --- a/plugins/inventory-resources/src/components/HierarchyView.svelte +++ b/plugins/inventory-resources/src/components/HierarchyView.svelte @@ -101,12 +101,12 @@ user-select: none; z-index: 5; padding: 0.5rem 1.5rem; - text-align: left; + text-align: start; &:first-child { - padding-left: 2.5rem; + padding-inline-start: 2.5rem; } &:last-child { - padding-right: 1.5rem; + padding-inline-end: 1.5rem; } } diff --git a/plugins/lead-assets/lang/ar.json b/plugins/lead-assets/lang/ar.json new file mode 100644 index 00000000000..1f578cde0d6 --- /dev/null +++ b/plugins/lead-assets/lang/ar.json @@ -0,0 +1,40 @@ +{ + "string": { + "CreateFunnel": "قمع جديد", + "CreateLead": "عميل محتمل جديد", + "Funnel": "القمع", + "FunnelName": "اسم القمع", + "Funnels": "القمعات", + "LeadApplication": "العملاء المحتملون (تجريبي)", + "LeadCreateLabel": "عميل محتمل", + "SelectFunnel": "اختيار القمع", + "LeadName": "اسم العميل المحتمل", + "More": "المزيد...", + "Customer": "العميل", + "Customers": "العملاء", + "Leads": "العملاء المحتملون", + "MyLeads": "عملائي المحتملون", + "SelectCustomer": "اختيار العميل", + "Lead": "عميل محتمل", + "Assignee": "المُسند إليه", + "Title": "العنوان", + "LeadPlaceholder": "العميل المحتمل البسيط", + "ManageFunnelStatuses": "إدارة أنواع القمع", + "GotoLeadApplication": "التبديل إلى تطبيق العملاء المحتملين", + "IssueDescriptionPlaceholder": "أضف وصفًا...", + "CreateCustomer": "إنشاء عميل", + "CreateCustomerLabel": "عميل جديد", + "NoLeadsForDocument": "لا يوجد عملاء محتملون لهذا المستند", + "Description": "وصف العميل", + "FullDescription": "الوصف الكامل", + "FunnelPlaceholder": "القمع البسيط", + "Members": "الأعضاء", + "UnAssign": "إلغاء الإسناد", + "ConfigLabel": "إدارة علاقات العملاء", + "ConfigDescription": "امتداد لإدارة علاقات العملاء", + "EditFunnel": "تحرير القمع", + "FunnelMembers": "الأعضاء", + "ForbidCreateFunnelPermission": "منع إنشاء القمع", + "ForbidCreateFunnelPermissionDescription": "منع المستخدمين من إنشاء قمعات جديدة" + } +} diff --git a/plugins/lead-resources/src/components/TitlePresenter.svelte b/plugins/lead-resources/src/components/TitlePresenter.svelte index 4a4d6627f28..fffda33f87c 100644 --- a/plugins/lead-resources/src/components/TitlePresenter.svelte +++ b/plugins/lead-resources/src/components/TitlePresenter.svelte @@ -50,6 +50,6 @@ } .with-margin { - margin-left: 0.5rem; + margin-inline-start: 0.5rem; } diff --git a/plugins/login-assets/lang/ar.json b/plugins/login-assets/lang/ar.json new file mode 100644 index 00000000000..2f4425fe340 --- /dev/null +++ b/plugins/login-assets/lang/ar.json @@ -0,0 +1,106 @@ +{ + "status": { + "RequiredField": "حقل مطلوب {field}", + "FieldsDoNotMatch": "{field} لا يطابق {field2}", + "ConnectingToServer": "جارٍ الاتصال بالخادم....", + "IncorrectValue": "قيمة غير صحيحة {field}" + }, + "string": { + "ChangePassword": "تغيير كلمة المرور", + "SetPassword": "تعيين كلمة مرور", + "SSOPasswordDescription": "يستخدم حسابك تسجيل دخول خارجيًا. قم بإعداد كلمة مرور عبر تأكيد البريد الإلكتروني.", + "SendSetupLink": "إرسال رابط الإعداد", + "SSOPasswordEmailSent": "تحقق من بريدك الإلكتروني للحصول على رابط لتعيين كلمة المرور.", + "SSONoEmailLinked": "لا يوجد عنوان بريد إلكتروني مرتبط بحسابك. أضف عنوانًا في إعدادات الحساب ← إدارة الهويات أولاً.", + "CurrentPassword": "كلمة المرور الحالية", + "NewPassword": "كلمة المرور الجديدة", + "EnterCurrentPassword": "أدخل كلمة المرور الحالية", + "EnterNewPassword": "أدخل كلمة المرور الجديدة", + "RepeatNewPassword": "أعد إدخال كلمة المرور الجديدة", + "PasswordExpiredDesc": "انتهت صلاحية كلمة المرور الخاصة بك. يُرجى تعيين كلمة مرور جديدة للمتابعة.", + "LogIn": "تسجيل الدخول", + "SignUp": "إنشاء حساب", + "CreateWorkspace": "إنشاء مساحة عمل", + "HaveWorkspace": "هل لديك مساحة عمل بالفعل؟", + "LastName": "اسم العائلة", + "FirstName": "الاسم الأول", + "Join": "انضمام", + "JoinWorkspace": "انضمام إلى {workspaceName}", + "Email": "البريد الإلكتروني", + "Password": "كلمة المرور", + "Workspace": "اسم مساحة العمل", + "DoNotHaveAnAccount": "ليس لديك حساب؟", + "PasswordRepeat": "أعد إدخال كلمة المرور", + "HaveAccount": "هل لديك حساب بالفعل؟", + "LoadingAccount": "جارٍ التحميل...", + "SelectWorkspace": "تحديد مساحة العمل", + "Copy": "نسخ", + "Copied": "تم النسخ", + "Close": "إغلاق", + "InviteDescription": "شارك هذا الرابط لدعوة مستخدمين آخرين", + "WantAnotherWorkspace": "هل تريد إنشاء مساحة عمل أخرى؟", + "ChangeAccount": "تغيير الحساب", + "NotSeeingWorkspace": "لا ترى مساحة عملك؟", + "ForgotPassword": "هل نسيت كلمة المرور؟", + "KnowPassword": "هل تعرف كلمة المرور؟", + "Recover": "استرداد", + "PasswordRecovery": "استرداد كلمة المرور", + "RecoveryLinkSent": "تم إرسال رابط استرداد كلمة المرور إلى البريد الإلكتروني", + "UseWorkspaceInviteSettings": "استخدام إعدادات دعوة مساحة العمل", + "LinkValidHours": "انتهاء صلاحية رابط الدعوة (بالساعات):", + "EmailMask": "قناع البريد الإلكتروني:", + "InviteLimit": "الحد الأقصى للاستخدامات لكل رابط دعوة:", + "GetLink": "الحصول على رابط الدعوة", + "NoLimit": "استخدامات غير محدودة:", + "AlreadyJoined": "هل انضممت بالفعل؟", + "ConfirmationSent": "تم إرسال رسالة إلى بريدك الإلكتروني تحتوي على رابط لتأكيد عنوانك.", + "ConfirmationSent2": "يُرجى اتباع الرابط لإكمال إنشاء حسابك.", + "ContinueWith": "المتابعة باستخدام {provider}", + "HaventReceivedCode": "لم تستلم الرمز؟", + "ResendCode": "إعادة إرسال الرمز", + "WrongEmail": "بريد إلكتروني خاطئ؟", + "ChangeEmail": "تغيير البريد الإلكتروني", + "SentTo": "لقد أرسلنا رمزًا إلى ", + "CanFindCode": "لا يمكنك العثور على رمزك؟ تحقق من مجلد الرسائل غير المرغوب فيها.", + "LoginWithPassword": "تسجيل الدخول بكلمة المرور", + "LoginWithCode": "تسجيل الدخول بالرمز", + "SignUpWithPassword": "إنشاء حساب بكلمة المرور", + "SignUpWithCode": "إنشاء حساب بالرمز", + "FillInProfile": "املأ ملفك الشخصي", + "SetUpPassword": "إعداد كلمة المرور الخاصة بك", + "Next": "التالي", + "Skip": "تخطّي", + "SignUpCompleted": "اكتمل إنشاء الحساب", + "StartUsingHuly": "ابدأ باستخدام Huly", + "PasswordMinLength": "{count, plural, =1 {يجب ألا يقل طول كلمة المرور عن # حرف} other {يجب ألا يقل طول كلمة المرور عن # أحرف}}", + "PasswordMinSpecialChars": "{count, plural, =1 {يجب أن تحتوي كلمة المرور على # حرف خاص على الأقل} other {يجب أن تحتوي كلمة المرور على # أحرف خاصة على الأقل}}", + "PasswordMinDigits": "{count, plural, =1 {يجب أن تحتوي كلمة المرور على # رقم على الأقل} other {يجب أن تحتوي كلمة المرور على # أرقام على الأقل}}", + "PasswordMinUpperChars": "{count, plural, =1 {يجب أن تحتوي كلمة المرور على # حرف كبير على الأقل} other {يجب أن تحتوي كلمة المرور على # أحرف كبيرة على الأقل}}", + "PasswordMinLowerChars": "{count, plural, =1 {يجب أن تحتوي كلمة المرور على # حرف صغير على الأقل} other {يجب أن تحتوي كلمة المرور على # أحرف صغيرة على الأقل}}", + "WorkspaceArchivedDesc": "تمت أرشفة مساحة العمل بسبب عدم استخدامها.", + "RestoreArchivedWorkspace": "إلغاء الأرشفة", + "Hello": "مرحبًا {name}،", + "ProcessingInvite": "جارٍ معالجة الدعوة، يُرجى الانتظار...", + "SignToProceed": "يُرجى تسجيل الدخول للمتابعة", + "Proceed": "متابعة", + "SetPasswordLater": "سأقوم بتعيين كلمة مرور لاحقًا", + "SetPasswordNow": "سأقوم بتعيين كلمة مرور الآن", + "LoginAsGuest": "المتابعة كضيف", + "SignUpToCreateWorkspace": "لا توجد مساحات عمل بوصول الضيوف. يُرجى إنشاء حساب لإنشاء مساحة العمل الخاصة بك.", + "WhatIsYourName": "ما اسمك؟", + "AccessExpired": "انتهت مدة الوصول. يُرجى طلب رابط وصول جديد.", + "AccessNotActive": "لم تبدأ مدة الوصول بعد. ستبدأ خلال: ", + "JoinWithThisAccount": "الانضمام بهذا الحساب", + "UseDifferentAccount": "استخدام حساب مختلف", + "UseCurrentAccountToJoin": "هل سجّلت الدخول بالفعل؟", + "LogInAndJoin": "تسجيل الدخول والانضمام", + "SignUpAndJoin": "إنشاء حساب والانضمام", + "CreateNewAccount": "إنشاء حساب جديد", + "SignedInAs": "تم تسجيل الدخول باسم {name}", + "TwoFactorAuth": "المصادقة الثنائية", + "EnterTwoFactorCode": "أدخل رمز المصادقة الثنائية", + "TwoFactorCode": "رمز المصادقة الثنائية", + "Verify": "تحقّق", + "CreateSampleProjects": "إنشاء مشاريع نموذجية ومحتوى تجريبي" + } +} diff --git a/plugins/login-resources/src/components/LoginApp.svelte b/plugins/login-resources/src/components/LoginApp.svelte index 2af6f572bd3..96a708bbf10 100644 --- a/plugins/login-resources/src/components/LoginApp.svelte +++ b/plugins/login-resources/src/components/LoginApp.svelte @@ -200,7 +200,7 @@ .back-image { position: fixed; top: 32px; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; object-fit: cover; diff --git a/plugins/login-resources/src/components/Tabs.svelte b/plugins/login-resources/src/components/Tabs.svelte index d6fd5059453..eaf2e2e34d2 100644 --- a/plugins/login-resources/src/components/Tabs.svelte +++ b/plugins/login-resources/src/components/Tabs.svelte @@ -76,7 +76,7 @@ cursor: default; } &:first-child { - margin-right: 1.75rem; + margin-inline-end: 1.75rem; } &:hover { text-decoration: none; diff --git a/plugins/love-assets/lang/ar.json b/plugins/love-assets/lang/ar.json new file mode 100644 index 00000000000..af5fbaa87a5 --- /dev/null +++ b/plugins/love-assets/lang/ar.json @@ -0,0 +1,98 @@ +{ + "string": { + "Office": "المكتب", + "Room": "الغرفة", + "RoomType": "نوع الغرفة", + "Share": "مشاركة", + "StopShare": "إيقاف المشاركة", + "StartVideo": "بدء الفيديو", + "StopVideo": "إيقاف الفيديو", + "Mute": "كتم الصوت", + "UnMute": "إلغاء كتم الصوت", + "LeaveRoom": "مغادرة الغرفة", + "Floors": "الطوابق", + "MyOffice": "مكتبي", + "EditOffice": "تحرير المكتب", + "FinalizeEditing": "تم", + "Floor": "الطابق", + "ChangeFloor": "تغيير الطابق", + "IsKnocking": "{name} يطرق الباب...", + "Accept": "قبول", + "Decline": "رفض", + "EnterRoom": "دخول الغرفة", + "TeamRoom": "غرفة الفريق", + "MeetingRoom": "غرفة الاجتماعات", + "KnockingTo": "جارٍ طرق الباب...", + "Cancel": "إلغاء", + "AnotherWindowError": "تم إنشاء الاتصال بالفعل في نافذة أخرى. يُرجى استخدام تلك النافذة أو إعادة الاتصال", + "Speaker": "السماعة", + "Microphone": "الميكروفون", + "Camera": "الكاميرا", + "Settings": "الإعدادات", + "LoveDescription": "بيئة مكتب افتراضية مباشرة", + "DefaultDevice": "الجهاز الافتراضي", + "Knock": "الطرق مطلوب", + "Open": "مفتوح", + "DND": "عدم الإزعاج", + "ChangeAccess": "تغيير الوصول", + "AddAFloor": "إضافة طابق", + "RenameAFloor": "إعادة تسمية طابق", + "StartWithoutVideo": "ابدأ دائمًا مع إيقاف الكاميرا", + "StartWithMutedMic": "ابدأ دائمًا مع كتم الميكروفون", + "InvitingYou": "{name} يطلب منك الانضمام", + "YouInivite": "أنت تدعو للانضمام", + "NoiseCancellation": "إلغاء الضوضاء", + "KnockingLabel": "الطرق", + "InivitingLabel": "دعوة", + "Invite": "دعوة", + "KnockAction": "طرق", + "NoiseCancellationNotSupported": "إلغاء الضوضاء غير مدعوم في هذا المتصفح", + "Blur": "تمويه الخلفية", + "BlurRadius": "نصف القطر", + "BlurTooltip": "تزيد ميزة التمويه بشكل كبير من استهلاك وحدة المعالجة المركزية، مما قد يؤثر على الأداء العام للنظام.", + "GuestLink": "رابط الضيف", + "CopyGuestLink": "نسخ رابط الضيف", + "Record": "تسجيل", + "StopRecord": "إيقاف التسجيل", + "LeaveRoomConfirmation": "هل أنت متأكد من رغبتك في مغادرة الغرفة؟", + "ServiceNotConfigured": "لم تتم تهيئة الخدمة", + "FullscreenMode": "وضع ملء الشاشة", + "ExitingFullscreenMode": "الخروج من وضع ملء الشاشة", + "Select": "تحديد", + "ChooseShare": "اختر ما تريد مشاركته", + "CreateMeeting": "إنشاء اجتماع", + "MoreOptions": "خيارات أخرى", + "StartTranscription": "بدء التفريغ النصي", + "StopTranscription": "إيقاف التفريغ النصي", + "Meeting": "اجتماع", + "Transcription": "التفريغ النصي", + "StartWithTranscription": "البدء مع التفريغ النصي", + "MeetingMinutes": "محضر الاجتماع", + "MeetingsMinutes": "محاضر الاجتماعات", + "StartMeeting": "بدء الاجتماع", + "Video": "فيديو", + "NoMeetingMinutes": "لا توجد محاضر اجتماعات", + "JoinMeeting": "الانضمام إلى الاجتماع", + "MeetingStart": "بدء الاجتماع", + "MeetingEnd": "انتهاء الاجتماع", + "EndMeeting": "إنهاء الاجتماع", + "Status": "الحالة", + "Active": "نشط", + "Finished": "منتهٍ", + "StartWithRecording": "البدء مع التسجيل", + "Language": "اللغة", + "Kick": "طرد", + "WithAudio": "تضمين صوت النظام", + "ShareWithAudioTooltip": "شارك شاشتك مع صوت النظام. أعد تشغيل مشاركة الشاشة لتطبيق التغييرات.", + "MicPermission": "لم يتم العثور على الميكروفون، تحقق من أذونات المتصفح", + "CamPermission": "لم يتم العثور على الكاميرا، تحقق من أذونات المتصفح", + "SearchMeetingMinutes": "البحث في محاضر الاجتماعات...", + "Sharing": "جارٍ المشاركة...", + "Browser": "المتصفح", + "Monitor": "الشاشة", + "Window": "النافذة", + "MeetingEmptyTitle": "هل انتهى الاجتماع؟", + "MeetingEmptyMessage": "غادر جميع المشاركين. سيتم قطع اتصالك خلال دقيقة واحدة. هل ترغب في البقاء؟", + "StayInRoom": "البقاء في الغرفة" + } +} diff --git a/plugins/love-resources/src/components/RoomSettingsPopup.svelte b/plugins/love-resources/src/components/RoomSettingsPopup.svelte index 155b6cb0f9c..fa71830beb6 100644 --- a/plugins/love-resources/src/components/RoomSettingsPopup.svelte +++ b/plugins/love-resources/src/components/RoomSettingsPopup.svelte @@ -79,11 +79,11 @@ } .groups { - padding-right: 0.5rem; + padding-inline-end: 0.5rem; width: 12rem; display: flex; flex-direction: column; - border-right: 1px solid var(--global-ui-BorderColor); + border-inline-end: 1px solid var(--global-ui-BorderColor); } .component { diff --git a/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte b/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte index 2fb9db5f2a3..213a1573184 100644 --- a/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte +++ b/plugins/love-resources/src/components/meeting/ControlBarContainer.svelte @@ -111,7 +111,7 @@ } .center { position: absolute; - left: 50%; + inset-inline-start: 50%; transform: translateX(-50%); } diff --git a/plugins/love-resources/src/components/meeting/ParticipantView.svelte b/plugins/love-resources/src/components/meeting/ParticipantView.svelte index 98dbf18f69f..4897b804de2 100644 --- a/plugins/love-resources/src/components/meeting/ParticipantView.svelte +++ b/plugins/love-resources/src/components/meeting/ParticipantView.svelte @@ -269,7 +269,7 @@ overflow: hidden; position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; height: 50%; aspect-ratio: 1; border-radius: 50%; @@ -294,7 +294,7 @@ gap: 0.25rem; padding: 0.25rem 0.5rem; top: 0.25rem; - left: 0.25rem; + inset-inline-start: 0.25rem; max-width: 12rem; font-weight: 500; font-size: 0.75rem; @@ -305,7 +305,7 @@ backdrop-filter: blur(3px); &.withIcon { - padding-left: 0.25rem; + padding-inline-start: 0.25rem; } } &.speach::before, diff --git a/plugins/mail-assets/lang/ar.json b/plugins/mail-assets/lang/ar.json new file mode 100644 index 00000000000..f743423de36 --- /dev/null +++ b/plugins/mail-assets/lang/ar.json @@ -0,0 +1,5 @@ +{ + "string": { + "MailTag": "البريد" + } +} diff --git a/plugins/media-assets/lang/ar.json b/plugins/media-assets/lang/ar.json new file mode 100644 index 00000000000..00b14caf253 --- /dev/null +++ b/plugins/media-assets/lang/ar.json @@ -0,0 +1,19 @@ +{ + "string": { + "Camera": "الكاميرا", + "Microphone": "الميكروفون", + "Speaker": "السماعة", + "DefaultCam": "الكاميرا الافتراضية", + "DefaultMic": "الميكروفون الافتراضي", + "DefaultSpeaker": "السماعة الافتراضية", + "TurnOnCam": "تشغيل الكاميرا", + "TurnOffCam": "إيقاف الكاميرا", + "TurnOnMic": "تشغيل الميكروفون", + "TurnOffMic": "إيقاف الميكروفون", + "NoCam": "لا توجد كاميرا", + "NoMic": "لا يوجد ميكروفون", + "NoSpeaker": "لا توجد سماعة", + "On": "تشغيل", + "Off": "إيقاف" + } +} diff --git a/plugins/notification-assets/lang/ar.json b/plugins/notification-assets/lang/ar.json new file mode 100644 index 00000000000..bdd946cce3e --- /dev/null +++ b/plugins/notification-assets/lang/ar.json @@ -0,0 +1,62 @@ +{ + "string": { + "Notification": "إشعار", + "Notifications": "الإشعارات", + "NoNotifications": "لا توجد إشعارات", + "EmailNotification": "البريد الإلكتروني", + "PlatformNotification": "في المنصة", + "Track": "تتبع", + "DontTrack": "عدم التتبع", + "BrowserNotification": "في المتصفح", + "Remove": "حذف الإشعار", + "RemoveAll": "حذف جميع الإشعارات", + "MarkAllAsRead": "تحديد جميع الإشعارات كمقروءة", + "MarkAsRead": "تحديد كمقروء", + "MarkAsUnread": "تحديد كغير مقروء", + "Archive": "أرشفة", + "Inbox": "صندوق الوارد", + "Collaborators": "المتعاونون", + "Change": "تغيير", + "AddedRemoved": "تمت الإضافة/الإزالة", + "YouAddedCollaborators": "تمت إضافتك إلى المتعاونين", + "YouRemovedCollaborators": "تمت إزالتك من المتعاونين", + "YouHaveJoinedTheConversation": "لقد انضممت إلى المحادثة", + "ChangeCollaborators": "غيّر المتعاونين", + "Activity": "النشاط", + "People": "الأشخاص", + "All": "الكل", + "Read": "مقروء", + "Unread": "غير مقروء", + "CommonNotificationTitle": "{title}", + "CommonNotificationBody": "تم التحديث بواسطة {senderName}", + "CommonNotificationChanged": "{senderName} غيّر {property}", + "CommonNotificationChangedProperty": "{senderName} غيّر {property} إلى \"{newValue}\"", + "ChangedCollaborators": "تم تغيير المتعاونين", + "NewCollaborators": "متعاونون جدد", + "RemovedCollaborators": "المتعاونون المُزالون", + "Edited": "تم التحرير", + "Pinned": "مثبّت", + "Message": "رسالة", + "ArchiveAll": "أرشفة الكل", + "MarkReadAll": "تحديد الكل كمقروء", + "MarkUnreadAll": "تحديد الكل كغير مقروء", + "ArchiveAllConfirmationTitle": "أرشفة جميع الإشعارات؟", + "ArchiveAllConfirmationMessage": "هل أنت متأكد من رغبتك في أرشفة جميع الإشعارات؟ لا يمكن التراجع عن هذه العملية.", + "StarDocument": "إضافة المستند إلى المفضلة", + "UnstarDocument": "إزالة المستند من المفضلة", + "Unsubscribe": "إلغاء الاشتراك", + "Push": "الدفع", + "Unreads": "غير المقروءة", + "EnablePush": "تمكين الإشعارات الفورية", + "NotificationBlockedInBrowser": "الإشعارات محظورة في متصفحك. يُرجى تمكين الإشعارات في إعدادات متصفحك", + "General": "عام", + "InboxNotificationsDescription": "استقبل الإشعارات الشخصية في صندوق وارد Huly الخاص بك.", + "PushNotificationsDescription": "استقبل الإشعارات الشخصية على سطح المكتب.", + "CommonNotificationCollectionAdded": "{senderName} أضاف {collection}", + "CommonNotificationCollectionRemoved": "{senderName} أزال {collection}", + "Sound": "الصوت", + "SoundNotificationsDescription": "استقبل إشعارات صوتية للأحداث.", + "NoAccessToObject": "لم يعد لديك وصول إلى هذا العنصر", + "ViewIn": "العرض في {app}" + } +} diff --git a/plugins/notification-resources/src/components/DocNotifyContextCard.svelte b/plugins/notification-resources/src/components/DocNotifyContextCard.svelte index a03e02cb903..046f23497f9 100644 --- a/plugins/notification-resources/src/components/DocNotifyContextCard.svelte +++ b/plugins/notification-resources/src/components/DocNotifyContextCard.svelte @@ -315,7 +315,7 @@ display: flex; align-items: center; gap: 0.75rem; - margin-left: var(--spacing-0_5); + margin-inline-start: var(--spacing-0_5); .actions { position: absolute; @@ -323,7 +323,7 @@ align-items: center; justify-content: center; top: -0.5rem; - right: 0.25rem; + inset-inline-end: 0.25rem; gap: 0.25rem; color: var(--global-secondary-TextColor); } @@ -333,7 +333,7 @@ font-weight: 400; color: var(--global-primary-TextColor); min-width: 0; - margin-right: 1rem; + margin-inline-end: 1rem; } } @@ -343,7 +343,7 @@ min-width: 0; flex-direction: column; margin-top: var(--spacing-1); - margin-left: var(--spacing-2_5); + margin-inline-start: var(--spacing-2_5); } .notification { @@ -361,8 +361,8 @@ &:first-child { .embeddedMarker { - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; + border-start-start-radius: 0.5rem; + border-start-end-radius: 0.5rem; } } @@ -375,8 +375,8 @@ &:last-child { .embeddedMarker { - border-bottom-left-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; + border-end-start-radius: 0.5rem; + border-end-end-radius: 0.5rem; } } } @@ -391,7 +391,7 @@ gap: 0.25rem; min-width: 0; overflow: hidden; - margin-right: 4rem; + margin-inline-end: 4rem; } .content { diff --git a/plugins/notification-resources/src/components/NotificationPresenter.svelte b/plugins/notification-resources/src/components/NotificationPresenter.svelte index d5004b8cfb3..0b411c3ef2b 100644 --- a/plugins/notification-resources/src/components/NotificationPresenter.svelte +++ b/plugins/notification-resources/src/components/NotificationPresenter.svelte @@ -44,7 +44,7 @@ .notify-table-kind { position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; width: 0.5rem; height: 0.5rem; background-color: currentColor; diff --git a/plugins/notification-resources/src/components/NotifyContextIcon.svelte b/plugins/notification-resources/src/components/NotifyContextIcon.svelte index 60035550d00..756097c9f25 100644 --- a/plugins/notification-resources/src/components/NotifyContextIcon.svelte +++ b/plugins/notification-resources/src/components/NotifyContextIcon.svelte @@ -63,7 +63,7 @@ .notifyMarker { position: absolute; top: -0.375rem; - right: -0.375rem; + inset-inline-end: -0.375rem; } } diff --git a/plugins/notification-resources/src/components/inbox/ReactionInboxNotificationPresenter.svelte b/plugins/notification-resources/src/components/inbox/ReactionInboxNotificationPresenter.svelte index bf1c562ab26..fb10ca04c7c 100644 --- a/plugins/notification-resources/src/components/inbox/ReactionInboxNotificationPresenter.svelte +++ b/plugins/notification-resources/src/components/inbox/ReactionInboxNotificationPresenter.svelte @@ -65,8 +65,8 @@ display: flex; align-items: center; gap: 0.25rem; - padding-right: var(--spacing-0_75); - padding-left: var(--spacing-1_25); + padding-inline-end: var(--spacing-0_75); + padding-inline-start: var(--spacing-1_25); } &__emoji { @@ -78,7 +78,7 @@ min-height: 1.325rem; height: 1.325rem; overflow: hidden; - margin-right: 0.25rem; + margin-inline-end: 0.25rem; } } diff --git a/plugins/onboard-assets/lang/ar.json b/plugins/onboard-assets/lang/ar.json new file mode 100644 index 00000000000..07d9a667668 --- /dev/null +++ b/plugins/onboard-assets/lang/ar.json @@ -0,0 +1,19 @@ +{ + "status": { + "RequiredField": "حقل مطلوب {field}", + "FieldsDoNotMatch": "{field} لا يتطابق مع {field2}", + "ConnectingToServer": "جارٍ الاتصال بالخادم...." + }, + "string": { + "CreateWorkspace": "إنشاء مساحة عمل", + "LastName": "اسم العائلة", + "FirstName": "الاسم الأول", + "Workspace": "اسم مساحة العمل", + "FillInProfile": "املأ ملفك الشخصي", + "SetUpPassword": "إعداد كلمة المرور", + "Next": "التالي", + "Skip": "تخطّي", + "SignUpCompleted": "اكتمل التسجيل", + "StartUsingHuly": "ابدأ استخدام Huly" + } +} diff --git a/plugins/onboard-resources/src/components/OnboardApp.svelte b/plugins/onboard-resources/src/components/OnboardApp.svelte index cf569804a84..804ccbdb332 100644 --- a/plugins/onboard-resources/src/components/OnboardApp.svelte +++ b/plugins/onboard-resources/src/components/OnboardApp.svelte @@ -130,7 +130,7 @@ .back-image { position: fixed; top: 32px; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; object-fit: cover; diff --git a/plugins/preference-assets/lang/ar.json b/plugins/preference-assets/lang/ar.json new file mode 100644 index 00000000000..3e36f70f822 --- /dev/null +++ b/plugins/preference-assets/lang/ar.json @@ -0,0 +1,7 @@ +{ + "string": { + "Starred": "المميَّزة بنجمة", + "Star": "إضافة إلى المميَّزة", + "Unstar": "إزالة من المميَّزة" + } +} diff --git a/plugins/print-assets/lang/ar.json b/plugins/print-assets/lang/ar.json new file mode 100644 index 00000000000..c25ff422453 --- /dev/null +++ b/plugins/print-assets/lang/ar.json @@ -0,0 +1,8 @@ +{ + "string": { + "PrintToPDF": "طباعة إلى PDF", + "PrintingDocumentOf": "جارٍ طباعة المستند {current} من {total}", + "DownloadAll": "تنزيل الكل", + "PrintFailed": "فشلت الطباعة" + } +} diff --git a/plugins/process-assets/lang/ar.json b/plugins/process-assets/lang/ar.json new file mode 100644 index 00000000000..c57eb663a99 --- /dev/null +++ b/plugins/process-assets/lang/ar.json @@ -0,0 +1,203 @@ +{ + "string": { + "Method": "طريقة", + "Execution": "تنفيذ", + "Process": "عملية", + "Step": "خطوة", + "DeleteProcess": "حذف العملية", + "DeleteProcessConfirm": "هل تريد حذف العملية؟", + "DeleteState": "حذف الحالة", + "DeleteStateConfirm": "هل تريد حذف الحالة؟", + "RunProcess": "تشغيل العملية", + "Processes": "العمليات", + "Untitled": "بدون عنوان", + "States": "الحالات", + "AddState": "إضافة حالة", + "Rollback": "تراجع", + "NewProcess": "عملية جديدة", + "NewState": "حالة جديدة", + "AddAction": "إضافة إجراء", + "CreateProcess": "إنشاء عملية", + "UpdateCard": "تحديث البطاقة", + "CreateToDo": "إنشاء عنصر إجراء", + "NoProcesses": "لا توجد عمليات", + "Done": "منجز", + "ProcessName": "اسم العملية", + "NoAttributesForUpdate": "لا توجد سمات للتحديث", + "MissingRequiredFields": "{length, plural, =1 {حقل مطلوب مفقود} other {حقول مطلوبة مفقودة}}: {value}", + "CustomValue": "قيمة مخصصة", + "FallbackValue": "قيمة احتياطية", + "Functions": "الدوال", + "UpperCase": "أحرف كبيرة", + "LowerCase": "أحرف صغيرة", + "Trim": "اقتطاع المسافات", + "FirstValue": "القيمة الأولى", + "LastValue": "القيمة الأخيرة", + "Random": "عشوائي", + "AllProcesses": "جميع العمليات", + "MyProcesses": "عملياتي", + "ShowDone": "عرض المنجز", + "Add": "جمع", + "Subtract": "طرح", + "Offset": "إزاحة", + "FirstWorkingDayAfter": "أول يوم عمل بعد", + "FallbackValueError": "عرض خطأ إذا كان فارغًا", + "Required": "مطلوب", + "ParallelExecutionForbidden": "التنفيذ المتوازي محظور", + "StartAutomatically": "البدء تلقائيًا", + "AutomationOnly": "التشغيل الآلي فقط", + "Error": "خطأ", + "Continue": "متابعة", + "RequestFromUser": "طلب من المستخدم", + "EnterValue": "أدخل القيمة", + "OnToDoDone": "عند إنجاز عنصر الإجراء", + "OnSubProcessesDone": "عند إنجاز العمليات الفرعية", + "WhenSubProcessMatches": "عند تطابق العملية الفرعية", + "Result": "النتيجة", + "RequestResult": "طلب النتيجة", + "NoResultRequired": "لا تُطلب نتيجة", + "From": "من", + "To": "إلى", + "Trigger": "مُشغِّل", + "Actions": "الإجراءات", + "Transition": "انتقال", + "OnToDoCancelled": "عند إلغاء عنصر الإجراء", + "DeleteTransition": "حذف الانتقال", + "DeleteTransitionConfirm": "هل تريد حذف الانتقال؟", + "AddTransition": "إضافة انتقال", + "ToDo": "عنصر إجراء", + "CurrentCard": "البطاقة الحالية", + "Data": "البيانات", + "Transitions": "الانتقالات", + "OnExecutionStart": "عند بدء التنفيذ", + "Prepend": "إضافة في البداية", + "Append": "إلحاق", + "Replace": "استبدال", + "ReplaceAll": "استبدال الكل", + "Split": "تقسيم", + "Cut": "قص", + "Replacement": "البديل", + "Search": "بحث", + "Separator": "فاصل", + "Start": "البداية", + "End": "النهاية", + "Multiply": "ضرب", + "Divide": "قسمة", + "Modulo": "باقي القسمة", + "Power": "أُس", + "Sqrt": "الجذر التربيعي", + "Round": "تقريب", + "Absolute": "القيمة المطلقة", + "Ceil": "تقريب لأعلى", + "Floor": "تقريب لأسفل", + "Min": "الحد الأدنى", + "Max": "الحد الأقصى", + "LogAction": "حدث", + "Started": "بدأ", + "Each": "لكل", + "CreateCard": "إنشاء بطاقة", + "WhenCardMatches": "عند تطابق البطاقة", + "WhenFieldChanges": "عند تغيّر الحقل", + "ArraySizeEquals": "الحجم يساوي", + "ArraySizeGt": "الحجم أكبر من", + "ArraySizeGte": "الحجم أكبر من أو يساوي", + "ArraySizeLt": "الحجم أصغر من", + "ArraySizeLte": "الحجم أصغر من أو يساوي", + "Insert": "إدراج", + "Remove": "إزالة", + "RemoveFirst": "إزالة الأول", + "RemoveLast": "إزالة الأخير", + "Cancelled": "ملغى", + "WaitUntil": "انتظر حتى", + "CurrentUser": "المستخدم الحالي", + "CurrentDate": "التاريخ الحالي", + "AddResult": "إضافة نتيجة", + "For": "لـ", + "Context": "السياق", + "Attribute": "السمة", + "ProcessRunned": "بدأت العملية \"{process}\"", + "ProcessStateChanged": "غيّرت العملية \"{process}\" حالتها إلى \"{state}\"", + "ProcessFinished": "انتهت العملية \"{process}\" في الحالة \"{state}\"", + "NewProcessToDo": "عنصر إجراء عملية جديد", + "EmptyArray": "مصفوفة فارغة", + "ExecutionInitiator": "بادئ التنفيذ", + "ExecutionStarted": "بدأ التنفيذ", + "Filter": "تصفية", + "FirstMatchValue": "قيمة أول تطابق", + "ConfigLabel": "إعداد العملية", + "ConfigDescription": "حدّد العمليات لأتمتة سير العمل والعمليات التجارية.", + "RunProcessPermission": "تشغيل العملية", + "CancelProcessPermission": "إلغاء العملية", + "ForbidRunProcessPermission": "منع تشغيل العملية", + "ForbidCancelProcessPermission": "منع إلغاء العملية", + "RequestApproval": "طلب الموافقة", + "IsApproved": "تمت الموافقة", + "Approve": "موافقة", + "Reject": "رفض", + "Reason": "السبب", + "ApproveRequest": "الموافقة على الطلب", + "OnApproveRequestApproved": "عند الموافقة", + "OnApproveRequestRejected": "عند الرفض", + "ConfirmApproval": "تأكيد الموافقة", + "ConfirmRejection": "تأكيد الرفض", + "RejectionReason": "سبب الرفض", + "ProvideRejectionReason": "قدّم سبب الرفض", + "FieldIsEmpty": "الحقل فارغ", + "Reviewers": "المراجعون", + "LockCard": "قفل البطاقة", + "LockSection": "قفل القسم", + "Approvers": "الموافقون", + "UnlockCard": "إلغاء قفل البطاقة", + "UnlockSection": "إلغاء قفل القسم", + "CancelToDo": "إلغاء عنصر الإجراء", + "Export": "تصدير", + "ExportWithSlots": "التصدير مع الفتحات", + "ExportWithoutSlots": "التصدير بدون فتحات", + "RequiredSlots": "الفتحات المطلوبة", + "Bindings": "الارتباطات", + "Import": "استيراد", + "CancelProcess": "إلغاء العملية", + "SyncWithField": "المزامنة مع الحقل", + "ActionType": "النوع", + "ApproveAction": "موافقة", + "ReviewAction": "مراجعة", + "Review": "مراجعة", + "LockField": "قفل الحقل", + "UnlockField": "إلغاء قفل الحقل", + "TextFromNumber": "نص من رقم", + "TextFromDate": "نص من تاريخ", + "TextFromCheckbox": "نص من مربع اختيار", + "NumberFromDate": "رقم من تاريخ", + "DateFromNumber": "تاريخ من رقم", + "NumberFromText": "رقم من نص", + "DateFromText": "تاريخ من نص", + "YearFromDate": "السنة من التاريخ", + "MonthFromDate": "الشهر من التاريخ", + "DayFromDate": "اليوم من التاريخ", + "DateDifference": "فرق التاريخ", + "EmptyValue": "قيمة فارغة", + "TextFromMarkup": "نص من ترميز", + "MarkupFromText": "ترميز من نص", + "TextFromSelect": "نص من اختيار", + "SelectFromText": "اختيار من نص", + "AskSubclass": "طلب فئة فرعية", + "TextFromIdentifier": "نص من معرّف" + }, + "error": { + "MethodNotFound": "الطريقة غير موجودة: {methodId}", + "AttributeNotExists": "السمة غير موجودة: {key}", + "RelatedObjectNotFound": "الكائن المرتبط غير موجود: {attr}", + "RelationNotExists": "العلاقة غير موجودة: {association}", + "EmptyAttributeContextValue": "قيمة السمة فارغة: {attr}", + "UserRequestedValueNotProvided": "لم يتم تقديم القيمة المطلوبة من المستخدم: {attr}", + "ObjectNotFound": "الكائن غير موجود: {_id}", + "EmptyRelatedObjectValue": "قيمة الكائن المرتبط {parent} فارغة: {attr}", + "InternalServerError": "خطأ داخلي في الخادم، تواصل مع الدعم، معرّف الخطأ: {errorId}", + "ResultNotProvided": "لم يتم تقديم نتيجة", + "EmptyFunctionResult": "نتيجة دالة فارغة {func}", + "ContextValueNotProvided": "لم يتم تقديم قيمة السياق: {name}", + "RequiredParamsNotProvided": "لم يتم تقديم المعاملات المطلوبة: {params}", + "TooDeepTransitionRecursion": "تكرار الانتقال عميق جدًا", + "ToDoAlreadyCompleted": "عنصر الإجراء مكتمل بالفعل" + } +} diff --git a/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte b/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte index 563a4236bfd..5e0521fa878 100644 --- a/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte +++ b/plugins/process-resources/src/components/attributeEditors/ConfigurePopup.svelte @@ -443,6 +443,6 @@ } .fallback { - padding-right: 1.25rem; + padding-inline-end: 1.25rem; } diff --git a/plugins/process-resources/src/components/settings/AsideStepEditor.svelte b/plugins/process-resources/src/components/settings/AsideStepEditor.svelte index ef8770cf119..fc1bff9137f 100644 --- a/plugins/process-resources/src/components/settings/AsideStepEditor.svelte +++ b/plugins/process-resources/src/components/settings/AsideStepEditor.svelte @@ -89,6 +89,6 @@ diff --git a/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte b/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte index f276f414767..d212d07fb34 100644 --- a/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte +++ b/plugins/process-resources/src/components/settings/AsideTransitionEditor.svelte @@ -151,7 +151,7 @@ diff --git a/plugins/setting-assets/lang/ar.json b/plugins/setting-assets/lang/ar.json new file mode 100644 index 00000000000..5cb83b714bf --- /dev/null +++ b/plugins/setting-assets/lang/ar.json @@ -0,0 +1,245 @@ +{ + "string": { + "Setting": "الإعداد", + "Spaces": "المساحات", + "Integrations": "التكاملات", + "Support": "الدعم", + "Privacy": "الخصوصية", + "Terms": "الشروط", + "AccountSettings": "إعدادات الحساب", + "Categories": "الفئات", + "Delete": "حذف", + "ChangePassword": "تغيير كلمة المرور", + "Disconnect": "قطع الاتصال", + "DisconnectAll": "قطع جميع الاتصالات", + "Saving": "جارٍ الحفظ...", + "Saved": "تم الحفظ", + "Add": "إضافة", + "AddNew": "إضافة {type}", + "Proceed": "متابعة", + "NewEmail": "بريد إلكتروني جديد", + "SendConfirmation": "إرسال رمز التأكيد", + "CodeSent": "تم إرسال الرمز. يُرجى إدخاله في الحقل أدناه.", + "SendAgain": "إرسال مرة أخرى", + "SendAgainIn": "يمكن الإرسال مرة أخرى خلال", + "Value": "القيمة", + "Signout": "تسجيل الخروج", + "Settings": "الإعدادات", + "SelectWorkspace": "اختيار مساحة العمل", + "InviteWorkspace": "الدعوة إلى مساحة العمل", + "DeleteStatus": "حذف الحالة", + "DeleteStatusConfirm": "هل تريد حذف هذه الحالة؟", + "Reconnect": "إعادة الاتصال", + "IntegrationDisabled": " تم تعطيله", + "IntegrationDisabledSetting": "تم تعطيل التكامل", + "IntegrationDisabledDescr": "التكامل معطَّل", + "IntegrationWith": "التكامل مع ", + "ClassSetting": "إعداد الفئة", + "ClassSettingHint": "مجموعة أو فئة من الأشياء تشترك في خاصية أو سمة معينة تميزها عن غيرها حسب النوع أو الصنف أو الجودة.", + "ClassProperties": "خصائص الفئة", + "Classes": "الفئات", + "Attributes": "السمات", + "DeleteAttribute": "حذف السمة", + "DeleteAttributeConfirm": "هل تريد حذف هذه السمة؟", + "DeleteAttributeExistConfirm": "هل تريد حذف هذه السمة؟ ستُفقد البيانات", + "DeleteMixin": "حذف Mixin", + "DeleteMixinConfirm": "هل تريد حذف هذا الـ Mixin؟", + "DeleteMixinExistConfirm": "هل تريد حذف هذا الـ Mixin؟ لن تكون البيانات متاحة", + "Attribute": "السمة", + "Custom": "مخصص", + "Type": "النوع", + "WithTime": "مع الوقت", + "DateMode": "وضع التاريخ", + "CreatingAttribute": "إنشاء سمة", + "EditAttribute": "تعديل السمة", + "CreateEnum": "إنشاء قائمة تعداد", + "EditEnum": "تعديل قائمة التعداد", + "Enums": "قوائم التعداد", + "EnumsSettingHint": "مجموعة أو فئة من الأشياء تشترك في خاصية أو سمة معينة تميزها عن غيرها حسب النوع أو الصنف أو الجودة.", + "EnumTitle": "عنوان قائمة التعداد", + "EnumsCount": "{count, plural, =1 {# خيار} other {# خيارات}}", + "ProjectTypesCount": "{count, plural, =0 {لا توجد أنواع مشاريع} =1 {# نوع مشروع} other {# أنواع مشاريع}}", + "Options": "الخيارات", + "EnterOptionTitle": "أدخل عنوان الخيار", + "NewEnumDialogClose": "هل تريد إغلاق هذا المربع الحواري؟", + "NewEnumDialogCloseNote": "ستُفقد جميع التغييرات", + "NewValue": "قيمة جديدة", + "Leave": "مغادرة مساحة العمل", + "LeaveDescr": "هل أنت متأكد من رغبتك في مغادرة مساحة العمل؟ لا يمكن التراجع عن هذا الإجراء.", + "Members": "الأعضاء", + "WorkspaceSettings": "إعدادات مساحة العمل", + "Select": "اختيار", + "AddOwner": "إضافة مالك", + "ReadonlyGuest": "للقراءة فقط", + "Guest": "ضيف", + "User": "مستخدم", + "Maintainer": "مشرف", + "Owner": "مالك", + "OwnerFirstName": "الاسم الأول للمالك", + "OwnerLastName": "اسم العائلة للمالك", + "Role": "الدور", + "FailedToSave": "فشل تحديث كلمة المرور", + "ImportEnum": "استيراد قيم قائمة التعداد", + "ImportEnumCopy": "نسخ قيم قائمة التعداد من الحافظة", + "CreateMixin": "إنشاء Mixin", + "OldNames": "القيم القديمة", + "NewClassName": "اكتب اسم فئة جديدًا أو اختر من القيم السابقة...", + "ShowAttribute": "إظهار السمة", + "HideAttribute": "إخفاء السمة", + "Visibility": "الظهور", + "Hidden": "مخفي", + "Configure": "تهيئة", + "InviteSettings": "إعدادات الدعوة", + "RoleCapabilitySettings": "أذونات الأدوار", + "DefaultInviteRoleForJoin": "الدور الافتراضي المعيَّن بعد الانضمام عبر رابط الدعوة:", + "InviteLinkGeneratorRoles": "اختر أدوار المستخدمين الذين يمكنهم إنشاء روابط الدعوة:", + "DefaultValue": "القيمة الافتراضية", + "SelectAValue": "اختر قيمة", + "DateOnly": "التاريخ فقط", + "OnlyTime": "الوقت فقط", + "DateAndTime": "التاريخ والوقت", + "Configuration": "التهيئة", + "ConfigurationEnabled": "مُفعَّل", + "ConfigurationDisabled": "معطَّل", + "ConfigDisable": "تعطيل", + "ConfigEnable": "تفعيل", + "ConfigBeta": "إصدار تجريبي (بيتا)", + "Properties": "الخصائص", + "TaskTypes": "أنواع المهام", + "Automations": "الأتمتة", + "Collections": "المجموعات", + "ClassColon": "الفئة:", + "SpaceTypes": "أنواع المساحات", + "NewSpaceType": "نوع مساحة جديد", + "SpaceTypeTitle": "عنوان نوع المساحة", + "General": "عام", + "Description": "الوصف", + "CountSpaces": "{count, plural, =0 {لا توجد مساحات} =1 {# مساحة} other {# مساحات}}", + "Roles": "الأدوار", + "RoleName": "اسم الدور", + "Permissions": "الأذونات", + "Assignees": "المكلَّفون", + "DeleteRole": "حذف الدور", + "DeleteRoleConfirmation": "هل أنت متأكد من رغبتك في حذف هذا الدور؟ سيفقد جميع المستخدمين الذين يحملون هذا الدور أذوناتهم.", + "DeleteWorkspace": "حذف مساحة العمل", + "DeleteWorkspaceConfirm": "هل أنت متأكد من رغبتك في حذف مساحة العمل هذه؟ ستفقد أنت وجميع الأعضاء الآخرين الوصول إلى مساحة العمل هذه. ستُفقد جميع المعلومات الموجودة في مساحة العمل. لا يمكن التراجع عن هذا الإجراء. هل تريد المتابعة؟", + "DeleteSpaceType": "حذف نوع المساحة", + "DeleteSpaceTypeConfirm": "هل أنت متأكد من رغبتك في حذف نوع المساحة هذا؟", + "WorkspaceName": "اسم مساحة العمل", + "Workspace": "مساحة العمل", + "OwnerOrMaintainerRequired": "يجب أن تكون مالكًا أو مشرفًا لمساحة العمل", + "LastOwnerLeaveTitle": "تعذّرت مغادرة مساحة العمل", + "LastOwnerLeaveMessage": "أنت المالك الوحيد لمساحة العمل هذه. للمغادرة، امنح أولاً أذونات المالك لعضو آخر. إذا لم يعد أحد بحاجة إلى مساحة العمل هذه، ففكّر في حذفها بدلاً من ذلك.", + "Backup": "النسخ الاحتياطي", + "BackupLast": "آخر نسخة احتياطية", + "BackupTotalSnapshots": "إجمالي اللقطات", + "BackupTotalFiles": "الملفات", + "BackupSize": "حجم النسخة الاحتياطية", + "BackupLinkInfo": "عنوان URL لدليل النسخ الاحتياطي الذي يمكن تنزيله بشكل متكرر باستخدام أدوات مثل wget أو curl.", + "BackupBearerTokenInfo": "يلزم وجود bearer token للوصول إلى النسخة الاحتياطية.", + "BackupSnapshots": "لقطات النسخ الاحتياطي", + "BackupFileDownload": "تنزيل الملف", + "BackupFiles": "ملفات النسخ الاحتياطي", + "BackupNoBackup": "لا تتوفر حاليًا أي نسخ احتياطية.", + "NonBackupedBlobs": "كائنات Blob غير منسوخة احتياطيًا", + "Calendar": "التقويم", + "StartOfTheWeek": "بداية الأسبوع", + "SystemSetupString": "إعداد النظام ({day})", + "DefaultString": "افتراضي ({day})", + "AddAttribute": "إضافة سمة", + "WorkspaceNamePattern": "يجب أن يكون الاسم 40 حرفًا أو أقل، وغير فارغ، ولا يحتوي على رموز خاصة (<، >، /)", + "Mailboxes": "صناديق البريد", + "CreateMailbox": "إنشاء صندوق بريد", + "CreateMailboxPlaceholder": "my-cool-name", + "MailboxNoDomains": "لم تتم تهيئة نطاقات البريد الإلكتروني", + "MailboxLimitReached": "تم الوصول إلى الحد الأقصى لصناديق البريد", + "MailboxErrorInvalidName": "اسم صندوق البريد غير صالح", + "MailboxErrorDomainNotFound": "لم يُعثر على النطاق", + "MailboxErrorNameRulesViolated": "يجب أن يتراوح طول اسم صندوق البريد بين {minLen} و{maxLen} حرفًا", + "MailboxErrorMailboxExists": "اسم صندوق البريد هذا مستخدم بالفعل", + "MailboxErrorMailboxCountLimit": "تم الوصول إلى الحد الأقصى لعدد صناديق البريد لحسابك", + "DeleteMailbox": "حذف صندوق البريد", + "MailboxDeleteConfirmation": "هل أنت متأكد من رغبتك في حذف صندوق البريد هذا؟", + "DisablePermissions": "تعطيل التحكم في الوصول المستند إلى الأدوار", + "EnablePermissions": "تفعيل التحكم في الوصول المستند إلى الأدوار", + "DisablePermissionsConfirmation": "هل أنت متأكد من رغبتك في تعطيل التحكم في الوصول المستند إلى الأدوار؟ سيتم تعطيل جميع الأدوار والأذونات.", + "EnablePermissionsConfirmation": "هل أنت متأكد من رغبتك في تفعيل التحكم في الوصول المستند إلى الأدوار؟ سيتم تفعيل جميع الأدوار والأذونات.", + "BetaWarning": "الوحدات المُصنَّفة كإصدار تجريبي (بيتا) متاحة لأغراض تجريبية وقد لا تعمل بشكل كامل. لا نوصي بالاعتماد على ميزات البيتا للأعمال الحرجة في الوقت الحالي.", + "IntegrationFailed": "فشل إنشاء التكامل", + "IntegrationError": "يُرجى المحاولة مرة أخرى أو التواصل مع الدعم إذا استمرت المشكلة", + "EmailIsUsed": "عنوان البريد الإلكتروني مستخدم بالفعل من قبل حساب آخر", + "Customize": "تخصيص", + "GuestAccess": "الضيوف المجهولون", + "GuestAccessDescription": "يسمح للمستخدمين المجهولين بزيارة مساحة عملك في وضع القراءة فقط", + "GuestSignUpDescription": "يسمح للمستخدمين المجهولين بالانضمام إلى مساحة عملك كضيوف بحقوق تحرير محدودة", + "GuestChannelsDescription": "القنوات التي يمكن للضيوف الكتابة فيها بعد الانضمام", + "GuestChannelsArrayLabel": "اختر القنوات", + "GuestSelectSpaces": "اختر المساحات", + "GuestAutoJoinAvailableSpaces": "الانضمام التلقائي إلى المساحات", + "GuestAutoJoinAvailableSpacesHint": "تحتوي كل بطاقة تطبيق على صف خاص بها بعنوان “الانضمام التلقائي إلى المساحات”: اختر أين يُضاف ضيوف مساحة العمل عند تفعيلهم. تسري التغييرات فورًا.", + "GuestAnonymousVisibleSpaces": "المساحات المرئية للمجهولين", + "GuestAnonymousVisibleSpacesHint": "تحتوي كل بطاقة تطبيق على صف خاص بها: اختر المساحات التي يُضاف فيها الحساب المجهول للقراءة فقط كعضو حتى يتمكن الزوار الذين ليس لديهم حساب من فتحها. تسري التغييرات فورًا.", + "ManageIdentities": "إدارة الهويات", + "Release": "تحرير", + "ReleaseSocialId": "تحرير Social ID", + "ReleaseSocialIdConfirm": "هل أنت متأكد من رغبتك في تحرير هذا الـ Social ID: {socialId}؟ سيؤدي ذلك إلى إزالته من حسابك ولن تتمكن بعد ذلك من استخدامه لتسجيل الدخول. كما ستُزال جميع التكاملات المرتبطة به.", + "ReleasePrimarySocialId": "تحرير الـ Social ID الأساسي", + "ReleasePrimarySocialIdConfirm": "سيتطلب تحرير الـ social id الأساسي الحالي إعادة تحميل الصفحة. هل أنت متأكد من رغبتك في المتابعة؟", + "Login": "تسجيل الدخول", + "Primary": "أساسي", + "MyIntegrations": "تكاملاتي", + "AllIntegrations": "الكل", + "ConnectedIntegrations": "متكامل", + "AvailableIntegrations": "متاح", + "Connect": "اتصال", + "Integrate": "تكامل", + "FailedToLoadIntegrations": "فشل تحميل التكاملات", + "FailedToDisconnect": "فشل قطع اتصال التكامل", + "ServiceIsUnavailable": "الخدمة غير متاحة", + "Integrated": "متكامل", + "Connected": "متصل", + "Disconnected": "غير متصل", + "Available": "متاح", + "NotConnectedIntegration": "الحساب {account} غير متكامل مع مساحة العمل", + "IntegrationIsUnstable": "تواجه خدمة التكامل مشكلات. قد لا تعمل بعض الميزات بشكل صحيح.", + "MinValue": "القيمة الدنيا", + "MaxValue": "القيمة القصوى", + "IntegerOnly": "أرقام صحيحة فقط", + "AccessControl": "التحكم في الوصول", + "DangerZone": "منطقة الخطر", + "ApiAccess": "الوصول إلى API", + "ApiToken": "رمز API", + "GenerateApiToken": "إنشاء رمز API", + "IdentifierExists": "المعرّف موجود بالفعل", + "Reset": "إعادة تعيين", + "Restricted": "مقيَّد", + "RestrictedAttributeWarning": "هل أنت متأكد من رغبتك في تقييد تغيير هذه السمة؟ سيؤدي هذا الإجراء إلى إنشاء أذونات لهذه السمة ولا يمكن التراجع عنه.", + "PasswordAgingRule": "قاعدة انتهاء صلاحية كلمة المرور", + "PasswordAgingRuleDescription": "عدد الأيام التي سيُطلب بعدها من المستخدمين تغيير كلمة المرور الخاصة بهم.", + "OfficeSettings": "إعدادات المكتب", + "OfficeDefaultSettings": "الإعدادات الافتراضية لغرف الاجتماعات", + "DefaultStartWithTranscription": "تفعيل التفريغ النصي في غرف المكتب الجديدة", + "DefaultStartWithRecording": "تفعيل التسجيل في غرف المكتب الجديدة", + "GuestPermissionsSettings": "الضيوف", + "GuestPermissionsApplicationPermissions": "أذونات التطبيقات", + "GuestPermissionsApplicationPermissionsHint": "اختر التطبيقات التي يمكن للضيوف استخدامها، ثم اضبط أذونات كل تطبيق أدناه.", + "GuestPermissionsTabGuest": "ضيف", + "GuestPermissionsTabAnonymousGuest": "ضيف مجهول", + "GuestPermissionsAnonymousApplicationHint": "وصول التطبيقات للضيوف المجهولين (للقراءة فقط). قد تعتمد التطبيقات التي يرونها أيضًا على تهيئة النشر.", + "ImportDocumentPermission": "استيراد المستندات", + "ImportDocumentDescription": "يمنح المستخدمين القدرة على استيراد المستندات إلى مساحة العمل", + "SelectUsers": "اختيار المستخدمين", + "ShowInTitle": "إظهار في العنوان", + "SpaceMembersOnly": "أعضاء المساحة فقط", + "Security": "الأمان", + "TwoFactorAuth": "المصادقة الثنائية", + "TwoFactorAuthDescription": "تضيف المصادقة الثنائية طبقة إضافية من الأمان إلى حسابك", + "EnableTwoFactorAuth": "تفعيل المصادقة الثنائية", + "DisableTwoFactorAuth": "تعطيل المصادقة الثنائية", + "TwoFactorAuthEnabled": "المصادقة الثنائية مُفعَّلة", + "TwoFactorAuthDisabled": "المصادقة الثنائية معطَّلة", + "ShowQRCode": "عرض رمز QR", + "EnterVerificationCode": "أدخل رمز التحقق", + "OverrideAttribute": "تجاوز السمة" + } +} diff --git a/plugins/setting-resources/src/components/EnumSetting.svelte b/plugins/setting-resources/src/components/EnumSetting.svelte index 000e7e514bd..5f5574c55f4 100644 --- a/plugins/setting-resources/src/components/EnumSetting.svelte +++ b/plugins/setting-resources/src/components/EnumSetting.svelte @@ -129,7 +129,7 @@ align-items: center; margin: 0 var(--spacing-1_5); padding: var(--spacing-1) var(--spacing-1_25); - text-align: left; + text-align: start; border: none; border-radius: var(--small-BorderRadius); outline: none; diff --git a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte index 2c828b786ea..d924796ea9e 100644 --- a/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte +++ b/plugins/setting-resources/src/components/GuestPermissionsSettings.svelte @@ -506,7 +506,7 @@ display: flex; flex-direction: column; gap: 0; - padding-right: 1rem; + padding-inline-end: 1rem; overflow: visible; } diff --git a/plugins/setting-resources/src/components/MailboxItem.svelte b/plugins/setting-resources/src/components/MailboxItem.svelte index 087f5982a7b..8b4f8d78851 100644 --- a/plugins/setting-resources/src/components/MailboxItem.svelte +++ b/plugins/setting-resources/src/components/MailboxItem.svelte @@ -218,7 +218,7 @@ padding-bottom: 0.75rem; &:first-child { - border-right: 1px solid var(--theme-divider-color); + border-inline-end: 1px solid var(--theme-divider-color); } } diff --git a/plugins/setting-resources/src/components/RelationSetting.svelte b/plugins/setting-resources/src/components/RelationSetting.svelte index a6a56bfb5ed..5db51206a68 100644 --- a/plugins/setting-resources/src/components/RelationSetting.svelte +++ b/plugins/setting-resources/src/components/RelationSetting.svelte @@ -169,7 +169,7 @@ align-items: center; margin: 0 var(--spacing-1_5); padding: var(--spacing-1) var(--spacing-1_25); - text-align: left; + text-align: start; border: none; border-radius: var(--small-BorderRadius); outline: none; diff --git a/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte b/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte index f6162712440..31bca15505b 100644 --- a/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte +++ b/plugins/setting-resources/src/components/integrations/IntegrationTag.svelte @@ -85,7 +85,7 @@ &.removable { min-width: 3.25rem; - padding-right: 0.25rem; + padding-inline-end: 0.25rem; } } diff --git a/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte b/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte index 3ca2f005a64..3d22a35da46 100644 --- a/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte +++ b/plugins/setting-resources/src/components/socialIds/SocialIdRow.svelte @@ -158,7 +158,7 @@ } .tag { - margin-left: 0.5rem; + margin-inline-start: 0.5rem; padding: 0 0.875rem; height: 1.75rem; color: var(--theme-halfcontent-color); diff --git a/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte b/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte index ce922336cfe..a19552b676c 100644 --- a/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/RoleEditor.svelte @@ -210,13 +210,13 @@ .name { width: 100%; font-weight: 500; - margin-left: 1rem; + margin-inline-start: 1rem; display: flex; align-items: center; font-size: 1.5rem; &.editable { - margin-left: 0; + margin-inline-start: 0; } } diff --git a/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte b/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte index 641185bbcdf..72c5a8f052d 100644 --- a/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte +++ b/plugins/setting-resources/src/components/spaceTypes/SpaceTypes.svelte @@ -114,7 +114,7 @@ word-break: break-all; text-overflow: ellipsis; overflow: hidden; - text-align: left; + text-align: start; min-width: 0; } &__title { diff --git a/plugins/support-assets/lang/ar.json b/plugins/support-assets/lang/ar.json new file mode 100644 index 00000000000..2b87a25f8da --- /dev/null +++ b/plugins/support-assets/lang/ar.json @@ -0,0 +1,7 @@ +{ + "string": { + "ContactUs": "تواصل معنا", + "ReportBug": "الإبلاغ عن خطأ؟", + "PrivacyPolicy": "سياسة الخصوصية" + } +} diff --git a/plugins/survey-assets/lang/ar.json b/plugins/survey-assets/lang/ar.json new file mode 100644 index 00000000000..5decee4d2d8 --- /dev/null +++ b/plugins/survey-assets/lang/ar.json @@ -0,0 +1,51 @@ +{ + "string": { + "Answer": "الإجابة", + "AnswerPlaceholder": "اكتب إجابتك", + "AnswerCustomOption": "خيار مخصص", + "Application": "الاستبيان (تجريبي)", + "Close": "إغلاق", + "Control": "التحكم", + "Completed": "مكتمل", + "CreatePoll": "إنشاء استبيان", + "CreateSurvey": "الاستبيان", + "DeleteOption": "حذف الخيار", + "DeletePoll": "حذف الاستبيان", + "DeletePollConfirm": "هل أنت متأكد من رغبتك في حذف الاستبيان؟", + "DeleteQuestion": "حذف السؤال", + "DeleteQuestionConfirm": "هل أنت متأكد من رغبتك في حذف السؤال؟", + "Name": "العنوان", + "NoAnswer": "لا توجد إجابة", + "NoName": "بلا عنوان", + "NoPollsForDocument": "لا توجد استبيانات لهذا العنصر", + "Poll": "الاستبيان", + "Polls": "الاستبيانات", + "Prompt": "الوصف", + "PromptPlaceholder": "شجّع المستخدم على الإجابة عن بعض الأسئلة", + "Settings": "الإعدادات", + "Question": "السؤال", + "Questions": "الأسئلة", + "QuestionKindString": "إجابة بسيطة", + "QuestionKindOption": "اختيار خيار واحد", + "QuestionKindOptions": "اختيار عدة خيارات", + "QuestionIsMandatory": "إلزامي", + "QuestionHasCustomOption": "يحتوي على خيار مخصص", + "QuestionPlaceholder": "أضف سؤالًا", + "QuestionPlaceholderEmpty": "أدخل نص السؤال", + "QuestionPlaceholderOption": "أضف خيارًا", + "QuestionTooltipMandatory": "الإجابة مطلوبة", + "QuestionTooltipCustomOption": "يمكن للمستخدم تقديم خياره الخاص", + "Survey": "نموذج الاستبيان", + "Surveys": "نماذج الاستبيان", + "SurveyEdit": "تعديل النموذج", + "SurveyPreview": "معاينة النموذج", + "SurveySubmit": "إرسال", + "SurveySubmitConfirm": "لن تتمكن من تغيير الإجابات بعد ذلك. هل أنت متأكد من رغبتك في الإرسال الآن؟", + "ValidateFail": "بعض الأسئلة المطلوبة لم تتم الإجابة عنها", + "ValidateInfo": "هكذا سيظهر النموذج للمستخدم. حاول كتابة الإجابات وتحديد الخيارات لاختبار استبيانك. تشير الأيقونة الخضراء في الترويسة أعلاه إلى أن النموذج مملوء بشكل صحيح", + "ValidateOk": "النموذج مملوء بشكل صحيح", + "EditAnswers": "تعديل الإجابات", + "ConfigLabel": "الاستبيانات", + "ConfigDescription": "امتداد لإدارة الاستبيانات" + } +} diff --git a/plugins/tags-assets/lang/ar.json b/plugins/tags-assets/lang/ar.json new file mode 100644 index 00000000000..8dd04dcd2fe --- /dev/null +++ b/plugins/tags-assets/lang/ar.json @@ -0,0 +1,45 @@ +{ + "string": { + "TagElementLabel": "وسم", + "TitleLabel": "وسم", + "DescriptionLabel": "الوصف", + "ColorLabel": "اللون", + "CategoryLabel": "الفئة", + "TagReferenceLabel": "وسم", + "TagLabel": "وسم", + "TagName": "يرجى كتابة عنوان {word}", + "AddTagTooltip": "إضافة/إنشاء {word}", + "AddNowTooltip": "إنشاء {word}", + "AddTag": "إنشاء {word}", + "AddLabel": "إضافة تسمية", + "EditTag": "تحرير {word}", + "TagCreateLabel": "وسم", + "CancelLabel": "إلغاء", + "SearchCreate": "بحث/اسم ...", + "QuickAddItems": "إضافة سريعة لـ {word} \"{title}\"", + "NoItems": "لا يوجد {word} مضاف ...", + "TagDescriptionLabel": "الوصف", + "TagDescriptionPlaceholder": "يرجى كتابة الوصف هنا", + "TagTooltip": "{text}", + "Tags": "الوسوم", + "SaveLabel": "حفظ", + "WeightLabel": "الوزن", + "WeightPlaceholder": "يرجى كتابة الوزن هنا", + "CategoryPlaceholder": "يرجى كتابة الفئة هنا", + + "AssetLabel": "أصل", + "CategoryTargetClass": "الفئة", + "CategoryTagsLabel": "عناصر الفئة", + "OtherCategoryLabel": "أخرى", + "AllCategories": "كل الفئات", + "DefaultLabel": "الفئة الافتراضية", + "SelectAll": "تحديد الكل", + "SelectNone": "إلغاء تحديد الكل", + "ApplyTags": "تطبيق", + "Weight": "الوزن", + "Expert": "خبير", + "Meaningfull": "ذو معنى", + "Initial": "أولي", + "NumberLabels": "{count, plural, =0 {لا تسميات} =1 {تسمية واحدة} other {# تسميات}}" + } +} diff --git a/plugins/tags-resources/src/components/CategoryBar.svelte b/plugins/tags-resources/src/components/CategoryBar.svelte index 2a50efd081b..f1ba8067af6 100644 --- a/plugins/tags-resources/src/components/CategoryBar.svelte +++ b/plugins/tags-resources/src/components/CategoryBar.svelte @@ -182,6 +182,6 @@ cursor: pointer; } .categoryElement + .categoryElement { - margin-left: 0.125rem; + margin-inline-start: 0.125rem; } diff --git a/plugins/tags-resources/src/components/CollapsedTags.svelte b/plugins/tags-resources/src/components/CollapsedTags.svelte index c2e8b4e42f0..99589d5b6db 100644 --- a/plugins/tags-resources/src/components/CollapsedTags.svelte +++ b/plugins/tags-resources/src/components/CollapsedTags.svelte @@ -64,9 +64,9 @@ } &:not(.first) { border: 1px solid var(--theme-button-border); - border-right: 1px solid transparent; - border-top-right-radius: 0; - border-bottom-right-radius: 0; + border-inline-end: 1px solid transparent; + border-start-end-radius: 0; + border-end-end-radius: 0; } } diff --git a/plugins/tags-resources/src/components/CreateTagElement.svelte b/plugins/tags-resources/src/components/CreateTagElement.svelte index 9da78502aeb..0a71dee6f73 100644 --- a/plugins/tags-resources/src/components/CreateTagElement.svelte +++ b/plugins/tags-resources/src/components/CreateTagElement.svelte @@ -140,7 +140,7 @@ diff --git a/plugins/task-assets/lang/ar.json b/plugins/task-assets/lang/ar.json new file mode 100644 index 00000000000..5fa5bb16955 --- /dev/null +++ b/plugins/task-assets/lang/ar.json @@ -0,0 +1,101 @@ +{ + "string": { + "Description": "الوصف", + "DescriptionPlaceholder": "الوصف", + "ShortDescription": "وصف موجز", + "StartDate": "تاريخ البدء", + "DueDate": "تاريخ الاستحقاق", + "TaskState": "الحالة", + "TaskStateTitle": "العنوان", + "TaskStateDone": "منجز", + "TaskNumber": "رقم", + "Todos": "المهام", + "Todo": "مهمة", + "TaskDone": "مكتمل", + "TaskDueTo": "تاريخ الاستحقاق", + "ProjectName": "المشروع", + "Task": "مهمة", + "SubTask": "مهمة فرعية", + "TaskAndSubTask": "مهمة ومهمة فرعية", + "TaskAndSubTaskDescription": "يمكن استخدام هذا النوع من المهام لإنشاء المهام والمهام الفرعية في مشروع", + "TaskParent": "الأصل", + "IssueName": "الاسم", + "TaskComments": "التعليقات", + "TaskLabels": "التسميات", + "TaskAssignee": "المسؤول", + "Rank": "الترتيب", + "TaskCreateLabel": "مهمة", + "EditStates": "تحرير الحالات", + "MarkAsDone": "وضع علامة كمنجز", + "MarkAsUndone": "وضع علامة كغير منجز", + "Kanban": "كانبان", + "ApplicationLabelTask": "المهام", + "ProjectNamePlaceholder": "اسم المشروع", + "TaskNamePlaceholder": "المهمة المملة", + "TodoDescriptionPlaceholder": "مهمة...", + "TaskProject": "المشروع المحدد", + "SelectProject": "اختر مشروعًا", + "TaskName": "اسم المهمة *", + "AssignThisTask": "إسناد هذه المهمة", + "AssigneeRequired": "المسؤول مطلوب", + "More": "خيارات", + "TaskUnAssign": "إلغاء الإسناد", + "NoTaskForObject": "لا توجد مهام محددة", + "Delete": "حذف", + "TodoName": "الاسم", + "TodoState": "الحالة", + "DoneState": "حالة المنجز", + "UndoneState": "مهمة", + "TodoDueDate": "مستحق في", + "TodoDescription": "وصف المهمة *", + "TodoEdit": "تحرير المهمة", + "TodoSave": "حفظ", + "TodoCreate": "إنشاء مهمة", + "ActiveStates": "الحالات النشطة", + "DoneStatesWon": "حالة المنجز / محقق", + "DoneStatesLost": "حالة المنجز / غير محقق", + "StateBacklog": "قائمة الانتظار", + "StateUnstarted": "لم يبدأ", + "StateActive": "نشط", + "AllStates": "جميع الحالات", + "DoneStates": "حالات المنجز", + "States": "الحالات", + "NoDoneState": "غير منجز", + "ManageStatusesWithin": "إدارة حالات التطبيق ضمن", + "StatusDelete": "حذف الحالة", + "StatusDeleteConfirm": "هل تريد حذف هذه الحالة؟", + "CantStatusDelete": "تعذّر حذف الحالة", + "CantStatusDeleteError": "توجد كائنات في الحالة المحددة. انقلها أو احذفها أولًا.", + "Tasks": "المهام", + "AssignedToMe": "المُسندة إليّ", + "Dashboard": "لوحة المعلومات", + "AllTime": "كل الأوقات", + "RelatedIssues": "العمليات ذات الصلة", + "StatusName": "اسم الحالة", + "StatusPopupTitle": "تحرير الحالة", + "NameAlreadyExists": "هذا الاسم موجود بالفعل لنوع الحالة هذا", + "ProjectType": "نوع المشروع", + "ProjectTypes": "أنواع المشاريع", + "StatusChange": "تغيّرت الحالة", + "TaskCreated": "تم إنشاء المهمة", + "TaskType": "نوع المهمة", + "ManageProjects": "أنواع المشاريع", + "Export": "تصدير", + "CreateProjectType": "إنشاء نوع مشروع", + "ClassicProject": "مشروع كلاسيكي", + "LastSave": "آخر حفظ", + "Published": "منشور", + "CountTasks": "{count, plural, =0 {لا توجد مهام} =1 {# مهمة} other {# مهام}}", + "CountProjects": "{count, plural, =0 {لا توجد مشاريع} =1 {# مشروع} other {# مشاريع}}", + "ProjectTypeTitle": "عنوان نوع المشروع", + "ProcessStates": "حالات العملية", + "Type": "النوع", + "Group": "المجموعة", + "Color": "اللون", + "Identifier": "المعرّف", + "RenameStatus": "إعادة تسمية حالة إلى اسم جديد", + "UpdateTasksStatusRequest": "الحالة مستخدمة مع {total} مهمة، وستتطلب تحديثها جميعًا. يُرجى الموافقة.", + "TaskTypes": "أنواع المهام", + "Collections": "المجموعات" + } +} diff --git a/plugins/task-resources/src/components/CreateFilter.svelte b/plugins/task-resources/src/components/CreateFilter.svelte index 665a803d7ab..49efbc89497 100644 --- a/plugins/task-resources/src/components/CreateFilter.svelte +++ b/plugins/task-resources/src/components/CreateFilter.svelte @@ -42,7 +42,7 @@ display: flex; align-items: center; width: fit-content; - margin-right: 1px; + margin-inline-end: 1px; padding: 0 0.375rem; font-size: 0.75rem; height: 1.5rem; diff --git a/plugins/task-resources/src/components/TaskHeader.svelte b/plugins/task-resources/src/components/TaskHeader.svelte index 30d1c8aaaae..06d2accdf9b 100644 --- a/plugins/task-resources/src/components/TaskHeader.svelte +++ b/plugins/task-resources/src/components/TaskHeader.svelte @@ -95,13 +95,13 @@ .column { position: relative; - margin-left: 3rem; + margin-inline-start: 3rem; &::before { content: ''; position: absolute; top: 0; bottom: 0; - left: -1.5rem; + inset-inline-start: -1.5rem; width: 1px; background-color: var(--accent-bg-color); } diff --git a/plugins/task-resources/src/components/kanban/KanbanDragDone.svelte b/plugins/task-resources/src/components/kanban/KanbanDragDone.svelte index 9d25f105186..630840d1dcb 100644 --- a/plugins/task-resources/src/components/kanban/KanbanDragDone.svelte +++ b/plugins/task-resources/src/components/kanban/KanbanDragDone.svelte @@ -93,7 +93,7 @@ .done-panel { position: absolute; bottom: 0; - left: 0; + inset-inline-start: 0; width: 100%; display: flex; diff --git a/plugins/task-resources/src/components/state/StatesPopup.svelte b/plugins/task-resources/src/components/state/StatesPopup.svelte index f34fc56ac6d..3d607c4abcb 100644 --- a/plugins/task-resources/src/components/state/StatesPopup.svelte +++ b/plugins/task-resources/src/components/state/StatesPopup.svelte @@ -76,7 +76,7 @@ diff --git a/plugins/telegram-assets/lang/ar.json b/plugins/telegram-assets/lang/ar.json new file mode 100644 index 00000000000..1ddfcb497c3 --- /dev/null +++ b/plugins/telegram-assets/lang/ar.json @@ -0,0 +1,99 @@ +{ + "string": { + "Loading": "جارٍ التحميل...", + "IntegrationConnected": "متصل بصفة {phone}", + "Disconnect": "قطع الاتصال", + "SharedMessages": "شارَك رسائل Telegram", + "Next": "التالي", + "Back": "رجوع", + "Connect": "اتصال", + "Connecting": "جارٍ الاتصال...", + "ConnectFull": "ربط حساب Telegram", + "Password": "كلمة المرور", + "Phone": "الهاتف", + "PhonePlaceholder": "+1 555 333 7777", + "PhoneDescr": "أدخل رقم هاتف Telegram الخاص بك لربط حسابك.", + "PasswordDescr": "أدخل كلمة مرور المصادقة الثنائية", + "CodeDescr": "أدخل الرمز المكوّن من 5 أرقام الذي تلقيته على حساب Telegram الخاص بك.", + "Cancel": "إلغاء", + "Share": "مشاركة الرسائل", + "PublishSelected": "نشر المحدد", + "SharedMessage": "رسالة مشتركة", + "Content": "المحتوى", + "Incoming": "وارد", + "Messages": "الرسائل", + "NewMessage": "رسالة جديدة", + "NewIncomingMessage": "أرسل إليك رسالة جديدة", + "Telegram": "Telegram", + "TelegramIntegrationDesc": "مزامنة قنوات ورسائل Telegram", + "TelegramIntegrationDesc2": "هذه الميزة مستقلة عن إشعارات Telegram العادية", + "ToSetupNotification": "لإعداد إشعارات Telegram العادية:", + "TelegramNotificationPath": "الإشعارات > عام > Telegram > تكوين", + "Status": "الحالة", + "MessagesSelected": "رسالة محددة", + "ConfigLabel": "Telegram", + "ConfigDescription": "امتداد لقراءة رسائل Telegram وكتابتها", + "ConnectBotInfoStart": "لبدء التفاعل مع روبوتنا، ما عليك سوى فتح", + "ConnectBotInfoEnd": "والنقر على \"بدء\".", + "ConnectBotError": "يبدو أنه تعذّر إنشاء الاتصال تلقائيًا. يرجى محاولة إعادة الاتصال بالروبوت بالنقر على “بدء”.", + "TestConnection": "اختبار الاتصال", + "Connected": "متصل", + "TelegramNotificationDescription": "تلقّي الإشعارات الشخصية في Telegram.", + "BotDescription": "بفضل هذا الروبوت يمكنك الحصول على جميع الإشعارات والرد عليها دون مغادرة Telegram.", + "BotShortDescription": "بفضل هذا الروبوت يمكنك الحصول على جميع الإشعارات والرد عليها دون مغادرة Telegram", + "WelcomeMessage": "مرحبًا! أنا روبوت سأساعدك في الحصول على جميع إشعارات {app} والرد عليها دون مغادرة Telegram.", + "TestMessage": "تم ربط حساب {app} الخاص بك. ستتلقى إشعاراتك.", + "ConnectMessage": "⚠️يرجى ربطي بحساب {app} الخاص بك.\nأرسل /connect لإنشاء رمز ولصقه في إعدادات {app}.\nالرمز صالح لمدة {minutes} دقيقة.", + "StopMessage": "لن تتلقى بعد الآن إشعارات حول أحداث {app}. إذا أردت إعادة تشغيلها، ما عليك سوى إرسال /start.", + "StartBot": "بدء تشغيل الروبوت", + "ConnectAccount": "ربط الحساب عبر OTP", + "ShowCommandsDetails": "عرض تفاصيل الأوامر", + "TurnNotificationsOff": "إيقاف الإشعارات", + "ConnectedDescriptionHtml": "✅أنت متصل بصفة {name}", + "AccountAlreadyConnectedHtml": "أنت متصل بالفعل بصفة {name}", + "AccountConnectedHtml": "تم ربطك بنجاح بصفة {name}", + "AccountAlreadyConnected": "الحساب مرتبط بالفعل", + "InvalidCode": "رمز غير صالح", + "SomethingWentWrong": "حدث خطأ ما. يرجى المحاولة مرة أخرى.", + "Configure": "تكوين", + "ConnectTelegramBot": "ربط روبوت Telegram", + "DisconnectMessage": "⚠️تم قطع اتصالك بالخدمة. يرجى إعادة ربط حسابك على {app} باستخدام /{command}.", + "SyncAllChannels": "مزامنة جميع القنوات", + "SyncStarredChannels": "مزامنة القنوات المميزة بنجمة", + "Public": "عامة", + "Private": "خاصة", + "TotalChannels": "إجمالي القنوات:", + "SyncEnabled": "المزامنة مفعّلة", + "SyncDisabled": "المزامنة معطّلة", + "SelectAll": "تحديد الكل", + "Selected": "محدد", + "EnableSync": "تفعيل المزامنة", + "DisableSync": "تعطيل المزامنة", + "SelectAccess": "تحديد الوصول", + "ConfigureIntegration": "تكوين التكامل", + "Apply": "تطبيق", + "SyncedChannels": "القنوات المتزامنة:", + "Type": "النوع", + "SyncMode": "وضع المزامنة", + "Access": "الوصول", + "User": "مستخدم", + "Group": "مجموعة", + "Channel": "قناة", + "Actions": "الإجراءات", + "SelectAllAction": "تحديد الكل", + "UnselectAllAction": "إلغاء تحديد الكل", + "EnableSynchronization": "تفعيل المزامنة", + "DisableSynchronization": "تعطيل المزامنة", + "SetPublicAccess": "تعيين وصول عام", + "SetPrivateAccess": "تعيين وصول خاص", + "NoChannelsFound": "لم يتم العثور على قنوات", + "TryAdjustingSearch": "حاول تعديل استعلام البحث أو", + "ClearSearch": "مسح البحث", + "NoChannelsAvailable": "لا توجد قنوات متاحة", + "EnableSyncToConfigure": "فعّل المزامنة لتكوين وصول القنوات", + "AccessCannotBeChanged": "لا يمكن تغيير الوصول لقناة موجودة", + "ServiceIsUnavailable": "خدمة Telegram غير متاحة", + "IncorrectPhoneOrCode": "فشل ربط حساب Telegram، يرجى التحقق من إدخال رقم الهاتف والرمز بشكل صحيح", + "UnknownError": "حدث خطأ غير معروف في خدمة Telegram" + } +} diff --git a/plugins/telegram-resources/src/components/Configure.svelte b/plugins/telegram-resources/src/components/Configure.svelte index 07a192c0bab..65dd7e9ba27 100644 --- a/plugins/telegram-resources/src/components/Configure.svelte +++ b/plugins/telegram-resources/src/components/Configure.svelte @@ -586,7 +586,7 @@ display: flex; align-items: center; gap: 0.5rem; - padding-right: 1rem; + padding-inline-end: 1rem; } .channel-space { diff --git a/plugins/telegram-resources/src/components/Message.svelte b/plugins/telegram-resources/src/components/Message.svelte index 146cfd207eb..6f691450e21 100644 --- a/plugins/telegram-resources/src/components/Message.svelte +++ b/plugins/telegram-resources/src/components/Message.svelte @@ -125,7 +125,7 @@ justify-content: stretch; align-items: center; flex-grow: 1; - margin-right: 2.5rem; + margin-inline-end: 2.5rem; padding: 0.25rem 0; &.out { @@ -148,7 +148,7 @@ } .time { align-self: flex-end; - margin-left: auto; + margin-inline-start: auto; color: var(--dark-color); font-size: 0.75rem; font-style: italic; diff --git a/plugins/telegram-resources/src/components/PinPad.svelte b/plugins/telegram-resources/src/components/PinPad.svelte index 54775b70139..fed4f8d3005 100644 --- a/plugins/telegram-resources/src/components/PinPad.svelte +++ b/plugins/telegram-resources/src/components/PinPad.svelte @@ -125,11 +125,11 @@ .error-message { margin-top: 0.5rem; - margin-left: 0.2rem; + margin-inline-start: 0.2rem; color: var(--system-error-color); div { - margin-left: 0.3rem; + margin-inline-start: 0.3rem; } } diff --git a/plugins/templates-assets/lang/ar.json b/plugins/templates-assets/lang/ar.json new file mode 100644 index 00000000000..e12e1617246 --- /dev/null +++ b/plugins/templates-assets/lang/ar.json @@ -0,0 +1,21 @@ +{ + "string": { + "Cancel": "إلغاء", + "Templates": "قوالب النصوص", + "TemplatesHeader": "قوالب النصوص", + "CreateTemplate": "إنشاء قالب", + "SaveTemplate": "حفظ القالب", + "EditTemplate": "تعديل القالب", + "ViewTemplate": "عرض القالب", + "Suggested": "مقترح", + "SearchTemplate": "البحث عن قالب", + "TemplatePlaceholder": "قالب جديد", + "Title": "العنوان", + "Message": "الرسالة", + "Field": "الحقل", + "TemplateCategory": "مجموعة القوالب", + "CreateTemplateCategory": "إنشاء مجموعة", + "Copy": "نسخ", + "Template": "القالب" + } +} diff --git a/plugins/test-management-assets/lang/ar.json b/plugins/test-management-assets/lang/ar.json new file mode 100644 index 00000000000..bdcfe5b68db --- /dev/null +++ b/plugins/test-management-assets/lang/ar.json @@ -0,0 +1,95 @@ +{ + "string": { + "ConfigLabel": "إدارة الاختبارات", + "ConfigDescription": "إضافة لإدارة حالات الاختبار", + "TestCaseType": "النوع", + "TestCasePriority": "الأولوية", + "TestCaseStatus": "الحالة", + "TestSuite": "مجموعة الاختبار", + "SuiteName": "الاسم", + "SuiteDescription": "الوصف", + "Suite": "المجموعة", + "TestName": "الاسم", + "TestDescription": "الوصف", + "TestType": "النوع", + "TestPriority": "الأولوية", + "TestStatus": "الحالة", + "TestEstimatedTime": "الوقت المقدَّر", + "TestPreconditions": "الشروط المسبقة", + "TestSteps": "الخطوات", + "TestAssignee": "المُكلَّف", + "TestCase": "حالة اختبار", + "TestProject": "المشروع", + "TestManagementApplication": "إدارة الاختبارات (تجريبي)", + "AllTestSuites": "جميع مجموعات الاختبار", + "AllProjects": "جميع المشاريع", + "Projects": "المشاريع", + "CreateProject": "إنشاء مشروع", + "EditProject": "تعديل المشروع", + "TestCases": "حالات الاختبار", + "TestManagementDescription": "إضافة لإدارة حالات الاختبار", + "CreateTestCase": "حالة اختبار جديدة", + "FullDescription": "الوصف", + "ProjectName": "الاسم", + "ProjectType": "النوع", + "Members": "الأعضاء", + "ProjectMembers": "أعضاء المشروع", + "TestSuites": "مجموعات الاختبار", + "CreateTestSuite": "إنشاء مجموعة اختبار", + "NamePlaceholder": "اسم المجموعة", + "DescriptionPlaceholder": "الوصف (اختياري)", + "TestRuns": "عمليات تشغيل الاختبار", + "TestRun": "تشغيل الاختبار", + "TestNamePlaceholder": "عنوان حالة الاختبار", + "ChooseIcon": "اختيار أيقونة", + "NoTestSuite": "لا توجد مجموعة اختبار", + "StatusDraft": "مسودة", + "StatusReview": "جاهز للمراجعة", + "StatusReviewComments": "بحاجة إلى معالجة ملاحظات المراجعة", + "StatusApproved": "معتمد", + "StatusRejected": "مرفوض", + "SetStatus": "تعيين الحالة", + "Assignee": "المُكلَّف", + "Unassigned": "غير مُكلَّف", + "AssignTo": "تكليف إلى", + "AssignedTo": "مُكلَّف إلى", + "PreviousAssigned": "مُكلَّف سابقًا", + "NoTestCases": "لا توجد حالات اختبار في مجموعة الاختبار هذه", + "CreateTestRun": "تشغيل اختبار جديد", + "TestRunNamePlaceholder": "اسم تشغيل الاختبار", + "SelectTestSuites": "تحديد مجموعات الاختبار", + "SelectTestCases": "تحديد حالات الاختبار", + "TestLibrary": "مكتبة الاختبار", + "TestResult": "النتيجة", + "TestRunResult": "النتيجة", + "TestRunStatus": "الحالة", + "StatusNonTested": "لم يُختبر", + "StatusBlocked": "محظور", + "StatusPassed": "ناجح", + "StatusFailed": "فاشل", + "SelectTestCase": "تحديد حالة الاختبار", + "Save": "حفظ", + "SaveAndNext": "حفظ والتالي", + "DonePercent": "% مكتمل", + "TestResults": "النتائج", + "TestRunName": "الاسم", + "DueDate": "تاريخ الاستحقاق", + "RunTestCases": "تشغيل", + "TestCaseDescription": "وصف حالة الاختبار", + "TestResultAttributes": "النتيجة", + "GoToNextTest": "التالي", + "GoToNextTestTooltip": "الانتقال إلى الاختبار التالي", + "AllTests": "جميع الاختبارات", + "MyTests": "اختباراتي", + "Comments": "التعليقات", + "Cancel": "إلغاء", + "Name": "الاسم", + "TestPlans": "خطط الاختبار", + "TestPlan": "خطة اختبار", + "CreateTestPlan": "خطة اختبار جديدة", + "SelectedTestCases": "{count, plural, =0 {لم يتم تحديد حالات اختبار} one {تم تحديد # حالة اختبار} few {تم تحديد # حالات اختبار} other {تم تحديد # حالة اختبار}}", + "DefaultAssignee": "المُكلَّف الافتراضي", + "TestPlanTitle": "عنوان خطة الاختبار", + "RunAssistant": "مساعد التشغيل" + } +} diff --git a/plugins/text-editor-assets/lang/ar.json b/plugins/text-editor-assets/lang/ar.json new file mode 100644 index 00000000000..32877b73b2c --- /dev/null +++ b/plugins/text-editor-assets/lang/ar.json @@ -0,0 +1,92 @@ +{ + "string": { + "TableOfContents": "جدول المحتويات", + "Suggested": "مقترح", + "NoItems": "لا توجد عناصر", + "EditorPlaceholder": "ابدأ الكتابة...", + "Edit": "تعديل", + "Bold": "عريض", + "Italic": "مائل", + "Strikethrough": "يتوسطه خط", + "Link": "رابط", + "Save": "حفظ", + "OrderedList": "قائمة مرتبة", + "BulletedList": "قائمة نقطية", + "Blockquote": "اقتباس", + "Code": "كود", + "CodeBlock": "كتلة كود", + "Note": "ملاحظة", + "ConfigureNote": "تكوين الملاحظة", + "Set": "تعيين", + "Update": "تحديث", + "Remove": "إزالة", + "NotePlaceholder": "إضافة ملاحظة...", + "SampleText": "نص نموذجي", + "Send": "إرسال", + "Attach": "إرفاق", + "TextStyle": "نمط النص", + "Emoji": "إيموجي", + "GIF": "GIF", + "Mention": "إشارة", + "Underlined": "تحته خط", + "Highlight": "تمييز", + "Subscript": "منخفض", + "Superscript": "مرتفع", + "Mathematics": "رياضيات", + "MathematicsBlock": "كتلة رياضيات", + "AlignCenter": "محاذاة للوسط", + "AlignLeft": "محاذاة لليسار", + "AlignRight": "محاذاة لليمين", + "Download": "تنزيل", + "ViewImage": "عرض الصورة", + "ViewOriginal": "عرض الأصل", + "MoreActions": "المزيد من الإجراءات", + "FullDescription": "الوصف الكامل", + "NoFullDescription": "لا يوجد وصف تفصيلي", + "EnableDiffMode": "وضع المقارنة", + "AddColumnBefore": "إضافة قبل", + "AddColumnAfter": "إضافة بعد", + "DeleteColumn": "حذف", + "AddRowBefore": "إضافة قبل", + "AddRowAfter": "إضافة بعد", + "DeleteRow": "حذف", + "DeleteTable": "حذف", + "MergeCells": "دمج الخلايا", + "SplitCells": "تقسيم الخلايا", + "Duplicate": "تكرار", + "CategoryRow": "الصفوف", + "CategoryColumn": "الأعمدة", + "CategoryCell": "الخلايا", + "Table": "جدول", + "InsertTable": "إدراج جدول", + "TableOptions": "تخصيص الجدول", + "SelectTable": "تحديد الجدول", + "Width": "العرض", + "Height": "الارتفاع", + "Unset": "إلغاء التعيين", + "Image": "صورة", + "SeparatorLine": "خط فاصل", + "TodoList": "عناصر الإجراءات", + "TodoItem": "قائمة عناصر الإجراءات", + "DrawingBoard": "لوحة الرسم", + "MermaidDiargram": "مخطط", + "Comment": "تعليق", + "AddComment": "إضافة تعليق", + "AddCommentPlaceholder": "إضافة تعليق...", + "SetCellHighlightColor": "تعيين لون الخلية", + "SetTextColor": "تعيين لون النص", + "RefreshTable": "تحديث الجدول", + "ShowDiff": "إظهار الفروق", + "SeeOriginalData": "عرض البيانات الأصلية", + "CategoryVersioning": "إدارة الإصدارات", + "TableDiffLabel": "تغييرات الجدول", + "TableRefreshConfirmationLabel": "تأكيد تحديث الجدول", + + "ConvertToLinkPreview": "عرض كرابط", + "ConvertToEmbedPreview": "عرض كمعاينة محتوى", + "UnableToLoadEmbeddedContent": "تعذّر تحميل معاينة الرابط بسبب إعدادات الأذونات أو محتوى غير مدعوم", + "CannotConnectToCollaborationService": "تعذّر الاتصال بخدمة التعاون", + "SourceURL": "URL المصدر", + "SelectedDocuments": "المستندات المحددة ({count, plural, =1 {عنصر واحد} other {# عناصر}})" + } +} diff --git a/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte b/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte index 331d324fc24..85b184e7416 100644 --- a/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte +++ b/plugins/text-editor-resources/src/components/DrawingBoardEditor.svelte @@ -376,7 +376,7 @@ .personAvatar { position: absolute; - left: 7px; + inset-inline-start: 7px; top: 17px; border-radius: 20%; box-shadow: 0.05rem 0.05rem 0.3rem rgba(0, 0, 0, 0.5); diff --git a/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte b/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte index c4adcb6a36f..fd54aba8ea8 100644 --- a/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte +++ b/plugins/text-editor-resources/src/components/DrawingBoardNodeView.svelte @@ -187,7 +187,7 @@ z-index: 1; position: absolute; top: 0.3rem; - right: 0.3rem; + inset-inline-end: 0.3rem; } .handle { @@ -209,23 +209,23 @@ .resizer { bottom: 0; - left: calc(50% - 4rem); + inset-inline-start: calc(50% - 4rem); width: 8rem; height: 0.6rem; cursor: row-resize; - border-top-left-radius: var(--small-BorderRadius); - border-top-right-radius: var(--small-BorderRadius); + border-start-start-radius: var(--small-BorderRadius); + border-start-end-radius: var(--small-BorderRadius); border-bottom: none; } .drag { - left: -0.6rem; + inset-inline-start: -0.6rem; top: calc(50% - 2rem); width: 0.6rem; height: 4rem; cursor: move; - border-top-left-radius: var(--small-BorderRadius); - border-bottom-left-radius: var(--small-BorderRadius); - border-right: none; + border-start-start-radius: var(--small-BorderRadius); + border-end-start-radius: var(--small-BorderRadius); + border-inline-end: none; } diff --git a/plugins/text-editor-resources/src/components/InlineCommandsList.svelte b/plugins/text-editor-resources/src/components/InlineCommandsList.svelte index 5b6a76f6a18..e0a4c4b8f85 100644 --- a/plugins/text-editor-resources/src/components/InlineCommandsList.svelte +++ b/plugins/text-editor-resources/src/components/InlineCommandsList.svelte @@ -121,9 +121,9 @@ .overlay { position: fixed; top: 0; - left: 0; + inset-inline-start: 0; bottom: 0; - right: 0; + inset-inline-end: 0; z-index: 1999; } diff --git a/plugins/text-editor-resources/src/components/MentionList.svelte b/plugins/text-editor-resources/src/components/MentionList.svelte index 3f94507176f..ed59a49578d 100644 --- a/plugins/text-editor-resources/src/components/MentionList.svelte +++ b/plugins/text-editor-resources/src/components/MentionList.svelte @@ -131,9 +131,9 @@ .overlay { position: fixed; top: 0; - left: 0; + inset-inline-start: 0; bottom: 0; - right: 0; + inset-inline-end: 0; z-index: 1999; } @@ -147,7 +147,7 @@ @media screen and (max-width: 480px) { position: fixed; - left: var(--spacing-1); + inset-inline-start: var(--spacing-1); width: calc(100vw - var(--spacing-1) * 2); max-height: calc(100svh - 2rem); } diff --git a/plugins/text-editor-resources/src/components/StyledTextBox.svelte b/plugins/text-editor-resources/src/components/StyledTextBox.svelte index 7bb74ef1ca3..76ff388b481 100644 --- a/plugins/text-editor-resources/src/components/StyledTextBox.svelte +++ b/plugins/text-editor-resources/src/components/StyledTextBox.svelte @@ -420,7 +420,7 @@ } :global(.select-text) { - padding-left: 40px; /* Увеличил отступ */ + padding-inline-start: 40px; /* Увеличил отступ */ position: relative; } } diff --git a/plugins/text-editor-resources/src/components/extension/embed/EmbedToolbarHead.svelte b/plugins/text-editor-resources/src/components/extension/embed/EmbedToolbarHead.svelte index a724d936e72..02a4eb06482 100644 --- a/plugins/text-editor-resources/src/components/extension/embed/EmbedToolbarHead.svelte +++ b/plugins/text-editor-resources/src/components/extension/embed/EmbedToolbarHead.svelte @@ -39,7 +39,7 @@ diff --git a/plugins/time-resources/src/components/ToDosNavigator.svelte b/plugins/time-resources/src/components/ToDosNavigator.svelte index 782ba3d2241..4100e18ceb3 100644 --- a/plugins/time-resources/src/components/ToDosNavigator.svelte +++ b/plugins/time-resources/src/components/ToDosNavigator.svelte @@ -264,7 +264,7 @@ min-width: 0; .dot { - margin-right: var(--spacing-0_75); + margin-inline-end: var(--spacing-0_75); } span { font-weight: 400; @@ -293,7 +293,7 @@ align-items: center; gap: 1px; top: 0.1875rem; - right: 0.1875rem; + inset-inline-end: 0.1875rem; } .noBorder { border-bottom-color: transparent; diff --git a/plugins/time-resources/src/components/Workslots.svelte b/plugins/time-resources/src/components/Workslots.svelte index 01e67ff92a6..b8b5bee10ac 100644 --- a/plugins/time-resources/src/components/Workslots.svelte +++ b/plugins/time-resources/src/components/Workslots.svelte @@ -111,7 +111,7 @@ .slot { padding: var(--spacing-1) var(--spacing-1) var(--spacing-1) var(--spacing-2); background-color: var(--tag-nuance-SunshineBackground); - border-left: var(--extra-small-BorderRadius) solid var(--tag-accent-SunshineBackground); + border-inline-start: var(--extra-small-BorderRadius) solid var(--tag-accent-SunshineBackground); border-radius: var(--extra-small-BorderRadius) var(--small-BorderRadius) var(--small-BorderRadius) var(--extra-small-BorderRadius); } diff --git a/plugins/time-resources/src/components/team/calendar/EventElement.svelte b/plugins/time-resources/src/components/team/calendar/EventElement.svelte index 5a16e32900c..7199c467692 100644 --- a/plugins/time-resources/src/components/team/calendar/EventElement.svelte +++ b/plugins/time-resources/src/components/team/calendar/EventElement.svelte @@ -84,7 +84,7 @@ font-size: 0.8125rem; background-color: #f3f6fb; border: 1px solid rgba(43, 81, 144, 0.2); - border-left: 0.25rem solid #2b5190; + border-inline-start: 0.25rem solid #2b5190; border-radius: 0.25rem; cursor: pointer; padding: 0.25rem 0.5rem 0.25rem 1rem; diff --git a/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte b/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte index e251214cbc4..a676f70f25b 100644 --- a/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte +++ b/plugins/time-resources/src/components/team/calendar/PersonCalendar.svelte @@ -193,7 +193,7 @@ z-index: 1; &.timeline-resource-header { - left: 0; + inset-inline-start: 0; z-index: 2; } } @@ -216,7 +216,7 @@ background-color: $timeline-bg-color; position: sticky; - left: 0; + inset-inline-start: 0; z-index: 1; } @@ -272,7 +272,7 @@ } .timeline-cell { - border-right: $timeline-border; + border-inline-end: $timeline-border; width: $timeline-column-width; height: 100%; @@ -301,7 +301,7 @@ } .timeline-resource-cell { - border-right: $timeline-border; + border-inline-end: $timeline-border; width: 100%; height: 100%; @@ -311,8 +311,8 @@ .timeline-event-wrapper { position: absolute; height: 1.5rem; - padding-left: 0.125rem; - padding-right: 0.125rem; + padding-inline-start: 0.125rem; + padding-inline-end: 0.125rem; pointer-events: all; } diff --git a/plugins/tracker-assets/lang/ar.json b/plugins/tracker-assets/lang/ar.json new file mode 100644 index 00000000000..11c2157c524 --- /dev/null +++ b/plugins/tracker-assets/lang/ar.json @@ -0,0 +1,296 @@ +{ + "string": { + "TrackerApplication": "أداة التتبع", + "Projects": "مشاريعك", + "More": "المزيد", + "Default": "افتراضي", + "MakeDefault": "تعيين كافتراضي", + "Delete": "حذف", + "Open": "فتح", + "Members": "الأعضاء", + "Inbox": "صندوق الوارد", + "MyIssues": "مهامي", + "ViewIssue": "عرض المهمة", + "IssueCreated": "تم إنشاء المهمة", + "Issues": "المهام", + "Views": "العروض", + "Active": "نشط", + "AllIssues": "جميع المهام", + "ActiveIssues": "المهام النشطة", + "BacklogIssues": "قائمة الانتظار", + "Backlog": "قائمة الانتظار", + "Board": "اللوحة", + "Components": "المكوّنات", + "AllComponents": "الكل", + "BacklogComponents": "قائمة الانتظار", + "ActiveComponents": "نشط", + "ClosedComponents": "مغلق", + "NewComponent": "مكوّن جديد", + "CreateComponent": "إنشاء مكوّن", + "ComponentNamePlaceholder": "اسم المكوّن", + "ComponentDescriptionPlaceholder": "الوصف (اختياري)", + "ComponentLead": "المسؤول", + "ComponentMembers": "الأعضاء", + "StartDate": "تاريخ البدء", + "TargetDate": "التاريخ المستهدف", + "Planned": "مخطط له", + "InProgress": "قيد التنفيذ", + "Paused": "متوقف مؤقتاً", + "Completed": "مكتمل", + "Canceled": "ملغى", + "CreateProject": "إنشاء مشروع", + "NewProject": "مشروع جديد", + "ProjectTitle": "عنوان المشروع", + "ProjectTitlePlaceholder": "مشروع جديد", + "UsedInIssueIDs": "يُستخدم في معرّفات المهام", + "Identifier": "المعرّف", + "Import": "استيراد", + "ProjectIdentifier": "معرّف المشروع", + "IdentifierExists": "معرّف المشروع موجود بالفعل", + "ProjectIdentifierPlaceholder": "PRJCT", + "ChooseIcon": "اختيار أيقونة", + "AddIssue": "إضافة مهمة", + "NewIssue": "مهمة جديدة", + "NewIssuePlaceholder": "جديد", + "ResumeDraft": "استئناف المسودة", + "SaveIssue": "إنشاء مهمة", + "SetPriority": "تعيين الأولوية…", + "SetStatus": "تعيين الحالة…", + "SelectIssue": "تحديد مهمة", + "Priority": "الأولوية", + "NoPriority": "بدون أولوية", + "Urgent": "عاجل", + "High": "مرتفعة", + "Medium": "متوسطة", + "Low": "منخفضة", + "Unassigned": "غير مُسند", + "Back": "رجوع", + "List": "قائمة", + "NumberLabels": "{count, plural, =0 {لا توجد تسميات} =1 {تسمية واحدة} other {# تسميات}}", + + "CategoryBacklog": "قائمة الانتظار", + "CategoryUnstarted": "لم يبدأ", + "CategoryStarted": "بدأ", + "CategoryCompleted": "مكتمل", + "CategoryCanceled": "ملغى", + + "Title": "العنوان", + "Name": "الاسم", + "Description": "الوصف", + "Status": "الحالة", + "Number": "الرقم", + "Assignee": "المُسند إليه", + "AssignTo": "إسناد إلى...", + "AssignedTo": "مُسند إلى {value}", + "Parent": "المهمة الأصلية", + "SetParent": "تعيين المهمة الأصلية…", + "ChangeParent": "تغيير المهمة الأصلية…", + "RemoveParent": "إزالة المهمة الأصلية", + "OpenParent": "فتح المهمة الأصلية", + "SubIssues": "المهام الفرعية", + "SubIssuesList": "المهام الفرعية ({subIssues})", + "OpenSubIssues": "فتح المهام الفرعية", + "AddSubIssues": "إضافة مهمة فرعية", + "BlockedBy": "محظور بواسطة", + "RelatedTo": "مرتبط بـ", + "Comments": "التعليقات", + "Attachments": "المرفقات", + "Labels": "التسميات", + "Component": "المكوّن", + "Space": "", + "SetDueDate": "تعيين تاريخ الاستحقاق…", + "ChangeDueDate": "تغيير تاريخ الاستحقاق…", + "ModificationDate": "تم التحديث {value}", + "Project": "المشروع", + "Issue": "المهمة", + "SubIssue": "مهمة فرعية", + "Document": "", + "DocumentIcon": "", + "DocumentColor": "", + "Rank": "الترتيب", + "TypeIssuePriority": "أولوية المهمة", + "IssueTitlePlaceholder": "عنوان المهمة", + "SubIssueTitlePlaceholder": "عنوان المهمة الفرعية", + "IssueDescriptionPlaceholder": "إضافة وصف…", + "SubIssueDescriptionPlaceholder": "إضافة وصف للمهمة الفرعية", + "AddIssueTooltip": "إضافة مهمة...", + "NewIssueDialogClose": "هل تريد إغلاق هذه النافذة؟", + "NewIssueDialogCloseNote": "ستُفقد جميع التغييرات", + "RemoveComponentDialogClose": "حذف المكوّن؟", + "RemoveComponentDialogCloseNote": "هل أنت متأكد أنك تريد حذف هذا المكوّن؟ لا يمكن التراجع عن هذه العملية", + "Grouping": "التجميع", + "Ordering": "الترتيب", + "CompletedIssues": "المهام المكتملة", + "NoGrouping": "بدون تجميع", + "NoAssignee": "بدون مُسند إليه", + "LastUpdated": "آخر تحديث", + "DueDate": "تاريخ الاستحقاق", + "Manual": "يدوي", + "All": "الكل", + "PastWeek": "الأسبوع الماضي", + "PastMonth": "الشهر الماضي", + "CopyIssueUrl": "نسخ رابط المهمة إلى الحافظة", + "CopyIssueId": "نسخ معرّف المهمة إلى الحافظة", + "CopyIssueBranch": "نسخ اسم فرع Git إلى الحافظة", + "CopyIssueTitle": "نسخ عنوان المهمة إلى الحافظة", + "AssetLabel": "الأصل", + "AddToComponent": "إضافة إلى المكوّن…", + "MoveToComponent": "نقل إلى المكوّن…", + "NoComponent": "بدون مكوّن", + "ComponentLeadTitle": "مسؤول المكوّن", + "ComponentMembersTitle": "أعضاء المكوّن", + "ComponentLeadSearchPlaceholder": "تعيين مسؤول المكوّن…", + "ComponentMembersSearchPlaceholder": "تغيير أعضاء المكوّن…", + "MoveToProject": "نقل إلى المشروع", + "Duplicate": "تكرار", + + "GotoIssues": "الانتقال إلى المهام", + "GotoActive": "الانتقال إلى المهام النشطة", + "GotoBacklog": "الانتقال إلى قائمة الانتظار", + "GotoComponents": "الانتقال إلى المكوّنات", + "GotoMyIssues": "الانتقال إلى مهامي", + "GotoTrackerApplication": "التبديل إلى تطبيق أداة التتبع", + + "CreatedOne": "تم الإنشاء", + "MoveIssues": "نقل المهام", + "MoveIssuesDescription": "حدد المشروع الذي تريد نقل المهام إليه", + "ManageAttributes": "إدارة السمات", + "KeepOriginalAttributes": "الاحتفاظ بالسمات الأصلية", + "KeepOriginalAttributesTooltip": "سيتم الاحتفاظ بحالات ومكوّنات المهام الأصلية في المشروع الجديد", + "SelectReplacement": "العناصر التالية غير متوفرة في المشروع الجديد. حدد بديلاً.", + "MissingItem": "عنصر مفقود", + "Replacement": "البديل", + "Original": "الأصل", + "OriginalDescription": "سيتم إنشاء العناصر من هذا القسم في المشروع الجديد", + + "Relations": "العلاقات", + "RemoveRelation": "إزالة العلاقة...", + "AddBlockedBy": "وضع علامة محظور بواسطة...", + "AddIsBlocking": "وضع علامة يحظر...", + "AddRelatedIssue": "الإشارة إلى مهمة أخرى...", + "RelatedIssue": "مهمة مرتبطة {id} - {title}", + "BlockedIssue": "مهمة محظورة {id} - {title}", + "BlockingIssue": "مهمة حاظرة {id} - {title}", + "BlockedBySearchPlaceholder": "البحث عن مهمة لوضع علامة محظور بواسطة...", + "IsBlockingSearchPlaceholder": "البحث عن مهمة لوضع علامة يحظر...", + "RelatedIssueSearchPlaceholder": "البحث عن مهمة للإشارة إليها...", + "Blocks": "يحظر", + "Related": "مرتبط", + "RelatedIssues": "المهام المرتبطة", + + "EditIssue": "تعديل {title}", + "EditWorkflowStatuses": "تعديل حالات المهام", + "EditProject": "تعديل المشروع", + "DeleteProject": "حذف المشروع", + "ArchiveProjectName": "أرشفة المشروع {name}؟", + "ArchiveProjectConfirm": "هل تريد أرشفة هذا المشروع؟", + "DeleteProjectConfirm": "هل تريد حذف هذا المشروع وجميع المهام؟", + "ProjectHasIssues": "توجد مهام في هذا المشروع، هل أنت متأكد أنك تريد الأرشفة؟", + "ManageWorkflowStatuses": "إدارة أنواع المشاريع", + "AddWorkflowStatus": "إضافة حالة مهمة", + "EditWorkflowStatus": "تعديل حالة المهمة", + "DeleteWorkflowStatus": "حذف حالة المهمة", + "DeleteWorkflowStatusConfirm": "هل تريد حذف الحالة \"{status}\"؟", + "DeleteWorkflowStatusErrorDescription": "الحالة \"{status}\" مُسندة إلى {count, plural, =1 {مهمة واحدة} other {# مهام}}. يرجى تحديد حالة للنقل", + + "Save": "حفظ", + "IncludeItemsThatMatch": "تضمين العناصر المطابقة لـ", + "AnyFilter": "أي عامل تصفية", + "AllFilters": "جميع عوامل التصفية", + "NoDescription": "بدون وصف", + "SearchIssue": "البحث عن مهمة...", + + "StatusHistory": "سجل الحالات", + "NewSubIssue": "إضافة مهمة فرعية...", + "AddLabel": "إضافة تسمية", + + "DeleteIssue": "حذف {issueCount, plural, =1 {مهمة} other {# مهام}}", + "DeleteIssueConfirm": "هل تريد حذف {issueCount, plural, =1 {المهمة} other {المهام}}{subIssueCount, plural, =0 {؟} =1 { والمهمة الفرعية؟} other { والمهام الفرعية؟}}", + + "Milestone": "معلم رئيسي", + "NoMilestone": "بدون معلم رئيسي", + "MoveToMilestone": "تحديد معلم رئيسي", + "Milestones": "المعالم الرئيسية", + "AllMilestones": "الكل", + "PlannedMilestones": "مخطط له", + "ActiveMilestones": "نشط", + "ClosedMilestones": "منجز", + "AddToMilestone": "إضافة إلى المعلم الرئيسي", + "MilestoneNamePlaceholder": "اسم المعلم الرئيسي", + + "NewMilestone": "معلم رئيسي جديد", + "CreateMilestone": "إنشاء", + + "MoveAndDeleteMilestone": "نقل المهام إلى {newMilestone} وحذف {deleteMilestone}", + "MoveAndDeleteMilestoneConfirm": "هل تريد حذف المعلم الرئيسي ونقل المهام إلى معلم رئيسي آخر؟", + + "Estimation": "التقدير", + "ReportedTime": "الوقت المستغرق", + "RemainingTime": "الوقت المتبقي", + "TimeSpendReports": "تقارير الوقت المستغرق", + "TimeSpendReport": "الوقت", + "TimeSpendReportAdd": "إضافة تقرير وقت", + "TimeSpendReportDate": "التاريخ", + "TimeSpendReportValue": "الوقت المستغرق", + "TimeSpendReportValueTooltip": "الوقت المستغرق بالساعات", + "TimeSpendReportDescription": "الوصف", + "TimeSpendDays": "{value}ي", + "TimeSpendHours": "{value}س", + "TimeSpendMinutes": "{value}د", + "ChildEstimation": "تقدير المهام الفرعية", + "ChildReportedTime": "وقت المهام الفرعية", + "CapacityValue": "من {value}ي", + "NewRelatedIssue": "مهمة مرتبطة جديدة", + "RelatedIssuesNotFound": "لم يتم العثور على مهام مرتبطة", + + "AddedReference": "تمت إضافة مرجع", + "AddedAsBlocked": "تم وضع علامة محظور", + "AddedAsBlocking": "تم وضع علامة يحظر", + + "IssueTemplate": "قالب", + "IssueTemplates": "القوالب", + "NewProcess": "قالب جديد", + "SaveProcess": "حفظ القالب", + "NoIssueTemplate": "بدون قالب", + "TemplateReplace": "هل تريد تطبيق القالب الجديد؟", + "TemplateReplaceConfirm": "سيتم استبدال جميع الحقول بقيم القالب الجديد", + "Apply": "تطبيق", + + "CurrentWorkDay": "يوم العمل الحالي", + "PreviousWorkDay": "يوم العمل السابق", + "TimeReportDayTypeLabel": "تحديد نوع يوم تقرير الوقت", + "DefaultAssignee": "المُسند إليه الافتراضي للمهام", + + "SevenHoursLength": "سبع ساعات", + "EightHoursLength": "ثماني ساعات", + "HourLabel": "س", + "MinuteLabel": "د", + "Saved": "تم الحفظ...", + "CreatedIssue": "تم إنشاء المهمة", + "CreatedSubIssue": "تم إنشاء المهمة الفرعية", + "ChangeStatus": "تغيير الحالة", + "ConfigLabel": "أداة التتبع", + "ConfigDescription": "ملحق لإدارة عناصر العمل وإنجاز جميع المهام.", + "NoStatusFound": "لم يتم العثور على حالة مطابقة", + "CreateMissingStatus": "إنشاء الحالة المفقودة", + "UnsetParent": "سيتم إلغاء تعيين المهمة الأصلية", + "AllProjects": "جميع المشاريع", + "IssueNotificationTitle": "{issueTitle}", + "IssueNotificationBody": "تم التحديث بواسطة {senderName}", + "IssueNotificationChanged": "غيّر {senderName} {property}", + "IssueNotificationChangedProperty": "غيّر {senderName} {property} إلى \"{newValue}\"", + "IssueNotificationMessage": "{senderName}: {message}", + "PreviousAssigned": "المُسند إليه سابقاً", + "IssueAssignedToYou": "مُسند إليك", + "RelatedIssueTargetDescription": "مشروع الهدف للمهمة المرتبطة بالفئة أو المساحة", + "MapRelatedIssues": "تكوين المشاريع الافتراضية للمهام المرتبطة", + "DefaultIssueStatus": "حالة المهمة الافتراضية", + "IssueStatus": "الحالة", + "Extensions": "الملحقات", + "UnsetParentIssue": "إلغاء تعيين المهمة الأصلية", + "ForbidCreateProjectPermission": "منع إنشاء المشاريع", + "ForbidCreateProjectPermissionDescription": "منع المستخدمين من إنشاء مشاريع جديدة", + "AllowCreatingIssues": "السماح بإنشاء المهام" + }, + "status": {} +} diff --git a/plugins/tracker-resources/src/components/components/ComponentEditor.svelte b/plugins/tracker-resources/src/components/components/ComponentEditor.svelte index 847197ecee3..ce0b2181217 100644 --- a/plugins/tracker-resources/src/components/components/ComponentEditor.svelte +++ b/plugins/tracker-resources/src/components/components/ComponentEditor.svelte @@ -168,7 +168,7 @@ diff --git a/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte b/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte index 205a531e45f..090569aa813 100644 --- a/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/IssuePresenter.svelte @@ -93,7 +93,7 @@ } .icon { - margin-right: 0.5rem; + margin-inline-end: 0.5rem; color: var(--theme-dark-color); } } diff --git a/plugins/tracker-resources/src/components/issues/ParentIssue.svelte b/plugins/tracker-resources/src/components/issues/ParentIssue.svelte index 0a7561b20b7..8b913ee36d4 100644 --- a/plugins/tracker-resources/src/components/issues/ParentIssue.svelte +++ b/plugins/tracker-resources/src/components/issues/ParentIssue.svelte @@ -54,9 +54,9 @@ .issue-title { margin: 0 0.25rem 0 0.375rem; - padding-right: 0.75rem; + padding-inline-end: 0.75rem; min-width: 0; color: var(--theme-caption-color); - border-right: 1px solid var(--theme-button-border); + border-inline-end: 1px solid var(--theme-button-border); } diff --git a/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte b/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte index b8943816438..2ef82bf2400 100644 --- a/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/ParentNamesPresenter.svelte @@ -52,7 +52,7 @@ diff --git a/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte b/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte index 53a3c22b0bc..0322118b379 100644 --- a/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/SubIssueSelector.svelte @@ -220,7 +220,7 @@ &:not(:first-child)::before { position: absolute; content: ''; - border-left: $border; + border-inline-start: $border; inset: 0.375rem auto; } } diff --git a/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte b/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte index 07a0e87902d..45017c6e665 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/EstimationStatsPresenter.svelte @@ -114,7 +114,7 @@ } .label { font-size: 0.8125rem; - margin-left: 0.5rem; + margin-inline-start: 0.5rem; &.normal { color: var(--theme-content-color); diff --git a/plugins/tracker-resources/src/components/milestones/MilestoneEditor.svelte b/plugins/tracker-resources/src/components/milestones/MilestoneEditor.svelte index 56ef524359a..2bfbec71a3e 100644 --- a/plugins/tracker-resources/src/components/milestones/MilestoneEditor.svelte +++ b/plugins/tracker-resources/src/components/milestones/MilestoneEditor.svelte @@ -165,7 +165,7 @@ diff --git a/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte b/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte index 8644c303e1a..bab6ba245d0 100644 --- a/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte +++ b/plugins/view-resources/src/components/masterDetail/MasterDetailBrowser.svelte @@ -189,7 +189,7 @@ position: fixed; display: block; top: 0; - left: 0; + inset-inline-start: 0; width: 100vw; height: 100vh; z-index: 10; diff --git a/plugins/workbench-assets/lang/ar.json b/plugins/workbench-assets/lang/ar.json new file mode 100644 index 00000000000..d42427fd53f --- /dev/null +++ b/plugins/workbench-assets/lang/ar.json @@ -0,0 +1,40 @@ +{ + "string": { + "More": "المزيد...", + "Delete": "حذف", + "ShowMenu": "إظهار القائمة", + "HideMenu": "إخفاء القائمة", + "Archive": "أرشفة", + "Archived": "الأرشيف", + "Open": "فتح", + "General": "عام", + "Members": "الأعضاء", + "Application": "التطبيق", + "BrowseSpaces": "تصفح المساحات", + "AccountDisabled": "الحساب معطّل", + "AccountDisabledDescr": "يُرجى التواصل مع مسؤول مساحة العمل", + "HelpAndSupport": "المساعدة والدعم", + "HelpCenter": "مركز المساعدة", + "KeyboardShortcuts": "اختصارات لوحة المفاتيح", + "Documentation": "التوثيق", + "OpenPlatformGuide": "فتح وثائق Huly", + "AccessWorkspaceSettings": "الوصول إلى إعدادات مساحة العمل", + "HowToWorkFaster": "تعلّم كيفية العمل بشكل أسرع", + "HiddenApplication": "تطبيق مخفي", + "OpenInNewTab": "فتح في علامة تبويب جديدة", + "NewVersionAvailable": "يتوفر إصدار جديد", + "PleaseUpdate": "يُرجى التحديث", + "ServerUnderMaintenance": "جارٍ تجهيز مساحة العمل للإصدار الجديد...", + "WorkspaceCreating": "جارٍ الإنشاء...", + "AccessDenied": "الكائن غير موجود أو لا تملك إذن الوصول إليه.", + "UpgradeDownloadProgress": "جارٍ تنزيل الترقية: {percent}%", + "Widget": "أداة", + "WidgetPreferences": "تفضيلات الأداة", + "OpenInSidebar": "فتح في الشريط الجانبي", + "OpenInSidebarNewTab": "فتح في علامة تبويب جديدة في الشريط الجانبي", + "ConfigureWidgets": "تكوين الأدوات", + "Tab": "علامة تبويب", + "WorkspaceIsArchived": "تمت أرشفة مساحة العمل بسبب عدم استخدامها، يُرجى التواصل معنا لاستعادتها...", + "WorkspaceIsMigrating": "جارٍ تحديث مساحة العمل. يُرجى الانتظار..." + } +} diff --git a/plugins/workbench-resources/src/components/AppItem.svelte b/plugins/workbench-resources/src/components/AppItem.svelte index dfa0a3efb22..4e29a549459 100644 --- a/plugins/workbench-resources/src/components/AppItem.svelte +++ b/plugins/workbench-resources/src/components/AppItem.svelte @@ -134,7 +134,7 @@ .marker { position: absolute; top: 1.1rem; - right: 0.375rem; + inset-inline-end: 0.375rem; width: 0.425rem; height: 0.425rem; border-radius: 50%; diff --git a/plugins/workbench-resources/src/components/Applications.svelte b/plugins/workbench-resources/src/components/Applications.svelte index e000f92c20e..aecab09144f 100644 --- a/plugins/workbench-resources/src/components/Applications.svelte +++ b/plugins/workbench-resources/src/components/Applications.svelte @@ -237,7 +237,7 @@ min-height: 4rem; .divider { - margin-left: 0.5rem; + margin-inline-start: 0.5rem; width: 1px; height: 2.25rem; } diff --git a/plugins/workbench-resources/src/components/ComponentNavigator.svelte b/plugins/workbench-resources/src/components/ComponentNavigator.svelte index 6027458eb8f..764e3eb28a9 100644 --- a/plugins/workbench-resources/src/components/ComponentNavigator.svelte +++ b/plugins/workbench-resources/src/components/ComponentNavigator.svelte @@ -208,7 +208,7 @@ position: fixed; display: block; top: 0; - left: 0; + inset-inline-start: 0; width: 100vw; height: 100vh; z-index: 10; diff --git a/plugins/workbench-resources/src/components/HelpAndSupport.svelte b/plugins/workbench-resources/src/components/HelpAndSupport.svelte index f47032566d0..87bb1ac8bd6 100644 --- a/plugins/workbench-resources/src/components/HelpAndSupport.svelte +++ b/plugins/workbench-resources/src/components/HelpAndSupport.svelte @@ -257,7 +257,7 @@ border-radius: 0.25rem; } .key-box + .key-box { - margin-left: 0.5rem; + margin-inline-start: 0.5rem; } .category-box { position: sticky; diff --git a/plugins/workbench-resources/src/components/NavFooter.svelte b/plugins/workbench-resources/src/components/NavFooter.svelte index cd9f35bb6cb..694b77a5050 100644 --- a/plugins/workbench-resources/src/components/NavFooter.svelte +++ b/plugins/workbench-resources/src/components/NavFooter.svelte @@ -58,7 +58,7 @@ diff --git a/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte b/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte index ccdbf31dedb..ad7e88a0c21 100644 --- a/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte +++ b/plugins/workbench-resources/src/components/sidebar/SidebarExpanded.svelte @@ -167,13 +167,13 @@ width: calc(100% - 3.5rem); background-color: var(--theme-panel-color); border-top: 1px solid transparent; // var(--theme-divider-color); - border-right: 1px solid var(--theme-divider-color); - border-left: none; + border-inline-end: 1px solid var(--theme-divider-color); + border-inline-start: none; &.float { position: absolute; top: 0; - right: 3.5rem; + inset-inline-end: 3.5rem; border-top-color: var(--theme-divider-color); border-bottom: 1px solid var(--theme-divider-color); z-index: 440; diff --git a/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte b/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte index 4a5f8faadd7..d238ed83f51 100644 --- a/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte +++ b/plugins/workbench-resources/src/components/sidebar/SidebarTabs.svelte @@ -90,7 +90,7 @@ min-width: 2rem; max-width: 2rem; height: 100%; - border-left: 1px solid var(--theme-divider-color); + border-inline-start: 1px solid var(--theme-divider-color); gap: 0.25rem; align-items: center; padding: 0.25rem 0; diff --git a/scripts/rtl-codemod.mjs b/scripts/rtl-codemod.mjs new file mode 100644 index 00000000000..63d74834d7b --- /dev/null +++ b/scripts/rtl-codemod.mjs @@ -0,0 +1,101 @@ +#!/usr/bin/env node +// RTL codemod: rewrite physical CSS properties to direction-aware *logical* +// properties across all `.scss` files and ` blocks in svelte files. + let count = 0 + const out = text.replace(/(]*>)([\s\S]*?)(<\/style>)/g, (full, open, body, close) => { + const r = runCss(body); count += r.count; return open + r.out + close + }) + return { out, count } +} + +function walk (dir, files = []) { + for (const name of readdirSync(dir)) { + if (SKIP.has(name)) continue + const p = join(dir, name) + let st; try { st = statSync(p) } catch { continue } + if (st.isDirectory()) walk(p, files) + else if (name.endsWith('.scss') || name.endsWith('.svelte')) files.push(p) + } + return files +} + +const files = walk(ROOT) +let changedFiles = 0 +let totalRules = 0 +for (const f of files) { + const text = readFileSync(f, 'utf8') + const { out, count } = transform(text, f.endsWith('.svelte')) + if (count > 0 && out !== text) { + totalRules += count + changedFiles++ + if (!DRY) writeFileSync(f, out, 'utf8') + } +} +console.log(`${DRY ? '[dry] ' : ''}Scanned ${files.length} files; ${changedFiles} files / ${totalRules} declarations ${DRY ? 'would be ' : ''}rewritten to logical properties.`) diff --git a/scripts/translate-arabic.mjs b/scripts/translate-arabic.mjs new file mode 100644 index 0000000000000000000000000000000000000000..0605331a422c12729df794f01a1f1eadeb016215 GIT binary patch literal 7262 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 I_nVFX1EeP-Gynhq literal 0 HcmV?d00001 diff --git a/server/account/lang/ar.json b/server/account/lang/ar.json new file mode 100644 index 00000000000..4037b0bda9f --- /dev/null +++ b/server/account/lang/ar.json @@ -0,0 +1,22 @@ +{ + "string": { + "ConfirmationText": "أكّد عنوان بريدك الإلكتروني\n\nشكرًا لتسجيلك في {name}. لإكمال عملية التسجيل، يُرجى لصق الرابط التالي في متصفحك:\n\n{link}\n\nإذا لم تقم بالتسجيل في {name}، يمكنك تجاهل هذه الرسالة بأمان.", + "ConfirmationHTML": "
Huly

أكّد عنوان بريدك الإلكتروني

شكرًا لتسجيلك في {name}. لإكمال عملية التسجيل، يُرجى تأكيد عنوان بريدك الإلكتروني.

تأكيد البريد الإلكتروني →

الزر لا يعمل؟ انسخ هذا الرابط والصقه في متصفحك:
{link}

إذا لم تقم بالتسجيل في {name}، يمكنك تجاهل هذه الرسالة بأمان.

© Huly — جميع الحقوق محفوظة

", + "ConfirmationSubject": "أكّد عنوان بريدك الإلكتروني للتسجيل في {name}", + "RecoveryText": "استرداد كلمة المرور\n\nتلقّينا طلبًا لإعادة تعيين كلمة المرور الخاصة بحسابك.\n\nأعد تعيين كلمة المرور هنا:\n{link}\n\nإذا لم تطلب إعادة تعيين كلمة المرور، يمكنك تجاهل هذه الرسالة بأمان.", + "RecoveryHTML": "
Huly

أعد تعيين كلمة المرور الخاصة بك

تلقّينا طلبًا لإعادة تعيين كلمة المرور الخاصة بحسابك. انقر على الزر أدناه لتعيين كلمة مرور جديدة.

إعادة تعيين كلمة المرور →

الزر لا يعمل؟ انسخ هذا الرابط والصقه في متصفحك:
{link}

إذا لم تطلب إعادة تعيين كلمة المرور، يمكنك تجاهل هذه الرسالة بأمان. لن تتغيّر كلمة المرور الخاصة بك.

© Huly — جميع الحقوق محفوظة

", + "RecoverySubject": "استرداد كلمة المرور", + "InviteText": "لقد تمت دعوتك إلى {ws}\n\nلقد تمت دعوتك للانضمام إلى مساحة عمل {ws} على Huly.\n\nاقبل دعوتك هنا:\n{link}\n\nتنتهي صلاحية رابط الدعوة هذا خلال {expHours} ساعة.\n\nإذا لم تكن تتوقع دعوة، يمكنك تجاهل هذه الرسالة بأمان.", + "InviteHTML": "
Huly

لقد تمت دعوتك إلى {ws}

لقد تمت دعوتك للانضمام إلى مساحة عمل {ws} على Huly. انقر على الزر أدناه للقبول والبدء.

الانضمام إلى {ws} →

الزر لا يعمل؟ انسخ هذا الرابط والصقه في متصفحك:
{link}

تنتهي صلاحية رابط الدعوة هذا خلال {expHours} ساعة. إذا لم تكن تتوقع دعوة، يمكنك تجاهل هذه الرسالة بأمان.

© Huly — جميع الحقوق محفوظة

", + "InviteSubject": "دعوة إلى {ws}", + "OtpText": "رمز تسجيل الدخول الخاص بك في {app}\n\nرمز التحقق الخاص بك:\n\n{code}\n\nأدخل هذا الرمز في نافذة تسجيل الدخول للمتابعة.\n\nإذا لم تطلب هذا الرمز، يمكنك تجاهل هذه الرسالة بأمان.", + "OtpHTML": "
Huly

رمز تسجيل الدخول الخاص بك

رمز التحقق الخاص بك لـ {app}. أدخله في نافذة تسجيل الدخول للمتابعة.

{code}

تنتهي صلاحية هذا الرمز قريبًا. إذا لم تطلب هذا الرمز، يمكنك تجاهل هذه الرسالة بأمان.

© Huly — جميع الحقوق محفوظة

", + "OtpSubject": "رمز تأكيد {app}: {code}", + "ResendInviteText": "لقد تمت إعادة دعوتك إلى {ws}\n\nتم تجديد دعوتك إلى مساحة عمل {ws} على Huly.\n\nاقبل دعوتك هنا:\n{link}\n\nتنتهي صلاحية رابط الدعوة هذا خلال {expHours} ساعة.", + "ResendInviteHTML": "
Huly

لقد تمت إعادة دعوتك إلى {ws}

تم تجديد دعوتك إلى مساحة عمل {ws} على Huly. انقر على الزر أدناه للقبول.

الانضمام إلى {ws} →

الزر لا يعمل؟ انسخ هذا الرابط والصقه في متصفحك:
{link}

تنتهي صلاحية رابط الدعوة هذا خلال {expHours} ساعة. إذا لم تكن تتوقع هذا، يمكنك تجاهل هذه الرسالة بأمان.

© Huly — جميع الحقوق محفوظة

", + "ResendInviteSubject": "إعادة دعوة إلى {ws}", + "PasswordSetupText": "تعيين كلمة مرور لحسابك\n\nلقد طلبت إضافة تسجيل الدخول بكلمة المرور إلى حسابك.\n\nعيّن كلمة المرور الخاصة بك هنا:\n{link}\n\nبمجرد التعيين، يمكنك تسجيل الدخول باستخدام البريد الإلكتروني + كلمة المرور بالإضافة إلى طريقة تسجيل الدخول الحالية.\n\nإذا لم تطلب هذا، يمكنك تجاهل هذه الرسالة بأمان.", + "PasswordSetupHTML": "
Huly

تعيين كلمة مرور لحسابك

لقد طلبت إضافة تسجيل الدخول بكلمة المرور إلى حسابك. انقر على الزر أدناه لاختيار كلمة المرور الخاصة بك.

بمجرد التعيين، يمكنك تسجيل الدخول باستخدام البريد الإلكتروني + كلمة المرور بالإضافة إلى طريقة تسجيل الدخول الحالية.

تعيين كلمة المرور →

الزر لا يعمل؟ انسخ هذا الرابط والصقه في متصفحك:
{link}

إذا لم تطلب هذا، يمكنك تجاهل هذه الرسالة بأمان.

© Huly — جميع الحقوق محفوظة

", + "PasswordSetupSubject": "تعيين كلمة مرور لحساب Huly الخاص بك" + } +} diff --git a/services/github/github-assets/lang/ar.json b/services/github/github-assets/lang/ar.json new file mode 100644 index 00000000000..6f64c9b6763 --- /dev/null +++ b/services/github/github-assets/lang/ar.json @@ -0,0 +1,94 @@ +{ + "string": { + "Github": "Github", + "GithubDesc": "اربط مستودعات GitHub الخاصة بك لمزامنة المشكلات وطلبات السحب وتحديثات المشاريع", + "Settings": "تهيئة", + "Connect": "ربط المستودع بالمشروع", + "Configure": "تهيئة تطبيق {title} على GitHub", + "NoIntegrationsConfigured": "

لا يوجد تطبيق {title} على GitHub مرتبط بمساحة العمل هذه. يجب أولاً تثبيت تطبيق {title} على GitHub ومنحه حق الوصول إلى مستودعاتك.

إذا كنت تثبّته لمؤسسة على GitHub، فيجب أن تمتلك الصلاحيات المناسبة، أو ينبغي أن تطلب من زملائك تثبيته.

إذا كنت تخطط لتحويل استخدام التكامل إلى مساحة عمل {title} أخرى، يرجى إلغاء تثبيته أولاً.

", + "InstallApp": "تثبيت تطبيق Github", + "ConnectionPending": "في انتظار خدمة التكامل", + "Repository": "المستودع", + "NoRepository": "لم يتم تحديد مستودع", + "RepositoryInfo": "في", + "RepositoryIn": " في ", + "AssignRepository": "إسناد مستودع", + "WithoutRepository": "إنشاء مشكلة بدون GitHub", + "CreateGithubIssue": "إنشاء مشكلة على ", + "PullRequest": "طلب سحب", + "PullRequests": "طلبات السحب", + "ChangedFiles": "الملفات المُغيَّرة ({files})", + "ReviewedFiles": "الملفات المُراجَعة ({files})", + "All": "الكل", + "Active": "نشط", + "Closed": "مغلق", + "PRFile": "ملف", + "PRCommit": "إيداع", + "PRReview": "مراجعة", + "PRDraft": "مسودة طلب سحب", + "PRMergedAt": "تاريخ الدمج", + "PRClosedAt": "تاريخ الإغلاق", + "MergeCommitSHA": "مُعرِّف SHA لإيداع الدمج", + "ConfigLabel": "Github", + "ConfigDescription": "مزامنة ثنائية الاتجاه مع Github", + "Authorize": "تفويض تطبيق {title} على GitHub", + "ReAuthorize": "إعادة تفويض تطبيق {title} على GitHub", + "PleaseAuthorizeAs": "تحتاج إلى تفويض تطبيق {title} على GitHub للوصول إلى حساب GitHub الخاص بك.", + "PleaseConnectToProject": "يرجى ربط المستودع بالمشروع لبدء استخدام التكامل", + "ConnectProject": "ربط المستودع (المتاح {available})", + "Enable": "تمكين", + "Disable": "تعطيل", + "Disabled": "معطّل", + "ProjectsInSync": "- المستودعات ({of}/{sync})", + "ProjectsConfig": "مشاريع Github (جديد)", + "AuthorizeAs": "كـ {login}", + "Integrations": "تكاملات تطبيق GitHub", + "Options": "الخيارات", + "Projects": "المشاريع ({count})", + "GithubIssue": "مشكلة GitHub", + "GithubMilestone": "معلَم GitHub (مشروع)", + "OnlyOrganizationError": "حسابات المؤسسات فقط مدعومة", + "Mergeable": "جاهز للدمج", + "IssueRepositoryTarget": "إلى", + "ComponentForRepository": "استخدام المكوّن لمستودع Github", + "GithubUser": "Github", + "SyncEnabled": "تم تمكين المزامنة", + "IssueConnectedActivityInfo": "مرتبط بالمشكلة #{number} داخل {repoName}", + "PullRequestConnectedActivityInfo": "مرتبط بطلب السحب #{number} داخل {repoName}", + "PullRequestMergedActivityInfo": "تم دمج طلب السحب", + "ReviewPending": "قيد الانتظار", + "ReviewCommented": "تم التعليق", + "ReviewApproved": "تمت الموافقة", + "ReviewChangesRequested": "تم طلب تغييرات", + "ReviewDismissed": "تم الرفض", + "PullRequestMergeState": "حالة الدمج", + "PullRequestReviewDecision": "حالة المراجعة", + "Conflict": "تم اكتشاف تعارض", + "ReadyForMerge": "نعم", + "PROpen": "مفتوح", + "PRMerged": "مدموج", + "PRClosed": "مغلق", + "AuthenticatedWithGithub": "تم التفويض عبر Github {login}", + "AuthenticatedWithGithubEmployee": "يرجى دمج أو إزالة شخص Github", + "AuthenticatedWithGithubRequired": "يرجى تفويض تطبيق Github للعمل نيابةً عنك لتنفيذ الإجراءات", + "Processing": "جارٍ معالجة المصادقة/التثبيت", + "AutoClose": "اكتملت المعالجة، سيتم إغلاق علامة التبويب تلقائياً خلال {time} ثانية.", + "RequestFailed": "فشل الطلب. يرجى إغلاق علامة التبويب والمحاولة مرة أخرى.", + "CloseTab": "إغلاق علامة التبويب", + "PleaseRetry": "يرجى إعادة محاولة المصادقة", + "Updated": "محدّث", + "LinkToProject": "الاتصال بـ {title}", + "UnlinkFromProject": "قطع الاتصال", + "UnlinkRepository": "قطع اتصال المستودع عن المشروع؟", + "UnlinkMessage": "

قطع اتصال المستودع {repositoryName} عن {prjName}؟

لن يتم المساس بجميع المشكلات/طلبات السحب المتزامنة {total}.

هل ترغب في المتابعة؟

", + "LinkedWith": "متصل بـ", + "SelectWorkspaceToInstallApp": "ينبغي إجراء التثبيت من إعدادات تكامل مساحة العمل.", + "SelectWorkspaceToInstallAppMsg": "يرجى إلغاء تثبيت التطبيق والمحاولة مرة أخرى.", + "Uninstall": "تطبيقات Github المثبّتة", + "AuthenticationRevokedGithub": "إعادة التفويض لـ {login} مطلوبة لعمل تطبيق GitHub بشكل صحيح", + "UnlinkInstallationTitle": "إلغاء تثبيت تطبيق Github", + "UnlinkInstallation": "هل أنت متأكد أنك تريد إلغاء تثبيت تطبيق GitHub؟ سيتم تعطيل المزامنة.", + "RemoveInstallation": "إلغاء التثبيت", + "Suspended": "موقوف" + } +} diff --git a/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte b/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte index 509a58abbb2..95abc97bbf1 100644 --- a/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte +++ b/services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte @@ -53,9 +53,9 @@ diff --git a/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte b/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte index 8e57c10ec1e..7411997a128 100644 --- a/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte +++ b/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte @@ -191,14 +191,14 @@ .file-content { border: 1px solid var(--theme-divider-color); border-top: 0; - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; + border-end-start-radius: 0.25rem; + border-end-end-radius: 0.25rem; overflow-y: hidden; } .file-info { border-top: 1px solid var(--theme-divider-color); font-weight: 600; direction: rtl; - text-align: left; + text-align: start; }