Merge branch 'feature/VDR-room' into feature/VDR-lifetime

# Conflicts:
#	packages/client/public/locales/en/Files.json
#	packages/client/public/locales/en/InfoPanel.json
#	packages/client/src/pages/Home/Section/Header/index.js
#	packages/shared/components/navigation/Navigation.types.ts
This commit is contained in:
Nikita Gopienko 2024-06-27 17:08:52 +03:00
commit 0f8994bd52
231 changed files with 21586 additions and 7902 deletions

View File

@ -1,3 +0,0 @@
---
paths:
- ./**

View File

@ -56,7 +56,6 @@ jobs:
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
config-file: .github/codeql/config-codeql.yml
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -551,7 +551,7 @@
</translations>
</concept_node>
<concept_node>
<name>CreatingDocspace</name>
<name>CreatingPortal</name>
<description/>
<comment/>
<default_text/>
@ -946,138 +946,6 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>DocspaceName</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>ar-SA</language>
<approved>false</approved>
</translation>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>si-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>sr-Cyrl-RS</language>
<approved>false</approved>
</translation>
<translation>
<language>sr-Latn-RS</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>DomainName</name>
<description/>
@ -2002,6 +1870,138 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>PortalName</name>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>ar-SA</language>
<approved>false</approved>
</translation>
<translation>
<language>az-Latn-AZ</language>
<approved>false</approved>
</translation>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>cs-CZ</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>el-GR</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-ES</language>
<approved>false</approved>
</translation>
<translation>
<language>fi-FI</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>hy-AM</language>
<approved>false</approved>
</translation>
<translation>
<language>it-IT</language>
<approved>false</approved>
</translation>
<translation>
<language>ja-JP</language>
<approved>false</approved>
</translation>
<translation>
<language>ko-KR</language>
<approved>false</approved>
</translation>
<translation>
<language>lo-LA</language>
<approved>false</approved>
</translation>
<translation>
<language>lv-LV</language>
<approved>false</approved>
</translation>
<translation>
<language>nl-NL</language>
<approved>false</approved>
</translation>
<translation>
<language>pl-PL</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-BR</language>
<approved>false</approved>
</translation>
<translation>
<language>pt-PT</language>
<approved>false</approved>
</translation>
<translation>
<language>ro-RO</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>si-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>sl-SI</language>
<approved>false</approved>
</translation>
<translation>
<language>sr-Cyrl-RS</language>
<approved>false</approved>
</translation>
<translation>
<language>sr-Latn-RS</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
<translation>
<language>uk-UA</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
<translation>
<language>zh-CN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>PortalStats</name>
<description/>

View File

@ -1,6 +1,6 @@
{
"name": "docspace",
"version": "2.5.1",
"version": "2.6.0",
"private": true,
"workspaces": {
"packages": [

View File

@ -1,6 +1,6 @@
{
"name": "@docspace/client",
"version": "2.5.1",
"version": "2.6.0",
"private": true,
"homepage": "",
"scripts": {

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "المصادقة عبر بروتوكول لمصادقة المستخدمين وإدارة الوصول في بيئات الشبكات المحلية",
"EnableSSL": "تمكين برتوكول تشفير اتصالات الانترنت بين العملاء والخوادم",
"EnterDomain": "أدخل النطاق",
@ -12,4 +12,4 @@
"SenderDisplayName": "اسم عرض المرسل",
"SenderEmailAddress": "عنوان البريد الإلكتروني للمرسل",
"SendTestMail": "إرسال بريد تجريبي"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "NTLM vasitəsilə identifikasiya",
"EnableSSL": "SSL-i aktivləşdirin",
"EnterDomain": "Domeni daxil edin",
@ -12,4 +12,4 @@
"SenderDisplayName": "Göndərənin Göstərilən Adı",
"SenderEmailAddress": "Göndərənin Elektron Poçt Ünvanı",
"SendTestMail": "Test Poçtu Göndər"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Удостоверяване чрез NTLM",
"EnableSSL": "Активиране на SSL",
"EnterDomain": "Въведете домейн",
@ -12,4 +12,4 @@
"SenderDisplayName": "Екранно име на подателя",
"SenderEmailAddress": "Имейл адрес на подателя",
"SendTestMail": "Изпращане на тестова поща"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autentizace prostřednictvím NTLM",
"EnableSSL": "Povolit SSL",
"EnterDomain": "Zadejte doménu",
@ -12,4 +12,4 @@
"SenderDisplayName": "Zobrazit Jméno Odesílatele",
"SenderEmailAddress": "E-mailová Adresa Odesílatele",
"SendTestMail": "Odeslat testovací e-mail"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Authentifizierung über NTLM",
"EnableSSL": "SSL aktivieren",
"EnterDomain": "Geben Sie die Domain ein",
@ -12,4 +12,4 @@
"SenderDisplayName": "Angezeigter Name des Absenders",
"SenderEmailAddress": "E-Mail-Adresse des Absenders",
"SendTestMail": "Test-E-Mail senden"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Αυθεντικοποίηση μέσω NTLM",
"EnableSSL": "Ενεργοποίηση SSL",
"EnterDomain": "Εισάγετε τομέα",
@ -12,4 +12,4 @@
"SenderDisplayName": "Όνομα απεικόνισης αποστολέα",
"SenderEmailAddress": "Διεύθυνση Email Αποστολέα",
"SendTestMail": "Αποστολή δοκιμαστικού email"
}
}

View File

@ -7,8 +7,9 @@
"DeleteProfileBtn": "Disable my account",
"DeleteProfileConfirmation": "Attention! You are about to disable your account.",
"DeleteProfileConfirmationInfo": "By clicking \"Disable my account\" you agree with our <1>Privacy policy.</1>",
"DeleteProfileSuccessDescription": "Your {{productName}} account is successfully disabled. The {{productName}} owner or admin can permanently delete your disabled account.",
"DeleteProfileSuccessMessage": "Your account is disabled",
"DeleteProfileSuccessMessageInfo": "Your DocSpace account is successfully disabled. The DocSpace owner or admin can permanently delete your disabled account. \n\nPlease check our <1>Privacy policy</1> to learn more about deleting your account and associated data.",
"DeleteProfileSuccessMessageInfo": "Please check our <1>Privacy policy</1> to learn more about deleting your account and associated data.",
"EmailAndPasswordCopiedToClipboard": "Email and password copied to clipboard",
"EnterAppCodeDescription": "Enter 6-digit generated code from your app. If you don't have access to your phone, use the backup codes.",
"EnterAppCodeTitle": "Enter code from authentication app",

View File

@ -3,7 +3,7 @@
"CannotReassignFiles": "If you delete multiple users at once, you cannot reassign their files to other users.",
"DeleteGroupUsersSuccessMessage": "Users have been successfully deleted.",
"DeleteMyDocumentsUser": "Personal data, all files and folders in the Documents and Trash sections of this user will be permanently deleted.",
"DeletePersonalData": "Personal data, all personal files and folders in the Documents and Trash sections* of the selected users will be permanently deleted. Files and folders of the selected users kept in common sections* such as rooms will remain in DocSpace.",
"DeletePersonalData": "Personal data, all personal files and folders in the Documents and Trash sections* of the selected users will be permanently deleted. Files and folders of the selected users kept in common sections* such as rooms will remain in {{productName}}.",
"DeletePersonalDataApplicable": "*Applicable for the selected users who have such files and folders.",
"DeleteReassignDescriptionUser": "{{warningMessageMyDocuments}} Rooms created by this user and documents stored in these rooms will be reassigned automatically to an admin performing the deletion: <strong>{{userPerformedDeletion}} ({{userYou}})</strong>. Reassign data manually to choose another destination user for reassignment.",
"DeleteUser": "Delete user",

View File

@ -3,5 +3,12 @@
"CodeCopySuccess": "Code has been copied to the clipboard",
"EmbedCode": "Embed code",
"Height": "Height",
"Width": "Width"
"Width": "Width",
"Link": "Link",
"DisplaySettings": "Display settings",
"CodeSuccessfullyCopied": "Code to insert successfully copied to clipboard",
"LinkProtectedWithPassword": "The link is protected with a password.",
"ContentRestricted": "Content copying, file downloading and printing are restricted.",
"EmbeddingBarDescription": "Embedding will only work for the URLs specified by the DocSpace admin in the JavaScript SDK settings.",
"EmbeddingBarAllowList": "Add the website URL for embedding to the <1>allow list</1>."
}

View File

@ -184,5 +184,7 @@
"RoomFilesLifetime": "The file lifetime is set to {{days}} {{period}} in this room",
"FileWillBeDeleted": "The file will be deleted {{date}}",
"LifetimeDialogDescription": "Lifetime countdown begins at the file creation date. Some files in this room exceed the proposed lifetime and will be deleted once you enable the setting.",
"LifetimeDialogDescriptionHeader": "Older files with exceeded lifetime will be deleted"
"LifetimeDialogDescriptionHeader": "Older files with exceeded lifetime will be deleted",
"Protected": "protected",
"Embed": "Embed"
}

View File

@ -1,34 +1,30 @@
{
"AccountsEmptyScreenText": "See users details here",
"AddedRoomTags": "Tags added.",
"Administration": "Administration",
"AndMoreLabel": "and <strong>{{count}} more</strong>",
"AndMoreLabel": "and <1>{{count}} more</1>",
"CreationDate": "Creation date",
"Data": "Data",
"DateModified": "Date modified",
"LifetimeEnds": "Lifetime ends",
"DeletedRoomTags": "Tags removed.",
"ExpectUsers": "Expect users",
"FeedCreateFileSeveral": "Files added",
"FeedCreateFileSingle": "File created",
"FeedCreateFolderSeveral": "Folders added",
"FeedCreateFolderSingle": "Folder created",
"FeedCreateRoom": "<strong>«{{roomTitle}}»</strong> room created",
"FeedCreateRoomTag": "Tags added",
"FeedCreateUser": "Users added",
"FeedDeleteFile": "Files removed",
"FeedDeleteFolder": "Folders removed",
"FeedDeleteRoomTag": "Tags removed",
"FeedDeleteUser": "User removed",
"FeedLinkWasDeleted": "Link was deleted",
"FeedLocationLabel": "Folder «{{folderTitle}}»",
"FeedMoveFile": "Files moved",
"FeedMoveFolder": "Folders moved",
"FeedRenameFile": "File renamed",
"FeedRenameFolder": "Folder renamed",
"FeedRenameRoom": "Room <strong>«{{oldRoomTitle}}»</strong> renamed to <strong>«{{roomTitle}}»</strong>.",
"FeedUpdateFile": "File updated",
"FeedUpdateRoom": "Icon changed",
"FeedUpdateUser": "has been assigned role {{role}}",
"FileConverted": "File converted.",
"FileCopied": "Files copied.",
"FileCreated": "File created.",
"FileDeleted": "Files removed.",
"FileExtension": "File extension",
"FileMoved": "Files moved.",
"FileRenamed": "File renamed.",
"FilesEmptyScreenText": "See file and folder details here",
"FileUploaded": "Files added.",
"FolderCopied": "Folders copied.",
"FolderCreated": "Folder created.",
"FolderDeleted": "Folders removed.",
"FolderMoved": "Folders moved.",
"FolderRenamed": "Folder renamed.",
"GalleryEmptyScreenText": "See form template details here",
"GroupsEmptyScreenText": "See group details here",
"HistoryEmptyScreenText": "Activity history will be shown here",
@ -36,11 +32,25 @@
"ItemsSelected": "Items selected",
"LastModifiedBy": "Last modified by",
"Properties": "Properties",
"RoomCreated": "<1>«{{roomTitle}}»</1> room created",
"RoomCreateUser": "Users added.",
"RoomExternalLinkCreated": "Link created.",
"RoomExternalLinkDeleted": "Link <1>«{{linkTitle}}»</1> deleted.",
"RoomExternalLinkRenamed": "Link <1>«{{oldLinkTitle}}»</1> renamed to <1>«{{linkTitle}}»</1>",
"RoomGroupAdded": "Groups added.",
"RoomGroupRemove": "Group removed",
"RoomLogoCreated": "Icon changed",
"RoomLogoDeleted": "Icon changed",
"RoomRemoveUser": "User removed.",
"RoomRenamed": "Room <1>«{{oldRoomTitle}}»</1> renamed to <1>«{{roomTitle}}»</1>",
"RoomsEmptyScreenTent": "See rooms details here",
"RoomUpdateAccessForGroup": "has been assigned role",
"RoomUpdateAccessForUser": "has been assigned role",
"SelectedUsers": "Selected accounts",
"StorageType": "Storage type",
"SubmenuDetails": "Details",
"SubmenuHistory": "History",
"UserFileUpdated": "File updated.",
"Users": "Users",
"Versions": "Versions"
}

View File

@ -1,4 +1,5 @@
{
"LdapAddCertificateToStoreConfirmation": "Do you want to add this certificate to certificate store and continue with user import?",
"LdapAdvancedSettings": "Advanced Settings",
"LdapAdvancedSettingsTooltip": "Choose user attributes which you want to be synchronized with your LDAP server.",
"LdapAttributeMapping": "Attribute mapping",
@ -6,6 +7,7 @@
"LdapAutoSyncToggle": "Auto sync",
"LdapAutoSyncToggleDescription": "Synchronization will allow to upload all the data from the portal and update the new data after changing the settings. Sync every time you have new data on users in the portal.",
"LdapAvatar": "Profile photo",
"LdapCertificateConfirm": "Confirm certificate",
"LdapDisclaimer": "Please, keep in mind: the portal user email will be taken from the 'Mail Attribute' setting. If it is missing, it will be formed in the following way: 'Login Attribute + @ + LDAP Domain'. In case such an email does not exist, the user will not receive any portal notification.",
"LdapEnableSSL": "Enable SSL",
"LdapEnableSSLTooltip": "You can make LDAP traffic confidential and secure by using Secure Sockets Layer (SSL)",
@ -41,6 +43,19 @@
"LdapServer": "Server",
"LdapServerTooltip": "Enter the LDAP server URL without the port number, e.g. LDAP://mycompany.com.",
"LdapSettings": "LDAP settings",
"LdapSettingsCertCnNoMatch": "Certificate name does not match hostname",
"LdapSettingsCertExpired": "Certificate is expired",
"LdapSettingsCertIssuerChaining": "No certificate issuer chain was provided",
"LdapSettingsCertMalformed": "Malformed certificate",
"LdapSettingsCertUnrecognizedError": "Unrecognized Error",
"LdapSettingsCertUntrustedCa": "Certificate Authority who issued the certificate is not trusted",
"LdapSettingsCertUntrustedRoot": "Root Certificate Authority who issued the certificate is not trusted",
"LdapSettingsIssuerName": "Issuer name",
"LdapSettingsSerialNumber": "Serial number",
"LdapSettingsSubjectName": "Subject name",
"LdapSettingsUniqueHash": "Unique hash",
"LdapSettingsValidFrom": "Valid from",
"LdapSettingsValidUntil": "Valid until",
"LdapSyncButton": "Sync users",
"LdapSyncCronTitle": "Here you can set how often you want to auto sync LDAP users",
"LdapSyncDescription": "Sync LDAP data is a way to synchronize data changes between your portal and the LDAP server. Enable the Auto Sync option and set a time period to automatically update the information.",
@ -52,22 +67,7 @@
"LdapUserDNTooltip": "Enter the distinguished name to the directory containing users you want to add.",
"LdapUserFilter": "User Filter",
"LdapUserFilterTooltip": "Use the search LDAP filter to select the users who must be imported.",
"LdapUserQuotaTooltip": "To set a storage quota for this user, enter an integer value for this attribute in the LDAP directory. It will display the quota value in bytes. This attribute will be applied only during the first setup and can be changed manually in the Accounts section.",
"LdapUserType": "User Type",
"LdapCertificateConfirm": "Confirm certificate",
"LdapAddCertificateToStoreConfirmation": "Do you want to add this certificate to certificate store and continue with user import?",
"LdapSettingsSerialNumber": "Serial number",
"LdapSettingsIssuerName": "Issuer name",
"LdapSettingsSubjectName": "Subject name",
"LdapSettingsValidFrom": "Valid from",
"LdapSettingsValidUntil": "Valid until",
"LdapSettingsUniqueHash": "Unique hash",
"LdapSettingsCertExpired": "Certificate is expired",
"LdapSettingsCertCnNoMatch": "Certificate name does not match hostname",
"LdapSettingsCertIssuerChaining": "No certificate issuer chain was provided",
"LdapSettingsCertUntrustedCa": "Certificate Authority who issued the certificate is not trusted",
"LdapSettingsCertUntrustedRoot": "Root Certificate Authority who issued the certificate is not trusted",
"LdapSettingsCertMalformed": "Malformed certificate",
"LdapSettingsCertUnrecognizedError": "Unrecognized Error",
"LdapUserTypeTooltip": "All users will be added to Dockspace with the selected type.",
"LdapUserQuotaTooltip": "To set a storage quota for this user, enter an integer value for this attribute in the LDAP directory. It will display the quota value in bytes. This attribute will be applied only during the first setup and can be changed manually in the Accounts section."
"LdapUserTypeTooltip": "All users will be added to Dockspace with the selected type."
}

View File

@ -10,15 +10,18 @@
"EnableUserButton": "Enable",
"IndividualRights": "Individual rights in the room",
"InviteLinkTitle": "Invitation link",
"LDAPAccountTooltip": "This user account is loaded from LDAP. If you need to change the user name and email address, or disable a user, refer to the LDAP directory.",
"LDAPGroupTooltip": "This group is loaded from LDAP. If you need to rename it, add or remove users, refer to the LDAP directory.",
"NameChangeButton": "Change name",
"PasswordChangeButton": "Change password",
"PendingTitle": "Pending",
"PendingInviteTitle": "Pending invite",
"PendingTitle": "Pending",
"PeopleCount": "people: {{count}}",
"RemoveData": "Delete personal data",
"ResetAuth": "Reset authentication",
"SearchByGroupMembers": "Search by group members",
"SendInviteAgain": "Send invitation once again",
"SSOAccountTooltip": "This user account is loaded from SSO. If you need to change the user name and email address, refer to the SSO server.",
"StandardLogin": "Standard login",
"SuccessChangeUserStatus": "The user status was successfully changed",
"SuccessDeleteGroup": "Group was deleted successfully",
@ -26,8 +29,5 @@
"SuccessDeletePersonalData": "Personal data has been successfully deleted",
"SuccessSentInvitation": "The invitation was successfully sent",
"SuccessSentMultipleInvitatios": "Invitations were successfully sent",
"WithoutGroup": "Without group",
"LDAPAccountTooltip": "This user account is loaded from LDAP. If you need to change the user name and email address, or disable a user, refer to the LDAP directory.",
"SSOAccountTooltip": "This user account is loaded from SSO. If you need to change the user name and email address, refer to the SSO server.",
"LDAPGroupTooltip": "This group is loaded from LDAP. If you need to rename it, add or remove users, refer to the LDAP directory."
"WithoutGroup": "Without group"
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Auth via NTLM",
"EnableSSL": "Enable SSL",
"EnterDomain": "Enter domain",
@ -12,4 +12,4 @@
"SenderDisplayName": "Sender Display Name",
"SenderEmailAddress": "Sender Email Address",
"SendTestMail": "Send Test Mail"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autenticación mediante NTLM",
"EnableSSL": "Habilitar SSL",
"EnterDomain": "Introduzca dominio",
@ -12,4 +12,4 @@
"SenderDisplayName": "Nombre de remitente",
"SenderEmailAddress": "Dirección de email de remitente",
"SendTestMail": "Enviar mensaje de prueba"
}
}

View File

@ -60,6 +60,7 @@
"EmptyFormSubFolderDoneDescriptionText": "Täältä löydät muiden täyttämät lomakkeet, jotka ovat valmiita.",
"EmptyFormSubFolderHeaderText": "Tässä kansiossa ei ole vielä tiedostoja",
"EmptyFormSubFolderProgressDescriptionText": "Tästä löydät keskeneräiset lomakkeet. esim. lomakkeet, joita käyttäjät ovat aloittaneet täyttämään, mutta eivät ole saaneet valmiiksi.",
"EmptyRecycleBin": "Tyhjennä roskakori",
"EmptyRootRoomHeader": "Tervetuloa {{productName}} ohjelmiston käyttäjäksi!",
"EmptyScreenFolder": "Täällä ei ole vielä asiakirjoja",
"EnableLink": "Ota linkki käyttöön",
@ -128,7 +129,6 @@
"PrivateRoomSupport": "Työskentely yksityishuoneessa on saatavilla työpöytäsovelluksen {{organizationName}} kautta. <3>Ohjeet</3>",
"RecentlyAccessible": "Äskettäin saatavilla linkin kautta",
"RecentViaLinkEmptyContainerDescription": "Tästä löydät listan äskettäin avatuista sinulle ulkoisen linkin kautta jaetuista tiedostoista.",
"EmptyRecycleBin": "Tyhjennä roskakori",
"RemovedFromFavorites": "Poistettu suosikeista",
"RemoveFromFavorites": "Poista suosikeista",
"RemoveFromList": "Poista listalta",

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Todennus NTLM:n kautta",
"EnableSSL": "Ota käyttöön SSL",
"EnterDomain": "Syötä verkkotunnus",
@ -12,4 +12,4 @@
"SenderDisplayName": "Lähettäjän nimi",
"SenderEmailAddress": "Lähettäjän sähköpostiosoite",
"SendTestMail": "Lähetä testiviesti"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Authentification via NTLM",
"EnableSSL": "Activer le SSL",
"EnterDomain": "Entrez le domaine",
@ -12,4 +12,4 @@
"SenderDisplayName": "Nom de l'expéditeur",
"SenderEmailAddress": "Adresse e-mail de l'expéditeur",
"SendTestMail": "Envoyer message de test"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Հաստատում NTLM-ի միջոցով",
"EnableSSL": "Միացնել SSL-ը",
"EnterDomain": "Մուտքագրեք տիրույթը",
@ -12,4 +12,4 @@
"SenderDisplayName": "Ուղարկողի էլփոստի հասցեն",
"SenderEmailAddress": "Ուղարկողի էլփոստի հասցեն",
"SendTestMail": "Ուղարկել փորձնական նամակ"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autenticazione tramite NTLM",
"EnableSSL": "Attiva SSL",
"EnterDomain": "Inserisci il dominio",
@ -12,4 +12,4 @@
"SenderDisplayName": "Nome mittente da visualizzare",
"SenderEmailAddress": "Indirizzo email mittente",
"SendTestMail": "Inivia messaggio di prova"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "NTLMによる認証",
"EnableSSL": "SSLを有効に",
"EnterDomain": "ドメインを入力",
@ -12,4 +12,4 @@
"SenderDisplayName": "送信者の表示名",
"SenderEmailAddress": "送信者の電子メールアドレス",
"SendTestMail": "テスト メールを送信する"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "NTLM을 통한 인증",
"EnableSSL": "SSL을 사용하도록 설정",
"EnterDomain": "도메인 입력",
@ -12,4 +12,4 @@
"SenderDisplayName": "발신자 표시 이름",
"SenderEmailAddress": "보내는 사람 이메일 주소",
"SendTestMail": "테스트 메일 전송"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "ກວດສອບ ຜ່ານ NTLM",
"EnableSSL": "ເປີດໃຊ້ SSL",
"EnterDomain": "ໃສ່ໂດເມນ",
@ -12,4 +12,4 @@
"SenderDisplayName": "ຊື່ຜູ້ສົ່ງ",
"SenderEmailAddress": "ທີ່ຢູ່ອີເມວຂອງຜູ້ສົ່ງ",
"SendTestMail": "ສົ່ງອີເມວທົດສອບ"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autentificēšana, izmantojot NTLM",
"EnableSSL": "Izmantot SSL",
"EnterDomain": "Ievadiet domēnu",
@ -12,4 +12,4 @@
"SenderDisplayName": "Sūtītāja parādāmais vārds",
"SenderEmailAddress": "Sūtītāja e-pasta adrese",
"SendTestMail": "Nosūtiet testa pastu"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Auth via NTLM",
"EnableSSL": "Activeer SSL",
"EnterDomain": "Voer domein in",
@ -12,4 +12,4 @@
"SenderDisplayName": "Zender Weergave Naam",
"SenderEmailAddress": "E-mailadres Zender",
"SendTestMail": "Testmail Sturen"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Uwierzytelnianie przez NTLM",
"EnableSSL": "Włącz protokół SSL",
"EnterDomain": "Wpisz domenę",
@ -12,4 +12,4 @@
"SenderDisplayName": "Nazwa wyświetlana nadawcy",
"SenderEmailAddress": "Adres e-mail nadawcy",
"SendTestMail": "Wyślij pocztę testową"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autenticação via NTLM",
"EnableSSL": "Habilitar SSL",
"EnterDomain": "Digite o domínio",
@ -12,4 +12,4 @@
"SenderDisplayName": "Nome de exibição do remetente",
"SenderEmailAddress": "E-mail do remetente",
"SendTestMail": "Enviar e-mail de teste"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Auten. Via NTLM",
"EnableSSL": "Habilitar SSL",
"EnterDomain": "Introduzir domínio",
@ -12,4 +12,4 @@
"SenderDisplayName": "Nome do remetente a mostrar",
"SenderEmailAddress": "Endereço de E-mail do remetente",
"SendTestMail": "Enviar Email de Teste"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autorizare prin NTLM",
"EnableSSL": "Activare autentificare unică",
"EnterDomain": "Introduceți domeniul",
@ -12,4 +12,4 @@
"SenderDisplayName": "Nume afișat expeditor",
"SenderEmailAddress": "Adresa e-mail expeditor",
"SendTestMail": "Trimite un e-mail de testare"
}
}

View File

@ -7,8 +7,9 @@
"DeleteProfileBtn": "Отключить мою учетную запись",
"DeleteProfileConfirmation": "Внимание! Вы собираетесь отключить свою учетную запись.",
"DeleteProfileConfirmationInfo": "Нажимая \"Отключить мою учетную запись\", вы соглашаетесь с нашей <1>Политикой конфиденциальности.</1>",
"DeleteProfileSuccessDescription": "Ваша учетная запись {{productName}} успешно отключена. Владелец или администратор {{productName}} могут окончательно удалить вашу отключенную учетную запись.",
"DeleteProfileSuccessMessage": "Ваша учетная запись была успешно отключена.",
"DeleteProfileSuccessMessageInfo": " Ваша учетная запись DocSpace успешно отключена. Владелец или администратор DocSpace могут окончательно удалить вашу отключенную учетную запись. \n\nОзнакомьтесь с нашей <1>Политикой конфиденциальности</1>, чтобы узнать больше об удалении вашей учетной записи и связанных с ней данных.",
"DeleteProfileSuccessMessageInfo": "Ознакомьтесь с нашей <1>Политикой конфиденциальности</1>, чтобы узнать больше об удалении вашей учетной записи и связанных с ней данных.",
"EmailAndPasswordCopiedToClipboard": "Email и пароль скопированы",
"EnterAppCodeDescription": "Введите 6-значный код, сгенерированный приложением. Если у вас нет доступа к телефону, используйте резервные коды.",
"EnterAppCodeTitle": "Введите код из приложения для аутентификации",

View File

@ -3,7 +3,7 @@
"CannotReassignFiles": "Если вы удалите нескольких пользователей одновременно, вы не сможете переназначить их файлы другим пользователям.",
"DeleteGroupUsersSuccessMessage": "Пользователи были успешно удалены.",
"DeleteMyDocumentsUser": "Все личные файлы и папки этого пользователя в разделах Документы и Корзина будут окончательно удалены.",
"DeletePersonalData": "Личные данные, все личные файлы и папки выбранных пользователей в разделах* Документы и Корзина будут окончательно удалены. Файлы и папки выбранных пользователей, хранящиеся в общих разделах*, например, в комнатах, останутся в DocSpace.",
"DeletePersonalData": "Личные данные, все личные файлы и папки выбранных пользователей в разделах* Документы и Корзина будут окончательно удалены. Файлы и папки выбранных пользователей, хранящиеся в общих разделах*, например, в комнатах, останутся в {{productName}}.",
"DeletePersonalDataApplicable": "*Применимо для выбранных пользователей, у которых есть такие файлы и папки.",
"DeleteReassignDescriptionUser": "{{warningMessageMyDocuments}} Комнаты, созданные этим пользователем, и документы, хранящиеся в этих комнатах, будут автоматически переназначены администратору, выполняющему удаление: <strong>{{userPerformedDeletion}} ({{userYou}})</strong>. Переназначьте данные вручную, чтобы выбрать другого пользователя для переназначения.",
"DeleteUser": "Удалить пользователя",

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Аутентификация с помощью NTLM",
"EnableSSL": "Использовать SSL",
"EnterDomain": "Введите домен",
@ -12,4 +12,4 @@
"SenderDisplayName": "Отображаемое имя отправителя",
"SenderEmailAddress": "Адрес email отправителя",
"SendTestMail": "Тестовое письмо"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "NTLM හරහා තහවුරුව",
"EnableSSL": "SSL සක්‍රිය කරන්න",
"EnterDomain": "වසම යොදන්න",
@ -12,4 +12,4 @@
"SenderDisplayName": "යවන්නාගේ ප්‍රදර්ශන නාමය",
"SenderEmailAddress": "යවන්නාගේ වි-තැපැල් ලිපිනය",
"SendTestMail": "අත්හදා බැලීමේ තැපෑලක් යවන්න"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autentifikácia cez NTLM",
"EnableSSL": "Povoliť SSL",
"EnterDomain": "Zadajte doménu",
@ -12,4 +12,4 @@
"SenderDisplayName": "Zobraziť Meno odosielateľa",
"SenderEmailAddress": "E-mailová adresa odosielateľa",
"SendTestMail": "Odoslať testovací e-mail"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Avtentikacija preko NTLM",
"EnableSSL": "Omogoči SSL",
"EnterDomain": "Vnesi domeno",
@ -12,4 +12,4 @@
"SenderDisplayName": "Pošiljateljevo prikazno ime",
"SenderEmailAddress": "Pošiljateljev e-naslov",
"SendTestMail": "Pošlji poskusno e-pošto"
}
}

View File

@ -1,14 +1,14 @@
{
"AppointAdmin": "Именовање администратора",
"BackupPortal": "Резервна копија DocSpace података",
"ChangeInstruction": "Да бисте променили власника DocSpace-а, изаберите име новог власника испод.",
"ChangeOwner": "Промени DocSpace власника",
"BackupPortal": "Резервна копија {{productName}} података",
"ChangeInstruction": "Да бисте променили власника {{productName}}-а, изаберите име новог власника испод.",
"ChangeOwner": "Промени {{productName}} власника",
"ChangeUser": "Промени корисника",
"DeactivateOrDeletePortal": "Деактивирај или обриши DocSpace",
"DeactivateOrDeletePortal": "Деактивирај или обриши {{productName}}",
"DoTheSame": "Учини исто као администратори",
"ManagePortal": "Управљај DocSpace конфигурацијом",
"ManagePortal": "Управљај {{productName}} конфигурацијом",
"ManageUser": "Управљај корисничким налозима",
"NewPortalOwner": "Нови DocSpace власник",
"PortalOwnerCan": "Власник DocSpace-а може:",
"NewPortalOwner": "Нови {{productName}} власник",
"PortalOwnerCan": "Власник {{productName}}-а може:",
"SetAccessRights": "Постави права приступа"
}

View File

@ -1,11 +1,11 @@
{
"DisableGeneralDescription": "Касније можете избрисати или омогуц́ити онемогуц́ене кориснике ако је потребно. Имајте на уму да не можете онемогуц́ити кориснике као што су Власник и ви.",
"DisableUser": "Онемогући корисника",
"DisableUserDescription": "Ако онемогуц́ите овог корисника, он/она нец́е моц́и да се пријави на DocSpace, док ц́е његови/њени документи и подаци остати нетакнути.",
"DisableUserDescription": "Ако онемогуц́ите овог корисника, он/она нец́е моц́и да се пријави на {{productName}}, док ц́е његови/њени документи и подаци остати нетакнути.",
"DisableUsers": "Онемогући кориснике",
"DisableUsersDescription": "Ако онемогућите ове кориснике, они неће моћи да се пријаве у DocSpace, док ће њихови документи и подаци остати нетакнути.",
"DisableUsersDescription": "Ако онемогућите ове кориснике, они неће моћи да се пријаве у {{productName}}, док ће њихови документи и подаци остати нетакнути.",
"EnableUser": "Омогући корисника",
"EnableUserDescription": "Ако омогућите овог корисника, он/она ће моћи поново да се пријави на DocSpace и приступи својим документима и подацима.",
"EnableUserDescription": "Ако омогућите овог корисника, он/она ће моћи поново да се пријави на {{productName}} и приступи својим документима и подацима.",
"EnableUsers": "Омогући кориснике",
"EnableUsersDescription": "Ако омогуц́ите ове кориснике, они ц́е моц́и поново да се пријаве на DocSpace и приступе својим документима и подацима."
"EnableUsersDescription": "Ако омогуц́ите ове кориснике, они ц́е моц́и поново да се пријаве на {{productName}} и приступе својим документима и подацима."
}

View File

@ -3,6 +3,6 @@
"ChangeUserTypeHeader": "Промени тип корисника",
"ChangeUserTypeMessage": "Корисници са типом '{{ firstType }}' биц́е премештени у тип '{{ secondType }}'.",
"ChangeUserTypeMessageMulti": "Одабрани корисници ће бити премештени у '{{ secondType }}' тип.",
"ChangeUserTypeMessageWarning": "Не можете променити тип за DocSpace администраторе и за себе.",
"ChangeUserTypeMessageWarning": "Не можете променити тип за {{productName}} администраторе и за себе.",
"SuccessChangeUserType": "Кориснички тип је успешно промењен"
}

View File

@ -1,8 +1,8 @@
{
"AccountWillBeCreated": "DocSpace налог ће бити креиран за <1>{{email}}</1>. Молимо вас завшите вашу регистрацију:",
"AccountWillBeCreated": "{{productName}} налог ће бити креиран за <1>{{email}}</1>. Молимо вас завшите вашу регистрацију:",
"ChangePasswordSuccess": "Лозинка је успешно промењена",
"ConfirmOwnerPortalSuccessMessage": "Власник DocSpace-а је успешно промењен. Биц́ете преусмерени за 10 секунди.",
"ConfirmOwnerPortalTitle": "Молимо вас потврдите да желите да промените DocSpace власника на {{newOwner}}.",
"ConfirmOwnerPortalSuccessMessage": "Власник {{productName}}-а је успешно промењен. Биц́ете преусмерени за 10 секунди.",
"ConfirmOwnerPortalTitle": "Молимо вас потврдите да желите да промените {{productName}} власника на {{newOwner}}.",
"CurrentNumber": "Ваш тренутни број мобилног телефона",
"DeleteProfileBtn": "Обриши мој налог",
"DeleteProfileConfirmation": "Пажња! Спремате се да обришете свој налог.",
@ -17,13 +17,13 @@
"GetCode": "Добави код",
"LoginRegistryButton": "Придружи се",
"PassworResetTitle": "Сада можете креирати нову лозинку.",
"PhoneSubtitle": "Двофакторска аутентификација је омогућена ради додатне сигурности. Унесите свој број мобилног телефона како бисте наставили са радом у DocSpace-у. Број мобилног телефона мора бити унет у међународном формату са позивним бројем земље.",
"PortalContinueTitle": "Потврдите да желите да поново активирате свој DocSpace.",
"PortalDeactivateTitle": "Потврдите да желите да деактивирате свој DocSpace.",
"PortalRemoveTitle": "Потврдите да желите да обришете свој DocSpace.",
"PhoneSubtitle": "Двофакторска аутентификација је омогућена ради додатне сигурности. Унесите свој број мобилног телефона како бисте наставили са радом у {{productName}}-у. Број мобилног телефона мора бити унет у међународном формату са позивним бројем земље.",
"PortalContinueTitle": "Потврдите да желите да поново активирате свој {{productName}}.",
"PortalDeactivateTitle": "Потврдите да желите да деактивирате свој {{productName}}.",
"PortalRemoveTitle": "Потврдите да желите да обришете свој {{productName}}.",
"Reactivate": "Поново активирај",
"SetAppButton": "Повежи апликацију",
"SetAppDescription": "Двофакторска аутентификација је омогуц́ена. Конфигуришите своју апликацију за аутентификацију да бисте наставили са радом у DocSpace-у. Можете да користите Google Аутентификатор за <1>Android </1> и <4>iOS</4> или Аутентификатор за <8>Windows Phone</8>.",
"SetAppDescription": "Двофакторска аутентификација је омогуц́ена. Конфигуришите своју апликацију за аутентификацију да бисте наставили са радом у {{productName}}-у. Можете да користите Google Аутентификатор за <1>Android </1> и <4>iOS</4> или Аутентификатор за <8>Windows Phone</8>.",
"SetAppInstallDescription": "Да бисте повезали апликацију, скенирајте QR код или ручно унесите свој тајни кључ <1>{{ secretKey }}</1>, а затим унесите шестоцифрени код из апликације у поље испод.",
"SetAppTitle": "Конфигуришите своју аутентификатор апликацију",
"SignUp": "Региструј се",

View File

@ -1,11 +0,0 @@
{
"ConflictResolveDescription": "Датотека са именом <1>{{file}}</1> вец́ постоји у фолдеру <1>{{folder}}</1>.",
"ConflictResolveDescriptionFiles": "{{filesCount}} докумената са истим именом вец́ постоје у фолдеру <1>{{folder}}</1>.",
"ConflictResolveSelectAction": "Изаберите радњу:",
"ConflictResolveTitle": "Потврда поновног уписивања",
"CreateDescription": "Биће две различите датотеке у фолдеру.",
"OverwriteDescription": "Нова датотека ће заменити постојећу као нова верзија.",
"OverwriteTitle": "Преписивање новом верзијом",
"SkipDescription": "Ниједна датотека нец́е бити копирана. Оригинална датотека ц́е бити задржана у одредишном фолдеру.",
"SkipTitle": "Прескочи"
}

View File

@ -1,26 +1,17 @@
{
"ActivationRequired": "потребна активација",
"ChooseRoomType": "Изабери тип собе",
"CollaborationRoomDescription": "Сарађуј на једном или више докумената са својим тимом",
"CollaborationRoomTitle": "Соба за сарадњу",
"CreateRoomConfirmation": "Желите ли да наставите без повезивања меморијског простора?\nИзабрали сте опцију складиштења трец́е стране која још увек није повезана. Ако наставите без повезивања услуге, ова опција нец́е бити додата.",
"CreateTagOption": "Креирај таг",
"CustomRoomDescription": "Примените сопствена подешавања да бисте ову собу користили за било коју прилагођену сврху.",
"CustomRoomTitle": "Прилагођена соба",
"DisableRoomQuota": "Онемогући квоту за ову собу",
"FillingFormsRoomDescription": "Правите, делите и попуњавајте шаблоне докумената или радите са готовим унапред постављеним подешавањима да бисте брзо креирали документе било ког типа.",
"FillingFormsRoomTitle": "Соба за попуњавање образаца",
"Icon": "Иконица",
"MakeRoomPrivateDescription": "Све датотеке у овој соби ће бити шифроване.",
"MakeRoomPrivateLimitationsWarningDescription": "Помоц́у ове функције можете позвати само постојец́е DocSpace кориснике. Након креирања собе, нец́ете моц́и да промените листу корисника.",
"MakeRoomPrivateLimitationsWarningDescription": "Помоц́у ове функције можете позвати само постојец́е {{productName}} кориснике. Након креирања собе, нец́ете моц́и да промените листу корисника.",
"MakeRoomPrivateTitle": "Направи Собу приватном",
"PeopleSelectorInfo": "Само админ собе или DocSpace админ могу да постану власници собе",
"PeopleSelectorInfo": "Само админ собе или {{productName}} админ могу да постану власници собе",
"PublicRoomBarDescription": "Ова соба је доступна свима са линком. Спољни корисници ц́е имати Само за преглед дозволу за све датотеке.",
"PublicRoomDescription": "Позовите кориснике преко спољних линкова да прегледају документе без регистрације. Такође можете да уградите ову собу у било који веб интерфејс.",
"PublicRoomSystemFoldersDescription": "Системски фолдери чувају копије образаца у различитим фазама завршетка. Обрасци који се попуњавају се чувају у фолдеру У току, а попуњени обрасци се чувају у Завршен фолдеру.",
"PublicRoomSystemFoldersTitle": "Системски фолдери",
"ReviewRoomDescription": "Затражи преглед или коментаре на документа",
"ReviewRoomTitle": "Соба за Преглед",
"RoomEditing": "Уређивање соба",
"RootFolderLabel": "Основни директоријум",
"StorageDescription": "Квота складишта постављена по соби. Можете променити ову вредност или искључити ограничење складишта.",
@ -29,7 +20,5 @@
"ThirdPartyStorageDescription": "Користите услуге трец́их страна као складиште података за ову просторију. Нова фасцикла за чување података ове собе биц́е креирана у повезаном складишту.",
"ThirdPartyStorageNoStorageAlert": "Пре тога, потребно је да повежете одговарајуц́у услугу у одељку „Интеграција“. У супротном, веза нец́е бити могуц́а.",
"ThirdPartyStoragePermanentSettingDescription": "Датотеке се чувају у складишту трец́е стране {{thirdpartyTitle}} у \"{{thirdpartyFolderName}}\" фолдеру.\n<strong>{{thirdpartyPath}}</strong>",
"ThirdPartyStorageRoomAdminNoStorageAlert": "Да бисте повезали складиште трец́е стране, потребно је да додате одговарајуц́у услугу у одељку Интеграција у подешавањима DocSpace-а. Контактирајте власника или администратора DocSpace-а да бисте омогуц́или интеграцију.",
"ViewOnlyRoomDescription": "Делите било која спремна документа, извештаје, документацију, и друге датотеке за преглед.",
"ViewOnlyRoomTitle": "Само-за-преглед соба"
"ThirdPartyStorageRoomAdminNoStorageAlert": "Да бисте повезали складиште трец́е стране, потребно је да додате одговарајуц́у услугу у одељку Интеграција у подешавањима {{productName}}-а. Контактирајте власника или администратора {{productName}}-а да бисте омогуц́или интеграцију."
}

View File

@ -1,9 +1,9 @@
{
"DeleteAllGroupDescription": "Одабране групе ће бити обрисане. Корисници у групама неће бити уклоњени са DocSpace-а. Да ли сте сигурни да желите да наставите?",
"DeleteAllGroupDescription": "Одабране групе ће бити обрисане. Корисници у групама неће бити уклоњени са {{productName}}-а. Да ли сте сигурни да желите да наставите?",
"DeleteAllGroupsTitle": "Обриши групе",
"DeleteFile": "Спремате се да обришете ову датотеку.",
"DeleteFolder": "Спремате се да обришете овај фолдер.",
"DeleteGroupDescription": "Група {{groupName}} ће бити обрисана. Корисници у групи неће бити уклоњени са DocSpace-а. Да ли сте сигурни да желите да наставите?",
"DeleteGroupDescription": "Група {{groupName}} ће бити обрисана. Корисници у групи неће бити уклоњени са {{productName}}-а. Да ли сте сигурни да желите да наставите?",
"DeleteGroupTitle": "Обриши групу",
"DeleteItems": "Спремате се да обришете ове ставке.",
"DeleteItemsSharedNote": "Имајте на уму да ако их поделите са неким, они ц́е постати недоступни.",

View File

@ -1,5 +1,5 @@
{
"ActionCannotBeUndone": "Изабрани онемогућени корисници ће бити уклоњени из DocSpace-а. Ова радња се не може опозвати.",
"ActionCannotBeUndone": "Изабрани онемогућени корисници ће бити уклоњени из {{productName}}-а. Ова радња се не може опозвати.",
"CannotReassignFiles": "Ако обришете више корисника одједном, не можете да доделите њихове датотеке другим корисницима.",
"DeleteGroupUsersSuccessMessage": "Корисници су успешно обрисани.",
"DeleteMyDocumentsUser": "Све личне датотеке и фолдери у одељку Документи овог корисника биц́е трајно избрисани.",

View File

@ -1,5 +1,5 @@
{
"DeleteOwnerRestrictionText": "Пошто сте власник овог DocSpace-а, морате пренети власништво на другог корисника да бисте могли да обришете свој налог. Изаберите новог власника да бисте наставили.",
"DeleteOwnerRestrictionText": "Пошто сте власник овог {{productName}}-а, морате пренети власништво на другог корисника да бисте могли да обришете свој налог. Изаберите новог власника да бисте наставили.",
"DeleteProfileInfo": "Пошаљите инструкције за брисање профила на емаил адресу",
"DeleteProfileTitle": "Обриши профил"
}

View File

@ -2,6 +2,6 @@
"CannotChangePlan": "Не можете да промените свој план јер коришц́ени обим меморијског простора или број администратора/напредних корисника премашују ограничења изабраног плана:",
"ChangePricingPlan": "Промени план тарифирања",
"PlanStorageLimit": "Нова ограничења тарифе су <1>{{storageValue}}</1 > простора за складиштење, а ваш тренутно коришћени простор за складиштење је <1>{{currentStorageValue}}</1>.",
"PlanUsersLimit": "Желите да смањите тим на <1>{{usersCount}}</1> администратора/напредних корисника, а тренутни број таквих корисника у вашем DocSpace-у је <1>{{currentUsersCount}}</1>.",
"PlanUsersLimit": "Желите да смањите тим на <1>{{usersCount}}</1> администратора/напредних корисника, а тренутни број таквих корисника у вашем {{productName}}-у је <1>{{currentUsersCount}}</1>.",
"SaveOrChange": "Молимо вас елиминишите неусклађеност у конфликтном параметру да бисте наставили или задржите ваш активни план тарифирања."
}

View File

@ -1,6 +1,6 @@
{
"ErrorEmptyResponse": "Празан одговор",
"ErrorUnavailableText": "DocSpace недоступан",
"ErrorUnavailableText": "{{productName}} недоступан",
"LinkDoesNotExist": "Линк који покушавате да отворите не постоји.",
"LinkHasExpired": "Линк који сте пратили је истекао."
}

View File

@ -8,7 +8,7 @@
"AppointNewOwner": "Поставили сте новог власника.",
"ArchiveAction": "Празна архива",
"ArchivedRoomsAction": "Собе су архивиране",
"ArchiveEmptyScreen": "Можете да архивирате собе које не користите и да их повратите у свој DocSpace у било ком тренутку или да их трајно обришете. Ове собе ц́е се појавити овде.",
"ArchiveEmptyScreen": "Можете да архивирате собе које не користите и да их повратите у свој {{productName}} у било ком тренутку или да их трајно обришете. Ове собе ц́е се појавити овде.",
"ArchiveEmptyScreenHeader": "Нема архивираних соба овде још",
"ArchiveEmptyScreenUser": "Собе које су архивиране ће се појавити овде.",
"Archives": "Архиве",
@ -23,7 +23,6 @@
"ChangeTheRoomOwner": "Промени Власника собе",
"ChooseExpirationDate": "Ограничи период доступности за овај линк постављањем рока употребе.",
"Clean": "Очистити",
"CollaborationRooms": "Сарадња",
"ContainsSpecCharacter": "Наслов не сме да садржи било који од следећих знакова: *+:\"<>?||/",
"Convert": "Конвертуј",
"CopyItem": "<strong> {{title}}</strong> копирано",
@ -35,7 +34,6 @@
"CreateNewFolderInStorage": "Креирај нови фолдер у складишту",
"CreateNewLink": "Креирај нови линк",
"CreateRoom": "Креирај собу",
"CustomRooms": "Прилагођено",
"DateLastOpened": "Датум последњег отварања",
"DaysRemaining": "Дани преостали: {{daysRemaining}}",
"DeleteLink": "Обриши линк",
@ -63,7 +61,7 @@
"EmptyFormSubFolderHeaderText": "Још нема датотека у овом фолдеру",
"EmptyFormSubFolderProgressDescriptionText": "Овде ц́ете пронац́и обрасце у току, односно обрасце које су корисници почели да попуњавају, али нису завршили.",
"EmptyRecycleBin": "Празан Отпад",
"EmptyRootRoomHeader": "Добродошли на DocSpace",
"EmptyRootRoomHeader": "Добродошли на {{productName}}",
"EmptyScreenFolder": "Нема докумената овде још",
"EnableLink": "Омогући линк",
"EnableNotifications": "Омогући нотификације",
@ -74,13 +72,11 @@
"FileRemoved": "Датотека померена у Отпад",
"FileRenamed": "Документ '{{oldTitle}}' је преименован на '{{newTitle}}'",
"FilesWillAppearHere": "Датотеке и фолдери додати у собу ће се појавити овде.",
"FillingFormRooms": "Попуњавање обрасца",
"Filter": "Филтер",
"FinalizeVersion": "Заврши верзију",
"Folder": "Фолдер",
"FolderRemoved": "Фолдер померен у Отпад",
"FolderRenamed": "Фолдер '{{folderTitle}}' је преименован у '{{newFoldedTitle}}'",
"FormRoom": "Образац соба",
"Forms": "Обрасци",
"FormsTemplates": "Шаблони образаца",
"GeneralLinkDeletedSuccessfully": "Нови генерални линк успешно креиран",
@ -96,7 +92,7 @@
"LinkDisabledSuccessfully": "Линк онемогућен успешно",
"LinkEditedSuccessfully": "Линк успешно уређен и копиран",
"LinkEnabledSuccessfully": "Линк омогућен успешно",
"LinkForPortalUsers": "Линк за DocSpace кориснике",
"LinkForPortalUsers": "Линк за {{productName}} кориснике",
"LinkSettings": "Подешавања линка",
"LinkSuccessfullyCreatedAndCopied": "Линк успешно креиран и копиран у привремену меморију",
"LinkValidUntil": "Овај линк ће бити валидан до",
@ -113,7 +109,6 @@
"MoveToPublicRoom": "Ова соба и сав њен садржај су доступни свима са линком. Да ли желите да наставите?",
"MoveToPublicRoomTitle": "Помери у Јавну собу",
"New": "Ново",
"NewRoom": "Нова соба",
"NoAccessRoomDescription": "Бићете преусмерени у Моје собе аутоматски за 5 секунди.",
"NoAccessRoomTitle": "Извињавамо се, немате приступ овој соби.",
"NoExternalLinks": "Нема спољних линкова",
@ -131,9 +126,8 @@
"PrivateRoomDescriptionSafest": "Најсигурније складиште за docx, xlsx и pptx.",
"PrivateRoomDescriptionSecure": "Безбедно дељење са поузданим члановима тима.",
"PrivateRoomDescriptionUnbreakable": "Несаломив AES-256 алгоритам.",
"PrivateRoomHeader": "Добро дошли у ONLYOFFICE приватну собу где је сваки симбол који куцате шифрован",
"PrivateRoomHeader": "Добро дошли у {{organizationName}} приватну собу где је сваки симбол који куцате шифрован",
"PrivateRoomSupport": "Рад у Приватној cоби је доступан путем {{organizationName}} десктоп апликације. <3>Инструкције</3>",
"PublicRoom": "Јавна соба",
"RecentlyAccessible": "Недавно приступно путем линка",
"RecentViaLinkEmptyContainerDescription": "Овде ћете пронаћи листу недавно отворених датотека дељених са вама путем спољног линка.",
"RemovedFromFavorites": "Уклоњено из омиљеног",
@ -176,7 +170,6 @@
"VersionBadge": "В.{{version}}",
"VersionHistory": "Историја верзије",
"ViewList": "Листа",
"ViewOnlyRooms": "Само-за-преглед",
"ViewTiles": "Наслови",
"WantLeaveRoom": "Да ли заиста желите да напустите ову собу? Моћи ћете да јој се придружите поново путем нове позивнице од администратора собе.",
"WantToRestoreTheRoom": "Сви дељени линкови у овој соби ц́е постати активни, а њен садржај ц́е бити доступан свима са линком. Да ли желите да обновите собу?",

View File

@ -14,7 +14,6 @@
"HotkeysCreateSpreadsheet": "Креирај прорачунску табелу",
"HotkeysCreatingObjects": "Креирање ставки",
"HotkeysCutSelected": "Исеци одабране ставке на привремену меморију",
"HotkeysEnterKey": "Уђи",
"HotkeysExtendSelectionDown": "Прошири селекцију доле",
"HotkeysExtendSelectionLeft": "Прошири селекцију лево",
"HotkeysExtendSelectionRight": "Прошири селекцију десно",
@ -39,7 +38,6 @@
"HotkeysSelectRight": "Одабери следећу ставку са десне стране",
"HotkeysSelectUp": "Одабери следећу ставку горе",
"HotkeysShortcuts": "Прикажи листу пречица тастатуре",
"HotkeysSpaceKey": "Простор",
"HotkeysUndoLastAction": "Поништи последњу радњу",
"HotkeysUploadFile": "Отпреми датотеку",
"HotkeysUploadingObjects": "Отпремљивање ставки",

View File

@ -31,7 +31,7 @@
"GalleryEmptyScreenText": "Види детаље шаблона обрасца овде",
"GroupsEmptyScreenText": "Види детаље групе овде",
"HistoryEmptyScreenText": "Историја активности ће бити приказана овде",
"InfoBanner": "Листа позваних корисника укључује власника и/или администратора овог DocSpace-а са пуним приступом свим просторијама. Власник и/или администратор не могу добити друге приступне привилегије. Након додавања у просторију, биће обавештени о свим променама.",
"InfoBanner": "Листа позваних корисника укључује власника и/или администратора овог {{productName}}-а са пуним приступом свим просторијама. Власник и/или администратор не могу добити друге приступне привилегије. Након додавања у просторију, биће обавештени о свим променама.",
"ItemsSelected": "Ставке одабране",
"LastModifiedBy": "Задње модификовано од стране",
"Properties": "Својства",

View File

@ -1,14 +1,14 @@
{
"AddManually": "Додај ручно",
"AddManuallyDescriptionAccounts": "Позови нове кориснике на DocSpace лично путем емаил-а.",
"AddManuallyDescriptionRoom": "Додајте постојеће кориснике DocSpace-а у собу користећи њихова имена или позовите нове кориснике лично путем емаил-а.",
"AddManuallyDescriptionAccounts": "Позови нове кориснике на {{productName}} лично путем емаил-а.",
"AddManuallyDescriptionRoom": "Додајте постојеће кориснике {{productName}}-а у собу користећи њихова имена или позовите нове кориснике лично путем емаил-а.",
"EmailErrorMessage": "Емаил адреса није важећа. Можете уредити емаил кликом на њега.",
"GroupMaxAvailableRoleWarning": "Групе имају максималну доступну улогу - \"{{role}}\". Можете издати повећање права након додавања групе у собу.",
"InvitationLanguage": "Језик позивнице",
"InviteAccountSearchPlaceholder": "Позови људе преко емаил-а",
"InviteRoomSearchPlaceholder": "Позови људе именом или емаил-ом",
"InviteViaLink": "Позови путем линка",
"InviteViaLinkDescriptionAccounts": "Створите универзални линк за самопризнање у DocSpace-у.",
"InviteViaLinkDescriptionAccounts": "Створите универзални линк за самопризнање у {{productName}}-у.",
"InviteViaLinkDescriptionRoom": "Створите универзални линк за самопризнање у соби",
"LinkCopySuccess": "Линк је копиран",
"ResetChange": "Ресетуј промене",

View File

@ -20,14 +20,14 @@
"CreateSamplePublicRoom": "Направи пример уградње Јавне собе",
"CreateSampleRoomSelector": "Направи пример уградње селектора Собе",
"CreateSampleViewer": "Направи пример уградње Прегледача",
"CSPDescription": "Да бисте започели процес уграђивања, додајте DocSpace URL на листу дозвољених.",
"CSPHeader": "Унесите адресу DocSpace-а за уградњу",
"CSPDescription": "Да бисте започели процес уграђивања, додајте {{productName}} URL на листу дозвољених.",
"CSPHeader": "Унесите адресу {{productName}}-а за уградњу",
"CSPHelp": "Ово подешавање је сигурносни механизам који се може користити како би се заштитили од напада убацивањем садржаја. CSP (Content Security Policy) описује сигурне изворе за преузимање ресурса. Преузимање са извора који није укључен у\"белу листу\" је блокирано. Наведите домене (заједно са протоколом) с којима ће радити.",
"CSPInfoBarDescription": "Молимо омогућите HTTPS протокол за ваш DocSpace како би се осигурало да правилно ради.",
"CSPInfoBarDescription": "Молимо омогућите HTTPS протокол за ваш {{productName}} како би се осигурало да правилно ради.",
"CSPInfoBarHeader": "HTTPS потребан",
"CSPInputPlaceholder": "Унеси URL овако: https://example.com",
"CSPUrlHelp": "Унеси DocSpace домен име без URL стаза или додатних знакова.",
"CustomDescription": "Ручно конфигуриши параметре за уграђивање вашег DocSpace-а.",
"CSPUrlHelp": "Унеси {{productName}} домен име без URL стаза или додатних знакова.",
"CustomDescription": "Ручно конфигуриши параметре за уграђивање вашег {{productName}}-а.",
"CustomizingDisplay": "Прилагођавање приказа",
"DataDisplay": "Подешавања приказа података",
"DefaultColumnsOption": "Подразумевано (количина зависи од ширине екрана)",
@ -54,14 +54,14 @@
"GetCode": "Узми код за уметање",
"GoToRoom": "иди у собу",
"Header": "Заглавље",
"HeaderDescription": "Можете да онемогуц́ите заглавље у мобилној верзији да бисте ограничили приступ одељцима DocSpace-а (баш као да онемогуц́ите леви мени у верзији за десктоп).",
"HtmlCodeDescription": "Уграђивање DocSpace-а или његовог дела помоц́у <script> тага. Копирајте HTML код испод и уметните га у своју HTML датотеку.",
"HeaderDescription": "Можете да онемогуц́ите заглавље у мобилној верзији да бисте ограничили приступ одељцима {{productName}}-а (баш као да онемогуц́ите леви мени у верзији за десктоп).",
"HtmlCodeDescription": "Уграђивање {{productName}}-а или његовог дела помоц́у <script> тага. Копирајте HTML код испод и уметните га у своју HTML датотеку.",
"InitializeSDK": "Изаберите један од предложених режима или користите Прилагођени да бисте ручно конфигурисали све параметре.",
"InLeftPanel": "у левом панелу",
"InterfaceElements": "Елементи интерфејса",
"ItemsCount": "Број ставки на једној страници",
"ItemsCountDescription": "Можете да одредите број датотека / фолдера приказаних на једној страници, као и да одредите која страница ц́е почети да се приказује",
"JavaScriptCodeDescription": "Уграђивање DocSpace-а или његовог дела помоц́у JavaScript. Копирајте JavaScript код испод.",
"JavaScriptCodeDescription": "Уграђивање {{productName}}-а или његовог дела помоц́у JavaScript. Копирајте JavaScript код испод.",
"JavascriptSdk": "Javascript SDK",
"LimitByTime": "Ограничење временским периодом",
"LinkSetDescription": "Овај линк је заштићен са {{parameter}}. Да бисте конфигурисали овај линк,",
@ -86,13 +86,13 @@
"RoomTypeDisplay": "Тип приказа собе",
"Rotate": "Ротирај",
"Scale": "Скалирај",
"SDKDescription": "JavaScript SDK вам омогуц́ава да уградите цео DocSpace или његов део у свој веб интерфејс. Изаберите режиме спремне за употребу са унапред дефинисаним параметрима или прилагођени да бисте га конфигурисали ручно. Да бисте сазнали више о SDK-у, погледајте",
"SDKDescription": "JavaScript SDK вам омогуц́ава да уградите цео {{productName}} или његов део у свој веб интерфејс. Изаберите режиме спремне за употребу са унапред дефинисаним параметрима или прилагођени да бисте га конфигурисали ручно. Да бисте сазнали више о SDK-у, погледајте",
"SearchBlock": "Блок за претрагу",
"SearchFilterAndSort": "Претражуј , филтрирај и сортирај",
"SearchTerm": "Појмови претраге",
"SelectButtonText": "Текст дугмета за селектовање",
"SelectImage": "Изабери слику",
"SelectModeEmbedding": "Изаберите режим за уграђивање вашег DocSpace-а",
"SelectModeEmbedding": "Изаберите режим за уграђивање вашег {{productName}}-а",
"SelectToPortal": "Изабери за {{productName}}",
"SelectTypes": "Изабери типове",
"SetItUp": "Постави",

View File

@ -0,0 +1 @@
{}

View File

@ -1,18 +1,18 @@
{
"ClickHere": "Кликните овде",
"ConfirmEmailDescription": "Користите везу дату у емаил-у за активацију. Нисте добили емаил са линком за активацију?",
"ConfirmEmailHeader": "Активирајте своју емаил ({{ email }}) да бисте добили приступ функцијама DocSpace-а.",
"ConfirmEmailHeader": "Активирајте своју емаил ({{ email }}) да бисте добили приступ функцијама {{productName}}-а.",
"PersonalUserQuotaAdminsDescription": "Да бисте отпремили и креирали нове датотеке и фолдере, ослободите простор на диску или управљајте квотом по кориснику у <1>Storage management settings.</1>",
"PersonalUserQuotaDescription": "Да бисте отпремили и креирали нове датотеке и фасцикле, ослободите простор на диску или контактирајте администратора да повец́а квоту за складиштење.",
"RequestActivation": "Затражи активацију још једном",
"RoomQuotaDescription": "Можете да архивирате непотребне собе или <1>{{clickHere}}</1> да бисте пронашли прикладнији план цена за ваш DocSpace.",
"RoomQuotaDescription": "Можете да архивирате непотребне собе или <1>{{clickHere}}</1> да бисте пронашли прикладнији план цена за ваш {{productName}}.",
"RoomQuotaHeader": "Број соба ц́е ускоро бити прекорачен: {{currentValue}} / {{maxValue}}",
"StorageAndRoomHeader": "Ограничења складишта и соба ће ускоро бити прекорачена.",
"StorageAndUserHeader": "Ограничења складишта и администратора/напредних корисника ће ускоро бити прекорачена.",
"StorageQuotaDescription": "Можете да уклоните непотребне датотеке или <1>{{clickHere}}</1> да бисте пронашли прикладнији план цена за ваш DocSpace.",
"StorageQuotaDescription": "Можете да уклоните непотребне датотеке или <1>{{clickHere}}</1> да бисте пронашли прикладнији план цена за ваш {{productName}}.",
"StorageQuotaExceeded": "Квота складишта прекорачена",
"StorageQuotaHeader": "Количина меморијског простора ц́е ускоро бити прекорачена: {{currentValue}} / {{maxValue}}",
"TenantCustomQuotaDescription": "Можете уклонити непотребне датотеке или променити квоту у <1>Storage management settings.</1>",
"UserQuotaDescription": "<1> {{clickHere }}</1> да бисте пронашли бољи план цена за свој DocSpace.",
"UserQuotaDescription": "<1> {{clickHere }}</1> да бисте пронашли бољи план цена за свој {{productName}}.",
"UserQuotaHeader": "Број администратора/напредних корисника ће ускоро бити прекорачен: {{currentValue}} / {{maxValue}}."
}

View File

@ -1,13 +1,13 @@
{
"ActionsWithFilesDescription": "Значке ће вас обавештавати о радњама попут отпремања, креирања и промена у датотекама.",
"Badges": "Значке",
"DailyFeed": "Дневни садржај DocSpace-а",
"DailyFeedDescription": "Читајте вести и догађаје из вашег DocSpace-а у дневном прегледу.",
"DailyFeed": "Дневни садржај {{productName}}-а",
"DailyFeedDescription": "Читајте вести и догађаје из вашег {{productName}}-а у дневном прегледу.",
"ManageNotifications": "Управљај",
"Notifications": "Обавештења",
"RoomsActions": "Радње са датотекама у соби",
"RoomsActivity": "Активност соба",
"RoomsActivityDescription": "Обавештења по сату. Будите у току са свим активностима у својим собама.",
"UsefulTips": "Корисни DocSpace савети",
"UsefulTipsDescription": "Добиј корисне водиче о DocSpace-у"
"UsefulTips": "Корисни {{productName}} савети",
"UsefulTipsDescription": "Добиј корисне водиче о {{productName}}-у"
}

View File

@ -1,6 +1,6 @@
{
"AccessingProblem": "Ако сте постојец́и корисник и имате проблема са приступом овом простору, контактирајте администратора.",
"AdministratorDescription": "Конфигурација DocSpace-а, креирање и администрација соба, могућност позивања и управљања корисницима у DocSpace-у и виртуелним собама, могућност управљања правима приступа.",
"AdministratorDescription": "Конфигурација {{productName}}-а, креирање и администрација соба, могућност позивања и управљања корисницима у {{productName}}-у и виртуелним собама, могућност управљања правима приступа.",
"Benefits": "Предности",
"BusinessExpired": "Ваш {{planName}} план је истекао {{date}}",
"BusinessFinalDateInfo": "Претплата ц́е бити аутоматски обновљена {{finalDate}} са ажурираним ценама и спецификацијама. Можете га отказати или променити своје податке за наплату на вашем Stripe корисничком порталу.",
@ -15,16 +15,16 @@
"DelayedPayment": "Закаснело плаћање {{planName}} плана датираног {{date}}",
"DowngradeNow": "Смањи ниво сада",
"ErrorNotification": "Ажурирање тарифног плана није успело. Покушајте поново касније или контактирајте одељење продаје.",
"GracePeriodActivatedDescription": "Током грејс периода, администратори не могу да праве нове просторије и додају нове кориснике. Након истека грејс периода, DocSpace ц́е постати недоступан док се не изврши уплата.",
"GracePeriodActivatedDescription": "Током грејс периода, администратори не могу да праве нове просторије и додају нове кориснике. Након истека грејс периода, {{productName}} ц́е постати недоступан док се не изврши уплата.",
"GracePeriodActivatedInfo": "Грејс период важи <1>фром {{fromDate}} до {{byDate}}</1> (преостали дани: {{delayDaysCount}}).",
"InvalidEmailWithActiveSubscription": "Ваша претплата остаје активна, али препоручујемо да одаберете новог Платиоца који има приступ подешавањима претплате у DocSpace-у.",
"InvalidEmailWithActiveSubscriptionForAdmin": "Ваша претплата остаје активна, али препоручујемо да контактирате DocSpace власника да одаберете новог Платиоца.",
"InvalidEmailWithoutActiveSubscription": "Препоручујемо да изаберете новог Платиоца који добија приступ подешавањима претплате у DocSpace-у.",
"InvalidEmailWithoutActiveSubscriptionByAdmin": "Препоручујемо да контактирате власника DocSpace-а да бисте изабрали новог Платиоца.",
"InvalidEmailWithActiveSubscription": "Ваша претплата остаје активна, али препоручујемо да одаберете новог Платиоца који има приступ подешавањима претплате у {{productName}}-у.",
"InvalidEmailWithActiveSubscriptionForAdmin": "Ваша претплата остаје активна, али препоручујемо да контактирате {{productName}} власника да одаберете новог Платиоца.",
"InvalidEmailWithoutActiveSubscription": "Препоручујемо да изаберете новог Платиоца који добија приступ подешавањима претплате у {{productName}}-у.",
"InvalidEmailWithoutActiveSubscriptionByAdmin": "Препоручујемо да контактирате власника {{productName}}-а да бисте изабрали новог Платиоца.",
"ManagerTypesDescription": "Типови администраторских налога и њихове привилегије",
"Pay": "Плати",
"Payer": "Платилац",
"PayerDescription": "Овај корисник има приступ детаљима плац́ања и једини је корисник који може да прилагоди квоту и изврши плац́ања. Власник DocSpace-а, као и сам менаџер плац́ања, могу да поново доделе улогу менаџера плац́ања користец́и портал за кориснике Stripe.",
"PayerDescription": "Овај корисник има приступ детаљима плац́ања и једини је корисник који може да прилагоди квоту и изврши плац́ања. Власник {{productName}}-а, као и сам менаџер плац́ања, могу да поново доделе улогу менаџера плац́ања користец́и портал за кориснике Stripe.",
"PaymentOverdue": "Немогуће додати нове кориснике.",
"PriceCalculation": "Израчунај своју цену",
"RenewSubscription": "Обновите претплату на план {{planName}}",

View File

@ -7,7 +7,7 @@
"ActivateRenewDescr": "Да бисте добили ваше личне услове обнове, контактирајте вашег посвећеног менаџера или нам пишите на <1>{{email}}</1>",
"ActivateRenewSubscriptionHeader": "Обновите претплату за Enterprise",
"ActivateSwithToProHeader": "Пребаците се на пуну Enterprise верзију",
"ActivateTariffDescr": "Користите ONLYOFFICE DocSpace Enterprise.",
"ActivateTariffDescr": "Користите {{organizationName}} {{productName}} Enterprise.",
"ActivateTariffEnterpriseExpiration": "Ваша претплата истиче {{date}}.",
"ActivateTariffEnterpriseTrialExpiration": "Ваш пробни период истиче {{date}}.",
"ActivateToProBannerHeaderTrial": "Купите пуну Enterprise верзију да добијете:",
@ -19,7 +19,7 @@
"UpgradeToProBannerInformationPurchase": "Поставите питања о куповини на <1>{{email}}</1>",
"UpgradeToProBannerInformationSupport": "Добијте техничку помоћ <1>{{helpUrl}}</1>",
"UpgradeToProBannerInstructionDescr": "Користите званичну документацију за надоградњу:",
"UpgradeToProBannerInstructionHeader": "Да бисте приступили напредним функцијама, започните бесплатни пробни период од 30 дана за ONLYOFFICE DocSpace Enterprise Edition.",
"UpgradeToProBannerInstructionHeader": "Да бисте приступили напредним функцијама, започните бесплатни пробни период од 30 дана за {{organizationName}} Enterprise Edition.",
"UpgradeToProBannerInstructionItemDocker": "Docker упутство.",
"UpgradeToProBannerInstructionItemLinux": "Linux упутство.",
"UpgradeToProBannerInstructionItemWindows": "Windows упутство.",

View File

@ -10,7 +10,6 @@
"EnableUserButton": "Омогући",
"IndividualRights": "Индивидуална права у соби",
"InviteLinkTitle": "Позивни линк",
"LDAPLbl": "LDAP",
"NameChangeButton": "Промени име",
"PasswordChangeButton": "Промени лозинку",
"PendingTitle": "На чекању",

View File

@ -1,4 +1,4 @@
{
"AccessingProblem": "Ако имате проблема са приступом овом DocSpace-у, молимо контактирајте администратора.",
"ContactAdministrator": "Контактирајте DocSpace администратора."
"AccessingProblem": "Ако имате проблема са приступом овом {{productName}}-у, молимо контактирајте администратора.",
"ContactAdministrator": "Контактирајте {{productName}} администратора."
}

View File

@ -1,4 +1,4 @@
{
"PortalRestoring": "Обнављање DocSpace-а",
"PreparationPortalDescription": "Када је процес обнављања завршен, бићете аутоматски преусмерени на ваш DocSpace."
"PortalRestoring": "Обнављање {{productName}}-а",
"PreparationPortalDescription": "Када је процес обнављања завршен, бићете аутоматски преусмерени на ваш {{productName}}."
}

View File

@ -1,10 +1,10 @@
{
"PrivacyButton": "Отвори ONLYOFFICE Desktop Editors",
"PrivacyClick": "Кликните на Отвори <1>ONLYOFFICE Desktop Editors</1> у дијалогу прегледача да бисте радили са шифрованим документима.",
"PrivacyButton": "Отвори {{organizationName}} Desktop Editors",
"PrivacyClick": "Кликните на Отвори <1>{{organizationName}} Desktop Editors</1> у дијалогу прегледача да бисте радили са шифрованим документима.",
"PrivacyDescriptionConnect": "Можете отворити ову датотеку са интерфејса десктоп апликације када се ваш облак повеже",
"PrivacyDescriptionEditors": "Ако имате ONLYOFFICE Desktop Editors инсталиран али не можете да га отворите са ове странице, ваш прегледач га можда блокира.",
"PrivacyDescriptionEditors": "Ако имате {{organizationName}} Desktop Editors инсталиран али не можете да га отворите са ове странице, ваш прегледач га можда блокира.",
"PrivacyDialog": "Ако не видите дијалог, кликните на дугме испод",
"PrivacyEditors": "Немате ONLYOFFICE Desktop Editors?",
"PrivacyEditors": "Немате {{organizationName}} Desktop Editors?",
"PrivacyHeader": "Овај документ је шифрован",
"PrivacyInstall": "Инсталирај сада"
}

View File

@ -1,5 +1,4 @@
{
"Authentication": "Аутентификација",
"AuthViaNTLM": "Аутентификација путем NTLM-а",
"EnableSSL": "Омогући SSL",
"EnterDomain": "Унеси домен",
@ -12,6 +11,5 @@
"Port": "Порт",
"SenderDisplayName": "Дисплаy име посиљаоца",
"SenderEmailAddress": "Емаил адреса пошаљиоца",
"SendTestMail": "Пошаљите пробну пошту",
"SuccessfullyCompletedOperation": "Операција је успешно завршена."
"SendTestMail": "Пошаљите пробну пошту"
}

View File

@ -1,5 +1,5 @@
{
"AboutDataImport": "Увоз података обухвата неколико корака: отпремање података, парсирање, конфигурација увоза и увоз. Ваш резервни фајл ће бити сачуван на ONLYOFFICE DocSpace серверима током 24 сата, након чега ће аутоматски бити обрисан.",
"AboutDataImport": "Увоз података обухвата неколико корака: отпремање података, парсирање, конфигурација увоза и увоз. Ваш резервни фајл ће бити сачуван на {{organizationName}} {{productName}} серверима током 24 сата, након чега ће аутоматски бити обрисан.",
"AccentColor": "Истакнутост",
"AccessRightsAccessToProduct": "Приступ {{product}} модулу је дат",
"AccessRightsAllUsers": "Сви {{users}}",
@ -10,16 +10,16 @@
"AccountsWithoutEmailsNextStep": "Пронашли смо <1>{{users}} корисника</1> без емаил-ова. Можете додати потребне податке њиховим налозима у следећем кораку.",
"AddAllowedIP": "Додај дозвољену IP адресу",
"AddEmails": "Додај емаил-ове непотпуним налозима",
"AddEmailsDescription": "Проверите листу неувезених корисника за увоз у ONLYOFFICE DocSpace.",
"AddEmailsDescription": "Проверите листу неувезених корисника за увоз у {{organizationName}} {{productName}}.",
"AddEmailsWarning": "Немате кориснике са емаил-ом. Молимо пређите на следећи корак да их додате.",
"AdditionalResources": "Додатни ресурси",
"AdditionalResourcesDescription": "Одаберите да ли желите да прикажете линкове ка додатним ресурсима у DocSpace менију.",
"AdditionalResourcesDescription": "Одаберите да ли желите да прикажете линкове ка додатним ресурсима у {{productName}} менију.",
"AdditionalResourcesSubtitle": "Конфигуришите приказ линкова ка корисним ресурсима за ваше кориснике.",
"AddTrustedDomain": "Додајте поуздани домен",
"Admins": "Администратори",
"AdminsMessage": "Подешавања порука администратора",
"AdminsMessageMobileDescription": "Подешавања порука администратора је начин да контактирате администратора портала.",
"AdminsMessageSettingDescription": "Омогући ову опцију да прикажеш DocSpace администратор контакт образац у страници за Пријаву.",
"AdminsMessageSettingDescription": "Омогући ову опцију да прикажеш {{productName}} администратор контакт образац у страници за Пријаву.",
"AllDomains": "Било који домени",
"AmazonBucketTip": "Унесите јединствено име Amazon S3 корпе где желите да чувате своје резервне копије.",
"AmazonCSE": "Шифровање на страни клијента",
@ -30,15 +30,15 @@
"AmazonSSE": "Шифровање на cерверу",
"AmazonSSETip": "Алгоритам шифровања на серверу који се користи приликом чувања овог објекта у S3.",
"Api": "API",
"ApiPageDescription": "Креирајте сопствену платформу за продуктивност засновану на ONLYOFFICE DocSpace-у и сарађујте на документима са тимовима, клијентима и партнерима.",
"ApiPageDescription": "Креирајте сопствену платформу за продуктивност засновану на {{organizationName}} {{productName}}-у и сарађујте на документима са тимовима, клијентима и партнерима.",
"ApiPageHeader": "Изгради своју сопствену платформу за сарадњу",
"Appearance": "Изглед",
"AuditSubheader": "Ова подсекција вам омогућава преглед листе последњих промена (креација, модификација, брисање итд.) које су корисници извршили на ентитетима (собама, приликама, датотекама итд.) унутар вашег DocSpace-а.",
"AuditSubheader": "Ова подсекција вам омогућава преглед листе последњих промена (креација, модификација, брисање итд.) које су корисници извршили на ентитетима (собама, приликама, датотекама итд.) унутар вашег {{productName}}-а.",
"AuditTrailNav": "Ревизорска стаза",
"AutoBackup": "Аутоматка резервна копија",
"AutoBackupDescription": "Опција аутоматске сигурносне копије се користи како би се аутоматизовао процес сигурносне копије података DocSpace-а како би се касније могао повратити на локални сервер.",
"AutoBackupDescription": "Опција аутоматске сигурносне копије се користи како би се аутоматизовао процес сигурносне копије података {{productName}}-а како би се касније могао повратити на локални сервер.",
"AutoSavePeriod": "Период аутоматског чувања",
"AutoSavePeriodHelp": "Доле приказано време одговара временској зони подешеној у DocSpace-у.",
"AutoSavePeriodHelp": "Доле приказано време одговара временској зони подешеној у {{productName}}-у.",
"Backup": "Резервна копија",
"BackupCreatedError": "Наишла је грешка. Молимо контактирајте вашег администратора.",
"BackupCreatedSuccess": "Резервна копија је успешно креирана.",
@ -50,7 +50,7 @@
"BackupListWarningText": "Ако избришете било коју ставку са листе, њихове одговарајуц́е датотеке ц́е такође бити избрисане. Ова радња се не може опозвати. За брисање свих датотека користите линк:",
"BlockingTime": "Време блокирања (сек)",
"Branding": "Брендирање",
"BrandingSectionDescription": "Наведите информације о вашој компанији, додајте линкове ка спољним ресурсима и емаил адресе приказане у оквиру DocSpace интерфејса.",
"BrandingSectionDescription": "Наведите информације о вашој компанији, додајте линкове ка спољним ресурсима и емаил адресе приказане у оквиру {{productName}} интерфејса.",
"BrandingSubtitle": "Користите ову опцију да бисте корисницима пружили искуство са брендом.",
"BreakpointMobileWarningText": "Овај одељак је недоступан у мобилној верзији",
"BreakpointMobileWarningTextPrompt": "Молимо користите десктоп или таблет да приступите <1>{{sectionName}}</1>.",
@ -72,7 +72,7 @@
"ChooseBackupFiles": "Изабери резервне датотеке",
"ClearBackupList": "Обриши све резервне копије",
"CloseMenu": "Затвори мени",
"CommonFilesDescription": "За датотеке у одељку ‘Заједничко’, биће креирана посебна соба (Заједничка соба). Само администратори DocSpace-а ће имати приступ овој соби. По подразумеваним подешавањима, власник собе ће бити корисник који је иницирао увоз: {{user}} (Ви).",
"CommonFilesDescription": "За датотеке у одељку ‘Заједничко’, биће креирана посебна соба (Заједничка соба). Само администратори {{productName}}-а ће имати приступ овој соби. По подразумеваним подешавањима, власник собе ће бити корисник који је иницирао увоз: {{user}} (Ви).",
"CompanyInfoSettings": "Информације о компанији подешавања",
"CompanyInfoSettingsDescription": "Ова информација ће бити приказана у <1>{{link}}</1> прозору.",
"ConfirmEmailSended": "Емаил конфирмације је послат {{ownerName}}",
@ -86,7 +86,7 @@
"DataBackup": "Резервна копија података",
"DataImport": "Увоз података",
"DataImportComplete": "Увоз података завршен",
"DataImportDescription": "Увезите податке из услуге трец́е стране у ONLYOFFICE DocSpace. Увоз података омогуц́ава пренос података као што су сви корисници, њихови лични и заједнички документи.",
"DataImportDescription": "Увезите податке из услуге трец́е стране у {{organizationName}} {{productName}}. Увоз података омогуц́ава пренос података као што су сви корисници, њихови лични и заједнички документи.",
"DataImportProcessing": "Обрада увоза података",
"Deactivate": "Деактивирај",
"DeactivateOrDeletePortal": "Деактивирај или обриши простор.",
@ -107,8 +107,8 @@
"DocumentService": "Документ сервис",
"DocumentServiceLocationHeaderHelp": "Доцумент сервис је серверска услуга која омогућава обављање уређивања докумената и омогућава конвертовање датотека докумената у одговарајући OfficeOpen XML формат. Локација документ сервиса одређује адресу сервера на којем су инсталиране услуге за документе.",
"DocumentServiceLocationUrlApi": "Адреса сервиса за документ уређивање",
"DocumentServiceLocationUrlInternal": "Адреса Документ сервиса за захтеве из DocSpace-а",
"DocumentServiceLocationUrlPortal": "DocSpace адреса за захтеве из Документ сервиса",
"DocumentServiceLocationUrlInternal": "Адреса Документ сервиса за захтеве из {{productName}}-а",
"DocumentServiceLocationUrlPortal": "{{productName}} адреса за захтеве из Документ сервиса",
"DownloadCopy": "Преузми копију",
"DownloadLog": "Преузми лог",
"DownloadReportBtnText": "Преузми извештај",
@ -130,17 +130,17 @@
"GroupsDescription": "Корисници које сте одабрали у претходном кораку биће увезени у групе креиране у {{serviceName}}. Групе ће се појавити у одељку Рачуни.",
"HexCode": "Hex код",
"Import": "Увези",
"ImportCompleteDescriptionGoogle": "Увоз података са Google Workspace на ONLYOFFICE DocSpace је завршен!",
"ImportCompleteDescriptionNextcloud": "Увоз података са Nextcloud на ONLYOFFICE DocSpace је завршен!",
"ImportCompleteDescriptionWorkspace": "Увоз података са ONLYOFFICE Workspace на ONLYOFFICE DocSpace је завршен!",
"ImportCompleteDescriptionGoogle": "Увоз података са Google Workspace на {{organizationName}} {{productName}} је завршен!",
"ImportCompleteDescriptionNextcloud": "Увоз података са Nextcloud на {{organizationName}} {{productName}} је завршен!",
"ImportCompleteDescriptionWorkspace": "Увоз података са {{organizationName}} Workspace на {{organizationName}} {{productName}} је завршен!",
"ImportedUsers": "{{selectedUsers}}/{{importedUsers}} корисници су увезени успешно.",
"ImportFromGoogle": "Увези са Google Workspace-а",
"ImportFromNextcloud": "Увези са Nextcloud-а",
"ImportFromPortal": "Увези са {{organizationName}} Workspace-а",
"ImportProcessingDescription": "Миграција података је у току. Молимо сачекајте.",
"ImportSectionDescription": "Изаберите секције за увоз. Оне ће се појавити у одговарајућим секцијама DocSpace-а.",
"ImportSectionDescription": "Изаберите секције за увоз. Оне ће се појавити у одговарајућим секцијама {{productName}}-а.",
"IncludedInBusiness": "Укључено у Пословни план",
"IntegrationRequest": "Недостаје вам корисна интеграција или компонента у ONLYOFFICE DocSpace-у? Оставите захтев нашем тиму и истражићемо то.",
"IntegrationRequest": "Недостаје вам корисна интеграција или компонента у {{organizationName}} {{productName}}-у? Оставите захтев нашем тиму и истражићемо то.",
"IPSecurity": "IP безбедност",
"IPSecurityMobileDescription": "IP безбедност се користи како би се ограничио приступ порталу са свих IP адреса осим одређених адреса.",
"IPSecuritySettingDescription": "Конфигуришите IP безбедност како бисте ограничили могућност пријаве на одабране IP адресе. Користите тачне IP адресе у IPv4 формату, опсег IP адреса или CIDR маскирање. IP безбедност не функционише за власнике простора, они могу приступити простору са било које IP адресе.",
@ -148,7 +148,7 @@
"LanguageAndTimeZoneSettingsNavDescription": "Поставке jезика и временске зоне омогућавају промену језика целог портала за све кориснике портала и конфигурацију временске зоне тако да ће сви догађаји на порталу бити приказани са тачним датумом и временом.",
"LastUpdate": "Последње ажурирање: {{date}}",
"LicenseLimitCounter": "Ограничење лиценце за Админе/Напредни корисници",
"LicenseLimitDescription": "Бројач ограничења лиценце састоји се од: већ постојећих налога у DocSpace-у и нових корисника које желите да увезете. Ако увезете кориснике који већ имају налог у DocSpace-у, неће бити поново бројани у бројачу. Ваша DocSpace лиценца вам дозвољава да имате максимално 100 корисника.",
"LicenseLimitDescription": "Бројач ограничења лиценце састоји се од: већ постојећих налога у {{productName}}-у и нових корисника које желите да увезете. Ако увезете кориснике који већ имају налог у {{productName}}-у, неће бити поново бројани у бројачу. Ваша {{productName}} лиценца вам дозвољава да имате максимално 100 корисника.",
"Lifetime": "Време трајања (мин)",
"LimitThemesTooltip": "Можете само креирати 3 прилагођене теме. Да бисте креитрали нову, морате обрисати једну од претходних.",
"LocalFile": "Локална датотека",
@ -180,19 +180,19 @@
"Path": "Путања",
"PersonalFiles": "Личне датотеке",
"PersonalFilesDescription": "Корисничке датотеке и документи ће бити увезени у Документи > Документи.",
"PortalAccess": "Приступ DocSpace-у",
"PortalAccess": "Приступ {{productName}}-у",
"PortalCreatedDate": "Портал креиран датум: {{date}}",
"PortalDeactivation": "Деактивирај DocSpace",
"PortalDeactivation": "Деактивирај {{productName}}",
"PortalDeactivationDescription": "Користите ову опцију да деактивирате ваш простор привремено.",
"PortalDeactivationHelper": "Ако желите деактивирати овај DocSpace, ваш простор и све информације повезане с њим ће бити блокирани тако да нико нема приступ за одређени период. Да бисте то урадили, кликните на дугме Деактивирај. Линк за потврду операције ће бити послат на емаил адресу власника простора.\nУ случају да се желите вратити на простор и наставити га користити, мораћете користити други линк обезбеђен у конфирмационом емаил-у. Зато, молимо да чувате овај емаил на сигурном месту.",
"PortalDeletion": "Брисање DocSpace-а",
"PortalDeactivationHelper": "Ако желите деактивирати овај {{productName}}, ваш простор и све информације повезане с њим ће бити блокирани тако да нико нема приступ за одређени период. Да бисте то урадили, кликните на дугме Деактивирај. Линк за потврду операције ће бити послат на емаил адресу власника простора.\nУ случају да се желите вратити на простор и наставити га користити, мораћете користити други линк обезбеђен у конфирмационом емаил-у. Зато, молимо да чувате овај емаил на сигурном месту.",
"PortalDeletion": "Брисање {{productName}}-а",
"PortalDeletionDescription": "Користи ову опцију да обришеш трајно свој простор.",
"PortalDeletionEmailSended": "Линк за потврду операције је послат на {{ownerEmail}} (емаил адреса власника простора).",
"PortalDeletionHelper": "Ако не планирате користити простор и желите трајно да га избришете, пошаљите захтев притиском на дугме \"Избриши\". Имајте на уму да нећете моћи поново активирати свој простор нити повратити било које информације које су биле повезане с њим.",
"PortalNameEmpty": "Име налога је празно",
"PortalNameIncorrect": "Нетачно име налога",
"PortalNameLength": "Име налога мора бити између {{minLength}} и {{maxLength}} знакова дугачко",
"PortalRenaming": "Преименовање DocSpace-а",
"PortalRenaming": "Преименовање {{productName}}-а",
"PortalRenamingDescriptionText": "Промени адресу простора које се налази поред {{ domain }}.",
"PortalRenamingLabelText": "Ново име простора",
"PortalRenamingModalText": "Спремате се да преименујете ваш портал. Да ли сте сигурни да желите да наставите?",
@ -209,31 +209,31 @@
"RecoveryFileNotSelected": "Опоравак грешка. Датотека за опоравак није одабрана.",
"RestoreBackup": "Поврати",
"RestoreBackupDescription": "Користи ову опцију да повратиш свој простор од претходно сачуване резервне копије датотеке.",
"RestoreBackupResetInfoWarningText": "Све тренутне лозинке ће бити ресетоване. DocSpace корисници ће добити емаил са приступом линку за обнову.",
"RestoreBackupWarningText": "DocSpace ће постати недоступан током процеса обнављања. Након што је обнављање завршено, све промене направљене након датума одабране тачке обнављања ће бити изгубљене.",
"RestoreBackupResetInfoWarningText": "Све тренутне лозинке ће бити ресетоване. {{productName}} корисници ће добити емаил са приступом линку за обнову.",
"RestoreBackupWarningText": "{{productName}} ће постати недоступан током процеса обнављања. Након што је обнављање завршено, све промене направљене након датума одабране тачке обнављања ће бити изгубљене.",
"RoomsModule": "Соба за резервне копије",
"RoomsModuleDescription": "Можете креирати нову собу посебно за резервну копију, изабрати једну од постојећих соба или сачувати копију у њиховој {{roomName}} соби.",
"SaveToApply": "Кликните на <strong>Сачувај</strong> дугме на дну да примените.",
"SelectedUsersCounter": "Одабрани: {{selectedUsers}}/{{totalUsers}} корисници",
"SelectFileDescriptionGoogle": "Изаберите Google Workspace датотеку за резервну копију да бисте започели увоз података. Можете изабрати више датотека. Након што се заврше отпремање и анализа података, следећи корак ће се аутоматски покренути.",
"SelectFileDescriptionNextcloud": "Изаберите Nextcloud датотеку за резервну копију како бисте започели увоз података. Можете изабрати само једну датотеку. Након што се заврши отпремање и анализа података, следећи корак ће се аутоматски покренути.",
"SelectFileDescriptionWorkspace": "Изаберите ONLYOFFICE Workspace датотеку за резервну копију како бисте започели увоз података. Након што се заврши отпремање и анализа података, следећи корак ће се аутоматски покренути.",
"SelectFileDescriptionWorkspace": "Изаберите {{organizationName}} Workspace датотеку за резервну копију како бисте започели увоз података. Након што се заврши отпремање и анализа података, следећи корак ће се аутоматски покренути.",
"SelectFileInGZFormat": "Изабери датотеку у .GZ формату",
"SelectUsers": "Изабери кориснике",
"SelectUsersDescriptionGoogle": "Проверите кориснике са листе које желите да увезете у ONLYOFFICE DocSpace. Корисници из Google Workspace ће бити увезени без имена и презимена, уместо тога користиће се њихово емаил име. Имена корисника могу бити промењена након увоза. Корисници који већ постоје у ONLYOFFICE DocSpace-у су означени зеленом бојом и подразумевано нису означени.",
"SelectUsersDescriptionNextcloud": "Проверите кориснике са листе које желите да увезете у ONLYOFFICE DocSpace. Само корисници са емаил-овима ће бити одабрани. Корисници који већ постоје у ONLYOFFICE DocSpace-у су означени зеленом бојом и подразумевано нису означени.",
"SelectUsersDescriptionWorkspace": "Проверите кориснике са листе које желите да увезете у ONLYOFFICE DocSpace. Корисници који већ постоје у ONLYOFFICE DocSpace-у су означени зеленом бојом и подразумевано нису означени.",
"SelectUsersDescriptionGoogle": "Проверите кориснике са листе које желите да увезете у {{organizationName}} {{productName}}. Корисници из Google Workspace ће бити увезени без имена и презимена, уместо тога користиће се њихово емаил име. Имена корисника могу бити промењена након увоза. Корисници који већ постоје у {{organizationName}} {{productName}}-у су означени зеленом бојом и подразумевано нису означени.",
"SelectUsersDescriptionNextcloud": "Проверите кориснике са листе које желите да увезете у {{organizationName}} {{productName}}. Само корисници са емаил-овима ће бити одабрани. Корисници који већ постоје у {{organizationName}} {{productName}}-у су означени зеленом бојом и подразумевано нису означени.",
"SelectUsersDescriptionWorkspace": "Проверите кориснике са листе које желите да увезете у {{organizationName}} {{productName}}. Корисници који већ постоје у {{organizationName}} {{productName}}-у су означени зеленом бојом и подразумевано нису означени.",
"SelectUsersWithEmail": "Изабери кориснике са емаил-ом",
"SelectUserTypes": "Изабери типове корисника",
"SelectUserTypesDescription": "Изаберите улоге у DocSpace-у за увезене кориснике: <1>DocSpace админ</1>, <1>Админ собе</1> или <1>Напредни корисник</1>. Подразумевано, улога Напредни корисник је изабрана за сваког корисника. Можете управљати улогама након увоза.",
"SelectUserTypesDescription": "Изаберите улоге у {{productName}}-у за увезене кориснике: <1>{{productName}} админ</1>, <1>Админ собе</1> или <1>Напредни корисник</1>. Подразумевано, улога Напредни корисник је изабрана за сваког корисника. Можете управљати улогама након увоза.",
"SendNotificationAboutRestoring": "Пошаљи нотификацију у вези обнављања простора корисницима",
"ServerSideEncryptionMethod": "Метод шифровања на серверској страни",
"ServiceUrl": "URL сервиса",
"SessionLifetime": "Трајање сесије",
"SessionLifetimeMobileDescription": "Трајање сесије омогућава постављање времена (у минутима) пре него што ће корисницима DocSpace-а поново бити потребно да унесу приступне податке како би приступили простору.",
"SessionLifetimeMobileDescription": "Трајање сесије омогућава постављање времена (у минутима) пре него што ће корисницима {{productName}}-а поново бити потребно да унесу приступне податке како би приступили простору.",
"SessionLifetimeSettingDescription": "Подесите Трајање сесије како бисте дефинисали временски период пре аутоматског одјављивања. Након чувања, одјављивање ће бити извршено за све кориснике.",
"SetDefaultRoomQuota": "Поставите подразумевану складишну квоту за собе у овом DocSpace-у. Касније може бити подешено за сваку собу индивидуално од стране админа собе.",
"SetDefaultUserQuota": "Поставите складишну квоту за собе у овом DocSpace-у. Корисничка квота утиче на ограничење складишта за Документи фолдер сваког корисника.",
"SetDefaultRoomQuota": "Поставите подразумевану складишну квоту за собе у овом {{productName}}-у. Касније може бити подешено за сваку собу индивидуално од стране админа собе.",
"SetDefaultUserQuota": "Поставите складишну квоту за собе у овом {{productName}}-у. Корисничка квота утиче на ограничење складишта за Документи фолдер сваког корисника.",
"SettingPasswordDescription": "Конфигуришите Подешавања Јачине лозинке како бисте применили сигурније, отпорније лозинке на рачунарске нападе.",
"SettingPasswordStrengthMobileDescription": "Подешавања Јачине лозинке су начин да се одреди ефективност лозинке у отпорности на погађања и нападе brute-force.",
"SettingPasswordTittle": "Подешавања Јачине лозинке",
@ -247,7 +247,7 @@
"SingleSignOn": "Једнократна пријава",
"SMTPSettings": "SMTP подешавања",
"SMTPSettingsDescription": "SMTP подешавања су потребна како бисте поставили емаил налог који ће се користити за слање обавештења са портала користећи ваш SMTP сервер уместо оног који користи {{organizationName}}. Молимо вас да попуните сва поља и кликнете на дугме ‘Сачувај’. Можете користити дугме Pošaljite probnu poštu да проверите да ли су сва подешавања која сте унели исправна и раде како треба.",
"StatisticDescription": "Овде можете видети детаљне податке о коришћењу складишта у овом DocSpace-у.",
"StatisticDescription": "Овде можете видети детаљне податке о коришћењу складишта у овом {{productName}}-у.",
"Statistics": "Статистике",
"StorageManagement": "Управљање складиштем",
"StoragePeriod": "Период складиштења",
@ -267,7 +267,7 @@
"ThirdPartyResourceDescription": "Резервна копија се може сачувати на ваш налог треће стране (Dropbox, Box.com, OneDrive или Google Drive). Морате повезати свој налог треће стране (Dropbox, Box.com, OneDrive или Google Drive) пре него што будете могли сачувати своју резервну копију тамо.",
"ThirdPartyStorageDescription": "Резервна копија се може сачувати на складиште треће стране. Пре тога, морате повезати одговарајућу услугу у одељку 'Интеграција'. У супротном, следећа подешавања ће бити неактивна.",
"ThirdPartyTitleDescription": "Помоћу ауторизационих кључева можете повезати треће стране сервисе са вашим простором. Лако се пријавите путем Facebook-а, Google-а или LinkedIn-а. Додајте Dropbox, OneDrive и друге налоге како бисте радили са датотекама које су тамо смештене.",
"TimeLanguageSettingsDescription": "Промените Подешавања jезика и временске зоне да подесите уобичајен DocSpace језик и време.",
"TimeLanguageSettingsDescription": "Промените Подешавања jезика и временске зоне да подесите уобичајен {{productName}} језик и време.",
"TimeLanguageSettingsSave": "Кликните <strong>Сачувај</strong> на дну да примените.",
"TimeZone": "Временска зона",
"Top5rooms": "Топ 5 соба по употреби складишта:",
@ -277,10 +277,10 @@
"TrustedMailMobileDescription": "Подешавања поузданих поштанских домена представљају начин за одређивање поштанских сервера који се користе за саморегистрацију корисника.",
"TrustedMailSettingDescription": "Конфигуришите подешавања поузданих поштанских домена да одредите дозвољене сервере поште за саморегистрацију.",
"TwoFactorAuth": "Двофакторска аутентификација",
"TwoFactorAuthEnableDescription": "Омогући двофакторску аутентификацију за безбеднији DocSpace приступ за кориснике.",
"TwoFactorAuthEnableDescription": "Омогући двофакторску аутентификацију за безбеднији {{productName}} приступ за кориснике.",
"TwoFactorAuthMobileDescription": "Двофакторска аутентификација је сигурнији начин за кориснике да приступе порталу. Након што унесу своје податке за пријаву, корисник ће морати да унесе код који је добио SMS-ом на мобилни телефон са бројем који је био наведен приликом првог пријављивања на портал или код из апликације за аутентификацију.",
"TwoFactorAuthSave": "Кликните на <strong>Сачувај</strong> дугме испод да примените.",
"TypesAndPrivileges": "<1>Типови администраторских налога и њихове привилегије</1><br> <br> <2>Админ DocSpace-а</2 > <br> Конфигурација DocSpace-а, креирање и администрација соба, могућност позивања и управљања корисницима у DocSpace-у и у виртуелним собама, способност управљања правима приступа. <br> <br> <3>Админ собе</3> <br> Администрација и архивирање собе, позивање и управљање корисницима. Више администратора може бити додељено соби. <br> <br> <4>Напредни корисник</4 > <br> Напредни корисници могу креирати и уређивати датотеке у соби, али не могу креирати собе, управљати корисницима или приступити подешавањима.",
"TypesAndPrivileges": "<1>Типови администраторских налога и њихове привилегије</1><br> <br> <2>Админ {{productName}}-а</2 > <br> Конфигурација {{productName}}-а, креирање и администрација соба, могућност позивања и управљања корисницима у {{productName}}-у и у виртуелним собама, способност управљања правима приступа. <br> <br> <3>Админ собе</3> <br> Администрација и архивирање собе, позивање и управљање корисницима. Више администратора може бити додељено соби. <br> <br> <4>Напредни корисник</4 > <br> Напредни корисници могу креирати и уређивати датотеке у соби, али не могу креирати собе, управљати корисницима или приступити подешавањима.",
"UnsavedChangesBody": "Ако сада затворите мени за подешавање линкова, ваше промене неће бити сачуване.",
"UnsupportedFilesDescription": "Неке од резервних датотека нису подржане. Кликните \"Провери неподржане фајлове\" да бисте преузели листу неподржаних ставки.",
"UnsupportedFilesWithUploadDesc": "Неке од резервних датотека нису подржане. Кликните \"Провери неподржане фајлове\" да бисте преузели листу неподржаних ставки или кликните \"Отпреми на сервер\" да наставите без њих.",
@ -292,7 +292,7 @@
"UsedStorage": "Коришћено: {{size}}",
"UseHttp": "Користи Http",
"UserAgreement": "Потврђујем и желим да наставим",
"UserLimitExceeded": "Кориснички лимит прекорачен. Да бисте прешли на следец́и корак, прилагодите број корисника или повец́ајте ограничење корисника DocSpace-а.",
"UserLimitExceeded": "Кориснички лимит прекорачен. Да бисте прешли на следец́и корак, прилагодите број корисника или повец́ајте ограничење корисника {{productName}}-а.",
"UsersSectionDescription": "Одељак \"Корисници\" обухвата кориснике које сте одабрали у претходном кораку. Подразумевано је увек омогућен и не може се одзначити.",
"UseSpecialChar": "Користи специјалне знакове",
"UseUpperCase": "Користи велика слова",

View File

@ -31,7 +31,7 @@
"PrivateKey": "Приватни кључ",
"ProviderURL": "IdP Entity Id",
"ProviderURLTooltip": "Entitet IdP-а (URL издаваоца)",
"ServiceProviderSettings": "Подешавања SP-а за ONLYOFFICE",
"ServiceProviderSettings": "Подешавања SP-а за {{organizationName}}",
"ServiceProviderSettingsDescription": "Конфигуришите подешавања пружаоца услуга и додајте сертификате SP-а за Single Sign-On.",
"Show": "Прикажи",
"ShowAdditionalParameters": "Прикажи напредна подешавања",
@ -47,8 +47,8 @@
"spDecryptStatements": "Декрипција тврдњи",
"SPEntityId": "SP Entitet ID (линк ка метаподацима XML)",
"SPEntityIdTooltip": "Адреса URL XML-а пружаоца услуга која може бити преузета и коришћена од стране идентитетског пружаоца како би недвосмислено идентификовао SP.",
"SpMetadata": "Метаподаци пружаоца услуга ONLYOFFICE",
"SpMetadataDescription": "Приступ метаподацима пружаоца услуга како бисте додали ONLYOFFICE DocSpace као поузданог пружаоца услуга у вашем IdP налогу.",
"SpMetadata": "Метаподаци пружаоца услуга {{organizationName}}",
"SpMetadataDescription": "Приступ метаподацима пружаоца услуга како бисте додали {{organizationName}} {{productName}} као поузданог пружаоца услуга у вашем IdP налогу.",
"spSignExitRequest": "Потпиши захтеве за одјављивање",
"spSigningAlgorithm": "Алгоритам пријављивања",
"spSignResponseRequest": "Потпиши одговоре на одјављивање",

View File

@ -1,5 +1,5 @@
{
"AppName": "ONLYOFFICE Документи",
"AppName": "{{organizationName}} Документи",
"AppStore": "На App Store-у",
"GooglePlay": "У Google Play-у"
}

View File

@ -1,6 +1,6 @@
{
"DeletePlugin": "Обриши додатак",
"DeletePluginDescription": "Овај додатак више неће бити доступан корисницима DocSpace-а. Да ли сте сигурни да желите да наставите?",
"DeletePluginDescription": "Овај додатак више неће бити доступан корисницима {{productName}}-а. Да ли сте сигурни да желите да наставите?",
"DeletePluginTitle": "Обриши додатак?",
"ExpandFunctionality": "Прошири фукционалност користећи Plugin SDK (SDK за додатке)",
"GoToRepo": "Иди у репозиторијум",
@ -10,7 +10,7 @@
"NotNeedSettings": "Није потребно ући у подешавања",
"PluginSamples": "Узорци додатака",
"PluginSDK": "Plugin SDK (SDK за додатке)",
"PluginSDKDescription": "Помоћу Plugin SDK-а (SDK за додатке) можете проширити функционалност вашег DocSpace-а, повезати треће стране услуге или унапредити постојеће корисничко искуство. Овде можете пронаћи узорке додатака са доступним изворним кодом на GitHub-у.",
"PluginSDKDescription": "Помоћу Plugin SDK-а (SDK за додатке) можете проширити функционалност вашег {{productName}}-а, повезати треће стране услуге или унапредити постојеће корисничко искуство. Овде можете пронаћи узорке додатака са доступним изворним кодом на GitHub-у.",
"PluginSDKInstruction": "Кликните на дугме за детаљне инструкције како да креирате сопствене додатке.",
"UploadDescription": "Можете додати додатке да бисте проширили функционалност DocSpace-а са додатним могућностима. Кликните на \"Постави додатак\" и изаберите датотеку додатка у ZIP архиви."
"UploadDescription": "Можете додати додатке да бисте проширили функционалност {{productName}}-а са додатним могућностима. Кликните на \"Постави додатак\" и изаберите датотеку додатка у ZIP архиви."
}

View File

@ -46,7 +46,7 @@
"URL": "URL",
"ViewRawPayload": "Погледај сирови payload",
"WebhookCreated": "Webhook креиран",
"WebhookCreationHint": "Овај webhook ће бити додељен свим догађајима у DocSpace-у",
"WebhookCreationHint": "Овај webhook ће бити додељен свим догађајима у {{productName}}-у",
"WebhookDetails": "Webhook детаљи",
"WebhookEditedSuccessfully": "Webhook конфигурација успешно уређена",
"WebhookHistory": "Webhook историја",
@ -55,5 +55,5 @@
"WebhookRemoved": "Webhook уклоњен",
"Webhooks": "Webhooks",
"WebhooksGuide": "Webhooks водич",
"WebhooksInfo": "Користите webhooks да бисте извршили прилагођене акције на страни било које апликације или wеб странице коју користите на основу различитих догађаја у ONLYOFFICE DocSpace-у. Овде можете креирати и управљати свим својим webhook-овима, конфигурисати их и прегледати историју сваког webhook-а како бисте проверили њихову изведбу."
"WebhooksInfo": "Користите webhooks да бисте извршили прилагођене акције на страни било које апликације или wеб странице коју користите на основу различитих догађаја у {{organizationName}} {{productName}}-у. Овде можете креирати и управљати свим својим webhook-овима, конфигурисати их и прегледати историју сваког webhook-а како бисте проверили њихову изведбу."
}

View File

@ -1,5 +1,5 @@
{
"Desc": "Молимо поставите DocSpace податке за регистрацију.",
"Desc": "Молимо поставите {{productName}} податке за регистрацију.",
"ErrorEmail": "Неважећа емаил адреса",
"ErrorInitWizard": "Сервис је тренутно недоступан, молимо покушајте поново касније.",
"ErrorInitWizardButton": "Покушајте поново",
@ -11,5 +11,5 @@
"LicenseLink": "Уговори лиценце",
"PlaceholderLicense": "Ваша датотека лиценце",
"Timezone": "Временска зона",
"WelcomeTitle": "Добродошли на ваш DocSpace!"
"WelcomeTitle": "Добродошли на ваш {{productName}}!"
}

View File

@ -7,14 +7,11 @@
"Icon": "Ikonica",
"MakeRoomPrivateDescription": "Sve datoteke u ovoj sobi će biti šifrovane.",
"MakeRoomPrivateLimitationsWarningDescription": "Pomoću ove funkcije možete pozvati samo postojeće {{productName}} korisnike. Nakon kreiranja sobe, nećete moći da promenite listu korisnika.",
"PeopleSelectorInfo": "Samo admin sobe ili {{productName}} admin mogu da postanu vlasnici sobe",
"MakeRoomPrivateTitle": "Napravi Sobu privatnom",
"PeopleSelectorInfo": "Samo admin sobe ili {{productName}} admin mogu da postanu vlasnici sobe",
"PublicRoomBarDescription": "Ova soba je dostupna svima sa linkom. Spoljni korisnici će imati Samo za pregled dozvolu za sve datoteke.",
"PublicRoomDescription": "Pozovite korisnike preko spoljnih linkova da pregledaju dokumente bez registracije. Takođe možete da ugradite ovu sobu u bilo koji veb interfejs.",
"PublicRoomSystemFoldersDescription": "Sistemski folderi čuvaju kopije obrazaca u različitim fazama završetka. Obrasci koji se popunjavaju se čuvaju u folderu U toku, a popunjeni obrasci se čuvaju u Završen folderu.",
"PublicRoomSystemFoldersTitle": "Sistemski folderi",
"ReviewRoomDescription": "Zatraži pregled ili komentare na dokumenta",
"ReviewRoomTitle": "Soba za Pregled",
"RoomEditing": "Uređivanje soba",
"RootFolderLabel": "Osnovni direktorijum",
"StorageDescription": "Kvota skladišta postavljena po sobi. Možete promeniti ovu vrednost ili isključiti ograničenje skladišta.",
@ -22,8 +19,6 @@
"ThirdPartyStorageComboBoxPlaceholder": "Odaberi skladište",
"ThirdPartyStorageDescription": "Koristite usluge trećih strana kao skladište podataka za ovu prostoriju. Nova fascikla za čuvanje podataka ove sobe biće kreirana u povezanom skladištu.",
"ThirdPartyStorageNoStorageAlert": "Pre toga, potrebno je da povežete odgovarajuću uslugu u odeljku „Integracija“. U suprotnom, veza neće biti moguća.",
"ThirdPartyStorageRoomAdminNoStorageAlert": "Da biste povezali skladište treće strane, potrebno je da dodate odgovarajuću uslugu u odeljku Integracija u podešavanjima {{productName}}-a. Kontaktirajte vlasnika ili administratora {{productName}}-a da biste omogućili integraciju.",
"ThirdPartyStoragePermanentSettingDescription": "Datoteke se čuvaju u skladištu treće strane {{thirdpartyTitle}} u \"{{thirdpartyFolderName}}\" folderu.\n<strong>{{thirdpartyPath}}</strong>",
"ViewOnlyRoomDescription": "Delite bilo koja spremna dokumenta, izveštaje, dokumentaciju, i druge datoteke za pregled.",
"ViewOnlyRoomTitle": "Samo-za-pregled soba"
"ThirdPartyStorageRoomAdminNoStorageAlert": "Da biste povezali skladište treće strane, potrebno je da dodate odgovarajuću uslugu u odeljku Integracija u podešavanjima {{productName}}-a. Kontaktirajte vlasnika ili administratora {{productName}}-a da biste omogućili integraciju."
}

View File

@ -23,7 +23,6 @@
"ChangeTheRoomOwner": "Promeni Vlasnika sobe",
"ChooseExpirationDate": "Ograniči period dostupnosti za ovaj link postavljanjem roka upotrebe.",
"Clean": "Očistiti",
"CollaborationRooms": "Saradnja",
"ContainsSpecCharacter": "Naslov ne sme da sadrži bilo koji od sledećih znakova: *+:\"<>?|/",
"Convert": "Konvertuj",
"CopyItem": "<strong>{{title}}</strong> kopirano",
@ -110,7 +109,6 @@
"MoveToPublicRoom": "Ova soba i sav njen sadržaj su dostupni svima sa linkom. Da li želite da nastavite?",
"MoveToPublicRoomTitle": "Pomeri u Javnu sobu",
"New": "Novo",
"NewRoom": "Nova soba",
"NoAccessRoomDescription": "Bićete preusmereni u Moje sobe automatski za 5 sekundi.",
"NoAccessRoomTitle": "Izvinjavamo se, nemate pristup ovoj sobi.",
"NoExternalLinks": "Nema spoljnih linkova",
@ -130,7 +128,6 @@
"PrivateRoomDescriptionUnbreakable": "Nesalomiv AES-256 algoritam.",
"PrivateRoomHeader": "Dobro došli u {{organizationName}} privatnu sobu gde je svaki simbol koji kucate šifrovan",
"PrivateRoomSupport": "Rad u Privatnoj sobi je dostupan putem {{organizationName}} desktop aplikacije. <3>Instrukcije</3>",
"PublicRoom": "Javna soba",
"RecentlyAccessible": "Nedavno pristupno putem linka",
"RecentViaLinkEmptyContainerDescription": "Ovde ćete pronaći listu nedavno otvorenih datoteka deljenih sa vama putem spoljnog linka.",
"RemovedFromFavorites": "Uklonjeno iz omiljenog",

View File

@ -1,8 +1,8 @@
{
"DailyFeed": "Dnevni sadržaj {{productName}}-a",
"DailyFeedDescription": "Čitajte vesti i događaje iz vašeg {{productName}}-a u dnevnom pregledu.",
"ActionsWithFilesDescription": "Značke će vas obaveštavati o radnjama poput otpremanja, kreiranja i promena u datotekama.",
"Badges": "Značke",
"DailyFeed": "Dnevni sadržaj {{productName}}-a",
"DailyFeedDescription": "Čitajte vesti i događaje iz vašeg {{productName}}-a u dnevnom pregledu.",
"ManageNotifications": "Upravljaj",
"Notifications": "Obaveštenja",
"RoomsActions": "Radnje sa datotekama u sobi",

View File

@ -12,9 +12,9 @@
"ActivateTariffEnterpriseTrialExpiration": "Vaš probni period ističe {{date}}.",
"ActivateToProBannerHeaderTrial": "Kupite punu Enterprise verziju da dobijete:",
"ActivateUploadDescr": "Da biste aktivirali vašu licencu, otpremite je ispod i kliknite na Aktiviraj.",
"UpgradeToProBannerInformationAboutShort": "Saznajte više o Enterprise izdanju na <1>zvaničnom veb-sajtu</1>",
"FreeDaysLeft": "{{count}} besplatnih dana ostalo",
"UpgradeToProBannerHeader": "Dobijte besplatni pristup naprednih funkcija na 30 dana",
"UpgradeToProBannerInformationAboutShort": "Saznajte više o Enterprise izdanju na <1>zvaničnom veb-sajtu</1>",
"UpgradeToProBannerInformationDemo": "Zatraži demonstraciju <1>ovde</1>",
"UpgradeToProBannerInformationPurchase": "Postavite pitanja o kupovini na <1>{{email}}</1>",
"UpgradeToProBannerInformationSupport": "Dobijte tehničku pomoć <1>{{helpUrl}}</1>",

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Autentifikacija putem NTLM-a",
"EnableSSL": "Omogući SSL",
"EnterDomain": "Unesi domen",
@ -11,6 +11,5 @@
"Port": "Port",
"SenderDisplayName": "Display ime posiljaoca",
"SenderEmailAddress": "Email adresa pošaljioca",
"SendTestMail": "Pošaljite probnu poštu",
"SuccessfullyCompletedOperation": "Operacija je uspešno završena."
"SendTestMail": "Pošaljite probnu poštu"
}

View File

@ -17,9 +17,9 @@
"AdditionalResourcesSubtitle": "Konfigurišite prikaz linkova ka korisnim resursima za vaše korisnike.",
"AddTrustedDomain": "Dodajte pouzdani domen",
"Admins": "Administratori",
"AdminsMessageSettingDescription": "Omogući ovu opciju da prikažeš {{productName}} administrator kontakt obrazac u stranici za Prijavu.",
"AdminsMessage": "Podešavanja poruka administratora",
"AdminsMessageMobileDescription": "Podešavanja poruka administratora je način da kontaktirate administratora portala.",
"AdminsMessageSettingDescription": "Omogući ovu opciju da prikažeš {{productName}} administrator kontakt obrazac u stranici za Prijavu.",
"AllDomains": "Bilo koji domeni",
"AmazonBucketTip": "Unesite jedinstveno ime Amazon S3 korpe gde želite da čuvate svoje rezervne kopije.",
"AmazonCSE": "Šifrovanje na strani klijenta",
@ -106,9 +106,9 @@
"DNSSettingsNavDescription": "DNS podešavanja su način da postavite alternativni URL za vaš portal.",
"DocumentService": "Dokument servis",
"DocumentServiceLocationHeaderHelp": "Document servis je serverska usluga koja omogućava obavljanje uređivanja dokumenata i omogućava konvertovanje datoteka dokumenata u odgovarajući OfficeOpen XML format. Lokacija dokument servisa određuje adresu servera na kojem su instalirane usluge za dokumente.",
"DocumentServiceLocationUrlApi": "Adresa servisa za dokument uređivanje",
"DocumentServiceLocationUrlInternal": "Adresa Dokument Servisa za zahteve iz {{productName}}-a",
"DocumentServiceLocationUrlPortal": "{{productName}} adresa za zahteve iz Dokument servisa",
"DocumentServiceLocationUrlApi": "Adresa servisa za dokument uređivanje",
"DownloadCopy": "Preuzmi kopiju",
"DownloadLog": "Preuzmi log",
"DownloadReportBtnText": "Preuzmi izveštaj",
@ -181,11 +181,11 @@
"PersonalFiles": "Lične datoteke",
"PersonalFilesDescription": "Korisničke datoteke i dokumenti će biti uvezeni u Dokumenti > Dokumenti.",
"PortalAccess": "Pristup {{productName}}-u",
"PortalCreatedDate": "Portal kreiran datum: {{date}}",
"PortalDeactivation": "Deaktiviraj {{productName}}",
"PortalDeactivationDescription": "Koristite ovu opciju da deaktivirate vaš prostor privremeno.",
"PortalDeletion": "Brisanje {{productName}}-a",
"PortalCreatedDate": "Portal kreiran datum: {{date}}",
"PortalDeactivationHelper": "Ako želite deaktivirati ovaj {{productName}}, vaš prostor i sve informacije povezane s njim će biti blokirani tako da niko nema pristup za određeni period. Da biste to uradili, kliknite na dugme Deaktiviraj. Link za potvrdu operacije će biti poslat na email adresu vlasnika prostora.\nU slučaju da se želite vratiti na prostor i nastaviti ga koristiti, moraćete koristiti drugi link obezbeđen u konfirmacionom email-u. Zato, molimo da čuvate ovaj email na sigurnom mestu.",
"PortalDeletion": "Brisanje {{productName}}-a",
"PortalDeletionDescription": "Koristi ovu opciju da obrišeš trajno svoj prostor.",
"PortalDeletionEmailSended": "Link za potvrdu operacije je poslat na {{ownerEmail}} (email adresa vlasnika prostora).",
"PortalDeletionHelper": "Ako ne planirate koristiti prostor i želite trajno da ga izbrišete, pošaljite zahtev pritiskom na dugme \"Izbriši\". Imajte na umu da nećete moći ponovo aktivirati svoj prostor niti povratiti bilo koje informacije koje su bile povezane s njim.",
@ -225,8 +225,8 @@
"SelectUsersDescriptionWorkspace": "Proverite korisnike sa liste koje želite da uvezete u {{organizationName}} {{productName}}. Korisnici koji već postoje u {{organizationName}} {{productName}}-u su označeni zelenom bojom i podrazumevano nisu označeni.",
"SelectUsersWithEmail": "Izaberi korisnike sa email-om",
"SelectUserTypes": "Izaberi tipove korisnika",
"SendNotificationAboutRestoring": "Pošalji notifikaciju u vezi obnavljanja prostora korisnicima",
"SelectUserTypesDescription": "Izaberite uloge u {{productName}}-u za uvezene korisnike: <1>{{productName}} admin</1>, <1>Admin sobe</1> ili <1>Napredni korisnik</1>. Podrazumevano, uloga Napredni korisnik je izabrana za svakog korisnika. Možete upravljati ulogama nakon uvoza.",
"SendNotificationAboutRestoring": "Pošalji notifikaciju u vezi obnavljanja prostora korisnicima",
"ServerSideEncryptionMethod": "Metod šifrovanja na serverskoj strani",
"ServiceUrl": "URL servisa",
"SessionLifetime": "Trajanje sesije",

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "NTLM aracılığıyla kimlik doğrulama",
"EnableSSL": "SSL'yi etkinleştir",
"EnterDomain": "Alan adını girin",
@ -12,4 +12,4 @@
"SenderDisplayName": "Gönderici Ekran İsmi",
"SenderEmailAddress": "Gönderici Eposta Adresi",
"SendTestMail": "Test Postası Gönder"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Аутентифікація через NTLM",
"EnableSSL": "Увімкнути SSL",
"EnterDomain": "Введіть домен",
@ -12,4 +12,4 @@
"SenderDisplayName": "Коротке ім'я відправника",
"SenderEmailAddress": "Адреса електронної пошти відправника",
"SendTestMail": "Надіслати тестове поштове повідомлення"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "Xác thực qua NTLM",
"EnableSSL": "Bật SSL",
"EnterDomain": "Nhập tên miền",
@ -12,4 +12,4 @@
"SenderDisplayName": "Tên hiển thị của người gửi",
"SenderEmailAddress": "Địa chỉ email của người gửi",
"SendTestMail": "Gửi thư thử nghiệm"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AuthViaNTLM": "通过 NTLM 授权",
"EnableSSL": "启用SSL",
"EnterDomain": "输入域",
@ -12,4 +12,4 @@
"SenderDisplayName": "发件人显示名称",
"SenderEmailAddress": "发件人电邮地址",
"SendTestMail": "发送测试邮件"
}
}

View File

@ -131,8 +131,8 @@ export default function withBadges(WrappedComponent) {
const file = {
...options,
ExtraLocationTitle: draftLocation.folderTitle,
ExtraLocation: draftLocation.folderId,
parentId: draftLocation.folderId,
parentTitle: draftLocation.folderTitle,
id: draftLocation.fileId,
title: draftLocation.fileTitle,
};

View File

@ -109,28 +109,20 @@ const ArticleBodyContent = (props) => {
path = getCategoryUrl(CategoryType.Personal);
if (activeItemId === myFolderId && folderId === selectedFolderId)
return;
break;
case archiveFolderId:
const archiveFilter = RoomsFilter.getDefault(userId);
archiveFilter.searchArea = RoomSearchArea.Archive;
params = archiveFilter.toUrlParams(userId, true);
path = getCategoryUrl(CategoryType.Archive);
if (activeItemId === archiveFolderId && folderId === selectedFolderId)
return;
break;
case recycleBinFolderId:
const recycleBinFilter = FilesFilter.getDefault();
recycleBinFilter.folder = folderId;
params = recycleBinFilter.toUrlParams();
path = getCategoryUrl(CategoryType.Trash);
if (
activeItemId === recycleBinFolderId &&
folderId === selectedFolderId
)
return;
break;
case "accounts":
const accountsFilter = AccountsFilter.getDefault();
@ -138,7 +130,6 @@ const ArticleBodyContent = (props) => {
path = getCategoryUrl(CategoryType.Accounts);
withTimer = false;
if (activeItemId === "accounts" && isAccounts) return;
break;
case "settings":
@ -155,12 +146,11 @@ const ArticleBodyContent = (props) => {
roomsFilter.searchArea = RoomSearchArea.Active;
params = roomsFilter.toUrlParams(userId, true);
path = getCategoryUrl(CategoryType.Shared);
if (activeItemId === roomsFolderId && folderId === selectedFolderId)
return;
break;
}
path += `?${params}`;
path += `?${params}&date=${new Date().getTime()}`;
if (openingNewTab(path, e)) return;

View File

@ -33,7 +33,7 @@ import FormFillRectSvgUrl from "PUBLIC_DIR/images/form.fill.rect.svg?url";
import AccessEditFormReactSvgUrl from "PUBLIC_DIR/images/access.edit.form.react.svg?url";
import FileActionsConvertEditDocReactSvgUrl from "PUBLIC_DIR/images/file.actions.convert.edit.doc.react.svg?url";
import LinkReactSvgUrl from "PUBLIC_DIR/images/link.react.svg?url";
import TabletLinkReactSvgUrl from "PUBLIC_DIR/images/tablet-link.reat.svg?url";
import TabletLinkReactSvgUrl from "PUBLIC_DIR/images/tablet-link.react.svg?url";
import Refresh12ReactSvgUrl from "PUBLIC_DIR/images/icons/12/refresh.react.svg?url";
import Mute12ReactSvgUrl from "PUBLIC_DIR/images/icons/12/mute.react.svg?url";
import Mute16ReactSvgUrl from "PUBLIC_DIR/images/icons/16/mute.react.svg?url";

View File

@ -122,7 +122,7 @@ const Panels = (props) => {
editLinkPanelIsVisible,
unsavedChangesDialogVisible,
deleteLinkDialogVisible,
embeddingPanelIsVisible,
embeddingPanelData,
moveToPublicRoomVisible,
backupToPublicRoomVisible,
settingsPluginDialogVisible,
@ -335,7 +335,7 @@ const Panels = (props) => {
<UnsavedChangesDialog key="unsaved-dialog" />
),
deleteLinkDialogVisible && <DeleteLinkDialog key="delete-link-dialog" />,
embeddingPanelIsVisible && <EmbeddingPanel key="embedding-panel" />,
embeddingPanelData.visible && <EmbeddingPanel key="embedding-panel" />,
moveToPublicRoomVisible && (
<MoveToPublicRoom key="move-to-public-room-panel" />
),
@ -410,7 +410,7 @@ export default inject(
editGroupMembersDialogVisible,
editLinkPanelIsVisible,
deleteLinkDialogVisible,
embeddingPanelIsVisible,
embeddingPanelData,
moveToPublicRoomVisible,
backupToPublicRoomVisible,
leaveRoomDialogVisible,
@ -476,7 +476,7 @@ export default inject(
editLinkPanelIsVisible,
unsavedChangesDialogVisible,
deleteLinkDialogVisible,
embeddingPanelIsVisible,
embeddingPanelData,
moveToPublicRoomVisible,
backupToPublicRoomVisible,
settingsPluginDialogVisible,

View File

@ -161,7 +161,6 @@ const EditRoomEvent = ({
isTitleChanged || isQuotaChanged
? await editRoom(item.id, editRoomParams)
: item;
room.isLogoLoading = true;
const createTagActions = [];
@ -188,7 +187,7 @@ const EditRoomEvent = ({
}
if (tags.length) {
actions.push(addTagsToRoom(room.id, tags));
actions.push(addTagsToRoom(room.id, newTags));
room.tags = tags;
}
if (removedTags.length)
@ -200,7 +199,7 @@ const EditRoomEvent = ({
room = await removeLogoFromRoom(room.id);
}
if (roomParams.icon.uploadedFile) {
if (roomParams.iconWasUpdated && roomParams.icon.uploadedFile) {
updateRoom(item, {
...room,
logo: { big: item.logo.original },

View File

@ -23,9 +23,10 @@
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import { useMemo } from "react";
import { inject } from "mobx-react";
import { withTranslation } from "react-i18next";
import { decode } from "he";
import { Avatar } from "@docspace/shared/components/avatar";
import { Text } from "@docspace/shared/components/text";
@ -39,7 +40,10 @@ const ChangeRoomOwner = ({
onOwnerChange,
currentColorScheme,
}) => {
const userName = roomOwner.displayName ?? roomOwner.label;
const userName = useMemo(
() => decode(roomOwner.displayName ?? roomOwner.label),
[roomOwner.displayName, roomOwner.label],
);
return (
<Styled.ChangeRoomOwner>

View File

@ -132,7 +132,7 @@ const SetRoomParams = ({
if (!icon.uploadedFile !== disableImageRescaling)
setDisableImageRescaling(!icon.uploadedFile);
setRoomParams({ ...roomParams, icon: icon });
setRoomParams({ ...roomParams, icon: icon, iconWasUpdated: true });
};
const onOwnerChange = () => {

View File

@ -37,16 +37,10 @@ const StyledTagList = styled.div`
width: 100%;
.set_room_params-tag_input-tag {
background: ${(props) =>
props.theme.createEditRoomDialog.tagInput.tagBackground};
padding: 6px 8px;
border-radius: 3px;
margin: 0;
:hover {
background: ${(props) =>
props.theme.createEditRoomDialog.tagInput.tagHoverBackground};
}
.tag-icon {
${({ theme }) =>
theme.interfaceDirection === "rtl"

View File

@ -146,25 +146,22 @@ const DeleteLinkDialog = withTranslation(["Common", "Files"])(
DeleteLinkDialogComponent,
);
export default inject(
({ dialogsStore, publicRoomStore, filesStore, infoPanelStore }) => {
const { infoPanelSelection } = infoPanelStore;
const {
deleteLinkDialogVisible: visible,
setDeleteLinkDialogVisible: setIsVisible,
linkParams,
} = dialogsStore;
const { editExternalLink, deleteExternalLink } = publicRoomStore;
export default inject(({ dialogsStore, publicRoomStore, filesStore }) => {
const {
deleteLinkDialogVisible: visible,
setDeleteLinkDialogVisible: setIsVisible,
linkParams,
} = dialogsStore;
const { editExternalLink, deleteExternalLink } = publicRoomStore;
return {
visible,
setIsVisible,
roomId: infoPanelSelection.id,
link: linkParams.link,
editExternalLink,
deleteExternalLink,
isPublicRoomType: infoPanelSelection.roomType === RoomsType.PublicRoom,
setRoomShared: filesStore.setRoomShared,
};
},
)(observer(DeleteLinkDialog));
return {
visible,
setIsVisible,
roomId: linkParams.roomId,
link: linkParams.link,
editExternalLink,
deleteExternalLink,
isPublicRoomType: linkParams.isPublic,
setRoomShared: filesStore.setRoomShared,
};
})(observer(DeleteLinkDialog));

View File

@ -78,7 +78,7 @@ const BodyComponent = (props) => {
</Text>
<Text className="text-warning">{t("PleaseNote")}</Text>
<Text className="text-delete-description">
{t("DeletePersonalData")}
{t("DeletePersonalData", { productName: PRODUCT_NAME })}
</Text>
<Text className="text-delete-description">
{t("CannotReassignFiles")}

View File

@ -32,13 +32,17 @@ import { Backdrop } from "@docspace/shared/components/backdrop";
import PeopleSelector from "@docspace/shared/selectors/People";
import { withTranslation } from "react-i18next";
import Filter from "@docspace/shared/api/people/filter";
import { EmployeeType, DeviceType } from "@docspace/shared/enums";
import { EmployeeType } from "@docspace/shared/enums";
import { Portal } from "@docspace/shared/components/portal";
import { PRODUCT_NAME } from "@docspace/shared/constants";
const StyledChangeRoomOwner = styled.div`
display: contents;
.change-owner_people-selector {
overflow: visible;
}
${({ showBackButton }) =>
!showBackButton &&
css`
@ -93,12 +97,7 @@ const ChangeRoomOwner = (props) => {
if (e.keyCode === 13 || e.which === 13) onChangeRoomOwner();
};
const onChangeRoomOwner = async (
user,
selectedAccess,
newFooterInputValue,
isChecked,
) => {
const onChangeRoomOwner = async (user, isChecked) => {
if (showBackButton) {
setRoomParams && setRoomParams(user[0]);
} else {
@ -164,16 +163,13 @@ const ChangeRoomOwner = (props) => {
emptyScreenDescription={t("CreateEditRoomDialog:PeopleSelectorInfo", {
productName: PRODUCT_NAME,
})}
className="change-owner_people-selector"
/>
</Aside>
</StyledChangeRoomOwner>
);
return currentDeviceType === DeviceType.mobile ? (
<Portal visible={visible} element={asideComponent} />
) : (
asideComponent
);
return <Portal visible={visible} element={asideComponent} />;
};
export default inject(

View File

@ -40,7 +40,6 @@ import LinkBlock from "./LinkBlock";
import ToggleBlock from "./ToggleBlock";
import PasswordAccessBlock from "./PasswordAccessBlock";
import LimitTimeBlock from "./LimitTimeBlock";
import { RoomsType } from "@docspace/shared/enums";
import { DeviceType } from "@docspace/shared/enums";
import moment from "moment";
@ -65,6 +64,7 @@ const EditLinkPanel = (props) => {
isPublic,
isFormRoom,
currentDeviceType,
setLinkParams,
} = props;
const [isLoading, setIsLoading] = useState(false);
@ -130,6 +130,7 @@ const EditLinkPanel = (props) => {
editExternalLink(roomId, newLink)
.then((link) => {
setExternalLink(link);
setLinkParams({ link, roomId, isPublic, isFormRoom });
if (isEdit) {
copy(linkValue);
@ -301,31 +302,23 @@ const EditLinkPanel = (props) => {
};
export default inject(
({
authStore,
settingsStore,
dialogsStore,
publicRoomStore,
infoPanelStore,
}) => {
const { infoPanelSelection } = infoPanelStore;
({ authStore, settingsStore, dialogsStore, publicRoomStore }) => {
const {
editLinkPanelIsVisible,
setEditLinkPanelIsVisible,
unsavedChangesDialogVisible,
setUnsavedChangesDialog,
linkParams,
setLinkParams,
} = dialogsStore;
const { externalLinks, editExternalLink, setExternalLink } =
publicRoomStore;
const { isEdit } = linkParams;
const { isEdit, roomId, isPublic, isFormRoom } = linkParams;
const linkId = linkParams?.link?.sharedTo?.id;
const link = externalLinks.find((l) => l?.sharedTo?.id === linkId);
const shareLink = link?.sharedTo?.shareLink;
const isPublic = infoPanelSelection?.roomType === RoomsType.PublicRoom;
const isFormRoom = infoPanelSelection?.roomType === RoomsType.FormRoom;
return {
visible: editLinkPanelIsVisible,
@ -333,7 +326,7 @@ export default inject(
isEdit,
linkId: link?.sharedTo?.id,
editExternalLink,
roomId: infoPanelSelection.id,
roomId,
setExternalLink,
isLocked: !!link?.sharedTo?.password,
password: link?.sharedTo?.password ?? "",
@ -348,6 +341,7 @@ export default inject(
isPublic,
isFormRoom,
currentDeviceType: settingsStore.currentDeviceType,
setLinkParams,
};
},
)(

View File

@ -1,181 +0,0 @@
// (c) Copyright Ascensio System SIA 2009-2024
//
// This program is a free software product.
// You can redistribute it and/or modify it under the terms
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
// any third-party rights.
//
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
//
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
//
// The interactive user interfaces in modified source and object code versions of the Program must
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
//
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
// trademark law for use of our trademarks.
//
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React, { useState } from "react";
import copy from "copy-to-clipboard";
import { Text } from "@docspace/shared/components/text";
import { Link } from "@docspace/shared/components/link";
import { toastr } from "@docspace/shared/components/toast";
import { TextInput } from "@docspace/shared/components/text-input";
import { Textarea } from "@docspace/shared/components/textarea";
import { IconButton } from "@docspace/shared/components/icon-button";
import { Button } from "@docspace/shared/components/button";
import CopyReactSvgUrl from "PUBLIC_DIR/images/copy.react.svg?url";
import { StyledBody } from "./StyledEmbeddingPanel";
import { objectToGetParams } from "@docspace/shared/utils/common";
const EmbeddingBody = ({ t, link, requestToken, roomId }) => {
const [size, setSize] = useState("auto");
const [widthValue, setWidthValue] = useState("100%");
const [heightValue, setHeightValue] = useState("100%");
const config = {
width: `${widthValue}`,
height: `${heightValue}`,
frameId: "ds-frame-embedding",
mode: "manager",
init: true,
showHeader: true,
showTitle: true,
showMenu: false,
showFilter: true,
rootPath: "/rooms/share",
id: roomId,
requestToken,
withSubfolders: false,
};
const scriptUrl = `${window.location.origin}/static/scripts/api.js`;
const params = objectToGetParams(config);
const codeBlock = `<div id="${config.frameId}">Fallback text</div>\n<script src="${scriptUrl}${params}"></script>`;
const onChangeWidth = (e) => setWidthValue(e.target.value);
const onChangeHeight = (e) => setHeightValue(e.target.value);
const onCopyLink = () => {
copy(codeBlock);
toastr.success(t("EmbeddingPanel:CodeCopySuccess"));
};
const getSizes = (size) => {
switch (size) {
case "auto":
return ["100%", "100%"];
case "mobile":
return ["400px", "600px"];
case "tablet":
return ["600px", "800px"];
default:
return ["100%", "100%"];
}
};
const onSelectSize = (e) => {
const size = e.currentTarget.dataset.size;
const [width, height] = getSizes(size);
setSize(size);
setWidthValue(width);
setHeightValue(height);
};
const onPreviewClick = () => {
console.log("onPreviewClick???");
};
const linkProps = {
isHovered: true,
type: "action",
onClick: onSelectSize,
};
return (
<StyledBody>
<div className="embedding-panel_body">
<Text className="embedding-panel_text">{t("Common:Size")}:</Text>
<div className="embedding-panel_links-container">
<Link
data-size="auto"
className={`embedding-panel_link ${
size === "auto" && "embedding-panel_link_active"
}`}
{...linkProps}
>
{t("Auto")}
</Link>
<Link
data-size="tablet"
className={`embedding-panel_link ${
size === "tablet" && "embedding-panel_link_active"
}`}
{...linkProps}
>
600 x 800 px
</Link>
<Link
data-size="mobile"
className={`embedding-panel_link ${
size === "mobile" && "embedding-panel_link_active"
}`}
{...linkProps}
>
400 x 600 px
</Link>
</div>
<div className="embedding-panel_inputs-container">
<div>
<Text className="embedding-panel_text">{t("Width")}:</Text>
<TextInput
className="embedding-panel_input"
value={widthValue}
onChange={onChangeWidth}
/>
</div>
<div>
<Text className="embedding-panel_text">{t("Height")}:</Text>
<TextInput
className="embedding-panel_input"
value={heightValue}
onChange={onChangeHeight}
/>
</div>
{/* <Button
className="embedding-panel_preview-button"
primary
size="small"
label={t("Common:Preview")}
onClick={onPreviewClick}
/> */}
</div>
<div className="embedding-panel_code-container">
<Text className="embedding-panel_text">
{t("EmbeddingPanel:EmbedCode")}:
</Text>
<IconButton
className="embedding-panel_copy-icon"
size="16"
iconName={CopyReactSvgUrl}
onClick={onCopyLink}
/>
<Textarea isReadOnly value={codeBlock} heightTextArea="150px" />
</div>
</div>
</StyledBody>
);
};
export default EmbeddingBody;

View File

@ -25,89 +25,94 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import styled, { css } from "styled-components";
import { Scrollbar } from "@docspace/shared/components/scrollbar";
import { Base } from "@docspace/shared/themes";
import { ModalDialog } from "@docspace/shared/components/modal-dialog";
const StyledEmbeddingPanel = styled.div`
.embedding-panel {
.scroll-body {
${(props) =>
props.theme.interfaceDirection === "rtl"
? css`
padding-left: 0 !important;
`
: css`
padding-right: 0 !important;
`}
}
const StyledModalDialog = styled(ModalDialog)`
.modal-header {
margin: 0;
}
.embedding_header {
padding: 0 16px;
border-bottom: ${(props) => props.theme.filesPanels.sharing.borderBottom};
.hotkeys_heading {
font-weight: 700;
font-size: 18px;
}
}
`;
StyledEmbeddingPanel.defaultProps = { theme: Base };
const StyledScrollbar = styled(Scrollbar)`
position: relative;
padding: 16px 0;
height: calc(100vh - 87px) !important;
`;
const StyledBody = styled.div`
.embedding-panel_header-link {
margin: 10px 0 2px;
}
.embedding-panel_combo-box {
margin-bottom: 6px;
}
.embedding-panel_banner {
display: flex;
padding: 12px 16px;
gap: 16px;
margin: 0px -16px 12px;
background-color: ${(props) => props.theme.infoBlock.background};
.embedding-panel_banner-close-icon {
min-width: 12px;
min-height: 12px;
margin-left: auto;
}
}
.embedding-panel_body {
padding: 20px 16px 0 16px;
}
.embedding-panel_bar {
.embedding-panel_bar-header {
display: flex;
align-items: center;
gap: 4px;
}
.embedding-panel_links-container {
display: flex;
.embedding-panel_link {
box-sizing: border-box;
${(props) =>
props.theme.interfaceDirection === "rtl"
? css`
margin-left: 8px;
`
: css`
margin-right: 8px;
`}
border: 1px solid #eceef1;
border-radius: 16px;
line-height: 20px;
padding: 3px 15px;
text-decoration: none;
.header-icon {
svg path {
fill: ${({ theme }) => theme.embeddingPanel.iconColor};
}
}
}
.embedding-panel_link_active {
color: #ffffff;
background: #265a8f;
.embedding-panel_header-text {
margin: 16px 0;
}
}
.embedding-panel_inputs-container {
display: flex;
margin-top: 16px;
.embedding-panel_checkbox-container {
display: flex;
flex-direction: column;
gap: 10px;
.embedding-panel_input {
${(props) =>
props.theme.interfaceDirection === "rtl"
? css`
margin-left: 8px;
`
: css`
margin-right: 8px;
`}
width: 94px;
.embedding-panel_checkbox-element {
display: inline-flex;
align-items: center;
gap: 4px;
}
}
.embedding-panel_inputs-container {
display: flex;
margin-bottom: 20px;
gap: 8px;
.embedding-panel_block {
width: 100%;
.embedding-panel_size-block {
display: flex;
align-items: center;
height: 32px;
}
}
.embedding-panel_input {
${(props) =>
props.theme.interfaceDirection === "rtl"
? css`
margin-left: 8px;
`
: css`
margin-right: 8px;
`}
width: 94px;
}
}
}
@ -139,4 +144,4 @@ const StyledBody = styled.div`
}
`;
export { StyledEmbeddingPanel, StyledScrollbar, StyledBody };
export { StyledModalDialog, StyledBody };

View File

@ -1,130 +0,0 @@
// (c) Copyright Ascensio System SIA 2009-2024
//
// This program is a free software product.
// You can redistribute it and/or modify it under the terms
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
// any third-party rights.
//
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
//
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
//
// The interactive user interfaces in modified source and object code versions of the Program must
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
//
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
// trademark law for use of our trademarks.
//
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React, { useRef, useEffect } from "react";
import { inject, observer } from "mobx-react";
import { Backdrop } from "@docspace/shared/components/backdrop";
import { Heading } from "@docspace/shared/components/heading";
import { Aside } from "@docspace/shared/components/aside";
import { withTranslation } from "react-i18next";
import { StyledEmbeddingPanel, StyledScrollbar } from "./StyledEmbeddingPanel";
import EmbeddingBody from "./EmbeddingBody";
import { DeviceType } from "@docspace/shared/enums";
import { Portal } from "@docspace/shared/components/portal";
const EmbeddingPanelComponent = (props) => {
const {
t,
link,
requestToken,
roomId,
visible,
setEmbeddingPanelIsVisible,
currentDeviceType,
} = props;
const scrollRef = useRef(null);
const onClose = () => {
setEmbeddingPanelIsVisible(false);
};
const onKeyPress = (e) =>
(e.key === "Esc" || e.key === "Escape") && onClose();
useEffect(() => {
scrollRef.current && scrollRef.current?.view?.focus();
document.addEventListener("keyup", onKeyPress);
return () => document.removeEventListener("keyup", onKeyPress);
});
const embeddingPanelComponent = (
<StyledEmbeddingPanel>
<Backdrop
onClick={onClose}
visible={visible}
isAside={true}
zIndex={310}
/>
<Aside
className="embedding-panel"
visible={visible}
onClose={onClose}
withoutBodyScroll={true}
>
<div className="embedding_header">
<Heading className="hotkeys_heading">
{t("Files:EmbeddingSettings")}
</Heading>
</div>
<StyledScrollbar ref={scrollRef}>
<EmbeddingBody
t={t}
link={link}
requestToken={requestToken}
roomId={roomId}
/>
</StyledScrollbar>
</Aside>
</StyledEmbeddingPanel>
);
const renderPortal = () => {
const rootElement = document.getElementById("root");
return (
<Portal
element={embeddingPanelComponent}
appendTo={rootElement}
visible={visible}
/>
);
};
return currentDeviceType === DeviceType.mobile
? renderPortal()
: embeddingPanelComponent;
};
export default inject(({ dialogsStore, settingsStore }) => {
const { embeddingPanelIsVisible, setEmbeddingPanelIsVisible, linkParams } =
dialogsStore;
const { currentDeviceType } = settingsStore;
return {
visible: embeddingPanelIsVisible,
setEmbeddingPanelIsVisible,
link: linkParams?.link?.sharedTo?.shareLink,
requestToken: linkParams?.link?.sharedTo?.requestToken,
roomId: linkParams?.roomId,
currentDeviceType,
};
})(
withTranslation(["Files", "EmbeddingPanel"])(
observer(EmbeddingPanelComponent),
),
);

View File

@ -0,0 +1,607 @@
// (c) Copyright Ascensio System SIA 2009-2024
//
// This program is a free software product.
// You can redistribute it and/or modify it under the terms
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
// any third-party rights.
//
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
//
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
//
// The interactive user interfaces in modified source and object code versions of the Program must
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
//
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
// trademark law for use of our trademarks.
//
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import { useState, useEffect, useCallback, useRef } from "react";
import { inject, observer } from "mobx-react";
import { withTranslation, Trans } from "react-i18next";
import copy from "copy-to-clipboard";
import isEqual from "lodash/isEqual";
import { objectToGetParams } from "@docspace/shared/utils/common";
import { combineUrl } from "@docspace/shared/utils/combineUrl";
import config from "PACKAGE_FILE";
import { Text } from "@docspace/shared/components/text";
import { toastr } from "@docspace/shared/components/toast";
import { Textarea } from "@docspace/shared/components/textarea";
import { IconButton } from "@docspace/shared/components/icon-button";
import PublicRoomBar from "@docspace/shared/components/public-room-bar";
import { Link, LinkType } from "@docspace/shared/components/link";
import { Button, ButtonSize } from "@docspace/shared/components/button";
import { ComboBox, TOption } from "@docspace/shared/components/combobox";
import { TData } from "@docspace/shared/components/toast/Toast.type";
import { TTranslation } from "@docspace/shared/types";
import { TColorScheme, TTheme } from "@docspace/shared/themes";
import { SettingsStore } from "@docspace/shared/store/SettingsStore";
import { UserStore } from "@docspace/shared/store/UserStore";
import {
ModalDialog,
ModalDialogType,
} from "@docspace/shared/components/modal-dialog";
import { SDK_SCRIPT_URL } from "@docspace/shared/constants";
import CopyReactSvgUrl from "PUBLIC_DIR/images/copy.react.svg?url";
import HeaderUrl from "PUBLIC_DIR/images/sdk-presets_header.react.svg?url";
import HeaderDarkUrl from "PUBLIC_DIR/images/sdk-presets_header_dark.png?url";
import SearchUrl from "PUBLIC_DIR/images/sdk-presets_search.react.svg?url";
import SearchDarkUrl from "PUBLIC_DIR/images/sdk-presets_search_dark.png?url";
import TabletLinkReactSvgUrl from "PUBLIC_DIR/images/tablet-link.react.svg?url";
import CrossReactSvg from "PUBLIC_DIR/images/cross.react.svg?url";
import { StyledModalDialog, StyledBody } from "./StyledEmbeddingPanel";
import { DisplayBlock } from "./sub-components/DisplayBlock";
import { CheckboxElement } from "./sub-components/CheckboxElement";
import PublicRoomStore from "../../../store/PublicRoomStore";
import DialogsStore from "../../../store/DialogsStore";
type LinkParamsLinkShareToType = {
denyDownload: boolean;
id: string;
internal: boolean;
isExpired: boolean;
linkType: number;
primary: boolean;
requestToken: string;
shareLink: string;
title: string;
password?: string;
};
type LinkParamsLinkType = {
access: number;
canEditAccess: boolean;
isLocked: boolean;
isOwner: boolean;
sharedTo?: LinkParamsLinkShareToType;
subjectType: number;
};
type LinkParamsType = {
roomId: number | string;
isEdit?: boolean;
link: LinkParamsLinkType;
};
type EmbeddingPanelProps = {
t: TTranslation;
theme: TTheme;
requestToken: string;
roomId: number;
visible: boolean;
setEmbeddingPanelData: (value: {
visible: boolean;
itemId?: string | number;
}) => void;
setEditLinkPanelIsVisible: (value: boolean) => void;
currentColorScheme: TColorScheme;
linkParams: LinkParamsType;
setLinkParams: (linkParams: LinkParamsType) => void;
fetchExternalLinks: (roomId: string | number) => LinkParamsLinkType[];
isAdmin: boolean;
itemId?: string | number;
isRoom: boolean;
};
type TOptionType = TOption & {
sharedTo: LinkParamsLinkShareToType;
};
const EmbeddingPanelComponent = (props: EmbeddingPanelProps) => {
const {
t,
theme,
visible,
setEmbeddingPanelData,
setEditLinkPanelIsVisible,
currentColorScheme,
linkParams,
setLinkParams,
fetchExternalLinks,
isAdmin,
itemId,
isRoom,
} = props;
const { roomId, link } = linkParams;
const [sharedLinksOptions, setSharedLinksOptions] = useState<TOptionType[]>(
[],
);
const [selectedLink, setSelectedLink] = useState<TOptionType>();
const [barIsVisible, setBarIsVisible] = useState(true);
const [isLoading, setIsLoading] = useState(false);
const dataDimensions = [
{ key: "percent", label: "%", default: true },
{ key: "pixel", label: "px" },
];
const [widthValue, setWidthValue] = useState("100");
const [widthDimension, setWidthDimension] = useState<TOption>(
dataDimensions[0],
);
const [heightValue, setHeightValue] = useState("820");
const [heightDimension, setHeightDimension] = useState<TOption>(
dataDimensions[1],
);
const fileConfig = {
mode: "viewer",
width: `${widthValue}${dataDimensions[0].label}`,
height: `${heightValue}${dataDimensions[1].label}`,
frameId: "ds-frame",
init: true,
id: itemId,
};
const roomConfig = {
width: `${widthValue}${dataDimensions[0].label}`,
height: `${heightValue}${dataDimensions[1].label}`,
frameId: "ds-frame",
showHeader: true,
showTitle: true,
showMenu: false,
showFilter: true,
mode: "manager",
init: true,
requestToken: link?.sharedTo?.requestToken,
rootPath: "/rooms/share",
id: roomId,
filter: {
count: 100,
page: 1,
sortorder: "descending",
sortby: "DateAndTime",
search: "",
withSubfolders: false,
},
};
const isFile = itemId && !isRoom;
const [embeddingConfig, setEmbeddingConfig] = useState(
isFile ? fileConfig : roomConfig,
);
const params = objectToGetParams(embeddingConfig);
const codeBlock = `<div id="${embeddingConfig.frameId}">Fallback text</div>\n<script src="${SDK_SCRIPT_URL}${params}"></script>`;
const currentLink = selectedLink ?? link;
const linkTitle = currentLink?.sharedTo?.title;
const withPassword = currentLink?.sharedTo?.password;
const denyDownload = currentLink?.sharedTo?.denyDownload;
const contentRestrictedTitle = t("EmbeddingPanel:ContentRestricted");
const withPasswordTitle = t("EmbeddingPanel:LinkProtectedWithPassword");
let barSubTitle = "";
if (withPassword) {
barSubTitle = withPasswordTitle;
if (denyDownload) {
barSubTitle += ` ${contentRestrictedTitle}`;
}
} else {
barSubTitle = contentRestrictedTitle;
}
const showLinkBar =
currentLink?.sharedTo?.password || currentLink?.sharedTo?.denyDownload;
const onClose = () => {
setEmbeddingPanelData({ visible: false });
};
const onChangeWidth = (e: React.ChangeEvent<HTMLInputElement>) => {
setWidthValue(e.target.value);
setEmbeddingConfig((config) => {
return { ...config, width: `${e.target.value}${widthDimension.label}` };
});
};
const onChangeHeight = (e: React.ChangeEvent<HTMLInputElement>) => {
setHeightValue(e.target.value);
setEmbeddingConfig((config) => {
return { ...config, height: `${e.target.value}${heightDimension.label}` };
});
};
const onChangeWidthDimension = (item: TOption) => {
setWidthDimension(item);
setEmbeddingConfig((config) => {
return { ...config, width: `${widthValue}${item.label}` };
});
};
const onChangeHeightDimension = (item: TOption) => {
setHeightDimension(item);
setEmbeddingConfig((config) => {
return { ...config, height: `${heightValue}${item.label}` };
});
};
const onCopyLink = () => {
copy(codeBlock);
toastr.success(t("EmbeddingPanel:CodeSuccessfullyCopied"));
};
const onHeaderChange = () => {
setEmbeddingConfig((config) => {
return { ...config, showTitle: !config.showTitle };
});
};
const onTitleChange = () => {
setEmbeddingConfig((config) => {
return { ...config, showFilter: !config.showFilter };
});
};
const onCopyAndClose = () => {
onCopyLink();
onClose();
};
const onEditLink = () => {
setLinkParams({ ...linkParams, isEdit: true, link: selectedLink ?? link });
setEditLinkPanelIsVisible(true);
};
const onChangeSharedLink = (item: TOptionType) => {
setSelectedLink(item);
setEmbeddingConfig((config) => {
return { ...config, requestToken: item?.sharedTo?.requestToken };
});
};
const onCloseBar = () => {
setBarIsVisible(false);
};
const onOpenDevTools = () => {
const url = combineUrl(
window.location.origin,
window.ClientConfig?.proxy?.url,
config.homepage,
"/portal-settings/developer-tools",
);
window.open(url, "_blank");
};
const onKeyPress = (e: KeyboardEvent) => {
if (e.key === "Esc" || e.key === "Escape") {
onClose();
}
};
useEffect(() => {
document.addEventListener("keyup", onKeyPress);
return () => document.removeEventListener("keyup", onKeyPress);
});
const getLinks = useCallback(async () => {
try {
setIsLoading(true);
const roomLinks = await fetchExternalLinks(roomId);
if (roomLinks && roomLinks.length) {
const linksOptions = roomLinks.map((l: LinkParamsLinkType) => {
return {
key: l.sharedTo?.id,
label: l.sharedTo?.title,
sharedTo: l.sharedTo,
} as TOptionType;
});
setSelectedLink(linksOptions[0]);
setSharedLinksOptions(linksOptions);
onChangeSharedLink(linksOptions[0]);
}
} catch (error) {
toastr.error(error as TData);
} finally {
setIsLoading(false);
}
}, [roomId, fetchExternalLinks]);
useEffect(() => {
if (itemId) {
getLinks();
}
}, [itemId, getLinks]);
const usePrevious = (value: LinkParamsLinkType | null) => {
const ref = useRef<LinkParamsLinkType | null>();
useEffect(() => {
ref.current = value;
});
return ref.current;
};
const prevLink = usePrevious(link ?? null);
useEffect(() => {
if (sharedLinksOptions?.length && prevLink && !isEqual(prevLink, link)) {
const newSharedLinks = [...sharedLinksOptions];
const newLinkIndex = newSharedLinks.findIndex(
(l) => l.sharedTo.id === link.sharedTo?.id,
);
if (newLinkIndex > -1)
newSharedLinks[newLinkIndex] = {
key: link.sharedTo?.id,
label: link.sharedTo?.title,
sharedTo: link.sharedTo,
} as TOptionType;
setSharedLinksOptions(newSharedLinks);
setSelectedLink({
key: link.sharedTo?.id,
label: link.sharedTo?.title,
sharedTo: link.sharedTo,
} as TOptionType);
}
}, [link, prevLink, sharedLinksOptions]);
const barTitle = (
<div className="embedding-panel_bar-header">
<Link
isHovered
type={LinkType.action}
fontSize="13px"
fontWeight={600}
color={currentColorScheme?.main?.accent}
onClick={onEditLink}
isTextOverflow
>
{linkTitle}
</Link>
<Text fontSize="12px" fontWeight={600}>
{t("Files:Protected")}
</Text>
</div>
);
return (
<StyledModalDialog
visible={visible}
onClose={onClose}
withBodyScroll
displayType={ModalDialogType.aside}
>
<ModalDialog.Header>{t("Files:EmbeddingSettings")}</ModalDialog.Header>
<ModalDialog.Body>
<StyledBody>
{barIsVisible && (
<div className="embedding-panel_banner">
<Text fontSize="12px" fontWeight={400}>
{isAdmin ? (
<Trans
t={t}
ns="EmbeddingPanel"
i18nKey="EmbeddingBarAllowList"
components={{
1: (
<Link
onClick={onOpenDevTools}
color={currentColorScheme?.main?.accent}
isHovered
/>
),
}}
>
{`"Add the website URL for embedding to the <1>allow list</1>."`}
</Trans>
) : (
t("EmbeddingPanel:EmbeddingBarDescription")
)}
</Text>
<IconButton
className="embedding-panel_banner-close-icon"
size={12}
iconName={CrossReactSvg}
onClick={onCloseBar}
/>
</div>
)}
<div className="embedding-panel_body">
{sharedLinksOptions && sharedLinksOptions.length > 1 && (
<>
<Text
className="embedding-panel_header-link"
fontSize="15px"
fontWeight={600}
>
{t("EmbeddingPanel:Link")}
</Text>
<ComboBox
className="embedding-panel_combo-box"
scaled
onSelect={onChangeSharedLink}
options={sharedLinksOptions}
selectedOption={selectedLink as TOption}
displaySelectedOption
directionY="bottom"
/>
</>
)}
{showLinkBar && (
<PublicRoomBar
className="embedding-panel_bar"
headerText={barTitle}
bodyText={barSubTitle}
iconName={TabletLinkReactSvgUrl}
/>
)}
<Text
className="embedding-panel_header-text"
fontSize="15px"
fontWeight={600}
>
{t("EmbeddingPanel:DisplaySettings")}
</Text>
<div className="embedding-panel_inputs-container">
<DisplayBlock
label={t("EmbeddingPanel:Width")}
inputValue={widthValue}
onInputChange={onChangeWidth}
selectedOption={widthDimension}
onSelectDimension={onChangeWidthDimension}
/>
<DisplayBlock
label={t("EmbeddingPanel:Height")}
inputValue={heightValue}
onInputChange={onChangeHeight}
selectedOption={heightDimension}
onSelectDimension={onChangeHeightDimension}
/>
</div>
{!isFile && (
<>
<Text
className="embedding-panel_header-text"
fontSize="15px"
fontWeight={600}
>
{t("JavascriptSdk:InterfaceElements")}
</Text>
<div className="embedding-panel_checkbox-container">
<CheckboxElement
label={t("Common:Title")}
onChange={onHeaderChange}
isChecked={embeddingConfig.showTitle}
img={theme.isBase ? HeaderUrl : HeaderDarkUrl}
title={t("JavascriptSdk:Header")}
description={t("JavascriptSdk:HeaderDescription")}
/>
<CheckboxElement
label={t("JavascriptSdk:SearchFilterAndSort")}
onChange={onTitleChange}
isChecked={embeddingConfig.showFilter}
img={theme.isBase ? SearchUrl : SearchDarkUrl}
title={t("JavascriptSdk:SearchBlock")}
description={t(
"JavascriptSdk:ManagerSearchBlockDescription",
)}
/>
</div>
</>
)}
<div className="embedding-panel_code-container">
<Text
className="embedding-panel_header-text"
fontSize="15px"
fontWeight={600}
>
{t("JavascriptSdk:Code")}
</Text>
<IconButton
className="embedding-panel_copy-icon"
size={16}
iconName={CopyReactSvgUrl}
onClick={onCopyLink}
/>
<Textarea isReadOnly value={codeBlock} heightTextArea="150px" />
</div>
</div>
</StyledBody>
</ModalDialog.Body>
<ModalDialog.Footer>
<Button
className="send-invitation"
scale
size={ButtonSize.normal}
primary
onClick={onCopyAndClose}
label={t("Common:Copy")}
isLoading={isLoading}
/>
<Button
className="cancel-button"
scale
size={ButtonSize.normal}
onClick={onClose}
label={t("Common:CancelButton")}
isLoading={isLoading}
/>
</ModalDialog.Footer>
</StyledModalDialog>
);
};
export default inject<TStore>(
({ dialogsStore, settingsStore, userStore, publicRoomStore }) => {
const {
embeddingPanelData,
setEmbeddingPanelData,
linkParams,
setEditLinkPanelIsVisible,
setLinkParams,
} = dialogsStore;
const { theme, currentColorScheme } = settingsStore;
const { user } = userStore;
const { fetchExternalLinks } = publicRoomStore;
return {
theme,
currentColorScheme,
visible: embeddingPanelData.visible,
itemId: embeddingPanelData.item?.id,
isRoom: embeddingPanelData.item?.isRoom,
setEmbeddingPanelData,
setEditLinkPanelIsVisible,
linkParams,
setLinkParams,
fetchExternalLinks,
isAdmin: user?.isAdmin,
};
},
)(
withTranslation(["Files", "EmbeddingPanel", "JavascriptSdk"])(
observer(EmbeddingPanelComponent),
),
);

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