Merge remote-tracking branch 'origin/dev' into stats-redesign

# Conflicts:
#	app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/StatsScreen.kt
#	app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/viewModel/StatsViewModel.kt
#	app/src/main/res/values/strings.xml
This commit is contained in:
Nishant Mishra
2025-12-19 10:04:52 +05:30
25 changed files with 521 additions and 92 deletions

View File

@@ -25,7 +25,7 @@ jobs:
run: ./gradlew testFossDebugUnitTest
- name: Upload debug APK artifact
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: tomato-debug
path: ./app/build/outputs/apk/debug/app-debug.apk

View File

@@ -71,4 +71,7 @@ interface StatDao {
@Query("SELECT date FROM stat ORDER BY date DESC LIMIT 1")
suspend fun getLastDate(): LocalDate?
@Query("DELETE FROM stat")
suspend fun clearAll()
}

View File

@@ -43,6 +43,8 @@ interface StatRepository {
fun getLastNDaysAverageFocusTimes(n: Int): Flow<StatTime?>
suspend fun getLastDate(): LocalDate?
suspend fun deleteAllStats()
}
/**
@@ -118,4 +120,8 @@ class AppStatRepository(
statDao.getLastNDaysAvgStats(n)
override suspend fun getLastDate(): LocalDate? = statDao.getLastDate()
override suspend fun deleteAllStats() =
statDao.clearAll()
}

View File

@@ -0,0 +1,107 @@
package org.nsh07.pomodoro.ui.settingsScreen
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Card
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme.typography
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import org.nsh07.pomodoro.R
import org.nsh07.pomodoro.ui.theme.TomatoTheme
@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun ResetDataDialog(
modifier: Modifier = Modifier,
onDismiss: () -> Unit,
resetData: () -> Unit
) {
Dialog(
onDismissRequest = onDismiss,
) {
Card(
modifier = modifier
.clickable(onClick = onDismiss),
shape = RoundedCornerShape(16.dp),
) {
Column(modifier = Modifier.padding(24.dp)) {
Icon(
painter = painterResource(R.drawable.clear),
contentDescription = null,
modifier = Modifier
.align(Alignment.CenterHorizontally)
.size(40.dp)
)
Spacer(Modifier.height(16.dp))
Text(
text = stringResource(R.string.reset_data),
textAlign = TextAlign.Center,
style = typography.headlineSmall,
modifier = Modifier.align(Alignment.CenterHorizontally)
)
Spacer(Modifier.height(16.dp))
Text(
text = stringResource(R.string.reset_data_dialog_text),
textAlign = TextAlign.Center
)
Spacer(modifier = Modifier.height(24.dp))
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.End
) {
TextButton(onClick = onDismiss) {
Text(stringResource(android.R.string.cancel))
}
Spacer(modifier = Modifier.width(8.dp))
Button(
onClick = resetData,
shapes = ButtonDefaults.shapes(),
) {
Text(stringResource(android.R.string.ok))
}
}
}
}
}
}
@Preview
@Composable
fun PreviewResetDataDialog() {
TomatoTheme {
Surface {
ResetDataDialog(
onDismiss = { },
resetData = { }
)
}
}
}

View File

@@ -27,9 +27,11 @@ import androidx.compose.animation.slideOutHorizontally
import androidx.compose.animation.togetherWith
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
@@ -42,6 +44,7 @@ import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SliderState
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
@@ -170,6 +173,14 @@ private fun SettingsScreen(
setShowSheet = { showLocaleSheet = it }
)
if(settingsState.isShowingEraseDataDialog){
ResetDataDialog(resetData = {
onAction(SettingsAction.EraseData)
}, onDismiss = {
onAction(SettingsAction.CancelEraseData)
})
}
NavDisplay(
backStack = backStack,
onBack = backStack::removeLastOrNull,
@@ -294,6 +305,20 @@ private fun SettingsScreen(
}
item { Spacer(Modifier.height(12.dp)) }
item {
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center
){
TextButton(
onClick = { onAction(SettingsAction.AskEraseData) },
) {
Text(stringResource(R.string.reset_data))
}
}
}
}
}
}

View File

@@ -33,4 +33,7 @@ sealed interface SettingsAction {
data class SaveAlarmSound(val uri: Uri?) : SettingsAction
data class SaveTheme(val theme: String) : SettingsAction
data class SaveColorScheme(val color: Color) : SettingsAction
data object AskEraseData : SettingsAction
data object CancelEraseData : SettingsAction
data object EraseData : SettingsAction
}

View File

@@ -35,6 +35,7 @@ data class SettingsState(
val singleProgressBar: Boolean = false,
val autostartNextSession: Boolean = false,
val secureAod: Boolean = true,
val isShowingEraseDataDialog: Boolean = false,
val focusTime: Long = 25 * 60 * 1000L,
val shortBreakTime: Long = 5 * 60 * 1000L,

View File

@@ -47,6 +47,7 @@ import kotlinx.coroutines.launch
import org.nsh07.pomodoro.TomatoApplication
import org.nsh07.pomodoro.billing.BillingManager
import org.nsh07.pomodoro.data.PreferenceRepository
import org.nsh07.pomodoro.data.StatRepository
import org.nsh07.pomodoro.data.StateRepository
import org.nsh07.pomodoro.service.ServiceHelper
import org.nsh07.pomodoro.ui.Screen
@@ -59,6 +60,7 @@ class SettingsViewModel(
private val billingManager: BillingManager,
private val preferenceRepository: PreferenceRepository,
private val stateRepository: StateRepository,
private val statRepository: StatRepository,
private val serviceHelper: ServiceHelper,
private val time: MutableStateFlow<Long>
) : ViewModel() {
@@ -120,6 +122,25 @@ class SettingsViewModel(
is SettingsAction.SaveTheme -> saveTheme(action.theme)
is SettingsAction.SaveBlackTheme -> saveBlackTheme(action.enabled)
is SettingsAction.SaveAodEnabled -> saveAodEnabled(action.enabled)
is SettingsAction.AskEraseData -> askEraseData()
is SettingsAction.CancelEraseData -> cancelEraseData()
is SettingsAction.EraseData -> deleteStats()
}
}
private fun cancelEraseData() {
viewModelScope.launch(Dispatchers.IO) {
_settingsState.update { currentState ->
currentState.copy(isShowingEraseDataDialog = false)
}
}
}
private fun askEraseData() {
viewModelScope.launch(Dispatchers.IO) {
_settingsState.update { currentState ->
currentState.copy(isShowingEraseDataDialog = true)
}
}
}
@@ -137,6 +158,17 @@ class SettingsViewModel(
}
}
private fun deleteStats() {
viewModelScope.launch(Dispatchers.IO) {
serviceHelper.startService(TimerAction.ResetTimer)
statRepository.deleteAllStats()
_settingsState.update {
it.copy(isShowingEraseDataDialog = false)
}
}
}
fun runTextFieldFlowCollection() {
focusFlowCollectionJob = viewModelScope.launch(Dispatchers.IO) {
snapshotFlow { focusTimeTextFieldState.text }
@@ -458,6 +490,7 @@ class SettingsViewModel(
val appPreferenceRepository = application.container.appPreferenceRepository
val serviceHelper = application.container.serviceHelper
val stateRepository = application.container.stateRepository
val statRepository = application.container.appStatRepository
val time = application.container.time
SettingsViewModel(
@@ -465,7 +498,8 @@ class SettingsViewModel(
preferenceRepository = appPreferenceRepository,
serviceHelper = serviceHelper,
stateRepository = stateRepository,
time = time
statRepository = statRepository,
time = time,
)
}
}

View File

@@ -46,13 +46,13 @@
<string name="last_month">الشهر الماضي</string>
<string name="monthly_productivity_analysis">تحليل الإنتاجية الشهري</string>
<string name="stop_alarm_question">إيقاف المنبه؟</string>
<string name="stop_alarm_dialog_text">مؤقت الجلسة الحالية انتهي. اضغط في أي مكان لإيقاف المنبه.</string>
<string name="stop_alarm_dialog_text">المؤقت الحالي انتهي. اضغط في أي مكان لإيقاف المنبه.</string>
<string name="timer_session_count">%1$d من %2$d</string>
<string name="more">أكثر</string>
<string name="pause">إيقاف</string>
<string name="play">أبدا</string>
<string name="restart">إعادة التعيين</string>
<string name="skip_to_next">تخطي الي التالي</string>
<string name="skip_to_next">تخطي إلى التالي</string>
<string name="up_next">القادم</string>
<string name="timer">المؤقت</string>
<string name="timer_progress">تقدم المؤقت</string>
@@ -78,7 +78,7 @@
<string name="hours_and_minutes_format">%1$dس %2$dد</string>
<string name="hours_format">%1$dس</string>
<string name="minutes_format">%1$dد</string>
<string name="about">عن</string>
<string name="about">عن البرنامج</string>
<string name="help_with_translation_desc">ترجم Tomato إلى لغتك</string>
<string name="rate_on_google_play_desc">هل أعجبك التطبيق؟ اكتب مراجعة!</string>
<string name="bmc_desc">ادعمني بتبرع صغير</string>
@@ -86,12 +86,12 @@
<string name="license">الترخيص</string>
<string name="media_volume_for_alarm">وضع سماعات الرأس</string>
<string name="media_volume_for_alarm_desc">يعمل فقط على سماعات الرأس. إذا كانت سماعات الرأس مفصولة، يصدر المنبه عبر سماعة الهاتف عند مستوى صوت الوسائط.</string>
<string name="session_only_progress">التقدم في الجلسة فقط</string>
<string name="session_only_progress_desc">عرض التقدم للجلسة الحالية بدلا من سلسلة الجلسات كلها</string>
<string name="session_only_progress">تقدم مبسط</string>
<string name="session_only_progress_desc">عرض التقدم للمؤقت الحالي فقط في الإشعارات، وليس الجلسة بأكملها</string>
<string name="auto_start_next_timer_desc">ابدأ المؤقت التالي بعد إيقاف المنبه</string>
<string name="auto_start_next_timer">التشغيل التلقائي في المؤقت القادم</string>
<string name="secure_aod">AOD الآمن</string>
<string name="secure_aod_desc">قم بقفل جهازك تلقائيا بعد انتهاء الوقت، مع إبقاء AOD مرئياً</string>
<string name="timer_reset_message">إعادة ضبط المؤقت</string>
<string name="timer_reset_message">أُعيد ضبط المؤقت</string>
<string name="undo">تراجع</string>
</resources>

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="alarm">আলার্ম</string>
<string name="alarm_desc">টাইমার শেষ হলে এলার্ম বাজাও</string>
<string name="alarm_sound">এলার্মের শব্দ</string>
<string name="always_on_display">অলওয়েজ অন ডিসপ্লে</string>
<string name="always_on_display_desc">Aod মোড এ যেতে টাইমার দেখার সময় যেকোনো জায়গায় চাপ দিন</string>
<string name="appearance">রূপ</string>
<string name="black_theme">ব্ল্যাক থিম</string>
<string name="black_theme_desc">পুরো কালো থিম ব্যবহার করুন</string>
<string name="break_">বিরতি</string>
<string name="choose_color_scheme">রং নির্বাচন করুন</string>
<string name="choose_language">ভাষা নির্বাচন করুন</string>
<string name="choose_theme">থীম নির্ধারণ করুন</string>
<string name="color">রং</string>
<string name="color_scheme">রং বিন্যাস</string>
<string name="completed">সম্পূর্ণ</string>
<string name="dark">কালো</string>
<string name="dnd">ডু নট ডিস্টার্ব</string>
<string name="dnd_desc">ফোকাস টাইমার চলাকালে ডিএনডি চালু করুন</string>
<string name="durations">সময়কাল</string>
<string name="dynamic">সামঞ্জস্যপূর্ণ</string>
<string name="dynamic_color">সামঞ্জস্যপূর্ণ রং</string>
<string name="dynamic_color_desc">ওয়ালপেপার থেকে থিম এর রং গ্রহণ করুন</string>
<string name="exit">বের হন</string>
<string name="focus">মনোযোগ দিন</string>
<string name="focus_per_day_avg">দৈনিক ফোকাস (গড়ে)</string>
<string name="get_plus">Tomato+ নিন</string>
<string name="help_with_translation">Tomato অনুবাদ করতে সাহায্য করুন</string>
<string name="language">ভাষা</string>
<string name="last_month">গত মাস</string>
<string name="last_week">গত সপ্তাহ</string>
<string name="last_year">গত বছর</string>
<string name="light">উজ্জ্বল</string>
<string name="long_break">দীর্ঘ বিরতি</string>
<string name="min_remaining_notification">%1$s মিনিট অবশিষ্ট</string>
<string name="monthly_productivity_analysis">মাসিক উৎপাদনশীলতা বিশ্লেষণ</string>
<string name="more">আরো</string>
<string name="more_info">আরো তথ্য</string>
<string name="ok">ঠিক আছে</string>
<string name="pause">থামুন</string>
<string name="paused">স্থির</string>
<string name="play">চালু</string>
<string name="pomodoro_info">\"সেশন\" হলো Pomodoro এর একটি ক্রম যার মধ্যে ফোকাস সময়, ছোট বিরতি এবং একটি দীর্ঘ বিরতি ব্থাকে। একটি সেশন এর শেষ বিরতি সর্বদা একটি দীর্ঘ বিরতি।</string>
<string name="productivity_analysis">উৎপাদনশীলতা বিশ্লেষণ</string>
<string name="productivity_analysis_desc">দিনের ভিন্ন ভিন্ন সময় ফোকাস স্থিতিকাল</string>
<string name="rate_on_google_play">গুগল প্লে তে রেট করুন</string>
<string name="restart">পুনরায় শুরু করুন</string>
<string name="selected" tools:override="true">নির্ধারিত</string>
<string name="session_length">সেশন দৈর্ঘ্য</string>
<string name="session_length_desc">প্রতি সেশনে ফোকাস দৈর্ঘ্য: %1$d</string>
<string name="settings">সেটিংস্</string>
<string name="short_break">ক্ষুদ্র বিরতি</string>
<string name="skip">বাদ দিন</string>
<string name="skip_to_next">পরবর্তীতে যান</string>
<string name="sound">শব্দ</string>
<string name="start">শুরু</string>
<string name="start_next">পরবর্তী শুরু করুন</string>
<string name="stats">তথ্য</string>
<string name="stop">থামুন</string>
<string name="stop_alarm">এলার্ম বন্ধ করুন</string>
<string name="stop_alarm_dialog_text">বর্তমান টাইমার শেষ হয়েছে। এলার্ম বন্ধ করতে যেকোনো জায়গায় চাপ দিন</string>
<string name="stop_alarm_question">এলার্ম বন্ধ করুন?</string>
<string name="system_default">সিস্টেম</string>
<string name="theme">থীম</string>
<string name="timer">টাইমার</string>
<string name="timer_progress">টাইমার গতি</string>
<string name="timer_session_count">%2$d এর %1$d</string>
<string name="timer_settings_reset_info">সেটিংস পরিবর্তন করতে টাইমার রিসেট দিন</string>
<string name="today">আজকে</string>
<string name="tomato_foss_desc">সব ফিচার এই ভার্সন এ উন্মুক্ত। আমার অ্যাপ আপনার জীবনে পরিবর্তন এনে থাকলে, আমাকে %1$s এ অনুদান দিয়ে সমর্থন করুন</string>
<string name="up_next">এরপর</string>
<string name="up_next_notification">এরপর: %1$s (%2$s)</string>
<string name="vibrate">ভাইব্রেশন</string>
<string name="vibrate_desc">টাইমার শেষ হলে ভাইব্রেট করবে</string>
<string name="weekly_productivity_analysis">সাপ্তাহিক উৎপাদনশীলতার বিশ্লেষণ</string>
<string name="about">এবাউট</string>
<string name="help_with_translation_desc">আপনার ভাষায় Tomato অনুবাদ করুন</string>
<string name="rate_on_google_play_desc">অ্যাপটি পছন্দ হয়েছে? রিভিউ দিন!</string>
<string name="bmc_desc">ছোট অনুদান দিয়ে সাহায্য করুন</string>
<string name="tomato_plus_desc">Tomato+ দিয়ে আরো কাস্টোমাইজ করুন</string>
<string name="license">লাইসেন্স</string>
<string name="media_volume_for_alarm">হেডফোন মোড</string>
<string name="media_volume_for_alarm_desc">শুধুমাত্র হেডফোন এ বাজে। হেডফোন ডিসকানেক্টেড হলে, স্পিকার দিয়ে এলার্ম বাজে মিডিয়া ভলিউম এ</string>
</resources>

View File

@@ -46,7 +46,7 @@
<string name="last_month">Letzter Monat</string>
<string name="monthly_productivity_analysis">Monatliche Produktivität</string>
<string name="stop_alarm_question">Alarm stoppen?</string>
<string name="stop_alarm_dialog_text">Die aktuelle Timer-Sitzung ist beendet. Tippen Sie auf eine beliebige Stelle, um den Alarm zu stoppen.</string>
<string name="stop_alarm_dialog_text">Der aktuelle Timer ist beendet. Tippen Sie auf eine beliebige Stelle, um den Alarm zu stoppen.</string>
<string name="timer_session_count">%1$d von %2$d</string>
<string name="more">Mehr</string>
<string name="pause">Pausieren</string>
@@ -75,8 +75,8 @@
<string name="selected">Ausgewählt</string>
<string name="help_with_translation">Hilf beim Übersetzen von Tomato</string>
<string name="timer_settings_reset_info">Den Timer zurücksetzen um Einstellungen zu ändern</string>
<string name="hours_and_minutes_format">%1$dh%2$ddm</string>
<string name="hours_format">%1$dh</string>
<string name="hours_and_minutes_format">%1$dh %2$dm</string>
<string name="hours_format">%1$d</string>
<string name="minutes_format">%1$dm</string>
<string name="about">Über</string>
<string name="help_with_translation_desc">Übersetze Tomato in deine Sprache</string>
@@ -86,6 +86,12 @@
<string name="license">Lizenz</string>
<string name="media_volume_for_alarm">Kopfhörer Modus</string>
<string name="media_volume_for_alarm_desc">Spielt nur auf Kopfhörern. Wenn die Kopfhörer getrennt sind, wieder Alarm in Medienlautstärke abgespielt.</string>
<string name="session_only_progress">Sitzungs-Fortschritt</string>
<string name="session_only_progress_desc">Zeige in den Benachrichtigungen nur den Fortschritt der aktuellen Sitzung an, nicht die gesamte Sequenz.</string>
<string name="session_only_progress">Vereinfachter Fortschritt</string>
<string name="session_only_progress_desc">Zeige in den Benachrichtigungen nur den aktuellen Timer an, nicht die gesamte Sitzung</string>
<string name="auto_start_next_timer_desc">Starte den nächsten Timer nach dem Stoppen des Alarms</string>
<string name="auto_start_next_timer">Nächsten Timer automatisch starten</string>
<string name="secure_aod">Sicheres AOD</string>
<string name="secure_aod_desc">Sperrt dein Gerät nach einer bestimmten Zeit automatisch, während das AOD weiterhin sichtbar bleibt</string>
<string name="timer_reset_message">Timer wurde zurückgesetzt</string>
<string name="undo">Rückgängig</string>
</resources>

View File

@@ -35,7 +35,7 @@
<string name="last_month">Mes pasado</string>
<string name="monthly_productivity_analysis">Análisis de productividad mensual</string>
<string name="stop_alarm_question">¿Parar Alarma?</string>
<string name="stop_alarm_dialog_text">La sesión actual del temporizador ha finalizado. Toque en cualquier lugar para detener la alarma.</string>
<string name="stop_alarm_dialog_text">El temporizador actual ha finalizado. Toca en cualquier lugar para detener la alarma.</string>
<string name="timer_session_count">%1$d de %2$d</string>
<string name="more">Más</string>
<string name="pause">Pausa</string>
@@ -67,11 +67,30 @@
<string name="language">Idioma</string>
<string name="choose_language">Seleccionar idioma</string>
<string name="selected">Seleccionado</string>
<string name="help_with_translation">Ayudar con la traducción</string>
<string name="help_with_translation">Ayuda a traducir Tomato</string>
<string name="always_on_display">Always On Display</string>
<string name="always_on_display_desc">Toca en cualquier lugar mientras ves el temporizador para cambiar al modo AOD</string>
<string name="dnd_desc">Activar NM al ejecutar un temporizador de concentración</string>
<string name="tomato_foss_desc">Todas las funciones están desbloqueadas en esta versión. Si mi aplicación ha marcado una diferencia en tu vida, por favor, considera apoyarme donando en %1$s.</string>
<string name="rate_on_google_play">Valorar en Google Play</string>
<string name="timer_settings_reset_info">Reinicia el temporizador para cambiar la configuración</string>
<string name="hours_and_minutes_format">%1$dh %2$dm</string>
<string name="hours_format">%1$dh</string>
<string name="minutes_format">%1$dm</string>
<string name="about">Acerca de</string>
<string name="help_with_translation_desc">Traduce Tomato a tu idioma</string>
<string name="rate_on_google_play_desc">¿Te ha gustado la aplicación? ¡Escribe una reseña!</string>
<string name="bmc_desc">Apóyame con una pequeña donación</string>
<string name="tomato_plus_desc">Personaliza aún más con Tomato+</string>
<string name="license">Licencia</string>
<string name="media_volume_for_alarm">Modo auriculares</string>
<string name="media_volume_for_alarm_desc">Solo suena en los auriculares. Si se desconectan los auriculares, la alarma suena a través del altavoz al volumen multimedia.</string>
<string name="session_only_progress">Progreso simplificado</string>
<string name="session_only_progress_desc">Mostrar solo el progreso del temporizador actual en las notificaciones, en lugar de toda la sesión</string>
<string name="auto_start_next_timer_desc">Iniciar el siguiente temporizador después de detener una alarma</string>
<string name="auto_start_next_timer">Inicio automático del siguiente temporizador</string>
<string name="secure_aod">AOD Seguro</string>
<string name="secure_aod_desc">Bloquea automáticamente tu dispositivo tras un tiempo de inactividad, manteniendo visible AOD (pantalla siempre encendida)</string>
<string name="timer_reset_message">Reiniciar temporizador</string>
<string name="undo">Deshacer</string>
</resources>

View File

@@ -1,8 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="alarm">هشدار</string>
<string name="alarm_desc">زنگ هشدار هنگام پایان تایمر</string>
<string name="alarm_sound">صدای زنگ</string>
<string name="always_on_display">نمایشگر همیشه روشن</string>
<string name="always_on_display_desc">روی هر نقطه هنگام مشاهده تایمر ضربه بزنید تا به حالت نمایشگر همیشه روشن (AOD) بروید</string>
<string name="appearance">ظاهر</string>
<string name="black_theme">تم مشکی</string>
<string name="black_theme_desc">از تم کاملا مشکی تیره استفاده کنید</string>
<string name="break_">وقفه</string>
<string name="choose_color_scheme">انتخاب ترکیب رنگ</string>
<string name="choose_language">انتخاب زبان</string>
<string name="choose_theme">انتخاب تم</string>
<string name="color">رنگ</string>
<string name="color_scheme">ترکیب رنگ</string>
<string name="completed">تکمیل شده</string>
<string name="dark">تاریک</string>
<string name="dnd">مزاحم نشو</string>
<string name="dnd_desc">روشن کردن «مزاحم نشو» هنگام اجرای تایمر تمرکز</string>
<string name="durations">مدت ها</string>
<string name="dynamic">متغیر</string>
<string name="dynamic_color">رنگ متغیر</string>
<string name="dynamic_color_desc">استفاده از رنگ های والپیپر برای تم</string>
<string name="exit">خروج</string>
<string name="focus">تمرکز</string>
<string name="focus_per_day_avg">تمرکز روزانه (میانگین)</string>
<string name="get_plus">خرید گوجه+</string>
<string name="help_with_translation">کمک برای ترجمه گوجه</string>
<string name="hours_format">%1$dس</string>
<string name="language">زبان</string>
<string name="last_month">آخرین ماه</string>
<string name="last_week">آخرین هفته</string>
<string name="last_year">آخرین سال</string>
<string name="light">روشن</string>
<string name="long_break">استراحت بلند</string>
<string name="monthly_productivity_analysis">آنالیز خلاقیت ماهانه</string>
<string name="more">بیشتر</string>
<string name="more_info">اطلاعات بیشتر</string>
<string name="ok">باشه</string>
<string name="pause">توقف</string>
<string name="paused">متوقف شده</string>
<string name="play">پخش</string>
<string name="pomodoro_info">«جلسه» دنباله ای از فواصل پومودورو است که شامل فواصل فوکوس، وقفه های کوتاه و یک وقفه استراحت طولانی می باشد. آخرین استراحت جلسه همیشه یک استراحت طولانی است.</string>
<string name="productivity_analysis">تحلیل بهره وری</string>
<string name="hours_and_minutes_format">%1$dس %2$dد</string>
<string name="min_remaining_notification">%1$s دقیقه باقیمانده</string>
<string name="minutes_format">%1$dد</string>
<string name="productivity_analysis_desc">مدت زمان تمرکز در زمان های مختلف روز</string>
<string name="rate_on_google_play">امتیاز دادن در گوگل پلی</string>
<string name="restart">راه اندازی مجدد</string>
<string name="selected" tools:override="true">انتخاب شده</string>
<string name="session_length">طول جلسه</string>
<string name="session_length_desc">فواصل تمرکز در یک جلسه: %1$d</string>
<string name="settings">تنظیمات</string>
<string name="short_break">استراحت کوتاه</string>
<string name="skip">رد کردن</string>
<string name="skip_to_next">برو به بعدی</string>
<string name="sound">صدا</string>
<string name="start">شروع</string>
<string name="start_next">شروع بعدی</string>
<string name="stats">آمار</string>
<string name="stop">توقف</string>
<string name="stop_alarm">توقف هشدار</string>
<string name="stop_alarm_dialog_text">تایمر فعلی کامل است. هر جایی را بزنید تا آلارم قطع شود.</string>
<string name="stop_alarm_question">هشدار متوقف شود؟</string>
<string name="system_default">سیستم</string>
<string name="theme">تم</string>
<string name="timer">تایمر</string>
<string name="timer_progress">پیشرفت تایمر</string>
<string name="timer_session_count">%1$d از %2$d</string>
<string name="timer_settings_reset_info">تایمر را ریست کنید تا تنظیمات تغییر کند</string>
<string name="today">امروز</string>
<string name="tomato_foss_desc">تمام ویژگی ها در این نسخه باز شده اند. اگر اپلیکیشن من در زندگی شما تأثیری داشت، لطفا با کمک مالی به میزان %1$s از من حمایت کنید.</string>
<string name="up_next">بعدی</string>
<string name="up_next_notification">بعدی: %1$s (%2$s)</string>
<string name="vibrate">ویبره</string>
<string name="vibrate_desc">ویبره در اتمام تایمر</string>
<string name="weekly_productivity_analysis">تحلیل بهره وری هفتگی</string>
<string name="about">درباره</string>
<string name="help_with_translation_desc">«گوجه فرنگی» را به زبان خود ترجمه کنید</string>
<string name="rate_on_google_play_desc">اپلیکیشن را دوست داشتید؟ یک نقد بنویسید!</string>
<string name="bmc_desc">با یک کمک مالی کوچک از من حمایت کنید</string>
<string name="tomato_plus_desc">شخصی سازی بیشتر با Tomato+</string>
<string name="license">مجوز</string>
<string name="media_volume_for_alarm">حالت هدفون</string>
<string name="media_volume_for_alarm_desc">فقط با هدفون پخش می شود. اگر هدفون قطع شود، آلارم از بلندگو با حجم صدای media پخش می شود.</string>
<string name="session_only_progress">پیشرفت ساده شده</string>
<string name="session_only_progress_desc">پیشرفت تایمر فعلی را فقط در اعلان ها نشان دهید، نه کل جلسه</string>
<string name="auto_start_next_timer_desc">بعد از قطع زنگ هشدار، تایمر بعدی را شروع کنید</string>
<string name="auto_start_next_timer">استارت خودکار تایمر بعدی</string>
<string name="secure_aod">(صفحه همیشه روشن) امن</string>
<string name="secure_aod_desc">دستگاه خود را به طور خودکار پس از یک تایم اوت قفل کنید، در حالی که AOD قابل مشاهده باقی می ماند</string>
<string name="timer_reset_message">ریست تایمر</string>
<string name="undo">بازگردان</string>
<string name="reset_data">بازنشانی آمار</string>
<string name="reset_data_dialog_text">مطمئنی می خوای همه آمارهات رو ریست کنی؟</string>
</resources>

View File

@@ -86,4 +86,6 @@
<string name="session_only_progress">Progression de la session uniquement</string>
<string name="session_only_progress_desc">Montre uniquement la progression de la session actuelle, au lieu de la séquence entière.</string>
<string name="media_volume_for_alarm_desc">Fonctionne uniquement avec un casque. Si le casque est déconnecté, l\'alarme retentit via le haut-parleur au volume des médias.</string>
<string name="reset_data">Réinitialiser les données</string>
<string name="reset_data_dialog_text">Êtes-vous sûr de vouloir réinitialiser toutes vos données ?</string>
</resources>

View File

@@ -1,96 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="start">प्रारंभ करें</string>
<string name="stop">विराम करें</string>
<string name="focus">ध्यान</string>
<string name="start">शुरू करें</string>
<string name="stop">ोकें</string>
<string name="focus">फोकस</string>
<string name="alarm">अलार्म</string>
<string name="alarm_desc">टाइमर पूरा होने पर अलार्म बजाए</string>
<string name="alarm_sound">अलार्म ध्वनि</string>
<string name="alarm_desc">टाइमर पूरा होने पर अलार्म बजाए</string>
<string name="alarm_sound">अलार्म की आवाज</string>
<string name="always_on_display">ऑलवेज ऑन डिस्प्ले</string>
<string name="always_on_display_desc">AOD मोड चालू करने के लिए टाइमर देखते समय कहीं भी टैप करें</string>
<string name="always_on_display_desc">एओडी मोड ऑन करने के लिए टाइमर देखते समय कहीं भी टैप करें</string>
<string name="black_theme">काली थीम</string>
<string name="black_theme_desc">पूर्णतः काले रंग की थीम का उपयोग करें</string>
<string name="break_">विश्राम</string>
<string name="choose_color_scheme">रंग स्कीम चुनें</string>
<string name="black_theme_desc">गहरे काले रंग की थीम का इस्तेमाल करें</string>
<string name="break_">ब्रेक</string>
<string name="choose_color_scheme">रंग चुनें</string>
<string name="choose_theme">थीम चुनें</string>
<string name="color">रंग</string>
<string name="color_scheme">रंग स्कीम</string>
<string name="completed">पूर्ण</string>
<string name="dark">ाला</string>
<string name="color_scheme">रंग</string>
<string name="completed">पूरा हो गया</string>
<string name="dark">डार्</string>
<string name="dynamic">डायनामिक</string>
<string name="exit">बंद करें</string>
<string name="focus_per_day_avg">प्रतिदिन ध्यान (औसत)</string>
<string name="focus_per_day_avg">हर दिन कितना फोकस करते है (औसत)</string>
<string name="last_month">पिछले महीने</string>
<string name="last_week">पिछले सप्ता</string>
<string name="sound">ध्वनि</string>
<string name="last_week">पिछले हफ्ते</string>
<string name="sound">आवाज</string>
<string name="last_year">पिछले साल</string>
<string name="light">सफ़ेद</string>
<string name="long_break">दीर्घ विश्राम</string>
<string name="min_remaining_notification">%1$s मिनट शेष</string>
<string name="monthly_productivity_analysis">ासिक उत्पादकता विश्लेषण</string>
<string name="more">अधिक</string>
<string name="more_info">अधिक जानकारी</string>
<string name="light">लाइट</string>
<string name="long_break">लंबा ब्रेक</string>
<string name="min_remaining_notification">%1$s मिनट बाकी</string>
<string name="monthly_productivity_analysis">हीने का प्रोडक्टिविटी एनालिसिस</string>
<string name="more">और</string>
<string name="more_info">और जानकारी</string>
<string name="ok">ठीक</string>
<string name="pause">ोकें</string>
<string name="paused">रुका हुआ</string>
<string name="pause">पॉज करें</string>
<string name="paused">पॉज किया हुआ है</string>
<string name="play">शुरू करें</string>
<string name="pomodoro_info">एक \"सत्र\" पोमोडोरो अंतरालों का एक क्रम होता है जिसमें ध्यान अंतराल, लघु विश्राम अंतराल और एक दीर्घ विश्राम अंतराल शामिल होत है। सत्र का अंतिम विश्राम हमेशा एक दीर्घ विश्राम होता है।</string>
<string name="productivity_analysis">उत्पादकता विश्लेषण</string>
<string name="productivity_analysis_desc">दिन के अलग-अलग समय पर ध्यान अवधि</string>
<string name="restart">पुनः शुरू करें</string>
<string name="session_length">सत्र की अवधि</string>
<string name="session_length_desc">एक सत्र में ध्यान अंतराल: %1$d</string>
<string name="pomodoro_info">\"पीरियड\" पोमोडोरो इंटरवल का एक सिक्वेंस होता है जिसमें फोकस इंटरवल, छोटे ब्रेक के इंटरवल और एक लंबे ब्रेक का इंटरवल होत है। पीरियड का आखिरी ब्रेक हमेशा एक लंबा ब्रेक होता है।</string>
<string name="productivity_analysis">प्रोडक्टिविटी अनालिसिस</string>
<string name="productivity_analysis_desc">दिन के अलग-अलग समय पर फोकस की ड्यूरेशन</string>
<string name="restart">वापस शुरू करें</string>
<string name="session_length">पीरियड की लंबाई</string>
<string name="session_length_desc">एक पीरियड में फोकस इंटरवल: %1$d</string>
<string name="settings">सेटिंग</string>
<string name="short_break">लघु विश्राम</string>
<string name="skip">अगला अंतराल</string>
<string name="skip_to_next">अगले पर जाए</string>
<string name="short_break">छोटा ब्रेक</string>
<string name="skip">स्किप करें</string>
<string name="skip_to_next">अगले पर स्किप करे</string>
<string name="start_next">अगला शुरू करें</string>
<string name="stats">कड़े</string>
<string name="stats">कड़े</string>
<string name="stop_alarm">अलार्म बंद करें</string>
<string name="stop_alarm_dialog_text">वर्तमान टाइमर पूरा हो गया है। अलार्म बंद करने के लिए कहीं भी टैप करें।</string>
<string name="stop_alarm_dialog_text">मौजूदा टाइमर पूरा हो गया है। अलार्म बंद करने के लिए कहीं भी टैप करें।</string>
<string name="stop_alarm_question">अलार्म बंद करें?</string>
<string name="system_default">सिस्टम</string>
<string name="theme">थीम</string>
<string name="timer">टाइमर</string>
<string name="timer_progress">टाइमर पूर्णता</string>
<string name="timer_progress">टाइमर प्रॉग्रेस</string>
<string name="timer_session_count">%2$d में से %1$d</string>
<string name="today">आज</string>
<string name="up_next">गामी</string>
<string name="up_next_notification">गामी: %1$s (%2$s)</string>
<string name="vibrate">वाइब्रे</string>
<string name="up_next">ने वाला</string>
<string name="up_next_notification">ने वाला: %1$s (%2$s)</string>
<string name="vibrate">वाइब्रेशन</string>
<string name="vibrate_desc">टाइमर पूरा होने पर वाइब्रेट करें</string>
<string name="weekly_productivity_analysis">साप्ताहिक उत्पादकता विश्लेषण</string>
<string name="appearance">दिखावट</string>
<string name="durations">अवधियां</string>
<string name="dnd">परेशान न करें</string>
<string name="dnd_desc">ोकस टाइमर चलते समय \'परेशान न करें\' मोड चालू करें</string>
<string name="get_plus">Tomato+ प्राप्त करें</string>
<string name="weekly_productivity_analysis">हफ्ते का प्रोडक्टिविटी अनालिसिस</string>
<string name="appearance">रंग-रूप</string>
<string name="durations">ड्यूरेशन</string>
<string name="dnd">डू नॉट डिस्टर्ब</string>
<string name="dnd_desc">फोकस टाइमर चलते समय \'डू नॉट डिस्टर्ब\' मोड ऑन करें</string>
<string name="get_plus">Tomato+ ें</string>
<string name="dynamic_color">डायनामिक रंग</string>
<string name="dynamic_color_desc">अपने वॉलपेपर से थीम रंग अनुकूलित करें</string>
<string name="tomato_foss_desc">इस संस्करण में सभी सुविधाएँ अनलॉक हैं। अगर मेरे ऐप ने आपके जीवन में कोई बदलाव लाया है, तो कृपया %1$s पर दान करके मेरी मदद करें।</string>
<string name="dynamic_color_desc">अपने वॉलपेपर से रंग चुनें</string>
<string name="tomato_foss_desc">इस वर्जन में सभी फीचर अनलॉक हैं। अगर मेरे ऐप ने आपके लाइफ में कोई अंतर लाया है, तो प्लीज %1$s पर डोनेशन देकर मेरी मदद करें।</string>
<string name="language">भाषा</string>
<string name="choose_language">भाषा चुनें</string>
<string name="rate_on_google_play">Google Play पर रेटिंग दें</string>
<string name="selected">यनित</string>
<string name="help_with_translation">Tomato के अनुवाद में मदद करें</string>
<string name="timer_settings_reset_info">सेटिंग्स बदलने के लिए टाइमर रीसेट करें</string>
<string name="selected">ुने गए</string>
<string name="help_with_translation">Tomato के ट्रांस्लेशन में मदद करें</string>
<string name="timer_settings_reset_info">सेटिंग बदलने के लिए टाइमर रीसेट करें</string>
<string name="hours_and_minutes_format">%1$dघं %2$dमि</string>
<string name="hours_format">%1$dघं</string>
<string name="minutes_format">%1$dमि</string>
<string name="about">ऐप के बारे में</string>
<string name="help_with_translation_desc">Tomato का अपनी भाषा में अनुवाद करें</string>
<string name="help_with_translation_desc">Tomato का अपनी भाषा में ट्रांस्लेशन करें</string>
<string name="rate_on_google_play_desc">ऐप पसंद आया? रिव्यू लिखें!</string>
<string name="bmc_desc">एक छोटे से दान से मेरी मदद करें</string>
<string name="tomato_plus_desc">Tomato+ के साथ और कस्टमाइज करें</string>
<string name="bmc_desc">एक छोटे से डोनेशन से मेरी मदद करें</string>
<string name="tomato_plus_desc">Tomato+ के साथ और कस्टमाइज करें</string>
<string name="license">लाइसेंस</string>
<string name="media_volume_for_alarm">हेडफोन मोड</string>
<string name="media_volume_for_alarm_desc">अलार्म सिर्फ हेडफोन पर बजता है. अगर हेडफोन कनेक्ट नहीं हैं, तो अलार्म मीडिया वॉल्यूम पर स्पीकर से बजता है</string>
<string name="session_only_progress">रलीकृत प्रगति</string>
<string name="session_only_progress_desc">पूरे सत्र के बजा, नोटिफ़िकेशन में केवल मौजूदा टाइमर क प्रगति दिखाए</string>
<string name="media_volume_for_alarm">हेडफोन मोड</string>
<string name="media_volume_for_alarm_desc">अलार्म सिर्फ हेडफोन में बजेगा। अगर हेडफोन कनेक्ट नहीं हैं, तो अलार्म मीडिया वॉल्यूम पर स्पीकर से बजेगा</string>
<string name="session_only_progress">िम्पल प्रॉग्रेस</string>
<string name="session_only_progress_desc">पूरे पीरियड के बजा, सिर्फ मौजूदा टाइमर क प्रॉग्रेस नोटिफिकेशन में दिखाए</string>
<string name="auto_start_next_timer_desc">अलार्म बंद करने के बाद अगला टाइमर शुरू करें</string>
<string name="auto_start_next_timer">टाइमर स्वयं आरंभ</string>
<string name="secure_aod">ुरक्षित AOD</string>
<string name="secure_aod_desc">तय समय के बाद डिवाइस को स्वयं लॉक कर दें, जबकि AOD दिखता रहे</string>
<string name="auto_start_next_timer">अगला टाइमर अपने-आप शुरू करें</string>
<string name="secure_aod">ेक्योर ऑल्वेज ऑन डिस्प्ले</string>
<string name="secure_aod_desc">ऑल्वेज ऑन डिस्प्ले को ऑन रखते हुए कुछ समय के बाद डिवाइस को अपने-आप लॉक करें</string>
<string name="timer_reset_message">टाइमर रीसेट किया गया</string>
<string name="undo">पूर्ववत् करें</string>
<string name="undo">अंडू करें</string>
</resources>

View File

@@ -46,7 +46,7 @@
<string name="last_month">先月</string>
<string name="monthly_productivity_analysis">先月の生産性の分析</string>
<string name="stop_alarm_question">アラームを停止しますか?</string>
<string name="stop_alarm_dialog_text">現在のタイマーセッションは終了しました。アラームを停止するには、任意の場所をタップしてください。</string>
<string name="stop_alarm_dialog_text">現在のタイマーは終了しました。アラームを停止するには、任意の場所をタップしてください。</string>
<string name="timer_session_count">%1$d / %2$d</string>
<string name="more">追加</string>
<string name="pause">一時停止</string>
@@ -85,4 +85,12 @@
<string name="license">ライセンス</string>
<string name="media_volume_for_alarm">ヘッドホンモード</string>
<string name="media_volume_for_alarm_desc">ヘッドホンで再生します。ヘッドホンが接続されていない場合はスピーカーからメディアボリュームで再生されます。</string>
<string name="session_only_progress">簡素な進行状況</string>
<string name="session_only_progress_desc">通知にセッション全体ではなく、現在のタイマーのみの進行状況を表示します</string>
<string name="auto_start_next_timer_desc">アラームを停止した後に次のアラームを開始します</string>
<string name="auto_start_next_timer">次のタイマーを自動的に開始</string>
<string name="secure_aod">安全な常時表示ディスプレイ</string>
<string name="secure_aod_desc">常時表示ディスプレイは見られるように維持したまま、タイムアウト後に自動的に端末をロックします</string>
<string name="undo">戻す</string>
<string name="timer_reset_message">タイマーはリセットされました</string>
</resources>

View File

@@ -67,7 +67,7 @@
<string name="rate_on_google_play">Wystaw ocenę na Google Play</string>
<string name="dynamic_color_desc">Dostosuj kolory motywu do swojej tapety</string>
<string name="get_plus">Uzyskaj wersję Tomato+</string>
<string name="hours_and_minutes_format">%dg %dm</string>
<string name="hours_and_minutes_format">%dh %dm</string>
<string name="hours_format">%dg</string>
<string name="minutes_format">%dm</string>
<string name="pomodoro_info">„Sesja” to szereg interwałów pomodoro, który obejmuje interwały skupienia, krótkie przerwy i długą przerwę. Ostatnia przerwa w sesji to zawsze długa przerwa.</string>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -46,7 +46,7 @@
<string name="stats">Статистика</string>
<string name="stop">Стоп</string>
<string name="stop_alarm">Сигнал остановки</string>
<string name="stop_alarm_dialog_text">Текущая сессия завершена. Нажмите в любое место для остановки сигнала.</string>
<string name="stop_alarm_dialog_text">Текущая таймер завершен. Нажмите в любое место для остановки сигнала.</string>
<string name="stop_alarm_question">Остановить сигнал?</string>
<string name="system_default">Система</string>
<string name="theme">Тема</string>
@@ -73,6 +73,25 @@
<string name="durations">Длительности</string>
<string name="appearance">Отображение</string>
<string name="tomato_foss">Tomato (свободное и открытое программное обеспечение)</string>
<string name="help_with_translation">Помочь с переводом</string>
<string name="help_with_translation">Помочь перевести Tomato</string>
<string name="timer_settings_reset_info">Сбросить таймер для изменения настроек</string>
<string name="hours_and_minutes_format">%1$dч %2$dмин</string>
<string name="hours_format">%1$dч</string>
<string name="minutes_format">%1$dмин</string>
<string name="about">О приложении</string>
<string name="help_with_translation_desc">Переведите Tomato на ваш язык</string>
<string name="rate_on_google_play_desc">Понравилось приложение? Оставьте отзыв!</string>
<string name="bmc_desc">Поддержать меня небольшим донатом</string>
<string name="tomato_plus_desc">Больше кастомизации с Tomato+</string>
<string name="license">Лицензия</string>
<string name="media_volume_for_alarm">Режим \"В наушниках\"</string>
<string name="media_volume_for_alarm_desc">Воспроизведение только в наушниках. Если наушники не подключены, сигнал воспроизводится через основной динамик с громкостью медиа.</string>
<string name="session_only_progress">Упрощённый прогресс</string>
<string name="session_only_progress_desc">Отображать в уведомлении прогресс только текущего таймера, а не всей сессии целиком.</string>
<string name="auto_start_next_timer_desc">Запускать следующий таймер после остановки сигнала</string>
<string name="auto_start_next_timer">Автозапуск следующего таймера</string>
<string name="secure_aod">Безопасный Всегда Включенный Экран</string>
<string name="secure_aod_desc">Автоматически блокировать устройство по истечении времени во время отображения Всегда Включенного Экрана</string>
<string name="timer_reset_message">Таймер сброшен</string>
<string name="undo">Отменить</string>
</resources>

View File

@@ -45,7 +45,7 @@
<string name="last_month">Geçen ay</string>
<string name="monthly_productivity_analysis">Aylık verimlilik analizi</string>
<string name="stop_alarm_question">Alarmı Durdur?</string>
<string name="stop_alarm_dialog_text">Mevcut zamanlayıcı oturumu tamamlandı. Alarmı durdurmak için herhangi bir yere dokunun.</string>
<string name="stop_alarm_dialog_text">Mevcut zamanlayıcı tamamlandı. Alarmı durdurmak için herhangi bir yere dokunun.</string>
<string name="timer_session_count">%1$d / %2$d</string>
<string name="more">Daha fazla</string>
<string name="pause">Duraklat</string>
@@ -86,6 +86,14 @@
<string name="license">Lisans</string>
<string name="media_volume_for_alarm">Kulaklık modu</string>
<string name="media_volume_for_alarm_desc">Sadece kulaklıktan oynatır. Eğer kulaklık devre dışı ise alarmı direkt medya sesi düzeyinde hoparlörden oynatır.</string>
<string name="session_only_progress">Yalnızca bu oturumun ilerlemesi</string>
<string name="session_only_progress_desc">Bildirimlerde tüm ilerlemeyi göstermektense yalnızca bu oturuma ait ilerlemeyi gösterir.</string>
<string name="session_only_progress">Basitleştirilmiş ilerleme</string>
<string name="session_only_progress_desc">Bildirimlerde tüm oturumu göstermektense yalnızca bu zamanlayıcıya ait ilerlemeyi gösterir.</string>
<string name="auto_start_next_timer_desc">Alarmı durdurduktan hemen sonra bir sonraki zamanlayıcıyı başlat</string>
<string name="auto_start_next_timer">Sonraki zamanlayıcıyı otomatik başlat</string>
<string name="secure_aod">Güvenli AOD</string>
<string name="secure_aod_desc">Belirli bir zamandan sonra cihazınızı otomatik olarak kilitler, AOD\'u halen görünür tutar</string>
<string name="timer_reset_message">Zamanlayıcı sıfırlandı</string>
<string name="undo">Geri al</string>
<string name="reset_data">İstatistikleri sıfırla</string>
<string name="reset_data_dialog_text">Tüm istatistiklerini sıfırlamak istediğinden eminmisin?</string>
</resources>

View File

@@ -46,7 +46,7 @@
<string name="last_month">上月</string>
<string name="monthly_productivity_analysis">月生产力分析</string>
<string name="stop_alarm_question">要停止响铃吗?</string>
<string name="stop_alarm_dialog_text">当前计时小节已完成. 轻触任何位置来停止响铃.</string>
<string name="stop_alarm_dialog_text">当前计时已完成. 轻触任何位置来停止响铃.</string>
<string name="more">更多</string>
<string name="pause">暂停</string>
<string name="play">开始</string>
@@ -86,6 +86,6 @@
<string name="license">许可证</string>
<string name="media_volume_for_alarm">耳机模式</string>
<string name="media_volume_for_alarm_desc">仅在插入耳机时播放。如果耳机连接断开,闹铃以媒体音量通过扬声器播放。</string>
<string name="session_only_progress">仅会话进度</string>
<string name="session_only_progress_desc">在通知中只显示当前会话的进度,而非完整序列的进度。</string>
<string name="session_only_progress">简化进度</string>
<string name="session_only_progress_desc">在通知中只显示当前计时器的进度,而非完整会话的进度。</string>
</resources>

View File

@@ -88,6 +88,14 @@
<string name="license">授權條款</string>
<string name="media_volume_for_alarm">耳機模式</string>
<string name="media_volume_for_alarm_desc">僅透過耳機播放。若耳機斷線,鬧鐘將以媒體音量從喇叭播放。</string>
<string name="session_only_progress">僅顯示工作階段進度</string>
<string name="session_only_progress_desc">在通知中僅顯示目前工作階段的進度,而非完整流程</string>
<string name="session_only_progress">簡化進度顯示</string>
<string name="session_only_progress_desc">在通知中僅顯示目前計時的進度,而非整個工作階段</string>
<string name="undo">復原</string>
<string name="reset_data">重置統計資料</string>
<string name="reset_data_dialog_text">你確定要重置統計資料嗎?</string>
<string name="auto_start_next_timer_desc">停止鬧鐘後自動開始下一個計時</string>
<string name="auto_start_next_timer">自動開始下一個計時</string>
<string name="secure_aod">螢幕長亮模式安全鎖定</string>
<string name="secure_aod_desc">在逾時後自動鎖定裝置,同時維持螢幕長亮模式顯示</string>
<string name="timer_reset_message">計時已重設</string>
</resources>

View File

@@ -120,4 +120,6 @@
<string name="focus_history_heatmap_desc">Focus history of the past year. Deeper colors represent a longer duration. Cells are grouped by month. Tap on cells for more info.</string>
<string name="focus_history_calendar">Focus history calendar</string>
<string name="focus_history_calendar_desc">Focus history of the past month. Days of the previous month are marked with a different color. Click on a date for more info.</string>
<string name="reset_data">Reset stats</string>
<string name="reset_data_dialog_text">Are you sure you want to reset all your stats?</string>
</resources>

View File

@@ -1,11 +1,11 @@
<i>Tomato</i>, Material 3 Expressive tabanlı, Android için minimalist bir Pomodoro sayacıdır.
<i>Tomato</i>, Material 3 Expressive tabanlı, Android için minimal bir Pomodoro sayacıdır.
Tomato tamamen ücretsizdir ve sonsuza kadar açık kaynaklı kalacaktır. Kaynak koduna ulaşmak, hata bildirmek veya özellik önermek için: https://github.com/nsh07/Tomato
<b>Özellikler:</b>
- En son Material 3 Expressive yönergelerine dayalı basit, minimalist kullanıcı arayüzü
- Çalışma/ders çalışma sürelerinizin kolay anlaşılır şekilde sunulan ayrıntılı istatistikleri
- Güncel güne ait istatistikler bir bakışta görülebilir
- Çalışma/ders çalışma sürelerinizin kolay anlaşılır şekilde sunulan ayrıntılı istatistikler
- Güncel günün istatistikleri bir bakışta görülebilir
- Son hafta ve son aya ait istatistikler, okunması kolay ve temiz bir grafikte gösterilir
- Son hafta ve son aya ait, günün hangi saatinde en üretken olduğunuzu gösteren ek istatistikler
- Özelleştirilebilir zamanlayıcı parametreleri

View File

@@ -1 +1 @@
Minimalist Pomodoro sayacı
Minimal Pomodoro zamanlayıcısı