feat: onboarding experience (#3149)

This commit is contained in:
pochoclin
2025-10-01 17:02:31 -04:00
committed by GitHub
parent 8f04c57667
commit c8cbdd0714
59 changed files with 1982 additions and 227 deletions

75
.github/ISSUE_TEMPLATE/3_country.yaml vendored Normal file
View File

@@ -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

42
Cargo.lock generated
View File

@@ -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"

View File

@@ -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"

View File

@@ -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:",

View File

@@ -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 (
<>
<SettingsLoaderMount />
<SessionLoaderMount />
<PreferencesLoaderMount />
<ProvidersLoaderMount />
</>
);
}
export function App() {
useErrorHandler();
return (
<HashRouter>
<Providers>
<SettingsLoaderMount />
<SessionLoaderMount />
<PreferencesLoaderMount />
<ProvidersLoaderMount />
<Loaders />
<Routes>
<Route element={<DefaultLayout />}>
<Route index element={<SplashRoute />} />
<Route path="/onboarding">
<Route index element={<OnboardingWelcomeRoute />} />
<Route path="/onboarding/manifest" element={<OnboardingManifestRoute />} />
<Route path="/onboarding/timeline" element={<OnboardingTimelineRoute />} />
<Route path="manifest" element={<OnboardingManifestRoute />} />
<Route path="timeline" element={<OnboardingTimelineRoute />} />
<Route element={<RequireSession />}>
<Route path="providers" element={<OnboardingProvidersRoute />} />
<Route path="preferences" element={<OnboardingPreferencesRoute />} />
</Route>
</Route>
<Route path="/login" element={<LoginRoute />} />
<Route path="/maintenance" element={<MaintenanceRoute />} />
<Route path="*" element={<NotFoundRoute />} />
</Route>
<Route path="/browse/:country/:kind" element={<BrowseLayout />}>
<Route element={<RequireSession />}>
<Route path="/browse" element={<BrowseLayout />}>
<Route index element={<BrowseRoute />} />
</Route>
<Route path="/browse/:country" element={<Navigate to="movie" replace />} />
</Route>
</Routes>
</Providers>
</HashRouter>

View File

@@ -56,7 +56,7 @@ function CommandCenterViewCountrySelection() {
{sortedCountries.map(country => (
<CommandItem
key={country}
onSelect={() => handleNavigation(`/browse/${country}`)}
onSelect={() => handleNavigation(`/browse?country=${country}`)}
className="group gap-2"
>
<span className="flex w-6 justify-center">
@@ -110,7 +110,7 @@ function CommandCenterCommand({ command }: { command: Command }) {
key={command.id}
value={command.id}
onSelect={() => {
handleNavigation(`/browse/${country}`);
handleNavigation(`/browse`);
}}
>
<TrendingUp />
@@ -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`);
}}
>
<Film />
@@ -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`);
}}
>
<Tv />

View File

@@ -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<MediaKind>;
}>();
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() {
<Link
className={cn(
buttonVariants({ variant: "link" }),
kind === "movie" && "text-accent-foreground bg-accent",
kind === "MOVIE" && "text-accent-foreground bg-accent",
"flex gap-2"
)}
to={`/browse/${country}/movie`}
to={`/browse?kind=MOVIE`}
>
<Film className="h-4 w-4" />
<span>{t("browse.movies")}</span>
@@ -106,10 +105,10 @@ export function Header() {
<Link
className={cn(
buttonVariants({ variant: "link" }),
kind === "tv_show" && "text-accent-foreground bg-accent",
kind === "TV_SHOW" && "text-accent-foreground bg-accent",
"flex gap-2"
)}
to={`/browse/${country}/tv_show`}
to={`/browse/?kind=TV_SHOW`}
>
<Tv className="h-4 w-4" />
<span>{t("browse.tv-shows")}</span>

View File

@@ -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<typeof accountFormSchema>;
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 });
}
});
},

View File

@@ -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<Country | null>(null);
const preferencesSucceeded = useGlobalStore(state => state.preferencesSucceeded);
const direction = useGlobalStore(state => state.i18n.direction);
const [selectedLocale, setSelectedLocale] = useState<Locale | null>(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: <MapPin className="text-primary h-8 w-8" />,
content: (
<div className="grid grid-cols-1 gap-3 overflow-y-auto">
{sortedCountries.map(countryCode => (
<button
type="button"
key={countryCode}
className="bg-card hover:bg-card/80 cursor-pointer rounded-md p-4 transition-all"
onClick={() => handleCountrySelect(countryCode)}
>
<div className="flex items-center gap-3">
<span
className={cn("fi fis size-4 rounded", `fi-${countryCode.toLowerCase()}`)}
></span>
<span className="font-medium">{t(`country.${countryCode.toLowerCase()}`)}</span>
</div>
</button>
))}
<div className="flex flex-col items-center justify-center py-12 text-muted-foreground">
<div className="text-3xl font-extrabold tracking-tight uppercase text-balance text-muted-foreground/60">
Your Country is missing?
</div>
<div>
Please{" "}
<Link
className="underline hover:text-foreground space-x-1"
to="https://github.com/popcorntime/popcorntime/issues/new?template=3_country.yaml"
target="_blank"
>
<span>open an issue on GitHub</span>
<ExternalLink className="inline-block size-2" />
</Link>{" "}
to request its addition.
</div>
</div>
</div>
),
},
language: {
title: t("onboardingPreferences.languageTitle"),
description: t("onboardingPreferences.languageDescription", {
inCountry: t(`inCountry.${selectedCountry?.toLowerCase()}`),
}),
icon: <Globe className="text-primary h-8 w-8" />,
content: (
<>
<div className="flex justify-between">
<Button
variant="ghost"
onClick={handleBackToCountry}
className="text-muted-foreground hover:text-foreground mb-4"
>
{direction === "rtl" ? (
<ChevronRight className="mr-1 h-4 w-4" />
) : (
<ChevronLeft className="mr-1 h-4 w-4" />
)}
{t("onboardingPreferences.changeCountry")}
</Button>
{!showAllLocales && (
<Button
variant="ghost"
onClick={() => setShowAllLocales(true)}
className="text-muted-foreground hover:text-foreground mb-4"
>
{t("onboardingPreferences.showAll")}
</Button>
)}
</div>
<div className="grid grid-cols-1 gap-3">
{availableLanguages.map(langCode => (
<button
type="button"
key={langCode}
className="bg-card hover:bg-card/80 cursor-pointer rounded-md p-4 transition-all"
onClick={() => handleLanguageSelect(langCode)}
>
<div className="flex justify-between gap-3 text-left rtl:text-right">
<div className="flex flex-col">
<span className="font-medium">{t(`language.${langCode}`)}</span>
{selectedCountry && isDefaultLocale(selectedCountry, langCode) && (
<span className="text-primary text-xs">
{t("onboardingPreferences.default")}
</span>
)}
</div>
{selectedLocale === langCode && isLoading && <Spinner className={cn()} />}
</div>
</button>
))}
</div>
</>
),
},
};
}, [
t,
sortedCountries,
availableLanguages,
selectedCountry,
selectedLocale,
isLoading,
direction,
]);
return (
<div className="h-screen max-h-screen flex flex-col">
<header className="sticky top-0 z-10 bg-background/80 backdrop-blur supports-[backdrop-filter]:bg-background/60 border-b">
<div className="mx-auto w-full max-w-6xl px-6 py-6 mt-10">
<div className="text-center space-y-3">
<div className="hidden lg:flex w-14 h-14 mx-auto bg-primary/20 rounded-full items-center justify-center">
{steps[currentStep].icon}
</div>
<h2 className="text-3xl font-bold text-foreground">{steps[currentStep].title}</h2>
<p className="text-muted-foreground text-pretty max-w-2xl mx-auto">
{steps[currentStep].description}
</p>
</div>
</div>
</header>
<main className="flex-1 overflow-y-auto">
<div className="mx-auto w-full max-w-xl xl:max-w-4xl px-6 py-6">
<div className="space-y-6">{steps[currentStep].content}</div>
</div>
</main>
</div>
);
}

View File

@@ -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<React.SVGProps<SVGSVGElement>>;
filter: ProviderFilter;
exclude?: WatchPriceType[];
}
export const providerCategories: Record<ProviderCategory, ProviderCategoryInfo> = {
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<string[]>([]);
const [searchQuery, setSearchQuery] = useState("");
const [isLoading, setIsLoading] = useState(false);
const [activeCategory, setActiveCategory] = useState<ProviderCategory>("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 (
<div className="h-screen max-h-screen flex flex-col">
<header className="sticky top-0 z-10 bg-background/80 backdrop-blur supports-[backdrop-filter]:bg-background/60 border-b">
<div className="mx-auto w-full max-w-6xl px-6 py-6 mt-10">
<div className="text-center space-y-3">
<div className="hidden lg:flex w-14 h-14 mx-auto bg-primary/20 rounded-full items-center justify-center">
<Tv className="w-7 h-7 text-primary" />
</div>
<h2 className="text-3xl font-bold text-foreground">{t("onboardingProviders.title")}</h2>
<p className="text-muted-foreground text-pretty max-w-2xl mx-auto">
{t("onboardingProviders.description")}
</p>
<div className="mt-4 grid gap-3 lg:gap-6">
<div className="relative max-w-md mx-auto w-full">
<Search className="absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground w-4 h-4" />
<Input
placeholder={t("onboardingProviders.searchPlaceholder")}
value={searchQuery}
onChange={e => setSearchQuery(e.target.value)}
className="pl-10 bg-card/50 border-border/50"
/>
</div>
<div className="flex flex-wrap justify-center gap-2">
{Object.entries(providerCategories).map(([key, category]) => {
const Icon = category.icon;
const isActive = activeCategory === key;
return (
<Button
key={key}
variant={isActive ? "default" : "outline"}
size="sm"
onClick={() => setActiveCategory(key as ProviderCategory)}
className={cn(
"rounded-full",
isActive ? "bg-primary text-primary-foreground" : "bg-card/50 hover:bg-card"
)}
>
<Icon className="w-4 h-4 mr-2" />
{t(`onboardingProviders.category.${category.key}`)}
</Button>
);
})}
</div>
</div>
</div>
</div>
</header>
<main className="flex-1 overflow-y-auto">
<div className="mx-auto w-full max-w-6xl px-6 py-6">
<div className="space-y-6 pb-28">
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-4">
{providersStatus === "loading" && !isLoading && (
<div className="col-span-full flex items-center justify-center py-12">
<Spinner className="w-8 h-8 text-primary" />
</div>
)}
{filteredProviders.map(provider => {
const isSelected = selectedProviders.includes(provider.key);
return (
<button
type="button"
key={provider.key}
className={cn(
"p-4 cursor-pointer transition-all relative group rounded border",
isSelected
? "bg-primary/10 border-primary/50 ring-1 ring-primary/30"
: "bg-card/80 hover:bg-card border-card hover:border-border"
)}
onClick={() => toggleProvider(provider.key)}
>
<div className="text-center space-y-2">
<div className="size-10 mx-auto">
<ProviderIcon
className="rounded group-hover:scale-105 transition-transform"
icon={provider.logo}
/>
</div>
<h3 className="font-medium text-sm leading-tight line-clamp-1">
{provider.name}
</h3>
</div>
{isSelected && (
<div className="absolute -top-2 -right-2 w-6 h-6 bg-primary rounded-full flex items-center justify-center shadow-lg">
<Check className="w-3 h-3 text-primary-foreground" />
</div>
)}
</button>
);
})}
</div>
{filteredProviders.length === 0 && searchQuery && (
<div className="text-center py-12">
<Search className="w-12 h-12 mx-auto text-muted-foreground/50 mb-4" />
<p className="text-muted-foreground">
{t("onboardingProviders.noFound", { query: searchQuery })}
</p>
<Button variant="ghost" onClick={() => setSearchQuery("")} className="mt-2">
{t("onboardingProviders.clearSearch")}
</Button>
</div>
)}
</div>
</div>
</main>
<footer className="sticky bottom-0 z-10 bg-background/80 backdrop-blur supports-[backdrop-filter]:bg-background/60 border-t">
<div className="mx-auto w-full max-w-6xl px-6 py-4">
<div className="flex flex-col items-center gap-3 sm:flex-row sm:justify-between">
<div className="flex items-center gap-2">
<Badge
variant={selectedProviders.length > 0 ? "default" : "secondary"}
className="px-3 py-1"
>
{t("onboardingProviders.selected", { count: selectedProviders.length })}
</Badge>
{selectedProviders.length > 0 && (
<Button
variant="ghost"
size="sm"
onClick={handleReset}
className="text-xs text-muted-foreground hover:text-foreground"
>
{t("onboardingProviders.clearAll")}
</Button>
)}
</div>
<div className="flex gap-2">
<Button variant="link" onClick={handleChangeCountry}>
{t("onboardingProviders.selectCountry")}
</Button>
<Button disabled={isLoading} onClick={handleContinue} className="flex items-center">
<span>
{selectedProviders.length > 0
? t("onboardingProviders.continue")
: t("onboardingProviders.skip")}
</span>
{isLoading ? (
<Spinner className="size-4 text-primary-foreground" />
) : direction === "rtl" ? (
<ArrowLeft className="size-4" />
) : (
<ArrowRight className="size-4" />
)}
</Button>
</div>
</div>
</div>
</footer>
</div>
);
}

View File

@@ -22,14 +22,11 @@ afterEach(() => {
resetGlobalStore();
});
const renderWithProvider = (initialEntry: string = "/") =>
const renderWithProvider = (initialEntry: string = "/browse") =>
render(
<MemoryRouter initialEntries={[initialEntry]}>
<Routes>
<Route path="/" element={<LayoutWithCountry />}>
<Route index element={<div data-testid="default" />} />
</Route>
<Route path="/browse/:country/:kind" element={<LayoutWithCountry />}>
<Route path="/browse" element={<LayoutWithCountry />}>
<Route index element={<div data-testid="browse" />} />
</Route>
</Routes>
@@ -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");

View File

@@ -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<Context>({
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 (
<CountryContext.Provider

View File

@@ -32,6 +32,24 @@ export const useProviders = () => {
[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,
};
};

View File

@@ -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;
}

View File

@@ -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<MediaSearch[]>([]);
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]);

View File

@@ -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);
});
if (disposed) {
fn();
return;
}
on.sessionServerReady
.listen(event => {
openUrl(event.payload.authorization_url);
})
.then(fn => {
unlisten = fn;
})();
});
return () => {
disposed = true;
if (unlisten) unlisten();
};
return unlisten;
}, [on.sessionServerReady]);
useEffect(() => {
if (appBoot !== "booted") return;
navigate("/");
navigate("/", { replace: true });
}, [appBoot, navigate]);
return (

View File

@@ -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 <OnboardingManifest />;
}
export function OnboardingProvidersRoute() {
return <OnboardingProviders />;
}
export function OnboardingPreferencesRoute() {
return <OnboardingPreferences />;
}

View File

@@ -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 <Navigate to="/login" replace />;
}
return <Outlet />;
}

View File

@@ -23,7 +23,7 @@ function renderWithRouter(initialPath = "/") {
/>
<Route path="/onboarding" element={<div data-testid="onboarding" />} />
<Route path="/login" element={<div data-testid="login" />} />
<Route path="/browse/:country" element={<div data-testid="browse" />} />
<Route path="/browse" element={<div data-testid="browse" />} />
</Routes>
<LocationProbe />
</MemoryRouter>
@@ -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();
});

View File

@@ -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 <SplashScreen />;
if (!onboarded) return <Navigate to="/onboarding" replace />;
if (isActive) {
if (appBoot !== "booted") return <SplashScreen />;
const goto = (country ?? i18n.defaultCountry).toLowerCase();
return <Navigate to={`/browse/${goto}`} replace />;
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]);
return <Navigate to="/login" replace />;
return <SplashScreen />;
}

View File

@@ -55,6 +55,14 @@ async setFavoritesProvider(params: SetFavoriteProviderInput) : Promise<Result<Se
else return { status: "error", error: e as any };
}
},
async setFavoritesMultipleProviders(params: SetFavoriteMultipleProvidersInput) : Promise<Result<SetFavoriteMultipleProvidersMutation | null, { message: string; code: Code }>> {
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<Result<SetReactionMutation | null, { message: string; code: Code }>> {
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 }

View File

@@ -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,
};
});

View File

@@ -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!
}
"""

View File

@@ -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<String>,
}
#[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 {

View File

@@ -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)
}

View File

@@ -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

View File

@@ -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/*"
}
]
}
]
}

View File

@@ -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"
}
}

View File

@@ -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": "سينما",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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": "σινεμά",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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"

View File

@@ -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": "سینما",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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": "קולנוע",

View File

@@ -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": "सिनेमा",

View File

@@ -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",

View File

@@ -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": "シネマ",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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": "سنیما",

View File

@@ -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<Option<providers::SetFavoriteMultipleProvidersMutation>, 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))]

View File

@@ -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())

View File

@@ -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()

View File

@@ -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;
}
}

View File

@@ -18,28 +18,6 @@ export type CountryPath = {
>;
}[Country];
function buildCountryVariations() {
const result: Partial<Record<Country, Variation>> = {};
const localeVariation: Partial<Record<Locale, Variation>> = {};
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<Country, Variation>;
}
export const countryVariations = buildCountryVariations();
export const locales = Array.from(
new Set(Object.values(rawLocales).flatMap(data => data.languages))
) as Locale[];

13
pnpm-lock.yaml generated
View File

@@ -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

View File

@@ -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