Merge branch 'hotfix/1.7.1'

pull/231/merge v1.7.1
Alinson S. Xavier 8 years ago
commit fa416adbb9

@ -1,5 +1,12 @@
# Changelog
### 1.7.1 (May 21, 2017)
* Fix crash (BadParcelableException)
* Fix layout for RTL languages such as Arabic
* Automatically detect and reject invalid database files
* Add Hebrew translation
### 1.7.0 (Mar 31, 2017)
* Sort habits automatically

@ -25,7 +25,7 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
testCoverageEnabled = true
testCoverageEnabled = false
}
}

@ -46,12 +46,12 @@ public class CheckmarkButtonViewTest extends BaseViewTest
public void setUp()
{
super.setUp();
setSimilarityCutoff(0.03f);
setSimilarityCutoff(0.015f);
latch = new CountDownLatch(1);
view = new CheckmarkButtonView(targetContext);
view.setValue(Checkmark.UNCHECKED);
view.setColor(ColorUtils.getAndroidTestColor(7));
view.setColor(ColorUtils.getAndroidTestColor(5));
measureView(view, dpToPixels(40), dpToPixels(40));
}

@ -21,8 +21,8 @@
<manifest
package="org.isoron.uhabits"
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="27"
android:versionName="1.7.0">
android:versionCode="28"
android:versionName="1.7.1">
<uses-permission android:name="android.permission.VIBRATE"/>

@ -21,10 +21,10 @@ package org.isoron.uhabits;
import android.app.*;
import android.content.*;
import android.support.annotation.*;
import com.activeandroid.*;
import org.isoron.uhabits.models.sqlite.*;
import org.isoron.uhabits.notifications.*;
import org.isoron.uhabits.preferences.*;
import org.isoron.uhabits.tasks.*;
@ -88,7 +88,16 @@ public class HabitsApplication extends Application
if (db.exists()) db.delete();
}
DatabaseUtils.initializeActiveAndroid(context);
try
{
DatabaseUtils.initializeActiveAndroid(context);
}
catch (InvalidDatabaseVersionException e)
{
File db = DatabaseUtils.getDatabaseFile(context);
db.renameTo(new File(db.getAbsolutePath() + ".invalid"));
DatabaseUtils.initializeActiveAndroid(context);
}
widgetUpdater = component.getWidgetUpdater();
widgetUpdater.startListening();

@ -20,9 +20,8 @@
package org.isoron.uhabits.activities.common.views;
import android.os.*;
import android.view.*;
public class BundleSavedState extends View.BaseSavedState
public class BundleSavedState extends android.support.v4.view.AbsSavedState
{
public static final Parcelable.Creator<BundleSavedState> CREATOR =
new Parcelable.Creator<BundleSavedState>()
@ -51,7 +50,7 @@ public class BundleSavedState extends View.BaseSavedState
public BundleSavedState(Parcel source)
{
super(source);
this.bundle = source.readBundle();
this.bundle = source.readBundle(getClass().getClassLoader());
}
@Override

@ -62,6 +62,12 @@ public abstract class BaseDialog extends AppCompatDialogFragment
private ColorPickerDialogFactory colorPickerDialogFactory;
@Override
public int getTheme()
{
return R.style.DialogWithTitle;
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{

@ -20,21 +20,34 @@
package org.isoron.uhabits.activities.habits.list.views;
import android.content.*;
import android.content.res.*;
import android.graphics.*;
import android.support.annotation.*;
import android.text.*;
import android.util.*;
import android.view.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.activities.habits.list.controllers.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*;
public class CheckmarkButtonView extends TextView
import static android.view.View.MeasureSpec.*;
import static org.isoron.uhabits.models.Checkmark.*;
import static org.isoron.uhabits.utils.AttributeSetUtils.*;
public class CheckmarkButtonView extends View
{
private int color;
private int value;
private StyledResources res;
private StyledResources styledRes;
private TextPaint paint;
private int lowContrastColor;
private RectF rect;
public CheckmarkButtonView(Context context)
{
@ -42,6 +55,21 @@ public class CheckmarkButtonView extends TextView
init();
}
public CheckmarkButtonView(@Nullable Context ctx, @Nullable AttributeSet attrs)
{
super(ctx, attrs);
init();
if(ctx == null) throw new IllegalStateException();
if(attrs == null) throw new IllegalStateException();
int paletteColor = getIntAttribute(ctx, attrs, "color", 0);
setColor(ColorUtils.getAndroidTestColor(paletteColor));
int value = getIntAttribute(ctx, attrs, "value", 0);
setValue(value);
}
public void setColor(int color)
{
this.color = color;
@ -57,54 +85,60 @@ public class CheckmarkButtonView extends TextView
public void setValue(int value)
{
this.value = value;
updateText();
postInvalidate();
}
public void toggle()
{
value = (value == Checkmark.CHECKED_EXPLICITLY ? Checkmark.UNCHECKED :
Checkmark.CHECKED_EXPLICITLY);
value = (value == CHECKED_EXPLICITLY ? UNCHECKED : CHECKED_EXPLICITLY);
performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
updateText();
postInvalidate();
}
private void init()
@Override
protected void onDraw(Canvas canvas)
{
res = new StyledResources(getContext());
super.onDraw(canvas);
Resources resources = getResources();
paint.setColor(value == CHECKED_EXPLICITLY ? color : lowContrastColor);
int id = (value == UNCHECKED ? R.string.fa_times : R.string.fa_check);
String label = resources.getString(id);
float em = paint.measureText("m");
setWillNotDraw(false);
rect.set(0, 0, getWidth(), getHeight());
rect.offset(0, 0.4f * em);
canvas.drawText(label, rect.centerX(), rect.centerY(), paint);
}
setMinHeight(
getResources().getDimensionPixelSize(R.dimen.checkmarkHeight));
setMinWidth(
getResources().getDimensionPixelSize(R.dimen.checkmarkWidth));
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
Resources res = getResources();
int height = res.getDimensionPixelSize(R.dimen.checkmarkHeight);
int width = res.getDimensionPixelSize(R.dimen.checkmarkWidth);
setFocusable(false);
setGravity(Gravity.CENTER);
setTypeface(InterfaceUtils.getFontAwesome(getContext()));
widthMeasureSpec = makeMeasureSpec(width, EXACTLY);
heightMeasureSpec = makeMeasureSpec(height, EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
private void updateText()
private void init()
{
int lowContrastColor = res.getColor(R.attr.lowContrastTextColor);
if (value == Checkmark.CHECKED_EXPLICITLY)
{
setText(R.string.fa_check);
setTextColor(color);
}
if (value == Checkmark.CHECKED_IMPLICITLY)
{
setText(R.string.fa_check);
setTextColor(lowContrastColor);
}
if (value == Checkmark.UNCHECKED)
{
setText(R.string.fa_times);
setTextColor(lowContrastColor);
}
setFocusable(false);
Resources res = getResources();
styledRes = new StyledResources(getContext());
paint = new TextPaint();
paint.setTypeface(InterfaceUtils.getFontAwesome(getContext()));
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.CENTER);
paint.setTextSize(res.getDimension(R.dimen.regularTextSize));
rect = new RectF();
color = ColorUtils.getAndroidTestColor(0);
lowContrastColor = styledRes.getColor(R.attr.lowContrastTextColor);
}
}

@ -214,6 +214,7 @@ public class HabitCardView extends FrameLayout
scoreRing.setPercentage(rand.nextFloat());
checkmarkPanel.setColor(color);
checkmarkPanel.setCheckmarkValues(values);
checkmarkPanel.setButtonCount(5);
}
private void refresh()

@ -50,8 +50,6 @@ public class HeaderView extends ScrollableChart
private RectF rect;
private int maxDataOffset;
public HeaderView(Context context, AttributeSet attrs)
{
super(context, attrs);
@ -76,7 +74,6 @@ public class HeaderView extends ScrollableChart
Resources res = context.getResources();
setScrollerBucketSize((int) res.getDimension(R.dimen.checkmarkWidth));
setDirection(shouldReverseCheckmarks() ? 1 : -1);
StyledResources sr = new StyledResources(context);
paint = new TextPaint();
@ -99,7 +96,7 @@ public class HeaderView extends ScrollableChart
@Override
public void onCheckmarkOrderChanged()
{
setDirection(shouldReverseCheckmarks() ? 1 : -1);
updateDirection();
postInvalidate();
}
@ -112,11 +109,20 @@ public class HeaderView extends ScrollableChart
@Override
protected void onAttachedToWindow()
{
updateDirection();
super.onAttachedToWindow();
if (prefs != null) prefs.addListener(this);
if (midnightTimer != null) midnightTimer.addListener(this);
}
private void updateDirection()
{
int direction = -1;
if (shouldReverseCheckmarks()) direction *= -1;
if (InterfaceUtils.isLayoutRtl(this)) direction *= -1;
setDirection(direction);
}
@Override
protected void onDetachedFromWindow()
{
@ -145,6 +151,7 @@ public class HeaderView extends ScrollableChart
float width = res.getDimension(R.dimen.checkmarkWidth);
float height = res.getDimension(R.dimen.checkmarkHeight);
boolean reverse = shouldReverseCheckmarks();
boolean isRtl = InterfaceUtils.isLayoutRtl(this);
day.add(GregorianCalendar.DAY_OF_MONTH, -getDataOffset());
float em = paint.measureText("m");
@ -153,9 +160,13 @@ public class HeaderView extends ScrollableChart
{
rect.set(0, 0, width, height);
rect.offset(canvas.getWidth(), 0);
if(reverse) rect.offset(- (i + 1) * width, 0);
else rect.offset((i - buttonCount) * width, 0);
if (isRtl) rect.set(canvas.getWidth() - rect.right, rect.top,
canvas.getWidth() - rect.left, rect.bottom);
String text = DateUtils.formatHeaderDate(day).toUpperCase();
String[] lines = text.split("\n");

@ -19,20 +19,20 @@
package org.isoron.uhabits.io;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.annotation.NonNull;
import android.content.*;
import android.database.*;
import android.database.sqlite.*;
import android.support.annotation.*;
import android.util.*;
import com.activeandroid.ActiveAndroid;
import com.activeandroid.*;
import org.isoron.uhabits.AppContext;
import org.isoron.uhabits.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.DatabaseUtils;
import org.isoron.uhabits.utils.FileUtils;
import org.isoron.uhabits.utils.*;
import java.io.File;
import java.io.IOException;
import java.io.*;
import javax.inject.*;
@ -45,7 +45,8 @@ public class LoopDBImporter extends AbstractImporter
private Context context;
@Inject
public LoopDBImporter(@NonNull @AppContext Context context, @NonNull HabitList habits)
public LoopDBImporter(@NonNull @AppContext Context context,
@NonNull HabitList habits)
{
super(habits);
this.context = context;
@ -59,15 +60,29 @@ public class LoopDBImporter extends AbstractImporter
SQLiteDatabase db = SQLiteDatabase.openDatabase(file.getPath(), null,
SQLiteDatabase.OPEN_READONLY);
boolean canHandle = true;
Cursor c = db.rawQuery(
"select count(*) from SQLITE_MASTER where name=? or name=?",
new String[]{"Checkmarks", "Repetitions"});
new String[]{ "Checkmarks", "Repetitions" });
if (!c.moveToFirst() || c.getInt(0) != 2)
{
Log.w("LoopDBImporter", "Cannot handle file: tables not found");
canHandle = false;
}
boolean result = (c.moveToFirst() && c.getInt(0) == 2);
if (db.getVersion() > BuildConfig.databaseVersion)
{
Log.w("LoopDBImporter", String.format(
"Cannot handle file: incompatible version: %d > %d",
db.getVersion(), BuildConfig.databaseVersion));
canHandle = false;
}
c.close();
db.close();
return result;
return canHandle;
}
@Override

@ -0,0 +1,24 @@
/*
* Copyright (C) 2016 Álinson Santos Xavier <isoron@gmail.com>
*
* This file is part of Loop Habit Tracker.
*
* Loop Habit Tracker is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* Loop Habit Tracker is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.isoron.uhabits.models.sqlite;
public class InvalidDatabaseVersionException extends RuntimeException
{
}

@ -23,6 +23,7 @@ import android.content.*;
import android.preference.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.models.*;
import javax.inject.*;
@ -48,7 +49,7 @@ public class WidgetPreferences
public long getHabitIdFromWidgetId(int widgetId)
{
Long habitId = prefs.getLong(getHabitIdKey(widgetId), -1);
if (habitId < 0) throw new RuntimeException("widget not found");
if (habitId < 0) throw new HabitNotFoundException();
return habitId;
}

@ -74,4 +74,14 @@ public class AttributeSetUtils
if (number != null) return Float.parseFloat(number);
else return defaultValue;
}
public static int getIntAttribute(@NonNull Context context,
@NonNull AttributeSet attrs,
@NonNull String name,
int defaultValue)
{
String number = getAttribute(context, attrs, name, null);
if (number != null) return Integer.parseInt(number);
else return defaultValue;
}
}

@ -25,6 +25,7 @@ import android.support.annotation.*;
import com.activeandroid.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.models.sqlite.*;
import org.isoron.uhabits.models.sqlite.records.*;
import java.io.*;
@ -76,7 +77,16 @@ public abstract class DatabaseUtils
RepetitionRecord.class, ScoreRecord.class, StreakRecord.class)
.create();
ActiveAndroid.initialize(dbConfig);
try
{
ActiveAndroid.initialize(dbConfig);
}
catch (RuntimeException e)
{
if(e.getMessage().contains("downgrade"))
throw new InvalidDatabaseVersionException();
else throw e;
}
}
@SuppressWarnings("ResultOfMethodCallIgnored")

@ -22,7 +22,9 @@ package org.isoron.uhabits.utils;
import android.content.*;
import android.content.res.*;
import android.graphics.*;
import android.support.v4.view.*;
import android.util.*;
import android.view.*;
public abstract class InterfaceUtils
{
@ -49,4 +51,10 @@ public abstract class InterfaceUtils
DisplayMetrics metrics = resources.getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, metrics);
}
public static boolean isLayoutRtl(View view)
{
return ViewCompat.getLayoutDirection(view) ==
ViewCompat.LAYOUT_DIRECTION_RTL;
}
}

@ -25,6 +25,8 @@ import android.os.*;
import android.support.annotation.*;
import android.widget.*;
import com.activeandroid.util.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.preferences.*;
@ -76,8 +78,15 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
for (int id : ids)
{
BaseWidget widget = getWidgetFromId(context, id);
widget.delete();
try
{
BaseWidget widget = getWidgetFromId(context, id);
widget.delete();
}
catch (HabitNotFoundException e)
{
Log.e("BaseWidgetProvider", e);
}
}
}

@ -317,6 +317,15 @@
<TextView
style="@style/About.Item"
android:text="Aman Satnami (हिन्दी)"/>
<TextView
style="@style/About.Item"
android:text="Niraj Yadav (हिन्दी)"/>
<TextView
style="@style/About.Item"
android:text="Yoav Argov (עברית‎)"/>
</LinearLayout>
</LinearLayout>
</ScrollView>

@ -57,7 +57,7 @@
<string name="validation_at_most_one_rep_per_day">Позволено е до едно повторение на ден.</string>
<string name="create_habit">Създаване на навик</string>
<string name="edit_habit">Редактиране на навик</string>
<string name="check">Потвърди</string>
<string name="check">Поставяне на отметка</string>
<string name="snooze">По-късно</string>
<!-- App introduction -->
<string name="intro_title_1">Добре дошли</string>
@ -74,6 +74,7 @@
<string name="interval_2_hour">2 часа</string>
<string name="interval_4_hour">4 часа</string>
<string name="interval_8_hour">8 часа</string>
<string name="interval_24_hour">24 часа</string>
<string name="pref_toggle_title">Маркиране с кратко натискане</string>
<string name="pref_toggle_description">Поставяне на отметки с кратко натискане вместо с натискане и задържане. По-удобно, но може да доведе до неволно маркиране.</string>
<string name="pref_snooze_interval_title">Интервал на напомняне след отлагане</string>
@ -91,6 +92,7 @@
<string name="hint_landscape">Може да виждате повече дни като обърнете телефона си в хоризонтално положение.</string>
<string name="delete_habits">Изтриване на навици</string>
<string name="delete_habits_message">Навиците ще се изтрият перманентно. Това действие не може да бъде отменено.</string>
<string name="habit_not_found">Навикът е изтрит / не е намерен</string>
<string name="weekends">Събота и неделя</string>
<string name="any_weekday">От понеделник до петък</string>
<string name="any_day">Всеки ден от седмицата</string>
@ -100,7 +102,7 @@
<string name="clear_label">Изчистване</string>
<string name="select_hours">Избиране на час</string>
<string name="select_minutes">Избиране на минута</string>
<string name="about">Информация</string>
<string name="about">За приложението</string>
<string name="translators">Преводачи</string>
<string name="developers">Разработчици</string>
<string name="version_n">Версия %s</string>
@ -146,6 +148,7 @@
<string name="month">Месец</string>
<string name="quarter">Тримесечие</string>
<string name="year">Година</string>
<string name="total">Общо</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">път в период от</string>
<string name="every_x_days">На всеки %d дни</string>
@ -154,4 +157,22 @@
<string name="score">Сила</string>
<string name="reminder_sound">Звук за напомняне</string>
<string name="none">Няма</string>
<string name="filter">Филтър</string>
<string name="hide_completed">Скриване на завършените</string>
<string name="hide_archived">Скриване на архивираните</string>
<string name="sticky_notifications">Направи нотификациите постоянни</string>
<string name="sticky_notifications_description">Предотвратява изчистването на нотификацията с плъзване настрани.</string>
<string name="repair_database">Поправка на базата данни</string>
<string name="database_repaired">Базата данни е поправена.</string>
<string name="uncheck">Премахване на отметка</string>
<string name="toggle">Смяна</string>
<string name="action">Действие</string>
<string name="habit">Навик</string>
<string name="sort">Сортиране</string>
<string name="manually">Ръчно</string>
<string name="by_name">По име</string>
<string name="by_color">По цвят</string>
<string name="by_score">По сила</string>
<string name="download">Изтегляне</string>
<string name="export">Експортиране</string>
</resources>

@ -19,7 +19,7 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="app_name">Sledování zvyků</string>
<string name="app_name">Loop Habit Tracker</string>
<string name="main_activity_title">Zvyky</string>
<string name="action_settings">Nastavení</string>
<string name="edit">Upravit</string>
@ -45,11 +45,11 @@
<string name="repeat">Opakovat</string>
<string name="times_every">krát za</string>
<string name="days">dní</string>
<string name="reminder">Připomenout</string>
<string name="reminder">Připomenutí</string>
<string name="discard">Zrušit</string>
<string name="save">Uložit</string>
<string name="streaks">Serie</string>
<string name="no_habits_found">Nemáš žádné aktivní zvyky</string>
<string name="no_habits_found">Nemáte žádné nedokončené zvyky</string>
<string name="long_press_to_toggle">Stiskni a drž pro označení</string>
<string name="reminder_off">Vyp.</string>
<string name="validation_name_should_not_be_blank">Jméno musíte vyplnit.</string>
@ -91,13 +91,13 @@
<string name="hint_drag">Přeřazení záznamů proveď stisknutím a podržením názvu zvyku a poté přesunutím na správné místo.</string>
<string name="hint_landscape">Můžeš vidět více dnů otočením telefonu na šířku.</string>
<string name="delete_habits">Smazat zvyky</string>
<string name="delete_habits_message">Zvyky budou navždy odstraněny. Toto nelze vzít zpět.</string>
<string name="delete_habits_message">Označené zvyky budou navždy odstraněny. Toto nelze vzít zpět.</string>
<string name="habit_not_found">Zvyk smazán / nenalezen</string>
<string name="weekends">Víkendy</string>
<string name="any_weekday">Pondělí až pátek</string>
<string name="any_day">Jakýkoliv den v týdnu</string>
<string name="select_weekdays">Vyber dny</string>
<string name="export_to_csv">Exportuj CSV</string>
<string name="export_to_csv">Exportovat CSV</string>
<string name="done_label">Hotovo</string>
<string name="clear_label">Smazat</string>
<string name="select_hours">Vyber hodiny</string>
@ -169,7 +169,7 @@
<string name="action">Akce</string>
<string name="habit">Zvyk</string>
<string name="sort">Řadit</string>
<string name="manually">Manuál</string>
<string name="manually">Ruč</string>
<string name="by_name">Abecedně</string>
<string name="by_color">Podle barvy</string>
<string name="by_score">Podle skóre</string>

@ -19,7 +19,7 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="app_name">Loop Habit Tracker</string>
<string name="app_name">Loop \"Gewohnheiten Tracking\"</string>
<string name="main_activity_title">Gewohnheiten</string>
<string name="action_settings">Einstellungen</string>
<string name="edit">Bearbeiten</string>

@ -34,14 +34,14 @@
<string name="toast_nothing_to_undo">Nada que deshacer.</string>
<string name="toast_nothing_to_redo">Nada que rehacer.</string>
<string name="toast_habit_changed">Hábito cambiado.</string>
<string name="toast_habit_changed_back">Hábito cambiado devuelta.</string>
<string name="toast_habit_changed_back">Hábito cambiado nuevamente.</string>
<string name="toast_habit_archived">Hábitos archivados.</string>
<string name="toast_habit_unarchived">Hábitos desarchivados.</string>
<string name="overview">Visión general</string>
<string name="overview">Resumen</string>
<string name="habit_strength">Fuerza del hábito</string>
<string name="history">Historial</string>
<string name="clear">Borrar</string>
<string name="description_hint">Pregunta (Has ... hoy?)</string>
<string name="clear">Eliminar</string>
<string name="description_hint">Pregunta (Has ___ hoy?)</string>
<string name="repeat">Repetir</string>
<string name="times_every">veces cada</string>
<string name="days">días</string>
@ -52,8 +52,8 @@
<string name="no_habits_found">No tienes hábitos activos</string>
<string name="long_press_to_toggle">Mantener apretado para marcar o desmarcar</string>
<string name="reminder_off">Apagado</string>
<string name="validation_name_should_not_be_blank">Nombre no puede estar en blanco.</string>
<string name="validation_number_should_be_positive">Número debe ser positivo.</string>
<string name="validation_name_should_not_be_blank">El nombre no puede quedar en blanco.</string>
<string name="validation_number_should_be_positive">El número debe ser positivo.</string>
<string name="validation_at_most_one_rep_per_day">Puedes tener como máximo una repetición por día</string>
<string name="create_habit">Crear hábito</string>
<string name="edit_habit">Editar hábito</string>
@ -63,24 +63,25 @@
<string name="intro_title_1">Bienvenido</string>
<string name="intro_description_1">Loop Analizador de Hábitos te ayuda a crear y mantener buenos hábitos.</string>
<string name="intro_title_2">Crea algunos hábitos nuevos</string>
<string name="intro_description_2">Cada día, después de realizar tu hábito, pon una marca en la app.</string>
<string name="intro_description_2">Cada día, después de realizar tu hábito, pon una marca en la aplicación.</string>
<string name="intro_title_3">Sigue haciéndolo.</string>
<string name="intro_description_3">Los hábitos realizados consistentemente por un largo tiempo ganarán una estrella completa.</string>
<string name="intro_title_4">Haz un seguimiento de tu progreso</string>
<string name="intro_description_4">Detallados gráficos muestran como han mejorado tus hábitos con el tiempo.</string>
<string name="intro_description_4">Gráficos detallados muestran cómo mejoraron sus hábitos con el tiempo.</string>
<string name="interval_15_minutes">15 minutos</string>
<string name="interval_30_minutes">30 minutos</string>
<string name="interval_1_hour">1 hora</string>
<string name="interval_2_hour">2 horas</string>
<string name="interval_4_hour">4 horas</string>
<string name="interval_8_hour">8 horas</string>
<string name="pref_toggle_title">Marca las repeticiones con una corta pulsación.</string>
<string name="interval_24_hour">24 horas</string>
<string name="pref_toggle_title">Marca las repeticiones con una pulsación corta.</string>
<string name="pref_toggle_description">Más cómodo, pero puede causar marcas accidentales.</string>
<string name="pref_snooze_interval_title">Tiempo de espera al aplazar recordatorios.</string>
<string name="pref_rate_this_app">Valora esta app en Google Play</string>
<string name="pref_rate_this_app">Valora esta aplicación en Google Play</string>
<string name="pref_send_feedback">Enviar sugerencias al desarrollador</string>
<string name="pref_view_source_code">Ver código fuente en GitHub</string>
<string name="pref_view_app_introduction">Ver la introducción de la app</string>
<string name="pref_view_app_introduction">Ver la introducción de la aplicación</string>
<string name="links">Enlaces</string>
<string name="behavior">Comportamiento</string>
<string name="name">Nombre</string>
@ -91,6 +92,7 @@
<string name="hint_landscape">Puedes ver más días al poner tu teléfono en modo horizontal.</string>
<string name="delete_habits">Eliminar Hábitos</string>
<string name="delete_habits_message">Los hábitos serán eliminados permanentemente. Esta acción no se puede deshacer.</string>
<string name="habit_not_found">Hábito eliminado / no encontrado</string>
<string name="weekends">Fines de semana</string>
<string name="any_weekday">Días laborables</string>
<string name="any_day">Cada día</string>
@ -105,6 +107,7 @@
<string name="developers">Desarrolladores</string>
<string name="version_n">Versión %s</string>
<string name="frequency">Frecuencia</string>
<string name="checkmark">Marca de verificación</string>
<string name="strength">Fuerza</string>
<string name="best_streaks">Mejores rachas</string>
<string name="current_streaks">Racha actual</string>
@ -120,8 +123,8 @@
<string name="five_times_per_week">5 veces por semana</string>
<string name="custom_frequency">Personalizado...</string>
<string name="help">Ayuda &amp; FAQ</string>
<string name="could_not_export">Fallo al exportar datos.</string>
<string name="could_not_import">Fallo al importar datos.</string>
<string name="could_not_export">Error al exportar datos.</string>
<string name="could_not_import">Error al importar datos.</string>
<string name="file_not_recognized">Archivo no reconocido.</string>
<string name="habits_imported">Hábitos importados exitosamente.</string>
<string name="full_backup_success">Copia de seguridad exportada exitosamente.</string>
@ -130,8 +133,8 @@
<string name="import_data_summary">Soporta exportar copias de seguridad completas, así como archivos generados por Tickmate, HabitBull o Rewire. Mira el FAQ para más información.</string>
<string name="export_as_csv_summary">Genera archivos que pueden ser abiertos por programas de hojas de cálculo como Microsoft Excel o OpenOffice Calc. Este archivo no puede volver a importarse.</string>
<string name="export_full_backup_summary">Genera un archivo que contiene todos tus datos. Este archivo puede volver a importarse.</string>
<string name="bug_report_failed">Fallo al generar el informe del bug.</string>
<string name="generate_bug_report">Generar informe de bug</string>
<string name="bug_report_failed">Error al generar el reporte de error.</string>
<string name="generate_bug_report">Generar reporte de errores</string>
<string name="troubleshooting">Solución de problemas</string>
<string name="help_translate">Ayuda a traducir esta app</string>
<string name="night_mode">Modo nocturno</string>
@ -145,6 +148,7 @@
<string name="month">Mes</string>
<string name="quarter">Cuatrimestre</string>
<string name="year">Año</string>
<string name="total">Total</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">veces en</string>
<string name="every_x_days">Cada %d días</string>
@ -153,4 +157,22 @@
<string name="score">Puntuación</string>
<string name="reminder_sound">Sonido de recordatorio</string>
<string name="none">Ninguno</string>
<string name="filter">Filtrar</string>
<string name="hide_completed">Ocultar completos</string>
<string name="hide_archived">Ocultar archivados</string>
<string name="sticky_notifications">Hacer notificaciones fijas</string>
<string name="sticky_notifications_description">Evita que las notificaciones sean descartadas.</string>
<string name="repair_database">Reparar base de datos</string>
<string name="database_repaired">Base de datos reparada.</string>
<string name="uncheck">Desmarcar</string>
<string name="toggle">Alternar</string>
<string name="action">Acción</string>
<string name="habit">Hábito</string>
<string name="sort">Ordenar</string>
<string name="manually">Manualmente</string>
<string name="by_name">Por nombre</string>
<string name="by_color">Por color</string>
<string name="by_score">Por puntuación</string>
<string name="download">Descargar</string>
<string name="export">Exportar</string>
</resources>

@ -37,6 +37,7 @@
<string name="toast_habit_archived">Ohiturak artxibatu dira.</string>
<string name="toast_habit_unarchived">Ohiturak ezartxibatu dira.</string>
<string name="overview">Ikuspegi orokorra</string>
<string name="habit_strength">Ohituraren indarra</string>
<string name="history">Historia</string>
<string name="clear">Garbitu</string>
<string name="description_hint">Galdera (... al duzu gaur?)</string>
@ -46,6 +47,7 @@
<string name="reminder">Oroigarria</string>
<string name="discard">Baztertu</string>
<string name="save">Gorde</string>
<string name="streaks">Boladak</string>
<string name="no_habits_found">Ez duzu ohitura aktiborik</string>
<string name="long_press_to_toggle">Sakatu eta mantendu markatu edo desmarkatzeko</string>
<string name="reminder_off">Itzalita</string>
@ -54,12 +56,15 @@
<string name="validation_at_most_one_rep_per_day">Gehienez errepikapen bat eguneko izan dezakezu</string>
<string name="create_habit">Ohitura sortu</string>
<string name="edit_habit">Ohitura editatu</string>
<string name="check">Markatu</string>
<string name="snooze">Beranduago</string>
<!-- App introduction -->
<string name="intro_title_1">Ongi etorri</string>
<string name="intro_description_1">Loop Habit Trackerek ohitura onak hartzen eta mantentzen laguntzen dizu.</string>
<string name="intro_title_2">Sor itzazu ohitura berri batzuk</string>
<string name="intro_description_2">Egunero, zure ohitura egin ostean, jarri ezazu egiaztatze marka bat aplikazioan.</string>
<string name="intro_title_3">Jarrai ezazu ohitura egiten</string>
<string name="intro_description_3">Denbora luzean zehar trinkotasunez egindako ohiturek izar oso bat irabaziko dute.</string>
<string name="intro_title_4">Jarrai ezazu zure aurrerapena</string>
<string name="intro_description_4">Grafiko zehatzen bitartez denboran zehar zure ohiturak nola hobetu diren ikus ditzakezu</string>
<string name="interval_15_minutes">15 minutu</string>
@ -68,6 +73,10 @@
<string name="interval_2_hour">2 ordu</string>
<string name="interval_4_hour">4 ordu</string>
<string name="interval_8_hour">8 ordu</string>
<string name="interval_24_hour">24 ordu</string>
<string name="pref_toggle_title">Ukitze laburrarekin markatu</string>
<string name="pref_toggle_description">Ukitze bakar batekin marka jartzen du ukitu eta mantendu egin beharrean. Erosoagoa, baina nahi gabeko markak ekar litzake.</string>
<string name="pref_snooze_interval_title">Atzeratze tartea gogorarazpenetan</string>
<string name="pref_rate_this_app">Aplikazio hau Google Playen puntuatu</string>
<string name="pref_send_feedback">Zure iritzia garatzaileari bidali</string>
<string name="pref_view_source_code">Iturburu kodea GitHuben ikusi</string>
@ -76,11 +85,13 @@
<string name="behavior">Portaera</string>
<string name="name">Izena</string>
<string name="settings">Ezarpenak</string>
<string name="snooze_interval">Atzeratze tartea</string>
<string name="hint_title">Ba al zenekien?</string>
<string name="hint_drag">Sarrerak berrantolatzeko, sakatu eta mantendu ohituraren izena, ondoren mugi ezazu leku aproposera.</string>
<string name="hint_landscape">Egun gehiago ikus ditzakezu zure gailua paisai moduan jarriz.</string>
<string name="delete_habits">Ohiturak ezabatu</string>
<string name="delete_habits_message">Ohiturak betirako ezabatuko dira. Ekintza hau ezin da desegin.</string>
<string name="habit_not_found">Ohitura ezabatua / ez aurkitua</string>
<string name="weekends">Asteburuak</string>
<string name="any_weekday">Astelehenetik ostiralera</string>
<string name="any_day">Astearen edozen egun</string>
@ -96,6 +107,9 @@
<string name="version_n">%s bertsioa</string>
<string name="frequency">Maiztasuna</string>
<string name="checkmark">Egiaztatze marka</string>
<string name="strength">Indarra</string>
<string name="best_streaks">Bolada onenak</string>
<string name="current_streaks">Uneko bolada</string>
<string name="number_of_repetitions">Errepikapenen kopurua</string>
<string name="last_x_days">Azken %d egunak</string>
<string name="last_x_weeks">Azken %d asteak</string>
@ -115,18 +129,48 @@
<string name="full_backup_success">Babes kopia osoa ondo esportatu da.</string>
<string name="import_data">Datuak inportatu</string>
<string name="export_full_backup">Babes kopia osoa esportatu</string>
<string name="import_data_summary">Aplikazio honek esportatutako babes kopia osoak onartzen dira, baita Tickmate, HabitBull edo Rewirek sortutako fitxategiak ere. Ikusi ohito galderak informazio gehiago lortzeko.</string>
<string name="export_as_csv_summary">Microsoft Excel edo OpenOffice Calc bezalako kalkulu orrietarako softwareak ireki dezaketen fitxategiak sortzen ditu. Fitxategi hau ezin da berriz inportatu.</string>
<string name="export_full_backup_summary">Zure datu guztiak dituen fitxategi bat sortzen du. Fitxategi hau ezin da berriz inportatu.</string>
<string name="bug_report_failed">Huts akats txostena sortzerakoan.</string>
<string name="generate_bug_report">Akats txostena sortu</string>
<string name="troubleshooting">Arazoen konponketa</string>
<string name="help_translate">Lagundu aplikazio hau itzultzen</string>
<string name="night_mode">Gau modua</string>
<string name="use_pure_black">Benetazko beltza erabili gau moduan</string>
<string name="pure_black_description">Atzeko plano grisak beltz hutsez aldatzen ditu gau moduan. Bateriaren erabilera gutxitzen du AMOLED duten gailuetan.</string>
<string name="interface_preferences">Interfazea</string>
<string name="reverse_days">Egunak atzekoz aurrera ordenatu</string>
<string name="reverse_days_description">Pantaila nagusian egunak atzekoz aurrera ikusi</string>
<string name="day">Eguna</string>
<string name="week">Astea</string>
<string name="month">Hilabetea</string>
<string name="quarter">Hiruhilekoa</string>
<string name="year">Urtea</string>
<string name="total">Guztira</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="every_x_days">%d egunero</string>
<string name="every_x_weeks">%d astero</string>
<string name="every_x_months">%d hilabetero</string>
<string name="score">Puntuak</string>
<string name="reminder_sound">Oroigarriaren soinua</string>
<string name="none">Bat ere ez</string>
<string name="filter">Iragazkia</string>
<string name="hide_completed">Lortutakoak ezkutatu</string>
<string name="hide_archived">Artxibatutakoak ezkutatu</string>
<string name="sticky_notifications">Jakinarazpenak itsaskorrak bihurtu</string>
<string name="sticky_notifications_description">Jakinarazpenak keinu batez ezabatzea sahiesten du.</string>
<string name="repair_database">Datu basea konpondu</string>
<string name="database_repaired">Datu basea konpondu da.</string>
<string name="uncheck">Desmarkatu</string>
<string name="toggle">Aldatu</string>
<string name="action">Ekintza</string>
<string name="habit">Ohitura</string>
<string name="sort">Ordenatu</string>
<string name="manually">Eskuz</string>
<string name="by_name">Izenaren arabera</string>
<string name="by_color">Kolorearen arabera</string>
<string name="by_score">Puntuen arabera</string>
<string name="download">Deskargatu</string>
<string name="export">Esportatu</string>
</resources>

@ -28,20 +28,20 @@
<string name="unarchive">Désarchiver</string>
<string name="add_habit">Ajouter une habitude</string>
<string name="color_picker_default_title">Changer la couleur</string>
<string name="toast_habit_created">Habitude créée.</string>
<string name="toast_habit_deleted">Habitude supprimée.</string>
<string name="toast_habit_restored">Habitude rétablie.</string>
<string name="toast_nothing_to_undo">Rien à annuler.</string>
<string name="toast_nothing_to_redo">Rien à refaire.</string>
<string name="toast_habit_changed">Habitude changée.</string>
<string name="toast_habit_changed_back">Habitude restaurée.</string>
<string name="toast_habit_archived">Habitudes archivées.</string>
<string name="toast_habit_unarchived">Habitudes désarchivées.</string>
<string name="toast_habit_created">Habitude créée</string>
<string name="toast_habit_deleted">Habitude supprimée</string>
<string name="toast_habit_restored">Habitude rétablie</string>
<string name="toast_nothing_to_undo">Rien à annuler</string>
<string name="toast_nothing_to_redo">Rien à refaire</string>
<string name="toast_habit_changed">Habitude changée</string>
<string name="toast_habit_changed_back">Habitude restaurée</string>
<string name="toast_habit_archived">Habitudes archivées</string>
<string name="toast_habit_unarchived">Habitudes désarchivées</string>
<string name="overview">Vue d\'ensemble</string>
<string name="habit_strength">Force de l\'habitude</string>
<string name="history">Historique</string>
<string name="clear">Supprimer</string>
<string name="description_hint">Question (As-tu ... aujourd\'hui?)</string>
<string name="description_hint">Question (As-tu ... aujourd\'hui ?)</string>
<string name="repeat">Répéter</string>
<string name="times_every">fois en</string>
<string name="days">jours</string>
@ -51,6 +51,7 @@
<string name="streaks">Séries</string>
<string name="no_habits_found">Vous n\'avez pas d\'habitudes actives</string>
<string name="long_press_to_toggle">Appuyez longtemps pour cocher ou décocher</string>
<string name="reminder_off">Aucun</string>
<string name="validation_name_should_not_be_blank">Le nom ne peut être vide.</string>
<string name="validation_number_should_be_positive">Le nombre doit être positif.</string>
<string name="validation_at_most_one_rep_per_day">Vous pouvez avoir au plus une répétition par jour</string>
@ -67,27 +68,31 @@
<string name="intro_description_3">Les habitudes régulières pendant une période de temps étendue gagneront une étoile complète.</string>
<string name="intro_title_4">Suivez votre progrès</string>
<string name="intro_description_4">Des graphiques détaillés vous montrent comment vos habitudes évoluent au fil du temps.</string>
<string name="interval_15_minutes">15 minutes</string>
<string name="interval_30_minutes">30 minutes</string>
<string name="interval_1_hour">1 heure</string>
<string name="interval_2_hour">2 heures</string>
<string name="interval_4_hour">4 heures</string>
<string name="interval_8_hour">8 heures</string>
<string name="interval_24_hour">24 heures</string>
<string name="pref_toggle_title">Activer les répétitions avec un appui court</string>
<string name="pref_toggle_description">Plus pratique, mais peut causer des activations accidentelles.</string>
<string name="pref_toggle_description">Pointe l\'habitude avec un appui court plutôt qu\'un appuie long. Plus pratique, mais peut causer des activations accidentelles.</string>
<string name="pref_snooze_interval_title">Intervalle de report des rappels</string>
<string name="pref_rate_this_app">Notez cette app sur le Google Play Store</string>
<string name="pref_send_feedback">Envoyez un avis au développeur</string>
<string name="pref_view_source_code">Voir le code source sur GitHub</string>
<string name="pref_view_app_introduction">Voir l\'intro de l\'app</string>
<string name="pref_view_app_introduction">Voir l\'introduction de l\'app</string>
<string name="links">Liens</string>
<string name="behavior">Comportement</string>
<string name="name">Nom</string>
<string name="settings">Paramètres</string>
<string name="snooze_interval">Intervalle de report</string>
<string name="hint_title">Le saviez-vous ?</string>
<string name="hint_drag">Pour réarranger les habitudes, faites un appui long sur le nom de l\'habitude et placez la à la bonne place.</string>
<string name="hint_drag">Pour réordonner les habitudes, faites un appui long sur le nom de l\'habitude et placez-la à la bonne place.</string>
<string name="hint_landscape">Vous pouvez voir plus de jours en mettant votre téléphone en mode paysage.</string>
<string name="delete_habits">Supprimer des habitudes</string>
<string name="delete_habits_message">Les habitudes seront supprimées définitivement. Cette action ne peut être annulée.</string>
<string name="habit_not_found">Habitude supprimée / introuvable</string>
<string name="weekends">Fin de semaine</string>
<string name="any_weekday">Jours de la semaine</string>
<string name="any_day">N\'importe quel jour</string>
@ -100,6 +105,7 @@
<string name="about">À propos</string>
<string name="translators">Traducteurs</string>
<string name="developers">Développeurs</string>
<string name="version_n">Version %s</string>
<string name="frequency">Fréquence</string>
<string name="checkmark">Croix</string>
<string name="strength">Force</string>
@ -132,8 +138,9 @@
<string name="troubleshooting">Résolution de problèmes</string>
<string name="help_translate">Aider à traduire cette application</string>
<string name="night_mode">Mode Nuit</string>
<string name="use_pure_black">Utiliser un noir pure dans le mode nuit.</string>
<string name="pure_black_description">Remplacer le fond gris par un noir pure dans le mode nuit; ça réduit lusage de la batterie d\'un appareil ayant un écran AMOLED.</string>
<string name="use_pure_black">Utiliser un noir pur dans le mode nuit</string>
<string name="pure_black_description">Remplacer le fond gris par un noir pur dans le mode nuit ; ça réduit lusage de la batterie des appareils ayant un écran AMOLED.</string>
<string name="interface_preferences">Interface</string>
<string name="reverse_days">Inverser l\'ordre des jours</string>
<string name="reverse_days_description">Montrer les jours dans l\'ordre inversé sur l\'écran principal</string>
<string name="day">Jour</string>
@ -141,6 +148,7 @@
<string name="month">Mois</string>
<string name="quarter">Trimestre</string>
<string name="year">Année</string>
<string name="total">Total</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">fois tous les</string>
<string name="every_x_days">Tous les %d jours</string>
@ -149,4 +157,22 @@
<string name="score">Pointage</string>
<string name="reminder_sound">Son de rappel</string>
<string name="none">Aucun</string>
<string name="filter">Filtre</string>
<string name="hide_completed">Cacher les habitudes complétées</string>
<string name="hide_archived">Cacher les habitudes archivées</string>
<string name="sticky_notifications">Rendre les notifications persistantes</string>
<string name="sticky_notifications_description">Évite que les notifications ne soient enlevées.</string>
<string name="repair_database">Réparer le base de données</string>
<string name="database_repaired">Base de données réparée.</string>
<string name="uncheck">Décocher</string>
<string name="toggle">Basculer</string>
<string name="action">Action</string>
<string name="habit">Habitude</string>
<string name="sort">Trier</string>
<string name="manually">Manuellement</string>
<string name="by_name">Par nom</string>
<string name="by_color">Par couleur</string>
<string name="by_score">Par score</string>
<string name="download">Télécharger</string>
<string name="export">Exporter</string>
</resources>

@ -91,6 +91,7 @@
<string name="interval_2_hour">2 घंटा</string>
<string name="interval_4_hour">4 घंटा</string>
<string name="interval_8_hour">8 घंटा</string>
<string name="interval_24_hour">24 घंटे</string>
<string name="pref_toggle_title">टॉगल पुनरावृत्ति हल्का दबाने से</string>
<string name="pref_toggle_description">\"
अधिक सुविधाजनक है, लेकिन आकस्मिक टॉगल हो सकता है ।\"</string>
@ -179,7 +180,7 @@ repetitions की संख्या\"</string>
इस फ़ाइल में वापस आयात नहीं किया जा सकता है।\"</string>
<string name="export_full_backup_summary">ऐसी फाइल्स उत्पन्न करता है जिसमे आपका सारा डेटा रहता है इस फ़ाइल को वापस आयात किया जा सकता है।</string>
<string name="bug_report_failed">बग रिपोर्ट जनरेट करने मे असफल</string>
<string name="generate_bug_report">बग रिपोर्ट जनरेट करने मे सफल</string>
<string name="generate_bug_report">बग रिपोर्ट जनरेट करें</string>
<string name="troubleshooting">\"
समस्या निवारण\"</string>
<string name="help_translate">\"
@ -198,15 +199,26 @@ repetitions की संख्या\"</string>
<string name="quarter">तिमाही</string>
<string name="year">साल</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">समय शुरू</string>
<string name="time_every">समय में</string>
<string name="every_x_days">\"
हर %d दिन\"</string>
<string name="every_x_weeks">\"
हर %d हफ्ते\"</string>
<string name="every_x_months">\"
हर %d साल\"</string>
हर %d महीने\"</string>
<string name="score">स्कोर</string>
<string name="reminder_sound">अनुस्मारक ध्वनि</string>
<string name="none">\"
कोई आवाज नहीं\"</string>
<string name="filter">फिल्टर</string>
<string name="repair_database">डेटाबेस को रिपेयर करें</string>
<string name="database_repaired">डेटाबेस रिपेयर सफल</string>
<string name="habit">आदत</string>
<string name="sort">सॉर्ट करें</string>
<string name="manually">मैन्यूअली</string>
<string name="by_name">नाम द्वारा</string>
<string name="by_color">रंग द्वारा</string>
<string name="by_score">स्कोर से</string>
<string name="download">डाउनलोड</string>
<string name="export">एक्सपोर्ट करे</string>
</resources>

@ -78,9 +78,9 @@
<string name="pref_toggle_title">Označi ponavljanja sa kratkim pritisk.</string>
<string name="pref_toggle_description">Zgodnije je, no može uzrokovati slučajna označavanja.</string>
<string name="pref_snooze_interval_title">Interval odgađanja na podsjetnicima</string>
<string name="pref_rate_this_app">Ocijenite ovu aplikaciju na Google Playu</string>
<string name="pref_send_feedback">Pošaljite povratne informacije raz. programeru</string>
<string name="pref_view_source_code">Pogledajte izvorni kod na GitHubu</string>
<string name="pref_rate_this_app">Ocijeni ovu aplikaciju na Google Playu</string>
<string name="pref_send_feedback">Pošalji povratne informacije raz. programeru</string>
<string name="pref_view_source_code">Pogledaj izvorni kod na GitHubu</string>
<string name="pref_view_app_introduction">Prikaži uvod u aplikaciju</string>
<string name="links">Poveznice</string>
<string name="behavior">Ponašanje</string>
@ -136,13 +136,13 @@
<string name="bug_report_failed">Generiranje izvješća o pogrešci nije uspjelo.</string>
<string name="generate_bug_report">Generiraj izvješće o pogreški</string>
<string name="troubleshooting">Rješavanje problema</string>
<string name="help_translate">Pomozite prevesti ovu aplikaciju</string>
<string name="help_translate">Pomozi prevesti ovu aplikaciju</string>
<string name="night_mode">Noćni način</string>
<string name="use_pure_black">Koristi crnu boju za noćni način</string>
<string name="pure_black_description">Zamjenjuje sivu pozadinu sa crnom u noćnom načinu. To smanjuje potrošnju bateriju na uređajima s AMOLED zaslonima.</string>
<string name="interface_preferences">Sučelje</string>
<string name="reverse_days">Obrnuti poredak dana</string>
<string name="reverse_days_description">Prikaži dane obrnutim redom na glavnom zaslonu</string>
<string name="reverse_days_description">Prikažite dane obrnutim redom na glavnom zaslonu</string>
<string name="day">Dan</string>
<string name="week">Tjedan</string>
<string name="month">Mjesec</string>

@ -19,7 +19,8 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="main_activity_title">Habits</string>
<string name="app_name">Loop Szokásrögzítő</string>
<string name="main_activity_title">Szokások</string>
<string name="action_settings">Beállítások</string>
<string name="edit">Szerkesztés</string>
<string name="delete">Törlés</string>
@ -31,7 +32,7 @@
<string name="toast_habit_deleted">Szokás törölve</string>
<string name="toast_habit_restored">Szokás visszaállítva</string>
<string name="toast_nothing_to_undo">Nincs mit visszavonni</string>
<string name="toast_nothing_to_redo">\"Mégis\" nem lehetséges</string>
<string name="toast_nothing_to_redo">Nincs mit újraalkalmazni</string>
<string name="toast_habit_changed">Szokás módosítva</string>
<string name="toast_habit_changed_back">Szokás visszaállítva</string>
<string name="toast_habit_archived">Szokás archiválva</string>

@ -19,6 +19,7 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="app_name">Loop Habit Tracker</string>
<string name="main_activity_title">Kebiasaan</string>
<string name="action_settings">Pengaturan</string>
<string name="edit">Ubah</string>
@ -73,6 +74,7 @@
<string name="interval_2_hour">2 jam</string>
<string name="interval_4_hour">4 jam</string>
<string name="interval_8_hour">8 jam</string>
<string name="interval_24_hour">24 jam</string>
<string name="pref_toggle_title">Tandai dengan cepat.</string>
<string name="pref_toggle_description">Lebih nyaman namun memungkinkan kesalahan.</string>
<string name="pref_snooze_interval_title">Durasi tunda sejenak pada pengingat</string>

@ -19,6 +19,160 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="app_name">Loop Habit Tracker</string>
<string name="main_activity_title">הרגלים</string>
<string name="action_settings">הגדרות</string>
<string name="edit">עריכה</string>
<string name="delete">מחיקה</string>
<string name="archive">ארכיון</string>
<string name="unarchive">הוצא מארכיון</string>
<string name="add_habit">הרגל חדש</string>
<string name="color_picker_default_title">שינוי צבע</string>
<string name="toast_habit_created">הרגל נוצר</string>
<string name="toast_habit_deleted">הרגלים נמחקו</string>
<string name="toast_habit_restored">הרגלים שוחזרו</string>
<string name="toast_nothing_to_undo">אין מה לבטל</string>
<string name="toast_nothing_to_redo">אין מה לבצע שוב</string>
<string name="toast_habit_changed">הרגל השתנה</string>
<string name="toast_habit_changed_back">הרגל השתנה בחזרה</string>
<string name="toast_habit_archived">הרגלים הועברו לארכיון</string>
<string name="toast_habit_unarchived">הרגלים הוצאו מארכיון</string>
<string name="overview">מבט על</string>
<string name="habit_strength">חוזק ההרגל</string>
<string name="history">היסטוריה</string>
<string name="clear">נקה</string>
<string name="description_hint">שאלה (האם ... היום?)</string>
<string name="repeat">חזור</string>
<string name="times_every">פעמים ב-</string>
<string name="days">ימים</string>
<string name="reminder">תזכורת</string>
<string name="discard">ביטול</string>
<string name="save">שמירה</string>
<string name="streaks">רצפים</string>
<string name="no_habits_found">אין לך הרגלים פעילים</string>
<string name="long_press_to_toggle">לחץ והחזק לסימון או ביטול הסימון</string>
<string name="reminder_off">כבוי</string>
<string name="validation_name_should_not_be_blank">השם אינו יכול להישאר ריק.</string>
<string name="validation_number_should_be_positive">מספר חייב להיות חיובי.</string>
<string name="validation_at_most_one_rep_per_day">לא ניתן להגדיר יותר מחזרה אחת ביום</string>
<string name="create_habit">צור הרגל</string>
<string name="edit_habit">ערוך הרגל</string>
<string name="check">בוצע</string>
<string name="snooze">מאוחר יותר</string>
<!-- App introduction -->
<string name="intro_title_1">ברוכים הבאים</string>
<string name="intro_description_1">Loop Habit Tracker מסייע ליצור ולשמר הרגלים טובים.</string>
<string name="intro_title_2">צרו הרגלים חדשים</string>
<string name="intro_description_2">כל יום, אחרי ביצוע ההרגל סמנו זאת באפליקציה.</string>
<string name="intro_title_3">המשיכו לעשות זאת</string>
<string name="intro_description_3">הרגלים שיבוצעו בעקביות לאורך זמן רב יזכו בכוכב מלא.</string>
<string name="intro_title_4">מעקב התקדמות</string>
<string name="intro_description_4">גרפים מפורטים מציגים כיצד ההרגלים שלך משתפרים לאורך זמן.</string>
<string name="interval_15_minutes">15 דקות</string>
<string name="interval_30_minutes">30 דקות</string>
<string name="interval_1_hour">1 שעה</string>
<string name="interval_2_hour">2 שעות</string>
<string name="interval_4_hour">4 שעות</string>
<string name="interval_8_hour">8 שעות</string>
<string name="interval_24_hour">24 שעות</string>
<string name="pref_toggle_title">החלפה להפעלה עם לחיצה קצרה</string>
<string name="pref_toggle_description">סמנו יעדים בהקשה קצרה במקום לחיצה ממושכת. נוח יותר, אך יכול להוביל ללחיצות לא מכוונות.</string>
<string name="pref_snooze_interval_title">מרווח נדנוד לתזכורות</string>
<string name="pref_rate_this_app">דרג/י אותנו ב- Google Play</string>
<string name="pref_send_feedback">שליחת משוב למפתחים</string>
<string name="pref_view_source_code">צפייה בקוד המקור ב-GitHub</string>
<string name="pref_view_app_introduction">צפייה בפרטים אודות האפליקציה</string>
<string name="links">קישורים</string>
<string name="behavior">התנהגות</string>
<string name="name">שם</string>
<string name="settings">הגדרות</string>
<string name="snooze_interval">זמן בין נדנודים</string>
<string name="hint_title">הידעת?</string>
<string name="hint_drag">לשינוי סדר הההרגלים, לחצו לחיצה ארוכה על ההרגל וגררו אותו למקום הרצוי.</string>
<string name="hint_landscape">ניתן לראות ימים נוספים ע\"י סיבוב המסך לתצוגה רוחבית.</string>
<string name="delete_habits">מחיקת הרגלים</string>
<string name="delete_habits_message">ההרגלים יימחקו לצמיתות. פעולה זו אינה ניתנת לביטול.</string>
<string name="habit_not_found">הרגל נמחק / לא נמצא</string>
<string name="weekends">סופי שבוע</string>
<string name="any_weekday">ימי חול</string>
<string name="any_day">כל יום בשבוע</string>
<string name="select_weekdays">בחירת ימים</string>
<string name="export_to_csv">ייצוא כקובץ CSV</string>
<string name="done_label">בוצע</string>
<string name="clear_label">נקה</string>
<string name="select_hours">בחר שעות</string>
<string name="select_minutes">בחר דקות</string>
<string name="about">אודות</string>
<string name="translators">מתרגמים</string>
<string name="developers">מפתחים</string>
<string name="version_n">גרסה %s</string>
<string name="frequency">תדירות</string>
<string name="checkmark">סימן</string>
<string name="strength">חוזק</string>
<string name="best_streaks">רצף שיא</string>
<string name="current_streaks">רצף נוכחי</string>
<string name="number_of_repetitions">מספר חזרות</string>
<string name="last_x_days">%d הימים האחרונים</string>
<string name="last_x_weeks">%d השבועות האחרונים</string>
<string name="last_x_months">%d החודשים האחרונים</string>
<string name="last_x_years">%d השנים האחרונות</string>
<string name="all_time">בכל הזמנים</string>
<string name="every_day">כל יום</string>
<string name="every_week">כל שבוע</string>
<string name="two_times_per_week">פעמיים בשבוע</string>
<string name="five_times_per_week">5 פעמים בשבוע</string>
<string name="custom_frequency">מותאם אישית&#8230;</string>
<string name="help">עזרה ושאלות נפוצות</string>
<string name="could_not_export">ייצוא נתונים נכשל.</string>
<string name="could_not_import">ייבוא נתונים נכשל.</string>
<string name="file_not_recognized">קובץ לא מזוהה.</string>
<string name="habits_imported">הרגלים יובאו בהצלחה.</string>
<string name="full_backup_success">גיבוי מלא יוצאה בהצלחה.</string>
<string name="import_data">ייבוא נתונים</string>
<string name="export_full_backup">ייצוא גיבוי מלא</string>
<string name="import_data_summary">תומך בכל הגיבויים שיוצאו ע\"י האפליקציה. כמו גם קבצים שנוצרו ע\"י Tickmate, HabitBull או Rewire. לפרטים נוספים ראו שאלות נפוצות.</string>
<string name="export_as_csv_summary">יוצר קבצים שניתן לפתוח על-ידי תוכנות גיליון אלקטרוני כגון Microsoft Excel או OpenOffice. אין אפשרות לייבא את הקובץ בחזרה.</string>
<string name="export_full_backup_summary">יוצר קובץ המכיל את כל הנתונים שלך. קובץ זה ניתן לייבא בחזרה.</string>
<string name="bug_report_failed">הפקת דוח שגיאות נכשלה.</string>
<string name="generate_bug_report">הפקת דוח שגיאות</string>
<string name="troubleshooting">פתרון תקלות</string>
<string name="help_translate">עזרו לנו לתרגם את האפליקציה</string>
<string name="night_mode">מצב לילה</string>
<string name="use_pure_black">רקע שחור למצב לילה</string>
<string name="pure_black_description">החלפת הרקע האפור במצב לילה לשחור מוחלט. מפחית בזבוז סוללה במכשירים עם תצוגת AMOLED.</string>
<string name="interface_preferences">ממשק</string>
<string name="reverse_days">הפיכת סדר הימים</string>
<string name="reverse_days_description">מציג ימים בסדר הפוך במסך הראשי</string>
<string name="day">יום</string>
<string name="week">שבוע</string>
<string name="month">חודש</string>
<string name="quarter">רבעון</string>
<string name="year">שנה</string>
<string name="total">סה\"כ</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">פעמים ב-</string>
<string name="every_x_days">כל %d ימים</string>
<string name="every_x_weeks">כל %d שבועות</string>
<string name="every_x_months">כל %d חודשים</string>
<string name="score">ציון</string>
<string name="reminder_sound">צליל תזכורת</string>
<string name="none">ללא</string>
<string name="filter">סינון</string>
<string name="hide_completed">הסתר יעדים שהושלמו</string>
<string name="hide_archived">הסתר ארכיון</string>
<string name="sticky_notifications">צור תזכורות \"דביקות\"</string>
<string name="sticky_notifications_description">מונע החלקת וביטול תזכורות.</string>
<string name="repair_database">תיקון מסד נתונים</string>
<string name="database_repaired">מאגר נתונים תוקן.</string>
<string name="uncheck">ביטול סימון</string>
<string name="toggle">הפעלה \ כיבוי</string>
<string name="action">פעולה</string>
<string name="habit">הרגל</string>
<string name="sort">מיון</string>
<string name="manually">באופן ידני</string>
<string name="by_name">לפי שם</string>
<string name="by_color">לפי צבע</string>
<string name="by_score">לפי ציון</string>
<string name="download">הורדה</string>
<string name="export">ייצוא</string>
</resources>

@ -19,6 +19,7 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<resources>
<string name="app_name">Loop Gewoonte tracker</string>
<string name="main_activity_title">Gewoontes</string>
<string name="action_settings">Instellingen</string>
<string name="edit">Wijzig</string>
@ -58,6 +59,7 @@
<string name="create_habit">Maak gewoonte aan</string>
<string name="edit_habit">Wijzig gewoonte</string>
<string name="check">Voltooid</string>
<string name="snooze">Later</string>
<!-- App introduction -->
<string name="intro_title_1">Welkom</string>
<string name="intro_description_1">Loop Habit Tracker helpt je om goede gewoontes te creëren en te onderhouden.</string>
@ -73,6 +75,7 @@
<string name="interval_2_hour">2 uur</string>
<string name="interval_4_hour">4 uur</string>
<string name="interval_8_hour">8 uur</string>
<string name="interval_24_hour">24 uur</string>
<string name="pref_toggle_title">Wijzig herhalingen door kort indrukken</string>
<string name="pref_toggle_description">Handiger, maar kan onbedoelde wijzigingen veroorzaken.</string>
<string name="pref_snooze_interval_title">Snooze interval voor herinneringen</string>
@ -80,14 +83,17 @@
<string name="pref_send_feedback">Stuur feedback aan de ontwikkelaar</string>
<string name="pref_view_source_code">Bekijk de broncode op GitHub</string>
<string name="pref_view_app_introduction">Bekijk de app introductie</string>
<string name="links">Links</string>
<string name="behavior">Gedrag</string>
<string name="name">Naam</string>
<string name="settings">Instellingen</string>
<string name="snooze_interval">Later interval</string>
<string name="hint_title">Wist je dat?</string>
<string name="hint_drag">Om de rijen te ordenen houdt de gewoonte ingedrukt en sleep het naar de gewenste plek.</string>
<string name="hint_landscape">Je kunt meer dagen zien door de telefoon in landschapmodus te zetten.</string>
<string name="delete_habits">Verwijder gewoontes</string>
<string name="delete_habits_message">De gewoontes zullen permanent verwijderd worden. Deze actie kan niet ongedaan gemaakt worden.</string>
<string name="habit_not_found">Gewoonte verwijderd / niet gevonden</string>
<string name="weekends">In het weekend</string>
<string name="any_weekday">Maandag tot vrijdag</string>
<string name="any_day">Elke dag van de week</string>
@ -139,14 +145,35 @@
<string name="reverse_days">Omgekeerde volgorde van dagen</string>
<string name="reverse_days_description">Toon dagen in omgekeerde volgorde op het hoofdscherm</string>
<string name="day">Dag</string>
<string name="week">Week</string>
<string name="month">Maand</string>
<string name="quarter">Kwartaal</string>
<string name="year">Jaar</string>
<string name="total">Totaal</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">keer per</string>
<string name="every_x_days">Iedere %d dagen</string>
<string name="every_x_weeks">Iedere %d weken</string>
<string name="every_x_months">Iedere %d maanden</string>
<string name="score">Score</string>
<string name="reminder_sound">Herinneringsgeluid</string>
<string name="none">Stil</string>
<string name="filter">Filteren</string>
<string name="hide_completed">Verberg voltooide</string>
<string name="hide_archived">Verberg gearchiveerde</string>
<string name="sticky_notifications">Maak meldingen persistent</string>
<string name="sticky_notifications_description">Voorkom dat meldingen weggehaald kunnen worden.</string>
<string name="repair_database">Database repareren</string>
<string name="database_repaired">Database gerepareerd.</string>
<string name="uncheck">Deselecteren</string>
<string name="toggle">Omkeren</string>
<string name="action">Actie</string>
<string name="habit">Gewoonte</string>
<string name="sort">Sorteren</string>
<string name="manually">Handmatig</string>
<string name="by_name">Bij naam</string>
<string name="by_color">Bij kleur</string>
<string name="by_score">Bij score</string>
<string name="download">Downloaden</string>
<string name="export">Exporteren</string>
</resources>

@ -256,4 +256,8 @@
<style name="TimePickerDialog" parent="@style/Theme.AppCompat.Light.Dialog">
<item name="windowNoTitle">true</item>
</style>
<style name="DialogWithTitle" parent="@style/Theme.AppCompat.Light.Dialog">
<item name="windowNoTitle">false</item>
</style>
</resources>

Loading…
Cancel
Save