Avancement des traductions'

This commit is contained in:
Clovis 2022-01-06 22:13:11 +00:00
parent 5586bfbd1d
commit c10d236c9a
13 changed files with 51 additions and 51 deletions

View File

@ -512,7 +512,7 @@ func login(app *App, w http.ResponseWriter, r *http.Request) error {
return impart.HTTPError{http.StatusUnauthorized, "This user never set a password. Perhaps try logging in via OAuth?"}
}
if !auth.Authenticated(u.HashedPass, []byte(signin.Pass)) {
return impart.HTTPError{http.StatusUnauthorized, "Incorrect password."}
return impart.HTTPError{http.StatusUnauthorized, "Mot de passe incorrect."}
}
}

View File

@ -2028,7 +2028,7 @@ func (db *datastore) ChangeSettings(app *App, u *User, s *userSettings) error {
hashedPass = authUser.HashedPass
}
if !auth.Authenticated(hashedPass, []byte(s.OldPass)) {
errPass = impart.HTTPError{http.StatusUnauthorized, "Incorrect password."}
errPass = impart.HTTPError{http.StatusUnauthorized, "Mot de passe incorrect."}
return errPass
}
}

BIN
db.sql

Binary file not shown.

View File

@ -1,5 +1,5 @@
{{define "head"}}
<title>Sign up &mdash; {{.SiteName}}</title>
<title>S'inscrire &mdash; {{.SiteName}}</title>
<style type="text/css">
h2 {

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>{{if .Editing}}Editing {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}}{{else}}New Post{{end}} &mdash; {{.SiteName}}</title>
<title>{{if .Editing}}Editer {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}}{{else}}Publier{{end}} &mdash; {{.SiteName}}</title>
<link rel="stylesheet" type="text/css" href="/css/write.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

View File

@ -48,7 +48,7 @@
{{ end }}
{{if and (and .LocalTimeline .CanViewReader) (not .Chorus)}}<a href="/read"{{if eq .Path "/read"}} class="selected"{{end}}>Fil</a>{{end}}
{{if eq .SignupPath "/signup"}}<a href="/signup"{{if eq .Path "/signup"}} class="selected"{{end}}>S'inscrire</a>{{end}}
{{if and (not .Username) (not .Private)}}<a href="/login"{{if eq .Path "/login"}} class="selected"{{end}}>Log in</a>{{else if .SimpleNav}}<a href="/me/logout">Se déconnecter</a>{{end}}
{{if and (not .Username) (not .Private)}}<a href="/login"{{if eq .Path "/login"}} class="selected"{{end}}>Connexion</a>{{else if .SimpleNav}}<a href="/me/logout">Se déconnecter</a>{{end}}
{{ end }}
</nav>
{{if .Chorus}}{{if .Username}}<div class="right-side" style="font-size: 0.86em;">

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>{{if .Editing}}Editing {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}}{{else}}New Post{{end}} &mdash; {{.SiteName}}</title>
<title>{{if .Editing}}Editer {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}}{{else}}Publier{{end}} &mdash; {{.SiteName}}</title>
<link rel="stylesheet" type="text/css" href="/css/write.css" />
<link rel="stylesheet" type="text/css" href="/css/prose.css" />

View File

@ -57,7 +57,7 @@
{{if not .SingleUser}}<li><a href="/me/c/"><img class="ic-18dp" src="/img/ic_blogs_dark@2x.png" /> Voir les blogs</a></li>{{end}}
<li><a href="/me/posts/"><img class="ic-18dp" src="/img/ic_list_dark@2x.png" /> Voir les brouillons</a></li>
{{ else }}
<li><a href="/login">Log in{{if .IsProtected}} to {{.DisplayTitle}}{{end}}</a></li>
<li><a href="/login">Connexion {{if .IsProtected}} à {{.DisplayTitle}}{{end}}</a></li>
{{if .IsProtected}}
<li class="separator"><hr /></li>
<li><a href="/logout">Se déconnecter</a></li>

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>Edit metadata: {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}} &mdash; {{.SiteName}}</title>
<title>Editer les metadata: {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}} &mdash; {{.SiteName}}</title>
<link rel="stylesheet" type="text/css" href="/css/write.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>{{if .Editing}}Editing {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}}{{else}}New Post{{end}} &mdash; {{.SiteName}}</title>
<title>{{if .Editing}}Editer {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}}{{else}}Publier{{end}} &mdash; {{.SiteName}}</title>
<link rel="stylesheet" type="text/css" href="/css/write.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@ -13,7 +13,7 @@
<div id="overlay"></div>
<textarea id="writer" placeholder="Write..." class="{{.Post.Font}}" autofocus>{{if .Post.Title}}# {{.Post.Title}}
<textarea id="writer" placeholder="Racontez-nous tout..." class="{{.Post.Font}}" autofocus>{{if .Post.Title}}# {{.Post.Title}}
{{end}}{{.Post.Content}}</textarea>

View File

@ -1,4 +1,4 @@
{{define "head"}}<title>{{.SiteName}} Reader</title>
{{define "head"}}<title>Fil {{.SiteName}}</title>
<link rel="alternate" type="application/rss+xml" title="{{.SiteName}} Reader" href="/read/feed/" />
{{if gt .CurrentPage 1}}<link rel="prev" href="{{.PrevPageURL .CurrentPage}}">{{end}}

View File

@ -29,7 +29,7 @@ textarea.section.norm {
{{template "collection-breadcrumbs" .}}
<h1>Customize</h1>
<h1>Personnaliser</h1>
{{template "collection-nav" (dict "Alias" .Alias "Path" .Path "SingleUser" .SingleUser)}}
@ -47,7 +47,7 @@ textarea.section.norm {
<div class="option">
<h2><a name="preferred-url"></a>URL</h2>
<div class="section">
{{if eq .Alias .Username}}<p style="font-size: 0.8em">This blog uses your username in its URL{{if .Federation}} and fediverse handle{{end}}. You can change it in your <a href="/me/settings">Account Settings</a>.</p>{{end}}
{{if eq .Alias .Username}}<p style="font-size: 0.8em">Ce blog utilise votre nom d'utilisateur dans son URL{{if .Federation}} et son handle fediverse{{end}}. Vous pouvez le changer dans vos <a href="/me/settings">Paramètres de compte</a>.</p>{{end}}
<ul style="list-style:none">
<li>
{{.FriendlyHost}}/<strong>{{.Alias}}</strong>/
@ -60,34 +60,34 @@ textarea.section.norm {
</div>
<div class="option">
<h2>Publicity</h2>
<h2>Visibilité</h2>
<div class="section">
<ul style="list-style:none">
<li>
<label><input type="radio" name="visibility" id="visibility-unlisted" value="0" {{if .IsUnlisted}}checked="checked"{{end}} />
Unlisted
Non-listé
</label>
<p>This blog is visible to {{if .Private}}any registered user on this instance{{else}}anyone with its link{{end}}.</p>
<p>Ce blog est visible {{if .Private}}pour toutes les personnes de cette instance{{else}}toute personne disposant de son lien{{end}}.</p>
</li>
<li>
<label class="option-text"><input type="radio" name="visibility" id="visibility-private" value="2" {{if .IsPrivate}}checked="checked"{{end}} />
Private
Privé
</label>
<p>Only you may read this blog (while you're logged in).</p>
<p>Seulement vous pouvez lire ce blog (une fois connecté).</p>
</li>
<li>
<label class="option-text"><input type="radio" name="visibility" id="visibility-protected" value="4" {{if .IsProtected}}checked="checked"{{end}} />
Password-protected: <input type="password" class="low-profile" name="password" id="collection-pass" autocomplete="new-password" placeholder="{{if .IsProtected}}xxxxxxxxxxxxxxxx{{else}}a memorable password{{end}}" />
Protégé par mot de passe: <input type="password" class="low-profile" name="password" id="collection-pass" autocomplete="new-password" placeholder="{{if .IsProtected}}xxxxxxxxxxxxxxxx{{else}}un mot de passe facile à retenir{{end}}" />
</label>
<p>A password is required to read this blog.</p>
<p>Un mot de passe est requis pour consulter ce blog.</p>
</li>
{{if not .SingleUser}}
<li>
<label class="option-text{{if not .LocalTimeline}} disabled{{end}}"><input type="radio" name="visibility" id="visibility-public" value="1" {{if .IsPublic}}checked="checked"{{end}} {{if not .LocalTimeline}}disabled="disabled"{{end}} />
Public
</label>
{{if .LocalTimeline}}<p>This blog is displayed on the public <a href="/read">reader</a>, and is visible to {{if .Private}}any registered user on this instance{{else}}anyone with its link{{end}}.</p>
{{else}}<p>The public reader is currently turned off for this community.</p>{{end}}
{{if .LocalTimeline}}<p>Ce blog est visible dans le <a href="/read">fil</a> public, et est visible pour {{if .Private}}toute personne connectée à cette instance{{else}}toute personne disposant de son lien{{end}}.</p>
{{else}}<p>Le fil public est actuellement désactivé sur cette instance.</p>{{end}}
</li>
{{end}}
</ul>
@ -95,37 +95,37 @@ textarea.section.norm {
</div>
<div class="option">
<h2>Display Format</h2>
<h2>Affichage</h2>
<div class="section">
<p class="explain">Customize how your posts display on your page.
<p class="explain">Personnaliser l'apparence de vos publications
</p>
<ul style="list-style:none">
<li>
<label><input type="radio" name="format" id="format-blog" value="blog" {{if or (not .Format) (eq .Format "blog")}}checked="checked"{{end}} />
Blog
</label>
<p>Dates are shown. Latest posts listed first.</p>
<p>Dates visibles. Du plus récent au plus ancien.</p>
</li>
<li>
<label class="option-text"><input type="radio" name="format" id="format-novel" value="novel" {{if eq .Format "novel"}}checked="checked"{{end}} />
Novel
Nouvelle
</label>
<p>No dates shown. Oldest posts first.</p>
<p>Pas de dates. Du plus ancien au plus récent.</p>
</li>
<li>
<label class="option-text"><input type="radio" name="format" id="format-notebook" value="notebook" {{if eq .Format "notebook"}}checked="checked"{{end}} />
Notebook
Carnet de notes
</label>
<p>No dates shown. Latest posts first.</p>
<p>Pas de dates. Du plus récent au plus ancien.</p>
</li>
</ul>
</div>
</div>
<div class="option">
<h2>Text Rendering</h2>
<h2>Rendu du texte</h2>
<div class="section">
<p class="explain">Customize how plain text renders on your blog.</p>
<p class="explain">Choisissez comment le texte brut est rendu sur votre blog.</p>
<ul style="list-style:none">
<li>
<label class="option-text disabled"><input type="checkbox" name="markdown" checked="checked" disabled />
@ -142,17 +142,17 @@ textarea.section.norm {
</div>
<div class="option">
<h2>Custom CSS</h2>
<h2>CSS personnalisé</h2>
<div class="section">
<textarea id="css-editor" class="section codable" name="style_sheet">{{.StyleSheet}}</textarea>
<p class="explain">See our guide on <a href="https://guides.write.as/customizing/#custom-css">customization</a>.</p>
<p class="explain">Lisez notre guide sur la <a href="https://guides.write.as/customizing/#custom-css">personnalisation</a>.</p>
</div>
</div>
<div class="option">
<h2>Post Signature</h2>
<h2>Signature</h2>
<div class="section">
<p class="explain">This content will be added to the end of every post on this blog, as if it were part of the post itself. Markdown, HTML, and shortcodes are allowed.</p>
<p class="explain">Ajoutez une signature à la fin de chacunes de vos publications. Vous pouvez écrire en Markdown, HTML, et shortcodes.</p>
<textarea id="signature" class="section norm" name="signature">{{.Signature}}</textarea>
</div>
</div>
@ -168,26 +168,26 @@ textarea.section.norm {
{{end}}
<div class="option" style="text-align: center; margin-top: 4em;">
<input type="submit" id="save-changes" value="Save changes" />
<p><a href="{{if .SingleUser}}/{{else}}/{{.Alias}}/{{end}}">View Blog</a></p>
{{if ne .Alias .Username}}<p><a class="danger" href="#modal-delete" onclick="promptDelete();">Delete Blog...</a></p>{{end}}
<input type="submit" id="save-changes" value="Sauvegarder" />
<p><a href="{{if .SingleUser}}/{{else}}/{{.Alias}}/{{end}}">Voir le blog</a></p>
{{if ne .Alias .Username}}<p><a class="danger" href="#modal-delete" onclick="promptDelete();">Supprimer le blog...</a></p>{{end}}
</div>
</div>
</form>
</div>
<div id="modal-delete" class="modal">
<h2>Are you sure you want to delete this blog?</h2>
<h2>Etes-vous sûr de vouloir supprimer ce blog ?</h2>
<div class="body short">
<p style="text-align:left">This will permanently erase <strong>{{.DisplayTitle}}</strong> ({{.FriendlyHost}}/{{.Alias}}) from the internet. Any posts on this blog will be saved and made into drafts (found on your <a href="/me/posts/">Drafts</a> page).</p>
<p>If you're sure you want to delete this blog, enter its name in the box below and press <strong>Delete</strong>.</p>
<p style="text-align:left">La suppression va effacer de manière permanente <strong>{{.DisplayTitle}}</strong> ({{.FriendlyHost}}/{{.Alias}}). Toutes vos publications seront sauvegardées et ajoutées à vos brouillons (disponibles sur la page <a href="/me/posts/">Brouillons</a>).</p>
<p>Si vous êtes sûr de vouloir supprimer ce blog, saisissez son nom ci-dessous et cliquez sur <strong>Supprimer</strong>.</p>
<ul id="delete-errors" class="errors"></ul>
<input id="confirm-text" placeholder="{{.Alias}}" type="text" class="boxy" style="margin-top: 0.5em;" />
<div style="text-align:right; margin-top: 1em;">
<a id="cancel-delete" style="margin-right:2em" href="#">Cancel</a>
<button id="btn-delete" class="danger" onclick="deleteBlog(); return false;">Delete</button>
<a id="cancel-delete" style="margin-right:2em" href="#">Annuler</a>
<button id="btn-delete" class="danger" onclick="deleteBlog(); return false;">Supprimer</button>
</div>
</div>
</div>
@ -199,12 +199,12 @@ textarea.section.norm {
H.getEl('cancel-delete').on('click', closeModals);
var deleteBlog = function(e) {
if (document.getElementById('confirm-text').value != '{{.Alias}}') {
document.getElementById('delete-errors').innerHTML = '<li class="urgent">Enter <strong>{{.Alias}}</strong> in the box below.</li>';
document.getElementById('delete-errors').innerHTML = '<li class="urgent">Saisissez <strong>{{.Alias}}</strong> dans la boîte ci-dessous.</li>';
return;
}
// Clear errors
document.getElementById('delete-errors').innerHTML = '';
document.getElementById('btn-delete').innerHTML = 'Deleting...';
document.getElementById('btn-delete').innerHTML = 'Suppression...';
var http = new XMLHttpRequest();
var url = "/api/collections/{{.Alias}}?web=1";

View File

@ -29,13 +29,13 @@ td.none {
{{template "collection-nav" (dict "Alias" .Collection.Alias "Path" .Path "SingleUser" .SingleUser)}}
{{end}}
<p>Stats for all time.</p>
<p>Stats depuis toujours.</p>
{{if .Federation}}
<h3>Fediverse stats</h3>
<h3>Stats Fediverse</h3>
<table id="fediverse" class="classy export">
<tr>
<th>Followers</th>
<th>Abonnés</th>
</tr>
<tr>
<td>{{.APFollowers}}</td>
@ -43,12 +43,12 @@ td.none {
</table>
{{end}}
<h3>Top {{len .TopPosts}} posts</h3>
<h3>Classement</h3>
<table class="classy export">
<tr>
<th>Post</th>
<th>Publication</th>
{{if not .Collection}}<th>Blog</th>{{end}}
<th class="num">Total Views</th>
<th class="num">Vues</th>
</tr>
{{range .TopPosts}}<tr>
<td style="word-break: break-all;"><a href="{{if .Collection}}{{.Collection.CanonicalURL}}{{.Slug.String}}{{else}}/{{.ID}}{{end}}">{{if ne .Title.String ""}}{{.Title.String}}{{else}}<em>{{.ID}}</em>{{end}}</a></td>