diff --git a/README.md b/README.md index 2541e2a85..7c0117a52 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,12 @@ A free and ethical photo sharing platform, powered by ActivityPub federation. Documentation for Pixelfed can be found on the [Pixelfed documentation website](https://docs.pixelfed.org/). +## Run on YunoHost + +[![Install on YunoHost](https://user-images.githubusercontent.com/42862428/139559471-9495f1e9-e7a4-49f1-9a4b-675ddcc510a2.png 'Install on YunoHost')](https://install-app.yunohost.org/?app=pixelfed) + +Pixelfed app for [YunoHost](https://yunohost.org 'YunoHost'). See [the package source code](https://github.com/YunoHost-Apps/pixelfed_ynh 'pixelfed_ynh repository on GitHub') + ## License Pixelfed is open-sourced software licensed under the AGPL license. diff --git a/contrib/docker/Dockerfile.apache b/contrib/docker/Dockerfile.apache index f2fb254cf..206c86d10 100644 --- a/contrib/docker/Dockerfile.apache +++ b/contrib/docker/Dockerfile.apache @@ -1,10 +1,10 @@ -FROM php:7.4-apache-buster +FROM php:7.4-apache-bullseye # Use the default production configuration COPY contrib/docker/php.production.ini "$PHP_INI_DIR/php.ini" # Install Composer -ENV COMPOSER_VERSION=1.10.11 \ +ENV COMPOSER_VERSION=2.1.14 \ COMPOSER_HOME=/var/www/.composer \ COMPOSER_MEMORY_LIMIT=-1 \ PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}" diff --git a/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AI5sdP3pBmtF8A.woff2 b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AI5sdP3pBmtF8A.woff2 new file mode 100644 index 000000000..16c0ee1a2 Binary files /dev/null and b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AI5sdP3pBmtF8A.woff2 differ diff --git a/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AI9sdP3pBmtF8A.woff2 b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AI9sdP3pBmtF8A.woff2 new file mode 100644 index 000000000..5fa83d2cd Binary files /dev/null and b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AI9sdP3pBmtF8A.woff2 differ diff --git a/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIFsdP3pBms.woff2 b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIFsdP3pBms.woff2 new file mode 100644 index 000000000..debc09f30 Binary files /dev/null and b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIFsdP3pBms.woff2 differ diff --git a/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIJsdP3pBmtF8A.woff2 b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIJsdP3pBmtF8A.woff2 new file mode 100644 index 000000000..8282e8d38 Binary files /dev/null and b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIJsdP3pBmtF8A.woff2 differ diff --git a/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIVsdP3pBmtF8A.woff2 b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIVsdP3pBmtF8A.woff2 new file mode 100644 index 000000000..ed25378c0 Binary files /dev/null and b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIVsdP3pBmtF8A.woff2 differ diff --git a/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIxsdP3pBmtF8A.woff2 b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIxsdP3pBmtF8A.woff2 new file mode 100644 index 000000000..319771a73 Binary files /dev/null and b/public/fonts/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIxsdP3pBmtF8A.woff2 differ diff --git a/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhd7eFaxOedfTDw.woff2 b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhd7eFaxOedfTDw.woff2 new file mode 100644 index 000000000..a0ff7d77c Binary files /dev/null and b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhd7eFaxOedfTDw.woff2 differ diff --git a/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdHeFaxOedc.woff2 b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdHeFaxOedc.woff2 new file mode 100644 index 000000000..b14235214 Binary files /dev/null and b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdHeFaxOedc.woff2 differ diff --git a/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdLeFaxOedfTDw.woff2 b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdLeFaxOedfTDw.woff2 new file mode 100644 index 000000000..f5652bf8a Binary files /dev/null and b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdLeFaxOedfTDw.woff2 differ diff --git a/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdXeFaxOedfTDw.woff2 b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdXeFaxOedfTDw.woff2 new file mode 100644 index 000000000..ce20db258 Binary files /dev/null and b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdXeFaxOedfTDw.woff2 differ diff --git a/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhd_eFaxOedfTDw.woff2 b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhd_eFaxOedfTDw.woff2 new file mode 100644 index 000000000..035d3f610 Binary files /dev/null and b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhd_eFaxOedfTDw.woff2 differ diff --git a/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdzeFaxOedfTDw.woff2 b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdzeFaxOedfTDw.woff2 new file mode 100644 index 000000000..59d01facc Binary files /dev/null and b/public/fonts/zYXgKVElMYYaJe8bpLHnCwDKhdzeFaxOedfTDw.woff2 differ diff --git a/resources/lang/pt/auth.php b/resources/lang/pt/auth.php index bf8631ad8..222a98439 100644 --- a/resources/lang/pt/auth.php +++ b/resources/lang/pt/auth.php @@ -13,7 +13,7 @@ return [ | */ - 'failed' => 'As credenciais não conferem com nossos registros.', - 'throttle' => 'Muitas tentativas de entrar. Tente novamente em :seconds segundos.', + 'failed' => 'As credenciais introduzidas não correspondem aos nossos registos.', + 'throttle' => 'Demasiadas tentativas de login. Tente novamente em :seconds segundos.', ]; diff --git a/resources/lang/pt/exception.php b/resources/lang/pt/exception.php new file mode 100644 index 000000000..a34d23f19 --- /dev/null +++ b/resources/lang/pt/exception.php @@ -0,0 +1,11 @@ + [ + 'invalid' => [ + 'album' => 'Deve conter uma única fotografia ou vídeo, ou várias fotografias.', + ], + ], + +]; diff --git a/resources/lang/pt/helpcenter.php b/resources/lang/pt/helpcenter.php new file mode 100644 index 000000000..c2834c09f --- /dev/null +++ b/resources/lang/pt/helpcenter.php @@ -0,0 +1,28 @@ + 'Centro de Ajuda', + 'whatsnew' => 'O que há de novo', + + 'gettingStarted' => 'Como Começar', + 'sharingMedia' => 'Partilhar Mídia', + 'profile' => 'Perfil', + 'stories' => 'Stories', + 'hashtags' => 'Hashtags', + 'discover' => 'Descobrir', + 'directMessages' => 'Mensagens Diretas', + 'timelines' => 'Linha do Tempo', + 'embed' => 'Embed', + + 'communityGuidelines' => 'Directrizes da Comunidade', + 'whatIsTheFediverse' => 'O que é o fediverse?', + 'controllingVisibility' => 'Controlar a Visibilidade', + 'blockingAccounts' => 'Bloqueio de contas', + 'safetyTips' => 'Dicas de Segurança', + 'reportSomething' => 'Reportar Algo', + 'dataPolicy' => 'Política de Dados', + + 'taggingPeople' => 'Marcação de Pessoas' + +]; diff --git a/resources/lang/pt/navmenu.php b/resources/lang/pt/navmenu.php index 8528521f8..20d6aa12f 100644 --- a/resources/lang/pt/navmenu.php +++ b/resources/lang/pt/navmenu.php @@ -7,7 +7,7 @@ return [ 'local' => 'Local', 'network' => 'Rede', 'discover' => 'Descobrir', - 'viewMyProfile' => 'Ver meu perfil', + 'viewMyProfile' => 'Ver o meu perfil', 'myTimeline' => 'Minha linha do tempo', 'publicTimeline' => 'Linha do tempo pública', 'remoteFollow' => 'Seguir remotamente', diff --git a/resources/lang/pt/notification.php b/resources/lang/pt/notification.php index 8d749e411..a19f7e202 100644 --- a/resources/lang/pt/notification.php +++ b/resources/lang/pt/notification.php @@ -2,10 +2,11 @@ return [ - 'likedPhoto' => 'gostou de sua foto.', - 'startedFollowingYou' => 'começou a te seguir.', - 'commented' => 'comentou em seu post.', - 'mentionedYou' => 'te mencionou.', - 'shared' => 'compartilhou seu post.', + 'likedPhoto' => 'gostou da tua publicação.', + 'likedComment' => 'gostou do teu comentário.', + 'startedFollowingYou' => 'começou a seguir-te.', + 'commented' => 'comentou na tua publicação.', + 'mentionedYou' => 'mencionou-te.', + 'shared' => 'partilhou a tua publicação.', ]; diff --git a/resources/lang/pt/passwords.php b/resources/lang/pt/passwords.php index 93777a662..fd8261346 100644 --- a/resources/lang/pt/passwords.php +++ b/resources/lang/pt/passwords.php @@ -13,10 +13,10 @@ return [ | */ - 'password' => 'As senhas devem ter no mínimo 6 caracteres e serem idênticas à confirmação.', - 'reset' => 'Sua senha foi redefinida!', - 'sent' => 'Se seu email existe em nossa base de dados, você receberá um link para prosseguir com a recuperação de sua senha em alguns minutos. Verifique sua caixa de spam se não receber o email.', - 'token' => 'O token de redefinição de senha é inválido.', - 'user' => 'Se seu email existe em nossa base de dados, você receberá um link para prosseguir com a recuperação de sua senha em alguns minutos. Verifique sua caixa de spam se não receber o email.', + 'password' => 'As palavras-passe devem ter pelo menos seis caracteres e corresponder à confirmação.', + 'reset' => 'A sua palavra-passe foi redefinida!', + 'sent' => 'Se o teu endereço de e-mail existir na nossa base de dados, receberás um link de recuperação da palavras-passe no teu endereço de e-mail dentro de alguns minutos. Por favor veja na sua pasta de spam e verifique se não recebeu este e-mail.', + 'token' => 'Este link de recuperação da palavras-passe é inválido.', + 'user' => 'Se o teu endereço de e-mail existir na nossa base de dados, receberás um link de recuperação da palavras-passe no teu endereço de e-mail dentro de alguns minutos. Por favor veja na sua pasta de spam e verifique se não recebeu este e-mail.', ]; diff --git a/resources/lang/pt/profile.php b/resources/lang/pt/profile.php index 644662d7e..cb3cf7bef 100644 --- a/resources/lang/pt/profile.php +++ b/resources/lang/pt/profile.php @@ -1,15 +1,15 @@ 'Este usuário não fez nenhum post!', - 'emptyFollowers' => 'Este usuário não tem seguidores!', - 'emptyFollowing' => 'Este usuário ainda não segue ninguém!', - 'emptySaved' => 'Você ainda não salvou nenhum post!', - 'savedWarning' => 'Só você pode ver o que foi salvo', - 'privateProfileWarning' => 'Esta conta é fechada', - 'alreadyFollow' => 'Já segue :username?', - 'loginToSeeProfile' => 'para ver suas fotos e vídeos.', + 'emptyTimeline' => 'Este utilizador não fez nenhuma publicação!', + 'emptyFollowers' => 'Este utilizador não tem seguidores!', + 'emptyFollowing' => 'Este utilizador ainda não segue ninguém!', + 'emptySaved' => 'Ainda não salvaste nenhuma publicação!', + 'savedWarning' => 'Apenas tu podes ver o que foi salvo', + 'privateProfileWarning' => 'Esta conta é privada', + 'alreadyFollow' => 'Já segues :username?', + 'loginToSeeProfile' => 'para veres as suas fotos e vídeos.', 'status.disabled.header' => 'Perfil Indisponível', - 'status.disabled.body' => 'Desculpe, este perfil não está disponível no momento. Por favor, tente novamente em breve.', + 'status.disabled.body' => 'Desculpe, este perfil não está disponível neste momento. Por favor, tente novamente mais tarde.', ]; diff --git a/resources/lang/pt/site.php b/resources/lang/pt/site.php index edbbbb0af..2418cc337 100644 --- a/resources/lang/pt/site.php +++ b/resources/lang/pt/site.php @@ -5,12 +5,16 @@ return [ 'about' => 'Sobre', 'help' => 'Ajuda', 'language' => 'Idioma', - 'fediverse' => 'Fediverso', + 'fediverse' => 'Fediverse', 'opensource' => 'Código Aberto', 'terms' => 'Termos', 'privacy' => 'Privacidade', - 'l10nWip' => 'Ainda estamos trabalhando na tradução', + 'l10nWip' => 'Ainda estamos a trabalhar na tradução', 'currentLocale' => 'Idioma atual', 'selectLocale' => 'Escolha um dos idiomas disponíveis', + 'contact' => 'Contacto', + 'contact-us' => 'Contacte-nos', + 'places' => 'Locais', + 'profiles' => 'Perfis', ]; diff --git a/resources/lang/pt/timeline.php b/resources/lang/pt/timeline.php index 1d936d316..19d52709d 100644 --- a/resources/lang/pt/timeline.php +++ b/resources/lang/pt/timeline.php @@ -2,6 +2,6 @@ return [ - 'emptyPersonalTimeline' => 'Sua linha do tempo está vazia.', + 'emptyPersonalTimeline' => 'A tua linha do tempo está vazia.', ]; diff --git a/resources/lang/pt/validation.php b/resources/lang/pt/validation.php index 98af3e86f..ed711e0cb 100644 --- a/resources/lang/pt/validation.php +++ b/resources/lang/pt/validation.php @@ -14,13 +14,13 @@ return [ */ 'accepted' => ':attribute deve ser aceito.', - 'active_url' => ':attribute não é uma URL válida.', + 'active_url' => ':attribute não é uma URL válido.', 'after' => ':attribute deve ser uma data após :date.', 'after_or_equal' => ':attribute deve ser uma data igual ou posterior a :date.', 'alpha' => ':attribute só pode conter letras.', - 'alpha_dash' => ':attribute só pode conter letras, números e barras.', + 'alpha_dash' => ':attribute só pode conter letras, números e traços.', 'alpha_num' => ':attribute só pode conter letras e números.', - 'array' => ':attribute deve ser uma array.', + 'array' => ':attribute deve ser uma matriz.', 'before' => ':attribute deve ser uma data antes de :date.', 'before_or_equal' => ':attribute deve ser uma data igual ou anterior a :date.', 'between' => [ diff --git a/routes/api.php b/routes/api.php index 02dd65062..fdcb0d4b0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -79,8 +79,9 @@ Route::group(['prefix' => 'api'], function() use($middleware) { Route::get('timelines/home', 'Api\ApiV1Controller@timelineHome')->middleware($middleware); Route::get('timelines/public', 'Api\ApiV1Controller@timelinePublic')->middleware($middleware); - Route::get('timelines/tag/{hashtag}', 'Api\ApiV1Controller@timelineHashtag'); - }); + Route::get('timelines/tag/{hashtag}', 'Api\ApiV1Controller@timelineHashtag'); + Route::get('discover/posts', 'Api\ApiV1Controlle@discoverPosts')->middleware($middleware); + }); Route::group(['prefix' => 'v2'], function() use($middleware) { Route::get('search', 'Api\ApiV1Controller@searchV2')->middleware($middleware);