Merge pull request #6566 from arnaud-jacquemin/feature/translate-landing

Make the landing pages translatable
pull/7264/head
Shlee 2 weeks ago committed by GitHub
commit 2ea2824c87
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -3,31 +3,33 @@
return [
'verifyYourEmailAddress' => ' - Verify Your Email Address',
'loginTitle' => 'Account Login',
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
'password' => 'Password',
'remember' => 'Remember Me',
'forgot' => 'Forgot Password',
'login' => 'Login',
'register' => 'Register',
'reset' => 'Password Reset',
'name' => 'Name',
'username' => 'Username',
'confirm-password' => 'Confirm Password',
'age' => 'I am at least 16 years old',
'loginTitle' => 'Account Login',
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
'password' => 'Password' ,
'remember' => 'Remember Me',
'forgot' => 'Forgot Password',
'login' => 'Login',
'register' => 'Register',
'reset' => 'Password Reset',
'name' => 'Name',
'username' => 'Username',
'confirm-password' => 'Confirm Password',
'age' => 'I am at least 16 years old',
'terms' => 'By signing up, you agree to our <a href="'.route('site.terms').'" class="font-weight-bold text-dark">Terms of Use</a> and <a href="'.route('site.privacy').'" class="font-weight-bold text-dark">Privacy Policy</a>.',
'emailAddress' => 'E-Mail Address',
'emailAddress' => 'E-Mail Address',
'email' => 'E-Mail',
'forgotEmail' => 'Forgot E-Mail',
'registerTitle' => 'Register a new account',
'registerTitle' => 'Register a new account',
'sendReset' => 'Send Password Reset Link',
'backLogin' => 'Back to Login',
'sendReset' => 'Send Password Reset Link',
'backLogin' => 'Back to Login',
'signInMastodon' => 'Sign-in with Mastodon',
'signInMastodon' => 'Sign-in with Mastodon',
];

@ -28,10 +28,10 @@ return [
'next' => 'Next',
'close' => 'Close',
'clickHere' => 'click here',
'sensitive' => 'Sensitive',
'sensitiveContent' => 'Sensitive Content',
'sensitiveContentWarning' => 'This post may contain sensitive content',
'javascript' => 'Please enable javascript to view this content.',
'loading' => 'Loading...',
'continue' => 'Continue',
],
@ -73,6 +73,7 @@ return [
'privacy' => 'Privacy',
'terms' => 'Terms',
'legalNotice' => 'Legal Notice',
'mobileApps' => 'Mobile Apps',
// Temporary links
'backToPreviousDesign' => 'Go back to previous design',
@ -369,4 +370,42 @@ return [
],
],
'powered_by_pixelfed' => 'Powered by Pixelfed',
'landing' => [
'login' => 'Login',
'signup' => 'Sign up',
'about' => 'About',
'directory' => 'Directory',
'explore' => 'Explore',
'decentralized_by_pixelfed' => 'Decentralized photo sharing social media powered by <a href="https://pixelfed.org" target="_blank">Pixelfed</a>',
'posts' => 'Posts',
'active_users' => 'Active Users',
'total_users' => 'Total Users',
'managed_by' => 'Managed By',
'server_rules' => 'Server Rules',
'supported_features' => 'Supported Features',
'features' => [
'photo_posts' => 'Photo Posts',
'photo_albums' => 'Photo Albums',
'photo_filters' => 'Photo Filters',
'collections' => 'Collections',
'comments' => 'Comments',
'hashtags' => 'Hashtags',
'likes' => 'Likes',
'notifications' => 'Notifications',
'shares' => 'Shares',
'share_up_to_n_photos' => 'You can share up to <span class="font-weight-bold">{num_photos}</span> photos* at a time with a max caption length of <span class="font-weight-bold">{caption_length}</span> characters.',
'share_up_to_n_photos_videos' => 'You can share up to <span class="font-weight-bold">{num_photos}</span> photos* or <span class="font-weight-bold">{num_video}</span> video* at a time with a max caption length of <span class="font-weight-bold">{caption_length}</span> characters.',
'file_size' => '* - Maximum file size is {max_size}',
'federation' => 'Federation',
'mobile_app' => 'Mobile App Support',
'stories' => 'Stories',
'videos' => 'Videos',
],
'discover_accounts' => 'Discover accounts and people',
'nothing_to_show' => 'Nothing to show yet! Check back later.',
'explore_trending' => 'Explore trending posts',
],
];

@ -12,31 +12,33 @@ return [
|
*/
'failed' => 'Ces informations d’identification ne correspondent à aucune se trouvant dans notre base de données.',
'throttle' => 'Trop de tentatives de connexion ont été effectuées. Veuillez réessayer dans :seconds secondes.',
'failed' => 'Ces informations d’identification ne correspondent à aucune se trouvant dans notre base de données.',
'throttle' => 'Trop de tentatives de connexion ont été effectuées. Veuillez réessayer dans :seconds secondes.',
'verifyYourEmailAddress' => ' - Vérifiez votre adresse de courrier électronique',
'loginTitle' => 'Connexion à mon compte',
'password' => 'Mot de passe',
'remember' => 'Se souvenir de moi',
'forgot' => 'Mot de passe oublié',
'login' => 'Se connecter',
'loginTitle' => 'Connexion à mon compte',
'password' => 'Mot de passe' ,
'remember' => 'Se souvenir de moi',
'forgot' => 'Mot de passe oublié',
'login' => 'Se connecter',
'register' => 'S’inscrire',
'reset' => 'Réinitialiser le mot de passe',
'register' => 'S’inscrire',
'reset' => 'Réinitialiser le mot de passe',
'name' => 'Nom public',
'username' => 'Identifiant',
'confirm-password' => 'Confirmer le mot de passe',
'name' => 'Nom public',
'username' => 'Identifiant',
'confirm-password' => 'Confirmer le mot de passe',
'age' => 'J’ai 16 ans ou plus',
'age' => 'J’ai 16 ans ou plus',
'terms' => 'En vous inscrivant, vous acceptez nos <a href="'.route('site.terms').'" class="font-weight-bold text-dark">conditions d’utilisation</a> et <a href="'.route('site.privacy').'" class="font-weight-bold text-dark">politique de confidentialité</a>.',
'emailAddress' => 'Adresse de courriel',
'emailAddress' => 'Adresse de courriel',
'email' => 'Courriel',
'forgotEmail' => 'Courriel oublié',
'registerTitle' => 'Créer un nouveau profil',
'registerTitle' => 'Créer un nouveau profil',
'sendReset' => 'Envoyer le lien de réinitialisation de mot de passe',
'backLogin' => 'Retour à l’identification',
'sendReset' => 'Envoyer le lien de réinitialisation de mot de passe',
'backLogin' => 'Retour à l’identification',
'signInMastodon' => 'S’inscrire avec Mastodon',
'signInMastodon' => 'S’inscrire avec Mastodon',
];

@ -2,209 +2,211 @@
return [
'common' => [
'comment' => 'Commenter',
'commented' => 'Commenté',
'comments' => 'Commentaires',
'like' => 'J\'aime',
'liked' => 'Aimé',
'likes' => 'J\'aimes',
'share' => 'Partager',
'shared' => 'Partagé',
'shares' => 'Partages',
'unshare' => 'Ne plus partager',
'bookmark' => 'Marque-page',
'cancel' => 'Annuler',
'copyLink' => 'Copier le lien',
'delete' => 'Supprimer',
'error' => 'Erreur',
'errorMsg' => 'Une erreur est survenue. Veuillez réessayer plus tard.',
'oops' => 'Oups !',
'other' => 'Autre',
'readMore' => 'En savoir plus',
'success' => 'Succès',
'proceed' => 'Continuer',
'next' => 'Suivant',
'close' => 'Fermer',
'clickHere' => 'cliquez ici',
'sensitive' => 'Sensible',
'sensitiveContent' => 'Contenu sensible',
'sensitiveContentWarning' => 'Le contenu de cette publication peut être sensible',
],
'site' => [
'terms' => 'Conditions d\'utilisation',
'privacy' => 'Politique de confidentialité',
],
'navmenu' => [
'search' => 'Chercher',
'admin' => 'Tableau de bord d\'administration',
// Timelines
'homeFeed' => 'Fil principal',
'localFeed' => 'Fil local',
'globalFeed' => 'Fil global',
// Core features
'discover' => 'Découvrir',
'directMessages' => 'Messages Privés',
'notifications' => 'Notifications',
'groups' => 'Groupes',
'stories' => 'Stories',
// Self links
'profile' => 'Profil',
'drive' => 'Médiathèque',
'settings' => 'Paramètres',
'appearance' => 'Apparence',
'compose' => 'Publier',
'logout' => 'Déconnexion',
// Nav footer
'about' => 'À propos',
'help' => 'Aide',
'language' => 'Langue',
'privacy' => 'Confidentialité',
'terms' => 'Conditions',
// Temporary links
'common' => [
'comment' => 'Commenter',
'commented' => 'Commenté',
'comments' => 'Commentaires',
'like' => 'J\'aime',
'liked' => 'Aimé',
'likes' => 'J\'aimes',
'share' => 'Partager',
'shared' => 'Partagé',
'shares' => 'Partages',
'unshare' => 'Ne plus partager',
'bookmark' => 'Marque-page',
'cancel' => 'Annuler',
'copyLink' => 'Copier le lien',
'delete' => 'Supprimer',
'error' => 'Erreur',
'errorMsg' => 'Une erreur est survenue. Veuillez réessayer plus tard.',
'oops' => 'Oups !',
'other' => 'Autre',
'readMore' => 'En savoir plus',
'success' => 'Succès',
'proceed' => 'Continuer',
'next' => 'Suivant',
'close' => 'Fermer',
'clickHere' => 'cliquez ici',
'sensitive' => 'Sensible',
'sensitiveContent' => 'Contenu sensible',
'sensitiveContentWarning' => 'Le contenu de cette publication peut être sensible',
'javascript' => 'Activez JavaScript SVP pour consulter ce contenu.',
],
'site' => [
'terms' => 'Conditions d\'utilisation',
'privacy' => 'Politique de confidentialité',
],
'navmenu' => [
'search' => 'Chercher',
'admin' => 'Tableau de bord d\'administration',
// Timelines
'homeFeed' => 'Fil principal',
'localFeed' => 'Fil local',
'globalFeed' => 'Fil global',
// Core features
'discover' => 'Découvrir',
'directMessages' => 'Messages Privés',
'notifications' => 'Notifications',
'groups' => 'Groupes',
'stories' => 'Stories',
// Self links
'profile' => 'Profil',
'drive' => 'Médiathèque',
'settings' => 'Paramètres',
'appearance' => 'Apparence',
'compose' => 'Publier',
'logout' => 'Déconnexion',
// Nav footer
'about' => 'À propos',
'help' => 'Aide',
'language' => 'Langue',
'privacy' => 'Confidentialité',
'terms' => 'Conditions',
'mobileApps' => 'Applis mobiles',
// Temporary links
'backToPreviousDesign' => 'Revenir au design précédent',
],
],
'directMessages' => [
'inbox' => 'Boîte de réception',
'sent' => 'Boîte d\'envois',
'directMessages' => [
'inbox' => 'Boîte de réception',
'sent' => 'Boîte d\'envois',
'requests' => 'Demandes',
],
'notifications' => [
'liked' => 'a aimé votre',
'commented' => 'a commenté votre',
'reacted' => 'a réagi à votre',
'shared' => 'a partagé votre',
'tagged' => 'vous a tagué·e dans un',
'updatedA' => 'mis à jour un·e',
'sentA' => 'a envoyé un·e',
'followed' => 's\'est abonné·e à',
'mentioned' => 'a mentionné',
'you' => 'vous',
'yourApplication' => 'Votre demande d\'adhésion',
'applicationApproved' => 'a été approuvée !',
'applicationRejected' => 'a été rejetée. Vous pouvez refaire une demande dans 6 mois.',
'dm' => 'mp',
'groupPost' => 'publication de groupe',
'modlog' => 'journal de modération',
'post' => 'publication',
'story' => 'story',
'noneFound' => 'Aucune notification trouvée',
],
'post' => [
'shareToFollowers' => 'Partager avec ses abonné·e·s',
'shareToOther' => 'Partager avec d\'autres',
'noLikes' => 'Aucun J\'aime pour le moment',
'uploading' => 'Téléversement',
],
'profile' => [
'posts' => 'Publications',
'followers' => 'Abonné·e·s',
'following' => 'Abonnements',
'admin' => 'Administrateur·rice',
'collections' => 'Collections',
'follow' => 'S\'abonner',
'unfollow' => 'Se désabonner',
'editProfile' => 'Modifier votre profil',
'followRequested' => 'Demande d\'abonnement faite',
'joined' => 'A rejoint',
'emptyCollections' => 'Aucune collection ne semble exister',
'emptyPosts' => 'Il semble n’y avoir aucune publication',
],
'menu' => [
'viewPost' => 'Voir la publication',
'viewProfile' => 'Voir le profil',
'moderationTools' => 'Outils de modération',
'report' => 'Signaler',
'archive' => 'Archiver',
'unarchive' => 'Désarchiver',
'embed' => 'Intégrer',
'selectOneOption' => 'Sélectionnez l\'une des options suivantes',
'unlistFromTimelines' => 'Retirer des flux',
'addCW' => 'Ajouter un avertissement de contenu',
'removeCW' => 'Enlever l’avertissement de contenu',
'markAsSpammer' => 'Marquer comme spammeur·euse',
'markAsSpammerText' => 'Retirer des flux + ajouter un avertissement de contenu pour les publications existantes et futures',
'spam' => 'Indésirable',
'sensitive' => 'Contenu sensible',
'abusive' => 'Abusif ou préjudiciable',
'underageAccount' => 'Compte d\'un·e mineur·e',
'copyrightInfringement' => 'Violation des droits d’auteur',
'impersonation' => 'Usurpation d\'identité',
'scamOrFraud' => 'Arnaque ou fraude',
'confirmReport' => 'Confirmer le signalement',
'confirmReportText' => 'Êtes-vous sûr·e de vouloir signaler cette publication ?',
'reportSent' => 'Signalement envoyé !',
'reportSentText' => 'Nous avons bien reçu votre signalement.',
'reportSentError' => 'Une erreur s\'est produite lors du signalement de cette publication.',
'modAddCWConfirm' => 'Êtes-vous sûr·e de vouloir ajouter un avertissement de contenu à cette publication ?',
'modCWSuccess' => 'Avertissement de contenu ajouté avec succès',
'modRemoveCWConfirm' => 'Êtes-vous sûr·e de vouloir supprimer l\'avertissement de contenu sur cette publication ?',
'modRemoveCWSuccess' => 'Avertissement de contenu supprimé avec succès',
'modUnlistConfirm' => 'Êtes-vous sûr·e de vouloir retirer cette publication des flux ?',
'modUnlistSuccess' => 'Publication retirée des fils avec succès',
'modMarkAsSpammerConfirm' => 'Êtes-vous sûr·e de vouloir marquer cet utilisateur·rice comme spammeur·euse ? Toutes les publications existantes et futures seront retirées des flux et un avertissement de contenu sera appliqué.',
'modMarkAsSpammerSuccess' => 'Compte marqué avec succès comme spammeur',
'toFollowers' => 'aux abonné·e·s',
'showCaption' => 'Afficher la légende',
'showLikes' => 'Afficher les J\'aime',
'compactMode' => 'Mode compact',
'embedConfirmText' => 'En utilisant ce module, vous acceptez nos',
'deletePostConfirm' => 'Êtes-vous sûr·e de vouloir supprimer cette publication ?',
'archivePostConfirm' => 'Êtes-vous sûr·e de vouloir archiver cette publication ?',
'unarchivePostConfirm' => 'Êtes-vous sûr·e de vouloir désarchiver cette publication ?',
],
'story' => [
],
'notifications' => [
'liked' => 'a aimé votre',
'commented' => 'a commenté votre',
'reacted' => 'a réagi à votre',
'shared' => 'a partagé votre',
'tagged' => 'vous a tagué·e dans un',
'updatedA' => 'mis à jour un·e',
'sentA' => 'a envoyé un·e',
'followed' => 's\'est abonné·e à',
'mentioned' => 'a mentionné',
'you' => 'vous',
'yourApplication' => 'Votre demande d\'adhésion',
'applicationApproved' => 'a été approuvée !',
'applicationRejected' => 'a été rejetée. Vous pouvez refaire une demande dans 6 mois.',
'dm' => 'mp',
'groupPost' => 'publication de groupe',
'modlog' => 'journal de modération',
'post' => 'publication',
'story' => 'story',
'noneFound' => 'Aucune notification trouvée',
],
'post' => [
'shareToFollowers' => 'Partager avec ses abonné·e·s',
'shareToOther' => 'Partager avec d\'autres',
'noLikes' => 'Aucun J\'aime pour le moment',
'uploading' => 'Téléversement',
],
'profile' => [
'posts' => 'Publications',
'followers' => 'Abonné·e·s',
'following' => 'Abonnements',
'admin' => 'Administrateur·rice',
'collections' => 'Collections',
'follow' => 'S\'abonner',
'unfollow' => 'Se désabonner',
'editProfile' => 'Modifier votre profil',
'followRequested' => 'Demande d\'abonnement faite',
'joined' => 'A rejoint',
'emptyCollections' => 'Aucune collection ne semble exister',
'emptyPosts' => 'Il semble n’y avoir aucune publication',
],
'menu' => [
'viewPost' => 'Voir la publication',
'viewProfile' => 'Voir le profil',
'moderationTools' => 'Outils de modération',
'report' => 'Signaler',
'archive' => 'Archiver',
'unarchive' => 'Désarchiver',
'embed' => 'Intégrer',
'selectOneOption' => 'Sélectionnez l\'une des options suivantes',
'unlistFromTimelines' => 'Retirer des flux',
'addCW' => 'Ajouter un avertissement de contenu',
'removeCW' => 'Enlever l’avertissement de contenu',
'markAsSpammer' => 'Marquer comme spammeur·euse',
'markAsSpammerText' => 'Retirer des flux + ajouter un avertissement de contenu pour les publications existantes et futures',
'spam' => 'Indésirable',
'sensitive' => 'Contenu sensible',
'abusive' => 'Abusif ou préjudiciable',
'underageAccount' => 'Compte d\'un·e mineur·e',
'copyrightInfringement' => 'Violation des droits d’auteur',
'impersonation' => 'Usurpation d\'identité',
'scamOrFraud' => 'Arnaque ou fraude',
'confirmReport' => 'Confirmer le signalement',
'confirmReportText' => 'Êtes-vous sûr·e de vouloir signaler cette publication ?',
'reportSent' => 'Signalement envoyé !',
'reportSentText' => 'Nous avons bien reçu votre signalement.',
'reportSentError' => 'Une erreur s\'est produite lors du signalement de cette publication.',
'modAddCWConfirm' => 'Êtes-vous sûr·e de vouloir ajouter un avertissement de contenu à cette publication ?',
'modCWSuccess' => 'Avertissement de contenu ajouté avec succès',
'modRemoveCWConfirm' => 'Êtes-vous sûr·e de vouloir supprimer l\'avertissement de contenu sur cette publication ?',
'modRemoveCWSuccess' => 'Avertissement de contenu supprimé avec succès',
'modUnlistConfirm' => 'Êtes-vous sûr·e de vouloir retirer cette publication des flux ?',
'modUnlistSuccess' => 'Publication retirée des fils avec succès',
'modMarkAsSpammerConfirm' => 'Êtes-vous sûr·e de vouloir marquer cet utilisateur·rice comme spammeur·euse ? Toutes les publications existantes et futures seront retirées des flux et un avertissement de contenu sera appliqué.',
'modMarkAsSpammerSuccess' => 'Compte marqué avec succès comme spammeur',
'toFollowers' => 'aux abonné·e·s',
'showCaption' => 'Afficher la légende',
'showLikes' => 'Afficher les J\'aime',
'compactMode' => 'Mode compact',
'embedConfirmText' => 'En utilisant ce module, vous acceptez nos',
'deletePostConfirm' => 'Êtes-vous sûr·e de vouloir supprimer cette publication ?',
'archivePostConfirm' => 'Êtes-vous sûr·e de vouloir archiver cette publication ?',
'unarchivePostConfirm' => 'Êtes-vous sûr·e de vouloir désarchiver cette publication ?',
],
'story' => [
'add' => 'Ajouter une story',
],
],
'timeline' => [
'peopleYouMayKnow' => 'Personnes que vous connaissez peut-être',
'timeline' => [
'peopleYouMayKnow' => 'Personnes que vous connaissez peut-être',
'onboarding' => [
'welcome' => 'Bienvenue',
'thisIsYourHomeFeed' => 'Ceci est votre flux personnel, un flux chronologique des publications de comptes que vous suivez.',
'letUsHelpYouFind' => 'Laissez-nous vous aider à trouver des personnes intéressantes à suivre',
'refreshFeed' => 'Actualiser mon flux',
],
],
'onboarding' => [
'welcome' => 'Bienvenue',
'thisIsYourHomeFeed' => 'Ceci est votre flux personnel, un flux chronologique des publications de comptes que vous suivez.',
'letUsHelpYouFind' => 'Laissez-nous vous aider à trouver des personnes intéressantes à suivre',
'refreshFeed' => 'Actualiser mon flux',
],
],
'hashtags' => [
'hashtags' => [
'emptyFeed' => 'Aucune publication ne semble exister pour ce hashtag',
],
],
'report' => [
'report' => 'Signaler',
'selectReason' => 'Sélectionner un motif',
'reported' => 'Signalé',
'sendingReport' => 'Envoi du signalement',
'thanksMsg' => 'Merci pour votre signalement, les gens comme vous aident à assurer la sécurité de notre communauté !',
'contactAdminMsg' => 'Si vous souhaitez contacter un·e administrateur·trice à propos de cette publication ou de ce signalement',
],
'report' => [
'report' => 'Signaler',
'selectReason' => 'Sélectionner un motif',
'reported' => 'Signalé',
'sendingReport' => 'Envoi du signalement',
'thanksMsg' => 'Merci pour votre signalement, les gens comme vous aident à assurer la sécurité de notre communauté !',
'contactAdminMsg' => 'Si vous souhaitez contacter un·e administrateur·trice à propos de cette publication ou de ce signalement',
],
'appearance' => [
'theme' => 'Thème',
@ -222,4 +224,41 @@ return [
'feed' => 'Fil',
],
'powered_by_pixelfed' => 'Propulsé par Pixelfed',
'landing' => [
'login' => 'Se connecter',
'signup' => 'Créer un compte',
'about' => 'À propos',
'directory' => 'Annuaire',
'explore' => 'Explorer',
'decentralized_by_pixelfed' => 'Média social décentralisé de partage de photo, propulsé par <a href="https://pixelfed.org" target="_blank">Pixelfed</a>',
'posts' => 'Publications',
'active_users' => 'Utilisateurs actifs',
'total_users' => 'Utilisateurs au total',
'managed_by' => 'Géré par',
'server_rules' => 'Règles du serveur',
'supported_features' => 'Fonctionnalités prises en charge',
'features' => [
'photo_posts' => 'Publication de photos',
'photo_albums' => 'Albums photos',
'photo_filters' => 'Filtres',
'collections' => 'Collections',
'comments' => 'Commentaires',
'hashtags' => 'Hashtags',
'likes' => 'J\'aime',
'notifications' => 'Notifications',
'shares' => 'Partages',
'share_up_to_n_photos' => 'Vous pouvez partager jusqu\'à <span class="font-weight-bold">{num_photos}</span> photos* à la fois avec des légendes d\'une longueur maximale de <span class="font-weight-bold">{caption_length}</span> caractères.',
'share_up_to_n_photos_videos' => 'Vous pouvez partager jusqu\'à <span class="font-weight-bold">{num_photos}</span> photos* ou <span class="font-weight-bold">{num_video}</span> vidéo* à la fois avec des légendes d\'une longueur maximale de <span class="font-weight-bold">{caption_length}</span> caractères.',
'file_size' => '* la taille maximale des fichiers est {max_size}',
'federation' => 'Fédération',
'mobile_app' => 'Application mobile',
'stories' => 'Stories',
'videos' => 'Vidéos',
],
'discover_accounts' => 'Découvrir des comptes et personnes',
'nothing_to_show' => 'Rien à montrer pour le moment… Revenez plus tard.',
'explore_trending' => 'Parcourir les tendances',
],
];

@ -6,20 +6,20 @@
<div class="card-header bg-bluegray-800 nav-menu" style="border-top-left-radius: 10px; border-top-right-radius: 10px;">
<ul class="nav justify-content-around">
<li class="nav-item">
<router-link to="/" class="nav-link">About</router-link>
<router-link to="/" class="nav-link">{{ $t('landing.about') }}</router-link>
</li>
<li v-if="config.show_directory" class="nav-item">
<router-link to="/web/directory" class="nav-link">Directory</router-link>
<router-link to="/web/directory" class="nav-link">{{ $t('landing.directory') }}</router-link>
</li>
<li v-if="config.show_explore_feed" class="nav-item">
<router-link to="/web/explore" class="nav-link">Explore</router-link>
<router-link to="/web/explore" class="nav-link">{{ $t('landing.explore') }}</router-link>
</li>
</ul>
</div>
<div class="card-body">
<div class="py-3">
<p class="lead text-center">Discover accounts and people</p>
<p class="lead text-center">{{ $t('landing.discover_accounts') }}</p>
</div>
<div v-if="loading" class="d-flex justify-content-center align-items-center" style="min-height: 500px;">
@ -43,7 +43,7 @@
<div class="card card-body bg-bluegray-800">
<div class="d-flex justify-content-center align-items-center flex-column py-5">
<i class="fal fa-clock fa-6x text-bluegray-500"></i>
<p class="lead font-weight-bold mt-3 mb-0">Nothing to show yet! Check back later.</p>
<p class="lead font-weight-bold mt-3 mb-0">{{ $t('landing.nothing_to_show') }}</p>
</div>
</div>
</div>

@ -6,20 +6,20 @@
<div class="card-header bg-bluegray-800 nav-menu" style="border-top-left-radius: 10px; border-top-right-radius: 10px;">
<ul class="nav justify-content-around">
<li class="nav-item">
<router-link to="/" class="nav-link">About</router-link>
<router-link to="/" class="nav-link">{{ $t('landing.about') }}</router-link>
</li>
<li v-if="config.show_directory" class="nav-item">
<router-link to="/web/directory" class="nav-link">Directory</router-link>
<router-link to="/web/directory" class="nav-link">{{ $t('landing.directory') }}</router-link>
</li>
<li v-if="config.show_explore_feed" class="nav-item">
<router-link to="/web/explore" class="nav-link">Explore</router-link>
<router-link to="/web/explore" class="nav-link">{{ $t('landing.explore') }}</router-link>
</li>
</ul>
</div>
<div class="card-body">
<div class="py-3">
<p class="lead text-center">Explore trending posts</p>
<p class="lead text-center">{{ $t('landing.explore_trending') }}</p>
</div>
<div v-if="loading" class="d-flex justify-content-center align-items-center" style="min-height: 500px;">

@ -6,13 +6,13 @@
<div class="card-header bg-bluegray-800 nav-menu" style="border-top-left-radius: 10px; border-top-right-radius: 10px;">
<ul class="nav justify-content-around">
<li class="nav-item">
<router-link to="/" class="nav-link">About</router-link>
<router-link to="/" class="nav-link">{{ $t('landing.about') }}</router-link>
</li>
<li v-if="config.show_directory" class="nav-item">
<router-link to="/web/directory" class="nav-link">Directory</router-link>
<router-link to="/web/directory" class="nav-link">{{ $t('landing.directory') }}</router-link>
</li>
<li v-if="config.show_explore_feed" class="nav-item">
<router-link to="/web/explore" class="nav-link">Explore</router-link>
<router-link to="/web/explore" class="nav-link">{{ $t('landing.explore') }}</router-link>
</li>
</ul>
</div>
@ -30,8 +30,7 @@
<div class="card-body">
<div class="server-header">
<p class="server-header-domain">{{ config.domain }}</p>
<p class="server-header-attribution">
Decentralized photo sharing social media powered by <a href="https://pixelfed.org" target="_blank">Pixelfed</a>
<p class="server-header-attribution" v-html="$t('landing.decentralized_by_pixelfed')">
</p>
</div>
@ -39,15 +38,15 @@
<div class="list-group">
<div class="list-group-item bg-transparent">
<p class="stat-value">{{ formatCount(config.stats.posts_count) }}</p>
<p class="stat-label">Posts</p>
<p class="stat-label">{{ $t('landing.posts') }}</p>
</div>
<div class="list-group-item bg-transparent">
<p class="stat-value">{{ formatCount(config.stats.active_users) }}</p>
<p class="stat-label">Active Users</p>
<p class="stat-label">{{ $t('landing.active_users') }}</p>
</div>
<div class="list-group-item bg-transparent">
<p class="stat-value">{{ formatCount(config.stats.total_users) }}</p>
<p class="stat-label">Total Users</p>
<p class="stat-label">{{ $t('landing.total_users') }}</p>
</div>
</div>
</div>
@ -55,7 +54,7 @@
<div class="server-admin">
<div class="list-group">
<div v-if="config.contact.account" class="list-group-item bg-transparent">
<p class="item-label">Managed By</p>
<p class="item-label">{{ $t('landing.managed_by') }}</p>
<a :href="config.contact.account.url" class="admin-card" target="_blank">
<div class="d-flex">
<img
@ -89,7 +88,7 @@
<button class="btn btn-link btn-block" type="button" data-toggle="collapse" data-target="#collapseOne" aria-controls="collapseOne" @click="toggleAccordion(0)">
<span class="text-white h5">
<i class="far fa-info-circle mr-2 text-muted"></i>
About
{{ $t('landing.about') }}
</span>
<i class="far" :class="[ accordionTab === 0 ? 'fa-chevron-left text-primary': 'fa-chevron-down']"></i>
</button>
@ -109,7 +108,7 @@
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" @click="toggleAccordion(1)">
<span class="text-white h5">
<i class="far fa-list mr-2 text-muted"></i>
Server Rules
{{ $t('landing.server_rules') }}
</span>
<i class="far" :class="[ accordionTab === 1 ? 'fa-chevron-left text-primary': 'fa-chevron-down']"></i>
</button>
@ -133,7 +132,7 @@
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree" @click="toggleAccordion(2)">
<span class="text-white h5">
<i class="far fa-sparkles mr-2 text-muted"></i>
Supported Features
{{ $t('landing.supported_features') }}
</span>
<i class="far" :class="[ accordionTab === 2 ? 'fa-chevron-left text-primary': 'fa-chevron-down']"></i>
</button>
@ -142,44 +141,43 @@
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordion">
<div class="card-body card-features">
<div class="card-features-cloud">
<div class="badge badge-success"><i class="far fa-check-circle"></i> Photo Posts</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Photo Albums</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Photo Filters</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Collections</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Comments</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Hashtags</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Likes</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Notifications</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> Shares</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.photo_posts') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.photo_albums') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.photo_filters') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.collections') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.comments') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.hashtags') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.likes') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.notifications') }}</div>
<div class="badge badge-success"><i class="far fa-check-circle"></i> {{ $t('landing.features.shares') }}</div>
</div>
<div class="py-3">
<p class="lead">
<span>You can share up to <span class="font-weight-bold">{{ config.uploader.album_limit }}</span> photos*</span>
<span v-if="config.features.video">or <span class="font-weight-bold">1</span> video*</span>
<span>at a time with a max caption length of <span class="font-weight-bold">{{ config.uploader.max_caption_length }}</span> characters.</span>
<span v-if="config.features.video" v-html="$t('landing.features.share_up_to_n_photos_videos', {num_photos: config.uploader.album_limit, num_video: 1, caption_length: config.uploader.max_caption_length})"></span>
<span v-else v-html="$t('landing.features.share_up_to_n_photos', {num_photos: config.uploader.album_limit, caption_length: config.uploader.max_caption_length})"></span>
</p>
<p class="small opacity-50">* - Maximum file size is {{ formatBytes(config.uploader.max_photo_size) }}</p>
<p class="small opacity-50">{{ $t('landing.features.file_size', {max_size: formatBytes(config.uploader.max_photo_size)}) }}</p>
</div>
<div class="list-group list-group-features">
<div class="list-group-item bg-bluegray-900">
<div class="feature-label">Federation</div>
<div class="feature-label">{{ $t('landing.features.federation') }}</div>
<i class="far fa-lg" :class="[config.features.federation ? 'fa-check-circle' : 'fa-times-circle' ]"></i>
</div>
<div class="list-group-item bg-bluegray-900">
<div class="feature-label">Mobile App Support</div>
<div class="feature-label">{{ $t('landing.features.mobile_app') }}</div>
<i class="far fa-lg" :class="[config.features.mobile_apis ? 'fa-check-circle' : 'fa-times-circle' ]"></i>
</div>
<div class="list-group-item bg-bluegray-900">
<div class="feature-label">Stories</div>
<div class="feature-label">{{ $t('landing.features.stories') }}</div>
<i class="far fa-lg" :class="[config.features.stories ? 'fa-check-circle' : 'fa-times-circle' ]"></i>
</div>
<div class="list-group-item bg-bluegray-900">
<div class="feature-label">Videos</div>
<div class="feature-label">{{ $t('landing.features.videos') }}</div>
<i class="far fa-lg" :class="[config.features.video ? 'fa-check-circle' : 'fa-times-circle' ]"></i>
</div>
</div>

@ -14,7 +14,7 @@
<p class="font-weight-bold mb-0">
<a v-if="range === 'daily'" :href="post.url" class="text-bluegray-500" target="_blank">Posted {{ timeago(post.created_at) }} ago</a>
<a v-else :href="post.url" class="text-bluegray-400" target="_blank">View Post</a>
<a v-else :href="post.url" class="text-bluegray-400" target="_blank">{{ $t('menu.viewPost') }}</a>
</p>
</div>
</div>

@ -1,21 +1,21 @@
<template>
<div class="footer-component">
<div class="footer-component-links">
<a href="/site/help">Help</a>
<a href="/site/help">{{ $t('navmenu.help') }}</a>
<div class="spacer">·</div>
<a href="/site/terms">Terms</a>
<a href="/site/terms">{{ $t('navmenu.terms') }}</a>
<div class="spacer">·</div>
<a href="/site/privacy">Privacy</a>
<a href="/site/privacy">{{ $t('navmenu.privacy') }}</a>
<div class="spacer">·</div>
<a v-if="config.show_legal_notice_link" href="/site/legal-notice">Legal Notice</a>
<a v-if="config.show_legal_notice_link" href="/site/legal-notice">{{ $t('navmenu.legalNotice') }}</a>
<div v-if="config.show_legal_notice_link" class="spacer">·</div>
<a href="https://pixelfed.org/mobile-apps" target="_blank">Mobile Apps</a>
<a href="https://pixelfed.org/mobile-apps" target="_blank">{{ $t('navmenu.mobileApps') }}</a>
</div>
<div class="footer-component-attribution">
<div><span>© {{ getYear() }} {{ config.domain }}</span></div>
<div class="spacer">·</div>
<div><a href="https://pixelfed.org" class="text-bluegray-500 font-weight-bold">Powered by Pixelfed</a></div>
<div><a href="https://pixelfed.org" class="text-bluegray-500 font-weight-bold">{{ $t('powered_by_pixelfed') }}</a></div>
<div class="spacer">·</div>
<div><span>v{{ config.version }}</span></div>
</div>

@ -8,9 +8,9 @@
<ul class="navbar-nav mr-auto">
</ul>
<div class="my-2 my-lg-0">
<a class="btn btn-outline-light btn-sm rounded-pill font-weight-bold px-4" href="/login">Login</a>
<a class="btn btn-outline-light btn-sm rounded-pill font-weight-bold px-4" href="/login">{{ $t('landing.login') }}</a>
<a v-if="config.open_registration || config.curated_onboarding" class="ml-2 btn btn-primary btn-primary-alt btn-sm rounded-pill font-weight-bold px-4" :href="regLink">Sign up</a>
<a v-if="config.open_registration || config.curated_onboarding" class="ml-2 btn btn-primary btn-primary-alt btn-sm rounded-pill font-weight-bold px-4" :href="regLink">{{ $t('landing.signup') }}</a>
</div>
</div>
</nav>

@ -171,7 +171,7 @@
<div class="form-group row mb-0">
<div class="col-md-12">
<label for="email" class="small font-weight-bold text-muted mb-0">{{ __('auth.emailAddress') }}</label>
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" placeholder="{{ __('Email') }}" required autofocus>
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" placeholder="{{ __('auth.email') }}" required autofocus>
@if ($errors->has('email'))
<span class="invalid-feedback">
@ -181,7 +181,7 @@
<div class="help-text small text-right mb-0">
<a href="{{ route('email.forgot') }}" class="small text-muted font-weight-bold">
{{ __('Forgot Email') }}
{{ __('auth.forgotEmail') }}
</a>
</div>
</div>
@ -190,7 +190,7 @@
<div class="form-group row mb-0">
<div class="col-md-12">
<label for="password" class="small font-weight-bold text-muted mb-0">{{ __('auth.password') }}</label>
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('Password') }}" required>
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('auth.password') }}" required>
@if ($errors->has('password'))
<span class="invalid-feedback">
@ -348,4 +348,4 @@
});
})();
</script>
@endpush
@endpush

@ -41,7 +41,7 @@
<noscript>
<div class="container">
<h1 class="pt-5 text-center">Pixelfed</h1>
<p class="pt-2 text-center lead">Please enable javascript to view this content.</p>
<p class="pt-2 text-center lead">{{__('web.common.javascript')}}</p>
</div>
</noscript>
<navbar></navbar>

@ -1,9 +1,15 @@
@extends('layouts.app')
@section('content')
<div class="container mt-5">
<div class="container mt-5">
<div class="col-12">
<p class="font-weight-bold text-lighter text-uppercase">Privacy Policy</p>
<p class="font-weight-bold text-lighter text-uppercase">
@if($page && $page->title)
{!! $page->title !!}
@else
Privacy Policy
@endif
</p>
<div class="card border shadow-none">
<div class="card-body p-md-5 text-justify mx-md-3">
@if($page && $page['content'])
@ -91,5 +97,5 @@
</div>
@endsection
@push('meta')
<meta property="og:description" content="Privacy Policy">
<meta property="og:description" content="@if($page && $page->title) {!! $page->title !!} @else Privacy Policy @endif">
@endpush

@ -1,9 +1,15 @@
@extends('layouts.app')
@section('content')
<div class="container mt-5">
<div class="container mt-5">
<div class="col-12">
<p class="font-weight-bold text-lighter text-uppercase">Terms of Use</p>
<p class="font-weight-bold text-lighter text-uppercase">
@if($page && $page->title)
{!! $page->title !!}
@else
Terms of Use
@endif
</p>
<div class="card border shadow-none">
<div class="card-body p-md-5 text-justify mx-md-3">
@if($page && $page['content'])
@ -51,5 +57,5 @@
@endsection
@push('meta')
<meta property="og:description" content="Terms of Use">
<meta property="og:description" content="@if($page && $page->title) {!! $page->title !!} @else Terms of Use @endif">
@endpush

Loading…
Cancel
Save