more translation support, beginning of phing support

This commit is contained in:
Jeff Poirier 2024-08-17 00:51:47 +00:00
parent 5e83300d06
commit 8233c3f600
14 changed files with 812 additions and 251 deletions

2
.gitignore vendored
View file

@ -20,6 +20,8 @@
/public/hot
/public/storage
/public/vendor/horizon
/public/_lang
/public/js
/storage/*.key
/storage/docker
/vendor

View file

@ -1,74 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class ExportLanguages extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'i18n:export';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Build and export js localization files.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
if(config('app.env') !== 'local') {
$this->error('This command is meant for development purposes and should only be run in a local environment');
return Command::FAILURE;
}
$path = base_path('resources/lang');
$langs = [];
foreach (new \DirectoryIterator($path) as $io) {
$name = $io->getFilename();
$skip = ['vendor'];
if($io->isDot() || in_array($name, $skip)) {
continue;
}
if($io->isDir()) {
array_push($langs, $name);
}
}
$exportDir = resource_path('assets/js/i18n/');
$exportDirAlt = public_path('_lang/');
foreach($langs as $lang) {
$strings = \Lang::get('web', [], $lang);
$json = json_encode($strings, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
$path = "{$exportDir}{$lang}.json";
file_put_contents($path, $json);
$pathAlt = "{$exportDirAlt}{$lang}.json";
file_put_contents($pathAlt, $json);
}
return Command::SUCCESS;
}
}

24
build.xml Normal file
View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Project file to build Pixelfed codebase. -->
<project name = "Pixelfed" default = "build">
<!-- added folders to include lookups -->
<includepath classpath = "vendor/phing/phing/classes" />
<includepath classpath = "build/lib" />
<includepath classpath = "build/phing/tasks" />
<!-- CUSTOM TASKS -->
<taskdef classname="pixelfed.i18n.generate" name="i18nGenerate" />
<!-- TARGETS -->
<target name = "build" description = "assemble/generate codebase">
<i18nGenerate />
</target>
<target name = "install" depends = "build" description = "install all requirements on the system">
</target>
</project>

108
build/lib/i18n.php Normal file
View file

@ -0,0 +1,108 @@
<?php
/*
* Translation-related tooling.
*
* Translation is in flux at this time, as it is split between two
* realms; server-side HTML delivered via Laravel and a single page
* app powered by Vue.js.
*
* Both frameworks have translation systems (Illumate\Translation for
* Laravel and an i18n plugin for Vue.js) with spiritually similar
* systems, using native data structures (arrays for PHP and hashes
* for Vue.js).
*
* The translation support solution that encapsulate both, currently,
* is to start from the php files and push to the SPA, in order to
* allow for full translation.
*
* SPA translations are contained in the web.php data file.
*/
namespace pixelfed\i18n;
use Illuminate\Console\Command;
define('RESOURCES_PATH', 'resources/lang');
/**
* Operates on a set of translation values.
*/
class TranslationSet {
private string $lang_code;
/**
* Construct a translation set from a language code
*
* @return TranslationSet Translations for requested language
*/
public static function FromLanguageCode(string $code) {
return new \TranslationSet($code);
}
public function ExportToJson() {
$strings = \Lang::get('web', [], $this->lang_code);
$json = json_encode($strings, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
$path = "{DIRECTORIES::get().export}{$this->lang_code}.json";
file_put_contents($path, $json);
$pathAlt = "{DIRECTORIES::get().exportAlt}{$this->lang_code}.json";
file_put_contents($pathAlt, $json);
}
private function __construct(string $code) {
$this->lang_code = $code;
$this->rootPath = base_path('resources/lang') . '/' . $code;
}
};
class LanguageCodes {
/**
* By scanning the translation resources folder, builds
* a list of all currently defined translation languages.
*
* @return array[] Language codes for all defined translations
*/
public static function GetAllDefined() {
foreach (new \DirectoryIterator($path) as $io) {
$name = $io->getFilename();
$skip = ['vendor'];
if($io->isDot() || in_array($name, $skip)) {
continue;
}
if($io->isDir()) {
array_push($langs, $name);
}
}
}
};
/**
* This singleton class efficiently stores and
* tracks directories used in various operations
* of i18n.
*/
class DIRECTORIES {
private static $instance;
// enforce singleton pattern
protected function __construct() {
$this->export = resource_path('assets/js/i18n/');
$this->exportAlt = public_path('_lang/');
}
protected function __clone() { }
public function __wakeup()
{ throw new \Exception("Cannot unserialize a singleton."); }
public static function get(): DIRECTORIES {
if(!isset(self::$instance)) {
self::$instance = new DIRECTORIES();
}
return self::$instance;
}
public $export;
public $exportAlt;
}

View file

@ -0,0 +1,18 @@
<?php
namespace pixelfed\i18n;
require_once 'phing/Task.php';
require_once 'i18n.php';
use Task;
class generate extends Task {
public function __construct() {}
public function main() {
foreach(LanguageCodes::GetAllDefined() as $lang) {
TranslationSet.FromLanguageCode($lang).ExportToJson();
}
}
};

View file

@ -49,7 +49,8 @@
"laravel/telescope": "^5.0",
"mockery/mockery": "^1.6",
"nunomaduro/collision": "^8.1",
"phpunit/phpunit": "^11.0.1"
"phpunit/phpunit": "^11.0.1",
"phing/phing": "2.*"
},
"autoload": {
"classmap": [

398
composer.lock generated
View file

@ -62,16 +62,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.316.3",
"version": "3.317.1",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "e832e594b3c213760e067e15ef2739f77505e832"
"reference": "dc1e3031c2721a25beb2e8fbb175b576e3d60ab9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e832e594b3c213760e067e15ef2739f77505e832",
"reference": "e832e594b3c213760e067e15ef2739f77505e832",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/dc1e3031c2721a25beb2e8fbb175b576e3d60ab9",
"reference": "dc1e3031c2721a25beb2e8fbb175b576e3d60ab9",
"shasum": ""
},
"require": {
@ -151,9 +151,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.316.3"
"source": "https://github.com/aws/aws-sdk-php/tree/3.317.1"
},
"time": "2024-07-12T18:07:23+00:00"
"time": "2024-08-02T18:09:42+00:00"
},
{
"name": "bacon/bacon-qr-code",
@ -1619,16 +1619,16 @@
},
{
"name": "guzzlehttp/guzzle",
"version": "7.9.1",
"version": "7.9.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc"
"reference": "d281ed313b989f213357e3be1a179f02196ac99b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/a629e5b69db96eb4939c1b34114130077dd4c6fc",
"reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
"reference": "d281ed313b989f213357e3be1a179f02196ac99b",
"shasum": ""
},
"require": {
@ -1725,7 +1725,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.9.1"
"source": "https://github.com/guzzle/guzzle/tree/7.9.2"
},
"funding": [
{
@ -1741,7 +1741,7 @@
"type": "tidelift"
}
],
"time": "2024-07-19T16:19:57+00:00"
"time": "2024-07-24T11:22:20+00:00"
},
{
"name": "guzzlehttp/promises",
@ -2371,16 +2371,16 @@
},
{
"name": "laravel/framework",
"version": "v11.16.0",
"version": "v11.19.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "bd4808aaf103ccb5cb4b00bcee46140c070c0ec4"
"reference": "5e103d499e9ee5bcfc184412d034c4e516b87085"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/bd4808aaf103ccb5cb4b00bcee46140c070c0ec4",
"reference": "bd4808aaf103ccb5cb4b00bcee46140c070c0ec4",
"url": "https://api.github.com/repos/laravel/framework/zipball/5e103d499e9ee5bcfc184412d034c4e516b87085",
"reference": "5e103d499e9ee5bcfc184412d034c4e516b87085",
"shasum": ""
},
"require": {
@ -2573,7 +2573,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2024-07-16T14:33:07+00:00"
"time": "2024-07-30T15:22:41+00:00"
},
{
"name": "laravel/helpers",
@ -2634,16 +2634,16 @@
},
{
"name": "laravel/horizon",
"version": "v5.25.0",
"version": "v5.27.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/horizon.git",
"reference": "81e62cee5b3feaf169d683b8890e33bf454698ab"
"reference": "8830039251591d1af353f571b40fe0c774dfda20"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/horizon/zipball/81e62cee5b3feaf169d683b8890e33bf454698ab",
"reference": "81e62cee5b3feaf169d683b8890e33bf454698ab",
"url": "https://api.github.com/repos/laravel/horizon/zipball/8830039251591d1af353f571b40fe0c774dfda20",
"reference": "8830039251591d1af353f571b40fe0c774dfda20",
"shasum": ""
},
"require": {
@ -2707,22 +2707,22 @@
],
"support": {
"issues": "https://github.com/laravel/horizon/issues",
"source": "https://github.com/laravel/horizon/tree/v5.25.0"
"source": "https://github.com/laravel/horizon/tree/v5.27.0"
},
"time": "2024-07-05T16:46:31+00:00"
"time": "2024-07-26T05:41:51+00:00"
},
{
"name": "laravel/passport",
"version": "v12.2.0",
"version": "v12.2.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/passport.git",
"reference": "b24c6462835a16163141fbe588533d16603212b7"
"reference": "795bbb406c8f10167df6062032de803bd7d686f2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/passport/zipball/b24c6462835a16163141fbe588533d16603212b7",
"reference": "b24c6462835a16163141fbe588533d16603212b7",
"url": "https://api.github.com/repos/laravel/passport/zipball/795bbb406c8f10167df6062032de803bd7d686f2",
"reference": "795bbb406c8f10167df6062032de803bd7d686f2",
"shasum": ""
},
"require": {
@ -2785,7 +2785,7 @@
"issues": "https://github.com/laravel/passport/issues",
"source": "https://github.com/laravel/passport"
},
"time": "2024-04-17T17:56:14+00:00"
"time": "2024-07-10T19:25:36+00:00"
},
{
"name": "laravel/prompts",
@ -3173,16 +3173,16 @@
},
{
"name": "league/commonmark",
"version": "2.4.2",
"version": "2.5.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf"
"reference": "ac815920de0eff6de947eac0a6a94e5ed0fb147c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf",
"reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/ac815920de0eff6de947eac0a6a94e5ed0fb147c",
"reference": "ac815920de0eff6de947eac0a6a94e5ed0fb147c",
"shasum": ""
},
"require": {
@ -3195,8 +3195,8 @@
},
"require-dev": {
"cebe/markdown": "^1.0",
"commonmark/cmark": "0.30.3",
"commonmark/commonmark.js": "0.30.0",
"commonmark/cmark": "0.31.0",
"commonmark/commonmark.js": "0.31.0",
"composer/package-versions-deprecated": "^1.8",
"embed/embed": "^4.4",
"erusev/parsedown": "^1.0",
@ -3218,7 +3218,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "2.5-dev"
"dev-main": "2.6-dev"
}
},
"autoload": {
@ -3275,7 +3275,7 @@
"type": "tidelift"
}
],
"time": "2024-02-02T11:59:32+00:00"
"time": "2024-07-24T12:52:09+00:00"
},
{
"name": "league/config",
@ -6984,16 +6984,16 @@
},
{
"name": "symfony/cache",
"version": "v7.1.2",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
"reference": "e933e1d947ffb88efcdd34a2bd51561cab7deaae"
"reference": "8ac37acee794372f9732fe8a61a8221f6762148e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/e933e1d947ffb88efcdd34a2bd51561cab7deaae",
"reference": "e933e1d947ffb88efcdd34a2bd51561cab7deaae",
"url": "https://api.github.com/repos/symfony/cache/zipball/8ac37acee794372f9732fe8a61a8221f6762148e",
"reference": "8ac37acee794372f9732fe8a61a8221f6762148e",
"shasum": ""
},
"require": {
@ -7061,7 +7061,7 @@
"psr6"
],
"support": {
"source": "https://github.com/symfony/cache/tree/v7.1.2"
"source": "https://github.com/symfony/cache/tree/v7.1.3"
},
"funding": [
{
@ -7077,7 +7077,7 @@
"type": "tidelift"
}
],
"time": "2024-06-11T13:32:38+00:00"
"time": "2024-07-17T06:10:24+00:00"
},
{
"name": "symfony/cache-contracts",
@ -7231,16 +7231,16 @@
},
{
"name": "symfony/console",
"version": "v7.1.2",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "0aa29ca177f432ab68533432db0de059f39c92ae"
"reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae",
"reference": "0aa29ca177f432ab68533432db0de059f39c92ae",
"url": "https://api.github.com/repos/symfony/console/zipball/cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9",
"reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9",
"shasum": ""
},
"require": {
@ -7304,7 +7304,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v7.1.2"
"source": "https://github.com/symfony/console/tree/v7.1.3"
},
"funding": [
{
@ -7320,7 +7320,7 @@
"type": "tidelift"
}
],
"time": "2024-06-28T10:03:55+00:00"
"time": "2024-07-26T12:41:01+00:00"
},
{
"name": "symfony/css-selector",
@ -7456,16 +7456,16 @@
},
{
"name": "symfony/error-handler",
"version": "v7.1.2",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32"
"reference": "432bb369952795c61ca1def65e078c4a80dad13c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/2412d3dddb5c9ea51a39cfbff1c565fc9844ca32",
"reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c",
"reference": "432bb369952795c61ca1def65e078c4a80dad13c",
"shasum": ""
},
"require": {
@ -7511,7 +7511,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v7.1.2"
"source": "https://github.com/symfony/error-handler/tree/v7.1.3"
},
"funding": [
{
@ -7527,7 +7527,7 @@
"type": "tidelift"
}
],
"time": "2024-06-25T19:55:06+00:00"
"time": "2024-07-26T13:02:51+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -7687,16 +7687,16 @@
},
{
"name": "symfony/finder",
"version": "v7.1.1",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6"
"reference": "717c6329886f32dc65e27461f80f2a465412fdca"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/fbb0ba67688b780efbc886c1a0a0948dcf7205d6",
"reference": "fbb0ba67688b780efbc886c1a0a0948dcf7205d6",
"url": "https://api.github.com/repos/symfony/finder/zipball/717c6329886f32dc65e27461f80f2a465412fdca",
"reference": "717c6329886f32dc65e27461f80f2a465412fdca",
"shasum": ""
},
"require": {
@ -7731,7 +7731,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v7.1.1"
"source": "https://github.com/symfony/finder/tree/v7.1.3"
},
"funding": [
{
@ -7747,20 +7747,20 @@
"type": "tidelift"
}
],
"time": "2024-05-31T14:57:53+00:00"
"time": "2024-07-24T07:08:44+00:00"
},
{
"name": "symfony/http-client",
"version": "v6.4.9",
"version": "v6.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
"reference": "6e9db0025db565bcf8f1d46ed734b549e51e6045"
"reference": "b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/6e9db0025db565bcf8f1d46ed734b549e51e6045",
"reference": "6e9db0025db565bcf8f1d46ed734b549e51e6045",
"url": "https://api.github.com/repos/symfony/http-client/zipball/b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded",
"reference": "b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded",
"shasum": ""
},
"require": {
@ -7824,7 +7824,7 @@
"http"
],
"support": {
"source": "https://github.com/symfony/http-client/tree/v6.4.9"
"source": "https://github.com/symfony/http-client/tree/v6.4.10"
},
"funding": [
{
@ -7840,7 +7840,7 @@
"type": "tidelift"
}
],
"time": "2024-06-28T07:59:05+00:00"
"time": "2024-07-15T09:26:24+00:00"
},
{
"name": "symfony/http-client-contracts",
@ -7922,16 +7922,16 @@
},
{
"name": "symfony/http-foundation",
"version": "v7.1.1",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa"
"reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/74d171d5b6a1d9e4bfee09a41937c17a7536acfa",
"reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/f602d5c17d1fa02f8019ace2687d9d136b7f4a1a",
"reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a",
"shasum": ""
},
"require": {
@ -7979,7 +7979,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.1.1"
"source": "https://github.com/symfony/http-foundation/tree/v7.1.3"
},
"funding": [
{
@ -7995,20 +7995,20 @@
"type": "tidelift"
}
],
"time": "2024-05-31T14:57:53+00:00"
"time": "2024-07-26T12:41:01+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v7.1.2",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6"
"reference": "db9702f3a04cc471ec8c70e881825db26ac5f186"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6",
"reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/db9702f3a04cc471ec8c70e881825db26ac5f186",
"reference": "db9702f3a04cc471ec8c70e881825db26ac5f186",
"shasum": ""
},
"require": {
@ -8093,7 +8093,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.1.2"
"source": "https://github.com/symfony/http-kernel/tree/v7.1.3"
},
"funding": [
{
@ -8109,7 +8109,7 @@
"type": "tidelift"
}
],
"time": "2024-06-28T13:13:31+00:00"
"time": "2024-07-26T14:58:15+00:00"
},
{
"name": "symfony/mailer",
@ -8193,16 +8193,16 @@
},
{
"name": "symfony/mailgun-mailer",
"version": "v6.4.9",
"version": "v6.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailgun-mailer.git",
"reference": "c4917eb14f31fb5c21442375c6baf7f51bd924e8"
"reference": "3eb7c7b644179a766f5d816620b7b6d4a4e7ec43"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/c4917eb14f31fb5c21442375c6baf7f51bd924e8",
"reference": "c4917eb14f31fb5c21442375c6baf7f51bd924e8",
"url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/3eb7c7b644179a766f5d816620b7b6d4a4e7ec43",
"reference": "3eb7c7b644179a766f5d816620b7b6d4a4e7ec43",
"shasum": ""
},
"require": {
@ -8242,7 +8242,7 @@
"description": "Symfony Mailgun Mailer Bridge",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.9"
"source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.10"
},
"funding": [
{
@ -8258,7 +8258,7 @@
"type": "tidelift"
}
],
"time": "2024-06-28T07:59:05+00:00"
"time": "2024-07-04T11:16:22+00:00"
},
{
"name": "symfony/mime",
@ -9056,16 +9056,16 @@
},
{
"name": "symfony/process",
"version": "v7.1.1",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "febf90124323a093c7ee06fdb30e765ca3c20028"
"reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/febf90124323a093c7ee06fdb30e765ca3c20028",
"reference": "febf90124323a093c7ee06fdb30e765ca3c20028",
"url": "https://api.github.com/repos/symfony/process/zipball/7f2f542c668ad6c313dc4a5e9c3321f733197eca",
"reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca",
"shasum": ""
},
"require": {
@ -9097,7 +9097,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v7.1.1"
"source": "https://github.com/symfony/process/tree/v7.1.3"
},
"funding": [
{
@ -9113,20 +9113,20 @@
"type": "tidelift"
}
],
"time": "2024-05-31T14:57:53+00:00"
"time": "2024-07-26T12:44:47+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
"version": "v7.1.1",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git",
"reference": "9a5dbb606da711f5d40a7596ad577856f9402140"
"reference": "1365d10f5476f74a27cf9c2d1eee70c069019db0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/9a5dbb606da711f5d40a7596ad577856f9402140",
"reference": "9a5dbb606da711f5d40a7596ad577856f9402140",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/1365d10f5476f74a27cf9c2d1eee70c069019db0",
"reference": "1365d10f5476f74a27cf9c2d1eee70c069019db0",
"shasum": ""
},
"require": {
@ -9180,7 +9180,7 @@
"psr-7"
],
"support": {
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.1.1"
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.1.3"
},
"funding": [
{
@ -9196,20 +9196,20 @@
"type": "tidelift"
}
],
"time": "2024-05-31T14:57:53+00:00"
"time": "2024-07-17T06:10:24+00:00"
},
{
"name": "symfony/routing",
"version": "v7.1.1",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "60c31bab5c45af7f13091b87deb708830f3c96c0"
"reference": "8a908a3f22d5a1b5d297578c2ceb41b02fa916d0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/60c31bab5c45af7f13091b87deb708830f3c96c0",
"reference": "60c31bab5c45af7f13091b87deb708830f3c96c0",
"url": "https://api.github.com/repos/symfony/routing/zipball/8a908a3f22d5a1b5d297578c2ceb41b02fa916d0",
"reference": "8a908a3f22d5a1b5d297578c2ceb41b02fa916d0",
"shasum": ""
},
"require": {
@ -9261,7 +9261,7 @@
"url"
],
"support": {
"source": "https://github.com/symfony/routing/tree/v7.1.1"
"source": "https://github.com/symfony/routing/tree/v7.1.3"
},
"funding": [
{
@ -9277,7 +9277,7 @@
"type": "tidelift"
}
],
"time": "2024-05-31T14:57:53+00:00"
"time": "2024-07-17T06:10:24+00:00"
},
{
"name": "symfony/service-contracts",
@ -9364,16 +9364,16 @@
},
{
"name": "symfony/string",
"version": "v7.1.2",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8"
"reference": "ea272a882be7f20cad58d5d78c215001617b7f07"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8",
"reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8",
"url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07",
"reference": "ea272a882be7f20cad58d5d78c215001617b7f07",
"shasum": ""
},
"require": {
@ -9431,7 +9431,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.1.2"
"source": "https://github.com/symfony/string/tree/v7.1.3"
},
"funding": [
{
@ -9447,20 +9447,20 @@
"type": "tidelift"
}
],
"time": "2024-06-28T09:27:18+00:00"
"time": "2024-07-22T10:25:37+00:00"
},
{
"name": "symfony/translation",
"version": "v7.1.1",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3"
"reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3",
"reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3",
"url": "https://api.github.com/repos/symfony/translation/zipball/8d5e50c813ba2859a6dfc99a0765c550507934a1",
"reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1",
"shasum": ""
},
"require": {
@ -9525,7 +9525,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v7.1.1"
"source": "https://github.com/symfony/translation/tree/v7.1.3"
},
"funding": [
{
@ -9541,7 +9541,7 @@
"type": "tidelift"
}
],
"time": "2024-05-31T14:57:53+00:00"
"time": "2024-07-26T12:41:01+00:00"
},
{
"name": "symfony/translation-contracts",
@ -9697,16 +9697,16 @@
},
{
"name": "symfony/var-dumper",
"version": "v7.1.2",
"version": "v7.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d"
"reference": "86af4617cca75a6e28598f49ae0690f3b9d4591f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/5857c57c6b4b86524c08cf4f4bc95327270a816d",
"reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/86af4617cca75a6e28598f49ae0690f3b9d4591f",
"reference": "86af4617cca75a6e28598f49ae0690f3b9d4591f",
"shasum": ""
},
"require": {
@ -9760,7 +9760,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v7.1.2"
"source": "https://github.com/symfony/var-dumper/tree/v7.1.3"
},
"funding": [
{
@ -9776,7 +9776,7 @@
"type": "tidelift"
}
],
"time": "2024-06-28T08:00:31+00:00"
"time": "2024-07-26T12:41:01+00:00"
},
{
"name": "symfony/var-exporter",
@ -10691,16 +10691,16 @@
},
{
"name": "laravel/pint",
"version": "v1.16.2",
"version": "v1.17.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca"
"reference": "b5b6f716db298671c1dfea5b1082ec2c0ae7064f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/51f1ba679a6afe0315621ad143d788bd7ded0eca",
"reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca",
"url": "https://api.github.com/repos/laravel/pint/zipball/b5b6f716db298671c1dfea5b1082ec2c0ae7064f",
"reference": "b5b6f716db298671c1dfea5b1082ec2c0ae7064f",
"shasum": ""
},
"require": {
@ -10753,7 +10753,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2024-07-09T15:58:08+00:00"
"time": "2024-08-01T09:06:33+00:00"
},
{
"name": "laravel/telescope",
@ -10969,23 +10969,23 @@
},
{
"name": "nunomaduro/collision",
"version": "v8.3.0",
"version": "v8.4.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
"reference": "b49f5b2891ce52726adfd162841c69d4e4c84229"
"reference": "e7d1aa8ed753f63fa816932bbc89678238843b4a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nunomaduro/collision/zipball/b49f5b2891ce52726adfd162841c69d4e4c84229",
"reference": "b49f5b2891ce52726adfd162841c69d4e4c84229",
"url": "https://api.github.com/repos/nunomaduro/collision/zipball/e7d1aa8ed753f63fa816932bbc89678238843b4a",
"reference": "e7d1aa8ed753f63fa816932bbc89678238843b4a",
"shasum": ""
},
"require": {
"filp/whoops": "^2.15.4",
"nunomaduro/termwind": "^2.0.1",
"php": "^8.2.0",
"symfony/console": "^7.1.2"
"symfony/console": "^7.1.3"
},
"conflict": {
"laravel/framework": "<11.0.0 || >=12.0.0",
@ -10993,13 +10993,13 @@
},
"require-dev": {
"larastan/larastan": "^2.9.8",
"laravel/framework": "^11.16.0",
"laravel/pint": "^1.16.2",
"laravel/sail": "^1.30.2",
"laravel/framework": "^11.19.0",
"laravel/pint": "^1.17.1",
"laravel/sail": "^1.31.0",
"laravel/sanctum": "^4.0.2",
"laravel/tinker": "^2.9.0",
"orchestra/testbench-core": "^9.2.1",
"pestphp/pest": "^2.34.9 || ^3.0.0",
"orchestra/testbench-core": "^9.2.3",
"pestphp/pest": "^2.35.0 || ^3.0.0",
"sebastian/environment": "^6.1.0 || ^7.0.0"
},
"type": "library",
@ -11062,7 +11062,7 @@
"type": "patreon"
}
],
"time": "2024-07-16T22:41:01+00:00"
"time": "2024-08-03T15:32:23+00:00"
},
{
"name": "phar-io/manifest",
@ -11182,6 +11182,118 @@
},
"time": "2022-02-21T01:04:05+00:00"
},
{
"name": "phing/phing",
"version": "2.17.4",
"source": {
"type": "git",
"url": "https://github.com/phingofficial/phing.git",
"reference": "9f3bc8c72e65452686dcf64497e02a082f138908"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phingofficial/phing/zipball/9f3bc8c72e65452686dcf64497e02a082f138908",
"reference": "9f3bc8c72e65452686dcf64497e02a082f138908",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
"require-dev": {
"ext-pdo_sqlite": "*",
"mikey179/vfsstream": "^1.6",
"pdepend/pdepend": "2.x",
"pear/archive_tar": "1.4.x",
"pear/http_request2": "dev-trunk",
"pear/net_growl": "dev-trunk",
"pear/pear-core-minimal": "1.10.1",
"pear/versioncontrol_git": "@dev",
"pear/versioncontrol_svn": "~0.5",
"phpdocumentor/phpdocumentor": "2.x",
"phploc/phploc": "~2.0.6",
"phpmd/phpmd": "~2.2",
"phpunit/phpunit": ">=3.7",
"sebastian/git": "~1.0",
"sebastian/phpcpd": "2.x",
"siad007/versioncontrol_hg": "^1.0",
"simpletest/simpletest": "^1.1",
"squizlabs/php_codesniffer": "~2.2",
"symfony/yaml": "^2.8 || ^3.1 || ^4.0"
},
"suggest": {
"pdepend/pdepend": "PHP version of JDepend",
"pear/archive_tar": "Tar file management class",
"pear/versioncontrol_git": "A library that provides OO interface to handle Git repository",
"pear/versioncontrol_svn": "A simple OO-style interface for Subversion, the free/open-source version control system",
"phpdocumentor/phpdocumentor": "Documentation Generator for PHP",
"phploc/phploc": "A tool for quickly measuring the size of a PHP project",
"phpmd/phpmd": "PHP version of PMD tool",
"phpunit/php-code-coverage": "Library that provides collection, processing, and rendering functionality for PHP code coverage information",
"phpunit/phpunit": "The PHP Unit Testing Framework",
"sebastian/phpcpd": "Copy/Paste Detector (CPD) for PHP code",
"siad007/versioncontrol_hg": "A library for interfacing with Mercurial repositories.",
"tedivm/jshrink": "Javascript Minifier built in PHP"
},
"bin": [
"bin/phing"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.16.x-dev"
}
},
"autoload": {
"classmap": [
"classes/phing/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
"classes"
],
"license": [
"LGPL-3.0-only"
],
"authors": [
{
"name": "Michiel Rook",
"email": "mrook@php.net"
},
{
"name": "Phing Community",
"homepage": "https://www.phing.info/trac/wiki/Development/Contributors"
}
],
"description": "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.",
"homepage": "https://www.phing.info/",
"keywords": [
"build",
"phing",
"task",
"tool"
],
"support": {
"irc": "irc://irc.freenode.net/phing",
"issues": "https://www.phing.info/trac/report",
"source": "https://github.com/phingofficial/phing/tree/2.17.4"
},
"funding": [
{
"url": "https://github.com/mrook",
"type": "github"
},
{
"url": "https://github.com/siad007",
"type": "github"
},
{
"url": "https://www.patreon.com/michielrook",
"type": "patreon"
}
],
"time": "2022-07-08T09:07:07+00:00"
},
{
"name": "phpunit/php-code-coverage",
"version": "11.0.5",
@ -11507,16 +11619,16 @@
},
{
"name": "phpunit/phpunit",
"version": "11.2.8",
"version": "11.3.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "a7a29e8d3113806f18f99d670f580a30e8ffff39"
"reference": "a8dce73a8938dfec7ac0daa91bdbcaae7d7188a3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a7a29e8d3113806f18f99d670f580a30e8ffff39",
"reference": "a7a29e8d3113806f18f99d670f580a30e8ffff39",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a8dce73a8938dfec7ac0daa91bdbcaae7d7188a3",
"reference": "a8dce73a8938dfec7ac0daa91bdbcaae7d7188a3",
"shasum": ""
},
"require": {
@ -11555,7 +11667,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "11.2-dev"
"dev-main": "11.3-dev"
}
},
"autoload": {
@ -11587,7 +11699,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.2.8"
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.3.0"
},
"funding": [
{
@ -11603,7 +11715,7 @@
"type": "tidelift"
}
],
"time": "2024-07-18T14:56:37+00:00"
"time": "2024-08-02T03:56:43+00:00"
},
{
"name": "sebastian/cli-parser",

View file

@ -15,7 +15,7 @@
<directory suffix=".php">./app</directory>
</include>
</coverage>
<testsuites>
<testsuites>#
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>

View file

@ -124,14 +124,14 @@
class="btn btn-link stat-item"
@click="toggleTab('followers')">
<strong :title="profile.followers_count">{{ formatCount(profile.followers_count) }}</strong>
<span>{{ $t('profile.followers') }}</span>
<span>{{ $tc('profile.relationship.followerCount', profile.followers_count) }}</span>
</button>
<button
class="btn btn-link stat-item"
@click="toggleTab('following')">
<strong :title="profile.following_count">{{ formatCount(profile.following_count) }}</strong>
<span>{{ $t('profile.following') }}</span>
<span>{{ $tc('profile.relationship.followingCount', profile.following_count) }}</span>
</button>
</div>
</div>
@ -141,9 +141,9 @@
<!-- <router-link
class="btn btn-light font-weight-bold btn-block follow-btn"
to="/i/web/settings">
{{ $t('profile.editProfile') }}
{{ $t('profile.actions.editProfile') }}
</router-link> -->
<a class="btn btn-light font-weight-bold btn-block follow-btn" href="/settings/home">{{ $t('profile.editProfile') }}</a>
<a class="btn btn-light font-weight-bold btn-block follow-btn" href="/settings/home">{{ $t('profile.actions.editProfile') }}</a>
<a v-if="!profile.locked" class="btn btn-light font-weight-bold btn-block follow-btn mt-md-n4" href="/i/web/my-portfolio">
My Portfolio
<span class="badge badge-success ml-1">NEW</span>

View file

@ -13,6 +13,7 @@ return [
'shared' => 'Shared',
'shares' => 'Shares',
'unshare' => 'Unshare',
'bookmark' => 'Bookmark',
'cancel' => 'Cancel',
'copyLink' => 'Copy Link',
@ -23,12 +24,20 @@ return [
'other' => 'Other',
'readMore' => 'Read more',
'success' => 'Success',
'proceed' => 'Proceed',
'next' => 'Next',
'close' => 'Close',
'clickHere' => 'click here',
'sensitive' => 'Sensitive',
'sensitiveContent' => 'Sensitive Content',
'sensitiveContentWarning' => 'This post may contain sensitive content',
],
'login' => [
'header' => 'Account Login'
],
'site' => [
'terms' => 'Terms of Use',
'privacy' => 'Privacy Policy',
@ -49,12 +58,15 @@ return [
'notifications' => 'Notifications',
'groups' => 'Groups',
'stories' => 'Stories',
'uiSettings' => 'UI Settings',
// Self links
'profile' => 'Profile',
'drive' => 'Drive',
'settings' => 'Settings',
'compose' => 'Create New',
'compose' => 'Create New Post',
'login' => 'Login',
'register' => 'Register',
'logout' => 'Logout',
// Nav footer
@ -63,11 +75,89 @@ return [
'language' => 'Language',
'privacy' => 'Privacy',
'terms' => 'Terms',
'poweredByPixelfed' => 'Powered by Pixelfed',
// Temporary links
'backToPreviousDesign' => 'Go back to previous design'
],
'landing' => [
'auth' => [
'login' => 'Login',
'signup' => 'Signup',
],
'navmenu' => [
'about' => 'About',
'directory' => 'Directory',
'explore' => 'Explore',
],
'serverbanner' => [
'alt' => 'Server banner images',
],
'about' => [
'header' => 'Decentralized photo sharing social media powered by {pixelfedLink}',
'stats' => [
'posts' => 'Posts',
'activeUsers' => 'Active Users',
'totalUsers' => 'Total Users',
],
'details' => [
'about' => 'About',
'serverRules' => 'Server Rules',
'supportedFeatures' => 'Supported Features'
],
'features' => [
'photoPosts' => 'Photo Posts',
'photoAlbums' => 'Photo Albums',
'photoFilters' => 'Photo Filters',
'collections' => 'Collections',
'comments' => 'Comments',
'hashtags' => 'Hashtags',
'likes' => 'Likes',
'notifications' => 'Notifications',
'shares' => 'Shares',
'federation' => 'Federation',
'mobileAppSupport' => 'Mobile App Support',
'stories' => 'Stories',
'videos' => 'Videos'
],
],
'discover' => [
'tagline' => 'Discover accounts and people',
'empty' => 'Nothing to show yet! Check back later.',
],
'explore' => [
'tagline' => 'Explore trending posts',
],
'notfound' => [
'header' => '404 - Not Found',
'description' => 'The page you are looking for does not exist',
'goback' => 'Go back home'
],
'footer' => [
'help' => 'Help',
'terms' => 'Terms',
'privacy' => 'Privacy',
'mobileApps' => 'Applications mobiles',
'poweredByPixelfed' => 'Powered by Pixelfed'
]
],
'uiSettings' => [
'title' => 'UI Settings',
'theme' => 'Theme',
'themeAutoMode' => 'Auto',
'themeDarkMode' => 'Dark',
'themeLightMode' => 'Light',
'profileLayout' => 'Profile Layout',
'layoutGrid' => 'Grid',
'layoutMasonry' => 'Masonry',
'layoutFeed' => 'Feed',
'compactMediaPreviews' => 'Compact Media Previews',
'loadComments' => 'Load Comments',
'hideCountsStats' => 'Hide Counts & Stats'
],
'directMessages' => [
'inbox' => 'Inbox',
'sent' => 'Sent',
@ -97,6 +187,7 @@ return [
'modlog' => 'modlog',
'post' => 'post',
'story' => 'story',
'noneFound' => 'No notifications found',
],
'post' => [
@ -107,17 +198,22 @@ return [
],
'profile' => [
'posts' => 'Posts',
'followers' => 'Followers',
'following' => 'Following',
'admin' => 'Admin',
'collections' => 'Collections',
'follow' => 'Follow',
'actions' => [
'requestFollow' => 'Follow',
'unfollow' => 'Unfollow',
'editProfile' => 'Edit Profile',
],
'relationship' => [
'followerCount' => 'Follower | Followers',
'followingCount' => 'Following',
'following' => 'Following',
'followRequested' => 'Follow Requested',
'followsYou' => 'Follows You'
],
'posts' => 'Posts',
'admin' => 'Admin',
'collections' => 'Collections',
'joined' => 'Joined',
'emptyCollections' => 'We can\'t seem to find any collections',
'emptyPosts' => 'We can\'t seem to find any posts',
],
@ -176,11 +272,38 @@ return [
],
'timeline' => [
'peopleYouMayKnow' => 'People you may know'
'peopleYouMayKnow' => 'People you may know',
'onboarding' => [
'welcome' => 'Welcome',
'thisIsYourHomeFeed' => 'This is your home feed, a chronological feed of posts from accounts you follow.',
'letUsHelpYouFind' => 'Let us help you find some interesting people to follow',
'refreshFeed' => 'Refresh my feed',
],
],
'hashtags' => [
'emptyFeed' => 'We can\'t seem to find any posts for this hashtag'
],
'report' => [
'report' => 'Report',
'selectReason' => 'Select a reason',
'reported' => 'Reported',
'sendingReport' => 'Sending report',
'thanksMsg' => 'Thanks for the report, people like you help keep our community safe!',
'contactAdminMsg' => 'If you\'d like to contact an administrator about this post or report',
],
'sidebar' => [
'followingCount' => 'Following',
'followersCount' => 'Followers',
'compose' => 'Compose New Post',
'createdrop' => [
'collection' => 'Create Collection',
'story' => 'Create Story',
'accountSettings' => 'Account Settings',
],
],
];

View file

@ -13,6 +13,7 @@ return [
'shared' => 'تمَّ مُشارَكَتُه',
'shares' => 'مُشارَكَات',
'unshare' => 'إلغاء المُشارَكَة',
'bookmark' => 'Bookmark',
'cancel' => 'إلغاء',
'copyLink' => 'نَسخ الرابِط',

View file

@ -13,6 +13,7 @@ return [
'shared' => 'Shared',
'shares' => 'Shares',
'unshare' => 'Unshare',
'bookmark' => 'Bookmark',
'cancel' => 'Cancel',
'copyLink' => 'Copy Link',
@ -23,12 +24,20 @@ return [
'other' => 'Other',
'readMore' => 'Read more',
'success' => 'Success',
'proceed' => 'Proceed',
'next' => 'Next',
'close' => 'Close',
'clickHere' => 'click here',
'sensitive' => 'Sensitive',
'sensitiveContent' => 'Sensitive Content',
'sensitiveContentWarning' => 'This post may contain sensitive content',
],
'login' => [
'header' => 'Account Login'
],
'site' => [
'terms' => 'Terms of Use',
'privacy' => 'Privacy Policy',
@ -49,12 +58,15 @@ return [
'notifications' => 'Notifications',
'groups' => 'Groups',
'stories' => 'Stories',
'uiSettings' => 'UI Settings',
// Self links
'profile' => 'Profile',
'drive' => 'Drive',
'settings' => 'Settings',
'compose' => 'Create New',
'compose' => 'Create New Post',
'login' => 'Login',
'register' => 'Register',
'logout' => 'Logout',
// Nav footer
@ -63,11 +75,89 @@ return [
'language' => 'Language',
'privacy' => 'Privacy',
'terms' => 'Terms',
'poweredByPixelfed' => 'Powered by Pixelfed',
// Temporary links
'backToPreviousDesign' => 'Go back to previous design'
],
'landing' => [
'auth' => [
'login' => 'Login',
'signup' => 'Signup',
],
'navmenu' => [
'about' => 'About',
'directory' => 'Directory',
'explore' => 'Explore',
],
'serverbanner' => [
'alt' => 'Server banner images',
],
'about' => [
'header' => 'Decentralized photo sharing social media powered by {pixelfedLink}',
'stats' => [
'posts' => 'Posts',
'activeUsers' => 'Active Users',
'totalUsers' => 'Total Users',
],
'details' => [
'about' => 'About',
'serverRules' => 'Server Rules',
'supportedFeatures' => 'Supported Features'
],
'features' => [
'photoPosts' => 'Photo Posts',
'photoAlbums' => 'Photo Albums',
'photoFilters' => 'Photo Filters',
'collections' => 'Collections',
'comments' => 'Comments',
'hashtags' => 'Hashtags',
'likes' => 'Likes',
'notifications' => 'Notifications',
'shares' => 'Shares',
'federation' => 'Federation',
'mobileAppSupport' => 'Mobile App Support',
'stories' => 'Stories',
'videos' => 'Videos'
],
],
'discover' => [
'tagline' => 'Discover accounts and people',
'empty' => 'Nothing to show yet! Check back later.',
],
'explore' => [
'tagline' => 'Explore trending posts',
],
'notfound' => [
'header' => '404 - Not Found',
'description' => 'The page you are looking for does not exist',
'goback' => 'Go back home'
],
'footer' => [
'help' => 'Help',
'terms' => 'Terms',
'privacy' => 'Privacy',
'mobileApps' => 'Applications mobiles',
'poweredByPixelfed' => 'Powered by Pixelfed'
]
],
'uiSettings' => [
'title' => 'UI Settings',
'theme' => 'Theme',
'themeAutoMode' => 'Auto',
'themeDarkMode' => 'Dark',
'themeLightMode' => 'Light',
'profileLayout' => 'Profile Layout',
'layoutGrid' => 'Grid',
'layoutMasonry' => 'Masonry',
'layoutFeed' => 'Feed',
'compactMediaPreviews' => 'Compact Media Previews',
'loadComments' => 'Load Comments',
'hideCountsStats' => 'Hide Counts & Stats'
],
'directMessages' => [
'inbox' => 'Inbox',
'sent' => 'Sent',
@ -97,6 +187,7 @@ return [
'modlog' => 'modlog',
'post' => 'post',
'story' => 'story',
'noneFound' => 'No notifications found',
],
'post' => [
@ -107,17 +198,22 @@ return [
],
'profile' => [
'posts' => 'Posts',
'followers' => 'Followers',
'following' => 'Following',
'admin' => 'Admin',
'collections' => 'Collections',
'follow' => 'Follow',
'actions' => [
'requestFollow' => 'Follow',
'unfollow' => 'Unfollow',
'editProfile' => 'Edit Profile',
],
'relationship' => [
'followerCount' => 'Follower | Followers',
'followingCount' => 'Following',
'following' => 'Following',
'followRequested' => 'Follow Requested',
'followsYou' => 'Follows You'
],
'posts' => 'Posts',
'admin' => 'Admin',
'collections' => 'Collections',
'joined' => 'Joined',
'emptyCollections' => 'We can\'t seem to find any collections',
'emptyPosts' => 'We can\'t seem to find any posts',
],
@ -176,11 +272,38 @@ return [
],
'timeline' => [
'peopleYouMayKnow' => 'People you may know'
'peopleYouMayKnow' => 'People you may know',
'onboarding' => [
'welcome' => 'Welcome',
'thisIsYourHomeFeed' => 'This is your home feed, a chronological feed of posts from accounts you follow.',
'letUsHelpYouFind' => 'Let us help you find some interesting people to follow',
'refreshFeed' => 'Refresh my feed',
],
],
'hashtags' => [
'emptyFeed' => 'We can\'t seem to find any posts for this hashtag'
],
'report' => [
'report' => 'Report',
'selectReason' => 'Select a reason',
'reported' => 'Reported',
'sendingReport' => 'Sending report',
'thanksMsg' => 'Thanks for the report, people like you help keep our community safe!',
'contactAdminMsg' => 'If you\'d like to contact an administrator about this post or report',
],
'sidebar' => [
'followingCount' => 'Following',
'followersCount' => 'Followers',
'compose' => 'Compose New Post',
'createdrop' => [
'collection' => 'Create Collection',
'story' => 'Create Story',
'accountSettings' => 'Account Settings',
],
],
];

View file

@ -13,6 +13,7 @@ return [
'shared' => 'Shared',
'shares' => 'Shares',
'unshare' => 'Unshare',
'bookmark' => 'Bookmark',
'cancel' => 'Cancel',
'copyLink' => 'Copy Link',
@ -23,12 +24,20 @@ return [
'other' => 'Other',
'readMore' => 'Read more',
'success' => 'Success',
'proceed' => 'Proceed',
'next' => 'Next',
'close' => 'Close',
'clickHere' => 'click here',
'sensitive' => 'Sensitive',
'sensitiveContent' => 'Sensitive Content',
'sensitiveContentWarning' => 'This post may contain sensitive content',
],
'login' => [
'header' => 'Account Login'
],
'site' => [
'terms' => 'Terms of Use',
'privacy' => 'Privacy Policy',
@ -49,12 +58,15 @@ return [
'notifications' => 'Notifications',
'groups' => 'Groups',
'stories' => 'Stories',
'uiSettings' => 'UI Settings',
// Self links
'profile' => 'Profile',
'drive' => 'Drive',
'settings' => 'Settings',
'compose' => 'Create New',
'compose' => 'Create New Post',
'login' => 'Login',
'register' => 'Register',
'logout' => 'Logout',
// Nav footer
@ -63,11 +75,89 @@ return [
'language' => 'Language',
'privacy' => 'Privacy',
'terms' => 'Terms',
'poweredByPixelfed' => 'Powered by Pixelfed',
// Temporary links
'backToPreviousDesign' => 'Go back to previous design'
],
'landing' => [
'auth' => [
'login' => 'Login',
'signup' => 'Signup',
],
'navmenu' => [
'about' => 'About',
'directory' => 'Directory',
'explore' => 'Explore',
],
'serverbanner' => [
'alt' => 'Server banner images',
],
'about' => [
'header' => 'Decentralized photo sharing social media powered by {pixelfedLink}',
'stats' => [
'posts' => 'Posts',
'activeUsers' => 'Active Users',
'totalUsers' => 'Total Users',
],
'details' => [
'about' => 'About',
'serverRules' => 'Server Rules',
'supportedFeatures' => 'Supported Features'
],
'features' => [
'photoPosts' => 'Photo Posts',
'photoAlbums' => 'Photo Albums',
'photoFilters' => 'Photo Filters',
'collections' => 'Collections',
'comments' => 'Comments',
'hashtags' => 'Hashtags',
'likes' => 'Likes',
'notifications' => 'Notifications',
'shares' => 'Shares',
'federation' => 'Federation',
'mobileAppSupport' => 'Mobile App Support',
'stories' => 'Stories',
'videos' => 'Videos'
],
],
'discover' => [
'tagline' => 'Discover accounts and people',
'empty' => 'Nothing to show yet! Check back later.',
],
'explore' => [
'tagline' => 'Explore trending posts',
],
'notfound' => [
'header' => '404 - Not Found',
'description' => 'The page you are looking for does not exist',
'goback' => 'Go back home'
],
'footer' => [
'help' => 'Help',
'terms' => 'Terms',
'privacy' => 'Privacy',
'mobileApps' => 'Applications mobiles',
'poweredByPixelfed' => 'Powered by Pixelfed'
]
],
'uiSettings' => [
'title' => 'UI Settings',
'theme' => 'Theme',
'themeAutoMode' => 'Auto',
'themeDarkMode' => 'Dark',
'themeLightMode' => 'Light',
'profileLayout' => 'Profile Layout',
'layoutGrid' => 'Grid',
'layoutMasonry' => 'Masonry',
'layoutFeed' => 'Feed',
'compactMediaPreviews' => 'Compact Media Previews',
'loadComments' => 'Load Comments',
'hideCountsStats' => 'Hide Counts & Stats'
],
'directMessages' => [
'inbox' => 'Inbox',
'sent' => 'Sent',
@ -97,6 +187,7 @@ return [
'modlog' => 'modlog',
'post' => 'post',
'story' => 'story',
'noneFound' => 'No notifications found',
],
'post' => [
@ -107,17 +198,22 @@ return [
],
'profile' => [
'posts' => 'Posts',
'followers' => 'Followers',
'following' => 'Following',
'admin' => 'Admin',
'collections' => 'Collections',
'follow' => 'Follow',
'actions' => [
'requestFollow' => 'Follow',
'unfollow' => 'Unfollow',
'editProfile' => 'Edit Profile',
],
'relationship' => [
'followerCount' => 'Follower | Followers',
'followingCount' => 'Following',
'following' => 'Following',
'followRequested' => 'Follow Requested',
'followsYou' => 'Follows You'
],
'posts' => 'Posts',
'admin' => 'Admin',
'collections' => 'Collections',
'joined' => 'Joined',
'emptyCollections' => 'We can\'t seem to find any collections',
'emptyPosts' => 'We can\'t seem to find any posts',
],
@ -176,11 +272,38 @@ return [
],
'timeline' => [
'peopleYouMayKnow' => 'People you may know'
'peopleYouMayKnow' => 'People you may know',
'onboarding' => [
'welcome' => 'Welcome',
'thisIsYourHomeFeed' => 'This is your home feed, a chronological feed of posts from accounts you follow.',
'letUsHelpYouFind' => 'Let us help you find some interesting people to follow',
'refreshFeed' => 'Refresh my feed',
],
],
'hashtags' => [
'emptyFeed' => 'We can\'t seem to find any posts for this hashtag'
],
'report' => [
'report' => 'Report',
'selectReason' => 'Select a reason',
'reported' => 'Reported',
'sendingReport' => 'Sending report',
'thanksMsg' => 'Thanks for the report, people like you help keep our community safe!',
'contactAdminMsg' => 'If you\'d like to contact an administrator about this post or report',
],
'sidebar' => [
'followingCount' => 'Following',
'followersCount' => 'Followers',
'compose' => 'Compose New Post',
'createdrop' => [
'collection' => 'Create Collection',
'story' => 'Create Story',
'accountSettings' => 'Account Settings',
],
],
];

View file

@ -200,7 +200,7 @@ return [
'editProfile' => 'Modifier mon profil',
],
'relationship' => [
'followersCount' => 'Abonné·e | Abonné·e·s',
'followerCount' => 'Abonné·e | Abonné·e·s',
'followingCount' => 'Abonnement | Abonnements',
'following' => 'Abonné',
'followRequested' => 'Abonnement demandé',