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>
82 lines
3.0 KiB
Dart
82 lines
3.0 KiB
Dart
import 'package:easy_localization/easy_localization.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:lunasea/core.dart';
|
|
|
|
class LunaLocalization {
|
|
/// List of [LunaLanguage] values with all currently supported languages
|
|
List<LunaLanguage> get supportedLanguages => LunaLanguage.values.where((lang) => lang.enabled).toList();
|
|
|
|
/// Returns an iterable list of [Locale] objects containing all supported & enabled locales.
|
|
Iterable<Locale> get supportedLocales => supportedLanguages.map<Locale>((lang) => lang.locale).toList();
|
|
|
|
Locale get fallbackLocale => LunaLanguage.ENGLISH.locale;
|
|
|
|
/// Directory containing all localization files
|
|
String get fileDirectory => 'assets/localization';
|
|
|
|
/// Initialize the localization system.
|
|
Future<void> initialize() async {
|
|
await EasyLocalization.ensureInitialized();
|
|
}
|
|
}
|
|
|
|
enum LunaLanguage {
|
|
ENGLISH,
|
|
FRENCH,
|
|
NORWEGIAN_BOKMAL,
|
|
SWEDISH,
|
|
}
|
|
|
|
extension LunaLanguageExtension on LunaLanguage {
|
|
LunaLanguage fromLocale(Locale locale) {
|
|
if(locale.toLanguageTag() == LunaLanguage.ENGLISH.languageTag) return LunaLanguage.ENGLISH;
|
|
if(locale.toLanguageTag() == LunaLanguage.FRENCH.languageTag) return LunaLanguage.FRENCH;
|
|
if(locale.toLanguageTag() == LunaLanguage.NORWEGIAN_BOKMAL.languageTag) return LunaLanguage.NORWEGIAN_BOKMAL;
|
|
if(locale.toLanguageTag() == LunaLanguage.SWEDISH.languageTag) return LunaLanguage.SWEDISH;
|
|
return null;
|
|
}
|
|
|
|
bool get enabled {
|
|
switch(this) {
|
|
case LunaLanguage.ENGLISH: return true;
|
|
case LunaLanguage.FRENCH: return kDebugMode;
|
|
case LunaLanguage.NORWEGIAN_BOKMAL: return kDebugMode;
|
|
case LunaLanguage.SWEDISH: return kDebugMode;
|
|
}
|
|
throw Exception('Invalid LunaLanguage');
|
|
}
|
|
|
|
String get name {
|
|
switch(this) {
|
|
case LunaLanguage.ENGLISH: return 'English';
|
|
case LunaLanguage.FRENCH: return 'French';
|
|
case LunaLanguage.NORWEGIAN_BOKMAL: return 'Norwegian (Bokmål)';
|
|
case LunaLanguage.SWEDISH: return 'Swedish';
|
|
}
|
|
throw Exception('Invalid LunaLanguage');
|
|
}
|
|
|
|
String get languageTag {
|
|
switch(this) {
|
|
case LunaLanguage.ENGLISH: return 'en';
|
|
case LunaLanguage.FRENCH: return 'fr';
|
|
case LunaLanguage.NORWEGIAN_BOKMAL: return 'nb-NO';
|
|
case LunaLanguage.SWEDISH: return 'sv';
|
|
}
|
|
throw Exception('Invalid LunaLanguage');
|
|
}
|
|
|
|
Locale get locale {
|
|
switch(this) {
|
|
case LunaLanguage.ENGLISH: return Locale('en');
|
|
case LunaLanguage.FRENCH: return Locale('fr');
|
|
case LunaLanguage.NORWEGIAN_BOKMAL: return Locale('nb', 'NO');
|
|
case LunaLanguage.SWEDISH: return Locale('sv');
|
|
}
|
|
throw Exception('Invalid LunaLanguage');
|
|
}
|
|
|
|
Future<void> use(BuildContext context) => context.setLocale(this.locale);
|
|
}
|