diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 37f5c2f42..9fa0b5242 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -230,5 +230,15 @@ class AppServiceProvider extends ServiceProvider
$this->app->bind(UserOidcService::class, function () {
return UserOidcService::build();
});
+
+ // Swap the translation loader so empty (untranslated) strings are
+ // dropped at load time. This lets Laravel fall back to the fallback
+ // locale for partially-translated locales instead of rendering blanks.
+ $this->app->extend('translation.loader', function ($loader, $app) {
+ return new \App\Util\Localization\EmptyStrippingFileLoader(
+ $app['files'],
+ $app['path.lang']
+ );
+ });
}
}
diff --git a/app/Util/Localization/EmptyStrippingFileLoader.php b/app/Util/Localization/EmptyStrippingFileLoader.php
new file mode 100644
index 000000000..753ede44f
--- /dev/null
+++ b/app/Util/Localization/EmptyStrippingFileLoader.php
@@ -0,0 +1,56 @@
+stripEmptyStrings($messages);
+ }
+
+ /**
+ * Recursively remove empty (or whitespace-only) string values.
+ */
+ protected function stripEmptyStrings(array $messages): array
+ {
+ $result = [];
+
+ foreach ($messages as $key => $value) {
+ if (is_array($value)) {
+ $result[$key] = $this->stripEmptyStrings($value);
+ } elseif (is_string($value)) {
+ if (trim($value) !== '') {
+ $result[$key] = $value;
+ }
+ } else {
+ $result[$key] = $value;
+ }
+ }
+
+ return $result;
+ }
+}
diff --git a/lang/locales.json b/lang/locales.json
index 766932ab9..0f501bf63 100644
--- a/lang/locales.json
+++ b/lang/locales.json
@@ -4,21 +4,11 @@
"name": "Afrikaans (South Africa)",
"nativeName": "Afrikaans (Suid-Afrika)"
},
- {
- "code": "sq-AL",
- "name": "Albanian (Albania)",
- "nativeName": "shqip (Shqipëri)"
- },
{
"code": "ar-SA",
"name": "Arabic (Saudi Arabia)",
"nativeName": "العربية (المملكة العربية السعودية)"
},
- {
- "code": "hy-AM",
- "name": "Armenian (Armenia)",
- "nativeName": "հայերեն (Հայաստան)"
- },
{
"code": "bn-BD",
"name": "Bangla (Bangladesh)",
@@ -34,11 +24,6 @@
"name": "Bosnian (Bosnia & Herzegovina)",
"nativeName": "bosanski (Bosna i Hercegovina)"
},
- {
- "code": "bg-BG",
- "name": "Bulgarian (Bulgaria)",
- "nativeName": "български (България)"
- },
{
"code": "ca-ES",
"name": "Catalan (Spain)",
@@ -54,11 +39,6 @@
"name": "Chinese (Taiwan)",
"nativeName": "中文(台灣)"
},
- {
- "code": "syc-SY",
- "name": "Classical Syriac (Syria)",
- "nativeName": "Classical Syriac (Syria)"
- },
{
"code": "hr-HR",
"name": "Croatian (Croatia)",
@@ -79,11 +59,6 @@
"name": "Dutch (Netherlands)",
"nativeName": "Nederlands (Nederland)"
},
- {
- "code": "en-PT",
- "name": "English (Portugal)",
- "nativeName": "English (Portugal)"
- },
{
"code": "en-US",
"name": "English (United States)",
@@ -94,11 +69,6 @@
"name": "Esperanto (Uruguay)",
"nativeName": "Esperanto (Urugvajo)"
},
- {
- "code": "fil-PH",
- "name": "Filipino (Philippines)",
- "nativeName": "Filipino (Pilipinas)"
- },
{
"code": "fi-FI",
"name": "Finnish (Finland)",
@@ -139,21 +109,11 @@
"name": "Hungarian (Hungary)",
"nativeName": "magyar (Magyarország)"
},
- {
- "code": "is-IS",
- "name": "Icelandic (Iceland)",
- "nativeName": "íslenska (Ísland)"
- },
{
"code": "id-ID",
"name": "Indonesian (Indonesia)",
"nativeName": "Indonesia (Indonesia)"
},
- {
- "code": "ga-IE",
- "name": "Irish (Ireland)",
- "nativeName": "Gaeilge (Éire)"
- },
{
"code": "it-IT",
"name": "Italian (Italy)",
@@ -164,46 +124,11 @@
"name": "Japanese (Japan)",
"nativeName": "日本語 (日本)"
},
- {
- "code": "tlh-AA",
- "name": "Klingon (AA)",
- "nativeName": "Klingon (AA)"
- },
{
"code": "ko-KR",
"name": "Korean (South Korea)",
"nativeName": "한국어(대한민국)"
},
- {
- "code": "ku-TR",
- "name": "Kurdish (Türkiye)",
- "nativeName": "kurdî (kurmancî) (Tirkîye)"
- },
- {
- "code": "lo-LA",
- "name": "Lao (Laos)",
- "nativeName": "ລາວ (ລາວ)"
- },
- {
- "code": "la-LA",
- "name": "Latin (Laos)",
- "nativeName": "Latin (Laos)"
- },
- {
- "code": "lv-LV",
- "name": "Latvian (Latvia)",
- "nativeName": "latviešu (Latvija)"
- },
- {
- "code": "lt-LT",
- "name": "Lithuanian (Lithuania)",
- "nativeName": "lietuvių (Lietuva)"
- },
- {
- "code": "lb-LU",
- "name": "Luxembourgish (Luxembourg)",
- "nativeName": "Lëtzebuergesch (Lëtzebuerg)"
- },
{
"code": "mk-MK",
"name": "Macedonian (North Macedonia)",
@@ -214,21 +139,6 @@
"name": "Malay (Malaysia)",
"nativeName": "Melayu (Malaysia)"
},
- {
- "code": "me-ME",
- "name": "me (Montenegro)",
- "nativeName": "me (Montenegro)"
- },
- {
- "code": "mn-MN",
- "name": "Mongolian (Mongolia)",
- "nativeName": "монгол (Монгол)"
- },
- {
- "code": "ne-NP",
- "name": "Nepali (Nepal)",
- "nativeName": "नेपाली (नेपाल)"
- },
{
"code": "no-NO",
"name": "Norwegian (Norway)",
@@ -239,11 +149,6 @@
"name": "Occitan (France)",
"nativeName": "occitan (França)"
},
- {
- "code": "ps-AF",
- "name": "Pashto (Afghanistan)",
- "nativeName": "پښتو (افغانستان)"
- },
{
"code": "fa-IR",
"name": "Persian (Iran)",
@@ -259,11 +164,6 @@
"name": "Portuguese (Portugal)",
"nativeName": "português (Portugal)"
},
- {
- "code": "pa-IN",
- "name": "Punjabi (India)",
- "nativeName": "ਪੰਜਾਬੀ (ਭਾਰਤ)"
- },
{
"code": "ro-RO",
"name": "Romanian (Romania)",
@@ -274,16 +174,6 @@
"name": "Russian (Russia)",
"nativeName": "русский (Россия)"
},
- {
- "code": "sc-IT",
- "name": "Sardinian (Italy)",
- "nativeName": "sardu (Itàlia)"
- },
- {
- "code": "sco-GB",
- "name": "Scots (United Kingdom)",
- "nativeName": "Scots (United Kingdom)"
- },
{
"code": "gd-GB",
"name": "Scottish Gaelic (United Kingdom)",
@@ -299,11 +189,6 @@
"name": "Slovak (Slovakia)",
"nativeName": "slovenčina (Slovensko)"
},
- {
- "code": "sl-SI",
- "name": "Slovenian (Slovenia)",
- "nativeName": "slovenščina (Slovenija)"
- },
{
"code": "es-ES",
"name": "Spanish (Spain)",
@@ -314,21 +199,11 @@
"name": "Swedish (Sweden)",
"nativeName": "svenska (Sverige)"
},
- {
- "code": "ta-IN",
- "name": "Tamil (India)",
- "nativeName": "தமிழ் (இந்தியா)"
- },
{
"code": "th-TH",
"name": "Thai (Thailand)",
"nativeName": "ไทย (ไทย)"
},
- {
- "code": "bo-BT",
- "name": "Tibetan (Bhutan)",
- "nativeName": "བོད་སྐད་ (BT)"
- },
{
"code": "tr-TR",
"name": "Turkish (Türkiye)",
@@ -339,16 +214,6 @@
"name": "Ukrainian (Ukraine)",
"nativeName": "українська (Україна)"
},
- {
- "code": "ug-CN",
- "name": "Uyghur (China)",
- "nativeName": "ئۇيغۇرچە (جۇڭگو)"
- },
- {
- "code": "vec-IT",
- "name": "Venetian (Italy)",
- "nativeName": "veneto (Italia)"
- },
{
"code": "vi-VN",
"name": "Vietnamese (Vietnam)",
diff --git a/public/_lang/bg-BG.json b/public/_lang/bg-BG.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/bg-BG.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/bo-BT.json b/public/_lang/bo-BT.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/bo-BT.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/en-PT.json b/public/_lang/en-PT.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/en-PT.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/fil-PH.json b/public/_lang/fil-PH.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/fil-PH.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/ga-IE.json b/public/_lang/ga-IE.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/ga-IE.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/hy-AM.json b/public/_lang/hy-AM.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/hy-AM.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/is-IS.json b/public/_lang/is-IS.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/is-IS.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/ku-TR.json b/public/_lang/ku-TR.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/ku-TR.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/la-LA.json b/public/_lang/la-LA.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/la-LA.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/lb-LU.json b/public/_lang/lb-LU.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/lb-LU.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/lo-LA.json b/public/_lang/lo-LA.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/lo-LA.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/locales.json b/public/_lang/locales.json
index 766932ab9..0f501bf63 100644
--- a/public/_lang/locales.json
+++ b/public/_lang/locales.json
@@ -4,21 +4,11 @@
"name": "Afrikaans (South Africa)",
"nativeName": "Afrikaans (Suid-Afrika)"
},
- {
- "code": "sq-AL",
- "name": "Albanian (Albania)",
- "nativeName": "shqip (Shqipëri)"
- },
{
"code": "ar-SA",
"name": "Arabic (Saudi Arabia)",
"nativeName": "العربية (المملكة العربية السعودية)"
},
- {
- "code": "hy-AM",
- "name": "Armenian (Armenia)",
- "nativeName": "հայերեն (Հայաստան)"
- },
{
"code": "bn-BD",
"name": "Bangla (Bangladesh)",
@@ -34,11 +24,6 @@
"name": "Bosnian (Bosnia & Herzegovina)",
"nativeName": "bosanski (Bosna i Hercegovina)"
},
- {
- "code": "bg-BG",
- "name": "Bulgarian (Bulgaria)",
- "nativeName": "български (България)"
- },
{
"code": "ca-ES",
"name": "Catalan (Spain)",
@@ -54,11 +39,6 @@
"name": "Chinese (Taiwan)",
"nativeName": "中文(台灣)"
},
- {
- "code": "syc-SY",
- "name": "Classical Syriac (Syria)",
- "nativeName": "Classical Syriac (Syria)"
- },
{
"code": "hr-HR",
"name": "Croatian (Croatia)",
@@ -79,11 +59,6 @@
"name": "Dutch (Netherlands)",
"nativeName": "Nederlands (Nederland)"
},
- {
- "code": "en-PT",
- "name": "English (Portugal)",
- "nativeName": "English (Portugal)"
- },
{
"code": "en-US",
"name": "English (United States)",
@@ -94,11 +69,6 @@
"name": "Esperanto (Uruguay)",
"nativeName": "Esperanto (Urugvajo)"
},
- {
- "code": "fil-PH",
- "name": "Filipino (Philippines)",
- "nativeName": "Filipino (Pilipinas)"
- },
{
"code": "fi-FI",
"name": "Finnish (Finland)",
@@ -139,21 +109,11 @@
"name": "Hungarian (Hungary)",
"nativeName": "magyar (Magyarország)"
},
- {
- "code": "is-IS",
- "name": "Icelandic (Iceland)",
- "nativeName": "íslenska (Ísland)"
- },
{
"code": "id-ID",
"name": "Indonesian (Indonesia)",
"nativeName": "Indonesia (Indonesia)"
},
- {
- "code": "ga-IE",
- "name": "Irish (Ireland)",
- "nativeName": "Gaeilge (Éire)"
- },
{
"code": "it-IT",
"name": "Italian (Italy)",
@@ -164,46 +124,11 @@
"name": "Japanese (Japan)",
"nativeName": "日本語 (日本)"
},
- {
- "code": "tlh-AA",
- "name": "Klingon (AA)",
- "nativeName": "Klingon (AA)"
- },
{
"code": "ko-KR",
"name": "Korean (South Korea)",
"nativeName": "한국어(대한민국)"
},
- {
- "code": "ku-TR",
- "name": "Kurdish (Türkiye)",
- "nativeName": "kurdî (kurmancî) (Tirkîye)"
- },
- {
- "code": "lo-LA",
- "name": "Lao (Laos)",
- "nativeName": "ລາວ (ລາວ)"
- },
- {
- "code": "la-LA",
- "name": "Latin (Laos)",
- "nativeName": "Latin (Laos)"
- },
- {
- "code": "lv-LV",
- "name": "Latvian (Latvia)",
- "nativeName": "latviešu (Latvija)"
- },
- {
- "code": "lt-LT",
- "name": "Lithuanian (Lithuania)",
- "nativeName": "lietuvių (Lietuva)"
- },
- {
- "code": "lb-LU",
- "name": "Luxembourgish (Luxembourg)",
- "nativeName": "Lëtzebuergesch (Lëtzebuerg)"
- },
{
"code": "mk-MK",
"name": "Macedonian (North Macedonia)",
@@ -214,21 +139,6 @@
"name": "Malay (Malaysia)",
"nativeName": "Melayu (Malaysia)"
},
- {
- "code": "me-ME",
- "name": "me (Montenegro)",
- "nativeName": "me (Montenegro)"
- },
- {
- "code": "mn-MN",
- "name": "Mongolian (Mongolia)",
- "nativeName": "монгол (Монгол)"
- },
- {
- "code": "ne-NP",
- "name": "Nepali (Nepal)",
- "nativeName": "नेपाली (नेपाल)"
- },
{
"code": "no-NO",
"name": "Norwegian (Norway)",
@@ -239,11 +149,6 @@
"name": "Occitan (France)",
"nativeName": "occitan (França)"
},
- {
- "code": "ps-AF",
- "name": "Pashto (Afghanistan)",
- "nativeName": "پښتو (افغانستان)"
- },
{
"code": "fa-IR",
"name": "Persian (Iran)",
@@ -259,11 +164,6 @@
"name": "Portuguese (Portugal)",
"nativeName": "português (Portugal)"
},
- {
- "code": "pa-IN",
- "name": "Punjabi (India)",
- "nativeName": "ਪੰਜਾਬੀ (ਭਾਰਤ)"
- },
{
"code": "ro-RO",
"name": "Romanian (Romania)",
@@ -274,16 +174,6 @@
"name": "Russian (Russia)",
"nativeName": "русский (Россия)"
},
- {
- "code": "sc-IT",
- "name": "Sardinian (Italy)",
- "nativeName": "sardu (Itàlia)"
- },
- {
- "code": "sco-GB",
- "name": "Scots (United Kingdom)",
- "nativeName": "Scots (United Kingdom)"
- },
{
"code": "gd-GB",
"name": "Scottish Gaelic (United Kingdom)",
@@ -299,11 +189,6 @@
"name": "Slovak (Slovakia)",
"nativeName": "slovenčina (Slovensko)"
},
- {
- "code": "sl-SI",
- "name": "Slovenian (Slovenia)",
- "nativeName": "slovenščina (Slovenija)"
- },
{
"code": "es-ES",
"name": "Spanish (Spain)",
@@ -314,21 +199,11 @@
"name": "Swedish (Sweden)",
"nativeName": "svenska (Sverige)"
},
- {
- "code": "ta-IN",
- "name": "Tamil (India)",
- "nativeName": "தமிழ் (இந்தியா)"
- },
{
"code": "th-TH",
"name": "Thai (Thailand)",
"nativeName": "ไทย (ไทย)"
},
- {
- "code": "bo-BT",
- "name": "Tibetan (Bhutan)",
- "nativeName": "བོད་སྐད་ (BT)"
- },
{
"code": "tr-TR",
"name": "Turkish (Türkiye)",
@@ -339,16 +214,6 @@
"name": "Ukrainian (Ukraine)",
"nativeName": "українська (Україна)"
},
- {
- "code": "ug-CN",
- "name": "Uyghur (China)",
- "nativeName": "ئۇيغۇرچە (جۇڭگو)"
- },
- {
- "code": "vec-IT",
- "name": "Venetian (Italy)",
- "nativeName": "veneto (Italia)"
- },
{
"code": "vi-VN",
"name": "Vietnamese (Vietnam)",
diff --git a/public/_lang/lt-LT.json b/public/_lang/lt-LT.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/lt-LT.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/lv-LV.json b/public/_lang/lv-LV.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/lv-LV.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/me-ME.json b/public/_lang/me-ME.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/me-ME.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/mn-MN.json b/public/_lang/mn-MN.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/mn-MN.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/ne-NP.json b/public/_lang/ne-NP.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/ne-NP.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/pa-IN.json b/public/_lang/pa-IN.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/pa-IN.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/ps-AF.json b/public/_lang/ps-AF.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/ps-AF.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/sc-IT.json b/public/_lang/sc-IT.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/sc-IT.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/sco-GB.json b/public/_lang/sco-GB.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/sco-GB.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/sl-SI.json b/public/_lang/sl-SI.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/sl-SI.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/sq-AL.json b/public/_lang/sq-AL.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/sq-AL.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/syc-SY.json b/public/_lang/syc-SY.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/syc-SY.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/ta-IN.json b/public/_lang/ta-IN.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/ta-IN.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/tlh-AA.json b/public/_lang/tlh-AA.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/tlh-AA.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/ug-CN.json b/public/_lang/ug-CN.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/ug-CN.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/_lang/vec-IT.json b/public/_lang/vec-IT.json
deleted file mode 100644
index 0637a088a..000000000
--- a/public/_lang/vec-IT.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/public/js/app.js b/public/js/app.js
index 6849e4cb7..cf3abfa9c 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -1,2 +1,2 @@
/*! For license information please see app.js.LICENSE.txt */
-(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[5847],{71751(e,o,t){"use strict";t.r(o);var i=t(64765),r=(t(74692),t(74692));t(9901),window._=t(2543),window.Popper=t(48851).default,window.pixelfed=window.pixelfed||{},window.$=t(74692),t(52754),window.axios=t(86425),window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",t(63899),window.blurhash=t(95341);var n=document.head.querySelector('meta[name="csrf-token"]');n?window.axios.defaults.headers.common["X-CSRF-TOKEN"]=n.content:console.error("CSRF token not found."),window.App=window.App||{},window.App.redirect=function(){document.querySelectorAll("a").forEach(function(e,o){var t=e.getAttribute("href");if(t&&t.length>5&&t.startsWith("https://")){var i=new URL(t);i.host!==window.location.host&&"/i/redirect"!==i.pathname&&e.setAttribute("href","/i/redirect?url="+encodeURIComponent(t))}})},window.App.boot=function(){Vue.use(i.default);var e={},o=t(12406);o.keys().forEach(function(t){var i=t.replace(/^\.\//,"").replace(/\.json$/,"");e[i]=o(t)});var r=document.querySelector("html").getAttribute("lang"),n=new i.default({locale:r,fallbackLocale:"en-US",messages:e});new Vue({el:"#content",i18n:n})},window.addEventListener("load",function(){"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js")}),window.App.util={compose:{post:function(){var e=window.location.pathname;["/","/timeline/public"].includes(e)?r("#composeModal").modal("show"):window.location.href="/?a=co"},circle:function(){console.log("Unsupported method.")},collection:function(){console.log("Unsupported method.")},loop:function(){console.log("Unsupported method.")},story:function(){console.log("Unsupported method.")}},time:function(){return new Date},version:1,format:{count:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-GB",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"compact";return e<1?0:new Intl.NumberFormat(o,{notation:t,compactDisplay:"short"}).format(e)},timeAgo:function(e){var o=new Date(e),t=new Date,i=Math.floor((t-o)/1e3),r=Math.floor(i/31557600);return r>=1?r+"y":(r=Math.floor(i/604800))>=1?r+"w":(r=Math.floor(i/86400))>=1?r+"d":(r=Math.floor(i/3600))>=1?r+"h":(r=Math.floor(i/60))>=1?r+"m":Math.floor(i)+"s"},timeAhead:function(e){var o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=Date.parse(e)-Date.parse(new Date),i=Math.floor(t/1e3),r=Math.floor(i/63072e3);return r>=1?r+(o?"y":" years"):(r=Math.floor(i/604800))>=1?r+(o?"w":" weeks"):(r=Math.floor(i/86400))>=1?r+(o?"d":" days"):(r=Math.floor(i/3600))>=1?r+(o?"h":" hours"):(r=Math.floor(i/60))>=1?r+(o?"m":" minutes"):Math.floor(i)+(o?"s":" seconds")},rewriteLinks:function(e){var o=e.innerText;return e.href.startsWith(window.location.origin)?e.href:o=1==o.startsWith("#")?"/discover/tags/"+o.substr(1)+"?src=rph":1==o.startsWith("@")?"/"+e.innerText+"?src=rpp":"/i/redirect?url="+encodeURIComponent(o)}},filters:[["1984","filter-1977"],["Azen","filter-aden"],["Astairo","filter-amaro"],["Grassbee","filter-ashby"],["Bookrun","filter-brannan"],["Borough","filter-brooklyn"],["Farms","filter-charmes"],["Hairsadone","filter-clarendon"],["Cleana ","filter-crema"],["Catpatch","filter-dogpatch"],["Earlyworm","filter-earlybird"],["Plaid","filter-gingham"],["Kyo","filter-ginza"],["Yefe","filter-hefe"],["Goddess","filter-helena"],["Yards","filter-hudson"],["Quill","filter-inkwell"],["Rankine","filter-kelvin"],["Juno","filter-juno"],["Mark","filter-lark"],["Chill","filter-lofi"],["Van","filter-ludwig"],["Apache","filter-maven"],["May","filter-mayfair"],["Ceres","filter-moon"],["Knoxville","filter-nashville"],["Felicity","filter-perpetua"],["Sandblast","filter-poprocket"],["Daisy","filter-reyes"],["Elevate","filter-rise"],["Nevada","filter-sierra"],["Futura","filter-skyline"],["Sleepy","filter-slumber"],["Steward","filter-stinson"],["Savoy","filter-sutro"],["Blaze","filter-toaster"],["Apricot","filter-valencia"],["Gloming","filter-vesper"],["Walter","filter-walden"],["Poplar","filter-willow"],["Xenon","filter-xpro-ii"]],filterCss:{"filter-1977":"sepia(.5) hue-rotate(-30deg) saturate(1.4)","filter-aden":"sepia(.2) brightness(1.15) saturate(1.4)","filter-amaro":"sepia(.35) contrast(1.1) brightness(1.2) saturate(1.3)","filter-ashby":"sepia(.5) contrast(1.2) saturate(1.8)","filter-brannan":"sepia(.4) contrast(1.25) brightness(1.1) saturate(.9) hue-rotate(-2deg)","filter-brooklyn":"sepia(.25) contrast(1.25) brightness(1.25) hue-rotate(5deg)","filter-charmes":"sepia(.25) contrast(1.25) brightness(1.25) saturate(1.35) hue-rotate(-5deg)","filter-clarendon":"sepia(.15) contrast(1.25) brightness(1.25) hue-rotate(5deg)","filter-crema":"sepia(.5) contrast(1.25) brightness(1.15) saturate(.9) hue-rotate(-2deg)","filter-dogpatch":"sepia(.35) saturate(1.1) contrast(1.5)","filter-earlybird":"sepia(.25) contrast(1.25) brightness(1.15) saturate(.9) hue-rotate(-5deg)","filter-gingham":"contrast(1.1) brightness(1.1)","filter-ginza":"sepia(.25) contrast(1.15) brightness(1.2) saturate(1.35) hue-rotate(-5deg)","filter-hefe":"sepia(.4) contrast(1.5) brightness(1.2) saturate(1.4) hue-rotate(-10deg)","filter-helena":"sepia(.5) contrast(1.05) brightness(1.05) saturate(1.35)","filter-hudson":"sepia(.25) contrast(1.2) brightness(1.2) saturate(1.05) hue-rotate(-15deg)","filter-inkwell":"brightness(1.25) contrast(.85) grayscale(1)","filter-kelvin":"sepia(.15) contrast(1.5) brightness(1.1) hue-rotate(-10deg)","filter-juno":"sepia(.35) contrast(1.15) brightness(1.15) saturate(1.8)","filter-lark":"sepia(.25) contrast(1.2) brightness(1.3) saturate(1.25)","filter-lofi":"saturate(1.1) contrast(1.5)","filter-ludwig":"sepia(.25) contrast(1.05) brightness(1.05) saturate(2)","filter-maven":"sepia(.35) contrast(1.05) brightness(1.05) saturate(1.75)","filter-mayfair":"contrast(1.1) brightness(1.15) saturate(1.1)","filter-moon":"brightness(1.4) contrast(.95) saturate(0) sepia(.35)","filter-nashville":"sepia(.25) contrast(1.5) brightness(.9) hue-rotate(-15deg)","filter-perpetua":"contrast(1.1) brightness(1.25) saturate(1.1)","filter-poprocket":"sepia(.15) brightness(1.2)","filter-reyes":"sepia(.75) contrast(.75) brightness(1.25) saturate(1.4)","filter-rise":"sepia(.25) contrast(1.25) brightness(1.2) saturate(.9)","filter-sierra":"sepia(.25) contrast(1.5) brightness(.9) hue-rotate(-15deg)","filter-skyline":"sepia(.15) contrast(1.25) brightness(1.25) saturate(1.2)","filter-slumber":"sepia(.35) contrast(1.25) saturate(1.25)","filter-stinson":"sepia(.35) contrast(1.25) brightness(1.1) saturate(1.25)","filter-sutro":"sepia(.4) contrast(1.2) brightness(.9) saturate(1.4) hue-rotate(-10deg)","filter-toaster":"sepia(.25) contrast(1.5) brightness(.95) hue-rotate(-15deg)","filter-valencia":"sepia(.25) contrast(1.1) brightness(1.1)","filter-vesper":"sepia(.35) contrast(1.15) brightness(1.2) saturate(1.3)","filter-walden":"sepia(.35) contrast(.8) brightness(1.25) saturate(1.4)","filter-willow":"brightness(1.2) contrast(.85) saturate(.05) sepia(.2)","filter-xpro-ii":"sepia(.45) contrast(1.25) brightness(1.75) saturate(1.3) hue-rotate(-5deg)"},emoji:["😂","💯","❤️","🙌","👏","👌","😍","😯","😢","😅","😁","🙂","😎","😀","🤣","😃","😄","😆","😉","😊","😋","😘","😗","😙","😚","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😣","😥","😮","🤐","😪","😫","😴","😌","😛","😜","😝","🤤","😒","😓","😔","😕","🙃","🤑","😲","🙁","😖","😞","😟","😤","😭","😦","😧","😨","😩","🤯","😬","😰","😱","😳","🤪","😵","😡","😠","🤬","😷","🤒","🤕","🤢","🤮","🤧","😇","🤠","🤡","🤥","🤫","🤭","🧐","🤓","😈","👿","👹","👺","💀","👻","👽","🤖","💩","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌️","🤟","🤘","👈","👉","👆","👇","☝️","✋","🤚","🖐","🖖","👋","🤙","💪","🖕","✍️","🙏","💍","💄","💋","👄","👅","👂","👃","👣","👁","👀","🧠","🗣","👤","👥"],embed:{post:function(e){var o=e+"/embed?";return o+=!(arguments.length>1&&void 0!==arguments[1])||arguments[1]?"caption=true&":"caption=false&",o+=arguments.length>2&&void 0!==arguments[2]&&arguments[2]?"likes=true&":"likes=false&",'