new colors
This commit is contained in:
@@ -33,20 +33,20 @@ class FilcAPI {
|
||||
static const plusAuthLogin = "0.0.0.0";
|
||||
static const plusAuthCallback = "0.0.0.0";
|
||||
static const plusActivation = "0.0.0.0";
|
||||
static const plusScopes = "0.0.0.0/";
|
||||
static const plusScopes = "0.0.0.0";
|
||||
|
||||
// Updates
|
||||
static const repo = "refilc/naplo";
|
||||
static const repo = "QwIT-Development/app-legacy";
|
||||
static const releases = "https://api.github.com/repos/$repo/releases";
|
||||
|
||||
// Share API
|
||||
static const themeShare = "https://api.refilcapp.hu/v3/shared/theme/add";
|
||||
static const themeGet = "https://api.refilcapp.hu/v3/shared/theme/get";
|
||||
static const themeShare = "$baseUrl/v3/shared/theme/add";
|
||||
static const themeGet = "$baseUrl/v3/shared/theme/get";
|
||||
static const allThemes = "$themeGet/all";
|
||||
static const themeByID = "$themeGet/";
|
||||
|
||||
static const gradeColorsShare = "https://api.refilcapp.hu/v3/shared/grade-colors/add";
|
||||
static const gradeColorsGet = "https://api.refilcapp.hu/v3/shared/grade-colors/get";
|
||||
static const gradeColorsShare = "$baseUrl/v3/shared/grade-colors/add";
|
||||
static const gradeColorsGet = "$baseUrl/v3/shared/grade-colors/get";
|
||||
static const allGradeColors = "$gradeColorsGet/all";
|
||||
static const gradeColorsByID = "$gradeColorsGet/";
|
||||
|
||||
|
||||
@@ -485,14 +485,14 @@ class SettingsProvider extends ChangeNotifier {
|
||||
bellDelayEnabled: false,
|
||||
bellDelay: 0,
|
||||
gradeOpeningFun: false,
|
||||
iconPack: IconPack.cupertino,
|
||||
customAccentColor: const Color(0xff3D7BF4),
|
||||
iconPack: IconPack.material,
|
||||
customAccentColor: const Color(0xFFA7DC22),
|
||||
customBackgroundColor: const Color(0xff000000),
|
||||
customHighlightColor: const Color(0xff222222),
|
||||
customIconColor: const Color(0x00000000),
|
||||
customTextColor: const Color(0x00000000),
|
||||
shadowEffect: true,
|
||||
premiumScopes: [],
|
||||
shadowEffect: false,
|
||||
premiumScopes: ["refilc.plus.*"],
|
||||
premiumAccessToken: "",
|
||||
premiumLogin: "",
|
||||
lastAccountId: "",
|
||||
@@ -504,14 +504,14 @@ class SettingsProvider extends ChangeNotifier {
|
||||
welcomeMessage: '',
|
||||
appIcon: 'refilc_default',
|
||||
currentThemeId: '',
|
||||
currentThemeDisplayName: '',
|
||||
currentThemeCreator: 'reFilc',
|
||||
currentThemeDisplayName: 'Alapértelmezett',
|
||||
currentThemeCreator: 'Firka',
|
||||
showBreaks: false,
|
||||
pinSetGeneral: '',
|
||||
pinSetPersonalize: '',
|
||||
pinSetNotify: '',
|
||||
pinSetExtras: '',
|
||||
fontFamily: '',
|
||||
fontFamily: 'Figtree',
|
||||
titleOnlyFont: false,
|
||||
plusSessionId: '',
|
||||
calSyncRoomLocation: 'location',
|
||||
@@ -522,8 +522,8 @@ class SettingsProvider extends ChangeNotifier {
|
||||
navShadow: true,
|
||||
newColors: true,
|
||||
uwuMode: false,
|
||||
newPopups: true,
|
||||
unseenNewFeatures: ['grade_exporting'],
|
||||
newPopups: false,
|
||||
unseenNewFeatures: [],
|
||||
cloudSyncEnabled: false,
|
||||
cloudSyncToken: '',
|
||||
updatedAt: DateTime.now(),
|
||||
|
||||
@@ -17,7 +17,7 @@ enum AccentColor {
|
||||
}
|
||||
|
||||
Map<AccentColor, Color> accentColorMap = {
|
||||
AccentColor.filc: const Color(0xFF3D7BF4),
|
||||
AccentColor.filc: const Color(0xFFA7DC22),
|
||||
AccentColor.blue: Colors.blue.shade300,
|
||||
AccentColor.green: Colors.green.shade400,
|
||||
AccentColor.lime: Colors.lightGreen.shade400,
|
||||
@@ -28,69 +28,69 @@ Map<AccentColor, Color> accentColorMap = {
|
||||
AccentColor.purple: Colors.purple.shade300,
|
||||
//AccentColor.none: Colors.black,
|
||||
AccentColor.ogfilc: const Color(0xff20AC9B),
|
||||
AccentColor.adaptive: const Color(0xFF3D7BF4),
|
||||
AccentColor.custom: const Color(0xFF3D7BF4),
|
||||
AccentColor.adaptive: const Color(0xFFA7DC22),
|
||||
AccentColor.custom: const Color(0xFFA7DC22),
|
||||
};
|
||||
|
||||
// new v5 things
|
||||
Map<AccentColor, Color> lightPrimary = {
|
||||
AccentColor.filc: const Color(0xFF050B15),
|
||||
AccentColor.filc: const Color(0xFF394C0A), //
|
||||
};
|
||||
Map<AccentColor, Color> lightSecondary = {
|
||||
AccentColor.filc: const Color(0xFF3F444F),
|
||||
AccentColor.filc: const Color(0xCC394C0A), //
|
||||
};
|
||||
Map<AccentColor, Color> lightTeritary = {
|
||||
AccentColor.filc: const Color(0xFF1C469A),
|
||||
AccentColor.filc: const Color(0x80394C0A), //
|
||||
};
|
||||
Map<AccentColor, Color> lightIcon = {
|
||||
AccentColor.filc: const Color(0xFF0A2456),
|
||||
};
|
||||
Map<AccentColor, Color> lightAccent = {
|
||||
AccentColor.filc: const Color(0xFF487DE6),
|
||||
AccentColor.filc: const Color(0xFFA7DC22), //
|
||||
};
|
||||
Map<AccentColor, Color> lightBgDarkened = {
|
||||
AccentColor.filc: const Color(0xFFB9C8E5),
|
||||
AccentColor.filc: const Color(0xFFFAFFF0), //
|
||||
};
|
||||
Map<AccentColor, Color> lightBtnSecStrk = {
|
||||
AccentColor.filc: const Color(0xFFCEDBF5),
|
||||
};
|
||||
Map<AccentColor, Color> lightBg = {
|
||||
AccentColor.filc: const Color(0xFFDAE4F7),
|
||||
AccentColor.filc: const Color(0xFFF3FBDE), //
|
||||
};
|
||||
Map<AccentColor, Color> lightCard = {
|
||||
AccentColor.filc: const Color(0xFFEDF3FF),
|
||||
AccentColor.filc: const Color(0xFFF3FBDE), //
|
||||
};
|
||||
Map<AccentColor, Color> lightBtnSec = {
|
||||
AccentColor.filc: const Color(0xFFFBFCFF),
|
||||
AccentColor.filc: const Color(0xFFFEFFFD), //
|
||||
};
|
||||
|
||||
Map<AccentColor, Color> darkPrimary = {
|
||||
AccentColor.filc: const Color(0xFFEBF1FD),
|
||||
AccentColor.filc: const Color(0xFFEAF7CC), //
|
||||
};
|
||||
Map<AccentColor, Color> darkSecondary = {
|
||||
AccentColor.filc: const Color(0xFFCFD8E9),
|
||||
AccentColor.filc: const Color(0xB3EAF7CC), //
|
||||
};
|
||||
Map<AccentColor, Color> darkTeritary = {
|
||||
AccentColor.filc: const Color(0xFFAEC8FC),
|
||||
AccentColor.filc: const Color(0x80EAF7CC), //
|
||||
};
|
||||
Map<AccentColor, Color> darkIcon = {
|
||||
AccentColor.filc: const Color(0xFFBAD1FF),
|
||||
};
|
||||
Map<AccentColor, Color> darkAccent = {
|
||||
AccentColor.filc: const Color(0xFF487DE6),
|
||||
AccentColor.filc: const Color(0xFFA7DC22), //
|
||||
};
|
||||
Map<AccentColor, Color> darkBgDarkened = {
|
||||
AccentColor.filc: const Color(0xFF010205),
|
||||
AccentColor.filc: const Color(0xFF0D1202), //
|
||||
};
|
||||
Map<AccentColor, Color> darkBtnSecStrk = {
|
||||
AccentColor.filc: const Color(0xFF1C2230),
|
||||
};
|
||||
Map<AccentColor, Color> darkBg = {
|
||||
AccentColor.filc: const Color(0xFF070A0E),
|
||||
AccentColor.filc: const Color(0xFF141905), //
|
||||
};
|
||||
Map<AccentColor, Color> darkCard = {
|
||||
AccentColor.filc: const Color(0xFF0F131B),
|
||||
AccentColor.filc: const Color(0xFF141905), //
|
||||
};
|
||||
Map<AccentColor, Color> darkBtnSec = {
|
||||
AccentColor.filc: const Color(0xFF131822),
|
||||
AccentColor.filc: const Color(0xFF20290B), //
|
||||
};
|
||||
|
||||
@@ -7,9 +7,9 @@ class DarkMobileAppColors implements ThemeAppColors {
|
||||
@override
|
||||
final text = Colors.white;
|
||||
@override
|
||||
final background = const Color(0xff000000);
|
||||
final background = const Color(0xff0D1202); //
|
||||
@override
|
||||
final highlight = const Color(0xff141516);
|
||||
final highlight = const Color(0xff141905); //
|
||||
@override
|
||||
final red = const Color(0xffFF453A);
|
||||
@override
|
||||
@@ -19,7 +19,7 @@ class DarkMobileAppColors implements ThemeAppColors {
|
||||
@override
|
||||
final green = const Color(0xff32D74B);
|
||||
@override
|
||||
final filc = const Color(0xff3d7bf4);
|
||||
final filc = const Color(0xFFA7DC22); //
|
||||
@override
|
||||
final teal = const Color(0xff64D2FF);
|
||||
@override
|
||||
@@ -32,24 +32,24 @@ class DarkMobileAppColors implements ThemeAppColors {
|
||||
final pink = const Color(0xffFF375F);
|
||||
// new default grade colors
|
||||
@override
|
||||
final gradeFive = const Color(0xff007D49);
|
||||
final gradeFive = const Color(0xFF22CCAD); //
|
||||
@override
|
||||
final gradeFour = const Color(0xFF34C759);
|
||||
final gradeFour = const Color(0xFF92EA3B); //
|
||||
@override
|
||||
final gradeThree = const Color(0xFFFFCC00);
|
||||
final gradeThree = const Color(0xFFF9CF00); //
|
||||
@override
|
||||
final gradeTwo = const Color(0xFFFF8008);
|
||||
final gradeTwo = const Color(0xFFFFA046); //
|
||||
@override
|
||||
final gradeOne = const Color(0xFFFF453A);
|
||||
final gradeOne = const Color(0xFFFF54A1); //
|
||||
// v5 ui login
|
||||
@override
|
||||
final loginPrimary = const Color(0xFFD4DAE7);
|
||||
final loginPrimary = const Color(0xFF394C0A); //
|
||||
@override
|
||||
final loginSecondary = const Color(0xFFA4B1CC);
|
||||
final loginSecondary = const Color(0xCC394C0A); //
|
||||
@override
|
||||
final inputBorder = const Color(0xFF586A8E);
|
||||
final inputBorder = const Color(0xFFA7DC22); //
|
||||
@override
|
||||
final loginBackground = const Color(0xFF0F131D);
|
||||
final loginBackground = const Color(0xFFFAFFF0); //
|
||||
@override
|
||||
final buttonBackground = const Color(0xFF3D7BF4);
|
||||
final buttonBackground = const Color(0xFFFEFFFD); //
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@ class LightMobileAppColors implements ThemeAppColors {
|
||||
@override
|
||||
final text = const Color(0xFF000000);
|
||||
@override
|
||||
final background = const Color(0xffF4F9FF);
|
||||
final background = const Color(0xffFAFFF0); //
|
||||
@override
|
||||
final highlight = const Color(0xffFFFFFF);
|
||||
final highlight = const Color(0xffF3FBDE); //
|
||||
@override
|
||||
final red = const Color(0xffFF3B30);
|
||||
@override
|
||||
@@ -19,7 +19,7 @@ class LightMobileAppColors implements ThemeAppColors {
|
||||
@override
|
||||
final green = const Color(0xff34C759);
|
||||
@override
|
||||
final filc = const Color(0xff3d7bf4);
|
||||
final filc = const Color(0xFFA7DC22); //
|
||||
@override
|
||||
final teal = const Color(0xff5AC8FA);
|
||||
@override
|
||||
@@ -32,24 +32,24 @@ class LightMobileAppColors implements ThemeAppColors {
|
||||
final pink = const Color(0xffFF2D55);
|
||||
// new default grade colors
|
||||
@override
|
||||
final gradeFive = const Color(0xff007D49);
|
||||
final gradeFive = const Color(0xFF22CCAD); //
|
||||
@override
|
||||
final gradeFour = const Color(0xFF34C759);
|
||||
final gradeFour = const Color(0xFF92EA3B); //
|
||||
@override
|
||||
final gradeThree = const Color(0xFFFFCC00);
|
||||
final gradeThree = const Color(0xFFF9CF00); //
|
||||
@override
|
||||
final gradeTwo = const Color(0xFFFF8008);
|
||||
final gradeTwo = const Color(0xFFFFA046); //
|
||||
@override
|
||||
final gradeOne = const Color(0xFFFF453A);
|
||||
final gradeOne = const Color(0xFFFF54A1); //
|
||||
// ui v5 login
|
||||
@override
|
||||
final loginPrimary = const Color(0xFF0A1C41);
|
||||
final loginPrimary = const Color(0xFF394C0A); //
|
||||
@override
|
||||
final loginSecondary = const Color(0xFF0A1C41);
|
||||
final loginSecondary = const Color(0xCC394C0A); //
|
||||
@override
|
||||
final inputBorder = const Color(0xFF586A8E);
|
||||
final inputBorder = const Color(0xFFA7DC22); //
|
||||
@override
|
||||
final loginBackground = const Color(0xFFEFF4FE);
|
||||
final loginBackground = const Color(0xFFFAFFF0); //
|
||||
@override
|
||||
final buttonBackground = const Color(0xFF0A1C41);
|
||||
final buttonBackground = const Color(0xFFFEFFFD); //
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:refilc/models/shared_theme.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
import 'package:refilc/models/user.dart';
|
||||
|
||||
List? _cachedThemesJson;
|
||||
|
||||
@@ -24,17 +25,23 @@ class ShareProvider extends ChangeNotifier {
|
||||
Future<(SharedTheme?, int)> shareCurrentTheme(
|
||||
BuildContext context, {
|
||||
bool isPublic = false,
|
||||
bool shareNick = true,
|
||||
bool shareNick = false,
|
||||
required SharedGradeColors gradeColors,
|
||||
String displayName = '',
|
||||
}) async {
|
||||
final SettingsProvider settings =
|
||||
Provider.of<SettingsProvider>(context, listen: false);
|
||||
|
||||
String? nickname = _user.nickname;
|
||||
|
||||
if (_user.nickname == _user.name || _user.nickname == '') {
|
||||
nickname = 'Anonymous';
|
||||
}
|
||||
|
||||
Map themeJson = {
|
||||
'public_id': const Uuid().v4(),
|
||||
'is_public': isPublic,
|
||||
'nickname': shareNick ? _user.nickname : 'Anonymous',
|
||||
'nickname': shareNick ? nickname : 'Anonymous',
|
||||
'display_name': displayName,
|
||||
'background_color': (settings.customBackgroundColor ??
|
||||
SettingsProvider.defaultSettings().customBackgroundColor)
|
||||
@@ -168,7 +175,7 @@ Future<List<SharedTheme>> getAllPublicThemes(BuildContext context,
|
||||
Map gradeColorsJson = {
|
||||
'public_id': const Uuid().v4(),
|
||||
'is_public': isPublic,
|
||||
'nickname': shareNick ? _user.nickname : 'Anonymous',
|
||||
'nickname': 'Anonymous',
|
||||
'five_color': settings.gradeColors[4].value,
|
||||
'four_color': settings.gradeColors[3].value,
|
||||
'three_color': settings.gradeColors[2].value,
|
||||
|
||||
@@ -51,10 +51,10 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
super.initState();
|
||||
showBack = widget.back;
|
||||
|
||||
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
|
||||
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
|
||||
statusBarColor: Colors.transparent,
|
||||
statusBarIconBrightness: Brightness.light,
|
||||
systemNavigationBarColor: Colors.white,
|
||||
statusBarIconBrightness: Brightness.dark,
|
||||
systemNavigationBarColor: AppColors.of(context).loginBackground,
|
||||
systemNavigationBarIconBrightness: Brightness.dark,
|
||||
));
|
||||
|
||||
@@ -90,12 +90,12 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
|
||||
decoration: BoxDecoration(color: AppColors.of(context).loginBackground),
|
||||
child: SingleChildScrollView(
|
||||
physics: const ClampingScrollPhysics(),
|
||||
controller: _scrollController,
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
|
||||
decoration: BoxDecoration(color: AppColors.of(context).loginBackground),
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height: MediaQuery.of(context).size.height,
|
||||
child: SafeArea(
|
||||
@@ -111,10 +111,10 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
width: 30.0,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
const Text(
|
||||
'reFilc',
|
||||
Text(
|
||||
'Firka',
|
||||
style: TextStyle(
|
||||
color: Color(0xFF050B15),
|
||||
color: AppColors.of(context).loginPrimary,
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontFamily: 'Montserrat'),
|
||||
@@ -162,8 +162,8 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
children: [
|
||||
Text(
|
||||
"welcome_title_$i".i18n,
|
||||
style: const TextStyle(
|
||||
color: Color(0xFF050B15),
|
||||
style: TextStyle(
|
||||
color: AppColors.of(context).loginPrimary,
|
||||
fontSize: 19,
|
||||
fontFamily: 'Montserrat',
|
||||
fontWeight: FontWeight.w700,
|
||||
@@ -176,8 +176,8 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
right: 20),
|
||||
child: Text(
|
||||
"welcome_text_$i".i18n,
|
||||
style: const TextStyle(
|
||||
color: Color(0xFF050B15),
|
||||
style: TextStyle(
|
||||
color: AppColors.of(context).loginSecondary,
|
||||
fontFamily: 'FigTree',
|
||||
fontWeight:
|
||||
FontWeight.w500,
|
||||
@@ -204,9 +204,9 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
Container(
|
||||
height: 280,
|
||||
width: double.infinity,
|
||||
decoration: const BoxDecoration(
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
colors: [Color(0x00DAE4F7), Color(0xFFDAE4F7)],
|
||||
colors: [AppColors.of(context).loginBackground.withAlpha(0), AppColors.of(context).loginBackground],
|
||||
stops: [0, 0.12],
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
@@ -247,8 +247,8 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
MediaQuery.of(context)
|
||||
.viewInsets
|
||||
.bottom,
|
||||
decoration: const BoxDecoration(
|
||||
color: Color(0xFFDAE4F7),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.of(context).loginBackground,
|
||||
borderRadius: BorderRadius.only(
|
||||
topRight:
|
||||
Radius.circular(24.0),
|
||||
@@ -268,9 +268,9 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
vertical: 18),
|
||||
child: Container(
|
||||
decoration:
|
||||
const BoxDecoration(
|
||||
BoxDecoration(
|
||||
color:
|
||||
Color(0xFFB9C8E5),
|
||||
AppColors.of(context).loginPrimary,
|
||||
borderRadius:
|
||||
BorderRadius.only(
|
||||
topRight:
|
||||
@@ -333,9 +333,10 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
},
|
||||
child: Text(
|
||||
"login_w_kreta_acc".i18n,
|
||||
style: const TextStyle(
|
||||
style: TextStyle(
|
||||
fontFamily: 'Montserrat',
|
||||
fontSize: 16,
|
||||
color: AppColors.of(context).loginPrimary,
|
||||
fontWeight: FontWeight.w700),
|
||||
)),
|
||||
),
|
||||
|
||||
@@ -46,6 +46,7 @@ class ShareThemeDialog extends StatefulWidget {
|
||||
class ShareThemeDialogState extends State<ShareThemeDialog> {
|
||||
final _title = TextEditingController();
|
||||
bool isPublic = false;
|
||||
bool shareNick = false;
|
||||
|
||||
late ShareProvider shareProvider;
|
||||
|
||||
@@ -111,6 +112,19 @@ class ShareThemeDialogState extends State<ShareThemeDialog> {
|
||||
title: Text("is_public".i18n),
|
||||
contentPadding: const EdgeInsets.only(left: 15.0, right: 10.0),
|
||||
),
|
||||
SwitchListTile(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
),
|
||||
value: shareNick,
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
shareNick = value;
|
||||
});
|
||||
},
|
||||
title: Text("shareNickname".i18n),
|
||||
contentPadding: const EdgeInsets.only(left: 15.0, right: 10.0),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
@@ -160,6 +174,7 @@ class ShareThemeDialogState extends State<ShareThemeDialog> {
|
||||
gradeColors: gradeColors!,
|
||||
isPublic: isPublic,
|
||||
displayName: _title.text,
|
||||
shareNick: shareNick
|
||||
);
|
||||
|
||||
if (themeStatus == 429) {
|
||||
|
||||
@@ -37,6 +37,7 @@ extension SettingsLocalization on String {
|
||||
"secret": "Secret Settings",
|
||||
"goodstudent": "Good student mode",
|
||||
"presentation": "Presentation Mode",
|
||||
"shareNickname": "Share Nickname",
|
||||
"goodstudent_disclaimer":
|
||||
"reFilc can not be held liable for the usage of this feature.\n\n(if your mother beats you up because you showed her fake grades, you can only blame yourself for it)",
|
||||
},
|
||||
@@ -74,6 +75,7 @@ extension SettingsLocalization on String {
|
||||
"secret": "Titkos Beállítások",
|
||||
"goodstudent": "Jó tanuló mód",
|
||||
"presentation": "Bemutató mód",
|
||||
"shareNickname": "Megosztás becenévvel",
|
||||
"goodstudent_disclaimer":
|
||||
"A reFilc minden felelősséget elhárít a funkció használatával kapcsolatban.\n\n(Értsd: ha az anyád megver, mert megtévesztő ábrákat mutattál neki, azért csakis magadat hibáztathatod.)",
|
||||
},
|
||||
@@ -112,6 +114,7 @@ extension SettingsLocalization on String {
|
||||
"secret": "Geheime Einstellungen",
|
||||
"presentation": "Präsentationsmodus",
|
||||
"goodstudent": "Guter Student Modus",
|
||||
"shareNickname": "Nach Spitznamen teilen",
|
||||
"goodstudent_disclaimer":
|
||||
"reFilc kann nicht für die Nutzung dieser Funktion haftbar gemacht werden.\n\n(Wenn deine Mutter dich verprügelt, weil du ihr falsche Noten gezeigt hast, kannst du dir nur die Schuld dafür geben)",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user