diff --git a/lib/app/onboarding/intro.page.dart b/lib/app/onboarding/intro.page.dart index 20f6978b..4c0eee1c 100644 --- a/lib/app/onboarding/intro.page.dart +++ b/lib/app/onboarding/intro.page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:monekin/app/onboarding/onboarding.dart'; import 'package:monekin/app/settings/about_page.dart'; +import 'package:monekin/core/presentation/app_colors.dart'; import 'package:monekin/core/presentation/responsive/breakpoint_container.dart'; import 'package:monekin/core/presentation/widgets/html_text.dart'; import 'package:monekin/core/routes/route_utils.dart'; @@ -83,7 +84,7 @@ class IntroPage extends StatelessWidget { const TextStyle(fontSize: 12.5, fontWeight: FontWeight.w200), tags: { 'a': TextStyle( - color: Colors.blue.shade200, + color: AppColors.of(context).link, fontSize: 12.5, fontWeight: FontWeight.w200) }, diff --git a/lib/app/settings/widgets/language_selector.dart b/lib/app/settings/widgets/language_selector.dart index 6d509301..b66cc807 100644 --- a/lib/app/settings/widgets/language_selector.dart +++ b/lib/app/settings/widgets/language_selector.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; import 'package:monekin/app/settings/widgets/supported_locales.dart'; +import 'package:monekin/core/presentation/app_colors.dart'; +import 'package:monekin/core/presentation/widgets/html_text.dart'; import 'package:monekin/core/presentation/widgets/modal_container.dart'; import 'package:monekin/i18n/translations.g.dart'; @@ -49,6 +51,35 @@ class LanguageSelector extends StatelessWidget { child: Column( mainAxisSize: MainAxisSize.min, children: [ + SizedBox( + width: double.infinity, + child: Card( + margin: const EdgeInsets.fromLTRB(16, 0, 16, 12), + elevation: 0, + color: Theme.of(context).colorScheme.surfaceBright, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + child: Row( + children: [ + const Icon(Icons.translate_rounded), + const SizedBox(width: 12), + Flexible( + child: HTMLText( + htmlString: t.settings.lang_help, + tags: { + 'a': TextStyle( + color: AppColors.of(context).link, + ) + }, + ), + ), + ], + ), + ), + )), ...appSupportedLocales .map((e) => _langRadioTile(context, supportedLocale: e)), const SizedBox(height: 12) diff --git a/lib/core/presentation/app_colors.dart b/lib/core/presentation/app_colors.dart index 74bb96a5..a8c9be78 100644 --- a/lib/core/presentation/app_colors.dart +++ b/lib/core/presentation/app_colors.dart @@ -5,6 +5,7 @@ const brandBlue = Color(0xFF0F3375); class AppColors extends ThemeExtension { const AppColors({ + required this.link, required this.danger, required this.success, required this.brand, @@ -14,6 +15,7 @@ class AppColors extends ThemeExtension { required this.shadowColorLight, }); + final Color link; final Color danger; final Color success; final Color brand; @@ -26,6 +28,7 @@ class AppColors extends ThemeExtension { final isDark = colorScheme.brightness == Brightness.dark; return AppColors( + link: Colors.blue.shade200, danger: isDark ? Colors.redAccent : Colors.red, success: isDark ? Colors.lightGreen : const Color.fromARGB(255, 55, 161, 59), @@ -47,6 +50,7 @@ class AppColors extends ThemeExtension { @override AppColors copyWith({ + Color? link, Color? danger, Color? success, Color? brand, @@ -58,6 +62,7 @@ class AppColors extends ThemeExtension { Color? modalBackground, }) { return AppColors( + link: link ?? this.link, danger: danger ?? this.danger, success: success ?? this.success, light: light ?? this.light, @@ -74,6 +79,7 @@ class AppColors extends ThemeExtension { return this; } return AppColors( + link: Color.lerp(link, other.link, t) ?? link, danger: Color.lerp(danger, other.danger, t) ?? danger, success: Color.lerp(success, other.success, t) ?? success, light: Color.lerp(light, other.light, t) ?? light, diff --git a/docs/I18N_CONTRIBUTING.md b/lib/i18n/README.md similarity index 100% rename from docs/I18N_CONTRIBUTING.md rename to lib/i18n/README.md diff --git a/lib/i18n/strings_en.json b/lib/i18n/strings_en.json index 599130a2..85777714 100644 --- a/lib/i18n/strings_en.json +++ b/lib/i18n/strings_en.json @@ -640,6 +640,7 @@ "lang.section": "Language and texts", "lang.title": "App language", "lang.descr": "Language in which the texts will be displayed in the app", + "lang.help": "If you want to collaborate with the translations of this app, you can consult our guide", "locale": "Region", "locale.descr": "Set the format to use for dates, numbers...", "locale.warn": "When changing region the app will update", diff --git a/lib/i18n/strings_es.json b/lib/i18n/strings_es.json index 0abfccc7..5609c780 100644 --- a/lib/i18n/strings_es.json +++ b/lib/i18n/strings_es.json @@ -647,6 +647,7 @@ "lang.section": "Idioma y textos", "lang.title": "Idioma de la aplicación", "lang.descr": "Idioma en el que se mostrarán los textos en la aplicación", + "lang.help": "Si quieres colaborar con las traducciones de esta app puedes consultar nuestra guía ", "locale": "Región", "locale.descr": "Establecer el formato a utilizar para fechas, números...", "locale.warn": "Al cambiar la región, la aplicación se actualizará", diff --git a/lib/i18n/strings_uk.json b/lib/i18n/strings_uk.json index 966c18f6..76017d88 100644 --- a/lib/i18n/strings_uk.json +++ b/lib/i18n/strings_uk.json @@ -642,6 +642,7 @@ "lang.section": "Мова та тексти", "lang.title": "Мова додатку", "lang.descr": "Мова, в якій будуть відображатися тексти в додатку", + "lang.help": "Якщо ви хочете співпрацювати з перекладами цієї програми, ви можете звернутися до нашого посібник", "locale": "Регіон", "locale.descr": "Встановіть формат, який буде використовуватися для дат, чисел...", "locale.warn": "Після зміни регіону додаток оновиться", diff --git a/lib/i18n/strings_zh-TW.json b/lib/i18n/strings_zh-TW.json index 27ff3fbc..cd68b548 100644 --- a/lib/i18n/strings_zh-TW.json +++ b/lib/i18n/strings_zh-TW.json @@ -640,6 +640,7 @@ "lang.section": "語言和文本", "lang.title": "應用程式語言", "lang.descr": "應用程式中顯示文字的語言", + "lang.help": "如果您想與此應用程式的翻譯合作,您可以參考我們的指南", "locale": "地區", "locale.descr": "設定用於日期、數字的格式...", "locale.warn": "更改區域時應用程式將更新", diff --git a/lib/i18n/translations.g.dart b/lib/i18n/translations.g.dart index 7c50336a..92e1f0f1 100644 --- a/lib/i18n/translations.g.dart +++ b/lib/i18n/translations.g.dart @@ -4,9 +4,9 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 4 -/// Strings: 2189 (547 per locale) +/// Strings: 2193 (548 per locale) /// -/// Built on 2024-10-20 at 10:51 UTC +/// Built on 2024-12-14 at 13:11 UTC // coverage:ignore-file // ignore_for_file: type=lint @@ -555,6 +555,7 @@ class _TranslationsSettingsEn { String get lang_section => 'Language and texts'; String get lang_title => 'App language'; String get lang_descr => 'Language in which the texts will be displayed in the app'; + String get lang_help => 'If you want to collaborate with the translations of this app, you can consult our guide'; String get locale => 'Region'; String get locale_descr => 'Set the format to use for dates, numbers...'; String get locale_warn => 'When changing region the app will update'; @@ -1854,6 +1855,7 @@ class _TranslationsSettingsEs implements _TranslationsSettingsEn { @override String get lang_section => 'Idioma y textos'; @override String get lang_title => 'Idioma de la aplicación'; @override String get lang_descr => 'Idioma en el que se mostrarán los textos en la aplicación'; + @override String get lang_help => 'Si quieres colaborar con las traducciones de esta app puedes consultar nuestra guía '; @override String get locale => 'Región'; @override String get locale_descr => 'Establecer el formato a utilizar para fechas, números...'; @override String get locale_warn => 'Al cambiar la región, la aplicación se actualizará'; @@ -3154,6 +3156,7 @@ class _TranslationsSettingsUk implements _TranslationsSettingsEn { @override String get lang_section => 'Мова та тексти'; @override String get lang_title => 'Мова додатку'; @override String get lang_descr => 'Мова, в якій будуть відображатися тексти в додатку'; + @override String get lang_help => 'Якщо ви хочете співпрацювати з перекладами цієї програми, ви можете звернутися до нашого посібник'; @override String get locale => 'Регіон'; @override String get locale_descr => 'Встановіть формат, який буде використовуватися для дат, чисел...'; @override String get locale_warn => 'Після зміни регіону додаток оновиться'; @@ -4453,6 +4456,7 @@ class _TranslationsSettingsZhTw implements _TranslationsSettingsEn { @override String get lang_section => '語言和文本'; @override String get lang_title => '應用程式語言'; @override String get lang_descr => '應用程式中顯示文字的語言'; + @override String get lang_help => '如果您想與此應用程式的翻譯合作,您可以參考我們的指南'; @override String get locale => '地區'; @override String get locale_descr => '設定用於日期、數字的格式...'; @override String get locale_warn => '更改區域時應用程式將更新'; @@ -5900,6 +5904,7 @@ extension on Translations { case 'settings.lang_section': return 'Language and texts'; case 'settings.lang_title': return 'App language'; case 'settings.lang_descr': return 'Language in which the texts will be displayed in the app'; + case 'settings.lang_help': return 'If you want to collaborate with the translations of this app, you can consult our guide'; case 'settings.locale': return 'Region'; case 'settings.locale_descr': return 'Set the format to use for dates, numbers...'; case 'settings.locale_warn': return 'When changing region the app will update'; @@ -6528,6 +6533,7 @@ extension on _TranslationsEs { case 'settings.lang_section': return 'Idioma y textos'; case 'settings.lang_title': return 'Idioma de la aplicación'; case 'settings.lang_descr': return 'Idioma en el que se mostrarán los textos en la aplicación'; + case 'settings.lang_help': return 'Si quieres colaborar con las traducciones de esta app puedes consultar nuestra guía '; case 'settings.locale': return 'Región'; case 'settings.locale_descr': return 'Establecer el formato a utilizar para fechas, números...'; case 'settings.locale_warn': return 'Al cambiar la región, la aplicación se actualizará'; @@ -7155,6 +7161,7 @@ extension on _TranslationsUk { case 'settings.lang_section': return 'Мова та тексти'; case 'settings.lang_title': return 'Мова додатку'; case 'settings.lang_descr': return 'Мова, в якій будуть відображатися тексти в додатку'; + case 'settings.lang_help': return 'Якщо ви хочете співпрацювати з перекладами цієї програми, ви можете звернутися до нашого посібник'; case 'settings.locale': return 'Регіон'; case 'settings.locale_descr': return 'Встановіть формат, який буде використовуватися для дат, чисел...'; case 'settings.locale_warn': return 'Після зміни регіону додаток оновиться'; @@ -7782,6 +7789,7 @@ extension on _TranslationsZhTw { case 'settings.lang_section': return '語言和文本'; case 'settings.lang_title': return '應用程式語言'; case 'settings.lang_descr': return '應用程式中顯示文字的語言'; + case 'settings.lang_help': return '如果您想與此應用程式的翻譯合作,您可以參考我們的指南'; case 'settings.locale': return '地區'; case 'settings.locale_descr': return '設定用於日期、數字的格式...'; case 'settings.locale_warn': return '更改區域時應用程式將更新';