Merge pull request #2201 from pixelfed/staging

MomentUI updates
pull/2248/head
daniel 5 years ago committed by GitHub
commit 76a6e9c186
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -36,6 +36,8 @@
- Updated api routes, fixes ([#2114](https://github.com/pixelfed/pixelfed/issues/2114)) ([50bbeddd](https://github.com/pixelfed/pixelfed/commit/50bbeddd))
- Updated SiteController, add legacy profile/webfinger redirect ([cfaa248c](https://github.com/pixelfed/pixelfed/commit/cfaa248c))
- Updated checkpoint view, fix recovery code bug ([3385583f](https://github.com/pixelfed/pixelfed/commit/3385583f))
- Updated Inbox, move expensive HTTP Signature validation to job queue ([f2ae45e5a](https://github.com/pixelfed/pixelfed/commit/f2ae45e5a))
- Updated MomentUI, fix bugs and improve UI ([90b89cb8](https://github.com/pixelfed/pixelfed/commit/90b89cb8))
## [v0.10.9 (2020-04-17)](https://github.com/pixelfed/pixelfed/compare/v0.10.8...v0.10.9)

@ -34,9 +34,11 @@ class CommentController extends Controller
$this->validate($request, [
'item' => 'required|integer|min:1',
'comment' => 'required|string|max:'.(int) config('pixelfed.max_caption_length'),
'sensitive' => 'nullable|boolean'
]);
$comment = $request->input('comment');
$statusId = $request->item;
$statusId = $request->input('item');
$nsfw = $request->input('sensitive', false);
$user = Auth::user();
$profile = $user->profile;
@ -56,11 +58,12 @@ class CommentController extends Controller
return;
}
$reply = DB::transaction(function() use($comment, $status, $profile) {
$reply = DB::transaction(function() use($comment, $status, $profile, $nsfw) {
$scope = $profile->is_private == true ? 'private' : 'public';
$autolink = Autolink::create()->autolink($comment);
$reply = new Status();
$reply->profile_id = $profile->id;
$reply->is_nsfw = $nsfw;
$reply->caption = e($comment);
$reply->rendered = $autolink;
$reply->in_reply_to_id = $status->id;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -18,14 +18,14 @@
"/js/hashtag.js": "/js/hashtag.js?id=e6b41cab117cb03c7d2a",
"/js/loops.js": "/js/loops.js?id=ac610897b12207c829b9",
"/js/mode-dot.js": "/js/mode-dot.js?id=1225a9aac7a93d5d232f",
"/js/profile.js": "/js/profile.js?id=1b3c7f44f458b466b290",
"/js/profile.js": "/js/profile.js?id=106eaa081ed38eaefd87",
"/js/profile-directory.js": "/js/profile-directory.js?id=611af669221ad8be3068",
"/js/quill.js": "/js/quill.js?id=00f2dca2463b3c9d3920",
"/js/rempos.js": "/js/rempos.js?id=682b949417b7dc2d6ad0",
"/js/rempos.js": "/js/rempos.js?id=219479dc2456e6b5959e",
"/js/rempro.js": "/js/rempro.js?id=750317b23c9c1b3b7ede",
"/js/search.js": "/js/search.js?id=2d76d7d28de3b4691bc7",
"/js/status.js": "/js/status.js?id=8e2c6cd8d656a99ffe24",
"/js/status.js": "/js/status.js?id=57d2bafa055f24a2f6dc",
"/js/story-compose.js": "/js/story-compose.js?id=18ed9fcdfed5eb63d113",
"/js/theme-monokai.js": "/js/theme-monokai.js?id=3b6e62701f12b717cc5c",
"/js/timeline.js": "/js/timeline.js?id=33934d1cf38742e0bc0d"
"/js/timeline.js": "/js/timeline.js?id=8228cee82c077c873e5f"
}

@ -3,10 +3,10 @@
<div v-if="!loaded" style="height: 80vh;" class="d-flex justify-content-center align-items-center">
<img src="/img/pixelfed-icon-grey.svg" class="">
</div>
<div v-if="loaded && warning" class="bg-white pt-3 border-bottom">
<div v-if="loaded && warning" class="bg-white mt-n4 pt-3 border-bottom">
<div class="container">
<p class="text-center font-weight-bold">You are blocking this account</p>
<p class="text-center font-weight-bold">Click <a href="#" class="cursor-pointer" @click.prevent="warning = false; fetchData()">here</a> to view this status</p>
<p class="text-center font-weight-bold"><a href="#" class="btn btn-primary font-weight-bold px-5" @click.prevent="warning = false; fetchData()">View Status</a></p>
</div>
</div>
<div v-if="loaded && warning == false" class="postComponent">
@ -257,7 +257,7 @@
<div v-if="layout == 'moment'" class="momentui">
<div class="bg-dark mt-md-n4">
<div class="container" v-on:dblclick="likeStatus">
<div class="container" style="max-width: 700px;">
<div class="postPresenterContainer d-none d-flex justify-content-center align-items-center bg-dark">
<div v-if="status.pf_type === 'photo'" class="w-100">
<photo-presenter :status="status" v-on:lightbox="lightbox"></photo-presenter>
@ -301,16 +301,24 @@
<div class="share-count font-weight-bold mt-2 rounded border" v-if="status.visibility == 'public'" style="cursor:pointer;" v-on:click="sharesModal">{{status.reblogs_count || 0}}</div>
</div>
</div>
<!-- <div class="reaction-counts font-weight-bold mb-0">
<span class="like-count">{{status.favourites_count || 0}}</span> likes
<span v-if="status.visibility == 'public'" class="float-right" style="cursor:pointer;" v-on:click="sharesModal">
<span class="share-count pl-4">{{status.reblogs_count || 0}}</span> shares
</span>
</div> -->
<div class="media align-items-center mt-3">
<div v-if="status.length && status.content_text.includes('#') || status.content_text.includes('https://') || status.content_text.includes('@') || status.content_text.length > 45" class="media align-items-center mt-3">
<div class="media-body">
<h2 class="font-weight-bold">
{{status.content.length > 100 ? status.content.slice(0,100) : 'Untitled Post'}}
<p class="lead mr-2" v-html="status.content">
</p>
<p class="lead mb-0">
by <a :href="statusProfileUrl">{{statusUsername}}</a>
<span v-if="relationship && profile && user && !relationship.following && profile.id != user.id">
<span class="px-1 text-lighter"></span>
<a class="font-weight-bold small" href="#">Follow</a>
</span>
</p>
</div>
<a :href="statusProfileUrl" :title="statusUsername"><img :src="statusAvatar" class="rounded-circle border mr-3" alt="avatar" width="72px" height="72px"></a>
</div>
<div v-else class="media align-items-center mt-3">
<div class="media-body">
<h2 class="font-weight-bold mr-2">
{{status.content_text.length ? status.content_text : 'Untitled Post'}}
</h2>
<p class="lead mb-0">
by <a :href="statusProfileUrl">{{statusUsername}}</a>
@ -318,7 +326,7 @@
<a class="font-weight-bold small" href="#">Follow</a> -->
</p>
</div>
<img :src="statusAvatar" class="rounded-circle border mr-3" alt="avatar" width="72px" height="72px">
<a :href="statusProfileUrl" :title="statusUsername"><img :src="statusAvatar" class="rounded-circle border mr-3" alt="avatar" width="72px" height="72px"></a>
</div>
<hr>
<div>
@ -330,8 +338,7 @@
<i class="far fa-clock text-lighter mr-3"></i> {{timeAgo(status.created_at)}} ago
</span>
</p>
<!-- <div v-if="status.content.length > 100" class="lead" v-html="status.content"></div> -->
<!-- <div class="pt-4">
<!-- <div class="">
<p class="lead">
<span class="mr-3"><i class="fas fa-camera text-lighter"></i></span>
<span>Nikon D850</span>
@ -353,57 +360,64 @@
</div>
</div>
<div class="col-12 col-md-4 pt-4 pl-md-3">
<p class="lead font-weight-bold">Comments</p>
<div v-if="user && user.length" class="moment-comments">
<div class="form-group">
<textarea class="form-control" rows="3" placeholder="Add a comment ..." v-model="replyText"></textarea>
<p style="padding-top:4px;">
<span class="small text-lighter font-weight-bold">
{{replyText.length}}/{{config.uploader.max_caption_length}}
</span>
<button
:class="[replyText.length > 1 ? 'btn btn-sm font-weight-bold float-right btn-outline-dark ':'btn btn-sm font-weight-bold float-right btn-outline-lighter']"
:disabled="replyText.length == 0 ? 'disabled':''"
@click="postReply"
>Post</button>
</p>
</div>
<hr>
<p class="lead font-weight-bold">Comments</p>
<div v-if="user != false" class="moment-comments">
<div class="form-group">
<textarea class="form-control" rows="3" placeholder="Add a comment ..." v-model="replyText"></textarea>
<p class="d-flex justify-content-between align-items-center mt-3">
<span class="small text-lighter font-weight-bold">
{{replyText.length}}/{{config.uploader.max_caption_length}}
</span>
<span v-if="replyText.length > 2">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" @click="!!replySensitive" v-model="replySensitive" id="sensitiveReply">
<label class="custom-control-label small font-weight-bold text-muted" style="padding-top: 3px" for="sensitiveReply">Add Content Warning</label>
</div>
</span>
<button class="btn btn-sm font-weight-bold btn-outline-primary py-1"
v-if="replyText.length > 2" @click="postReply">Post</button>
</p>
</div>
<div class="comment mt-3" style="max-height: 500px; overflow-y: auto;">
<div v-for="(reply, index) in results" :key="'tl' + reply.id + '_' + index" class="media mb-3">
<img :src="reply.account.avatar" class="rounded-circle border mr-3" alt="avatar" width="32px" height="32px">
<div class="media-body">
<div class="d-flex justify-content-between">
<span class="font-weight-bold">{{reply.account.username}}</span>
<span class="small">
<a class="text-lighter text-decoration-none" :href="reply.url">{{timeAgo(reply.created_at)}}</a>
</div>
<div class="comment mt-4" style="max-height: 500px; overflow-y: auto;">
<div v-for="(reply, index) in results" :key="'tl' + reply.id + '_' + index" class="media mb-3 mt-2">
<a :href="reply.account.url" :title="reply.account.username"><img :src="reply.account.avatar" class="rounded-circle border mr-3" alt="avatar" width="32px" height="32px"></a>
<div class="media-body">
<div class="d-flex justify-content-between">
<span>
<a class="font-weight-bold text-dark" :href="reply.account.url">{{reply.account.username}}</a>
</span>
<span class="text-lighter">
<span v-if="reply.favourited" class="cursor-pointer mr-2" @click="likeReply(reply)">
<i class="fas fa-heart text-danger"></i>
</span>
</div>
<p v-html="reply.content"></p>
<span v-else class="cursor-pointer mr-2" @click="likeReply(reply)">
<i class="far fa-heart"></i>
</span>
<span class="">
<post-menu :status="reply" :profile="user" :size="'sm'" :modal="'true'" class="d-inline-block px-2" v-on:deletePost="deleteComment(reply.id, index)"></post-menu>
</span>
</span>
</div>
</div>
<!-- <div class="media mb-3">
<img :src="statusAvatar" class="rounded-circle border mr-3" alt="avatar" width="32px" height="32px">
<div class="media-body">
<div class="d-flex justify-content-between">
<span class="font-weight-bold">mona</span>
<span class="text-lighter small">2h ago</span>
</div>
<p>Stunning my friend!</p>
<div v-if="reply.sensitive == true">
<span class="py-3">
<span class="text-break">
<span class="font-italic text-muted">This comment may contain sensitive material</span>
<span class="badge badge-primary cursor-pointer ml-2 py-1" @click="reply.sensitive = false;">Show</span>
</span>
</span>
</div>
</div>
<div class="media mb-3">
<img :src="statusAvatar" class="rounded-circle border mr-3" alt="avatar" width="32px" height="32px">
<div class="media-body">
<div class="d-flex justify-content-between">
<span class="font-weight-bold">Andre</span>
<span class="text-lighter small">3h ago</span>
</div>
<p>Wow</p>
<div v-else class="read-more" style="overflow-y: hidden;">
<p v-html="reply.content" class="mb-0">loading ...</p>
</div>
</div> -->
</div>
<p>
<span class="small">
<a class="text-lighter text-decoration-none" :href="reply.url">{{timeAgo(reply.created_at)}}</a>
</span>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
@ -617,6 +631,7 @@ export default {
sharesPage: 1,
lightboxMedia: false,
replyText: '',
replySensitive: false,
relationship: {},
results: [],
pagination: {},
@ -916,7 +931,8 @@ export default {
}
let data = {
item: this.replyingToId,
comment: this.replyText
comment: this.replyText,
sensitive: this.replySensitive
}
this.replyText = '';

@ -56,12 +56,12 @@
<a class="list-group-item text-dark text-decoration-none" :href="status.url">Go to post</a>
<!-- a class="list-group-item font-weight-bold text-decoration-none" :href="status.url">Share</a>
<a class="list-group-item font-weight-bold text-decoration-none" :href="status.url">Embed</a> -->
<a class="list-group-item text-dark text-decoration-none" href="#" @click="hidePost(status)">Hide</a>
<a class="list-group-item text-dark text-decoration-none" href="#" @click.prevent="hidePost(status)">Hide</a>
<a v-if="activeSession == true && !statusOwner(status)" class="list-group-item text-dark text-decoration-none" :href="reportUrl(status)">Report</a>
<a v-if="activeSession == true && !statusOwner(status)" class="list-group-item text-dark text-decoration-none" v-on:click="muteProfile(status)" href="#">Mute Profile</a>
<a v-if="activeSession == true && !statusOwner(status)" class="list-group-item text-dark text-decoration-none" v-on:click="blockProfile(status)" href="#">Block Profile</a>
<a v-if="activeSession == true && !statusOwner(status)" class="list-group-item text-dark text-decoration-none" @click.prevent="muteProfile(status)" href="#">Mute Profile</a>
<a v-if="activeSession == true && !statusOwner(status)" class="list-group-item text-dark text-decoration-none" @click.prevent="blockProfile(status)" href="#">Block Profile</a>
<span v-if="activeSession == true && statusOwner(status) == true || profile.is_admin == true">
<a class="list-group-item text-danger text-decoration-none" v-on:click="deletePost">Delete</a>
<a class="list-group-item text-danger text-decoration-none" @click.prevent="deletePost">Delete</a>
</span>
<span v-if="activeSession == true && profile.is_admin == true">
<a class="list-group-item text-dark text-decoration-none" v-on:click="moderatePost(status, 'autocw')" href="#">

@ -0,0 +1,19 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'Tiuj ĉi akreditaĵojn ne kongruas kun niajn registraĵojn.',
'throttle' => 'Tro saluton provojn. Bonvolu provu refoje post :seconds sekundoj.',
];

@ -0,0 +1,11 @@
<?php
return [
'compose' => [
'invalid' => [
'album' => 'Metu unu foton aŭ videon, aŭ multajn fotojn.',
],
],
];

@ -0,0 +1,26 @@
<?php
return [
'helpcenter' => 'Helpejo',
'whatsnew' => 'Kio Novas',
'gettingStarted' => 'Komenci',
'sharingMedia' => 'Kunhavigi Mediojn',
'profile' => 'Profilo',
'stories' => 'Historioj',
'hashtags' => 'Kradvortoj',
'discover' => 'Trovi',
'directMessages' => 'Rektaj Mesaĝoj',
'timelines' => 'Kronologioj',
'embed' => 'Enkorpigi',
'communityGuidelines' => 'Konumumaj Gvidiloj',
'whatIsTheFediverse' => 'Kio Estas la Fediverso?',
'controllingVisibility' => 'Kontroli Videbleco',
'blockingAccounts' => 'Bloki Kontoj',
'safetyTips' => 'Sekurecaj Konsiletoj',
'reportSomething' => 'Informi',
'dataPolicy' => 'Datuma Politiko'
];

@ -0,0 +1,19 @@
<?php
return [
'search' => 'Serĉi',
'home' => 'Hejmo',
'local' => 'Loka',
'network' => 'Reta',
'discover' => 'Trovi',
'viewMyProfile' => 'Rigardi mia profilo',
'myProfile' => 'Mia Profilo',
'myTimeline' => 'Mia Kronologio',
'publicTimeline' => 'Publica Kronologio',
'remoteFollow' => 'Sekvi Reta',
'settings' => 'Agordoj',
'admin' => 'Administri',
'logout' => 'Adiaŭi',
'directMessages' => 'Rektaj Mesaĝoj',
'composePost' => 'Afiŝi',
];

@ -0,0 +1,12 @@
<?php
return [
'likedPhoto' => 'ŝatis vian afiŝon.',
'likedComment' => 'ŝatis vian komenton.',
'startedFollowingYou' => 'eksetvis vin.',
'commented' => 'komentis vian afiŝon.',
'mentionedYou' => 'menciis vin.',
'shared' => 'kunhavigis vian afiŝon.',
];

@ -0,0 +1,19 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '« Antaŭa',
'next' => 'Sekva »',
];

@ -0,0 +1,22 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'password' => 'Pasvortoj devas havi minimume ses signojn kaj kongrui kun la konfirmo.',
'reset' => 'Via pasvorto restarigis!',
'sent' => 'Se via retadreso ekzistas en nia datumbazo, tiam vi ricevos pasvort-reakiran ligilon en via retadreso post nelonge. Bonvolu, kontrolu vian spamujon se vi ne ricevis.',
'token' => 'Ĉi tiu pasvort-reakiran ligilon ne validas.',
'user' => 'Se via retadreso ekzistas en nia datumbazo, tiam vi ricevos pasvort-reakiran ligilon en via retadreso post nelonge. Bonvolu, kontrolu vian spamujon se vi ne ricevis.',
];

@ -0,0 +1,15 @@
<?php
return [
'emptyTimeline' => 'Ĉi tiu uzanto ankoraŭ ne havas afiŝojn!',
'emptyFollowers' => 'Ĉi tiu uzanto ankoraŭ ne havas sekvantojn!',
'emptyFollowing' => 'Ĉi tiu uzanto ankoraŭ ne sekvas iu!',
'emptySaved' => 'Vi ankoraŭ ne konservis neniujn afiŝojn!',
'savedWarning' => 'Sola vi permisas vidi kion vi konservis',
'privateProfileWarning' => 'Ĉi tiu konto estas privata',
'alreadyFollow' => 'Vi jam sekvas :username?',
'loginToSeeProfile' => 'vidi lian fotojn kaj videojn.',
'status.disabled.header' => 'Profilo Maldisponebla',
'status.disabled.body' => 'Mi bedaŭras, ĉi tiu profilo momente estas maldisponebla. Bonvolu, momente provu denove.',
];

@ -0,0 +1,20 @@
<?php
return [
'about' => 'Pri',
'help' => 'Helpejo',
'language' => 'Lingvo',
'fediverse' => 'Fediverso',
'opensource' => 'Libera Programaro',
'terms' => 'Kondiĉoj',
'privacy' => 'Privateco',
'l10nWip' => 'Ni daŭre laboras pri lokaliza subteno',
'currentLocale' => 'Kuranta lokoĵaro',
'selectLocale' => 'Elektu unu de la subtenataj lingvoj',
'contact' => 'Kontakti',
'contact-us' => 'Kontactu nin',
'places' => 'Lokoj',
'profiles' => 'Profiloj',
];

@ -0,0 +1,7 @@
<?php
return [
'emptyPersonalTimeline' => 'Via kronologio estas malplena.',
];

@ -0,0 +1,122 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => 'La :attribute devas esti akceptita.',
'active_url' => 'La :attribute ne estas valida URL.',
'after' => 'La :attribute devas esti dato post :date.',
'after_or_equal' => 'La :attribute devas esti dato post aŭ la sama kiel :date.',
'alpha' => 'La :attribute devas enhavi nur literoj.',
'alpha_dash' => 'La :attribute devas enhavi nur literoj, ciferoj, kaj streketoj.',
'alpha_num' => 'La :attribute devas enhavi nur literoj kaj ciferoj.',
'array' => 'La :attribute devas esti tabelo.',
'before' => 'La :attribute devas esti dato antaŭ :date.',
'before_or_equal' => 'La :attribute devas esti dato antaŭ aŭ la sama kiel :date.',
'between' => [
'numeric' => 'La :attribute devas esti inter :min kaj :max.',
'file' => 'La :attribute devas esti inter :min kaj :max kilobajtoj.',
'string' => 'La :attribute devas esti inter :min kaj :max signoj.',
'array' => 'La :attribute devas havi inter :min kaj :max eroj.',
],
'boolean' => 'La :attribute kampo devas esti vera aŭ malvera.',
'confirmed' => 'La :attribute konfirmo ne kongruas.',
'date' => 'La :attribute ne estas validan daton.',
'date_format' => 'La :attribute ne kongruas la strukturon :format.',
'different' => 'La :attribute kaj :other devas esti malsama.',
'digits' => 'La :attribute devas esti :digits ciferoj.',
'digits_between' => 'La :attribute devas esti inter :min kaj :max ciferoj.',
'dimensions' => 'La :attribute havas malvalidan bildan dimensiojn.',
'distinct' => 'La :attribute kampo havas duoblan valoron.',
'email' => 'La :attribute devas esti valida retadreso.',
'exists' => 'La elektita :attribute estas malvalida.',
'file' => 'La :attribute devas esti dosiejro.',
'filled' => 'La :attribute kampo devas havi valoro.',
'image' => 'La :attribute devas esti bildo.',
'in' => 'La elektita :attribute estas malvalida.',
'in_array' => 'La :attribute kampo ne ekzistas en :other.',
'integer' => 'La :attribute devas esti entjero.',
'ip' => 'La :attribute devas esti valida IP-adreso.',
'ipv4' => 'La :attribute devas esti valida IPv4-adreso.',
'ipv6' => 'La :attribute devas esti valida IPv6-adreso.',
'json' => 'La :attribute devas esti valida JSON-signoĉeno.',
'max' => [
'numeric' => 'La :attribute ne devas esti pri granda ol :max.',
'file' => 'La :attribute ne devas esti pri granda ol :max kilobajtoj.',
'string' => 'La :attribute ne devas esti pri granda ol :max signoj.',
'array' => 'La :attribute ne devas havi pli ol :max eroj.',
],
'mimes' => 'La :attribute devas esti dosiejro de tipo: :values.',
'mimetypes' => 'La :attribute devas esti dosierjo de tipo: :values.',
'min' => [
'numeric' => 'La :attribute devas esti minimume :min.',
'file' => 'La :attribute devas esti minimume :min kilobajtoj.',
'string' => 'La :attribute devas esti minimume :min signoj.',
'array' => 'La :attribute devas havi minimume :min eroj.',
],
'not_in' => 'La elektita :attribute estas malvalida.',
'not_regex' => 'La :attribute strukturo estas malvalida.',
'numeric' => 'La :attribute devas esti ciferoj.',
'present' => 'La :attribute kampo devas ĉeesti.',
'regex' => 'La :attribute strukturo estas malvalida.',
'required' => 'La :attribute kampo estas bezonata.',
'required_if' => 'La :attribute kampo estas bezonata kiam :other estas :value.',
'required_unless' => 'La :attribute kampo estas bezonata krom se :other estas en :values.',
'required_with' => 'La :attribute kampo estas bezonata kiam :values ĉeestas.',
'required_with_all' => 'La :attribute kampo estas bezonata kiam :values ĉeestas.',
'required_without' => 'La :attribute kampo estas bezonata kiam :values ne ĉeestas.',
'required_without_all' => 'La :attribute kampo estas bezonata kiam neniu el :values ĉeestas.',
'same' => 'La :attribute kaj :other devas kongrui.',
'size' => [
'numeric' => 'La :attribute devas esti :size.',
'file' => 'La :attribute devas esti :size kilobajtoj.',
'string' => 'La :attribute devas esti :size signoj.',
'array' => 'La :attribute devas havi :size eroj.',
],
'string' => 'La :attribute devas esti signoĉeno.',
'timezone' => 'La :attribute devas esti valida zono.',
'unique' => 'La :attribute jam estis prenita.',
'uploaded' => 'La :attribute ne povis alŝuti.',
'url' => 'La :attribute strukturo estas malvalida.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [],
];

@ -1,10 +1,10 @@
<?php
return [
'compose' => [
'invalid' => [
'album' => 'Doit contenir une seule photo ou vidéo ou plusieurs photos.',
],
],
'compose' => [
'invalid' => [
'album' => 'Doit contenir une seule photo ou vidéo ou plusieurs photos.',
],
],
];

@ -1,24 +1,24 @@
<?php
return [
'helpcenter' => 'Centre d\'aide',
'whatsnew' => 'Ce qui est nouveau',
'helpcenter' => 'Centre d\'aide',
'whatsnew' => 'Ce qui est nouveau',
'gettingStarted' => 'Débuter',
'sharingMedia' => 'Partager du contenu',
'profile' => 'Profil',
'stories' => 'Stories',
'hashtags' => 'Hashtags',
'discover' => 'Découvrir',
'directMessages' => 'Messages Directs',
'timelines' => 'Chronologies',
'embed' => 'Intégrer',
'gettingStarted' => 'Débuter',
'sharingMedia' => 'Partager du contenu',
'profile' => 'Profil',
'stories' => 'Stories',
'hashtags' => 'Hashtags',
'discover' => 'Découvrir',
'directMessages' => 'Messages Directs',
'timelines' => 'Chronologies',
'embed' => 'Intégrer',
'communityGuidelines' => 'Règlement de la communauté',
'whatIsTheFediverse' => 'Qu\'est-ce que le fediverse ?',
'controllingVisibility' => 'Contrôler la visibilité',
'blockingAccounts' => 'Blocage des comptes',
'safetyTips' => 'Conseils de sécurité',
'reportSomething' => 'Signaler quelque chose',
'dataPolicy' => 'Politique en matière de données'
'communityGuidelines' => 'Règlement de la communauté',
'whatIsTheFediverse' => 'Qu\'est-ce que le fediverse ?',
'controllingVisibility' => 'Contrôler la visibilité',
'blockingAccounts' => 'Blocage des comptes',
'safetyTips' => 'Conseils de sécurité',
'reportSomething' => 'Signaler quelque chose',
'dataPolicy' => 'Politique en matière de données'
];

@ -1,11 +1,11 @@
<?php
return [
'search' => 'Rechercher',
'home' => 'Accueil',
'local' => 'Local',
'network' => 'Réseau',
'discover' => 'Découvrir',
'search' => 'Rechercher',
'home' => 'Accueil',
'local' => 'Local',
'network' => 'Réseau',
'discover' => 'Découvrir',
'viewMyProfile' => 'Voir mon profil',
'myTimeline' => 'Ma Chronologie',
'publicTimeline' => 'Chronologie Publique',
@ -13,6 +13,6 @@ return [
'settings' => 'Paramètres',
'admin' => 'Admin',
'logout' => 'Se déconnecter',
'directMessages' => 'Messages Directs',
'directMessages' => 'Messages Directs',
'composePost' => 'Composer une publication',
];

@ -6,5 +6,5 @@ return [
'startedFollowingYou' => 'a commencé à vous suivre.',
'commented' => 'a commenté votre publication.',
'mentionedYou' => 'vous a mentionné.',
'shared' => 'a partagé votre publication.',
'shared' => 'a partagé votre publication.',
];

@ -11,5 +11,5 @@ return [
'loginToSeeProfile' => 'pour pouvoir consulter leurs photos et vidéos.',
'status.disabled.header' => 'Profil indisponible',
'status.disabled.body' => 'Désolé, ce profil nest pas disponible pour le moment. Veuillez réessayer plus tard.',
'status.disabled.body' => 'Désolé, ce profil nest pas disponible pour le moment. Veuillez réessayer plus tard.',
];

@ -1,16 +1,16 @@
<?php
return [
'about' => 'À propos',
'help' => 'Aide',
'language' => 'Langue',
'fediverse' => 'Fediverse',
'opensource' => 'Open Source',
'terms' => 'Conditions',
'privacy' => 'Vie privée',
'l10nWip' => 'Nous travaillons toujours sur la prise en charge des langues',
'currentLocale' => 'Langue actuelle',
'selectLocale' => 'Sélectionnez l\'une des langues prises en charge',
'contact' => 'Contact',
'contact-us' => 'Nous contacter',
'about' => 'À propos',
'help' => 'Aide',
'language' => 'Langue',
'fediverse' => 'Fediverse',
'opensource' => 'Open Source',
'terms' => 'Conditions',
'privacy' => 'Vie privée',
'l10nWip' => 'Nous travaillons toujours sur la prise en charge des langues',
'currentLocale' => 'Langue actuelle',
'selectLocale' => 'Sélectionnez l\'une des langues prises en charge',
'contact' => 'Contact',
'contact-us' => 'Nous contacter',
];

@ -114,4 +114,3 @@ return [
*/
'attributes' => [],
];

Loading…
Cancel
Save