Translation & Localisation initialisation

This commit is contained in:
2018-12-12 14:32:03 +00:00
parent c5699db198
commit fce5b0ea11
23 changed files with 3797 additions and 310 deletions

View File

@ -0,0 +1,7 @@
namespace Yavsc.Server
{
public interface ITranslator
{
string[] Translate (string slang, string dlang, string[] text);
}
}

View File

@ -23,6 +23,9 @@ namespace Yavsc.Models.Blog
[Display(Name="Photo")][StringLength(1024)] [Display(Name="Photo")][StringLength(1024)]
public string Photo { get; set; } public string Photo { get; set; }
[StringLength(8)]
public string Lang { get; set; }
[Display(Name="Indice de qualité")] [Display(Name="Indice de qualité")]
public int Rate { get; set; } public int Rate { get; set; }

View File

@ -0,0 +1,26 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Newtonsoft.Json;
using Yavsc.Models;
namespace Yavsc.Server.Models.Blog
{
public class BlogTrad
{
[Required]
public long PostId { get; set; }
[Required]
public string Lang { get; set; }
public string Title { get; set; }
public string Body { get; set; }
public string TraducerId { get; set; }
[ForeignKey("TraducerId"),JsonIgnore]
public ApplicationUser Traducer { set; get; }
}
}

View File

@ -0,0 +1,7 @@
namespace Yavsc.Server.Services
{
public class TranslationService
{
}
}

View File

@ -1,31 +0,0 @@
namespace Yavsc.ViewModels.Blogspot
{
public class BlogIndexKey
{
public string AuthorId { get; set; }
public string Title { get; set; }
// override object.Equals
public override bool Equals (object obj)
{
//
// See the full list of guidelines at
// http://go.microsoft.com/fwlink/?LinkID=85237
// and also the guidance for operator== at
// http://go.microsoft.com/fwlink/?LinkId=85238
//
if (obj == null || GetType() != obj.GetType())
{
return false;
}
var blogindexkey = (BlogIndexKey)obj;
return Title == blogindexkey.Title && AuthorId == blogindexkey.AuthorId;
}
// override object.GetHashCode
public override int GetHashCode()
{
return Title.GetHashCode() * AuthorId.GetHashCode();
}
}
}

View File

@ -39,31 +39,10 @@ namespace Yavsc.Controllers
[AllowAnonymous] [AllowAnonymous]
public async Task<IActionResult> Index(string id, int skip=0, int maxLen=25) public async Task<IActionResult> Index(string id, int skip=0, int maxLen=25)
{ {
if (!string.IsNullOrEmpty(id)) if (!string.IsNullOrEmpty(id)) {
return await UserPosts(id); return await UserPosts(id);
string uid = User.GetUserId();
long[] usercircles = _context.Circle.Include(c=>c.Members).Where(c=>c.Members.Any(m=>m.MemberId == uid))
.Select(c=>c.Id).ToArray();
IQueryable<BlogPost> posts ;
var allposts = _context.Blogspot
.Include(b => b.Author)
.Include(p=>p.ACL)
.Include(p=>p.Tags)
.Include(p=>p.Comments)
.Where(p=>p.AuthorId == uid || p.Visible);
if (usercircles != null) {
posts = allposts.Where(p=> p.ACL.Count==0 || p.ACL.Any(a=> usercircles.Contains(a.CircleId)))
;
} }
else { return View();
posts = allposts.Where(p => p.ACL.Count == 0);
}
var data = posts.OrderByDescending( p=> p.DateCreated).ToArray();
var grouped = data.GroupBy(p=> p.Title).Skip(skip).Take(maxLen);
return View(grouped);
} }
[Route("/Title/{id?}")] [Route("/Title/{id?}")]

View File

@ -138,8 +138,9 @@ public static FileRecievedInfo ReceiveProSignature(this ClaimsPrincipal user, st
} }
public static HtmlString FileLink(this RemoteFileInfo info, string username, string subpath) public static HtmlString FileLink(this RemoteFileInfo info, string username, string subpath)
{ {
return new HtmlString( Startup.UserFilesOptions.RequestPath+"/"+ username + "/" + subpath + "/" + return new HtmlString( Startup.UserFilesOptions.RequestPath+"/"+ username +
HttpUtility.UrlEncode(info.Name) ); "/" + (( subpath == null ) ? "" : "/" + subpath ) +
info.Name );
} }
public static FileRecievedInfo ReceiveAvatar(this ApplicationUser user, IFormFile formFile) public static FileRecievedInfo ReceiveAvatar(this ApplicationUser user, IFormFile formFile)
{ {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,823 @@
using System;
using System.Collections.Generic;
using Microsoft.Data.Entity.Migrations;
namespace Yavsc.Migrations
{
public partial class blogLang : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId", table: "AspNetRoleClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId", table: "AspNetUserClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId", table: "AspNetUserLogins");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_IdentityRole_RoleId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_ApplicationUser_UserId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed");
migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_BlogPost_BlogPostId", table: "CircleAuthorizationToBlogPost");
migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost");
migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance");
migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact");
migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine");
migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate");
migrationBuilder.DropForeignKey(name: "FK_BlogTag_BlogPost_PostId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_BlogTag_Tag_TagId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_Comment_ApplicationUser_AuthorId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Comment_BlogPost_PostId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Schedule_ApplicationUser_OwnerId", table: "Schedule");
migrationBuilder.DropForeignKey(name: "FK_ChatConnection_ApplicationUser_ApplicationUserId", table: "ChatConnection");
migrationBuilder.DropForeignKey(name: "FK_BrusherProfile_PerformerProfile_UserId", table: "BrusherProfile");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_HairPrestation_PrestationId", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairPrestationCollectionItem_HairPrestation_PrestationId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairPrestation_PrestationId", table: "HairTaintInstance");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairTaint_TaintId", table: "HairTaintInstance");
migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked");
migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked");
migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation");
migrationBuilder.DropForeignKey(name: "FK_PayPalPayment_ApplicationUser_ExecutorId", table: "PayPalPayment");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember");
migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm");
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile");
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile");
migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery");
migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery");
migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery");
migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity");
migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity");
migrationBuilder.DropForeignKey(name: "FK_Project_Activity_ActivityCode", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_Project_ApplicationUser_ClientId", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_Project_GitRepositoryReference_GitId", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_Project_PerformerProfile_PerformerId", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_ProjectBuildConfiguration_Project_ProjectId", table: "ProjectBuildConfiguration");
migrationBuilder.AddColumn<string>(
name: "Lang",
table: "BlogPost",
nullable: true);
migrationBuilder.Sql("update \"BlogPost\" set \"Lang\"='fr'");
migrationBuilder.AddForeignKey(
name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId",
table: "AspNetRoleClaims",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId",
table: "AspNetUserClaims",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId",
table: "AspNetUserLogins",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_IdentityRole_RoleId",
table: "AspNetUserRoles",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_ApplicationUser_UserId",
table: "AspNetUserRoles",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_BlackListed_ApplicationUser_OwnerId",
table: "BlackListed",
column: "OwnerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_CircleAuthorizationToBlogPost_BlogPost_BlogPostId",
table: "CircleAuthorizationToBlogPost",
column: "BlogPostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId",
table: "CircleAuthorizationToBlogPost",
column: "CircleId",
principalTable: "Circle",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_AccountBalance_ApplicationUser_UserId",
table: "AccountBalance",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_BalanceImpact_AccountBalance_BalanceId",
table: "BalanceImpact",
column: "BalanceId",
principalTable: "AccountBalance",
principalColumn: "UserId",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_CommandLine_Estimate_EstimateId",
table: "CommandLine",
column: "EstimateId",
principalTable: "Estimate",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Estimate_ApplicationUser_ClientId",
table: "Estimate",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_BlogTag_BlogPost_PostId",
table: "BlogTag",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_BlogTag_Tag_TagId",
table: "BlogTag",
column: "TagId",
principalTable: "Tag",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Comment_ApplicationUser_AuthorId",
table: "Comment",
column: "AuthorId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Comment_BlogPost_PostId",
table: "Comment",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Schedule_ApplicationUser_OwnerId",
table: "Schedule",
column: "OwnerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_ChatConnection_ApplicationUser_ApplicationUserId",
table: "ChatConnection",
column: "ApplicationUserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_BrusherProfile_PerformerProfile_UserId",
table: "BrusherProfile",
column: "UserId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_Activity_ActivityCode",
table: "HairCutQuery",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_ApplicationUser_ClientId",
table: "HairCutQuery",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_PerformerProfile_PerformerId",
table: "HairCutQuery",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_HairPrestation_PrestationId",
table: "HairCutQuery",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairMultiCutQuery_Activity_ActivityCode",
table: "HairMultiCutQuery",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairMultiCutQuery_ApplicationUser_ClientId",
table: "HairMultiCutQuery",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId",
table: "HairMultiCutQuery",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairPrestationCollectionItem_HairPrestation_PrestationId",
table: "HairPrestationCollectionItem",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId",
table: "HairPrestationCollectionItem",
column: "QueryId",
principalTable: "HairMultiCutQuery",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairTaint_Color_ColorId",
table: "HairTaint",
column: "ColorId",
principalTable: "Color",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairTaintInstance_HairPrestation_PrestationId",
table: "HairTaintInstance",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_HairTaintInstance_HairTaint_TaintId",
table: "HairTaintInstance",
column: "TaintId",
principalTable: "HairTaint",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_DimissClicked_Notification_NotificationId",
table: "DimissClicked",
column: "NotificationId",
principalTable: "Notification",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_DimissClicked_ApplicationUser_UserId",
table: "DimissClicked",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Instrumentation_Instrument_InstrumentId",
table: "Instrumentation",
column: "InstrumentId",
principalTable: "Instrument",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_PayPalPayment_ApplicationUser_ExecutorId",
table: "PayPalPayment",
column: "ExecutorId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_CircleMember_Circle_CircleId",
table: "CircleMember",
column: "CircleId",
principalTable: "Circle",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_CircleMember_ApplicationUser_MemberId",
table: "CircleMember",
column: "MemberId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_CommandForm_Activity_ActivityCode",
table: "CommandForm",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_PerformerProfile_Location_OrganizationAddressId",
table: "PerformerProfile",
column: "OrganizationAddressId",
principalTable: "Location",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_PerformerProfile_ApplicationUser_PerformerId",
table: "PerformerProfile",
column: "PerformerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_RdvQuery_Activity_ActivityCode",
table: "RdvQuery",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_RdvQuery_ApplicationUser_ClientId",
table: "RdvQuery",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_RdvQuery_PerformerProfile_PerformerId",
table: "RdvQuery",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_UserActivity_Activity_DoesCode",
table: "UserActivity",
column: "DoesCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_UserActivity_PerformerProfile_UserId",
table: "UserActivity",
column: "UserId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Project_Activity_ActivityCode",
table: "Project",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Project_ApplicationUser_ClientId",
table: "Project",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Project_GitRepositoryReference_GitId",
table: "Project",
column: "GitId",
principalTable: "GitRepositoryReference",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Project_PerformerProfile_PerformerId",
table: "Project",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_ProjectBuildConfiguration_Project_ProjectId",
table: "ProjectBuildConfiguration",
column: "ProjectId",
principalTable: "Project",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId", table: "AspNetRoleClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId", table: "AspNetUserClaims");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId", table: "AspNetUserLogins");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_IdentityRole_RoleId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_IdentityUserRole<string>_ApplicationUser_UserId", table: "AspNetUserRoles");
migrationBuilder.DropForeignKey(name: "FK_BlackListed_ApplicationUser_OwnerId", table: "BlackListed");
migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_BlogPost_BlogPostId", table: "CircleAuthorizationToBlogPost");
migrationBuilder.DropForeignKey(name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId", table: "CircleAuthorizationToBlogPost");
migrationBuilder.DropForeignKey(name: "FK_AccountBalance_ApplicationUser_UserId", table: "AccountBalance");
migrationBuilder.DropForeignKey(name: "FK_BalanceImpact_AccountBalance_BalanceId", table: "BalanceImpact");
migrationBuilder.DropForeignKey(name: "FK_CommandLine_Estimate_EstimateId", table: "CommandLine");
migrationBuilder.DropForeignKey(name: "FK_Estimate_ApplicationUser_ClientId", table: "Estimate");
migrationBuilder.DropForeignKey(name: "FK_BlogTag_BlogPost_PostId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_BlogTag_Tag_TagId", table: "BlogTag");
migrationBuilder.DropForeignKey(name: "FK_Comment_ApplicationUser_AuthorId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Comment_BlogPost_PostId", table: "Comment");
migrationBuilder.DropForeignKey(name: "FK_Schedule_ApplicationUser_OwnerId", table: "Schedule");
migrationBuilder.DropForeignKey(name: "FK_ChatConnection_ApplicationUser_ApplicationUserId", table: "ChatConnection");
migrationBuilder.DropForeignKey(name: "FK_BrusherProfile_PerformerProfile_UserId", table: "BrusherProfile");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_Activity_ActivityCode", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_ApplicationUser_ClientId", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_PerformerProfile_PerformerId", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairCutQuery_HairPrestation_PrestationId", table: "HairCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_Activity_ActivityCode", table: "HairMultiCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_ApplicationUser_ClientId", table: "HairMultiCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId", table: "HairMultiCutQuery");
migrationBuilder.DropForeignKey(name: "FK_HairPrestationCollectionItem_HairPrestation_PrestationId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId", table: "HairPrestationCollectionItem");
migrationBuilder.DropForeignKey(name: "FK_HairTaint_Color_ColorId", table: "HairTaint");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairPrestation_PrestationId", table: "HairTaintInstance");
migrationBuilder.DropForeignKey(name: "FK_HairTaintInstance_HairTaint_TaintId", table: "HairTaintInstance");
migrationBuilder.DropForeignKey(name: "FK_DimissClicked_Notification_NotificationId", table: "DimissClicked");
migrationBuilder.DropForeignKey(name: "FK_DimissClicked_ApplicationUser_UserId", table: "DimissClicked");
migrationBuilder.DropForeignKey(name: "FK_Instrumentation_Instrument_InstrumentId", table: "Instrumentation");
migrationBuilder.DropForeignKey(name: "FK_PayPalPayment_ApplicationUser_ExecutorId", table: "PayPalPayment");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_Circle_CircleId", table: "CircleMember");
migrationBuilder.DropForeignKey(name: "FK_CircleMember_ApplicationUser_MemberId", table: "CircleMember");
migrationBuilder.DropForeignKey(name: "FK_CommandForm_Activity_ActivityCode", table: "CommandForm");
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_Location_OrganizationAddressId", table: "PerformerProfile");
migrationBuilder.DropForeignKey(name: "FK_PerformerProfile_ApplicationUser_PerformerId", table: "PerformerProfile");
migrationBuilder.DropForeignKey(name: "FK_RdvQuery_Activity_ActivityCode", table: "RdvQuery");
migrationBuilder.DropForeignKey(name: "FK_RdvQuery_ApplicationUser_ClientId", table: "RdvQuery");
migrationBuilder.DropForeignKey(name: "FK_RdvQuery_PerformerProfile_PerformerId", table: "RdvQuery");
migrationBuilder.DropForeignKey(name: "FK_UserActivity_Activity_DoesCode", table: "UserActivity");
migrationBuilder.DropForeignKey(name: "FK_UserActivity_PerformerProfile_UserId", table: "UserActivity");
migrationBuilder.DropForeignKey(name: "FK_Project_Activity_ActivityCode", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_Project_ApplicationUser_ClientId", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_Project_GitRepositoryReference_GitId", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_Project_PerformerProfile_PerformerId", table: "Project");
migrationBuilder.DropForeignKey(name: "FK_ProjectBuildConfiguration_Project_ProjectId", table: "ProjectBuildConfiguration");
migrationBuilder.DropColumn(name: "Lang", table: "BlogPost");
migrationBuilder.AddForeignKey(
name: "FK_IdentityRoleClaim<string>_IdentityRole_RoleId",
table: "AspNetRoleClaims",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserClaim<string>_ApplicationUser_UserId",
table: "AspNetUserClaims",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserLogin<string>_ApplicationUser_UserId",
table: "AspNetUserLogins",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_IdentityRole_RoleId",
table: "AspNetUserRoles",
column: "RoleId",
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_IdentityUserRole<string>_ApplicationUser_UserId",
table: "AspNetUserRoles",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_BlackListed_ApplicationUser_OwnerId",
table: "BlackListed",
column: "OwnerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_CircleAuthorizationToBlogPost_BlogPost_BlogPostId",
table: "CircleAuthorizationToBlogPost",
column: "BlogPostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_CircleAuthorizationToBlogPost_Circle_CircleId",
table: "CircleAuthorizationToBlogPost",
column: "CircleId",
principalTable: "Circle",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_AccountBalance_ApplicationUser_UserId",
table: "AccountBalance",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_BalanceImpact_AccountBalance_BalanceId",
table: "BalanceImpact",
column: "BalanceId",
principalTable: "AccountBalance",
principalColumn: "UserId",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_CommandLine_Estimate_EstimateId",
table: "CommandLine",
column: "EstimateId",
principalTable: "Estimate",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Estimate_ApplicationUser_ClientId",
table: "Estimate",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_BlogTag_BlogPost_PostId",
table: "BlogTag",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_BlogTag_Tag_TagId",
table: "BlogTag",
column: "TagId",
principalTable: "Tag",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Comment_ApplicationUser_AuthorId",
table: "Comment",
column: "AuthorId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Comment_BlogPost_PostId",
table: "Comment",
column: "PostId",
principalTable: "BlogPost",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Schedule_ApplicationUser_OwnerId",
table: "Schedule",
column: "OwnerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ChatConnection_ApplicationUser_ApplicationUserId",
table: "ChatConnection",
column: "ApplicationUserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_BrusherProfile_PerformerProfile_UserId",
table: "BrusherProfile",
column: "UserId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_Activity_ActivityCode",
table: "HairCutQuery",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_ApplicationUser_ClientId",
table: "HairCutQuery",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_PerformerProfile_PerformerId",
table: "HairCutQuery",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairCutQuery_HairPrestation_PrestationId",
table: "HairCutQuery",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairMultiCutQuery_Activity_ActivityCode",
table: "HairMultiCutQuery",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairMultiCutQuery_ApplicationUser_ClientId",
table: "HairMultiCutQuery",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairMultiCutQuery_PerformerProfile_PerformerId",
table: "HairMultiCutQuery",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairPrestationCollectionItem_HairPrestation_PrestationId",
table: "HairPrestationCollectionItem",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairPrestationCollectionItem_HairMultiCutQuery_QueryId",
table: "HairPrestationCollectionItem",
column: "QueryId",
principalTable: "HairMultiCutQuery",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairTaint_Color_ColorId",
table: "HairTaint",
column: "ColorId",
principalTable: "Color",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairTaintInstance_HairPrestation_PrestationId",
table: "HairTaintInstance",
column: "PrestationId",
principalTable: "HairPrestation",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_HairTaintInstance_HairTaint_TaintId",
table: "HairTaintInstance",
column: "TaintId",
principalTable: "HairTaint",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_DimissClicked_Notification_NotificationId",
table: "DimissClicked",
column: "NotificationId",
principalTable: "Notification",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_DimissClicked_ApplicationUser_UserId",
table: "DimissClicked",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Instrumentation_Instrument_InstrumentId",
table: "Instrumentation",
column: "InstrumentId",
principalTable: "Instrument",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_PayPalPayment_ApplicationUser_ExecutorId",
table: "PayPalPayment",
column: "ExecutorId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_CircleMember_Circle_CircleId",
table: "CircleMember",
column: "CircleId",
principalTable: "Circle",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_CircleMember_ApplicationUser_MemberId",
table: "CircleMember",
column: "MemberId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_CommandForm_Activity_ActivityCode",
table: "CommandForm",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_PerformerProfile_Location_OrganizationAddressId",
table: "PerformerProfile",
column: "OrganizationAddressId",
principalTable: "Location",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_PerformerProfile_ApplicationUser_PerformerId",
table: "PerformerProfile",
column: "PerformerId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_RdvQuery_Activity_ActivityCode",
table: "RdvQuery",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_RdvQuery_ApplicationUser_ClientId",
table: "RdvQuery",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_RdvQuery_PerformerProfile_PerformerId",
table: "RdvQuery",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_UserActivity_Activity_DoesCode",
table: "UserActivity",
column: "DoesCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_UserActivity_PerformerProfile_UserId",
table: "UserActivity",
column: "UserId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Project_Activity_ActivityCode",
table: "Project",
column: "ActivityCode",
principalTable: "Activity",
principalColumn: "Code",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Project_ApplicationUser_ClientId",
table: "Project",
column: "ClientId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Project_GitRepositoryReference_GitId",
table: "Project",
column: "GitId",
principalTable: "GitRepositoryReference",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Project_PerformerProfile_PerformerId",
table: "Project",
column: "PerformerId",
principalTable: "PerformerProfile",
principalColumn: "PerformerId",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ProjectBuildConfiguration_Project_ProjectId",
table: "ProjectBuildConfiguration",
column: "ProjectId",
principalTable: "Project",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
}
}

View File

@ -1,6 +1,8 @@
using System; using System;
using Microsoft.Data.Entity; using Microsoft.Data.Entity;
using Microsoft.Data.Entity.Infrastructure; using Microsoft.Data.Entity.Infrastructure;
using Microsoft.Data.Entity.Metadata;
using Microsoft.Data.Entity.Migrations;
using Yavsc.Models; using Yavsc.Models;
namespace Yavsc.Migrations namespace Yavsc.Migrations
@ -414,6 +416,9 @@ namespace Yavsc.Migrations
b.Property<DateTime>("DateModified"); b.Property<DateTime>("DateModified");
b.Property<string>("Lang")
.HasAnnotation("MaxLength", 8);
b.Property<string>("Photo") b.Property<string>("Photo")
.HasAnnotation("MaxLength", 1024); .HasAnnotation("MaxLength", 1024);

View File

@ -37,6 +37,7 @@ namespace Yavsc.Models
using Blog; using Blog;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Yavsc.Abstract.Identity; using Yavsc.Abstract.Identity;
using Yavsc.Server.Models.Blog;
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{ {
@ -63,11 +64,13 @@ namespace Yavsc.Models
builder.Entity<Models.Cratie.Option>().HasKey(o => new { o.Code, o.CodeScrutin }); builder.Entity<Models.Cratie.Option>().HasKey(o => new { o.Code, o.CodeScrutin });
builder.Entity<Notification>().Property(n => n.icon).HasDefaultValue("exclam"); builder.Entity<Notification>().Property(n => n.icon).HasDefaultValue("exclam");
builder.Entity<ChatRoomPresence>().HasKey(p => new { room = p.ChannelName, user = p.ChatUserConnectionId }); builder.Entity<ChatRoomPresence>().HasKey(p => new { room = p.ChannelName, user = p.ChatUserConnectionId });
foreach (var et in builder.Model.GetEntityTypes()) foreach (var et in builder.Model.GetEntityTypes())
{ {
if (et.ClrType.GetInterface("IBaseTrackedEntity") != null) if (et.ClrType.GetInterface("IBaseTrackedEntity") != null)
et.FindProperty("DateCreated").IsReadOnlyAfterSave = true; et.FindProperty("DateCreated").IsReadOnlyAfterSave = true;
} }
builder.Entity<BlogTrad>().HasKey(tr => new { post = tr.PostId, lang = tr.Lang });
} }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {
@ -309,7 +312,9 @@ namespace Yavsc.Models
public DbSet<GitRepositoryReference> GitRepositoryReference { get; set; } public DbSet<GitRepositoryReference> GitRepositoryReference { get; set; }
public DbSet<Project> Projects { get; set; } public DbSet<Project> Projects { get; set; }
public DbSet<BlogTrad> BlogTrad { get; set; }
} }
} }

View File

@ -746,6 +746,7 @@
<data name="Anglais"> <data name="Anglais">
<value>English</value> <value>English</value>
</data> </data>
<data name="Portugais"><value>Portugese</value></data>
<data name="RequiredField"> <data name="RequiredField">
<value>This field is required.</value> <value>This field is required.</value>
</data> </data>

View File

@ -285,7 +285,6 @@
<data name="Message sent"><value>Votre message a été envoyé</value></data> <data name="Message sent"><value>Votre message a été envoyé</value></data>
<data name="MinDate"><value>Date minimale du rendez-vous</value></data> <data name="MinDate"><value>Date minimale du rendez-vous</value></data>
<data name="MinDailyCost"><value>Coût minimal journalier</value></data> <data name="MinDailyCost"><value>Coût minimal journalier</value></data>
MinDailyCost
<data name="Modified"><value>Modifié</value></data> <data name="Modified"><value>Modifié</value></data>
<data name="Modify"><value>Modifier</value></data> <data name="Modify"><value>Modifier</value></data>
<data name="Modify settings"><value>Modifier les paramètres</value></data> <data name="Modify settings"><value>Modifier les paramètres</value></data>
@ -359,7 +358,7 @@
<data name="Remove my professional profile"><value>Supprimer mon profil professionnel</value></data> <data name="Remove my professional profile"><value>Supprimer mon profil professionnel</value></data>
<data name="Role"><value>Rôle</value></data> <data name="Role"><value>Rôle</value></data>
<data name="Reset Password"><value>Ré-initialiser votre mot de passe</value></data> <data name="Reset Password"><value>Ré-initialiser votre mot de passe</value></data>
<data name="Reset password confirmation"><value>Confirmation de ré-initialiser du mot de passe</value></data> <data name="Reset password confirmation"><value>Confirmation de ré-initialisation du mot de passe</value></data>
<data name="role created"><value>Rôle créé</value></data> <data name="role created"><value>Rôle créé</value></data>
<data name="RoleName"><value>Nom du rôle </value></data> <data name="RoleName"><value>Nom du rôle </value></data>
<data name="Save these settings"><value>Enregistrer ces paramètres</value></data> <data name="Save these settings"><value>Enregistrer ces paramètres</value></data>
@ -443,6 +442,7 @@
<data name="UnsetActivity"><value>Supprimer mon profil professionel</value></data> <data name="UnsetActivity"><value>Supprimer mon profil professionel</value></data>
<data name="Français"><value>Français</value></data> <data name="Français"><value>Français</value></data>
<data name="Anglais"><value>Anglais</value></data> <data name="Anglais"><value>Anglais</value></data>
<data name="Portugais"><value>Portugais</value></data>
<data name="InvalidUserName"><value>Nom d'utilisateur invalide. <data name="InvalidUserName"><value>Nom d'utilisateur invalide.
Les caratères valides sont: le souligné (_), le petit titret (-), l'apostrohe ('), les minuscules et majuscules de a à z, les chiffres de 0 à 9, l'espace et le point.</value></data> Les caratères valides sont: le souligné (_), le petit titret (-), l'apostrohe ('), les minuscules et majuscules de a à z, les chiffres de 0 à 9, l'espace et le point.</value></data>
<data name="RequiredField"><value>Ce champ est obligatoire.</value></data> <data name="RequiredField"><value>Ce champ est obligatoire.</value></data>

View File

@ -0,0 +1,487 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="About"><value>Sobre</value></data>
<data name="access denied"><value>Accesso rechazado</value></data>
<data name="AcceptNotifications"><value>aceitar notificaçãoes de pedidos de compromisso</value></data>
<data name="AcceptPublicContact"><value>Aceitar entres em contacto</value></data>
<data name="AccountBalance"><value>saldo da conta</value></data>
<data name="ActivateMyProSettings"><value>Ativar meu perfil profissional</value></data>
<data name="Activity"><value>Actividade</value></data>
<data name="Activities"><value>Actividades</value></data>
<data name="additionally"><value>Mais</value></data>
<data name="Address"><value>Morada</value></data>
<data name="Allow my geolocatisation, nearby the clients"><value>Aceitar a minha geolocatisaçao, a critério de meus clientes</value></data>
<data name="AnIMessageHasbeenSent"><value>Um messagem instantâneo fui mandado à {0},
apresentando-lhe o seu pedido. Você deve ser contatado muito rapidamente.</value></data>
<data name="aprestation"><value>uma prestação</value></data>
<data name="approved"><value>Aprovado</value></data>
<data name="AskForAnEstimate"><value>Pedir uma cotação</value></data>
<data name="AttachedFiles"><value>Arquivos anexados</value></data>
<data name="AuthenticatedOnly"><value>Apenas usuários autenticados podem acessar essas informações.</value></data>
<data name="Author"><value>Autor</value></data>
<data name="available"><value>disponível</value></data>
<data name="Back to List"><value>De volta à lista</value></data>
<data name="Basket"><value>cesta</value></data>
<data name="Bill edition"><value>edição de fatura</value></data>
<data name="Bill removal"><value>supressão factura</value></data>
<data name="BillAccessControl"><value>Controle de acesso</value></data>
<data name="BillCreated"><value>Fatura criada</value></data>
<data name="BillSourceCode"><value>Codigo fonte</value></data>
<data name="BillUpdated"><value>Atualizado</value></data>
<data name="Blog post edition"><value>Editando o artigo</value></data>
<data name="body"><value>corpo de texte</value></data>
<data name="Book AStar"><value>propor um compromisso para o seu artista</value></data>
<data name="Book IT"><value>propor um compromisso ao seu provedor de serviços digitais</value></data>
<data name="BookingTitleArtiste"><value>Reserve os serviços de um artista</value></data>
<data name="BookingTitle6829C"><value>Reserve os serviços de um editor de software</value></data>
<data name="Calendar"><value>calendário</value></data>
<data name="Catalog"><value>catálogo</value></data>
<data name="Change"><value>Mudar</value></data>
<data name="Change user name form"><value>Formulário de mudança de apelido (avatar, o nome público desta conta de usuário aqui)</value></data>
<data name="Change your account settings"><value>Alterar as configurações da sua conta</value></data>
<data name="Connect using"><value>Entre usando</value></data>
<data name="Choose below your main activity"><value>Escolha sua atividade principal abaixo</value></data>
<data name="ChooseADescription"><value>Por favor, uma descrição é necessária.</value></data>
<data name="ChooseATitle"><value>Por favor, um título é necessário.</value></data>
<data name="ChooseADateInTheFutur"><value>Por favor, uma data no futuro é necessária.</value></data>
<data name="ChooseAnEventDate"><value>Por favor, uma data para este serviço é necessária.</value></data>
<data name="Ciffer"><value>figura</value></data>
<data name="Circles"><value>círculos</value></data>
<data name="Click action"><value>Ação ao clicar</value></data>
<data name="Click here to log in"><value>Clique aqui para entrar</value></data>
<data name="Color"><value>Cor</value></data>
<data name="Command"><value>ordem</value></data>
<data name="Command confirmation"><value>Confirmação de Pedido</value></data>
<data name="Comment"><value>comentário</value></data>
<data name="Consultant"><value>consultor</value></data>
<data name="ContactAPerformer"><value>Entre em contato com um inquilino</value></data>
<data name="Content"><value>conteúdo</value></data>
<data name="Count"><value>número</value></data>
<data name="CouldNotConvertVToDouble"><value>A conversão de '{0}' para 'double' era impossível.</value></data>
<data name="Create"><value>criar</value></data>
<data name="Create a new article"><value>Crie um novo artigo</value></data>
<data name="Create a new account"><value>Crie uma nova conta</value></data>
<data name="Credits"><value>créditos</value></data>
<data name="Date search"><value>Pesquisar por uma data</value></data>
<data name="DateCreated"><value>Data de criação</value></data>
<data name="DateModified"><value>Data da última modificação</value></data>
<data name="DB"><value>Banco de dados</value></data>
<data name="Details"><value>detalhes</value></data>
<data name="Delete"><value>remover</value></data>
<data name="Deposit"><value>depósito</value></data>
<data name="Description"><value>descrição</value></data>
<data name="DoAnEstimate"><value>Faça uma cotação</value></data>
<data name="DoComment"><value>Commentar</value></data>
<data name="DoCommentPlaceHolder"><value>Seu comentário</value></data>
<data name="DoNotPublishMyActivity"><value>Não publique minha atividade</value></data>
<data name="DocTemplateException"><value>Ocorreu um erro ao gerar seu documento</value></data>
<data name="DisplayName"><value>Nome de exibição</value></data>
<data name="Disable"><value>desativar</value></data>
<data name="Disabled"><value>desativado</value></data>
<data name="DoPost"><value>Poster</value></data>
<data name="DoTag"><value>etiquetar</value></data>
<data name="Edit"><value>Editar</value></data>
<data name="Edited"><value>editado</value></data>
<data name="EditRelatedSkills"><value>Editar habilidades relacionadas</value></data>
<data name="Enabled"><value>ativado</value></data>
<data name="Enable"><value>ativar</value></data>
<data name="EndDate"><value>Data final</value></data>
<data name="EndHour"><value>Hora de término</value></data>
<data name="email"><value>e-mail</value></data>
<data name="Enter your email."><value>Digite seu email.</value></data>
<data name="Enter your user name or e-mail."><value>Digite seu nome de usuário ou email.</value></data>
<data name="entries"><value>entradas</value></data>
<data name="Estimate"><value>estimar</value></data>
<data name="Estimate_not_found"><value>Cotação não encontrada</value></data>
<data name="EstimateToProduce"><value>Pedidos pendente de cotação</value></data>
<data name="EstimateToSignAsPro"><value>Cotação para validar</value></data>
<data name="EstimateToSignAsCli"><value>Cotação para aceder ou recusar</value></data>
<data name="EstimationMessageToClient"><value>{0} validou e avaliou sua solicitação, com uma cotação para {1: C}</value></data>
<data name="EventDate"><value>Data do evento</value></data>
<data name="BillToSignAsPro"><value>Faturas para produzir</value></data>
<data name="BillToSignAsCli"><value>Faturas para honrar</value></data>
<data name="EstimateWanted"><value>Pedido de cotação</value></data>
<data name="Event date"><value>Data do evento</value></data>
<data name="EventWebPage"><value>Página da web do evento</value></data>
<data name="ExistantDB"><value>Banco de dados existente</value></data>
<data name="External Logins"><value>Registros externos</value></data>
<data name="FillInAFutureDate"><value>Por favor, use uma data futura.</value></data>
<data name="Fill in your Bank Info"><value>Insira seus dados bancários</value></data>
<data name="Fill in your book query"><value>Digite seu pedido de compromisso</value></data>
<data name="Forbidden"><value>Conteúdo com acesso restrito</value></data>
<data name="Forgot your password?"><value>Senha perdida?</value></data>
<data name="Forgot Password Confirmation."><value>confirmação de Senha perdida.</value></data>
<data name="from"><value>de</value></data>
<data name="Full name"><value>Nome completo</value></data>
<data name="EGCMBUTEMAIL"><value>O envio da mensagem 'Google Cloud' falhou, mas um email foi enviado</value></data>
<data name="GCM Notifications sent"><value>mensagem push enviado</value></data>
<data name="GCM Notification sending failed"><value>O envio da mensagem Google Cloud a échoué ...</value></data>
<data name="GiveAnExplicitReason"><value>Também fale sobre esse evento</value></data>
<data name="GoogleDidntGeoLocalized"><value>O Google não conseguiu identificar este lugar</value></data>
<data name="Google calendar"><value>Google Calendar</value></data>
<data name="Google error"><value>erro Google : {0}</value></data>
<data name="Google registration id"><value>ID de registro Google</value></data>
<data name="Hide source"><value>Ocultar o texto de origem do artigo</value></data>
<data name="Home"><value>bem-vindo</value></data>
<data name="Hide"><value>Ocultar</value></data>
<data name="hidden"><value>Ocultado</value></data>
<data name="I understood"><value>Eu entendi</value></data>
<data name="Icon"><value>ícone</value></data>
<data name="Icons made by"><value>Ícones feitos por</value></data>
<data name="Identity"><value>identidade</value></data>
<data name="ImgLocator"><value>Imagem URI</value></data>
<data name="ImportException"><value>Exceção à importação</value></data>
<data name="InternalServerError"><value>Erro interno do servidor</value></data>
<data name="Invalid company number"><value>Número inválido</value></data>
<data name="is asking you for a date"><value>lhe pede uma consulta</value></data>
<data name="is licensed_by"><value>estão licenciados</value></data>
<data name="Item added to basket"><value>Item adicionado ao carrinho.</value></data>
<data name="Location"><value>lugar</value></data>
<data name="Login"><value>conexão</value></data>
<data name="LoginOrEmail"><value>Nome de usuário ou e-mail</value></data>
<data name="Log in"><value>Login</value></data>
<data name="Logout"><value>desconexão</value></data>
<data name="Long"><value>longo</value></data>
<data name="MainActivity"><value>Atividade principal</value></data>
<data name="Man"><value>homem</value><comment></comment></data>
<data name="Manage"><value>gerir</value></data>
<data name="Manage your account"><value>gerir seu registro</value></data>
<data name="ManagedSiteSkills"><value>Habilidades gerenciadas neste site</value></data>
<data name="MaxDate"><value>Data máxima do compromisso</value></data>
<data name="MaxDailyCost"><value>Custo diário máximo</value></data>
<data name="MEACode"><value>Código de atividade principalmente exercitado</value></data>
<data name="Members"><value>membros</value></data>
<data name="Message sent"><value>Sua mensagem foi enviada</value></data>
<data name="MinDate"><value>Data mínima do compromisso</value></data>
<data name="MinDailyCost"><value>Custo Mínimo Diário</value></data>
<data name="Modified"><value>Alterado</value></data>
<data name="Modify"><value>Alterar</value></data>
<data name="Modify settings"><value>Alterar configurações</value></data>
<data name="My Estimates"><value>Minhas estimativas</value></data>
<data name="Name"><value>Nome</value></data>
<data name="Needs"><value>necessidades</value></data>
<data name="Need"><value>necessidade</value></data>
<data name="New user name"><value>Novo nome de usuário (avatar)</value></data>
<data name="New Tag"><value>Nova tag</value></data>
<data name="NewPasswordMessageSent"><value>Um e-mail acaba de ser enviado para você, ele contém o link a seguir
para poder atualizar sua senha.</value></data>
<data name="No"><value>não</value></data>
<data name="NoTech"><value>Nenhuma técnica especificada</value></data>
<data name="No calendar for this user"><value>O inquilino não possui um calendário associado.</value></data>
<data name="no content"><value>sem conteúdo</value></data>
<data name="No deposit"><value>Nenhum depósito foi planejado</value></data>
<data name="none"><value>não</value></data>
<data name="Non existent user"><value>Usuário inexistente</value></data>
<data name="NoSkillforthisactivity"><value>Nenhuma competência foi registrada por nenhum presbítero para esta atividade.</value></data>
<data name="Not Approuved"><value>Não aprovado</value></data>
<data name="NonValidee"><value>Não validada</value></data>
<data name="NonValide"><value>Não validado</value></data>
<data name="off"><value>inativo</value></data>
<data name="Offline"><value>Off-line</value></data>
<data name="on"><value>ativo</value></data>
<data name="Online"><value>On-line</value></data>
<data name="OnlyAuthorizedMayContact"><value>Somente usuários autorizados podem entrar em contato com um provedor por email.</value></data>
<data name="Password"><value>Senha</value></data>
<data name="PaymentConfirmation"><value>Confirmação de pagamento</value></data>
<data name="PayementsDone"><value>Pagamentos feitos</value></data>
<data name="Pdf version"><value>Versão em pdf</value></data>
<data name="PerformanceDate"><value>Data do serviço</value></data>
<data name="PerformancePlace"><value>Lugar do serviço</value></data>
<data name="Performers"><value>provedores</value></data>
<data name="Performer"><value>provedor</value></data>
<data name="PerformerProfile"><value>perfil provedor</value></data>
<data name="Permanent"><value>Permanante</value></data>
<data name="Person"><value>Pessoa</value></data>
<data name="Photo"><value>foto</value></data>
<data name="PhotoUpdated"><value>foto atualizada</value></data>
<data name="Please"><value>Por favor</value></data>
<data name="PleaseCheckYourEmail"><value>por favor, verifique sua caixa de correio, para poder redefinir sua senha</value></data>
<data name="PleaseConfirmYourNewPassword"><value>por favor confirme sua nova senha.</value></data>
<data name="PleaseFillInABody"><value>Por favor, insira um corpo da mensagem</value></data>
<data name="PleaseFillInAReason"><value>Por favor, insira um reson, um assunto para sua mensagem</value></data>
<data name="Please reset your password by following this link:"><value>Por favor use o seguinte link para redefinir sua senha:</value></data>
<data name="Posted"><value>afixado</value></data>
<data name="PreferedDate"><value>Data desejada</value></data>
<data name="PresationLocation"><value>Lugar de Presença: {0}.\n</value></data>
<data name="Preview"><value>Prévisualiser</value><comment>Prévisualiser le document</comment></data>
<data name="Previsional"><value>Quantia provisória de renda</value></data>
<data name="Profile edition"><value>edição do perfil</value></data>
<data name="Product reference"><value>Referência do produto</value></data>
<data name="prestation"><value>benefício</value></data>
<data name="Professional settings"><value>Configurações profissionais</value></data>
<data name="Provider"><value>provedor</value></data>
<data name="ProviderId"><value>ID de provedor</value></data>
<data name="ProviderName"><value>Nome do provedor</value></data>
<data name="Rate"><value>Cote</value></data>
<data name="RdvToPerf"><value>{0} está fazendo uma consulta!!! le {1} à {2} ({3}/da scandale .5-rc12.)</value></data>
<data name="ReadMore"><value>Ler mais ...</value></data>
<data name="reason"><value>razão</value></data>
<data name="Register"><value>registrar</value></data>
<data name="Register as a new user"><value>Registre-se como um novo usuário</value></data>
<data name="RegistrationUnexpectedError"><value>Ocorreu um erro inesperado, SCANDALE.! $%:
"{0}".
Por favor, perdoe o inconveniente, mil mil e mil saborts.</value></data>
<data name="Remember me"><value>Lembre-se da senha</value></data>
<data name="Remove"><value>remover</value></data>
<data name="Remove my professional profile"><value>Excluir meu perfil profissional</value></data>
<data name="Role"><value>função</value></data>
<data name="Reset Password"><value>Redefinir sua senha</value></data>
<data name="Reset password confirmation"><value>Confirmação de reinicialização da senha</value></data>
<data name="role created"><value>função creada</value></data>
<data name="RoleName"><value>Nome da função </value></data>
<data name="Save these settings"><value>Salve essas configurações</value></data>
<data name="Search"><value>procurar</value></data>
<data name="Select a Google calendar"><value>Selecione um calendário do Google</value></data>
<data name="Send"><value>Enviar</value></data>
<data name="Send a private message"><value>Enviar un messagem privado</value></data>
<data name="Send a public message"><value>Enviar un messagem publico</value></data>
<data name="Set"><value>posicionador</value></data>
<data name="SettingsClass"><value>Classe de ajuste</value></data>
<data name="Short"><value>curto</value></data>
<data name="Son blog"><value>O blog dele</value></data>
<data name="Your performer profile"><value>Seu perfil profissional</value></data>
<data name="Setup below your activity parameters"><value>Posicione abaixo dos parâmetros de sua atividade</value></data>
<data name="SiteSkills"><value>Talentos / Competências / Especialidades geridas neste site</value></data>
<data name="Skill"><value>Competência</value></data>
<data name="Skills"><value>Talentos / Competências / Especialidades</value></data>
<data name="SomeoneAskingYouForAnEstimate"><value>{0} gostaria de receber uma cotação para {1}</value></data>
<data name="Sound"><value>Som</value></data>
<data name="StartDate"><value>Data de início</value></data>
<data name="StartDateAfterEndDate"><value>A data final deve ser depois da data de início.</value></data>
<data name="StartHour"><value>Hora de início</value></data>
<data name="Submit"><value>submeter</value></data>
<data name="SubmitChanges"><value>Envie as alterações</value></data>
<data name="Tag"><value>Tag</value></data>
<data name="Tag name"><value>Nome do tag</value></data>
<data name="Tex version"><value>Versão LaTeX</value></data>
<data name="ThisSiteUsesCookies"><value>Este site usa cookies</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis"><value>De acordo com seu calendário do Google, este provedor está disponível neste</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis"><value>De acordo com seu calendário do Google, esse provedor pode não estar disponível neste</value></data>
<data name="ThisPerformerDoesntGiveAccessToHisCalendar"><value>Este provedor não tem um calendário disponível.</value></data>
<data name="Title"><value>título</value></data>
<data name="to"><value>para</value></data>
<data name="TwoFactorAuthentication"><value>identificação de fator duplo</value></data>
<data name="Unitary_cost"><value>Custo unitário</value></data>
<data name="Unregister"><value>Cancelar inscrição</value></data>
<data name="Use a local account to log in"><value>Use uma conta local para efetuar login</value></data>
<data name="Use another service to log in"><value>Use outro serviço para conectar</value></data>
<data name="UseGeoLocalizationToReduceDistanceWithClients"><value>Use minha localização para ter clientes mais próximos</value></data>
<data name="User List"><value>Lista de usuários</value><comment></comment></data>
<data name="UserName"><value>Nome de usuário</value></data>
<data name="UsersInRole"><value>Lista de usuários assumindo o papel "{0}"</value></data>
<data name="UserSkills"><value>Talentos / habilidades / especialidades do usuário</value></data>
<data name="UserNotInThisRole"><value>A função solicitada não é assumida por este usuário</value></data>
<data name="ValidationDate"><value>Data de validação</value></data>
<data name="View_source"><value>Veja o texto de origem do artigo</value></data>
<data name="was_added_to_the_role"><value>foi adicionado ao papel</value></data>
<data name="was_added_to_the_empty_role"><value>Não havia nenhum usuário na função "{1}". Você ({0}) foi adicionado à função "{1}".</value></data>
<data name="WebSite"><value>Site Web</value><comment></comment></data>
<data name="Welcome"><value>bem-vindo</value><comment></comment></data>
<data name="Women"><value>mulher</value><comment></comment></data>
<data name="XHasBeenNotified"><value>{0} foi notificado da sua solicitação, você deve ser contatado rapidamente</value></data>
<data name="Xshouldbeavailable"><value>Dada a sua agenda,
{0} deve estar disponível para este compromisso</value></data>
<data name="Yavsc.Models.Musical.Profiles.Instrumentation"><value>Configurações do músico (o instrumento)</value></data>
<data name="Yavsc.Models.Musical.Profiles.DjSettings"><value>Configurações de DJ</value></data>
<data name="Yavsc.Models.Workflow.Profiles.FormationSettings"><value>Parâmetros de treinamento (parceiros)</value></data>
<data name="Yavsc.Models.Musical.Profiles.GeneralSettings"><value>Configurações gerais (visibilidade e apresentação)</value></data>
<data name="Yavsc.Models.Haircut.BrusherProfile"><value>Configurações do barbeiro: tarifas, disponibilidade</value></data>
<data name="Yes"><value>Sim</value></data>
<data name="YouNeedToBeAuthenticatedIOToContact"><value>Você deve autenticar para poder solicitar uma cotação para um provedor.</value></data>
<data name="younotadmin"><value>Você não é um administrador</value></data>
<data name="Your account settings"><value>As configurações da sua conta</value></data>
<data name="Your book query"><value>Seu pedido de compromisso</value></data>
<data name="Your password has been reset."><value>Sua senha foi atualizada.</value></data>
<data name="YourEstimates"><value>Suas citações</value></data>
<data name="YourMEACode"><value>Sua atividade</value></data>
<data name="YourNeed"><value>Sua necessidade</value></data>
<data name="yourquerytransmitted"><value>Seu pedido foi enviado</value></data>
<data name="YourSkills"><value>Seus talentos, suas especialidades, o campo de suas atividades</value></data>
<data name="Your posts"><value>Suas publicações</value></data>
<data name="Your profile"><value>Seu perfil</value></data>
<data name="YourMessageHasBeenSent"><value>Sua mensagem foi enviada</value></data>
<data name="Tell more, below, about your query"><value>Também fale sobre esse evento</value></data>
<data name="UnsetActivity"><value>Excluir meu perfil profissional</value></data>
<data name="Français"><value>Francês</value></data>
<data name="Anglais"><value>Inglês</value></data>
<data name="Portugais"><value>Português</value></data>
<data name="InvalidUserName"><value>Nome de usuário inválido.
Os caracteres válidos são: o sublinhado (_), o pequeno título (-), o apóstrofo ('), as letras minúsculas e maiúsculas de a a z, os números de 0 a 9, o espaço e o ponto.</value></data>
<data name="RequiredField"><value>Este campo é obrigatório.</value></data>
<data name="validationError"><value>Campo inválido ...</value></data>
<data name="PasswordTooShort"><value>A senha deve conter pelo menos 6 caracteres.</value></data>
<data name="PasswordRequiresNonLetterAndDigit"><value>A senha deve conter pelo menos um caractere especial (nem um número nem uma letra).</value></data>
<data name="PasswordRequiresDigit"><value>As senhas devem conter pelo menos um número ('0' à '9').</value></data>
<data name="PasswordRequiresUpper"><value>As senhas devem conter pelo menos uma letra maiúscula ('A' à 'Z').</value></data>
<data name="PassAndConfirmDontMach"><value>A senha e sua confirmação não são as mesmas.</value></data>
<data name="PasswordConfirm"><value>Confirmação de senha</value></data>
<data name="ConfirmPassword"><value>Confirme sua senha</value></data>
<data name="ErrorSendingEmailForConfirm"><value>O envio de e-mail para confirmação do endereço de e-mail falhou.</value></data>
<data name="EmailSentForConfirm"><value>Um e-mail foi enviado para confirmação do endereço de e-mail.</value></data>
<data name="ConfirmYourAccountTitle"><value>Por favor, confirme seu endereço de e-mail</value></data>
<data name="ConfirmYourAccountBody"><value>Você criou sua conta {0} com sucesso,
mas o seu endereço de e-mail tem que ser confirmado.
Para fazer isso, siga o seguinte link : &lt;{1}&gt;.
--
{0} - {2} &lt;{3}&gt;</value></data>
<data name="BadStringLength"><value>Tamanho máximo: {0} caractere.</value></data>
<data name="DetailledMinMaxStringLength"><value>Este campo é
pelo menos {0} e no máximo {1} caractere (s).</value></data>
<data name="DetailledMaxStringLength"><value>Este campo é
no máximo {0} caracter (es) ({1} em excesso). </value></data>
<data name="EmailSentToPerformer"><value>Um e-mail foi enviado para {0}.</value></data>
<data name="QueryValidatedNonReg"><value>Um cliente acabou de validar uma solicitação de serviço contra você:
Benefício: {0}
Cliente: {1}
Data: {2}
Endereço: {3}
-----
{4}
Fatura esperada (não liquidada): {5}</value></data>
<data name="QueryValidatedRegular"><value>Um cliente acabou de validar uma solicitação de serviço contra você:
Benefício: {0}
Cliente: {1}
Data: {2}
Endereço: {3}
-----
{4}
Conjunto de faturas: {5}</value></data>
<data name="AllowMonthlyEmail"><value>Receba a newsletter mensal</value></data>
<!-- Coiffure -->
<data name="Defris"><value>alisamento</value></data>
<data name="HalfLong"><value>meio-longo</value></data>
<data name="MobileHairCut"><value>Cabeleireiro em casa</value></data>
<data name="HairCutQuery"><value>benefício en Cabeleireiro em casa</value></data>
<data name="HairCutQueryValidation"><value>Um pedido (de {0}) em cabeleireiro em casa acaba de ser validado</value></data>
<data name="Kid"><value>criança</value></data>
<data name="Mech"><value>Meches</value></data>
</root>

View File

@ -0,0 +1,60 @@
using Yavsc.Server;
using GoogleTranslateNET;
using System;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.OptionsModel;
using Microsoft.AspNet.Localization;
using System.Linq;
namespace Yavsc.Services.GoogleApis
{
public class Translator : ITranslator
{
GoogleTranslate _gg;
ILogger _logger;
public Translator(ILoggerFactory loggerFactory,
IOptions<RequestLocalizationOptions> rqLocOptions,
IOptions<GoogleAuthSettings> gSettings)
{
_gg = new GoogleTranslate(gSettings.Value.ApiKey);
_logger = loggerFactory.CreateLogger<Translator>();
}
/// <summary>
///
/// </summary>
/// <param name="lang"></param>
/// <returns></returns>
static Language GetLanguageFromCountryCode(string lang)
{
switch (lang) {
case "fr":
case "fr-FR":
case "French":
return Language.French;
case "en":
case "en-GB":
case "en-US":
case "English":
return Language.English;
case "pt":
case "br":
return Language.Portuguese;
}
return Language.Automatic;
}
public string[] Translate(string slang, string dlang, string[] text)
{
var destinationLanguage = GetLanguageFromCountryCode(dlang);
if (destinationLanguage == Language.Unknown)
throw new Exception ("destinationLanguage == Language.Unknown");
var sourceLanguage = GetLanguageFromCountryCode(slang);
var gResult = _gg.Translate(sourceLanguage, destinationLanguage, text);
return gResult.Select(tr => tr.TranslatedText).ToArray();
}
}
}

View File

@ -5,6 +5,9 @@ using Microsoft.Extensions.Logging;
using Microsoft.AspNet.Authorization; using Microsoft.AspNet.Authorization;
using Microsoft.Extensions.OptionsModel; using Microsoft.Extensions.OptionsModel;
using Yavsc.Models; using Yavsc.Models;
using Microsoft.Data.Entity;
using System.Linq;
using Yavsc.Models.Blog;
namespace Yavsc.ViewComponents namespace Yavsc.ViewComponents
{ {
@ -26,9 +29,31 @@ namespace Yavsc.ViewComponents
} }
// Renders blog index ofr the specified user by name // Renders blog index ofr the specified user by name
public async Task<IViewComponentResult> InvokeAsync(string userName) public async Task<IViewComponentResult> InvokeAsync(string viewerId, int skip=0, int maxLen=25)
{ {
return View("Default"); long[] usercircles = _context.Circle.Include(c=>c.Members).
Where(c=>c.Members.Any(m=>m.MemberId == viewerId))
.Select(c=>c.Id).ToArray();
IQueryable<BlogPost> posts ;
var allposts = _context.Blogspot
.Include(b => b.Author)
.Include(p=>p.ACL)
.Include(p=>p.Tags)
.Include(p=>p.Comments)
.Where(p=>p.AuthorId == viewerId || p.Visible);
if (usercircles != null) {
posts = allposts.Where(p=> p.ACL.Count==0 || p.ACL.Any(a=> usercircles.Contains(a.CircleId)))
;
}
else {
posts = allposts.Where(p => p.ACL.Count == 0);
}
var data = posts.OrderByDescending( p=> p.DateCreated).ToArray();
var grouped = data.GroupBy(p=> p.Title).Skip(skip).Take(maxLen);
return View("Default", grouped);
} }
} }
} }

View File

@ -39,17 +39,6 @@
<h2>@ViewData["Title"]</h2> <h2>@ViewData["Title"]</h2>
<p class="text-success">@ViewData["StatusMessage"]</p> <p class="text-success">@ViewData["StatusMessage"]</p>
@if (User.IsSignedIn()) { @if (User.IsSignedIn()) {
<label>
<input type="checkbox" id="cbv" checked/>Invisibles, posts privés</label>
<script>
$("#cbv").change(function() {
if (this.checked) {
$("tr.hiddenpost").removeClass("hidden");
} else {
$("tr.hiddenpost").addClass("hidden");
}
});
</script>
<p> <p>
<a asp-action="Create">@SR["Create a new article"]</a> <a asp-action="Create">@SR["Create a new article"]</a>
</p> </p>
@ -57,68 +46,6 @@
<div class="container"> <div class="container">
@await Component.InvokeAsync("BlogIndex",User.GetUserId(),0,25)
@foreach (var group in Model) { </div>
var title = group.Key;
string secondclass="";
var first = group.First();
string trclass = (first.Visible) ? "visiblepost" : "hiddenpost";
<div class="row @trclass">
<div class="col-xs-10">
<a asp-action="Title" asp-route-id="@title" >
<h3 markdown="@first.Title"></h3>
@if (first.Photo==null) { }
else {<img src="@first.Photo" class="blogphoto" alt="@first.Title">}
</a>
<div class="smalltext" markdown="@((first.Content?.Length > 256) ? first.Content.Substring(0, 256) + "..." : first.Content)"></div>
<div class="smalltext"> @first.Author.UserName ,
(posté le @first.DateCreated.ToString("dddd d MMM yyyy à H:mm")
@if ((first.DateModified - first.DateCreated).Minutes > 0){ 
@:- Modifié le @first.DateModified.ToString("dddd d MMM yyyy à H:mm",System.Globalization.CultureInfo.CurrentUICulture)
})</div>
</div>
<div class="col-xs-2">
<ul class="actiongroup">
@if (await AuthorizationService.AuthorizeAsync(User, first, new ViewRequirement())) {
<li>
<a asp-action="Details" asp-route-id="@first.Id" class="btn btn-lg">Details</a>
</li>
}
@if (await AuthorizationService.AuthorizeAsync(User, first, new EditRequirement())) {
<li><a asp-action="Edit" asp-route-id="@first.Id" class="btn btn-default">@SR["Edit"]</a>
</li>
<li><a asp-action="Delete" asp-route-id="@first.Id" class="btn btn-danger">@SR["Delete"]</a>
</li>
}
</ul>
</div>
</div>
long gcount = group.Count();
@if (gcount>1) {
<div class="sametitle">
<div class="sametitlegrip">@(gcount-1) autre@(gcount>2?"s":"") au même titre:</div>
@foreach (var item in group.Skip(1)) {
trclass = ((item.Visible)?"visiblepost":"hiddenpost");
<div class="row @trclass">
<div class="col-xs-10">
<markdown>
@((item.Content?.Length > 120) ? item.Content.Substring(0, 120) + "..." : item.Content)
</markdown>
</div>
<div class="col-xs-2">
<a asp-action="Details" asp-route-id="@item.Id" class="btn btn-lg">
le @item.DateModified.ToString("dddd d MMM yyyy à H:mm",System.Globalization.CultureInfo.CurrentUICulture)
</a>
</div>
</div>
}
</div>
}
}
</div>

View File

@ -163,9 +163,7 @@ La "pré-production" affiche les sites suivants:
* [Lua](https://lua.pschneider.fr) * [Lua](https://lua.pschneider.fr)
</markdown> </markdown>
</environment>
<p> <p>
@Model @Model
</p> </p>
</environment>

167
Yavsc/Views/Home/About.pt.cshtml Executable file
View File

@ -0,0 +1,167 @@
@{
ViewData["Title"] = @SR["About"]+" "+@SiteSettings.Value.Title;
}
<h1>@ViewData["Title"]</h1>
<environment names="freefield,Development">
<markdown>
## O objetivo
Esta aplicação é construída para conectar artistas
do campo musical com seu público.
## Operation
Os usuários do site são artista, cliente ou administrador. Todos eles têm direito ao seu blog.
Para artistas, é uma maneira de promover seus negócios.
Eles podem publicar artigos, cheios de vídeos e fotos.
Para os clientes, é uma maneira de quebrar o gelo com seus ídolos,
pela descrição detalhada de seus centros de interesse.
O aplicativo também alimenta um mensageiro instantâneo, disponível desde
um navegador da web ou de um aplicativo para dispositivos móveis
pode garantir a preservação do sigilo sobre qualquer informação pessoal,
cliente e provedor.
Então venha (ou não) um pedido, um pagamento do cliente,
a entrega, uma coleta do retorno do cliente e um pagamento do provedor de serviços.
Nem o cliente nem o provedor são anônimos para os aplicativos,
eles são até formalmente autenticados pela aquisição de um primeiro
faturamento on-line ou ao entrar em seu perfil profissional.
Durante a fase de construção de um contrato de serviço,
o cliente e o artista podem se beneficiar de um canal de comunicação privado e anônimo,
que está fechado para a validação final do referido contrato.
Valide um contrato é:
* Escolha o tipo de contrato
* Concordo com os parâmetros do contrato
* Faça ambas as partes assinarem
* Implementar qualquer adiantamento
Uma vez validado, o contrato é publicado para ambas as partes. a fatura é publicada para o cliente,
quem pode homenageá-lo ao sistema, caso em que esse cliente recebe uma pontuação de solvente e o contrato é marcado como provisionado.
Em caso de falta de fornecimento, o sistema terá o cuidado de marcar o contrato como provisório, e avisar o artista
para executar qualquer serviço relacionado, pois o pagamento associado deixa dúvidas.
Depois que o serviço associado tiver sido executado, os pagamentos relativos serão feitos ao artista.
Para um contrato executado e não honrado pelo cliente, o processo de processo de recuperação é contratado, caso contrário, o contrato é arquivado,
Os certificados de pagamento estão disponíveis para o artista e a fatura é marcada como paga e depois repassada ao cliente.
### Para o artista
O artista escolhe vários parâmetros que farão o seu perfil:
* O tipo de atividades que ele quer promover, o tipo de serviços que ele oferece (é um DJ,
um cantor solo, um músico solo, um conjunto musical clássico, uma banda)
* O preço de seu contato com um novo cliente
(quanto recebo por solicitação de cliente processada sem peso de mais de um dia)
* O lugar onde ele pratica e, se sim, até onde ele pode se mover.
* um calendário opcional do Google, para consultar para estabelecer sua disponibilidade
* Parâmetros adicionais dependendo do tipo de atividade, por exemplo, para
conjuntos, seu tamanho, se houver, seu repertório ou indicações do estilo de sua música)
### Para o cliente
Ele escolhe um lugar e uma data para declarar um evento futuro
(Ele pode programar o quanto quiser).
Ele pode, navegar pelas publicações dos artistas e começar,
com base em um de seus projetos de eventos, a negociação de um contrato de serviço.
Ele tem acesso ao conhecimento de dias conhecidos como artistas livres pelo sistema.
## Confidencialidade
Em nenhum momento, nenhum endereço de correspondência, nenhum endereço de e-mail e nenhum número de telefone
não são transmitidos para clientes ou artistas. Apenas o sistema tem acesso a essas informações.
Além disso, o direito de retirada é permanente e sua implementação imediata.
Artistas e clientes podem solicitar sua desinscrição,
que imediatamente desativa as publicações associadas às suas informações,
e planeia a eliminação completa desta informação no prazo de quinze dias
do aplicativo, a menos que seja um pedido contraditório.
A operação é anulável até duas semanas após a sua programação.
</markdown>
</environment>
<environment names="Lua,Development">
<markdown>Este é o meu site perso, uma configuração de _Yavsc_ (outro negócio muito pequeno).
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
* [licença: GNU GPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
Outras instalações:
</markdown>
<markdown>
* [Coiffure](http://coiffure.pschneider.fr)
* [ZicMoove](http://linkmuse.pschneider.fr)
* [Yavsc](http://yavsc.pschneider.fr)
</markdown>
</environment>
<environment names="Yavsc">
<markdown>
Yet Another Very Small Company ...
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
* [license: GNU FPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
</markdown>
</environment>
<environment names="YavscPre">
<markdown>
## Yet Another Very Small Company :
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
* [license: GNU FPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
En production:
* [Coiffure](https://coiffure.pschneider.fr)
* [ZicMoove](https://zicmoove.pschneider.fr)
* [Lua](https://lua.pschneider.fr)
* [Yavsc](https://yavsc.pschneider.fr)
</markdown>
</environment>
<environment names="coiffure">
<markdown>
Você está no site da ordem em cabeleireiro em casa de Soraya Boudjouraf,
um ás de cabeleireiro, que trabalha na região de Paris.
Ao validar um formulário de pedido aqui, é para ela que você notifica sua solicitação.
Você pode [Deixe-lhe o seu número de telefone] (/ HairCutCommand / HairCut? ActivityCode = Brush & performerId = 1bd841ab-c305-4971-940d-7ddca818310c)
e / ou detalhes sobre o seu pedido,
ela vai ligar de volta.</markdown>
</environment>
<environment names="Development">
<markdown>
## Este é um site de desenvolvimento.
Este recurso só diz respeito ao desenvolvimento do software que o implementa.
É efêmero e praticamente constantemente força 500 códigos.
Por favor, desculpe a equipe de desenvolvimento para informá-lo sobre este endereço e pelo inconveniente.
A "pré-produção" exibe os seguintes sites:
* [Coiffure](https://coiffure.pschneider.fr)
* [ZicMoove](https://zicmoove.pschneider.fr)
* [Yavsc](https://yavsc.pschneider.fr)
* [Lua](https://lua.pschneider.fr)
</markdown>
</environment>
<p>
@Model
</p>

View File

@ -0,0 +1,64 @@
@model IEnumerable<IGrouping<string,BlogPost>>
@if (User.IsSignedIn()) {
<label>
<input type="checkbox" id="_cbv" checked/>Invisibles, posts privés</label>
<script>
$("#_cbv").change(function() {
if (this.checked) {
$("tr.hiddenpost").removeClass("hidden");
} else {
$("tr.hiddenpost").addClass("hidden");
}
});
</script>
}
<table class="table">
@foreach (var group in Model) {
var title = group.Key ?? "@";
string secondclass="";
var first = group.First();
string ftrclass = (first.Visible) ? "visiblepost" : "hiddenpost";
<tr><td colspan="3">
<a asp-action="Title" asp-route-id="@group.Key" >@title</a></td></tr>
@foreach (var item in group) {
var trclass = (item.Visible)?"visiblepost":"hiddenpost";
<tr class="@trclass">
<td><a asp-action="Details" asp-route-id="@item.Id" class="bloglink">
<img src="@item.Photo" class="blogphoto"></a>
</td>
<td>
<markdown>@((item.Content?.Length > 256) ? item.Content.Substring(0, 256) + " ..." : item.Content)</markdown>
<span style="font-size:x-small;">(@item.Author.UserName </span>,
<span style="font-size:xx-small;">
posté le @item.DateCreated.ToString("dddd d MMM yyyy à H:mm")
@if ((item.DateModified - item.DateCreated).Minutes > 0){ 
@:- Modifié le @item.DateModified.ToString("dddd d MMM yyyy à H:mm")
})
</span>
</td>
<td>
<ul class="actiongroup">
@if (await AuthorizationService.AuthorizeAsync(User, item, new ViewRequirement())) {
<li>
<a asp-action="Details" asp-route-id="@item.Id" class="btn btn-lg">@SR["Details"]</a>
</li>
}
@if (await AuthorizationService.AuthorizeAsync(User, item, new EditRequirement())) {
<li><a asp-action="Edit" asp-route-id="@item.Id" class="btn btn-default">@SR["Edit"]</a>
</li>
<li><a asp-action="Delete" asp-route-id="@item.Id" class="btn btn-danger">@SR["Delete"]</a>
</li>
}
</ul>
</td>
</tr>
}
}
</table>

View File

@ -37,7 +37,6 @@
@using Yavsc.ViewModels; @using Yavsc.ViewModels;
@using Yavsc.ViewModels.Account; @using Yavsc.ViewModels.Account;
@using Yavsc.ViewModels.Blogspot;
@using Yavsc.ViewModels.Administration; @using Yavsc.ViewModels.Administration;
@using Yavsc.ViewModels.Auth; @using Yavsc.ViewModels.Auth;
@using Yavsc.ViewModels.Manage; @using Yavsc.ViewModels.Manage;

View File

@ -1,175 +1,180 @@
{ {
"version": "1.0.5-*", "version": "1.0.5-*",
"description": "encore une très petite entreprise", "description": "encore une très petite entreprise",
"authors": [ "authors": [
"Paul Schneider <paul@pschneider.fr>" "Paul Schneider <paul@pschneider.fr>"
], ],
"packOptions": { "packOptions": {
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/pazof/yavsc" "url": "https://github.com/pazof/yavsc"
},
"licenseUrl": "https://github.com/pazof/yavsc/blob/vnext/LICENSE",
"requireLicenseAcceptance": true,
"owners": [
"Paul Schneider <paul@pschneider.fr>"
],
"summary": "Yet another very small company",
"projectUrl": "http://yavsc.pschneider.fr",
"tags": [
"Blog",
"PoS",
"Chat"
]
}, },
"userSecretsId": "aspnet5-YavscWeb-a0dadd21-2ced-43d3-96f9-7e504345102f", "licenseUrl": "https://github.com/pazof/yavsc/blob/vnext/LICENSE",
"exclude": [ "requireLicenseAcceptance": true,
"bin", "owners": [
"wwwroot", "Paul Schneider <paul@pschneider.fr>"
"node_modules",
"bower_components",
"contrib"
], ],
"buildOptions": { "summary": "Yet another very small company",
"debugType": "full", "projectUrl": "http://yavsc.pschneider.fr",
"tags": [
"Blog",
"PoS",
"Chat"
]
},
"userSecretsId": "aspnet5-YavscWeb-a0dadd21-2ced-43d3-96f9-7e504345102f",
"exclude": [
"bin",
"wwwroot",
"node_modules",
"bower_components",
"contrib"
],
"buildOptions": {
"debugType": "full",
"emitEntryPoint": true,
"outputName": "Yavsc",
"compile": {
"include": "*.cs"
},
"embed": [
"Resources/**/*.resx"
]
},
"configurations": {
"Debug": {
"compilationOptions": {
"emitEntryPoint": true, "emitEntryPoint": true,
"outputName": "Yavsc", "define": [
"compile": { "DEBUG",
"include": "*.cs" "TRACE"
}, ],
"embed": [ "optimize": false,
"Resources/**/*.resx" "debugType": "full",
] "platform": "anycpu"
}
}, },
"configurations": { "Release": {
"Debug": { "compilationOptions": {
"compilationOptions": { "define": [
"emitEntryPoint": true, "RELEASE",
"define": [ "TRACE"
"DEBUG", ],
"TRACE" "optimize": true
], }
"optimize": false, }
"debugType": "full", },
"platform": "anycpu" "webroot": "wwwroot",
} "tooling": {
}, "defaultNamespace": "Yavsc"
"Release": { },
"compilationOptions": { "dependencies": {
"define": [ "EntityFramework.Commands": "7.0.0-rc1-final",
"RELEASE", "EntityFramework.Core": "7.0.0-rc1-final",
"TRACE" "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
], "EntityFramework.Relational": "7.0.0-rc1-final",
"optimize": true "EntityFramework7.Npgsql": "3.1.0-rc1-3",
} "EntityFramework7.Npgsql.Design": "3.1.0-rc1-5",
} "MailKit": "1.12.0",
"MarkdownDeep-av.NET": "1.5.6",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-rc1-final",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-rc1-final",
"Microsoft.AspNet.Authorization": "1.0.0-rc1-final",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final",
"Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-*",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-*",
"Microsoft.AspNet.Localization": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-*",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-*",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.WebListener": "1.0.0-rc1-final",
"Microsoft.AspNet.SignalR.Core": "2.2.1",
"Microsoft.AspNet.SignalR.JS": "2.2.1",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-*",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-*",
"Microsoft.AspNet.WebSockets.Server": "1.0.0-rc1-*",
"Microsoft.AspNet.Session": "1.0.0-rc1-final",
"Microsoft.AspNet.Web.Optimization": "1.1.3",
"Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final",
"Microsoft.AspNet.DataProtection": "1.0.0-rc1-final",
"Microsoft.AspNet.DataProtection.SystemWeb": "1.0.0-rc1-final",
"Microsoft.AspNet.Authentication.OAuth": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc.Formatters.Json": "6.0.0-rc1-final",
"Microsoft.AspNet.OWin": "1.0.0-rc1-final",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Binder": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
"Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.TraceSource": "1.0.0-rc1-final",
"Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.Globalization.CultureInfoCache": "1.0.0-rc1-final",
"Microsoft.Extensions.Localization": "1.0.0-rc1-final",
"Microsoft.Extensions.Localization.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final",
"Microsoft.Extensions.Options": "0.0.1-alpha",
"Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final",
"Microsoft.Extensions.CodeGeneration": "1.0.0-rc1-final",
"Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
"System.Json": "4.0.20126.16343",
"OAuth.AspNet.Token": {
"type": "build"
}, },
"webroot": "wwwroot", "OAuth.AspNet.AuthServer": {
"tooling": { "type": "build"
"defaultNamespace": "Yavsc"
}, },
"dependencies": { "PayPalMerchant-net451": {
"EntityFramework.Commands": "7.0.0-rc1-final", "version": "2.7.109"
"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Relational": "7.0.0-rc1-final",
"EntityFramework7.Npgsql": "3.1.0-rc1-3",
"EntityFramework7.Npgsql.Design": "3.1.0-rc1-5",
"MailKit": "1.12.0",
"MarkdownDeep-av.NET": "1.5.6",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-rc1-final",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-rc1-final",
"Microsoft.AspNet.Authorization": "1.0.0-rc1-final",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final",
"Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-*",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-*",
"Microsoft.AspNet.Localization": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-*",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-*",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.WebListener": "1.0.0-rc1-final",
"Microsoft.AspNet.SignalR.Core": "2.2.1",
"Microsoft.AspNet.SignalR.JS": "2.2.1",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-*",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-*",
"Microsoft.AspNet.WebSockets.Server": "1.0.0-rc1-*",
"Microsoft.AspNet.Session": "1.0.0-rc1-final",
"Microsoft.AspNet.Web.Optimization": "1.1.3",
"Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final",
"Microsoft.AspNet.DataProtection": "1.0.0-rc1-final",
"Microsoft.AspNet.DataProtection.SystemWeb": "1.0.0-rc1-final",
"Microsoft.AspNet.Authentication.OAuth": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc.Formatters.Json": "6.0.0-rc1-final",
"Microsoft.AspNet.OWin": "1.0.0-rc1-final",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Binder": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
"Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.TraceSource": "1.0.0-rc1-final",
"Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.Globalization.CultureInfoCache": "1.0.0-rc1-final",
"Microsoft.Extensions.Localization": "1.0.0-rc1-final",
"Microsoft.Extensions.Localization.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final",
"Microsoft.Extensions.Options": "0.0.1-alpha",
"Microsoft.Extensions.WebEncoders": "1.0.0-rc1-final",
"Microsoft.Extensions.CodeGeneration": "1.0.0-rc1-final",
"Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
"System.Json": "4.0.20126.16343",
"OAuth.AspNet.Token": {
"type": "build"
},
"OAuth.AspNet.AuthServer": {
"type": "build"
},
"PayPalMerchant-net451": {
"version": "2.7.109"
},
"Gapi.net45": "1.0.1",
"Yavsc.Abstract": { "type": "build" },
"Yavsc.Server": { "type": "build" }
}, },
"commands": { "Gapi.net45": "1.0.1",
"web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:5000", "Yavsc.Abstract": {
"coiffure": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:88", "type": "build"
"lua": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:85",
"luatest": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:5001",
"kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:5000",
"linkmuse": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:87",
"yavsc": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:86",
"yavscpre": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:84",
"ef": "EntityFramework.Commands",
"gen": "Microsoft.Extensions.CodeGeneration"
}, },
"frameworks": { "Yavsc.Server": {
"dnx451": { "type": "build"
"frameworkAssemblies": {
"System.Drawing": "4.0.0.0",
"System.Net": "4.0.0.0",
"System.Xml": "4.0.0.0",
"System": "4.0.0.0"
}
}
}, },
"publishOptions": { "GoogleTranslate": "1.0.5"
"exclude": [ },
"**.user", "commands": {
"**.vspscc", "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:5000",
"contrib/**/*.*" "coiffure": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:88",
] "lua": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:85",
}, "luatest": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:5001",
"scripts": { "kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:5000",
"prepublish": "gulp min" "linkmuse": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:87",
}, "yavsc": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:86",
"embed": "Views/**/*.cshtml" "yavscpre": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://*:84",
} "ef": "EntityFramework.Commands",
"gen": "Microsoft.Extensions.CodeGeneration"
},
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.Drawing": "4.0.0.0",
"System.Net": "4.0.0.0",
"System.Xml": "4.0.0.0",
"System": "4.0.0.0"
}
}
},
"publishOptions": {
"exclude": [
"**.user",
"**.vspscc",
"contrib/**/*.*"
]
},
"scripts": {
"prepublish": "gulp min"
},
"embed": "Views/**/*.cshtml"
}

View File

@ -372,10 +372,12 @@ footer {
} }
.blogphoto { .blogphoto {
float: left;
margin: 1em; margin: 1em;
max-width: 100em; max-width: 100%;
max-height: 100em; max-height: 100%;
image-orientation: from-image; /* Utilise les données EXIF
de l'image */
} }
body { body {
@ -402,4 +404,4 @@ h5,
h6 { h6 {
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: 700; font-weight: 700;
} }