Translation & Localisation initialisation
This commit is contained in:
@ -39,17 +39,6 @@
|
||||
<h2>@ViewData["Title"]</h2>
|
||||
<p class="text-success">@ViewData["StatusMessage"]</p>
|
||||
@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>
|
||||
<a asp-action="Create">@SR["Create a new article"]</a>
|
||||
</p>
|
||||
@ -57,68 +46,6 @@
|
||||
|
||||
<div class="container">
|
||||
|
||||
|
||||
@await Component.InvokeAsync("BlogIndex",User.GetUserId(),0,25)
|
||||
|
||||
@foreach (var group in Model) {
|
||||
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>
|
||||
|
||||
|
||||
</div>
|
||||
|
@ -163,9 +163,7 @@ La "pré-production" affiche les sites suivants:
|
||||
* [Lua](https://lua.pschneider.fr)
|
||||
|
||||
</markdown>
|
||||
</environment>
|
||||
<p>
|
||||
@Model
|
||||
</p>
|
||||
</environment>
|
||||
|
||||
|
||||
|
167
Yavsc/Views/Home/About.pt.cshtml
Executable file
167
Yavsc/Views/Home/About.pt.cshtml
Executable 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>
|
64
Yavsc/Views/Shared/Components/BlogIndex/Default.cshtml
Normal file
64
Yavsc/Views/Shared/Components/BlogIndex/Default.cshtml
Normal 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>
|
||||
|
||||
|
@ -37,7 +37,6 @@
|
||||
|
||||
@using Yavsc.ViewModels;
|
||||
@using Yavsc.ViewModels.Account;
|
||||
@using Yavsc.ViewModels.Blogspot;
|
||||
@using Yavsc.ViewModels.Administration;
|
||||
@using Yavsc.ViewModels.Auth;
|
||||
@using Yavsc.ViewModels.Manage;
|
||||
|
Reference in New Issue
Block a user