Merge branch 'feature/admin-messages' of github.com:ONLYOFFICE/AppServer into feature/session-lifetime

# Conflicts:
#	packages/asc-web-common/store/SettingsStore.js
#	web/ASC.Web.Client/public/locales/en/Settings.json
This commit is contained in:
Viktor Fomin 2022-06-01 14:26:24 +03:00
commit 753d0b0605
2659 changed files with 329348 additions and 15754 deletions

View File

@ -27,14 +27,10 @@ powershell -Command "(gc build\deploy\nginx\onlyoffice.conf) -replace '#', '' |
xcopy config\nginx\sites-enabled\* build\deploy\nginx\sites-enabled\ /E /R /Y
REM fix paths
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-calendar.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.Calendar\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-calendar.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-crm.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.CRM\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-crm.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-editor.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.Files\editor' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-editor.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-files.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.Files\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-files.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-login.conf) -replace 'ROOTPATH', '%~dp0deploy\studio\login' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-login.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-mail.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.Mail\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-mail.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-people.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.People\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-people.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-projects.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.Projects\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-projects.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-studio.conf) -replace 'ROOTPATH', '%~dp0deploy\studio\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-studio.conf"
REM restart nginx

View File

@ -0,0 +1,67 @@
@echo off
PUSHD %~dp0
call runasadmin.bat "%~dpnx0"
if %errorlevel% == 0 (
PUSHD %~dp0..
echo "mode="
REM call yarn wipe
call yarn install
call yarn build:test.translation:personal
REM call yarn wipe
call yarn deploy:personal
REM copy nginx configurations to deploy folder
xcopy config\nginx\onlyoffice.conf build\deploy\nginx\ /E /R /Y
powershell -Command "(gc build\deploy\nginx\onlyoffice.conf) -replace '#', '' | Out-File -encoding ASCII build\deploy\nginx\onlyoffice.conf"
xcopy config\nginx\sites-enabled\* build\deploy\nginx\sites-enabled\ /E /R /Y
REM fix paths
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-editor.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.Files\editor' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-editor.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-files.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.Files\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-files.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-login.conf) -replace 'ROOTPATH', '%~dp0deploy\studio\login' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-login.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-people.conf) -replace 'ROOTPATH', '%~dp0deploy\products\ASC.People\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-people.conf"
powershell -Command "(gc build\deploy\nginx\sites-enabled\onlyoffice-studio.conf) -replace 'ROOTPATH', '%~dp0deploy\studio\client' -replace '\\', '/' | Out-File -encoding ASCII build\deploy\nginx\sites-enabled\onlyoffice-studio.conf"
REM restart nginx
echo service nginx stop
call sc stop nginx > nul
REM sleep 5 seconds
call ping 127.0.0.1 -n 6 > nul
echo service nginx start
call sc start nginx > nul
REM sleep 5 seconds
call ping 127.0.0.1 -n 6 > nul
call yarn e2e.test:translation:personal
exit
if NOT %errorlevel% == 0 (
echo Couldn't restarte Onlyoffice%%~nf service
)
)
echo.
POPD
if "%1"=="nopause" goto start
pause
:start

View File

@ -520,7 +520,7 @@ namespace ASC.Core
if (group == null)
{
group = ToGroup(Constants.BuildinGroups.FirstOrDefault(r => r.ID == groupID));
group = ToGroup(Constants.BuildinGroups.FirstOrDefault(r => r.ID == groupID) ?? Constants.LostGroupInfo);
}
return new GroupInfo

View File

@ -345,6 +345,18 @@ namespace ASC.Core.Notify.Signalr
}
}
public void UpdateFile<T>(T fileId, string room, string data)
{
try
{
MakeRequest("update-file", new { room, fileId, data });
}
catch (Exception error)
{
ProcessError(error);
}
}
public void DeleteFile<T>(T fileId, string room)
{
try

View File

@ -1,50 +1,53 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Library</OutputType>
<NoWarn>NU1701</NoWarn>
</PropertyGroup>
<ItemGroup>
<None Remove="protos\backup_progress.proto" />
<None Remove="protos\delete_schedule.proto" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Grpc" Version="2.43.0">
<TreatAsUsed>true</TreatAsUsed>
</PackageReference>
<PackageReference Include="Grpc.Tools" Version="2.43.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MySql.Data" Version="8.0.28" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\products\ASC.Files\Core\ASC.Files.Core.csproj" />
<ProjectReference Include="..\ASC.Data.Storage\ASC.Data.Storage.csproj" />
</ItemGroup>
<ItemGroup>
<Protobuf Include="protos\backup_progress.proto" />
<Protobuf Include="protos\delete_schedule.proto" />
</ItemGroup>
<ItemGroup>
<Compile Update="BackupResource.Designer.cs">
<DependentUpon>BackupResource.resx</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="BackupResource.resx">
<LastGenOutput>BackupResource.Designer.cs</LastGenOutput>
<Generator>ResXFileCodeGenerator</Generator>
</EmbeddedResource>
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Library</OutputType>
<NoWarn>NU1701</NoWarn>
</PropertyGroup>
<ItemGroup>
<None Remove="protos\backup_progress.proto" />
<None Remove="protos\delete_schedule.proto" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Grpc" Version="2.43.0">
<TreatAsUsed>true</TreatAsUsed>
</PackageReference>
<PackageReference Include="Grpc.Tools" Version="2.43.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MySql.Data" Version="8.0.28" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\products\ASC.Files\Core\ASC.Files.Core.csproj" />
<ProjectReference Include="..\ASC.Data.Storage\ASC.Data.Storage.csproj" />
</ItemGroup>
<ItemGroup>
<Protobuf Include="protos\backup_progress.proto" />
<Protobuf Include="protos\delete_schedule.proto" />
</ItemGroup>
<ItemGroup>
<Compile Update="BackupResource.Designer.cs">
<DependentUpon>BackupResource.resx</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="BackupResource.resx">
<LastGenOutput>BackupResource.Designer.cs</LastGenOutput>
<Generator>ResXFileCodeGenerator</Generator>
</EmbeddedResource>
<EmbeddedResource Update="BackupResource.el.resx">
<DependentUpon>BackupResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="BackupResource.fr.resx">
<DependentUpon>BackupResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="BackupResource.tr.resx">
<DependentUpon>BackupResource.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BackupNotFound" xml:space="preserve">
<value>Το αρχείο αντιγράφων ασφαλείας είναι μη έγκυρο. Παρακαλώ, χρησιμοποιείστε ένα αρχείο που έχει δημιουργηθεί σε ONLYOFFICE v11.5 ή επόμενο.</value>
</data>
</root>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BackupNotFound" xml:space="preserve">
<value>Le fichier de sauvegarde n'est pas valide. Veuillez utiliser un fichier créé dans ONLYOFFICE v11.5 ou plus récent.</value>
</data>
</root>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BackupNotFound" xml:space="preserve">
<value>Yedekleme dosyası geçersiz. Lütfen ONLYOFFICE v11.5 veya sonraki sürümlerde oluşturulmuş bir dosya kullanın.</value>
</data>
</root>

View File

@ -101,7 +101,14 @@ namespace ASC.FederatedLogin
if (string.IsNullOrEmpty(json)) return null;
try
{
return JsonSerializer.Deserialize<OAuth20Token>(json);
var result = JsonSerializer.Deserialize<OAuth20Token>(json);
if (result.Timestamp == default)
{
result.Timestamp = DateTime.UtcNow;
}
return result;
}
catch (Exception)
{

View File

@ -1,53 +1,96 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<AssemblyTitle>ASC.Notify.Textile</AssemblyTitle>
<Company>Ascensio System SIA</Company>
<Product>ASC.Notify.Textile</Product>
<Copyright>(c) Ascensio System SIA. All rights reserved</Copyright>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>full</DebugType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
</PropertyGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<AssemblyTitle>ASC.Notify.Textile</AssemblyTitle>
<Company>Ascensio System SIA</Company>
<Product>ASC.Notify.Textile</Product>
<Copyright>(c) Ascensio System SIA. All rights reserved</Copyright>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>full</DebugType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\master.htm" />
<EmbeddedResource Include="Resources\style.css" />
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ASC.Common\ASC.Common.csproj" />
<ProjectReference Include="..\ASC.Core.Common\ASC.Core.Common.csproj" />
<ProjectReference Include="..\ASC.Textile\ASC.Textile.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Resources\NotifyTemplateResource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resources\NotifyTemplateResource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>NotifyTemplateResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.ru.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.de.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.es.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.fr.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.it.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<Compile Update="Resources\NotifyTemplateResource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resources\NotifyTemplateResource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>NotifyTemplateResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.ru.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.de.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.es.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.fr.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.it.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.bg.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.cs.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.el.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.fi.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.ja.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.lv.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.nl.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.pl.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.pt-BR.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.sk.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.tr.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.uk.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.vi.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Resources\NotifyTemplateResource.zh-CN.resx">
<DependentUpon>NotifyTemplateResource.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;"/&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;"/&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;"/&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Нуждаете се от техническа помощ?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Търговски въпроси&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Демо за поръчка&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Изпрати своя въпрос&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Пишете ни&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Изпращане на заявка&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="FooterOpensourceV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;"/&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;"/&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;"/&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Нуждаете се от техническа помощ?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Търговски въпроси&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Демо за поръчка&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="http://dev.onlyoffice.org/" target="_blank" style="color: #333;"&gt;Изпрати своя въпрос&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:sales@onlyoffice.com" style="color: #333;"&gt;Пишете ни&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="http://www.onlyoffice.com/demo-order.aspx" target="_blank" style="color: #333;"&gt;Изпращане на заявка&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%"/&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Този имейл се генерира автоматично и не е необходимо да отговаряте.
&lt;br/&gt;Получавате този имейл, защото сте регистриран потребител на &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br/&gt;Ако вече не искате да получавате тези имейли, кликнете върху следната връзка: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Отписване&lt;/a&gt;
&lt;br/&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Potřebujete technickou pomoc?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Prodejní otázky&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Objednat demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Pošlete nám Vaše dotazy&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Napište nám email&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Poslat žádost&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Tento e-mail je generován automaticky a nemusíte na něj odpovídat.
&lt;br /&gt;Tento e-mail obdržíte, protože jste registrovaným uživatelem &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Pokud již nechcete přijímat tyto e-maily, klikněte na následující odkaz: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Unsubscribe&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
@ -195,7 +195,7 @@
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Diese E-Mail ist automatisch generiert und erfordert keine Antwort.
&lt;br /&gt;Sie erhalten diese E-Mail, weil Sie ein registrierter Benutzer bzw. eine registrierte Benutzerin von &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt; sind.
&lt;br /&gt;Wenn Sie keine Nachrichten mehr von uns bekommen möchten, klicken Sie auf den folgenden Link: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Unsubscribe&lt;/a&gt;
&lt;br /&gt;Um keine E-Mails mehr zu erhalten, klicken Sie bitte hier: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Abmelden&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Need tech help?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Sales Questions&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Order Demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Send your question&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Send a request&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="FooterOpensourceV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Need tech help?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Sales Questions&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Order Demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="http://dev.onlyoffice.org/" target="_blank" style="color: #333;"&gt;Ask the Community&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:sales@onlyoffice.com" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="http://www.onlyoffice.com/demo-order.aspx" target="_blank" style="color: #333;"&gt;Send a request&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="SocialNetworksFooterV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 155px;"&gt;
&lt;a href="https://www.facebook.com/pages/OnlyOffice/833032526736775" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-fb-40.png" alt="Facebook" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://twitter.com/ONLY_OFFICE" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-tw-40.png" alt="Twitter" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://www.onlyoffice.com/blog" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-blog-40.png" alt="ONLYOFFICE" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://www.youtube.com/user/onlyofficeTV" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-youtube-40.png" alt="YouTube" style="width: 40px; height: 40x;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://vk.com/onlyoffice" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-vk-40.png" alt="VK" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 155px 0 5px;"&gt;
&lt;a href="https://www.instagram.com/the_onlyoffice" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-inst-40.png" alt="Instagram" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
</root>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
@ -193,9 +193,9 @@
&lt;/tr&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Este correo electrónico se genera automáticamente y no es necesario responder.
&lt;br /&gt;Usted recibe este correo electrónico porque usted es un usuario registrado de &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Si ya no desea recibir estos mensajes de correo electrónico, haga click en el siguiente enlace: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Unsubscribe&lt;/a&gt;
<value>Este correo electrónico se genera automáticamente y no es necesario responderlo.
&lt;br /&gt;Ha recibido este correo electrónico porque es un usuario registrado de &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Haga clic aquí para cancelar la suscripción a los correos electrónicos informativos: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Cancelar la suscripción&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Haluatko teknistä tukea?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Ostoon liittyvät kysymykset&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Tilaa koejakso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Lähetä kysymyksesi&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Lähetä meille sähköpostia&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Lähetä pyyntö&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
</root>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
@ -195,7 +195,7 @@
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Cet e-mail est généré automatiquement et vous n'avez pas besoin de répondre.
&lt;br /&gt;Vous recevez ce courriel parce que vous êtes un utilisateur enregistré de &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Si vous ne souhaitez plus recevoir ces e-mails, cliquez sur le lien suivant : &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Se Désabonner&lt;/a&gt;
&lt;br /&gt;Cliquez ici pour vous désabonner des e-mails d'information: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Se Désabonner&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
@ -195,7 +195,7 @@
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Questo messaggio è stato generato automaticamente e non necessità di risposta.
&lt;br /&gt;Hai ricevuto questo messaggio in quanto sei un untente registrato su &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Se non intendi ricevere altri messaggi in futuro, fai click qui: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Unsubscribe&lt;/a&gt;
&lt;br /&gt;Сlicca qui per annullare l'iscrizione alle email informative:&lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Rimuovi sottoscrizione&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>このメールは送信専用メールアドレスから配信されています。 このままご返信いただいてもお答えできませんのでご了承ください。
&lt;br /&gt;本メールは、&lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt; に登録いただいているみなさまにお送りしております。
&lt;br /&gt;「ご案内メール」の受信を希望しない場合は、こちらを押してください。&lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;受信解除&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Нужна помощь?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Вопросы по покупке&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Заказ демонстрации&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Задайте вопрос&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Напишите нам&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Отправьте запрос&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="FooterOpensourceV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Нужна помощь?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Вопросы по покупке&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Заказ демонстрации&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="http://dev.onlyoffice.org/" target="_blank" style="color: #333;"&gt;Задайте вопрос&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:sales@onlyoffice.com" style="color: #333;"&gt;Напишите нам&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="http://www.onlyoffice.com/demo-order.aspx" target="_blank" style="color: #333;"&gt;Отправьте запрос&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Šis e-pasts ir izveidots automātiski, un jums nav uz to jāatbild.
&lt;br /&gt;Jūs saņēmāt šo e-pastu, jo esat reģistrēts lietotājs portālā &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Ja nevēlaties saņemt šos e-pastus, spiediet uz šīs saites: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Atsaukt abonēšanu&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Technische hulp nodig?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Verkoopvragen&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Orderdemo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Verstuur uw vraag&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Stuur een verzoek&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Deze e-mail is automatisch gegenereerd en u hoeft deze niet te beantwoorden.
&lt;br /&gt;U ontvangt deze e-mail omdat u een geregistreerde gebruiker bent van &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Als u deze e-mails niet langer wilt ontvangen, klik dan op de volgende link: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Afmelden&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Potřebujete technickou pomoc?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Prodejní otázky&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Objednat demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Send your question&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Poslat žádost&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Wiadomość utworzona automatycznie i odpowiadać na nią nie trzeba.
&lt;br /&gt;otrzymujesz tę wiadomość, ponieważ jesteś zarejestrowanym użytkownikiem &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Jeśli nie chcesz otrzymywać tych wiadomości, kliknij na poniższy link: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Rezygnacja&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,201 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Precisa de ajuda técnica?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Perguntas sobre vendas&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Demonstração de pedido&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Envie sua pergunta&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Envie-nos um e-mail&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Envie uma solicitação&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="FooterOpensourceV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Need tech help?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Sales Questions&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Order Demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="http://dev.onlyoffice.org/" target="_blank" style="color: #333;"&gt;Ask the Community&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:sales@onlyoffice.com" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="http://www.onlyoffice.com/demo-order.aspx" target="_blank" style="color: #333;"&gt;Send a request&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="SocialNetworksFooterV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 155px;"&gt;
&lt;a href="https://www.facebook.com/pages/OnlyOffice/833032526736775" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-fb-40.png" alt="Facebook" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://twitter.com/ONLY_OFFICE" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-tw-40.png" alt="Twitter" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://www.onlyoffice.com/blog" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-blog-40.png" alt="ONLYOFFICE" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://www.youtube.com/user/onlyofficeTV" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-youtube-40.png" alt="YouTube" style="width: 40px; height: 40x;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 5px 0 5px;"&gt;
&lt;a href="https://vk.com/onlyoffice" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-vk-40.png" alt="VK" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;td style="width: 40px; vertical-align: top; margin: 0; padding: 22px 155px 0 5px;"&gt;
&lt;a href="https://www.instagram.com/the_onlyoffice" style="width: 40px; height: 40px; display: block; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%IMAGEPATH%/social-inst-40.png" alt="Instagram" style="width: 40px; height: 40px;" /&gt;
&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Este e-mail é gerado automaticamente e você não precisa respondê-lo.
&lt;br /&gt;Você está recebendo este e-mail por que é um usuário registrado do &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Se você não quiser mais receber estes e-mails, clique no seguinte link: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Cancelar subscrição&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
@ -193,9 +193,9 @@
&lt;/tr&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>This email is generated automatically and you do not need to answer it.
&lt;br /&gt;You receive this email because you are a registered user of &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;If you no longer wish to receive these emails, click on the following link: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Unsubscribe&lt;/a&gt;
<value>This email is generated automatically and you do not need to answer it.
&lt;br /&gt;You receive this email because you are a registered user of &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Click here to unsubscribe from informational emails: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Unsubscribe&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
@ -195,7 +195,7 @@
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Это сообщение создано автоматически, и отвечать на него не нужно.
&lt;br /&gt;Вы получили это сообщение, так как являетесь зарегистрированным пользователем &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Если вы больше не хотите получать эти сообщения, нажмите на следующую ссылку: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Отписаться&lt;/a&gt;
&lt;br /&gt;Если вы хотите отписаться от информационных электронных писем, нажмите на следующую ссылку: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Отписаться&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Need tech help?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Sales Questions&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Order Demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Send your question&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Send a request&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Tento e-mail je generovaný automaticky a nemusíte na to odpovedať.
&lt;br /&gt;Tento e-mail dostanete pretože ste registrovaným používateľom &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Ak si viac neprajete dostávať tieto e-maily, kliknite na nasledujúci link: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Unsubscribe&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Need tech help?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Sales Questions&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Demo Sipariş Et&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Soru Gönder&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;E-posta Gönder&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Talep Gönder&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Bu e-posta otomatik olarak oluşturulmuştur, lütfen yanıtlamayın.
&lt;br /&gt;Bu e-postayı almanızın sebebi &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt; kayıtlı kullanıcısı olmanızdır.
&lt;br /&gt;Bu e-postaları almak istemiyorsanız lütfen linke tıklayın: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Abonelikten Ayrıl&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Need tech help?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Sales Questions&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Order Demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Send your question&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Send a request&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Цей електронний лист сформовано автоматично, і вам не потрібно відповідати на нього.
&lt;br /&gt;Ви отримуєте цей електронний лист, оскільки ви є зареєстрованим користувачем &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Якщо ви більше не бажаєте отримувати ці електронні листи, натисніть на це посилання: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Скасувати підписку&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Bạn cần hỗ trợ kỹ thật?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Câu hỏi về bán hàng&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Đặt bản Demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Gửi câu hỏi&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Gửi email cho chúng tôi&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Gửi yêu cầu&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>Email này được tạo tự động và bạn không cần trả lời nó.
&lt;br /&gt;Bạn nhận được email này vì bạn là người dùng đã đăng ký &lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;
&lt;br /&gt;Nếu bạn không còn muốn nhận những email này, hãy nhấp vào liên kết sau: &lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;Hủy đăng ký&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FooterCommonV10" xml:space="preserve">
<value>&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;&lt;td colspan="3" style="height: 10px; line-height: 10px; background: #fff; padding: 0; margin: 0;"&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/tech-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 180px; height: 108px; background: #f6f6f6;"&gt;
&lt;img src="%IMAGEPATH%/mailus-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 34px 0 0 0; width: 210px; height: 108px; background: #f6f6f6; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px;"&gt;
&lt;img src="%IMAGEPATH%/demo-100.png" style="width: 100px; height: 100px;margin: 0 auto;" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Need tech help?&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 180px; height: 16px; background: #f6f6f6;"&gt;Sales Questions&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0; width: 210px; height: 16px; background: #f6f6f6;"&gt;Order Demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;"&gt;
&lt;a href="%SUPPORTURL%" target="_blank" style="color: #333;"&gt;Send your question&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 180px; background: #f6f6f6;"&gt;
&lt;a href="mailto:%SALESEMAIL%" style="color: #333;"&gt;Email us&lt;/a&gt;
&lt;/td&gt;
&lt;td style="vertical-align: top; margin: 0; padding: 0 0 30px; width: 210px; background: #f6f6f6;-moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;"&gt;
&lt;a href="%DEMOURL%" target="_blank" style="color: #333;"&gt;Send a request&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;</value>
</data>
<data name="HtmlMaster" xml:space="preserve">
<value>&lt;body style="margin: 0; padding: 0; text-align: center; width: 100%; font-family: Arial, sans-serif; font-size: 14px; color: #333;"&gt;
&lt;div style="background-color: #fff; width: 600px; margin: 0 auto; text-align: left;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; background: #fff; text-align: center; width: 600px; margin: 0; padding: 0; border: 0 none; border-collapse: collapse; empty-cells: show; border-spacing: 0;"&gt;
&lt;tbody&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 0; background-color: #fff; height: 65px; padding: 20px 0 0 30px;"&gt;
&lt;div style="text-align: left; height: 65px; width: 570px; margin: 0; padding: 0;"&gt;
&lt;a href="%SITEURL%" style="text-decoration: none; display: inline-block; width: 216px; height: 35px; margin: 0; padding: 0;" target="_blank"&gt;
&lt;img src="%LOGO%" style="border: 0px none; width: 216px; height: 35px; margin: 0; padding: 0;" alt="%LOGOTEXT%" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="3" style="margin: 0; padding: 15px 30px 15px; background-color: #f6f6f6; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;"&gt;
&lt;div style="font-family: Arial; font-size: 14px; color: #333; margin: 0; padding: 0; width: 540px; height: auto; overflow: hidden; word-wrap: break-word; vertical-align: top; text-align: left; border: 0 none;"&gt;
%CONTENT%
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
%FOOTER%
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 14px; color: #333; text-align: center; vertical-align: top; width: 600px; margin: 0; padding: 0; border-collapse: collapse; border: 0; border-spacing: 0; "&gt;
&lt;tbody&gt;
%FOOTERSOCIAL%
&lt;tr border="0" cellspacing="0" cellpadding="0"&gt;
&lt;td colspan="6" style="width: 600px; vertical-align: top; margin: 0; padding: 20px 30px 15px;"&gt;
&lt;p style="color: #7b7b7b; font-family: Arial, Tahoma; font-size: 12px; margin: 0; padding: 0; text-align: center; width: 540px;"&gt;
%TEXTFOOTER%
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/body&gt;</value>
</data>
<data name="TextForFooterWithUnsubscribeLink" xml:space="preserve">
<value>此电子邮件是自动生成的,您无需回复。
&lt;br/&gt;您收到此邮件,因为您是&lt;a href="{0}" style="color: #7b7b7b;" target="_blank"&gt;{0}&lt;/a&gt;的用户
&lt;br/&gt;点击这里,取消邮件订阅。&lt;a href="{1}" style="color: #7b7b7b;" target="_blank"&gt;取消订阅&lt;/a&gt;
&lt;br /&gt;</value>
</data>
</root>

View File

@ -23,10 +23,14 @@ namespace ASC.Resource.Manager
class Program
{
private const string CsProjScheme = "http://schemas.microsoft.com/developer/msbuild/2003";
private static readonly XName ItemGroupXname = XName.Get("ItemGroup", CsProjScheme);
private static readonly XName EmbededXname = XName.Get("EmbeddedResource", CsProjScheme);
private static readonly XName DependentUpon = XName.Get("DependentUpon", CsProjScheme);
//private static readonly XName ItemGroupXname = XName.Get("ItemGroup", CsProjScheme);
//private static readonly XName EmbededXname = XName.Get("EmbeddedResource", CsProjScheme);
//private static readonly XName DependentUpon = XName.Get("DependentUpon", CsProjScheme);
private static readonly XName ItemGroupXname = XName.Get("ItemGroup");
private static readonly XName EmbededXname = XName.Get("EmbeddedResource");
private static readonly XName DependentUpon = XName.Get("DependentUpon");
private const string IncludeAttribute = "Include";
private const string UpdateAttribute = "Update";
private const string ConditionAttribute = "Condition";
public static string[] Args;
public static void Main(string[] args)
@ -50,6 +54,11 @@ namespace ASC.Resource.Manager
public static void Export(Options options)
{
//var csPath = @"C:\Git\portals_core\web\ASC.Web.Core\";
//AddResourceForCsproj($"{csPath}ASC.Web.Core.csproj",
// Directory.EnumerateFiles(csPath, "*.resx", SearchOption.AllDirectories).Select(r => new Tuple<string, string>("", r.Substring(csPath.Length))));
//return;
var services = new ServiceCollection();
var startup = new Startup(Args);
@ -69,8 +78,8 @@ namespace ASC.Resource.Manager
var (project, module, filePath, exportPath, culture, format, key) = options;
project = "WebStudio";
module = "WebStudio";
filePath = "Resource.resx";
module = "Notify";
filePath = "WebstudioNotifyPatternResource.resx";
//culture = "ru";
exportPath = @"C:\Git\portals_core\";
//key = "*,HtmlMaster*";
@ -102,7 +111,7 @@ namespace ASC.Resource.Manager
}
enabledSettings = scopeClass.Configuration.GetSetting<EnabledSettings>("enabled");
cultures = scopeClass.ResourceData.GetCultures().Where(r => r.Available).Select(r => r.Title).ToList();//.Intersect(enabledSettings.Langs).ToList();
cultures = scopeClass.ResourceData.GetCultures().Where(r => r.Available).Select(r => r.Title).Intersect(enabledSettings.Langs).ToList();
projects = scopeClass.ResourceData.GetAllFiles();
ExportWithProject(project, module, filePath, culture, exportPath, key);
@ -278,7 +287,7 @@ namespace ASC.Resource.Manager
Console.WriteLine(filePath);
if (string.IsNullOrEmpty(asmbl)) return;
AddResourceForCsproj(asmbl, filePath.Substring(assmlPath.Length + 1), resultFiles.OrderBy(r => r.Item2));
AddResourceForCsproj(asmbl, resultFiles.OrderBy(r => r.Item2));
var assmblName = Path.GetFileNameWithoutExtension(asmbl);
var f = Path.GetDirectoryName(filePath.Substring(assmlPath.Length + 1)).Replace('\\', '.');
nsp = assmblName;
@ -402,7 +411,7 @@ namespace ASC.Resource.Manager
return string.Join(',', bag.ToArray().Distinct());
}
private static void AddResourceForCsproj(string csproj, string fileName, IEnumerable<Tuple<string, string>> files)
private static void AddResourceForCommunityCsproj(string csproj, string fileName, IEnumerable<Tuple<string, string>> files)
{
if (!files.Any()) return;
@ -464,6 +473,69 @@ namespace ASC.Resource.Manager
doc.Save(csproj);
}
private static void AddResourceForCsproj(string csproj, IEnumerable<Tuple<string, string>> files)
{
if (!files.Any()) return;
var doc = XDocument.Parse(File.ReadAllText(csproj));
if (doc.Root == null) return;
foreach (var file in files)
{
var fileName = $"{file.Item2.Split('.')[0]}.resx";
var node = doc.Root.Elements().FirstOrDefault(r =>
r.Name == ItemGroupXname &&
r.Elements(EmbededXname).Any(x =>
{
var attr = x.Attribute(UpdateAttribute);
return attr != null && attr.Value == fileName;
})) ??
doc.Root.Elements().FirstOrDefault(r =>
r.Name == ItemGroupXname &&
r.Elements(EmbededXname).Any());
XElement reference;
bool referenceNotExist;
if (node == null)
{
node = new XElement(ItemGroupXname);
doc.Root.Add(node);
reference = new XElement(EmbededXname);
referenceNotExist = true;
}
else
{
var embeded = node.Elements(EmbededXname).ToList();
reference = embeded.FirstOrDefault(r =>
{
var attr = r.Attribute(UpdateAttribute);
return attr != null && attr.Value == file.Item2;
});
referenceNotExist = reference == null;
if (referenceNotExist)
{
reference = new XElement(EmbededXname);
if (file.Item2 != fileName)
{
reference.Add(new XElement(DependentUpon, Path.GetFileName(fileName)));
}
}
}
if (referenceNotExist)
{
reference.SetAttributeValue(UpdateAttribute, file.Item2);
//reference.SetAttributeValue(ConditionAttribute, string.Format("$(Cultures.Contains('{0}'))", file.Item1));
node.Add(reference);
}
}
doc.Save(csproj);
}
private static void Sort(string path)
{
foreach (var f in Directory.GetFiles(path))

View File

@ -16,7 +16,27 @@
"fr",
"de",
"es",
"it"
"it",
"az",
"cs",
"el",
"ja",
"lo",
"nl",
"pt",
"ro",
"sk",
"tr",
"vi",
"bg",
"fi",
"ko",
"lv",
"pl",
"pt-BR",
"sl",
"uk",
"zh-CN"
],
"projects": [
"People",
@ -26,7 +46,7 @@
"ConnectionStrings": {
"default": {
"name": "default",
"connectionString": "Server=localhost;Database=teamlab_translate;User ID=root;Password=root;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none",
"connectionString": "Server=localhost;Database=teamlab_translate;User ID=root;Password=root;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;AllowPublicKeyRetrieval=True",
"providerName": "MySql.Data.MySqlClient"
}
},

View File

@ -16,6 +16,11 @@
res.end();
});
router.post("/update-file", (req, res) => {
files.updateFile(req.body);
res.end();
});
router.post("/delete-file", (req, res) => {
files.deleteFile(req.body);
res.end();

View File

@ -115,10 +115,15 @@
modifyFolder(room, "create", fileId, "file", data);
}
function updateFile({ fileId, room, data } = {}) {
logger.info(`update file ${fileId} in room ${room}`);
modifyFolder(room, "update", fileId, "file", data);
}
function deleteFile({ fileId, room } = {}) {
logger.info(`delete file ${fileId} in room ${room}`);
modifyFolder(room, "delete", fileId, "file");
}
return { startEdit, stopEdit, createFile, deleteFile };
return { startEdit, stopEdit, createFile, deleteFile, updateFile };
};

View File

@ -12,8 +12,6 @@ using Newtonsoft.Json.Linq;
using NUnit.Framework;
using UtfUnknown;
using WeCantSpell.Hunspell;
namespace Frontend.Translations.Tests
@ -35,19 +33,25 @@ namespace Frontend.Translations.Tests
public List<KeyValuePair<string, string>> NotTranslatedToasts { get; set; }
public List<LanguageItem> CommonTranslations { get; set; }
public List<ParseJsonError> ParseJsonErrors { get; set; }
public List<JsonEncodingError> WrongEncodingJsonErrors { get; set; }
//public List<JsonEncodingError> WrongEncodingJsonErrors { get; set; }
private static string _md5ExcludesPath = "../../../md5-excludes.json";
//private static string _encodingExcludesPath = "../../../encoding-excludes.json";
private static List<string> md5Excludes = File.Exists(_md5ExcludesPath)
? JsonConvert.DeserializeObject<List<string>>(File.ReadAllText(_md5ExcludesPath))
: new List<string>();
//private static List<string> encodingExcludes = File.Exists(_encodingExcludesPath)
// ? JsonConvert.DeserializeObject<List<string>>(File.ReadAllText(_encodingExcludesPath))
// : new List<string>();
[OneTimeSetUp]
public void Setup()
{
ParseJsonErrors = new List<ParseJsonError>();
WrongEncodingJsonErrors = new List<JsonEncodingError>();
//WrongEncodingJsonErrors = new List<JsonEncodingError>();
var packageJsonPath = Path.Combine(BasePath, @"package.json");
@ -76,14 +80,13 @@ namespace Frontend.Translations.Tests
{
try
{
var result = CharsetDetector.DetectFromFile(path);
//var result = CharsetDetector.DetectFromFile(path);
if (result.Detected.EncodingName != "utf-8"
&& result.Detected.EncodingName != "ascii")
{
WrongEncodingJsonErrors.Add(
new JsonEncodingError(path, result.Detected));
}
//if (!encodingExcludes.Contains(result.Detected.EncodingName))
//{
// WrongEncodingJsonErrors.Add(
// new JsonEncodingError(path, result.Detected));
//}
#if SORT
@ -264,11 +267,32 @@ namespace Frontend.Translations.Tests
Assert.AreEqual(0, ParseJsonErrors.Count, string.Join("\r\n", ParseJsonErrors.Select(e => $"File path = '{e.Path}' failed to parse with error: '{e.Exception.Message}'")));
}
public static Tuple<string, string> getPaths(string language)
{
const string dictionariesPath = @"..\..\..\dictionaries";
const string additionalPath = @"..\..\..\additional";
var path = dictionariesPath;
switch (language)
{
case "fi":
path = additionalPath;
break;
default:
break;
}
var dicPath = Path.Combine(path, language, $"{language}.dic");
var affPath = Path.Combine(path, language, $"{language}.aff");
return new Tuple<string, string>(dicPath, affPath);
}
[Test]
[Category("LongRunning")]
public void SpellCheckTest()
{
const string dictionariesPath = @"..\..\..\dictionaries";
var i = 0;
var errorsCount = 0;
var message = $"Next keys have spell check issues:\r\n\r\n";
@ -288,12 +312,12 @@ namespace Frontend.Translations.Tests
{
try
{
var language = SpellCheck.GetDictionaryLanguage(group.Language);
var dicPaths = SpellCheck.GetDictionaryPaths(group.Language);
//var spellCheckExclude = new SpellCheckExclude(group.Language);
using (var dictionaryStream = File.OpenRead(Path.Combine(dictionariesPath, language, $"{language}.dic")))
using (var affixStream = File.OpenRead(Path.Combine(dictionariesPath, language, $"{language}.aff")))
using (var dictionaryStream = File.OpenRead(dicPaths.DictionaryPath))
using (var affixStream = File.OpenRead(dicPaths.AffixPath))
{
var dictionary = WordList.CreateFromStreams(dictionaryStream, affixStream);
@ -340,6 +364,17 @@ namespace Frontend.Translations.Tests
Assert.AreEqual(0, errorsCount, message);
}
[Test]
[Category("FastRunning")]
public void SingleKeyFilesTest()
{
var singleKeyTranslationFiles = TranslationFiles
.Where(t => t.Language == "en" && t.Translations.Count == 1)
.ToList();
Assert.AreEqual(0, singleKeyTranslationFiles.Count, "Translations files with single key:\r\n" + string.Join("\r\n", singleKeyTranslationFiles.Select(d => $"\r\nKey='{d.Translations.First().Key}':\r\n{d.FilePath}'")));
}
[Test]
[Category("FastRunning")]
public void DublicatesFilesByMD5HashTest()
@ -1059,25 +1094,25 @@ namespace Frontend.Translations.Tests
Assert.AreEqual(0, errorsCount, message);
}
[Test]
[Category("FastRunning")]
public void TranslationsEncodingTest()
{
/*//Convert to UTF-8
foreach (var issue in WrongEncodingJsonErrors)
{
if (issue.DetectionDetail.Encoding == null)
continue;
//[Test]
//[Category("FastRunning")]
//public void TranslationsEncodingTest()
//{
// /*//Convert to UTF-8
// foreach (var issue in WrongEncodingJsonErrors)
// {
// if (issue.DetectionDetail.Encoding == null)
// continue;
ConvertFileEncoding(issue.Path, issue.Path, issue.DetectionDetail.Encoding, Encoding.UTF8);
}*/
// ConvertFileEncoding(issue.Path, issue.Path, issue.DetectionDetail.Encoding, Encoding.UTF8);
// }*/
var message = $"Next files have encoding issues:\r\n\r\n";
// var message = $"Next files have encoding issues:\r\n\r\n";
Assert.AreEqual(0, WrongEncodingJsonErrors.Count,
message + string.Join("\r\n", WrongEncodingJsonErrors
.Select(e => $"File path = '{e.Path}' potentially wrong file encoding: {e.DetectionDetail.EncodingName}")));
}
// Assert.AreEqual(0, WrongEncodingJsonErrors.Count,
// message + string.Join("\r\n", WrongEncodingJsonErrors
// .Select(e => $"File path = '{e.Path}' potentially wrong file encoding: {e.DetectionDetail.EncodingName}")));
//}
/// <summary>
/// Converts a file from one encoding to another.
@ -1086,46 +1121,46 @@ namespace Frontend.Translations.Tests
/// <param name=”destPath”>the destination for the converted file</param>
/// <param name=”sourceEncoding”>the original file encoding</param>
/// <param name=”destEncoding”>the encoding to which the contents should be converted</param>
public static void ConvertFileEncoding(string sourcePath, string destPath,
Encoding sourceEncoding, Encoding destEncoding)
{
// If the destinations parent doesnt exist, create it.
var parent = Path.GetDirectoryName(Path.GetFullPath(destPath));
if (!Directory.Exists(parent))
{
Directory.CreateDirectory(parent);
}
// If the source and destination encodings are the same, just copy the file.
if (sourceEncoding == destEncoding)
{
File.Copy(sourcePath, destPath, true);
return;
}
// Convert the file.
string tempName = null;
try
{
tempName = Path.GetTempFileName();
using (StreamReader sr = new StreamReader(sourcePath, sourceEncoding, false))
{
using (StreamWriter sw = new StreamWriter(tempName, false, destEncoding))
{
int charsRead;
char[] buffer = new char[128 * 1024];
while ((charsRead = sr.ReadBlock(buffer, 0, buffer.Length)) > 0)
{
sw.Write(buffer, 0, charsRead);
}
}
}
File.Delete(destPath);
File.Move(tempName, destPath);
}
finally
{
File.Delete(tempName);
}
}
//public static void ConvertFileEncoding(string sourcePath, string destPath,
// Encoding sourceEncoding, Encoding destEncoding)
//{
// // If the destinations parent doesnt exist, create it.
// var parent = Path.GetDirectoryName(Path.GetFullPath(destPath));
// if (!Directory.Exists(parent))
// {
// Directory.CreateDirectory(parent);
// }
// // If the source and destination encodings are the same, just copy the file.
// if (sourceEncoding == destEncoding)
// {
// File.Copy(sourcePath, destPath, true);
// return;
// }
// // Convert the file.
// string tempName = null;
// try
// {
// tempName = Path.GetTempFileName();
// using (StreamReader sr = new StreamReader(sourcePath, sourceEncoding, false))
// {
// using (StreamWriter sw = new StreamWriter(tempName, false, destEncoding))
// {
// int charsRead;
// char[] buffer = new char[128 * 1024];
// while ((charsRead = sr.ReadBlock(buffer, 0, buffer.Length)) > 0)
// {
// sw.Write(buffer, 0, charsRead);
// }
// }
// }
// File.Delete(destPath);
// File.Move(tempName, destPath);
// }
// finally
// {
// File.Delete(tempName);
// }
//}
/*[Test]
public void TempTest()

View File

@ -1,4 +1,5 @@
using System;
using System.IO;
using WeCantSpell.Hunspell;
@ -6,6 +7,12 @@ namespace Frontend.Translations.Tests
{
public static class SpellCheck
{
public class DicPaths
{
public string DictionaryPath { get; set; }
public string AffixPath { get; set; }
}
public static Models.SpellCheckResult HasSpellIssues(string text, string language, WordList dictionary)
{
var result = new Models.SpellCheckResult(text, language);
@ -21,68 +28,112 @@ namespace Frontend.Translations.Tests
return result;
}
public static string GetDictionaryLanguage(string lng)
public static DicPaths GetDictionaryPaths(string lng)
{
const string dictionariesPath = @"..\..\..\dictionaries";
const string additionalPath = @"..\..\..\additional";
var path = dictionariesPath;
string language;
// az,bg,cs,de,el,en,en-US,es,fi,fr,it,ja,ko,lo,lv,nl,pl,pt,pt-BR,ro,ru,sk,sl,tr,uk,vi,zh-CN
switch (lng)
{
case "az":
return "az_Latn_AZ";
language = "az_Latn_AZ";
break;
case "bg":
return "bg_BG";
language = "bg_BG";
break;
case "cs":
return "cs_CZ";
language = "cs_CZ";
break;
case "de":
return "de_DE";
language = "de_DE";
break;
case "el":
return "el_GR";
language = "el_GR";
break;
case "en":
return "en_GB";
language = "en_GB";
break;
case "en-US":
return "en_US";
language = "en_US";
break;
case "es":
return "es_ES";
//case "fi":
// return "";
language = "es_ES";
break;
case "fi":
language = "fi_FI";
path = additionalPath;
break;
case "fr":
return "fr_FR";
language = "fr_FR";
break;
case "it":
return "it_IT";
language = "it_IT";
break;
//case "ja":
// return "";
// language = "";
//break;
case "ko":
return "ko_KR";
//case "lo":
// return "";
language = "ko_KR";
break;
case "lo":
language = "lo_LA";
path = additionalPath;
break;
case "lv":
return "lv_LV";
language = "lv_LV";
break;
case "nl":
return "nl_NL";
language = "nl_NL";
break;
case "pl":
return "pl_PL";
language = "pl_PL";
break;
case "pt":
return "pt_PT";
language = "pt_PT";
break;
case "pt-BR":
return "pt_BR";
language = "pt_BR";
break;
case "ro":
return "ro_RO";
language = "ro_RO";
break;
case "ru":
return "ru_RU";
language = "ru_RU";
break;
case "sk":
return "sk_SK";
language = "sk_SK";
break;
case "sl":
return "sl_SI";
language = "sl_SI";
break;
case "tr":
return "tr_TR";
language = "tr_TR";
break;
case "uk":
return "uk_UA";
language = "uk_UA";
break;
case "vi":
return "vi_VN";
language = "vi_VN";
break;
//case "zh-CN":
// return "";
// language = "";
//break;
default:
throw new NotSupportedException();
}
var dicPath = Path.Combine(path, language, $"{language}.dic");
var affPath = Path.Combine(path, language, $"{language}.aff");
return new DicPaths
{
DictionaryPath = dicPath,
AffixPath = affPath
};
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
SET UTF-8

File diff suppressed because it is too large Load Diff

View File

@ -7,5 +7,6 @@
"dfb129715a0122a29afe233226c648d9",
"ec73989085d4e1b984c1c9dca10524da",
"d33ce05dc117d3a05c144460e6ce5f4b",
"68b6c4a86f13eb0a609a8fc8d0716b11"
"68b6c4a86f13eb0a609a8fc8d0716b11",
"bbb2745af2925157dfd40fabf1464107"
]

View File

@ -1,52 +1,91 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
<NoWarn>1701;1702;NU1701;</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CsvHelper" Version="15.0.8" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\products\ASC.Files\Core\ASC.Files.Core.csproj" />
<ProjectReference Include="..\..\ASC.MessagingSystem\ASC.MessagingSystem.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="AuditReportResource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>AuditReportResource.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="AuditReportResource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>AuditReportResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.ru.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.de.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.es.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.fr.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.it.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
<NoWarn>1701;1702;NU1701;</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CsvHelper" Version="15.0.8" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\products\ASC.Files\Core\ASC.Files.Core.csproj" />
<ProjectReference Include="..\..\ASC.MessagingSystem\ASC.MessagingSystem.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="AuditReportResource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>AuditReportResource.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="AuditReportResource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>AuditReportResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.ru.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.de.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.es.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.fr.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.it.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.bg.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.cs.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.el.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.fi.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.ja.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.lv.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.nl.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.pl.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.pt-BR.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.sk.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.sl.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.tr.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.uk.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.vi.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="AuditReportResource.zh-CN.resx">
<DependentUpon>AuditReportResource.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ActionCol" xml:space="preserve">
<value>Aktion</value>

View File

@ -0,0 +1,640 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ActionCol" xml:space="preserve">
<value>Ενέργεια</value>
</data>
<data name="ActionIdCol" xml:space="preserve">
<value>ID Ενέργειας</value>
</data>
<data name="ActionTypeCol" xml:space="preserve">
<value>Τύπος Ενέργειας</value>
</data>
<data name="AdministratorAdded" xml:space="preserve">
<value>Προστέθηκε Διαχειριστής: {0}</value>
</data>
<data name="AdministratorDeleted" xml:space="preserve">
<value>Διαγράφηκε Διαχειριστής: {0}</value>
</data>
<data name="AttachActionType" xml:space="preserve">
<value>Επισύναψη</value>
</data>
<data name="BrowserCol" xml:space="preserve">
<value>Φυλλομετρητής</value>
</data>
<data name="ColorThemeChanged" xml:space="preserve">
<value>Το Χρώμα Θέματος Άλλαξε</value>
</data>
<data name="CommonCrmSettingsModule" xml:space="preserve">
<value>Κοινές Ρυθμίσεις</value>
</data>
<data name="CompaniesMerged" xml:space="preserve">
<value>Εταιρείες Που Συγχωνέφθηκαν: {0} - {1}</value>
</data>
<data name="CompaniesModule" xml:space="preserve">
<value>Εταιρείες</value>
</data>
<data name="CompanyAttachedFiles" xml:space="preserve">
<value>Εταιρείες [{0}]. Αρχεία Που Επισυνάφθηκαν: {1}</value>
</data>
<data name="CompanyCreated" xml:space="preserve">
<value>Εταιρεία Που Δημιουργήθηκε: {0}</value>
</data>
<data name="CompanyCreatedTag" xml:space="preserve">
<value>Εταιρεία [{0}]. Ετικέτα Που Δημιουργήθηκε: {1}</value>
</data>
<data name="CompanyDeleted" xml:space="preserve">
<value>Εταιρεία Που Διαγράφηκε: {0}</value>
</data>
<data name="CompanyDeletedTag" xml:space="preserve">
<value>Εταιρείες [{0}]. Ετικέτα Που Διαγράφηκε: {1}</value>
</data>
<data name="CompanyDetachedFile" xml:space="preserve">
<value>Εταιρείες [{0}]. Το Αρχείο Αποσυνδέθηκε: {1}</value>
</data>
<data name="CompanyUpdated" xml:space="preserve">
<value>Η Εταιρεία Που Ενημερώθηκε: {0}</value>
</data>
<data name="CompanyUpdatedPhoto" xml:space="preserve">
<value>Εταιρείες [{0}]. Η Φωτογραφία Ενημερώθηκε</value>
</data>
<data name="CompanyUpdatedTemperatureLevel" xml:space="preserve">
<value>Εταιρείες [{0}]. Το Επίπεδο Θερμοκρασίας Ενημερώθηκε</value>
</data>
<data name="ContactsCreatedCrmTasks" xml:space="preserve">
<value>Επαφές [{0}]. Εργασία Που Δημιουργήθηκε: {1}</value>
</data>
<data name="ContactsCreatedTag" xml:space="preserve">
<value>Επαφές. Ετικέτα Που Δημιουργήθηκε: {0}</value>
</data>
<data name="ContactsDeleted" xml:space="preserve">
<value>Διεγραμμένες Επαφές: {0}</value>
</data>
<data name="ContactsDeletedTag" xml:space="preserve">
<value>Επαφές. Ετικέτα Που Διαγράφηκε: {0}</value>
</data>
<data name="ContactsExportedToCsv" xml:space="preserve">
<value>Επαφές Που Εξήχθησαν Σε Αρχείο CSV: {0}</value>
</data>
<data name="ContactsImportedFromCSV" xml:space="preserve">
<value>Επαφής Που Εισήχθησαν Από Αρχείο CSV </value>
</data>
<data name="ContactsModule" xml:space="preserve">
<value>Επαφές</value>
</data>
<data name="ContactsSettingsModule" xml:space="preserve">
<value>Ρυθμίσεις</value>
</data>
<data name="ContactTemperatureLevelCreated" xml:space="preserve">
<value>Το Επίπεδο Θερμοκρασίας Επαφής Δημιουργήθηκε: {0}</value>
</data>
<data name="ContactTemperatureLevelDeleted" xml:space="preserve">
<value>Το Επίπεδο Θερμοκρασίας Επαφής Διαγράφηκε: {0}</value>
</data>
<data name="ContactTemperatureLevelSettingsUpdated" xml:space="preserve">
<value>Οι Ρυθμίσεις Επιπέδου Θερμοκρασίας Επαφής Ενημερώθηκαν</value>
</data>
<data name="ContactTemperatureLevelUpdated" xml:space="preserve">
<value>Το Επίπεδο Θερμοκρασίας Επαφής Που Ενημερώθηκε: {0}</value>
</data>
<data name="ContactTemperatureLevelUpdatedColor" xml:space="preserve">
<value>Επίπεδο Θερμοκρασίας Επαφής [{0}]. Το Χρώμα Ενημερώηκε</value>
</data>
<data name="ContactTypeCreated" xml:space="preserve">
<value>Τύπος Επαφής Που Δημιουργήθηκε: {0}</value>
</data>
<data name="ContactTypeDeleted" xml:space="preserve">
<value>Τύπος Επαφης Που Διαγράφηκε: {0}</value>
</data>
<data name="ContactTypesModule" xml:space="preserve">
<value>Τύποι Επαφών</value>
</data>
<data name="ContactTypeUpdated" xml:space="preserve">
<value>Τύπος Επαφής Που Ενημερώθηκε: {0}</value>
</data>
<data name="CopyActionType" xml:space="preserve">
<value>Αντιγραφή</value>
</data>
<data name="CreateActionType" xml:space="preserve">
<value>Δημιουργία</value>
</data>
<data name="CrmAllDataExported" xml:space="preserve">
<value>Όλα τα Δεδομένα Εξάχθηκαν</value>
</data>
<data name="CrmProduct" xml:space="preserve">
<value>CRM</value>
</data>
<data name="CrmTasksExportedToCsv" xml:space="preserve">
<value>Οι Εργασίες CRM Εξάχθηκαν στο Αρχείο CSV: {0}</value>
</data>
<data name="CrmTasksImportedFromCSV" xml:space="preserve">
<value>Οι CRM Εργασίες Εισάχθηκαν από το Αρχείο CSV</value>
</data>
<data name="CrmTasksModule" xml:space="preserve">
<value>Εργασίες CRM</value>
</data>
<data name="DateCol" xml:space="preserve">
<value>Ημερομηνία</value>
</data>
<data name="DefaultStartPageSettingsUpdated" xml:space="preserve">
<value>Οι Ρυθμίσεις Προκαθορισμένης Αρχικής Σελίδας Ενημερώθηκαν</value>
</data>
<data name="DeleteActionType" xml:space="preserve">
<value>Διαγραφή</value>
</data>
<data name="DetachActionType" xml:space="preserve">
<value>Αποσύνδεση</value>
</data>
<data name="DiscussionsModule" xml:space="preserve">
<value>Συζητήσεις</value>
</data>
<data name="DnsSettingsUpdated" xml:space="preserve">
<value>Οι Ρυθμίσεις DNS Ενημερώθηκαν</value>
</data>
<data name="DocumentsProduct" xml:space="preserve">
<value>Έγγραφα</value>
</data>
<data name="DocumentsSettingsModule" xml:space="preserve">
<value>Ρυθμίσεις</value>
</data>
<data name="DownloadActionType" xml:space="preserve">
<value>Λήψη</value>
</data>
<data name="ExportActionType" xml:space="preserve">
<value>Εξαγωγή</value>
</data>
<data name="FileCopied" xml:space="preserve">
<value>Αρχεία [{0}]. Αντιγράφηκε Από Τον Φάκελο "{1}" Στον Φάκελο: "{2}"</value>
</data>
<data name="FileCreated" xml:space="preserve">
<value>Δημιουργήθηκε Αρχείο: {0}</value>
</data>
<data name="FileDeleted" xml:space="preserve">
<value>Διαγράφηκε Αρχείο: {0}</value>
</data>
<data name="FileDownloaded" xml:space="preserve">
<value>Αρχείο Ελήφθη: {0}</value>
</data>
<data name="FileDownloadedAs" xml:space="preserve">
<value>Αρχεία [{0}]. Ελήφθη Ως: {1}</value>
</data>
<data name="FileImported" xml:space="preserve">
<value>Φάκελοι [{0}]. Αρχείο Που Εισήχθη: {1}. Πάροχος: {2}</value>
</data>
<data name="FileLocked" xml:space="preserve">
<value>Το Αρχείο Κλειδώθηκε: {0}</value>
</data>
<data name="FileMoved" xml:space="preserve">
<value>Αρχεία [{0}]. Μετακινήθηκε Από Τον Φάκελο "{1}" Στον Φάκελο: "{2}"</value>
</data>
<data name="FileRenamed" xml:space="preserve">
<value>Το Αρχείο Μετονομάστηκε: {0}</value>
</data>
<data name="FilesDocumentSigned" xml:space="preserve">
<value>Το έγγραφο {1} υπογράφθηκε μέσω {0}</value>
</data>
<data name="FilesModule" xml:space="preserve">
<value>Αρχεία</value>
</data>
<data name="FilesRequestSign" xml:space="preserve">
<value>Το έγγραφο {1} στάλθηκε προς υπογραφή μέσω {0}</value>
</data>
<data name="FileUnlocked" xml:space="preserve">
<value>Το Αρχείο Ξεκλειδώθηκε: {0}</value>
</data>
<data name="FileUpdated" xml:space="preserve">
<value>Το Αρχείο Ενημερώθηκε: {0}</value>
</data>
<data name="FileUpdatedAccess" xml:space="preserve">
<value>Αρχεία [{0}]. Η Πρόσβαση Ενημερώθηκε</value>
</data>
<data name="FileUploaded" xml:space="preserve">
<value>Το Αρχείο Μεταφορτώθηκε: {0}</value>
</data>
<data name="FolderCopied" xml:space="preserve">
<value>Φάκελοι [{0}]. Αντιγράφηκε Στον Φάκελο: {1}</value>
</data>
<data name="FolderCreated" xml:space="preserve">
<value>Ο Φάκελος Δημιουργήθηκε: {0}</value>
</data>
<data name="FolderDeleted" xml:space="preserve">
<value>Ο Φάκελος Διαγράφηκε: {0}</value>
</data>
<data name="FolderMoved" xml:space="preserve">
<value>Φάκελοι [{0}]. Μετακινήθηκε Στον Φάκελο: {1}</value>
</data>
<data name="FolderRenamed" xml:space="preserve">
<value>Ο Φάκελος Μετονομάστηκε: {0}</value>
</data>
<data name="FoldersModule" xml:space="preserve">
<value>Φάκελοι</value>
</data>
<data name="FolderUpdatedAccess" xml:space="preserve">
<value>Φάκελοι [{0}]. Η Πρόσβαση Ενημερώθηκε</value>
</data>
<data name="FollowActionType" xml:space="preserve">
<value>Ακολούθηση</value>
</data>
<data name="GeneralModule" xml:space="preserve">
<value>Γενικά</value>
</data>
<data name="GroupCreated" xml:space="preserve">
<value>Δημιουργήθηκε Ομάδα: {0}</value>
</data>
<data name="GroupDeleted" xml:space="preserve">
<value>Διαγράφηκε Ομάδα: {0}</value>
</data>
<data name="GroupsModule" xml:space="preserve">
<value>Ομάδες</value>
</data>
<data name="GroupUpdated" xml:space="preserve">
<value>Ομάδα Που Ενημερώθηκε: {0}</value>
</data>
<data name="GuestAccount" xml:space="preserve">
<value>Λογαριασμός Επισκέπτη</value>
</data>
<data name="GuestCreated" xml:space="preserve">
<value>Επισκέπτης Που Δημιουργήθηκε: {0}</value>
</data>
<data name="GuestImported" xml:space="preserve">
<value>Επισκέπτης Που Εισήχθη: {0}</value>
</data>
<data name="ImportActionType" xml:space="preserve">
<value>Εισαγωγή</value>
</data>
<data name="InvoiceCreated" xml:space="preserve">
<value>Το Τιμολόγιο Δημιουργήθηκε: {0}</value>
</data>
<data name="InvoiceDeleted" xml:space="preserve">
<value>Το Τιμολόγιο Διαγράφηκε: {0}</value>
</data>
<data name="InvoiceDownloaded" xml:space="preserve">
<value>Το Τιμολόγιο Ελήφθη: {0}</value>
</data>
<data name="InvoicesDeleted" xml:space="preserve">
<value>Τιμολόγια που Διαγράφηκαν: {0}</value>
</data>
<data name="InvoiceSettingsModule" xml:space="preserve">
<value>Ρυθμίσεις Τιμολογίου</value>
</data>
<data name="InvoicesModule" xml:space="preserve">
<value>Τιμολόγια</value>
</data>
<data name="IpCol" xml:space="preserve">
<value>IP</value>
</data>
<data name="LanguageSettingsUpdated" xml:space="preserve">
<value>Οι Ρυθμίσεις Γλώσσας Ενημερώθηκαν</value>
</data>
<data name="LicenseKeyUploaded" xml:space="preserve">
<value>Το κλειδί της άδειας μεταφορτώθηκε</value>
</data>
<data name="LinkActionType" xml:space="preserve">
<value>Σύνδεσμος</value>
</data>
<data name="LoginFail" xml:space="preserve">
<value>Αποτυχία Σύνδεσης</value>
</data>
<data name="LoginFailBruteForce" xml:space="preserve">
<value>Αποτυχία Σύνδεσης. Πάρα πολλές προσπάθειες</value>
</data>
<data name="LoginFailDisabledProfile" xml:space="preserve">
<value>Αποτυχία Σύνδεσης. Το Προφίλ Απενεργοποιήθηκε.</value>
</data>
<data name="LoginFailInvalidCombination" xml:space="preserve">
<value>Η Σύνδεση Απέτυχε. Μη έγκυρος συνδυασμός ονόματος χρήστη-συνθηματικού</value>
</data>
<data name="LoginFailRecaptcha" xml:space="preserve">
<value>Αποτυχία Σύνδεσης. Το Recaptcha είναι μη έγκυρο</value>
</data>
<data name="LoginFailViaApi" xml:space="preserve">
<value>Αποτυχημένη Σύνδεση μέσω του API</value>
</data>
<data name="LoginFailViaSms" xml:space="preserve">
<value>Η σύνδεση μέσω SMS απέτυχε</value>
</data>
<data name="LoginFailViaSSO" xml:space="preserve">
<value>Η Σύνδεση μέσω SSO Απέτυχε</value>
</data>
<data name="LoginHistoryReportName" xml:space="preserve">
<value>Αναφορά Ιστορικού Σύνδεσης ({0}-{1})</value>
</data>
<data name="LoginSuccess" xml:space="preserve">
<value>Επιτυχής Σύνδεση</value>
</data>
<data name="LoginSuccessViaApi" xml:space="preserve">
<value>Επιτυχής Σύνδεση μέσω API</value>
</data>
<data name="LoginSuccessViaSms" xml:space="preserve">
<value>Σύνδεση μέσω SMS επιτυχής</value>
</data>
<data name="LoginSuccessViaSSO" xml:space="preserve">
<value>Επιτυχής Σύνδεση μέσω SSO</value>
</data>
<data name="Logout" xml:space="preserve">
<value>Αποσύνδεση</value>
</data>
<data name="MilestonesModule" xml:space="preserve">
<value>Ορόσημα</value>
</data>
<data name="MoveActionType" xml:space="preserve">
<value>Μετακίνηση</value>
</data>
<data name="OpportunitiesModule" xml:space="preserve">
<value>Ευκαιρίες</value>
</data>
<data name="OpportunityAttachedFiles" xml:space="preserve">
<value>Ευκαιρίες [{0}]. Αρχεία Που Επισυνάφθηκαν: {1}</value>
</data>
<data name="OpportunityCreated" xml:space="preserve">
<value>Δημιουργήθηκε Ευκαιρία: {0}</value>
</data>
<data name="OpportunityDeleted" xml:space="preserve">
<value>Διαγράφηκε Ευκαιρία: {0}</value>
</data>
<data name="OpportunityDeletedTag" xml:space="preserve">
<value>Ευκαιρίες [{0}]. Διαγράφηκε Ετικέτα: {1}</value>
</data>
<data name="OpportunityDetachedFile" xml:space="preserve">
<value>Ευκαιρίες [{0}]. Αρχείο Που Αποσυνδέθηκε: {1}</value>
</data>
<data name="OpportunityLinkedCompany" xml:space="preserve">
<value>Ευκαιρίες [{0}]. Εταιρεία Που Συνδέθηκε: {1}</value>
</data>
<data name="OpportunityOpenedAccess" xml:space="preserve">
<value>Ευκαιρίες [{0}]. Η Πρόσβαση Άνοιξε</value>
</data>
<data name="OpportunityRestrictedAccess" xml:space="preserve">
<value>Ευκαιρίες [{0}]. Πρόσβαση Που Περιορίστηκε: {1}</value>
</data>
<data name="OpportunityUnlinkedCompany" xml:space="preserve">
<value>Ευκαιρίες [{0}]. Εταιρεία Που Αποσυνδέθηκε: {1}</value>
</data>
<data name="OrganizationProfileUpdatedAddress" xml:space="preserve">
<value>Προφίλ Οργανισμού. Η Διεύθυνση Ενημερώθηκε</value>
</data>
<data name="OtherCrmSettingsModule" xml:space="preserve">
<value>Άλλες Ρυθμίσεις</value>
</data>
<data name="OthersProduct" xml:space="preserve">
<value>Άλλα</value>
</data>
<data name="OwnerChanged" xml:space="preserve">
<value>Αλλαγή Κατόχου: {0}</value>
</data>
<data name="PageCol" xml:space="preserve">
<value>Σελίδα</value>
</data>
<data name="PeopleProduct" xml:space="preserve">
<value>Άνθρωποι</value>
</data>
<data name="PersonCreated" xml:space="preserve">
<value>Δημιουργήθηκε Άτομο: {0}</value>
</data>
<data name="PersonCreatedTag" xml:space="preserve">
<value>Άτομα [{0}]. Ετικέτα Που Δημιουργήθηκε: {1}</value>
</data>
<data name="PersonDeleted" xml:space="preserve">
<value>Διαγράφηκε Άτομο: {0}</value>
</data>
<data name="PersonDeletedTag" xml:space="preserve">
<value>Άτομα [{0}]. Ετικέτα Που Διαγράφηκε: {1}</value>
</data>
<data name="PersonsModule" xml:space="preserve">
<value>Άτομα</value>
</data>
<data name="PersonUpdated" xml:space="preserve">
<value>Ενημερώθηκε Άτομο: {0}</value>
</data>
<data name="PlatformCol" xml:space="preserve">
<value>Πλατφόρμα</value>
</data>
<data name="PrivacyRoomDisable" xml:space="preserve">
<value>Το Ιδιωτικό Δωμάτιο είναι απενεργοποιημένο</value>
</data>
<data name="PrivacyRoomEnable" xml:space="preserve">
<value>Το Ιδιωτικό Δωμάτιο είναι ενεργοποιημένο</value>
</data>
<data name="ProductAccessOpened" xml:space="preserve">
<value>Προϊόντα [{0}]. Η Πρόσβαση Άνοιξε</value>
</data>
<data name="ProductAccessOpenedForUsers" xml:space="preserve">
<value>Προϊόντα: [{0}]. Χρήστες [{1}]. Η Πρόσβαση Άνοιξε</value>
</data>
<data name="ProductAccessRestricted" xml:space="preserve">
<value>Προϊόντα [{0}]. Η Πρόσβαση Περιορίσητκε</value>
</data>
<data name="ProductAddedAdministrator" xml:space="preserve">
<value>Προϊόντα [{0}]. Διαχειριστής Που Προστέθηκε: {1}</value>
</data>
<data name="ProductCol" xml:space="preserve">
<value>Προϊόν</value>
</data>
<data name="ProductDeletedAdministrator" xml:space="preserve">
<value>Προϊόντα [{0}]. Διαχειριστής Που Διαγράφηκε: {1}</value>
</data>
<data name="ProductsListUpdated" xml:space="preserve">
<value>Η Λίστα Προϊόντων Ενημερώθηκε</value>
</data>
<data name="ProductsModule" xml:space="preserve">
<value>Προϊόντα</value>
</data>
<data name="ProjectCreated" xml:space="preserve">
<value>Το Έργο Δημιουργήθηκε: {0}</value>
</data>
<data name="ProjectCreatedFromTemplate" xml:space="preserve">
<value>Πρότυπα [{0}]. Έργο Που Δημιουργήθηκε: {1}</value>
</data>
<data name="ProjectDeleted" xml:space="preserve">
<value>Το Έργο Διαγράφηκε: {0}</value>
</data>
<data name="ProjectFollowed" xml:space="preserve">
<value>Το Έργο Ακολουθήθηκε: {0}</value>
</data>
<data name="ProjectLinkedCompany" xml:space="preserve">
<value>Έργα [{0}]. Εταιρεία Που Συνδέθηκε: {1}</value>
</data>
<data name="ProjectsModule" xml:space="preserve">
<value>Έργα</value>
</data>
<data name="ProjectsProduct" xml:space="preserve">
<value>Έργα</value>
</data>
<data name="ProjectsSettingsModule" xml:space="preserve">
<value>Ρυθμίσεις</value>
</data>
<data name="ProjectUnlinkedCompany" xml:space="preserve">
<value>Έργα [{0}]. Εταιρεία Που Αποσυνδέθηκε: {1}</value>
</data>
<data name="ProjectUpdated" xml:space="preserve">
<value>Έργο Που Ενημερώθηκε: {0}</value>
</data>
<data name="ReportsModule" xml:space="preserve">
<value>Αναφορές</value>
</data>
<data name="SendActionType" xml:space="preserve">
<value>Αποστολή</value>
</data>
<data name="SettingsProduct" xml:space="preserve">
<value>Ρυθμίσεις</value>
</data>
<data name="SSODisabled" xml:space="preserve">
<value>Το SSO Απενεργοποιήθηκε</value>
</data>
<data name="SSOEnabled" xml:space="preserve">
<value>Το SSO Ενεργοποιήθηκε</value>
</data>
<data name="StartBackupSetting" xml:space="preserve">
<value>Εκκίνηση δημιουργίας αντιγράφων ασφαλείας</value>
</data>
<data name="TasksModule" xml:space="preserve">
<value>Εργασίες</value>
</data>
<data name="TimeZoneSettingsUpdated" xml:space="preserve">
<value>Οι Ρυθμίσεις Ζώνης Ώρας Ενημερώθηκαν</value>
</data>
<data name="UnfollowActionType" xml:space="preserve">
<value>Άρση Ακολούθησης</value>
</data>
<data name="UnknownAccount" xml:space="preserve">
<value>Άγνωστος Λογαριασμός</value>
</data>
<data name="UnlinkActionType" xml:space="preserve">
<value>Κατάργηση συνδέσμου</value>
</data>
<data name="UpdateAccessActionType" xml:space="preserve">
<value>Ενημερωμένη Πρόσβαση</value>
</data>
<data name="UpdateActionType" xml:space="preserve">
<value>Ενημέρωση</value>
</data>
<data name="UploadActionType" xml:space="preserve">
<value>Μεταφόρτωση</value>
</data>
<data name="UserActivated" xml:space="preserve">
<value>Χρήστης Που Ενεργοποιήθηκε: {0}</value>
</data>
<data name="UserCol" xml:space="preserve">
<value>Χρήστης</value>
</data>
<data name="UserCreated" xml:space="preserve">
<value>Χρήστης Που Δημιουργήθηκε: {0}</value>
</data>
<data name="UserCreatedViaInvite" xml:space="preserve">
<value>Χρήστης Που Δημιουργήθηκε Μέσω Πρόσκλησης: {0}</value>
</data>
<data name="UserDataRemoving" xml:space="preserve">
<value>Τα δεδομένα χρήστη για {0} έχουν διαγραφεί</value>
</data>
<data name="UserDeleted" xml:space="preserve">
<value>Χρήστης Που Διαγράφηκε: {0}</value>
</data>
<data name="UserFileUpdated" xml:space="preserve">
<value>Χρήστες [{0}]. Αρχείο Που Ενημερώθηκε: {1}</value>
</data>
<data name="UserImported" xml:space="preserve">
<value>Χρήστης Που Εισήχθη: {0}</value>
</data>
<data name="UsersDeleted" xml:space="preserve">
<value>Χρήστες Που Διαγράφηκαν: {0}</value>
</data>
<data name="UserSentActivationInstructions" xml:space="preserve">
<value>Χρήστες [{0}]. Οι Οδηγίες Ενεργοποίησης Στάλθηκαν</value>
</data>
<data name="UserSentEmailInstructions" xml:space="preserve">
<value>Χρήστες [{0}]. Οι Οδηγίες Αλλαγής Email Στάλθηκαν</value>
</data>
<data name="UserSentPasswordInstructions" xml:space="preserve">
<value>Χρήστες [{0}]. Οι Οδηγίες Αλλαγής Συνθηματικού Στάλθηκαν</value>
</data>
<data name="UsersModule" xml:space="preserve">
<value>Χρήστες</value>
</data>
<data name="UsersSentActivationInstructions" xml:space="preserve">
<value>Χρήστες [{0}]. Οι Οδηγίες Ενεργοποίησης Στάλθηκαν</value>
</data>
<data name="UsersUpdatedStatus" xml:space="preserve">
<value>Χρήστες [{0}]. Ενημερωμένη Κατάσταση</value>
</data>
<data name="UsersUpdatedType" xml:space="preserve">
<value>Χρήστες [{0}]. Ο Τύπος Ενημερώθηκε</value>
</data>
<data name="UserTfaDisconnected" xml:space="preserve">
<value>Η εφαρμογή αυθεντικοποίησης αποσυνδέθηκε: {0}</value>
</data>
<data name="UserTfaGenerateCodes" xml:space="preserve">
<value>Νέοι εφεδρικοί κωδικοί δημιουργούνται</value>
</data>
<data name="UserUpdated" xml:space="preserve">
<value>Χρήστης Που Ενημερώθηκε: {0}</value>
</data>
<data name="UserUpdatedEmail" xml:space="preserve">
<value>Το Email Ενημερώθηκε</value>
</data>
<data name="UserUpdatedLanguage" xml:space="preserve">
<value>Η Γλώσσα Ενημερώθηκε</value>
</data>
<data name="UserUpdatedMobileNumber" xml:space="preserve">
<value>Χρήστες [{0}]. Αριθμός Κινητού Τηλεφώνου Που Ενημερώθηκε: {1}</value>
</data>
<data name="UserUpdatedPassword" xml:space="preserve">
<value>Το Συνθηματικό Ενημερώθηκε</value>
</data>
</root>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ActionCol" xml:space="preserve">
<value>Acción</value>

File diff suppressed because it is too large Load Diff

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ActionCol" xml:space="preserve">
<value>Action</value>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ActionCol" xml:space="preserve">
<value>Azione</value>
@ -1027,6 +1027,12 @@
<data name="PortalDeleted" xml:space="preserve">
<value>Portale eliminato</value>
</data>
<data name="PrivacyRoomDisable" xml:space="preserve">
<value>Private Room è disabilitata</value>
</data>
<data name="PrivacyRoomEnable" xml:space="preserve">
<value>Private Room è abilitata</value>
</data>
<data name="ProductAccessOpened" xml:space="preserve">
<value>Prodotti [{0}]. Accesso aperto</value>
</data>
@ -1159,6 +1165,12 @@
<data name="StartBackupSetting" xml:space="preserve">
<value>Backup avviato</value>
</data>
<data name="StartStorageDecryption" xml:space="preserve">
<value>Avviare la decrittografia dello spazio di archiviazione</value>
</data>
<data name="StartStorageEncryption" xml:space="preserve">
<value>Avviare la crittografia dello spazio di archiviazione</value>
</data>
<data name="StartTransferSetting" xml:space="preserve">
<value>Migrazione portale all'altro regione avviata</value>
</data>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ActionCol" xml:space="preserve">
<value>Action</value>

View File

@ -53,10 +53,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.6.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ActionCol" xml:space="preserve">
<value>Действие</value>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -103,7 +103,7 @@
"url": "/socket.io",
"internal": "http://localhost:9899/"
},
"cultures": "de,en,fr,it,pt-BR,ru",
"cultures": "az,cs,el,es,fr,ja,lo,nl,pt,ro,sk,tr,vi,bg,de,en,fi,it,ko,lv,pl,pt-BR,ru,sl,uk,zh-CN",
"url-shortener": {
"value": "/sh/",
"internal": "http://localhost:9999/"
@ -164,7 +164,57 @@
"enabled": "true"
},
"thumbnail": {
"thumbnaillHeight": 260,
"thumbnaillWidth": 360
"sizes" :
[
{
"height": 260,
"width": 360
},
{
"height": 300,
"width": 216
},
{
"height": 300,
"width": 240
},
{
"height": 300,
"width": 264
},
{
"height": 300,
"width": 288
},
{
"height": 300,
"width": 312
},
{
"height": 300,
"width": 336
},
{
"height": 300,
"width": 360
},
{
"height": 300,
"width": 280
},
{
"height": 300,
"width": 320
},
{
"height": 300,
"width": 400
},
{
"height": 300,
"width": 440
},
]
}
}

View File

@ -24,7 +24,7 @@ map $request_uri $header_x_frame_options {
map $request_uri $cache_control {
default "no-cache, no-store, must-revalidate";
~*\/(api\/2\.0.*|storage|login\.ashx|products\/.+\/httphandlers\/filehandler\.ashx|ChunkedUploader.ashx|apisystem|sh|remoteEntry\.js|debuginfo\.md) "no-cache, no-store, must-revalidate";
~*\/(api\/2\.0.*|storage|login\.ashx|products\/.+\/httphandlers\/filehandler\.ashx|ChunkedUploader.ashx|ThirdPartyAppHandler|apisystem|sh|remoteEntry\.js|debuginfo\.md) "no-cache, no-store, must-revalidate";
~*\/(locales.*\.json) "public, no-transform";
~*\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|md|css|js)$ "public, no-transform";
}
@ -86,7 +86,7 @@ server {
location / {
proxy_pass http://localhost:5001;
location ~* /(manifest.json|sw.js|appIcon.png|bg-error.png|favicon.ico|debuginfo.md) {
location ~* /(manifest.json|sw.js|appIcon(.)*\.png|icon.svg|bg-error.png|favicon.ico|debuginfo.md) {
try_files /$basename /index.html =404;
}
@ -204,6 +204,11 @@ server {
location /backupFileUpload.ashx {
proxy_pass http://localhost:5012;
proxy_set_header X-REWRITER-URL $X_REWRITER_URL;
}
location /ThirdPartyApp {
proxy_pass http://localhost:5007;
proxy_set_header X-REWRITER-URL $X_REWRITER_URL;
}
location /products {

19126
i18next/common.babel Normal file

File diff suppressed because it is too large Load Diff

866
i18next/editor.babel Normal file
View File

@ -0,0 +1,866 @@
<?xml version="1.0" encoding="UTF-8"?>
<babeledit_project be_version="3.0.0" version="1.2">
<!--
BabelEdit project file
https://www.codeandweb.com/babeledit
This file contains meta data for all translations, but not the translation texts itself.
They are stored in framework-specific message files (.json / .vue / .yaml / .properties)
-->
<preset_collections/>
<framework>i18next</framework>
<filename>editor.babel</filename>
<source_root_dir>../web/ASC.Web.Editor</source_root_dir>
<folder_node>
<name/>
<children>
<file_node>
<name>Editor</name>
<children>
<concept_node>
<name>DocumentsFileType</name>
<definition_loaded>false</definition_loaded>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>br-FR</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>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-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>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>FileLocation</name>
<definition_loaded>false</definition_loaded>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>br-FR</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>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-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>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>FileName</name>
<definition_loaded>false</definition_loaded>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>br-FR</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>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-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>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>ImageFileType</name>
<definition_loaded>false</definition_loaded>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>br-FR</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>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-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>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>MailMergeFileType</name>
<definition_loaded>false</definition_loaded>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>br-FR</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>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-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>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>OpenSavedDocument</name>
<definition_loaded>false</definition_loaded>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>br-FR</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>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-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>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>SelectFilesType</name>
<definition_loaded>false</definition_loaded>
<description/>
<comment/>
<default_text/>
<translations>
<translation>
<language>bg-BG</language>
<approved>false</approved>
</translation>
<translation>
<language>br-FR</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>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-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>sk-SK</language>
<approved>false</approved>
</translation>
<translation>
<language>vi-VN</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
<filename/>
</file_node>
</children>
</folder_node>
<isTemplateProject>false</isTemplateProject>
<languages>
<language>
<code>bg-BG</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/bg</source_file>
</language>
<language>
<code>br-FR</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/pt-BR</source_file>
</language>
<language>
<code>cs-CZ</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/cs</source_file>
</language>
<language>
<code>de-DE</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/de</source_file>
</language>
<language>
<code>el-GR</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/el</source_file>
</language>
<language>
<code>en-US</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/en</source_file>
</language>
<language>
<code>es-ES</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/es</source_file>
</language>
<language>
<code>fi-FI</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/fi</source_file>
</language>
<language>
<code>fr-FR</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/fr</source_file>
</language>
<language>
<code>it-IT</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/it</source_file>
</language>
<language>
<code>ja-JP</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/ja</source_file>
</language>
<language>
<code>ko-KR</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/ko</source_file>
</language>
<language>
<code>lo-LA</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/lo</source_file>
</language>
<language>
<code>lv-LV</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/lv</source_file>
</language>
<language>
<code>nl-NL</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/nl</source_file>
</language>
<language>
<code>pl-PL</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/pl</source_file>
</language>
<language>
<code>pt-PT</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/pt</source_file>
</language>
<language>
<code>ro-RO</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/ro</source_file>
</language>
<language>
<code>ru-RU</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/ru</source_file>
</language>
<language>
<code>sk-SK</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/sk</source_file>
</language>
<language>
<code>vi-VN</code>
<source_id/>
<source_file>../web/ASC.Web.Editor/public/locales/vi</source_file>
</language>
</languages>
<translation_files>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/bg</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/cs</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/de</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/el</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/en</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/es</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/fi</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/fr</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/it</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/ja</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/ko</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/lo</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/lv</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/nl</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/pl</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/pt-BR</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/pt</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/ro</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/ru</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/sk</file>
</translation_file>
<translation_file>
<file>../web/ASC.Web.Editor/public/locales/vi</file>
</translation_file>
</translation_files>
<editor_configuration>
<save_empty_translations>false</save_empty_translations>
<translation_order>alphabetically</translation_order>
<copy_templates>
<copy_template>'%1'</copy_template>
<copy_template>{ this.props.t('%1') }</copy_template>
<copy_template>{ t('%1') }</copy_template>
</copy_templates>
<custom_languages/>
</editor_configuration>
<primary_language>en-US</primary_language>
<configuration>
<indent>space2</indent>
<format>namespaced-json</format>
</configuration>
</babeledit_project>

37689
i18next/files.babel Normal file

File diff suppressed because it is too large Load Diff

2967
i18next/login.babel Normal file

File diff suppressed because it is too large Load Diff

18342
i18next/people.babel Normal file

File diff suppressed because it is too large Load Diff

29808
i18next/studio.babel Normal file

File diff suppressed because it is too large Load Diff

View File

@ -17,6 +17,7 @@
"build:personal": "lerna run build:personal --parallel --scope {@appserver/studio,@appserver/people,@appserver/files,@appserver/editor}",
"build:test": "lerna run build:test --parallel --ignore @appserver/common --ignore @appserver/components --ignore @appserver/browserslist-config-asc --ignore @appserver/debug-info",
"build:test.translation": "lerna run build:test.translation --parallel --ignore @appserver/common --ignore @appserver/components --ignore @appserver/browserslist-config-asc --ignore @appserver/debug-info",
"build:test.translation:personal": "lerna run build:test.translation:personal --parallel --ignore @appserver/common --ignore @appserver/components --ignore @appserver/browserslist-config-asc --ignore @appserver/debug-info",
"bump": "lerna version --no-push --no-git-tag-version",
"clean": "lerna run clean --parallel",
"deploy": "shx rm -rf build/deploy/products && shx rm -rf build/deploy/public && shx rm -rf build/deploy/studio && lerna run deploy --parallel --ignore @appserver/common --ignore @appserver/components --ignore @appserver/browserslist-config-asc && shx cp -r public build/deploy",
@ -44,7 +45,8 @@
"e2e.test": "lerna run test:sequential --parallel --scope {@appserver/people,@appserver/files,@appserver/login}",
"e2e.test:sequential": "yarn workspace @appserver/people test:sequential && yarn workspace @appserver/files test:sequential && yarn workspace @appserver/login test:sequential",
"e2e.test:model": "yarn workspace @appserver/people test:model && yarn workspace @appserver/files test:model && yarn workspace @appserver/login test:model",
"e2e.test:translation": "lerna run test:translation --parallel --scope {@appserver/people,@appserver/files}"
"e2e.test:translation": "lerna run test:translation:model --parallel --scope {@appserver/people,@appserver/files} && lerna run test:translation --parallel --scope {@appserver/people,@appserver/files}",
"e2e.test:translation:personal": "lerna run test:translation:model:personal --parallel --scope {@appserver/people,@appserver/files} && lerna run test:translation:personal --parallel --scope {@appserver/people,@appserver/files}"
},
"devDependencies": {
"auto-changelog": "https://github.com/ONLYOFFICE/auto-changelog.git#master",

View File

@ -2,19 +2,14 @@ import React from "react";
import PropTypes from "prop-types";
import styled, { css } from "styled-components";
import { isMobileOnly } from "react-device-detect";
import { mobile } from "@appserver/components/utils/device";
import { isMobile } from "react-device-detect";
import { tablet } from "@appserver/components/utils/device";
import { Base } from "@appserver/components/themes";
import Selector from "./sub-components/Selector";
import Backdrop from "@appserver/components/backdrop";
const mobileView = css`
top: 64px;
width: 100% !important;
height: calc(100% - 64px) !important;
`;
import CrossIcon from "@appserver/components/public/static/images/cross.react.svg";
const StyledBlock = styled.div`
position: fixed;
@ -32,11 +27,22 @@ const StyledBlock = styled.div`
background: ${(props) => props.theme.filterInput.filter.background};
@media ${mobile} {
${mobileView}
@media ${tablet} {
max-width: calc(100% - 69px);
}
${isMobileOnly && mobileView}
${isMobile &&
css`
max-width: calc(100% - 69px);
`}
@media (max-width: 428px) {
bottom: 0;
top: unset;
height: calc(100% - 64px);
width: 100%;
max-width: 100%;
}
.people-selector {
height: 100%;
@ -51,6 +57,48 @@ const StyledBlock = styled.div`
StyledBlock.defaultProps = { theme: Base };
const StyledControlContainer = styled.div`
display: flex;
width: 24px;
height: 24px;
position: absolute;
border-radius: 100px;
cursor: pointer;
align-items: center;
justify-content: center;
z-index: 450;
top: 14px;
left: -34px;
${isMobile &&
css`
top: 14px;
`}
@media (max-width: 428px) {
top: -34px;
right: 10px;
left: unset;
}
`;
StyledControlContainer.defaultProps = { theme: Base };
const StyledCrossIcon = styled(CrossIcon)`
width: 17px;
height: 17px;
z-index: 455;
path {
fill: ${(props) => props.theme.catalog.control.fill};
}
`;
StyledCrossIcon.defaultProps = { theme: Base };
class AdvancedSelector extends React.Component {
constructor(props) {
super(props);
@ -83,6 +131,10 @@ class AdvancedSelector extends React.Component {
/>
<StyledBlock>
<Selector {...this.props} />
<StyledControlContainer onClick={this.onClose}>
<StyledCrossIcon />
</StyledControlContainer>
</StyledBlock>
</>
)}

View File

@ -4,7 +4,7 @@ import Avatar from "@appserver/components/avatar";
import Text from "@appserver/components/text";
import Checkbox from "@appserver/components/checkbox";
import Loader from "@appserver/components/loader";
import Loaders from "@appserver/common/components/Loaders";
const Option = ({
style,
isMultiSelect,
@ -16,7 +16,7 @@ const Option = ({
onOptionChange,
onLinkClick,
isLoader,
loadingLabel,
countLoaderRows,
}) => {
const onOptionChangeAction = React.useCallback(() => {
onOptionChange && onOptionChange(index, isChecked);
@ -27,19 +27,9 @@ const Option = ({
}, [onLinkClick, index]);
return isLoader ? (
<div style={style} className="row-option">
<div key="loader">
<Loader
type="oval"
size="16px"
style={{
display: "inline",
marginRight: "10px",
}}
/>
<Text as="span" noSelect={true}>
{loadingLabel}
</Text>
<div style={style}>
<div key="loader" className="option-loader">
<Loaders.ListLoader withoutFirstRectangle count={countLoaderRows} />
</div>
</div>
) : isMultiSelect ? (

View File

@ -8,7 +8,6 @@ import Option from "./Option";
const OptionList = ({
listOptionsRef,
loadingLabel,
options,
isOptionChecked,
isMultiSelect,
@ -17,13 +16,22 @@ const OptionList = ({
isItemLoaded,
itemCount,
loadMoreItems,
isFirstLoad,
}) => {
const renderOption = React.useCallback(
({ index, style }) => {
const isLoaded = isItemLoaded(index);
if (!isLoaded) {
return <Option isLoader={true} loadingLabel={loadingLabel} />;
if (!isFirstLoad) {
return (
<div style={style}>
<Option isLoader={true} countLoaderRows={2} />
</div>
);
}
return <Option isLoader={true} />;
}
const option = options[index];
@ -43,7 +51,6 @@ const OptionList = ({
},
[
options,
loadingLabel,
isMultiSelect,
isItemLoaded,

View File

@ -62,6 +62,7 @@ const Selector = (props) => {
onArrowClick,
headerLabel,
total,
isFirstLoad,
} = props;
const listOptionsRef = useRef(null);
@ -114,7 +115,7 @@ const Selector = (props) => {
if (groups.length === 1) return setGroupHeader(newGroupList[0]);
selectedOptions.forEach((option) => {
option.groups.forEach((group) => {
option?.groups?.forEach((group) => {
const groupIndex = newGroupList.findIndex(
(newGroup) => group === newGroup.id
);
@ -308,7 +309,7 @@ const Selector = (props) => {
const renderGroupsList = useCallback(() => {
if (groupList.length === 0) {
return <Option isLoader={true} loadingLabel={loadingLabel} />;
return <Option isLoader={true} />;
}
return (
@ -318,7 +319,7 @@ const Selector = (props) => {
onGroupClick={onGroupClick}
/>
);
}, [isMultiSelect, groupList, onGroupClick, loadingLabel]);
}, [isMultiSelect, groupList, onGroupClick]);
const itemCount = hasNextPage ? options.length + 1 : options.length;
const hasSelected = selectedOptionList.length > 0;
@ -373,7 +374,6 @@ const Selector = (props) => {
) : (
<OptionList
listOptionsRef={listOptionsRef}
loadingLabel={loadingLabel}
options={options}
itemCount={itemCount}
isMultiSelect={isMultiSelect}
@ -382,6 +382,7 @@ const Selector = (props) => {
isItemLoaded={isItemLoaded}
isOptionChecked={isOptionChecked}
loadMoreItems={loadMoreItems}
isFirstLoad={isFirstLoad}
/>
)}
</>
@ -421,6 +422,7 @@ Selector.propTypes = {
isDisabled: PropTypes.bool,
isMultiSelect: PropTypes.bool,
allowGroupSelection: PropTypes.bool,
isFirstLoad: PropTypes.bool,
selectButtonLabel: PropTypes.string,
selectAllLabel: PropTypes.string,

View File

@ -109,7 +109,11 @@ const StyledSelector = styled.div`
right: 10px !important;
}
}
.option-loader {
width: 100%;
height: 100%;
margin-top: 16px;
}
.row-option {
box-sizing: border-box;
height: 48px;
@ -163,7 +167,8 @@ const StyledSelector = styled.div`
}
.option-separator {
height: 1px;
background: #dfe2e3;
background: ${(props) =>
props.theme.advancedSelector.selectedBackgroundColor};
margin: 8px 16px;
}

View File

@ -60,7 +60,7 @@ const StyledArticle = styled.article`
`}
z-index: ${(props) =>
props.showText && (isMobileOnly || isMobileUtils()) ? "230" : "100"};
props.showText && (isMobileOnly || isMobileUtils()) ? "230" : "205"};
.resizable-block {
overflow: hidden;
@ -143,18 +143,15 @@ const StyledArticleHeader = styled.div`
justify-content: flex-start;
align-items: center;
.loader {
padding-top: 2px;
}
@media ${tablet} {
padding: 16px 16px 17px;
margin: 0;
justify-content: ${(props) => (props.showText ? "flex-start" : "center")};
.loader {
padding-top: 5px;
padding-bottom: 7px;
}
height: 61px;
min-height: 61px;
max-height: 61px;
box-sizing: border-box;
}
@media ${mobile} {
@ -168,10 +165,6 @@ const StyledArticleHeader = styled.div`
padding: 16px 16px 17px;
justify-content: ${(props) => (props.showText ? "flex-start" : "center")};
margin: 0;
.loader {
padding-top: 5px;
padding-bottom: 7px;
}
`}
${isMobileOnly &&
@ -181,6 +174,8 @@ const StyledArticleHeader = styled.div`
padding: 12px 16px 12px !important;
margin-bottom: 16px !important;
`}
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
`;
StyledArticleHeader.defaultProps = { theme: Base };
@ -214,7 +209,7 @@ const StyledHeading = styled(Heading)`
const StyledIconBox = styled.div`
display: none;
align-items: center;
height: 28px;
height: 20px;
@media ${tablet} {
display: flex;

View File

@ -3,7 +3,7 @@ import PropTypes from "prop-types";
import { useLocation } from "react-router";
import Loaders from "@appserver/common/components/Loaders";
import { isTablet as isTabletUtils } from "@appserver/components/utils/device";
import { isTablet } from "react-device-detect";
import { isTablet, isMobileOnly } from "react-device-detect";
import { inject, observer } from "mobx-react";
import {
StyledArticleHeader,
@ -20,6 +20,7 @@ const ArticleHeader = ({
isLoaded,
tReady,
setIsLoadedArticleHeader,
isBurgerLoading,
...rest
}) => {
const location = useLocation();
@ -34,19 +35,23 @@ const ArticleHeader = ({
if (isLoadedSetting) setIsLoadedArticleHeader(isLoadedSetting);
}, [isLoadedSetting]);
const heightLoader = isTabletUtils() || isTablet ? "20px" : "32px";
const showLoader = commonSettings ? !isLoadedPage : false;
return showLoader ? (
<StyledArticleHeader>
<Loaders.ArticleHeader height={heightLoader} className="loader" />
</StyledArticleHeader>
) : (
const isTabletView = (isTabletUtils() || isTablet) && !isMobileOnly;
return (
<StyledArticleHeader showText={showText} {...rest}>
<StyledIconBox name="article-burger">
<StyledMenuIcon onClick={onClick} />
</StyledIconBox>
{isTabletView && (isBurgerLoading || showLoader) ? (
<Loaders.ArticleHeader
height="20px"
width="20px"
style={{ height: "20px" }}
/>
) : (
<StyledIconBox name="article-burger">
<StyledMenuIcon onClick={onClick} />
</StyledIconBox>
)}
<StyledHeading showText={showText} size="large">
{children}
@ -63,11 +68,13 @@ ArticleHeader.propTypes = {
ArticleHeader.displayName = "Header";
export default inject(({ common }) => {
export default inject(({ common, auth }) => {
const { isLoaded, setIsLoadedArticleHeader } = common;
const { settingsStore } = auth;
const { isBurgerLoading } = settingsStore;
return {
isLoaded,
setIsLoadedArticleHeader,
isBurgerLoading,
};
})(observer(ArticleHeader));

View File

@ -1,10 +1,11 @@
import styled, { css } from "styled-components";
import { isDesktop } from "react-device-detect";
import SearchInput from "@appserver/components/search-input";
const StyledFilterInput = styled.div`
width: 100%;
max-width: ${(props) => props.sectionWidth}px;
height: 32px;
display: flex;
@ -13,6 +14,11 @@ const StyledFilterInput = styled.div`
margin: 0;
padding: 0;
${isDesktop &&
css`
margin-bottom: 6px;
`}
`;
const StyledSearchInput = styled(SearchInput)`

View File

@ -59,7 +59,7 @@ const FilterInput = React.memo(
};
return (
<StyledFilterInput {...props} sectionWidth={sectionWidth}>
<StyledFilterInput {...props}>
<StyledSearchInput
placeholder={placeholder}
value={inputValue}
@ -76,12 +76,13 @@ const FilterInput = React.memo(
headerLabel={headerLabel}
/>
{viewSettings &&
!isMobile &&
viewSelectorVisible &&
!isMobileUtils() &&
!isTabletUtils() &&
viewAs !== "row" ? (
{(viewSettings &&
!isMobile &&
viewSelectorVisible &&
!isMobileUtils() &&
!isTabletUtils() &&
viewAs !== "row") ||
isRecentFolder ? (
<ViewSelector
style={{ marginLeft: "8px" }}
onChangeView={onChangeViewAs}
@ -103,8 +104,6 @@ const FilterInput = React.memo(
viewSettings={viewSettings}
onSort={onSort}
viewSelectorVisible={viewSelectorVisible}
isRecentFolder={isRecentFolder}
isFavoritesFolder={isFavoritesFolder}
/>
)}
</>

View File

@ -201,6 +201,10 @@ const FilterBlock = ({
headerLabel={headerLabel}
/>
)}
<StyledControlContainer onClick={hideFilterBlock}>
<StyledCrossIcon />
</StyledControlContainer>
</StyledFilterBlock>
</>
) : (
@ -242,6 +246,10 @@ const FilterBlock = ({
onClick={onFilterAction}
/>
</StyledFilterBlockFooter>
<StyledControlContainer onClick={hideFilterBlock}>
<StyledCrossIcon />
</StyledControlContainer>
</StyledFilterBlock>
)}
@ -249,11 +257,8 @@ const FilterBlock = ({
visible={true}
withBackground={true}
onClick={hideFilterBlock}
zIndex={215}
/>
<StyledControlContainer onClick={hideFilterBlock}>
<StyledCrossIcon />
</StyledControlContainer>
</>
);
};

View File

@ -18,7 +18,6 @@ import {
StyledFilterBlockItemSeparator,
} from "./StyledFilterBlock";
import TickIcon from "../svg/tick.react.svg";
import XIcon from "../svg/x.react.svg";
const FilterBlockItem = ({
@ -121,11 +120,6 @@ const FilterBlockItem = ({
>
{item.label.toLowerCase()}
</StyledFilterBlockItemTagText>
{item.isSelected && (
<StyledFilterBlockItemTagIcon>
<TickIcon />
</StyledFilterBlockItemTagIcon>
)}
</StyledFilterBlockItemTag>
);
};

View File

@ -32,18 +32,13 @@ const notSelectedViewIcon = css`
`;
const mobileView = css`
${(props) =>
!props.isRecentFolder &&
!props.isFavoritesFolder &&
css`
position: fixed;
top: auto;
left: 0;
bottom: 0;
width: 100vw;
position: fixed;
top: auto;
left: 0;
bottom: 0;
width: 100vw;
z-index: 999;
`}
z-index: 999;
`;
const StyledSortButton = styled.div`
@ -184,8 +179,6 @@ const SortButton = ({
viewSettings,
onSort,
viewSelectorVisible,
isRecentFolder,
isFavoritesFolder,
}) => {
const [isOpen, setIsOpen] = React.useState(false);
@ -226,8 +219,6 @@ const SortButton = ({
[onSort, toggleCombobox, currentSelectedFilterData]
);
const getSortOption = () => {};
const getAdvancedOptions = React.useCallback(() => {
const data = getSortData();
@ -253,30 +244,28 @@ const SortButton = ({
viewSettings={viewSettings}
/>
</DropDownItem>
{!isFavoritesFolder && !isRecentFolder && (
<DropDownItem isSeparator={true}></DropDownItem>
)}
</>
)}
{!isFavoritesFolder && !isRecentFolder && (
<>
{data.map((item, index) => (
<DropDownItem
onClick={onOptionClick}
className={item.className}
key={item.key}
data-value={item.key}
>
<Text fontWeight={600}>{item.label}</Text>
<SortDesc
className={`option-item__icon ${
item.isSelected ? "selected-option-item__icon" : ""
}`}
/>
</DropDownItem>
))}
<DropDownItem isSeparator={true}></DropDownItem>
</>
)}
<>
{data.map((item, index) => (
<DropDownItem
onClick={onOptionClick}
className={item.className}
key={item.key}
data-value={item.key}
>
<Text fontWeight={600}>{item.label}</Text>
<SortDesc
className={`option-item__icon ${
item.isSelected ? "selected-option-item__icon" : ""
}`}
/>
</DropDownItem>
))}
</>
</>
);
}, [
@ -286,23 +275,20 @@ const SortButton = ({
viewAs,
viewSettings,
getSortData,
isFavoritesFolder,
isRecentFolder,
]);
return (
<>
<Backdrop
visible={isOpen}
withBackground={true}
withBackground={false}
onClick={toggleCombobox}
withoutBlur={true}
/>
<StyledSortButton
viewAs={viewAs}
isDesc={currentSelectedFilterData.sortDirection === "desc"}
onClick={toggleCombobox}
isRecentFolder={isRecentFolder}
isFavoritesFolder={isFavoritesFolder}
>
<ComboBox
opened={isOpen}

View File

@ -50,6 +50,8 @@ const StyledButton = styled.div`
width: 200px;
}
`}
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
`;
StyledButton.defaultProps = { theme: Base };

View File

@ -1,19 +1,12 @@
import Text from "@appserver/components/text";
import styled, { css } from "styled-components";
import { isMobileOnly } from "react-device-detect";
import { isMobileOnly, isMobile } from "react-device-detect";
import ToggleButton from "@appserver/components/toggle-button";
import { mobile } from "@appserver/components/utils/device";
import { mobile, tablet } from "@appserver/components/utils/device";
import { Base } from "@appserver/components/themes";
import CrossIcon from "@appserver/components/public/static/images/cross.react.svg";
const mobileView = css`
top: 64px;
width: 100% !important;
height: calc(100% - 64px) !important;
`;
const StyledFilterBlock = styled.div`
position: fixed;
top: 0;
@ -29,11 +22,22 @@ const StyledFilterBlock = styled.div`
background: ${(props) => props.theme.filterInput.filter.background};
@media ${mobile} {
${mobileView}
@media ${tablet} {
max-width: calc(100% - 69px);
}
${isMobileOnly && mobileView}
${isMobile &&
css`
max-width: calc(100% - 69px);
`}
@media (max-width: 428px) {
bottom: 0;
top: unset;
height: calc(100% - 64px);
width: 100%;
max-width: 100%;
}
.people-selector {
height: 100%;
@ -91,6 +95,7 @@ const StyledFilterBlockItem = styled.div`
const StyledFilterBlockItemHeader = styled.div`
height: 16px;
line-height: 16px;
margin-right: -16px;
display: flex;
align-items: center;
@ -98,6 +103,7 @@ const StyledFilterBlockItemHeader = styled.div`
const StyledFilterBlockItemContent = styled.div`
margin-top: ${(props) => !props.withoutHeader && "12px"};
margin-right: -16px;
height: fit-content;
@ -156,6 +162,7 @@ const StyledFilterBlockItemTag = styled.div`
cursor: pointer;
${(props) => props.isSelected && selectedItemTag}
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
`;
StyledFilterBlockItemTag.defaultProps = { theme: Base };
@ -210,6 +217,8 @@ const StyledFilterBlockItemToggleText = styled(Text)`
const StyledFilterBlockItemToggleButton = styled(ToggleButton)`
position: static;
grid-gap: 0px;
`;
const StyledFilterBlockItemSeparator = styled.div`
@ -247,62 +256,51 @@ const StyledFilterBlockFooter = styled.div`
align-items: center;
justify-content: center;
@media ${mobile} {
@media (max-width: 428px) {
width: 100%;
}
${isMobileOnly &&
css`
width: 100%;
`}
`;
StyledFilterBlockFooter.defaultProps = { theme: Base };
const StyledControlContainer = styled.div`
background: ${(props) => props.theme.catalog.control.background};
display: flex;
width: 24px;
height: 24px;
position: fixed;
top: 30px;
right: 10px;
position: absolute;
border-radius: 100px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
z-index: 999;
display: none;
z-index: 450;
@media ${mobile} {
display: flex;
}
top: 14px;
left: -34px;
${isMobileOnly &&
${isMobile &&
css`
display: flex;
top: 14px;
`}
@media (max-width: 428px) {
top: -34px;
right: 10px;
left: unset;
}
`;
StyledControlContainer.defaultProps = { theme: Base };
const StyledCrossIcon = styled(CrossIcon)`
width: 12px;
height: 12px;
width: 17px;
height: 17px;
z-index: 455;
path {
fill: ${(props) => props.theme.catalog.control.fill};
}
display: none;
@media ${mobile} {
display: flex;
}
${isMobileOnly &&
css`
display: flex;
`}
`;
StyledCrossIcon.defaultProps = { theme: Base };

View File

@ -1,8 +1,9 @@
import React from "react";
import React, { useEffect, useState } from "react";
import PropTypes from "prop-types";
import styled from "styled-components";
import {
StyledFloatingButtonWrapper,
StyledFloatingButton,
StyledAlertIcon,
StyledCircleWrap,
@ -19,54 +20,91 @@ import ButtonAlertIcon from "../../../../public/images/button.alert.react.svg";
import commonIconsStyles from "@appserver/components/utils/common-icons-style";
import ButtonPlusIcon from "../../../../public/images/actions.button.plus.react.svg";
import ButtonMinusIcon from "../../../../public/images/actions.button.minus.react.svg";
import CloseIcon from "../../../../public/images/close-icon.react.svg";
const StyledButtonAlertIcon = styled(ButtonAlertIcon)`
${commonIconsStyles}
`;
const FloatingButton = ({ id, className, style, ...rest }) => {
const { icon, alert, percent, onClick, color } = rest;
const {
icon,
alert,
percent,
onClick,
color,
clearUploadedFilesHistory,
} = rest;
const [animationCompleted, setAnimationCompleted] = useState(false);
const onProgressClear = () => {
clearUploadedFilesHistory && clearUploadedFilesHistory();
};
useEffect(() => {
if (percent === 100) {
setTimeout(() => {
setAnimationCompleted(true);
}, 1000);
} else {
setAnimationCompleted(false);
}
}, [percent, setAnimationCompleted]);
return (
<StyledCircleWrap
color={color}
id={id}
className={`${className} not-selectable`}
style={style}
icon={icon}
onClick={onClick}
>
<StyledCircle percent={percent}>
<div className="circle__mask circle__full">
<div className="circle__fill"></div>
</div>
<div className="circle__mask">
<div className="circle__fill"></div>
</div>
<StyledFloatingButtonWrapper>
<StyledCircleWrap
color={color}
id={id}
className={`${className} not-selectable`}
style={style}
icon={icon}
onClick={onClick}
>
<StyledCircle
displayProgress={
!(percent === 100 && animationCompleted) && icon != "minus"
}
percent={percent}
>
<div className="circle__mask circle__full">
<div className="circle__fill"></div>
</div>
<div className="circle__mask">
<div className="circle__fill"></div>
</div>
<StyledFloatingButton className="circle__background" color={color}>
<IconBox>
{icon == "upload" ? (
<ButtonUploadIcon />
) : icon == "file" ? (
<ButtonFileIcon />
) : icon == "trash" ? (
<ButtonTrashIcon />
) : icon == "move" ? (
<ButtonMoveIcon />
) : icon == "plus" ? (
<ButtonPlusIcon />
) : icon == "minus" ? (
<ButtonMinusIcon />
) : (
<ButtonDuplicateIcon />
)}
</IconBox>
<StyledAlertIcon>
{alert ? <StyledButtonAlertIcon size="medium" /> : <></>}
</StyledAlertIcon>
</StyledFloatingButton>
</StyledCircle>
</StyledCircleWrap>
<StyledFloatingButton className="circle__background" color={color}>
<IconBox>
{icon == "upload" ? (
<ButtonUploadIcon />
) : icon == "file" ? (
<ButtonFileIcon />
) : icon == "trash" ? (
<ButtonTrashIcon />
) : icon == "move" ? (
<ButtonMoveIcon />
) : icon == "plus" ? (
<ButtonPlusIcon />
) : icon == "minus" ? (
<ButtonMinusIcon />
) : (
<ButtonDuplicateIcon />
)}
</IconBox>
<StyledAlertIcon>
{alert ? <StyledButtonAlertIcon size="medium" /> : <></>}
</StyledAlertIcon>
</StyledFloatingButton>
</StyledCircle>
</StyledCircleWrap>
{clearUploadedFilesHistory && percent === 100 && (
<CloseIcon
className="layout-progress-bar_close-icon"
onClick={onProgressClear}
/>
)}
</StyledFloatingButtonWrapper>
);
};

View File

@ -1,5 +1,41 @@
import Base from "@appserver/components/themes/base";
import styled, { keyframes, css } from "styled-components";
import { desktop, tablet } from "@appserver/components/utils/device";
const StyledFloatingButtonWrapper = styled.div`
@media ${desktop} {
position: absolute;
z-index: 300;
width: 100px;
height: 70px;
right: 0;
bottom: 0;
}
.layout-progress-bar_close-icon {
display: none;
position: absolute;
cursor: pointer;
right: 77px;
bottom: 33px;
}
:hover {
.layout-progress-bar_close-icon {
display: block;
}
@media ${tablet} {
.layout-progress-bar_close-icon {
display: none;
}
}
}
@media ${tablet} {
.layout-progress-bar_close-icon {
display: none;
}
}
`;
const StyledCircleWrap = styled.div`
position: relative;
@ -63,7 +99,10 @@ const StyledCircle = styled.div`
.circle__mask .circle__fill {
clip: rect(0px, 21px, 42px, 0px);
background-color: ${(props) => props.theme.floatingButton.color};
background-color: ${(props) =>
!props.displayProgress
? "transparent !important"
: props.theme.floatingButton.color};
}
.circle__mask.circle__full {
@ -130,6 +169,7 @@ const StyledAlertIcon = styled.div`
`;
export {
StyledFloatingButtonWrapper,
StyledCircleWrap,
StyledCircle,
StyledFloatingButton,

View File

@ -18,7 +18,8 @@ const weight = {
const StyledHeading = styled(Heading)`
margin: 0;
line-height: 50px;
font-size: ${(props) => size[props.headlineType]};
font-size: ${(props) =>
props.fontSize ? props.fontSize : size[props.headlineType]};
font-weight: ${(props) => weight[props.headlineType]};
color: ${(props) => (props.color ? props.color : props.theme.color)};
${NoUserSelect}

View File

@ -7,7 +7,14 @@ import {
} from "./StyledArticleFolderLoader";
import { inject, observer } from "mobx-react";
const ArticleFolderLoader = ({ id, className, style, showText, ...rest }) => {
const ArticleFolderLoader = ({
id,
className,
style,
showText,
personal,
...rest
}) => {
return (
<StyledContainer
id={id}
@ -21,16 +28,20 @@ const ArticleFolderLoader = ({ id, className, style, showText, ...rest }) => {
<StyledRectangleLoader {...rest} />
<StyledRectangleLoader {...rest} />
</StyledBlock>
<StyledBlock>
<StyledRectangleLoader {...rest} />
<StyledRectangleLoader {...rest} />
</StyledBlock>
<StyledBlock>
<StyledRectangleLoader {...rest} />
</StyledBlock>
<StyledBlock>
<StyledRectangleLoader {...rest} />
</StyledBlock>
{!personal && (
<>
<StyledBlock>
<StyledRectangleLoader {...rest} />
<StyledRectangleLoader {...rest} />
</StyledBlock>
<StyledBlock>
<StyledRectangleLoader {...rest} />
</StyledBlock>
<StyledBlock>
<StyledRectangleLoader {...rest} />
</StyledBlock>
</>
)}
</StyledContainer>
);
};
@ -48,6 +59,9 @@ ArticleFolderLoader.defaultProps = {
style: undefined,
};
export default inject(({ auth }) => ({
showText: auth.settingsStore.showText,
}))(observer(ArticleFolderLoader));
export default inject(({ auth }) => {
return {
showText: auth.settingsStore.showText,
personal: auth.settingsStore.personal,
};
})(observer(ArticleFolderLoader));

View File

@ -1,7 +1,7 @@
import styled, { css } from "styled-components";
import RectangleLoader from "../RectangleLoader";
import { isMobile } from "react-device-detect";
import { isMobile, isMobileOnly } from "react-device-detect";
import { tablet, mobile } from "@appserver/components/utils/device";
const StyledContainer = styled.div`
@ -13,6 +13,7 @@ const StyledContainer = styled.div`
@media ${tablet} {
width: ${(props) => (props.showText ? "240px" : "52px")};
padding: ${(props) => (props.showText ? "0 16px" : "10px 16px")};
box-sizing: border-box;
}
${isMobile &&
@ -20,12 +21,21 @@ const StyledContainer = styled.div`
max-width: ${(props) => (props.showText ? "240px" : "52px")};
width: ${(props) => (props.showText ? "240px" : "52px")};
padding: ${(props) => (props.showText ? "0 16px" : "10px 16px")};
box-sizing: border-box;
`}
@media ${mobile} {
width: 100%;
padding: 0 16px;
box-sizing: border-box;
}
${isMobileOnly &&
css`
width: 100%;
padding: 0 16px;
box-sizing: border-box;
`}
`;
const StyledBlock = styled.div`
@ -58,6 +68,17 @@ const StyledRectangleLoader = styled(RectangleLoader)`
width: 20px;
padding: 0 0 24px;
`}
@media ${mobile} {
width: 100%;
padding: 0 0 24px;
}
${isMobileOnly &&
css`
width: 100% !important;
padding: 0 0 24px !important;
`}
`;
export { StyledBlock, StyledContainer, StyledRectangleLoader };

View File

@ -16,6 +16,7 @@ const StyledContainer = styled.div`
@media ${tablet} {
width: ${(props) => (props.showText ? "240px" : "52px")};
padding: 0 16px;
box-sizing: border-box;
}
${isMobile &&
@ -23,11 +24,13 @@ const StyledContainer = styled.div`
max-width: ${(props) => (props.showText ? "240px" : "52px")};
width: ${(props) => (props.showText ? "240px" : "52px")};
padding: ${(props) => (props.showText ? "0 16px" : "10px 16px")};
box-sizing: border-box;
`}
@media ${mobile} {
width: 100%;
padding: 0 16px;
box-sizing: border-box;
}
`;

View File

@ -8,7 +8,7 @@ const ListLoader = ({ count, ...props }) => {
for (var i = 0; i < count; i++) {
items.push(<ListItemLoader key={`list_loader_${i}`} {...props} />);
}
return <StyledList>{items}</StyledList>;
return <StyledList className="list-loader-wrapper">{items}</StyledList>;
};
ListLoader.propTypes = {

View File

@ -1,5 +1,5 @@
import styled from "styled-components";
import { desktop, tablet, mobile } from "@appserver/components/utils/device";
import { desktop, tablet } from "@appserver/components/utils/device";
const StyledBox1 = styled.div`
display: grid;
@ -7,7 +7,7 @@ const StyledBox1 = styled.div`
grid-template-rows: 1fr;
grid-column-gap: 32px;
@media ${mobile} {
@media (max-width: 428px) {
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr;
}
@ -22,7 +22,7 @@ const StyledBox2 = styled.div`
padding-bottom: 40px;
@media ${mobile} {
@media (max-width: 428px) {
padding-bottom: 32px;
}
`;
@ -51,7 +51,7 @@ const StyledBox4 = styled.div`
display: none;
}
}
@media ${mobile} {
@media (max-width: 428px) {
grid-template-columns: 200px;
.row-content__mobile {
display: none;

View File

@ -74,6 +74,9 @@ const StyledViewer = styled(Viewer)`
props.theme.mediaViewer.imageViewer.backgroundColor};
}
}
.react-viewer-image-transition {
transition-duration: 0s;
}
li[data-key="prev"] {
left: 20px;
}

View File

@ -1,28 +1,31 @@
import React from "react";
import PropTypes from "prop-types";
import Loaders from "@appserver/common/components/Loaders";
import StyledContainer from "./StyledNavigation";
import ArrowButton from "./sub-components/arrow-btn";
import Text from "./sub-components/text";
import ControlButtons from "./sub-components/control-btn";
import DropBox from "./sub-components/drop-box";
import { isMobileOnly } from "react-device-detect";
import { Consumer } from "@appserver/components/utils/context";
import DomHelpers from "@appserver/components/utils/domHelpers";
import Backdrop from "@appserver/components/backdrop";
import { isMobile, isMobileOnly } from "react-device-detect";
import {
isMobile as isMobileUtils,
isTablet as isTabletUtils,
isDesktop as isDesktopUtils,
} from "@appserver/components/utils/device";
import ToggleInfoPanelButton from "./sub-components/toggle-infopanel-btn";
const Navigation = ({
tReady,
showText,
isRootFolder,
title,
canCreate,
isDesktop,
isTabletView,
personal,
onClickFolder,
@ -37,6 +40,7 @@ const Navigation = ({
isCurrentFolderInfo,
toggleInfoPanel,
isInfoPanelVisible,
titles,
...rest
}) => {
const [isOpen, setIsOpen] = React.useState(false);
@ -47,6 +51,10 @@ const Navigation = ({
const dropBoxRef = React.useRef(null);
const containerRef = React.useRef(null);
const isDesktop =
(!isMobile && !isTabletUtils() && !isMobileUtils()) ||
(isDesktopUtils() && !isMobile);
const onMissClick = (e) => {
e.preventDefault;
const path = e.path || (e.composedPath && e.composedPath());
@ -89,13 +97,13 @@ const Navigation = ({
window.addEventListener("resize", onResize);
} else {
window.removeEventListener("click", onMissClick);
window.addEventListener("resize", onResize);
window.removeEventListener("resize", onResize);
setFirstClick(true);
}
return () => {
window.removeEventListener("click", onMissClick);
window.addEventListener("resize", onResize);
window.removeEventListener("resize", onResize);
};
}, [isOpen, onResize, onMissClick]);
@ -110,16 +118,16 @@ const Navigation = ({
<>
{isOpen && (
<>
{isMobileOnly && (
<Backdrop
isAside={true}
visible={isOpen}
withBackground={true}
zIndex={400}
/>
)}
<Backdrop
visible={isOpen}
withBackground={false}
withoutBlur={true}
zIndex={400}
/>
<DropBox
{...rest}
isDesktop={isDesktop}
ref={dropBoxRef}
maxHeight={maxHeight}
dropBoxWidth={dropBoxWidth}
@ -145,10 +153,10 @@ const Navigation = ({
width={context.sectionWidth}
isRootFolder={isRootFolder}
canCreate={canCreate}
title={title}
isDesktop={isDesktop}
isTabletView={isTabletView}
isRecycleBinFolder={isRecycleBinFolder}
isDesktop={isDesktop}
isInfoPanelVisible={isInfoPanelVisible}
>
<ArrowButton
isRootFolder={isRootFolder}
@ -171,8 +179,17 @@ const Navigation = ({
clearTrash={clearTrash}
toggleInfoPanel={toggleInfoPanel}
isInfoPanelVisible={isInfoPanelVisible}
isDesktop={isDesktop}
titles={titles}
/>
</StyledContainer>
{isDesktop && (
<ToggleInfoPanelButton
isRootFolder={isRootFolder}
toggleInfoPanel={toggleInfoPanel}
isInfoPanelVisible={isInfoPanelVisible}
/>
)}
</>
)}
</Consumer>
@ -192,6 +209,7 @@ Navigation.propTypes = {
getContextOptionsPlus: PropTypes.func,
getContextOptionsFolder: PropTypes.func,
onBackToParentFolder: PropTypes.func,
titles: PropTypes.object,
};
export default React.memo(Navigation);

View File

@ -1,9 +1,18 @@
import styled, { css } from "styled-components";
import { isMobileOnly } from "react-device-detect";
import { isMobile, isMobileOnly } from "react-device-detect";
import { tablet, mobile } from "@appserver/components/utils/device";
const StyledContainer = styled.div`
width: 100% !important;
${(props) =>
!props.isDropBox &&
props.isDesktop &&
css`
width: fit-content;
max-width: ${props.isInfoPanelVisible
? `calc(100%)`
: `calc(100% - 72px)`};
`}
display: grid;
align-items: center;
grid-template-columns: ${(props) =>
@ -29,6 +38,14 @@ const StyledContainer = styled.div`
padding: ${(props) => (props.isDropBox ? "14px 0 5px" : "14px 0 15px")};
}
${isMobile &&
css`
width: 100%;
grid-template-columns: ${(props) =>
props.isRootFolder ? "auto 1fr" : "29px 1fr auto"};
padding: ${(props) => (props.isDropBox ? "14px 0 5px" : "14px 0 15px")};
`}
@media ${mobile} {
padding: ${(props) =>
props.isDropBox ? "10px 0 5px" : "10px 0 11px"} !important;

View File

@ -6,33 +6,36 @@ import IconButton from "@appserver/components/icon-button";
import { isMobile } from "react-device-detect";
import { tablet } from "@appserver/components/utils/device";
import { Base } from "@appserver/components/themes";
import ToggleInfoPanelButton from "./toggle-infopanel-btn";
const StyledContainer = styled.div`
margin-left: 20px;
display: flex;
align-items: center;
height: 32px;
.add-button {
margin-right: 16px;
min-width: 15px;
${(props) =>
!props.isDropBox &&
css`
@media ${tablet} {
display: none;
}
`}
@media ${tablet} {
display: none;
}
${isMobile &&
css`
${(props) => !props.isDropBox && "display: none"};
display: none;
`}
}
.option-button {
margin-right: 16px;
min-width: 15px;
@media ${tablet} {
margin-right: 9px;
}
}
.trash-button {
@ -93,6 +96,7 @@ const ControlButtons = ({
toggleInfoPanel,
toggleDropBox,
isDesktop,
titles,
}) => {
const toggleInfoPanelAction = () => {
toggleInfoPanel && toggleInfoPanel();
@ -103,17 +107,21 @@ const ControlButtons = ({
<StyledContainer isDropBox={isDropBox}>
{!isRootFolder && canCreate ? (
<>
<ContextMenuButton
className="add-button"
directionX="right"
iconName="images/plus.svg"
size={15}
isFill
getData={getContextOptionsPlus}
isDisabled={false}
/>
{!isMobile && (
<ContextMenuButton
zIndex={402}
className="add-button"
directionX="right"
iconName="images/plus.svg"
size={15}
isFill
getData={getContextOptionsPlus}
isDisabled={false}
/>
)}
{!personal && (
<ContextMenuButton
zIndex={402}
className="option-button"
directionX="right"
iconName="images/vertical-dots.react.svg"
@ -124,47 +132,34 @@ const ControlButtons = ({
/>
)}
{!isDesktop && (
<StyledInfoPanelToggleWrapper
<ToggleInfoPanelButton
isRootFolder={isRootFolder}
isInfoPanelVisible={isInfoPanelVisible}
>
<div className="info-panel-toggle-bg">
<IconButton
className="info-panel-toggle"
iconName="images/panel.react.svg"
size="16"
isFill={true}
onClick={toggleInfoPanelAction}
/>
</div>
</StyledInfoPanelToggleWrapper>
toggleInfoPanel={toggleInfoPanelAction}
/>
)}
</>
) : canCreate ? (
<>
<ContextMenuButton
className="add-button"
directionX="right"
iconName="images/plus.svg"
size={15}
isFill
getData={getContextOptionsPlus}
isDisabled={false}
/>
<StyledInfoPanelToggleWrapper
isRootFolder={isRootFolder}
isInfoPanelVisible={isInfoPanelVisible}
>
<div className="info-panel-toggle-bg">
<IconButton
className="info-panel-toggle"
iconName="images/panel.react.svg"
size="16"
isFill={true}
onClick={toggleInfoPanelAction}
/>
</div>
</StyledInfoPanelToggleWrapper>
{!isMobile && (
<ContextMenuButton
zIndex={402}
className="add-button"
directionX="right"
iconName="images/plus.svg"
size={15}
isFill
getData={getContextOptionsPlus}
isDisabled={false}
/>
)}
{!isDesktop && (
<ToggleInfoPanelButton
isRootFolder={isRootFolder}
isInfoPanelVisible={isInfoPanelVisible}
toggleInfoPanel={toggleInfoPanelAction}
/>
)}
</>
) : isRecycleBinFolder && !isEmptyFilesList ? (
<>
@ -174,38 +169,25 @@ const ControlButtons = ({
isFill={true}
onClick={clearTrash}
className="trash-button"
title={(titles && titles["trash"]) || ""}
/>
<StyledInfoPanelToggleWrapper
isRootFolder={isRootFolder}
isInfoPanelVisible={isInfoPanelVisible}
>
<div className="info-panel-toggle-bg">
<IconButton
className="info-panel-toggle"
iconName="images/panel.react.svg"
size="16"
isFill={true}
onClick={toggleInfoPanelAction}
/>
</div>
</StyledInfoPanelToggleWrapper>
{!isDesktop && (
<ToggleInfoPanelButton
isRootFolder={isRootFolder}
isInfoPanelVisible={isInfoPanelVisible}
toggleInfoPanel={toggleInfoPanelAction}
/>
)}
</>
) : (
<>
<StyledInfoPanelToggleWrapper
isRootFolder={isRootFolder}
isInfoPanelVisible={isInfoPanelVisible}
>
<div className="info-panel-toggle-bg">
<IconButton
className="info-panel-toggle"
iconName="images/panel.react.svg"
size="16"
isFill={true}
onClick={toggleInfoPanelAction}
/>
</div>
</StyledInfoPanelToggleWrapper>
{!isDesktop && (
<ToggleInfoPanelButton
isRootFolder={isRootFolder}
isInfoPanelVisible={isInfoPanelVisible}
toggleInfoPanel={toggleInfoPanelAction}
/>
)}
</>
)}
</StyledContainer>

View File

@ -14,10 +14,8 @@ import StyledContainer from "../StyledNavigation";
import { isMobile, isMobileOnly } from "react-device-detect";
import {
tablet,
mobile,
isMobile as isMobileUtils,
isTablet as isTabletUtils,
isDesktop as isDesktopUtils,
} from "@appserver/components/utils/device";
import { Base } from "@appserver/components/themes";
@ -29,7 +27,7 @@ const StyledBox = styled.div`
padding: ${isMobile ? "0 16px " : "0 20px"};
${(props) => !props.isDesktop && `width: ${props.dropBoxWidth}px;`};
${(props) => `width: ${props.dropBoxWidth}px;`};
height: ${(props) => (props.height ? `${props.height}px` : "fit-content")};
max-height: calc(100vh - 48px);
@ -92,14 +90,13 @@ const DropBox = React.forwardRef(
isInfoPanelVisible,
maxHeight,
isOpen,
isDesktop,
},
ref
) => {
const [dropBoxHeight, setDropBoxHeight] = React.useState(0);
const countItems = navigationItems.length;
const isDesktop = !isMobile || isDesktopUtils();
const getItemSize = (index) => {
if (index === countItems - 1) return 51;
return isMobile || isMobileUtils() || isTabletUtils() ? 36 : 30;
@ -139,7 +136,11 @@ const DropBox = React.forwardRef(
dropBoxWidth={dropBoxWidth}
isDesktop={isDesktop}
>
<StyledContainer canCreate={canCreate} isDropBox={true}>
<StyledContainer
canCreate={canCreate}
isDropBox={true}
isInfoPanelVisible={isInfoPanelVisible}
>
<ArrowButton
isRootFolder={isRootFolder}
onBackToParentFolder={onBackToParentFolder}

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