mirror of
https://github.com/jagandeepbrar/lunasea.git
synced 2026-08-30 20:24:25 +00:00
* [Radarr] Added very basic localization file for testing * Added minimal LunaSea localization file * Translations update from Weblate (#325) * Added translation using Weblate (German) * Translated using Weblate (German) Currently translated at 25.0% (1 of 4 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/de/ * Added translation using Weblate (French) * Translated using Weblate (French) Currently translated at 25.0% (1 of 4 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * Translated using Weblate (French) Currently translated at 100.0% (4 of 4 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * Deleted translation using Weblate (German) Co-authored-by: Jagandeep Brar <me@jagandeepbrar.io> Co-authored-by: Antoine C <contact+weblate@antoinecardon.fr> * [Localization] Updated keys * [Strings] Removed internal constant LunaSea to ease localization efforts * Added translation using Weblate (French) * Translated using Weblate (French) Currently translated at 100.0% (1 of 1 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/fr/ * [Radarr] Added additional localization strings * [Locale/Radarr] Additional strings * Added translation using Weblate (Norwegian Bokmål) * Added translation using Weblate (Norwegian Bokmål) * Translated using Weblate (French) Currently translated at 100.0% (11 of 11 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (1 of 1 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/nb_NO/ * Translated using Weblate (Norwegian Bokmål) Currently translated at 90.9% (10 of 11 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/nb_NO/ * Translated using Weblate (French) Currently translated at 100.0% (11 of 11 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * [localizations] sort keys * [Packages] Migration to Fluttter v2 and NNBD Compatibility (#329) * Updated packages * Added system level Firebase Crashlytics to replace Sentry * Started migration to crashlytics * [Crashlytics] Adjusted dialog to reflect analytics, add crash button * [Settings] Removed test crash tile * [Changelog] Pull changelog version and build from application package * Added easy_localization package * Added stub localization handler * [Localization] Added package and assembly script (#330) * Updated packages * Added system level Firebase Crashlytics to replace Sentry * Started migration to crashlytics * [Crashlytics] Adjusted dialog to reflect analytics, add crash button * [Settings] Removed test crash tile * [Changelog] Pull changelog version and build from application package * Added easy_localization package * Added stub localization handler * [Localization] Added easy_localization package, added script to concat all localization files * Removed license shield * [Localization] Integrated system localization handling (#331) * [Localization] use dash delimiter * Translated using Weblate (English) Currently translated at 100.0% (11 of 11 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/en/ * [Localization] Added ability to switch languages, updated Radarr localization (#333) * [Scripts, Localization] Updated prepare script to print nicer JSON, add additional strings for Radarr * Updated localizations, switch remaining Radarr strings that are available * Translated using Weblate (French) Currently translated at 100.0% (12 of 12 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (12 of 12 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/nb_NO/ * Generated new local assets * [radarr/add_movie] Strings adapted for localizations and added to localization files * Translated using Weblate (English) Currently translated at 100.0% (2 of 2 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/en/ * [Localizations] Rebuild * Translated using Weblate (French) Currently translated at 100.0% (18 of 18 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * Translated using Weblate (French) Currently translated at 100.0% (2 of 2 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/fr/ * Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (2 of 2 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/nb_NO/ * [Radarr/Add Movie] Adapted for localized strings * [Radarr/Add Details] Adapted for localized strings * [Radarr/Edit Movie] Adapted for localized strings * Translated using Weblate (French) Currently translated at 100.0% (3 of 3 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/fr/ * Translated using Weblate (French) Currently translated at 100.0% (25 of 25 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * [Chore] Rebuilt localizations * [Radarr/Dialogs] Updated a few dialogs to reflect localized titles * [Localization] Ability to disable localization options internally * [DateTime] Show "Just Now" when time difference is under 10 seconds * [Search] Switch to new XML parsing package/engine * Translated using Weblate (Norwegian Bokmål) Currently translated at 96.7% (30 of 31 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/nb_NO/ * Translated using Weblate (French) Currently translated at 100.0% (31 of 31 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * Translated using Weblate (French) Currently translated at 100.0% (4 of 4 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/fr/ * Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (4 of 4 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/nb_NO/ * [Localization] (chore) Rebuild localization * [Chore] Moved localization to system folder * Added translation using Weblate (Swedish) * Added translation using Weblate (Swedish) * Translated using Weblate (Swedish) Currently translated at 100.0% (4 of 4 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/sv/ * Translated using Weblate (Swedish) Currently translated at 100.0% (31 of 31 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/sv/ * [Localization] Added support for Swedish (sv) * [Radarr/Types] Adapted all type readable strings for localization * [Radarr] Continued work on adapting for localization * Translated using Weblate (French) Currently translated at 100.0% (71 of 71 strings) Translation: LunaSea/Radarr Translate-URL: https://hosted.weblate.org/projects/lunasea/radarr/fr/ * Translated using Weblate (French) Currently translated at 100.0% (9 of 9 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/fr/ * [Localization] (chore) Build localization * [Chore] Cleanup, move and adapt drawer to LunaUI * [Drawer] Cleanup drawer builder * Translated using Weblate (English) Currently translated at 100.0% (9 of 9 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/en/ * Translated using Weblate (English) Currently translated at 100.0% (10 of 10 strings) Translation: LunaSea/LunaSea Translate-URL: https://hosted.weblate.org/projects/lunasea/lunasea/en/ * [UI] Move "luna_ui" to "ui", old "ui" to "deprecated_ui" * [-arr/Add] Tags set when adding content are now stored in the database * [-arr/Links] Added Trakt link, normalize sizes, update TMDB logo * Add weblate link, disable additional languages on release mode, updated changelog Co-authored-by: Weblate (bot) <hosted@weblate.org> Co-authored-by: Antoine C <contact+weblate@antoinecardon.fr> Co-authored-by: Allan Nordhøy <epost@anotheragency.no> Co-authored-by: Weblate <noreply@weblate.org> Co-authored-by: Patrik Hauguth <patrik.hauguth@gmail.com>
64 lines
3.1 KiB
Dart
64 lines
3.1 KiB
Dart
import 'package:intl/intl.dart';
|
|
import 'package:lunasea/core.dart';
|
|
|
|
extension DateTimeExtension on DateTime {
|
|
/// Get the floor of a date.
|
|
///
|
|
/// The floor is a new [DateTime] object with only the year, month, and day copied from the original source.
|
|
DateTime get lunaFloor => DateTime(this.year, this.month, this.day);
|
|
|
|
/// Returns a string representation of the "age" of the [DateTime] object.
|
|
///
|
|
/// Compares to [DateTime.now().toLocal()] to calculate the age.
|
|
String get lunaAge {
|
|
if(this == null) return 'Unknown';
|
|
Duration diff = DateTime.now().toLocal().difference(this);
|
|
if(diff.inSeconds < 10) return 'Just Now';
|
|
if(diff.inDays >= 1) return '${diff.inDays} ${diff.inDays == 1 ? 'Day' : 'Days'} Ago';
|
|
if(diff.inHours >= 1) return '${diff.inHours} ${diff.inHours == 1 ? 'Hour' : 'Hours'} Ago';
|
|
if(diff.inMinutes >= 1) return '${diff.inMinutes} ${diff.inMinutes == 1 ? 'Minute' : 'Minutes'} Ago';
|
|
return '${diff.inSeconds} ${diff.inSeconds == 1 ? 'Second' : 'Seconds'} Ago';
|
|
}
|
|
|
|
/// Returns a string representation of the difference in days/months/years.
|
|
///
|
|
/// Compares to [DateTime.now()] to calculate the difference.
|
|
String get lunaDaysDifference {
|
|
if(this == null) return null;
|
|
Duration diff = this.difference(DateTime.now());
|
|
int absoluteDays = diff.inDays.abs();
|
|
if(absoluteDays == 0) return 'Today';
|
|
// If greater than 2 years, show in years
|
|
if(absoluteDays >= 365*2) return '${(absoluteDays/365).round()} Years';
|
|
// If greater than 3 months, show in months
|
|
if(absoluteDays >= 30*3) return '${(absoluteDays/30).round()} Months';
|
|
return '$absoluteDays ${absoluteDays == 1 ? "Day" : "Days"}';
|
|
}
|
|
|
|
/// Returns just the time as a string.
|
|
///
|
|
/// 3 PM will return either 15:00 (24 hour style) or 3:00 PM depending on the configured database option.
|
|
String get lunaTime => LunaDatabaseValue.USE_24_HOUR_TIME.data ? DateFormat.Hm().format(this) : DateFormat.jm().format(this);
|
|
|
|
/// Returns just the date as a string.
|
|
///
|
|
/// Formatted as YYYY-MM-DD
|
|
String get lunaDate => '${this.year.toString().padLeft(4, '0')}-${this.month.toString().padLeft(2, '0')}-${this.day.toString().padLeft(2, '0')}';
|
|
|
|
/// Returns the date as a string.
|
|
///
|
|
/// Formatted as "<month name> <day>, <year>".
|
|
String get lunaDateReadable => DateFormat('MMMM dd, y').format(this.toLocal());
|
|
|
|
/// Returns the date and time as a string.
|
|
///
|
|
/// Formatted as `<month name> <day>, <year> • <hour>:<minute>:<second>`.
|
|
///
|
|
/// Set `timeOnNewLine` to true to have the time returned on a new line instead of separated by a bullet.
|
|
String lunaDateTimeReadable({ bool timeOnNewLine = false }) => DateFormat(
|
|
timeOnNewLine
|
|
? LunaDatabaseValue.USE_24_HOUR_TIME.data ? 'MMMM dd, y\nHH:mm:ss' : 'MMMM dd, y\nhh:mm:ss a'
|
|
: LunaDatabaseValue.USE_24_HOUR_TIME.data ? 'MMMM dd, y ${LunaUI.TEXT_BULLET} HH:mm:ss' : 'MMMM dd, y ${LunaUI.TEXT_BULLET} hh:mm:ss a'
|
|
).format(this.toLocal());
|
|
}
|