mirror of
https://github.com/pixelfed/pixelfed.git
synced 2025-01-09 13:50:44 +00:00
commit
089ca37457
25 changed files with 264 additions and 146 deletions
13
.env.docker
13
.env.docker
|
@ -56,11 +56,16 @@ MAIL_ENCRYPTION=null
|
||||||
|
|
||||||
## Databases (MySQL)
|
## Databases (MySQL)
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
DB_HOST=127.0.0.1
|
DB_DATABASE=pixelfed_prod
|
||||||
|
DB_HOST=db
|
||||||
|
DB_PASSWORD=pixelfed_db_pass
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_DATABASE=pixelfed
|
|
||||||
DB_USERNAME=pixelfed
|
DB_USERNAME=pixelfed
|
||||||
DB_PASSWORD=pixelfed
|
# pass the same values to the db itself
|
||||||
|
MYSQL_DATABASE=pixelfed_prod
|
||||||
|
MYSQL_PASSWORD=pixelfed_db_pass
|
||||||
|
MYSQL_RANDOM_ROOT_PASSWORD=true
|
||||||
|
MYSQL_USER=pixelfed
|
||||||
|
|
||||||
## Databases (Postgres)
|
## Databases (Postgres)
|
||||||
#DB_CONNECTION=pgsql
|
#DB_CONNECTION=pgsql
|
||||||
|
@ -74,7 +79,7 @@ DB_PASSWORD=pixelfed
|
||||||
REDIS_CLIENT=phpredis
|
REDIS_CLIENT=phpredis
|
||||||
REDIS_SCHEME=tcp
|
REDIS_SCHEME=tcp
|
||||||
REDIS_HOST=redis
|
REDIS_HOST=redis
|
||||||
REDIS_PASSWORD=null
|
REDIS_PASSWORD=redis_password
|
||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
REDIS_DATABASE=0
|
REDIS_DATABASE=0
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
- Updated Compose Apis, refactor rate limits. ([42375b3d](https://github.com/pixelfed/pixelfed/commit/42375b3d))
|
- Updated Compose Apis, refactor rate limits. ([42375b3d](https://github.com/pixelfed/pixelfed/commit/42375b3d))
|
||||||
- Updated PublicApiController, show unlisted comments. ([e1c6297e](https://github.com/pixelfed/pixelfed/commit/e1c6297e))
|
- Updated PublicApiController, show unlisted comments. ([e1c6297e](https://github.com/pixelfed/pixelfed/commit/e1c6297e))
|
||||||
- Updated ApiV1Controller, add missing variable. ([886ea617](https://github.com/pixelfed/pixelfed/commit/886ea617))
|
- Updated ApiV1Controller, add missing variable. ([886ea617](https://github.com/pixelfed/pixelfed/commit/886ea617))
|
||||||
|
- Updated PublicApiController, limit network pagination to 3 months. ([10119bbb](https://github.com/pixelfed/pixelfed/commit/10119bbb))
|
||||||
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
- ([](https://github.com/pixelfed/pixelfed/commit/))
|
||||||
|
|
||||||
## [v0.10.10 (2021-01-28)](https://github.com/pixelfed/pixelfed/compare/v0.10.9...v0.10.10)
|
## [v0.10.10 (2021-01-28)](https://github.com/pixelfed/pixelfed/compare/v0.10.9...v0.10.10)
|
||||||
|
|
|
@ -523,7 +523,7 @@ class PublicApiController extends Controller
|
||||||
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
||||||
->whereNotNull('uri')
|
->whereNotNull('uri')
|
||||||
->whereScope('public')
|
->whereScope('public')
|
||||||
// ->where('created_at', '>', now()->subMonths(3))
|
->where('created_at', '>', now()->subMonths(3))
|
||||||
->orderBy('created_at', 'desc')
|
->orderBy('created_at', 'desc')
|
||||||
->limit($limit)
|
->limit($limit)
|
||||||
->get();
|
->get();
|
||||||
|
|
|
@ -11,7 +11,6 @@ version: '3'
|
||||||
# if the volumes are properly shared between cluster members.
|
# if the volumes are properly shared between cluster members.
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
## App and Worker
|
## App and Worker
|
||||||
app:
|
app:
|
||||||
# Comment to use dockerhub image
|
# Comment to use dockerhub image
|
||||||
|
@ -21,16 +20,15 @@ services:
|
||||||
image: pixelfed
|
image: pixelfed
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env.docker
|
- .env.docker
|
||||||
volumes:
|
volumes:
|
||||||
- "app-storage:/var/www/storage"
|
- app-storage:/var/www/storage
|
||||||
- "app-bootstrap:/var/www/bootstrap"
|
- app-bootstrap:/var/www/bootstrap
|
||||||
- "./.env.docker:/var/www/.env"
|
|
||||||
networks:
|
networks:
|
||||||
- external
|
- external
|
||||||
- internal
|
- internal
|
||||||
ports:
|
ports:
|
||||||
- "8080:80"
|
- "8080:80"
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- redis
|
- redis
|
||||||
|
@ -42,10 +40,10 @@ services:
|
||||||
image: pixelfed
|
image: pixelfed
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env.docker
|
- .env.docker
|
||||||
volumes:
|
volumes:
|
||||||
- "app-storage:/var/www/storage"
|
- app-storage:/var/www/storage
|
||||||
- "app-bootstrap:/var/www/bootstrap"
|
- app-bootstrap:/var/www/bootstrap
|
||||||
networks:
|
networks:
|
||||||
- external
|
- external
|
||||||
- internal
|
- internal
|
||||||
|
@ -61,17 +59,16 @@ services:
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
command: --default-authentication-plugin=mysql_native_password
|
command: --default-authentication-plugin=mysql_native_password
|
||||||
environment:
|
env_file:
|
||||||
- MYSQL_DATABASE=pixelfed
|
- .env.docker
|
||||||
- MYSQL_USER=${DB_USERNAME}
|
|
||||||
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
||||||
- MYSQL_RANDOM_ROOT_PASSWORD=true
|
|
||||||
volumes:
|
volumes:
|
||||||
- "db-data:/var/lib/mysql"
|
- "db-data:/var/lib/mysql"
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:5-alpine
|
image: redis:5-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env.docker
|
||||||
volumes:
|
volumes:
|
||||||
- "redis-data:/data"
|
- "redis-data:/data"
|
||||||
networks:
|
networks:
|
||||||
|
|
|
@ -773,7 +773,8 @@ export default {
|
||||||
'status-profile-url',
|
'status-profile-url',
|
||||||
'status-avatar',
|
'status-avatar',
|
||||||
'status-profile-id',
|
'status-profile-id',
|
||||||
'profile-layout'
|
'profile-layout',
|
||||||
|
'profile-recent'
|
||||||
],
|
],
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
|
@ -941,9 +942,12 @@ export default {
|
||||||
this.fetchComments();
|
this.fetchComments();
|
||||||
}
|
}
|
||||||
this.loaded = true;
|
this.loaded = true;
|
||||||
setTimeout(function() {
|
|
||||||
self.fetchProfilePosts();
|
if(this.profileRecent !== false) {
|
||||||
}, 3000);
|
setTimeout(function() {
|
||||||
|
self.fetchProfilePosts();
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
self.fetchState();
|
self.fetchState();
|
||||||
document.querySelectorAll('.status-comment .postCommentsContainer .comment-body a').forEach(function(i, e) {
|
document.querySelectorAll('.status-comment .postCommentsContainer .comment-body a').forEach(function(i, e) {
|
||||||
|
|
|
@ -130,7 +130,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="pl-2">
|
<div class="pl-2">
|
||||||
<!-- <a class="d-block username font-weight-bold text-dark" v-bind:href="status.account.url" style="line-height:0.5;"> -->
|
<!-- <a class="d-block username font-weight-bold text-dark" v-bind:href="status.account.url" style="line-height:0.5;"> -->
|
||||||
<a class="username font-weight-bold text-dark text-decoration-none" v-bind:href="profileUrl(status)" v-html="statusCardUsernameFormat(status)">
|
<a class="username font-weight-bold text-dark text-decoration-none text-break" v-bind:href="profileUrl(status)" v-html="statusCardUsernameFormat(status)">
|
||||||
Loading...
|
Loading...
|
||||||
</a>
|
</a>
|
||||||
<span v-if="status.account.is_admin" class="fa-stack" title="Admin Account" data-toggle="tooltip" style="height:1em; line-height:1em; max-width:19px;">
|
<span v-if="status.account.is_admin" class="fa-stack" title="Admin Account" data-toggle="tooltip" style="height:1em; line-height:1em; max-width:19px;">
|
||||||
|
|
|
@ -8,6 +8,20 @@
|
||||||
<carousel ref="carousel" :centerMode="true" :loop="false" :per-page="1" :paginationPosition="'bottom-overlay'" paginationActiveColor="#3897f0" paginationColor="#dbdbdb">
|
<carousel ref="carousel" :centerMode="true" :loop="false" :per-page="1" :paginationPosition="'bottom-overlay'" paginationActiveColor="#3897f0" paginationColor="#dbdbdb">
|
||||||
<slide v-for="(img, index) in status.media_attachments" :key="'px-carousel-'+img.id + '-' + index" class="w-100 h-100 d-block mx-auto text-center" :title="img.description">
|
<slide v-for="(img, index) in status.media_attachments" :key="'px-carousel-'+img.id + '-' + index" class="w-100 h-100 d-block mx-auto text-center" :title="img.description">
|
||||||
<img :class="img.filter_class + ' img-fluid'" :src="img.url" :alt="altText(img)" onerror="this.onerror=null;this.src='/storage/no-preview.png'">
|
<img :class="img.filter_class + ' img-fluid'" :src="img.url" :alt="altText(img)" onerror="this.onerror=null;this.src='/storage/no-preview.png'">
|
||||||
|
<p
|
||||||
|
v-if="status.media_attachments[0].license"
|
||||||
|
style="
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 0 5px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
border-top-left-radius: 5px;
|
||||||
|
background: linear-gradient(0deg, rgba(0,0,0,0.5), rgba(0,0,0,0.5));
|
||||||
|
"><a :href="status.url" class="font-weight-bold text-light">Photo</a> by <a :href="status.account.url" class="font-weight-bold text-light">@{{status.account.username}}</a> licensed under <a :href="status.media_attachments[0].license.url" class="font-weight-bold text-light">{{status.media_attachments[0].license.title}}</a></p>
|
||||||
</slide>
|
</slide>
|
||||||
</carousel>
|
</carousel>
|
||||||
</details>
|
</details>
|
||||||
|
@ -16,6 +30,20 @@
|
||||||
<carousel ref="carousel" :centerMode="true" :loop="false" :per-page="1" :paginationPosition="'bottom-overlay'" paginationActiveColor="#3897f0" paginationColor="#dbdbdb" class="p-0 m-0">
|
<carousel ref="carousel" :centerMode="true" :loop="false" :per-page="1" :paginationPosition="'bottom-overlay'" paginationActiveColor="#3897f0" paginationColor="#dbdbdb" class="p-0 m-0">
|
||||||
<slide v-for="(img, index) in status.media_attachments" :key="'px-carousel-'+img.id + '-' + index" class="" style="background: #000; display: flex;align-items: center;" :title="img.description">
|
<slide v-for="(img, index) in status.media_attachments" :key="'px-carousel-'+img.id + '-' + index" class="" style="background: #000; display: flex;align-items: center;" :title="img.description">
|
||||||
<img :class="img.filter_class + ' img-fluid w-100 p-0'" style="" :src="img.url" :alt="altText(img)" onerror="this.onerror=null;this.src='/storage/no-preview.png'">
|
<img :class="img.filter_class + ' img-fluid w-100 p-0'" style="" :src="img.url" :alt="altText(img)" onerror="this.onerror=null;this.src='/storage/no-preview.png'">
|
||||||
|
<p
|
||||||
|
v-if="status.media_attachments[0].license"
|
||||||
|
style="
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 0 5px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: right;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
border-top-left-radius: 5px;
|
||||||
|
background: linear-gradient(0deg, rgba(0,0,0,0.5), rgba(0,0,0,0.5));
|
||||||
|
"><a :href="status.url" class="font-weight-bold text-light">Photo</a> by <a :href="status.account.url" class="font-weight-bold text-light">@{{status.account.username}}</a> licensed under <a :href="status.media_attachments[0].license.url" class="font-weight-bold text-light">{{status.media_attachments[0].license.title}}</a></p>
|
||||||
</slide>
|
</slide>
|
||||||
</carousel>
|
</carousel>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -34,16 +34,16 @@
|
||||||
<p
|
<p
|
||||||
v-if="status.media_attachments[0].license"
|
v-if="status.media_attachments[0].license"
|
||||||
style="
|
style="
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
border-top-left-radius: 5px;
|
border-top-left-radius: 5px;
|
||||||
background: linear-gradient(0deg, rgba(0,0,0,0.5), rgba(0,0,0,0.5));
|
background: linear-gradient(0deg, rgba(0,0,0,0.5), rgba(0,0,0,0.5));
|
||||||
"><a :href="status.url" class="font-weight-bold text-light">Photo</a> by <a :href="status.account.url" class="font-weight-bold text-light">@{{status.account.username}}</a> licensed under <a :href="status.media_attachments[0].license.url" class="font-weight-bold text-light">{{status.media_attachments[0].license.title}}</a></p>
|
"><a :href="status.url" class="font-weight-bold text-light">Photo</a> by <a :href="status.account.url" class="font-weight-bold text-light">@{{status.account.username}}</a> licensed under <a :href="status.media_attachments[0].license.url" class="font-weight-bold text-light">{{status.media_attachments[0].license.title}}</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -13,7 +13,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'failed' => 'لم نعثر على هذه المعطيات في سجلاتنا.',
|
'failed' => 'هَذِهِ المُؤَهِلاتُ لَا تَتَطابَقُ مَعَ سِجِلَّاتِنَا.',
|
||||||
'throttle' => 'لقد قمت بعدة محاولات. يُرجى إعادة المحاولة لاحقًا بعد مُضيّ :seconds ثوان.',
|
'throttle' => 'العَدِيدُ مِن مُحَاوَلَاتِ تَسجِيلِ الدُّخُول. يُرجَى المُحَاوَلَةُ مَرَّةً أُخرَى بَعدَ زَمَنٍ قَدرُهُ :seconds ثَواني.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
11
resources/lang/ar/exception.php
Normal file
11
resources/lang/ar/exception.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'compose' => [
|
||||||
|
'invalid' => [
|
||||||
|
'album' => 'يَجِبُ أن يَحوِي صُورَةً وَاحِدَة، مَقطَعً مَرئِيًّ أو عَدَدً مِنَ الصُّوَر.',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
28
resources/lang/ar/helpcenter.php
Normal file
28
resources/lang/ar/helpcenter.php
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'helpcenter' => ' مَركَزُ المُسَاعَدَة',
|
||||||
|
'whatsnew' => 'مَا الجَدِيد',
|
||||||
|
|
||||||
|
'gettingStarted' => 'اِبدَأ',
|
||||||
|
'sharingMedia' => 'مُشَارَكَةُ الوَسَائِط',
|
||||||
|
'profile' => 'المَلَفُّ الشَّخصِيّ',
|
||||||
|
'stories' => 'القِصَص',
|
||||||
|
'hashtags' => 'الأوسِمَةُ المُرَبَّعَة',
|
||||||
|
'discover' => 'الاِستِكشاف',
|
||||||
|
'directMessages' => 'الرَّسَائِلُ المُبَاشِرَة',
|
||||||
|
'timelines' => 'الخَطُّ الزَّمَنِيّ',
|
||||||
|
'embed' => 'التَّضمِين',
|
||||||
|
|
||||||
|
'communityGuidelines' => 'إرشَادَاتُ المُجتَمَع',
|
||||||
|
'whatIsTheFediverse' => 'مَا هُوَ Fediverse؟',
|
||||||
|
'controllingVisibility' => 'التَّحَكُّمُ فِي الرُّؤيَة',
|
||||||
|
'blockingAccounts' => 'حَظرُ الحِسَابَات',
|
||||||
|
'safetyTips' => 'نَصَائِحٌ أمنِيَّة',
|
||||||
|
'reportSomething' => 'الإبلاَغُ عَن شَيءٍ مَا',
|
||||||
|
'dataPolicy' => 'سِياسَةُ البَيَانَات',
|
||||||
|
|
||||||
|
'taggingPeople' => 'وَسمُ الأشخَاص'
|
||||||
|
|
||||||
|
];
|
|
@ -1,14 +1,19 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
'search' => 'البَحث',
|
||||||
'viewMyProfile' => 'معاينة ملفي الشخصي',
|
'home' => 'الرَّئِيسَة',
|
||||||
'myTimeline' => 'خيطي الزمني',
|
'local' => 'المَحَلِّيّ',
|
||||||
'publicTimeline' => 'الخيط الزمني العام',
|
'network' => 'الشَّبَكَة',
|
||||||
'remoteFollow' => 'المتابَعة عند بُعد',
|
'discover' => 'الاِستِكشاف',
|
||||||
'settings' => 'الإعدادات',
|
'viewMyProfile' => 'الاِطِّلاعُ عَلَى مَلَفِّي الشَّخصِي',
|
||||||
'admin' => 'المدير',
|
'myProfile' => 'مَلَفِّي الشَّخصِي',
|
||||||
'logout' => 'خروج',
|
'myTimeline' => 'خَطِّي الزَّمَنِي',
|
||||||
'directMessages' => 'الرسائل المباشرة',
|
'publicTimeline' => 'الخَطُّ الزَّمَنِيّ العَام',
|
||||||
|
'remoteFollow' => 'المُتَابَعَةُ عَن بُعد',
|
||||||
|
'settings' => 'الإعدادَات',
|
||||||
|
'admin' => 'المُدِير',
|
||||||
|
'logout' => 'تَسجِيلُ الخُرُوج',
|
||||||
|
'directMessages' => 'الرَّسَائِلُ المُبَاشِرَة',
|
||||||
|
'composePost' => 'إنشاءُ مَنشُور',
|
||||||
];
|
];
|
||||||
|
|
|
@ -2,9 +2,11 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'likedPhoto' => 'أُعجِب بصورتك.',
|
'likedPhoto' => 'اُعجِبَ بِمَنشُورِك.',
|
||||||
'startedFollowingYou' => 'يُتابِعك الآن.',
|
'likedComment' => 'اُعجِبَ بِتَعلِيقِك.',
|
||||||
'commented' => 'علّق على منشورك.',
|
'startedFollowingYou' => 'بَدَأ بِمُتَابَعَتِك.',
|
||||||
'mentionedYou' => 'أشار إليك.',
|
'commented' => 'عَلَّقَ عَلَى مَنشُورِك.',
|
||||||
|
'mentionedYou' => 'قَد ذَكَرَك.',
|
||||||
|
'shared' => 'شَارَكَ مَنشُورَك.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,7 +13,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'previous' => '« التالي',
|
'previous' => '« السَّابِق',
|
||||||
'next' => 'العودة »',
|
'next' => 'التَّالِي »',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,10 +13,10 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'password' => 'ينبغي أن يكون طول الكلمة السرية أزيَد مِن ستة حروف و تكون نفسها متطابقة.',
|
'password' => 'يَجِبُ أن تَتَكَوَّنَ كَلِمَةُ المُرُورِ مِن سِتِّ خَانَاتٍ عَلَى الأقل وَأن تَكُونَ مُتَطَابِقَةً مَعَ التَّأكِيد.',
|
||||||
'reset' => 'تم إعادة تعيين كلمتك السرية!',
|
'reset' => 'لَقَد تَمَّ إعادَةُ تَعيِينِ كَلِمَةِ المُرُورِ الخَاصَّةِ بِك!',
|
||||||
'sent' => 'لقد قمنا بإرسال رسالة مع رابط لإعادة تعيين الكلمة السرية!',
|
'sent' => 'إذَا كَانَ عُنوَانُ بَريدِكَ الإلِكتُرونِيِّ الخاصِّ بِكَ مَوجُودًا فِي قَاعِدَةِ البَيَانَاتِ الخَاصَّةِ بِنَا، فَسَوفَ تَتَلَقَّى رَابِطًا لاِستِعادَةِ كَلِمَةِ المُرُورِ عَلَى عُنوَانِ بَريدِكَ الإلِكتُرونِيِّ فِي غُضُونِ بِضعِ دَقائِق. إذَا لَم تَستَلِم هَذَا البَريد، يُرجَى التَّحقُّقُ مِن مُجَلَّدِ الرَّسَائِل غَيرِ المَرغُوبِ فِيهَا.',
|
||||||
'token' => 'رمز إعادة تعيين الكلمة السرية هذا لم يعد صالحًا.',
|
'token' => 'رَمزُ إعادَةِ تَعيِينِ كَلِمَةِ المُرُورِ هَذَا غَيرُ صَالِح.',
|
||||||
'user' => "تعذّر علينا العثور على مستخدِم له عنوان البريد الإلكتروني هذا.",
|
'user' => 'إذَا كَانَ عُنوَانُ بَريدِكَ الإلِكتُرونِيِّ الخاصِّ بِكَ مَوجُودًا فِي قَاعِدَةِ البَيَانَاتِ الخَاصَّةِ بِنَا، فَسَوفَ تَتَلَقَّى رَابِطًا لاِستِعادَةِ كَلِمَةِ المُرُورِ عَلَى عُنوَانِ بَريدِكَ الإلِكتُرونِيِّ فِي غُضُونِ بِضعِ دَقائِق. إذَا لَم تَستَلِم هَذَا البَريد، يُرجَى التَّحقُّقُ مِن مُجَلَّدِ الرَّسَائِل غَيرِ المَرغُوبِ فِيهَا.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'emptyTimeline' => 'لم يقم هذا المستخدِم بنشر أي منشور بعد!',
|
'emptyTimeline' => 'هَذَا المُستَخدِمُ لَيسَ لَدَيهِ أيُّ مَنشُورَاتٍ حَتَّى الآن!',
|
||||||
'emptyFollowers' => 'ليس لهذا المستخدِم متابِعون بعد!',
|
'emptyFollowers' => 'هَذَا المُستَخدِمُ لَيسَ لَدَيهِ أيُّ مُتَابِعِينَ حَتَّى الآن!',
|
||||||
'emptyFollowing' => 'هذا المستخدِم لا يتابع أحدًا بعد!',
|
'emptyFollowing' => 'هَذَا المُستَخدِمُ لَا يُتَابِعُ أَيُّ شَخصٍ حَتَّى الآن!',
|
||||||
'emptySaved' => 'لم تقم بحفظ أي منشور بعد!',
|
'emptySaved' => 'أنتَ لَم تَحفَظ أيُّ مَنشُورٍ حَتَّى الآن!',
|
||||||
'savedWarning' => 'لا يمكنك عرض إلا ما قمت بالإحتفاظ به',
|
'savedWarning' => 'أنتَ فَقَطّ مَن يُمكَنُهُ رُؤيَةُ مَا قَد حَفَظتَهُ أنت',
|
||||||
'privateProfileWarning' => 'هذا الحساب خاص',
|
'privateProfileWarning' => 'هَذَا حِسَابٌ خاصّ',
|
||||||
'alreadyFollow' => 'أنت تتبع :username?',
|
'alreadyFollow' => 'هَل تُتَابِعُ :username بِالفِعل؟',
|
||||||
'loginToSeeProfile' => 'قصد عرض صوَرهم و فيديوهاتهت.',
|
'loginToSeeProfile' => 'لِمُشَاهَدَةِ صُوَرِهِ وَمَقَاطِعِهِ المَرئِيَّة.',
|
||||||
|
|
||||||
|
'status.disabled.header' => 'إنَّ المَلَفَّ الشَّخصِيّ غَيرُ مُتَاح',
|
||||||
|
'status.disabled.body' => 'عُذرًا، إنَّ هَذَا المَلَفَّ الشَّخصِيّ غَيرُ مُتَاحٍ فِي الوَقتِ الحالِيِّ. يُرجَى المُحَاوَلَةُ مَرَّةً أُخرَى بَعدَ قَلِيل.',
|
||||||
];
|
];
|
||||||
|
|
20
resources/lang/ar/site.php
Normal file
20
resources/lang/ar/site.php
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'about' => 'حَول',
|
||||||
|
'help' => 'المُسَاعَدَة',
|
||||||
|
'language' => 'اللُّغَة',
|
||||||
|
'fediverse' => 'Fediverse',
|
||||||
|
'opensource' => 'المَصدَرُ المَفتُوح',
|
||||||
|
'terms' => 'الشُّرُوط',
|
||||||
|
'privacy' => 'الخُصُوصِيَّة',
|
||||||
|
'l10nWip' => 'لَا نَزَالُ نَعمَلُ عَلَى دَعمِ اللُّغَةِ العَرَبِيَّة',
|
||||||
|
'currentLocale' => 'اللُّغَةُ الحالِيَّة',
|
||||||
|
'selectLocale' => 'اِختَر إحدَى اللُّغَاتِ المَدعُومَة',
|
||||||
|
'contact' => 'التَّوَاصُل',
|
||||||
|
'contact-us' => 'تَوَاصَل مَعَنَا',
|
||||||
|
'places' => 'الأَمَاكِن',
|
||||||
|
'profiles' => 'المَلَفَّاتُ الشَّخصِيَّة',
|
||||||
|
|
||||||
|
];
|
|
@ -2,6 +2,6 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'emptyPersonalTimeline' => 'إنّ خيطك الزمني فارغ.',
|
'emptyPersonalTimeline' => 'إنَّ الخَطَّ الزَّمَنِيَّ الخاصَّ بِكَ فَارِغ.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
11
resources/lang/ru/exception.php
Normal file
11
resources/lang/ru/exception.php
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'compose' => [
|
||||||
|
'invalid' => [
|
||||||
|
'album' => 'Должен содержать одно фото, видео, или несколько фото.',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
|
@ -5,22 +5,24 @@ return [
|
||||||
'helpcenter' => 'Помощь',
|
'helpcenter' => 'Помощь',
|
||||||
'whatsnew' => 'Что нового',
|
'whatsnew' => 'Что нового',
|
||||||
|
|
||||||
'gettingStarted' => 'Первые шаги',
|
'gettingStarted' => 'Начало работы',
|
||||||
'sharingMedia' => 'Поделиться',
|
'sharingMedia' => 'Поделиться',
|
||||||
'profile' => 'Профиль',
|
'profile' => 'Профиль',
|
||||||
'stories' => 'Истории',
|
'stories' => 'Истории',
|
||||||
'hashtags' => 'Хэштэти',
|
'hashtags' => 'Хэштэги',
|
||||||
'discover' => 'Discover',
|
'discover' => 'Discover',
|
||||||
'directMessages' => 'Личное сообщение',
|
'directMessages' => 'Личные сообщения',
|
||||||
'timelines' => 'Ленты',
|
'timelines' => 'Ленты',
|
||||||
'embed' => 'Вставить',
|
'embed' => 'Вставить',
|
||||||
|
|
||||||
'communityGuidelines' => 'Правила сообщества',
|
'communityGuidelines' => 'Правила сообщества',
|
||||||
'whatIsTheFediverse' => 'Что такое fediverse?',
|
'whatIsTheFediverse' => 'Что такое fediverse?',
|
||||||
'controllingVisibility' => 'Управление видимостью',
|
'controllingVisibility' => 'Управление видимостью',
|
||||||
'blockingAccounts' => 'Заблокированные аккаунты',
|
'blockingAccounts' => 'Блокировка аккаунтов',
|
||||||
'safetyTips' => 'Советы по безопасности',
|
'safetyTips' => 'Советы по безопасности',
|
||||||
'reportSomething' => 'Пожаловаться',
|
'reportSomething' => 'Жалобы',
|
||||||
'dataPolicy' => 'Конфиденциальность'
|
'dataPolicy' => 'Конфиденциальность'
|
||||||
|
|
||||||
|
'taggingPeople' => 'Отметки людей'
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'search' => 'Поиск',
|
'search' => 'Поиск',
|
||||||
'home' => 'Home',
|
'home' => 'Главная',
|
||||||
'local' => 'локальная',
|
'local' => 'Локальная',
|
||||||
'network' => 'Сеть',
|
'network' => 'Глобальная',
|
||||||
'discover' => 'Discover',
|
'discover' => 'Discover',
|
||||||
'viewMyProfile' => 'Локальная лента',
|
'viewMyProfile' => 'Мой профиль',
|
||||||
'myTimeline' => 'Моя лента',
|
'myTimeline' => 'Моя лента',
|
||||||
'publicTimeline' => 'Глобальная лента',
|
'publicTimeline' => 'Глобальная лента',
|
||||||
'remoteFollow' => 'Remote Follow',
|
'remoteFollow' => 'Remote Follow',
|
||||||
|
|
|
@ -15,8 +15,8 @@ return [
|
||||||
|
|
||||||
'password' => 'Пароль должен содержать не менее 6 символов и должен совпадать с подтверждением пароля.',
|
'password' => 'Пароль должен содержать не менее 6 символов и должен совпадать с подтверждением пароля.',
|
||||||
'reset' => 'Ваш пароль был сброшен!',
|
'reset' => 'Ваш пароль был сброшен!',
|
||||||
'sent' => 'Мы отправили ссылку для сброса пароля по e-mail!',
|
'sent' => 'Если ваш e-mail существует в нашей базе данных, в течение нескольких минут вы получите письмо со ссылкой для восстановления пароля. Если не получили письмо, пожалуйста, проверьте папку "Спам".',
|
||||||
'token' => 'Этот токен для сброса пароля некорректен.',
|
'token' => 'Этот токен для сброса пароля некорректен.',
|
||||||
'user' => 'Мы не можем найти пользователя с таким e-mail.',
|
'user' => 'Если ваш e-mail существует в нашей базе данных, в течение нескольких минут вы получите письмо со ссылкой для восстановления пароля. Если не получили письмо, пожалуйста, проверьте папку "Спам".',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -5,11 +5,11 @@ return [
|
||||||
'emptyFollowers' => 'У этого пользователя пока нет подписчиков!',
|
'emptyFollowers' => 'У этого пользователя пока нет подписчиков!',
|
||||||
'emptyFollowing' => 'Этот пользователь пока ни на кого не подписан!',
|
'emptyFollowing' => 'Этот пользователь пока ни на кого не подписан!',
|
||||||
'emptySaved' => 'Вы еще не сохранили ни одного поста!',
|
'emptySaved' => 'Вы еще не сохранили ни одного поста!',
|
||||||
'savedWarning' => 'Только можете видеть сохранённые посты',
|
'savedWarning' => 'Только вы можете видеть сохранённые посты',
|
||||||
'privateProfileWarning' => 'Эта учётная запись скрыта',
|
'privateProfileWarning' => 'Эта учётная запись скрыта',
|
||||||
'alreadyFollow' => 'Уже подписаны на :username?',
|
'alreadyFollow' => 'Уже подписаны на :username?',
|
||||||
'loginToSeeProfile' => 'что бы посмотреть их фото и видео.',
|
'loginToSeeProfile' => 'чтобы посмотреть их фото и видео.',
|
||||||
|
|
||||||
'status.disabled.header' => 'Учётная запись недоступна',
|
'status.disabled.header' => 'Учётная запись недоступна',
|
||||||
'status.disabled.body' => 'Нам очень жаль, эта учётная запись недоступна на данный момент. Пожалуйста, попробуйте позже.',
|
'status.disabled.body' => 'К сожалению, эта учётная запись недоступна на данный момент. Пожалуйста, попробуйте ещё раз позднее.',
|
||||||
];
|
];
|
||||||
|
|
|
@ -11,8 +11,9 @@ return [
|
||||||
'privacy' => 'Конфиденциальность',
|
'privacy' => 'Конфиденциальность',
|
||||||
'l10nWip' => 'Мы все еще работаем над локализацией',
|
'l10nWip' => 'Мы все еще работаем над локализацией',
|
||||||
'currentLocale' => 'Выбранный язык',
|
'currentLocale' => 'Выбранный язык',
|
||||||
'selectLocale' => 'выберите один из поддерживаемых языков',
|
'selectLocale' => 'Выберите один из поддерживаемых языков',
|
||||||
'contact' => 'Контакт',
|
'contact' => 'Контакт',
|
||||||
'contact-us' => 'Связь с нами',
|
'contact-us' => 'Связь с нами',
|
||||||
|
'profiles' => 'Профили',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label for="bio" class="col-sm-3 col-form-label font-weight-bold">Language</label>
|
<label for="language" class="col-sm-3 col-form-label font-weight-bold">Language</label>
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-9">
|
||||||
<select class="form-control" name="language">
|
<select class="form-control" name="language">
|
||||||
@foreach(App\Util\Localization\Localization::languages() as $lang)
|
@foreach(App\Util\Localization\Localization::languages() as $lang)
|
||||||
|
|
Loading…
Reference in a new issue