diff --git a/linux/app_icon.ico b/assets/icon.ico similarity index 100% rename from linux/app_icon.ico rename to assets/icon.ico diff --git a/assets/icon_mono_small.ico b/assets/icon_mono_small.ico new file mode 100644 index 0000000..9550e09 Binary files /dev/null and b/assets/icon_mono_small.ico differ diff --git a/assets/icon_mono_small.png b/assets/icon_mono_small.png new file mode 100644 index 0000000..691dd95 Binary files /dev/null and b/assets/icon_mono_small.png differ diff --git a/assets/icon_small.png b/assets/icon_small.png new file mode 100644 index 0000000..a8f2f3c Binary files /dev/null and b/assets/icon_small.png differ diff --git a/assets/fonts/MabryPro.otf b/fonts/MabryPro.otf similarity index 100% rename from assets/fonts/MabryPro.otf rename to fonts/MabryPro.otf diff --git a/assets/fonts/MabryProBlack.otf b/fonts/MabryProBlack.otf similarity index 100% rename from assets/fonts/MabryProBlack.otf rename to fonts/MabryProBlack.otf diff --git a/assets/fonts/MabryProBold.otf b/fonts/MabryProBold.otf similarity index 100% rename from assets/fonts/MabryProBold.otf rename to fonts/MabryProBold.otf diff --git a/assets/fonts/MabryProItalic.otf b/fonts/MabryProItalic.otf similarity index 100% rename from assets/fonts/MabryProItalic.otf rename to fonts/MabryProItalic.otf diff --git a/fonts/YouTubeSansExtrabold.otf b/fonts/YouTubeSansExtrabold.otf new file mode 100644 index 0000000..9a2b70c Binary files /dev/null and b/fonts/YouTubeSansExtrabold.otf differ diff --git a/fonts/YouTubeSansLight.otf b/fonts/YouTubeSansLight.otf new file mode 100644 index 0000000..e2b8bc1 Binary files /dev/null and b/fonts/YouTubeSansLight.otf differ diff --git a/fonts/YouTubeSansMedium.otf b/fonts/YouTubeSansMedium.otf new file mode 100644 index 0000000..44a3c1d Binary files /dev/null and b/fonts/YouTubeSansMedium.otf differ diff --git a/fonts/YouTubeSansRegular.otf b/fonts/YouTubeSansRegular.otf new file mode 100644 index 0000000..0037d93 Binary files /dev/null and b/fonts/YouTubeSansRegular.otf differ diff --git a/fonts/YouTubeSansSemibold.otf b/fonts/YouTubeSansSemibold.otf new file mode 100644 index 0000000..7a62056 Binary files /dev/null and b/fonts/YouTubeSansSemibold.otf differ diff --git a/lib/api/download_manager/download_manager.dart b/lib/api/download_manager/download_manager.dart index 95c7fad..5ecf2a5 100644 --- a/lib/api/download_manager/download_manager.dart +++ b/lib/api/download_manager/download_manager.dart @@ -82,7 +82,6 @@ class DownloadManager { FlutterBackgroundService().invoke(method, args); } - @override Future addOfflineTrack(d.Track track, {bool private = true, BuildContext? context, isSingleton = false}) async { //Permission diff --git a/lib/api/download_manager/download_service.dart b/lib/api/download_manager/download_service.dart index cfb3c7c..269cead 100644 --- a/lib/api/download_manager/download_service.dart +++ b/lib/api/download_manager/download_service.dart @@ -1,6 +1,3 @@ -import 'package:freezer/api/cache.dart'; -import 'package:freezer/api/deezer_audio.dart'; -import 'package:freezer/api/download_manager/database.dart'; import 'package:freezer/api/download_manager/service_interface.dart'; import 'package:freezer/settings.dart'; diff --git a/lib/api/pipe_api.dart b/lib/api/pipe_api.dart index 0481cd7..f4f3187 100644 --- a/lib/api/pipe_api.dart +++ b/lib/api/pipe_api.dart @@ -11,8 +11,8 @@ class PipeAPI { PipeAPI._(); // JWT for pipe.deezer.com - String? jwt; - int jwtExpiration = 0; + String? _jwt; + int _jwtExpiration = 0; final _logger = Logger('PipeAPI'); @@ -21,26 +21,32 @@ class PipeAPI { Future authorize() async { // authorize on pipe.deezer.com - if (DateTime.now().millisecondsSinceEpoch ~/ 1000 < jwtExpiration) { + if (DateTime.now().millisecondsSinceEpoch ~/ 1000 < _jwtExpiration) { // only continue if JWT expired! return; } // arl should be contained in cookies, so we should be fine - final res = await dio.post( - 'https://auth.deezer.com/login/arl?jo=p&rto=c&i=c', + var res = await dio.post('https://auth.deezer.com/login/arl?jo=p&rto=c&i=c', options: Options(responseType: ResponseType.plain)); final data = jsonDecode(res.data); + + if (res.statusCode == 400) { + // renew token (refresh token should be in cookies) + res = await dio.post('https://auth.deezer.com/login/renew?jo=p&rto=c&i=c', + options: Options(responseType: ResponseType.plain)); + } + if (res.statusCode != 200 || data['jwt'] == null || data['jwt'] == '') { throw Exception('Pipe authentication failed!'); } - jwt = data['jwt']; - _logger.fine('got jwt: $jwt'); + _jwt = data['jwt']; + _logger.fine('got jwt: $_jwt'); // decode JWT - final parts = jwt!.split('.'); + final parts = _jwt!.split('.'); final jwtData = jsonDecode(utf8.decode(base64Url.decode(parts[1]))); - jwtExpiration = jwtData['exp']; + _jwtExpiration = jwtData['exp']; } Future> callApi( @@ -55,13 +61,12 @@ class PipeAPI { 'variables': variables, 'query': query, }), - options: Options(headers: {'Authorization': 'Bearer $jwt'}), + options: Options(headers: {'Authorization': 'Bearer $_jwt'}), cancelToken: cancelToken); return res.data; } // -- Not working -- - @deprecated Future<(String, int)> getTrackToken(String trackId) async { final data = await callApi( 'TrackMediaToken', @@ -77,7 +82,7 @@ class PipeAPI { ); } - Future lyrics(String trackId, {CancelToken? cancelToken}) async { + Future lyrics(String trackId, {CancelToken? cancelToken}) async { final data = await callApi( 'SynchronizedTrackLyrics', r'''query SynchronizedTrackLyrics($trackId: String!) { @@ -119,7 +124,11 @@ fragment LyricsSynchronizedLines on LyricsSynchronizedLine { {'trackId': trackId}, cancelToken: cancelToken, ); - final lyrics = data['data']['track']['lyrics'] as Map; + final lyrics = data['data']['track']['lyrics'] as Map?; + if (lyrics == null) { + return null; + } + if (lyrics['synchronizedLines'] != null) { return Lyrics( id: lyrics['id'], diff --git a/lib/api/player/audio_handler.dart b/lib/api/player/audio_handler.dart index 1757fbf..f837e5b 100644 --- a/lib/api/player/audio_handler.dart +++ b/lib/api/player/audio_handler.dart @@ -8,6 +8,7 @@ import 'package:freezer/api/audio_sources/offline_audio_source.dart'; import 'package:freezer/api/paths.dart'; import 'package:freezer/api/player/player_helper.dart'; import 'package:freezer/api/audio_sources/url_audio_source.dart'; +import 'package:freezer/api/player/systray.dart'; import 'package:freezer/ui/android_auto.dart'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:just_audio/just_audio.dart'; @@ -17,7 +18,6 @@ import 'package:logging/logging.dart'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; import 'package:collection/collection.dart'; -import 'package:rxdart/rxdart.dart'; import 'package:scrobblenaut/scrobblenaut.dart'; import '../definitions.dart'; @@ -72,6 +72,8 @@ class AudioPlayerTaskInitArguments { class AudioPlayerTask extends BaseAudioHandler { final _logger = Logger('AudioPlayerTask'); + bool _disposed = false; + late AudioPlayer _player; late ConcatenatingAudioSource _audioSource; late DeezerAPI _deezerAPI; @@ -90,11 +92,7 @@ class AudioPlayerTask extends BaseAudioHandler { int _queueAutoIncrement = 0; //Stream subscriptions - StreamSubscription? _eventSubscription; - StreamSubscription? _bufferPositionSubscription; - StreamSubscription? _audioSessionSubscription; - StreamSubscription? _visualizerSubscription; - StreamSubscription? _connectivitySubscription; + List _subscriptions = []; bool _isConnectivityPluginAvailable = true; /// Android Auto helper class for navigation @@ -135,6 +133,8 @@ class AudioPlayerTask extends BaseAudioHandler { /// When playback begun (in SECONDS) int? _timestamp; + bool _ignoreInterruptions = false; + MediaItem get currentMediaItem => queue.value[_queueIndex]; bool get currentMediaItemIsShow => @@ -145,13 +145,13 @@ class AudioPlayerTask extends BaseAudioHandler { AudioPlayerTask([AudioPlayerTaskInitArguments? initArgs]) { if (initArgs == null) { - unawaited(AudioPlayerTaskInitArguments.loadSettings().then(_init)); + unawaited(AudioPlayerTaskInitArguments.loadSettings().then(_start)); return; } - unawaited(_init(initArgs)); + unawaited(_start(initArgs)); } - Future _init(AudioPlayerTaskInitArguments initArgs) async { + Future _start(AudioPlayerTaskInitArguments initArgs) async { // Linux and Windows support JustAudioMediaKit.ensureInitialized(); JustAudioMediaKit.title = 'Freezer'; @@ -162,79 +162,95 @@ class AudioPlayerTask extends BaseAudioHandler { _androidAuto = AndroidAuto(deezerAPI: _deezerAPI); _shouldLogTracks = initArgs.logListen; _seekAsSkip = initArgs.seekAsSkip; + _ignoreInterruptions = initArgs.ignoreInterruptions; final session = await AudioSession.instance; - session.configure(const AudioSessionConfiguration.music()); + await session.configure(const AudioSessionConfiguration.music()); _box = await Hive.openLazyBox('playback', path: await Paths.cacheDir()); + _init(); + await _loadQueueFile(); + + if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) { + unawaited(sysTray.init()); + } + + if (initArgs.lastFMUsername != null && initArgs.lastFMPassword != null) { + unawaited( + _authorizeLastFM(initArgs.lastFMUsername!, initArgs.lastFMPassword!)); + } + } + + Future _init() async { _player = AudioPlayer( - handleInterruptions: !initArgs.ignoreInterruptions, + handleInterruptions: !_ignoreInterruptions, androidApplyAudioAttributes: true, handleAudioSessionActivation: true, ); - _player.currentIndexStream.listen((index) { - if (index != null && queue.value.isNotEmpty) { - // Update track index + update media item - _queueIndex = index; - mediaItem.add(currentMediaItem); + _subscriptions = [ + _player.currentIndexStream.listen((index) { + if (index != null && queue.value.isNotEmpty) { + // Update track index + update media item + _queueIndex = index; + mediaItem.add(currentMediaItem); - // log previous track - if (index != 0 && - _lastTrackId != null && - _lastTrackId! != currentMediaItem.id) { - unawaited(_logListenedTrack(_lastTrackId!, - sync: _amountPaused == 0 && _amountSeeked == 0)); - } - - _lastTrackId = currentMediaItem.id; - _amountSeeked = 0; - _amountPaused = 0; - _timestamp = DateTime.now().millisecondsSinceEpoch ~/ 1000; - - //LastFM - if (_queueIndex >= queue.value.length) return; - if (_scrobblenaut != null && currentMediaItem.id != _loggedTrackId) { - _loggedTrackId = currentMediaItem.id; - unawaited(_scrobblenaut!.track.scrobble( - track: currentMediaItem.title, - artist: currentMediaItem.artist!, - album: currentMediaItem.album, - duration: currentMediaItem.duration, - )); - } - } - - if (index == queue.value.length - 1) { - // if the queue is ended, load more tracks if applicable - unawaited(_onQueueEnd()); - } - }); - //Update state on all clients on change - _eventSubscription = _player.playbackEventStream.listen((event) { - //Update - _broadcastState(); - }, onError: (Object e, StackTrace st) { - _logger.severe('A stream error occurred: $e'); - }); - _player.processingStateStream.listen((state) { - switch (state) { - case ProcessingState.completed: - //Player ended, get more songs - if (_queueIndex == queue.value.length - 1) { - _onQueueEnd(); + // log previous track + if (index != 0 && + _lastTrackId != null && + _lastTrackId! != currentMediaItem.id) { + unawaited(_logListenedTrack(_lastTrackId!, + sync: _amountPaused == 0 && _amountSeeked == 0)); } - break; - default: - break; - } - }); - _bufferPositionSubscription = - _player.bufferedPositionStream.listen((bufferPosition) { - customEvent.add({'action': 'bufferPosition', 'data': bufferPosition}); - }); + _lastTrackId = currentMediaItem.id; + _amountSeeked = 0; + _amountPaused = 0; + _timestamp = DateTime.now().millisecondsSinceEpoch ~/ 1000; + + //LastFM + if (_queueIndex >= queue.value.length) return; + if (_scrobblenaut != null && currentMediaItem.id != _loggedTrackId) { + _loggedTrackId = currentMediaItem.id; + unawaited(_scrobblenaut!.track.scrobble( + track: currentMediaItem.title, + artist: currentMediaItem.artist!, + album: currentMediaItem.album, + duration: currentMediaItem.duration, + )); + } + } + + if (index == queue.value.length - 1) { + // if the queue is ended, load more tracks if applicable + unawaited(_onQueueEnd()); + } + }), + //Update state on all clients on change + _player.playbackEventStream.listen((event) { + //Update + _broadcastState(); + }, onError: (Object e, StackTrace st) { + _logger.severe('A stream error occurred: $e'); + }), + _player.processingStateStream.listen((state) { + switch (state) { + case ProcessingState.completed: + //Player ended, get more songs + if (_queueIndex == queue.value.length - 1) { + _onQueueEnd(); + } + break; + default: + break; + } + }), + + _player.bufferedPositionStream.listen((bufferPosition) { + customEvent.add({'action': 'bufferPosition', 'data': bufferPosition}); + }), + ]; //Audio session // _audioSessionSubscription = @@ -247,17 +263,16 @@ class AudioPlayerTask extends BaseAudioHandler { // ex. Linux without NetworkManager if (await _determineAudioQuality()) { // listen for connectivity changes - _connectivitySubscription = Connectivity() + _subscriptions.add(Connectivity() .onConnectivityChanged - .listen(_determineAudioQualityByResult); + .listen(_determineAudioQualityByResult)); } + } - await _loadQueueFile(); + Future _maybeResume() { + if (!_disposed) return Future.value(); - if (initArgs.lastFMUsername != null && initArgs.lastFMPassword != null) { - await _authorizeLastFM( - initArgs.lastFMUsername!, initArgs.lastFMPassword!); - } + return _init(); } /// Determine the [AudioQuality] to use according to current connection @@ -303,9 +318,15 @@ class AudioPlayerTask extends BaseAudioHandler { @override Future skipToQueueItem(int index) async { + await _maybeResume(); _lastPosition = null; - - unawaited(_logListenedTrack(currentMediaItem.id, sync: false)); + // next or prev track? + unawaited(_logListenedTrack( + currentMediaItem.id, + sync: false, + next: _queueIndex + 1 == index, + prev: _queueIndex - 1 == index, + )); //Skip in player await _player.seek(Duration.zero, index: index); _queueIndex = index; @@ -314,6 +335,7 @@ class AudioPlayerTask extends BaseAudioHandler { @override Future play() async { + await _maybeResume(); _player.play(); //Restore position on play if (_lastPosition != null) { @@ -329,13 +351,15 @@ class AudioPlayerTask extends BaseAudioHandler { } @override - Future seek(Duration? position) { + Future seek(Duration? position) async { + await _maybeResume(); _amountSeeked++; return _player.seek(position); } @override - Future fastForward() { + Future fastForward() async { + await _maybeResume(); print('fast forward called'); if (currentMediaItemIsShow) { return _seekRelative(const Duration(seconds: 30)); @@ -347,7 +371,8 @@ class AudioPlayerTask extends BaseAudioHandler { } @override - Future rewind() { + Future rewind() async { + await _maybeResume(); print('rewind called'); if (currentMediaItemIsShow) { return _seekRelative(-const Duration(seconds: 30)); @@ -395,6 +420,7 @@ class AudioPlayerTask extends BaseAudioHandler { @override Future skipToNext() async { + await _maybeResume(); _lastPosition = null; if (_queueIndex == queue.value.length - 1) return; //Update buffering state @@ -406,6 +432,7 @@ class AudioPlayerTask extends BaseAudioHandler { @override Future skipToPrevious() async { + await _maybeResume(); if (_queueIndex == 0) return; //Update buffering state //_skipState = AudioProcessingState.skippingToPrevious; @@ -737,12 +764,11 @@ class AudioPlayerTask extends BaseAudioHandler { @override Future stop() async { await _saveQueue(); - _player.stop(); - _eventSubscription?.cancel(); - _audioSessionSubscription?.cancel(); - _visualizerSubscription?.cancel(); - _bufferPositionSubscription?.cancel(); - _connectivitySubscription?.cancel(); + _disposed = true; + _player.dispose(); + for (final subscription in _subscriptions) { + subscription.cancel(); + } await super.stop(); } diff --git a/lib/api/player/player_helper.dart b/lib/api/player/player_helper.dart index f3b6713..adeeb39 100644 --- a/lib/api/player/player_helper.dart +++ b/lib/api/player/player_helper.dart @@ -208,7 +208,7 @@ class PlayerHelper { tracks[0].id, QueueSource( id: trackId, - text: '${'Mix based on'.i18n} $trackTitle', + text: 'Mix based on %s'.i18n.fill([trackTitle]), source: 'mix')); } @@ -218,7 +218,7 @@ class PlayerHelper { null, QueueSource( id: track.id, - text: "${'Mix based on'.i18n} ${track.title}", + text: 'Mix based on %s'.i18n.fill([track.title!]), source: 'searchMix')); List tracks = await deezerAPI.getSearchTrackMix(track.id, false); // discard first track (if it is the searched track) @@ -237,7 +237,7 @@ class PlayerHelper { null, // we can avoid passing it, as the index is 0 QueueSource( id: trackId, - text: "${'Mix based on'.i18n} $trackTitle", + text: 'Mix based on %s'.i18n.fill([trackTitle]), source: 'searchMix')); } diff --git a/lib/api/player/systray.dart b/lib/api/player/systray.dart new file mode 100644 index 0000000..b4e984f --- /dev/null +++ b/lib/api/player/systray.dart @@ -0,0 +1,107 @@ +import 'dart:io'; + +import 'package:audio_service/audio_service.dart'; +import 'package:flutter/services.dart'; +import 'package:freezer/api/player/audio_handler.dart'; +import 'package:freezer/settings.dart'; +import 'package:freezer/translations.i18n.dart'; +import 'package:tray_manager/tray_manager.dart'; +import 'package:window_manager/window_manager.dart'; + +final sysTray = SysTray._(); + +class SysTray with TrayListener { + SysTray._(); + + static String getIcon({bool forcePng = false}) { + if (Platform.isWindows && !forcePng) { + if (settings.useColorTrayIcon) { + return 'assets/icon.ico'; + } + return 'assets/icon_mono_small.ico'; + } + + if (settings.useColorTrayIcon) { + return 'assets/icon_small.png'; + } + + return 'assets/icon_mono_small.png'; + } + + bool _inited = false; + Future init() async { + if (_inited) return; + _inited = true; + + updateIcon(); + try { + await trayManager.setToolTip('freezer'); + // ignore: empty_catches + } catch (e) {} + + await updateContextMenu(); + + trayManager.addListener(this); + + playerHelper.playing + .listen((playing) => updateContextMenu(playing: playing)); + audioHandler.mediaItem + .listen((mediaItem) => updateContextMenu(mediaItem: mediaItem)); + } + + Future updateIcon() { + return trayManager.setIcon(getIcon()); + } + + Future updateContextMenu({bool? playing, MediaItem? mediaItem}) async { + playing ??= playerHelper.playing.valueOrNull ?? false; + mediaItem ??= audioHandler.mediaItem.valueOrNull; + // create context menu + final menu = Menu(items: [ + if (mediaItem != null) ...[ + MenuItem(label: mediaItem.title, disabled: true), + MenuItem(label: mediaItem.artist!, disabled: true), + ], + MenuItem.separator(), + MenuItem( + label: 'Previous'.i18n, + onClick: (menuItem) => audioHandler.skipToPrevious()), + playing + ? MenuItem( + label: 'Pause'.i18n, onClick: (menuItem) => audioHandler.pause()) + : MenuItem( + label: 'Play'.i18n, onClick: (menuItem) => audioHandler.play()), + MenuItem( + label: 'Next'.i18n, onClick: (menuItem) => audioHandler.skipToNext()), + MenuItem.separator(), + MenuItem( + label: 'Show'.i18n, + // we can safely ignore it if it errors, as it's expected + onClick: (menuItem) => windowManager.show().catchError((e) {})), + MenuItem( + label: 'Exit'.i18n, + onClick: (menuItem) async { + await audioHandler.pause(); + SystemNavigator.pop(); + }, + ), + ]); + + // set context menu + await trayManager.setContextMenu(menu); + } + + @override + void onTrayIconMouseUp() async { + try { + await windowManager.show(); + // ignore: empty_catches + } catch (e) {} + } + + @override + void onTrayIconRightMouseUp() => trayManager.popUpContextMenu(); + + @override + void onTrayMenuItemClick(MenuItem menuItem) {} +} diff --git a/lib/main.dart b/lib/main.dart index eaa7028..125e0b4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -161,7 +161,7 @@ class _FreezerAppState extends State with WidgetsBindingObserver { break; default: - print('lifecycle: $state'); + break; } } @@ -193,6 +193,8 @@ class _FreezerAppState extends State with WidgetsBindingObserver { DynamicColorBuilder(builder: (lightScheme, darkScheme) { final lightTheme = settings.materialYouAccent ? ThemeData( + textTheme: settings.textTheme, + fontFamily: settings.fontFamily, colorScheme: lightScheme, useMaterial3: true, appBarTheme: const AppBarTheme( @@ -208,6 +210,8 @@ class _FreezerAppState extends State with WidgetsBindingObserver { : settings.themeData; final darkTheme = settings.materialYouAccent ? ThemeData( + textTheme: settings.textTheme, + fontFamily: settings.fontFamily, colorScheme: darkScheme, useMaterial3: true, brightness: Brightness.dark, diff --git a/lib/settings.dart b/lib/settings.dart index c91951c..0ce4429 100644 --- a/lib/settings.dart +++ b/lib/settings.dart @@ -175,6 +175,10 @@ class Settings { @HiveField(49, defaultValue: true) bool enableMaterial3PlayButton = true; + // DESKTOP ONLY -- TRAY ICON + @HiveField(50, defaultValue: false) + bool useColorTrayIcon = false; + static LazyBox? __box; static Future> get _box async => __box ??= await Hive.openLazyBox('settings'); @@ -218,9 +222,10 @@ class Settings { return _themeData[theme] ?? ThemeData(); } + final customFonts = ['System', 'YouTube Sans', 'Deezer']; //Get all available fonts List get fonts { - return ['System', 'Deezer', ...GoogleFonts.asMap().keys]; + return [...customFonts, ...GoogleFonts.asMap().keys]; } //JSON to forward into download service @@ -310,11 +315,11 @@ class Settings { static const deezerBg = Color(0xFF1F1A16); static const deezerBottom = Color(0xFF1b1714); - TextTheme? get textTheme => (font == 'Deezer' || font == 'System') + TextTheme? get textTheme => customFonts.contains(font) ? null : GoogleFonts.getTextTheme(font, isDark ? ThemeData.dark().textTheme : ThemeData.light().textTheme); - String? get fontFamily => (font == 'Deezer') ? 'MabryPro' : null; + String? get fontFamily => (font == 'Deezer') ? 'Mabry Pro' : null; final _elevation1Black = Color.alphaBlend(Colors.white12, Colors.black); diff --git a/lib/translations.i18n.dart b/lib/translations.i18n.dart index 7c95ce3..a458a68 100644 --- a/lib/translations.i18n.dart +++ b/lib/translations.i18n.dart @@ -42,6 +42,12 @@ extension Localization on String { static final _t = Translations.byLocale("en_US") + language_en_us + crowdin; String get i18n => localize(this, _t); + + String plural(value) { + return replaceAll("%d", value.toString()); + } + + String fill(List params) => localizeFill(this, params); } class Language { diff --git a/lib/ui/home_screen.dart b/lib/ui/home_screen.dart index 064a47d..95b44ea 100644 --- a/lib/ui/home_screen.dart +++ b/lib/ui/home_screen.dart @@ -382,9 +382,9 @@ class HomePageItemWidget extends StatelessWidget { Navigator.of(context) .pushRoute(builder: (context) => AlbumDetails(item.value)); }, - onHold: () { + onSecondary: (details) { MenuSheet m = MenuSheet(context); - m.defaultAlbumMenu(item.value); + m.defaultAlbumMenu(item.value, details: details); }, ); case HomePageItemType.ARTIST: diff --git a/lib/ui/lyrics_screen.dart b/lib/ui/lyrics_screen.dart index 718073c..4be7394 100644 --- a/lib/ui/lyrics_screen.dart +++ b/lib/ui/lyrics_screen.dart @@ -85,6 +85,7 @@ class _LyricsWidgetState extends State _freeScroll = false; _loading = true; _lyrics = null; + _error = null; }); } @@ -92,7 +93,13 @@ class _LyricsWidgetState extends State _lyricsCancelToken = CancelToken(); final lyrics = await pipeAPI.lyrics(trackId, cancelToken: _lyricsCancelToken); + if (lyrics == null) { + setState(() { + _error = 'No lyrics available.'; + }); + return; + } _syncedLyrics = lyrics.sync; _availableTranslation = lyrics.lyrics![0].translated != null; if (!_availableTranslation) { diff --git a/lib/ui/menu.dart b/lib/ui/menu.dart index e3db986..a6d5afa 100644 --- a/lib/ui/menu.dart +++ b/lib/ui/menu.dart @@ -105,7 +105,7 @@ class MenuSheetOption { class MenuSheet { final BuildContext context; - final Function? navigateCallback; + final VoidCallback? navigateCallback; MenuSheet(this.context, {this.navigateCallback}); @@ -233,12 +233,14 @@ class MenuSheet { void defaultTrackMenu( Track track, { List options = const [], + List optionsTop = const [], Function? onRemove, TapUpDetails? details, }) { showWithTrack( track, [ + ...optionsTop, addToQueueNext(track), addToQueue(track), (cache.checkTrackFavorite(track)) diff --git a/lib/ui/player_screen.dart b/lib/ui/player_screen.dart index 8c7bcf5..cd584ca 100644 --- a/lib/ui/player_screen.dart +++ b/lib/ui/player_screen.dart @@ -832,7 +832,7 @@ class BigAlbumArt extends StatefulWidget { State createState() => _BigAlbumArtState(); } -class _BigAlbumArtState extends State { +class _BigAlbumArtState extends State with WidgetsBindingObserver { final _pageController = PageController( initialPage: playerHelper.queueIndex, keepPage: false, @@ -842,14 +842,15 @@ class _BigAlbumArtState extends State { /// is true on pointer down event /// used to distinguish between [PageController.animateToPage] and user gesture - bool _userScroll = false; + bool _userScroll = true; /// whether the user has already scrolled the [PageView], /// so to avoid calling [PageController.animateToPage] again. bool _initiatedByUser = false; - @override - void initState() { + void _listenForMediaItemChanges() { + if (_currentItemSub != null) return; + _currentItemSub = audioHandler.mediaItem.listen((event) async { if (_initiatedByUser) { _initiatedByUser = false; @@ -859,12 +860,32 @@ class _BigAlbumArtState extends State { if (_pageController.page?.toInt() == playerHelper.queueIndex) return; print('animating controller to page'); + _userScroll = false; await _pageController.animateToPage(playerHelper.queueIndex, duration: const Duration(milliseconds: 300), curve: Curves.easeInOut); + _userScroll = true; }); + } + + @override + void initState() { + _listenForMediaItemChanges(); super.initState(); } + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + switch (state) { + case AppLifecycleState.paused: + _currentItemSub?.cancel(); + case AppLifecycleState.resumed: + _listenForMediaItemChanges(); + default: + break; + } + super.didChangeAppLifecycleState(state); + } + @override void dispose() { _currentItemSub?.cancel(); @@ -874,11 +895,6 @@ class _BigAlbumArtState extends State { @override Widget build(BuildContext context) { final child = GestureDetector( - // onVerticalDragUpdate: (DragUpdateDetails details) { - // if (details.delta.dy > 16) { - // Navigator.of(context).pop(); - // } - // }, onTap: () => Navigator.push( context, FadePageRoute( @@ -889,29 +905,7 @@ class _BigAlbumArtState extends State { return ZoomableImageRoute( imageUrl: mediaItem.artUri.toString(), heroKey: mediaItem.id); }, - ) - // PageRouteBuilder( - // opaque: false, // transparent background - // barrierDismissible: true, - // pageBuilder: (context, animation, __) { - // return FadeTransition( - // opacity: animation, - // child: PhotoView( - // imageProvider: CachedNetworkImageProvider( - // audioHandler.mediaItem.value!.artUri.toString()), - // maxScale: 8.0, - // minScale: 0.2, - // heroAttributes: PhotoViewHeroAttributes( - // tag: audioHandler.mediaItem.value!.id), - // backgroundDecoration: const BoxDecoration( - // color: Color.fromARGB(0x90, 0, 0, 0))), - // ); - // }), - ), - onHorizontalDragDown: (_) => _userScroll = true, - // delayed a bit, so to make sure that the page view updated. - onHorizontalDragEnd: (_) => Future.delayed( - const Duration(milliseconds: 100), () => _userScroll = false), + )), child: StreamBuilder>( stream: audioHandler.queue, initialData: audioHandler.queue.valueOrNull, @@ -927,10 +921,10 @@ class _BigAlbumArtState extends State { if (!_userScroll) return; Logger('BigAlbumArt') .fine('page changed, skipping to media item'); - // if (queue[index].id == audioHandler.mediaItem.value?.id) { - // return; - // } - _initiatedByUser = true; + if (queue[index].id == audioHandler.mediaItem.value?.id) { + return; + } + audioHandler.skipToQueueItem(index); }, itemCount: queue.length, @@ -1010,8 +1004,7 @@ class PlayerScreenTopRow extends StatelessWidget { text: TextSpan(children: [ if (!short) TextSpan( - text: - '${'Playing from:'.i18n.toUpperCase().withoutLast(1)}\n', + text: '${'PLAYING FROM'.i18n}\n', style: TextStyle( fontWeight: FontWeight.bold, letterSpacing: 1.5, diff --git a/lib/ui/search.dart b/lib/ui/search.dart index bca4c6b..57ab4d8 100644 --- a/lib/ui/search.dart +++ b/lib/ui/search.dart @@ -29,7 +29,11 @@ FutureOr openScreenByURL(BuildContext context, String url) async { switch (res.type) { case DeezerLinkType.TRACK: Track t = await deezerAPI.track(res.id!); - MenuSheet(context).defaultTrackMenu(t); + MenuSheet(context).defaultTrackMenu(t, optionsTop: [ + MenuSheetOption(Text('Play'.i18n), + icon: const Icon(Icons.play_arrow), + onTap: () => playerHelper.playSearchMixDeferred(t)), + ]); break; case DeezerLinkType.ALBUM: Album a = await deezerAPI.album(res.id); diff --git a/lib/ui/settings_screen.dart b/lib/ui/settings_screen.dart index 8f2cd6b..c8c35dd 100644 --- a/lib/ui/settings_screen.dart +++ b/lib/ui/settings_screen.dart @@ -1,3 +1,5 @@ +import 'dart:async'; +import 'dart:io'; import 'dart:math'; import 'package:country_pickers/country.dart'; @@ -11,6 +13,7 @@ import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:fluttericon/web_symbols_icons.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:freezer/api/definitions.dart'; +import 'package:freezer/api/player/systray.dart'; import 'package:freezer/ui/login_on_other_device.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:permission_handler/permission_handler.dart'; @@ -463,6 +466,21 @@ class _AppearanceSettingsState extends State { .toList(growable: false), )), ), + if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) + SwitchListTile( + title: Text('Use colorful tray icon'.i18n), + secondary: + Image.asset(SysTray.getIcon(forcePng: true), height: 24.0), + value: settings.useColorTrayIcon, + onChanged: (value) { + setState(() { + settings.useColorTrayIcon = value; + unawaited(settings.save()); + sysTray.updateIcon(); + }); + }, + ), + //Display mode (Android only!) if (defaultTargetPlatform == TargetPlatform.android) ListTile( diff --git a/lib/ui/tiles.dart b/lib/ui/tiles.dart index 701f74d..0ad6215 100644 --- a/lib/ui/tiles.dart +++ b/lib/ui/tiles.dart @@ -48,8 +48,8 @@ class TrackTile extends StatelessWidget { this.onSecondary, this.trailing, this.checkTrackOffline = true, - Key? key, - }) : super(key: key); + super.key, + }); factory TrackTile.fromTrack(Track track, {VoidCallback? onTap, @@ -602,15 +602,16 @@ class _SmartTrackListTileState extends State { class AlbumCard extends StatelessWidget { final Album album; final void Function()? onTap; - final void Function()? onHold; + final SecondaryTapCallback? onSecondary; - const AlbumCard(this.album, {super.key, this.onTap, this.onHold}); + const AlbumCard(this.album, {super.key, this.onTap, this.onSecondary}); @override Widget build(BuildContext context) { return InkWell( onTap: onTap, - onLongPress: onHold, + onLongPress: () => onSecondary?.call(null), + onSecondaryTapUp: onSecondary, child: Column( children: [ Padding( diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index 87d2131..7acbcc2 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -123,9 +123,6 @@ foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) COMPONENT Runtime) endforeach(bundled_library) -# add app icon -install(FILES "app_icon.ico" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}") - # Fully re-copy the assets directory on each build to avoid having stale files # from a previous install. set(FLUTTER_ASSET_DIR_NAME "flutter_assets") diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 606c5a6..9245a4b 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -9,7 +9,10 @@ #include #include #include +#include +#include #include +#include void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) dynamic_color_registrar = @@ -21,7 +24,16 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin"); media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_linux_registrar); + g_autoptr(FlPluginRegistrar) screen_retriever_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin"); + screen_retriever_plugin_register_with_registrar(screen_retriever_registrar); + g_autoptr(FlPluginRegistrar) tray_manager_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "TrayManagerPlugin"); + tray_manager_plugin_register_with_registrar(tray_manager_registrar); g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); + g_autoptr(FlPluginRegistrar) window_manager_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin"); + window_manager_plugin_register_with_registrar(window_manager_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 6023074..466d1b5 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -6,7 +6,10 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color isar_flutter_libs media_kit_libs_linux + screen_retriever + tray_manager url_launcher_linux + window_manager ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index edc83b7..611e01d 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -15,10 +15,13 @@ import just_audio import network_info_plus import package_info_plus import path_provider_foundation +import screen_retriever import share_plus import sqflite +import tray_manager import url_launcher_macos import wakelock_plus +import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AudioServicePlugin.register(with: registry.registrar(forPlugin: "AudioServicePlugin")) @@ -31,8 +34,11 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { NetworkInfoPlusPlugin.register(with: registry.registrar(forPlugin: "NetworkInfoPlusPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) + TrayManagerPlugin.register(with: registry.registrar(forPlugin: "TrayManagerPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) + WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 05b8961..737adcb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -362,6 +362,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.3" + equatable: + dependency: transitive + description: + name: equatable + sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + url: "https://pub.dev" + source: hosted + version: "2.0.5" fading_edge_scrollview: dependency: transitive description: @@ -575,6 +583,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.2.0" + gettext_parser: + dependency: transitive + description: + name: gettext_parser + sha256: "9565c9dd1033ec125e1fbc7ccba6c0d2d753dd356122ba1a17e6aa7dc868f34a" + url: "https://pub.dev" + source: hosted + version: "0.2.0" glob: dependency: transitive description: @@ -679,6 +695,14 @@ packages: url: "https://pub.dev" source: hosted version: "10.0.3" + i18n_extension_importer: + dependency: "direct main" + description: + name: i18n_extension_importer + sha256: "4fd651ff47ac52f604b34b5cd80ee225d38fe589d51b042f00178081b476252f" + url: "https://pub.dev" + source: hosted + version: "0.0.6" image: dependency: transitive description: @@ -855,6 +879,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.9" + menu_base: + dependency: transitive + description: + name: menu_base + sha256: "820368014a171bd1241030278e6c2617354f492f5c703d7b7d4570a6b8b84405" + url: "https://pub.dev" + source: hosted + version: "0.1.1" meta: dependency: transitive description: @@ -1215,6 +1247,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" + screen_retriever: + dependency: transitive + description: + name: screen_retriever + sha256: "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90" + url: "https://pub.dev" + source: hosted + version: "0.1.9" scrobblenaut: dependency: "direct main" description: @@ -1256,6 +1296,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + shortid: + dependency: transitive + description: + name: shortid + sha256: d0b40e3dbb50497dad107e19c54ca7de0d1a274eb9b4404991e443dadb9ebedb + url: "https://pub.dev" + source: hosted + version: "0.1.2" sky_engine: dependency: transitive description: flutter @@ -1397,6 +1445,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + tray_manager: + dependency: "direct main" + description: + name: tray_manager + sha256: "4ab709d70a4374af172f8c39e018db33a4271265549c6fc9d269a65e5f4b0225" + url: "https://pub.dev" + source: hosted + version: "0.2.1" typed_data: dependency: transitive description: @@ -1521,10 +1577,10 @@ packages: dependency: transitive description: name: uuid - sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8 + sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" url: "https://pub.dev" source: hosted - version: "4.3.3" + version: "3.0.7" vector_math: dependency: transitive description: @@ -1621,6 +1677,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.2.0" + window_manager: + dependency: "direct main" + description: + name: window_manager + sha256: b3c895bdf936c77b83c5254bec2e6b3f066710c1f89c38b20b8acc382b525494 + url: "https://pub.dev" + source: hosted + version: "0.3.8" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index c39a7d5..f03ca8e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -100,10 +100,13 @@ dependencies: flutter_cache_manager_hive: git: https://github.com/Pato05/flutter_cache_manager_hive.git flex_color_picker: ^3.3.0 - webview_flutter: - ^4.4.4 + webview_flutter: ^4.4.4 network_info_plus: ^4.1.0+1 pointycastle: ^3.7.4 + i18n_extension_importer: ^0.0.6 + tray_manager: ^0.2.1 + window_manager: + ^0.3.8 #deezcryptor: #path: deezcryptor/ @@ -134,27 +137,27 @@ flutter: assets: - assets/cover.jpg - assets/cover_thumb.jpg - - assets/icon.png - assets/favorites_thumb.jpg - assets/browse_icon.png + - assets/icon.png + - assets/icon_small.png + - assets/icon_mono_small.png + - assets/icon.ico + - assets/icon_mono_small.ico fonts: - # - family: Montserrat - # fonts: - # - asset: assets/fonts/Montserrat-Regular.ttf - # - asset: assets/fonts/Montserrat-Bold.ttf - # weight: 700 - # - asset: assets/fonts/Montserrat-Italic.ttf - # style: italic - - family: MabryPro + - family: "Mabry Pro" fonts: - - asset: assets/fonts/MabryPro.otf - - asset: assets/fonts/MabryProItalic.otf + - asset: fonts/MabryPro.otf + - asset: fonts/MabryProItalic.otf style: italic - - asset: assets/fonts/MabryProBold.otf + - asset: fonts/MabryProBold.otf weight: 700 - - asset: assets/fonts/MabryProBlack.otf + - asset: fonts/MabryProBlack.otf weight: 900 + - family: "YouTube Sans" + fonts: + - asset: fonts/YouTubeSansMedium.otf # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware. diff --git a/translations/crowdin.py b/translations/crowdin.py deleted file mode 100644 index d2a6d80..0000000 --- a/translations/crowdin.py +++ /dev/null @@ -1,53 +0,0 @@ -import zipfile -import json - -lang_crowdin = { - 'ar': 'ar_ar', - 'bg': 'bul_bg', - 'ast': 'ast_es', - 'de': 'de_de', - 'el': 'el_gr', - 'es-ES': 'es_es', - 'fa': 'fa_ir', - 'fil': 'fil_ph', - 'fr': 'fr_fr', - 'he': 'he_il', - 'hr': 'hr_hr', - 'id': 'id_id', - 'it': 'it_id', - 'ko': 'ko_ko', - 'pt-BR': 'pt_br', - 'ro': 'ro_ro', - 'ru': 'ru_ru', - 'tr': 'tr_tr', - 'pl': 'pl_pl', - 'uk': 'uk_ua', - 'hu': 'hu_hu', - 'ur-PK': 'ur_pk', - 'hi': 'hi_in', - 'sk': 'sk_sk', - 'cs': 'cs_cz', - 'vi': 'vi_vi', - 'uwu': 'uwu_uwu', - 'nl': 'nl_NL', - 'sl': 'sl_SL', - 'zh-CN': 'zh-CN' -} - -def generate_dart(): - out = {} - with zipfile.ZipFile('translations.zip') as zip: - for file in zip.namelist(): - if 'freezer.json' in file: - data = zip.open(file).read() - lang = file.split('/')[0] - out[lang_crowdin[lang]] = json.loads(data) - - with open('../lib/languages/crowdin.dart', 'w') as f: - data = json.dumps(out, ensure_ascii=False).replace('$', '\\$') - out = f'const crowdin = {data};' - f.write(out) - - -if __name__ == '__main__': - generate_dart() diff --git a/translations/freezer.json b/translations/freezer.json deleted file mode 100644 index 898ba9b..0000000 --- a/translations/freezer.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "Home": "Home", - "Search": "Search", - "Library": "Library", - "Offline mode, can't play flow or smart track lists.": - "Offline mode, can't play flow or smart track lists.", - "Added to library": "Added to library", - "Download": "Download", - "Disk": "Disk", - "Offline": "Offline", - "Top Tracks": "Top Tracks", - "Show more tracks": "Show more tracks", - "Top": "Top", - "Top Albums": "Top Albums", - "Show all albums": "Show all albums", - "Discography": "Discography", - "Default": "Default", - "Reverse": "Reverse", - "Alphabetic": "Alphabetic", - "Artist": "Artist", - "Post processing...": "Post processing...", - "Done": "Done", - "Delete": "Delete", - "Are you sure you want to delete this download?": - "Are you sure you want to delete this download?", - "Cancel": "Cancel", - "Downloads": "Downloads", - "Clear queue": "Clear queue", - "This won't delete currently downloading item": - "This won't delete currently downloading item", - "Are you sure you want to delete all queued downloads?": - "Are you sure you want to delete all queued downloads?", - "Clear downloads history": "Clear downloads history", - "WARNING: This will only clear non-offline (external downloads)": - "WARNING: This will only clear non-offline (external downloads)", - "Please check your connection and try again later...": - "Please check your connection and try again later...", - "Show more": "Show more", - "Importer": "Importer", - "Currently supporting only Spotify, with 100 tracks limit": - "Currently supporting only Spotify, with 100 tracks limit", - "Due to API limitations": "Due to API limitations", - "Enter your playlist link below": "Enter your playlist link below", - "Error loading URL!": "Error loading URL!", - "Convert": "Convert", - "Download only": "Download only", - "Downloading is currently stopped, click here to resume.": - "Downloading is currently stopped, click here to resume.", - "Tracks": "Tracks", - "Albums": "Albums", - "Artists": "Artists", - "Playlists": "Playlists", - "Import": "Import", - "Import playlists from Spotify": "Import playlists from Spotify", - "Statistics": "Statistics", - "Offline tracks": "Offline tracks", - "Offline albums": "Offline albums", - "Offline playlists": "Offline playlists", - "Offline size": "Offline size", - "Free space": "Free space", - "Loved tracks": "Loved tracks", - "Favorites": "Favorites", - "All offline tracks": "All offline tracks", - "Create new playlist": "Create new playlist", - "Cannot create playlists in offline mode": - "Cannot create playlists in offline mode", - "Error": "Error", - "Error logging in! Please check your token and internet connection and try again.": - "Error logging in! Please check your token and internet connection and try again.", - "Dismiss": "Dismiss", - "Welcome to": "Welcome to", - "Please login using your Deezer account.": - "Please login using your Deezer account.", - "Login using browser": "Login using browser", - "Login using token": "Login using token", - "Enter ARL": "Enter ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Save", - "If you don't have account, you can register on deezer.com for free.": - "If you don't have account, you can register on deezer.com for free.", - "Open in browser": "Open in browser", - "By using this app, you don't agree with the Deezer ToS": - "By using this app, you don't agree with the Deezer ToS", - "Play next": "Play next", - "Add to queue": "Add to queue", - "Add track to favorites": "Add track to favorites", - "Add to playlist": "Add to playlist", - "Select playlist": "Select playlist", - "Track added to": "Track added to", - "Remove from playlist": "Remove from playlist", - "Track removed from": "Track removed from", - "Remove favorite": "Remove favorite", - "Track removed from library": "Track removed from library", - "Go to": "Go to", - "Make offline": "Make offline", - "Add to library": "Add to library", - "Remove album": "Remove album", - "Album removed": "Album removed", - "Remove from favorites": "Remove from favorites", - "Artist removed from library": "Artist removed from library", - "Add to favorites": "Add to favorites", - "Remove from library": "Remove from library", - "Add playlist to library": "Add playlist to library", - "Added playlist to library": "Added playlist to library", - "Make playlist offline": "Make playlist offline", - "Download playlist": "Download playlist", - "Create playlist": "Create playlist", - "Title": "Title", - "Description": "Description", - "Private": "Private", - "Collaborative": "Collaborative", - "Create": "Create", - "Playlist created!": "Playlist created!", - "Playing from:": "Playing from:", - "Queue": "Queue", - "Offline search": "Offline search", - "Search Results": "Search Results", - "No results!": "No results!", - "Show all tracks": "Show all tracks", - "Show all playlists": "Show all playlists", - "Settings": "Settings", - "General": "General", - "Appearance": "Appearance", - "Quality": "Quality", - "Deezer": "Deezer", - "Theme": "Theme", - "Currently": "Currently", - "Select theme": "Select theme", - "Dark": "Dark", - "Black (AMOLED)": "Black (AMOLED)", - "Deezer (Dark)": "Deezer (Dark)", - "Primary color": "Primary color", - "Selected color": "Selected color", - "Use album art primary color": "Use album art primary color", - "Warning: might be buggy": "Warning: might be buggy", - "Mobile streaming": "Mobile streaming", - "Wifi streaming": "Wifi streaming", - "External downloads": "External downloads", - "Content language": "Content language", - "Not app language, used in headers. Now": - "Not app language, used in headers. Now", - "Select language": "Select language", - "Content country": "Content country", - "Country used in headers. Now": "Country used in headers. Now", - "Log tracks": "Log tracks", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Send track listen logs to Deezer, enable it for features like Flow to work properly", - "Offline mode": "Offline mode", - "Will be overwritten on start.": "Will be overwritten on start.", - "Error logging in, check your internet connections.": - "Error logging in, check your internet connections.", - "Logging in...": "Logging in...", - "Download path": "Download path", - "Downloads naming": "Downloads naming", - "Downloaded tracks filename": "Downloaded tracks filename", - "Valid variables are": "Valid variables are", - "Reset": "Reset", - "Clear": "Clear", - "Create folders for artist": "Create folders for artist", - "Create folders for albums": "Create folders for albums", - "Separate albums by discs": "Separate albums by disks", - "Overwrite already downloaded files": "Overwrite already downloaded files", - "Copy ARL": "Copy ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Copy userToken/ARL Cookie for use in other apps.", - "Copied": "Copied", - "Log out": "Log out", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Due to plugin incompatibility, login using browser is unavailable without restart.", - "(ARL ONLY) Continue": "(ARL ONLY) Continue", - "Log out & Exit": "Log out & Exit", - "Pick-a-Path": "Pick-a-Path", - "Select storage": "Select storage", - "Go up": "Go up", - "Permission denied": "Permission denied", - "Language": "Language", - "Language changed, please restart Freezer to apply!": - "Language changed, please restart Freezer to apply!", - "Importing...": "Importing...", - "Radio": "Radio", - "Flow": "Flow", - "Track is not available on Deezer!": "Track is not available on Deezer!", - "Failed to download track! Please restart.": "Failed to download track! Please restart.", - "Storage permission denied!": "Storage permission denied!", - "Failed": "Failed", - "Queued": "Queued", - "External": "Storage", - "Restart failed downloads": "Restart failed downloads", - "Clear failed": "Clear failed", - "Download Settings": "Download Settings", - "Create folder for playlist": "Create folder for playlist", - "Download .LRC lyrics": "Download .LRC lyrics", - "Proxy": "Proxy", - "Not set": "Not set", - "Search or paste URL": "Search or paste URL", - "History": "History", - "Download threads": "Concurrent downloads", - "Lyrics unavailable, empty or failed to load!": "Lyrics unavailable, empty or failed to load!", - "About": "About", - "Telegram Channel": "Telegram Channel", - "To get latest releases": "To get latest releases", - "Official chat": "Official chat", - "Telegram Group": "Telegram Group", - "Huge thanks to all the contributors! <3": "Huge thanks to all the contributors! <3", - "Edit playlist": "Edit playlist", - "Update": "Update", - "Playlist updated!": "Playlist updated!", - "Downloads added!": "Downloads added!", - "Save cover file for every track": "Save cover file for every track", - "Download Log": "Download Log", - "Repository": "Repository", - "Source code, report issues there.": "Source code, report issues there.", - "Use system theme": "Use system theme", - "Light": "Light", - "Popularity": "Popularity", - "User": "User", - "Track count": "Track count", - "If you want to use custom directory naming - use '/' as directory separator.": "If you want to use custom directory naming - use '/' as directory separator.", - "Share": "Share", - "Save album cover": "Save album cover", - "Warning": "Warning", - "Using too many concurrent downloads on older/weaker devices might cause crashes!": "Using too many concurrent downloads on older/weaker devices might cause crashes!", - "Create .nomedia files": "Create .nomedia files", - "To prevent gallery being filled with album art": "To prevent gallery being filled with album art" - } - diff --git a/translations/old_languages/ar_ar.dart b/translations/old_languages/ar_ar.dart deleted file mode 100644 index 0a419ed..0000000 --- a/translations/old_languages/ar_ar.dart +++ /dev/null @@ -1,212 +0,0 @@ -/* - -Translated by: Xandar Null - -*/ - -const language_ar_ar = { - "ar_ar": { - "Home": "القائمة الرئيسية", - "Search": "بحث", - "Library": "المكتبة", - "Offline mode, can't play flow or smart track lists.": "وضع خارج الشبكة, لا تستطيع تشغيل اغاني من قوائم ديزر فلو", - "Added to library": "تمت الاضافة الى المكتبة", - "Download": "تنزيل", - "Disk": "القرص", - "Offline": "خارج الشبكة", - "Top Tracks": "افضل الاغاني", - "Show more tracks": "اضهار المزيد من الاغاني", - "Top": "الافضل", - "Top Albums": "افضل الالبومات", - "Show all albums": "اضهار كل الالبومات", - "Discography": "كل الالبومات و الاغاني", - "Default": "افتراضي", - "Reverse": "عكس", - "Alphabetic": "أبجدي", - "Artist": "فنان", - "Post processing...": "بعد المعالجة...", - "Done": "تم", - "Delete": "حذف", - "Are you sure you want to delete this download?": "هل أنت متأكد أنك تريد حذف هذا التنزيل؟", - "Cancel": "الغاء", - "Downloads": "التنزيلات", - "Clear queue": "مسح قائمة الانتظار", - "This won't delete currently downloading item": "لن يؤدي هذا إلى حذف العنصر الذي يتم تنزيله حاليًا", - "Are you sure you want to delete all queued downloads?": "هل أنت متأكد أنك تريد حذف كافة التنزيلات في قائمة الانتظار؟", - "Clear downloads history": "مسح تاريخ التنزيلات", - "WARNING: This will only clear non-offline (external downloads)": "تحذير: سيؤدي هذا فقط إلى مسح الملفات غير المتصلة (التنزيلات الخارجية)", - "Please check your connection and try again later...": "يرجى التحقق من الاتصال الخاص بك والمحاولة مرة أخرى في وقت لاحق...", - "Show more": "اظهار المزيد", - "Importer": "المستورد", - "Currently supporting only Spotify, with 100 tracks limit": "حاليا يدعم سبوتفاي فقط, بحد اقصى 100 اغنية", - "Due to API limitations": "بسبب قيود API", - "Enter your playlist link below": "أدخل رابط قائمة التشغيل أدناه", - "Error loading URL!": "خطأ في تنزيل الرابط!", - "Convert": "تحويل", - "Download only": "تنزيل فقط", - "Downloading is currently stopped, click here to resume.": "التنزيل متوقف حاليًا ، انقر هنا للاستئناف.", - "Tracks": "اغاني", - "Albums": "البومات", - "Artists": "فنانون", - "Playlists": "قوائم تشغيل", - "Import": "استيراد", - "Import playlists from Spotify": "استيراد قائمة تشغيل من سبوتيفاي", - "Statistics": "احصائيات", - "Offline tracks": "اغاني بدون اتصال", - "Offline albums": "البومات بدون اتصال", - "Offline playlists": "قوائم تشغيل بدون اتصال", - "Offline size": "حجم بدون اتصال", - "Free space": "مساحة فارغة", - "Loved tracks": "الاغاني المحبوبة", - "Favorites": "المفضلات", - "All offline tracks": "كل الاغاني بدون اتصال", - "Create new playlist": "انشاء قائمة تشغيل جديدة", - "Cannot create playlists in offline mode": "لا يمكن إنشاء قوائم التشغيل في وضع عدم الاتصال", - "Error": "خطأ", - "Error logging in! Please check your token and internet connection and try again.": "خطأ في تسجيل الدخول! يرجى التحقق من الرمز المميز والاتصال بالإنترنت وحاول مرة أخرى.", - "Dismiss": "رفض", - "Welcome to": "مرحبا بك في", - "Please login using your Deezer account.": "يرجى تسجيل الدخول باستخدام حساب ديزر الخاص بك.", - "Login using browser": "تسجيل الدخول باستخدام المتصفح", - "Login using token": "تسجيل الدخول باستخدام الرمز المميز", - "Enter ARL": "أدخل الرمز المميز (arl)", - "Token (ARL)": "الرمز المميز (ARL)", - "Save": "حفظ", - "If you don't have account, you can register on deezer.com for free.": "إذا لم يكن لديك حساب ، يمكنك التسجيل على deezer.com مجانًا.", - "Open in browser": "افتح في المتصفح", - "By using this app, you don't agree with the Deezer ToS": "باستخدام هذا التطبيق ، أنت لا توافق على شروط خدمة ديزر", - "Play next": "شغل التالي", - "Add to queue": "إضافة إلى قائمة الانتظار", - "Add track to favorites": "اضافة الاغنية الى المفضلة", - "Add to playlist": "اضافة الى قائمة التشغيل", - "Select playlist": "اختيار قائمة التشغيل", - "Track added to": "تم اضافة الاغنية الى", - "Remove from playlist": "إزالة من قائمة التشغيل", - "Track removed from": "تم إزالة الاغنية من", - "Remove favorite": "إزالة المفضلة", - "Track removed from library": "تم إزالة الاغنية من المكتبة", - "Go to": "الذهاب الى", - "Make offline": "جعله في وضع عدم الاتصال", - "Add to library": "إضافة إلى مكتبة", - "Remove album": "إزالة الالبوم", - "Album removed": "تم إزالة الالبوم", - "Remove from favorites": "تم الإزالة من المفضلة", - "Artist removed from library": "تم إزالة الفنان من المكتبة", - "Add to favorites": "اضافة الى المفضلة", - "Remove from library": "إزالة من المكتبة", - "Add playlist to library": "أضف قائمة التشغيل إلى المكتبة", - "Added playlist to library": "تم اضافة قائمة التشغيل الى المكتبة", - "Make playlist offline": "جعل قائمة التشغيل في وضع عدم الاتصال", - "Download playlist": "تنزيل قائمة التشغيل", - "Create playlist": "إنشاء قائمة التشغيل", - "Title": "عنوان", - "Description": "وصف", - "Private": "خاص", - "Collaborative": "التعاونيه", - "Create": "إنشاء", - "Playlist created!": "تم إنشاء قائمة التشغيل", - "Playing from:": "التشغيل من:", - "Queue": "قائمة الانتظار", - "Offline search": "البحث دون اتصال", - "Search Results": "نتائج البحث", - "No results!": "لا نتائج!", - "Show all tracks": "عرض كل الاغاني", - "Show all playlists": "عرض كل قوائم التشغيل", - "Settings": "الإعدادات", - "General": "عام", - "Appearance": "المظهر", - "Quality": "الجودة", - "Deezer": "ديزر", - "Theme": "ثيم", - "Currently": "حاليا", - "Select theme": "اختر ثيم", - "Light (default)": "ابيض (افتراضي)", - "Dark": "داكن (أفضل)", - "Black (AMOLED)": "أسود", - "Deezer (Dark)": "داكن (ديزر)", - "Primary color": "اللون الأساسي", - "Selected color": "اللون المحدد", - "Use album art primary color": "استخدم اللون الأساسي لصورة الألبوم", - "Warning: might be buggy": "تحذير: قد يكون غير مستقر", - "Mobile streaming": "البث عبر شبكة الجوال", - "Wifi streaming": "البث عبر الوايفاي", - "External downloads": "التنزيلات الخارجية", - "Content language": "لغة المحتوى", - "Not app language, used in headers. Now": "ليست لغة التطبيق المستخدمة في العناوين. الآن", - "Select language": "اختار اللغة", - "Content country": "بلد المحتوى", - "Country used in headers. Now": "البلد المستخدم في العناوين. الآن", - "Log tracks": "تسجيل الاغاني", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": "أرسال سجلات الاستماع إلى ديزر ، قم بتمكينها لميزات مثل فلو لتعمل بشكل صحيح (ينصح تفعيلها)", - "Offline mode": "وضع عدم الاتصال", - "Will be overwritten on start.": "سيتم الكتابة فوقها في البداية.", - "Error logging in, check your internet connections.": "خطأ في تسجيل الدخول ، تحقق من اتصالات الإنترنت الخاص بك.", - "Logging in...": "جار تسجيل الدخول...", - "Download path": "مسار التنزيل", - "Downloads naming": "تسمية التنزيلات", - "Downloaded tracks filename": "اسم ملف الاغاني التي تم تنزيلها", - "Valid variables are": "المتغيرات الصالحة هي", - "Reset": "إعادة تعيين", - "Clear": "مسح", - "Create folders for artist": "إنشاء ملفات للفنان", - "Create folders for albums": "إنشاء ملفات للالبوم", - "Separate albums by discs": "افصل الالبومات عبر رقم الاقراص", - "Overwrite already downloaded files": "الكتابة فوق الملفات التي تم تنزيلها", - "Copy ARL": "نسخ الرمز المميز (ARL)", - "Copy userToken/ARL Cookie for use in other apps.": "انسخ ملف الرابط الرمز المميز لاستخدامه في تطبيقات أخرى.", - "Copied": "تم النسخ", - "Log out": "تسجيل خروج", - "Due to plugin incompatibility, login using browser is unavailable without restart.": "نظرًا لعدم توافق المكون الإضافي ، لا يتوفر تسجيل الدخول باستخدام المتصفح بدون إعادة التشغيل.", - "(ARL ONLY) Continue": "استمر (رمز مميز فقط ARL)", - "Log out & Exit": "تسجيل الخروج والخروج", - "Pick-a-Path": "اختر المسار", - "Select storage": "حدد وحدة التخزين", - "Go up": "اذهب للأعلى", - "Permission denied": "طلب الاذن مرفوض", - "Language": "اللغة", - "Language changed, please restart Freezer to apply!": "تم تغيير اللغة، الرجاء إعادة تشغيل فريزر لتطبيق!", - "Importing...": "جار الاستيراد...", - "Radio": "راديو", - - //0.5.0 Strings: - "Storage permission denied!": "رفض إذن التخزين!", - "Failed": "فشل", - "Queued": "في قائمة الانتظار", - "Restart failed downloads": "أعد استئناف التنزيلات الفاشلة", - "Clear failed": "فشل المسح", - "Download Settings": "إعدادات التنزيل", - "Create folder for playlist": "إنشاء ملف لقائمة التشغيل", - "Download .LRC lyrics": "تنزيل ملف كلمات الاغنية .LRC", - "Proxy": "بروكسي", - "Not set": "غير محدد", - "Search or paste URL": "ابحث أو الصق رابط", - "History": "تاريخ السماع", - "Download threads": "عدد التنزيلات في نفس الوقت", - "Lyrics unavailable, empty or failed to load!": "الكلمات غير متوفرة، فارغة أو فشل تنزيلها!", - "About": "حول البرنامج", - "Telegram Channel": "قناة التلكرام", - "To get latest releases": "لتنزيل اخر اصدارات البرنامج", - "Official chat": "الدردشة الرسمية", - "Telegram Group": "مجموعة التلكرام", - "Huge thanks to all the contributors! <3": "شكرا جزيلا لجميع المساهمين! <3", - "Edit playlist": "تعديل قائمة التشغيل", - "Update": "تحديث", - "Playlist updated!": "تم تحديث قائمة التشغيل!", - "Downloads added!": "تم إضافة التنزيلات!", - "External": "تخزين", - "Save cover file for every track": "حفظ صورة الالبوم لكل اغنية", - "Download Log": "سجل التنزيل", - "Repository": "Repository", - "Source code, report issues there.": "كود المصدر ، ابلغ عن المشاكل هنا.", - - //0.5.2 Strings: - "Use system theme": "استخدم ثيم النظام", - "Light": "ابيض", - - //0.5.3 Strings: - "Popularity": "الشعبية", - "User": "المستخدم", - "Track count": "عدد الاغاني", - "If you want to use custom directory naming - use '/' as directory separator.": "إذا كنت تريد استخدام تسمية مخصصة، استخدم '/' كفاصل بين المسار." - } -}; diff --git a/translations/old_languages/de_de.dart b/translations/old_languages/de_de.dart deleted file mode 100644 index 197e62d..0000000 --- a/translations/old_languages/de_de.dart +++ /dev/null @@ -1,236 +0,0 @@ -/* - -Translated by: Markus - -*/ -const language_de_de = { - "de_de": { - "Home": "Start", - "Search": "Suche", - "Library": "Mediathek", - "Offline mode, can't play flow or smart track lists.": - "Offline-Modus, kann keine Flow- oder Smart Track-Listen abspielen.", - "Added to library": "Zur Mediathek hinzufügen", - "Download": "Download", - "Disk": "Disk", - "Offline": "Offline", - "Top Tracks": "Top Titel", - "Show more tracks": "Zeige mehr Titel", - "Top": "Top", - "Top Albums": "Top Alben", - "Show all albums": "Zeige alle Alben", - "Discography": "Diskografie", - "Default": "Standard", - "Reverse": "Rückwärts", - "Alphabetic": "Alphabetisch", - "Artist": "Künstler", - "Post processing...": "Nachbearbeitung...", - "Done": "Erledigt", - "Delete": "Gelöscht", - "Are you sure you want to delete this download?": - "Bist du sicher, dass du diesen Download löschen willst?", - "Cancel": "Abbrechen", - "Downloads": "Downloads", - "Clear queue": "Warteschleife löschen", - "This won't delete currently downloading item": - "Dies löscht das derzeit heruntergeladene Element nicht", - "Are you sure you want to delete all queued downloads?": - "Bist du sicher, dass du alle Downloads aus der Warteschleife löschen willst?", - "Clear downloads history": "Download-Verlauf löschen", - "WARNING: This will only clear non-offline (external downloads)": - "ACHTUNG: (Externe Downloads) werden entfernt", - "Please check your connection and try again later...": - "Bitte überprüfe deine Verbindung und versuche es später noch einmal...", - "Show more": "Mehr anzeigen", - "Importer": "Importieren", - "Currently supporting only Spotify, with 100 tracks limit": - "Derzeit begrenzt auf maximal 100 Titel", - "Due to API limitations": "Aufgrund von API-Einschränkungen", - "Enter your playlist link below": - "Gebe deinen Wiedergabelisten-Link unten ein", - "Error loading URL!": "Fehler beim Laden der URL!", - "Convert": "Konvertieren", - "Download only": "Nur Herunterladen", - "Downloading is currently stopped, click here to resume.": - "Das Herunterladen ist derzeit gestoppt, klicke hier, um fortzufahren.", - "Tracks": "Titel", - "Albums": "Alben", - "Artists": "Künstler", - "Playlists": "Wiedergabelisten", - "Import": "Importieren", - "Import playlists from Spotify": "Wiedergabelisten aus Spotify importieren", - "Statistics": "Statistiken", - "Offline tracks": "Offline-Titel", - "Offline albums": "Offline-Alben", - "Offline playlists": "Offline-Wiedergabelisten", - "Offline size": "Offline-Größe", - "Free space": "Freier Speicherplatz", - "Loved tracks": "Beliebte Titel", - "Favorites": "Favoriten", - "All offline tracks": "Alle Offline-Titel", - "Create new playlist": "Neue Wiedergabeliste erstellen", - "Cannot create playlists in offline mode": - "Wiedergabelisten können im Offline-Modus nicht erstellt werden", - "Error": "Fehler", - "Error logging in! Please check your token and internet connection and try again.": - "Fehler beim Einloggen! Bitte überprüfe dein Token und deine Internetverbindung und versuche es erneut.", - "Dismiss": "Verwerfen", - "Welcome to": "Willkommen bei", - "Please login using your Deezer account.": - "Bitte melde dich mit deinem Deezer-Konto an.", - "Login using browser": "Anmeldung über Browser", - "Login using token": "Anmeldung per Token", - "Enter ARL": "ARL eingeben", - "Token (ARL)": "Token (ARL)", - "Save": "Speichern", - "If you don't have account, you can register on deezer.com for free.": - "Wenn Du noch kein Konto hast, kannst Du Dich kostenlos auf deezer.com registrieren.", - "Open in browser": "Im Browser öffnen", - "By using this app, you don't agree with the Deezer ToS": - "Wenn Du diese Anwendung verwendest, bist Du nicht mit den Deezer ToS einverstanden", - "Play next": "Als nächstes spielen", - "Add to queue": "Zur Warteschleife hinzufügen", - "Add track to favorites": "Titel zu Favoriten hinzufügen", - "Add to playlist": "Zur Wiedergabeliste hinzufügen", - "Select playlist": "Wiedergabeliste auswählen", - "Track added to": "Titel hinzugefügt zu", - "Remove from playlist": "Aus Wiedergabeliste entfernen", - "Track removed from": "Titel entfernt aus", - "Remove favorite": "Favorit entfernen", - "Track removed from library": "Titel aus Mediathek entfernt", - "Go to": "Gehe zu", - "Make offline": "Offline verfügbar machen", - "Add to library": "Zur Mediathek hinzufügen", - "Remove album": "Album entfernen", - "Album removed": "Album entfernt", - "Remove from favorites": "Aus Favoriten entfernen", - "Artist removed from library": "Künstler aus Bibliothek entfernt", - "Add to favorites": "Zu Favoriten hinzufügen", - "Remove from library": "Aus der Mediathek entfernen", - "Add playlist to library": "Wiedergabeliste zur Mediathek hinzufügen", - "Added playlist to library": "Wiedergabeliste zur Mediathek hinzugefügt", - "Make playlist offline": "Wiedergabeliste offline verfügbar machen", - "Download playlist": "Wiedergabeliste herunterladen", - "Create playlist": "Wiedergabeliste erstellen", - "Title": "Titel", - "Description": "Beschreibung", - "Private": "Privat", - "Collaborative": "Collaborative", - "Create": "Erstellen", - "Playlist created!": "Wiedergabeliste erstellt!", - "Playing from:": "Wiedergabe von:", - "Queue": "Warteschleife", - "Offline search": "Offline-Suche", - "Search Results": "Suchergebnisse", - "No results!": "Keine Ergebnisse!", - "Show all tracks": "Alle Titel anzeigen", - "Show all playlists": "Alle Wiedergabelisten anzeigen", - "Settings": "Einstellungen", - "General": "Allgemein", - "Appearance": "Aussehen", - "Quality": "Qualität", - "Deezer": "Deezer", - "Theme": "App-Design", - "Currently": "Aktuell", - "Select theme": "App-Design auswählen", - "Light (default)": "Heller Modus (Standard)", - "Dark": "Dunkler Modus", - "Black (AMOLED)": "Schwarz (AMOLED)", - "Deezer (Dark)": "Deezer (Dunkel)", - "Primary color": "Primärfarbe", - "Selected color": "Ausgewählte Farbe", - "Use album art primary color": "Verwende die Primärfarbe des Albumcovers", - "Warning: might be buggy": "Warnung: könnte fehlerhaft sein", - "Mobile streaming": "Wiedergabe über Mobilfunknetz", - "Wifi streaming": "Wiedergabe über WLAN", - "External downloads": "Externe Downloads", - "Content language": "Content-Sprache", - "Not app language, used in headers. Now": "Aktuell", - "Select language": "Sprache auswählen", - "Content country": "Content-Land", - "Country used in headers. Now": "Aktuell", - "Log tracks": "Protokolliere Titel", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Gehörte Titel-Protokolle an Deezer senden, damit Flow richtig funktioniert", - "Offline mode": "Offline-Modus", - "Will be overwritten on start.": "Wird beim Start überschrieben.", - "Error logging in, check your internet connections.": - "Fehler beim Anmelden, überprüfe deine Internetverbindung.", - "Logging in...": "Angemeldet...", - "Download path": "Download-Pfad", - "Downloads naming": "Benennung der Downloads", - "Downloaded tracks filename": "Dateiname der heruntergeladenen Titel", - "Valid variables are": "Gültige Variablen sind", - "Reset": "Zurücksetzen", - "Clear": "Löschen", - "Create folders for artist": "Ordner für Künstler erstellen", - "Create folders for albums": "Ordner für Alben erstellen", - "Separate albums by discs": "Alben nach Discs trennen", - "Overwrite already downloaded files": - "Bereits heruntergeladene Dateien überschreiben", - "Copy ARL": "ARL kopieren", - "Copy userToken/ARL Cookie for use in other apps.": - "UserToken / ARL-Cookie zur Verwendung in anderen Anwendungen kopieren.", - "Copied": "Kopiert", - "Log out": "Abmelden", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Aufgrund von Plugin-Inkompatibilität ist die Anmeldung mit dem Browser ohne Neustart nicht möglich.", - "(ARL ONLY) Continue": "(NUR ARL) Fortfahren", - "Log out & Exit": "Abmelden & Beenden", - "Pick-a-Path": "Wähle einen Pfad", - "Select storage": "Verzeichnis auswählen", - "Go up": "Nach oben", - "Permission denied": "Zugriff verweigert", - "Language": "Sprache", - "Language changed, please restart Freezer to apply!": - "Sprache geändert, bitte Freezer neu starten!", - "Importing...": "Importiere...", - "Radio": "Radio", - //0.5.0 Strings: - "Storage permission denied!": "Speicherzugriff verweigert!", - "Failed": "Fehlgeschlagen", - "Queued": "Warteschleife", - //Updated in 0.5.1 - used in context of download: - "External": "Speicherplatz", - //0.5.0 - "Restart failed downloads": "Fehlgeschlagene Downloads neu starten", - "Clear failed": "Fehlgeschlagene Downloads löschen", - "Download Settings": "Download-Einstellungen", - "Create folder for playlist": "Ordner für Wiedergabelisten erstellen", - "Download .LRC lyrics": "Download .LRC lyrics", - "Proxy": "Proxy", - "Not set": "Nicht festgelegt", - "Search or paste URL": "Suchen oder Einfügen von URLs", - "History": "Verlauf", - //Updated 0.5.1 - "Download threads": "Gleichzeitige Downloads", - //0.5.0 - "Lyrics unavailable, empty or failed to load!": "Lyrics nicht verfügbar, leer oder laden fehlgeschlagen!", - "About": "Über", - "Telegram Channel": "Telegram Kanal", - "To get latest releases": "Um die neuesten Versionen zu erhalten", - "Official chat": "Offizieller Chat", - "Telegram Group": "Telegram Gruppe", - "Huge thanks to all the contributors! <3": "Großer Dank an alle Mitwirkenden! <3", - "Edit playlist": "Wiedergabeliste bearbeiten", - "Update": "Update", - "Playlist updated!": "Wiedergabeliste aktualisiert!", - "Downloads added!": "Downloads hinzugefügt!", - - //0.5.1 Strings: - "Save cover file for every track": "Albumcover für jeden Titel speichern", - "Download Log": "Download-Log", - "Repository": "Repository", - "Source code, report issues there.": "Quellcode, Probleme dort melden.", - - //0.5.2 Strings: - "Use system theme": "Systemvorgabe benutzen", - "Light": "Heller Modus", - - //0.5.3 Strings: - "Popularity": "Beliebtheit", - "User": "Benutzer", - "Track count": "Anzahl der Titel", - "If you want to use custom directory naming - use '/' as directory separator.": "Wenn du eine benutzerdefinierte Verzeichnisbenennung verwenden möchtest - verwende '/' als Verzeichnistrennzeichen." - } -}; \ No newline at end of file diff --git a/translations/old_languages/el_gr.dart b/translations/old_languages/el_gr.dart deleted file mode 100644 index adcc630..0000000 --- a/translations/old_languages/el_gr.dart +++ /dev/null @@ -1,244 +0,0 @@ -/* - -Translated by: VIRGIN_KLM - - */ - -const language_el_gr = { - "el_gr": { - "Home": "Αρχική", - "Search": "Αναζήτηση", - "Library": "Βιβλιοθήκη", - "Offline mode, can't play flow or smart track lists.": - "Λειτουργία εκτός σύνδεσης, δεν είναι δυνατή η αναπαραγωγή flow ή έξυπνων λιστών κομματιών.", - "Added to library": "Προστέθηκε στη βιβλιοθήκη", - "Download": "Λήψη", - "Disk": "Δίσκος", - "Offline": "Εκτός σύνδεσης", - "Top Tracks": "Κορυφαία κομμάτια", - "Show more tracks": "Εμφάνιση περισσότερων κομματιών", - "Top": "Κορυφαία", - "Top Albums": "Κορυφαία Album", - "Show all albums": "Εμφάνιση όλων των album", - "Discography": "Δισκογραφία", - "Default": "Προεπιλογή", - "Reverse": "Αντίστροφα", - "Alphabetic": "Αλφαβητικά", - "Artist": "Καλλιτέχνης", - "Post processing...": "Μετεπεξεργασία...", - "Done": "Ολοκληρώθηκε", - "Delete": "Διαγραφή", - "Are you sure you want to delete this download?": - "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη λήψη;", - "Cancel": "Άκυρο", - "Downloads": "Λήψεις", - "Clear queue": "Εκκαθάριση ουράς", - "This won't delete currently downloading item": - "Αυτό δεν θα διαγράψει το τρέχον αντικείμενο λήψης", - "Are you sure you want to delete all queued downloads?": - "Είστε βέβαιοι ότι θέλετε να διαγράψετε όλες τις λήψεις στην ουρά;", - "Clear downloads history": "Διαγραφή ιστορικού λήψεων", - "WARNING: This will only clear non-offline (external downloads)": - "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό θα καθαρίσει μόνο τις εκτός σύνδεσης (εξωτερικές) λήψεις", - "Please check your connection and try again later...": - "Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά αργότερα...", - "Show more": "Δείτε περισσότερα", - "Importer": "Εισαγωγέας", - "Currently supporting only Spotify, with 100 tracks limit": - "Αυτήν τη στιγμή υποστηρίζεται μόνο το Spotify, με όριο 100 κομματιών", - "Due to API limitations": "Λόγω περιορισμών API", - "Enter your playlist link below": - "Εισαγάγετε τον σύνδεσμο λίστας αναπαραγωγής παρακάτω", - "Error loading URL!": "Σφάλμα φόρτωσης διεύθυνσης URL!", - "Convert": "Μετατροπή", - "Download only": "Μόνο λήψη", - "Downloading is currently stopped, click here to resume.": - "Η λήψη έχει σταματήσει, κάντε κλικ εδώ για να συνεχίσετε.", - "Tracks": "Κομμάτια", - "Albums": "Album", - "Artists": "Καλλιτέχνες", - "Playlists": "Λίστες αναπαραγωγής", - "Import": "Εισαγωγή", - "Import playlists from Spotify": - "Εισαγωγή λιστών αναπαραγωγής από το Spotify", - "Statistics": "Στατιστικά", - "Offline tracks": "Κομμάτια εκτός σύνδεσης", - "Offline albums": "Album εκτός σύνδεσης", - "Offline playlists": "Λίστες αναπαραγωγής εκτός σύνδεσης", - "Offline size": "Μέγεθος εκτός σύνδεσης", - "Free space": "Ελεύθερος χώρος", - "Loved tracks": "Αγαπημένα κομμάτια", - "Favorites": "Αγαπημένα", - "All offline tracks": "Όλα τα κομμάτια εκτός σύνδεσης", - "Create new playlist": "Δημιουργία λίστας αναπαραγωγής", - "Cannot create playlists in offline mode": - "Δεν είναι δυνατή η δημιουργία λιστών αναπαραγωγής σε λειτουργία εκτός σύνδεσης", - "Error": "Σφάλμα", - "Error logging in! Please check your token and internet connection and try again.": - "Σφάλμα σύνδεσης! Ελέγξτε το token και τη σύνδεσή σας στο δίκτυο και δοκιμάστε ξανά.", - "Dismiss": "Απόρριψη", - "Welcome to": "Καλωσήρθατε στο", - "Please login using your Deezer account.": - "Συνδεθείτε χρησιμοποιώντας τον λογαριασμό σας στο Deezer.", - "Login using browser": "Σύνδεση χρησιμοποιώντας το πρόγραμμα περιήγησης", - "Login using token": "Σύνδεση χρησιμοποιώντας token", - "Enter ARL": "Εισαγωγή ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Αποθήκευση", - "If you don't have account, you can register on deezer.com for free.": - "Εάν δεν έχετε λογαριασμό, μπορείτε να εγγραφείτε δωρεάν στο deezer.com.", - "Open in browser": "Ανοιγμα σε πρόγραμμα περιήγησης", - "By using this app, you don't agree with the Deezer ToS": - "Χρησιμοποιώντας αυτήν την εφαρμογή, δεν συμφωνείτε με τους κανονισμούς χρήσης Deezer", - "Play next": "Παίξε αμέσως μετά", - "Add to queue": "Προσθήκη στην ουρά", - "Add track to favorites": "Προσθήκη κομμάτι στα αγαπημένα", - "Add to playlist": "Προσθήκη στην λίστα αναπαραγωγής", - "Select playlist": "Επιλογή λίστας αναπαραγωγής", - "Track added to": "Το κομμάτι προστέθηκε στο", - "Remove from playlist": "Κατάργηση από τη λίστα αναπαραγωγής", - "Track removed from": "Το κομμάτι καταργήθηκε από", - "Remove favorite": "Κατάργηση αγαπημένου", - "Track removed from library": "Το κομμάτι καταργήθηκε από τη βιβλιοθήκη", - "Go to": "Πήγαινε σε", - "Make offline": "Κάνε εκτός σύνδεσης", - "Add to library": "Προσθήκη στη βιβλιοθήκη", - "Remove album": "Κατάργηση album", - "Album removed": "Το album καταργήθηκε", - "Remove from favorites": "Κατάργηση από τα αγαπημένα", - "Artist removed from library": - "Ο καλλιτέχνης καταργήθηκε από τη βιβλιοθήκη", - "Add to favorites": "Προσθήκη στα αγαπημένα", - "Remove from library": "Κατάργηση από τη βιβλιοθήκη", - "Add playlist to library": "Προσθήκη λίστας αναπαραγωγής στη βιβλιοθήκη", - "Added playlist to library": "Προστέθηκε λίστα αναπαραγωγής στη βιβλιοθήκη", - "Make playlist offline": "Δημιουργία λίστας αναπαραγωγής εκτός σύνδεσης", - "Download playlist": "Λήψη λίστας αναπαραγωγής", - "Create playlist": "Δημιουργία λίστας αναπαραγωγής", - "Title": "Τίτλος", - "Description": "Περιγραφή", - "Private": "Ιδιωτικό", - "Collaborative": "Συνεργατικό", - "Create": "Δημιουργία", - "Playlist created!": "Η λίστα αναπαραγωγής δημιουργήθηκε!", - "Playing from:": "Παίζοντας από:", - "Queue": "Ουρά", - "Offline search": "Αναζήτηση εκτός σύνδεσης", - "Search Results": "Αποτελέσματα αναζήτησης", - "No results!": "Κανένα αποτέλεσμα!", - "Show all tracks": "Εμφάνιση όλων των κομματιών", - "Show all playlists": "Εμφάνιση όλων των λιστών αναπαραγωγής", - "Settings": "Ρυθμίσεις", - "General": "Γενικά", - "Appearance": "Εμφάνιση", - "Quality": "Ποιότητα", - "Deezer": "Deezer", - "Theme": "Θέμα", - "Currently": "Τρέχον", - "Select theme": "Επιλογή θέματος", - "Light (default)": "Φωτεινό (Προεπιλογή)", - "Dark": "Σκούρο", - "Black (AMOLED)": "Μαύρο (AMOLED)", - "Deezer (Dark)": "Deezer (Σκούρο)", - "Primary color": "Πρωτεύον χρώμα", - "Selected color": "Επιλεγμένο χρώμα", - "Use album art primary color": - "Χρησιμοποιήστε το πρωτεύον χρώμα του εξώφυλλου του album", - "Warning: might be buggy": "Προειδοποίηση: μπορεί να μη λειτουργεί σωστά", - "Mobile streaming": "Ροή μέσω δεδομένων κινητού δικτύου", - "Wifi streaming": "Ροή μέσω WIFI", - "External downloads": "Εξωτερικές λήψεις", - "Content language": "Γλώσσα περιεχομένου", - "Not app language, used in headers. Now": - "Όχι γλώσσα εφαρμογής, χρησιμοποιείται στις κεφαλίδες. Τρέχουσα", - "Select language": "Επιλογή γλώσσας", - "Content country": "Χώρα περιεχομένου", - "Country used in headers. Now": - "Χώρα που χρησιμοποιείται στις κεφαλίδες. Τρέχουσα", - "Log tracks": "Αρχεία καταγραφής", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Αποστολή αρχείων καταγραφής ακρόασης στο Deezer, ενεργοποιήστε το για ορθή λειτουργία υπηρεσιών όπως το Flow", - "Offline mode": "Λειτουργία εκτός σύνδεσης", - "Will be overwritten on start.": "Θα αντικατασταθεί κατά την εκκίνηση.", - "Error logging in, check your internet connections.": - "Σφάλμα σύνδεσης, ελέγξτε την σύνδεσή σας στο Δίκτυο.", - "Logging in...": "Σύνδεση...", - "Download path": "Διαδρομή λήψεων", - "Downloads naming": "Ονομασία λήψεων", - "Downloaded tracks filename": "Λήψη ονόματος αρχείου κομματιών", - "Valid variables are": "Οι έγκυρες μεταβλητές είναι", - "Reset": "Επαναφορά", - "Clear": "Εκκαθάριση", - "Create folders for artist": "Δημιουργήστε φακέλου για καλλιτέχνη", - "Create folders for albums": "Δημιουργήστε φακέλων για album", - "Separate albums by discs": "Διαχωρισμός albums σε δίσκους", - "Overwrite already downloaded files": "Αντικατάσταση ήδη ληφθέντων αρχείων", - "Copy ARL": "Αντιγραφή ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Αντιγραφή userToken/ARL Cookie για χρήση σε άλλες εφαρμογές.", - "Copied": "Αντιγράφηκε", - "Log out": "Αποσύνδεση", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Λόγω ασυμβατότητας προσθηκών, η σύνδεση μέσω προγράμματος περιήγησης δεν είναι διαθέσιμη χωρίς επανεκκίνηση.", - "(ARL ONLY) Continue": "(ARL ΜΟΝΟ) Συνέχεια", - "Log out & Exit": "Αποσύνδεση & Έξοδος", - "Pick-a-Path": "Διαλέξτε ένα μονοπάτι", - "Select storage": "Επιλέξτε χώρο αποθήκευσης", - "Go up": "Πήγαινε πάνω", - "Permission denied": "Η άδεια απορρίφθηκε", - "Language": "Γλώσσα", - "Language changed, please restart Freezer to apply!": - "Η γλώσσα άλλαξε, κάντε επανεκκίνηση του Freezer για εφαρμογή!", - "Importing...": "Εισαγωγή...", - "Radio": "Ραδιόφωνο", - "Flow": "Flow", - "Track is not available on Deezer!": - "Το κομμάτι δεν είναι διαθέσιμο στο Deezer!", - "Failed to download track! Please restart.": - "Αποτυχία λήψης κομματιού! Κάντε επανεκκίνηση. ", - - //0.5.0 Strings: - "Storage permission denied!": "Η άδεια χώρου αποθήκευσης απορρίφθηκε!", - "Failed": "Απέτυχαν", - "Queued": "Σε ουρά", - //Updated in 0.5.1 - used in context of download: - "External": "Χώρος αποθήκευσης", - //0.5.0 - "Restart failed downloads": "Επανεκκίνηση αποτυχημένων λήψεων", - "Clear failed": "Εκκαθάριση αποτυχημένων", - "Download Settings": "Ρυθμίσεις Λήψεων", - "Create folder for playlist": "Δημιουργία φακέλου για λίστα αναπαραγωγής", - "Download .LRC lyrics": "Λήψη στίχων .LRC", - "Proxy": "Μεσολαβητής", - "Not set": "Δεν ρυθμίστηκε", - "Search or paste URL": "Αναζήτηση ή επικόλληση διεύθυνσης URL", - "History": "Ιστορικό", - //Updated 0.5.1 - "Download threads": "Ταυτόχρονες λήψεις", - //0.5.0 - "Lyrics unavailable, empty or failed to load!": - "Οι στίχοι δεν είναι διαθέσιμοι, είναι άδειοι ή δεν φορτώθηκαν!", - "About": "Σχετικά", - "Telegram Channel": "Κανάλι Telegram ", - "To get latest releases": "Για να λάβετε τις τελευταίες κυκλοφορίες", - "Official chat": "Επίσημη συνομιλία", - "Telegram Group": "Ομάδα Telegram", - "Huge thanks to all the contributors! <3": - "Πολλά ευχαριστώ σε όλους τους συνεισφέροντες! <3", - "Edit playlist": "Edit playlist", - "Update": "Ενημέρωση", - "Playlist updated!": "Η λίστα αναπαραγωγής ενημερώθηκε!", - "Downloads added!": "Προστέθηκαν λήψεις!", - - //0.5.1 Strings: - "Save cover file for every track": "Αποθήκευση εξώφυλλου για κάθε κομμάτι", - "Download Log": "Αρχείο καταγραφής λήψεων", - "Repository": "Repository", - "Source code, report issues there.": - "Πηγαίος κώδικας, αναφέρετε ζητήματα εκεί.", - - //0.5.2 Strings: - "Use system theme": "Χρησιμοποίηση θέματος συστήματος", - "Light": "Φωτεινο" - } -}; diff --git a/translations/old_languages/es_es.dart b/translations/old_languages/es_es.dart deleted file mode 100644 index 9ebbcbe..0000000 --- a/translations/old_languages/es_es.dart +++ /dev/null @@ -1,235 +0,0 @@ -/* - -Translated by: ArcherDelta & PetFix - -*/ - -const language_es_es = { - "es_es": { - "Home": "Inicio", - "Search": "Buscar", - "Library": "Biblioteca", - "Offline mode, can't play flow or smart track lists.": - "Modo sin conexión, no se puede reproducir el flow o las listas de pistas inteligentes.", - "Added to library": "Agregado a la biblioteca", - "Download": "Descargar", - "Disk": "Disco", - "Offline": "Sin conexión", - "Top Tracks": "Los mejores temas", - "Show more tracks": "Mostrar más pistas", - "Top": "Top", - "Top Albums": "Mejores álbumes", - "Show all albums": "Mostrar todos los álbumes", - "Discography": "Discografía", - "Default": "Predeterminado", - "Reverse": "Invertir", - "Alphabetic": "Alfabético", - "Artist": "Artista", - "Post processing...": "Post procesamiento...", - "Done": "Hecho", - "Delete": "Eliminar", - "Are you sure you want to delete this download?": - "¿Estás seguro de que quieres borrar esta descarga?", - "Cancel": "Cancelar", - "Downloads": "Descargas", - "Clear queue": "Limpiar la cola", - "This won't delete currently downloading item": - "Esto no borrará el elemento que se está descargando actualmente", - "Are you sure you want to delete all queued downloads?": - "¿Estás seguro de que quieres borrar todas las descargas en cola?", - "Clear downloads history": "Borrar el historial de descargas", - "WARNING: This will only clear non-offline (external downloads)": - "ADVERTENCIA: Esto sólo borrará las descargas que no están en modo sin conexión (descargas externas).", - "Please check your connection and try again later...": - "Por favor, compruebe su conexión y vuelva a intentarlo más tarde...", - "Show more": "Mostrar más", - "Importer": "Importador", - "Currently supporting only Spotify, with 100 tracks limit": - "Actualmente sólo se soporta Spotify, con un límite de 100 pistas", - "Due to API limitations": "Debido a limitaciones de API", - "Enter your playlist link below": - "Ingrese el enlace de su lista de reproducción a continuación", - "Error loading URL!": "¡Error al cargar la URL!", - "Convert": "Convertir", - "Download only": "Sólo descargar", - "Downloading is currently stopped, click here to resume.": - "La descarga está actualmente detenida, haga clic aquí para reanudarla.", - "Tracks": "Pistas", - "Albums": "Álbumes", - "Artists": "Artistas", - "Playlists": "Listas de reproducción", - "Import": "Importar", - "Import playlists from Spotify": - "Importar listas de reproducción de Spotify", - "Statistics": "Estadísticas", - "Offline tracks": "Pistas sin conexión", - "Offline albums": "Álbumes sin conexión", - "Offline playlists": "Listas de reproducción sin conexión", - "Offline size": "El tamaño sin conexión", - "Free space": "Espacio libre", - "Loved tracks": "Pistas favoritas", - "Favorites": "Favoritas", - "All offline tracks": "Todas las pistas fuera de línea", - "Create new playlist": "Crear nueva lista de reproducción", - "Cannot create playlists in offline mode": - "No se pueden crear listas de reproducción en el modo sin conexión", - "Error": "Error", - "Error logging in! Please check your token and internet connection and try again.": - "¡Error al iniciar la sesión! Por favor, compruebe su token y su conexión a Internet e inténtelo de nuevo.", - "Dismiss": "Descartar", - "Welcome to": "Bienvenido a", - "Please login using your Deezer account.": - "Por favor, inicie sesión con su cuenta de Deezer.", - "Login using browser": "Ingresar usando el navegador", - "Login using token": "Ingresar usando token", - "Enter ARL": "Ingrese ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Guardar", - "If you don't have account, you can register on deezer.com for free.": - "Si no tienes una cuenta, puedes registrarte en deezer.com de forma gratuita.", - "Open in browser": "Abrir en el navegador", - "By using this app, you don't agree with the Deezer ToS": - "Al usar esta aplicación, no está de acuerdo con las Condiciones de servicio de Deezer", - "Play next": "Reproducir siguiente", - "Add to queue": "Añadir a la cola", - "Add track to favorites": "Agregar pista a favoritos", - "Add to playlist": "Agregar a la lista de reproducción", - "Select playlist": "Seleccionar lista de reproducción", - "Track added to": "Pista agregada a", - "Remove from playlist": "Quitar de la lista de reproducción", - "Track removed from": "Pista eliminada de", - "Remove favorite": "Eliminar favorito", - "Track removed from library": "Pista eliminada de la biblioteca", - "Go to": "Ir a", - "Make offline": "Hacerlo sin conexión", - "Add to library": "Agregar a la biblioteca", - "Remove album": "Eliminar álbum", - "Album removed": "Álbum eliminado", - "Remove from favorites": "Eliminar de favoritos", - "Artist removed from library": "Artista eliminado de la biblioteca", - "Add to favorites": "Agregar a favoritos", - "Remove from library": "Eliminar de la biblioteca", - "Add playlist to library": "Agregar lista de reproducción a la biblioteca", - "Added playlist to library": - "Lista de reproducción agregada a la biblioteca", - "Make playlist offline": "Hacer lista de reproducción sin conexión", - "Download playlist": "Descargar lista de reproducción", - "Create playlist": "Crear lista de reproducción", - "Title": "Título", - "Description": "Descripción", - "Private": "Privado", - "Collaborative": "Colaborativo", - "Create": "Crear", - "Playlist created!": "Lista de reproducción creada!", - "Playing from:": "Reproduciendo desde:", - "Queue": "Cola", - "Offline search": "Búsqueda sin conexión", - "Search Results": "Resultados de la búsqueda", - "No results!": "No hay resultados!", - "Show all tracks": "Mostrar todas las pistas", - "Show all playlists": "Mostrar todas las listas de reproducción", - "Settings": "Ajustes", - "General": "General", - "Appearance": "Apariencia", - "Quality": "Calidad", - "Deezer": "Deezer", - "Theme": "Tema", - "Currently": "Actualmente", - "Select theme": "Seleccione el tema", - "Light (default)": "Claro (predeterminado)", - "Dark": "Oscuro", - "Black (AMOLED)": "Negro (AMOLED)", - "Deezer (Dark)": "Deezer (oscuro)", - "Primary color": "Color primario", - "Selected color": "Color seleccionado", - "Use album art primary color": - "Usar el color primario de la carátula del álbum", - "Warning: might be buggy": "Advertencia: podría tener errores", - "Mobile streaming": "Transmisión móvil", - "Wifi streaming": "Transmisión WiFi", - "External downloads": "Descargas externas", - "Content language": "Lenguaje del contenido", - "Not app language, used in headers. Now": - "No es un lenguaje de la aplicación, se usa en los encabezados. Ahora", - "Select language": "Seleccione el idioma", - "Content country": "País del contenido", - "Country used in headers. Now": "País utilizado en los encabezados. Ahora", - "Log tracks": "Seguimiento de las pistas", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Envía los registros de escucha de las pistas a Deezer, habilítalo para que funciones como Flow funcionen correctamente", - "Offline mode": "Modo sin conexión", - "Will be overwritten on start.": "Se sobrescribirá al inicio.", - "Error logging in, check your internet connections.": - "Error al iniciar sesión, verifique su conexión a internet.", - "Logging in...": "Ingresando...", - "Download path": "Ruta de las descargas", - "Downloads naming": "Nombramiento de las descargas", - "Downloaded tracks filename": "Nombre de archivo de las pistas descargadas", - "Valid variables are": "Las variables válidas son", - "Reset": "Reiniciar", - "Clear": "Limpiar", - "Create folders for artist": "Crear carpetas por artista", - "Create folders for albums": "Crear carpetas por álbumes", - "Separate albums by discs": "Separar los álbumes por discos", - "Overwrite already downloaded files": - "Sobrescribir los archivos ya descargados", - "Copy ARL": "Copiar ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Copia el Token de usuario/Cookie ARL para su uso en otras aplicaciones.", - "Copied": "Copiado", - "Log out": "Cerrar sesión", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Debido a la incompatibilidad de los plugins, no se puede iniciar la sesión con el navegador sin reiniciar.", - "(ARL ONLY) Continue": "Continuar (SÓLO ARL)", - "Log out & Exit": "Cerrar sesión y salir", - "Pick-a-Path": "Escoja una ruta", - "Select storage": "Seleccionar el almacenamiento", - "Go up": "Subir", - "Permission denied": "Permiso denegado", - "Language": "Idioma", - "Language changed, please restart Freezer to apply!": - "¡El idioma ha cambiado, por favor reinicie Freezer para aplicarlo!", - "Importing...": "Importando...", - "Radio": "Radio", - "Flow": "Flow", - - //0.5.0 Strings: - "Storage permission denied!": "Permiso de almacenamiento denegado!", - "Failed": "Fallido", - "Queued": "Puesto en cola", - "External": "Almacenamiento", - "Restart failed downloads": "Reiniciar descargas fallidas", - "Clear failed": "Limpiar fallidas", - "Download Settings": "Opciones de descarga", - "Create folder for playlist": "Crear carpeta para lista de reproducción", - "Download .LRC lyrics": "Descargar archivo .LRC", - "Proxy": "Proxy", - "Not set": "No establecido", - "Search or paste URL": "Buscar o pegar URL", - "History": "Historial", - "Download threads": "Descargas simultáneas", - "Lyrics unavailable, empty or failed to load!": - "Letras no disponibles, vacías o no se pudieron cargar!", - "About": "Acerca de", - "Telegram Channel": "Canal de Telegram", - "To get latest releases": "Para obtener los últimos lanzamientos", - "Official chat": "Chat oficial", - "Telegram Group": "Grupo de Telegram", - "Huge thanks to all the contributors! <3": - "Muchas gracias a todos los contribuyentes contributors! <3", - "Edit playlist": "Editar lista de reproducción", - "Update": "Actualizar", - "Playlist updated!": "Lista de reproducción actualizada!", - "Downloads added!": "Descargas agregadas!", - "Save cover file for every track": - "Guarde el archivo de portada para cada pista", - "Download Log": "Registro de Descarga", - "Repository": "Repositorio", - "Source code, report issues there.": - "Código fuente, informe de problemas allí.", - - //0.5.2 Strings: - "Use system theme": "Usar tema del sistema", - "Light": "blanco" - } -}; diff --git a/translations/old_languages/fil_ph.dart b/translations/old_languages/fil_ph.dart deleted file mode 100644 index a5ba171..0000000 --- a/translations/old_languages/fil_ph.dart +++ /dev/null @@ -1,192 +0,0 @@ -/* - -Translated by: Chino Pacia -Revised by: Garri Palao - -*/ - -const language_fil_ph = { - "fil_ph": { - "Home": "Home", - "Search": "Maghanap", - "Library": "Library", - "Offline mode, can't play flow or smart track lists.": - "Ikaw ay naka-offline mode, hindi ka pwedeng mag-play ng flow o mga smart track.", - "Added to library": "Idinagdag na sa library", - "Download": "I-download", - "Disk": "Disk", - "Offline": "Offline", - "Top Tracks": "Mga Nangungunang Track", - "Show more tracks": "Ipakita ang iba pang mga track", - "Top": "Nangunguna", - "Top Albums": "Nangungunang mga Album", - "Show all albums": "Ipakita lahat ng album", - "Discography": "Discography", - "Default": "Default", - "Reverse": "Pabalik", - "Alphabetic": "Alphabetic", - "Artist": "Artist", - "Post processing...": "Tinatapos na ang proseso...", - "Done": "Tapos na", - "Delete": "Burahin", - "Are you sure you want to delete this download?": - "Sigurado ka bang buburahin mo ang iyong dinownload?", - "Cancel": "I-kansel", - "Downloads": "Mga Download", - "Clear queue": "I-clear ang queue", - "This won't delete currently downloading item": - "Hindi nito buburahin ang dina-download mo ngayon", - "Are you sure you want to delete all queued downloads?": - "Sigurado ka bang buburahin lahat ang mga dina-download?", - "Clear downloads history": "I-clear ang kasaysayan ng mga download", - "WARNING: This will only clear non-offline (external downloads)": - "BABALA: Buburahin lang nito ang hindi pang-offline (mga eksternal na download)", - "Please check your connection and try again later...": - "I-check ang iyong koneksiyon at maaaring subukan mo ulit mamaya...", - "Show more": "Higit pa", - "Importer": "Taga-import", - "Currently supporting only Spotify, with 100 tracks limit": - "Suportado lang ang Spotify sa ngayon,na may limit sa 100 mga track", - "Due to API limitations": "Dahil sa limitasyon ng API", - "Enter your playlist link below": "Pakilagay ang link ng iyong playlist sa ibaba", - "Error loading URL!": "Nagkaroon ng problema sa URL!", - "Convert": "I-convert", - "Download only": "I-download lang", - "Downloading is currently stopped, click here to resume.": - "Huminto ang download mo, mag-click dito para ituloy", - "Tracks": "Mga Track", - "Albums": "Mga Album", - "Artists": "Mga Artist", - "Playlists": "Mga Playlist", - "Import": "I-import", - "Import playlists from Spotify": "I-import ang mga playlist galing sa Spotify", - "Statistics": "Statistics", - "Offline tracks": "Mga offline na track", - "Offline albums": "Mga offline na album", - "Offline playlists": "Mga offline na playlist", - "Offline size": "Laki ng offline", - "Free space": "Natitirang space", - "Loved tracks": "Pinusuang mga track", - "Favorites": "Mga paborito", - "All offline tracks": "Lahat ng track na pang-offline", - "Create new playlist": "Gumawa ng bagong playlist", - "Cannot create playlists in offline mode": - "Hindi makagagawa ng playlist habang naka-offline mode", - "Error": "Error", - "Error logging in! Please check your token and internet connection and try again.": - "Hindi maka-login! I-check ang iyong token at koneksiyon at ulitin mo.", - "Dismiss": "I-dismiss", - "Welcome to": "Welcome sa", - "Please login using your Deezer account.": - "Paki-login ang iyong Deezer account", - "Login using browser": "Mag-login gamit ng browser", - "Login using token": "Mag-login gamit ng token", - "Enter ARL": "Pakilagay ang ARL", - "Token (ARL)": "Token (ARL)", - "Save": "I-save", - "If you don't have account, you can register on deezer.com for free.": - "Kung wala kang account, pumunta sa deezer.com para sa libreng pag-register.", - "Open in browser": "Buksan sa browser", - "By using this app, you don't agree with the Deezer ToS": - "Sa pag-gamit nitong app, ikaw ay hindi sumusunod sa Deezer ToS", - "Play next": "I-play ang kasunod", - "Add to queue": "Idagdag sa queue", - "Add track to favorites": "Idagdag ang track sa mga paborito", - "Add to playlist": "Idagdag sa playlist", - "Select playlist": "Piliin ang playlist", - "Track added to": "Idinagdag ang track sa", - "Remove from playlist": "Tinanggal sa playlist", - "Track removed from": "Tinanggal ang track sa", - "Remove favorite": "Tanggalin ang paborito", - "Track removed from library": "Tinanggal ang track sa library", - "Go to": "Pumunta sa", - "Make offline": "Gawing offline", - "Add to library": "Idagdag sa library", - "Remove album": "Tanggalin ang album", - "Album removed": "Tinanggal ang album", - "Remove from favorites": "Tanggalin sa mga paborito", - "Artist removed from library": "Tinanggal ang artist sa library", - "Add to favorites": "Idagdag sa mga paborito", - "Remove from library": "Tanggalin sa library", - "Add playlist to library": "Idagdag ang playlist sa library", - "Added playlist to library": "Idinagdag ang playlist sa library", - "Make playlist offline": "Gawing offline ang playlist", - "Download playlist": "I-download ang playlist", - "Create playlist": "Gumawa ng playlist", - "Title": "Pamagat", - "Description": "Deskripsiyon", - "Private": "Pribado", - "Collaborative": "Pagtutulungan", - "Create": "Mag-buo", - "Playlist created!": "Nagawa na ang playlist!", - "Playing from:": "Tumutugtog galing sa:", - "Queue": "Queue", - "Offline search": "Offline na paghahanap", - "Search Results": "Resulta sa Paghahanap", - "No results!": "Walang mahanap!", - "Show all tracks": "Ipakita lahat ng mga track", - "Show all playlists": "Ipakita lahat ng mga playlist", - "Settings": "Mga Setting", - "General": "Pangkalahatan", - "Appearance": "Itsura", - "Quality": "Kalidad", - "Deezer": "Deezer", - "Theme": "Tema", - "Currently": "Kasalukuyan", - "Select theme": "Piliin ang Tema", - "Light (default)": "Puti (Default)", - "Dark": "Dark", - "Black (AMOLED)": "Maitim (AMOLED)", - "Deezer (Dark)": "Deezer (Madilim)", - "Primary color": "Pangunahing kulay", - "Selected color": "Piniling kulay", - "Use album art primary color": "Gamitin ang pangunahing kulay ng album art", - "Warning: might be buggy": "Babala: Pwedeng magkaroon ng bug", - "Mobile streaming": "Pag-stream sa mobile", - "Wifi streaming": "Pag-stream sa Wifi", - "External downloads": "Eksternal na download", - "Content language": "Wika ng nilalaman", - "Not app language, used in headers. Now": - "gagamitin lang ang wika sa header, hindi sa app. Ngayon", - "Select language": "Piliin ang wika", - "Content country": "Bansa ng nilalaman", - "Country used in headers. Now": "Gagamitin ang bansa sa mga header. Ngayon", - "Log tracks": "Log ng mga track", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Ipadala ang log ng mga napakinggang track sa Deezer, I-enable mo para gumana nang maayos sa mga feature kagaya ng Flow", - "Offline mode": "Offline mode", - "Will be overwritten on start.": "Papatungan sa simula pa lang.", - "Error logging in, check your internet connections.": - "Hindi maka-login, Pakicheck ang iyong internet connection.", - "Logging in...": "Nagla-login...", - "Download path": "Paglalagyan ng download", - "Downloads naming": "Pagpapangalan sa mga download", - "Downloaded tracks filename": "Filename ng mga nadownload na track", - "Valid variables are": "Ang mga pwede lang gamitin ay", - "Reset": "I-reset", - "Clear": "I-clear", - "Create folders for artist": "Gumawa ng folder para sa mga artist", - "Create folders for albums": "Gumawa ng folder para sa mga album", - "Separate albums by discs": "Ihiwalay ang mga album batay sa disk", - "Overwrite already downloaded files": "Patungan ang mga nadownload na file", - "Copy ARL": "Kopyahin ang ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Kopyahin ang userToken/ARL Cookie para gamitin sa iba pang app.", - "Copied": "Nakopya na", - "Log out": "Mag-Log out", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Hindi ka makakapag-login gamit ng browser kung hindi mo ito ire-restart dahil hindi pa compatible ang plugin sa ngayon", - "(ARL ONLY) Continue": "(ARL LANG) Ituloy", - "Log out & Exit": "Mag-Log out at Lumabas", - "Pick-a-Path": "Pumili-ng-Path", - "Select storage": "Piliin ang storage", - "Go up": "Pumunta paitaas", - "Permission denied": "Hindi pinapayagan", - "Language": "Wika", - "Language changed, please restart Freezer to apply!": - "Pinalitan ang wika, paki-restart ang Deezer para mai-apply!", - "Importing...": "Ini-import...", - "Radio": "Radyo", - "Flow": "Flow", - } -}; \ No newline at end of file diff --git a/translations/old_languages/fr_fr.dart b/translations/old_languages/fr_fr.dart deleted file mode 100644 index a2e742d..0000000 --- a/translations/old_languages/fr_fr.dart +++ /dev/null @@ -1,251 +0,0 @@ -/* - -Translated by: Fwwwwwwwwwweze - - */ - -const language_fr_fr = { - "fr_fr": { - "Home": "Accueil", - "Search": "Recherche", - "Library": "Bibliothèque", - "Offline mode, can't play flow or smart track lists.": - "Le mode hors connexion ne permet pas d'accéder à votre Flow.", - "Added to library": "Ajouté à la bibliothèque", - "Download": "Télécharger", - "Disk": "Disque", - "Offline": "Hors connexion", - "Top Tracks": "Top Tracks", - "Show more tracks": "Afficher plus de pistes", - "Top": "Top", - "Top Albums": "Top Albums", - "Show all albums": "Afficher tous les albums", - "Discography": "Discographie", - "Default": "Par défaut", - "Reverse": "Inverse", - "Alphabetic": "Alphabétique", - "Artist": "Artiste", - "Post processing...": "Post-traitement...", - "Done": "Effectué", - "Delete": "Supprimer", - "Are you sure you want to delete this download?": - "Êtes-vous certain de vouloir supprimer ce téléchargement ?", - "Cancel": "Annuler", - "Downloads": "Téléchargements", - "Clear queue": "Effacer file d'attente", - "This won't delete currently downloading item": - "Ceci ne supprimera pas l'élément en cours de téléchargement", - "Are you sure you want to delete all queued downloads?": - "Êtes-vous sûr de vouloir supprimer tous les téléchargements en file d'attente ?", - "Clear downloads history": "Effacer l'historique des téléchargements", - "WARNING: This will only clear non-offline (external downloads)": - "AVERTISSEMENT: Ceci n'effacera que les téléchargements non hors connexion (téléchargements externes)", - "Please check your connection and try again later...": - "Veuillez vérifier votre connexion et réessayer plus tard...", - "Show more": "Plus d'informations", - "Importer": "Importer", - "Currently supporting only Spotify, with 100 tracks limit": - "Ne fonctionne qu'avec Spotify pour le moment, avec une limite de 100 pistes", - "Due to API limitations": "En raison des limitations de l'API", - "Enter your playlist link below": - "Coller le lien de votre playlist ci-dessous", - "Error loading URL!": "Erreur de chargement de l'URL!", - "Convert": "Convertir", - "Download only": "Téléchargement uniquement", - "Downloading is currently stopped, click here to resume.": - "Le téléchargement est actuellement arrêté, cliquez ici pour le reprendre.", - "Tracks": "Pistes", - "Albums": "Albums", - "Artists": "Artistes", - "Playlists": "Playlists", - "Import": "Importer", - "Import playlists from Spotify": "Importer des playlists depuis Spotify", - "Statistics": "Statistiques", - "Offline tracks": "Pistes hors connexion", - "Offline albums": "Albums hors connexion", - "Offline playlists": "Playlists hors connexion", - "Offline size": "Taille des fichiers hors connexion", - "Free space": "Espace libre", - "Loved tracks": "Coups de cœur", - "Favorites": "Favoris", - "All offline tracks": "Toutes les pistes hors connexion", - "Create new playlist": "Créer une nouvelle playlist", - "Cannot create playlists in offline mode": - "Création de playlists impossible en mode hors connexion", - "Error": "Erreur", - "Error logging in! Please check your token and internet connection and try again.": - "Erreur de connexion ! Veuillez vérifier votre token et votre connexion internet et réessayer.", - "Dismiss": "Abandonner", - "Welcome to": "Bienvenue sur", - "Please login using your Deezer account.": - "Veuillez vous connecter en utilisant votre compte Deezer.", - "Login using browser": "Connexion via navigateur", - "Login using token": "Connexion via token", - "Enter ARL": "Saisir ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Sauvegarder", - "If you don't have account, you can register on deezer.com for free.": - "Si vous n'avez pas de compte, vous pouvez vous inscrire gratuitement sur deezer.com.", - "Open in browser": "Ouvrir dans le navigateur", - "By using this app, you don't agree with the Deezer ToS": - "En utilisant cette application, vous ne respectez pas les CGU de Deezer", - "Play next": "Écouter juste après", - "Add to queue": "Ajouter à la file d'attente", - "Add track to favorites": "Ajouter aux Coups de cœur", - "Add to playlist": "Ajouter à une playlist", - "Select playlist": "Choisir une playlist", - "Track added to": "Piste ajoutée à", - "Remove from playlist": "Retirer de la playlist", - "Track removed from": "Piste retirée de", - "Remove favorite": "Supprimer Coup de cœur ", - "Track removed from library": "Piste supprimée de la bibliothèque", - "Go to": "Aller à", - "Make offline": "Rendre hors connexion", - "Add to library": "Ajouter à la bibliothèque", - "Remove album": "Supprimer l'album", - "Album removed": "Album supprimé", - "Remove from favorites": "Retirer des Coups de cœur", - "Artist removed from library": "Artiste supprimé de la bibliothèque", - "Add to favorites": "Ajouter aux Coups de cœur", - "Remove from library": "Retirer de la bibliothèque", - "Add playlist to library": "Ajouter la playlist à la bibliothèque", - "Added playlist to library": "Playlist ajoutée à la bibliothèque", - "Make playlist offline": "Rendre la playlist hors connexion", - "Download playlist": "Télécharger la playlist", - "Create playlist": "Créer une playlist", - "Title": "Titre", - "Description": "Description", - "Private": "Privée", - "Collaborative": "Collaborative", - "Create": "Créer", - "Playlist created!": "Playlist créée !", - "Playing from:": "Lecture à partir de :", - "Queue": "File d'attente", - "Offline search": "Recherche hors connexion", - "Search Results": "Résultats de la recherche", - "No results!": "Aucun résultat !", - "Show all tracks": "Afficher toutes les pistes", - "Show all playlists": "Afficher toutes les playlists", - "Settings": "Paramètres", - "General": "Général", - "Appearance": "Apparence", - "Quality": "Qualité", - "Deezer": "Deezer", - "Theme": "Thème", - "Currently": "Actuellement", - "Select theme": "Selectionner un thème", - "Light (default)": "Clair (Par défaut)", - "Dark": "Sombre", - "Black (AMOLED)": "Noir (AMOLED)", - "Deezer (Dark)": "Deezer (Sombre)", - "Primary color": "Couleur principale", - "Selected color": "Couleur sélectionnée", - "Use album art primary color": - "Utiliser la couleur dominante de la pochette en tant que couleur principale", - "Warning: might be buggy": "Attention : peut être buggé", - "Mobile streaming": "Streaming via réseau mobile", - "Wifi streaming": "Streaming via Wifi", - "External downloads": "Téléchargements externes", - "Content language": "Langue du contenu", - "Not app language, used in headers. Now": - "Pas la langue de l'appli, utilisée dans les en-têtes de catégories. Actuellement", - "Select language": "Selectionner la langue", - "Content country": "Pays contenu", - "Country used in headers. Now": - "Pays utilisé pour les bannières. Actuellement", - "Log tracks": "Journal d'écoute", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Envoie les journaux d'écoute à Deezer, activez-le pour que les fonctionnalités comme Flow fonctionnent correctement", - "Offline mode": "Mode hors connexion", - "Will be overwritten on start.": "Sera écrasé au démarrage.", - "Error logging in, check your internet connections.": - "Erreur de connexion, vérifiez votre connexion internet", - "Logging in...": "Connexion...", - "Download path": "Emplacement des téléchargements", - "Downloads naming": "Désignation des téléchargement", - "Downloaded tracks filename": "nom de fichier des pistes téléchargées", - "Valid variables are": "Les variables valides sont", - "Reset": "Réinitialiser", - "Clear": "Effacer", - "Create folders for artist": "Générer des dossiers par artiste", - "Create folders for albums": "Générer des dossiers par album", - "Separate albums by discs": "Séparer les albums par disques", - "Overwrite already downloaded files": - "Écraser les fichiers déjà téléchargés", - "Copy ARL": "Copier ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Copier le Cookie userToken/ARL pour l'utiliser dans d'autres applications.", - "Copied": "Copié", - "Log out": "Déconnexion", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "En raison d'une incompatibilité de plugin, la connexion à l'aide du navigateur est impossible sans redémarrage.", - "(ARL ONLY) Continue": "(ARL SEULEMENT) Continuer", - "Log out & Exit": "Se déconnecter et quitter", - "Pick-a-Path": "Choissez un emplacement", - "Select storage": "Selectionner le stockage", - "Go up": "Remonter", - "Permission denied": "Autorisation refusée", - "Language": "Langue", - "Language changed, please restart Freezer to apply!": - "Langue modifiée, veuillez redémarrer Freezer pour que les changements prennent effet!", - "Importing...": "Importation...", - "Radio": "Radio", - "Flow": "Flow", - "Track is not available on Deezer!": - "La piste n'est pas disponible sur Deezer!", - "Failed to download track! Please restart.": - "Echec du téléchargement de la piste ! Veuillez réessayer.", - - //0.5.0 Strings: - "Storage permission denied!": "Autorisation d'accès au stockage refusée!", - "Failed": "Echec", - "Queued": "Ajouté à la file d'attente", - //Updated in 0.5.1 - used in context of download: - "External": "Storage", - //0.5.0 - "Restart failed downloads": "Relancer les téléchargements échoués", - "Clear failed": "Effacer les téléchargements échoués", - "Download Settings": "Paramètres des téléchargements", - "Create folder for playlist": "Générer des dossiers par playlist", - "Download .LRC lyrics": "Télécharger les fichiers de paroles .LRC", - "Proxy": "Proxy", - "Not set": "Non défini", - "Search or paste URL": "Rechercher ou coller un lien", - "History": "Historique", - //Updated 0.5.1 - "Download threads": "Téléchargements simultanés", - //0.5.0 - "Lyrics unavailable, empty or failed to load!": - "Paroles indisponibles, vides ou erreur de chargement !", - "About": "A propos", - "Telegram Channel": "Telegram Channel", - "To get latest releases": "Pour obtenir les dernières versions de l'app", - "Official chat": "Chat officiel", - "Telegram Group": "Groupe Telegram", - "Huge thanks to all the contributors! <3": - "Un grand merci à tous les contributeurs ! <3", - "Edit playlist": "Modifier la playlist", - "Update": "Mettre à jour", - "Playlist updated!": "Playlist mise à jour !", - "Downloads added!": "Téléchargements ajoutés !", - - //0.5.1 Strings: - "Save cover file for every track": - "Sauvegarder la pochette pour chaque piste", - "Download Log": "Journal des téléchargements", - "Repository": "Dépôt", - "Source code, report issues there.": - "Code source, signaler les problèmes ici.", - - //0.5.2 Strings: - "Use system theme": "Utiliser le thème du système", - "Light": "Clair", - - //0.5.3 Strings: - "Popularity": "Popularité", - "User": "Utilisateur", - "Track count": "Nombre de pistes", - "If you want to use custom directory naming - use '/' as directory separator.": - "Si vous souhaitez utiliser un nom de répertoire personnalisé, utilisez '/' comme séparateur." - } -}; diff --git a/translations/old_languages/he_il.dart b/translations/old_languages/he_il.dart deleted file mode 100644 index 7ec39a7..0000000 --- a/translations/old_languages/he_il.dart +++ /dev/null @@ -1,193 +0,0 @@ -/* - -Translated by: kobyrevah - -*/ - -const language_he_il = { - "he_il": { - "Home": "בית", - "Search": "חיפוש", - "Library": "ספריה", - "Offline mode, can't play flow or smart track lists.": - "מצב לא מקוון, לא יכול לנגן flow או רשימות שירים חכמות.", - "Added to library": "הוסף לסיפרייה", - "Download": "הורד", - "Disk": "דיסק", - "Offline": "לא מקוון", - "Top Tracks": "השירים שבטופ", - "Show more tracks": "הראה עוד שירים", - "Top": "טופ", - "Top Albums": "האלבומים המובילים", - "Show all albums": "הראה את כל האלבומים", - "Discography": "דיסקוגרפיה", - "Default": "ברירת מחדל", - "Reverse": "הפוך", - "Alphabetic": "אלפבתי", - "Artist": "אמן", - "Post processing...": "לאחר עיבוד...", - "Done": "בוצע", - "Delete": "מחק", - "Are you sure you want to delete this download?": - "האם אתה בטוח שאתה רוצה למחוק את ההורדה הזאת?", - "Cancel": "בטל", - "Downloads": "הורדות", - "Clear queue": "נקה תור ", - "This won't delete currently downloading item": - "פעולה זו לא תמחק את הפריט שמורד עכשיו", - "Are you sure you want to delete all queued downloads?": - "האם אתה בטוח שאתה רוצה למחוק את כל ההורדות שבתור?", - "Clear downloads history": "נקה היסטורית הורדות", - "WARNING: This will only clear non-offline (external downloads)": - "אזהרה: זה ינקה רק את הקבצים שלא אופליין (כלומר רק הורדות חיצוניות)", - "Please check your connection and try again later...": - "בבקשה בדוק את חיבור הרשת שלך ונסה שוב מאוחר יותר...", - "Show more": "הראה עוד", - "Importer": "מייבא רשימות השמעה", - "Currently supporting only Spotify, with 100 tracks limit": - "כרגע תומך רק בספוטיפיי, עם הגבלה של 100 שירים", - "Due to API limitations": "בגלל מגבלות ה- API", - "Enter your playlist link below": "הכנס את קישור רשימת ההשמעה שלך למטה", - "Error loading URL!": "שגיאה בטעינת הקישור!", - "Convert": "המר", - "Download only": "הורד", - "Downloading is currently stopped, click here to resume.": - "ההורדה כרגע מושהית, לחץ כאן להמשיך.", - "Tracks": "שירים", - "Albums": "אלבומים", - "Artists": "אומנים", - "Playlists": "רשימות השמעה", - "Import": "יבא", - "Import playlists from Spotify": "יבא רשימת השמעה מספוטיפיי", - "Statistics": "סטטיסטיקה", - "Offline tracks": "שירים לא מקוונים", - "Offline albums": "אלבומים לא מקוונים", - "Offline playlists": "רשימות השמעה לא מקוונות", - "Offline size": "גודל קבצים לא מקוונים", - "Free space": "מקום פנוי", - "Loved tracks": "שירים אהובים", - "Favorites": "מועדפים", - "All offline tracks": "כל השירים הלא מקוונים", - "Create new playlist": "צור רשימת השמעה חדשה", - "Cannot create playlists in offline mode": - "לא יכול ליצור רשימת השמעה במצב אופליין", - "Error": "שגיאה", - "Error logging in! Please check your token and internet connection and try again.": - "שגיאה בהתחברות! בדוק בבקשה את הטוקן שלך או את חיבור האינטרנט שלך ונסה שוב.", - "Dismiss": "התעלם", - "Welcome to": "ברוך הבא ל", - "Please login using your Deezer account.": - "בבקשה התחבר עם חשבון הדיזר שלך.", - "Login using browser": "התחבר דרך הדפדפן", - "Login using token": "התחבר דרך טוקן", - "Enter ARL": "הכנס טוקן", - "Token (ARL)": "טוקן (קישור אישי)", - "Save": "שמור", - "If you don't have account, you can register on deezer.com for free.": - "לאם אין לך חשבון, אתה יכול להירשם ב deezer.com בחינם.", - "Open in browser": "פתח בדפדפן", - "By using this app, you don't agree with the Deezer ToS": - "באמצעות שימוש ביישום הזה, אתה לא מסכים עם התנאים של דיזר", - "Play next": "נגן הבא בתור", - "Add to queue": "הוסף לתור", - "Add track to favorites": "הוסף שיר למועדפים", - "Add to playlist": "הוסף לרשימת השמעה", - "Select playlist": "בחר רשימת השמעה", - "Track added to": "שיר נוסף ל", - "Remove from playlist": "הסר מרשימת השמעה", - "Track removed from": "שיר הוסר מ", - "Remove favorite": "הסר מועדף", - "Track removed from library": "השיר הוסר מהסיפרייה", - "Go to": "לך ל", - "Make offline": "הורד לשימוש לא מקוון", - "Add to library": "הוסף לספריה", - "Remove album": "הסר אלבום", - "Album removed": "אלבום הוסר", - "Remove from favorites": "הסר מהמועדפים", - "Artist removed from library": "אמן הוסר מהסיפרייה", - "Add to favorites": "הוסף למועדפים", - "Remove from library": "הסר מהסיפרייה", - "Add playlist to library": "הוסף רשימת השמעה לסיפרייה", - "Added playlist to library": "רשימת השמעה נוספה לסיפרייה", - "Make playlist offline": "צור רשימת השמעה לא מקוונת", - "Download playlist": "הורד רשימת השמעה", - "Create playlist": "צור רשימת המעה", - "Title": "שם", - "Description": "תיאור", - "Private": "פרטי", - "Collaborative": "שיתופי פעולה", - "Create": "צור", - "Playlist created!": "רשימת השמעה נוצרה!", - "Playing from:": "מנגן מ:", - "Queue": "תור", - "Offline search": "חיפוש אופליין", - "Search Results": "תוצאות חיפוש", - "No results!": "אין תוצאות!", - "Show all tracks": "הראה את כל השירים", - "Show all playlists": "הראה את כל רשימות ההשמעה", - "Settings": "הגדרות", - "General": "כללי", - "Appearance": "מראה", - "Quality": "איכות", - "Deezer": "דיזר", - "Theme": "ערכת נושא", - "Currently": "בשימוש כרגע", - "Select theme": "בחר ערכת נושא", - "Light (default)": "בהיר (ברירת מחדח)", - "Dark": "כהה", - "Black (AMOLED)": "שחור (אמולד)", - "Deezer (Dark)": "דיזר (כהה)", - "Primary color": "צבע ראשי", - "Selected color": "בחר צבע", - "Use album art primary color": "השתמש בצבע ראשי של תמונת האלבום", - "Warning: might be buggy": "אזהרה: יכול להיות באגים", - "Mobile streaming": "הזרמת רשת סלולרית", - "Wifi streaming": "הזרמת רשת אלחוטית", - "External downloads": "הורדות חיצוניות", - "Content language": "שפת תוכן", - "Not app language, used in headers. Now": - "לא שפת היישום, שימוש בכותרות. עכשיו", - "Select language": "בחר שפה", - "Content country": "מדינת תוכן", - "Country used in headers. Now": "מדינה שמוצגת בכותרות. עכשיו", - "Log tracks": "לוג שמיעת שירים", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "שלח לוגים של השמעה לדיזר, הפעל מצב זה כדי שתכונות כמו flow יעבדו טוב", - "Offline mode": "מצב אופליין", - "Will be overwritten on start.": "יוחלף בהפעלה.", - "Error logging in, check your internet connections.": - "שגיאה בהתחברות, בדוק את חיבור הרשת שלך.", - "Logging in...": "מתחבר...", - "Download path": "נתיב הורדה", - "Downloads naming": "שינוי שם בהורדה", - "Downloaded tracks filename": "שם קבצי שירים בהורדה", - "Valid variables are": "האפשרויות המוצעות הם", - "Reset": "אתחל", - "Clear": "נקה", - "Create folders for artist": "צור תיקייה לאמנים", - "Create folders for albums": "צור תיקייה לאלבומים", - "Separate albums by discs": "חלק אלבומים לפי דיסקים", - "Overwrite already downloaded files": "החלף קבצים שכבר הורדו", - "Copy ARL": "העתק טוקן", - "Copy userToken/ARL Cookie for use in other apps.": - "העתק את הטוקן לשימוש בישומים אחרים.", - "Copied": "הועתק", - "Log out": "התנתק", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "בגלל אי התאמת התוסף, ההתחברות באמצעות הדפדפן אינה זמינה ללא הפעלה מחדש.", - "(ARL only) Continue": "(טוקן בלבד) המשך", - "Log out & Exit": "התנתק וצא", - "Pick-a-Path": "בחר נתיב", - "Select storage": "בחר אחסון", - "Go up": "עלה למעלה", - "Permission denied": "הרשאה נדחתה", - "Language": "שפה", - "Language changed, please restart Freezer to apply!": - "שפה שונתה, בבקשה הפעל מחדש את Freezer כדי להחיל!", - "Importing...": "מייבא...", - "Radio": "רדיו", - "Flow": "Flow", - "Track is not available on Deezer!": "שיר לא קיים בדיזר!", - "Failed to download track! Please restart.": "הורדת השיר נכשלה! התחל מחדש." - } -}; diff --git a/translations/old_languages/hr_hr.dart b/translations/old_languages/hr_hr.dart deleted file mode 100644 index 5e6bb0d..0000000 --- a/translations/old_languages/hr_hr.dart +++ /dev/null @@ -1,195 +0,0 @@ -/* - -Translated by: Shazzaam - - */ - -const language_hr_hr = { - "hr_hr": { - "Home": "Početna", - "Search": "Tražilica", - "Library": "Biblioteka", - "Offline mode, can't play flow or smart track lists.": - "Izvanmrežični način, ne može se reproducirati flow ili pametni popis pjesama", - "Added to library": "Dodano u biblioteku", - "Download": "Skini", - "Disk": "Disk", - "Offline": "Izvranmrežno", - "Top Tracks": "Top Pjesme", - "Show more tracks": "Prikaži više pjesama", - "Top": "Top", - "Top Albums": "Top Albumi", - "Show all albums": "Prikaži više albuma", - "Discography": "Diskografija", - "Default": "Zadano", - "Reverse": "Obrnuto", - "Alphabetic": "Abecedno", - "Artist": "Umjetnik", - "Post processing...": "Naknadna obrada...", - "Done": "Gotovo", - "Delete": "Izbriši", - "Are you sure you want to delete this download?": - "Jeste li sigurni da želite izbrisati ovo skidanje?", - "Cancel": "Poništi", - "Downloads": "Skidanja", - "Clear queue": "Očisti red", - "This won't delete currently downloading item": - "Ovo neće izbrisati stavku koja se trenutno skida ", - "Are you sure you want to delete all queued downloads?": - "Jeste li sigurni da želite da poništite sva skidanja u redu čekanja", - "Clear downloads history": "Očisti povijest skidanja", - "WARNING: This will only clear non-offline (external downloads)": - "UPOZORENJE: Ovo će ukloniti samo izvanmrežna (vanjska) skidanja", - "Please check your connection and try again later...": - "Molimo vas da provjerite vašu konekciju i da pokušate ponovno...", - "Show more": "Pokaži više", - "Importer": "Uvoznik", - "Currently supporting only Spotify, with 100 tracks limit": - "Trenutno podržava samo Spotify, sa limitom od 100 pjesama", - "Due to API limitations": "Zbog ograničenja API-a", - "Enter your playlist link below": - "Unesite vezu od vašeg popisa za reprodukciju ispod", - "Error loading URL!": "Pogreška pri učitavanju URL-a!", - "Convert": "Pretvori", - "Download only": "Samo skidanja", - "Downloading is currently stopped, click here to resume.": - "Skidanja su trenutno zaustavljena, kliknite ovdje da se nastave.", - "Tracks": "Pjesme", - "Albums": "Albumi", - "Artists": "Umjetnici", - "Playlists": "Popisi za reprodukciju", - "Import": "Uvezi", - "Import playlists from Spotify": "Uvezi popis za reprodukciju sa Spotify-a", - "Statistics": "Statistike", - "Offline tracks": "Izvanmrežične pjesme", - "Offline albums": "Izvanmrežični albumi", - "Offline playlists": "Izvanmrežični popisi za reprodukciju", - "Offline size": "Izvanmrežična veličina", - "Free space": "Slobodno mjesto", - "Loved tracks": "Voljene pjesme", - "Favorites": "Favoriti", - "All offline tracks": "Sve izvanmrežične pjesme", - "Create new playlist": "Kreirajte novi popis za reprodukciju", - "Cannot create playlists in offline mode": - "Nije moguće napraviti popis za reprodukciju u izvanmrežnom načinu", - "Error": "Pogreška", - "Error logging in! Please check your token and internet connection and try again.": - "Pogreška pri prijavljivanju! Molimo vas da provjerite token i internet konekciju i da pokušate ponovno.", - "Dismiss": "Odbaciti", - "Welcome to": "Dobrodošli u", - "Please login using your Deezer account.": - "Molimo vas da se prijavite pomoću vašeg Deezer računa.", - "Login using browser": "Prijava pomoću preglednika", - "Login using token": "Prijava pomoću tokena", - "Enter ARL": "Upišite ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Spremi", - "If you don't have account, you can register on deezer.com for free.": - "Ako nemate račun, možete se besplatno registrirati na deezer.com.", - "Open in browser": "Otvori u pregledniku", - "By using this app, you don't agree with the Deezer ToS": - "Korištenjem ove aplikacije, ne slažete se sa Deezer Uvjetima pružanja usluge", - "Play next": "Pokreni sljedeću", - "Add to queue": "Dodaj u red ", - "Add track to favorites": "Dodaj pjesmu u omiljene", - "Add to playlist": "Dodaj u popis za reprodukciju", - "Select playlist": "Izaberi popis za reprodukciju", - "Track added to": "Pjesma je dodana u", - "Remove from playlist": "Ukloni iz popisa za reprodukciju", - "Track removed from": "Pjesma je uklonjena iz", - "Remove favorite": "Uklonite omiljenu", - "Track removed from library": "Pjesma je uklonjena iz biblioteke", - "Go to": "Idi u", - "Make offline": "Postavi izvanmrežno", - "Add to library": "Dodaj u biblioteku", - "Remove album": "Ukloni album", - "Album removed": "Album uklonjen", - "Remove from favorites": "Ukloni iz omiljenih", - "Artist removed from library": "Umjetnik je uklonjen iz biblioteke", - "Add to favorites": "Dodaj u omiljene", - "Remove from library": "Ukloni iz biblioteke", - "Add playlist to library": "Dodaj popis za reprodukciju u biblioteku", - "Added playlist to library": "Popis za reprodukciju je dodan u biblioteku", - "Make playlist offline": "Napravi popis za reprodukciju izvanmrežan.", - "Download playlist": "Skini popis za reprodukciju", - "Create playlist": "Napravi popis za reprodukciju", - "Title": "Naslov", - "Description": "Opis", - "Private": "Privatno", - "Collaborative": "Suradnički", - "Create": "Napravi", - "Playlist created!": "Popis za reprodukciju je napravljen!", - "Playing from:": "Svira iz:", - "Queue": "Red", - "Offline search": "Izvanmrežno traženje", - "Search Results": "Rezultati traženja", - "No results!": "Nema rezultata!", - "Show all tracks": "Prikaži sve pjesme!", - "Show all playlists": "Prikaži sve popise za reprodukciju", - "Settings": "Postavke", - "General": "Općenito", - "Appearance": "Izgled", - "Quality": "Kvalitet", - "Deezer": "Deezer", - "Theme": "Tema", - "Currently": "Trenutno", - "Select theme": "Izaberi temu", - "Light (default)": "Svijetla (Zadano)", - "Dark": "Mračno", - "Black (AMOLED)": "Crno (AMOLED)", - "Deezer (Dark)": "Deezer (Mračno)", - "Primary color": "Primarna boja", - "Selected color": "Izabrana boja", - "Use album art primary color": "Koristi primarnu boju slike albuma", - "Warning: might be buggy": "Upozorenje: može biti bugovito", - "Mobile streaming": "Strimovanje preko mobilnih podataka", - "Wifi streaming": "Strimovanje preko wifi-a", - "External downloads": "Vanjska skidanja", - "Content language": "Jezik skidanja", - "Not app language, used in headers. Now": - "Nije jezik aplikacije, korišteno u zaglavjima.", - "Select language": "Izaberi jezik", - "Content country": "Zemlja sadržaja", - "Country used in headers. Now": "Zemlja korištena u zaglavjima. Sad", - "Log tracks": "Zapis traka", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Šalji zapisnike slušanja pjesama Deezeru, omogućite za mogućnosti kao Flow da rade ispravno", - "Offline mode": "Izvanmrežični način", - "Will be overwritten on start.": "Biti će napisano preko na početku.", - "Error logging in, check your internet connections.": - "Pogreška prilikom prijavljivanja, molimo vas da provjerite vašu internet konekciju.", - "Logging in...": "Prijavljivanje...", - "Download path": "Mjesto za skidanja", - "Downloads naming": "Imenovanja skidanja", - "Downloaded tracks filename": "Naziv datoteka skinutih pjesama", - "Valid variables are": "Važeće varijable su", - "Reset": "Resetiraj", - "Clear": "Očisti", - "Create folders for artist": "Napravi datoteke za umjetnike", - "Create folders for albums": "Napravi datoteke za albume", - "Separate albums by discs": "Odvoji albume od diskova", - "Overwrite already downloaded files": "Napiši preko već skinutih datoteka", - "Copy ARL": "Kopiraj ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Kopiraj userToken/ARL cookie za korištenje u drugim aplikacijama.", - "Copied": "Kopirano", - "Log out": "Odjavi se", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Zbog nekompatibilnosti dodataka, prijava putem preglednika nije dostupna bez ponovnog pokretanja.", - "(ARL ONLY) Continue": "(SAMO ARL) Nastavi", - "Log out & Exit": "Odjavi se i izađi", - "Pick-a-Path": "Izaberi mjesto", - "Select storage": "Izaberi skladište", - "Go up": "Idi gore", - "Permission denied": "Dozvola odbijena", - "Language": "Jezik", - "Language changed, please restart Freezer to apply!": - "Jezik je promjenjen, molimo vas da ponovno pokrenete Freezer da se promjene primjene.", - "Importing...": "Uvoženje...", - "Radio": "Radio", - "Flow": "Flow", - "Track is not available on Deezer!": "Pjesma nije dostupna na Deezeru!", - "Failed to download track! Please restart.": - "Preuzimanje pjesme nije uspjelo! Molimo vas da ponovno pokrenite." - } -}; diff --git a/translations/old_languages/id_id.dart b/translations/old_languages/id_id.dart deleted file mode 100644 index 2d9f781..0000000 --- a/translations/old_languages/id_id.dart +++ /dev/null @@ -1,239 +0,0 @@ -/* - -Translated by: LenteraMalam - - */ - -const language_id_id = { - "id_id": { - "Home": "Beranda", - "Search": "Cari", - "Library": "Perpustakaan", - "Offline mode, can't play flow or smart track lists.": - "Mode offline, tidak dapat memutar aliran atau daftar putar pintar.", - "Added to library": "Ditambahkan ke Perpustakaan", - "Download": "Unduh", - "Disk": "Disk", - "Offline": "Offline", - "Top Tracks": "Lagu Populer", - "Show more tracks": "Tampilkan lebih banyak lagu", - "Top": "Populer", - "Top Albums": "Album Populer", - "Show all albums": "Tampilkan semua album", - "Discography": "Diskografi", - "Default": "Default", - "Reverse": "Membalik", - "Alphabetic": "Alfabet", - "Artist": "Artis", - "Post processing...": "Sedang diproses...", - "Done": "Selesai", - "Delete": "Hapus", - "Are you sure you want to delete this download?": - "Apakah kamu yakin ingin menghapus unduhan ini?", - "Cancel": "Batalkan", - "Downloads": "Unduhan", - "Clear queue": "Bersihkan antrean", - "This won't delete currently downloading item": - "Ini tidak akan menghapus item yang sedang diunduh", - "Are you sure you want to delete all queued downloads?": - "Apakah kamu yakin ingin menghapus semua antrean yang terunduh?", - "Clear downloads history": "Bersihkan riwayat unduhan", - "WARNING: This will only clear non-offline (external downloads)": - "PERINGATAN: Ini hanya akan menghapus non-offline (unduhan eksternal)", - "Please check your connection and try again later...": - "Periksa kembali koneksi internet anda dan ulangi kembali...", - "Show more": "Tampilkan lebih banyak", - "Importer": "Pengimport", - "Currently supporting only Spotify, with 100 tracks limit": - "Saat ini hanya mendukung Spotify, dengan batas 100 lagu", - "Due to API limitations": "Karena keterbatasan API", - "Enter your playlist link below": "Masukkan link playlist Anda di bawah ini", - "Error loading URL!": "Gagal memuat URL!", - "Convert": "Konversikan", - "Download only": "Hanya mengunduh", - "Downloading is currently stopped, click here to resume.": - "Pengunduhan saat ini dihentikan, klik di sini untuk melanjutkan.", - "Tracks": "Lagu", - "Albums": "Album", - "Artists": "Artis", - "Playlists": "Daftar Putar", - "Import": "Impo", - "Import playlists from Spotify": "Impor playlist dari Spotify", - "Statistics": "Statistik", - "Offline tracks": "Lagu offline", - "Offline albums": "Album offline", - "Offline playlists": "Daftar putar offline", - "Offline size": "Ukuran offline", - "Free space": "Penyimpanan tersedia", - "Loved tracks": "Lagu yang disukai", - "Favorites": "Favorit", - "All offline tracks": "Semua lagu offline", - "Create new playlist": "Buat daftar putar baru", - "Cannot create playlists in offline mode": - "Tidak dapat membuat daftar putar di mode offline", - "Error": "Terjadi kesalahan", - "Error logging in! Please check your token and internet connection and try again.": - "Kesalahan saat masuk! Periksa token dan koneksi internet Anda, lalu coba lagi.", - "Dismiss": "Abaikan", - "Welcome to": "Selamat datang di", - "Please login using your Deezer account.": - "Silakan masuk menggunakan akun Deezer Anda.", - "Login using browser": "Masuk menggunakan browser", - "Login using token": "Masuk menggunakan token", - "Enter ARL": "Masukkan ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Simpan", - "If you don't have account, you can register on deezer.com for free.": - "Jika Anda tidak memiliki akun, Anda dapat mendaftar di deezer.com secara gratis.", - "Open in browser": "Buka di browser", - "By using this app, you don't agree with the Deezer ToS": - "Dengan menggunakan aplikasi ini, Anda tidak setuju dengan ToS Deezer", - "Play next": "Putar selanjutnya", - "Add to queue": "Tambahkan ke antrean", - "Add track to favorites": "Tambahkan lagu ke favorit", - "Add to playlist": "Tambahkan ke daftar putar", - "Select playlist": "Pilih daftar putar", - "Track added to": "Lagu ditamhahkan ke", - "Remove from playlist": "Hapus dari daftar putar", - "Track removed from": "Lagu dihapus dari", - "Remove favorite": "Hapus favorit", - "Track removed from library": "Lagu dihapus dari perpustakaan", - "Go to": "Pergi ke", - "Make offline": "Buat offline", - "Add to library": "Tambahkan ke perpustakaan", - "Remove album": "Hapus album", - "Album removed": "Album dihapus", - "Remove from favorites": "Hapus dari favorit", - "Artist removed from library": "Artis dihapus dari perpustakaan", - "Add to favorites": "Tambahkan ke favorit", - "Remove from library": "Hapus dari perpustakaan", - "Add playlist to library": "Tambahkan daftar putar ke perpustakaan", - "Added playlist to library": "Menambahkan daftar putar ke perpustakaan", - "Make playlist offline": "Buat daftar putar offline", - "Download playlist": "Unduh daftar putar", - "Create playlist": "Buat daftar putar", - "Title": "Judul", - "Description": "Deskripsi", - "Private": "Pribadi", - "Collaborative": "Kolaboratif", - "Create": "Buat", - "Playlist created!": "Daftar putar berhasil dibuat!", - "Playing from:": "Memainkan:", - "Queue": "Antrean", - "Offline search": "Pencarian offline", - "Search Results": "Hasil perncarian", - "No results!": "Hasil tidak ditemukan!", - "Show all tracks": "Tampilkan semua lagu", - "Show all playlists": "Tampilkan semua daftar putar", - "Settings": "Pengaturan", - "General": "Umum", - "Appearance": "Tampilan", - "Quality": "Kualitas", - "Deezer": "Deezer", - "Theme": "Tema", - "Currently": "Saat ini", - "Select theme": "Pilih tema", - "Dark": "Gelap", - "Black (AMOLED)": "Hitam (AMOLED)", - "Deezer (Dark)": "Deezer (Gelap)", - "Primary color": "Warna utama", - "Selected color": "Warna yang dipilih", - "Use album art primary color": "Gunakan foto album sebagai warna utama", - "Warning: might be buggy": "Peringatan: masih ada bug", - "Mobile streaming": "Mobile streaming", - "Wifi streaming": "Wifi streaming", - "External downloads": "Unduhan eksternal", - "Content language": "Bahasa konten", - "Not app language, used in headers. Now": - "Bukan bahasa aplikasi, digunakan di header. Digunakan", - "Select language": "Pilih bahasa", - "Content country": "Wilayah konten", - "Country used in headers. Now": "Negara digunakan di header. Digunakan", - "Log tracks": "Catatan lagu", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Kirim catatan mendengarkan lagu ke Deezer, aktifkan agar fitur seperti Flow berfungsi dengan benar", - "Offline mode": "Mode offline", - "Will be overwritten on start.": "Akan ditimpa saat mulai.", - "Error logging in, check your internet connections.": - "Kesalahan saat masuk, periksa koneksi internet Anda.", - "Logging in...": "Masuk...", - "Download path": "Path unduhan", - "Downloads naming": "Penamaan unduhan", - "Downloaded tracks filename": "Nama file yang diunduh", - "Valid variables are": "Variabel yang valid", - "Reset": "Atur ulang", - "Clear": "Bersihkan", - "Create folders for artist": "Buat folder dari artis", - "Create folders for albums": "Buat folder dari album", - "Separate albums by discs": "Pisahkan album dengan disk", - "Overwrite already downloaded files": "Timpa file yang sudah diunduh", - "Copy ARL": "Salin ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Salin Token/ARL Cookie untuk digunakan di apps lain.", - "Copied": "Tersalin", - "Log out": "Keluar", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Karena ketidakcocokan plugin, masuk menggunakan browser tidak tersedia tanpa restart.", - "(ARL ONLY) Continue": "(HANYA ARL) Lanjutkan", - "Log out & Exit": "Keluar", - "Pick-a-Path": "Pilih-sebuah-Jalur", - "Select storage": "Pilih penyimpanan", - "Go up": "Naik", - "Permission denied": "Akses dilarang", - "Language": "Bahasa", - "Language changed, please restart Freezer to apply!": - "Bahasa diganti, Mulai ulang aplikasi untuk menerapkannya!", - "Importing...": "Mengimpor...", - "Radio": "Radio", - "Flow": "Flow", - "Track is not available on Deezer!": "Lagu tidak tersedia di Deezer!", - "Failed to download track! Please restart.": "Gagal untuk mengunduh lagu! Ulangi kembali.", - - //0.5.0 Strings: - "Storage permission denied!": "Izin penyimpanan ditolak!", - "Failed": "Gagal", - "Queued": "Dalam antrean", - //Updated in 0.5.1 - used in context of download: - "External": "Penyimpanan", - //0.5.0 - "Restart failed downloads": "Gagal memulai ulang unduhan", - "Clear failed": "Gagal membersihkan", - "Download Settings": "Pengaturan unduhan", - "Create folder for playlist": "Buat folder dari daftar putar", - "Download .LRC lyrics": "Unduh lirik .LRC", - "Proxy": "Proxy", - "Not set": "Tidak diatur", - "Search or paste URL": "Cari atau masukkan URL", - "History": "Riwayat", - //Updated 0.5.1 - "Download threads": "Unduh bersamaan", - //0.5.0 - "Lyrics unavailable, empty or failed to load!": "Lirik tidak tersedia, kosong atau gagal untuk memuat!", - "About": "Tentang", - "Telegram Channel": "Channel Telegram", - "To get latest releases": "Untuk mendapatkan rilisan terbaru", - "Official chat": "Obrolan resmi", - "Telegram Group": "Grub Telegram", - "Huge thanks to all the contributors! <3": "Terima kasih banyak untuk semua kontributor! <3", - "Edit playlist": "Edit daftar putar", - "Update": "Perbarui", - "Playlist updated!": "Daftar putar diperbarui!", - "Downloads added!": "Unduhan ditambahkan!", - - //0.5.1 Strings: - "Save cover file for every track": "Simpan cover foto dari setiap lagu", - "Download Log": "Catatan unduhan", - "Repository": "Repository", - "Source code, report issues there.": "Kode sumber, laporkan masalah disini.", - - //0.5.2 Strings: - "Use system theme": "Gunakan tema sistem", - "Light": "Cerah", - - //0.5.3 Strings: - "Popularity": "Popularitas", - "User": "Pengguna", - "Track count": "Jumlah lagu", - "If you want to use custom directory naming - use '/' as directory separator.": "Jika Anda ingin menggunakan penamaan direktori kustom - gunakan '/' sebagai pemisah direktori." - } -}; \ No newline at end of file diff --git a/translations/old_languages/it_it.dart b/translations/old_languages/it_it.dart deleted file mode 100644 index b16badc..0000000 --- a/translations/old_languages/it_it.dart +++ /dev/null @@ -1,232 +0,0 @@ -/* - -Translated by: Andrea - -*/ - -const language_it_it = { - "it_it": { - "Home": "Pagina Iniziale", - "Search": "Cerca", - "Library": "Libreria", - "Offline mode, can't play flow or smart track lists.": - "Modalità offline, non è possibile riprodurre flow o tracklist smart", - "Added to library": "Aggiunto alla libreria", - "Download": "Scarica", - "Disk": "Disco", - "Offline": "Offline", - "Top Tracks": "Brani in evidenza", - "Show more tracks": "Mostra più brani", - "Top": "Top", - "Top Albums": "Album in evidenza", - "Show all albums": "Mostra tutti gli album", - "Discography": "Discografia", - "Default": "Default", - "Reverse": "Reverse", - "Alphabetic": "Alfabetico", - "Artist": "Artista", - "Post processing...": "Elaborazione...", - "Done": "Fatto", - "Delete": "Cancellare", - "Are you sure you want to delete this download?": - "Sei sicuro di voler cancellare questo download?", - "Cancel": "Annulla", - "Downloads": "Download", - "Clear queue": "Pulisci la coda", - "This won't delete currently downloading item": - "Questa azione non cancellerà i download", - "Are you sure you want to delete all queued downloads?": - "Sei sicuro di voler cancellare tutti i download in coda?", - "Clear downloads history": "Pulisci la cronologia dei download", - "WARNING: This will only clear non-offline (external downloads)": - "ATTENZIONE: Questa azione, pulirà solo i files che non sono offline (download esterni)", - "Please check your connection and try again later...": - "Per favore controlla la tua connessione e riprova più tardi...", - "Show more": "Mostra di più", - "Importer": "Importa", - "Currently supporting only Spotify, with 100 tracks limit": - "Attualmente supporta solo Spotify, con un limite di 100 brani", - "Due to API limitations": "A causa delle limitazioni delle API", - "Enter your playlist link below": - "Inserisci il link della tua playlist qui sotto", - "Error loading URL!": "Errore nel caricare l'URL!", - "Convert": "Converti", - "Download only": "Solo Download", - "Downloading is currently stopped, click here to resume.": - "Il download è attualmente interrotto, fare clic qui per riprenderlo.", - "Tracks": "Brani", - "Albums": "Album", - "Artists": "Artisti", - "Playlists": "Playlist", - "Import": "Importa", - "Import playlists from Spotify": "Importa playlists da Spotify", - "Statistics": "Statistiche", - "Offline tracks": "Brani offline", - "Offline albums": "Album offline", - "Offline playlists": "Playlist offline", - "Offline size": "Spazio occupato offline", - "Free space": "Spazio libero", - "Loved tracks": "Brani preferiti", - "Favorites": "Preferiti", - "All offline tracks": "Tutte i brani offline", - "Create new playlist": "Crea una nuova playlist", - "Cannot create playlists in offline mode": - "Impossibile creare playlist in modalità offline", - "Error": "Errore", - "Error logging in! Please check your token and internet connection and try again.": - "Errore durante l'accesso! Controlla il token, la tua connessione ad internet e riprova.", - "Dismiss": "Chiudi", - "Welcome to": "Benvenuto su", - "Please login using your Deezer account.": - "Per favore, esegui il login utilizzando il tuo account Deezer.", - "Login using browser": "Login utilizzando il browser", - "Login using token": "Login utilizzando il token", - "Enter ARL": "Inserisci l'ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Salva", - "If you don't have account, you can register on deezer.com for free.": - "Se non possiedi un account, puoi registrarti sul sito deezer.com gratuitamente.", - "Open in browser": "Apri nel browser", - "By using this app, you don't agree with the Deezer ToS": - "Utilizzando questa applicazione, non accetti i ToS di Deezer", - "Play next": "Riproduci subito dopo", - "Add to queue": "Aggiungi alla coda", - "Add track to favorites": "Aggiungi il brano ai preferiti", - "Add to playlist": "Aggiungi a playlist...", - "Select playlist": "Seleziona playlist", - "Track added to": "Brano aggiunto a", - "Remove from playlist": "Rimuovi dalla playlist", - "Track removed from": "Brano rimosso da", - "Remove favorite": "Rimuovi dai preferiti", - "Track removed from library": "Brano rimosso dalla libreria", - "Go to": "Vai a", - "Make offline": "Rendi offline", - "Add to library": "Aggiungi alla libreria", - "Remove album": "Rimuovi album", - "Album removed": "Album rimosso", - "Remove from favorites": "Rimuovi dai preferiti", - "Artist removed from library": "Artista rimosso dalla libreria", - "Add to favorites": "Aggiungi ai preferiti", - "Remove from library": "Rimuovi dalla libreria", - "Add playlist to library": "Aggiungi playlist alla libreria", - "Added playlist to library": "Playlist aggiunta alla libreria", - "Make playlist offline": "Rendi la playlist offline", - "Download playlist": "Scarica playlist", - "Create playlist": "Crea playlist", - "Title": "Titolo", - "Description": "Descrizione", - "Private": "Privata", - "Collaborative": "Collaborativa", - "Create": "Crea", - "Playlist created!": "Playlist creata!", - "Playing from:": "Riproduzione da:", - "Queue": "Coda", - "Offline search": "Ricerca offline", - "Search Results": "Risultati della ricerca", - "No results!": "Nessun risultato!", - "Show all tracks": "Mostra tutti i brani", - "Show all playlists": "Mostra tutte le playlists", - "Settings": "Opzioni", - "General": "Generale", - "Appearance": "Aspetto", - "Quality": "Qualità", - "Deezer": "Deezer", - "Theme": "Tema", - "Currently": "Attuale", - "Select theme": "Seleziona Tema", - "Light (default)": "Chiaro (Default)", - "Dark": "Scuro", - "Black (AMOLED)": "Nero (AMOLED)", - "Deezer (Dark)": "Deezer (Scuro)", - "Primary color": "Colore Principale", - "Selected color": "Colore Selezionato", - "Use album art primary color": - "Usa il colore principale della copertina dell'album", - "Warning: might be buggy": "Attenzione: potrebbe causare problemi", - "Mobile streaming": "Streaming con dati", - "Wifi streaming": "Streaming con WiFi", - "External downloads": "Download esterni", - "Content language": "Lingua dei contenuti", - "Not app language, used in headers. Now": - "Non la lingua dell'app, utilizzata negli header. Adesso", - "Select language": "Seleziona la lingua", - "Content country": "Contenuto dal Paese", - "Country used in headers. Now": "Paese contenuto negli header. Ora", - "Log tracks": "Log delle tracce", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Invia i log delle canzioni ascoltate a Deezer, abilitalo affinché features come Flow funzionino correttamente", - "Offline mode": "Modalità Offline", - "Will be overwritten on start.": "Sarà sovrascritto all'avvio.", - "Error logging in, check your internet connections.": - "Errore durante l'accesso, controlla la tua connessione Internet.", - "Logging in...": "Accesso in corso...", - "Download path": "Percorso di download", - "Downloads naming": "Denominazione dei download", - "Downloaded tracks filename": "Nome del file dei brani scaricati", - "Valid variables are": "Le variabili valide sono", - "Reset": "Ripristina", - "Clear": "Pulisci", - "Create folders for artist": "Crea cartelle per gli artisti", - "Create folders for albums": "Crea cartelle per gli album", - "Separate albums by discs": "Separa gli album per disco", - "Overwrite already downloaded files": "Sovrascrivi i file già scaricati", - "Copy ARL": "Copia ARL", - "Copy userToken/ARL Cookie for use in other apps.": - "Copia userToken / ARL Cookie da utilizzare in altre app.", - "Copied": "Copiato", - "Log out": "Disconnettiti", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "A causa dell'incompatibilità del plug-in, l'accesso tramite browser non è disponibile senza riavvio.", - "(ARL ONLY) Continue": "(SOLO ARL) Continua", - "Log out & Exit": "Disconnettiti e Esci", - "Pick-a-Path": "Scegli un percorso", - "Select storage": "Seleziona dispositivo di archiviazione", - "Go up": "Vai su", - "Permission denied": "Permesso negato", - "Language": "Lingua", - "Language changed, please restart Freezer to apply!": - "Lingua cambiata, riavvia Freezer per applicare la modifica!", - "Importing...": "Importando...", - "Radio": "Radio", - "Flow": "Flow", - - //0.5.0 Strings: - "Storage permission denied!": "Autorizzazione di archiviazione negata!", - "Failed": "Fallito", - "Queued": "In coda", - "External": "Archiviazione", - "Restart failed downloads": "Riavvia download non riusciti", - "Clear failed": "Pulisci fallito", - "Download Settings": "Impostazioni download", - "Create folder for playlist": "Crea cartella per playlist", - "Download .LRC lyrics": "Scarica testi .LRC", - "Proxy": "Proxy", - "Not set": "Non impostato", - "Search or paste URL": "Cerca o incolla l'URL", - "History": "Storia", - "Download threads": "Download simultanei", - "Lyrics unavailable, empty or failed to load!": - "Testi non disponibili, vuoti o caricamento non riuscito!", - "About": "Info", - "Telegram Channel": "Canale Telegram", - "To get latest releases": "Per ottenere le ultime versioni", - "Official chat": "Chat ufficiale", - "Telegram Group": "Gruppo Telegram", - "Huge thanks to all the contributors! <3": - "Un enorme grazie a tutti i collaboratori! <3", - "Edit playlist": "Modifica playlist", - "Update": "Aggiorna", - "Playlist updated!": "Playlist aggiornata!", - "Downloads added!": "Download aggiunti!", - "Save cover file for every track": - "Salva la copertina dell'album per ogni traccia", - "Download Log": "Download Log", - "Repository": "Repository", - "Source code, report issues there.": - "Codice sorgente, segnala i problemi lì.", - - //0.5.2 Strings: - "Use system theme": "Utilizza il tema di sistema", - "Light": "Chiaro" - } -}; diff --git a/translations/old_languages/ko_ko.dart b/translations/old_languages/ko_ko.dart deleted file mode 100644 index 90f5bbc..0000000 --- a/translations/old_languages/ko_ko.dart +++ /dev/null @@ -1,188 +0,0 @@ -/* - -Translated by: koreezzz - - */ - -const language_ko_ko = { - "ko_ko": { - "Home": "홈", - "Search": "검색", - "Library": "라이브러리", - "Offline mode, can't play flow or smart track lists.": - "오프라인 모드. Flow 또는 스마트 트랙 목록을 재생할 수 없습니다.", - "Added to library": "라이브러리에 추가됨", - "Download": "다운로드", - "Disk": "디스크", - "Offline": "오프라인", - "Top Tracks": "인기 트랙", - "Show more tracks": "더 많은 트랙보기", - "Top": "인기", - "Top Albums": "인기 앨범", - "Show all albums": "모든 앨범보기", - "Discography": "디스코그래피", - "Default": "기본값", - "Reverse": "역전", - "Alphabetic": "알파벳순", - "Artist": "가수", - "Post processing...": "후 처리…", - "Done": "완료", - "Delete": "삭제", - "Are you sure you want to delete this download?": "이 다운로드를 삭제 하시겠습니까?", - "Cancel": "취소", - "Downloads": "다운로드한 내용", - "Clear queue": "목록 지우기", - "This won't delete currently downloading item": "현재 다운로드중인 항목은 삭제되지 않습니다.", - "Are you sure you want to delete all queued downloads?": - "대기중인 모든 다운로드를 삭제 하시겠습니까?", - "Clear downloads history": "다운로드 기록 지우기", - "WARNING: This will only clear non-offline (external downloads)": - "경고 : 오프라인이 아닌 내용만 삭제됩니다 (외부 다운로드).", - "Please check your connection and try again later...": - "인터넷 연결을 확인하고 나중에 다시 시도하십시오 ...", - "Show more": "자세히보기", - "Importer": "수입자", - "Currently supporting only Spotify, with 100 tracks limit": - "현재 Spotify 만 지원하며 트랙 제한은 100 곡입니다.", - "Due to API limitations": "API 제한으로 인해", - "Enter your playlist link below": "아래에 곡목표 링크 입력 하십시오", - "Error loading URL!": "URL 불러 오기 오류!", - "Convert": "변환", - "Download only": "다운로드 전용", - "Downloading is currently stopped, click here to resume.": - "다운로드는 현재 중지되었습니다. 다시 시작하려면 여기를 클릭하십시오.", - "Tracks": "트랙", - "Albums": "앨범", - "Artists": "가수", - "Playlists": "재생 목록", - "Import": "수입", - "Import playlists from Spotify": "Spotify에서 재생 목록을 가져 오기", - "Statistics": "통계", - "Offline tracks": "오프라인 트랙", - "Offline albums": "오프라인 앨범", - "Offline playlists": "오프라인 재생 목록", - "Offline size": "오프라인 사이즈", - "Free space": "자유 공간", - "Loved tracks": "즐겨 찾기는 트랙", - "Favorites": "즐겨 찾기", - "All offline tracks": "모든 오프라인 트랙", - "Create new playlist": "새 재생 목록을 만들기", - "Cannot create playlists in offline mode": "오프라인 모드에서 재생 목록을 만들 수 없습니다.", - "Error": "오류", - "Error logging in! Please check your token and internet connection and try again.": - "로그인 오류! 토큰 및 인터넷 연결을 확인하고 다시 시도하십시오.", - "Dismiss": "해고", - "Welcome to": "\$에 오신 것을 환영합니다", - "Please login using your Deezer account.": "Deezer 계정을 사용하여 로그인하십시오.", - "Login using browser": "브라우저를 사용하여 로그인", - "Login using token": "토큰을 사용하여 로그인", - "Enter ARL": "ARL 입력", - "Token (ARL)": "토큰 (ARL)", - "Save": "저장", - "If you don't have account, you can register on deezer.com for free.": - "계정이 없으시면 deezer.com에서 무료로 등록하실 수 있습니다.", - "Open in browser": "브라우저에서 열기", - "By using this app, you don't agree with the Deezer ToS": - "이 앱을 사용하면 Deezer ToS에 동의하지 않습니다.", - "Play next": "다음 재생", - "Add to queue": "목록에 추가", - "Add track to favorites": "즐겨 찾기에 트랙 추가", - "Add to playlist": "재생 목록에 추가", - "Select playlist": "재생 목록을 선택", - "Track added to": "\$에 트랙을 추가되었습니다", - "Remove from playlist": "재생 목록에서 삭제", - "Track removed from": "\$에서 트랙을 삭제되었습니다", - "Remove favorite": "즐겨 찾기를 삭제", - "Track removed from library": "라이브러리에서 트랙을 삭제되었습니다", - "Go to": "\$에 이동", - "Make offline": "오프라인으로 설정", - "Add to library": "라이브러리에 추가", - "Remove album": "앨범을 삭제", - "Album removed": "앨범을 삭제되었습니다", - "Remove from favorites": "즐겨 찾기에서 삭제", - "Artist removed from library": "가수를 라이브러리에서 삭제되었습니다.", - "Add to favorites": "즐겨 찾기에 추가", - "Remove from library": "라이브러리에서 삭제", - "Add playlist to library": "라이브러리에 재생 목록을 추가", - "Added playlist to library": "라이브러리에 재생 목록을 추가되었습니다", - "Make playlist offline": "재생 목록을 오프라인으로 설정", - "Download playlist": "재생 목록을 다운로드", - "Create playlist": "재생 목록을 만들기", - "Title": "타이틀", - "Description": "서술", - "Private": "사유의", - "Collaborative": "공동의", - "Create": "창조", - "Playlist created!": "재생 목록을 생성되었습니다!", - "Playing from:": "\$부터 재생:", - "Queue": "목록", - "Offline search": "오프라인 검색", - "Search Results": "검색 결과", - "No results!": "결과가 없습니다!", - "Show all tracks": "모든 트랙을 보기", - "Show all playlists": "모든 재생 목록을 보기", - "Settings": "설정", - "General": "일반", - "Appearance": "외모", - "Quality": "품질", - "Deezer": "Deezer", - "Theme": "테마", - "Currently": "현재", - "Select theme": "테마 선택", - "Light (default)": "라이트 (기본값)", - "Dark": "다크", - "Black (AMOLED)": "블랙 (AMOLED)", - "Deezer (Dark)": "Deezer (다크)", - "Primary color": "원색", - "Selected color": "선택한 색상", - "Use album art primary color": "앨범 아트 기본 색상 사용", - "Warning: might be buggy": "경고: 버그가 있을 수 있습니다.", - "Mobile streaming": "모바일 스트리밍", - "Wifi streaming": "Wi-Fi 스트리밍", - "External downloads": "외부 다운로드", - "Content language": "콘텐츠 언어", - "Not app language, used in headers. Now": "헤더에 사용된 앱 언어가 아닙니다. 현재", - "Select language": "언어 선택", - "Content country": "콘텐츠 국가", - "Country used in headers. Now": "헤더에 사용 된 국가. 현재", - "Log tracks": "트랙로그", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Deezer에 트랙로그를 전송. Flow와 같은 기능이 제대로 작동하려면 이 기능을 활성화하십시오.", - "Offline mode": "오프라인 모드", - "Will be overwritten on start.": "시작할 때 덮어 씁니다.", - "Error logging in, check your internet connections.": - "로그인 오류, 인터넷 연결을 확인하십시오.", - "Logging in...": "…\$에로그인 중", - "Download path": "다운로드 경로", - "Downloads naming": "다운로드 네이밍", - "Downloaded tracks filename": "다운로드 된 트랙 파일명", - "Valid variables are": "유효한 변수", - "Reset": "초기화", - "Clear": "치우기", - "Create folders for artist": "가수 용 폴더 만들기", - "Create folders for albums": "앨범 용 폴더 만들기", - "Separate albums by discs": "디스크별로 앨범 분리", - "Overwrite already downloaded files": "이미 다운로드 한 파일을 덮어 쓰기", - "Copy ARL": "ARL 복사", - "Copy userToken/ARL Cookie for use in other apps.": - "다른 앱에서 사용하기 위해 사용자 토큰 / ARL 쿠키를 복사하기.", - "Copied": "복사 됨", - "Log out": "로그 아웃", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "플러그인 비 호환성으로 인해 다시 시작하지 않으면 브라우저를 사용하여 로그인 할 수 없습니다.", - "(ARL ONLY) Continue": "(ARL 만 해당) 계속", - "Log out & Exit": "로그 아웃 및 종료", - "Pick-a-Path": "경로 선택", - "Select storage": "저장소 선택", - "Go up": "위로 이동", - "Permission denied": "권한이 거부되었습니다.", - "Language": "언어", - "Language changed, please restart Freezer to apply!": - "언어가 변경되었습니다. 적용하려면 Freezer를 다시 시작하세요!", - "Importing...": "…\$가져 오는 중", - "Radio": "라디오", - "Flow": "Flow", - "Track is not available on Deezer!": "Deezer에서는 트랙을 사용할 수 없습니다!", - "Failed to download track! Please restart.": "트랙을 다운로드하지 못했습니다! 다시 시작하십시오.", - } -}; diff --git a/translations/old_languages/pt_br.dart b/translations/old_languages/pt_br.dart deleted file mode 100644 index 76df011..0000000 --- a/translations/old_languages/pt_br.dart +++ /dev/null @@ -1,169 +0,0 @@ -/* - -Translated by: Diego Hiro - -*/ - -const language_pt_br = {"pt_br": { - "Home": "Início", - "Search": "Pesquisar", - "Library": "Biblioteca", - "Offline mode, can't play flow or smart track lists.": "Modo offline, incapaz de reproduzir faixas do flow(personalizadas) ou playlist inteligentes.", - "Added to library": "Adicionado para sua biblioteca", - "Download": "Download", - "Disk": "Disco", - "Offline": "Offline", - "Top Tracks": "Faixas no Top", - "Show more tracks": "Exibir mais faixas", - "Top": "Top", - "Top Albums": "Álbuns no Top", - "Show all albums": "Mostrar todos os álbuns", - "Discography": "Discografia", - "Default": "Padrão", - "Reverse": "Reverter", - "Alphabetic": "Alfabética", - "Artist": "Artista", - "Post processing...": "Processando...", - "Done": "Feito", - "Delete": "Deletar", - "Are you sure you want to delete this download?": "Tem certeza que deseja excluir este download?", - "Cancel": "Cancelar", - "Downloads": "Downloads", - "Clear queue": "Limpar fila", - "This won't delete currently downloading item": "Isso não excluirá os itens que estão fazendo download", - "Are you sure you want to delete all queued downloads?": "Tem certeza que deseja excluir todos os downloads que estão na fila?", - "Clear downloads history": "Limpar histórico de downloads", - "WARNING: This will only clear non-offline (external downloads)": "Cuidado: Isso limpará apenas faixas e listas off-line (downloads externos)", - "Please check your connection and try again later...": "Verifique sua conexão e tente novamente. Caso sua rede não esteja estável, tente mais tarde...", - "Show more": "Mostrar Mais", - "Importer": "importador", - "Currently supporting only Spotify, with 100 tracks limit": "Atualmente suportando apenas Spotify, com limite de 100 faixas", - "Due to API limitations": "Devido às limitações da API", - "Enter your playlist link below": "Insira o link da sua lista de reprodução abaixo", - "Error loading URL!": "Erro ao carregar URL!", - "Convert": "Converter", - "Download only": "Somente download", - "Downloading is currently stopped, click here to resume.": "O download está parado no momento, clique aqui para retomar.", - "Tracks": "Faixas", - "Albums": "Álbuns", - "Artists": "Artistas", - "Playlists": "Playlists", - "Import": "Importar", - "Import playlists from Spotify": "Importar playlists do Spotify", - "Statistics": "Estatísticas", - "Offline tracks": "Faixas Offline", - "Offline albums": "Álbuns Offline", - "Offline playlists": "Playlists Offline", - "Offline size": "Espaço ocupado Offline", - "Free space": "Espaço livre", - "Loved tracks": "Faixas que gostou", - "Favorites": "Favoritos", - "All offline tracks": "Todas as faixas offline", - "Create new playlist": "Criar nova playlist", - "Cannot create playlists in offline mode": "Não é possível criar playlists no modo offline", - "Error": "Erro", - "Error logging in! Please check your token and internet connection and try again.": "Erro ao tentar login! Verifique seu token e sua conexão com a Internet, tente novamente.", - "Dismiss": "Dispensar", - "Welcome to": "Bem-vindo ao", - "Please login using your Deezer account.": "Faça login usando sua conta Deezer.", - "Login using browser": "Faça login usando o navegador", - "Login using token": "Faça login usando o token", - "Enter ARL": "Inserir ARL", - "Token (ARL)": "Token (ARL)", - "Save": "Salvar", - "If you don't have account, you can register on deezer.com for free.": "Se você não tem uma conta, pode se registrar em deezer.com gratuitamente.", - "Open in browser": "Abra no navegador", - "By using this app, you don't agree with the Deezer ToS": "Ao usar este aplicativo, você não concorda com os Termos de Uso com a Deezer", - "Play next": "Tocar próxima", - "Add to queue": "Adicionar à fila", - "Add track to favorites": "Adicionar faixa aos favoritos", - "Add to playlist": "Adicionar à Playlist", - "Select playlist": "Selecionar playlist", - "Track added to": "Faixa adicionada para", - "Remove from playlist": "Remover da playlist", - "Track removed from": "Faixa removida do(a)", - "Remove favorite": "Remover favorito", - "Track removed from library": "Faixa removida da biblioteca", - "Go to": "Ir para", - "Make offline": "Reproduzir offline", - "Add to library": "Adicionar à biblioteca", - "Remove album": "Remover álbum", - "Album removed": "Álbum removido", - "Remove from favorites": "Remover do favoritos", - "Artist removed from library": "Artista Removido da biblioteca", - "Add to favorites": "Adicionar para favoritos", - "Remove from library": "Remover da biblioteca", - "Add playlist to library": "Adicionar playlist para biblioteca", - "Added playlist to library": "Playlist adicionada para biblioteca", - "Make playlist offline": "Converter playlist para modo offline", - "Download playlist": " Efetuar download da playlist", - "Create playlist": "Criar playlist", - "Title": "Título", - "Description": "Descrição", - "Private": "Privado", - "Collaborative": "Colaborativo", - "Create": "Criar", - "Playlist created!": "Playlist criada!", - "Playing from:": "Playing de:", - "Queue": "Fila", - "Offline search": "Pesquisa Offline", - "Search Results": "Resultado da pesquisa", - "No results!": "Nenhum resultado encontrado!", - "Show all tracks": "Mostrar todas as faixas", - "Show all playlists": "Mostrar todas playlists", - "Settings": "Configurações", - "General": "Geral", - "Appearance": "Aparência", - "Quality": "Qualidade", - "Deezer": "Deezer", - "Theme": "Tema", - "Currently": "Atualmente", - "Select theme": "Selecionar tema", - "Light (default)": "Claro (Padrão)", - "Dark": "Escuro", - "Black (AMOLED)": "Preto (AMOLED)", - "Deezer (Dark)": "Deezer (Escuro - Dark Mode)", - "Primary color": "Cor Primária", - "Selected color": "Cor selecionada", - "Use album art primary color": "Use a cor primária da capa do álbum", - "Warning: might be buggy": "Cuidado: pode ter erros dependendo do dispositivo", - "Mobile streaming": "Streaming por dados móveis", - "Wifi streaming": "Streaming por Rede Wifi", - "External downloads": "Downloads Externos", - "Content language": "Linguagem do conteúdo", - "Not app language, used in headers. Now": "Não é o idioma do aplicativo, programação feita em outra Linguagem. Agora", - "Select language": "Selecione a linguagem", - "Content country": "País do conteúdo a Exibir", - "Country used in headers. Now": "País habilitado no banco de dados. Agora", - "Log tracks": "Log de faixas", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": "Enviar registros de faixas de trilhas para o Deezer, habilite-o para o funcionamento de recursos, como o Flow para funcionar corretamente", - "Offline mode": "Modo Offline", - "Will be overwritten on start.": "Será sobrescrito no próximo início do aplicativo.", - "Error logging in, check your internet connections.": "Erro ao fazer login, verifique suas conexões de internet.", - "Logging in...": "Logando em...", - "Download path": "Caminho de download", - "Downloads naming": "Nomenclatura de downloads", - "Downloaded tracks filename": "Nome de arquivo das faixas baixadas", - "Valid variables are": "Variáveis ​​válidas são", - "Reset": "Resetar", - "Clear": "Limpar", - "Create folders for artist": "Create folders for artist", - "Create folders for albums": "Create folders for albums", - "Separate albums by discs": "Separate albums by discs", - "Overwrite already downloaded files": "Overwrite already downloaded files", - "Copy ARL": "Copiar ARL", - "Copy userToken/ARL Cookie for use in other apps.": "Copiar userToken/ARL Cookie para uso em outros aplicativos.", - "Copied": "Copiado", - "Log out": "Deslogar", - "Due to plugin incompatibility, login using browser is unavailable without restart.": "Due to plugin incompatibility, login using browser is unavailable without restart.", - "(ARL ONLY) Continue": "(Somente ARL) Continuar", - "Log out & Exit": "Deslogar & Sair", - "Pick-a-Path": "Escola-um-Caminho", - "Select storage": "Selecione o armazenamento", - "Go up": "Subir", - "Permission denied": "Permissão negada", - "Language": "Linguagem", - "Language changed, please restart Freezer to apply!": "Idioma alterado, reinicie o Freezer para aplicar!", - "Importing...": "Importando..." - } -}; diff --git a/translations/old_languages/ro_ro.dart b/translations/old_languages/ro_ro.dart deleted file mode 100644 index 59591fd..0000000 --- a/translations/old_languages/ro_ro.dart +++ /dev/null @@ -1,230 +0,0 @@ -/* - -Translated by: MicroMihai - -*/ - -const language_ro_ro = { - "ro_ro": { - "Home": "Home", - "Search": "Căutare", - "Library": "Librărie", - "Offline mode, can't play flow or smart track lists.": - "Mod offline, nu pot reda flow-uri sau liste smart track.", - "Added to library": "Adăugat la librărie", - "Download": "Descărcați", - "Disk": "Disc", - "Offline": "Offline", - "Top Tracks": "Piese Top", - "Show more tracks": "Afișează mai multe piese", - "Top": "Top", - "Top Albums": "Albume Top", - "Show all albums": "Afișează toate albumele", - "Discography": "Discografie", - "Default": "Implicit", - "Reverse": "Invers", - "Alphabetic": "Alfabetic", - "Artist": "Artist", - "Post processing...": "Post procesare...", - "Done": "Gata", - "Delete": "Ștergeți", - "Are you sure you want to delete this download?": - "Ești sigur că vrei să ștergi această descărcare?", - "Cancel": "Anulează", - "Downloads": "Descărcări", - "Clear queue": "Ștergeți coada", - "This won't delete currently downloading item": - "Aceasta nu va șterge elementul care se descarcă acum", - "Are you sure you want to delete all queued downloads?": - "Ești sigur că vrei să ștergi toate descărcările aflate în coadă?", - "Clear downloads history": "Șterge istoricul descărcărilor", - "WARNING: This will only clear non-offline (external downloads)": - "AVERTISMENT: Aceasta va șterge numai non-offline-urile (descărcări externe)", - "Please check your connection and try again later...": - "Vă rugăm să verificați conexiunea și să încercați din nou mai târziu...", - "Show more": "Arată mai multe", - "Importer": "Importator", - "Currently supporting only Spotify, with 100 tracks limit": - "În prezent acceptă doar Spotify, cu limita de 100 de piese", - "Due to API limitations": "Din cauza limitărilor API", - "Enter your playlist link below": "Introduceți linkul playlistului de mai jos", - "Error loading URL!": "Eroare la încărcarea URL-ului!", - "Convert": "Convertiți", - "Download only": "Doar descărcare", - "Downloading is currently stopped, click here to resume.": - "Descărcarea acum este oprită, faceți clic pentru a relua.", - "Tracks": "Piese", - "Albums": "Albume", - "Artists": "Artiști", - "Playlists": "Playlist-uri", - "Import": "Import", - "Import playlists from Spotify": "Importă playlist-uri din Spotify", - "Statistics": "Statistici", - "Offline tracks": "Piese offline", - "Offline albums": "Albume offline", - "Offline playlists": "Playlist-uri offline", - "Offline size": "Dimensiune offline", - "Free space": "Spațiu liber", - "Loved tracks": "Piese favorite", - "Favorites": "Favorite", - "All offline tracks": "Toate piesele offline", - "Create new playlist": "Crează un nou playlist", - "Cannot create playlists in offline mode": - "Nu se pot crea playlist-uri în modul offline", - "Error": "Eroare", - "Error logging in! Please check your token and internet connection and try again.": - "Eroare la conectare! Verificați token-ul și conexiunea la internet și încercați din nou.", - "Dismiss": "Renunță", - "Welcome to": "Bun venit la", - "Please login using your Deezer account.": - "Te rugăm să te conectezi utilizând contul tau Deezer.", - "Login using browser": "Autentificare utilizând browserul", - "Login using token": "Autentificare folosind token-ul", - "Enter ARL": "Introduceți ARL-ul", - "Token (ARL)": "Token (ARL)", - "Save": "Salvează", - "If you don't have account, you can register on deezer.com for free.": - "Dacă nu ai un cont, te poți înregistra gratuit pe deezer.com.", - "Open in browser": "Deschide în browser", - "By using this app, you don't agree with the Deezer ToS": - "Prin utilizarea acestei aplicații, nu sunteți de acord cu Deezer ToS", - "Play next": "Redă urmatorul", - "Add to queue": "Adaugă la coadă", - "Add track to favorites": "Adaugă piesa la favorite", - "Add to playlist": "Adaugă la un playlist", - "Select playlist": "Selectează playlist-ul", - "Track added to": "Piesa a fost adăugată la", - "Remove from playlist": "Șterge din playlist", - "Track removed from": "Piesa a fost eliminată din", - "Remove favorite": "Ștergeți favoritul", - "Track removed from library": "Piesa a fost eliminată din librărie", - "Go to": "Accesați", - "Make offline": "Pune offline", - "Add to library": "Adaugă la librărie", - "Remove album": "Șterge album-ul", - "Album removed": "Album-ul a fost șters", - "Remove from favorites": "Șterge din favorite", - "Artist removed from library": "Artist șters din librărie", - "Add to favorites": "Adaugă la favorite", - "Remove from library": "Șterge din librărie", - "Add playlist to library": "Adaugă playlist-ul la librărie", - "Added playlist to library": "Playlist-ul a fost adăugat la librărie", - "Make playlist offline": "Pune playlist-ul offline", - "Download playlist": "Descarcă playlist-ul", - "Create playlist": "Crează un playlist", - "Title": "Titlu", - "Description": "Descriere", - "Private": "Privat", - "Collaborative": "Colaborativ", - "Create": "Create", - "Playlist created!": "Playlist-ul a fost creat!", - "Playing from:": "Redare din:", - "Queue": "Coadă", - "Offline search": "Căutare offline", - "Search Results": "Rezultate găsite", - "No results!": "Nici un rezultat", - "Show all tracks": "Afișează toate piesele", - "Show all playlists": "Afișează toate playlist-urile", - "Settings": "Setări", - "General": "General", - "Appearance": "Aspect", - "Quality": "Calitate", - "Deezer": "Deezer", - "Theme": "Temă", - "Currently": "Acum", - "Select theme": "Alege tema", - "Light (default)": "Aprins (Default)", - "Dark": "Întunecat", - "Black (AMOLED)": "Negru (AMOLED)", - "Deezer (Dark)": "Deezer (Întunecat)", - "Primary color": "Culoare primară", - "Selected color": "Culoarea selectată", - "Use album art primary color": "Utilizați culoarea primară ale album-ului", - "Warning: might be buggy": "Avertisment: ar putea fi cam bug-uit", - "Mobile streaming": "Streaming mobil", - "Wifi streaming": "Streaming Wi-Fi", - "External downloads": "Descărcări externe", - "Content language": "Limbajul conținutului", - "Not app language, used in headers. Now": - "Nu este limba aplicației, folosit în header (titlu). Acum", - "Select language": "Alege o limbă", - "Content country": "Conținutul tării", - "Country used in headers. Now": "Țara este utilizată în header-i (titluri). Acum", - "Log tracks": "Log-ul pieselor", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Trimiteți log-urile de ascultare a pieselor către Deezer, activați-l pentru funcții precum Flow să funcționeze corect", - "Offline mode": "Mod offline", - "Will be overwritten on start.": "Va fi suprascris la început.", - "Error logging in, check your internet connections.": - "Eroare la conectare, verificați conexiunile la internet.", - "Logging in...": "Conectare...", - "Download path": "Calea descărcărilor", - "Downloads naming": "Denumirea descărcărilor", - "Downloaded tracks filename": "Numele pieselor descărcate", - "Valid variables are": "Variabilele valide sunt", - "Reset": "Reset", - "Clear": "Șterge", - "Create folders for artist": "Creați foldere pentru artiști", - "Create folders for albums": "Creați foldere pentru albume", - "Separate albums by discs": "Separează albumele după discuri", - "Overwrite already downloaded files": "Suprascrieți fișierele deja descărcate", - "Copy ARL": "Copiază ARL-ul", - "Copy userToken/ARL Cookie for use in other apps.": - "Copiază userToken-ul/ARL-ul Cookie utilizarea în alte aplicații.", - "Copied": "Copiat", - "Log out": "Deconectază", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Din cauza incompatibilității plugin-ului, conectarea utilizând browserul nu este disponibilă fără un restart", - "(ARL ONLY) Continue": "(DOAR ARL) Continuă", - "Log out & Exit": "Deconectează și ieși", - "Pick-a-Path": "Alege o cale", - "Select storage": "Selectează stocarea", - "Go up": "Du-te sus", - "Permission denied": "Permisie refuzată", - "Language": "Limbă", - "Language changed, please restart Freezer to apply!": - "Limba a fost schimbată, restart-ați Freezer pentru a aplica schimbarea!", - "Importing...": "Importând...", - "Radio": "Radio", - "Flow": "Flow", - "Track is not available on Deezer!": "Piesa nu este disponibilă pe Deezer!", - "Failed to download track! Please restart.": "Descărcarea piesei nu a reușit! Restart-ați.", - - //0.5.0 Strings: - "Storage permission denied!": "Permisia de stocare a fost refuzată!", - "Failed": "Eșuat", - "Queued": "În coadă", - //Updated in 0.5.1 - used in context of download: - "External": "Stocare", - //0.5.0 - "Restart failed downloads": "Restart-ați descărcările eșuate", - "Clear failed": "Șterge eșuatele", - "Download Settings": "Descărcați setările", - "Create folder for playlist": "Creați foldere pentru playlist-uri", - "Download .LRC lyrics": "Descărcați versurile .LRC", - "Proxy": "Proxy", - "Not set": "Nu este setat", - "Search or paste URL": "Caută sau pune un URL", - "History": "Istorie", - //Updated 0.5.1 - "Download threads": "Descărcări simultane", - //0.5.0 - "Lyrics unavailable, empty or failed to load!": "Versurile nu sunt disponibile, goale sau au eșuat încărcarea!", - "About": "Despre", - "Telegram Channel": "Canalul Telegram", - "To get latest releases": "Pentru a obține cele mai recente versiuni", - "Official chat": "Chat-ul oficial", - "Telegram Group": "Grupul Telegram", - "Huge thanks to all the contributors! <3": "Mulțumesc frumos tuturor colaboratorilor! <3", - "Edit playlist": "Editați playlist-ul", - "Update": "Actualizează", - "Playlist updated!": "Playlist actualizat!", - "Downloads added!": "Descărcări adăugate!", - - //0.5.1 Strings: - "Save cover file for every track": "Salvează cover-ul pentru fiecare piesă", - "Download Log": "Log-ul descărcării", - "Repository": "Depozit", - "Source code, report issues there.": "Codul sursă (Source code), raportați problemele acolo." - } -}; \ No newline at end of file diff --git a/translations/old_languages/ru_ru.dart b/translations/old_languages/ru_ru.dart deleted file mode 100644 index 281d77f..0000000 --- a/translations/old_languages/ru_ru.dart +++ /dev/null @@ -1,232 +0,0 @@ -/* - -Translated by: @Orfej - -*/ -const language_ru_ru = { - "ru_ru": { - "Home": "Главная", - "Search": "Поиск", - "Library": "Избранное", - "Offline mode, can't play flow or smart track lists.": - "Режим офлайн. Невозможно воспроизвести персональные подборки", - "Added to library": "Добавлено в любимые треки", - "Download": "Скачать", - "Disk": "Диск", - "Offline": "Загрузить в кеш", - "Top Tracks": "Популярные треки", - "Show more tracks": "Показать все", - "Top": "Лучшее", - "Top Albums": "Лучшие альбомы", - "Show all albums": "Показать все", - "Discography": "Дискография", - "Default": "По умолчанию", - "Reverse": "В обратном порядке", - "Alphabetic": "По алфавиту", - "Artist": "Исполнитель", - "Post processing...": "Делаем магию...", - "Done": "Готово", - "Delete": "Удалить", - "Are you sure you want to delete this download?": - "Вы действительно хотите удалить эту загрузку?", - "Cancel": "Отмена", - "Downloads": "Загрузки", - "Clear queue": "Очистить очередь", - "This won't delete currently downloading item": - "Это не удалит загружаемый сейчас трек", - "Are you sure you want to delete all queued downloads?": - "Вы действительно хотите удалить все запланированные загрузки?", - "Clear downloads history": "Очистить историю загрузок", - "WARNING: This will only clear non-offline (external downloads)": - "Внимание! Это удалит только загрузки (не кеш)", - "Please check your connection and try again later...": - "Проверьте соединение с Интернетом...", - "Show more": "Показать больше", - "Importer": "Импорт плейлистов", - "Currently supporting only Spotify, with 100 tracks limit": - "В настоящий момент поддерживается только Spotify", - "Due to API limitations": "Можно импортировать не более 100 треков за раз", - "Enter your playlist link below": "Ссылка на плейлист", - "Error loading URL!": "Ошибка загрузки!", - "Convert": "Импортировать", - "Download only": "Скачать", - "Downloading is currently stopped, click here to resume.": - "Загрузка приостановлена, нажмите, чтобы продолжить.", - "Tracks": "Треки", - "Albums": "Альбомы", - "Artists": "Артисты", - "Playlists": "Playlists", - "Import": "Импорт плейлистов", - "Import playlists from Spotify": "В настоящий момент поддерживается только Spotify", - "Statistics": "Размер кеша", - "Offline tracks": "Треки в кеше:", - "Offline albums": "Альбомы в кеше:", - "Offline playlists": "Плейлисты в кеше:", - "Offline size": "Размер кеша:", - "Free space": "Свободно:", - "Loved tracks": "Любимые треки", - "Favorites": "Избранное", - "All offline tracks": "Все треки в кеше", - "Create new playlist": "Новый плейлист", - "Cannot create playlists in offline mode": - "Нельзя создавать плейлисты в режиме офлайн", - "Error": "Ошибка", - "Error logging in! Please check your token and internet connection and try again.": - "Ошибка входа. Проверьте корректность ARL и соединение с Интернетом", - "Dismiss": "Я понял", - "Welcome to": "Добро пожаловать в", - "Please login using your Deezer account.": - "Войдите, используя свой аккаунт Deezer.", - "Login using browser": "Войти через браузер", - "Login using token": "Войти по токену (ARL)", - "Enter ARL": "Введите ARL", - "Token (ARL)": "Токен (ARL)", - "Save": "Сохранить", - "If you don't have account, you can register on deezer.com for free.": - "Вы можете создать аккаунт на deezer.com. Это бесплатно.", - "Open in browser": "Зарегестрироваться", - "By using this app, you don't agree with the Deezer ToS": - "Используя это приложение, вы не соглашаетесь с Условиями использования Deezer.", - "Play next": "Играть следующим", - "Add to queue": "Добавить в очередь", - "Add track to favorites": "Добавить в любимые треки", - "Add to playlist": "Добавить в плейлист", - "Select playlist": "Выберите плейлист", - "Track added to": "Трек добавлен в", - "Remove from playlist": "Удалить из плейлиста", - "Track removed from": "Трек удалён из", - "Remove favorite": "Удалить из любимых треков", - "Track removed from library": "Трек удален из Избранного", - "Go to": "Перейти к", - "Make offline": "Загрузить в кеш", - "Add to library": "Добавить в Избранное", - "Remove album": "Удалить альбом", - "Album removed": "Альбом удален", - "Remove from favorites": "Удалить из Избранного", - "Artist removed from library": "Артист удалён", - "Add to favorites": "Добавить в Избранное", - "Remove from library": "Удалить из Избранного", - "Add playlist to library": "Добавить плейлист в Избранное", - "Added playlist to library": "Плейлист добавлен в Избранное", - "Make playlist offline": "Загрузить плейлист в кеш", - "Download playlist": "Скачать плейлист", - "Create playlist": "Создать плейлист", - "Title": "Название", - "Description": "Описание", - "Private": "Скрытый", - "Collaborative": "Общего пользования", - "Create": "Создать", - "Playlist created!": "Плейлист создан!", - "Playing from:": "Сейчас играет:", - "Queue": "Очередь", - "Offline search": "Поиск по кешу", - "Search Results": "Результаты поиска", - "No results!": "Ничего не найдено!", - "Show all tracks": "Показать все треки", - "Show all playlists": "Показать все плейлисты", - "Settings": "Настрокий", - "General": "Управление аккаунтом", - "Appearance": "Внешний вид", - "Quality": "Качество звука", - "Deezer": "Взаимодействие с Deezer", - "Theme": "Тема", - "Currently": "Используется:", - "Select theme": "Выберите тему", - "Light (default)": "Светлая (По умолчанию)", - "Dark": "Темная", - "Black (AMOLED)": "Черная (AMOLED)", - "Deezer (Dark)": "Deezer (Темная)", - "Primary color": "Цвет акцента", - "Selected color": "Акцент будет выглядеть так", - "Use album art primary color": "Подбирать акцент в цвет обложки", - "Warning: might be buggy": "Осторожно, может вызвать баги", - "Mobile streaming": "Воспроизведение в мобильной сети", - "Wifi streaming": "Воспроизведение по Wi-Fi", - "External downloads": "Скачанные треки", - "Content language": "Язык контента", - "Not app language, used in headers. Now": - "Используется в тегах.", - "Select language": "Выберите язык", - "Content country": "Страна контента", - "Country used in headers. Now": "Также используется в тегах.", - "Log tracks": "Отправлять статистику", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Отправлять статистику прослушивания. Необходимо для правильной работы рекомендаций", - "Offline mode": "Режим офлайн", - "Will be overwritten on start.": "Можно слушать только кешированные треки. Работает до перезапуска.", - "Error logging in, check your internet connections.": - "Ошибка входа, проверьте соединение с Интернетом", - "Logging in...": "Вход...", - "Download path": "Папка загрузок", - "Downloads naming": "Шаблон для названия", - "Downloaded tracks filename": "Шаблон для названий загруженных треков", - "Valid variables are": "Допустимые переменные:", - "Reset": "Сброс", - "Clear": "Очистить", - "Create folders for artist": "Создавать папки для исполнителей", - "Create folders for albums": "Создавать папки для альбомов", - "Separate albums by discs": "Разделять альбомы по дискам", - "Overwrite already downloaded files": "Перезаписывать существующие", - "Copy ARL": "Скопировать токен (ARL)", - "Copy userToken/ARL Cookie for use in other apps.": - "Может быть полезно для использования в других приложениях. Не сообщайте токен никому!", - "Copied": "Скопировано", - "Log out": "Выйти", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "После авторизации/выхода через браузер требуется перезапуск.", - "(ARL ONLY) Continue": "(Вход по токену) Выйти", - "Log out & Exit": "Выйти и перезапустить", - "Pick-a-Path": "Выберите папку", - "Select storage": "Выбрерите хранилище", - "Go up": "На уровень вверх", - "Permission denied": "Доступ запрещен", - "Language": "Язык", - "Language changed, please restart Freezer to apply!": - "Язык изменен, перезапустите приложения для применения", - "Importing...": "Импорт...", - "Radio": "Радио", - "Flow": "Flow", - "Track is not available on Deezer!": "Трек недоступен на Deezer!", - "Failed to download track! Please restart.": "Ошибка заргузки.Попробуйте снова.", - - //0.5.0 Strings: - "Storage permission denied!": "Доступ к хранилищу запрещен!", - "Failed": "Ошибка", - "Queued": "Добавлено в очередь", - //Updated in 0.5.1 - used in context of download: - "External": "Хранилище", - //0.5.0 - "Restart failed downloads": "Перезапустить загрузки с ошибками", - "Clear failed": "Не удалось очистить", - "Download Settings": "Настройки загрузок", - "Create folder for playlist": "Создавать папки для плейлистов", - "Download .LRC lyrics": "Скачивать тексты .LRC", - "Proxy": "Настройки прокси", - "Not set": "Прокси не настроен", - "Search or paste URL": "Введите запрос или ссылку", - "History": "История", - //Updated 0.5.1 - "Download threads": "Количество одновременных загрузок", - //0.5.0 - "Lyrics unavailable, empty or failed to load!": "Ошибка получения текста!", - "About": "О приложении", - "Telegram Channel": "Канал в Telegram", - "To get latest releases": "Здесь можно скачать официальные обновления", - "Official chat": "Группа в Telegram", - "Telegram Group": "Свободное общение о приложении", - "Huge thanks to all the contributors! <3": "Большое спасибо всем участинкам <3", - "Edit playlist": "Изменить плейлист", - "Update": "Обновить", - "Playlist updated!": "Плейлист обновлен!", - "Downloads added!": "Загрузки добавлены!", - - //0.5.1 Strings: - "Save cover file for every track": "Обложки для каждого трека отдельным файлом", - "Download Log": "Лог загрузок (технические данные)", - "Repository": "Репозиторий", - "Source code, report issues there.": "Исходный код, вопросы, предложения.", - //0.5.2 Strings: - "Use system theme": "Использовать тему системы", - "Light": "Светлая" - } -}; \ No newline at end of file diff --git a/translations/old_languages/tr_tr.dart b/translations/old_languages/tr_tr.dart deleted file mode 100644 index b1b59f1..0000000 --- a/translations/old_languages/tr_tr.dart +++ /dev/null @@ -1,235 +0,0 @@ -/* - -Translated by: HoScHaKaL - -*/ - -const language_tr_tr = { - "tr_tr": { - "Kebab": "Based", - "Home": "Anasayfa", - "Search": "Ara", - "Library": "Kütüphane", - "Offline mode, can't play flow or smart track lists.": - "Çevrimdışı mod, akış veya akıllı parça listelerini çalınamaz.", - "Added to library": "Kütüphaneye eklendi", - "Download": "İndir", - "Disk": "Disk", - "Offline": "Çevrimdışı", - "Top Tracks": "En iyi Parçalar", - "Show more tracks": "Daha fazla parça göster", - "Top": "En iyiler", - "Top Albums": "En iyi Albümler", - "Show all albums": "Tüm albümleri göster", - "Discography": "Diskografi", - "Default": "Varsayılan", - "Reverse": "Tersten", - "Alphabetic": "Alfabetik", - "Artist": "Sanatçı", - "Post processing...": "İşleniyor...", - "Done": "Bitti", - "Delete": "Sil", - "Are you sure you want to delete this download?": - "Bu indirmeyi silmek istediğinizden emin misiniz?", - "Cancel": "İptal", - "Downloads": "İndirilenler", - "Clear queue": "Sırayı temizle", - "This won't delete currently downloading item": - "Bu, şu anda indirilen öğeyi silemez", - "Are you sure you want to delete all queued downloads?": - "Sıradaki tüm indirmeleri silmek istediğinizden emin misiniz?", - "Clear downloads history": "İndirme geçmişini temizle", - "WARNING: This will only clear non-offline (external downloads)": - "UYARI: Bu yalnızca çevrimdışı olmayanları temizler (harici indirmeler)", - "Please check your connection and try again later...": - "Lütfen bağlantınızı kontrol edin ve daha sonra tekrar deneyin ...", - "Show more": "Daha fazla göster", - "Importer": "Aktar", - "Currently supporting only Spotify, with 100 tracks limit": - "Şu anda 100 parça sınırıyla yalnızca Spotify'ı destekliyor", - "Due to API limitations": "API sınırlamaları nedeniyle", - "Enter your playlist link below": "Oynatma listesi bağlantınızı aşağıya girin", - "Error loading URL!": "URL yüklenirken hata oluştu!", - "Convert": "Dönüştür", - "Download only": "Sadece indir", - "Downloading is currently stopped, click here to resume.": - "İndirme durduruldu , devam etmek için tıklayın.", - "Tracks": "Parçalar", - "Albums": "Albümler", - "Artists": "Sanatçılar", - "Playlists": "Oynatma listeleri", - "Import": "İçe Aktar", - "Import playlists from Spotify": "Spotify'dan çalma listelerini içe aktarın", - "Statistics": "İstatistikler", - "Offline tracks": "Çevrimdışı parçalar", - "Offline albums": "Çevrimdışı albümler", - "Offline playlists": "Çevrimdışı oynatma listeleri", - "Offline size": "Çevrimdışı boyut", - "Free space": "Boş alan", - "Loved tracks": "Sevilen parçalar", - "Favorites": "Favoriler", - "All offline tracks": "Tüm çevrimdışı parçalar", - "Create new playlist": "Yeni oynatma listesi oluştur", - "Cannot create playlists in offline mode": - "Çevrimdışı modda oynatma listeleri oluşturulamaz", - "Error": "Hata", - "Error logging in! Please check your token and internet connection and try again.": - "Oturum açılamadı! Lütfen tokeninizi ve internet bağlantınızı kontrol edin ve tekrar deneyin.", - "Dismiss": "Kapat", - "Welcome to": "Hoşgeldiniz", - "Please login using your Deezer account.": - "Lütfen Deezer hesabınızı kullanarak giriş yapın.", - "Login using browser": "Tarayıcı kullanarak giriş yapın", - "Login using token": "Token kullanarak giriş yap", - "Enter ARL": "ARL girin", - "Token (ARL)": "Token (ARL)", - "Save": "Kaydet", - "If you don't have account, you can register on deezer.com for free.": - "Hesabınız yoksa deezer.com'a ücretsiz kayıt olabilirsiniz.", - "Open in browser": "Tarayıcıda aç", - "By using this app, you don't agree with the Deezer ToS": - "Bu uygulamayı kullanarak Deezer Hizmet Şartları'nı kabul etmiyorsunuz", - "Play next": "Sonrakini çal", - "Add to queue": "Sıraya ekle", - "Add track to favorites": "Parçayı favorilere ekle", - "Add to playlist": "Oynatma listesine ekle", - "Select playlist": "Oynatma listesi seçin", - "Track added to": "Parça şuraya eklendi", - "Remove from playlist": "Oynatma listesinden kaldır", - "Track removed from": "Parça şuradan kaldırıldı", - "Remove favorite": "Favorilerden kaldır", - "Track removed from library": "Parça kütüphaneden kaldırıldı", - "Go to": "Git", - "Make offline": "Çevrimdışı yap", - "Add to library": "Kütüphaneye ekle", - "Remove album": "Albümü kaldır", - "Album removed": "Albüm kaldırıldı", - "Remove from favorites": "Favorilerden kaldır", - "Artist removed from library": "Sanatçı kütüphaneden kaldırıldı", - "Add to favorites": "Favorilere ekle", - "Remove from library": "Kütüphaneden kaldır", - "Add playlist to library": "Oynatma listesini kütüphaneye ekleyin", - "Added playlist to library": "Oynatma listesi kütüphaneye eklendi", - "Make playlist offline": "Oynatma listesini çevrimdışı yapın", - "Download playlist": "Oynatma listesini indirin", - "Create playlist": "Oynatma listesi oluştur", - "Title": "Başlık", - "Description": "Açıklama", - "Private": "Özel", - "Collaborative": "Paylaşılan", - "Create": "Oluştur", - "Playlist created!": "Oynatma listesi oluşturuldu!", - "Playing from:": "Şuradan oynatılıyor:", - "Queue": "Kuyruk", - "Offline search": "Çevrimdışı arama", - "Search Results": "Arama Sonuçları", - "No results!": "Sonuç yok!", - "Show all tracks": "Tüm parçaları göster", - "Show all playlists": "Tüm oynatma listelerini göster", - "Settings": "Ayarlar", - "General": "Genel", - "Appearance": "Arayüz", - "Quality": "Kalite", - "Deezer": "Deezer", - "Theme": "Tema", - "Currently": "Şu anda", - "Select theme": "Tema seçin", - "Light (default)": "Açık (Varsayılan)", - "Dark": "Koyu", - "Black (AMOLED)": "Siyah (AMOLED)", - "Deezer (Dark)": "Deezer (Dark)", - "Primary color": "Ana renk", - "Selected color": "Seçilen renk", - "Use album art primary color": "Albüm resmini ana renk olarak kullan", - "Warning: might be buggy": "Uyarı: hatalı olabilir", - "Mobile streaming": "Mobil veri", - "Wifi streaming": "Wifi", - "External downloads": "Harici indirmeler", - "Content language": "İçerik dili", - "Not app language, used in headers. Now": - "Uygulama dili değil, başlıklarda kullanılacak. Şuan", - "Select language": "Dil seçin", - "Content country": "İçerik ülkesi", - "Country used in headers. Now": "Başlıklarda kullanılan ülke. Şuan", - "Log tracks": "Parça günlükleri", - "Send track listen logs to Deezer, enable it for features like Flow to work properly": - "Parça dinleme günlüklerini Deezer'a gönderin, Flow gibi özelliklerin düzgün çalışması için etkinleştirin", - "Offline mode": "Çevrimdışı mod", - "Will be overwritten on start.": "Başlangıçta üzerine yazılacak.", - "Error logging in, check your internet connections.": - "Giriş hatası, internet bağlantılarınızı kontrol edin.", - "Logging in...": "Giriş yapılıyor...", - "Download path": "İndirme konumu", - "Downloads naming": "İndirilenleri adlandır", - "Downloaded tracks filename": "İndirilen parçaların dosya adı", - "Valid variables are": "Geçerli değişkenler", - "Reset": "Sıfırla", - "Clear": "Temizle", - "Create folders for artist": "Sanatçılar için klasörler oluşturun", - "Create folders for albums": "Albümler için klasörler oluşturun", - "Separate albums by discs": "Albümleri disklere göre ayırın", - "Overwrite already downloaded files": "İndirilmiş dosyaların üzerine yaz", - "Copy ARL": "ARL kopyala", - "Copy userToken/ARL Cookie for use in other apps.": - "Diğer uygulamalarda kullanmak için userToken / ARL Cookie'yi kopyalayın.", - "Copied": "Kopyalandı", - "Log out": "Çıkış yap", - "Due to plugin incompatibility, login using browser is unavailable without restart.": - "Eklenti uyumsuzluğu nedeniyle, yeniden başlatmadan tarayıcı kullanılarak oturum açılamaz.", - "(ARL ONLY) Continue": "(SADECE ARL) Devam et", - "Log out & Exit": "Çıkış yap & Kapat", - "Pick-a-Path": "Konum seç", - "Select storage": "Depolama seç", - "Go up": "Yukarı git", - "Permission denied": "İzin reddedildi", - "Language": "Dil", - "Language changed, please restart Freezer to apply!": - "Dil değişti,değişiklik için Freezeri yeniden başlatın!", - "Importing...": "İçe aktarılıyor...", - "Radio": "Radyo", - "Flow": "Flow", - "Track is not available on Deezer!": "Parça Deezer'da mevcut değil!", - "Failed to download track! Please restart.": "Parça indirilemedi! Lütfen yeniden başlat.", - - //0.5.0 Strings: - "Storage permission denied!": "Depolama izni reddedildi!", - "Failed": "Başarısız", - "Queued": "Sıraya alındı", - //Updated in 0.5.1 - used in context of download: - "External": "Depolama", - //0.5.0 - "Restart failed downloads": "Başarısız indirmeleri yeniden başlatın", - "Clear failed": "Silinemedi", - "Download Settings": "İndirme Ayarları", - "Create folder for playlist": "Oynatma listesi için klasör oluştur", - "Download .LRC lyrics": ".LRC şarkı sözlerini indir", - "Proxy": "Proxy", - "Not set": "Ayarlanmadı", - "Search or paste URL": "Arayın veya URL yapıştırın", - "History": "Geçmiş", - //Updated 0.5.1 - "Download threads": "Eşzamanlı indirmeler", - //0.5.0 - "Lyrics unavailable, empty or failed to load!": "Sözler mevcut değil, boş veya yüklenemedi!", - "About": "Hakkında", - "Telegram Channel": "Telegram Kanalı", - "To get latest releases": "En son sürümleri indirmek için", - "Official chat": "Resmi sohbet", - "Telegram Group": "Telegram Grubu", - "Huge thanks to all the contributors! <3": "Katkıda bulunanlara çok teşekkürler! <3", - "Edit playlist": "Oynatma listesini düzenleyin", - "Update": "Güncelle", - "Playlist updated!": "Oynatma listesi güncellendi!", - "Downloads added!": "İndirmeler eklendi!", - - //0.5.1 Strings: - "Save cover file for every track": "Her parça için kapak dosyasını kaydedin", - "Download Log": "İndirme Kayıtları", - "Repository": "Repo", - "Source code, report issues there.": "Kaynak kodu, sorunları bildirin", - - //0.5.2 Strings: - "Use system theme": "Sistem temasını kullan", - "Light": "Açık" - } -}; \ No newline at end of file diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 1dc0921..a39a23f 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -11,8 +11,11 @@ #include #include #include +#include #include +#include #include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { ConnectivityPlusWindowsPluginRegisterWithRegistrar( @@ -25,8 +28,14 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("MediaKitLibsWindowsAudioPluginCApi")); PermissionHandlerWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); + ScreenRetrieverPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ScreenRetrieverPlugin")); SharePlusWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); + TrayManagerPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("TrayManagerPlugin")); UrlLauncherWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("UrlLauncherWindows")); + WindowManagerPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WindowManagerPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 6e51edc..ab2dc27 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -8,8 +8,11 @@ list(APPEND FLUTTER_PLUGIN_LIST isar_flutter_libs media_kit_libs_windows_audio permission_handler_windows + screen_retriever share_plus + tray_manager url_launcher_windows + window_manager ) list(APPEND FLUTTER_FFI_PLUGIN_LIST