feat(alarmas): simplify alarm cards and add vacation summary row
Restyle the Alarmas root per the functional redesign: alarm cards drop
the always-visible edit/skip/delete button row for a minimal giant
time + station + switch layout. Tap opens the editor, swipe deletes
(with an AlertDialog confirmation), and the hero banner gains an
inline "Saltar" pill for the featured (soonest-firing) alarm's skip
action. No capability from the old button row is lost, only the
trigger location moved; estado_alarmas.dart and its scheduling/
snooze/dismiss-guard tests are untouched.
The vacation inline panel becomes a tappable summary row (range count
+ next-range countdown, computed over the existing estado.vacaciones)
that pushes a Vacaciones manager screen. That destination is a
placeholder for now (_PantallaVacacionesTemporal, holding the old
panel's body verbatim so add/delete-range capability is preserved) --
WU9 replaces it with the real PantallaVacaciones per design ADR-6.
New ARB keys (en/es only; other 11 locales are WU18's job):
alarmHeroSkipAction, alarmDeleteConfirmTitle/Message,
vacationRangesCount, vacationSummary{Active,Upcoming}Countdown.
This commit is contained in:
@@ -422,6 +422,9 @@
|
||||
"editAction": "Edit",
|
||||
"skipNextAction": "Skip next",
|
||||
"deleteTooltip": "Delete",
|
||||
"alarmHeroSkipAction": "Skip",
|
||||
"alarmDeleteConfirmTitle": "Delete alarm?",
|
||||
"alarmDeleteConfirmMessage": "This can't be undone.",
|
||||
"alarmSkippedNoNextSnackbar": "Alarm skipped. There is no next occurrence left.",
|
||||
"alarmSkippedReturnsSnackbar": "Alarm skipped. It will return on {date}.",
|
||||
"@alarmSkippedReturnsSnackbar": {
|
||||
@@ -508,6 +511,30 @@
|
||||
"vacationRangesHint": "If an alarm is set to \"Paused during vacations\", it automatically skips these ranges.",
|
||||
"noVacationRangesLoaded": "No ranges loaded.",
|
||||
"deleteRangeTooltip": "Delete range",
|
||||
"vacationRangesCount": "{count} ranges",
|
||||
"@vacationRangesCount": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vacationSummaryActiveCountdown": "Active now · {days} days left",
|
||||
"@vacationSummaryActiveCountdown": {
|
||||
"placeholders": {
|
||||
"days": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vacationSummaryUpcomingCountdown": "Next range in {days} days",
|
||||
"@vacationSummaryUpcomingCountdown": {
|
||||
"placeholders": {
|
||||
"days": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vacationsDefaultName": "Vacation",
|
||||
"newVacationRangeTitle": "New vacation range",
|
||||
"startField": "Start",
|
||||
|
||||
@@ -422,6 +422,9 @@
|
||||
"editAction": "Editar",
|
||||
"skipNextAction": "Omitir siguiente",
|
||||
"deleteTooltip": "Eliminar",
|
||||
"alarmHeroSkipAction": "Saltar",
|
||||
"alarmDeleteConfirmTitle": "¿Eliminar alarma?",
|
||||
"alarmDeleteConfirmMessage": "Esta acción no se puede deshacer.",
|
||||
"alarmSkippedNoNextSnackbar": "Alarma omitida. No queda próxima ejecución.",
|
||||
"alarmSkippedReturnsSnackbar": "Alarma omitida. Volverá el {date}.",
|
||||
"@alarmSkippedReturnsSnackbar": {
|
||||
@@ -508,6 +511,30 @@
|
||||
"vacationRangesHint": "Si una alarma tiene \"Pausa en vacaciones\", se salta automáticamente estos rangos.",
|
||||
"noVacationRangesLoaded": "Sin rangos cargados.",
|
||||
"deleteRangeTooltip": "Eliminar rango",
|
||||
"vacationRangesCount": "{count} rangos",
|
||||
"@vacationRangesCount": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vacationSummaryActiveCountdown": "En curso · quedan {days} días",
|
||||
"@vacationSummaryActiveCountdown": {
|
||||
"placeholders": {
|
||||
"days": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vacationSummaryUpcomingCountdown": "Próximo rango en {days} días",
|
||||
"@vacationSummaryUpcomingCountdown": {
|
||||
"placeholders": {
|
||||
"days": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"vacationsDefaultName": "Vacaciones",
|
||||
"newVacationRangeTitle": "Nuevo rango de vacaciones",
|
||||
"startField": "Inicio",
|
||||
|
||||
@@ -1570,6 +1570,24 @@ abstract class AppLocalizations {
|
||||
/// **'Eliminar'**
|
||||
String get deleteTooltip;
|
||||
|
||||
/// No description provided for @alarmHeroSkipAction.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Saltar'**
|
||||
String get alarmHeroSkipAction;
|
||||
|
||||
/// No description provided for @alarmDeleteConfirmTitle.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'¿Eliminar alarma?'**
|
||||
String get alarmDeleteConfirmTitle;
|
||||
|
||||
/// No description provided for @alarmDeleteConfirmMessage.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Esta acción no se puede deshacer.'**
|
||||
String get alarmDeleteConfirmMessage;
|
||||
|
||||
/// No description provided for @alarmSkippedNoNextSnackbar.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
@@ -1838,6 +1856,24 @@ abstract class AppLocalizations {
|
||||
/// **'Eliminar rango'**
|
||||
String get deleteRangeTooltip;
|
||||
|
||||
/// No description provided for @vacationRangesCount.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'{count} rangos'**
|
||||
String vacationRangesCount(int count);
|
||||
|
||||
/// No description provided for @vacationSummaryActiveCountdown.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'En curso · quedan {days} días'**
|
||||
String vacationSummaryActiveCountdown(int days);
|
||||
|
||||
/// No description provided for @vacationSummaryUpcomingCountdown.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
/// **'Próximo rango en {days} días'**
|
||||
String vacationSummaryUpcomingCountdown(int days);
|
||||
|
||||
/// No description provided for @vacationsDefaultName.
|
||||
///
|
||||
/// In es, this message translates to:
|
||||
|
||||
@@ -840,6 +840,15 @@ class AppLocalizationsAr extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'حذف';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'تم تخطي المنبه. لا يوجد تشغيل قادم.';
|
||||
@@ -994,6 +1003,21 @@ class AppLocalizationsAr extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'حذف النطاق';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'إجازات';
|
||||
|
||||
|
||||
@@ -845,6 +845,15 @@ class AppLocalizationsBn extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'মুছুন';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'অ্যালার্ম এড়ানো হয়েছে। আর কোনো পরবর্তী চালনা নেই।';
|
||||
@@ -1001,6 +1010,21 @@ class AppLocalizationsBn extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'পরিসর মুছুন';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'ছুটি';
|
||||
|
||||
|
||||
@@ -848,6 +848,15 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Löschen';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Alarm ausgelassen. Es bleibt keine nächste Ausführung.';
|
||||
@@ -1002,6 +1011,21 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Zeitraum löschen';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Ferien';
|
||||
|
||||
|
||||
@@ -842,6 +842,15 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Delete';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Skip';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => 'Delete alarm?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'This can\'t be undone.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Alarm skipped. There is no next occurrence left.';
|
||||
@@ -996,6 +1005,21 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Delete range';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count ranges';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'Active now · $days days left';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Next range in $days days';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Vacation';
|
||||
|
||||
|
||||
@@ -846,6 +846,15 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Eliminar';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Alarma omitida. No queda próxima ejecución.';
|
||||
@@ -1000,6 +1009,21 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Eliminar rango';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Vacaciones';
|
||||
|
||||
|
||||
@@ -850,6 +850,15 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Supprimer';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Alarme ignorée. Il ne reste aucune prochaine exécution.';
|
||||
@@ -1006,6 +1015,21 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Supprimer la période';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Vacances';
|
||||
|
||||
|
||||
@@ -842,6 +842,15 @@ class AppLocalizationsHi extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'हटाएँ';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'अलार्म छोड़ा गया। कोई अगली चाल बाकी नहीं।';
|
||||
@@ -997,6 +1006,21 @@ class AppLocalizationsHi extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'अवधि हटाएँ';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'छुट्टियाँ';
|
||||
|
||||
|
||||
@@ -845,6 +845,15 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Hapus';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Alarm dilewati. Tidak ada eksekusi berikutnya.';
|
||||
@@ -1001,6 +1010,21 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Hapus rentang';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Liburan';
|
||||
|
||||
|
||||
@@ -846,6 +846,15 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Elimina';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Sveglia saltata. Non resta alcuna prossima esecuzione.';
|
||||
@@ -1002,6 +1011,21 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Elimina periodo';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Vacanze';
|
||||
|
||||
|
||||
@@ -820,6 +820,15 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => '削除';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar => 'アラームをスキップしました。次回実行は残っていません。';
|
||||
|
||||
@@ -970,6 +979,21 @@ class AppLocalizationsJa extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => '期間を削除';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => '休暇';
|
||||
|
||||
|
||||
@@ -845,6 +845,15 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Excluir';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Alarme ignorado. Não resta próxima execução.';
|
||||
@@ -999,6 +1008,21 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Excluir período';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Férias';
|
||||
|
||||
|
||||
@@ -846,6 +846,15 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => 'Удалить';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar =>
|
||||
'Будильник пропущен. Следующего запуска нет.';
|
||||
@@ -1001,6 +1010,21 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => 'Удалить период';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => 'Отпуск';
|
||||
|
||||
|
||||
@@ -816,6 +816,15 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get deleteTooltip => '删除';
|
||||
|
||||
@override
|
||||
String get alarmHeroSkipAction => 'Saltar';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
|
||||
|
||||
@override
|
||||
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
|
||||
|
||||
@override
|
||||
String get alarmSkippedNoNextSnackbar => '已跳过闹钟。没有剩余的下次执行。';
|
||||
|
||||
@@ -966,6 +975,21 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get deleteRangeTooltip => '删除范围';
|
||||
|
||||
@override
|
||||
String vacationRangesCount(int count) {
|
||||
return '$count rangos';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryActiveCountdown(int days) {
|
||||
return 'En curso · quedan $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String vacationSummaryUpcomingCountdown(int days) {
|
||||
return 'Próximo rango en $days días';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vacationsDefaultName => '假期';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user