From c8cbdd0714961e8d228b8ef7618b4c7ceea2add9 Mon Sep 17 00:00:00 2001 From: pochoclin Date: Wed, 1 Oct 2025 17:02:31 -0400 Subject: [PATCH] feat: onboarding experience (#3149) --- .github/ISSUE_TEMPLATE/3_country.yaml | 75 +++ ...ocumentation.yaml => 4_documentation.yaml} | 0 Cargo.lock | 42 -- Cargo.toml | 1 - apps/desktop/package.json | 1 - apps/desktop/src/app.tsx | 38 +- .../desktop/src/components/command-center.tsx | 8 +- apps/desktop/src/components/header.tsx | 21 +- .../src/components/modal/preferences.tsx | 9 +- .../src/components/onboarding/preferences.tsx | 205 +++++++ .../src/components/onboarding/providers.tsx | 262 +++++++++ apps/desktop/src/hooks/useCountry.test.tsx | 9 +- apps/desktop/src/hooks/useCountry.tsx | 10 +- apps/desktop/src/hooks/useProviders.tsx | 19 + apps/desktop/src/loaders/settings.tsx | 4 +- apps/desktop/src/routes/browse.tsx | 40 +- apps/desktop/src/routes/login.tsx | 25 +- apps/desktop/src/routes/onboarding.tsx | 10 + apps/desktop/src/routes/require-session.tsx | 12 + apps/desktop/src/routes/splash.test.tsx | 6 +- apps/desktop/src/routes/splash.tsx | 46 +- apps/desktop/src/tauri/types.ts | 10 + apps/desktop/src/test/setup.ts | 6 +- .../gql/schema.graphql | 1 + .../src/providers.rs | 28 + ...favorite_multiple_mutation_gql_output.snap | 7 + crates/popcorntime-tauri/Cargo.toml | 1 - .../capabilities/default.json | 14 +- crates/popcorntime-tauri/dictionaries.lock | 550 +++++++++++++++++- crates/popcorntime-tauri/dictionaries/ar.json | 29 + crates/popcorntime-tauri/dictionaries/da.json | 29 + crates/popcorntime-tauri/dictionaries/de.json | 29 + crates/popcorntime-tauri/dictionaries/el.json | 29 + crates/popcorntime-tauri/dictionaries/en.json | 27 + crates/popcorntime-tauri/dictionaries/es.json | 29 + crates/popcorntime-tauri/dictionaries/et.json | 35 +- crates/popcorntime-tauri/dictionaries/fa.json | 29 + crates/popcorntime-tauri/dictionaries/fi.json | 29 + crates/popcorntime-tauri/dictionaries/fr.json | 29 + crates/popcorntime-tauri/dictionaries/ga.json | 29 + crates/popcorntime-tauri/dictionaries/he.json | 29 + crates/popcorntime-tauri/dictionaries/hi.json | 29 + crates/popcorntime-tauri/dictionaries/it.json | 29 + crates/popcorntime-tauri/dictionaries/ja.json | 29 + crates/popcorntime-tauri/dictionaries/nl.json | 29 + crates/popcorntime-tauri/dictionaries/no.json | 29 + crates/popcorntime-tauri/dictionaries/pl.json | 29 + crates/popcorntime-tauri/dictionaries/pt.json | 29 + crates/popcorntime-tauri/dictionaries/sr.json | 29 + crates/popcorntime-tauri/dictionaries/sv.json | 29 + crates/popcorntime-tauri/dictionaries/tr.json | 29 + crates/popcorntime-tauri/dictionaries/ur.json | 29 + crates/popcorntime-tauri/src/graphql.rs | 20 + crates/popcorntime-tauri/src/main.rs | 2 +- crates/popcorntime-tauri/src/window.rs | 2 +- packages/popcorntime-i18n/src/index.ts | 18 - packages/popcorntime-i18n/src/types.ts | 22 - pnpm-lock.yaml | 13 - pnpm-workspace.yaml | 1 - 59 files changed, 1982 insertions(+), 227 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/3_country.yaml rename .github/ISSUE_TEMPLATE/{3_documentation.yaml => 4_documentation.yaml} (100%) create mode 100644 apps/desktop/src/components/onboarding/preferences.tsx create mode 100644 apps/desktop/src/components/onboarding/providers.tsx create mode 100644 apps/desktop/src/routes/require-session.tsx create mode 100644 crates/popcorntime-graphql-client/src/snapshots/popcorntime_graphql_client__providers__tests__add_favorite_multiple_mutation_gql_output.snap diff --git a/.github/ISSUE_TEMPLATE/3_country.yaml b/.github/ISSUE_TEMPLATE/3_country.yaml new file mode 100644 index 000000000..4e8d2290e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/3_country.yaml @@ -0,0 +1,75 @@ +name: New Country Request +description: Request support for a new country in Popcorn Time +labels: [country] +body: + - type: markdown + attributes: + value: | + ⚠️ Before submitting, please [search existing issues](https://github.com/popcorntime/popcorntime/issues?q=is%3Aissue%20label%3Acountry) to check if this country has already been requested. + + - type: input + id: country + attributes: + label: Country Code + description: Provide the official 2-letter ISO country code (e.g., `FR` for France). + placeholder: | + Example: FR + validations: + required: true + + - type: input + id: default_language + attributes: + label: Default Language + description: Provide the default language code for this country (ISO 639-1, e.g., `fr`). + placeholder: | + Example: fr + validations: + required: true + + - type: textarea + id: languages + attributes: + label: Supported Languages + description: List all relevant languages spoken in this country. + placeholder: | + Example: + - fr + - en + - nl + validations: + required: true + + - type: textarea + id: providers + attributes: + label: Providers + description: List a few streaming providers available in this country (local or international). + placeholder: | + Example: + - Netflix + - Amazon Prime + - Crave + validations: + required: true + + - type: dropdown + id: category + attributes: + label: Category + description: Select the type of providers you'd like to prioritize. + options: + - streaming + - free + validations: + required: true + + - type: textarea + id: context + attributes: + label: Additional Context (Optional) + description: Add any other context, links, or information useful for supporting this country. + placeholder: | + Example: Market size, missing popular services, user demand, etc. + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/3_documentation.yaml b/.github/ISSUE_TEMPLATE/4_documentation.yaml similarity index 100% rename from .github/ISSUE_TEMPLATE/3_documentation.yaml rename to .github/ISSUE_TEMPLATE/4_documentation.yaml diff --git a/Cargo.lock b/Cargo.lock index 03860cc0a..5a46f2d89 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3291,16 +3291,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "os_pipe" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "osakit" version = "0.3.1" @@ -3766,7 +3756,6 @@ dependencies = [ "tauri-plugin-log", "tauri-plugin-opener", "tauri-plugin-process", - "tauri-plugin-shell", "tauri-plugin-single-instance", "tauri-plugin-updater", "tauri-specta", @@ -4728,16 +4717,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shared_child" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "shlex" version = "1.3.0" @@ -5370,27 +5349,6 @@ dependencies = [ "tauri-plugin", ] -[[package]] -name = "tauri-plugin-shell" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54777d0c0d8add34eea3ced84378619ef5b97996bd967d3038c668feefd21071" -dependencies = [ - "encoding_rs", - "log", - "open", - "os_pipe", - "regex", - "schemars", - "serde", - "serde_json", - "shared_child", - "tauri", - "tauri-plugin", - "thiserror 2.0.11", - "tokio", -] - [[package]] name = "tauri-plugin-single-instance" version = "2.3.4" diff --git a/Cargo.toml b/Cargo.toml index 8c0d5ec4b..93e428ffb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,6 @@ tauri = "2.8.5" tauri-build = "2.4.1" tauri-plugin-opener = "2.5.0" tauri-plugin-log = "2.7.0" -tauri-plugin-shell = "2.3.1" tauri-plugin-fs = "2.4.2" tauri-plugin-deep-link = "2.4.3" tauri-plugin-updater = "2.9.0" diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 98f6a77c2..a8a024c4f 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -18,7 +18,6 @@ "@tauri-apps/plugin-log": "catalog:", "@tauri-apps/plugin-opener": "catalog:", "@tauri-apps/plugin-process": "catalog:", - "@tauri-apps/plugin-shell": "catalog:", "@tauri-apps/plugin-updater": "catalog:", "flag-icons": "catalog:", "fuse.js": "catalog:", diff --git a/apps/desktop/src/app.tsx b/apps/desktop/src/app.tsx index 3cb997a52..559e61eee 100644 --- a/apps/desktop/src/app.tsx +++ b/apps/desktop/src/app.tsx @@ -1,4 +1,4 @@ -import { HashRouter, Navigate, Route, Routes } from "react-router"; +import { HashRouter, Route, Routes } from "react-router"; import { useErrorHandler } from "@/hooks/useErrorHandler"; import { initReactI18n } from "@/i18n"; import { BrowseLayout, DefaultLayout } from "@/layout"; @@ -13,9 +13,12 @@ import { MaintenanceRoute } from "@/routes/maintenance"; import { NotFoundRoute } from "@/routes/not-found"; import { OnboardingManifestRoute, + OnboardingPreferencesRoute, + OnboardingProvidersRoute, OnboardingTimelineRoute, OnboardingWelcomeRoute, } from "@/routes/onboarding"; +import { RequireSession } from "@/routes/require-session"; import { SplashRoute } from "@/routes/splash"; import "@/css/styles.css"; @@ -24,33 +27,46 @@ import "flag-icons/css/flag-icons.min.css"; initReactI18n(); +function Loaders() { + return ( + <> + + + + + + ); +} + export function App() { useErrorHandler(); return ( - - - - - + }> } /> } /> - } /> - } /> + } /> + } /> + }> + } /> + } /> + } /> } /> } /> - }> - } /> + + }> + }> + } /> + - } /> diff --git a/apps/desktop/src/components/command-center.tsx b/apps/desktop/src/components/command-center.tsx index cdef6d7bd..2faab9e62 100644 --- a/apps/desktop/src/components/command-center.tsx +++ b/apps/desktop/src/components/command-center.tsx @@ -56,7 +56,7 @@ function CommandCenterViewCountrySelection() { {sortedCountries.map(country => ( handleNavigation(`/browse/${country}`)} + onSelect={() => handleNavigation(`/browse?country=${country}`)} className="group gap-2" > @@ -110,7 +110,7 @@ function CommandCenterCommand({ command }: { command: Command }) { key={command.id} value={command.id} onSelect={() => { - handleNavigation(`/browse/${country}`); + handleNavigation(`/browse`); }} > @@ -124,7 +124,7 @@ function CommandCenterCommand({ command }: { command: Command }) { key={command.id} value={command.id} onSelect={() => { - handleNavigation(`/browse/${country}?kind=MOVIE`); + handleNavigation(`/browse?kind=MOVIE`); }} > @@ -138,7 +138,7 @@ function CommandCenterCommand({ command }: { command: Command }) { key={command.id} value={command.id} onSelect={() => { - handleNavigation(`/browse/${country}?kind=TV_SHOW`); + handleNavigation(`/browse?kind=TV_SHOW`); }} > diff --git a/apps/desktop/src/components/header.tsx b/apps/desktop/src/components/header.tsx index 632a51b32..77568269b 100644 --- a/apps/desktop/src/components/header.tsx +++ b/apps/desktop/src/components/header.tsx @@ -23,11 +23,10 @@ import { StarsIcon, Tv, } from "lucide-react"; -import { useCallback } from "react"; +import { useCallback, useMemo } from "react"; import { useTranslation } from "react-i18next"; -import { Link, useParams } from "react-router"; +import { Link, useSearchParams } from "react-router"; import { CommandCenter } from "@/components/command-center"; -import { useCountry } from "@/hooks/useCountry"; import { useTauri } from "@/hooks/useTauri"; import { useGlobalStore } from "@/stores/global"; import type { MediaKind } from "@/tauri/types"; @@ -42,11 +41,11 @@ export function Header() { const direction = useGlobalStore(state => state.i18n.direction); const { api } = useTauri(); - const { country } = useCountry(); const { t } = useTranslation(); - const { kind } = useParams<{ - kind: Lowercase; - }>(); + const [searchParams] = useSearchParams(); + const kind = useMemo(() => { + return (searchParams.get("kind") || "MOVIE") as MediaKind; + }, [searchParams]); const openLogsDir = useCallback(async () => { const appLogDirPath = await appLogDir(); @@ -95,10 +94,10 @@ export function Header() { {t("browse.movies")} @@ -106,10 +105,10 @@ export function Header() { {t("browse.tv-shows")} diff --git a/apps/desktop/src/components/modal/preferences.tsx b/apps/desktop/src/components/modal/preferences.tsx index 68877a7ba..75db37182 100644 --- a/apps/desktop/src/components/modal/preferences.tsx +++ b/apps/desktop/src/components/modal/preferences.tsx @@ -1,5 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; -import { type Country, i18n, type Locale } from "@popcorntime/i18n"; +import { type Country, i18n } from "@popcorntime/i18n"; import { Button } from "@popcorntime/ui/components/button"; import { Dialog, @@ -25,9 +25,10 @@ import { useUpdater } from "@/hooks/useUpdater"; import { useGlobalStore } from "@/stores/global"; const accountFormSchema = z.object({ - country: z.enum([...i18n.countries] as [Country, ...Country[]]), - language: z.enum([...i18n.locales] as [Locale, ...Locale[]]), + country: z.enum(i18n.countries), + language: z.enum(i18n.locales), }); + type AccountFormValues = z.infer; export function PreferencesDialog() { @@ -98,7 +99,7 @@ export function PreferencesDialog() { setSubmitted(false); togglePreferences(); if (country !== values.country) { - navigate(`/browse/${values.country}`, { flushSync: true }); + navigate("/browse", { flushSync: true }); } }); }, diff --git a/apps/desktop/src/components/onboarding/preferences.tsx b/apps/desktop/src/components/onboarding/preferences.tsx new file mode 100644 index 000000000..1e323644a --- /dev/null +++ b/apps/desktop/src/components/onboarding/preferences.tsx @@ -0,0 +1,205 @@ +import { type Country, i18n, isDefaultLocale, type Locale } from "@popcorntime/i18n"; +import { Button } from "@popcorntime/ui/components/button"; +import { Spinner } from "@popcorntime/ui/components/spinner"; +import { cn } from "@popcorntime/ui/lib/utils"; +import { ChevronLeft, ChevronRight, ExternalLink, Globe, MapPin } from "lucide-react"; +import { useCallback, useMemo, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { Link, useNavigate } from "react-router"; +import { useTauri } from "@/hooks/useTauri"; +import { useGlobalStore } from "@/stores/global"; + +export function OnboardingPreferences() { + const [selectedCountry, setSelectedCountry] = useState(null); + const preferencesSucceeded = useGlobalStore(state => state.preferencesSucceeded); + const direction = useGlobalStore(state => state.i18n.direction); + const [selectedLocale, setSelectedLocale] = useState(null); + const [showAllLocales, setShowAllLocales] = useState(false); + const { api } = useTauri(); + const [currentStep, setCurrentStep] = useState<"country" | "language">("country"); + const { t } = useTranslation(); + const [isLoading, setIsLoading] = useState(false); + const navigate = useNavigate(); + + const handleCountrySelect = (countryCode: Country) => { + setSelectedCountry(countryCode); + setCurrentStep("language"); + }; + + const handleLanguageSelect = useCallback( + (langCode: Locale) => { + if (!selectedCountry) return; + setSelectedLocale(langCode); + setIsLoading(true); + api.updateUserPreferences({ country: selectedCountry, language: langCode }).then(() => { + setIsLoading(false); + preferencesSucceeded({ country: selectedCountry, language: langCode }); + navigate("/onboarding/providers"); + }); + }, + [selectedCountry, api, navigate, preferencesSucceeded] + ); + + const handleBackToCountry = () => { + setShowAllLocales(false); + setCurrentStep("country"); + }; + + const availableLanguages = useMemo(() => { + if (!selectedCountry) return []; + if (showAllLocales) return i18n.locales; + // make sure we always have "en" as a fallback option + return [...new Set([...i18n.raw[selectedCountry].languages, "en" as Locale])].sort((a, b) => { + const isDefaultA = isDefaultLocale(selectedCountry, a); + const isDefaultB = isDefaultLocale(selectedCountry, b); + if (isDefaultA && !isDefaultB) return -1; + if (!isDefaultA && isDefaultB) return 1; + const localeA = t(`language.${a.toLowerCase()}`); + const localeB = t(`language.${b.toLowerCase()}`); + return localeA.localeCompare(localeB); + }); + }, [selectedCountry, showAllLocales, t]); + + const sortedCountries = useMemo(() => { + return [...i18n.countries].sort((a, b) => { + const countryA = t(`country.${a.toLowerCase()}`); + const countryB = t(`country.${b.toLowerCase()}`); + return countryA.localeCompare(countryB); + }); + }, [t]); + + const steps = useMemo(() => { + return { + country: { + title: t("onboardingPreferences.countryTitle"), + description: t("onboardingPreferences.countryDescription"), + icon: , + content: ( +
+ {sortedCountries.map(countryCode => ( + + ))} +
+
+ Your Country is missing? +
+
+ Please{" "} + + open an issue on GitHub + + {" "} + to request its addition. +
+
+
+ ), + }, + language: { + title: t("onboardingPreferences.languageTitle"), + description: t("onboardingPreferences.languageDescription", { + inCountry: t(`inCountry.${selectedCountry?.toLowerCase()}`), + }), + icon: , + content: ( + <> +
+ + {!showAllLocales && ( + + )} +
+ +
+ {availableLanguages.map(langCode => ( + + ))} +
+ + ), + }, + }; + }, [ + t, + sortedCountries, + availableLanguages, + selectedCountry, + selectedLocale, + isLoading, + direction, + ]); + + return ( +
+
+
+
+
+ {steps[currentStep].icon} +
+

{steps[currentStep].title}

+

+ {steps[currentStep].description} +

+
+
+
+ +
+
+
{steps[currentStep].content}
+
+
+
+ ); +} diff --git a/apps/desktop/src/components/onboarding/providers.tsx b/apps/desktop/src/components/onboarding/providers.tsx new file mode 100644 index 000000000..7baa70f48 --- /dev/null +++ b/apps/desktop/src/components/onboarding/providers.tsx @@ -0,0 +1,262 @@ +import { Badge } from "@popcorntime/ui/components/badge"; +import { Button } from "@popcorntime/ui/components/button"; +import { Input } from "@popcorntime/ui/components/input"; +import { Spinner } from "@popcorntime/ui/components/spinner"; +import { cn } from "@popcorntime/ui/lib/utils"; +import { ArrowLeft, ArrowRight, Check, Gift, Search, TrendingUp, Tv } from "lucide-react"; +import { useCallback, useMemo, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { useNavigate } from "react-router"; +import { useProviders } from "@/hooks/useProviders"; +import { useGlobalStore } from "@/stores/global"; +import type { WatchPriceType } from "@/tauri/types"; +import { ProviderIcon } from "../provider"; + +type ProviderCategory = "popular" | "free" | "flatrate" | "all"; +type ProviderFilter = + | WatchPriceType[] + | { + sortBy: "weight"; + number: number; + } + | null; +interface ProviderCategoryInfo { + key: string; + icon: React.ComponentType>; + filter: ProviderFilter; + exclude?: WatchPriceType[]; +} +export const providerCategories: Record = { + popular: { key: "popular", icon: TrendingUp, filter: { sortBy: "weight", number: 20 } }, + free: { key: "free", icon: Gift, filter: ["FREE"], exclude: ["FLATRATE"] }, + flatrate: { key: "subscription", icon: Tv, filter: ["FLATRATE"], exclude: ["FREE"] }, + all: { key: "all", icon: Search, filter: null }, +}; + +export function OnboardingProviders() { + const providers = useGlobalStore(state => state.providers.providers); + const direction = useGlobalStore(state => state.i18n.direction); + const country = useGlobalStore(state => state.preferences.country); + const { setFavoritesMultipleProviders } = useProviders(); + const providersStatus = useGlobalStore(state => state.providers.status); + const [selectedProviders, setSelectedProviders] = useState([]); + const [searchQuery, setSearchQuery] = useState(""); + const [isLoading, setIsLoading] = useState(false); + const [activeCategory, setActiveCategory] = useState("popular"); + const { t } = useTranslation(); + const navigate = useNavigate(); + + const filteredProviders = useMemo(() => { + const categoryInfo = providerCategories[activeCategory]; + + let providersByCategory = providers; + const filter = categoryInfo.filter; + const exclude = categoryInfo.exclude; + + if (filter) { + if (Array.isArray(filter) && filter.length > 0) { + providersByCategory = providers.filter(provider => + provider.priceTypes.some(type => filter.includes(type)) + ); + } + + if (filter && "sortBy" in filter && filter.sortBy === "weight" && filter.number > 0) { + providersByCategory = [...providers] + .sort((a, b) => (b.weight || 0) - (a.weight || 0)) + .slice(0, filter.number); + } + } + + if (exclude && exclude.length > 0) { + providersByCategory = providersByCategory.filter( + provider => !provider.priceTypes.some(type => exclude.includes(type)) + ); + } + + if (!searchQuery) return providersByCategory; + + return providersByCategory.filter(provider => + provider.name.toLowerCase().includes(searchQuery.trim().toLowerCase()) + ); + }, [activeCategory, searchQuery, providers]); + + const toggleProvider = (providerId: string) => { + setSelectedProviders(prev => + prev.includes(providerId) ? prev.filter(id => id !== providerId) : [...prev, providerId] + ); + }; + + const handleReset = () => setSelectedProviders([]); + const handleChangeCountry = () => navigate("/onboarding/preferences"); + + const handleContinue = useCallback(() => { + if (!country) { + throw new Error("Country must be set before setting providers"); + } + if (selectedProviders.length === 0) { + navigate("/browse"); + } else { + setIsLoading(true); + setFavoritesMultipleProviders(selectedProviders).finally(() => { + setIsLoading(false); + navigate("/browse"); + }); + } + }, [selectedProviders, navigate, setFavoritesMultipleProviders, country, setIsLoading]); + + return ( +
+
+
+
+
+ +
+

{t("onboardingProviders.title")}

+

+ {t("onboardingProviders.description")} +

+ +
+
+ + setSearchQuery(e.target.value)} + className="pl-10 bg-card/50 border-border/50" + /> +
+ +
+ {Object.entries(providerCategories).map(([key, category]) => { + const Icon = category.icon; + const isActive = activeCategory === key; + return ( + + ); + })} +
+
+
+
+
+ +
+
+
+
+ {providersStatus === "loading" && !isLoading && ( +
+ +
+ )} + + {filteredProviders.map(provider => { + const isSelected = selectedProviders.includes(provider.key); + return ( + + ); + })} +
+ + {filteredProviders.length === 0 && searchQuery && ( +
+ +

+ {t("onboardingProviders.noFound", { query: searchQuery })} +

+ +
+ )} +
+
+
+
+
+
+
+ 0 ? "default" : "secondary"} + className="px-3 py-1" + > + {t("onboardingProviders.selected", { count: selectedProviders.length })} + + {selectedProviders.length > 0 && ( + + )} +
+ +
+ + +
+
+
+
+
+ ); +} diff --git a/apps/desktop/src/hooks/useCountry.test.tsx b/apps/desktop/src/hooks/useCountry.test.tsx index 98764739f..1e43b055d 100644 --- a/apps/desktop/src/hooks/useCountry.test.tsx +++ b/apps/desktop/src/hooks/useCountry.test.tsx @@ -22,14 +22,11 @@ afterEach(() => { resetGlobalStore(); }); -const renderWithProvider = (initialEntry: string = "/") => +const renderWithProvider = (initialEntry: string = "/browse") => render( - }> - } /> - - }> + }> } /> @@ -43,7 +40,7 @@ describe("useCountry", () => { s.preferences.language = "fr"; }); - const r = renderWithProvider("/browse/ca/movies"); + const r = renderWithProvider("/browse?country=CA"); await act(async () => {}); expect(r.getByTestId("country").textContent).toBe("CA"); diff --git a/apps/desktop/src/hooks/useCountry.tsx b/apps/desktop/src/hooks/useCountry.tsx index 5ed8d0d95..351ec6b33 100644 --- a/apps/desktop/src/hooks/useCountry.tsx +++ b/apps/desktop/src/hooks/useCountry.tsx @@ -1,6 +1,6 @@ import { type Country, i18n } from "@popcorntime/i18n"; import { createContext, type ReactNode, useContext, useMemo } from "react"; -import { useParams } from "react-router"; +import { useSearchParams } from "react-router"; import { useGlobalStore } from "@/stores/global"; export type Context = { @@ -13,15 +13,13 @@ const CountryContext = createContext({ export const CountryProvider = ({ children }: { children: ReactNode }) => { const preferedCountry = useGlobalStore(state => state.preferences?.country); - const params = useParams<{ - country: Country; - }>(); + const [searchParams, _] = useSearchParams(); const country = useMemo(() => { - return (params.country?.toUpperCase() ?? + return (searchParams.get("country")?.toUpperCase() ?? preferedCountry?.toUpperCase() ?? i18n.defaultCountry.toUpperCase()) as Country; - }, [params.country, preferedCountry]); + }, [searchParams, preferedCountry]); return ( { [country, api.setFavoritesProvider, providers] ); + const setFavoritesMultipleProviders = useCallback( + async (providersKey: string[]) => { + await api.setFavoritesMultipleProviders({ country, providersKey }); + + // optimistic update + const updatedProviders = providers.map(p => { + if (providersKey.includes(p.key)) { + return { ...p, favorite: true }; + } + return p; + }); + + const { providersSucceeded } = useGlobalStore.getState(); + providersSucceeded(updatedProviders); + }, + [country, api.setFavoritesProvider, providers] + ); + const addToFavorites = useCallback( async (providerKey: string) => { setFavorites(providerKey, true); @@ -49,5 +67,6 @@ export const useProviders = () => { return { addToFavorites, removeFromFavorites, + setFavoritesMultipleProviders, }; }; diff --git a/apps/desktop/src/loaders/settings.tsx b/apps/desktop/src/loaders/settings.tsx index cdf8a823a..0eaf57ef0 100644 --- a/apps/desktop/src/loaders/settings.tsx +++ b/apps/desktop/src/loaders/settings.tsx @@ -4,11 +4,9 @@ import { useGlobalStore } from "@/stores/global"; export function SettingsLoaderMount() { const { api } = useTauri(); - const isActive = useGlobalStore(s => s.session.isActive); const status = useGlobalStore(s => s.settings.status); useEffect(() => { - if (!isActive) return; if (status !== "idle") return; const { settingsRequested, settingsSucceeded, settingsFailed } = useGlobalStore.getState(); @@ -17,7 +15,7 @@ export function SettingsLoaderMount() { .isOnboarded() .then(onboarded => settingsSucceeded({ onboarded })) .catch(settingsFailed); - }, [api, isActive, status]); + }, [api, status]); return null; } diff --git a/apps/desktop/src/routes/browse.tsx b/apps/desktop/src/routes/browse.tsx index 74a849bf6..4056e3023 100644 --- a/apps/desktop/src/routes/browse.tsx +++ b/apps/desktop/src/routes/browse.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import useInfiniteScroll from "react-infinite-scroll-hook"; -import { useParams } from "react-router"; +import { useSearchParams } from "react-router"; import { useShallow } from "zustand/shallow"; import placeholderImg from "@/assets/placeholder.svg"; import { BrowseMedias } from "@/components/browse"; @@ -21,7 +21,11 @@ export function BrowseRoute() { const openMedia = useGlobalStore(state => state.openMedia); const [dataAccumulator, setDataAccumulator] = useState([]); - const { kind } = useParams<{ kind: "movie" | "tv_show" }>(); + const [searchParams] = useSearchParams(); + + const kind = useMemo(() => { + return (searchParams.get("kind") || "MOVIE") as MediaKind; + }, [searchParams]); const args = useMemo(() => { return { @@ -31,15 +35,15 @@ export function BrowseRoute() { }, [globalArgs, kind]); const prevQuery = useRef<{ - q: typeof query; - a: typeof args; - k: typeof sortKey; - o: typeof sortOrder; + query: typeof query; + args: typeof args; + sortKey: typeof sortKey; + sortOrder: typeof sortOrder; }>({ - q: query, - a: args, - k: sortKey, - o: sortOrder, + query: query, + args: args, + sortKey: sortKey, + sortOrder: sortOrder, }); // Register the sidebar group for this route @@ -111,10 +115,10 @@ export function BrowseRoute() { useEffect(() => { if ( - prevQuery.current.q === query && - prevQuery.current.a === args && - prevQuery.current.k === sortKey && - prevQuery.current.o === sortOrder + prevQuery.current.query === query && + prevQuery.current.args === args && + prevQuery.current.sortKey === sortKey && + prevQuery.current.sortOrder === sortOrder ) { return; } @@ -144,10 +148,10 @@ export function BrowseRoute() { }); prevQuery.current = { - q: query, - a: args, - k: sortKey, - o: sortOrder, + query, + args, + sortKey, + sortOrder, }; }, [query, args, sortKey, sortOrder]); diff --git a/apps/desktop/src/routes/login.tsx b/apps/desktop/src/routes/login.tsx index 70460a51a..7ddd237db 100644 --- a/apps/desktop/src/routes/login.tsx +++ b/apps/desktop/src/routes/login.tsx @@ -1,5 +1,5 @@ import { Button, buttonVariants } from "@popcorntime/ui/components/button"; -import { open } from "@tauri-apps/plugin-shell"; +import { openUrl } from "@tauri-apps/plugin-opener"; import { useEffect } from "react"; import { Link, useNavigate } from "react-router"; import logo from "@/assets/logo.png"; @@ -16,29 +16,22 @@ export function LoginRoute() { } useEffect(() => { - let disposed = false; let unlisten: (() => void) | undefined; - (async () => { - const fn = await on.sessionServerReady.listen(event => { - open(event.payload.authorization_url); + on.sessionServerReady + .listen(event => { + openUrl(event.payload.authorization_url); + }) + .then(fn => { + unlisten = fn; }); - if (disposed) { - fn(); - return; - } - unlisten = fn; - })(); - return () => { - disposed = true; - if (unlisten) unlisten(); - }; + return unlisten; }, [on.sessionServerReady]); useEffect(() => { if (appBoot !== "booted") return; - navigate("/"); + navigate("/", { replace: true }); }, [appBoot, navigate]); return ( diff --git a/apps/desktop/src/routes/onboarding.tsx b/apps/desktop/src/routes/onboarding.tsx index 4c8a07da7..6c264aea0 100644 --- a/apps/desktop/src/routes/onboarding.tsx +++ b/apps/desktop/src/routes/onboarding.tsx @@ -1,4 +1,6 @@ import { OnboardingManifest } from "@/components/onboarding/manifest"; +import { OnboardingPreferences } from "@/components/onboarding/preferences"; +import { OnboardingProviders } from "@/components/onboarding/providers"; import { OnboardingTimeline } from "@/components/onboarding/timeline"; import { OnboardingWelcome } from "@/components/onboarding/welcome"; @@ -13,3 +15,11 @@ export function OnboardingTimelineRoute() { export function OnboardingManifestRoute() { return ; } + +export function OnboardingProvidersRoute() { + return ; +} + +export function OnboardingPreferencesRoute() { + return ; +} diff --git a/apps/desktop/src/routes/require-session.tsx b/apps/desktop/src/routes/require-session.tsx new file mode 100644 index 000000000..5b5c202d1 --- /dev/null +++ b/apps/desktop/src/routes/require-session.tsx @@ -0,0 +1,12 @@ +import { Navigate, Outlet } from "react-router"; +import { useGlobalStore } from "@/stores/global"; + +export function RequireSession() { + const isActive = useGlobalStore(s => s.session.isActive); + + if (!isActive) { + return ; + } + + return ; +} diff --git a/apps/desktop/src/routes/splash.test.tsx b/apps/desktop/src/routes/splash.test.tsx index 1fbd244d0..6b02e1f8d 100644 --- a/apps/desktop/src/routes/splash.test.tsx +++ b/apps/desktop/src/routes/splash.test.tsx @@ -23,7 +23,7 @@ function renderWithRouter(initialPath = "/") { /> } /> } /> - } /> + } /> @@ -112,7 +112,7 @@ describe("SplashRoute", () => { await act(async () => {}); expect(screen.getByTestId("browse")).toBeInTheDocument(); - expect(screen.getByTestId("loc")).toHaveTextContent("/browse/ca"); + expect(screen.getByTestId("loc")).toHaveTextContent("/browse"); r.unmount(); }); @@ -136,7 +136,7 @@ describe("SplashRoute", () => { ); expect(screen.getByTestId("browse")).toBeInTheDocument(); - expect(screen.getByTestId("loc")).toHaveTextContent("/browse/fr"); + expect(screen.getByTestId("loc")).toHaveTextContent("/browse"); r.unmount(); }); diff --git a/apps/desktop/src/routes/splash.tsx b/apps/desktop/src/routes/splash.tsx index efdb3bbcb..9ed6e936a 100644 --- a/apps/desktop/src/routes/splash.tsx +++ b/apps/desktop/src/routes/splash.tsx @@ -1,22 +1,40 @@ -import { i18n } from "@popcorntime/i18n/types"; -import { Navigate } from "react-router"; +import { useEffect, useRef } from "react"; +import { useNavigate } from "react-router"; import { SplashScreen } from "@/components/splash-screen"; import { useGlobalStore } from "@/stores/global"; export function SplashRoute() { - const isActive = useGlobalStore(s => s.session.isActive); - const onboarded = useGlobalStore(s => s.settings.onboarded); const appBoot = useGlobalStore(s => s.app.boot); - const country = useGlobalStore(s => s.preferences.country); + const onboarded = useGlobalStore(s => s.settings.onboarded); + const isActive = useGlobalStore(s => s.session.isActive); + const preferredCountry = useGlobalStore(s => s.preferences.country); + const initialRedirectAttempted = useRef(false); + const navigate = useNavigate(); - if (appBoot === "cold") return ; - if (!onboarded) return ; + useEffect(() => { + if (appBoot === "cold") return; + if (!onboarded) { + if (!initialRedirectAttempted.current) { + initialRedirectAttempted.current = true; + navigate("/onboarding", { flushSync: true }); + } + } else if (isActive) { + if (appBoot !== "booted") return; + if (!initialRedirectAttempted.current) { + initialRedirectAttempted.current = true; + if (!preferredCountry) { + navigate("/onboarding/preferences", { flushSync: true }); + } else { + navigate("/browse", { flushSync: true }); + } + } + } else { + if (!initialRedirectAttempted.current) { + initialRedirectAttempted.current = true; + navigate("/login", { flushSync: true }); + } + } + }, [appBoot, onboarded, isActive, navigate, preferredCountry]); - if (isActive) { - if (appBoot !== "booted") return ; - const goto = (country ?? i18n.defaultCountry).toLowerCase(); - return ; - } - - return ; + return ; } diff --git a/apps/desktop/src/tauri/types.ts b/apps/desktop/src/tauri/types.ts index b4c385bcf..aee6ef5c4 100644 --- a/apps/desktop/src/tauri/types.ts +++ b/apps/desktop/src/tauri/types.ts @@ -55,6 +55,14 @@ async setFavoritesProvider(params: SetFavoriteProviderInput) : Promise> { + try { + return { status: "ok", data: await TAURI_INVOKE("set_favorites_multiple_providers", { params }) }; +} catch (e) { + if(e instanceof Error) throw e; + else return { status: "error", error: e as any }; +} +}, async setMediaReaction(params: SetReactionInput) : Promise> { try { return { status: "ok", data: await TAURI_INVOKE("set_media_reaction", { params }) }; @@ -160,6 +168,8 @@ export type SearchInput = { after?: string | null; arguments?: SearchArguments | export type SearchOutput = { search: MediaSearchConnection } export type SessionServerReady = { authorization_url: string } export type SessionUpdate = null +export type SetFavoriteMultipleProvidersInput = { country: Country; providersKey: string[] } +export type SetFavoriteMultipleProvidersMutation = { setFavoriteMultipleProviders: boolean } export type SetFavoriteProviderInput = { country: Country; providerKey: string; favorite: boolean } export type SetFavoriteProviderMutation = { setFavoriteProvider: boolean } export type SetReactionInput = { mediaId: number; reaction: UserReactionType | null } diff --git a/apps/desktop/src/test/setup.ts b/apps/desktop/src/test/setup.ts index 22719e123..50107093a 100644 --- a/apps/desktop/src/test/setup.ts +++ b/apps/desktop/src/test/setup.ts @@ -28,11 +28,11 @@ i18n vi.mock("sonner", () => ({ toast })); vi.mock("zustand"); -vi.mock("@tauri-apps/plugin-shell", async () => { - const actual = await vi.importActual("@tauri-apps/plugin-shell"); +vi.mock("@tauri-apps/plugin-opener", async () => { + const actual = await vi.importActual("@tauri-apps/plugin-opener"); return { ...actual, - open: pluginShellOpen, + openUrl: pluginShellOpen, }; }); diff --git a/crates/popcorntime-graphql-client/gql/schema.graphql b/crates/popcorntime-graphql-client/gql/schema.graphql index e74fb8e92..f611c14a7 100644 --- a/crates/popcorntime-graphql-client/gql/schema.graphql +++ b/crates/popcorntime-graphql-client/gql/schema.graphql @@ -259,6 +259,7 @@ type MutationRoot { setReaction(mediaId: Int!, reaction: UserReactionType): Boolean! updatePreferences(country: Country!, language: Language!): UserPreferences setFavoriteProvider(country: Country!, providerKey: String!, favorite: Boolean!): Boolean! + setFavoriteMultipleProviders(country: Country!, providersKey: [String!]!): Boolean! } """ diff --git a/crates/popcorntime-graphql-client/src/providers.rs b/crates/popcorntime-graphql-client/src/providers.rs index c45732600..f80bad574 100644 --- a/crates/popcorntime-graphql-client/src/providers.rs +++ b/crates/popcorntime-graphql-client/src/providers.rs @@ -9,6 +9,13 @@ pub struct SetFavoriteProviderInput<'a> { pub favorite: bool, } +#[derive(cynic::QueryVariables, Debug, specta::Type, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SetFavoriteMultipleProvidersInput { + pub country: Country, + pub providers_key: Vec, +} + #[derive(cynic::QueryVariables, Debug, specta::Type, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ProvidersInput<'a> { @@ -45,6 +52,17 @@ pub struct SetFavoriteProviderMutation { pub set_favorite_provider: bool, } +#[derive(cynic::QueryFragment, Debug, specta::Type, Serialize)] +#[cynic( + graphql_type = "MutationRoot", + variables = "SetFavoriteMultipleProvidersInput" +)] +#[serde(rename_all = "camelCase")] +pub struct SetFavoriteMultipleProvidersMutation { + #[arguments(country: $country, providersKey: $providers_key)] + pub set_favorite_multiple_providers: bool, +} + #[cfg(test)] mod tests { use super::*; @@ -69,6 +87,16 @@ mod tests { insta::assert_snapshot!(operation.query); } + #[test] + fn add_favorite_multiple_mutation_gql_output() { + let operation = + SetFavoriteMultipleProvidersMutation::build(SetFavoriteMultipleProvidersInput { + country: Country("US".to_string()), + providers_key: vec!["netflix".to_string(), "hulu".to_string()], + }); + insta::assert_snapshot!(operation.query); + } + #[test] fn remove_favorite_mutation_gql_output() { let operation = SetFavoriteProviderMutation::build(SetFavoriteProviderInput { diff --git a/crates/popcorntime-graphql-client/src/snapshots/popcorntime_graphql_client__providers__tests__add_favorite_multiple_mutation_gql_output.snap b/crates/popcorntime-graphql-client/src/snapshots/popcorntime_graphql_client__providers__tests__add_favorite_multiple_mutation_gql_output.snap new file mode 100644 index 000000000..8af0e412c --- /dev/null +++ b/crates/popcorntime-graphql-client/src/snapshots/popcorntime_graphql_client__providers__tests__add_favorite_multiple_mutation_gql_output.snap @@ -0,0 +1,7 @@ +--- +source: crates/popcorntime-graphql-client/src/providers.rs +expression: operation.query +--- +mutation SetFavoriteMultipleProvidersMutation($country: Country!, $providersKey: [String!]!) { + setFavoriteMultipleProviders(country: $country, providersKey: $providersKey) +} diff --git a/crates/popcorntime-tauri/Cargo.toml b/crates/popcorntime-tauri/Cargo.toml index 55e6575af..8cb9bc70c 100644 --- a/crates/popcorntime-tauri/Cargo.toml +++ b/crates/popcorntime-tauri/Cargo.toml @@ -32,7 +32,6 @@ log = "^0.4" tauri.workspace = true tauri-plugin-opener.workspace = true tauri-plugin-log.workspace = true -tauri-plugin-shell.workspace = true tauri-plugin-fs.workspace = true tauri-plugin-deep-link.workspace = true tauri-plugin-updater.workspace = true diff --git a/crates/popcorntime-tauri/capabilities/default.json b/crates/popcorntime-tauri/capabilities/default.json index b5c21eb7f..b331ae9ff 100644 --- a/crates/popcorntime-tauri/capabilities/default.json +++ b/crates/popcorntime-tauri/capabilities/default.json @@ -4,7 +4,6 @@ "description": "Capability for the main window", "windows": ["main"], "permissions": [ - "shell:allow-open", "log:allow-log", "core:resources:default", "core:event:allow-listen", @@ -25,6 +24,17 @@ "updater:allow-install", "process:allow-restart", "core:app:allow-version", - "core:app:allow-name" + "core:app:allow-name", + { + "identifier": "opener:allow-open-url", + "allow": [ + { + "url": "http://127.0.0.1:808*" + }, + { + "url": "https://go.popcorntime.app/*" + } + ] + } ] } diff --git a/crates/popcorntime-tauri/dictionaries.lock b/crates/popcorntime-tauri/dictionaries.lock index 462481b65..63be2f4ae 100644 --- a/crates/popcorntime-tauri/dictionaries.lock +++ b/crates/popcorntime-tauri/dictionaries.lock @@ -462,7 +462,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "es": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -927,7 +950,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "ar": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -1392,7 +1438,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "fa": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -1857,7 +1926,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "ur": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -2322,7 +2414,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "hi": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -2787,7 +2902,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "de": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -3252,7 +3390,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "nl": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -3717,7 +3878,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "sv": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -4182,7 +4366,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "ga": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -4647,7 +4854,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "fi": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -5112,7 +5342,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "he": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -5577,7 +5830,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "no": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -6042,7 +6318,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "da": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -6507,7 +6806,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "it": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -6972,7 +7294,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "ja": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -7437,7 +7782,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "pl": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -7902,7 +8270,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "tr": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -8367,7 +8758,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "et": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -8832,7 +9246,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "el": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -9297,7 +9734,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "pt": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -9762,7 +10222,30 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" }, "sr": { "$['header']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", @@ -10227,6 +10710,29 @@ "$['menu']['preferences']": "003e875495c3de8ac17859bfcc1d92440a8dda08b5fca30e41880def8b7d4b13", "$['menu']['watchPreferences']": "1bc48926d0513ca1dd53720bd1a0b9b2e28d3a1e1cf2ccfd2cab28df95adc86d", "$['menu']['signOut']": "48f0d3d397d49f135f116d947a805b49f084f637154a8e9913e7233a11dc16a0", - "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c" + "$['header']['soon']": "213b8f0f45c9f7bb80df8e44c4ba67ecd9af273ffcc8694676763ab2d14c1f8c", + "$['menu']['manifest']": "d112303f87d043d16e1a4ba295b28e4bfd18c974e1e721bc2d02bbbfc98eb63b", + "$['menu']['logs']": "48700dd5a5ad6f98d26fb2e6fb2f735022eec87936bcd6214063f2cc49cc5909", + "$['onboardingPreferences']['countryTitle']": "c0c4f2c6659de94a7d0ca8b7df8518de26e08b3a3b03325befbab41e83c87c15", + "$['onboardingPreferences']['countryDescription']": "a40b71c3897fa69ec08202cb426cb5f4aa7975a7c942c29453584b932563bfd5", + "$['onboardingPreferences']['languageTitle']": "883071f8f15f6a481685742c5550ae5cadb8405a32c4ba811297444c28f27ee9", + "$['onboardingPreferences']['languageDescription']": "1d6cd414d30f2327b2ae47e5614791ec1fa587735ded721578693817aa91801b", + "$['onboardingPreferences']['changeCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4", + "$['onboardingPreferences']['default']": "52ca01c61e4b10de023c599ace6036573c791acd46797138cef0b3b0a37af960", + "$['onboardingProviders']['title']": "41208c760a26bdf4568838dca50377f116a90501aa34f2bedc11bfdfe0fc51a4", + "$['onboardingProviders']['description']": "9ce15c1bfcd69959985f328156fed838999f8d09eff9400f42cc4c86b1ffc4f0", + "$['onboardingProviders']['searchPlaceholder']": "7a1de35a8e558e3a4d532134a4d6a42d93a48105ba53cb0129558c1c3045b8f8", + "$['onboardingProviders']['category']['popular']": "76327dec9ae3a06a8c3c283e6a81d3710ae736021b583875c13e4e8fb2ad83c0", + "$['onboardingProviders']['category']['free']": "f411a1fb62758b4c54690d0a702b4955b54dd22115416fa7b1ce51b4a084818d", + "$['onboardingProviders']['category']['subscription']": "4999c6c6c7badf456f5b0053b09a2076bdb2391a09ab10c9064a680f8f9a0b30", + "$['onboardingProviders']['category']['all']": "a52ace420f2175d08b1577a1bea5445e36801229c074ef9ed6c55a73401fd9c2", + "$['onboardingProviders']['skip']": "203cad4e01abd37ed22395c6478c2133a321f2f77f2be2d8bf2326632468ecdc", + "$['onboardingProviders']['continue']": "31fbef162594de01bab0cd525c51f74de7bcb15063029fa1a54b2cf5944c80d8", + "$['onboardingProviders']['clearAll']": "29a390f9237e3c84e5641785eca25199620e53f7b6f4b9d843b23dcb5c12904f", + "$['onboardingProviders']['clearSearch']": "3b7ea51793e9d906afa06afb86252abb48e1125cc96a7f5efabcfd8597ea183a", + "$['onboardingProviders']['selected']": "eef30365e9cc4bd8da360e251728fa69114d8cdf133b093249ee07223b2a7abb", + "$['onboardingProviders']['noFound']": "dc3a0116c7c3d33dffde52310d11c2b039904039d5e13b4c915f621c7167ecf4", + "$['onboardingPreferences']['showAll']": "ebd10fbf3cb038b4a7355c15c166c2deef946af74a1969b55f51faf5dc9cf501", + "$['onboardingProviders']['selectCountry']": "e19b22ef6d936dbebc4cdb5ca340aa74af6b18c5b10115959c640d85a600a9d4" } } \ No newline at end of file diff --git a/crates/popcorntime-tauri/dictionaries/ar.json b/crates/popcorntime-tauri/dictionaries/ar.json index 3bfd56dc9..467b6ad18 100644 --- a/crates/popcorntime-tauri/dictionaries/ar.json +++ b/crates/popcorntime-tauri/dictionaries/ar.json @@ -43,6 +43,8 @@ "menu": { "preferences": "اللغة والمنطقة", "watchPreferences": "تفضيلات المشاهدة", + "manifest": "بيان", + "logs": "سجلات التصحيح", "signOut": "تسجيل الخروج" }, "preferences": { @@ -65,6 +67,33 @@ "add": "يضيف", "remove": "إزالة" }, + "onboardingPreferences": { + "countryTitle": "اختر بلدك", + "countryDescription": "حدد بلدك لرؤية اللغات المتاحة", + "languageTitle": "اختر لغتك", + "languageDescription": "اختر لغة الواجهة الخاصة بك وأولوي المحتوى {{inCountry}}", + "changeCountry": "تغيير البلد", + "default": "اللغة الافتراضية", + "showAll": "عرض جميع اللغات" + }, + "onboardingProviders": { + "title": "اختر خدمات البث الخاصة بك", + "description": "اختر المنصات التي يمكنك الوصول إليها حتى نتمكن من عرض ما يمكنك مشاهدته عليك.", + "searchPlaceholder": "ابحث عن مقدمي الخدمات...", + "category": { + "popular": "شائع", + "free": "حر", + "subscription": "اشتراك", + "all": "الجميع" + }, + "skip": "سأفعلها لاحقًا", + "continue": "استمر", + "selectCountry": "تغيير البلد", + "clearAll": "مسح الكل", + "clearSearch": "مسح البحث", + "selected": "{{count}} مزود(ون) تم اختيارهم", + "noFound": "لم يتم العثور على مزودين لـ\"{{query}}\"" + }, "priceType": { "buy": "يشتري", "cinema": "سينما", diff --git a/crates/popcorntime-tauri/dictionaries/da.json b/crates/popcorntime-tauri/dictionaries/da.json index 8ce344e20..e56ed5299 100644 --- a/crates/popcorntime-tauri/dictionaries/da.json +++ b/crates/popcorntime-tauri/dictionaries/da.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Sprog og region", "watchPreferences": "Seerpræferencer", + "manifest": "Manifest", + "logs": "Fejlretningslogfiler", "signOut": "Log ud" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Tilføje", "remove": "Fjern" }, + "onboardingPreferences": { + "countryTitle": "Vælg dit land", + "countryDescription": "Vælg dit land for at se tilgængelige sprog", + "languageTitle": "Vælg dit sprog", + "languageDescription": "Vælg dit grænsefladesprog og prioriter indhold {{inCountry}}", + "changeCountry": "Skift land", + "default": "Standardindstilling af område", + "showAll": "Vis alle sprog" + }, + "onboardingProviders": { + "title": "Vælg dine streamingtjenester", + "description": "Vælg de platforme, du har adgang til, så vi kan vise dig, hvad du skal se.", + "searchPlaceholder": "Søgeudbydere...", + "category": { + "popular": "Populær", + "free": "Gratis", + "subscription": "Abonnement", + "all": "Alle" + }, + "skip": "Jeg gør det senere", + "continue": "Fortsæt", + "selectCountry": "Skift land", + "clearAll": "Ryd alt op", + "clearSearch": "Ryd søgning", + "selected": "{{count}} udbyder(e) valgt", + "noFound": "Ingen udbydere fundet for \"{{query}}\"" + }, "priceType": { "buy": "Købe", "cinema": "Biograf", diff --git a/crates/popcorntime-tauri/dictionaries/de.json b/crates/popcorntime-tauri/dictionaries/de.json index dd26ec1f2..019515f46 100644 --- a/crates/popcorntime-tauri/dictionaries/de.json +++ b/crates/popcorntime-tauri/dictionaries/de.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Sprache & Region", "watchPreferences": "Sehgewohnheiten", + "manifest": "Manifest", + "logs": "Debug-Protokolle", "signOut": "Abmelden" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Hinzufügen", "remove": "Entfernen" }, + "onboardingPreferences": { + "countryTitle": "Wählen Sie Ihr Land", + "countryDescription": "Wähle dein Land, um verfügbare Sprachen zu sehen", + "languageTitle": "Sprache auswählen", + "languageDescription": "Wählen Sie Ihre Schnittstellensprache und priorisieren Sie Inhalte {{inCountry}}", + "changeCountry": "Land ändern", + "default": "Standardgebietsschema", + "showAll": "Alle Sprachen anzeigen" + }, + "onboardingProviders": { + "title": "Wähle deine Streamingdienste aus", + "description": "Wähle die Plattformen aus, auf die du Zugriff hast, damit wir dir zeigen können, was du anschauen kannst.", + "searchPlaceholder": "Suchanbieter durchsuchen...", + "category": { + "popular": "Beliebt", + "free": "Frei", + "subscription": "Abonnement", + "all": "Alle" + }, + "skip": "Ich mache es später.", + "continue": "Fortfahren", + "selectCountry": "Land ändern", + "clearAll": "Alles löschen", + "clearSearch": "Suche löschen", + "selected": "{{count}} Anbieter ausgewählt", + "noFound": "Keine Anbieter für \"{{query}}\" gefunden" + }, "priceType": { "buy": "Kaufen", "cinema": "Kino", diff --git a/crates/popcorntime-tauri/dictionaries/el.json b/crates/popcorntime-tauri/dictionaries/el.json index e0b48fa23..8c648b760 100644 --- a/crates/popcorntime-tauri/dictionaries/el.json +++ b/crates/popcorntime-tauri/dictionaries/el.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Γλώσσα & περιοχή", "watchPreferences": "Προτιμήσεις παρακολούθησης", + "manifest": "μανιφέστο", + "logs": "Αρχεία καταγραφής εντοπισμού σφαλμάτων", "signOut": "Αποσύνδεση" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Προσθέτω", "remove": "Αφαίρεση" }, + "onboardingPreferences": { + "countryTitle": "Επιλέξτε τη χώρα σας", + "countryDescription": "Επιλέξτε τη χώρα σας για να δείτε τις διαθέσιμες γλώσσες", + "languageTitle": "Επιλέξτε τη γλώσσα σας", + "languageDescription": "Επιλέξτε τη γλώσσα διεπαφής σας και δώστε προτεραιότητα στο περιεχόμενο {{inCountry}}", + "changeCountry": "Αλλαγή χώρας", + "default": "Προεπιλεγμένη γλώσσα", + "showAll": "Εμφάνιση όλων των γλωσσών" + }, + "onboardingProviders": { + "title": "Επιλέξτε τις υπηρεσίες streaming σας", + "description": "Επιλέξτε τις πλατφόρμες στις οποίες έχετε πρόσβαση για να σας δείξουμε τι να παρακολουθήσετε.", + "searchPlaceholder": "Αναζήτηση παρόχων...", + "category": { + "popular": "Δημοφιλή", + "free": "Δωρεάν", + "subscription": "Συνδρομή", + "all": "Ολοι" + }, + "skip": "Θα το κάνω αργότερα", + "continue": "Συνέχεια", + "selectCountry": "Αλλαγή χώρας", + "clearAll": "Καθαρισμός όλων των επιλογών", + "clearSearch": "Καθαρισμός αναζήτησης", + "selected": "{{count}} πάροχος(-οι) επιλέχθηκε(-αν)", + "noFound": "Δεν βρέθηκαν πάροχοι για το \"{{query}}\"" + }, "priceType": { "buy": "Αγορά", "cinema": "σινεμά", diff --git a/crates/popcorntime-tauri/dictionaries/en.json b/crates/popcorntime-tauri/dictionaries/en.json index 6aea6deb2..33910dd8e 100644 --- a/crates/popcorntime-tauri/dictionaries/en.json +++ b/crates/popcorntime-tauri/dictionaries/en.json @@ -67,6 +67,33 @@ "add": "Add", "remove": "Remove" }, + "onboardingPreferences": { + "countryTitle": "Select your country", + "countryDescription": "Select your country to see available languages", + "languageTitle": "Select your language", + "languageDescription": "Select your interface language and prioritize content {{inCountry}}", + "changeCountry": "Change country", + "default": "Default locale", + "showAll": "Show all languages" + }, + "onboardingProviders": { + "title": "Select your streaming services", + "description": "Choose the platforms you have access to so we can show you what to watch.", + "searchPlaceholder": "Search providers...", + "category": { + "popular": "Popular", + "free": "Free", + "subscription": "Subscription", + "all": "All" + }, + "skip": "I'll do it later", + "continue": "Continue", + "selectCountry": "Change country", + "clearAll": "Clear all", + "clearSearch": "Clear search", + "selected": "{{count}} provider(s) selected", + "noFound": "No providers found for \"{{query}}\"" + }, "priceType": { "buy": "Buy", "cinema": "Cinema", diff --git a/crates/popcorntime-tauri/dictionaries/es.json b/crates/popcorntime-tauri/dictionaries/es.json index 8ff05e6ea..5001adfea 100644 --- a/crates/popcorntime-tauri/dictionaries/es.json +++ b/crates/popcorntime-tauri/dictionaries/es.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Idioma y región", "watchPreferences": "Preferencias de visualización", + "manifest": "Manifiesto", + "logs": "Registros de depuración", "signOut": "Cerrar sesión" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Agregar", "remove": "Eliminar" }, + "onboardingPreferences": { + "countryTitle": "Selecciona tu país", + "countryDescription": "Selecciona tu país para ver los idiomas disponibles", + "languageTitle": "Selecciona tu idioma", + "languageDescription": "Seleccione su idioma de interfaz y dé prioridad al contenido {{inCountry}}", + "changeCountry": "Cambiar país", + "default": "Configuración regional predeterminada", + "showAll": "Mostrar todos los idiomas" + }, + "onboardingProviders": { + "title": "Selecciona tus servicios de streaming", + "description": "Elige las plataformas a las que tienes acceso para que podamos mostrarte qué ver.", + "searchPlaceholder": "Buscar proveedores...", + "category": { + "popular": "Popular", + "free": "Gratis", + "subscription": "Suscripción", + "all": "Todo" + }, + "skip": "Lo haré más tarde", + "continue": "Continuar", + "selectCountry": "Cambiar país", + "clearAll": "Borrar todo", + "clearSearch": "Borrar búsqueda", + "selected": "{{count}} proveedor(es) seleccionado(s)", + "noFound": "No se encontraron proveedores para \"{{query}}\"" + }, "priceType": { "buy": "Comprar", "cinema": "Cine", diff --git a/crates/popcorntime-tauri/dictionaries/et.json b/crates/popcorntime-tauri/dictionaries/et.json index 6483f16ff..6bb9fbdb1 100644 --- a/crates/popcorntime-tauri/dictionaries/et.json +++ b/crates/popcorntime-tauri/dictionaries/et.json @@ -42,7 +42,9 @@ }, "menu": { "preferences": "Keel ja piirkond", - "watchPreferences": "መልካም እንቅስቃሴ ምርጫዎች", + "watchPreferences": "Vaatamise eelistused", + "manifest": "Manifesto", + "logs": "Logid", "signOut": "Logi välja" }, "preferences": { @@ -63,11 +65,38 @@ "update": "Einstellungen aktualisieren", "toast": "Teie vaatamise eelistused on edukalt uuendatud.", "add": "Lisa", - "remove": "ያስወግዱ" + "remove": "Eemalda" + }, + "onboardingPreferences": { + "countryTitle": "Vali oma riik", + "countryDescription": "Vali oma riik, et näha saadaval olevaid keeli", + "languageTitle": "Vali oma keel", + "languageDescription": "Valige oma liidese keel ja eelistage sisu {{inCountry}}", + "changeCountry": "Muuda riiki", + "default": "Vaikimisi lokaat", + "showAll": "Näita kõiki keeli" + }, + "onboardingProviders": { + "title": "Vali voogedastusteenused", + "description": "Vali need platvormid, millele sul on juurdepääs, et saaksime näidata, mida vaadata.", + "searchPlaceholder": "Otsi pakkujaid...", + "category": { + "popular": "Populaarne", + "free": "Tasuta", + "subscription": "Tellimine", + "all": "Kõik" + }, + "skip": "Jäta vahele", + "continue": "Jätka", + "selectCountry": "Vali maakond", + "clearAll": "Kustuta kõik", + "clearSearch": "Otsi tühjaks", + "selected": "{{count}} pakkuja(t) valitud", + "noFound": "\"{{query}}\" kohta ei leitud ühtegi pakkujat." }, "priceType": { "buy": "Osta", - "cinema": "ሲኒማ", + "cinema": "Kino", "flatrate": "Subscription", "free": "Tasuta", "rent": "Rentida" diff --git a/crates/popcorntime-tauri/dictionaries/fa.json b/crates/popcorntime-tauri/dictionaries/fa.json index 3c14942bb..61d3e364e 100644 --- a/crates/popcorntime-tauri/dictionaries/fa.json +++ b/crates/popcorntime-tauri/dictionaries/fa.json @@ -43,6 +43,8 @@ "menu": { "preferences": "زبان و منطقه", "watchPreferences": "ترجیحات تماشا", + "manifest": "مانیفست", + "logs": "گزارش‌های اشکال‌زدایی", "signOut": "خروج از حساب" }, "preferences": { @@ -65,6 +67,33 @@ "add": "اضافه کردن", "remove": "حذف کنید" }, + "onboardingPreferences": { + "countryTitle": "کشور خود را انتخاب کنید", + "countryDescription": "کشور خود را انتخاب کنید تا زبان‌های موجود را ببینید", + "languageTitle": "زبان خود را انتخاب کنید", + "languageDescription": "زبان رابط کاربری خود را انتخاب کنید و محتوای {{inCountry}} را در اولویت قرار دهید", + "changeCountry": "تغییر کشور", + "default": "موقعیت پیش‌فرض", + "showAll": "نمایش همه زبان‌ها" + }, + "onboardingProviders": { + "title": "سرویس‌های استریم خود را انتخاب کنید", + "description": "پلتفرم‌هایی را که به آنها دسترسی دارید انتخاب کنید تا بتوانیم به شما نشان دهیم چه چیزی را تماشا کنید.", + "searchPlaceholder": "ارائه‌دهندگان جستجو...", + "category": { + "popular": "محبوب", + "free": "رایگان", + "subscription": "اشتراک", + "all": "همه" + }, + "skip": "بعداً انجامش می‌دم", + "continue": "ادامه دهید", + "selectCountry": "تغییر کشور", + "clearAll": "همه را پاک کن", + "clearSearch": "جستجو را پاک کن", + "selected": "{{count}} ارائه‌دهنده انتخاب شده است", + "noFound": "هیچ ارائه‌دهنده‌ای برای \"{{query}}\" یافت نشد" + }, "priceType": { "buy": "خرید کنید", "cinema": "سینما", diff --git a/crates/popcorntime-tauri/dictionaries/fi.json b/crates/popcorntime-tauri/dictionaries/fi.json index 698bec92c..7f9c296aa 100644 --- a/crates/popcorntime-tauri/dictionaries/fi.json +++ b/crates/popcorntime-tauri/dictionaries/fi.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Kieli ja alue", "watchPreferences": "Katseluvalinnat", + "manifest": "Manifesti", + "logs": "Virhelokin kirjaus", "signOut": "Kirjaudu ulos" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Lisätä", "remove": "Poista" }, + "onboardingPreferences": { + "countryTitle": "Valitse maasi", + "countryDescription": "Valitse maa nähdäksesi saatavilla olevat kielet", + "languageTitle": "Valitse kielesi", + "languageDescription": "Valitse käyttöliittymän kieli ja priorisoi sisältö {{inCountry}}", + "changeCountry": "Vaihda maa", + "default": "Oletuslokaatio", + "showAll": "Näytä kaikki kielet" + }, + "onboardingProviders": { + "title": "Valitse suoratoistopalvelusi", + "description": "Valitse käytössäsi olevat alustat, jotta voimme näyttää, mitä katsoa.", + "searchPlaceholder": "Etsi palveluntarjoajia...", + "category": { + "popular": "Suosittu", + "free": "Ilmainen", + "subscription": "Tilauksesi", + "all": "Kaikki" + }, + "skip": "Teen sen myöhemmin", + "continue": "Jatka", + "selectCountry": "Vaihda maa", + "clearAll": "Tyhjennä kaikki", + "clearSearch": "Tyhjennä haku", + "selected": "{{count}} palveluntarjoaja(a) valittu", + "noFound": "Palveluntarjoajia ei löytynyt haulle \"{{query}}\"" + }, "priceType": { "buy": "Ostaa", "cinema": "Elokuvat", diff --git a/crates/popcorntime-tauri/dictionaries/fr.json b/crates/popcorntime-tauri/dictionaries/fr.json index 21d97ee16..d38ee1092 100644 --- a/crates/popcorntime-tauri/dictionaries/fr.json +++ b/crates/popcorntime-tauri/dictionaries/fr.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Langue et région", "watchPreferences": "Préférences de visionnage", + "manifest": "Manifeste", + "logs": "Journaux de débogage", "signOut": "Se déconnecter" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Ajouter", "remove": "Supprimer" }, + "onboardingPreferences": { + "countryTitle": "Sélectionnez votre pays", + "countryDescription": "Sélectionnez votre pays pour voir les langues disponibles", + "languageTitle": "Sélectionnez votre langue", + "languageDescription": "Sélectionnez votre langue d'interface et priorisez le contenu {{inCountry}}", + "changeCountry": "Changer de pays", + "default": "Langue par défaut", + "showAll": "Afficher toutes les langues" + }, + "onboardingProviders": { + "title": "Sélectionnez vos services de streaming", + "description": "Choisissez les plateformes auxquelles vous avez accès afin que nous puissions vous montrer quoi regarder.", + "searchPlaceholder": "Rechercher des fournisseurs...", + "category": { + "popular": "Populaire", + "free": "Gratuit", + "subscription": "Abonnement", + "all": "Tous" + }, + "skip": "Je le ferai plus tard", + "continue": "Continuer", + "selectCountry": "Changer de pays", + "clearAll": "Tout effacer", + "clearSearch": "Effacer la recherche", + "selected": "{{count}} fournisseur(s) sélectionné(s)", + "noFound": "Aucun fournisseur trouvé pour \"{{query}}\"" + }, "priceType": { "buy": "Acheter", "cinema": "Cinéma", diff --git a/crates/popcorntime-tauri/dictionaries/ga.json b/crates/popcorntime-tauri/dictionaries/ga.json index 2c84a690c..52d087a08 100644 --- a/crates/popcorntime-tauri/dictionaries/ga.json +++ b/crates/popcorntime-tauri/dictionaries/ga.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Teanga & réigiún", "watchPreferences": "Roghanna féachana", + "manifest": "Manifiosta", + "logs": "Loga dífhabhtacha", "signOut": "Logáil amach" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Cuir leis", "remove": "Bain" }, + "onboardingPreferences": { + "countryTitle": "Roghnaigh do thír", + "countryDescription": "Roghnaigh do thír chun na teangacha atá ar fáil a fheiceáil", + "languageTitle": "Roghnaigh do theanga", + "languageDescription": "Roghnaigh do theanga comhéadan agus tabhair tús áite do ábhar {{inCountry}}", + "changeCountry": "Athraigh tír", + "default": "Tír dhúchasach réamhshocraithe", + "showAll": "Taispeáin gach teanga" + }, + "onboardingProviders": { + "title": "Roghnaigh do sheirbhísí sruthaithe", + "description": "Roghnaigh na hardáin atá agat rochtain orthu ionas gur féidir linn a thaispeáint duit cad atá le féachaint.", + "searchPlaceholder": "Cuardaigh soláthraithe...", + "category": { + "popular": "Coitianta", + "free": "Saor in aisce", + "subscription": "Síntiús", + "all": "Gach" + }, + "skip": "Déanfaidh mé é níos déanaí.", + "continue": "Lean ar aghaidh", + "selectCountry": "Athraigh tír", + "clearAll": "Glan gach rud", + "clearSearch": "Glan cuardach", + "selected": "Roghnaithe {{count}} soláthraí(í)", + "noFound": "Ní bhfuarthas soláthraithe do \"{{query}}\"" + }, "priceType": { "buy": "Ceannaigh", "cinema": "Pictiúrlann", diff --git a/crates/popcorntime-tauri/dictionaries/he.json b/crates/popcorntime-tauri/dictionaries/he.json index aa587638b..190fa5fb3 100644 --- a/crates/popcorntime-tauri/dictionaries/he.json +++ b/crates/popcorntime-tauri/dictionaries/he.json @@ -43,6 +43,8 @@ "menu": { "preferences": "שפה ואזור", "watchPreferences": "העדפות צפייה", + "manifest": "מניפסט", + "logs": "יומני ניפוי שגיאות", "signOut": "התנתק" }, "preferences": { @@ -65,6 +67,33 @@ "add": "לְהוֹסִיף", "remove": "הסר" }, + "onboardingPreferences": { + "countryTitle": "בחר את המדינה שלך", + "countryDescription": "בחר את המדינה שלך כדי לראות את השפות הזמינות", + "languageTitle": "בחר את השפה שלך", + "languageDescription": "בחר את שפת הממשק שלך ותן עדיפות לתוכן {{inCountry}}", + "changeCountry": "שנה מדינה", + "default": "ברירת מחדל של אזור", + "showAll": "הצג את כל השפות" + }, + "onboardingProviders": { + "title": "בחר את שירותי הסטרימינג שלך", + "description": "בחר את הפלטפורמות שיש לך גישה אליהן כדי שנוכל להראות לך מה לצפות.", + "searchPlaceholder": "חיפוש ספקים...", + "category": { + "popular": "פופולרי", + "free": "לְשַׁחְרֵר", + "subscription": "מנוי", + "all": "כֹּל" + }, + "skip": "אני אעשה את זה אחר כך", + "continue": "המשך", + "selectCountry": "שנה מדינה", + "clearAll": "נקה הכל", + "clearSearch": "נקה חיפוש", + "selected": "נבחרו {{count}} ספק(ים)", + "noFound": "לא נמצאו ספקים עבור \"{{query}}\"" + }, "priceType": { "buy": "לִקְנוֹת", "cinema": "קולנוע", diff --git a/crates/popcorntime-tauri/dictionaries/hi.json b/crates/popcorntime-tauri/dictionaries/hi.json index 738589093..6f529742a 100644 --- a/crates/popcorntime-tauri/dictionaries/hi.json +++ b/crates/popcorntime-tauri/dictionaries/hi.json @@ -43,6 +43,8 @@ "menu": { "preferences": "भाषा और क्षेत्र", "watchPreferences": "देखने की प्राथमिकताएँ", + "manifest": "घोषणापत्र", + "logs": "डीबग लॉग्स", "signOut": "साइन आउट करें" }, "preferences": { @@ -65,6 +67,33 @@ "add": "जोड़ना", "remove": "हटाएं" }, + "onboardingPreferences": { + "countryTitle": "अपना देश चुनें", + "countryDescription": "अपने देश का चयन करें ताकि उपलब्ध भाषाओं को देखा जा सके।", + "languageTitle": "अपनी भाषा चुनें", + "languageDescription": "अपनी इंटरफ़ेस भाषा चुनें और सामग्री को {{inCountry}} प्राथमिकता दें", + "changeCountry": "देश बदलें", + "default": "डिफ़ॉल्ट लोकेल", + "showAll": "सभी भाषाएँ दिखाएँ" + }, + "onboardingProviders": { + "title": "अपनी स्ट्रीमिंग सेवाएँ चुनें", + "description": "उन प्लेटफार्मों का चयन करें जिन तक आपकी पहुंच है ताकि हम आपको दिखा सकें कि क्या देखना है।", + "searchPlaceholder": "प्रदाता खोजें...", + "category": { + "popular": "लोकप्रिय", + "free": "मुक्त", + "subscription": "सदस्यता", + "all": "सभी" + }, + "skip": "बाद में कर लूंगा/लूंगी", + "continue": "जारी रखें", + "selectCountry": "देश बदलें", + "clearAll": "सभी साफ़ करें", + "clearSearch": "खोज साफ़ करें", + "selected": "{{count}} प्रदाता चुने गए", + "noFound": "\"{{query}}\" के लिए कोई प्रदाता नहीं मिला" + }, "priceType": { "buy": "खरीदना", "cinema": "सिनेमा", diff --git a/crates/popcorntime-tauri/dictionaries/it.json b/crates/popcorntime-tauri/dictionaries/it.json index 2137409b5..c89496f25 100644 --- a/crates/popcorntime-tauri/dictionaries/it.json +++ b/crates/popcorntime-tauri/dictionaries/it.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Lingua e regione", "watchPreferences": "Preferenze di visione", + "manifest": "Manifesto", + "logs": "Log di debug", "signOut": "Esci" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Aggiungere", "remove": "Rimuovi" }, + "onboardingPreferences": { + "countryTitle": "Seleziona il tuo paese", + "countryDescription": "Seleziona il tuo paese per vedere le lingue disponibili", + "languageTitle": "Seleziona la tua lingua", + "languageDescription": "Seleziona la lingua dell'interfaccia e dai priorità ai contenuti {{inCountry}}", + "changeCountry": "Cambia paese", + "default": "Impostazione predefinita della lingua", + "showAll": "Mostra tutte le lingue" + }, + "onboardingProviders": { + "title": "Seleziona i tuoi servizi di streaming", + "description": "Scegli le piattaforme a cui hai accesso così possiamo mostrarti cosa guardare.", + "searchPlaceholder": "Fornitori di ricerca...", + "category": { + "popular": "Popolare", + "free": "Gratuito", + "subscription": "Abbonamento", + "all": "Tutto" + }, + "skip": "Lo farò più tardi", + "continue": "Continua", + "selectCountry": "Cambia paese", + "clearAll": "Cancella tutto", + "clearSearch": "Cancella ricerca", + "selected": "{{count}} fornitore(i) selezionato(i)", + "noFound": "Nessun provider trovato per \"{{query}}\"" + }, "priceType": { "buy": "Acquistare", "cinema": "Cinema", diff --git a/crates/popcorntime-tauri/dictionaries/ja.json b/crates/popcorntime-tauri/dictionaries/ja.json index c7a66362e..ec9a1e140 100644 --- a/crates/popcorntime-tauri/dictionaries/ja.json +++ b/crates/popcorntime-tauri/dictionaries/ja.json @@ -43,6 +43,8 @@ "menu": { "preferences": "言語と地域", "watchPreferences": "視聴設定", + "manifest": "マニフェスト", + "logs": "デバッグログ", "signOut": "ログアウト" }, "preferences": { @@ -65,6 +67,33 @@ "add": "追加", "remove": "削除" }, + "onboardingPreferences": { + "countryTitle": "国を選択してください", + "countryDescription": "国を選択して利用可能な言語を確認してください", + "languageTitle": "言語を選択", + "languageDescription": "インターフェイス言語を選択し、{{inCountry}}のコンテンツを優先します。", + "changeCountry": "国を変更", + "default": "デフォルトロケール", + "showAll": "すべての言語を表示" + }, + "onboardingProviders": { + "title": "ストリーミングサービスを選択", + "description": "アクセス可能なプラットフォームを選択してください。視聴できる作品をお見せします。", + "searchPlaceholder": "プロバイダーを検索中...", + "category": { + "popular": "人気", + "free": "無料", + "subscription": "サブスクリプション", + "all": "全て" + }, + "skip": "後でやります", + "continue": "続行", + "selectCountry": "国を変更", + "clearAll": "すべてクリア", + "clearSearch": "検索をクリア", + "selected": "{{count}} 件のプロバイダーが選択されました", + "noFound": "\"{{query}}\" のプロバイダーが見つかりませんでした" + }, "priceType": { "buy": "買う", "cinema": "シネマ", diff --git a/crates/popcorntime-tauri/dictionaries/nl.json b/crates/popcorntime-tauri/dictionaries/nl.json index 520ac0ff7..e582bd89a 100644 --- a/crates/popcorntime-tauri/dictionaries/nl.json +++ b/crates/popcorntime-tauri/dictionaries/nl.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Taal & regio", "watchPreferences": "Bekijk voorkeuren", + "manifest": "Manifest", + "logs": "Foutopsporingslogboeken", "signOut": "Afmelden" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Toevoegen", "remove": "Verwijderen" }, + "onboardingPreferences": { + "countryTitle": "Selecteer je land", + "countryDescription": "Selecteer je land om beschikbare talen te zien", + "languageTitle": "Selecteer je taal", + "languageDescription": "Selecteer je interface taal en geef prioriteit aan inhoud {{inCountry}}", + "changeCountry": "Land wijzigen", + "default": "Standaard landinstelling", + "showAll": "Toon alle talen" + }, + "onboardingProviders": { + "title": "Selecteer je streamingdiensten", + "description": "Kies de platforms waartoe je toegang hebt, zodat we je kunnen laten zien wat je kunt kijken.", + "searchPlaceholder": "Zoekproviders...", + "category": { + "popular": "Populair", + "free": "Vrij", + "subscription": "Abonnement", + "all": "Alle" + }, + "skip": "Ik doe het later.", + "continue": "Doorgaan", + "selectCountry": "Land wijzigen", + "clearAll": "Alles wissen", + "clearSearch": "Zoekopdracht wissen", + "selected": "{{count}} aanbieder(s) geselecteerd", + "noFound": "Geen providers gevonden voor \"{{query}}\"" + }, "priceType": { "buy": "Kopen", "cinema": "Bioscoop", diff --git a/crates/popcorntime-tauri/dictionaries/no.json b/crates/popcorntime-tauri/dictionaries/no.json index 291d4f23b..e6b9c6597 100644 --- a/crates/popcorntime-tauri/dictionaries/no.json +++ b/crates/popcorntime-tauri/dictionaries/no.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Språk og region", "watchPreferences": "Se preferanser for visning", + "manifest": "Manifest", + "logs": "Feilrettingslogger", "signOut": "Logg ut" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Legge til", "remove": "Fjern" }, + "onboardingPreferences": { + "countryTitle": "Velg ditt land", + "countryDescription": "Velg ditt land for å se tilgjengelige språk", + "languageTitle": "Velg ditt språk", + "languageDescription": "Velg ditt grensesnittspråk og prioriter innhold {{inCountry}}", + "changeCountry": "Endre land", + "default": "Standard språkområde", + "showAll": "Vis alle språk" + }, + "onboardingProviders": { + "title": "Velg dine strømmetjenester", + "description": "Velg plattformene du har tilgang til, så vi kan vise deg hva du kan se.", + "searchPlaceholder": "Søkeleverandører...", + "category": { + "popular": "Populær", + "free": "Gratis", + "subscription": "Abonnement", + "all": "Alle" + }, + "skip": "Jeg gjør det senere", + "continue": "Fortsett", + "selectCountry": "Bytt land", + "clearAll": "Tøm alt", + "clearSearch": "Tøm søk", + "selected": "{{count}} leverandør(er) valgt", + "noFound": "Ingen leverandører funnet for \"{{query}}\"" + }, "priceType": { "buy": "Kjøpe", "cinema": "Kino", diff --git a/crates/popcorntime-tauri/dictionaries/pl.json b/crates/popcorntime-tauri/dictionaries/pl.json index 87280df92..3bba1118f 100644 --- a/crates/popcorntime-tauri/dictionaries/pl.json +++ b/crates/popcorntime-tauri/dictionaries/pl.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Język i region", "watchPreferences": "Preferencje oglądania", + "manifest": "Manifest", + "logs": "Dzienniki debugowania", "signOut": "Wyloguj się" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Dodać", "remove": "Usuń" }, + "onboardingPreferences": { + "countryTitle": "Wybierz swój kraj", + "countryDescription": "Wybierz swój kraj, aby zobaczyć dostępne języki", + "languageTitle": "Wybierz swój język", + "languageDescription": "Wybierz język interfejsu i nadaj priorytet treściom {{inCountry}}", + "changeCountry": "Zmień kraj", + "default": "Domyślny język", + "showAll": "Pokaż wszystkie języki" + }, + "onboardingProviders": { + "title": "Wybierz swoje usługi streamingowe", + "description": "Wybierz platformy, do których masz dostęp, abyśmy mogli pokazać Ci, co oglądać.", + "searchPlaceholder": "Wyszukaj dostawców...", + "category": { + "popular": "Popularne", + "free": "Bezpłatny", + "subscription": "Subskrypcja", + "all": "Wszystko" + }, + "skip": "Zrobię to później", + "continue": "Kontynuuj", + "selectCountry": "Zmień kraj", + "clearAll": "Wyczyść wszystko", + "clearSearch": "Wyczyść wyszukiwanie", + "selected": "{{count}} dostawca(ów) wybrano", + "noFound": "Nie znaleziono dostawców dla \"{{query}}\"" + }, "priceType": { "buy": "Kupić", "cinema": "Kino", diff --git a/crates/popcorntime-tauri/dictionaries/pt.json b/crates/popcorntime-tauri/dictionaries/pt.json index bab2c6e0d..fefe1365b 100644 --- a/crates/popcorntime-tauri/dictionaries/pt.json +++ b/crates/popcorntime-tauri/dictionaries/pt.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Idioma e região", "watchPreferences": "Preferências de visualização", + "manifest": "Manifesto", + "logs": "Registros de depuração", "signOut": "Sair" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Adicionar", "remove": "Remover" }, + "onboardingPreferences": { + "countryTitle": "Selecione seu país", + "countryDescription": "Selecione seu país para ver os idiomas disponíveis", + "languageTitle": "Selecione seu idioma", + "languageDescription": "Selecione o idioma da sua interface e priorize o conteúdo {{inCountry}}", + "changeCountry": "Alterar país", + "default": "Local padrão", + "showAll": "Mostrar todos os idiomas" + }, + "onboardingProviders": { + "title": "Selecione seus serviços de streaming", + "description": "Escolha as plataformas às quais você tem acesso para que possamos mostrar o que assistir.", + "searchPlaceholder": "Pesquisar provedores...", + "category": { + "popular": "Popular", + "free": "Livre", + "subscription": "Assinatura", + "all": "Todos" + }, + "skip": "Vou fazer isso depois", + "continue": "Continuar", + "selectCountry": "Alterar país", + "clearAll": "Limpar tudo", + "clearSearch": "Limpar pesquisa", + "selected": "{{count}} provedor(es) selecionado(s)", + "noFound": "Nenhum provedor encontrado para \"{{query}}\"" + }, "priceType": { "buy": "Comprar", "cinema": "Cinema", diff --git a/crates/popcorntime-tauri/dictionaries/sr.json b/crates/popcorntime-tauri/dictionaries/sr.json index 9f05684c3..6bb7a1756 100644 --- a/crates/popcorntime-tauri/dictionaries/sr.json +++ b/crates/popcorntime-tauri/dictionaries/sr.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Језик и регион", "watchPreferences": "Preferencije gledanja", + "manifest": "Manifest", + "logs": "Дебаг логови", "signOut": "Odjavi se" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Додај", "remove": "Уклони" }, + "onboardingPreferences": { + "countryTitle": "Izaberite svoju zemlju", + "countryDescription": "Izaberite svoju zemlju da biste videli dostupne jezike", + "languageTitle": "Odaberite svoj jezik", + "languageDescription": "Izaberite jezik interfejsa i dajte prioritet sadržaju {{inCountry}}", + "changeCountry": "Promeni državu", + "default": "Podrazumevani jezik", + "showAll": "Prikaži sve jezike" + }, + "onboardingProviders": { + "title": "Izaberite svoje streaming usluge", + "description": "Izaberite platforme kojima imate pristup kako bismo vam mogli pokazati šta da gledate.", + "searchPlaceholder": "Pretraživači...", + "category": { + "popular": "Popularno", + "free": "Бесплатно", + "subscription": "Pretplata", + "all": "Сви" + }, + "skip": "Učiniću to kasnije", + "continue": "Nastavi", + "selectCountry": "Promeni zemlju", + "clearAll": "Obriši sve", + "clearSearch": "Obriši pretragu", + "selected": "{{count}} добављен(их) добављач(а)", + "noFound": "Nema dostupnih provajdera za \"{{query}}\"" + }, "priceType": { "buy": "Купи", "cinema": "Bioskop", diff --git a/crates/popcorntime-tauri/dictionaries/sv.json b/crates/popcorntime-tauri/dictionaries/sv.json index b902ae430..a67d3adbe 100644 --- a/crates/popcorntime-tauri/dictionaries/sv.json +++ b/crates/popcorntime-tauri/dictionaries/sv.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Språk och region", "watchPreferences": "Tittarinställningar", + "manifest": "Manifest", + "logs": "Felsökningsloggar", "signOut": "Logga ut" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Tillägga", "remove": "Ta bort" }, + "onboardingPreferences": { + "countryTitle": "Välj ditt land", + "countryDescription": "Välj ditt land för att se tillgängliga språk", + "languageTitle": "Välj ditt språk", + "languageDescription": "Välj ditt gränssnittsspråk och prioritera innehåll {{inCountry}}", + "changeCountry": "Byt land", + "default": "Standardplats", + "showAll": "Visa alla språk" + }, + "onboardingProviders": { + "title": "Välj dina streamingtjänster", + "description": "Välj de plattformar du har tillgång till så kan vi visa vad du kan titta på.", + "searchPlaceholder": "Sök leverantörer...", + "category": { + "popular": "Populär", + "free": "Gratis", + "subscription": "Prenumeration", + "all": "Alla" + }, + "skip": "Jag gör det senare", + "continue": "Fortsätt", + "selectCountry": "Ändra land", + "clearAll": "Rensa alla", + "clearSearch": "Rensa sökning", + "selected": "{{count}} leverantör(er) valda", + "noFound": "Inga leverantörer hittades för \"{{query}}\"" + }, "priceType": { "buy": "Köpa", "cinema": "Bio", diff --git a/crates/popcorntime-tauri/dictionaries/tr.json b/crates/popcorntime-tauri/dictionaries/tr.json index 2be619f31..58ef80893 100644 --- a/crates/popcorntime-tauri/dictionaries/tr.json +++ b/crates/popcorntime-tauri/dictionaries/tr.json @@ -43,6 +43,8 @@ "menu": { "preferences": "Dil ve bölge", "watchPreferences": "İzleme tercihleri", + "manifest": "Manifesto", + "logs": "Hata ayıklama günlükleri", "signOut": "Oturum kapat" }, "preferences": { @@ -65,6 +67,33 @@ "add": "Eklemek", "remove": "Kaldır" }, + "onboardingPreferences": { + "countryTitle": "Ülkenizi seçin", + "countryDescription": "Ülkenizi seçerek mevcut dilleri görün", + "languageTitle": "Dilinizi seçin", + "languageDescription": "Arayüz dilinizi seçin ve {{inCountry}} içeriği öncelikli hale getirin", + "changeCountry": "Ülkeyi değiştir", + "default": "Varsayılan yerel ayar", + "showAll": "Tüm dilleri göster" + }, + "onboardingProviders": { + "title": "Akış hizmetlerinizi seçin", + "description": "Hangi platformlara erişiminiz olduğunu seçin, böylece size ne izlemeniz gerektiğini gösterebiliriz.", + "searchPlaceholder": "Sağlayıcıları ara...", + "category": { + "popular": "Popüler", + "free": "Özgür", + "subscription": "Abonelik", + "all": "Tüm" + }, + "skip": "Daha sonra yaparım", + "continue": "Devam Et", + "selectCountry": "Ülkeyi değiştir", + "clearAll": "Hepsini Temizle", + "clearSearch": "Aramayı temizle", + "selected": "{{count}} sağlayıcı seçildi", + "noFound": "\"{{query}}\" için sağlayıcı bulunamadı" + }, "priceType": { "buy": "Satın almak", "cinema": "Sinema", diff --git a/crates/popcorntime-tauri/dictionaries/ur.json b/crates/popcorntime-tauri/dictionaries/ur.json index d8edae528..2c4869030 100644 --- a/crates/popcorntime-tauri/dictionaries/ur.json +++ b/crates/popcorntime-tauri/dictionaries/ur.json @@ -43,6 +43,8 @@ "menu": { "preferences": "زبان اور علاقہ", "watchPreferences": "دیکھنے کی ترجیحات", + "manifest": "منشور", + "logs": "ڈی بگ لاگز", "signOut": "سائن آؤٹ" }, "preferences": { @@ -65,6 +67,33 @@ "add": "شامل کریں۔", "remove": "ہٹا دیں" }, + "onboardingPreferences": { + "countryTitle": "اپنا ملک منتخب کریں", + "countryDescription": "اپنی زبانیں دیکھنے کے لیے اپنا ملک منتخب کریں", + "languageTitle": "اپنی زبان منتخب کریں", + "languageDescription": "اپنی انٹرفیس زبان منتخب کریں اور مواد کو {{inCountry}} میں ترجیح دیں", + "changeCountry": "ملک تبدیل کریں", + "default": "پہلا علاقہ", + "showAll": "تمام زبانیں دکھائیں" + }, + "onboardingProviders": { + "title": "اپنی اسٹریمنگ سروسز منتخب کریں", + "description": "جن پلیٹ فارمز تک آپ کی رسائی ہے انہیں منتخب کریں تاکہ ہم آپ کو دکھا سکیں کہ کیا دیکھنا ہے۔", + "searchPlaceholder": "تلاش فراہم کنندگان...", + "category": { + "popular": "مقبول", + "free": "مفت", + "subscription": "سبسکرپشن", + "all": "تمام" + }, + "skip": "میں بعد میں کر لوں گا۔", + "continue": "جاری رکھیں", + "selectCountry": "ملک تبدیل کریں", + "clearAll": "سب کچھ صاف کریں", + "clearSearch": "تلاش صاف کریں", + "selected": "{{count}} فراہم کنندہ منتخب کیا گیا", + "noFound": "\"{{query}}\" کے لیے کوئی فراہم کنندہ نہیں ملا۔" + }, "priceType": { "buy": "خریدیں۔", "cinema": "سنیما", diff --git a/crates/popcorntime-tauri/src/graphql.rs b/crates/popcorntime-tauri/src/graphql.rs index a5b16392f..c4c145ce8 100644 --- a/crates/popcorntime-tauri/src/graphql.rs +++ b/crates/popcorntime-tauri/src/graphql.rs @@ -110,6 +110,26 @@ pub async fn set_favorites_provider<'a>( .map_err(Into::into) } +#[tauri::command(async)] +#[specta::specta] +#[instrument(skip(api_client, auth_service), err(Debug))] +pub async fn set_favorites_multiple_providers( + api_client: State<'_, ApiClient>, + auth_service: State<'_, AuthorizationService>, + params: providers::SetFavoriteMultipleProvidersInput, +) -> Result, Error> { + auth_service.validate().await?; + + api_client + .query( + providers::SetFavoriteMultipleProvidersMutation::build(params), + true, + ) + .await + .map(|res| res.data) + .map_err(Into::into) +} + #[tauri::command(async)] #[specta::specta] #[instrument(skip(api_client, auth_service), err(Debug))] diff --git a/crates/popcorntime-tauri/src/main.rs b/crates/popcorntime-tauri/src/main.rs index 25f1ef835..56ef5246f 100644 --- a/crates/popcorntime-tauri/src/main.rs +++ b/crates/popcorntime-tauri/src/main.rs @@ -20,6 +20,7 @@ fn main() { popcorntime_tauri::graphql::media, popcorntime_tauri::graphql::providers, popcorntime_tauri::graphql::set_favorites_provider, + popcorntime_tauri::graphql::set_favorites_multiple_providers, popcorntime_tauri::graphql::set_media_reaction, popcorntime_tauri::window::show_main_window, popcorntime_tauri::session::is_onboarded, @@ -124,7 +125,6 @@ fn main() { Ok(()) }) - .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_process::init()) .plugin(tauri_plugin_updater::Builder::new().build()) .plugin(tauri_plugin_fs::init()) diff --git a/crates/popcorntime-tauri/src/window.rs b/crates/popcorntime-tauri/src/window.rs index ad0e5f14f..8712d37e7 100644 --- a/crates/popcorntime-tauri/src/window.rs +++ b/crates/popcorntime-tauri/src/window.rs @@ -74,7 +74,7 @@ fn window_builder<'a>( .maximizable(false) .title(handle.package_info().name.clone()) .min_inner_size(800.0, 500.0) - .inner_size(1160.0, 720.0) + .inner_size(800.0, 720.0) .focused(true) .on_page_load(on_page_load_script) .disable_drag_drop_handler() diff --git a/packages/popcorntime-i18n/src/index.ts b/packages/popcorntime-i18n/src/index.ts index b041074ea..29a35cd06 100644 --- a/packages/popcorntime-i18n/src/index.ts +++ b/packages/popcorntime-i18n/src/index.ts @@ -2,7 +2,6 @@ import { type Country, type CountryPath, countries, - countryVariations, type DefaultLocaleTag, i18n, type Locale, @@ -12,10 +11,6 @@ import { export { i18n, locales } from "./types.js"; export type { Locale, Country, DefaultLocaleTag, LocaleTag, CountryPath }; export { countries }; -export type LocaleCookie = { - locale: Locale; - forced: boolean; -}; export function getCountryLocale(country: Country): Locale { return i18n.raw[country].default; @@ -28,16 +23,3 @@ export function isDefaultLocale(country: Country, userLocale: Locale) { export function getLocalesForCountry(country: Country) { return i18n.raw[country].languages; } - -export function getVariationForLocale(country: Country, userLocale: Locale) { - if (isDefaultLocale(country, userLocale)) { - if (countryVariations[country]) { - return countryVariations[country]; - } else { - return 1; - } - } else { - // return default variation - return 1; - } -} diff --git a/packages/popcorntime-i18n/src/types.ts b/packages/popcorntime-i18n/src/types.ts index ae685bdda..c4d862bd4 100644 --- a/packages/popcorntime-i18n/src/types.ts +++ b/packages/popcorntime-i18n/src/types.ts @@ -18,28 +18,6 @@ export type CountryPath = { >; }[Country]; -function buildCountryVariations() { - const result: Partial> = {}; - const localeVariation: Partial> = {}; - - for (const country of Object.keys(rawLocales) as Country[]) { - const defaultLocale = rawLocales[country].default; - const order = localeVariation[defaultLocale] || 1; - - result[country] = order as Variation; - - if (order < 5) { - localeVariation[defaultLocale] = (order + 1) as Variation; - } else { - localeVariation[defaultLocale] = 1; - } - } - - return result as Record; -} - -export const countryVariations = buildCountryVariations(); - export const locales = Array.from( new Set(Object.values(rawLocales).flatMap(data => data.languages)) ) as Locale[]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ad0e619d..6ce011db4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,9 +27,6 @@ catalogs: '@tauri-apps/plugin-process': specifier: ^2.3.0 version: 2.3.0 - '@tauri-apps/plugin-shell': - specifier: ^2.3.1 - version: 2.3.1 '@tauri-apps/plugin-updater': specifier: ^2.9.0 version: 2.9.0 @@ -161,9 +158,6 @@ importers: '@tauri-apps/plugin-process': specifier: 'catalog:' version: 2.3.0 - '@tauri-apps/plugin-shell': - specifier: 'catalog:' - version: 2.3.1 '@tauri-apps/plugin-updater': specifier: 'catalog:' version: 2.9.0 @@ -2164,9 +2158,6 @@ packages: '@tauri-apps/plugin-process@2.3.0': resolution: {integrity: sha512-0DNj6u+9csODiV4seSxxRbnLpeGYdojlcctCuLOCgpH9X3+ckVZIEj6H7tRQ7zqWr7kSTEWnrxtAdBb0FbtrmQ==} - '@tauri-apps/plugin-shell@2.3.1': - resolution: {integrity: sha512-jjs2WGDO/9z2pjNlydY/F5yYhNsscv99K5lCmU5uKjsVvQ3dRlDhhtVYoa4OLDmktLtQvgvbQjCFibMl6tgGfw==} - '@tauri-apps/plugin-updater@2.9.0': resolution: {integrity: sha512-j++sgY8XpeDvzImTrzWA08OqqGqgkNyxczLD7FjNJJx/uXxMZFz5nDcfkyoI/rCjYuj2101Tci/r/HFmOmoxCg==} @@ -6807,10 +6798,6 @@ snapshots: dependencies: '@tauri-apps/api': 2.8.0 - '@tauri-apps/plugin-shell@2.3.1': - dependencies: - '@tauri-apps/api': 2.8.0 - '@tauri-apps/plugin-updater@2.9.0': dependencies: '@tauri-apps/api': 2.8.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ff8af4e8b..35d846d44 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,7 +9,6 @@ catalog: "@tauri-apps/plugin-log": ^2.7.0 "@tauri-apps/plugin-opener": ^2.5.0 "@tauri-apps/plugin-process": ^2.3.0 - "@tauri-apps/plugin-shell": ^2.3.1 "@tauri-apps/plugin-updater": ^2.9.0 "@hookform/resolvers": ^5.2.2 "fuse.js": ^7.1.0