chore: add translations for getting started screen

This commit is contained in:
Kingkor Roy Tirtho 2024-02-25 22:48:27 +06:00
parent 17105a640b
commit 4d6af8c0a7
7 changed files with 396 additions and 46 deletions

View File

@ -295,5 +295,23 @@
"delete_playlist": "Delete Playlist",
"delete_playlist_confirmation": "Are you sure you want to delete this playlist?",
"local_tracks": "Local Tracks",
"song_link": "Song Link"
"song_link": "Song Link",
"skip_this_nonsense": "Skip this nonsense",
"freedom_of_music": "“Freedom of Music”",
"freedom_of_music_palm": "“Freedom of Music in the palm of your hand”",
"get_started": "Let's get started",
"youtube_source_description": "Recommended and works best.",
"piped_source_description": "Feeling free? Same as YouTube but a lot free.",
"jiosaavn_source_description": "Best for South Asian region.",
"highest_quality": "Highest Quality: {quality}",
"select_audio_source": "Select Audio Source",
"endless_playback_description": "Automatically append new songs\nto the end of the queue",
"choose_your_region": "Choose your region",
"choose_your_region_description": "This will help Spotube show you the right content\nfor your location.",
"choose_your_language": "Choose your language",
"help_project_grow": "Help this project grow",
"help_project_grow_description": "Spotube is an open-source project. You can help this project grow by contributing to the project, reporting bugs, or suggesting new features.",
"contribute_on_github": "Contribute on GitHub",
"donate_on_open_collective": "Donate on Open Collective",
"browse_anonymously": "Browse Anonymously"
}

View File

@ -3,6 +3,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/collections/assets.gen.dart';
import 'package:spotube/components/shared/page_window_title_bar.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/pages/getting_started/sections/greeting.dart';
import 'package:spotube/pages/getting_started/sections/playback.dart';
import 'package:spotube/pages/getting_started/sections/region.dart';
@ -51,7 +52,7 @@ class GettingStarting extends HookConsumerWidget {
);
},
child: Text(
"Skip this nonsense",
context.l10n.skip_this_nonsense,
style: TextStyle(
decoration: TextDecoration.underline,
decorationColor: colorScheme.primary,

View File

@ -1,11 +1,10 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/collections/assets.gen.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/getting_started/blur_card.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/utils/platform.dart';
class GettingStartedPageGreetingSection extends HookConsumerWidget {
@ -30,7 +29,9 @@ class GettingStartedPageGreetingSection extends HookConsumerWidget {
),
const Gap(4),
Text(
"“Freedom of music${kIsMobile ? "in the palm of your hands" : ""}",
kIsMobile
? context.l10n.freedom_of_music_palm
: context.l10n.freedom_of_music,
textAlign: TextAlign.center,
style: textTheme.titleMedium?.copyWith(
fontWeight: FontWeight.w300,
@ -43,7 +44,7 @@ class GettingStartedPageGreetingSection extends HookConsumerWidget {
child: FilledButton.icon(
onPressed: onNext,
icon: const Icon(SpotubeIcons.angleRight),
label: const Text("Let's get started"),
label: Text(context.l10n.get_started),
),
),
],

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/collections/assets.gen.dart';
@ -18,14 +19,6 @@ final audioSourceToIconMap = {
AudioSource.jiosaavn: Assets.jiosaavn.image(width: 48, height: 48),
};
final audioSourceToDescription = {
AudioSource.youtube:
"Recommended and works best.\nHighest quality: 148kbps mp4, 128kbps opus",
AudioSource.piped: "Feeling free? Same as YouTube but a lot free",
AudioSource.jiosaavn:
"Best for South Asian region.\nHighest quality: 320kbps mp4",
};
class GettingStartedPagePlaybackSection extends HookConsumerWidget {
final VoidCallback onNext;
final VoidCallback onPrevious;
@ -43,6 +36,17 @@ class GettingStartedPagePlaybackSection extends HookConsumerWidget {
final preferences = ref.watch(userPreferencesProvider);
final preferencesNotifier = ref.read(userPreferencesProvider.notifier);
final audioSourceToDescription = useMemoized(
() => {
AudioSource.youtube: "${context.l10n.youtube_source_description}\n"
"${context.l10n.highest_quality("148kbps mp4, 128kbps opus")}",
AudioSource.piped: context.l10n.piped_source_description,
AudioSource.jiosaavn:
"${context.l10n.jiosaavn_source_description}\n"
"${context.l10n.highest_quality("320kbps mp")}",
},
[]);
return Center(
child: BlurCard(
child: Column(
@ -57,7 +61,10 @@ class GettingStartedPagePlaybackSection extends HookConsumerWidget {
),
const Gap(16),
ListTile(
title: Text("Select Audio Source", style: textTheme.titleMedium),
title: Text(
context.l10n.select_audio_source,
style: textTheme.titleMedium,
),
),
const Gap(16),
ToggleButtons(
@ -111,7 +118,7 @@ class GettingStartedPagePlaybackSection extends HookConsumerWidget {
ListTile(
title: Text(context.l10n.endless_playback),
subtitle: Text(
"Automatically append new songs\nto the end of the queue",
context.l10n.endless_playback_description,
style: textTheme.bodySmall?.copyWith(
color: dividerColor,
),

View File

@ -33,7 +33,7 @@ class GettingStartedPageLanguageRegionSection extends HookConsumerWidget {
),
const SizedBox(width: 8),
Text(
"Language and Region",
context.l10n.language_region,
style: textTheme.titleMedium,
),
],
@ -44,11 +44,11 @@ class GettingStartedPageLanguageRegionSection extends HookConsumerWidget {
mainAxisSize: MainAxisSize.min,
children: [
Text(
"Choose your region",
context.l10n.choose_your_region,
style: textTheme.titleSmall,
),
Text(
"This will help us show you the right content\nfor your location.",
context.l10n.choose_your_region_description,
style: textTheme.bodySmall?.copyWith(
color: dividerColor,
),
@ -76,7 +76,7 @@ class GettingStartedPageLanguageRegionSection extends HookConsumerWidget {
),
const Gap(36),
Text(
"Choose your language",
context.l10n.choose_your_language,
style: textTheme.titleSmall,
),
const Gap(16),

View File

@ -4,6 +4,7 @@ import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/getting_started/blur_card.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/services/kv_store/kv_store.dart';
import 'package:url_launcher/url_launcher_string.dart';
@ -28,16 +29,14 @@ class GettingStartedScreenSupportSection extends HookConsumerWidget {
const Icon(SpotubeIcons.heartFilled, color: Colors.pink),
const SizedBox(width: 8),
Text(
"Help this project grow",
context.l10n.help_project_grow,
style:
textTheme.titleMedium?.copyWith(color: Colors.pink),
),
],
),
const Gap(16),
const Text(
"Spotube is an open-source project. You can help this project grow by contributing to the project, reporting bugs, or suggesting new features.",
),
Text(context.l10n.help_project_grow_description),
const Gap(16),
Column(
mainAxisSize: MainAxisSize.min,
@ -45,7 +44,7 @@ class GettingStartedScreenSupportSection extends HookConsumerWidget {
children: [
FilledButton.icon(
icon: const Icon(SpotubeIcons.github),
label: const Text("Contribute on GitHub"),
label: Text(context.l10n.contribute_on_github),
style: FilledButton.styleFrom(
backgroundColor: Colors.black,
foregroundColor: Colors.white,
@ -63,7 +62,7 @@ class GettingStartedScreenSupportSection extends HookConsumerWidget {
const Gap(16),
FilledButton.icon(
icon: const Icon(SpotubeIcons.openCollective),
label: const Text("Donate on Open Collective"),
label: Text(context.l10n.donate_on_open_collective),
style: FilledButton.styleFrom(
backgroundColor: const Color(0xff4cb7f6),
foregroundColor: Colors.white,
@ -98,7 +97,7 @@ class GettingStartedScreenSupportSection extends HookConsumerWidget {
),
child: TextButton.icon(
icon: const Icon(SpotubeIcons.anonymous),
label: const Text("Browse anonymously"),
label: Text(context.l10n.browse_anonymously),
style: TextButton.styleFrom(
foregroundColor: Colors.white,
),
@ -111,7 +110,7 @@ class GettingStartedScreenSupportSection extends HookConsumerWidget {
const Gap(16),
FilledButton.icon(
icon: const Icon(SpotubeIcons.spotify),
label: const Text("Connect Spotify Account"),
label: Text(context.l10n.connect_with_spotify),
style: FilledButton.styleFrom(
backgroundColor: const Color(0xff1db954),
foregroundColor: Colors.white,

View File

@ -8,7 +8,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"bn": [
@ -20,7 +38,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"ca": [
@ -32,7 +68,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"de": [
@ -44,7 +98,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"es": [
@ -56,7 +128,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"fa": [
@ -68,7 +158,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"fr": [
@ -80,7 +188,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"hi": [
@ -92,7 +218,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"it": [
@ -104,7 +248,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"ja": [
@ -116,7 +278,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"ne": [
@ -128,7 +308,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"nl": [
@ -141,7 +339,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"pl": [
@ -153,7 +369,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"pt": [
@ -165,7 +399,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"ru": [
@ -177,7 +429,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"tr": [
@ -189,7 +459,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"uk": [
@ -201,7 +489,25 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
],
"zh": [
@ -213,6 +519,24 @@
"delete_playlist",
"delete_playlist_confirmation",
"local_tracks",
"song_link"
"song_link",
"skip_this_nonsense",
"freedom_of_music",
"freedom_of_music_palm",
"get_started",
"youtube_source_description",
"piped_source_description",
"jiosaavn_source_description",
"highest_quality",
"select_audio_source",
"endless_playback_description",
"choose_your_region",
"choose_your_region_description",
"choose_your_language",
"help_project_grow",
"help_project_grow_description",
"contribute_on_github",
"donate_on_open_collective",
"browse_anonymously"
]
}