Fix some missing fields

This commit is contained in:
Simon Caron
2025-01-07 22:26:09 -05:00
parent 2da774272d
commit 14c8c1aaed
10 changed files with 129 additions and 37 deletions

View File

@@ -6,9 +6,11 @@ import { Image } from "expo-image";
import { useFocusEffect, useRouter } from "expo-router";
import { useCallback } from "react";
import { TouchableOpacity, View } from "react-native";
import {useTranslation } from "react-i18next";
export default function page() {
const router = useRouter();
const { t } = useTranslation();
useFocusEffect(
useCallback(() => {
@@ -20,18 +22,17 @@ export default function page() {
<View className="bg-neutral-900 h-full py-32 px-4 space-y-4">
<View>
<Text className="text-3xl font-bold text-center mb-2">
Welcome to Streamyfin
{t("home.intro.welcome_to_streamyfin")}
</Text>
<Text className="text-center">
A free and open source client for Jellyfin.
{t("home.intro.a_free_and_open_source_client_for_jellyfin")}
</Text>
</View>
<View>
<Text className="text-lg font-bold">Features</Text>
<Text className="text-lg font-bold">{t("home.intro.features_title")}</Text>
<Text className="text-xs">
Streamyfin has a bunch of features and integrates with a wide array of
software which you can find in the settings menu, these include:
{t("home.intro.features_description")}
</Text>
<View className="flex flex-row items-center mt-4">
<Image
@@ -44,8 +45,7 @@ export default function page() {
<View className="shrink ml-2">
<Text className="font-bold mb-1">Jellyseerr</Text>
<Text className="shrink text-xs">
Connect to your Jellyseerr instance and request movies directly in
the app.
{t("home.intro.jellyseerr_feature_description")}
</Text>
</View>
</View>
@@ -60,11 +60,9 @@ export default function page() {
<Ionicons name="cloud-download-outline" size={32} color="white" />
</View>
<View className="shrink ml-2">
<Text className="font-bold mb-1">Downloads</Text>
<Text className="font-bold mb-1">{t("home.intro.downloads_feature_title")}</Text>
<Text className="shrink text-xs">
Download movies and tv-shows to view offline. Use either the
default method or install the optimize server to download files in
the background.
{t("home.intro.downloads_feature_description")}
</Text>
</View>
</View>
@@ -81,7 +79,7 @@ export default function page() {
<View className="shrink ml-2">
<Text className="font-bold mb-1">Chromecast</Text>
<Text className="shrink text-xs">
Cast movies and tv-shows to your Chromecast devices.
{t("home.intro.chromecast_feature_description")}
</Text>
</View>
</View>
@@ -93,7 +91,7 @@ export default function page() {
}}
className="mt-4"
>
Done
{t("home.intro.done_button")}
</Button>
<TouchableOpacity
onPress={() => {
@@ -102,7 +100,7 @@ export default function page() {
}}
className="mt-4"
>
<Text className="text-purple-600 text-center">Go to settings</Text>
<Text className="text-purple-600 text-center">{t("home.intro.go_to_settings_button")}</Text>
</TouchableOpacity>
</View>
);

View File

@@ -30,7 +30,7 @@ export default function page() {
updateSettings({
marlinServerUrl: !val.endsWith("/") ? val : val.slice(0, -1),
});
toast.success("Saved");
toast.success(t("home.settings.plugins.marlin_search.toasts.saved"));
};
const handleOpenLink = () => {
@@ -82,7 +82,7 @@ export default function page() {
<TextInput
editable={settings.searchEngine === "Marlin"}
className="text-white"
placeholder={t("home.settings.plugins.marlin_search.url")}
placeholder={t("home.settings.plugins.marlin_search.server_url_placeholder")}
value={value}
keyboardType="url"
returnKeyType="done"

View File

@@ -83,7 +83,7 @@ const CredentialsSchema = z.object({
className="flex flex-row items-center"
>
<Ionicons name="chevron-back" size={18} color={Colors.primary} />
<Text className="ml-2 text-purple-600">Change server</Text>
<Text className="ml-2 text-purple-600">{t("login.change_server")}</Text>
</TouchableOpacity>
) : null,
});
@@ -100,9 +100,9 @@ const CredentialsSchema = z.object({
}
} catch (error) {
if (error instanceof Error) {
Alert.alert("Connection failed", error.message);
Alert.alert(t("login.connection_failed"), error.message);
} else {
Alert.alert("Connection failed", "An unexpected error occurred");
Alert.alert(t("login.connection_failed"), t("login.an_unexpeted_error_occured"));
}
} finally {
setLoading(false);