diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240214150418_Initial.Designer.cs b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240707104226_Initial.Designer.cs similarity index 95% rename from modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240214150418_Initial.Designer.cs rename to modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240707104226_Initial.Designer.cs index fcd6c0516b..a270fbcb4e 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240214150418_Initial.Designer.cs +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240707104226_Initial.Designer.cs @@ -13,7 +13,7 @@ using VoloDocs.EntityFrameworkCore; namespace Migrations { [DbContext(typeof(VoloDocsDbContext))] - [Migration("20240214150418_Initial")] + [Migration("20240707104226_Initial")] partial class Initial { /// @@ -22,7 +22,7 @@ namespace Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "8.0.4") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -262,6 +262,58 @@ namespace Migrations b.ToTable("AbpSecurityLogs", (string)null); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentitySession", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Device") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("DeviceInfo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("IpAddresses") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("LastAccessed") + .HasColumnType("datetime2"); + + b.Property("SessionId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("SignedIn") + .HasColumnType("datetime2"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("Device"); + + b.HasIndex("SessionId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpSessions", (string)null); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => { b.Property("Id") diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240214150418_Initial.cs b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240707104226_Initial.cs similarity index 95% rename from modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240214150418_Initial.cs rename to modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240707104226_Initial.cs index 95f41cfd9e..12da8d1bca 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240214150418_Initial.cs +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20240707104226_Initial.cs @@ -170,6 +170,26 @@ namespace Migrations table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id); }); + migrationBuilder.CreateTable( + name: "AbpSessions", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + SessionId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + Device = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + DeviceInfo = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + IpAddresses = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + SignedIn = table.Column(type: "datetime2", nullable: false), + LastAccessed = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpSessions", x => x.Id); + }); + migrationBuilder.CreateTable( name: "AbpSettingDefinitions", columns: table => new @@ -573,6 +593,21 @@ namespace Migrations table: "AbpSecurityLogs", columns: new[] { "TenantId", "UserId" }); + migrationBuilder.CreateIndex( + name: "IX_AbpSessions_Device", + table: "AbpSessions", + column: "Device"); + + migrationBuilder.CreateIndex( + name: "IX_AbpSessions_SessionId", + table: "AbpSessions", + column: "SessionId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpSessions_TenantId_UserId", + table: "AbpSessions", + columns: new[] { "TenantId", "UserId" }); + migrationBuilder.CreateIndex( name: "IX_AbpSettingDefinitions_Name", table: "AbpSettingDefinitions", @@ -654,6 +689,9 @@ namespace Migrations migrationBuilder.DropTable( name: "AbpSecurityLogs"); + migrationBuilder.DropTable( + name: "AbpSessions"); + migrationBuilder.DropTable( name: "AbpSettingDefinitions"); diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs index 90fb47e28a..37601938e1 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("ProductVersion", "8.0.4") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); @@ -259,6 +259,58 @@ namespace Migrations b.ToTable("AbpSecurityLogs", (string)null); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentitySession", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Device") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("DeviceInfo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("IpAddresses") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("LastAccessed") + .HasColumnType("datetime2"); + + b.Property("SessionId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("SignedIn") + .HasColumnType("datetime2"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("Device"); + + b.HasIndex("SessionId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpSessions", (string)null); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => { b.Property("Id") diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs index e49cdc7dde..ff50ee3247 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs +++ b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs @@ -163,6 +163,11 @@ namespace VoloDocs.Web { options.Conventions.AddPageRoute("/Error", "error/{statusCode}"); }); + + Configure(options => + { + options.UseGoogleTranslation = true; + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/modules/docs/app/VoloDocs.Web/appsettings.json b/modules/docs/app/VoloDocs.Web/appsettings.json index 0030c25b6a..21a2883937 100644 --- a/modules/docs/app/VoloDocs.Web/appsettings.json +++ b/modules/docs/app/VoloDocs.Web/appsettings.json @@ -6,6 +6,9 @@ } } }, + "Redis": { + "Configuration": "127.0.0.1" + }, "ConnectionString": "Server=localhost;Database=VoloDocs;Trusted_Connection=True;TrustServerCertificate=True", "ElasticSearch": { "Url": "http://localhost:9200" diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json index e5c3f3c465..6e01a9af72 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json @@ -37,6 +37,7 @@ "Preview": "معاينة", "Search": "بحث", "SearchResults": "نتائج البحث", - "SearchInTheAllDocuments": "البحث في جميع الوثائق" + "SearchInTheAllDocuments": "البحث في جميع الوثائق", + "GoogleTranslate": "ترجمة جوجل" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json index dd61126c17..c8e6d3d19b 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json @@ -37,6 +37,7 @@ "Preview": "náhled", "Search": "Vyhledávání", "SearchResults": "Výsledky vyhledávání", - "SearchInTheAllDocuments": "Hledejte ve všech dokumentech" + "SearchInTheAllDocuments": "Hledejte ve všech dokumentech", + "GoogleTranslate": "Přeložit do češtiny" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json index 4be422c1f0..343db45f12 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json @@ -37,6 +37,7 @@ "Preview": "Vorschau", "Search": "Suchen", "SearchResults": "Suchergebnisse", - "SearchInTheAllDocuments": "Durchsuchen Sie alle Dokumente" + "SearchInTheAllDocuments": "Durchsuchen Sie alle Dokumente", + "GoogleTranslate": "Ins Deutsche übersetzen" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json index 40ac3b32ca..21bc61b7e5 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/el.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Το Μικρό όνομα {ShortName} υπάρχει ήδη.", "Preview": "προεπισκόπηση", "Search": "Αναζήτηση", - "SearchResults": "Αποτελέσματα αναζήτησης" + "SearchResults": "Αποτελέσματα αναζήτησης", + "GoogleTranslate": "Μετάφραση στα ελληνικά" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en-GB.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en-GB.json index a8cf1c6627..ba33bd31d6 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en-GB.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en-GB.json @@ -34,6 +34,7 @@ "NewExplanation": "Created in the last two weeks.", "UpdatedExplanation": "Updated in the last two weeks.", "Volo.Docs.Domain:010002": "ShortName {ShortName} already exists.", - "Preview": "preview" + "Preview": "preview", + "GoogleTranslate": "Google Translate" } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json index e04e34e59a..a4a5e3ddf0 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json @@ -40,6 +40,7 @@ "SearchInTheAllDocuments": "Search in the all documents", "Next": "Next", "Previous": "Previous", - "ProjectDeletionWarningMessage": "Project will be deleted." + "ProjectDeletionWarningMessage": "Project will be deleted.", + "GoogleTranslate": "Google Translate" } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json index 697b373715..624d56d631 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json @@ -37,6 +37,7 @@ "Preview": "Previsualizar", "Search": "Buscar", "SearchResults": "Resultados de la búsqueda", - "SearchInTheAllDocuments": "Buscar en todos los documentos" + "SearchInTheAllDocuments": "Buscar en todos los documentos", + "GoogleTranslate": "Traducir con Google" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fi.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fi.json index 814bede574..543803bec4 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fi.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fi.json @@ -37,6 +37,7 @@ "Preview": "esikatselu", "Search": "Hae", "SearchResults": "Hakutulokset", - "SearchInTheAllDocuments": "Hae kaikista asiakirjoista" + "SearchInTheAllDocuments": "Hae kaikista asiakirjoista", + "GoogleTranslate": "Google-käännös" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json index f2a3f3b0a0..6e8ccfffab 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json @@ -37,6 +37,7 @@ "Preview": "Aperçu", "Search": "Rechercher", "SearchResults": "Résultats de recherche", - "SearchInTheAllDocuments": "Rechercher dans tous les documents" + "SearchInTheAllDocuments": "Rechercher dans tous les documents", + "GoogleTranslate": "Google Traduction" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json index 013b57f523..b79c38b9b8 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json @@ -37,6 +37,7 @@ "Preview": "पूर्व दर्शन", "Search": "खोज", "SearchResults": "खोज परिणाम", - "SearchInTheAllDocuments": "सभी दस्तावेज़ों में खोजें" + "SearchInTheAllDocuments": "सभी दस्तावेज़ों में खोजें", + "GoogleTranslate": "गूगल अनुवाद" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json index 4db71761e8..bf71b7faed 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json @@ -37,6 +37,7 @@ "Preview": "Pretpregled", "Search": "Pretraga", "SearchResults": "Rezultati pretrage", - "SearchInTheAllDocuments": "Traži u svim dokumentima" + "SearchInTheAllDocuments": "Traži u svim dokumentima", + "GoogleTranslate": "Google prevoditelj" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json index 1230a1d83f..1624b1b2d1 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json @@ -37,6 +37,7 @@ "Preview": "előnézet", "Search": "Keresés", "SearchResults": "Keresési eredmények", - "SearchInTheAllDocuments": "Keressen az összes dokumentumban" + "SearchInTheAllDocuments": "Keressen az összes dokumentumban", + "GoogleTranslate": "Google Fordító" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json index 7fb3f7d688..5d96a2fac5 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json @@ -37,6 +37,7 @@ "Preview": "forskoðun", "Search": "Leit", "SearchResults": "Leitar niðurstöður", - "SearchInTheAllDocuments": "Leitaðu í öllum skjölum" + "SearchInTheAllDocuments": "Leitaðu í öllum skjölum", + "GoogleTranslate": "Google þýðing" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json index 5b3608c069..3983154519 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json @@ -37,6 +37,7 @@ "Preview": "anteprima", "Search": "Ricerca", "SearchResults": "Risultati della ricerca", - "SearchInTheAllDocuments": "Cerca in tutti i documenti" + "SearchInTheAllDocuments": "Cerca in tutti i documenti", + "GoogleTranslate": "Traduci con Google" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json index b608e3d634..f126886009 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json @@ -37,6 +37,7 @@ "Preview": "voorbeeld", "Search": "Zoeken", "SearchResults": "Zoekresultaten", - "SearchInTheAllDocuments": "Zoek in alle documenten" + "SearchInTheAllDocuments": "Zoek in alle documenten", + "GoogleTranslate": "Google Vertalen" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json index 24b805b5f9..5d5c58ea3f 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json @@ -37,6 +37,7 @@ "Preview": "zapowiedź", "Search": "Szukaj", "SearchResults": "Wyniki wyszukiwania", - "SearchInTheAllDocuments": "Szukaj we wszystkich dokumentach" + "SearchInTheAllDocuments": "Szukaj we wszystkich dokumentach", + "GoogleTranslate": "Tłumaczenie na polski" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json index d993fa15fb..0e4143f9ac 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json @@ -37,6 +37,7 @@ "Preview": "Previsualizar", "Search": "Procurar", "SearchResults": "Procurar Resultados", - "SearchInTheAllDocuments": "Pesquise em todos os documentos" + "SearchInTheAllDocuments": "Pesquise em todos os documentos", + "GoogleTranslate": "Traduzir com Google" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json index 6d0e108d6d..eaf9016463 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json @@ -37,6 +37,7 @@ "Preview": "previzualizare", "Search": "Caută", "SearchResults": "Rezultatele căutării", - "SearchInTheAllDocuments": "Căutați în toate documentele" + "SearchInTheAllDocuments": "Căutați în toate documentele", + "GoogleTranslate": "Traducere Google" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json index 46a00dde86..ae4b2a564d 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json @@ -37,6 +37,7 @@ "Preview": "предварительный просмотр", "Search": "Поиск", "SearchResults": "результаты поиска", - "SearchInTheAllDocuments": "Искать во всех документах" + "SearchInTheAllDocuments": "Искать во всех документах", + "GoogleTranslate": "Google Translate" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json index f9b976ee6b..54f981e98f 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json @@ -37,6 +37,7 @@ "Preview": "náhľad", "Search": "Vyhľadať", "SearchResults": "Výsledky vyhľadávania", - "SearchInTheAllDocuments": "Vyhľadajte vo všetkých dokumentoch" + "SearchInTheAllDocuments": "Vyhľadajte vo všetkých dokumentoch", + "GoogleTranslate": "Google preklad" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json index 42f399a243..3d326a5127 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json @@ -37,6 +37,7 @@ "Preview": "predogled", "Search": "Iskanje", "SearchResults": "Rezultati iskanja", - "SearchInTheAllDocuments": "Poiščite v vseh dokumentih" + "SearchInTheAllDocuments": "Poiščite v vseh dokumentih", + "GoogleTranslate": "Google prevajalnik" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json index 384fe5fcd3..0e9619ce4d 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} zaten var.", "Preview": "ön izleme", "Search": "Arama", - "SearchResults": "Arama Sonuçları" + "SearchResults": "Arama Sonuçları", + "GoogleTranslate": "Google Çeviri" } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json index b92c9fe68c..612bcad36a 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json @@ -37,6 +37,7 @@ "Preview": "xem trước", "Search": "Tìm kiếm", "SearchResults": "kết quả tìm kiếm", - "SearchInTheAllDocuments": "Tìm kiếm trong tất cả các tài liệu" + "SearchInTheAllDocuments": "Tìm kiếm trong tất cả các tài liệu", + "GoogleTranslate": "Dịch Google" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json index 3f30cf0d09..4aaac66120 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json @@ -37,6 +37,7 @@ "Preview": "预览", "Search": "搜索", "SearchResults": "搜索结果", - "SearchInTheAllDocuments": "在所有文档中搜索" + "SearchInTheAllDocuments": "在所有文档中搜索", + "GoogleTranslate": "谷歌翻译" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json index 57f0efbecf..8f2a6ea86e 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json @@ -37,6 +37,7 @@ "Preview": "預覽", "Search": "搜索", "SearchResults": "搜索結果", - "SearchInTheAllDocuments": "在所有文件中搜尋" + "SearchInTheAllDocuments": "在所有文件中搜尋", + "GoogleTranslate": "谷歌翻譯" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/DocsWebGoogleTranslationOptions.cs b/modules/docs/src/Volo.Docs.Web/DocsWebGoogleTranslationOptions.cs new file mode 100644 index 0000000000..a970cdbf98 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Web/DocsWebGoogleTranslationOptions.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Globalization; + +namespace Volo.Docs; + +public class DocsWebGoogleTranslationOptions +{ + public bool UseGoogleTranslation { get; set; } + + /// + /// https://cloud.google.com/translate/docs/languages + /// + public List IncludedLanguages { get; set; } + + public Func GetCultureLanguageCode { get; set; } + + public DocsWebGoogleTranslationOptions() + { + UseGoogleTranslation = false; + IncludedLanguages = + [ + "en", + "tr", + "zh-CN", + "zh-TW", + "ar", + "cs", + "hu", + "hr", + "fi", + "fr", + "hi", + "it", + "pt", + "ru", + "sk", + "de", + "es" + ]; + GetCultureLanguageCode = culture => + { + return culture.Name switch + { + "zh-Hans" => "zh-CN", + "zh-Hant" => "zh-TW", + _ => culture.TwoLetterISOLanguageName + }; + }; + } +} diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index d0d8d250d2..76d2eea376 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -1,5 +1,12 @@ @page +@using System.Globalization @using Microsoft.AspNetCore.Mvc.Localization +@using Microsoft.AspNetCore.Mvc.TagHelpers +@using Microsoft.Extensions.Options +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Alert +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Blockquote +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid +@using Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers @using Volo.Abp.AspNetCore.Mvc.UI.Layout @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Anchor @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Clipboard @@ -8,13 +15,14 @@ @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Prismjs @using Volo.Abp.AspNetCore.Mvc.UI.Theming @using Volo.Docs +@using Volo.Docs.Areas.Documents.TagHelpers @using Volo.Docs.Localization @using Volo.Docs.Pages.Documents.Project @using Volo.Docs.Pages.Documents.Shared.ErrorComponent -@using Volo.Docs.Pages.Shared.Components.Head @inject IThemeManager ThemeManager @inject IPageLayout PageLayout @inject IHtmlLocalizer L +@inject IOptions DocsWebOptions @model IndexModel @{ @@ -36,7 +44,7 @@ } @section scripts { - + @if (Model.LoadSuccess) { @@ -50,6 +58,34 @@ + if (DocsWebOptions.Value.UseGoogleTranslation) + { + + + } } else { @@ -178,6 +214,17 @@ } + @if (DocsWebOptions.Value.UseGoogleTranslation) + { +
+ @L["GoogleTranslate"] +
+
+
+
+
+ } +
@@ -341,7 +388,7 @@ var rowCount = count / maxCellCount + (count % maxCellCount > 0 ? 1 : 0); var cellSize = 12 / (count > maxCellCount ? maxCellCount : count); var latestCellSize = 12 / count - (rowCount - 1) * maxCellCount; - + string BuildParameterDivClass(int index) { var row = index / maxCellCount; @@ -349,7 +396,7 @@ var currentCellSize = isLastRow ? latestCellSize : cellSize; return $"col-12 col-lg-{currentCellSize} mb-lg-{(isLastRow ? "0" : "2")} {(index == count - 1 ? "" : "mb-2")}"; } - + for (var i = 0; i < count; ++i) { var parameter = Model.DocumentPreferences.Parameters[i]; @@ -391,11 +438,11 @@ } @Html.Raw(Model.Document.Content) - + @if (Model.DocumentNavigationsDto.HasValues) {
- +