Merge branch 'release/1.7.0'

pull/273/head v1.7.0
Alinson S. Xavier 9 years ago
commit 692fe3218f

1
.gitignore vendored

@ -20,3 +20,4 @@ captures/
docs/
gen/
local.properties
crowdin.yaml

@ -1,5 +1,21 @@
# Changelog
### 1.7.0 (Mar 31, 2017)
* Sort habits automatically
* Allow swiping the header to see previous days
* Import backups directly from Google Drive or Dropbox
* Refresh data automatically at midnight
* Other minor bug fixes and enhancements
### 1.6.2 (Oct 13, 2016)
* Fix crash on Android 4.1
### 1.6.1 (Oct 10, 2016)
* Fix a crash at startup when database is corrupted
### 1.6.0 (Oct 10, 2016)
* Add option to make notifications sticky

@ -4,13 +4,13 @@ apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'jacoco'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "org.isoron.uhabits"
minSdkVersion 15
targetSdkVersion 23
targetSdkVersion 25
buildConfigField "Integer", "databaseVersion", "15"
buildConfigField "String", "databaseFilename", "\"uhabits.db\""
@ -53,7 +53,7 @@ dependencies {
androidTestApt 'com.google.dagger:dagger-compiler:2.2'
androidTestCompile 'com.android.support:support-annotations:23.3.0'
androidTestCompile 'com.android.support:support-annotations:25.3.0'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.google.auto.factory:auto-factory:1.0-beta3'
@ -64,10 +64,10 @@ dependencies {
apt 'com.google.dagger:dagger-compiler:2.2'
apt 'com.jakewharton:butterknife-compiler:8.0.1'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:preference-v14:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support:design:25.3.0'
compile 'com.android.support:preference-v14:25.3.0'
compile 'com.android.support:support-v4:25.3.0'
compile 'com.getpebble:pebblekit:3.0.0'
compile 'com.github.paolorotolo:appintro:3.4.0'
compile 'com.google.auto.factory:auto-factory:1.0-beta3'

@ -63,6 +63,8 @@ public class BaseAndroidTest
protected AndroidTestComponent component;
protected ModelFactory modelFactory;
@Before
public void setUp()
{
@ -89,7 +91,7 @@ public class BaseAndroidTest
taskRunner = component.getTaskRunner();
logger = component.getHabitsLogger();
ModelFactory modelFactory = component.getModelFactory();
modelFactory = component.getModelFactory();
fixtures = new HabitFixtures(modelFactory, habitList);
latch = new CountDownLatch(1);

@ -225,7 +225,7 @@ public class BaseViewTest extends BaseAndroidTest
throws IOException
{
File dir = FileUtils.getSDCardDir("test-screenshots");
if (dir == null) dir = FileUtils.getFilesDir("test-screenshots");
if (dir == null) dir = FileUtils.getFilesDir(targetContext,"test-screenshots");
if (dir == null) throw new RuntimeException(
"Could not find suitable dir for screenshots");

@ -39,12 +39,18 @@ public class HabitFixtures
}
public Habit createEmptyHabit()
{
return createEmptyHabit(null);
}
public Habit createEmptyHabit(Long id)
{
Habit habit = modelFactory.buildHabit();
habit.setName("Meditate");
habit.setDescription("Did you meditate this morning?");
habit.setColor(3);
habit.setFrequency(Frequency.DAILY);
habit.setId(id);
habitList.add(habit);
return habit;
}

@ -60,6 +60,7 @@ public class CheckmarkPanelViewTest extends BaseViewTest
view = new CheckmarkPanelView(targetContext);
view.setHabit(habit);
view.setCheckmarkValues(checkmarks);
view.setButtonCount(4);
view.setColor(ColorUtils.getAndroidTestColor(7));
measureView(view, dpToPixels(200), dpToPixels(200));

@ -40,8 +40,6 @@ import static org.junit.Assert.*;
@MediumTest
public class ImportTest extends BaseAndroidTest
{
private File baseDir;
private Context context;
@Override
@ -50,11 +48,8 @@ public class ImportTest extends BaseAndroidTest
{
super.setUp();
DateUtils.setFixedLocalTime(null);
fixtures.purgeHabits(habitList);
context = InstrumentationRegistry.getInstrumentation().getContext();
baseDir = FileUtils.getFilesDir("Backups");
if (baseDir == null) fail("baseDir should not be null");
}
@Test
@ -149,8 +144,7 @@ public class ImportTest extends BaseAndroidTest
private void importFromFile(String assetFilename) throws IOException
{
File file =
new File(String.format("%s/%s", baseDir.getPath(), assetFilename));
File file = File.createTempFile("asset", "");
copyAssetToFile(assetFilename, file);
assertTrue(file.exists());
assertTrue(file.canRead());
@ -159,5 +153,7 @@ public class ImportTest extends BaseAndroidTest
assertThat(importer.canHandle(file), is(true));
importer.importHabitsFromFile(file);
file.delete();
}
}

@ -0,0 +1,240 @@
/*
* 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;
import android.support.test.runner.*;
import android.test.suitebuilder.annotation.*;
import org.hamcrest.*;
import org.isoron.uhabits.*;
import org.junit.*;
import org.junit.runner.*;
import java.io.*;
import java.util.*;
import static junit.framework.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.isoron.uhabits.models.HabitList.Order.*;
@SuppressWarnings("JavaDoc")
@RunWith(AndroidJUnit4.class)
@MediumTest
public class HabitListTest extends BaseAndroidTest
{
private ArrayList<Habit> habitsArray;
private HabitList activeHabits;
private HabitList reminderHabits;
@Override
public void setUp()
{
super.setUp();
habitList.removeAll();
habitsArray = new ArrayList<>();
for (int i = 0; i < 10; i++)
{
Habit habit = fixtures.createEmptyHabit((long) i);
habitsArray.add(habit);
if (i % 3 == 0)
habit.setReminder(new Reminder(8, 30, WeekdayList.EVERY_DAY));
habitList.update(habit);
}
habitsArray.get(0).setArchived(true);
habitsArray.get(1).setArchived(true);
habitsArray.get(4).setArchived(true);
habitsArray.get(7).setArchived(true);
activeHabits = habitList.getFiltered(new HabitMatcherBuilder().build());
reminderHabits = habitList.getFiltered(new HabitMatcherBuilder()
.setArchivedAllowed(true)
.setReminderRequired(true)
.build());
}
@Test
public void test_size()
{
assertThat(habitList.size(), equalTo(10));
}
@Test
public void test_countActive()
{
assertThat(activeHabits.size(), equalTo(6));
}
@Test
public void test_getByPosition()
{
assertThat(habitList.getByPosition(0), equalTo(habitsArray.get(0)));
assertThat(habitList.getByPosition(3), equalTo(habitsArray.get(3)));
assertThat(habitList.getByPosition(9), equalTo(habitsArray.get(9)));
assertThat(activeHabits.getByPosition(0), equalTo(habitsArray.get(2)));
}
@Test
public void test_getHabitsWithReminder()
{
assertThat(reminderHabits.size(), equalTo(4));
assertThat(reminderHabits.getByPosition(1),
equalTo(habitsArray.get(3)));
}
@Test
public void test_get_withInvalidId()
{
assertThat(habitList.getById(100L), is(nullValue()));
}
@Test
public void test_get_withValidId()
{
Habit habit1 = habitsArray.get(0);
Habit habit2 = habitList.getById(habit1.getId());
assertThat(habit1, equalTo(habit2));
}
@Test
public void test_reorder()
{
int operations[][] = {
{ 5, 2 }, { 3, 7 }, { 4, 4 }, { 3, 2 }
};
int expectedPosition[][] = {
{ 0, 1, 3, 4, 5, 2, 6, 7, 8, 9 },
{ 0, 1, 7, 3, 4, 2, 5, 6, 8, 9 },
{ 0, 1, 7, 3, 4, 2, 5, 6, 8, 9 },
{ 0, 1, 7, 2, 4, 3, 5, 6, 8, 9 },
};
for (int i = 0; i < operations.length; i++)
{
int from = operations[i][0];
int to = operations[i][1];
Habit fromHabit = habitList.getByPosition(from);
Habit toHabit = habitList.getByPosition(to);
habitList.reorder(fromHabit, toHabit);
int actualPositions[] = new int[10];
for (int j = 0; j < 10; j++)
{
Habit h = habitList.getById(j);
assertNotNull(h);
actualPositions[j] = habitList.indexOf(h);
}
assertThat(actualPositions, equalTo(expectedPosition[i]));
}
}
@Test
public void test_writeCSV() throws IOException
{
habitList.removeAll();
Habit h1 = fixtures.createEmptyHabit();
h1.setName("Meditate");
h1.setDescription("Did you meditate this morning?");
h1.setFrequency(Frequency.DAILY);
h1.setColor(3);
Habit h2 = fixtures.createEmptyHabit();
h2.setName("Wake up early");
h2.setDescription("Did you wake up before 6am?");
h2.setFrequency(new Frequency(2, 3));
h2.setColor(5);
habitList.update(h1);
habitList.update(h2);
String expectedCSV =
"Position,Name,Description,NumRepetitions,Interval,Color\n" +
"001,Meditate,Did you meditate this morning?,1,1,#AFB42B\n" +
"002,Wake up early,Did you wake up before 6am?,2,3,#00897B\n";
StringWriter writer = new StringWriter();
habitList.writeCSV(writer);
MatcherAssert.assertThat(writer.toString(), equalTo(expectedCSV));
}
@Test
public void test_ordering()
{
habitList.removeAll();
Habit h3 = fixtures.createEmptyHabit();
h3.setName("C Habit");
h3.setColor(0);
habitList.update(h3);
Habit h1 = fixtures.createEmptyHabit();
h1.setName("A Habit");
h1.setColor(2);
habitList.update(h1);
Habit h4 = fixtures.createEmptyHabit();
h4.setName("D Habit");
h4.setColor(1);
habitList.update(h4);
Habit h2 = fixtures.createEmptyHabit();
h2.setName("B Habit");
h2.setColor(2);
habitList.update(h2);
habitList.setOrder(BY_POSITION);
assertThat(habitList.getByPosition(0), equalTo(h3));
assertThat(habitList.getByPosition(1), equalTo(h1));
assertThat(habitList.getByPosition(2), equalTo(h4));
assertThat(habitList.getByPosition(3), equalTo(h2));
habitList.setOrder(BY_NAME);
assertThat(habitList.getByPosition(0), equalTo(h1));
assertThat(habitList.getByPosition(1), equalTo(h2));
assertThat(habitList.getByPosition(2), equalTo(h3));
assertThat(habitList.getByPosition(3), equalTo(h4));
habitList.remove(h1);
habitList.add(h1);
assertThat(habitList.getByPosition(0), equalTo(h1));
habitList.setOrder(BY_COLOR);
assertThat(habitList.getByPosition(0), equalTo(h3));
assertThat(habitList.getByPosition(1), equalTo(h4));
assertThat(habitList.getByPosition(2), equalTo(h1));
assertThat(habitList.getByPosition(3), equalTo(h2));
}
}

@ -125,17 +125,6 @@ public class SQLiteHabitListTest extends BaseAndroidTest
assertThat(habits.get(3).getName(), equalTo("habit 3"));
}
// @Test
// public void testGetAll_withoutArchived()
// {
// List<Habit> habits = habitList.toList();
// assertThat(habits.size(), equalTo(5));
// assertThat(habits.get(3).getName(), equalTo("habit 7"));
//
// List<Habit> another = habitList.toList();
// assertThat(habits, equalTo(another));
// }
@Test
public void testGetById()
{
@ -178,45 +167,6 @@ public class SQLiteHabitListTest extends BaseAndroidTest
assertThat(habitList.indexOf(h2), equalTo(-1));
}
@Test
public void test_reorder()
{
// Same as HabitListTest.java
// TODO: remove duplication
int operations[][] = {
{5, 2}, {3, 7}, {4, 4}, {3, 2}
};
int expectedPosition[][] = {
{0, 1, 3, 4, 5, 2, 6, 7, 8, 9},
{0, 1, 7, 3, 4, 2, 5, 6, 8, 9},
{0, 1, 7, 3, 4, 2, 5, 6, 8, 9},
{0, 1, 7, 2, 4, 3, 5, 6, 8, 9},
};
for (int i = 0; i < operations.length; i++)
{
int from = operations[i][0];
int to = operations[i][1];
Habit fromHabit = habitList.getByPosition(from);
Habit toHabit = habitList.getByPosition(to);
habitList.reorder(fromHabit, toHabit);
int actualPositions[] = new int[10];
for (int j = 0; j < 10; j++)
{
Habit h = habitList.getById(j);
assertNotNull(h);
actualPositions[j] = habitList.indexOf(h);
}
assertThat(actualPositions, equalTo(expectedPosition[i]));
}
}
private HabitRecord getRecord(long id)
{
return new Select()

@ -56,7 +56,7 @@ public class ExportCSVTaskTest extends BaseAndroidTest
for (Habit h : habitList) selected.add(h);
taskRunner.execute(
new ExportCSVTask(habitList, selected, archiveFilename -> {
new ExportCSVTask(targetContext,habitList, selected, archiveFilename -> {
assertThat(archiveFilename, is(not(nullValue())));
File f = new File(archiveFilename);
assertTrue(f.exists());

@ -46,7 +46,7 @@ public class ExportDBTaskTest extends BaseAndroidTest
@Test
public void testExportCSV() throws Throwable
{
ExportDBTask task = new ExportDBTask(filename -> {
ExportDBTask task = new ExportDBTask(targetContext, filename -> {
assertThat(filename, is(not(nullValue())));
File f = new File(filename);

@ -21,8 +21,8 @@
<manifest
package="org.isoron.uhabits"
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="25"
android:versionName="1.6.2">
android:versionCode="27"
android:versionName="1.7.0">
<uses-permission android:name="android.permission.VIBRATE"/>
@ -223,5 +223,15 @@
</intent-filter>
</receiver>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="org.isoron.uhabits"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
</application>
</manifest>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

@ -38,7 +38,7 @@ import java.io.*;
*/
public class HabitsApplication extends Application
{
private static Context context;
private Context context;
private static AppComponent component;
@ -58,26 +58,14 @@ public class HabitsApplication extends Application
HabitsApplication.component = component;
}
@NonNull
@Deprecated
public static Context getContext()
{
if (context == null) throw new RuntimeException("context is null");
return context;
}
public static boolean isTestMode()
{
try
{
if (context != null)
{
String testClass = "org.isoron.uhabits.BaseAndroidTest";
context.getClassLoader().loadClass(testClass);
}
Class.forName ("org.isoron.uhabits.BaseAndroidTest");
return true;
}
catch (final Exception e)
catch (final ClassNotFoundException e)
{
return false;
}
@ -87,7 +75,7 @@ public class HabitsApplication extends Application
public void onCreate()
{
super.onCreate();
HabitsApplication.context = this;
context = this;
component = DaggerAppComponent
.builder()
@ -96,11 +84,11 @@ public class HabitsApplication extends Application
if (isTestMode())
{
File db = DatabaseUtils.getDatabaseFile();
File db = DatabaseUtils.getDatabaseFile(context);
if (db.exists()) db.delete();
}
DatabaseUtils.initializeActiveAndroid();
DatabaseUtils.initializeActiveAndroid(context);
widgetUpdater = component.getWidgetUpdater();
widgetUpdater.startListening();
@ -125,7 +113,7 @@ public class HabitsApplication extends Application
@Override
public void onTerminate()
{
HabitsApplication.context = null;
context = null;
ActiveAndroid.dispose();
reminderScheduler.stopListening();

@ -40,6 +40,7 @@ import java.io.*;
import static android.os.Build.VERSION.*;
import static android.os.Build.VERSION_CODES.*;
import static android.support.v4.content.FileProvider.*;
/**
* Base class for all screens in the application.
@ -50,6 +51,8 @@ import static android.os.Build.VERSION_CODES.*;
*/
public class BaseScreen
{
public static final int REQUEST_CREATE_DOCUMENT = 1;
protected BaseActivity activity;
@Nullable
@ -230,11 +233,14 @@ public class BaseScreen
public void showSendFileScreen(@NonNull String archiveFilename)
{
File file = new File(archiveFilename);
Uri fileUri = getUriForFile(activity, "org.isoron.uhabits", file);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("application/zip");
intent.putExtra(Intent.EXTRA_STREAM,
Uri.fromFile(new File(archiveFilename)));
intent.putExtra(Intent.EXTRA_STREAM, fileUri);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
activity.startActivity(intent);
}

@ -70,7 +70,7 @@ public class BaseSystem
if (context == null) throw new RuntimeException(
"application context should not be null");
File dir = FileUtils.getFilesDir("Logs");
File dir = FileUtils.getFilesDir(context, "Logs");
if (dir == null) throw new IOException("log dir should not be null");
File logFile =

@ -25,7 +25,7 @@ import android.support.v7.widget.Toolbar;
import android.widget.*;
import org.isoron.uhabits.BuildConfig;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.intents.*;
import org.isoron.uhabits.utils.*;
@ -94,6 +94,13 @@ public class AboutRootView extends BaseRootView
getContext().startActivity(intent);
}
@OnClick(R.id.tvTranslate)
public void onClickTranslate()
{
Intent intent = intents.helpTranslate(getContext());
getContext().startActivity(intent);
}
@OnClick(R.id.tvRate)
public void onClickRate()
{

@ -24,7 +24,7 @@ import android.support.v7.app.*;
import com.google.auto.factory.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.*;
import butterknife.*;

@ -78,6 +78,8 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
{
long id = savedInstanceState.getLong("habit", -1);
if (id > 0) this.habit = habitList.getById(id);
historyChart.onRestoreInstanceState(
savedInstanceState.getParcelable("historyChart"));
}
int padding =
@ -129,6 +131,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
public void onSaveInstanceState(Bundle outState)
{
outState.putLong("habit", habit.getId());
outState.putParcelable("historyChart", historyChart.onSaveInstanceState());
}
public void setController(@NonNull Controller controller)

@ -0,0 +1,63 @@
/*
* Copyright (C) 2017 Á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.activities.common.views;
import android.os.*;
import android.view.*;
public class BundleSavedState extends View.BaseSavedState
{
public static final Parcelable.Creator<BundleSavedState> CREATOR =
new Parcelable.Creator<BundleSavedState>()
{
@Override
public BundleSavedState createFromParcel(Parcel source)
{
return new BundleSavedState(source);
}
@Override
public BundleSavedState[] newArray(int size)
{
return new BundleSavedState[size];
}
};
public final Bundle bundle;
public BundleSavedState(Parcelable superState, Bundle bundle)
{
super(superState);
this.bundle = bundle;
}
public BundleSavedState(Parcel source)
{
super(source);
this.bundle = source.readBundle();
}
@Override
public void writeToParcel(Parcel out, int flags)
{
super.writeToParcel(out, flags);
out.writeBundle(bundle);
}
}

@ -21,6 +21,7 @@ package org.isoron.uhabits.activities.common.views;
import android.animation.*;
import android.content.*;
import android.os.*;
import android.util.*;
import android.view.*;
import android.widget.*;
@ -32,7 +33,9 @@ public abstract class ScrollableChart extends View
private int dataOffset;
private int scrollerBucketSize;
private int scrollerBucketSize = 1;
private int direction = 1;
private GestureDetector detector;
@ -40,6 +43,10 @@ public abstract class ScrollableChart extends View
private ValueAnimator scrollAnimator;
private ScrollController scrollController;
private int maxDataOffset = 10000;
public ScrollableChart(Context context)
{
super(context);
@ -63,8 +70,7 @@ public abstract class ScrollableChart extends View
if (!scroller.isFinished())
{
scroller.computeScrollOffset();
dataOffset = Math.max(0, scroller.getCurrX() / scrollerBucketSize);
postInvalidate();
updateDataOffset();
}
else
{
@ -85,19 +91,44 @@ public abstract class ScrollableChart extends View
float velocityY)
{
scroller.fling(scroller.getCurrX(), scroller.getCurrY(),
(int) velocityX / 2, 0, 0, 100000, 0, 0);
direction * ((int) velocityX) / 2, 0, 0, getMaxX(), 0, 0);
invalidate();
scrollAnimator.setDuration(scroller.getDuration());
scrollAnimator.start();
return false;
}
private int getMaxX()
{
return maxDataOffset * scrollerBucketSize;
}
@Override
public void onLongPress(MotionEvent e)
public void onRestoreInstanceState(Parcelable state)
{
BundleSavedState bss = (BundleSavedState) state;
int x = bss.bundle.getInt("x");
int y = bss.bundle.getInt("y");
direction = bss.bundle.getInt("direction");
dataOffset = bss.bundle.getInt("dataOffset");
maxDataOffset = bss.bundle.getInt("maxDataOffset");
scroller.startScroll(0, 0, x, y, 0);
scroller.computeScrollOffset();
super.onRestoreInstanceState(bss.getSuperState());
}
@Override
public Parcelable onSaveInstanceState()
{
Parcelable superState = super.onSaveInstanceState();
Bundle bundle = new Bundle();
bundle.putInt("x", scroller.getCurrX());
bundle.putInt("y", scroller.getCurrY());
bundle.putInt("dataOffset", dataOffset);
bundle.putInt("direction", direction);
bundle.putInt("maxDataOffset", maxDataOffset);
return new BundleSavedState(superState, bundle);
}
@Override
@ -111,12 +142,14 @@ public abstract class ScrollableChart extends View
if (parent != null) parent.requestDisallowInterceptTouchEvent(true);
}
scroller.startScroll(scroller.getCurrX(), scroller.getCurrY(),
(int) -dx, (int) dy, 0);
scroller.computeScrollOffset();
dataOffset = Math.max(0, scroller.getCurrX() / scrollerBucketSize);
postInvalidate();
dx = - direction * dx;
dx = Math.min(dx, getMaxX() - scroller.getCurrX());
scroller.startScroll(scroller.getCurrX(), scroller.getCurrY(), (int) dx,
(int) dy, 0);
scroller.computeScrollOffset();
updateDataOffset();
return true;
}
@ -138,6 +171,32 @@ public abstract class ScrollableChart extends View
return detector.onTouchEvent(event);
}
public void setDirection(int direction)
{
if (direction != 1 && direction != -1)
throw new IllegalArgumentException();
this.direction = direction;
}
@Override
public void onLongPress(MotionEvent e)
{
}
public void setMaxDataOffset(int maxDataOffset)
{
this.maxDataOffset = maxDataOffset;
this.dataOffset = Math.min(dataOffset, maxDataOffset);
scrollController.onDataOffsetChanged(this.dataOffset);
postInvalidate();
}
public void setScrollController(ScrollController scrollController)
{
this.scrollController = scrollController;
}
public void setScrollerBucketSize(int scrollerBucketSize)
{
this.scrollerBucketSize = scrollerBucketSize;
@ -149,5 +208,25 @@ public abstract class ScrollableChart extends View
scroller = new Scroller(context, null, true);
scrollAnimator = ValueAnimator.ofFloat(0, 1);
scrollAnimator.addUpdateListener(this);
scrollController = new ScrollController() {};
}
private void updateDataOffset()
{
int newDataOffset = scroller.getCurrX() / scrollerBucketSize;
newDataOffset = Math.max(0, newDataOffset);
newDataOffset = Math.min(maxDataOffset, newDataOffset);
if (newDataOffset != dataOffset)
{
dataOffset = newDataOffset;
scrollController.onDataOffsetChanged(dataOffset);
postInvalidate();
}
}
public interface ScrollController
{
default void onDataOffsetChanged(int newDataOffset) {}
}
}

@ -28,6 +28,7 @@ import android.view.*;
import com.android.datetimepicker.time.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.activities.common.dialogs.*;
import org.isoron.uhabits.commands.*;

@ -24,7 +24,7 @@ import android.support.v4.app.*;
import android.view.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*;

@ -25,6 +25,7 @@ import org.isoron.uhabits.*;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.activities.habits.list.model.*;
import org.isoron.uhabits.preferences.*;
import org.isoron.uhabits.utils.*;
/**
* Activity that allows the user to see and modify the list of habits.
@ -43,6 +44,8 @@ public class ListHabitsActivity extends BaseActivity
private Preferences prefs;
private MidnightTimer midnightTimer;
public ListHabitsComponent getListHabitsComponent()
{
return component;
@ -77,6 +80,8 @@ public class ListHabitsActivity extends BaseActivity
screen.setSelectionMenu(selectionMenu);
rootView.setController(controller, selectionMenu);
midnightTimer = component.getMidnightTimer();
setScreen(screen);
controller.onStartup();
}
@ -84,6 +89,7 @@ public class ListHabitsActivity extends BaseActivity
@Override
protected void onPause()
{
midnightTimer.onPause();
screen.onDettached();
adapter.cancelRefresh();
super.onPause();
@ -95,6 +101,7 @@ public class ListHabitsActivity extends BaseActivity
adapter.refresh();
screen.onAttached();
rootView.postInvalidate();
midnightTimer.onResume();
if (prefs.getTheme() == ThemeSwitcher.THEME_DARK &&
prefs.isPureBlackEnabled() != pureBlack)

@ -23,13 +23,14 @@ import org.isoron.uhabits.*;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.activities.habits.list.controllers.*;
import org.isoron.uhabits.activities.habits.list.model.*;
import org.isoron.uhabits.utils.*;
import dagger.*;
@ActivityScope
@Component(modules = { ActivityModule.class },
dependencies = { AppComponent.class })
public interface ListHabitsComponent extends ActivityComponent
public interface ListHabitsComponent
{
CheckmarkButtonControllerFactory getCheckmarkButtonControllerFactory();
@ -44,4 +45,6 @@ public interface ListHabitsComponent extends ActivityComponent
ListHabitsScreen getScreen();
ListHabitsSelectionMenu getSelectionMenu();
MidnightTimer getMidnightTimer();
}

@ -41,6 +41,7 @@ import javax.inject.*;
public class ListHabitsController
implements HabitCardListController.HabitListener
{
@NonNull
private final ListHabitsScreen screen;
@ -70,6 +71,8 @@ public class ListHabitsController
private ExportCSVTaskFactory exportCSVFactory;
private ExportDBTaskFactory exportDBFactory;
@Inject
public ListHabitsController(@NonNull BaseSystem system,
@NonNull CommandRunner commandRunner,
@ -82,7 +85,8 @@ public class ListHabitsController
@NonNull WidgetUpdater widgetUpdater,
@NonNull
ImportDataTaskFactory importTaskFactory,
@NonNull ExportCSVTaskFactory exportCSVFactory)
@NonNull ExportCSVTaskFactory exportCSVFactory,
@NonNull ExportDBTaskFactory exportDBFactory)
{
this.adapter = adapter;
this.commandRunner = commandRunner;
@ -95,6 +99,7 @@ public class ListHabitsController
this.widgetUpdater = widgetUpdater;
this.importTaskFactory = importTaskFactory;
this.exportCSVFactory = exportCSVFactory;
this.exportDBFactory = exportDBFactory;
}
public void onExportCSV()
@ -110,7 +115,7 @@ public class ListHabitsController
public void onExportDB()
{
taskRunner.execute(new ExportDBTask(filename -> {
taskRunner.execute(exportDBFactory.create(filename -> {
if (filename != null) screen.showSendFileScreen(filename);
else screen.showMessage(R.string.could_not_export);
}));
@ -128,7 +133,8 @@ public class ListHabitsController
taskRunner.execute(() -> habitList.reorder(from, to));
}
public void onImportData(@NonNull File file)
public void onImportData(@NonNull File file,
@NonNull OnFinishedListener finishedListener)
{
taskRunner.execute(importTaskFactory.create(file, result -> {
switch (result)
@ -146,6 +152,8 @@ public class ListHabitsController
screen.showMessage(R.string.could_not_import);
break;
}
finishedListener.onFinish();
}));
}
@ -208,4 +216,9 @@ public class ListHabitsController
prefs.updateLastHint(-1, DateUtils.getStartOfToday());
screen.showIntroScreen();
}
public interface OnFinishedListener
{
void onFinish();
}
}

@ -112,6 +112,22 @@ public class ListHabitsMenu extends BaseMenu
invalidate();
return true;
case R.id.actionSortColor:
adapter.setOrder(HabitList.Order.BY_COLOR);
return true;
case R.id.actionSortManual:
adapter.setOrder(HabitList.Order.BY_POSITION);
return true;
case R.id.actionSortName:
adapter.setOrder(HabitList.Order.BY_NAME);
return true;
case R.id.actionSortScore:
adapter.setOrder(HabitList.Order.BY_SCORE);
return true;
default:
return false;
}

@ -26,8 +26,9 @@ import android.support.v7.widget.Toolbar;
import android.view.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.activities.habits.list.controllers.*;
import org.isoron.uhabits.activities.habits.list.model.*;
import org.isoron.uhabits.activities.habits.list.views.*;
@ -43,7 +44,7 @@ import butterknife.*;
public class ListHabitsRootView extends BaseRootView
implements ModelObservable.Listener, TaskRunner.Listener
{
public static final int MAX_CHECKMARK_COUNT = 21;
public static final int MAX_CHECKMARK_COUNT = 60;
@BindView(R.id.listView)
HabitCardListView listView;
@ -132,6 +133,13 @@ public class ListHabitsRootView extends BaseRootView
listController.setSelectionListener(menu);
listView.setController(listController);
menu.setListController(listController);
header.setScrollController(new ScrollableChart.ScrollController() {
@Override
public void onDataOffsetChanged(int newDataOffset)
{
listView.setDataOffset(newDataOffset);
}
});
}
@Override
@ -156,6 +164,7 @@ public class ListHabitsRootView extends BaseRootView
{
int count = getCheckmarkCount();
header.setButtonCount(count);
header.setMaxDataOffset(Math.max(MAX_CHECKMARK_COUNT - count, 0));
listView.setCheckmarkCount(count);
super.onSizeChanged(w, h, oldw, oldh);
}

@ -19,7 +19,9 @@
package org.isoron.uhabits.activities.habits.list;
import android.app.*;
import android.content.*;
import android.net.*;
import android.support.annotation.*;
import org.isoron.uhabits.*;
@ -31,24 +33,32 @@ import org.isoron.uhabits.commands.*;
import org.isoron.uhabits.intents.*;
import org.isoron.uhabits.io.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*;
import java.io.*;
import javax.inject.*;
import static android.os.Build.VERSION.*;
import static android.os.Build.VERSION_CODES.*;
@ActivityScope
public class ListHabitsScreen extends BaseScreen
implements CommandRunner.Listener
{
public static final int RESULT_BUG_REPORT = 4;
public static final int RESULT_IMPORT_DATA = 1;
public static final int RESULT_EXPORT_CSV = 2;
public static final int RESULT_EXPORT_DB = 3;
public static final int RESULT_BUG_REPORT = 4;
public static final int RESULT_REPAIR_DB = 5;
public static final int RESULT_IMPORT_DATA = 1;
public static final int REQUEST_OPEN_DOCUMENT = 6;
public static final int REQUEST_SETTINGS = 7;
@Nullable
private ListHabitsController controller;
@ -125,6 +135,15 @@ public class ListHabitsScreen extends BaseScreen
@Override
public void onResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_OPEN_DOCUMENT)
onOpenDocumentResult(resultCode, data);
if (requestCode == REQUEST_SETTINGS)
onSettingsResult(resultCode);
}
private void onSettingsResult(int resultCode)
{
if (controller == null) return;
@ -152,6 +171,30 @@ public class ListHabitsScreen extends BaseScreen
}
}
private void onOpenDocumentResult(int resultCode, Intent data)
{
if (controller == null) return;
if (resultCode != Activity.RESULT_OK) return;
try
{
Uri uri = data.getData();
ContentResolver cr = activity.getContentResolver();
InputStream is = cr.openInputStream(uri);
File cacheDir = activity.getExternalCacheDir();
File tempFile = File.createTempFile("import", "", cacheDir);
FileUtils.copy(is, tempFile);
controller.onImportData(tempFile, () -> tempFile.delete());
}
catch (IOException e)
{
showMessage(R.string.could_not_import);
e.printStackTrace();
}
}
public void setController(@Nullable ListHabitsController controller)
{
this.controller = controller;
@ -208,6 +251,21 @@ public class ListHabitsScreen extends BaseScreen
}
public void showImportScreen()
{
if (SDK_INT < KITKAT)
{
showImportScreenPreKitKat();
return;
}
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
activity.startActivityForResult(intent, REQUEST_OPEN_DOCUMENT);
}
public void showImportScreenPreKitKat()
{
File dir = dirFinder.findStorageDir(null);
@ -220,7 +278,8 @@ public class ListHabitsScreen extends BaseScreen
FilePickerDialog picker = filePickerDialogFactory.create(dir);
if (controller != null)
picker.setListener(file -> controller.onImportData(file));
picker.setListener(file -> controller.onImportData(file, () -> {}));
activity.showDialog(picker.getDialog());
}
@ -233,7 +292,7 @@ public class ListHabitsScreen extends BaseScreen
public void showSettingsScreen()
{
Intent intent = intentFactory.startSettingsActivity(activity);
activity.startActivityForResult(intent, 0);
activity.startActivityForResult(intent, REQUEST_SETTINGS);
}
public void toggleNightMode()

@ -27,6 +27,8 @@ import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.activities.habits.list.*;
import org.isoron.uhabits.activities.habits.list.views.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.preferences.*;
import org.isoron.uhabits.utils.*;
import java.util.*;
@ -41,7 +43,7 @@ import javax.inject.*;
@ActivityScope
public class HabitCardListAdapter
extends RecyclerView.Adapter<HabitCardViewHolder>
implements HabitCardListCache.Listener
implements HabitCardListCache.Listener, MidnightTimer.MidnightListener
{
@NonNull
private ModelObservable observable;
@ -55,19 +57,36 @@ public class HabitCardListAdapter
@NonNull
private final HabitCardListCache cache;
@NonNull
private Preferences preferences;
private final MidnightTimer midnightTimer;
@Inject
public HabitCardListAdapter(@NonNull HabitCardListCache cache)
public HabitCardListAdapter(@NonNull HabitCardListCache cache,
@NonNull Preferences preferences,
@NonNull MidnightTimer midnightTimer)
{
this.preferences = preferences;
this.selected = new LinkedList<>();
this.observable = new ModelObservable();
this.cache = cache;
this.midnightTimer = midnightTimer;
cache.setListener(this);
cache.setCheckmarkCount(ListHabitsRootView.MAX_CHECKMARK_COUNT);
cache.setOrder(preferences.getDefaultOrder());
setHasStableIds(true);
}
@Override
public void atMidnight()
{
cache.refreshAllHabits();
}
public void cancelRefresh()
{
cache.cancelTasks();
@ -130,12 +149,18 @@ public class HabitCardListAdapter
return selected.isEmpty();
}
public boolean isSortable()
{
return cache.getOrder() == HabitList.Order.BY_POSITION;
}
/**
* Notify the adapter that it has been attached to a ListView.
*/
public void onAttached()
{
cache.onAttached();
midnightTimer.addListener(this);
}
@Override
@ -153,6 +178,20 @@ public class HabitCardListAdapter
listView.bindCardView(holder, habit, score, checkmarks, selected);
}
@Override
public void onViewAttachedToWindow(@Nullable HabitCardViewHolder holder)
{
if (listView == null) return;
listView.attachCardView(holder);
}
@Override
public void onViewDetachedFromWindow(@Nullable HabitCardViewHolder holder)
{
if (listView == null) return;
listView.detachCardView(holder);
}
@Override
public HabitCardViewHolder onCreateViewHolder(ViewGroup parent,
int viewType)
@ -168,6 +207,7 @@ public class HabitCardListAdapter
public void onDetached()
{
cache.onDetached();
midnightTimer.removeListener(this);
}
@Override
@ -260,6 +300,12 @@ public class HabitCardListAdapter
this.listView = listView;
}
public void setOrder(HabitList.Order order)
{
cache.setOrder(order);
preferences.setDefaultOrder(order);
}
/**
* Selects or deselects the item at a given position.
*

@ -107,6 +107,11 @@ public class HabitCardListCache implements CommandRunner.Listener
return data.habits.size();
}
public HabitList.Order getOrder()
{
return filteredHabits.getOrder();
}
public int getScore(long habitId)
{
return data.scores.get(habitId);
@ -180,6 +185,13 @@ public class HabitCardListCache implements CommandRunner.Listener
this.listener = listener;
}
public void setOrder(HabitList.Order order)
{
allHabits.setOrder(order);
filteredHabits.setOrder(order);
refreshAllHabits();
}
/**
* Interface definition for a callback to be invoked when the data on the
* cache has been modified.

@ -74,7 +74,6 @@ public class CheckmarkButtonView extends TextView
res = new StyledResources(getContext());
setWillNotDraw(false);
setHapticFeedbackEnabled(false);
setMinHeight(
getResources().getDimensionPixelSize(R.dimen.checkmarkHeight));

@ -53,6 +53,8 @@ public class CheckmarkPanelView extends LinearLayout implements Preferences.List
@NonNull
private Habit habit;
private int dataOffset;
public CheckmarkPanelView(Context context)
{
super(context);
@ -75,19 +77,23 @@ public class CheckmarkPanelView extends LinearLayout implements Preferences.List
return (CheckmarkButtonView) getChildAt(position);
}
public void setCheckmarkValues(int[] checkmarkValues)
public void setButtonCount(int newButtonCount)
{
this.checkmarkValues = checkmarkValues;
if (this.nButtons != checkmarkValues.length)
if(nButtons != newButtonCount)
{
this.nButtons = checkmarkValues.length;
nButtons = newButtonCount;
addCheckmarkButtons();
}
setupCheckmarkButtons();
}
public void setCheckmarkValues(int[] checkmarkValues)
{
this.checkmarkValues = checkmarkValues;
setupCheckmarkButtons();
}
public void setColor(int color)
{
this.color = color;
@ -100,6 +106,12 @@ public class CheckmarkPanelView extends LinearLayout implements Preferences.List
setupCheckmarkButtons();
}
public void setDataOffset(int dataOffset)
{
this.dataOffset = dataOffset;
setupCheckmarkButtons();
}
public void setHabit(@NonNull Habit habit)
{
this.habit = habit;
@ -170,11 +182,13 @@ public class CheckmarkPanelView extends LinearLayout implements Preferences.List
{
long timestamp = DateUtils.getStartOfToday();
long day = DateUtils.millisecondsInOneDay;
timestamp -= day * dataOffset;
for (int i = 0; i < nButtons; i++)
{
CheckmarkButtonView buttonView = indexToButton(i);
buttonView.setValue(checkmarkValues[i]);
if(i + dataOffset >= checkmarkValues.length) break;
buttonView.setValue(checkmarkValues[i + dataOffset]);
buttonView.setColor(color);
setupButtonControllers(timestamp, buttonView);
timestamp -= day;

@ -20,15 +20,17 @@
package org.isoron.uhabits.activities.habits.list.views;
import android.content.*;
import android.os.*;
import android.support.annotation.*;
import android.support.v7.widget.*;
import android.support.v7.widget.helper.*;
import android.util.*;
import android.view.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.activities.habits.list.controllers.*;
import org.isoron.uhabits.activities.habits.list.model.*;
import org.isoron.uhabits.models.*;
import java.util.*;
@ -44,6 +46,10 @@ public class HabitCardListView extends RecyclerView
private int checkmarkCount;
private int dataOffset;
private LinkedList<HabitCardViewHolder> attachedHolders;
public HabitCardListView(Context context, AttributeSet attrs)
{
super(context, attrs);
@ -54,6 +60,13 @@ public class HabitCardListView extends RecyclerView
TouchHelperCallback callback = new TouchHelperCallback();
touchHelper = new ItemTouchHelper(callback);
touchHelper.attachToRecyclerView(this);
attachedHolders = new LinkedList<>();
}
public void attachCardView(HabitCardViewHolder holder)
{
attachedHolders.add(holder);
}
/**
@ -75,13 +88,12 @@ public class HabitCardListView extends RecyclerView
int[] checkmarks,
boolean selected)
{
int visibleCheckmarks[] =
Arrays.copyOfRange(checkmarks, 0, checkmarkCount);
HabitCardView cardView = (HabitCardView) holder.itemView;
cardView.setHabit(habit);
cardView.setSelected(selected);
cardView.setCheckmarkValues(visibleCheckmarks);
cardView.setCheckmarkValues(checkmarks);
cardView.setCheckmarkCount(checkmarkCount);
cardView.setDataOffset(dataOffset);
cardView.setScore(score);
if (controller != null) setupCardViewController(holder);
return cardView;
@ -92,6 +104,11 @@ public class HabitCardListView extends RecyclerView
return new HabitCardView(getContext());
}
public void detachCardView(HabitCardViewHolder holder)
{
attachedHolders.remove(holder);
}
@Override
public void setAdapter(RecyclerView.Adapter adapter)
{
@ -109,6 +126,16 @@ public class HabitCardListView extends RecyclerView
this.controller = controller;
}
public void setDataOffset(int dataOffset)
{
this.dataOffset = dataOffset;
for (HabitCardViewHolder holder : attachedHolders)
{
HabitCardView cardView = (HabitCardView) holder.itemView;
cardView.setDataOffset(dataOffset);
}
}
@Override
protected void onAttachedToWindow()
{
@ -123,6 +150,23 @@ public class HabitCardListView extends RecyclerView
super.onDetachedFromWindow();
}
@Override
protected void onRestoreInstanceState(Parcelable state)
{
BundleSavedState bss = (BundleSavedState) state;
dataOffset = bss.bundle.getInt("dataOffset");
super.onRestoreInstanceState(bss.getSuperState());
}
@Override
protected Parcelable onSaveInstanceState()
{
Parcelable superState = super.onSaveInstanceState();
Bundle bundle = new Bundle();
bundle.putInt("dataOffset", dataOffset);
return new BundleSavedState(superState, bundle);
}
protected void setupCardViewController(@NonNull HabitCardViewHolder holder)
{
HabitCardView cardView = (HabitCardView) holder.itemView;
@ -168,7 +212,7 @@ public class HabitCardListView extends RecyclerView
{
int position = holder.getAdapterPosition();
if (controller != null) controller.onItemLongClick(position);
touchHelper.startDrag(holder);
if (adapter.isSortable()) touchHelper.startDrag(holder);
}
@Override

@ -27,7 +27,7 @@ import android.support.annotation.*;
import android.util.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*;
@ -72,6 +72,8 @@ public class HabitCardView extends FrameLayout
@Nullable
private Habit habit;
private int dataOffset;
public HabitCardView(Context context)
{
super(context);
@ -90,6 +92,11 @@ public class HabitCardView extends FrameLayout
new Handler(Looper.getMainLooper()).post(() -> refresh());
}
public void setCheckmarkCount(int checkmarkCount)
{
checkmarkPanel.setButtonCount(checkmarkCount);
}
public void setCheckmarkValues(int checkmarks[])
{
checkmarkPanel.setCheckmarkValues(checkmarks);
@ -103,6 +110,12 @@ public class HabitCardView extends FrameLayout
checkmarkPanel.setController(controller);
}
public void setDataOffset(int dataOffset)
{
this.dataOffset = dataOffset;
checkmarkPanel.setDataOffset(dataOffset);
}
public void setHabit(@NonNull Habit habit)
{
if (this.habit != null) detachFromHabit();
@ -134,7 +147,7 @@ public class HabitCardView extends FrameLayout
{
long today = DateUtils.getStartOfToday();
long day = DateUtils.millisecondsInOneDay;
int offset = (int) ((today - timestamp) / day);
int offset = (int) ((today - timestamp) / day) - dataOffset;
CheckmarkButtonView button = checkmarkPanel.indexToButton(offset);
float y = button.getHeight() / 2.0f;

@ -20,30 +20,41 @@
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.common.views.*;
import org.isoron.uhabits.activities.habits.list.*;
import org.isoron.uhabits.preferences.*;
import org.isoron.uhabits.utils.*;
import java.util.*;
public class HeaderView extends LinearLayout implements Preferences.Listener
public class HeaderView extends ScrollableChart
implements Preferences.Listener, MidnightTimer.MidnightListener
{
private final Context context;
private int buttonCount;
@Nullable
private Preferences prefs;
@Nullable
private MidnightTimer midnightTimer;
private final TextPaint paint;
private RectF rect;
private int maxDataOffset;
public HeaderView(Context context, AttributeSet attrs)
{
super(context, attrs);
this.context = context;
if (isInEditMode())
{
@ -56,18 +67,46 @@ public class HeaderView extends LinearLayout implements Preferences.Listener
HabitsApplication app = (HabitsApplication) appContext;
prefs = app.getComponent().getPreferences();
}
if (context instanceof ListHabitsActivity)
{
ListHabitsActivity activity = (ListHabitsActivity) context;
midnightTimer = activity.getListHabitsComponent().getMidnightTimer();
}
Resources res = context.getResources();
setScrollerBucketSize((int) res.getDimension(R.dimen.checkmarkWidth));
setDirection(shouldReverseCheckmarks() ? 1 : -1);
StyledResources sr = new StyledResources(context);
paint = new TextPaint();
paint.setColor(Color.BLACK);
paint.setAntiAlias(true);
paint.setTextSize(getResources().getDimension(R.dimen.tinyTextSize));
paint.setTextAlign(Paint.Align.CENTER);
paint.setTypeface(Typeface.DEFAULT_BOLD);
paint.setColor(sr.getColor(R.attr.mediumContrastTextColor));
rect = new RectF();
}
@Override
public void atMidnight()
{
post(() -> invalidate());
}
@Override
public void onCheckmarkOrderChanged()
{
createButtons();
setDirection(shouldReverseCheckmarks() ? 1 : -1);
postInvalidate();
}
public void setButtonCount(int buttonCount)
{
this.buttonCount = buttonCount;
createButtons();
postInvalidate();
}
@Override
@ -75,32 +114,56 @@ public class HeaderView extends LinearLayout implements Preferences.Listener
{
super.onAttachedToWindow();
if (prefs != null) prefs.addListener(this);
if (midnightTimer != null) midnightTimer.addListener(this);
}
@Override
protected void onDetachedFromWindow()
{
if (midnightTimer != null) midnightTimer.removeListener(this);
if (prefs != null) prefs.removeListener(this);
super.onDetachedFromWindow();
}
private void createButtons()
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = (int) getContext()
.getResources()
.getDimension(R.dimen.checkmarkHeight);
setMeasuredDimension(width, height);
}
@Override
protected void onDraw(Canvas canvas)
{
removeAllViews();
super.onDraw(canvas);
GregorianCalendar day = DateUtils.getStartOfTodayCalendar();
Resources res = getContext().getResources();
float width = res.getDimension(R.dimen.checkmarkWidth);
float height = res.getDimension(R.dimen.checkmarkHeight);
boolean reverse = shouldReverseCheckmarks();
for (int i = 0; i < buttonCount; i++)
addView(
inflate(context, R.layout.list_habits_header_checkmark, null));
day.add(GregorianCalendar.DAY_OF_MONTH, -getDataOffset());
float em = paint.measureText("m");
for (int i = 0; i < getChildCount(); i++)
for (int i = 0; i < buttonCount; i++)
{
int position = i;
if (shouldReverseCheckmarks()) position = getChildCount() - i - 1;
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);
String text = DateUtils.formatHeaderDate(day).toUpperCase();
String[] lines = text.split("\n");
int y1 = (int)(rect.centerY() - 0.25 * em);
int y2 = (int)(rect.centerY() + 1.25 * em);
View button = getChildAt(position);
TextView label = (TextView) button.findViewById(R.id.tvCheck);
label.setText(DateUtils.formatHeaderDate(day));
canvas.drawText(lines[0], rect.centerX(), y1, paint);
canvas.drawText(lines[1], rect.centerX(), y2, paint);
day.add(GregorianCalendar.DAY_OF_MONTH, -1);
}
}

@ -24,7 +24,7 @@ import android.os.*;
import android.support.annotation.*;
import android.support.v7.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.activities.habits.show.views.*;
import org.isoron.uhabits.models.*;

@ -24,6 +24,10 @@ import android.view.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.tasks.*;
import java.util.*;
import javax.inject.*;
@ -33,12 +37,38 @@ public class ShowHabitsMenu extends BaseMenu
@NonNull
private final ShowHabitScreen screen;
@NonNull
private final Habit habit;
@NonNull
private final TaskRunner taskRunner;
@NonNull
private ExportCSVTaskFactory exportCSVFactory;
@Inject
public ShowHabitsMenu(@NonNull BaseActivity activity,
@NonNull ShowHabitScreen screen)
@NonNull ShowHabitScreen screen,
@NonNull Habit habit,
@NonNull ExportCSVTaskFactory exportCSVFactory,
@NonNull TaskRunner taskRunner)
{
super(activity);
this.screen = screen;
this.habit = habit;
this.taskRunner = taskRunner;
this.exportCSVFactory = exportCSVFactory;
}
public void exportHabit()
{
List<Habit> selected = new LinkedList<>();
selected.add(habit);
ExportCSVTask task = exportCSVFactory.create(selected, filename -> {
if (filename != null) screen.showSendFileScreen(filename);
else screen.showMessage(R.string.could_not_export);
});
taskRunner.execute(task);
}
@Override
@ -50,6 +80,10 @@ public class ShowHabitsMenu extends BaseMenu
screen.showEditHabitDialog();
return true;
case R.id.export:
this.exportHabit();
return true;
default:
return false;
}

@ -25,6 +25,7 @@ import android.util.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.tasks.*;

@ -25,6 +25,7 @@ import android.util.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.tasks.*;

@ -25,6 +25,7 @@ import android.util.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.tasks.*;

@ -25,6 +25,7 @@ import android.util.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.preferences.*;

@ -25,6 +25,7 @@ import android.util.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.common.views.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.tasks.*;

@ -25,7 +25,7 @@ import android.content.res.*;
import android.util.*;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*;

@ -61,9 +61,6 @@ public class SettingsFragment extends PreferenceFragmentCompat
setResultOnPreferenceClick("bugReport", ListHabitsScreen.RESULT_BUG_REPORT);
updateRingtoneDescription();
if (InterfaceUtils.isLocaleFullyTranslated())
removePreference("translate", "linksCategory");
}
@Override
@ -110,14 +107,6 @@ public class SettingsFragment extends PreferenceFragmentCompat
BackupManager.dataChanged("org.isoron.uhabits");
}
private void removePreference(String preferenceKey, String categoryKey)
{
PreferenceCategory cat =
(PreferenceCategory) findPreference(categoryKey);
Preference pref = findPreference(preferenceKey);
cat.removePreference(pref);
}
private void setResultOnPreferenceClick(String key, final int result)
{
Preference pref = findPreference(key);

@ -25,7 +25,7 @@ import android.support.v7.widget.*;
import android.support.v7.widget.Toolbar;
import android.widget.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.R;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*;

@ -39,6 +39,12 @@ public class IntentFactory
{
}
public Intent helpTranslate(Context context)
{
String url = context.getString(R.string.translateURL);
return buildViewIntent(url);
}
public Intent rateApp(Context context)
{
String url = context.getString(R.string.playStoreURL);

@ -19,12 +19,14 @@
package org.isoron.uhabits.io;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.annotation.NonNull;
import com.activeandroid.ActiveAndroid;
import org.isoron.uhabits.AppContext;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.DatabaseUtils;
import org.isoron.uhabits.utils.FileUtils;
@ -39,10 +41,14 @@ import javax.inject.*;
*/
public class LoopDBImporter extends AbstractImporter
{
@NonNull
private Context context;
@Inject
public LoopDBImporter(@NonNull HabitList habits)
public LoopDBImporter(@NonNull @AppContext Context context, @NonNull HabitList habits)
{
super(habits);
this.context = context;
}
@Override
@ -68,8 +74,8 @@ public class LoopDBImporter extends AbstractImporter
public void importHabitsFromFile(@NonNull File file) throws IOException
{
ActiveAndroid.dispose();
File originalDB = DatabaseUtils.getDatabaseFile();
File originalDB = DatabaseUtils.getDatabaseFile(context);
FileUtils.copy(file, originalDB);
DatabaseUtils.initializeActiveAndroid();
DatabaseUtils.initializeActiveAndroid(context);
}
}

@ -48,9 +48,7 @@ public abstract class HabitList implements Iterable<Habit>
public HabitList()
{
observable = new ModelObservable();
filter = new HabitMatcherBuilder()
.setArchivedAllowed(true)
.build();
filter = new HabitMatcherBuilder().setArchivedAllowed(true).build();
}
protected HabitList(@NonNull HabitMatcher filter)
@ -106,6 +104,15 @@ public abstract class HabitList implements Iterable<Habit>
return observable;
}
public abstract Order getOrder();
/**
* Changes the order of the elements on the list.
*
* @param order the new order criterea
*/
public abstract void setOrder(@NonNull Order order);
/**
* Returns the index of the given habit in the list, or -1 if the list does
* not contain the habit.
@ -149,7 +156,7 @@ public abstract class HabitList implements Iterable<Habit>
public void repair()
{
for(Habit h : this)
for (Habit h : this)
{
h.getCheckmarks().invalidateNewerThan(0);
h.getStreaks().invalidateNewerThan(0);
@ -228,4 +235,12 @@ public abstract class HabitList implements Iterable<Habit>
csv.close();
}
public enum Order
{
BY_NAME,
BY_COLOR,
BY_SCORE,
BY_POSITION
}
}

@ -25,6 +25,8 @@ import org.isoron.uhabits.models.*;
import java.util.*;
import static org.isoron.uhabits.models.HabitList.Order.*;
/**
* In-memory implementation of {@link HabitList}.
*/
@ -33,16 +35,23 @@ public class MemoryHabitList extends HabitList
@NonNull
private LinkedList<Habit> list;
private Comparator<Habit> comparator = null;
@NonNull
private Order order;
public MemoryHabitList()
{
super();
list = new LinkedList<>();
order = Order.BY_POSITION;
}
protected MemoryHabitList(@NonNull HabitMatcher matcher)
{
super(matcher);
list = new LinkedList<>();
order = Order.BY_POSITION;
}
@Override
@ -57,6 +66,7 @@ public class MemoryHabitList extends HabitList
if (id == null) habit.setId((long) list.size());
list.addLast(habit);
resort();
}
@Override
@ -82,10 +92,17 @@ public class MemoryHabitList extends HabitList
public HabitList getFiltered(HabitMatcher matcher)
{
MemoryHabitList habits = new MemoryHabitList(matcher);
for(Habit h : this) if (matcher.matches(h)) habits.add(h);
habits.comparator = comparator;
for (Habit h : this) if (matcher.matches(h)) habits.add(h);
return habits;
}
@Override
public Order getOrder()
{
return order;
}
@Override
public int indexOf(@NonNull Habit h)
{
@ -112,6 +129,14 @@ public class MemoryHabitList extends HabitList
list.add(toPos, from);
}
@Override
public void setOrder(@NonNull Order order)
{
this.order = order;
this.comparator = getComparatorByOrder(order);
resort();
}
@Override
public int size()
{
@ -123,4 +148,34 @@ public class MemoryHabitList extends HabitList
{
// NOP
}
private Comparator<Habit> getComparatorByOrder(Order order)
{
Comparator<Habit> nameComparator =
(h1, h2) -> h1.getName().compareTo(h2.getName());
Comparator<Habit> colorComparator = (h1, h2) -> {
Integer c1 = h1.getColor();
Integer c2 = h2.getColor();
if (c1.equals(c2)) return nameComparator.compare(h1, h2);
else return c1.compareTo(c2);
};
Comparator<Habit> scoreComparator = (h1, h2) -> {
int s1 = h1.getScores().getTodayValue();
int s2 = h2.getScores().getTodayValue();
return Integer.compare(s2, s1);
};
if (order == BY_POSITION) return null;
if (order == BY_NAME) return nameComparator;
if (order == BY_COLOR) return colorComparator;
if (order == BY_SCORE) return scoreComparator;
throw new IllegalStateException();
}
private void resort()
{
if (comparator != null) Collections.sort(list, comparator);
}
}

@ -39,10 +39,15 @@ public class SQLiteHabitList extends HabitList
private static SQLiteHabitList instance;
@NonNull
private final SQLiteUtils<HabitRecord> sqlite;
@NonNull
private final ModelFactory modelFactory;
@NonNull
private Order order;
public SQLiteHabitList(@NonNull ModelFactory modelFactory)
{
super();
@ -50,16 +55,19 @@ public class SQLiteHabitList extends HabitList
if (cache == null) cache = new HashMap<>();
sqlite = new SQLiteUtils<>(HabitRecord.class);
order = Order.BY_POSITION;
}
protected SQLiteHabitList(@NonNull ModelFactory modelFactory,
@NonNull HabitMatcher filter)
@NonNull HabitMatcher filter,
@NonNull Order order)
{
super(filter);
this.modelFactory = modelFactory;
if (cache == null) cache = new HashMap<>();
sqlite = new SQLiteUtils<>(HabitRecord.class);
this.order = order;
}
public static SQLiteHabitList getInstance(
@ -118,7 +126,20 @@ public class SQLiteHabitList extends HabitList
@Override
public HabitList getFiltered(HabitMatcher filter)
{
return new SQLiteHabitList(modelFactory, filter);
return new SQLiteHabitList(modelFactory, filter, order);
}
@Override
@NonNull
public Order getOrder()
{
return order;
}
@Override
public void setOrder(@NonNull Order order)
{
this.order = order;
}
@Override
@ -214,6 +235,13 @@ public class SQLiteHabitList extends HabitList
getObservable().notifyListeners();
}
@Override
public void repair()
{
super.repair();
rebuildOrder();
}
@Override
public int size()
{
@ -249,12 +277,38 @@ public class SQLiteHabitList extends HabitList
habits.add(habit);
}
if(order == Order.BY_SCORE)
{
Collections.sort(habits, (lhs, rhs) -> {
int s1 = lhs.getScores().getTodayValue();
int s2 = rhs.getScores().getTodayValue();
return Integer.compare(s2, s1);
});
}
return habits;
}
private void appendOrderBy(StringBuilder query)
{
query.append("order by position ");
switch (order)
{
case BY_POSITION:
query.append("order by position ");
break;
case BY_NAME:
case BY_SCORE:
query.append("order by name ");
break;
case BY_COLOR:
query.append("order by color, name ");
break;
default:
throw new IllegalStateException();
}
}
private void appendSelect(StringBuilder query)
@ -282,11 +336,4 @@ public class SQLiteHabitList extends HabitList
appendOrderBy(query);
return query.toString();
}
@Override
public void repair()
{
super.repair();
rebuildOrder();
}
}

@ -22,6 +22,8 @@ package org.isoron.uhabits.models.sqlite.records;
import android.annotation.*;
import android.database.*;
import android.support.annotation.*;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.activeandroid.*;
import com.activeandroid.annotation.*;

@ -24,6 +24,7 @@ import android.preference.*;
import org.isoron.uhabits.*;
import org.isoron.uhabits.activities.*;
import org.isoron.uhabits.models.*;
import java.util.*;
@ -61,6 +62,21 @@ public class Preferences
return prefs.getInt("pref_default_habit_palette_color", fallbackColor);
}
public HabitList.Order getDefaultOrder()
{
String name = prefs.getString("pref_default_order", "BY_POSITION");
try
{
return HabitList.Order.valueOf(name);
}
catch (IllegalArgumentException e)
{
setDefaultOrder(HabitList.Order.BY_POSITION);
return HabitList.Order.BY_POSITION;
}
}
public int getDefaultScoreSpinnerPosition()
{
int defaultScoreInterval = prefs.getInt("pref_score_view_interval", 1);
@ -69,6 +85,11 @@ public class Preferences
return defaultScoreInterval;
}
public void setDefaultOrder(HabitList.Order order)
{
prefs.edit().putString("pref_default_order", order.name()).apply();
}
public void setDefaultScoreSpinnerPosition(int position)
{
prefs.edit().putInt("pref_score_view_interval", position).apply();

@ -40,6 +40,9 @@ public class PebbleReceiver extends PebbleDataReceiver
public static final UUID WATCHAPP_UUID =
UUID.fromString("82629d99-8ea6-4631-a022-9ca77a12a058");
@NonNull
private Context context;
private HabitList allHabits;
private CommandRunner commandRunner;
@ -61,6 +64,8 @@ public class PebbleReceiver extends PebbleDataReceiver
if (context == null) throw new RuntimeException("context is null");
if (data == null) throw new RuntimeException("data is null");
this.context = context;
HabitsApplication app =
(HabitsApplication) context.getApplicationContext();
@ -136,7 +141,7 @@ public class PebbleReceiver extends PebbleDataReceiver
private void sendDict(@NonNull PebbleDictionary dict)
{
PebbleKit.sendDataToPebble(HabitsApplication.getContext(),
PebbleKit.sendDataToPebble(context,
PebbleReceiver.WATCHAPP_UUID, dict);
}

@ -19,10 +19,13 @@
package org.isoron.uhabits.tasks;
import android.content.Context;
import android.support.annotation.*;
import com.google.auto.factory.*;
import org.isoron.uhabits.AppContext;
import org.isoron.uhabits.activities.ActivityContext;
import org.isoron.uhabits.io.*;
import org.isoron.uhabits.models.*;
import org.isoron.uhabits.utils.*;
@ -35,6 +38,9 @@ public class ExportCSVTask implements Task
{
private String archiveFilename;
@NonNull
private final Context context;
@NonNull
private final List<Habit> selectedHabits;
@ -44,10 +50,12 @@ public class ExportCSVTask implements Task
@NonNull
private final HabitList habitList;
public ExportCSVTask(@Provided @NonNull HabitList habitList,
public ExportCSVTask(@Provided @AppContext @NonNull Context context,
@Provided @NonNull HabitList habitList,
@NonNull List<Habit> selectedHabits,
@NonNull Listener listener)
{
this.context = context;
this.listener = listener;
this.habitList = habitList;
this.selectedHabits = selectedHabits;
@ -58,7 +66,7 @@ public class ExportCSVTask implements Task
{
try
{
File dir = FileUtils.getFilesDir("CSV");
File dir = FileUtils.getFilesDir(context, "CSV");
if (dir == null) return;
HabitsCSVExporter exporter;

@ -19,22 +19,33 @@
package org.isoron.uhabits.tasks;
import android.content.Context;
import android.support.annotation.*;
import com.google.auto.factory.AutoFactory;
import com.google.auto.factory.Provided;
import org.isoron.uhabits.AppContext;
import org.isoron.uhabits.activities.ActivityContext;
import org.isoron.uhabits.utils.*;
import java.io.*;
@AutoFactory(allowSubclasses = true)
public class ExportDBTask implements Task
{
private String filename;
@NonNull
private Context context;
@NonNull
private final Listener listener;
public ExportDBTask(@NonNull Listener listener)
public ExportDBTask(@Provided @AppContext @NonNull Context context, @NonNull Listener listener)
{
this.listener = listener;
this.context = context;
}
@Override
@ -44,10 +55,10 @@ public class ExportDBTask implements Task
try
{
File dir = FileUtils.getFilesDir("Backups");
File dir = FileUtils.getFilesDir(context, "Backups");
if (dir == null) return;
filename = DatabaseUtils.saveDatabaseCopy(dir);
filename = DatabaseUtils.saveDatabaseCopy(context, dir);
}
catch (IOException e)
{

@ -47,9 +47,8 @@ public abstract class DatabaseUtils
}
@NonNull
public static File getDatabaseFile()
public static File getDatabaseFile(Context context)
{
Context context = HabitsApplication.getContext();
String databaseFilename = getDatabaseFilename();
String root = context.getFilesDir().getPath();
@ -68,9 +67,8 @@ public abstract class DatabaseUtils
}
@SuppressWarnings("unchecked")
public static void initializeActiveAndroid()
public static void initializeActiveAndroid(Context context)
{
Context context = HabitsApplication.getContext();
Configuration dbConfig = new Configuration.Builder(context)
.setDatabaseName(getDatabaseFilename())
.setDatabaseVersion(BuildConfig.databaseVersion)
@ -82,14 +80,14 @@ public abstract class DatabaseUtils
}
@SuppressWarnings("ResultOfMethodCallIgnored")
public static String saveDatabaseCopy(File dir) throws IOException
public static String saveDatabaseCopy(Context context, File dir) throws IOException
{
SimpleDateFormat dateFormat = DateFormats.getBackupDateFormat();
String date = dateFormat.format(DateUtils.getLocalTime());
String format = "%s/Loop Habits Backup %s.db";
String filename = String.format(format, dir.getAbsolutePath(), date);
File db = getDatabaseFile();
File db = getDatabaseFile(context);
File dbCopy = new File(filename);
FileUtils.copy(db, dbCopy);

@ -187,6 +187,11 @@ public abstract class DateUtils
return getStartOfDay(DateUtils.getLocalTime());
}
public static long millisecondsUntilTomorrow()
{
return getStartOfToday() + millisecondsInOneDay - getLocalTime();
}
public static GregorianCalendar getStartOfTodayCalendar()
{
return getCalendar(getStartOfToday());

@ -87,9 +87,8 @@ public abstract class FileUtils
}
@Nullable
public static File getFilesDir(@Nullable String relativePath)
public static File getFilesDir(@NonNull Context context, @Nullable String relativePath)
{
Context context = HabitsApplication.getContext();
File externalFilesDirs[] =
ContextCompat.getExternalFilesDirs(context, null);

@ -24,17 +24,8 @@ import android.content.res.*;
import android.graphics.*;
import android.util.*;
import java.util.*;
public abstract class InterfaceUtils
{
// TODO: Move this to another place, or detect automatically
private static String fullyTranslatedLanguages[] = {
"ca", "zh", "en", "de", "in", "it", "ko", "pl", "pt", "es", "tk", "uk",
"ja", "fr", "hr", "sl"
};
private static Typeface fontAwesome;
public static Typeface getFontAwesome(Context context)
@ -58,15 +49,4 @@ public abstract class InterfaceUtils
DisplayMetrics metrics = resources.getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, metrics);
}
public static boolean isLocaleFullyTranslated()
{
final String currentLanguage = Locale.getDefault().getLanguage();
for(String lang : fullyTranslatedLanguages)
if(currentLanguage.equals(lang)) return true;
return false;
}
}

@ -0,0 +1,77 @@
/*
* 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.utils;
import org.isoron.uhabits.activities.*;
import java.util.*;
import java.util.concurrent.*;
import javax.inject.*;
/**
* A class that emits events when a new day starts.
*/
@ActivityScope
public class MidnightTimer
{
private final List<MidnightListener> listeners;
private ScheduledExecutorService executor;
@Inject
public MidnightTimer()
{
this.listeners = new LinkedList<>();
}
public synchronized void addListener(MidnightListener listener)
{
this.listeners.add(listener);
}
public synchronized void onPause()
{
executor.shutdownNow();
}
public synchronized void onResume()
{
executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleAtFixedRate(() -> notifyListeners(),
DateUtils.millisecondsUntilTomorrow() + 1000,
DateUtils.millisecondsInOneDay, TimeUnit.MILLISECONDS);
}
public synchronized void removeListener(MidnightListener listener)
{
this.listeners.remove(listener);
}
private synchronized void notifyListeners()
{
for (MidnightListener l : listeners) l.atMidnight();
}
public interface MidnightListener
{
void atMidnight();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

@ -31,6 +31,7 @@
style="@style/Toolbar"/>
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/toolbar">
@ -86,6 +87,11 @@
style="@style/About.Item.Clickable"
android:text="@string/pref_send_feedback"/>
<TextView
android:id="@+id/tvTranslate"
style="@style/About.Item.Clickable"
android:text="@string/help_translate"/>
<TextView
android:id="@+id/tvSource"
style="@style/About.Item.Clickable"
@ -117,6 +123,9 @@
<TextView
style="@style/About.Item"
android:text="Nikhil (regularcoder)"/>
<TextView
style="@style/About.Item"
android:text="JanetQC"/>
</LinearLayout>
@ -129,17 +138,33 @@
android:text="@string/translators"
android:textColor="?aboutScreenColor"/>
<TextView
style="@style/About.Item"
android:text="Mihail Stefanov (Bǎlgarski)"/>
<TextView
style="@style/About.Item"
android:text="Angga Rifandi (Bahasa Indonesia)"/>
<TextView
style="@style/About.Item"
android:text="David Nos (Català)"/>
<TextView
style="@style/About.Item"
android:text="Tomáš Borovec (Čeština)"/>
<TextView
style="@style/About.Item"
android:text="David Nos (Català)"/>
android:text="Rancher (Cрпски)"/>
<TextView
style="@style/About.Item"
android:text="Yussuf (Dansk)"/>
<TextView
style="@style/About.Item"
android:text="Sølv Ræven (Dansk)"/>
<TextView
style="@style/About.Item"
@ -157,6 +182,22 @@
style="@style/About.Item"
android:text="Ander Raso Vazquez (Español)"/>
<TextView
style="@style/About.Item"
android:text="Beriain (Euskara)"/>
<TextView
style="@style/About.Item"
android:text="Andreas Michelakis (Ελληνικά)"/>
<TextView
style="@style/About.Item"
android:text="Eman (Fārsi)"/>
<TextView
style="@style/About.Item"
android:text="Saeed Esmaili (Fārsi)"/>
<TextView
style="@style/About.Item"
android:text="François Mahé (Français)"/>
@ -205,6 +246,10 @@
style="@style/About.Item"
android:text="Dmitriy Bogdanov (Русский)"/>
<TextView
style="@style/About.Item"
android:text="Andrei Pleș (Română)"/>
<TextView
style="@style/About.Item"
android:text="Dušan Strgar (Slovenščina)"/>
@ -272,10 +317,6 @@
<TextView
style="@style/About.Item"
android:text="Aman Satnami (हिन्दी)"/>
<TextView
style="@style/About.Item"
android:text="Andreas Michelakis (Ελληνικά)"/>
</LinearLayout>
</LinearLayout>
</ScrollView>

@ -79,7 +79,7 @@
<EditText
android:id="@+id/tvFreqNum"
style="@style/dialogFormInputSmallNumber"/>
style="@style/dialogFormInputLargeNumber"/>
<TextView
android:id="@+id/textView3"
@ -89,7 +89,7 @@
<EditText
android:id="@+id/tvFreqDen"
style="@style/dialogFormInputSmallNumber"/>
style="@style/dialogFormInputLargeNumber"/>
<TextView
android:id="@+id/textView5"

@ -21,6 +21,7 @@
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/toolbar"

@ -45,6 +45,26 @@
android:checkable="true"
android:enabled="true"
android:title="@string/hide_completed"/>
<item android:title="@string/sort">
<menu>
<item
android:id="@+id/actionSortManual"
android:title="@string/manually"/>
<item
android:id="@+id/actionSortName"
android:title="@string/by_name"/>
<item
android:id="@+id/actionSortColor"
android:title="@string/by_color"/>
<item
android:id="@+id/actionSortScore"
android:title="@string/by_score"/>
</menu>
</item>
</menu>
</item>
@ -73,5 +93,4 @@
android:orderInCategory="100"
android:title="@string/about"
app:showAsAction="never"/>
</menu>

@ -21,6 +21,11 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/export"
android:title="@string/export"
app:showAsAction="never"/>
<item
android:id="@+id/action_edit_habit"
android:icon="?iconEdit"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<!-- App introduction -->
<!-- Middle part of the sentence '1 time in xx days' -->
</resources>

@ -1,190 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<!-- There is no letter P in arabic so the name is unfortunately translated to "Loob" -->
<string name="app_name">"لوب ملاحق العادة "</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>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<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>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<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>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<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">"لوب يساعدك على خلق والحفاظ على العادات الجيدة."</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">"ساعة واحدة"</string>
<string name="interval_2_hour">"ساعتين"</string>
<string name="interval_4_hour">"أربع ساعات"</string>
<string name="interval_8_hour">"ثماني ساعات"</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">"تقييم هذا التطبيق على جوجل بلاي"</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="show_archived">"عرض أرشفة"</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="weekends">"عطلة نهاية الأسبوع"</string>
<!-- Fuzzy -->
<string name="any_weekday">"أيام الأسبوع"</string>
<!-- Fuzzy -->
<string name="any_day">"أي يوم"</string>
<!-- This is a bit unclear to me. It is like a prompt asking the user to select specific days, or is it more like an alarm mode where it will only activate on select days? -->
<string name="select_weekdays">"إختار أيام "</string>
<!-- Fuzzy -->
<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>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"خلق عادات جيدة وتتبع تقدمك على مر الزمن"</string>
<string name="store_description_1">"لب يساعدك على خلق والحفاظ على العادات الجيدة، مما يسمح لك لتحقيق أهدافكة. الرسوم البيانية والإحصاءات التفصيلية تبين لكم كيف تحسن عاداتك مع مرور الوقت. هو تماما خالية من الاعلانات ومفتوحة المصدر."</string>
<string name="store_feature_interface">"&lt;b&gt;واجهة بسيطة، جميلة وحديثة &lt;/b&gt;
لوب يحتوي على واجهة بسيطة وهي سهلة الاستخدام و تتابع نظام تصميم الماتريل دسيجن."</string>
<string name="store_feature_score">"&lt;b&gt;نتيجة العادات&lt;/b&gt;
بالإضافة إلى عرض التقدم الحالي، لوب ديه خوارزمية متقدمة لحساب قوة عاداتك. كل التكرار يجعل هذه العادة أقوى، وفي كل يوم غاب يجعلها أضعف. مع ذلك غيب أيام قليلة بعد تقدم طويلة ، لن تدمر تماما تقدمك ."</string>
<string name="store_feature_statistics">"&lt;b&gt;الرسوم البيانية والإحصاءات المفصلة&lt;/b&gt;
نرى بوضوح كيف كنت قد تحسنت عاداتك بمرور الوقت مع الرسوم البيانية الجميله ومفصلة. انتقل إلى الوراء لنرى التاريخ الكامل لعاداتك."</string>
<string name="store_feature_schedules">"&lt;b&gt;جداول مرنة&lt;/b&gt;
تؤيد كل من العادات اليومية والعادات مع جداول أكثر تعقيدا، مثل 3 مرات كل أسبوع، مرة واحدة كل أسبوعين، أو مرة كل يومين."</string>
<string name="store_feature_reminders">"&lt;b&gt;تذكير&lt;/b&gt;
إنشاء تذكير لكل فرد من عاداتك، في ساعة اختيار من اليوم. تحقق بسهولة، رفض أو غفوة عادتك مباشرة من الإخطار، دون الحاجة إلى فتح التطبيق."</string>
<string name="store_feature_opensource">"&lt;b&gt;خالية تماما من الإعلانات و المصدر المفتوح&lt;/b&gt;
لا توجد على الاطلاق الإعلانات والشعارات المزعجة أو أذونات إضافية في هذا التطبيق، و سوف يكون هناك أبدا."</string>
<string name="store_feature_wear">"&lt;b&gt;الأمثل للساعات الذكية&lt;/b&gt;
يمكن التحقق من رسائل التذكير، رفض أو غفوة عادتك مباشرة من ساعتك الاندرويد وير. "</string>
<string name="about">"معلومات حول"</string>
<string name="translators">"المترجمين"</string>
<string name="developers">"المطورين"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"الإصدار %s"</string>
<string name="frequency">"تردد"</string>
<string name="checkmark">"علامة الاختيار"</string>
<!-- This is a shorter version of "Habit Strength" -->
<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>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<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">"خمس مرات في الأسبوع"</string>
<string name="custom_frequency">"مخصص..."</string>
<string name="help">"مساعدة والأسئلة المتداولة"</string>
<string name="could_not_export">"فشل في تصدير البيانات."</string>
<string name="could_not_import">"فشل في استيراد البيانات."</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<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">"صدر ملف التي يمكن فتحها ببرنامج جداول البيانات مثل إكسل أو وبينوفيس. لا يمكن إستيراد هذا الملف."</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>
<!-- Three-month period -->
<string name="quarter">"ربع سنه"</string>
<string name="year">"عام"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- 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>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"النقاط"</string>
<string name="reminder_sound">"صوت تذكير"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"صامت"</string>
</resources>
<string name="app_name">لوب ملاحق العادة </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">لوب يساعدك على خلق والحفاظ على العادات الجيدة.</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">ساعة واحدة</string>
<string name="interval_2_hour">ساعتين</string>
<string name="interval_4_hour">أربع ساعات</string>
<string name="interval_8_hour">ثماني ساعات</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">تقييم هذا التطبيق على جوجل بلاي</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="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">خمس مرات في الأسبوع</string>
<string name="custom_frequency">مخصص...</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">صدر ملف التي يمكن فتحها ببرنامج جداول البيانات مثل إكسل أو وبينوفيس. لا يمكن إستيراد هذا الملف.</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="action">عمل</string>
<string name="download">تحميل</string>
<string name="export">استخراج</string>
</resources>

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">Loop Следене на навици</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 Следене на навици ви помага да създавате и поддържате добри навици.</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="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="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">2 пъти седмично</string>
<string name="five_times_per_week">5 пъти седмично</string>
<string name="custom_frequency">Друго ...</string>
<string name="help">Помощ &amp; ЧЗВ</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 Calc. Този файл не може да се импортира обратно.</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>
<!-- 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>
</resources>

@ -1,180 +1,161 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">"Loop Habit Tracker"</string>
<string name="main_activity_title">"Hàbits"</string>
<string name="action_settings">"Ajustaments"</string>
<string name="edit">"Editar"</string>
<string name="delete">"Esborrar"</string>
<string name="archive">"Arxivar"</string>
<string name="unarchive">"Treure de l'arxiu"</string>
<string name="add_habit">"Afegir hàbit"</string>
<string name="color_picker_default_title">"Canviar color"</string>
<string name="toast_habit_created">"Hàbit creat."</string>
<string name="toast_habit_deleted">"Hàbits esborrats."</string>
<string name="toast_habit_restored">"Hàbits restaurats."</string>
<string name="toast_nothing_to_undo">"Res a desfer."</string>
<string name="toast_nothing_to_redo">"Res a refer."</string>
<string name="toast_habit_changed">"Hàbit modificat."</string>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<string name="toast_habit_changed_back">"Hàbit restaurat."</string>
<string name="toast_habit_archived">"Hàbits arxivats."</string>
<string name="toast_habit_unarchived">"Hàbits trets de l'arxiu."</string>
<string name="overview">"Visió general"</string>
<string name="habit_strength">"Fortalesa de l'hàbit"</string>
<string name="history">"Història"</string>
<string name="clear">"Netejar"</string>
<string name="description_hint">"Pregunta (Avui vas...?)"</string>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<string name="repeat">"Repetir"</string>
<string name="times_every">"vegades en"</string>
<string name="days">"dies"</string>
<string name="reminder">"Recordatori"</string>
<string name="discard">"Descartar"</string>
<string name="save">"Desar"</string>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<string name="streaks">"Ratxa"</string>
<string name="no_habits_found">"No tens hàbits actius"</string>
<string name="long_press_to_toggle">"Prem i manté per a marcar o desmarcar"</string>
<string name="reminder_off">"Desactivat"</string>
<string name="validation_name_should_not_be_blank">"El nom no pot estar buit"</string>
<string name="validation_number_should_be_positive">"El número ha de ser positiu"</string>
<string name="validation_at_most_one_rep_per_day">"Pots tenir com a màxim una repetició per dia"</string>
<string name="create_habit">"Crear hàbit"</string>
<string name="edit_habit">"Editar hàbit"</string>
<string name="check">"Revisar"</string>
<string name="snooze">"Més tard"</string>
<!-- App introduction -->
<string name="intro_title_1">"Benvingut"</string>
<string name="intro_description_1">"Loop Habit Tracker t'ajuda a crear i mantenir bons hàbits"</string>
<string name="intro_title_2">"Crear alguns hàbits nous"</string>
<string name="intro_description_2">"Cada dia, després de complir el teu hàbit, posa una marca amb la app"</string>
<string name="intro_title_3">"Continua fent-ho"</string>
<string name="intro_description_3">"Els hàbits que facis consistentment durant una llarga temporada obtindran una estrella"</string>
<string name="intro_title_4">"Segueix el teu progrès"</string>
<string name="intro_description_4">"Els gràfics detallats et mostren com han mirollat els teus hàbits al llarg del temps"</string>
<string name="interval_15_minutes">"15 minuts"</string>
<string name="interval_30_minutes">"30 minuts"</string>
<string name="interval_1_hour">"1 hora"</string>
<string name="interval_2_hour">"2 hores"</string>
<string name="interval_4_hour">"4 hores"</string>
<string name="interval_8_hour">"8 hores"</string>
<string name="pref_toggle_title">"Activar/desactivar repeticions prement curt"</string>
<string name="pref_toggle_description">"Més adequat, però pot causar activacions accidentals"</string>
<string name="pref_snooze_interval_title">"Interval d'endarreriment en recordatoris"</string>
<string name="pref_rate_this_app">"Valora aquesta app a Google Play"</string>
<string name="pref_send_feedback">"Enviar resposta al desenvolupador"</string>
<string name="pref_view_source_code">"Veure codi font a Github"</string>
<string name="pref_view_app_introduction">"Veure introducció de l'app"</string>
<string name="links">"Enllaços"</string>
<string name="behavior">"Comportament"</string>
<string name="name">"Nom"</string>
<string name="show_archived">"Mostrar arxivats"</string>
<string name="settings">"Ajustaments"</string>
<string name="snooze_interval">"Interval d'endarreriment"</string>
<string name="hint_title">"Ho sabies?"</string>
<string name="hint_drag">"Per a ordenar les entrades, prem i mantè sobre el nom de l'hàbit, després arrossega'l al lloc correcte."</string>
<string name="hint_landscape">"Pots veure més dies posant el teu telèfon en orientació apaisada."</string>
<string name="delete_habits">"Esborrar hàbits"</string>
<string name="delete_habits_message">"Els hàbits seran esborrats permanentment. Aquesta acció no es pot desfer."</string>
<string name="weekends">"Caps de setmana"</string>
<string name="any_weekday">"Dilluns a divendres"</string>
<string name="any_day">"Qualsevol dia de la setmana"</string>
<string name="select_weekdays">"Selecciona els dies"</string>
<string name="export_to_csv">"Exportar a CSV"</string>
<string name="done_label">"Fet"</string>
<string name="clear_label">"Treure"</string>
<string name="select_hours">"Selecciona les hores"</string>
<string name="select_minutes">"Selecciona els minuts"</string>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"Crea bons hàbits i segueix el seu progrés al llarg del temps (sense publicitat)"</string>
<string name="store_description_1">"Loop t'ajuda a crear i mantenir bons hàbits, permetent-te aconseguir els teus objectius a llarg termini. Els gràfics i estadístiques detallades et mostren com han millorat els teus hàbits al llarg del temps. És completament de codi obert i lliure de publicitat."</string>
<string name="store_feature_interface">"&lt;b&gt;Senzilla, bonica i moderna interfície&lt;/b&gt;
Loop té una interfície minimalista que és fàcil d'utilitzar i segueix les guies de \"material design\"."</string>
<string name="store_feature_score">"&lt;b&gt;Puntuació d'hàbit&lt;/b&gt;
A més de mostrar la teva ratxa actual, Loop té un algoritme avançat per a calcular la fortalesa dels teus hàbits. Cada repetició fa el teu hàbit més fort, i cada dia que fallis el farà més dèbil. Tot i això uns quants dies que fallis després d'una llarga ratxa no malmetrà completament el teu progrès."</string>
<string name="store_feature_statistics">"&lt;b&gt;Gràfics i estadístiques detallades&lt;/b&gt;
Permet veure de forma clara com han millorat els teus hàbits al llarg del temps amb gràfics bonics i detallats. Pots anar enrera i veure també l'històric complet dels teus hàbits."</string>
<string name="store_feature_schedules">"&lt;b&gt;Planificació flexible&lt;/b&gt;
Suporta tant hàbits diaris com hàbits amb planificacions més complexes, com per exemple 3 vegades per setmana; un cop setmana si setmana no; o un dia si i altre no."</string>
<string name="store_feature_reminders">"&lt;b&gt;Recordatoris&lt;/b&gt;
Crea un recordatori individual per a cada hàbit, a l'hora escollida del dia. Revisa fàcilment, endarrereix o anul·la el teu hàbit directament des de la notificació, sense obrir l'app."</string>
<string name="store_feature_opensource">"&lt;b&gt;Completament de codi obert i lliure de publicitat&lt;/b&gt;
No hi ha cap tipus de publicitat, notificacions molestes o permisos intrusius en aquesta app, i mai n'hi haurà. El codi font complet està disponible sota la llicència GPLv3."</string>
<string name="store_feature_wear">"&lt;b&gt;Optimitzat per a rellotges intel·ligents&lt;/b&gt;
Els recordatoris poden ser revisats, endarrerits o anul·lats directament des del teu rellotge Android Wear."</string>
<string name="about">"En quant a"</string>
<string name="translators">"Traductors"</string>
<string name="developers">"Desenvolupadors"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"Versió %s"</string>
<string name="frequency">"Freqüència"</string>
<string name="checkmark">"Marca"</string>
<!-- This is a shorter version of "Habit Strength" -->
<string name="strength">"Fortalesa"</string>
<string name="best_streaks">"Millors ratxes"</string>
<string name="current_streaks">"Ratxa actual"</string>
<string name="number_of_repetitions">"Nombre de repeticions"</string>
<string name="last_x_days">"Últims %d dies"</string>
<string name="last_x_weeks">"Últimes %d setmanes"</string>
<string name="last_x_months">"Últims %d mesos"</string>
<string name="last_x_years">"Últims %d anys"</string>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<string name="all_time">"Tot el temps"</string>
<string name="every_day">"Cada dia"</string>
<string name="every_week">"Cada setmana"</string>
<string name="two_times_per_week">"2 cops per setmana"</string>
<string name="five_times_per_week">"5 cops per setmana"</string>
<string name="custom_frequency">"Personalitzar ..."</string>
<string name="help">"Ajuda i Preguntes Freqüents"</string>
<string name="could_not_export">"Error exportant dades."</string>
<string name="could_not_import">"Error important dades."</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<string name="file_not_recognized">"Fitxer no reconegut."</string>
<string name="habits_imported">"Hàbits importats correctament."</string>
<string name="full_backup_success">"Còpia de seguretat sencera exportada satisfactòriament."</string>
<string name="import_data">"Importar dades"</string>
<string name="export_full_backup">"Exportar còpia de seguretat sencera"</string>
<string name="import_data_summary">"Suporta còpies de seguretat exportades per aquesta app, també fitxers generats per Tickmate, HabitBull o Rewire. Mira les Preguntes Freqüents per a més informació."</string>
<string name="export_as_csv_summary">"Genera fitxers que poden ser oberts per programari de fulles de càlcul, com ara Microsoft Excel o OpenOffice Calc. Aquest fitxer no pot tornar-se a importar."</string>
<string name="export_full_backup_summary">"Genera un fitxer que contè totes les teves dades. Aquest fitxer pot tornar-se a importar."</string>
<string name="bug_report_failed">"Ha fallat la generació de l'informe d'error."</string>
<string name="generate_bug_report">"Generar informe d'error"</string>
<string name="troubleshooting">"Resolució de problemes"</string>
<string name="help_translate">"Ajuda a traduïr aquesta app"</string>
<string name="night_mode">"Mode nocturn"</string>
<string name="use_pure_black">"Utilitzar negre pur en el mode nocturn"</string>
<string name="pure_black_description">"Reemplaça fons grisos per negre pur en el mode nocturn. Redueix consum de bateria en telèfons amb pantalla AMOLED."</string>
<string name="interface_preferences">"Interfície"</string>
<string name="reverse_days">"Ordre invers de dies"</string>
<string name="reverse_days_description">"Mostra els dies en ordre invers en la pantalla principal"</string>
<string name="day">"Dia"</string>
<string name="week">"Setmana"</string>
<string name="month">"Mes"</string>
<!-- Three-month period -->
<string name="quarter">"Quatrimestre"</string>
<string name="year">"Any"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">"vegades en"</string>
<string name="every_x_days">"Cada %d dies"</string>
<string name="every_x_weeks">"Cada %d setmanes"</string>
<string name="every_x_months">"Cada %d mesos"</string>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"Puntuació"</string>
<string name="reminder_sound">"So de recordatori"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"Cap"</string>
</resources>
<string name="main_activity_title">Hàbits</string>
<string name="action_settings">Ajustaments</string>
<string name="edit">Editar</string>
<string name="delete">Esborrar</string>
<string name="archive">Arxivar</string>
<string name="unarchive">Treure de l\'arxiu</string>
<string name="add_habit">Afegir hàbit</string>
<string name="color_picker_default_title">Canviar color</string>
<string name="toast_habit_created">Hàbit creat.</string>
<string name="toast_habit_deleted">Hàbits esborrats.</string>
<string name="toast_habit_restored">Hàbits restaurats.</string>
<string name="toast_nothing_to_undo">Res a desfer.</string>
<string name="toast_nothing_to_redo">Res a refer.</string>
<string name="toast_habit_changed">Hàbit modificat.</string>
<string name="toast_habit_changed_back">Hàbit restaurat.</string>
<string name="toast_habit_archived">Hàbits arxivats.</string>
<string name="toast_habit_unarchived">Hàbits trets de l\'arxiu.</string>
<string name="overview">Visió general</string>
<string name="habit_strength">Fortalesa de l\'hàbit</string>
<string name="history">Història</string>
<string name="clear">Netejar</string>
<string name="description_hint">Pregunta (Avui vas...?)</string>
<string name="repeat">Repetir</string>
<string name="times_every">vegades en</string>
<string name="days">dies</string>
<string name="reminder">Recordatori</string>
<string name="discard">Descartar</string>
<string name="save">Desar</string>
<string name="streaks">Ratxa</string>
<string name="no_habits_found">No tens hàbits actius</string>
<string name="long_press_to_toggle">Prem i manté per a marcar o desmarcar</string>
<string name="reminder_off">Desactivat</string>
<string name="validation_name_should_not_be_blank">El nom no pot estar buit</string>
<string name="validation_number_should_be_positive">El número ha de ser positiu</string>
<string name="validation_at_most_one_rep_per_day">Pots tenir com a màxim una repetició per dia</string>
<string name="create_habit">Crear hàbit</string>
<string name="edit_habit">Editar hàbit</string>
<string name="check">Revisar</string>
<string name="snooze">Més tard</string>
<!-- App introduction -->
<string name="intro_title_1">Benvingut</string>
<string name="intro_description_1">Loop Habit Tracker t\'ajuda a crear i mantenir bons hàbits</string>
<string name="intro_title_2">Crear alguns hàbits nous</string>
<string name="intro_description_2">Cada dia, després de complir el teu hàbit, posa una marca amb la app</string>
<string name="intro_title_3">Continua fent-ho</string>
<string name="intro_description_3">Els hàbits que facis consistentment durant una llarga temporada obtindran una estrella</string>
<string name="intro_title_4">Segueix el teu progrès</string>
<string name="intro_description_4">Els gràfics detallats et mostren com han mirollat els teus hàbits al llarg del temps</string>
<string name="interval_15_minutes">15 minuts</string>
<string name="interval_30_minutes">30 minuts</string>
<string name="interval_1_hour">1 hora</string>
<string name="interval_2_hour">2 hores</string>
<string name="interval_4_hour">4 hores</string>
<string name="interval_8_hour">8 hores</string>
<string name="interval_24_hour">24 hores</string>
<string name="pref_toggle_title">Activar/desactivar repeticions prement curt</string>
<string name="pref_toggle_description">Més adequat, però pot causar activacions accidentals</string>
<string name="pref_snooze_interval_title">Interval d\'endarreriment en recordatoris</string>
<string name="pref_rate_this_app">Valora aquesta app a Google Play</string>
<string name="pref_send_feedback">Enviar resposta al desenvolupador</string>
<string name="pref_view_source_code">Veure codi font a Github</string>
<string name="pref_view_app_introduction">Veure introducció de l\'app</string>
<string name="links">Enllaços</string>
<string name="behavior">Comportament</string>
<string name="name">Nom</string>
<string name="settings">Ajustaments</string>
<string name="snooze_interval">Interval d\'endarreriment</string>
<string name="hint_title">Ho sabies?</string>
<string name="hint_drag">Per a ordenar les entrades, prem i mantè sobre el nom de l\'hàbit, després arrossega\'l al lloc correcte.</string>
<string name="hint_landscape">Pots veure més dies posant el teu telèfon en orientació apaisada.</string>
<string name="delete_habits">Esborrar hàbits</string>
<string name="delete_habits_message">Els hàbits seran esborrats permanentment. Aquesta acció no es pot desfer.</string>
<string name="weekends">Caps de setmana</string>
<string name="any_weekday">Dilluns a divendres</string>
<string name="any_day">Qualsevol dia de la setmana</string>
<string name="select_weekdays">Selecciona els dies</string>
<string name="export_to_csv">Exportar a CSV</string>
<string name="done_label">Fet</string>
<string name="clear_label">Treure</string>
<string name="select_hours">Selecciona les hores</string>
<string name="select_minutes">Selecciona els minuts</string>
<string name="about">En quant a</string>
<string name="translators">Traductors</string>
<string name="developers">Desenvolupadors</string>
<string name="version_n">Versió %s</string>
<string name="frequency">Freqüència</string>
<string name="checkmark">Marca</string>
<string name="strength">Fortalesa</string>
<string name="best_streaks">Millors ratxes</string>
<string name="current_streaks">Ratxa actual</string>
<string name="number_of_repetitions">Nombre de repeticions</string>
<string name="last_x_days">Últims %d dies</string>
<string name="last_x_weeks">Últimes %d setmanes</string>
<string name="last_x_months">Últims %d mesos</string>
<string name="last_x_years">Últims %d anys</string>
<string name="all_time">Tot el temps</string>
<string name="every_day">Cada dia</string>
<string name="every_week">Cada setmana</string>
<string name="two_times_per_week">2 cops per setmana</string>
<string name="five_times_per_week">5 cops per setmana</string>
<string name="custom_frequency">Personalitzar ...</string>
<string name="help">Ajuda i Preguntes Freqüents</string>
<string name="could_not_export">Error exportant dades.</string>
<string name="could_not_import">Error important dades.</string>
<string name="file_not_recognized">Fitxer no reconegut.</string>
<string name="habits_imported">Hàbits importats correctament.</string>
<string name="full_backup_success">Còpia de seguretat sencera exportada satisfactòriament.</string>
<string name="import_data">Importar dades</string>
<string name="export_full_backup">Exportar còpia de seguretat sencera</string>
<string name="import_data_summary">Suporta còpies de seguretat exportades per aquesta app, també fitxers generats per Tickmate, HabitBull o Rewire. Mira les Preguntes Freqüents per a més informació.</string>
<string name="export_as_csv_summary">Genera fitxers que poden ser oberts per programari de fulles de càlcul, com ara Microsoft Excel o OpenOffice Calc. Aquest fitxer no pot tornar-se a importar.</string>
<string name="export_full_backup_summary">Genera un fitxer que contè totes les teves dades. Aquest fitxer pot tornar-se a importar.</string>
<string name="bug_report_failed">Ha fallat la generació de l\'informe d\'error.</string>
<string name="generate_bug_report">Generar informe d\'error</string>
<string name="troubleshooting">Resolució de problemes</string>
<string name="help_translate">Ajuda a traduïr aquesta app</string>
<string name="night_mode">Mode nocturn</string>
<string name="use_pure_black">Utilitzar negre pur en el mode nocturn</string>
<string name="pure_black_description">Reemplaça fons grisos per negre pur en el mode nocturn. Redueix consum de bateria en telèfons amb pantalla AMOLED.</string>
<string name="interface_preferences">Interfície</string>
<string name="reverse_days">Ordre invers de dies</string>
<string name="reverse_days_description">Mostra els dies en ordre invers en la pantalla principal</string>
<string name="day">Dia</string>
<string name="week">Setmana</string>
<string name="month">Mes</string>
<string name="quarter">Quatrimestre</string>
<string name="year">Any</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">vegades en</string>
<string name="every_x_days">Cada %d dies</string>
<string name="every_x_weeks">Cada %d setmanes</string>
<string name="every_x_months">Cada %d mesos</string>
<string name="score">Puntuació</string>
<string name="reminder_sound">So de recordatori</string>
<string name="none">Cap</string>
<string name="filter">Filtre</string>
<string name="action">Acció</string>
<string name="habit">Hàbit</string>
<string name="export">Exportar</string>
</resources>

@ -1,183 +1,178 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<!-- Fuzzy -->
<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>
<string name="delete">"Smazat"</string>
<string name="archive">"Archivovat"</string>
<string name="unarchive">"Obnovit"</string>
<string name="add_habit">"Přidat zvyk"</string>
<string name="color_picker_default_title">"Změnit barvu"</string>
<string name="toast_habit_created">"Zvyk vytvořen."</string>
<string name="toast_habit_deleted">"Zvyky smazány."</string>
<string name="toast_habit_restored">"Zvyky obnoveny."</string>
<string name="toast_nothing_to_undo">"Nelze jít zpět."</string>
<string name="toast_nothing_to_redo">"Nelze jít vpřed."</string>
<string name="toast_habit_changed">"Zvyk změněn."</string>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<string name="toast_habit_changed_back">"Zvyk změněn zpět."</string>
<string name="toast_habit_archived">"Archivováno."</string>
<string name="toast_habit_unarchived">"Zvyky obnoveny."</string>
<string name="overview">"Přehled"</string>
<string name="habit_strength">"Síla zvyku"</string>
<string name="history">"Historie"</string>
<string name="clear">"Smazat"</string>
<string name="description_hint">"Otázka (Dělal jsi dnes...?)"</string>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<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="discard">"Zrušit"</string>
<string name="save">"Uložit"</string>
<!-- I need some synonyms or context, thx -->
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<string name="streaks">"Serie"</string>
<string name="no_habits_found">"Nemáš žádné aktivní zvyky"</string>
<string name="long_press_to_toggle">"Stiskni a drž pro označení"</string>
<string name="reminder_off">"Off"</string>
<string name="validation_name_should_not_be_blank">"Jméno musíte vyplnit."</string>
<string name="validation_number_should_be_positive">"Číslo musí být kladné."</string>
<string name="validation_at_most_one_rep_per_day">"Můžete mít maximálně jedno označení denně."</string>
<string name="create_habit">"Vytvořit zvyk"</string>
<string name="edit_habit">"Upravit zvyk"</string>
<string name="check">"Označeno"</string>
<string name="snooze">"Odložit"</string>
<!-- App introduction -->
<string name="intro_title_1">"Vítejte"</string>
<string name="intro_description_1">"Sledování zvyků ti pomůže vytvořit a dosáhnout dobrých návyků."</string>
<string name="intro_title_2">"Vytvoř si nové zvyky"</string>
<string name="intro_description_2">"Každý den po splnění zvyku, si ho v aplikaci zaškrtni."</string>
<string name="intro_title_3">"Jen tak dál"</string>
<string name="intro_description_3">"Zvyky, které vykonáváš pravidelně delší dobu, se označí hvězdou."</string>
<string name="intro_title_4">"Sleduj svůj postup"</string>
<string name="intro_description_4">"Detailní grafy ti ukážou, jak se tvé zvyky v průběhu času zlepšily."</string>
<string name="interval_15_minutes">"15 minut"</string>
<string name="interval_30_minutes">"30 minut"</string>
<string name="interval_1_hour">"Hodina"</string>
<string name="interval_2_hour">"2 hodiny"</string>
<string name="interval_4_hour">"4 hodiny"</string>
<string name="interval_8_hour">"8 hodin"</string>
<string name="pref_toggle_title">"Označte opakování krátkým stisknutím"</string>
<string name="pref_toggle_description">"Praktičtější, ale může způsobit nechtěné označení."</string>
<string name="pref_snooze_interval_title">"Doba odložení upomínky"</string>
<string name="pref_rate_this_app">"Ohodnoťte nás v Google Play"</string>
<string name="pref_send_feedback">"Zpětná vazba vývojáři"</string>
<string name="pref_view_source_code">"Zobrazit zdroj. kód na GitHub"</string>
<string name="pref_view_app_introduction">"Představení aplikace"</string>
<string name="links">"Odkazy"</string>
<string name="behavior">"Chování"</string>
<string name="name">"Jméno"</string>
<string name="show_archived">"Zobrazit archiv"</string>
<string name="settings">"Nastavení"</string>
<string name="snooze_interval">"Interval odkladu"</string>
<string name="hint_title">"Věděli jste?"</string>
<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="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="done_label">"Hotovo"</string>
<string name="clear_label">"Smazat"</string>
<string name="select_hours">"Vyber hodiny"</string>
<string name="select_minutes">"Vyber minuty"</string>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"Vytvoř si prospěšné návyky a sleduj jejich vývoj v průběhu času (bez reklam)"</string>
<string name="store_description_1">"Aplikace ti pomůže vytvořit a udržovat si prospěšné návyky a dosáhnout tak tvých dlouhodobých cílů. Detailní grafy a statistiky ti ukáží, jak se tvoje zvyky postupem času zlepšují. Vše je kompletně bez reklam a open source."</string>
<string name="store_feature_interface">"&lt;b&gt;Jednoduché, krásné a moderní prostředí&lt;/b&gt;
Aplikace má minimalistický design s jednoduchým použitím. Dodržuje pravidla material designu."</string>
<string name="store_feature_score">"&lt;b&gt;Síla zvyku&lt;/b&gt;
Pro zobrazení aktuální úspěšné serie aplikace využívá pokročilý algoritmus, aby vypočítala sílu tvých zvyků. Každé opakování dělá tvůj zvyk silnějším a každé nedodržení ho oslabuje. Ale pár vynechaných dní po dlouhé řadě kompletně nezničí celý tvůj postup."</string>
<string name="store_feature_statistics">"&lt;b&gt;Detailní grafy a statistika&lt;/b&gt;
Přehledně vidíš na krásných grafech, jak moc se tvoje zvyky zlepšují v průběhu času. Jeď zpět, abys viděl kompletní historii."</string>
<string name="store_feature_schedules">"&lt;b&gt;Flexibilní časový plán&lt;/b&gt;
Podpora jak denních návyků, tak návyků s komplexnějším rozvrhem. Jako jsou 3 krát týdně, jednou za dva týdny, nebo obden."</string>
<string name="store_feature_reminders">"&lt;b&gt;Upomínky&lt;/b&gt;
Vytvoř si individuální upomínku pro každý zvyk ve zvolený čas. Jednoduše potvrď, přeskoč nebo odlož notifikace bez nutnosti otevření aplikace."</string>
<string name="store_feature_opensource">"&lt;b&gt;Kompletně bez reklam a open source&lt;/b&gt;
Nejsou tu naprosto žádné reklamy, otravné notifikace nebo dotěrná povolení aplikace. A nikdy nebudou. Kompletní zdrojový kód je dostupný pod GPLv3."</string>
<string name="store_feature_wear">"&lt;b&gt;Optimalizované pro chytré hodinky&lt;/b&gt;
Upomínky mohou být potvrzen, odloženy nebo smazány přímo z tvého zařízení s Android Wear."</string>
<string name="about">"O nás"</string>
<string name="translators">"Překladatelé"</string>
<string name="developers">"Vývojáři"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"Verze %s"</string>
<string name="frequency">"Frekvence"</string>
<string name="checkmark">"Zatržítko"</string>
<!-- This is a shorter version of "Habit Strength" -->
<string name="strength">"Síla"</string>
<string name="best_streaks">"Nejlepší serie"</string>
<string name="current_streaks">"Aktuální serie"</string>
<string name="number_of_repetitions">"Počet opakování"</string>
<string name="last_x_days">"Posledních %d dnů"</string>
<string name="last_x_weeks">"Posledních %d týdnů"</string>
<string name="last_x_months">"Posledních %d měsíců"</string>
<string name="last_x_years">"Posledních %d roků"</string>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<string name="all_time">"Bez omezení"</string>
<string name="every_day">"Každý den"</string>
<string name="every_week">"Každý týden"</string>
<string name="two_times_per_week">"2 krát týdně"</string>
<string name="five_times_per_week">"5 krát týdně"</string>
<string name="custom_frequency">"Vlastní..."</string>
<string name="help">"Pomoc a FAQ"</string>
<string name="could_not_export">"Export selhal."</string>
<string name="could_not_import">"Import selhal."</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<string name="file_not_recognized">"Soubor netozpoznán."</string>
<string name="habits_imported">"Zvyky úspěšně importovány."</string>
<string name="full_backup_success">"Kompletní záloha úspěšně exportována."</string>
<string name="import_data">"Importovat"</string>
<string name="export_full_backup">"Kompletní export"</string>
<string name="import_data_summary">"Podpora exportů z této aplikace, ale také souborů vygenerovaných aplikacemi od Tickmate, HabitBull nebo Rewire. Pro více info si prečti FAQ."</string>
<string name="export_as_csv_summary">"Generuje soubory, které můžeš otevřít v tabulkových editorech, jako jsou Microsoft Excel nebo OpenOffice Calc. Tyto soubory nelze importovat zpět."</string>
<string name="export_full_backup_summary">"Generuje soubor, který obsahuje všechna tvoje data. Tento soubor můžeš importovat zpět."</string>
<string name="bug_report_failed">"Generace výpisu chyb selhala."</string>
<string name="generate_bug_report">"Generovat výpis chyb"</string>
<string name="troubleshooting">"Řešení problémů"</string>
<string name="help_translate">"Pomozte s překladem aplikace"</string>
<string name="night_mode">"Noční téma"</string>
<string name="use_pure_black">"Zobrazit čistě černou v nočním tématu"</string>
<string name="pure_black_description">"Nahradí šedé pozadí čistou černou v nočním tématu. Snižuje spotřebu baterie v telefonech s AMOLED displejem."</string>
<string name="interface_preferences">"Rozhraní"</string>
<string name="reverse_days">"Otočit pořadí dnů"</string>
<string name="reverse_days_description">"Zobrazí dny na úvodní stránce v obráceném pořadí"</string>
<string name="day">"Den"</string>
<string name="week">"Týden"</string>
<string name="month">"Měsíc"</string>
<!-- Three-month period -->
<string name="quarter">"Čtvrtletí"</string>
<string name="year">"Rok"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">"krát za"</string>
<string name="every_x_days">"Každých %d dní"</string>
<string name="every_x_weeks">"Každých %d týdnů"</string>
<string name="every_x_months">"Každých %d měsíců"</string>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"Skóre"</string>
<string name="reminder_sound">"Zvuk upomínky"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"Žádný"</string>
</resources>
<string name="app_name">Sledování zvyků</string>
<string name="main_activity_title">Zvyky</string>
<string name="action_settings">Nastavení</string>
<string name="edit">Upravit</string>
<string name="delete">Smazat</string>
<string name="archive">Archivovat</string>
<string name="unarchive">Obnovit</string>
<string name="add_habit">Přidat zvyk</string>
<string name="color_picker_default_title">Změnit barvu</string>
<string name="toast_habit_created">Zvyk vytvořen.</string>
<string name="toast_habit_deleted">Zvyky smazány.</string>
<string name="toast_habit_restored">Zvyky obnoveny.</string>
<string name="toast_nothing_to_undo">Nelze jít zpět.</string>
<string name="toast_nothing_to_redo">Nelze jít vpřed.</string>
<string name="toast_habit_changed">Zvyk změněn.</string>
<string name="toast_habit_changed_back">Zvyk změněn zpět.</string>
<string name="toast_habit_archived">Archivováno.</string>
<string name="toast_habit_unarchived">Zvyky obnoveny.</string>
<string name="overview">Přehled</string>
<string name="habit_strength">Síla zvyku</string>
<string name="history">Historie</string>
<string name="clear">Smazat</string>
<string name="description_hint">Otázka (Dělal jsi dnes...?)</string>
<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="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="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>
<string name="validation_number_should_be_positive">Číslo musí být kladné.</string>
<string name="validation_at_most_one_rep_per_day">Můžete mít maximálně jedno označení denně.</string>
<string name="create_habit">Vytvořit zvyk</string>
<string name="edit_habit">Upravit zvyk</string>
<string name="check">Označeno</string>
<string name="snooze">Odložit</string>
<!-- App introduction -->
<string name="intro_title_1">Vítejte</string>
<string name="intro_description_1">Sledování zvyků ti pomůže vytvořit a dosáhnout dobrých návyků.</string>
<string name="intro_title_2">Vytvoř si nové zvyky</string>
<string name="intro_description_2">Každý den po splnění zvyku, si ho v aplikaci zaškrtni.</string>
<string name="intro_title_3">Jen tak dál</string>
<string name="intro_description_3">Zvyky, které vykonáváš pravidelně delší dobu, se označí hvězdou.</string>
<string name="intro_title_4">Sleduj svůj postup</string>
<string name="intro_description_4">Detailní grafy ti ukážou, jak se tvé zvyky v průběhu času zlepšily.</string>
<string name="interval_15_minutes">15 minut</string>
<string name="interval_30_minutes">30 minut</string>
<string name="interval_1_hour">Hodina</string>
<string name="interval_2_hour">2 hodiny</string>
<string name="interval_4_hour">4 hodiny</string>
<string name="interval_8_hour">8 hodin</string>
<string name="interval_24_hour">24 hodin</string>
<string name="pref_toggle_title">Označte opakování krátkým stisknutím</string>
<string name="pref_toggle_description">Praktičtější, ale může způsobit nechtěné označení.</string>
<string name="pref_snooze_interval_title">Doba odložení upomínky</string>
<string name="pref_rate_this_app">Ohodnoťte nás v Google Play</string>
<string name="pref_send_feedback">Zpětná vazba vývojáři</string>
<string name="pref_view_source_code">Zobrazit zdroj. kód na GitHub</string>
<string name="pref_view_app_introduction">Představení aplikace</string>
<string name="links">Odkazy</string>
<string name="behavior">Chování</string>
<string name="name">Jméno</string>
<string name="settings">Nastavení</string>
<string name="snooze_interval">Interval odkladu</string>
<string name="hint_title">Věděli jste?</string>
<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="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="done_label">Hotovo</string>
<string name="clear_label">Smazat</string>
<string name="select_hours">Vyber hodiny</string>
<string name="select_minutes">Vyber minuty</string>
<string name="about">O nás</string>
<string name="translators">Překladatelé</string>
<string name="developers">Vývojáři</string>
<string name="version_n">Verze %s</string>
<string name="frequency">Frekvence</string>
<string name="checkmark">Zatržítko</string>
<string name="strength">Síla</string>
<string name="best_streaks">Nejlepší serie</string>
<string name="current_streaks">Aktuální serie</string>
<string name="number_of_repetitions">Počet opakování</string>
<string name="last_x_days">Posledních %d dnů</string>
<string name="last_x_weeks">Posledních %d týdnů</string>
<string name="last_x_months">Posledních %d měsíců</string>
<string name="last_x_years">Posledních %d roků</string>
<string name="all_time">Bez omezení</string>
<string name="every_day">Každý den</string>
<string name="every_week">Každý týden</string>
<string name="two_times_per_week">2 krát týdně</string>
<string name="five_times_per_week">5 krát týdně</string>
<string name="custom_frequency">Vlastní...</string>
<string name="help">Pomoc a FAQ</string>
<string name="could_not_export">Export selhal.</string>
<string name="could_not_import">Import selhal.</string>
<string name="file_not_recognized">Soubor netozpoznán.</string>
<string name="habits_imported">Zvyky úspěšně importovány.</string>
<string name="full_backup_success">Kompletní záloha úspěšně exportována.</string>
<string name="import_data">Importovat</string>
<string name="export_full_backup">Kompletní export</string>
<string name="import_data_summary">Podpora exportů z této aplikace, ale také souborů vygenerovaných aplikacemi od Tickmate, HabitBull nebo Rewire. Pro více info si prečti FAQ.</string>
<string name="export_as_csv_summary">Generuje soubory, které můžeš otevřít v tabulkových editorech, jako jsou Microsoft Excel nebo OpenOffice Calc. Tyto soubory nelze importovat zpět.</string>
<string name="export_full_backup_summary">Generuje soubor, který obsahuje všechna tvoje data. Tento soubor můžeš importovat zpět.</string>
<string name="bug_report_failed">Generace výpisu chyb selhala.</string>
<string name="generate_bug_report">Generovat výpis chyb</string>
<string name="troubleshooting">Řešení problémů</string>
<string name="help_translate">Pomozte s překladem aplikace</string>
<string name="night_mode">Noční téma</string>
<string name="use_pure_black">Zobrazit čistě černou v nočním tématu</string>
<string name="pure_black_description">Nahradí šedé pozadí čistou černou v nočním tématu. Snižuje spotřebu baterie v telefonech s AMOLED displejem.</string>
<string name="interface_preferences">Rozhraní</string>
<string name="reverse_days">Otočit pořadí dnů</string>
<string name="reverse_days_description">Zobrazí dny na úvodní stránce v obráceném pořadí</string>
<string name="day">Den</string>
<string name="week">Týden</string>
<string name="month">Měsíc</string>
<string name="quarter">Čtvrtletí</string>
<string name="year">Rok</string>
<string name="total">Celkem</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">krát za</string>
<string name="every_x_days">Každých %d dní</string>
<string name="every_x_weeks">Každých %d týdnů</string>
<string name="every_x_months">Každých %d měsíců</string>
<string name="score">Skóre</string>
<string name="reminder_sound">Zvuk upomínky</string>
<string name="none">Žádný</string>
<string name="filter">Filtr</string>
<string name="hide_completed">Skrýt dokončené</string>
<string name="hide_archived">Skrýt archivované</string>
<string name="sticky_notifications">Připnout notifikaci</string>
<string name="sticky_notifications_description">Zabraňuje notifikaci její odstranění odsunutím.</string>
<string name="repair_database">Opravit databázi</string>
<string name="database_repaired">Databáze opravena.</string>
<string name="uncheck">Odznačit</string>
<string name="toggle">Přepnout</string>
<string name="action">Akce</string>
<string name="habit">Zvyk</string>
<string name="sort">Řadit</string>
<string name="manually">Manuálně</string>
<string name="by_name">Abecedně</string>
<string name="by_color">Podle barvy</string>
<string name="by_score">Podle skóre</string>
<string name="download">Stáhnout</string>
<string name="export">Export</string>
</resources>

@ -1,180 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">"Loop Vane Tracker"</string>
<string name="main_activity_title">"Vaner"</string>
<string name="action_settings">"Indstillinger"</string>
<string name="edit">"Rediger"</string>
<string name="delete">"Slet"</string>
<string name="archive">"Arkiver"</string>
<string name="unarchive">"Fjern fra arkiv"</string>
<string name="add_habit">"Tilføj vane"</string>
<string name="color_picker_default_title">"Skift farve"</string>
<string name="toast_habit_created">"Vanen er skabt."</string>
<string name="toast_habit_deleted">"Vanen er slettet."</string>
<string name="toast_habit_restored">"Vanen er genskabt."</string>
<string name="toast_nothing_to_undo">"Intet at fortryde."</string>
<string name="toast_nothing_to_redo">"Intet at gengøre."</string>
<string name="toast_habit_changed">"Vanen er ændret"</string>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<string name="toast_habit_changed_back">"Vanen er ændret tilbage."</string>
<string name="toast_habit_archived">"Vanerne er arkiveret."</string>
<string name="toast_habit_unarchived">"Vanerne er fjernet fra arkivet."</string>
<string name="overview">"Overblik"</string>
<string name="habit_strength">"Vanestyrke"</string>
<string name="history">"Historie"</string>
<string name="clear">"Rens"</string>
<string name="description_hint">"Spørgsmål (Fik du … i dag)"</string>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<string name="repeat">"Gentag"</string>
<string name="times_every">"gange på"</string>
<string name="days">"dage"</string>
<string name="reminder">"Påmindelse"</string>
<string name="discard">"Forkast"</string>
<string name="save">"Gem"</string>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<string name="streaks">"i træk"</string>
<string name="no_habits_found">"Du har ingen aktive vaner"</string>
<string name="long_press_to_toggle">"Tryk og hold nede for at afkrydse"</string>
<string name="reminder_off">"Slukket"</string>
<string name="validation_name_should_not_be_blank">"Navn skal udfyldes."</string>
<string name="validation_number_should_be_positive">"Tallet skal være positivt."</string>
<string name="validation_at_most_one_rep_per_day">"Du kan højst have én gentagelse per dag"</string>
<string name="create_habit">"Skab en vane"</string>
<string name="edit_habit">"Rediger vane"</string>
<string name="check">"Tjek"</string>
<string name="snooze">"Senere"</string>
<!-- App introduction -->
<string name="intro_title_1">"Velkommen"</string>
<string name="intro_description_1">"Loop Habit Tracker hjælper dig med at holde gode vaner."</string>
<string name="intro_title_2">"Skab nogle nye vaner"</string>
<string name="intro_description_2">"Hver dag, efter at have udført din vane, skal du sætte et flueben i app'en."</string>
<string name="intro_title_3">"Fortsæt"</string>
<string name="intro_description_3">"Vaner fulgt regelmæssigt gennem langtid modtager en stjerne."</string>
<string name="intro_title_4">"Følg dine fremskridt"</string>
<string name="intro_description_4">"Detaljerede grafer viser dig hvordan dine vaner udvikler sig over tid."</string>
<string name="interval_15_minutes">"15 minutter"</string>
<string name="interval_30_minutes">"30 minutter"</string>
<string name="interval_1_hour">"1 time"</string>
<string name="interval_2_hour">"2 timer"</string>
<string name="interval_4_hour">"4 timer"</string>
<string name="interval_8_hour">"8 timer"</string>
<string name="pref_toggle_title">"Vælg gentagelser med kort tryk"</string>
<string name="pref_toggle_description">"Mere bekvemmeligt, men kan forårsage uhensigtede tryk."</string>
<string name="pref_snooze_interval_title">"Snooze interval på påmindelserne"</string>
<string name="pref_rate_this_app">"Bedøm denne app på Google Play"</string>
<string name="pref_send_feedback">"Send feedback til udvikleren"</string>
<string name="pref_view_source_code">"Se kildekoden på GitHub"</string>
<string name="pref_view_app_introduction">"Se app introduktion"</string>
<string name="links">"Henvisninger"</string>
<string name="behavior">"Opførelse"</string>
<string name="name">"Navn"</string>
<string name="show_archived">"Vis arkiverede"</string>
<string name="settings">"Indstillinger"</string>
<string name="snooze_interval">"Snooze interval"</string>
<string name="hint_title">"Vidste du?"</string>
<string name="hint_drag">"For at omarrangere poster, tryk og hold på navnet på den vane, og træk den til det korrekte sted."</string>
<string name="hint_landscape">"Du kan se flere dage ved at sætte telefonen i liggende tilstand."</string>
<string name="delete_habits">"Slet vaner"</string>
<string name="delete_habits_message">"Vanerne vil blive slettet permanent. Denne handling kan ikke fortrydes."</string>
<string name="weekends">"Weekender"</string>
<string name="any_weekday">"Mandag til Fredag"</string>
<string name="any_day">"En hvilken som helst dag i ugen"</string>
<string name="select_weekdays">"Vælg dage"</string>
<string name="export_to_csv">"Eksporter som CSV"</string>
<string name="done_label">"Færdig"</string>
<string name="clear_label">"Fjern"</string>
<string name="select_hours">"Vælg timer"</string>
<string name="select_minutes">"Vælg minutter"</string>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"Opret gode vaner og spore deres fremskridt over tid (reklamefri)"</string>
<string name="store_description_1">"Loop hjælper dig med at oprette og vedligeholde gode vaner, så du kan nå dine langsigtede mål. Detaljerede grafer og statistikker viser dig, hvordan dine vaner har forbedret over tid. Det er helt reklamefri og open source."</string>
<string name="store_feature_interface">"&lt;B&gt; Enkel, smuk og moderne grænseflade &lt;/ b&gt;
Loop har en minimalistisk brugerflade, der er nem at bruge og følger Google's retningslinjer for materielle design."</string>
<string name="store_feature_score">"&lt;B&gt; Habit score &lt;/ b&gt;
Ud over at vise din nuværende stribe, har Loop en avanceret algoritme til at beregne styrken af dine vaner. Hver gentagelse gør din vane stærkere, og hver misset dag gør det svagere. Et par misset dage efter en lang stribe, vil dog ikke helt ødelægge hele din fremgang."</string>
<string name="store_feature_statistics">"&lt;B&gt; Detaljerede grafer og statistikker &lt;/ b&gt;
Se, hvordan dine vaner har forbedret over tid med smukke og detaljerede grafer. Rul tilbage for at se den komplette oversigt over dine vaner."</string>
<string name="store_feature_schedules">"&lt;B&gt; Fleksible skemaer &lt;/ b&gt;
Understøtter både daglige vaner og vaner med mere komplekse skemaer, såsom 3 gange hver uge; én gang hver anden uge; eller hver anden dag."</string>
<string name="store_feature_reminders">"&lt;B&gt; Påmindelser &lt;/ b&gt;
Opret en individuel påmindelse for hver vane, på et valgt tidspunkt af dagen. Nemt kontrollere, afskedige eller udsætte din vane direkte fra notifikationen, uden at åbne applikationen."</string>
<string name="store_feature_opensource">"&lt;B&gt; Helt reklamefri og open source &lt;/ b&gt;
Der er absolut ingen reklamer, irriterende meddelelser eller indgribende tilladelser i denne app, og det vil der aldrig være. Den komplette kildekode er tilgængelig under GPLv3."</string>
<string name="store_feature_wear">"&lt;B&gt; Optimeret til smartwatches &lt;/ b&gt;
Påmindelser kan kontrolleres, udsæt eller afvise direkte fra din Android Wear ur."</string>
<string name="about">"Om"</string>
<string name="translators">"Oversættere"</string>
<string name="developers">"Udviklere"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"Version %s"</string>
<string name="frequency">"Hyppighed"</string>
<string name="checkmark">"Afkrydsning"</string>
<!-- This is a shorter version of "Habit Strength" -->
<string name="strength">"Styrke"</string>
<string name="best_streaks">"Bedste striber"</string>
<string name="current_streaks">"Aktuel stribe"</string>
<string name="number_of_repetitions">"Antal gentagelser"</string>
<string name="last_x_days">"Sidste % dage"</string>
<string name="last_x_weeks">"Sidste %d uger"</string>
<string name="last_x_months">"Sidste %d måneder"</string>
<string name="last_x_years">"Sidste %d år"</string>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<string name="all_time">"All time"</string>
<string name="every_day">"Hver dag"</string>
<string name="every_week">"Hver uge"</string>
<string name="two_times_per_week">"2 gange om ugen"</string>
<string name="five_times_per_week">"5 gange om ugen"</string>
<string name="custom_frequency">"Brugerdefinerede"</string>
<string name="help">"Hjælp &amp; FAQ"</string>
<string name="could_not_export">"Kunne ikke eksportere data"</string>
<string name="could_not_import">"Kunne ikke importere data"</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<string name="file_not_recognized">"Fil ikke genkendt."</string>
<string name="habits_imported">"Vaner importeret."</string>
<string name="full_backup_success">"Fuld backup eksporteret."</string>
<string name="import_data">"Importer data"</string>
<string name="export_full_backup">"Eksporter fuld backup."</string>
<string name="import_data_summary">"Understøtter fuld backup eksporteret af denne app, samt filer genereret af Tickmate, HabitBull eller Rewire. Se FAQ for mere information."</string>
<string name="export_as_csv_summary">"Opretter filer, der kan åbnes af regneark fra Microsoft Excel eller OpenOffice Calc. Denne fil kan ikke importeres tilbage."</string>
<string name="export_full_backup_summary">"Opretter en fil, der indeholder alle dine data. Denne fil kan importeres tilbage."</string>
<string name="bug_report_failed">"Kunne ikke generere fejlrapport."</string>
<string name="generate_bug_report">"Generer fejlrapport"</string>
<string name="troubleshooting">"Fejlfinding"</string>
<string name="help_translate">"Hjælpe med at oversætte denne app"</string>
<string name="night_mode">"Nat-tilstand"</string>
<string name="use_pure_black">"Brug ren sort i nat-tilstand"</string>
<string name="pure_black_description">"Erstatter grå baggrunde med ren sort i nat-tilstand. Reducerer batteriforbruget i telefoner med AMOLED skærm."</string>
<string name="interface_preferences">"Grænseflade"</string>
<string name="reverse_days">"Omvendt rækkefølge af dage"</string>
<string name="reverse_days_description">"Vis dag i omvendt rækkefølge på hovedskærmen"</string>
<string name="day">"Dag"</string>
<string name="week">"Uge"</string>
<string name="month">"Måned"</string>
<!-- Three-month period -->
<string name="quarter">"Kvartal"</string>
<string name="year">"År"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">"Tid til"</string>
<string name="every_x_days">"Hver %d dage"</string>
<string name="every_x_weeks">"Hver %d uger"</string>
<string name="every_x_months">"Hver %d måneder"</string>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"Point"</string>
<string name="reminder_sound">"Påmindelse lyd"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"Ingen"</string>
</resources>
<string name="app_name">Loop Vane Tracker</string>
<string name="main_activity_title">Vaner</string>
<string name="action_settings">Indstillinger</string>
<string name="edit">Rediger</string>
<string name="delete">Slet</string>
<string name="archive">Arkiver</string>
<string name="unarchive">Fjern fra arkiv</string>
<string name="add_habit">Tilføj vane</string>
<string name="color_picker_default_title">Skift farve</string>
<string name="toast_habit_created">Vanen er skabt.</string>
<string name="toast_habit_deleted">Vanen er slettet.</string>
<string name="toast_habit_restored">Vanen er genskabt.</string>
<string name="toast_nothing_to_undo">Intet at fortryde.</string>
<string name="toast_nothing_to_redo">Intet at gengøre.</string>
<string name="toast_habit_changed">Vanen er ændret</string>
<string name="toast_habit_changed_back">Vanen er ændret tilbage.</string>
<string name="toast_habit_archived">Vanerne er arkiveret.</string>
<string name="toast_habit_unarchived">Vanerne er fjernet fra arkivet.</string>
<string name="overview">Overblik</string>
<string name="habit_strength">Vanestyrke</string>
<string name="history">Historie</string>
<string name="clear">Rens</string>
<string name="description_hint">Spørgsmål (Fik du &#8230; i dag)</string>
<string name="repeat">Gentag</string>
<string name="times_every">gange på</string>
<string name="days">dage</string>
<string name="reminder">Påmindelse</string>
<string name="discard">Forkast</string>
<string name="save">Gem</string>
<string name="streaks">i træk</string>
<string name="no_habits_found">Du har ingen aktive vaner</string>
<string name="long_press_to_toggle">Tryk og hold nede for at afkrydse</string>
<string name="reminder_off">Slukket</string>
<string name="validation_name_should_not_be_blank">Navn skal udfyldes.</string>
<string name="validation_number_should_be_positive">Tallet skal være positivt.</string>
<string name="validation_at_most_one_rep_per_day">Du kan højst have én gentagelse per dag</string>
<string name="create_habit">Skab en vane</string>
<string name="edit_habit">Rediger vane</string>
<string name="check">Tjek</string>
<string name="snooze">Senere</string>
<!-- App introduction -->
<string name="intro_title_1">Velkommen</string>
<string name="intro_description_1">Loop Habit Tracker hjælper dig med at holde gode vaner.</string>
<string name="intro_title_2">Skab nogle nye vaner</string>
<string name="intro_description_2">Hver dag, efter at have udført din vane, skal du sætte et flueben i app\'en.</string>
<string name="intro_title_3">Fortsæt</string>
<string name="intro_description_3">Vaner fulgt regelmæssigt gennem langtid modtager en stjerne.</string>
<string name="intro_title_4">Følg dine fremskridt</string>
<string name="intro_description_4">Detaljerede grafer viser dig hvordan dine vaner udvikler sig over tid.</string>
<string name="interval_15_minutes">15 minutter</string>
<string name="interval_30_minutes">30 minutter</string>
<string name="interval_1_hour">1 time</string>
<string name="interval_2_hour">2 timer</string>
<string name="interval_4_hour">4 timer</string>
<string name="interval_8_hour">8 timer</string>
<string name="pref_toggle_title">Vælg gentagelser med kort tryk</string>
<string name="pref_toggle_description">Mere bekvemmeligt, men kan forårsage uhensigtede tryk.</string>
<string name="pref_snooze_interval_title">Snooze interval på påmindelserne</string>
<string name="pref_rate_this_app">Bedøm denne app på Google Play</string>
<string name="pref_send_feedback">Send feedback til udvikleren</string>
<string name="pref_view_source_code">Se kildekoden på GitHub</string>
<string name="pref_view_app_introduction">Se app introduktion</string>
<string name="links">Henvisninger</string>
<string name="behavior">Opførelse</string>
<string name="name">Navn</string>
<string name="settings">Indstillinger</string>
<string name="hint_title">Vidste du?</string>
<string name="hint_drag">For at omarrangere poster, tryk og hold på navnet på den vane, og træk den til det korrekte sted.</string>
<string name="hint_landscape">Du kan se flere dage ved at sætte telefonen i liggende tilstand.</string>
<string name="delete_habits">Slet vaner</string>
<string name="delete_habits_message">Vanerne vil blive slettet permanent. Denne handling kan ikke fortrydes.</string>
<string name="weekends">Weekender</string>
<string name="any_weekday">Mandag til Fredag</string>
<string name="any_day">En hvilken som helst dag i ugen</string>
<string name="select_weekdays">Vælg dage</string>
<string name="export_to_csv">Eksporter som CSV</string>
<string name="done_label">Færdig</string>
<string name="clear_label">Fjern</string>
<string name="select_hours">Vælg timer</string>
<string name="select_minutes">Vælg minutter</string>
<string name="about">Om</string>
<string name="translators">Oversættere</string>
<string name="developers">Udviklere</string>
<string name="frequency">Hyppighed</string>
<string name="checkmark">Afkrydsning</string>
<string name="strength">Styrke</string>
<string name="best_streaks">Bedste striber</string>
<string name="current_streaks">Aktuel stribe</string>
<string name="number_of_repetitions">Antal gentagelser</string>
<string name="last_x_days">Sidste % dage</string>
<string name="last_x_weeks">Sidste %d uger</string>
<string name="last_x_months">Sidste %d måneder</string>
<string name="last_x_years">Sidste %d år</string>
<string name="every_day">Hver dag</string>
<string name="every_week">Hver uge</string>
<string name="two_times_per_week">2 gange om ugen</string>
<string name="five_times_per_week">5 gange om ugen</string>
<string name="custom_frequency">Brugerdefinerede</string>
<string name="help">Hjælp &amp; FAQ</string>
<string name="could_not_export">Kunne ikke eksportere data</string>
<string name="could_not_import">Kunne ikke importere data</string>
<string name="file_not_recognized">Fil ikke genkendt.</string>
<string name="habits_imported">Vaner importeret.</string>
<string name="full_backup_success">Fuld backup eksporteret.</string>
<string name="import_data">Importer data</string>
<string name="export_full_backup">Eksporter fuld backup.</string>
<string name="import_data_summary">Understøtter fuld backup eksporteret af denne app, samt filer genereret af Tickmate, HabitBull eller Rewire. Se FAQ for mere information.</string>
<string name="export_as_csv_summary">Opretter filer, der kan åbnes af regneark fra Microsoft Excel eller OpenOffice Calc. Denne fil kan ikke importeres tilbage.</string>
<string name="export_full_backup_summary">Opretter en fil, der indeholder alle dine data. Denne fil kan importeres tilbage.</string>
<string name="bug_report_failed">Kunne ikke generere fejlrapport.</string>
<string name="generate_bug_report">Generer fejlrapport</string>
<string name="troubleshooting">Fejlfinding</string>
<string name="help_translate">Hjælpe med at oversætte denne app</string>
<string name="night_mode">Nat-tilstand</string>
<string name="use_pure_black">Brug ren sort i nat-tilstand</string>
<string name="pure_black_description">Erstatter grå baggrunde med ren sort i nat-tilstand. Reducerer batteriforbruget i telefoner med AMOLED skærm.</string>
<string name="interface_preferences">Grænseflade</string>
<string name="reverse_days">Omvendt rækkefølge af dage</string>
<string name="reverse_days_description">Vis dag i omvendt rækkefølge på hovedskærmen</string>
<string name="day">Dag</string>
<string name="week">Uge</string>
<string name="month">Måned</string>
<string name="quarter">Kvartal</string>
<string name="year">År</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">Tid til</string>
<string name="every_x_days">Hver %d dage</string>
<string name="every_x_weeks">Hver %d uger</string>
<string name="every_x_months">Hver %d måneder</string>
<string name="score">Point</string>
<string name="reminder_sound">Påmindelse lyd</string>
<string name="none">Ingen</string>
</resources>

@ -1,195 +1,178 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">"Loop Habit Tracker"</string>
<string name="main_activity_title">"Gewohnheiten"</string>
<string name="action_settings">"Einstellungen"</string>
<string name="edit">"Bearbeiten"</string>
<string name="delete">"Löschen"</string>
<string name="archive">"Archivieren"</string>
<string name="unarchive">"Dearchivieren"</string>
<string name="add_habit">"Gewohnheit hinzufügen"</string>
<string name="color_picker_default_title">"Farbe ändern"</string>
<string name="toast_habit_created">"Gewohnheit erstellt."</string>
<string name="toast_habit_deleted">"Gewohnheiten gelöscht."</string>
<string name="toast_habit_restored">"Gewohnheiten wiederhergestellt."</string>
<string name="toast_nothing_to_undo">"Nichts zum rückgängig machen."</string>
<string name="toast_nothing_to_redo">"Nichts zum wiederherstellen."</string>
<string name="toast_habit_changed">"Gewohnheit geändert."</string>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<string name="toast_habit_changed_back">"Gewohnheit zurückgeändert."</string>
<string name="toast_habit_archived">"Gewohnheiten archiviert."</string>
<string name="toast_habit_unarchived">"Gewohnheiten dearchiviert."</string>
<string name="overview">"Übersicht"</string>
<!-- Fuzzy -->
<string name="habit_strength">"Stärke"</string>
<string name="history">"Verlauf"</string>
<string name="clear">"Löschen"</string>
<string name="description_hint">"Frage (Hast du heute ...?)"</string>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<string name="repeat">"Wiederhole"</string>
<!-- Fuzzy -->
<string name="times_every">"Mal in"</string>
<string name="days">"Tagen"</string>
<string name="reminder">"Erinnerung"</string>
<string name="discard">"Verwerfen"</string>
<string name="save">"Speichern"</string>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<!-- Fuzzy -->
<string name="streaks">"Strähnen"</string>
<string name="no_habits_found">"Du hast keine aktiven Gewohnheiten"</string>
<string name="long_press_to_toggle">"Berühre und halte um zu (de)markieren"</string>
<string name="reminder_off">"Aus"</string>
<string name="validation_name_should_not_be_blank">"Name darf nicht leer sein."</string>
<string name="validation_number_should_be_positive">"Zahl muss positiv sein."</string>
<string name="validation_at_most_one_rep_per_day">"Du musst wenigstens eine Wiederholung pro Tag haben"</string>
<string name="create_habit">"Gewohnheit erstellen"</string>
<string name="edit_habit">"Gewohnheit bearbeiten"</string>
<string name="check">"Abhaken"</string>
<string name="snooze">"Später"</string>
<!-- App introduction -->
<string name="intro_title_1">"Willkommen"</string>
<string name="intro_description_1">"Loop Habit Tracker hilft dir gute Gewohnheiten anzueignen."</string>
<string name="intro_title_2">"Erstelle einige neue Gewohnheiten"</string>
<string name="intro_description_2">"Jeden Tag, nachdem du die Gewohnheit gemacht hast, hake sie in der App ab."</string>
<string name="intro_title_3">"Bleib dran"</string>
<string name="intro_description_3">"Gewohnheiten, die über eine längere Zeit absolviert werden, bekommen einen ganzen Stern."</string>
<string name="intro_title_4">"Verfolge deinen Fortschritt"</string>
<string name="intro_description_4">"Detaillierte Diagramme zeigen dir wie sich deine Gewohnheiten entwickelt haben."</string>
<string name="interval_15_minutes">"15 Minuten"</string>
<string name="interval_30_minutes">"30 Minuten"</string>
<string name="interval_1_hour">"1 Stunde"</string>
<string name="interval_2_hour">"2 Stunden"</string>
<string name="interval_4_hour">"4 Stunden"</string>
<string name="interval_8_hour">"8 Stunden"</string>
<string name="pref_toggle_title">"Gewohnheiten durch kurzes Drücken abhaken"</string>
<string name="pref_toggle_description">"Bequemer, kann aber eine falsche Auswahl verursachen."</string>
<string name="pref_snooze_interval_title">"\"Später erinnern\"-Intervall bei Erinnerungen"</string>
<string name="pref_rate_this_app">"Bewerte diese App bei Google Play"</string>
<string name="pref_send_feedback">"Sende dem Entwickler Feedback"</string>
<string name="pref_view_source_code">"Zeige den Quellcode auf GitHub"</string>
<string name="pref_view_app_introduction">"Zeige Anleitung"</string>
<string name="links">"Links"</string>
<string name="behavior">"Verhalten"</string>
<string name="name">"Name"</string>
<string name="show_archived">"Zeige Archiviertes"</string>
<string name="settings">"Einstellungen"</string>
<string name="snooze_interval">"\"Später erinnern\"-Intervall"</string>
<string name="hint_title">"Wusstest du?"</string>
<string name="hint_drag">"Um Einträge umzusortieren, drücke und ziehe sie an die richtige Stelle."</string>
<string name="hint_landscape">"Du kannst mehr Tage sehen, wenn du dein Smartphone quer hältst."</string>
<string name="delete_habits">"Gewohnheiten löschen"</string>
<string name="delete_habits_message">"Diese Gewohnheit wird permanent gelöscht. Dies kann nicht rückgängig gemacht werden."</string>
<string name="weekends">"An Wochenenden"</string>
<string name="any_weekday">"Werktags"</string>
<string name="any_day">"Jeden Tag"</string>
<string name="select_weekdays">"Wähle die Tage"</string>
<string name="export_to_csv">"Daten als CSV exportieren"</string>
<string name="done_label">"Fertig"</string>
<string name="clear_label">"Löschen"</string>
<string name="select_hours">"Wähle Stunden"</string>
<string name="select_minutes">"Wähle Minuten"</string>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"Nimm gute Gewohnheiten an und verfolge deinen Fortschritt (ohne Werbung)"</string>
<string name="store_description_1">"Loop hilft dir gute Gewohnheiten anzunehmen und deine langfristigen Ziele zu erreichen. Detaillierte Statistiken zeigen dir, wie du dich entwickelt hast. Es ist ohne Werbung und Open Source."</string>
<string name="store_feature_interface">"&lt;b&gt;Einfache, schöne und moderne Oberfläche&lt;/b&gt;
Loop hat eine minimale Oberfläche und ist deshalb einfach zu benutzen. Es folgt den Material Design Richtlinien."</string>
<!-- Fuzzy -->
<string name="store_feature_score">"&lt;b&gt;Habit Wertung&lt;/b&gt;
Um dir deine kleinen Schwächen zu zeigen hat Loop einen Algorithmus, um deine Gewohnheiten zu erkennen. Jede Wiederholung verstärkt diese und jedes Aussetzen schwächt sie. Aber ein paar Verfehlungen nach langem Durchhalten machen natürlich nicht gleich alles zu Nichte."</string>
<string name="store_feature_statistics">"&lt;b&gt;Statistiken&lt;/b&gt;
Schau dir an, wie sich deine Gewohnheiten im Laufe der Zeit entwickelt haben. Schau auf die schönen Diagramme und gehe zurück im gesamten Verlauf."</string>
<string name="store_feature_schedules">"&lt;b&gt;Flexible Zeiten&lt;/b&gt;
Unterstützt sowohl tägliche Vorgaben, als auch komplexere Pläne, wie etwa 3 Mal pro Woche; einmal in jeder anderen Woche; oder jeden anderen Tag."</string>
<string name="store_feature_reminders">"&lt;b&gt;Erinnerungen&lt;/b&gt;
Erstelle individuelle Erinnerungen und wann diese dich benachrichtigen sollen. Kontrolliere deine Vorhaben ganz einfach und lehne sie bei Bedarf direkt ab, ohne die App zu öffnen."</string>
<string name="store_feature_opensource">"&lt;b&gt;Komplett werbefrei und Open Source&lt;/b&gt;
Es gibt absolut keine Werbung, nervende Einblendungen oder merkwürdige Berechtigungen in dieser App und das wird auch so bleiben. Der komplette Quellcode steht unter der GPLv3."</string>
<string name="store_feature_wear">"&lt;b&gt;Optimiert für Smartwatches&lt;/b&gt;
Erinnerungen können direkt von deiner Android Wear Watch abgehakt, pausiert oder verschoben werden."</string>
<string name="about">"Über"</string>
<string name="translators">"Übersetzer"</string>
<string name="developers">"Entwickler"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"Version %s"</string>
<string name="frequency">"Frequenz"</string>
<!-- Fuzzy -->
<string name="checkmark">"Häkchen"</string>
<!-- This is a shorter version of "Habit Strength" -->
<!-- Fuzzy -->
<string name="strength">"Stärke"</string>
<!-- Fuzzy -->
<string name="best_streaks">"Beste Strähnen"</string>
<!-- Fuzzy -->
<string name="current_streaks">"Derzeitige Strähne"</string>
<string name="number_of_repetitions">"Anzahl der Wiederholungen"</string>
<string name="last_x_days">"Letzten %d Tage"</string>
<string name="last_x_weeks">"Letzten %d Wochen"</string>
<string name="last_x_months">"Letzten %d Monate"</string>
<string name="last_x_years">"Letzten %d Jahre"</string>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<!-- Fuzzy -->
<string name="all_time">"Allzeit"</string>
<string name="every_day">"Jeden Tag"</string>
<string name="every_week">"Jede Woche"</string>
<string name="two_times_per_week">"2 Mal pro Woche"</string>
<string name="five_times_per_week">"5 Mal pro Woche"</string>
<string name="custom_frequency">"Benutzerdefiniert"</string>
<string name="help">"Hilfe &amp; FAQ"</string>
<string name="could_not_export">"Der Export von Daten ist fehlgeschlagen."</string>
<string name="could_not_import">"Der Import von Daten ist fehlgeschlagen."</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<string name="file_not_recognized">"Datei nicht erkannt."</string>
<string name="habits_imported">"Gewohnheiten wurden erfolgreich importiert."</string>
<string name="full_backup_success">"Vollständige Sicherung erfolgreich exportiert."</string>
<string name="import_data">"Importiere Daten"</string>
<string name="export_full_backup">"Exportiere vollständige Sicherung"</string>
<string name="import_data_summary">"Unterstützt vollständige Sicherungen dieser App, als auch erstellte Sicherungen von Tickmate, HabitBull oder Rewire. Siehe FAQ für mehr Information."</string>
<string name="export_as_csv_summary">"Erzeugt Dateien, die von Tabellenkalkulationsprogrammen, wie Microsoft Excel oder LibreOffice Calc, geöffnet werden können. Diese Dateien können nicht wieder importiert werden."</string>
<string name="export_full_backup_summary">"Erzeugt eine Datei, die alle deine Daten enthält. Diese Datei kann wieder importiert werden."</string>
<string name="bug_report_failed">"Fehlermeldung konnte nicht erstellt werden."</string>
<string name="generate_bug_report">"Einen Fehler melden"</string>
<string name="troubleshooting">"Fehlerbehebung"</string>
<string name="help_translate">"Hilf diese App zu übersetzen"</string>
<string name="night_mode">"Nachtmodus"</string>
<string name="use_pure_black">"Reines Schwarz im Nachtmodus verwenden"</string>
<string name="pure_black_description">"Ersetzt das Grau im Hintergrund mit einem reinen Schwarz im Nachtmodus. Reduziert den Stromverbrauch von Smartphones mit einem AMOLED Display."</string>
<string name="interface_preferences">"Oberfläche"</string>
<string name="reverse_days">"Die Reihenfolge der Tage umkehren"</string>
<string name="reverse_days_description">"Zeigt die Tage im Hauptfenster in umgekehrter Reihenfolge an."</string>
<string name="day">"Tag"</string>
<string name="week">"Woche"</string>
<string name="month">"Monat"</string>
<!-- Three-month period -->
<string name="quarter">"Quartal"</string>
<string name="year">"Jahr"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">"Mal in"</string>
<string name="every_x_days">"Jeden %d Tag"</string>
<string name="every_x_weeks">"Jede %d Woche"</string>
<string name="every_x_months">"Jeden %d Monat"</string>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"Wertung"</string>
<string name="reminder_sound">"Benachrichtigungston"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"Kein Ton"</string>
</resources>
<string name="app_name">Loop Habit Tracker</string>
<string name="main_activity_title">Gewohnheiten</string>
<string name="action_settings">Einstellungen</string>
<string name="edit">Bearbeiten</string>
<string name="delete">Löschen</string>
<string name="archive">Archivieren</string>
<string name="unarchive">Dearchivieren</string>
<string name="add_habit">Gewohnheit hinzufügen</string>
<string name="color_picker_default_title">Farbe ändern</string>
<string name="toast_habit_created">Gewohnheit erstellt</string>
<string name="toast_habit_deleted">Gewohnheiten gelöscht</string>
<string name="toast_habit_restored">Gewohnheiten wiederhergestellt</string>
<string name="toast_nothing_to_undo">Nichts zum Rückgängig machen</string>
<string name="toast_nothing_to_redo">Nichts zum Wiederherstellen</string>
<string name="toast_habit_changed">Gewohnheit geändert</string>
<string name="toast_habit_changed_back">Gewohnheit zurückgeändert</string>
<string name="toast_habit_archived">Gewohnheiten archiviert</string>
<string name="toast_habit_unarchived">Gewohnheiten dearchiviert</string>
<string name="overview">Übersicht</string>
<string name="habit_strength">Stärke</string>
<string name="history">Verlauf</string>
<string name="clear">Löschen</string>
<string name="description_hint">Frage (Hast du heute ...?)</string>
<string name="repeat">Wiederhole</string>
<string name="times_every">Mal in</string>
<string name="days">Tagen</string>
<string name="reminder">Erinnerung</string>
<string name="discard">Verwerfen</string>
<string name="save">Speichern</string>
<string name="streaks">Strähnen</string>
<string name="no_habits_found">Du hast keine aktiven Gewohnheiten</string>
<string name="long_press_to_toggle">Tippe und halte um aus- bzw. abzuwählen</string>
<string name="reminder_off">Aus</string>
<string name="validation_name_should_not_be_blank">Name darf nicht leer sein.</string>
<string name="validation_number_should_be_positive">Zahl muss positiv sein.</string>
<string name="validation_at_most_one_rep_per_day">Du musst wenigstens eine Wiederholung pro Tag haben</string>
<string name="create_habit">Gewohnheit erstellen</string>
<string name="edit_habit">Gewohnheit bearbeiten</string>
<string name="check">Abhaken</string>
<string name="snooze">Später</string>
<!-- App introduction -->
<string name="intro_title_1">Willkommen</string>
<string name="intro_description_1">Loop Habit Tracker hilft dir gute Gewohnheiten implementieren.</string>
<string name="intro_title_2">Erstelle neue Gewohnheiten</string>
<string name="intro_description_2">Jeden Tag, nachdem du die Gewohnheit gemacht hast, hake sie in der App ab.</string>
<string name="intro_title_3">Bleib dran</string>
<string name="intro_description_3">Gewohnheiten, die über einen längeren Zeitraum absolviert werden, bekommen einen ganzen Stern.</string>
<string name="intro_title_4">Verfolge deinen Fortschritt</string>
<string name="intro_description_4">Detaillierte Diagramme zeigen dir an wie sich deine Gewohnheiten entwickelt haben.</string>
<string name="interval_15_minutes">15 Minuten</string>
<string name="interval_30_minutes">30 Minuten</string>
<string name="interval_1_hour">1 Stunde</string>
<string name="interval_2_hour">2 Stunden</string>
<string name="interval_4_hour">4 Stunden</string>
<string name="interval_8_hour">8 Stunden</string>
<string name="interval_24_hour">24 Stunden</string>
<string name="pref_toggle_title">Gewohnheiten durch kurzes Tippen abhaken</string>
<string name="pref_toggle_description">Abhaken durch einfaches Tippen, anstatt durch Tippen und Halten. Bequemer, kann aber eine falsche Auswahl verursachen.</string>
<string name="pref_snooze_interval_title">\"Später erinnern\"-Intervall bei Erinnerungen</string>
<string name="pref_rate_this_app">Bewerte diese App auf Google Play</string>
<string name="pref_send_feedback">Sende dem Entwickler Feedback</string>
<string name="pref_view_source_code">Zeige den Quellcode auf GitHub</string>
<string name="pref_view_app_introduction">Zeige die Anleitung</string>
<string name="links">Links</string>
<string name="behavior">Verhalten</string>
<string name="name">Name</string>
<string name="settings">Einstellungen</string>
<string name="snooze_interval">\"Später erinnern\"-Intervall</string>
<string name="hint_title">Wusstest du?</string>
<string name="hint_drag">Um Einträge umzusortieren, tippe und ziehe sie an die richtige Stelle.</string>
<string name="hint_landscape">Du kannst mehr Tage sehen, wenn du dein Smartphone quer hältst.</string>
<string name="delete_habits">Gewohnheiten löschen</string>
<string name="delete_habits_message">Diese Gewohnheit wird permanent gelöscht. Dies kann nicht rückgängig gemacht werden.</string>
<string name="habit_not_found">Gewohnheit gelöscht / nicht gefunden</string>
<string name="weekends">An Wochenenden</string>
<string name="any_weekday">Werktags</string>
<string name="any_day">Jeden Tag</string>
<string name="select_weekdays">Wähle die Tage</string>
<string name="export_to_csv">als CSV exportieren</string>
<string name="done_label">Fertig</string>
<string name="clear_label">Löschen</string>
<string name="select_hours">Wähle Stunden</string>
<string name="select_minutes">Wähle Minuten</string>
<string name="about">Über</string>
<string name="translators">Übersetzer</string>
<string name="developers">Entwickler</string>
<string name="version_n">Version %s</string>
<string name="frequency">Frequenz</string>
<string name="checkmark">Häkchen</string>
<string name="strength">Stärke</string>
<string name="best_streaks">Beste Strähnen</string>
<string name="current_streaks">Derzeitige Strähne</string>
<string name="number_of_repetitions">Anzahl der Wiederholungen</string>
<string name="last_x_days">Letzten %d Tage</string>
<string name="last_x_weeks">Letzten %d Wochen</string>
<string name="last_x_months">Letzten %d Monate</string>
<string name="last_x_years">Letzten %d Jahre</string>
<string name="all_time">Allzeit</string>
<string name="every_day">Jeden Tag</string>
<string name="every_week">Jede Woche</string>
<string name="two_times_per_week">2 Mal pro Woche</string>
<string name="five_times_per_week">5 Mal pro Woche</string>
<string name="custom_frequency">Benutzerdefiniert</string>
<string name="help">Hilfe &amp; FAQ</string>
<string name="could_not_export">Der Export von Daten ist fehlgeschlagen.</string>
<string name="could_not_import">Der Import von Daten ist fehlgeschlagen.</string>
<string name="file_not_recognized">Datei nicht erkannt.</string>
<string name="habits_imported">Gewohnheiten wurden erfolgreich importiert.</string>
<string name="full_backup_success">Vollständige Sicherung erfolgreich exportiert.</string>
<string name="import_data">Importiere Daten</string>
<string name="export_full_backup">Exportiere vollständige Sicherung</string>
<string name="import_data_summary">Unterstützt vollständige Sicherungen dieser App, sowie erstellte Sicherungen von Tickmate, HabitBull oder Rewire. Siehe FAQ für mehr Information.</string>
<string name="export_as_csv_summary">Erzeugt Dateien, die von Tabellenkalkulationsprogrammen, wie Microsoft Excel oder LibreOffice Calc, geöffnet werden können. Diese Dateien können nicht wieder importiert werden.</string>
<string name="export_full_backup_summary">Erzeugt eine Datei, die alle deine Daten enthält. Diese Datei kann wieder importiert werden.</string>
<string name="bug_report_failed">Fehlermeldung konnte nicht erstellt werden.</string>
<string name="generate_bug_report">Einen Fehler melden</string>
<string name="troubleshooting">Fehlerbehebung</string>
<string name="help_translate">Hilf diese App zu übersetzen</string>
<string name="night_mode">Nachtmodus</string>
<string name="use_pure_black">Reines Schwarz im Nachtmodus verwenden</string>
<string name="pure_black_description">Ersetzt das Grau im Hintergrund durch ein reines Schwarz im Nachtmodus. Reduziert den Stromverbrauch von Smartphones mit einem AMOLED Display.</string>
<string name="interface_preferences">Oberfläche</string>
<string name="reverse_days">Die Reihenfolge der Tage umkehren</string>
<string name="reverse_days_description">Zeigt die Tage im Hauptfenster in umgekehrter Reihenfolge an</string>
<string name="day">Tag</string>
<string name="week">Woche</string>
<string name="month">Monat</string>
<string name="quarter">Quartal</string>
<string name="year">Jahr</string>
<string name="total">Gesamt</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="time_every">Mal in</string>
<string name="every_x_days">Jeden %d Tag</string>
<string name="every_x_weeks">Jede %d Woche</string>
<string name="every_x_months">Jeden %d Monat</string>
<string name="score">Wertung</string>
<string name="reminder_sound">Benachrichtigungston</string>
<string name="none">Kein Ton</string>
<string name="filter">Filter</string>
<string name="hide_completed">Erledigte Gewohnheiten ausblenden</string>
<string name="hide_archived">Archivierte Gewohnheiten ausblenden</string>
<string name="sticky_notifications">Permanente Benachrichtigungen</string>
<string name="sticky_notifications_description">Verhindert das Wegwischen von Benachrichtigungen.</string>
<string name="repair_database">Datenbank reparieren</string>
<string name="database_repaired">Datenbank repariert.</string>
<string name="uncheck">Abwählen</string>
<string name="toggle">Umschalten</string>
<string name="action">Aktion</string>
<string name="habit">Gewohnheit</string>
<string name="sort">Sortiere</string>
<string name="manually">Manuell</string>
<string name="by_name">Nach Name</string>
<string name="by_color">Nach Farbe</string>
<string name="by_score">Nach Wertung</string>
<string name="download">Runterladen</string>
<string name="export">Export</string>
</resources>

@ -1,180 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">"Loop - Καταγραφή Συνηθειών"</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>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<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>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<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>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<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 - Καταγραφή Συνηθειών σας βοηθάει να δημιουργήσετε και να διατηρήσετε καλές συνήθειες."</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="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="show_archived">"Αρχειοθετημένα"</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="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>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"Δημιουργήστε καλές συνήθειες και δείτε την πρόοδο τους(ad-free)"</string>
<string name="store_description_1">"Το Loop συμβάλλει στην δημιουργία και διατήρηση καλών συνηθειών, επιτρέποντας την επίτευξη των στόχων σας. Λεπτομερή διαγράμματα και στατιστικά για την πρόοδο των συνηθειών σας. Χωρίς διαφημίσεις, ανοικτού κώδικα."</string>
<string name="store_feature_interface">"&lt;b&gt;Απλή, κομψή και μοντέρνα διεπαφή χρήστη&lt;/b&gt;
Το Loop έχει μια μινιμαλιστική διεπαφή χρήστη που το καθιστά εύκολο στην χρήση ενώ ακολουθεί τις κατευθυντήριες γραμμές του ματεριαλιστικού σχεδιασμού."</string>
<string name="store_feature_score">"&lt;b&gt;Σκόρ συνήθειας&lt;b&gt;
Εκτώς της προβολής του τρέχοντος σερί, το Loop χρησιμοποιεί έναν προηγμένο αλγόριθμο για τον υπολογισμό της δύναμης των συνηθειών σας. Κάθε επανάληψη κάνει την συνήθεια δυνατότερη ενώ κάθε παράλειψη ασθενέστερη. Ωστόσο μερικές χαμένες μέρες μετά από ένα μεγάλο σερί δεν θα καταστρέψουν την συνολική σας πρόοδο."</string>
<string name="store_feature_statistics">"&lt;b&gt;Λεπτομερή διαγράμματα και στατιστικά&lt;/b&gt;
Δείτε καθαρά την πρόοδο των συνηθειών σας σε βάθος χρόνου με όμορφα και λεπτομερή διαγράμματα. Ανατρέξτε στο πλήρες ιστορικό των συνηθειών σας."</string>
<string name="store_feature_schedules">"&lt;b&gt;Ευέλικτα προγράμματα&lt;/b&gt;
Υποστηρίζει εξίσου καθημερινές συνήθειες και συνήθειες με περίπλοκα προγράμματα, όπως 3 φορές κάθε εβδομάδα, μια φορά κάθε δεύτερη εβδομάδα ή ημέρα."</string>
<string name="store_feature_reminders">"&lt;b&gt;Υπενθυμίσεις&lt;/b&gt;
Δημιουργήστε μία εξατομικευμένη υπενθύμιση για την κάθε συνήθεια, σε μια επιλεγμένη ώρα της ημέρας. Τσεκάρετε, απορρίψτε ή αναβάλλετε εύκολα την συνήθεια απευθείας από την υπενθύμιση χωρίς να ανοίξετε την εφαρμογή."</string>
<string name="store_feature_opensource">"&lt;b&gt;Χωρίς διαφημίσεις και ανοικτού κώδικα&lt;/b&gt;
Χωρίς καθόλου διαφημίσεις, ενοχλητικές ειδοποιήσεις ή παρεμβατικές άδειες για την εφαρμογή και δεν θα υπάρξουν ποτέ. Το σύνολο του κώδικα είναι διαθέσιμο υπό το GPLv3."</string>
<string name="store_feature_wear">"&lt;b&gt;Κατασκευασμένο για smartwatch&lt;/b&gt;
Οι υπενθυμίσεις μπορούν να επιλεχθούν, να αναβληθούν ή να απορριφθούν απευθείας από το Android Wear ρολόι σας."</string>
<string name="about">"Σχετικά με"</string>
<string name="translators">"Μεταφραστές"</string>
<string name="developers">"Προγραμματιστές"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"Έκδοση %s"</string>
<string name="frequency">"Συχνότητα"</string>
<string name="checkmark">"Σημάδι επιλογής"</string>
<!-- This is a shorter version of "Habit Strength" -->
<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>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<string name="all_time">"Όλα"</string>
<string name="every_day">"Κάθε μέρα"</string>
<string name="every_week">"Κάθε εβδομάδα"</string>
<string name="two_times_per_week">"2 φορές την εβδομάδα"</string>
<string name="five_times_per_week">"5 φορές την εβδομάδα"</string>
<string name="custom_frequency">"Προσαρμογή"</string>
<string name="help">"Βοήθεια &amp; FAQ"</string>
<string name="could_not_export">"Αποτυχία εξαγωγής."</string>
<string name="could_not_import">"Αποτυχία εισαγωγής."</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<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. Δείτε τις FAQ για περισσότερες πληροφορίες."</string>
<string name="export_as_csv_summary">"Παράγει αρχεία τα οποία μπορούν να ανοιχτούν από προγράμματα υπολογιστικών φύλλων όπως το Microsoft Edge ή το OpenOffice Calc. Δεν γίνεται επανεισαγωγή του αρχείου."</string>
<string name="export_full_backup_summary">"Παράγει ένα αρχείο το οποίο περιέχει όλα τα δεδομένα σας. Είναι δυνατή η επανεισαγωγή του αρχείου."</string>
<string name="bug_report_failed">"Απέτυχε ή παραγωγή αναφοράς bug."</string>
<string name="generate_bug_report">"Παραγωγή αναφοράς bug."</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>
<!-- Three-month period -->
<string name="quarter">"Τρίμηνο"</string>
<string name="year">"Χρόνος"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- 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>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"Σκόρ"</string>
<string name="reminder_sound">"Ήχος υπενθύμισης"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"Σιωπηλό"</string>
</resources>
<string name="app_name">Loop - Καταγραφή Συνηθειών</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 - Καταγραφή Συνηθειών σας βοηθάει να δημιουργήσετε και να διατηρήσετε καλές συνήθειες.</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="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="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">2 φορές την εβδομάδα</string>
<string name="five_times_per_week">5 φορές την εβδομάδα</string>
<string name="custom_frequency">Προσαρμογή</string>
<string name="help">Βοήθεια &amp; FAQ</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. Δείτε τις FAQ για περισσότερες πληροφορίες.</string>
<string name="export_as_csv_summary">Παράγει αρχεία τα οποία μπορούν να ανοιχτούν από προγράμματα υπολογιστικών φύλλων όπως το Microsoft Edge ή το OpenOffice Calc. Δεν γίνεται επανεισαγωγή του αρχείου.</string>
<string name="export_full_backup_summary">Παράγει ένα αρχείο το οποίο περιέχει όλα τα δεδομένα σας. Είναι δυνατή η επανεισαγωγή του αρχείου.</string>
<string name="bug_report_failed">Απέτυχε ή παραγωγή αναφοράς bug.</string>
<string name="generate_bug_report">Παραγωγή αναφοράς bug.</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>
<!-- 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>
</resources>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<!-- App introduction -->
<!-- Middle part of the sentence '1 time in xx days' -->
</resources>

@ -1,198 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">"Loop Analizador de Hábitos"</string>
<string name="main_activity_title">"Hábitos"</string>
<string name="action_settings">"Configuración"</string>
<string name="edit">"Editar"</string>
<string name="delete">"Eliminar"</string>
<string name="archive">"Archivar"</string>
<string name="unarchive">"Desarchivar"</string>
<string name="add_habit">"Agregar hábito"</string>
<string name="color_picker_default_title">"Cambiar color"</string>
<string name="toast_habit_created">"Hábito creado."</string>
<string name="toast_habit_deleted">"Hábitos eliminados."</string>
<string name="toast_habit_restored">"Hábitos restaurados."</string>
<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>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<string name="toast_habit_changed_back">"Hábito cambiado devuelta."</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="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>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<string name="repeat">"Repetir"</string>
<string name="times_every">"veces cada"</string>
<string name="days">"días"</string>
<string name="reminder">"Recordatorio"</string>
<string name="discard">"Descartar"</string>
<string name="save">"Guardar"</string>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<string name="streaks">"Rachas"</string>
<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_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>
<string name="check">"Marcar"</string>
<string name="snooze">"Aplazar"</string>
<!-- App introduction -->
<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_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="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="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_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="links">"Enlaces"</string>
<string name="behavior">"Comportamiento"</string>
<string name="name">"Nombre"</string>
<string name="show_archived">"Ver archivados"</string>
<string name="settings">"Configuración"</string>
<string name="snooze_interval">"Intervalo de espera"</string>
<string name="hint_title">"¿Sabías qué?"</string>
<string name="hint_drag">"Para reordenar las entradas, mantén la pulsación sobre el nombre del hábito, después arrástralo a su posición correcta."</string>
<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="weekends">"Fines de semana"</string>
<!-- Fuzzy -->
<string name="any_weekday">"Días laborables"</string>
<!-- Fuzzy -->
<string name="any_day">"Cada día"</string>
<string name="select_weekdays">"Seleccionar días"</string>
<!-- Fuzzy -->
<string name="export_to_csv">"Exportar datos (CSV)"</string>
<string name="done_label">"Hecho"</string>
<string name="clear_label">"Quitar"</string>
<string name="select_hours">"Seleccionar horas"</string>
<string name="select_minutes">"Seleccionar"</string>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"Crea buenos hábitos y haz un seguimiento de su progreso a lo largo del tiempo (sin anuncios)"</string>
<string name="store_description_1">"Loop te ayuda a crear y mantener buenos hábitos, permitiéndote alcanzar tus metas a largo plazo. Detallados gráficos y estadísticas muestran como tus hábitos mejoran con el tiempo. No existe ningún anuncio y es de código abierto."</string>
<string name="store_feature_interface">"&lt;b&gt;Una interfaz simple, bella y moderna&lt;/b&gt;
Loop tiene una interfaz minimalista que es fácil de usar y sigue los principios del material design."</string>
<string name="store_feature_score">"&lt;b&gt;Puntuación del hábito&lt;/b&gt;
Además de mostrar tu racha actual, Loop tiene un algoritmo avanzado para calcular la fuerza de tus hábitos. Cada repetición hace tu hábito más fuerte y cada día fallido lo hace más débil. Sin embargo, unos pocos días después de una larga racha no destruirán completamente todo tu progreso."</string>
<string name="store_feature_statistics">"&lt;b&gt;Detallados gráficos y estadísticas&lt;/b&gt;
Observa claramente como tus hábitos han mejorado con el tiempo con bellos y detallados gráficos. Ve hacia atrás para ver el historial completo del hábito."</string>
<string name="store_feature_schedules">"&lt;b&gt;Horarios flexibles&lt;/b&gt;
Soporta hábitos diarios y hábitos con repeticiones más complejas, como 3 veces por semana; una vez cada varias semanas; o cada día."</string>
<string name="store_feature_reminders">"&lt;b&gt;Recordatorios&lt;/b&gt;
Crea recordatorios individuales para cada hábito a una hora determinada del día. Fácilmente marcables, descartables o aplazables directamente desde la notificación, sin abrir la app."</string>
<string name="store_feature_opensource">"&lt;b&gt;Completamente sin anuncios y de código abierto&lt;/b&gt;
No existe ningún tipo de publicidad, notificaciones molestas o permisos intrusivos, y nunca los habrá. Todo el código está disponible bajo GPLv3."</string>
<string name="store_feature_wear">"&lt;b&gt;Optimizado para smartwatches&lt;/b&gt;
Los recordatorios se pueden marcar, aplazar o descartar directamente desde tu reloj Android Wear."</string>
<string name="about">"Acerca de"</string>
<string name="translators">"Traductores"</string>
<string name="developers">"Desarrolladores"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"Versión %s"</string>
<string name="frequency">"Frecuencia"</string>
<string name="checkmark">"Checkmark"</string>
<!-- This is a shorter version of "Habit Strength" -->
<string name="strength">"Fuerza"</string>
<!-- Fuzzy -->
<string name="best_streaks">"Mejores rachas"</string>
<string name="current_streaks">"Racha actual"</string>
<string name="number_of_repetitions">"Número de repeticiones"</string>
<string name="last_x_days">"Últimos %d días"</string>
<string name="last_x_weeks">"Últimas %d semanas"</string>
<string name="last_x_months">"Últimos %d meses"</string>
<string name="last_x_years">"Últimos %d años"</string>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<string name="all_time">"Todo el tiempo"</string>
<!-- Fuzzy -->
<string name="every_day">"Diariamente"</string>
<!-- Fuzzy -->
<string name="every_week">"Semanalmente"</string>
<!-- Fuzzy -->
<string name="two_times_per_week">"2 veces por semana"</string>
<!-- Fuzzy -->
<string name="five_times_per_week">"5 veces por semana"</string>
<!-- Fuzzy -->
<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>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<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>
<string name="import_data">"Importar datos"</string>
<string name="export_full_backup">"Exportar copia de seguridad"</string>
<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="troubleshooting">"Solución de problemas"</string>
<string name="help_translate">"Ayuda a traducir esta app"</string>
<string name="night_mode">"Modo nocturno"</string>
<string name="use_pure_black">"Utilizar color negro en modo nocturno"</string>
<string name="pure_black_description">"Reemplaza fondos grises por color negro en modo nocturno. Reduce el consumo de batería en teléfonos con pantalla AMOLED."</string>
<string name="interface_preferences">"Interfície"</string>
<string name="reverse_days">"Orden inverso de días"</string>
<string name="reverse_days_description">"Mostrar días en orden inverso en la pantalla principal"</string>
<string name="day">"Día"</string>
<string name="week">"Semana"</string>
<string name="month">"Mes"</string>
<!-- Three-month period -->
<string name="quarter">"Cuatrimestre"</string>
<string name="year">"Año"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- 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>
<string name="every_x_weeks">"Cada %d semanas"</string>
<string name="every_x_months">"Cada %d meses"</string>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"Puntuación"</string>
<string name="reminder_sound">"Sonido de recordatorio"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"Ninguno"</string>
</resources>
<string name="app_name">Loop Analizador de Hábitos</string>
<string name="main_activity_title">Hábitos</string>
<string name="action_settings">Configuración</string>
<string name="edit">Editar</string>
<string name="delete">Eliminar</string>
<string name="archive">Archivar</string>
<string name="unarchive">Desarchivar</string>
<string name="add_habit">Agregar hábito</string>
<string name="color_picker_default_title">Cambiar color</string>
<string name="toast_habit_created">Hábito creado.</string>
<string name="toast_habit_deleted">Hábitos eliminados.</string>
<string name="toast_habit_restored">Hábitos restaurados.</string>
<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_archived">Hábitos archivados.</string>
<string name="toast_habit_unarchived">Hábitos desarchivados.</string>
<string name="overview">Visión general</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="repeat">Repetir</string>
<string name="times_every">veces cada</string>
<string name="days">días</string>
<string name="reminder">Recordatorio</string>
<string name="discard">Descartar</string>
<string name="save">Guardar</string>
<string name="streaks">Rachas</string>
<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_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>
<string name="check">Marcar</string>
<string name="snooze">Aplazar</string>
<!-- App introduction -->
<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_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="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="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_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="links">Enlaces</string>
<string name="behavior">Comportamiento</string>
<string name="name">Nombre</string>
<string name="settings">Configuración</string>
<string name="snooze_interval">Intervalo de espera</string>
<string name="hint_title">¿Sabías qué?</string>
<string name="hint_drag">Para reordenar las entradas, mantén la pulsación sobre el nombre del hábito, después arrástralo a su posición correcta.</string>
<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="weekends">Fines de semana</string>
<string name="any_weekday">Días laborables</string>
<string name="any_day">Cada día</string>
<string name="select_weekdays">Seleccionar días</string>
<string name="export_to_csv">Exportar datos (CSV)</string>
<string name="done_label">Hecho</string>
<string name="clear_label">Quitar</string>
<string name="select_hours">Seleccionar horas</string>
<string name="select_minutes">Seleccionar</string>
<string name="about">Acerca de</string>
<string name="translators">Traductores</string>
<string name="developers">Desarrolladores</string>
<string name="version_n">Versión %s</string>
<string name="frequency">Frecuencia</string>
<string name="strength">Fuerza</string>
<string name="best_streaks">Mejores rachas</string>
<string name="current_streaks">Racha actual</string>
<string name="number_of_repetitions">Número de repeticiones</string>
<string name="last_x_days">Últimos %d días</string>
<string name="last_x_weeks">Últimas %d semanas</string>
<string name="last_x_months">Últimos %d meses</string>
<string name="last_x_years">Últimos %d años</string>
<string name="all_time">Todo el tiempo</string>
<string name="every_day">Diariamente</string>
<string name="every_week">Semanalmente</string>
<string name="two_times_per_week">2 veces por semana</string>
<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="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>
<string name="import_data">Importar datos</string>
<string name="export_full_backup">Exportar copia de seguridad</string>
<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="troubleshooting">Solución de problemas</string>
<string name="help_translate">Ayuda a traducir esta app</string>
<string name="night_mode">Modo nocturno</string>
<string name="use_pure_black">Utilizar color negro en modo nocturno</string>
<string name="pure_black_description">Reemplaza fondos grises por color negro en modo nocturno. Reduce el consumo de batería en teléfonos con pantalla AMOLED.</string>
<string name="interface_preferences">Interfície</string>
<string name="reverse_days">Orden inverso de días</string>
<string name="reverse_days_description">Mostrar días en orden inverso en la pantalla principal</string>
<string name="day">Día</string>
<string name="week">Semana</string>
<string name="month">Mes</string>
<string name="quarter">Cuatrimestre</string>
<string name="year">Año</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>
<string name="every_x_weeks">Cada %d semanas</string>
<string name="every_x_months">Cada %d meses</string>
<string name="score">Puntuación</string>
<string name="reminder_sound">Sonido de recordatorio</string>
<string name="none">Ninguno</string>
</resources>

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="main_activity_title">Ohiturak</string>
<string name="action_settings">Ezarpenak</string>
<string name="edit">Editatu</string>
<string name="delete">Ezabatu</string>
<string name="archive">Artxibatu</string>
<string name="unarchive">Ezartxibatu</string>
<string name="add_habit">Ohitura gehitu</string>
<string name="color_picker_default_title">Kolorea aldatu</string>
<string name="toast_habit_created">Ohitura sortu da.</string>
<string name="toast_habit_deleted">Ohiturak ezabatu dira.</string>
<string name="toast_habit_restored">Ohiturak berrezarri dira.</string>
<string name="toast_nothing_to_undo">Ez dago desegiteko ezer.</string>
<string name="toast_nothing_to_redo">Ez dago berregiteko ezer.</string>
<string name="toast_habit_changed">Ohitura aldatu da.</string>
<string name="toast_habit_changed_back">Ohitura lehengoratu da.</string>
<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="history">Historia</string>
<string name="clear">Garbitu</string>
<string name="description_hint">Galdera (... al duzu gaur?)</string>
<string name="repeat">Errepikatu</string>
<string name="times_every">aldiz</string>
<string name="days">egunetan</string>
<string name="reminder">Oroigarria</string>
<string name="discard">Baztertu</string>
<string name="save">Gorde</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>
<string name="validation_name_should_not_be_blank">Izena ezin da hutsik egon.</string>
<string name="validation_number_should_be_positive">Zenbakia positiboa izan behar da.</string>
<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="snooze">Beranduago</string>
<!-- App introduction -->
<string name="intro_title_1">Ongi etorri</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_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>
<string name="interval_30_minutes">30 minutu</string>
<string name="interval_1_hour">Ordu 1</string>
<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="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>
<string name="pref_view_app_introduction">Aplikazioaren aurkezpena ikusi</string>
<string name="links">Loturak</string>
<string name="behavior">Portaera</string>
<string name="name">Izena</string>
<string name="settings">Ezarpenak</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="weekends">Asteburuak</string>
<string name="any_weekday">Astelehenetik ostiralera</string>
<string name="any_day">Astearen edozen egun</string>
<string name="select_weekdays">Egunak hautatu</string>
<string name="export_to_csv">CSV bezala esportatu</string>
<string name="done_label">Eginda</string>
<string name="clear_label">Garbitu</string>
<string name="select_hours">Orduak hautatu</string>
<string name="select_minutes">Minutuak hautatu</string>
<string name="about">Honi buruz</string>
<string name="translators">Itzultzaileak</string>
<string name="developers">Garatzaileak</string>
<string name="version_n">%s bertsioa</string>
<string name="frequency">Maiztasuna</string>
<string name="checkmark">Egiaztatze marka</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>
<string name="last_x_months">Azken %d hilabeteak</string>
<string name="last_x_years">Azken %d urteak</string>
<string name="all_time">Hasieratik</string>
<string name="every_day">Egunero</string>
<string name="every_week">Astero</string>
<string name="two_times_per_week">Astean 2 aldiz</string>
<string name="five_times_per_week">Astean 5 aldiz</string>
<string name="custom_frequency">Pertsonalizatua ...</string>
<string name="help">Laguntza eta ohiko galderak</string>
<string name="could_not_export">Huts datuak esportatzerakoan.</string>
<string name="could_not_import">Huts datuak inportatzerakoan.</string>
<string name="file_not_recognized">Fitxategi ezezaguna.</string>
<string name="habits_imported">Ohiturak ondo inportatu dira.</string>
<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="bug_report_failed">Huts akats txostena sortzerakoan.</string>
<string name="generate_bug_report">Akats txostena sortu</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="interface_preferences">Interfazea</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>
<!-- Middle part of the sentence '1 time in xx days' -->
<string name="reminder_sound">Oroigarriaren soinua</string>
<string name="none">Bat ere ez</string>
</resources>

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">عادت‌سنج</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">سوال (آیا امروز شما&#8230;؟)</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">رهگیر عادت به شما کمک می‌کند تا برای خودتان عادت‌های خوبی بسازید.</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">۱۵ دقیقه</string>
<string name="interval_30_minutes">۳۰ دقیقه</string>
<string name="interval_1_hour">۱ ساعت</string>
<string name="interval_2_hour">۲ ساعت</string>
<string name="interval_4_hour">۴ ساعت</string>
<string name="interval_8_hour">۸ ساعت</string>
<string name="pref_toggle_title">با اشاره‌ی کوتاه‌مدت وضعیت عادت را تغییر بده</string>
<string name="pref_toggle_description">راحت‌تر است ولی ممکن است باعث شود اشتباهی عادتی را تیک بزنید.</string>
<string name="pref_rate_this_app">دادن امتیاز به اپ در گوگل‌پلی</string>
<string name="pref_send_feedback">ارسال بازخورد به توسعه‌دهنده</string>
<string name="pref_view_source_code">دیدن سورس اپ در گیت‌هاب</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="hint_title">آیا می‌دانید؟</string>
<string name="delete_habits">حذف عادت‌ها</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="about">درباره</string>
<string name="translators">مترجمین</string>
<string name="developers">توسعه‌دهندگان</string>
<string name="version_n">نسخه %s</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="every_day">هر روز</string>
<string name="every_week">هر هفته</string>
<string name="two_times_per_week">۲ بار در هفته</string>
<string name="five_times_per_week">۵ بار در هفته</string>
<string name="custom_frequency">سفارشی‌سازی ...</string>
<string name="help">راهنما و سوالات متداول</string>
<string name="troubleshooting">ایرادیابی</string>
<string name="night_mode">حالت شبانه</string>
<string name="use_pure_black">استفاده از رنگ سیاه خالص در حالت شبانه</string>
<string name="day">روز</string>
<string name="week">هفته</string>
<string name="month">ماه</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="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>
</resources>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<!-- App introduction -->
<!-- Middle part of the sentence '1 time in xx days' -->
</resources>

@ -1,203 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<!-- Fuzzy -->
<string name="app_name">"Loop - Suivi d'habitudes"</string>
<!-- Fuzzy -->
<string name="main_activity_title">"Habitudes"</string>
<!-- Fuzzy -->
<string name="action_settings">"Paramètres"</string>
<!-- Fuzzy -->
<string name="edit">"Modifier"</string>
<string name="delete">"Supprimer"</string>
<string name="archive">"Archiver"</string>
<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>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<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>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<string name="repeat">"Répéter"</string>
<string name="times_every">"fois en"</string>
<string name="days">"jours"</string>
<string name="reminder">"Rappel"</string>
<string name="discard">"Annuler"</string>
<string name="save">"Sauvegarder"</string>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<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">"Off"</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>
<string name="create_habit">"Créer une habitude"</string>
<string name="edit_habit">"Modifier l'habitude"</string>
<string name="check">"Cocher"</string>
<string name="snooze">"Plus tard"</string>
<!-- App introduction -->
<string name="intro_title_1">"Bienvenue"</string>
<string name="intro_description_1">"Loop - Suivi d'habitudes vous aide à créer et maintenir de bonnes habitudes."</string>
<string name="intro_title_2">"Créez de nouvelles habitudes"</string>
<string name="intro_description_2">"Chaque jour, après avoir réalisé votre habitude, cochez-la sur l'application."</string>
<string name="intro_title_3">"Continuez à le faire"</string>
<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="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>
<!-- Je pense qu'en français, on parle plutôt d'intervalle de report/temporisation des répétitions/rappels. -->
<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="links">"Liens"</string>
<string name="behavior">"Comportement"</string>
<string name="name">"Nom"</string>
<string name="show_archived">"Montrer les archives"</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_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="weekends">"Fin de semaine"</string>
<!-- Sorry I made a mistake so I restore the previous version -->
<string name="any_weekday">"Jours de la semaine"</string>
<!-- Fuzzy -->
<string name="any_day">"N'importe quel jour"</string>
<string name="select_weekdays">"Sélectionner des jours"</string>
<!-- Fuzzy -->
<string name="export_to_csv">"Exporter les données dans un fichier CSV"</string>
<string name="done_label">"Fait"</string>
<string name="clear_label">"Supprimer"</string>
<string name="select_hours">"Sélectionner les heures"</string>
<string name="select_minutes">"Sélectionner les minutes"</string>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"Créez de bonnes habitudes et suivez leur progrès au fil du temps (sans pub)"</string>
<string name="store_description_1">"Loop vous aide à créer et maintenir de bonnes habitudes, permettant de réussir vos objectifs à long terme. Des graphiques détaillés et des statistiques vous montrent comment vos habitudes saméliorent au fil du temps. C'est totalement sans pub et c'est un logiciel libre."</string>
<string name="store_feature_interface">"&lt;b&gt;Simple, beau avec une interface moderne&lt;/b&gt;
Loop a une interface minimaliste, facile à utiliser et qui suit les règles de material design."</string>
<string name="store_feature_score">"&lt;b&gt;Score d'habitude&lt;/b&gt;
En plus de montrer votre série en cours, Loop a un algorithme avancé pour calculer la force de vos habitudes. Chacune des répétitions réussi augmente la force de l'habitude et chacune des répétitions ratés la diminue. Cependant, quelques jours ratés après une longue série ne détruiront pas entièrement votre progrès."</string>
<string name="store_feature_statistics">"&lt;b&gt;Graphiques détaillés et statistiques&lt;/b&gt;
Observez clairement comment vos habitudes saméliorent au fil du temps avec de beaux graphiques détaillés. Défilez vers les jours passés pour voir l'historique complet de vos habitudes."</string>
<string name="store_feature_schedules">"&lt;b&gt;Calendrier flexible&lt;/b&gt;
Supporte les habitudes quotidiennes et mensuelle avec des horaires multiples et complexes, comme 3 fois par semaine, une fois toutes les deux semaines ou un jour sur deux."</string>
<string name="store_feature_reminders">"&lt;b&gt;Rappels&lt;/b&gt;
Créez un rappel propre pour chaque habitude, à une heure choisie de la journée. Cochez, supprimez ou reportez facilement votre habitude directement à partir de la notification, sans ouvrir l'application."</string>
<string name="store_feature_opensource">"&lt;b&gt;Entièrement sans pub et sous licence libre&lt;/b&gt;
Il n'y a absolument aucune publicité ni notification embêtante ni permission intrusive avec cette application, et il n'y en aura jamais. L'ensemble du code source est disponible sous GPLv3."</string>
<string name="store_feature_wear">"&lt;b&gt;Optimisée pour les montres android&lt;/b&gt;
Les rappels peuvent être cochés, reportés ou supprimés directement à partir de votre montre Android"</string>
<string name="about">"À propos"</string>
<string name="translators">"Traducteurs"</string>
<string name="developers">"Développeurs"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"Version %s"</string>
<string name="frequency">"Fréquence"</string>
<!-- Fuzzy -->
<string name="checkmark">"Croix"</string>
<!-- This is a shorter version of "Habit Strength" -->
<!-- Fuzzy -->
<string name="strength">"Force"</string>
<!-- Fuzzy -->
<string name="best_streaks">"Meilleures séries"</string>
<string name="current_streaks">"Série actuelle"</string>
<string name="number_of_repetitions">"Nombre de répétitions"</string>
<string name="last_x_days">"%d derniers jours"</string>
<string name="last_x_weeks">"%d dernières semaines"</string>
<string name="last_x_months">"%d derniers mois"</string>
<string name="last_x_years">"%d dernières années"</string>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<string name="all_time">"Depuis le début"</string>
<string name="every_day">"Tous les jours"</string>
<string name="every_week">"Toutes les semaines"</string>
<string name="two_times_per_week">"2 fois par semaine"</string>
<string name="five_times_per_week">"5 fois par semaine"</string>
<!-- Fuzzy -->
<string name="custom_frequency">"Personnalisée ..."</string>
<string name="help">"Aide &amp; FAQ"</string>
<string name="could_not_export">"Export des données échoué."</string>
<string name="could_not_import">"Import des données échoué."</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<string name="file_not_recognized">"Fichier non reconnu"</string>
<string name="habits_imported">"Habitudes importées avec succès"</string>
<string name="full_backup_success">"Sauvegarde complète exportée avec succès"</string>
<string name="import_data">"Importer des données"</string>
<string name="export_full_backup">"Exporter une sauvegarde complète"</string>
<string name="import_data_summary">"Supporte les sauvegardes complètes générées par cette application, ainsi que les fichiers Tickmate, HabitBull et Rewire. Voir la FAQ pour plus d'informations."</string>
<string name="export_as_csv_summary">"Génère des fichiers pouvant être ouverts par des tableurs comme Microsoft Excel ou LibreOffice Calc. Ces fichiers ne peuvent être réimportés."</string>
<string name="export_full_backup_summary">"Génère un fichier contenant toutes vos données. Ce fichier peut être réimporté."</string>
<string name="bug_report_failed">"La génération du rapport de bug a échouée."</string>
<string name="generate_bug_report">"Générer un rapport de bug."</string>
<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="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>
<string name="week">"Semaine"</string>
<string name="month">"Mois"</string>
<!-- Three-month period -->
<string name="quarter">"Trimestre"</string>
<string name="year">"Année"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- 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>
<string name="every_x_weeks">"Toutes les %d semaines"</string>
<string name="every_x_months">"Tous les %d mois"</string>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"Pointage"</string>
<string name="reminder_sound">"Son de rappel"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"Aucun"</string>
</resources>
<string name="app_name">Loop - Suivi d\'habitudes</string>
<string name="main_activity_title">Habitudes</string>
<string name="action_settings">Paramètres</string>
<string name="edit">Modifier</string>
<string name="delete">Supprimer</string>
<string name="archive">Archiver</string>
<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="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="repeat">Répéter</string>
<string name="times_every">fois en</string>
<string name="days">jours</string>
<string name="reminder">Rappel</string>
<string name="discard">Annuler</string>
<string name="save">Sauvegarder</string>
<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="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>
<string name="create_habit">Créer une habitude</string>
<string name="edit_habit">Modifier l\'habitude</string>
<string name="check">Cocher</string>
<string name="snooze">Plus tard</string>
<!-- App introduction -->
<string name="intro_title_1">Bienvenue</string>
<string name="intro_description_1">Loop - Suivi d\'habitudes vous aide à créer et maintenir de bonnes habitudes.</string>
<string name="intro_title_2">Créez de nouvelles habitudes</string>
<string name="intro_description_2">Chaque jour, après avoir réalisé votre habitude, cochez-la sur l\'application.</string>
<string name="intro_title_3">Continuez à le faire</string>
<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_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="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_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="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_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="weekends">Fin de semaine</string>
<string name="any_weekday">Jours de la semaine</string>
<string name="any_day">N\'importe quel jour</string>
<string name="select_weekdays">Sélectionner des jours</string>
<string name="export_to_csv">Exporter les données dans un fichier CSV</string>
<string name="done_label">Fait</string>
<string name="clear_label">Supprimer</string>
<string name="select_hours">Sélectionner les heures</string>
<string name="select_minutes">Sélectionner les minutes</string>
<string name="about">À propos</string>
<string name="translators">Traducteurs</string>
<string name="developers">Développeurs</string>
<string name="frequency">Fréquence</string>
<string name="checkmark">Croix</string>
<string name="strength">Force</string>
<string name="best_streaks">Meilleures séries</string>
<string name="current_streaks">Série actuelle</string>
<string name="number_of_repetitions">Nombre de répétitions</string>
<string name="last_x_days">%d derniers jours</string>
<string name="last_x_weeks">%d dernières semaines</string>
<string name="last_x_months">%d derniers mois</string>
<string name="last_x_years">%d dernières années</string>
<string name="all_time">Depuis le début</string>
<string name="every_day">Tous les jours</string>
<string name="every_week">Toutes les semaines</string>
<string name="two_times_per_week">2 fois par semaine</string>
<string name="five_times_per_week">5 fois par semaine</string>
<string name="custom_frequency">Personnalisée ...</string>
<string name="help">Aide &amp; FAQ</string>
<string name="could_not_export">Export des données échoué.</string>
<string name="could_not_import">Import des données échoué.</string>
<string name="file_not_recognized">Fichier non reconnu</string>
<string name="habits_imported">Habitudes importées avec succès</string>
<string name="full_backup_success">Sauvegarde complète exportée avec succès</string>
<string name="import_data">Importer des données</string>
<string name="export_full_backup">Exporter une sauvegarde complète</string>
<string name="import_data_summary">Supporte les sauvegardes complètes générées par cette application, ainsi que les fichiers Tickmate, HabitBull et Rewire. Voir la FAQ pour plus d\'informations.</string>
<string name="export_as_csv_summary">Génère des fichiers pouvant être ouverts par des tableurs comme Microsoft Excel ou LibreOffice Calc. Ces fichiers ne peuvent être réimportés.</string>
<string name="export_full_backup_summary">Génère un fichier contenant toutes vos données. Ce fichier peut être réimporté.</string>
<string name="bug_report_failed">La génération du rapport de bug a échouée.</string>
<string name="generate_bug_report">Générer un rapport de bug.</string>
<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="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>
<string name="week">Semaine</string>
<string name="month">Mois</string>
<string name="quarter">Trimestre</string>
<string name="year">Année</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>
<string name="every_x_weeks">Toutes les %d semaines</string>
<string name="every_x_months">Tous les %d mois</string>
<string name="score">Pointage</string>
<string name="reminder_sound">Son de rappel</string>
<string name="none">Aucun</string>
</resources>

@ -1,242 +1,212 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
~ 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/>.
-->
<resources>
<string name="app_name">"Loop आदत पर नजर"</string>
<string name="main_activity_title">"आदतें"</string>
<string name="action_settings">"सेटिंग्स"</string>
<!-- This is not a common Hindi Word but the closest I could get -->
<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>
<!-- This appears when the user edits a habit, and then undoes the action. The habit is "changed back" to what is was before. Alternatively, "Habit restored". -->
<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>
<!-- This and the next two terms form the sentence "Repeat 3 times in 7 days" that you see when you create a habit. Let me know if you have trouble adapting this into your language. -->
<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>
<!-- Streak as in "winning streak". That is, the number of times a user has performed a habit consecutively. Similar terms are "chains" or "series". -->
<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">"
लूप हैबिट ट्रैकर नई और अच्छी आदतों को बनाए रखने मे लिए मदद करता है ।"</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="pref_toggle_title">"टॉगल पुनरावृत्ति हल्का दबाने से"</string>
<string name="pref_toggle_description">"
अधिक सुविधाजनक है, लेकिन आकस्मिक टॉगल हो सकता है ।"</string>
<string name="pref_snooze_interval_title">"रिमाइंडर मे स्नूज़ अंतराल"</string>
<string name="pref_rate_this_app">"
गूगले प्ले पर इस ऐप्लिकेशन को रेट करें"</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="show_archived">"संग्रह देखें"</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="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>
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
<string name="store_short_description">"
अच्छी आदतें बनाएं और समय के साथ अपनी प्रगति को ट्रैक (विज्ञापन मुक्त )"</string>
<string name="store_description_1">"लूप अच्छी आदतों को बनाए रखने के लिए, वा लंबी अवधि के लक्ष्यों को प्राप्त करने में आपकी मदद करता है । विस्तृत रेखांकन और आँकड़े आपको बताएंगे कि कैसे अपनी आदतों में समय के साथ सुधार होगा। यह पूरी तरह से विज्ञापन मुक्त और ओपन सोर्स है"</string>
<string name="store_feature_interface">"
&lt;b&gt;सरल, सुंदर और आधुनिक इंटरफ़ेस&lt;/b&gt;
लूप मे न्यूनतर इंटरफ़ेस है जो उपयोग करने के लिए आसान है मेटीरियल डिजाइन दिशा निर्देशों का पालन करता है"</string>
<string name="store_feature_score">"आदत स्कोर
अपने वर्तमान स्ट्रीक दिखाने के अलावा , लूप मे अपनी आदतों की ताकत की गणना के लिए एक उन्नत एल्गोरिथ्म है। हर पुनरावृत्ति अपनी आदत को मजबूत बनाता है , और हर चूक दिन यह कमजोर बना देता है। हालांकि कुछ चूक दिन एक लंबी स्ट्रीक के बाद , पूरी तरह से आपके पूरे प्रगति को नष्ट नहीं होगा ।"</string>
<string name="store_feature_statistics">"
विस्तृत रेखांकन और आँकड़े
स्पष्ट रूप से सुंदर और विस्तृत रेखांकन के साथ देखें कि कैसे आपकी आदतों मे साथ समय के साथ सुधार हुआ है। अपनी आदतों का पूरा इतिहास देखने के लिए वापस स्क्रॉल करें।"</string>
<string name="store_feature_schedules">"
लचीला कार्यक्रम
दैनिक आदतों और अधिक जटिल कार्यक्रम दोनो को सपोर्ट ,इस तरह के रूप में 3 बार हर सप्ताह समर्थन करता है; एक बार हर दूसरे सप्ताह ; या हर दूसरे दिन ।"</string>
<string name="store_feature_reminders">"रिमाइंडर
प्रत्येक आदत के लिए एक रिमाइंडर बनाएं , दिन के एक चुने हुए घंटे में । आसानी से , जांच को खारिज या अधिसूचना से सीधे अपने नोटिफिकेशन से, एप्लिकेशन को खोले बिना"</string>
<string name="store_feature_opensource">"पूर्ण रूप से मुफ़्त और ओपन सोर्स
यहाँ बिल्कुल भी कोई विज्ञापन , कष्टप्रद सूचनाएं या फ़िज़ूल पर्मिशन नही है और कभी नहीं होगा।
पूरा सोर्स कोड GPLv3 के तहत उपलब्ध है।"</string>
<string name="store_feature_wear">"Smartwatches के लिए अनुकूल
रिमाइंडर को चेक कर सकते हैं, स्नूज़ या हटा सकते हैं सीधे अपनी स्मार्ट वॉच से"</string>
<string name="about">"
बारे में"</string>
<string name="translators">"
अनुवादक"</string>
<string name="developers">"
डिवेलपर"</string>
<!-- %s will get replaced by the version number. For example, "Versão %d" will become "Versão 1.2.0". -->
<string name="version_n">"वर्ज़न %s"</string>
<string name="frequency">"आवृत्ति"</string>
<string name="checkmark">"सही का चिह्न"</string>
<!-- This is a shorter version of "Habit Strength" -->
<string name="strength">"
ताक़त"</string>
<string name="best_streaks">"बेस्ट स्ट्रीक्स"</string>
<string name="current_streaks">"
वर्तमान स्ट्रीक्स"</string>
<string name="number_of_repetitions">"
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>
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
<string name="all_time">"पूरा समय"</string>
<string name="every_day">"
हर दिन"</string>
<string name="every_week">"
प्रति सप्ताह"</string>
<string name="two_times_per_week">"
प्रति सप्ताह 2 बार"</string>
<string name="five_times_per_week">"
प्रति सप्ताह 5 बार"</string>
<string name="custom_frequency">"अन्य"</string>
<string name="help">"
मदद और बार-बार सवाल पूछने वाले सवाल"</string>
<string name="could_not_export">"
डेटा निर्यात करने में विफल"</string>
<string name="could_not_import">"डेटा आयात करने में विफल रहा है"</string>
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
<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">"इस एप्लिकेशन के द्वारा निर्यात पूर्ण बैकअप को सपोर्ट करता है , साथ ही फाइलों टिक्कमते , हबिठबुल्ल या रिवाइयर द्वारा उत्पन्न फाइल्स को सपोर्ट करता है। अधिक जानकारी के लिए सामान्य प्रश्न देखें।"</string>
<string name="export_as_csv_summary">"ऐसी फाइल्स उत्पन्न करता है जो स्प्रेडशीट सॉफ़्टवरेस जैसे Microsoft Excel, OpenOffice Calc मे खुल सकती है.
इस फ़ाइल में वापस आयात नहीं किया जा सकता है।"</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">"
रात मोड में शुद्ध काले रंग के साथ ग्रे पृष्ठभूमि में बदलें. अमोलेड प्रदर्शन के साथ फोन में बैटरी उपयोग कम कर देता है ।"</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>
<!-- Three-month period -->
<string name="quarter">"तिमाही"</string>
<string name="year">"साल"</string>
<!-- Middle part of the sentence '1 time in xx days' -->
<!-- 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>
<!-- The old "habit strength" has been replaced by "score". Feel free to translate "score" as "strength" or "stability" if it sounds more natural in your language. -->
<string name="score">"स्कोर"</string>
<string name="reminder_sound">"अनुस्मारक ध्वनि"</string>
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
<string name="none">"
कोई आवाज नहीं"</string>
</resources>
<string name="app_name">Loop आदत पर नजर</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">\"
लूप हैबिट ट्रैकर नई और अच्छी आदतों को बनाए रखने मे लिए मदद करता है ।\"</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="pref_toggle_title">टॉगल पुनरावृत्ति हल्का दबाने से</string>
<string name="pref_toggle_description">\"
अधिक सुविधाजनक है, लेकिन आकस्मिक टॉगल हो सकता है ।\"</string>
<string name="pref_snooze_interval_title">रिमाइंडर मे स्नूज़ अंतराल</string>
<string name="pref_rate_this_app">\"
गूगले प्ले पर इस ऐप्लिकेशन को रेट करें\"</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="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">\"
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">\"
प्रति सप्ताह 2 बार\"</string>
<string name="five_times_per_week">\"
प्रति सप्ताह 5 बार\"</string>
<string name="custom_frequency">अन्य</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">इस एप्लिकेशन के द्वारा निर्यात पूर्ण बैकअप को सपोर्ट करता है , साथ ही फाइलों टिक्कमते , हबिठबुल्ल या रिवाइयर द्वारा उत्पन्न फाइल्स को सपोर्ट करता है। अधिक जानकारी के लिए सामान्य प्रश्न देखें।</string>
<string name="export_as_csv_summary">\"ऐसी फाइल्स उत्पन्न करता है जो स्प्रेडशीट सॉफ़्टवरेस जैसे Microsoft Excel, OpenOffice Calc मे खुल सकती है.
इस फ़ाइल में वापस आयात नहीं किया जा सकता है।\"</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">\"
रात मोड में शुद्ध काले रंग के साथ ग्रे पृष्ठभूमि में बदलें. अमोलेड प्रदर्शन के साथ फोन में बैटरी उपयोग कम कर देता है ।\"</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>
<!-- 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>
</resources>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save