diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f99bfb6d..123a7d5c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -117,6 +117,7 @@ - Update FollowPipeline, fix followers_count and following_count counters ([6153b620](https://github.com/pixelfed/pixelfed/commit/6153b620)) - Update ApiV1Controller, fix media update. Fixes #4196 ([f3164650](https://github.com/pixelfed/pixelfed/commit/f3164650)) - Update SearchApiV2Service, fix hashtag search. ([1992b5bc](https://github.com/pixelfed/pixelfed/commit/1992b5bc)) +- Update ApiV1Controller, allow optional mastodonMode on v2/search endpoint. ([f4a69631](https://github.com/pixelfed/pixelfed/commit/f4a69631)) - ([](https://github.com/pixelfed/pixelfed/commit/)) ## [v0.11.4 (2022-10-04)](https://github.com/pixelfed/pixelfed/compare/v0.11.3...v0.11.4) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 9e1c5e733..3ed1cd40a 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -479,6 +479,12 @@ class AccountController extends Controller if($trustDevice == true) { $request->session()->put('sudoTrustDevice', 1); } + + //Fix wrong scheme when using reverse proxy + if(!str_contains($next, 'https') && config('instance.force_https_urls', true)) { + $next = Str::of($next)->replace('http', 'https')->toString(); + } + return redirect($next); } else { return redirect() diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 32b27939d..308290459 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -42,13 +42,13 @@ use App\Models\CustomEmoji; class AdminController extends Controller { - use AdminReportController, + use AdminReportController, AdminDirectoryController, AdminDiscoverController, AdminHashtagsController, // AdminGroupsController, - AdminMediaController, - AdminSettingsController, + AdminMediaController, + AdminSettingsController, AdminInstanceController, // AdminStorageController, AdminUserController; @@ -523,7 +523,7 @@ class AdminController extends Controller ->whereShortcode($request->input('shortcode')); }) ], - 'emoji' => 'required|file|mimetypes:jpg,png|max:' . (config('federation.custom_emoji.max_size') / 1000) + 'emoji' => 'required|file|mimes:jpg,png|max:' . (config('federation.custom_emoji.max_size') / 1000) ]); $emoji = new CustomEmoji; diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index 85f5f55ae..b4f1817a7 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -3172,7 +3172,8 @@ class ApiV1Controller extends Controller 'following' => 'nullable' ]); - return $this->json(SearchApiV2Service::query($request, true)); + $mastodonMode = !$request->has('_pe'); + return $this->json(SearchApiV2Service::query($request, $mastodonMode)); } /** diff --git a/app/Services/SearchApiV2Service.php b/app/Services/SearchApiV2Service.php index 64c8303e7..a6826b77e 100644 --- a/app/Services/SearchApiV2Service.php +++ b/app/Services/SearchApiV2Service.php @@ -131,6 +131,7 @@ class SearchApiV2Service return $q->where('can_search', true) ->orWhereNull('can_search'); }) + ->orderByDesc('cached_count') ->offset($offset) ->limit($limit) ->get() diff --git a/app/Util/Site/Nodeinfo.php b/app/Util/Site/Nodeinfo.php index 3cf3b1568..166b6bc6a 100644 --- a/app/Util/Site/Nodeinfo.php +++ b/app/Util/Site/Nodeinfo.php @@ -56,10 +56,10 @@ class Nodeinfo { 'version' => config('pixelfed.version'), ], 'usage' => [ - 'localPosts' => $statuses, + 'localPosts' => (int) $statuses, 'localComments' => 0, 'users' => [ - 'total' => $users, + 'total' => (int) $users, 'activeHalfyear' => (int) $activeHalfYear, 'activeMonth' => (int) $activeMonth, ], diff --git a/composer.lock b/composer.lock index 265081a19..595cae626 100644 --- a/composer.lock +++ b/composer.lock @@ -114,16 +114,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.261.1", + "version": "3.261.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "cb7f6d7ca313bfd3135ff23c49d734c1a7616d6a" + "reference": "31bc1e2a528c0f0881e4366d8ee0fa729cd42b00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/cb7f6d7ca313bfd3135ff23c49d734c1a7616d6a", - "reference": "cb7f6d7ca313bfd3135ff23c49d734c1a7616d6a", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/31bc1e2a528c0f0881e4366d8ee0fa729cd42b00", + "reference": "31bc1e2a528c0f0881e4366d8ee0fa729cd42b00", "shasum": "" }, "require": { @@ -202,9 +202,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.261.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.261.4" }, - "time": "2023-02-28T19:22:11+00:00" + "time": "2023-03-03T19:22:53+00:00" }, { "name": "bacon/bacon-qr-code", @@ -538,21 +538,24 @@ }, { "name": "dasprid/enum", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/DASPRiD/Enum.git", - "reference": "5abf82f213618696dda8e3bf6f64dd042d8542b2" + "reference": "8e6b6ea76eabbf19ea2bf5b67b98e1860474012f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/5abf82f213618696dda8e3bf6f64dd042d8542b2", - "reference": "5abf82f213618696dda8e3bf6f64dd042d8542b2", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8e6b6ea76eabbf19ea2bf5b67b98e1860474012f", + "reference": "8e6b6ea76eabbf19ea2bf5b67b98e1860474012f", "shasum": "" }, + "require": { + "php": ">=7.1 <9.0" + }, "require-dev": { "phpunit/phpunit": "^7 | ^8 | ^9", - "squizlabs/php_codesniffer": "^3.4" + "squizlabs/php_codesniffer": "*" }, "type": "library", "autoload": { @@ -579,9 +582,9 @@ ], "support": { "issues": "https://github.com/DASPRiD/Enum/issues", - "source": "https://github.com/DASPRiD/Enum/tree/1.0.3" + "source": "https://github.com/DASPRiD/Enum/tree/1.0.4" }, - "time": "2020-10-02T16:03:48+00:00" + "time": "2023-03-01T18:44:03+00:00" }, { "name": "defuse/php-encryption", @@ -5521,33 +5524,27 @@ }, { "name": "predis/predis", - "version": "v2.1.1", + "version": "v2.1.2", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "c5b60884e89630f9518a7919f0566db438f0fc9a" + "reference": "a77a43913a74f9331f637bb12867eb8e274814e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/c5b60884e89630f9518a7919f0566db438f0fc9a", - "reference": "c5b60884e89630f9518a7919f0566db438f0fc9a", + "url": "https://api.github.com/repos/predis/predis/zipball/a77a43913a74f9331f637bb12867eb8e274814e5", + "reference": "a77a43913a74f9331f637bb12867eb8e274814e5", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "friendsofphp/php-cs-fixer": "^3.3", + "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^8.0 || ~9.4.4" }, - "suggest": { - "ext-curl": "Allows access to Webdis when paired with phpiredis" - }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.0-dev" - } - }, "autoload": { "psr-4": { "Predis\\": "src/" @@ -5562,12 +5559,6 @@ "name": "Till Krüss", "homepage": "https://till.im", "role": "Maintainer" - }, - { - "name": "Daniele Alessandri", - "email": "suppakilla@gmail.com", - "homepage": "http://clorophilla.net", - "role": "Creator" } ], "description": "A flexible and feature-complete Redis client for PHP.", @@ -5579,7 +5570,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v2.1.1" + "source": "https://github.com/predis/predis/tree/v2.1.2" }, "funding": [ { @@ -5587,7 +5578,7 @@ "type": "github" } ], - "time": "2023-01-17T20:57:35+00:00" + "time": "2023-03-02T18:32:04+00:00" }, { "name": "psr/cache", @@ -10899,16 +10890,16 @@ "packages-dev": [ { "name": "brianium/paratest", - "version": "v6.9.0", + "version": "v6.9.1", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "6f90dcaf14077a64c966936584b301dd4d01a440" + "reference": "51691208db882922c55d6c465be3e7d95028c449" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/6f90dcaf14077a64c966936584b301dd4d01a440", - "reference": "6f90dcaf14077a64c966936584b301dd4d01a440", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/51691208db882922c55d6c465be3e7d95028c449", + "reference": "51691208db882922c55d6c465be3e7d95028c449", "shasum": "" }, "require": { @@ -10919,22 +10910,22 @@ "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", "jean85/pretty-package-versions": "^2.0.5", "php": "^7.3 || ^8.0", - "phpunit/php-code-coverage": "^9.2.24", + "phpunit/php-code-coverage": "^9.2.25", "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-timer": "^5.0.3", - "phpunit/phpunit": "^9.6.3", - "sebastian/environment": "^5.1.4", - "symfony/console": "^5.4.16 || ^6.2.5", - "symfony/process": "^5.4.11 || ^6.2.5" + "phpunit/phpunit": "^9.6.4", + "sebastian/environment": "^5.1.5", + "symfony/console": "^5.4.21 || ^6.2.7", + "symfony/process": "^5.4.21 || ^6.2.7" }, "require-dev": { "doctrine/coding-standard": "^10.0.0", "ext-pcov": "*", "ext-posix": "*", "infection/infection": "^0.26.19", - "squizlabs/php_codesniffer": "^3.7.1", - "symfony/filesystem": "^5.4.13 || ^6.2.5", - "vimeo/psalm": "^5.6" + "squizlabs/php_codesniffer": "^3.7.2", + "symfony/filesystem": "^5.4.21 || ^6.2.7", + "vimeo/psalm": "^5.7.7" }, "bin": [ "bin/paratest", @@ -10975,7 +10966,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v6.9.0" + "source": "https://github.com/paratestphp/paratest/tree/v6.9.1" }, "funding": [ { @@ -10987,7 +10978,7 @@ "type": "paypal" } ], - "time": "2023-02-07T10:03:32+00:00" + "time": "2023-03-03T09:35:17+00:00" }, { "name": "doctrine/instantiator", @@ -11190,16 +11181,16 @@ }, { "name": "filp/whoops", - "version": "2.14.6", + "version": "2.15.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "f7948baaa0330277c729714910336383286305da" + "reference": "3e8aebbca9f0ae6f618962c4ad514077fd365ab3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da", - "reference": "f7948baaa0330277c729714910336383286305da", + "url": "https://api.github.com/repos/filp/whoops/zipball/3e8aebbca9f0ae6f618962c4ad514077fd365ab3", + "reference": "3e8aebbca9f0ae6f618962c4ad514077fd365ab3", "shasum": "" }, "require": { @@ -11249,7 +11240,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.6" + "source": "https://github.com/filp/whoops/tree/2.15.0" }, "funding": [ { @@ -11257,7 +11248,7 @@ "type": "github" } ], - "time": "2022-11-02T16:23:29+00:00" + "time": "2023-03-03T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", diff --git a/config/backup.php b/config/backup.php index f4a65df43..8a6c07a7c 100644 --- a/config/backup.php +++ b/config/backup.php @@ -28,6 +28,7 @@ return [ */ 'exclude' => [ base_path('.git'), + base_path('storage/app/public/cache'), base_path('vendor'), base_path('node_modules'), ], diff --git a/package-lock.json b/package-lock.json index 9ab7b0e4b..71d7e5aec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2048,9 +2048,9 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" }, "node_modules/@types/node": { - "version": "18.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", - "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==" + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -3046,9 +3046,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001458", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", - "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==", + "version": "1.0.30001460", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz", + "integrity": "sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==", "funding": [ { "type": "opencollective", @@ -4053,9 +4053,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.314", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.314.tgz", - "integrity": "sha512-+3RmNVx9hZLlc0gW//4yep0K5SYKmIvB5DXg1Yg6varsuAHlHwTeqeygfS8DWwLCsNOWrgj+p9qgM5WYjw1lXQ==" + "version": "1.4.320", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz", + "integrity": "sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -5714,9 +5714,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "engines": { "node": ">=10" } @@ -7278,9 +7278,9 @@ } }, "node_modules/pusher-js/node_modules/@types/node": { - "version": "14.18.36", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", - "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", "dev": true }, "node_modules/qs": { @@ -10860,9 +10860,9 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" }, "@types/node": { - "version": "18.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", - "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==" + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==" }, "@types/parse-json": { "version": "4.0.0", @@ -11684,9 +11684,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001458", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", - "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==" + "version": "1.0.30001460", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz", + "integrity": "sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==" }, "chalk": { "version": "4.1.2", @@ -12459,9 +12459,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.314", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.314.tgz", - "integrity": "sha512-+3RmNVx9hZLlc0gW//4yep0K5SYKmIvB5DXg1Yg6varsuAHlHwTeqeygfS8DWwLCsNOWrgj+p9qgM5WYjw1lXQ==" + "version": "1.4.320", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz", + "integrity": "sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==" }, "elliptic": { "version": "6.5.4", @@ -13688,9 +13688,9 @@ } }, "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" }, "lines-and-columns": { "version": "1.2.4", @@ -14782,9 +14782,9 @@ }, "dependencies": { "@types/node": { - "version": "14.18.36", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", - "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", "dev": true } } diff --git a/public/js/spa.js b/public/js/spa.js index cc7348084..7eb9a75f4 100644 Binary files a/public/js/spa.js and b/public/js/spa.js differ diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 02c497586..673daa84b 100644 Binary files a/public/mix-manifest.json and b/public/mix-manifest.json differ diff --git a/resources/lang/sv/web.php b/resources/lang/sv/web.php index 3844f847a..03b9891d9 100644 --- a/resources/lang/sv/web.php +++ b/resources/lang/sv/web.php @@ -3,184 +3,184 @@ return [ 'common' => [ - 'comment' => 'Comment', - 'commented' => 'Commented', - 'comments' => 'Comments', - 'like' => 'Like', - 'liked' => 'Liked', - 'likes' => 'Likes', - 'share' => 'Share', - 'shared' => 'Shared', - 'shares' => 'Shares', - 'unshare' => 'Unshare', + 'comment' => 'Kommentera', + 'commented' => 'Kommenterade', + 'comments' => 'Kommentarer', + 'like' => 'Gilla', + 'liked' => 'Gillade', + 'likes' => 'Gillar-markeringar', + 'share' => 'Dela', + 'shared' => 'Delade', + 'shares' => 'Delningar', + 'unshare' => 'Sluta dela', - 'cancel' => 'Cancel', - 'copyLink' => 'Copy Link', - 'delete' => 'Delete', - 'error' => 'Error', - 'errorMsg' => 'Something went wrong. Please try again later.', + 'cancel' => 'Avbryt', + 'copyLink' => 'Kopiera länk', + 'delete' => 'Ta bort', + 'error' => 'Fel', + 'errorMsg' => 'Något gick fel. Försök igen senare', 'oops' => 'Oops!', - 'other' => 'Other', - 'readMore' => 'Read more', - 'success' => 'Success', + 'other' => 'Andra', + 'readMore' => 'Läs mer', + 'success' => 'Lyckades', - 'sensitive' => 'Sensitive', - 'sensitiveContent' => 'Sensitive Content', - 'sensitiveContentWarning' => 'This post may contain sensitive content', + 'sensitive' => 'Känsligt', + 'sensitiveContent' => 'Känsligt innehåll', + 'sensitiveContentWarning' => 'TDet här inlägget kan innehålla känsligt innehåll', ], 'site' => [ - 'terms' => 'Terms of Use', - 'privacy' => 'Privacy Policy', + 'terms' => 'Villkor', + 'privacy' => 'Integritetspolicy', ], 'navmenu' => [ - 'search' => 'Search', - 'admin' => 'Admin Dashboard', + 'search' => 'Sök', + 'admin' => 'Admin Panel', // Timelines - 'homeFeed' => 'Home Feed', - 'localFeed' => 'Local Feed', - 'globalFeed' => 'Global Feed', + 'homeFeed' => 'Hemflödet', + 'localFeed' => 'Lokala flödet', + 'globalFeed' => 'Globala flödet', // Core features - 'discover' => 'Discover', - 'directMessages' => 'Direct Messages', - 'notifications' => 'Notifications', - 'groups' => 'Groups', + 'discover' => 'Utforska', + 'directMessages' => 'Direktmeddelanden', + 'notifications' => 'Notifikationer', + 'groups' => 'Grupper', 'stories' => 'Stories', // Self links - 'profile' => 'Profile', + 'profile' => 'Profil', 'drive' => 'Drive', - 'settings' => 'Settings', - 'compose' => 'Create New', - 'logout' => 'Logout', + 'settings' => 'Inställningar', + 'compose' => 'Skapa nytt', + 'logout' => 'Logga ut', // Nav footer - 'about' => 'About', - 'help' => 'Help', - 'language' => 'Language', - 'privacy' => 'Privacy', - 'terms' => 'Terms', + 'about' => 'Om', + 'help' => 'Hjälp', + 'language' => 'Språk', + 'privacy' => 'Integritet', + 'terms' => 'Vilkor', // Temporary links - 'backToPreviousDesign' => 'Go back to previous design' + 'backToPreviousDesign' => 'Gå tillbaka till den gamla designen' ], 'directMessages' => [ - 'inbox' => 'Inbox', - 'sent' => 'Sent', - 'requests' => 'Requests' + 'inbox' => 'Inkorg', + 'sent' => 'Skickat', + 'requests' => 'Förfrågningar' ], 'notifications' => [ - 'liked' => 'liked your', - 'commented' => 'commented on your', - 'reacted' => 'reacted to your', - 'shared' => 'shared your', - 'tagged' => 'tagged you in a', + 'liked' => 'gillade ditt', + 'commented' => 'kommenterade på ditt', + 'reacted' => 'reagerade på ditt', + 'shared' => 'delade ditt', + 'tagged' => 'taggade dig i en', - 'updatedA' => 'updated a', - 'sentA' => 'sent a', + 'updatedA' => 'uppdaterade en', + 'sentA' => 'skickade en', - 'followed' => 'followed', - 'mentioned' => 'mentioned', - 'you' => 'you', + 'followed' => 'följer', + 'mentioned' => 'nämnde', + 'you' => 'dig', - 'yourApplication' => 'Your application to join', - 'applicationApproved' => 'was approved!', - 'applicationRejected' => 'was rejected. You can re-apply to join in 6 months.', + 'yourApplication' => 'Din ansökan att gå med', + 'applicationApproved' => 'blev godkänd!', + 'applicationRejected' => 'blev nekad. Du kan ansöka igen om 6 månader.', 'dm' => 'dm', - 'groupPost' => 'group post', + 'groupPost' => 'grupp inlägg', 'modlog' => 'modlog', - 'post' => 'post', + 'post' => 'inlägg', 'story' => 'story', ], 'post' => [ - 'shareToFollowers' => 'Share to followers', - 'shareToOther' => 'Share to other', - 'noLikes' => 'No likes yet', - 'uploading' => 'Uploading', + 'shareToFollowers' => 'Dela till följare', + 'shareToOther' => 'Dela till andra', + 'noLikes' => 'Inga gilla-markeringar än', + 'uploading' => 'Laddar upp', ], 'profile' => [ - 'posts' => 'Posts', - 'followers' => 'Followers', - 'following' => 'Following', + 'posts' => 'Inlägg', + 'followers' => 'Följare', + 'following' => 'Följer', 'admin' => 'Admin', - 'collections' => 'Collections', - 'follow' => 'Follow', - 'unfollow' => 'Unfollow', - 'editProfile' => 'Edit Profile', - 'followRequested' => 'Follow Requested', - 'joined' => 'Joined', + 'collections' => 'Kollektioner', + 'follow' => 'Följ', + 'unfollow' => 'Sluta följa', + 'editProfile' => 'Redigera profil', + 'followRequested' => 'Följförfrågan skickad', + 'joined' => 'Gick med', - 'emptyCollections' => 'We can\'t seem to find any collections', - 'emptyPosts' => 'We can\'t seem to find any posts', + 'emptyCollections' => 'Vi verkar inte hitta några kollektioner', + 'emptyPosts' => 'Vi verkar inte hitta några inlägg', ], 'menu' => [ - 'viewPost' => 'View Post', - 'viewProfile' => 'View Profile', - 'moderationTools' => 'Moderation Tools', - 'report' => 'Report', - 'archive' => 'Archive', - 'unarchive' => 'Unarchive', - 'embed' => 'Embed', + 'viewPost' => 'Visa inlägg', + 'viewProfile' => 'Visa profil', + 'moderationTools' => 'Modereringsverktyg', + 'report' => 'Rapportera', + 'archive' => 'Arkivera', + 'unarchive' => 'avarkivera', + 'embed' => 'Bädda in', - 'selectOneOption' => 'Select one of the following options', - 'unlistFromTimelines' => 'Unlist from Timelines', - 'addCW' => 'Add Content Warning', - 'removeCW' => 'Remove Content Warning', - 'markAsSpammer' => 'Mark as Spammer', - 'markAsSpammerText' => 'Unlist + CW existing and future posts', + 'selectOneOption' => 'Välj ett av följande alternativ', + 'unlistFromTimelines' => 'Avlista från tidslinjer', + 'addCW' => 'Lägg till känslighetsvarning', + 'removeCW' => 'Ta bort känslighetsvarning', + 'markAsSpammer' => 'Markera som spammare', + 'markAsSpammerText' => 'Avlista + känslighetsmarkera nuvarande och framtida inlägg', 'spam' => 'Spam', - 'sensitive' => 'Sensitive Content', - 'abusive' => 'Abusive or Harmful', - 'underageAccount' => 'Underage Account', - 'copyrightInfringement' => 'Copyright Infringement', - 'impersonation' => 'Impersonation', - 'scamOrFraud' => 'Scam or Fraud', - 'confirmReport' => 'Confirm Report', - 'confirmReportText' => 'Are you sure you want to report this post?', - 'reportSent' => 'Report Sent!', - 'reportSentText' => 'We have successfully received your report.', - 'reportSentError' => 'There was an issue reporting this post.', + 'sensitive' => 'Känsligt innehåll', + 'abusive' => 'Missbruk eller skadligt', + 'underageAccount' => 'Minderårigt konto', + 'copyrightInfringement' => 'Upphovsrättsintrång', + 'impersonation' => 'Personimitation', + 'scamOrFraud' => 'Bedrägeri', + 'confirmReport' => 'Bekräfta anmälan', + 'confirmReportText' => 'Är du säker att du vill anmäla detta inlägg?', + 'reportSent' => 'Anmälan skickad!', + 'reportSentText' => 'Vi har fått emot din anmälan till detta inlägg.', + 'reportSentError' => 'Något gick fel när detta inlägget skulle anmälas.', - 'modAddCWConfirm' => 'Are you sure you want to add a content warning to this post?', - 'modCWSuccess' => 'Successfully added content warning', - 'modRemoveCWConfirm' => 'Are you sure you want to remove the content warning on this post?', - 'modRemoveCWSuccess' => 'Successfully removed content warning', - 'modUnlistConfirm' => 'Are you sure you want to unlist this post?', - 'modUnlistSuccess' => 'Successfully unlisted post', - 'modMarkAsSpammerConfirm' => 'Are you sure you want to mark this user as a spammer? All existing and future posts will be unlisted on timelines and a content warning will be applied.', - 'modMarkAsSpammerSuccess' => 'Successfully marked account as spammer', + 'modAddCWConfirm' => 'Är du säker att du vill lägga till känslighetsvarning på detta inlägget?', + 'modCWSuccess' => 'Lade till känslighetsvarning', + 'modRemoveCWConfirm' => 'Är du säker att du vill ta bort känslighetsvarningen på detta inlägget?', + 'modRemoveCWSuccess' => 'Tog bort känsloghetsvarning', + 'modUnlistConfirm' => 'Är du säker att du vill avlista detta inlägget?', + 'modUnlistSuccess' => 'Avlistade inlägget', + 'modMarkAsSpammerConfirm' => 'Är du säker att du vill markera detta konto som spammare? Alla nuvarande och framtida inlägg kommer avlistas och en känslighetsvarning kommer läggas till på inläggen', + 'modMarkAsSpammerSuccess' => 'Markerade kontot som spammare', - 'toFollowers' => 'to Followers', + 'toFollowers' => 'till följare', - 'showCaption' => 'Show Caption', - 'showLikes' => 'Show Likes', - 'compactMode' => 'Compact Mode', - 'embedConfirmText' => 'By using this embed, you agree to our', + 'showCaption' => 'Visa bildtext', + 'showLikes' => 'Visa gilla-markeringar', + 'compactMode' => 'Kompaktläge', + 'embedConfirmText' => 'Genom att använda denna inbäddning godkänner du vår', - 'deletePostConfirm' => 'Are you sure you want to delete this post?', - 'archivePostConfirm' => 'Are you sure you want to archive this post?', - 'unarchivePostConfirm' => 'Are you sure you want to unarchive this post?', + 'deletePostConfirm' => 'Är du säker att du vill ta bort detta inlägg?', + 'archivePostConfirm' => 'Är du säker att du vill arkivera detta inlägg?', + 'unarchivePostConfirm' => 'Är du säker att du vill avarkivera detta inlägg?', ], 'story' => [ - 'add' => 'Add Story' + 'add' => 'Lägg till Story' ], 'timeline' => [ - 'peopleYouMayKnow' => 'People you may know' + 'peopleYouMayKnow' => 'Personer du kanske känner' ], 'hashtags' => [ - 'emptyFeed' => 'We can\'t seem to find any posts for this hashtag' + 'emptyFeed' => 'Vi kan inte hitta några inlägg med den hashtagen' ], ];