mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 09:08:52 -06:00
Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 540a618ba8 | |||
| bf24cc608c | |||
| a73459784e | |||
| de3b97dfdf | |||
| 91996924d9 | |||
| 9fe446b424 | |||
| 3857eaf5e9 | |||
| e29fb58922 | |||
| 404fc869b0 | |||
| 001dd5a7c1 | |||
| 7930cc8f31 | |||
| 526830ba61 | |||
| fe1513bb64 | |||
| e06ace9ea8 | |||
| d727dabb2b | |||
| d17e8fcbfb | |||
| be3d7145ab | |||
| cf66587644 | |||
| 0dc9ec2e5f | |||
| 0a375ded96 | |||
| fa5d6f8fee | |||
| 534e6c2d9d | |||
| b6501c9a29 | |||
| 238a1c724d | |||
| 34ca9d17a2 | |||
| e844390614 | |||
| 5e00d07b73 | |||
| 28b6ae7014 | |||
| 2a1bf5fc2e | |||
| ef7483f9dc | |||
| bbb9ed8f99 | |||
| c49d576871 | |||
| bc66ae4f7a | |||
| fa416adbb9 | |||
| 8b835b9918 | |||
| 471c5d341f | |||
| 57296745b3 | |||
| 140ab34a76 | |||
| 0d6ad26505 | |||
| 65cc99dbf7 | |||
| 6855ef9d5e | |||
| 4c58b084c6 | |||
| 5c8e522646 | |||
| 55da0759d4 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -21,3 +21,4 @@ docs/
|
||||
gen/
|
||||
local.properties
|
||||
crowdin.yaml
|
||||
local
|
||||
|
||||
22
CHANGELOG.md
22
CHANGELOG.md
@@ -1,5 +1,27 @@
|
||||
# Changelog
|
||||
|
||||
### 1.7.6 (July 18, 2017)
|
||||
|
||||
* Fix bug that caused widgets not to render sometimes
|
||||
* Fix other minor bugs
|
||||
* Update translations
|
||||
|
||||
### 1.7.3 (May 30, 2017)
|
||||
|
||||
* Improve performance of 'sort by score'
|
||||
* Other minor bug fixes
|
||||
|
||||
### 1.7.2 (May 27, 2017)
|
||||
|
||||
* Fix crash at startup
|
||||
|
||||
### 1.7.1 (May 21, 2017)
|
||||
|
||||
* Fix crash (BadParcelableException)
|
||||
* Fix layout for RTL languages such as Arabic
|
||||
* Automatically detect and reject invalid database files
|
||||
* Add Hebrew translation
|
||||
|
||||
### 1.7.0 (Mar 31, 2017)
|
||||
|
||||
* Sort habits automatically
|
||||
|
||||
@@ -25,7 +25,7 @@ android {
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
||||
}
|
||||
debug {
|
||||
testCoverageEnabled = true
|
||||
testCoverageEnabled = false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.content.*;
|
||||
import android.os.*;
|
||||
import android.support.annotation.*;
|
||||
import android.support.test.*;
|
||||
import android.util.*;
|
||||
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.isoron.uhabits.preferences.*;
|
||||
@@ -31,6 +32,7 @@ import org.isoron.uhabits.tasks.*;
|
||||
import org.isoron.uhabits.utils.*;
|
||||
import org.junit.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
@@ -65,6 +67,8 @@ public class BaseAndroidTest
|
||||
|
||||
protected ModelFactory modelFactory;
|
||||
|
||||
private boolean isDone = false;
|
||||
|
||||
@Before
|
||||
public void setUp()
|
||||
{
|
||||
@@ -115,6 +119,25 @@ public class BaseAndroidTest
|
||||
assertTrue(latch.await(60, TimeUnit.SECONDS));
|
||||
}
|
||||
|
||||
protected void runConcurrently(Runnable... runnableList) throws Exception
|
||||
{
|
||||
isDone = false;
|
||||
ExecutorService executor = Executors.newFixedThreadPool(100);
|
||||
List<Future> futures = new LinkedList<>();
|
||||
for (Runnable r : runnableList)
|
||||
futures.add(executor.submit(() ->
|
||||
{
|
||||
while (!isDone) r.run();
|
||||
return null;
|
||||
}));
|
||||
|
||||
Thread.sleep(3000);
|
||||
isDone = true;
|
||||
executor.shutdown();
|
||||
for(Future f : futures) f.get();
|
||||
while (!executor.isTerminated()) Thread.sleep(50);
|
||||
}
|
||||
|
||||
protected void setTheme(@StyleRes int themeId)
|
||||
{
|
||||
targetContext.setTheme(themeId);
|
||||
@@ -132,4 +155,18 @@ public class BaseAndroidTest
|
||||
fail();
|
||||
}
|
||||
}
|
||||
|
||||
protected void startTracing()
|
||||
{
|
||||
File dir = FileUtils.getFilesDir(targetContext, "Profile");
|
||||
assertNotNull(dir);
|
||||
String tracePath = dir.getAbsolutePath() + "/performance.trace";
|
||||
Log.d("PerformanceTest", String.format("Saving trace file to %s", tracePath));
|
||||
Debug.startMethodTracingSampling(tracePath, 0, 1000);
|
||||
}
|
||||
|
||||
protected void stopTracing()
|
||||
{
|
||||
Debug.stopMethodTracing();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,12 +46,12 @@ public class CheckmarkButtonViewTest extends BaseViewTest
|
||||
public void setUp()
|
||||
{
|
||||
super.setUp();
|
||||
setSimilarityCutoff(0.03f);
|
||||
setSimilarityCutoff(0.015f);
|
||||
|
||||
latch = new CountDownLatch(1);
|
||||
view = new CheckmarkButtonView(targetContext);
|
||||
view.setValue(Checkmark.UNCHECKED);
|
||||
view.setColor(ColorUtils.getAndroidTestColor(7));
|
||||
view.setColor(ColorUtils.getAndroidTestColor(5));
|
||||
|
||||
measureView(view, dpToPixels(40), dpToPixels(40));
|
||||
}
|
||||
|
||||
@@ -171,13 +171,13 @@ public class MainTest
|
||||
clickMenuItem(R.string.archive);
|
||||
assertHabitsDontExist(names);
|
||||
|
||||
clickMenuItem(R.string.show_archived);
|
||||
clickMenuItem(R.string.hide_archived);
|
||||
|
||||
assertHabitsExist(names);
|
||||
selectHabits(names);
|
||||
clickMenuItem(R.string.unarchive);
|
||||
|
||||
clickMenuItem(R.string.show_archived);
|
||||
clickMenuItem(R.string.hide_archived);
|
||||
|
||||
assertHabitsExist(names);
|
||||
deleteHabits(names);
|
||||
|
||||
@@ -115,6 +115,41 @@ public class SQLiteCheckmarkListTest extends BaseAndroidTest
|
||||
assertThat(records.get(0).timestamp, equalTo(today - 21 * day));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFixRecords() throws Exception
|
||||
{
|
||||
long day = DateUtils.millisecondsInOneDay;
|
||||
long from = DateUtils.getStartOfToday();
|
||||
long to = from + 5 * day;
|
||||
|
||||
List<CheckmarkRecord> original, actual, expected;
|
||||
HabitRecord habit = new HabitRecord();
|
||||
|
||||
original = new ArrayList<>();
|
||||
original.add(new CheckmarkRecord(habit, from + 8*day, 2));
|
||||
original.add(new CheckmarkRecord(habit, from + 5*day, 0));
|
||||
original.add(new CheckmarkRecord(habit, from + 4*day, 0));
|
||||
original.add(new CheckmarkRecord(habit, from + 4*day, 2));
|
||||
original.add(new CheckmarkRecord(habit, from + 3*day, 2));
|
||||
original.add(new CheckmarkRecord(habit, from + 2*day, 1));
|
||||
original.add(new CheckmarkRecord(habit, from + 2*day + 100, 1));
|
||||
original.add(new CheckmarkRecord(habit, from, 0));
|
||||
original.add(new CheckmarkRecord(habit, from, 2));
|
||||
original.add(new CheckmarkRecord(habit, from - day, 2));
|
||||
|
||||
actual = SQLiteCheckmarkList.fixRecords(original, habit, from, to);
|
||||
|
||||
expected = new ArrayList<>();
|
||||
expected.add(new CheckmarkRecord(habit, from + 5*day, 0));
|
||||
expected.add(new CheckmarkRecord(habit, from + 4*day, 2));
|
||||
expected.add(new CheckmarkRecord(habit, from + 3*day, 2));
|
||||
expected.add(new CheckmarkRecord(habit, from + 2*day, 1));
|
||||
expected.add(new CheckmarkRecord(habit, from + day, 0));
|
||||
expected.add(new CheckmarkRecord(habit, from, 2));
|
||||
|
||||
assertThat(actual, equalTo(expected));
|
||||
}
|
||||
|
||||
private List<CheckmarkRecord> getAllRecords()
|
||||
{
|
||||
return new Select()
|
||||
|
||||
@@ -61,29 +61,6 @@ public class SQLiteScoreListTest extends BaseAndroidTest
|
||||
day = DateUtils.millisecondsInOneDay;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAll()
|
||||
{
|
||||
List<Score> list = scores.toList();
|
||||
assertThat(list.size(), equalTo(121));
|
||||
assertThat(list.get(0).getTimestamp(), equalTo(today));
|
||||
assertThat(list.get(10).getTimestamp(), equalTo(today - 10 * day));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInvalidateNewerThan()
|
||||
{
|
||||
scores.getTodayValue(); // force recompute
|
||||
List<ScoreRecord> records = getAllRecords();
|
||||
assertThat(records.size(), equalTo(121));
|
||||
|
||||
scores.invalidateNewerThan(today - 10 * day);
|
||||
|
||||
records = getAllRecords();
|
||||
assertThat(records.size(), equalTo(110));
|
||||
assertThat(records.get(0).timestamp, equalTo(today - 11 * day));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAdd()
|
||||
{
|
||||
@@ -101,6 +78,15 @@ public class SQLiteScoreListTest extends BaseAndroidTest
|
||||
assertThat(records.get(0).timestamp, equalTo(today));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAll()
|
||||
{
|
||||
List<Score> list = scores.toList();
|
||||
assertThat(list.size(), equalTo(121));
|
||||
assertThat(list.get(0).getTimestamp(), equalTo(today));
|
||||
assertThat(list.get(10).getTimestamp(), equalTo(today - 10 * day));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetByInterval()
|
||||
{
|
||||
@@ -115,6 +101,16 @@ public class SQLiteScoreListTest extends BaseAndroidTest
|
||||
assertThat(list.get(7).getTimestamp(), equalTo(today - 10 * day));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetByInterval_concurrent() throws Exception
|
||||
{
|
||||
Runnable block1 = () -> scores.invalidateNewerThan(0);
|
||||
Runnable block2 =
|
||||
() -> assertThat(scores.getByInterval(today, today).size(),
|
||||
equalTo(1));
|
||||
runConcurrently(block1, block2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetByInterval_withLongInterval()
|
||||
{
|
||||
@@ -125,6 +121,30 @@ public class SQLiteScoreListTest extends BaseAndroidTest
|
||||
assertThat(list.size(), equalTo(201));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTodayValue_concurrent() throws Exception
|
||||
{
|
||||
Runnable block1 = () -> scores.invalidateNewerThan(0);
|
||||
Runnable block2 =
|
||||
() -> assertThat(scores.getTodayValue(), equalTo(18407827));
|
||||
|
||||
runConcurrently(block1, block2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInvalidateNewerThan()
|
||||
{
|
||||
scores.getTodayValue(); // force recompute
|
||||
List<ScoreRecord> records = getAllRecords();
|
||||
assertThat(records.size(), equalTo(121));
|
||||
|
||||
scores.invalidateNewerThan(today - 10 * day);
|
||||
|
||||
records = getAllRecords();
|
||||
assertThat(records.size(), equalTo(110));
|
||||
assertThat(records.get(0).timestamp, equalTo(today - 11 * day));
|
||||
}
|
||||
|
||||
private List<ScoreRecord> getAllRecords()
|
||||
{
|
||||
return new Select()
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* 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.performance;
|
||||
|
||||
import android.support.test.filters.*;
|
||||
|
||||
import org.isoron.uhabits.*;
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.junit.*;
|
||||
|
||||
@MediumTest
|
||||
public class PerformanceTest extends BaseAndroidTest
|
||||
{
|
||||
private Habit habit;
|
||||
|
||||
@Override
|
||||
public void setUp()
|
||||
{
|
||||
super.setUp();
|
||||
habit = fixtures.createLongHabit();
|
||||
}
|
||||
|
||||
@Test(timeout = 1000)
|
||||
public void testRepeatedGetTodayValue()
|
||||
{
|
||||
for (int i = 0; i < 100000; i++)
|
||||
{
|
||||
habit.getScores().getTodayValue();
|
||||
habit.getCheckmarks().getTodayValue();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,8 +21,8 @@
|
||||
<manifest
|
||||
package="org.isoron.uhabits"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="27"
|
||||
android:versionName="1.7.0">
|
||||
android:versionCode="33"
|
||||
android:versionName="1.7.6">
|
||||
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@ package org.isoron.uhabits;
|
||||
|
||||
import android.app.*;
|
||||
import android.content.*;
|
||||
import android.support.annotation.*;
|
||||
|
||||
import com.activeandroid.*;
|
||||
|
||||
import org.isoron.uhabits.models.sqlite.*;
|
||||
import org.isoron.uhabits.notifications.*;
|
||||
import org.isoron.uhabits.preferences.*;
|
||||
import org.isoron.uhabits.tasks.*;
|
||||
@@ -88,7 +88,16 @@ public class HabitsApplication extends Application
|
||||
if (db.exists()) db.delete();
|
||||
}
|
||||
|
||||
DatabaseUtils.initializeActiveAndroid(context);
|
||||
try
|
||||
{
|
||||
DatabaseUtils.initializeActiveAndroid(context);
|
||||
}
|
||||
catch (InvalidDatabaseVersionException e)
|
||||
{
|
||||
File db = DatabaseUtils.getDatabaseFile(context);
|
||||
db.renameTo(new File(db.getAbsolutePath() + ".invalid"));
|
||||
DatabaseUtils.initializeActiveAndroid(context);
|
||||
}
|
||||
|
||||
widgetUpdater = component.getWidgetUpdater();
|
||||
widgetUpdater.startListening();
|
||||
|
||||
@@ -20,25 +20,27 @@
|
||||
package org.isoron.uhabits.activities.common.views;
|
||||
|
||||
import android.os.*;
|
||||
import android.view.*;
|
||||
import android.support.v4.os.*;
|
||||
|
||||
public class BundleSavedState extends View.BaseSavedState
|
||||
public class BundleSavedState extends android.support.v4.view.AbsSavedState
|
||||
{
|
||||
public static final Parcelable.Creator<BundleSavedState> CREATOR =
|
||||
new Parcelable.Creator<BundleSavedState>()
|
||||
{
|
||||
@Override
|
||||
public BundleSavedState createFromParcel(Parcel source)
|
||||
ParcelableCompat.newCreator(
|
||||
new ParcelableCompatCreatorCallbacks<BundleSavedState>()
|
||||
{
|
||||
return new BundleSavedState(source);
|
||||
}
|
||||
@Override
|
||||
public BundleSavedState createFromParcel(Parcel source,
|
||||
ClassLoader loader)
|
||||
{
|
||||
return new BundleSavedState(source, loader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BundleSavedState[] newArray(int size)
|
||||
{
|
||||
return new BundleSavedState[size];
|
||||
}
|
||||
};
|
||||
@Override
|
||||
public BundleSavedState[] newArray(int size)
|
||||
{
|
||||
return new BundleSavedState[size];
|
||||
}
|
||||
});
|
||||
|
||||
public final Bundle bundle;
|
||||
|
||||
@@ -48,10 +50,10 @@ public class BundleSavedState extends View.BaseSavedState
|
||||
this.bundle = bundle;
|
||||
}
|
||||
|
||||
public BundleSavedState(Parcel source)
|
||||
public BundleSavedState(Parcel source, ClassLoader loader)
|
||||
{
|
||||
super(source);
|
||||
this.bundle = source.readBundle();
|
||||
super(source, loader);
|
||||
this.bundle = source.readBundle(loader);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -256,7 +256,7 @@ public class FrequencyChart extends ScrollableChart
|
||||
float scale = 1.0f/maxFreq * value;
|
||||
float radius = maxRadius * scale;
|
||||
|
||||
int colorIndex = Math.round((colors.length-1) * scale);
|
||||
int colorIndex = Math.min(colors.length - 1, Math.round((colors.length - 1) * scale));
|
||||
pGraph.setColor(colors[colorIndex]);
|
||||
canvas.drawCircle(rect.centerX(), rect.centerY(), radius, pGraph);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,8 @@ import org.isoron.uhabits.utils.*;
|
||||
import java.text.*;
|
||||
import java.util.*;
|
||||
|
||||
import static org.isoron.uhabits.models.Checkmark.*;
|
||||
import static org.isoron.uhabits.models.Checkmark.CHECKED_EXPLICITLY;
|
||||
import static org.isoron.uhabits.models.Checkmark.UNCHECKED;
|
||||
|
||||
public class HistoryChart extends ScrollableChart
|
||||
{
|
||||
@@ -112,10 +113,21 @@ public class HistoryChart extends ScrollableChart
|
||||
if (!isEditable) return false;
|
||||
|
||||
performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP);
|
||||
float x, y;
|
||||
|
||||
int pointerId = e.getPointerId(0);
|
||||
float x = e.getX(pointerId);
|
||||
float y = e.getY(pointerId);
|
||||
try
|
||||
{
|
||||
int pointerId = e.getPointerId(0);
|
||||
x = e.getX(pointerId);
|
||||
y = e.getY(pointerId);
|
||||
}
|
||||
catch (RuntimeException ex)
|
||||
{
|
||||
// Android often throws IllegalArgumentException here. Apparently,
|
||||
// the pointer id may become invalid shortly after calling
|
||||
// e.getPointerId.
|
||||
return false;
|
||||
}
|
||||
|
||||
final Long timestamp = positionToTimestamp(x, y);
|
||||
if (timestamp == null) return false;
|
||||
|
||||
@@ -107,6 +107,12 @@ public abstract class ScrollableChart extends View
|
||||
@Override
|
||||
public void onRestoreInstanceState(Parcelable state)
|
||||
{
|
||||
if(!(state instanceof BundleSavedState))
|
||||
{
|
||||
super.onRestoreInstanceState(state);
|
||||
return;
|
||||
}
|
||||
|
||||
BundleSavedState bss = (BundleSavedState) state;
|
||||
int x = bss.bundle.getInt("x");
|
||||
int y = bss.bundle.getInt("y");
|
||||
|
||||
@@ -39,6 +39,8 @@ import java.util.*;
|
||||
|
||||
import butterknife.*;
|
||||
|
||||
import static org.isoron.uhabits.activities.ThemeSwitcher.*;
|
||||
|
||||
public abstract class BaseDialog extends AppCompatDialogFragment
|
||||
{
|
||||
@Nullable
|
||||
@@ -62,6 +64,18 @@ public abstract class BaseDialog extends AppCompatDialogFragment
|
||||
|
||||
private ColorPickerDialogFactory colorPickerDialogFactory;
|
||||
|
||||
@Override
|
||||
public int getTheme()
|
||||
{
|
||||
AppComponent component =
|
||||
((HabitsApplication) getContext().getApplicationContext()).getComponent();
|
||||
|
||||
if(component.getPreferences().getTheme() == THEME_LIGHT)
|
||||
return R.style.DialogWithTitle;
|
||||
else
|
||||
return R.style.DarkDialogWithTitle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState)
|
||||
{
|
||||
|
||||
@@ -105,11 +105,10 @@ public class HabitCardListAdapter
|
||||
* Returns the item that occupies a certain position on the list
|
||||
*
|
||||
* @param position position of the item
|
||||
* @return the item at given position
|
||||
* @throws IndexOutOfBoundsException if position is not valid
|
||||
* @return the item at given position or null if position is invalid
|
||||
*/
|
||||
@Deprecated
|
||||
@NonNull
|
||||
@Nullable
|
||||
public Habit getItem(int position)
|
||||
{
|
||||
return cache.getHabitByPosition(position);
|
||||
@@ -314,6 +313,8 @@ public class HabitCardListAdapter
|
||||
public void toggleSelection(int position)
|
||||
{
|
||||
Habit h = getItem(position);
|
||||
if (h == null) return;
|
||||
|
||||
int k = selected.indexOf(h);
|
||||
if (k < 0) selected.add(h);
|
||||
else selected.remove(h);
|
||||
|
||||
@@ -93,12 +93,12 @@ public class HabitCardListCache implements CommandRunner.Listener
|
||||
* Returns the habits that occupies a certain position on the list.
|
||||
*
|
||||
* @param position the position of the habit
|
||||
* @return the habit at given position
|
||||
* @throws IndexOutOfBoundsException if position is not valid
|
||||
* @return the habit at given position or null if position is invalid
|
||||
*/
|
||||
@NonNull
|
||||
public Habit getHabitByPosition(int position)
|
||||
@Nullable
|
||||
public synchronized Habit getHabitByPosition(int position)
|
||||
{
|
||||
if(position < 0 || position >= data.habits.size()) return null;
|
||||
return data.habits.get(position);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,21 +20,34 @@
|
||||
package org.isoron.uhabits.activities.habits.list.views;
|
||||
|
||||
import android.content.*;
|
||||
import android.content.res.*;
|
||||
import android.graphics.*;
|
||||
import android.support.annotation.*;
|
||||
import android.text.*;
|
||||
import android.util.*;
|
||||
import android.view.*;
|
||||
import android.widget.*;
|
||||
|
||||
import org.isoron.uhabits.*;
|
||||
import org.isoron.uhabits.activities.habits.list.controllers.*;
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.isoron.uhabits.utils.*;
|
||||
|
||||
public class CheckmarkButtonView extends TextView
|
||||
import static android.view.View.MeasureSpec.*;
|
||||
import static org.isoron.uhabits.models.Checkmark.*;
|
||||
import static org.isoron.uhabits.utils.AttributeSetUtils.*;
|
||||
|
||||
public class CheckmarkButtonView extends View
|
||||
{
|
||||
private int color;
|
||||
|
||||
private int value;
|
||||
|
||||
private StyledResources res;
|
||||
private StyledResources styledRes;
|
||||
|
||||
private TextPaint paint;
|
||||
|
||||
private int lowContrastColor;
|
||||
|
||||
private RectF rect;
|
||||
|
||||
public CheckmarkButtonView(Context context)
|
||||
{
|
||||
@@ -42,6 +55,21 @@ public class CheckmarkButtonView extends TextView
|
||||
init();
|
||||
}
|
||||
|
||||
public CheckmarkButtonView(@Nullable Context ctx, @Nullable AttributeSet attrs)
|
||||
{
|
||||
super(ctx, attrs);
|
||||
init();
|
||||
|
||||
if(ctx == null) throw new IllegalStateException();
|
||||
if(attrs == null) throw new IllegalStateException();
|
||||
|
||||
int paletteColor = getIntAttribute(ctx, attrs, "color", 0);
|
||||
setColor(ColorUtils.getAndroidTestColor(paletteColor));
|
||||
|
||||
int value = getIntAttribute(ctx, attrs, "value", 0);
|
||||
setValue(value);
|
||||
}
|
||||
|
||||
public void setColor(int color)
|
||||
{
|
||||
this.color = color;
|
||||
@@ -57,54 +85,60 @@ public class CheckmarkButtonView extends TextView
|
||||
public void setValue(int value)
|
||||
{
|
||||
this.value = value;
|
||||
updateText();
|
||||
postInvalidate();
|
||||
}
|
||||
|
||||
public void toggle()
|
||||
{
|
||||
value = (value == Checkmark.CHECKED_EXPLICITLY ? Checkmark.UNCHECKED :
|
||||
Checkmark.CHECKED_EXPLICITLY);
|
||||
|
||||
value = (value == CHECKED_EXPLICITLY ? UNCHECKED : CHECKED_EXPLICITLY);
|
||||
performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
|
||||
updateText();
|
||||
postInvalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas)
|
||||
{
|
||||
super.onDraw(canvas);
|
||||
Resources resources = getResources();
|
||||
|
||||
paint.setColor(value == CHECKED_EXPLICITLY ? color : lowContrastColor);
|
||||
int id = (value == UNCHECKED ? R.string.fa_times : R.string.fa_check);
|
||||
String label = resources.getString(id);
|
||||
float em = paint.measureText("m");
|
||||
|
||||
rect.set(0, 0, getWidth(), getHeight());
|
||||
rect.offset(0, 0.4f * em);
|
||||
canvas.drawText(label, rect.centerX(), rect.centerY(), paint);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
|
||||
{
|
||||
Resources res = getResources();
|
||||
int height = res.getDimensionPixelSize(R.dimen.checkmarkHeight);
|
||||
int width = res.getDimensionPixelSize(R.dimen.checkmarkWidth);
|
||||
|
||||
widthMeasureSpec = makeMeasureSpec(width, EXACTLY);
|
||||
heightMeasureSpec = makeMeasureSpec(height, EXACTLY);
|
||||
|
||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
|
||||
private void init()
|
||||
{
|
||||
res = new StyledResources(getContext());
|
||||
|
||||
setWillNotDraw(false);
|
||||
|
||||
setMinHeight(
|
||||
getResources().getDimensionPixelSize(R.dimen.checkmarkHeight));
|
||||
setMinWidth(
|
||||
getResources().getDimensionPixelSize(R.dimen.checkmarkWidth));
|
||||
|
||||
setFocusable(false);
|
||||
setGravity(Gravity.CENTER);
|
||||
setTypeface(InterfaceUtils.getFontAwesome(getContext()));
|
||||
}
|
||||
|
||||
private void updateText()
|
||||
{
|
||||
int lowContrastColor = res.getColor(R.attr.lowContrastTextColor);
|
||||
Resources res = getResources();
|
||||
styledRes = new StyledResources(getContext());
|
||||
|
||||
if (value == Checkmark.CHECKED_EXPLICITLY)
|
||||
{
|
||||
setText(R.string.fa_check);
|
||||
setTextColor(color);
|
||||
}
|
||||
paint = new TextPaint();
|
||||
paint.setTypeface(InterfaceUtils.getFontAwesome(getContext()));
|
||||
paint.setAntiAlias(true);
|
||||
paint.setTextAlign(Paint.Align.CENTER);
|
||||
paint.setTextSize(res.getDimension(R.dimen.regularTextSize));
|
||||
|
||||
if (value == Checkmark.CHECKED_IMPLICITLY)
|
||||
{
|
||||
setText(R.string.fa_check);
|
||||
setTextColor(lowContrastColor);
|
||||
}
|
||||
|
||||
if (value == Checkmark.UNCHECKED)
|
||||
{
|
||||
setText(R.string.fa_times);
|
||||
setTextColor(lowContrastColor);
|
||||
}
|
||||
rect = new RectF();
|
||||
color = ColorUtils.getAndroidTestColor(0);
|
||||
lowContrastColor = styledRes.getColor(R.attr.lowContrastTextColor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,6 +153,12 @@ public class HabitCardListView extends RecyclerView
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Parcelable state)
|
||||
{
|
||||
if(!(state instanceof BundleSavedState))
|
||||
{
|
||||
super.onRestoreInstanceState(state);
|
||||
return;
|
||||
}
|
||||
|
||||
BundleSavedState bss = (BundleSavedState) state;
|
||||
dataOffset = bss.bundle.getInt("dataOffset");
|
||||
super.onRestoreInstanceState(bss.getSuperState());
|
||||
|
||||
@@ -143,12 +143,13 @@ public class HabitCardView extends FrameLayout
|
||||
updateBackground(isSelected);
|
||||
}
|
||||
|
||||
public void triggerRipple(long timestamp)
|
||||
public synchronized void triggerRipple(long timestamp)
|
||||
{
|
||||
long today = DateUtils.getStartOfToday();
|
||||
long day = DateUtils.millisecondsInOneDay;
|
||||
int offset = (int) ((today - timestamp) / day) - dataOffset;
|
||||
CheckmarkButtonView button = checkmarkPanel.indexToButton(offset);
|
||||
if (button == null) return;
|
||||
|
||||
float y = button.getHeight() / 2.0f;
|
||||
float x = checkmarkPanel.getX() + button.getX() + button.getWidth() / 2;
|
||||
@@ -214,6 +215,7 @@ public class HabitCardView extends FrameLayout
|
||||
scoreRing.setPercentage(rand.nextFloat());
|
||||
checkmarkPanel.setColor(color);
|
||||
checkmarkPanel.setCheckmarkValues(values);
|
||||
checkmarkPanel.setButtonCount(5);
|
||||
}
|
||||
|
||||
private void refresh()
|
||||
|
||||
@@ -50,8 +50,6 @@ public class HeaderView extends ScrollableChart
|
||||
|
||||
private RectF rect;
|
||||
|
||||
private int maxDataOffset;
|
||||
|
||||
public HeaderView(Context context, AttributeSet attrs)
|
||||
{
|
||||
super(context, attrs);
|
||||
@@ -76,7 +74,6 @@ public class HeaderView extends ScrollableChart
|
||||
|
||||
Resources res = context.getResources();
|
||||
setScrollerBucketSize((int) res.getDimension(R.dimen.checkmarkWidth));
|
||||
setDirection(shouldReverseCheckmarks() ? 1 : -1);
|
||||
|
||||
StyledResources sr = new StyledResources(context);
|
||||
paint = new TextPaint();
|
||||
@@ -99,7 +96,7 @@ public class HeaderView extends ScrollableChart
|
||||
@Override
|
||||
public void onCheckmarkOrderChanged()
|
||||
{
|
||||
setDirection(shouldReverseCheckmarks() ? 1 : -1);
|
||||
updateDirection();
|
||||
postInvalidate();
|
||||
}
|
||||
|
||||
@@ -112,11 +109,20 @@ public class HeaderView extends ScrollableChart
|
||||
@Override
|
||||
protected void onAttachedToWindow()
|
||||
{
|
||||
updateDirection();
|
||||
super.onAttachedToWindow();
|
||||
if (prefs != null) prefs.addListener(this);
|
||||
if (midnightTimer != null) midnightTimer.addListener(this);
|
||||
}
|
||||
|
||||
private void updateDirection()
|
||||
{
|
||||
int direction = -1;
|
||||
if (shouldReverseCheckmarks()) direction *= -1;
|
||||
if (InterfaceUtils.isLayoutRtl(this)) direction *= -1;
|
||||
setDirection(direction);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow()
|
||||
{
|
||||
@@ -145,6 +151,7 @@ public class HeaderView extends ScrollableChart
|
||||
float width = res.getDimension(R.dimen.checkmarkWidth);
|
||||
float height = res.getDimension(R.dimen.checkmarkHeight);
|
||||
boolean reverse = shouldReverseCheckmarks();
|
||||
boolean isRtl = InterfaceUtils.isLayoutRtl(this);
|
||||
|
||||
day.add(GregorianCalendar.DAY_OF_MONTH, -getDataOffset());
|
||||
float em = paint.measureText("m");
|
||||
@@ -153,9 +160,13 @@ public class HeaderView extends ScrollableChart
|
||||
{
|
||||
rect.set(0, 0, width, height);
|
||||
rect.offset(canvas.getWidth(), 0);
|
||||
|
||||
if(reverse) rect.offset(- (i + 1) * width, 0);
|
||||
else rect.offset((i - buttonCount) * width, 0);
|
||||
|
||||
if (isRtl) rect.set(canvas.getWidth() - rect.right, rect.top,
|
||||
canvas.getWidth() - rect.left, rect.bottom);
|
||||
|
||||
String text = DateUtils.formatHeaderDate(day).toUpperCase();
|
||||
String[] lines = text.split("\n");
|
||||
|
||||
|
||||
@@ -19,20 +19,20 @@
|
||||
|
||||
package org.isoron.uhabits.io;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.content.*;
|
||||
import android.database.*;
|
||||
import android.database.sqlite.*;
|
||||
import android.support.annotation.*;
|
||||
import android.util.*;
|
||||
|
||||
import com.activeandroid.ActiveAndroid;
|
||||
import com.activeandroid.*;
|
||||
|
||||
import org.isoron.uhabits.AppContext;
|
||||
import org.isoron.uhabits.*;
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.isoron.uhabits.utils.DatabaseUtils;
|
||||
import org.isoron.uhabits.utils.FileUtils;
|
||||
import org.isoron.uhabits.utils.*;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.*;
|
||||
|
||||
import javax.inject.*;
|
||||
|
||||
@@ -45,7 +45,8 @@ public class LoopDBImporter extends AbstractImporter
|
||||
private Context context;
|
||||
|
||||
@Inject
|
||||
public LoopDBImporter(@NonNull @AppContext Context context, @NonNull HabitList habits)
|
||||
public LoopDBImporter(@NonNull @AppContext Context context,
|
||||
@NonNull HabitList habits)
|
||||
{
|
||||
super(habits);
|
||||
this.context = context;
|
||||
@@ -59,15 +60,29 @@ public class LoopDBImporter extends AbstractImporter
|
||||
SQLiteDatabase db = SQLiteDatabase.openDatabase(file.getPath(), null,
|
||||
SQLiteDatabase.OPEN_READONLY);
|
||||
|
||||
boolean canHandle = true;
|
||||
|
||||
Cursor c = db.rawQuery(
|
||||
"select count(*) from SQLITE_MASTER where name=? or name=?",
|
||||
new String[]{"Checkmarks", "Repetitions"});
|
||||
new String[]{ "Checkmarks", "Repetitions" });
|
||||
|
||||
boolean result = (c.moveToFirst() && c.getInt(0) == 2);
|
||||
if (!c.moveToFirst() || c.getInt(0) != 2)
|
||||
{
|
||||
Log.w("LoopDBImporter", "Cannot handle file: tables not found");
|
||||
canHandle = false;
|
||||
}
|
||||
|
||||
if (db.getVersion() > BuildConfig.databaseVersion)
|
||||
{
|
||||
Log.w("LoopDBImporter", String.format(
|
||||
"Cannot handle file: incompatible version: %d > %d",
|
||||
db.getVersion(), BuildConfig.databaseVersion));
|
||||
canHandle = false;
|
||||
}
|
||||
|
||||
c.close();
|
||||
db.close();
|
||||
return result;
|
||||
return canHandle;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -108,7 +108,7 @@ public abstract class CheckmarkList
|
||||
*
|
||||
* @return value of today's checkmark
|
||||
*/
|
||||
public final int getTodayValue()
|
||||
public int getTodayValue()
|
||||
{
|
||||
Checkmark today = getToday();
|
||||
if (today != null) return today.getValue();
|
||||
@@ -192,7 +192,7 @@ public abstract class CheckmarkList
|
||||
Checkmark newest = getNewestComputed();
|
||||
Checkmark oldest = getOldestComputed();
|
||||
|
||||
if (newest == null)
|
||||
if (newest == null || oldest == null)
|
||||
{
|
||||
forceRecompute(from, to);
|
||||
}
|
||||
@@ -208,6 +208,7 @@ public abstract class CheckmarkList
|
||||
*
|
||||
* @return oldest checkmark already computed
|
||||
*/
|
||||
@Nullable
|
||||
protected abstract Checkmark getOldestComputed();
|
||||
|
||||
/**
|
||||
@@ -285,5 +286,6 @@ public abstract class CheckmarkList
|
||||
*
|
||||
* @return newest checkmark already computed
|
||||
*/
|
||||
@Nullable
|
||||
protected abstract Checkmark getNewestComputed();
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public abstract class ScoreList implements Iterable<Score>
|
||||
* @param timestamp the timestamp of a day
|
||||
* @return score value for that day
|
||||
*/
|
||||
public final int getValue(long timestamp)
|
||||
public synchronized final int getValue(long timestamp)
|
||||
{
|
||||
compute(timestamp, timestamp);
|
||||
Score s = getComputedByTimestamp(timestamp);
|
||||
|
||||
@@ -72,6 +72,7 @@ public class MemoryCheckmarkList extends CheckmarkList
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
protected Checkmark getOldestComputed()
|
||||
{
|
||||
if(list.isEmpty()) return null;
|
||||
@@ -79,6 +80,7 @@ public class MemoryCheckmarkList extends CheckmarkList
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
protected Checkmark getNewestComputed()
|
||||
{
|
||||
if(list.isEmpty()) return null;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Álinson Santos Xavier <isoron@gmail.com>
|
||||
*
|
||||
* This file is part of Loop Habit Tracker.
|
||||
*
|
||||
* Loop Habit Tracker is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* Loop Habit Tracker is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.isoron.uhabits.models.sqlite;
|
||||
|
||||
public class InvalidDatabaseVersionException extends RuntimeException
|
||||
{
|
||||
}
|
||||
@@ -24,7 +24,6 @@ import android.support.annotation.*;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.activeandroid.*;
|
||||
import com.activeandroid.query.*;
|
||||
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.isoron.uhabits.models.sqlite.records.*;
|
||||
@@ -38,12 +37,22 @@ import java.util.*;
|
||||
*/
|
||||
public class SQLiteCheckmarkList extends CheckmarkList
|
||||
{
|
||||
|
||||
private static final String ADD_QUERY =
|
||||
"insert into Checkmarks(habit, timestamp, value) values (?,?,?)";
|
||||
|
||||
private static final String INVALIDATE_QUERY =
|
||||
"delete from Checkmarks where habit = ? and timestamp >= ?";
|
||||
|
||||
@Nullable
|
||||
private HabitRecord habitRecord;
|
||||
|
||||
@NonNull
|
||||
private final SQLiteUtils<CheckmarkRecord> sqlite;
|
||||
|
||||
@Nullable
|
||||
private CachedData cache;
|
||||
|
||||
public SQLiteCheckmarkList(Habit habit)
|
||||
{
|
||||
super(habit);
|
||||
@@ -54,16 +63,11 @@ public class SQLiteCheckmarkList extends CheckmarkList
|
||||
public void add(List<Checkmark> checkmarks)
|
||||
{
|
||||
check(habit.getId());
|
||||
|
||||
String query =
|
||||
"insert into Checkmarks(habit, timestamp, value) values (?,?,?)";
|
||||
|
||||
SQLiteDatabase db = Cache.openDatabase();
|
||||
SQLiteStatement statement = db.compileStatement(ADD_QUERY);
|
||||
db.beginTransaction();
|
||||
try
|
||||
{
|
||||
SQLiteStatement statement = db.compileStatement(query);
|
||||
|
||||
for (Checkmark c : checkmarks)
|
||||
{
|
||||
statement.bindLong(1, habit.getId());
|
||||
@@ -87,8 +91,7 @@ public class SQLiteCheckmarkList extends CheckmarkList
|
||||
check(habit.getId());
|
||||
compute(fromTimestamp, toTimestamp);
|
||||
|
||||
String query = "select habit, timestamp, value " +
|
||||
"from checkmarks " +
|
||||
String query = "select habit, timestamp, value from checkmarks " +
|
||||
"where habit = ? and timestamp >= ? and timestamp <= ? " +
|
||||
"order by timestamp desc";
|
||||
|
||||
@@ -101,26 +104,28 @@ public class SQLiteCheckmarkList extends CheckmarkList
|
||||
List<CheckmarkRecord> records = sqlite.query(query, params);
|
||||
for (CheckmarkRecord record : records) record.habit = habitRecord;
|
||||
|
||||
int nDays = DateUtils.getDaysBetween(fromTimestamp, toTimestamp) + 1;
|
||||
if (records.size() != nDays)
|
||||
{
|
||||
throw new InconsistentDatabaseException(
|
||||
String.format("habit=%s, %d expected, %d found",
|
||||
habit.getName(), nDays, records.size()));
|
||||
}
|
||||
|
||||
records = fixRecords(records, habitRecord, fromTimestamp, toTimestamp);
|
||||
return toCheckmarks(records);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTodayValue()
|
||||
{
|
||||
if (cache == null || cache.expired())
|
||||
cache = new CachedData(super.getTodayValue());
|
||||
|
||||
return cache.todayValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidateNewerThan(long timestamp)
|
||||
{
|
||||
new Delete()
|
||||
.from(CheckmarkRecord.class)
|
||||
.where("habit = ?", habit.getId())
|
||||
.and("timestamp >= ?", timestamp)
|
||||
.execute();
|
||||
|
||||
cache = null;
|
||||
SQLiteDatabase db = Cache.openDatabase();
|
||||
SQLiteStatement statement = db.compileStatement(INVALIDATE_QUERY);
|
||||
statement.bindLong(1, habit.getId());
|
||||
statement.bindLong(2, timestamp);
|
||||
statement.execute();
|
||||
observable.notifyListeners();
|
||||
}
|
||||
|
||||
@@ -129,10 +134,8 @@ public class SQLiteCheckmarkList extends CheckmarkList
|
||||
protected Checkmark getNewestComputed()
|
||||
{
|
||||
check(habit.getId());
|
||||
String query = "select habit, timestamp, value " +
|
||||
"from checkmarks " +
|
||||
"where habit = ? " +
|
||||
"order by timestamp desc " +
|
||||
String query = "select habit, timestamp, value from checkmarks " +
|
||||
"where habit = ? " + "order by timestamp desc " +
|
||||
"limit 1";
|
||||
|
||||
String params[] = { Long.toString(habit.getId()) };
|
||||
@@ -140,13 +143,12 @@ public class SQLiteCheckmarkList extends CheckmarkList
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
protected Checkmark getOldestComputed()
|
||||
{
|
||||
check(habit.getId());
|
||||
String query = "select habit, timestamp, value " +
|
||||
"from checkmarks " +
|
||||
"where habit = ? " +
|
||||
"order by timestamp asc " +
|
||||
String query = "select habit, timestamp, value from checkmarks " +
|
||||
"where habit = ? " + "order by timestamp asc " +
|
||||
"limit 1";
|
||||
|
||||
String params[] = { Long.toString(habit.getId()) };
|
||||
@@ -179,4 +181,44 @@ public class SQLiteCheckmarkList extends CheckmarkList
|
||||
for (CheckmarkRecord r : records) checkmarks.add(r.toCheckmark());
|
||||
return checkmarks;
|
||||
}
|
||||
|
||||
public static List<CheckmarkRecord> fixRecords(List<CheckmarkRecord> original,
|
||||
HabitRecord habit,
|
||||
long fromTimestamp,
|
||||
long toTimestamp)
|
||||
{
|
||||
long day = DateUtils.millisecondsInOneDay;
|
||||
ArrayList<CheckmarkRecord> records = new ArrayList<>();
|
||||
|
||||
for (long t = toTimestamp; t >= fromTimestamp; t -= day)
|
||||
records.add(new CheckmarkRecord(habit, t, Checkmark.UNCHECKED));
|
||||
|
||||
for (CheckmarkRecord record : original)
|
||||
{
|
||||
if ((toTimestamp - record.timestamp) % day != 0) continue;
|
||||
int offset = (int) ((toTimestamp - record.timestamp) / day);
|
||||
if (offset < 0 || offset >= records.size()) continue;
|
||||
records.set(offset, record);
|
||||
}
|
||||
|
||||
return records;
|
||||
}
|
||||
|
||||
private static class CachedData
|
||||
{
|
||||
int todayValue;
|
||||
|
||||
private long today;
|
||||
|
||||
CachedData(int todayValue)
|
||||
{
|
||||
this.todayValue = todayValue;
|
||||
this.today = DateUtils.getStartOfToday();
|
||||
}
|
||||
|
||||
boolean expired()
|
||||
{
|
||||
return today != DateUtils.getStartOfToday();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ public class SQLiteHabitList extends HabitList
|
||||
}
|
||||
}
|
||||
|
||||
protected List<Habit> toList()
|
||||
protected synchronized List<Habit> toList()
|
||||
{
|
||||
String query = buildSelectQuery();
|
||||
List<HabitRecord> recordList = sqlite.query(query, null);
|
||||
@@ -270,9 +270,7 @@ public class SQLiteHabitList extends HabitList
|
||||
for (HabitRecord record : recordList)
|
||||
{
|
||||
Habit habit = getById(record.getId());
|
||||
if (habit == null)
|
||||
throw new RuntimeException("habit not in database");
|
||||
|
||||
if (habit == null) continue;
|
||||
if (!filter.matches(habit)) continue;
|
||||
habits.add(habit);
|
||||
}
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
|
||||
package org.isoron.uhabits.models.sqlite;
|
||||
|
||||
import android.database.DatabaseUtils;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.database.*;
|
||||
import android.database.sqlite.*;
|
||||
import android.support.annotation.*;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.activeandroid.Cache;
|
||||
import com.activeandroid.*;
|
||||
import com.activeandroid.query.*;
|
||||
|
||||
import org.isoron.uhabits.models.*;
|
||||
@@ -43,10 +43,16 @@ public class SQLiteRepetitionList extends RepetitionList
|
||||
@Nullable
|
||||
private HabitRecord habitRecord;
|
||||
|
||||
private SQLiteStatement addStatement;
|
||||
|
||||
public SQLiteRepetitionList(@NonNull Habit habit)
|
||||
{
|
||||
super(habit);
|
||||
sqlite = new SQLiteUtils<>(RepetitionRecord.class);
|
||||
|
||||
SQLiteDatabase db = Cache.openDatabase();
|
||||
String addQuery = "insert into repetitions(habit, timestamp) values (?,?)";
|
||||
addStatement = db.compileStatement(addQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,11 +67,9 @@ public class SQLiteRepetitionList extends RepetitionList
|
||||
public void add(Repetition rep)
|
||||
{
|
||||
check(habit.getId());
|
||||
|
||||
RepetitionRecord record = new RepetitionRecord();
|
||||
record.copyFrom(rep);
|
||||
record.habit = habitRecord;
|
||||
record.save();
|
||||
addStatement.bindLong(1, habit.getId());
|
||||
addStatement.bindLong(2, rep.getTimestamp());
|
||||
addStatement.execute();
|
||||
observable.notifyListeners();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,10 +24,10 @@ import android.support.annotation.*;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.activeandroid.*;
|
||||
import com.activeandroid.query.*;
|
||||
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.isoron.uhabits.models.sqlite.records.*;
|
||||
import org.isoron.uhabits.utils.*;
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
import java.util.*;
|
||||
@@ -37,12 +37,21 @@ import java.util.*;
|
||||
*/
|
||||
public class SQLiteScoreList extends ScoreList
|
||||
{
|
||||
public static final String ADD_QUERY =
|
||||
"insert into Score(habit, timestamp, score) values (?,?,?)";
|
||||
|
||||
public static final String INVALIDATE_QUERY =
|
||||
"delete from Score where habit = ? and timestamp >= ?";
|
||||
|
||||
@Nullable
|
||||
private HabitRecord habitRecord;
|
||||
|
||||
@NonNull
|
||||
private final SQLiteUtils<ScoreRecord> sqlite;
|
||||
|
||||
@Nullable
|
||||
private CachedData cache = null;
|
||||
|
||||
/**
|
||||
* Constructs a new ScoreList associated with the given habit.
|
||||
*
|
||||
@@ -58,16 +67,11 @@ public class SQLiteScoreList extends ScoreList
|
||||
public void add(List<Score> scores)
|
||||
{
|
||||
check(habit.getId());
|
||||
String query =
|
||||
"insert into Score(habit, timestamp, score) values (?,?,?)";
|
||||
|
||||
SQLiteDatabase db = Cache.openDatabase();
|
||||
SQLiteStatement statement = db.compileStatement(ADD_QUERY);
|
||||
db.beginTransaction();
|
||||
|
||||
try
|
||||
{
|
||||
SQLiteStatement statement = db.compileStatement(query);
|
||||
|
||||
for (Score s : scores)
|
||||
{
|
||||
statement.bindLong(1, habit.getId());
|
||||
@@ -86,20 +90,20 @@ public class SQLiteScoreList extends ScoreList
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public List<Score> getByInterval(long fromTimestamp, long toTimestamp)
|
||||
public synchronized List<Score> getByInterval(long fromTimestamp,
|
||||
long toTimestamp)
|
||||
{
|
||||
check(habit.getId());
|
||||
compute(fromTimestamp, toTimestamp);
|
||||
|
||||
String query = "select habit, timestamp, score " +
|
||||
"from Score " +
|
||||
"where habit = ? and timestamp >= ? and timestamp <= ? " +
|
||||
"order by timestamp desc";
|
||||
String query = "select habit, timestamp, score from Score " +
|
||||
"where habit = ? and timestamp >= ? and timestamp <= ? " +
|
||||
"order by timestamp desc";
|
||||
|
||||
String params[] = {
|
||||
Long.toString(habit.getId()),
|
||||
Long.toString(fromTimestamp),
|
||||
Long.toString(toTimestamp)
|
||||
Long.toString(habit.getId()),
|
||||
Long.toString(fromTimestamp),
|
||||
Long.toString(toTimestamp)
|
||||
};
|
||||
|
||||
List<ScoreRecord> records = sqlite.query(query, params);
|
||||
@@ -124,14 +128,23 @@ public class SQLiteScoreList extends ScoreList
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidateNewerThan(long timestamp)
|
||||
public synchronized int getTodayValue()
|
||||
{
|
||||
new Delete()
|
||||
.from(ScoreRecord.class)
|
||||
.where("habit = ?", habit.getId())
|
||||
.and("timestamp >= ?", timestamp)
|
||||
.execute();
|
||||
if (cache == null || cache.expired())
|
||||
cache = new CachedData(super.getTodayValue());
|
||||
|
||||
return cache.todayValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void invalidateNewerThan(long timestamp)
|
||||
{
|
||||
cache = null;
|
||||
SQLiteDatabase db = Cache.openDatabase();
|
||||
SQLiteStatement statement = db.compileStatement(INVALIDATE_QUERY);
|
||||
statement.bindLong(1, habit.getId());
|
||||
statement.bindLong(2, timestamp);
|
||||
statement.execute();
|
||||
getObservable().notifyListeners();
|
||||
}
|
||||
|
||||
@@ -159,8 +172,7 @@ public class SQLiteScoreList extends ScoreList
|
||||
{
|
||||
check(habit.getId());
|
||||
String query = "select habit, timestamp, score from Score " +
|
||||
"where habit = ? order by timestamp desc " +
|
||||
"limit 1";
|
||||
"where habit = ? order by timestamp desc limit 1";
|
||||
|
||||
String params[] = { Long.toString(habit.getId()) };
|
||||
return getScoreFromQuery(query, params);
|
||||
@@ -172,8 +184,7 @@ public class SQLiteScoreList extends ScoreList
|
||||
{
|
||||
check(habit.getId());
|
||||
String query = "select habit, timestamp, score from Score " +
|
||||
"where habit = ? order by timestamp asc " +
|
||||
"limit 1";
|
||||
"where habit = ? order by timestamp asc limit 1";
|
||||
|
||||
String params[] = { Long.toString(habit.getId()) };
|
||||
return getScoreFromQuery(query, params);
|
||||
@@ -204,4 +215,22 @@ public class SQLiteScoreList extends ScoreList
|
||||
for (ScoreRecord r : records) scores.add(r.toScore());
|
||||
return scores;
|
||||
}
|
||||
|
||||
private static class CachedData
|
||||
{
|
||||
int todayValue;
|
||||
|
||||
private long today;
|
||||
|
||||
CachedData(int todayValue)
|
||||
{
|
||||
this.todayValue = todayValue;
|
||||
this.today = DateUtils.getStartOfToday();
|
||||
}
|
||||
|
||||
boolean expired()
|
||||
{
|
||||
return today != DateUtils.getStartOfToday();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,10 +19,11 @@
|
||||
|
||||
package org.isoron.uhabits.models.sqlite;
|
||||
|
||||
import android.database.sqlite.*;
|
||||
import android.support.annotation.*;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.activeandroid.query.*;
|
||||
import com.activeandroid.*;
|
||||
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.isoron.uhabits.models.sqlite.records.*;
|
||||
@@ -36,6 +37,10 @@ import java.util.*;
|
||||
*/
|
||||
public class SQLiteStreakList extends StreakList
|
||||
{
|
||||
|
||||
private static final String INVALIDATE_QUERY =
|
||||
"delete from Streak where habit = ? and end >= ?";
|
||||
|
||||
private HabitRecord habitRecord;
|
||||
|
||||
@NonNull
|
||||
@@ -73,12 +78,11 @@ public class SQLiteStreakList extends StreakList
|
||||
@Override
|
||||
public void invalidateNewerThan(long timestamp)
|
||||
{
|
||||
new Delete()
|
||||
.from(StreakRecord.class)
|
||||
.where("habit = ?", habit.getId())
|
||||
.and("end >= ?", timestamp - DateUtils.millisecondsInOneDay)
|
||||
.execute();
|
||||
|
||||
SQLiteDatabase db = Cache.openDatabase();
|
||||
SQLiteStatement statement = db.compileStatement(INVALIDATE_QUERY);
|
||||
statement.bindLong(1, habit.getId());
|
||||
statement.bindLong(2, timestamp - DateUtils.millisecondsInOneDay);
|
||||
statement.execute();
|
||||
observable.notifyListeners();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.database.*;
|
||||
import com.activeandroid.*;
|
||||
import com.activeandroid.annotation.*;
|
||||
|
||||
import org.apache.commons.lang3.builder.*;
|
||||
import org.isoron.uhabits.models.*;
|
||||
|
||||
/**
|
||||
@@ -53,6 +54,17 @@ public class CheckmarkRecord extends Model implements SQLiteRecord
|
||||
@Column(name = "value")
|
||||
public Integer value;
|
||||
|
||||
public CheckmarkRecord()
|
||||
{
|
||||
}
|
||||
|
||||
public CheckmarkRecord(HabitRecord habit, Long timestamp, Integer value)
|
||||
{
|
||||
this.habit = habit;
|
||||
this.timestamp = timestamp;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void copyFrom(Cursor c)
|
||||
{
|
||||
@@ -64,4 +76,40 @@ public class CheckmarkRecord extends Model implements SQLiteRecord
|
||||
{
|
||||
return new Checkmark(timestamp, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o)
|
||||
{
|
||||
if (this == o) return true;
|
||||
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
CheckmarkRecord that = (CheckmarkRecord) o;
|
||||
|
||||
return new EqualsBuilder()
|
||||
.append(habit, that.habit)
|
||||
.append(timestamp, that.timestamp)
|
||||
.append(value, that.value)
|
||||
.isEquals();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return new HashCodeBuilder(17, 37)
|
||||
.append(habit)
|
||||
.append(timestamp)
|
||||
.append(value)
|
||||
.toHashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return new ToStringBuilder(this)
|
||||
.append("habit", habit)
|
||||
.append("timestamp", timestamp)
|
||||
.append("value", value)
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import android.content.*;
|
||||
import android.preference.*;
|
||||
|
||||
import org.isoron.uhabits.*;
|
||||
import org.isoron.uhabits.models.*;
|
||||
|
||||
import javax.inject.*;
|
||||
|
||||
@@ -48,7 +49,7 @@ public class WidgetPreferences
|
||||
public long getHabitIdFromWidgetId(int widgetId)
|
||||
{
|
||||
Long habitId = prefs.getLong(getHabitIdKey(widgetId), -1);
|
||||
if (habitId < 0) throw new RuntimeException("widget not found");
|
||||
if (habitId < 0) throw new HabitNotFoundException();
|
||||
|
||||
return habitId;
|
||||
}
|
||||
|
||||
@@ -28,6 +28,8 @@ import org.isoron.uhabits.utils.*;
|
||||
|
||||
import javax.inject.*;
|
||||
|
||||
import static org.isoron.uhabits.utils.DateUtils.*;
|
||||
|
||||
@ReceiverScope
|
||||
public class ReminderController
|
||||
{
|
||||
@@ -66,7 +68,7 @@ public class ReminderController
|
||||
{
|
||||
long snoozeInterval = preferences.getSnoozeInterval();
|
||||
|
||||
long now = DateUtils.getLocalTime();
|
||||
long now = applyTimezone(getLocalTime());
|
||||
long reminderTime = now + snoozeInterval * 60 * 1000;
|
||||
|
||||
reminderScheduler.schedule(habit, reminderTime);
|
||||
|
||||
@@ -74,4 +74,14 @@ public class AttributeSetUtils
|
||||
if (number != null) return Float.parseFloat(number);
|
||||
else return defaultValue;
|
||||
}
|
||||
|
||||
public static int getIntAttribute(@NonNull Context context,
|
||||
@NonNull AttributeSet attrs,
|
||||
@NonNull String name,
|
||||
int defaultValue)
|
||||
{
|
||||
String number = getAttribute(context, attrs, name, null);
|
||||
if (number != null) return Integer.parseInt(number);
|
||||
else return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.support.annotation.*;
|
||||
import com.activeandroid.*;
|
||||
|
||||
import org.isoron.uhabits.*;
|
||||
import org.isoron.uhabits.models.sqlite.*;
|
||||
import org.isoron.uhabits.models.sqlite.records.*;
|
||||
|
||||
import java.io.*;
|
||||
@@ -76,7 +77,16 @@ public abstract class DatabaseUtils
|
||||
RepetitionRecord.class, ScoreRecord.class, StreakRecord.class)
|
||||
.create();
|
||||
|
||||
ActiveAndroid.initialize(dbConfig);
|
||||
try
|
||||
{
|
||||
ActiveAndroid.initialize(dbConfig);
|
||||
}
|
||||
catch (RuntimeException e)
|
||||
{
|
||||
if(e.getMessage().contains("downgrade"))
|
||||
throw new InvalidDatabaseVersionException();
|
||||
else throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("ResultOfMethodCallIgnored")
|
||||
|
||||
@@ -22,7 +22,9 @@ package org.isoron.uhabits.utils;
|
||||
import android.content.*;
|
||||
import android.content.res.*;
|
||||
import android.graphics.*;
|
||||
import android.support.v4.view.*;
|
||||
import android.util.*;
|
||||
import android.view.*;
|
||||
|
||||
public abstract class InterfaceUtils
|
||||
{
|
||||
@@ -49,4 +51,10 @@ public abstract class InterfaceUtils
|
||||
DisplayMetrics metrics = resources.getDisplayMetrics();
|
||||
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, metrics);
|
||||
}
|
||||
|
||||
public static boolean isLayoutRtl(View view)
|
||||
{
|
||||
return ViewCompat.getLayoutDirection(view) ==
|
||||
ViewCompat.LAYOUT_DIRECTION_RTL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ import android.os.*;
|
||||
import android.support.annotation.*;
|
||||
import android.widget.*;
|
||||
|
||||
import com.activeandroid.util.*;
|
||||
|
||||
import org.isoron.uhabits.*;
|
||||
import org.isoron.uhabits.models.*;
|
||||
import org.isoron.uhabits.preferences.*;
|
||||
@@ -76,8 +78,15 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
|
||||
|
||||
for (int id : ids)
|
||||
{
|
||||
BaseWidget widget = getWidgetFromId(context, id);
|
||||
widget.delete();
|
||||
try
|
||||
{
|
||||
BaseWidget widget = getWidgetFromId(context, id);
|
||||
widget.delete();
|
||||
}
|
||||
catch (HabitNotFoundException e)
|
||||
{
|
||||
Log.e("BaseWidgetProvider", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -146,6 +146,14 @@
|
||||
style="@style/About.Item"
|
||||
android:text="Angga Rifandi (Bahasa Indonesia)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="raden20 (Bahasa Indonesia)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="azzamsa (Bahasa Indonesia)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="David Nos (Català)"/>
|
||||
@@ -230,6 +238,10 @@
|
||||
style="@style/About.Item"
|
||||
android:text="Jelle den Butter (Nederlands)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="nitovf9292 (Norsk)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Adam Jurkiewicz (Polski)"/>
|
||||
@@ -256,7 +268,7 @@
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Dalecarlian (Svenska)"/>
|
||||
android:text="Alexander Jansson (Svenska)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
@@ -278,6 +290,10 @@
|
||||
style="@style/About.Item"
|
||||
android:text="Rystard (Українська)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Oglaigh Rystard (Українська)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Limin Lu (中文)"/>
|
||||
@@ -314,9 +330,26 @@
|
||||
style="@style/About.Item"
|
||||
android:text="Josh Graham (한국어 )"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Seoyul (한국어 )"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Aman Satnami (हिन्दी)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Niraj Yadav (हिन्दी)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Yoav Argov (עברית)"/>
|
||||
|
||||
<TextView
|
||||
style="@style/About.Item"
|
||||
android:text="Mahdi Nasiri (فارسی)"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<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="overview">Обзор</string>
|
||||
<string name="habit_strength">Сила на навика</string>
|
||||
<string name="history">История</string>
|
||||
<string name="clear">Изчистване</string>
|
||||
@@ -57,7 +57,7 @@
|
||||
<string name="validation_at_most_one_rep_per_day">Позволено е до едно повторение на ден.</string>
|
||||
<string name="create_habit">Създаване на навик</string>
|
||||
<string name="edit_habit">Редактиране на навик</string>
|
||||
<string name="check">Потвърди</string>
|
||||
<string name="check">Поставяне на отметка</string>
|
||||
<string name="snooze">По-късно</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Добре дошли</string>
|
||||
@@ -65,8 +65,8 @@
|
||||
<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_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>
|
||||
@@ -74,6 +74,7 @@
|
||||
<string name="interval_2_hour">2 часа</string>
|
||||
<string name="interval_4_hour">4 часа</string>
|
||||
<string name="interval_8_hour">8 часа</string>
|
||||
<string name="interval_24_hour">24 часа</string>
|
||||
<string name="pref_toggle_title">Маркиране с кратко натискане</string>
|
||||
<string name="pref_toggle_description">Поставяне на отметки с кратко натискане вместо с натискане и задържане. По-удобно, но може да доведе до неволно маркиране.</string>
|
||||
<string name="pref_snooze_interval_title">Интервал на напомняне след отлагане</string>
|
||||
@@ -91,6 +92,7 @@
|
||||
<string name="hint_landscape">Може да виждате повече дни като обърнете телефона си в хоризонтално положение.</string>
|
||||
<string name="delete_habits">Изтриване на навици</string>
|
||||
<string name="delete_habits_message">Навиците ще се изтрият перманентно. Това действие не може да бъде отменено.</string>
|
||||
<string name="habit_not_found">Навикът е изтрит / не е намерен</string>
|
||||
<string name="weekends">Събота и неделя</string>
|
||||
<string name="any_weekday">От понеделник до петък</string>
|
||||
<string name="any_day">Всеки ден от седмицата</string>
|
||||
@@ -100,7 +102,7 @@
|
||||
<string name="clear_label">Изчистване</string>
|
||||
<string name="select_hours">Избиране на час</string>
|
||||
<string name="select_minutes">Избиране на минута</string>
|
||||
<string name="about">Информация</string>
|
||||
<string name="about">За приложението</string>
|
||||
<string name="translators">Преводачи</string>
|
||||
<string name="developers">Разработчици</string>
|
||||
<string name="version_n">Версия %s</string>
|
||||
@@ -146,6 +148,7 @@
|
||||
<string name="month">Месец</string>
|
||||
<string name="quarter">Тримесечие</string>
|
||||
<string name="year">Година</string>
|
||||
<string name="total">Общо</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">път в период от</string>
|
||||
<string name="every_x_days">На всеки %d дни</string>
|
||||
@@ -154,4 +157,22 @@
|
||||
<string name="score">Сила</string>
|
||||
<string name="reminder_sound">Звук за напомняне</string>
|
||||
<string name="none">Няма</string>
|
||||
<string name="filter">Филтър</string>
|
||||
<string name="hide_completed">Скриване на завършените</string>
|
||||
<string name="hide_archived">Скриване на архивираните</string>
|
||||
<string name="sticky_notifications">Направи нотификациите постоянни</string>
|
||||
<string name="sticky_notifications_description">Предотвратява изчистването на нотификацията с плъзване настрани.</string>
|
||||
<string name="repair_database">Поправка на базата данни</string>
|
||||
<string name="database_repaired">Базата данни е поправена.</string>
|
||||
<string name="uncheck">Премахване на отметка</string>
|
||||
<string name="toggle">Смяна</string>
|
||||
<string name="action">Действие</string>
|
||||
<string name="habit">Навик</string>
|
||||
<string name="sort">Сортиране</string>
|
||||
<string name="manually">Ръчно</string>
|
||||
<string name="by_name">По име</string>
|
||||
<string name="by_color">По цвят</string>
|
||||
<string name="by_score">По сила</string>
|
||||
<string name="download">Изтегляне</string>
|
||||
<string name="export">Експортиране</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">Sledování zvyků</string>
|
||||
<string name="app_name">Loop Habit Tracker</string>
|
||||
<string name="main_activity_title">Zvyky</string>
|
||||
<string name="action_settings">Nastavení</string>
|
||||
<string name="edit">Upravit</string>
|
||||
@@ -45,11 +45,11 @@
|
||||
<string name="repeat">Opakovat</string>
|
||||
<string name="times_every">krát za</string>
|
||||
<string name="days">dní</string>
|
||||
<string name="reminder">Připomenout</string>
|
||||
<string name="reminder">Připomenutí</string>
|
||||
<string name="discard">Zrušit</string>
|
||||
<string name="save">Uložit</string>
|
||||
<string name="streaks">Serie</string>
|
||||
<string name="no_habits_found">Nemáš žádné aktivní zvyky</string>
|
||||
<string name="no_habits_found">Nemáte žádné nedokončené zvyky</string>
|
||||
<string name="long_press_to_toggle">Stiskni a drž pro označení</string>
|
||||
<string name="reminder_off">Vyp.</string>
|
||||
<string name="validation_name_should_not_be_blank">Jméno musíte vyplnit.</string>
|
||||
@@ -57,7 +57,7 @@
|
||||
<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="check">Hotovo</string>
|
||||
<string name="snooze">Odložit</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Vítejte</string>
|
||||
@@ -91,13 +91,13 @@
|
||||
<string name="hint_drag">Přeřazení záznamů proveď stisknutím a podržením názvu zvyku a poté přesunutím na správné místo.</string>
|
||||
<string name="hint_landscape">Můžeš vidět více dnů otočením telefonu na šířku.</string>
|
||||
<string name="delete_habits">Smazat zvyky</string>
|
||||
<string name="delete_habits_message">Zvyky budou navždy odstraněny. Toto nelze vzít zpět.</string>
|
||||
<string name="delete_habits_message">Označené zvyky budou navždy odstraněny. Toto nelze vzít zpět.</string>
|
||||
<string name="habit_not_found">Zvyk smazán / nenalezen</string>
|
||||
<string name="weekends">Víkendy</string>
|
||||
<string name="any_weekday">Pondělí až pátek</string>
|
||||
<string name="any_day">Jakýkoliv den v týdnu</string>
|
||||
<string name="select_weekdays">Vyber dny</string>
|
||||
<string name="export_to_csv">Exportuj CSV</string>
|
||||
<string name="export_to_csv">Exportovat CSV</string>
|
||||
<string name="done_label">Hotovo</string>
|
||||
<string name="clear_label">Smazat</string>
|
||||
<string name="select_hours">Vyber hodiny</string>
|
||||
@@ -169,7 +169,7 @@
|
||||
<string name="action">Akce</string>
|
||||
<string name="habit">Zvyk</string>
|
||||
<string name="sort">Řadit</string>
|
||||
<string name="manually">Manuálně</string>
|
||||
<string name="manually">Ručně</string>
|
||||
<string name="by_name">Abecedně</string>
|
||||
<string name="by_color">Podle barvy</string>
|
||||
<string name="by_score">Podle skóre</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">Loop Habit Tracker</string>
|
||||
<string name="app_name">Loop \"Gewohnheiten Tracking\"</string>
|
||||
<string name="main_activity_title">Gewohnheiten</string>
|
||||
<string name="action_settings">Einstellungen</string>
|
||||
<string name="edit">Bearbeiten</string>
|
||||
@@ -48,26 +48,26 @@
|
||||
<string name="reminder">Erinnerung</string>
|
||||
<string name="discard">Verwerfen</string>
|
||||
<string name="save">Speichern</string>
|
||||
<string name="streaks">Strähnen</string>
|
||||
<string name="streaks">Serien</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="validation_at_most_one_rep_per_day">Du kannst höchstens 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="check">Markieren</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_description_1">Loop Habit Tracker hilft dir gute Gewohnheiten anzueignen.</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_description_2">Hake die Gewohnheit jeden Tag in der App ab, nachdem du sie erledigt hast.</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="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>
|
||||
@@ -75,29 +75,29 @@
|
||||
<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_toggle_title">Markierung durch kurzes Tippen ändern</string>
|
||||
<string name="pref_toggle_description">Markierungen durch einfaches Tippen setzen anstatt durch Tippen und Halten. Bequemer, kann aber versehentlich eine Markierung ändern.</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="pref_view_app_introduction">Zeige die App-Einführung</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_drag">Um Einträge umzusortieren, tippe, halte 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="delete_habits">Lösche Gewohnheiten</string>
|
||||
<string name="delete_habits_message">Die Gewohnheit wird für immer 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="select_weekdays">Wähle Tage aus</string>
|
||||
<string name="export_to_csv">Exportiere als CSV</string>
|
||||
<string name="done_label">Fertig</string>
|
||||
<string name="clear_label">Löschen</string>
|
||||
<string name="select_hours">Wähle Stunden</string>
|
||||
@@ -106,11 +106,11 @@
|
||||
<string name="translators">Übersetzer</string>
|
||||
<string name="developers">Entwickler</string>
|
||||
<string name="version_n">Version %s</string>
|
||||
<string name="frequency">Frequenz</string>
|
||||
<string name="frequency">Häufigkeit</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="best_streaks">Beste Serien</string>
|
||||
<string name="current_streaks">Derzeitige Serie</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>
|
||||
@@ -123,25 +123,25 @@
|
||||
<string name="five_times_per_week">5 Mal pro Woche</string>
|
||||
<string name="custom_frequency">Benutzerdefiniert</string>
|
||||
<string name="help">Hilfe & 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="could_not_export">Fehler beim Exportieren der Daten.</string>
|
||||
<string name="could_not_import">Fehler beim Importieren der Daten.</string>
|
||||
<string name="file_not_recognized">Datei nicht erkannt.</string>
|
||||
<string name="habits_imported">Gewohnheiten wurden erfolgreich importiert.</string>
|
||||
<string name="habits_imported">Gewohnheiten 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="import_data_summary">Unterstützt vollständige Sicherungen dieser App sowie Sicherungen von Tickmate, HabitBull und Rewire. Siehe FAQ für weitere Informationen.</string>
|
||||
<string name="export_as_csv_summary">Erstellt 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">Erstellt eine Datei, die alle deine Daten enthält. Diese Datei kann wieder importiert werden.</string>
|
||||
<string name="bug_report_failed">Fehler beim Erstellen eines Fehlerberichts.</string>
|
||||
<string name="generate_bug_report">Erstelle einen Fehlerbericht</string>
|
||||
<string name="troubleshooting">Fehlerbehebung</string>
|
||||
<string name="help_translate">Hilf diese App zu übersetzen</string>
|
||||
<string name="help_translate">Hilf mit, 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="use_pure_black">Verwende reines Schwarz im Nachtmodus</string>
|
||||
<string name="pure_black_description">Ersetzt im Nachtmodus das Grau im Hintergrund durch ein reines Schwarz. 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">Kehre die Tagesreihenfolge um</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>
|
||||
@@ -151,18 +151,18 @@
|
||||
<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="every_x_days">Alle %d Tage</string>
|
||||
<string name="every_x_weeks">Alle %d Wochen</string>
|
||||
<string name="every_x_months">Alle %d Monate</string>
|
||||
<string name="score">Wertung</string>
|
||||
<string name="reminder_sound">Benachrichtigungston</string>
|
||||
<string name="none">Kein Ton</string>
|
||||
<string name="reminder_sound">Erinnerungston</string>
|
||||
<string name="none">Keiner</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="hide_completed">Abgeschlossene verbergen</string>
|
||||
<string name="hide_archived">Archivierte verbergen</string>
|
||||
<string name="sticky_notifications">Fixiere Benachrichtigungen</string>
|
||||
<string name="sticky_notifications_description">Verhindert das Wegwischen von Benachrichtigungen.</string>
|
||||
<string name="repair_database">Datenbank reparieren</string>
|
||||
<string name="repair_database">Repariere Datenbank</string>
|
||||
<string name="database_repaired">Datenbank repariert.</string>
|
||||
<string name="uncheck">Abwählen</string>
|
||||
<string name="toggle">Umschalten</string>
|
||||
@@ -174,5 +174,5 @@
|
||||
<string name="by_color">Nach Farbe</string>
|
||||
<string name="by_score">Nach Wertung</string>
|
||||
<string name="download">Runterladen</string>
|
||||
<string name="export">Export</string>
|
||||
<string name="export">Exportieren</string>
|
||||
</resources>
|
||||
|
||||
@@ -34,14 +34,14 @@
|
||||
<string name="toast_nothing_to_undo">Nada que deshacer.</string>
|
||||
<string name="toast_nothing_to_redo">Nada que rehacer.</string>
|
||||
<string name="toast_habit_changed">Hábito cambiado.</string>
|
||||
<string name="toast_habit_changed_back">Hábito cambiado devuelta.</string>
|
||||
<string name="toast_habit_changed_back">Hábito cambiado nuevamente.</string>
|
||||
<string name="toast_habit_archived">Hábitos archivados.</string>
|
||||
<string name="toast_habit_unarchived">Hábitos desarchivados.</string>
|
||||
<string name="overview">Visión general</string>
|
||||
<string name="overview">Resumen</string>
|
||||
<string name="habit_strength">Fuerza del hábito</string>
|
||||
<string name="history">Historial</string>
|
||||
<string name="clear">Borrar</string>
|
||||
<string name="description_hint">Pregunta (Has ... hoy?)</string>
|
||||
<string name="clear">Eliminar</string>
|
||||
<string name="description_hint">Pregunta (Has ___ hoy?)</string>
|
||||
<string name="repeat">Repetir</string>
|
||||
<string name="times_every">veces cada</string>
|
||||
<string name="days">días</string>
|
||||
@@ -52,8 +52,8 @@
|
||||
<string name="no_habits_found">No tienes hábitos activos</string>
|
||||
<string name="long_press_to_toggle">Mantener apretado para marcar o desmarcar</string>
|
||||
<string name="reminder_off">Apagado</string>
|
||||
<string name="validation_name_should_not_be_blank">Nombre no puede estar en blanco.</string>
|
||||
<string name="validation_number_should_be_positive">Número debe ser positivo.</string>
|
||||
<string name="validation_name_should_not_be_blank">El nombre no puede quedar en blanco.</string>
|
||||
<string name="validation_number_should_be_positive">El número debe ser positivo.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">Puedes tener como máximo una repetición por día</string>
|
||||
<string name="create_habit">Crear hábito</string>
|
||||
<string name="edit_habit">Editar hábito</string>
|
||||
@@ -63,24 +63,25 @@
|
||||
<string name="intro_title_1">Bienvenido</string>
|
||||
<string name="intro_description_1">Loop Analizador de Hábitos te ayuda a crear y mantener buenos hábitos.</string>
|
||||
<string name="intro_title_2">Crea algunos hábitos nuevos</string>
|
||||
<string name="intro_description_2">Cada día, después de realizar tu hábito, pon una marca en la app.</string>
|
||||
<string name="intro_description_2">Cada día, después de realizar tu hábito, pon una marca en la aplicación.</string>
|
||||
<string name="intro_title_3">Sigue haciéndolo.</string>
|
||||
<string name="intro_description_3">Los hábitos realizados consistentemente por un largo tiempo ganarán una estrella completa.</string>
|
||||
<string name="intro_title_4">Haz un seguimiento de tu progreso</string>
|
||||
<string name="intro_description_4">Detallados gráficos muestran como han mejorado tus hábitos con el tiempo.</string>
|
||||
<string name="intro_description_4">Gráficos detallados muestran cómo mejoraron sus hábitos con el tiempo.</string>
|
||||
<string name="interval_15_minutes">15 minutos</string>
|
||||
<string name="interval_30_minutes">30 minutos</string>
|
||||
<string name="interval_1_hour">1 hora</string>
|
||||
<string name="interval_2_hour">2 horas</string>
|
||||
<string name="interval_4_hour">4 horas</string>
|
||||
<string name="interval_8_hour">8 horas</string>
|
||||
<string name="pref_toggle_title">Marca las repeticiones con una corta pulsación.</string>
|
||||
<string name="interval_24_hour">24 horas</string>
|
||||
<string name="pref_toggle_title">Marca las repeticiones con una pulsación corta.</string>
|
||||
<string name="pref_toggle_description">Más cómodo, pero puede causar marcas accidentales.</string>
|
||||
<string name="pref_snooze_interval_title">Tiempo de espera al aplazar recordatorios.</string>
|
||||
<string name="pref_rate_this_app">Valora esta app en Google Play</string>
|
||||
<string name="pref_rate_this_app">Valora esta aplicación en Google Play</string>
|
||||
<string name="pref_send_feedback">Enviar sugerencias al desarrollador</string>
|
||||
<string name="pref_view_source_code">Ver código fuente en GitHub</string>
|
||||
<string name="pref_view_app_introduction">Ver la introducción de la app</string>
|
||||
<string name="pref_view_app_introduction">Ver la introducción de la aplicación</string>
|
||||
<string name="links">Enlaces</string>
|
||||
<string name="behavior">Comportamiento</string>
|
||||
<string name="name">Nombre</string>
|
||||
@@ -91,6 +92,7 @@
|
||||
<string name="hint_landscape">Puedes ver más días al poner tu teléfono en modo horizontal.</string>
|
||||
<string name="delete_habits">Eliminar Hábitos</string>
|
||||
<string name="delete_habits_message">Los hábitos serán eliminados permanentemente. Esta acción no se puede deshacer.</string>
|
||||
<string name="habit_not_found">Hábito eliminado / no encontrado</string>
|
||||
<string name="weekends">Fines de semana</string>
|
||||
<string name="any_weekday">Días laborables</string>
|
||||
<string name="any_day">Cada día</string>
|
||||
@@ -105,6 +107,7 @@
|
||||
<string name="developers">Desarrolladores</string>
|
||||
<string name="version_n">Versión %s</string>
|
||||
<string name="frequency">Frecuencia</string>
|
||||
<string name="checkmark">Marca de verificación</string>
|
||||
<string name="strength">Fuerza</string>
|
||||
<string name="best_streaks">Mejores rachas</string>
|
||||
<string name="current_streaks">Racha actual</string>
|
||||
@@ -120,8 +123,8 @@
|
||||
<string name="five_times_per_week">5 veces por semana</string>
|
||||
<string name="custom_frequency">Personalizado...</string>
|
||||
<string name="help">Ayuda & FAQ</string>
|
||||
<string name="could_not_export">Fallo al exportar datos.</string>
|
||||
<string name="could_not_import">Fallo al importar datos.</string>
|
||||
<string name="could_not_export">Error al exportar datos.</string>
|
||||
<string name="could_not_import">Error al importar datos.</string>
|
||||
<string name="file_not_recognized">Archivo no reconocido.</string>
|
||||
<string name="habits_imported">Hábitos importados exitosamente.</string>
|
||||
<string name="full_backup_success">Copia de seguridad exportada exitosamente.</string>
|
||||
@@ -130,8 +133,8 @@
|
||||
<string name="import_data_summary">Soporta exportar copias de seguridad completas, así como archivos generados por Tickmate, HabitBull o Rewire. Mira el FAQ para más información.</string>
|
||||
<string name="export_as_csv_summary">Genera archivos que pueden ser abiertos por programas de hojas de cálculo como Microsoft Excel o OpenOffice Calc. Este archivo no puede volver a importarse.</string>
|
||||
<string name="export_full_backup_summary">Genera un archivo que contiene todos tus datos. Este archivo puede volver a importarse.</string>
|
||||
<string name="bug_report_failed">Fallo al generar el informe del bug.</string>
|
||||
<string name="generate_bug_report">Generar informe de bug</string>
|
||||
<string name="bug_report_failed">Error al generar el reporte de error.</string>
|
||||
<string name="generate_bug_report">Generar reporte de errores</string>
|
||||
<string name="troubleshooting">Solución de problemas</string>
|
||||
<string name="help_translate">Ayuda a traducir esta app</string>
|
||||
<string name="night_mode">Modo nocturno</string>
|
||||
@@ -145,6 +148,7 @@
|
||||
<string name="month">Mes</string>
|
||||
<string name="quarter">Cuatrimestre</string>
|
||||
<string name="year">Año</string>
|
||||
<string name="total">Total</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">veces en</string>
|
||||
<string name="every_x_days">Cada %d días</string>
|
||||
@@ -153,4 +157,22 @@
|
||||
<string name="score">Puntuación</string>
|
||||
<string name="reminder_sound">Sonido de recordatorio</string>
|
||||
<string name="none">Ninguno</string>
|
||||
<string name="filter">Filtrar</string>
|
||||
<string name="hide_completed">Ocultar completos</string>
|
||||
<string name="hide_archived">Ocultar archivados</string>
|
||||
<string name="sticky_notifications">Hacer notificaciones fijas</string>
|
||||
<string name="sticky_notifications_description">Evita que las notificaciones sean descartadas.</string>
|
||||
<string name="repair_database">Reparar base de datos</string>
|
||||
<string name="database_repaired">Base de datos reparada.</string>
|
||||
<string name="uncheck">Desmarcar</string>
|
||||
<string name="toggle">Alternar</string>
|
||||
<string name="action">Acción</string>
|
||||
<string name="habit">Hábito</string>
|
||||
<string name="sort">Ordenar</string>
|
||||
<string name="manually">Manualmente</string>
|
||||
<string name="by_name">Por nombre</string>
|
||||
<string name="by_color">Por color</string>
|
||||
<string name="by_score">Por puntuación</string>
|
||||
<string name="download">Descargar</string>
|
||||
<string name="export">Exportar</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">Ohitura Tracker Loop</string>
|
||||
<string name="main_activity_title">Ohiturak</string>
|
||||
<string name="action_settings">Ezarpenak</string>
|
||||
<string name="edit">Editatu</string>
|
||||
@@ -37,6 +38,7 @@
|
||||
<string name="toast_habit_archived">Ohiturak artxibatu dira.</string>
|
||||
<string name="toast_habit_unarchived">Ohiturak ezartxibatu dira.</string>
|
||||
<string name="overview">Ikuspegi orokorra</string>
|
||||
<string name="habit_strength">Ohituraren indarra</string>
|
||||
<string name="history">Historia</string>
|
||||
<string name="clear">Garbitu</string>
|
||||
<string name="description_hint">Galdera (... al duzu gaur?)</string>
|
||||
@@ -46,6 +48,7 @@
|
||||
<string name="reminder">Oroigarria</string>
|
||||
<string name="discard">Baztertu</string>
|
||||
<string name="save">Gorde</string>
|
||||
<string name="streaks">Boladak</string>
|
||||
<string name="no_habits_found">Ez duzu ohitura aktiborik</string>
|
||||
<string name="long_press_to_toggle">Sakatu eta mantendu markatu edo desmarkatzeko</string>
|
||||
<string name="reminder_off">Itzalita</string>
|
||||
@@ -54,12 +57,15 @@
|
||||
<string name="validation_at_most_one_rep_per_day">Gehienez errepikapen bat eguneko izan dezakezu</string>
|
||||
<string name="create_habit">Ohitura sortu</string>
|
||||
<string name="edit_habit">Ohitura editatu</string>
|
||||
<string name="check">Markatu</string>
|
||||
<string name="snooze">Beranduago</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Ongi etorri</string>
|
||||
<string name="intro_description_1">Loop Habit Trackerek ohitura onak hartzen eta mantentzen laguntzen dizu.</string>
|
||||
<string name="intro_title_2">Sor itzazu ohitura berri batzuk</string>
|
||||
<string name="intro_description_2">Egunero, zure ohitura egin ostean, jarri ezazu egiaztatze marka bat aplikazioan.</string>
|
||||
<string name="intro_title_3">Jarrai ezazu ohitura egiten</string>
|
||||
<string name="intro_description_3">Denbora luzean zehar trinkotasunez egindako ohiturek izar oso bat irabaziko dute.</string>
|
||||
<string name="intro_title_4">Jarrai ezazu zure aurrerapena</string>
|
||||
<string name="intro_description_4">Grafiko zehatzen bitartez denboran zehar zure ohiturak nola hobetu diren ikus ditzakezu</string>
|
||||
<string name="interval_15_minutes">15 minutu</string>
|
||||
@@ -68,6 +74,10 @@
|
||||
<string name="interval_2_hour">2 ordu</string>
|
||||
<string name="interval_4_hour">4 ordu</string>
|
||||
<string name="interval_8_hour">8 ordu</string>
|
||||
<string name="interval_24_hour">24 ordu</string>
|
||||
<string name="pref_toggle_title">Ukitze laburrarekin markatu</string>
|
||||
<string name="pref_toggle_description">Ukitze bakar batekin marka jartzen du ukitu eta mantendu egin beharrean. Erosoagoa, baina nahi gabeko markak ekar litzake.</string>
|
||||
<string name="pref_snooze_interval_title">Atzeratze tartea gogorarazpenetan</string>
|
||||
<string name="pref_rate_this_app">Aplikazio hau Google Playen puntuatu</string>
|
||||
<string name="pref_send_feedback">Zure iritzia garatzaileari bidali</string>
|
||||
<string name="pref_view_source_code">Iturburu kodea GitHuben ikusi</string>
|
||||
@@ -76,11 +86,13 @@
|
||||
<string name="behavior">Portaera</string>
|
||||
<string name="name">Izena</string>
|
||||
<string name="settings">Ezarpenak</string>
|
||||
<string name="snooze_interval">Atzeratze tartea</string>
|
||||
<string name="hint_title">Ba al zenekien?</string>
|
||||
<string name="hint_drag">Sarrerak berrantolatzeko, sakatu eta mantendu ohituraren izena, ondoren mugi ezazu leku aproposera.</string>
|
||||
<string name="hint_landscape">Egun gehiago ikus ditzakezu zure gailua paisai moduan jarriz.</string>
|
||||
<string name="delete_habits">Ohiturak ezabatu</string>
|
||||
<string name="delete_habits_message">Ohiturak betirako ezabatuko dira. Ekintza hau ezin da desegin.</string>
|
||||
<string name="habit_not_found">Ohitura ezabatua / ez aurkitua</string>
|
||||
<string name="weekends">Asteburuak</string>
|
||||
<string name="any_weekday">Astelehenetik ostiralera</string>
|
||||
<string name="any_day">Astearen edozen egun</string>
|
||||
@@ -96,6 +108,9 @@
|
||||
<string name="version_n">%s bertsioa</string>
|
||||
<string name="frequency">Maiztasuna</string>
|
||||
<string name="checkmark">Egiaztatze marka</string>
|
||||
<string name="strength">Indarra</string>
|
||||
<string name="best_streaks">Bolada onenak</string>
|
||||
<string name="current_streaks">Uneko bolada</string>
|
||||
<string name="number_of_repetitions">Errepikapenen kopurua</string>
|
||||
<string name="last_x_days">Azken %d egunak</string>
|
||||
<string name="last_x_weeks">Azken %d asteak</string>
|
||||
@@ -115,18 +130,49 @@
|
||||
<string name="full_backup_success">Babes kopia osoa ondo esportatu da.</string>
|
||||
<string name="import_data">Datuak inportatu</string>
|
||||
<string name="export_full_backup">Babes kopia osoa esportatu</string>
|
||||
<string name="import_data_summary">Aplikazio honek esportatutako babes kopia osoak onartzen dira, baita Tickmate, HabitBull edo Rewirek sortutako fitxategiak ere. Ikusi ohito galderak informazio gehiago lortzeko.</string>
|
||||
<string name="export_as_csv_summary">Microsoft Excel edo OpenOffice Calc bezalako kalkulu orrietarako softwareak ireki dezaketen fitxategiak sortzen ditu. Fitxategi hau ezin da berriz inportatu.</string>
|
||||
<string name="export_full_backup_summary">Zure datu guztiak dituen fitxategi bat sortzen du. Fitxategi hau ezin da berriz inportatu.</string>
|
||||
<string name="bug_report_failed">Huts akats txostena sortzerakoan.</string>
|
||||
<string name="generate_bug_report">Akats txostena sortu</string>
|
||||
<string name="troubleshooting">Arazoen konponketa</string>
|
||||
<string name="help_translate">Lagundu aplikazio hau itzultzen</string>
|
||||
<string name="night_mode">Gau modua</string>
|
||||
<string name="use_pure_black">Benetazko beltza erabili gau moduan</string>
|
||||
<string name="pure_black_description">Atzeko plano grisak beltz hutsez aldatzen ditu gau moduan. Bateriaren erabilera gutxitzen du AMOLED duten gailuetan.</string>
|
||||
<string name="interface_preferences">Interfazea</string>
|
||||
<string name="reverse_days">Egunak atzekoz aurrera ordenatu</string>
|
||||
<string name="reverse_days_description">Pantaila nagusian egunak atzekoz aurrera ikusi</string>
|
||||
<string name="day">Eguna</string>
|
||||
<string name="week">Astea</string>
|
||||
<string name="month">Hilabetea</string>
|
||||
<string name="quarter">Hiruhilekoa</string>
|
||||
<string name="year">Urtea</string>
|
||||
<string name="total">Guztira</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">denbora</string>
|
||||
<string name="every_x_days">%d egunero</string>
|
||||
<string name="every_x_weeks">%d astero</string>
|
||||
<string name="every_x_months">%d hilabetero</string>
|
||||
<string name="score">Puntuak</string>
|
||||
<string name="reminder_sound">Oroigarriaren soinua</string>
|
||||
<string name="none">Bat ere ez</string>
|
||||
<string name="filter">Iragazkia</string>
|
||||
<string name="hide_completed">Lortutakoak ezkutatu</string>
|
||||
<string name="hide_archived">Artxibatutakoak ezkutatu</string>
|
||||
<string name="sticky_notifications">Jakinarazpenak itsaskorrak bihurtu</string>
|
||||
<string name="sticky_notifications_description">Jakinarazpenak keinu batez ezabatzea sahiesten du.</string>
|
||||
<string name="repair_database">Datu basea konpondu</string>
|
||||
<string name="database_repaired">Datu basea konpondu da.</string>
|
||||
<string name="uncheck">Desmarkatu</string>
|
||||
<string name="toggle">Aldatu</string>
|
||||
<string name="action">Ekintza</string>
|
||||
<string name="habit">Ohitura</string>
|
||||
<string name="sort">Ordenatu</string>
|
||||
<string name="manually">Eskuz</string>
|
||||
<string name="by_name">Izenaren arabera</string>
|
||||
<string name="by_color">Kolorearen arabera</string>
|
||||
<string name="by_score">Puntuen arabera</string>
|
||||
<string name="download">Deskargatu</string>
|
||||
<string name="export">Esportatu</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,34 +19,34 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">عادتسنج</string>
|
||||
<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="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_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="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="habit_strength">قدرت عادت</string>
|
||||
<string name="history">تاریخچه</string>
|
||||
<string name="clear">حذف</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="days">روز</string>
|
||||
<string name="reminder">یادآور</string>
|
||||
<string name="discard">حذف تغییرات</string>
|
||||
<string name="discard">بیخیال</string>
|
||||
<string name="save">ذخیره</string>
|
||||
<string name="streaks">روزهای پیوسته</string>
|
||||
<string name="no_habits_found">شما هیچ عادت فعالی ندارید</string>
|
||||
@@ -55,18 +55,18 @@
|
||||
<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="create_habit">درج عادت جدید</string>
|
||||
<string name="edit_habit">ویرایش عادت</string>
|
||||
<string name="check">تیک زدن</string>
|
||||
<string name="snooze">بعدا</string>
|
||||
<string name="snooze">بعداً</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">خوش آمدید</string>
|
||||
<string name="intro_description_1">رهگیر عادت به شما کمک میکند تا برای خودتان عادتهای خوبی بسازید.</string>
|
||||
<string name="intro_description_1">رهگیر عادت لوپ به شما کمک میکند تا برای خودتان عادتهای خوبی بسازید.</string>
|
||||
<string name="intro_title_2">ساخت چند عادت جدید</string>
|
||||
<string name="intro_description_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_title_4">پیشرفت خود را رهگیری کنید</string>
|
||||
<string name="intro_description_4">نمودار جزئیات به شما نشان میدهد که چطور عادتهایتان با گذشت زمان بهبود پیدا کردهاند.</string>
|
||||
<string name="interval_15_minutes">۱۵ دقیقه</string>
|
||||
<string name="interval_30_minutes">۳۰ دقیقه</string>
|
||||
@@ -74,30 +74,40 @@
|
||||
<string name="interval_2_hour">۲ ساعت</string>
|
||||
<string name="interval_4_hour">۴ ساعت</string>
|
||||
<string name="interval_8_hour">۸ ساعت</string>
|
||||
<string name="interval_24_hour">۲۴ ساعت</string>
|
||||
<string name="pref_toggle_title">با اشارهی کوتاهمدت وضعیت عادت را تغییر بده</string>
|
||||
<string name="pref_toggle_description">راحتتر است ولی ممکن است باعث شود اشتباهی عادتی را تیک بزنید.</string>
|
||||
<string name="pref_rate_this_app">دادن امتیاز به اپ در گوگلپلی</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">دیدن سورس اپ در گیتهاب</string>
|
||||
<string name="pref_view_app_introduction">دیدن معرفی اپ</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="snooze_interval">بازه به تعویق انداختن</string>
|
||||
<string name="hint_title">آیا می دانستید؟</string>
|
||||
<string name="hint_drag">برای جابجایی عناوین، انگشتتان را روی نام عادت مورد نظر بگذارید و نگه دارید، سپس آن را به محل صحیح بکشید.</string>
|
||||
<string name="hint_landscape">با قرار دادن گوشی در حالت افقی میتوانید روزهای بیشتری را ببینید.</string>
|
||||
<string name="delete_habits">حذف عادتها</string>
|
||||
<string name="delete_habits_message">عادتها برای همیشه حذف خواهد شد. این عمل قابل بازگشت نیست.</string>
|
||||
<string name="habit_not_found">عادت حذف شده/ پیدا نشد</string>
|
||||
<string name="weekends">آخر هفتهها</string>
|
||||
<string name="any_weekday">دوشنبه تا جمعه</string>
|
||||
<string name="any_day">هر روز از هفته</string>
|
||||
<string name="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="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="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>
|
||||
@@ -106,20 +116,39 @@
|
||||
<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، HabitbBull و یا 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="night_mode">حالت شبانه</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>
|
||||
@@ -128,4 +157,22 @@
|
||||
<string name="score">امتیاز</string>
|
||||
<string name="reminder_sound">صدای یادآور</string>
|
||||
<string name="none">هیچکدام</string>
|
||||
<string name="filter">فیلتر</string>
|
||||
<string name="hide_completed">مخفی کردن کامل شدهها</string>
|
||||
<string name="hide_archived">مخفی کردن بایگانی شدهها</string>
|
||||
<string name="sticky_notifications">چسبناک کردن اعلانها</string>
|
||||
<string name="sticky_notifications_description">از رد کردن اعلان با کشیدن جلوگیری میکند.</string>
|
||||
<string name="repair_database">تعمیر پایگاه داده</string>
|
||||
<string name="database_repaired">پایگاه داده تعمیر شد.</string>
|
||||
<string name="uncheck">برداشتن تیک</string>
|
||||
<string name="toggle">تغییر وضعیت</string>
|
||||
<string name="action">اقدام</string>
|
||||
<string name="habit">عادت</string>
|
||||
<string name="sort">مرتبسازی</string>
|
||||
<string name="manually">دستی</string>
|
||||
<string name="by_name">بر اساس نام</string>
|
||||
<string name="by_color">بر اساس رنگ</string>
|
||||
<string name="by_score">بر اساس امتیاز</string>
|
||||
<string name="download">بارگيری</string>
|
||||
<string name="export">صدور</string>
|
||||
</resources>
|
||||
|
||||
@@ -28,20 +28,20 @@
|
||||
<string name="unarchive">Désarchiver</string>
|
||||
<string name="add_habit">Ajouter une habitude</string>
|
||||
<string name="color_picker_default_title">Changer la couleur</string>
|
||||
<string name="toast_habit_created">Habitude créée.</string>
|
||||
<string name="toast_habit_deleted">Habitude supprimée.</string>
|
||||
<string name="toast_habit_restored">Habitude rétablie.</string>
|
||||
<string name="toast_nothing_to_undo">Rien à annuler.</string>
|
||||
<string name="toast_nothing_to_redo">Rien à refaire.</string>
|
||||
<string name="toast_habit_changed">Habitude changée.</string>
|
||||
<string name="toast_habit_changed_back">Habitude restaurée.</string>
|
||||
<string name="toast_habit_archived">Habitudes archivées.</string>
|
||||
<string name="toast_habit_unarchived">Habitudes désarchivées.</string>
|
||||
<string name="toast_habit_created">Habitude créée</string>
|
||||
<string name="toast_habit_deleted">Habitude supprimée</string>
|
||||
<string name="toast_habit_restored">Habitude rétablie</string>
|
||||
<string name="toast_nothing_to_undo">Rien à annuler</string>
|
||||
<string name="toast_nothing_to_redo">Rien à refaire</string>
|
||||
<string name="toast_habit_changed">Habitude changée</string>
|
||||
<string name="toast_habit_changed_back">Habitude restaurée</string>
|
||||
<string name="toast_habit_archived">Habitudes archivées</string>
|
||||
<string name="toast_habit_unarchived">Habitudes désarchivées</string>
|
||||
<string name="overview">Vue d\'ensemble</string>
|
||||
<string name="habit_strength">Force de l\'habitude</string>
|
||||
<string name="history">Historique</string>
|
||||
<string name="clear">Supprimer</string>
|
||||
<string name="description_hint">Question (As-tu ... aujourd\'hui?)</string>
|
||||
<string name="description_hint">Question (As-tu ... aujourd\'hui ?)</string>
|
||||
<string name="repeat">Répéter</string>
|
||||
<string name="times_every">fois en</string>
|
||||
<string name="days">jours</string>
|
||||
@@ -51,6 +51,7 @@
|
||||
<string name="streaks">Séries</string>
|
||||
<string name="no_habits_found">Vous n\'avez pas d\'habitudes actives</string>
|
||||
<string name="long_press_to_toggle">Appuyez longtemps pour cocher ou décocher</string>
|
||||
<string name="reminder_off">Aucun</string>
|
||||
<string name="validation_name_should_not_be_blank">Le nom ne peut être vide.</string>
|
||||
<string name="validation_number_should_be_positive">Le nombre doit être positif.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">Vous pouvez avoir au plus une répétition par jour</string>
|
||||
@@ -67,27 +68,31 @@
|
||||
<string name="intro_description_3">Les habitudes régulières pendant une période de temps étendue gagneront une étoile complète.</string>
|
||||
<string name="intro_title_4">Suivez votre progrès</string>
|
||||
<string name="intro_description_4">Des graphiques détaillés vous montrent comment vos habitudes évoluent au fil du temps.</string>
|
||||
<string name="interval_15_minutes">15 minutes</string>
|
||||
<string name="interval_30_minutes">30 minutes</string>
|
||||
<string name="interval_1_hour">1 heure</string>
|
||||
<string name="interval_2_hour">2 heures</string>
|
||||
<string name="interval_4_hour">4 heures</string>
|
||||
<string name="interval_8_hour">8 heures</string>
|
||||
<string name="interval_24_hour">24 heures</string>
|
||||
<string name="pref_toggle_title">Activer les répétitions avec un appui court</string>
|
||||
<string name="pref_toggle_description">Plus pratique, mais peut causer des activations accidentelles.</string>
|
||||
<string name="pref_toggle_description">Pointe l\'habitude avec un appui court plutôt qu\'un appuie long. Plus pratique, mais peut causer des activations accidentelles.</string>
|
||||
<string name="pref_snooze_interval_title">Intervalle de report des rappels</string>
|
||||
<string name="pref_rate_this_app">Notez cette app sur le Google Play Store</string>
|
||||
<string name="pref_send_feedback">Envoyez un avis au développeur</string>
|
||||
<string name="pref_view_source_code">Voir le code source sur GitHub</string>
|
||||
<string name="pref_view_app_introduction">Voir l\'intro de l\'app</string>
|
||||
<string name="pref_view_app_introduction">Voir l\'introduction de l\'app</string>
|
||||
<string name="links">Liens</string>
|
||||
<string name="behavior">Comportement</string>
|
||||
<string name="name">Nom</string>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="snooze_interval">Intervalle de report</string>
|
||||
<string name="hint_title">Le saviez-vous ?</string>
|
||||
<string name="hint_drag">Pour réarranger les habitudes, faites un appui long sur le nom de l\'habitude et placez la à la bonne place.</string>
|
||||
<string name="hint_drag">Pour réordonner les habitudes, faites un appui long sur le nom de l\'habitude et placez-la à la bonne place.</string>
|
||||
<string name="hint_landscape">Vous pouvez voir plus de jours en mettant votre téléphone en mode paysage.</string>
|
||||
<string name="delete_habits">Supprimer des habitudes</string>
|
||||
<string name="delete_habits_message">Les habitudes seront supprimées définitivement. Cette action ne peut être annulée.</string>
|
||||
<string name="habit_not_found">Habitude supprimée / introuvable</string>
|
||||
<string name="weekends">Fin de semaine</string>
|
||||
<string name="any_weekday">Jours de la semaine</string>
|
||||
<string name="any_day">N\'importe quel jour</string>
|
||||
@@ -100,6 +105,7 @@
|
||||
<string name="about">À propos</string>
|
||||
<string name="translators">Traducteurs</string>
|
||||
<string name="developers">Développeurs</string>
|
||||
<string name="version_n">Version %s</string>
|
||||
<string name="frequency">Fréquence</string>
|
||||
<string name="checkmark">Croix</string>
|
||||
<string name="strength">Force</string>
|
||||
@@ -132,8 +138,9 @@
|
||||
<string name="troubleshooting">Résolution de problèmes</string>
|
||||
<string name="help_translate">Aider à traduire cette application</string>
|
||||
<string name="night_mode">Mode Nuit</string>
|
||||
<string name="use_pure_black">Utiliser un noir pure dans le mode nuit.</string>
|
||||
<string name="pure_black_description">Remplacer le fond gris par un noir pure dans le mode nuit; ça réduit l’usage de la batterie d\'un appareil ayant un écran AMOLED.</string>
|
||||
<string name="use_pure_black">Utiliser un noir pur dans le mode nuit</string>
|
||||
<string name="pure_black_description">Remplacer le fond gris par un noir pur dans le mode nuit ; ça réduit l’usage de la batterie des appareils ayant un écran AMOLED.</string>
|
||||
<string name="interface_preferences">Interface</string>
|
||||
<string name="reverse_days">Inverser l\'ordre des jours</string>
|
||||
<string name="reverse_days_description">Montrer les jours dans l\'ordre inversé sur l\'écran principal</string>
|
||||
<string name="day">Jour</string>
|
||||
@@ -141,6 +148,7 @@
|
||||
<string name="month">Mois</string>
|
||||
<string name="quarter">Trimestre</string>
|
||||
<string name="year">Année</string>
|
||||
<string name="total">Total</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">fois tous les</string>
|
||||
<string name="every_x_days">Tous les %d jours</string>
|
||||
@@ -149,4 +157,22 @@
|
||||
<string name="score">Pointage</string>
|
||||
<string name="reminder_sound">Son de rappel</string>
|
||||
<string name="none">Aucun</string>
|
||||
<string name="filter">Filtre</string>
|
||||
<string name="hide_completed">Cacher les habitudes complétées</string>
|
||||
<string name="hide_archived">Cacher les habitudes archivées</string>
|
||||
<string name="sticky_notifications">Rendre les notifications persistantes</string>
|
||||
<string name="sticky_notifications_description">Évite que les notifications ne soient enlevées.</string>
|
||||
<string name="repair_database">Réparer le base de données</string>
|
||||
<string name="database_repaired">Base de données réparée.</string>
|
||||
<string name="uncheck">Décocher</string>
|
||||
<string name="toggle">Basculer</string>
|
||||
<string name="action">Action</string>
|
||||
<string name="habit">Habitude</string>
|
||||
<string name="sort">Trier</string>
|
||||
<string name="manually">Manuellement</string>
|
||||
<string name="by_name">Par nom</string>
|
||||
<string name="by_color">Par couleur</string>
|
||||
<string name="by_score">Par score</string>
|
||||
<string name="download">Télécharger</string>
|
||||
<string name="export">Exporter</string>
|
||||
</resources>
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
<string name="interval_2_hour">2 घंटा</string>
|
||||
<string name="interval_4_hour">4 घंटा</string>
|
||||
<string name="interval_8_hour">8 घंटा</string>
|
||||
<string name="interval_24_hour">24 घंटे</string>
|
||||
<string name="pref_toggle_title">टॉगल पुनरावृत्ति हल्का दबाने से</string>
|
||||
<string name="pref_toggle_description">\"
|
||||
अधिक सुविधाजनक है, लेकिन आकस्मिक टॉगल हो सकता है ।\"</string>
|
||||
@@ -179,7 +180,7 @@ repetitions की संख्या\"</string>
|
||||
इस फ़ाइल में वापस आयात नहीं किया जा सकता है।\"</string>
|
||||
<string name="export_full_backup_summary">ऐसी फाइल्स उत्पन्न करता है जिसमे आपका सारा डेटा रहता है इस फ़ाइल को वापस आयात किया जा सकता है।</string>
|
||||
<string name="bug_report_failed">बग रिपोर्ट जनरेट करने मे असफल</string>
|
||||
<string name="generate_bug_report">बग रिपोर्ट जनरेट करने मे सफल</string>
|
||||
<string name="generate_bug_report">बग रिपोर्ट जनरेट करें</string>
|
||||
<string name="troubleshooting">\"
|
||||
समस्या निवारण\"</string>
|
||||
<string name="help_translate">\"
|
||||
@@ -198,15 +199,26 @@ repetitions की संख्या\"</string>
|
||||
<string name="quarter">तिमाही</string>
|
||||
<string name="year">साल</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">समय शुरू</string>
|
||||
<string name="time_every">समय में</string>
|
||||
<string name="every_x_days">\"
|
||||
हर %d दिन\"</string>
|
||||
<string name="every_x_weeks">\"
|
||||
हर %d हफ्ते\"</string>
|
||||
<string name="every_x_months">\"
|
||||
हर %d साल\"</string>
|
||||
हर %d महीने\"</string>
|
||||
<string name="score">स्कोर</string>
|
||||
<string name="reminder_sound">अनुस्मारक ध्वनि</string>
|
||||
<string name="none">\"
|
||||
कोई आवाज नहीं\"</string>
|
||||
<string name="filter">फिल्टर</string>
|
||||
<string name="repair_database">डेटाबेस को रिपेयर करें</string>
|
||||
<string name="database_repaired">डेटाबेस रिपेयर सफल</string>
|
||||
<string name="habit">आदत</string>
|
||||
<string name="sort">सॉर्ट करें</string>
|
||||
<string name="manually">मैन्यूअली</string>
|
||||
<string name="by_name">नाम द्वारा</string>
|
||||
<string name="by_color">रंग द्वारा</string>
|
||||
<string name="by_score">स्कोर से</string>
|
||||
<string name="download">डाउनलोड</string>
|
||||
<string name="export">एक्सपोर्ट करे</string>
|
||||
</resources>
|
||||
|
||||
@@ -78,9 +78,9 @@
|
||||
<string name="pref_toggle_title">Označi ponavljanja sa kratkim pritisk.</string>
|
||||
<string name="pref_toggle_description">Zgodnije je, no može uzrokovati slučajna označavanja.</string>
|
||||
<string name="pref_snooze_interval_title">Interval odgađanja na podsjetnicima</string>
|
||||
<string name="pref_rate_this_app">Ocijenite ovu aplikaciju na Google Playu</string>
|
||||
<string name="pref_send_feedback">Pošaljite povratne informacije raz. programeru</string>
|
||||
<string name="pref_view_source_code">Pogledajte izvorni kod na GitHubu</string>
|
||||
<string name="pref_rate_this_app">Ocijeni ovu aplikaciju na Google Playu</string>
|
||||
<string name="pref_send_feedback">Pošalji povratne informacije raz. programeru</string>
|
||||
<string name="pref_view_source_code">Pogledaj izvorni kod na GitHubu</string>
|
||||
<string name="pref_view_app_introduction">Prikaži uvod u aplikaciju</string>
|
||||
<string name="links">Poveznice</string>
|
||||
<string name="behavior">Ponašanje</string>
|
||||
@@ -136,13 +136,13 @@
|
||||
<string name="bug_report_failed">Generiranje izvješća o pogrešci nije uspjelo.</string>
|
||||
<string name="generate_bug_report">Generiraj izvješće o pogreški</string>
|
||||
<string name="troubleshooting">Rješavanje problema</string>
|
||||
<string name="help_translate">Pomozite prevesti ovu aplikaciju</string>
|
||||
<string name="help_translate">Pomozi prevesti ovu aplikaciju</string>
|
||||
<string name="night_mode">Noćni način</string>
|
||||
<string name="use_pure_black">Koristi crnu boju za noćni način</string>
|
||||
<string name="pure_black_description">Zamjenjuje sivu pozadinu sa crnom u noćnom načinu. To smanjuje potrošnju bateriju na uređajima s AMOLED zaslonima.</string>
|
||||
<string name="interface_preferences">Sučelje</string>
|
||||
<string name="reverse_days">Obrnuti poredak dana</string>
|
||||
<string name="reverse_days_description">Prikaži dane obrnutim redom na glavnom zaslonu</string>
|
||||
<string name="reverse_days_description">Prikažite dane obrnutim redom na glavnom zaslonu</string>
|
||||
<string name="day">Dan</string>
|
||||
<string name="week">Tjedan</string>
|
||||
<string name="month">Mjesec</string>
|
||||
@@ -158,7 +158,7 @@
|
||||
<string name="reminder_sound">Zvuk podsjetnika</string>
|
||||
<string name="none">Nijedan</string>
|
||||
<string name="filter">Filtar</string>
|
||||
<string name="hide_completed">Skrivanje je uspjelo</string>
|
||||
<string name="hide_completed">Sakrij završeno</string>
|
||||
<string name="hide_archived">Sakrij arhivirano</string>
|
||||
<string name="sticky_notifications">Učini obavijesti trajnima</string>
|
||||
<string name="sticky_notifications_description">Spriječava da se obavijesti zanemare.</string>
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="main_activity_title">Habits</string>
|
||||
<string name="app_name">Loop Szokásrögzítő</string>
|
||||
<string name="main_activity_title">Szokások</string>
|
||||
<string name="action_settings">Beállítások</string>
|
||||
<string name="edit">Szerkesztés</string>
|
||||
<string name="delete">Törlés</string>
|
||||
@@ -31,7 +32,7 @@
|
||||
<string name="toast_habit_deleted">Szokás törölve</string>
|
||||
<string name="toast_habit_restored">Szokás visszaállítva</string>
|
||||
<string name="toast_nothing_to_undo">Nincs mit visszavonni</string>
|
||||
<string name="toast_nothing_to_redo">\"Mégis\" nem lehetséges</string>
|
||||
<string name="toast_nothing_to_redo">Nincs mit újraalkalmazni</string>
|
||||
<string name="toast_habit_changed">Szokás módosítva</string>
|
||||
<string name="toast_habit_changed_back">Szokás visszaállítva</string>
|
||||
<string name="toast_habit_archived">Szokás archiválva</string>
|
||||
|
||||
@@ -1,156 +0,0 @@
|
||||
<?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">Kebiasaan</string>
|
||||
<string name="action_settings">Pengaturan</string>
|
||||
<string name="edit">Ubah</string>
|
||||
<string name="delete">Hapus</string>
|
||||
<string name="archive">Arsip</string>
|
||||
<string name="unarchive">Keluarkan dari arsip</string>
|
||||
<string name="add_habit">Tambah Kebiasaan</string>
|
||||
<string name="color_picker_default_title">Ganti warna</string>
|
||||
<string name="toast_habit_created">Kebiasaan ditambahkan.</string>
|
||||
<string name="toast_habit_deleted">Kebiasaan dihapus.</string>
|
||||
<string name="toast_habit_restored">Kebiasaan dikembalikan.</string>
|
||||
<string name="toast_nothing_to_undo">Tidak ada aksi sebelumnya.</string>
|
||||
<string name="toast_nothing_to_redo">Tidak ada aksi sesudahnya.</string>
|
||||
<string name="toast_habit_changed">Kebiasaan diubah.</string>
|
||||
<string name="toast_habit_changed_back">Kebiasaan telah dikembalikan.</string>
|
||||
<string name="toast_habit_archived">Kebiasaan diarsipkan.</string>
|
||||
<string name="toast_habit_unarchived">Kebiasaan dikeluarkan dari arsip.</string>
|
||||
<string name="overview">Keseluruhan</string>
|
||||
<string name="habit_strength">Kekuatan Kebiasaan</string>
|
||||
<string name="history">Riwayat</string>
|
||||
<string name="clear">Bersihkan</string>
|
||||
<string name="description_hint">Pertanyaan (Apakah kamu ... hari ini?)</string>
|
||||
<string name="repeat">Ulangi</string>
|
||||
<string name="times_every">kali dalam</string>
|
||||
<string name="days">hari</string>
|
||||
<string name="reminder">Pengingat</string>
|
||||
<string name="discard">Batalkan</string>
|
||||
<string name="save">Simpan</string>
|
||||
<string name="streaks">Rentetan</string>
|
||||
<string name="no_habits_found">Anda tidak memiliki Kebiasaan yang aktif</string>
|
||||
<string name="long_press_to_toggle">Tekan dan tahan untuk menambah atau menghapus tanda cek</string>
|
||||
<string name="reminder_off">Mati</string>
|
||||
<string name="validation_name_should_not_be_blank">Nama tidak boleh kosong.</string>
|
||||
<string name="validation_number_should_be_positive">Angka harus positif.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">Maksimal satu kali pengulangan dalam satu hari</string>
|
||||
<string name="create_habit">Buat Kebiasaan</string>
|
||||
<string name="edit_habit">Ubah Kebiasaan</string>
|
||||
<string name="check">Tanda cek</string>
|
||||
<string name="snooze">Tunda</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Selamat datang</string>
|
||||
<string name="intro_description_1">Loop Habit Tracker membantu mencatat dan mengelola Kebiasaan baik Anda.</string>
|
||||
<string name="intro_title_2">Buat beberapa Kebiasaan baru</string>
|
||||
<string name="intro_description_2">Berikan tanda cek setiap kali Anda selesai melakukannya.</string>
|
||||
<string name="intro_title_3">Terus lakukan</string>
|
||||
<string name="intro_description_3">Kebiasaan yang dilakukan secara konsisten dalam jangka waktu panjang akan mendapatkan tanda bintang penuh.</string>
|
||||
<string name="intro_title_4">Catat perkembangan Anda</string>
|
||||
<string name="intro_description_4">Detail grafik menampilkan perkembangan Kebiasaanmu dari waktu ke waktu.</string>
|
||||
<string name="interval_15_minutes">15 menit</string>
|
||||
<string name="interval_30_minutes">30 menit</string>
|
||||
<string name="interval_1_hour">1 jam</string>
|
||||
<string name="interval_2_hour">2 jam</string>
|
||||
<string name="interval_4_hour">4 jam</string>
|
||||
<string name="interval_8_hour">8 jam</string>
|
||||
<string name="pref_toggle_title">Tandai dengan cepat.</string>
|
||||
<string name="pref_toggle_description">Lebih nyaman namun memungkinkan kesalahan.</string>
|
||||
<string name="pref_snooze_interval_title">Durasi tunda sejenak pada pengingat</string>
|
||||
<string name="pref_rate_this_app">Berikan rating aplikasi ini di Google Play</string>
|
||||
<string name="pref_send_feedback">Kirimkan umpan balik kepada Developer</string>
|
||||
<string name="pref_view_source_code">Lihat kode aplikasi di GitHub</string>
|
||||
<string name="pref_view_app_introduction">Perkenalan aplikasi</string>
|
||||
<string name="links">Tautan</string>
|
||||
<string name="behavior">Kebiasaan</string>
|
||||
<string name="name">Nama</string>
|
||||
<string name="settings">Pengaturan</string>
|
||||
<string name="snooze_interval">Durasi tunda sejenak</string>
|
||||
<string name="hint_title">Tahukah kamu?</string>
|
||||
<string name="hint_drag">Untuk mengatur urutan, tekan dan tahan judul Kebiasaan lalu tempatkan pada posisi yang Anda inginkan.</string>
|
||||
<string name="hint_landscape">Anda dapat melihat tampilan hari dengan merubah posisi menjadi mode landscape.</string>
|
||||
<string name="delete_habits">Hapus Kebiasaan</string>
|
||||
<string name="delete_habits_message">Kebiasaan ini akan dihapus permanen. Tidak dapat dikembalikan.</string>
|
||||
<string name="weekends">Akhir pekan</string>
|
||||
<string name="any_weekday">Senin - Jumat</string>
|
||||
<string name="any_day">Seluruh hari dalam satu minggu</string>
|
||||
<string name="select_weekdays">Pilih hari</string>
|
||||
<string name="export_to_csv">Ekspor (CSV)</string>
|
||||
<string name="done_label">Selesai</string>
|
||||
<string name="clear_label">Hapus</string>
|
||||
<string name="select_hours">Pilih jam</string>
|
||||
<string name="select_minutes">Pilih menit</string>
|
||||
<string name="about">Tentang</string>
|
||||
<string name="translators">Penerjemah</string>
|
||||
<string name="developers">Developer</string>
|
||||
<string name="version_n">Versi %s</string>
|
||||
<string name="frequency">Frekuensi</string>
|
||||
<string name="checkmark">Cek</string>
|
||||
<string name="strength">Kekuatan</string>
|
||||
<string name="best_streaks">Rentetan terbaik</string>
|
||||
<string name="current_streaks">Rentetan saat ini</string>
|
||||
<string name="number_of_repetitions">Jumlah pengulangan</string>
|
||||
<string name="last_x_days">%d hari terakhir</string>
|
||||
<string name="last_x_weeks">%d minggu terakhir</string>
|
||||
<string name="last_x_months">%d bulan terakhir</string>
|
||||
<string name="last_x_years">%d tahun terakhir</string>
|
||||
<string name="all_time">Seluruh waktu</string>
|
||||
<string name="every_day">Setiap hari</string>
|
||||
<string name="every_week">Setiap minggu</string>
|
||||
<string name="two_times_per_week">2 kali setiap minggu</string>
|
||||
<string name="five_times_per_week">5 kali setiap minggu</string>
|
||||
<string name="custom_frequency">Tersuai ...</string>
|
||||
<string name="help">Bantuan & FAQ</string>
|
||||
<string name="could_not_export">Ekspor data gagal.</string>
|
||||
<string name="could_not_import">Impor data gagal.</string>
|
||||
<string name="file_not_recognized">File tidak dikenali.</string>
|
||||
<string name="habits_imported">Impor data berhasil.</string>
|
||||
<string name="full_backup_success">Ekspor data berhasil.</string>
|
||||
<string name="import_data">Impor data</string>
|
||||
<string name="export_full_backup">Ekspor data</string>
|
||||
<string name="import_data_summary">Mendukung ekspor data dan file dari aplikasi Tickmate, HabitBull atau Rewire. Lihat FAQ untuk informasi lebih lanjut.</string>
|
||||
<string name="export_as_csv_summary">Menghasilkan lembar kerja yang dapat dibuka menggunakan aplikasi seperti Microsoft Excel atau OpenOffice Calc. File ini tidak dapat di-impor kembali.</string>
|
||||
<string name="export_full_backup_summary">Menghasilkan file yang berisikan seluruh data. File ini dapat di-impor kembali.</string>
|
||||
<string name="bug_report_failed">Gagal membuat laporan masalah.</string>
|
||||
<string name="generate_bug_report">Membuat laporan masalah</string>
|
||||
<string name="troubleshooting">Troubleshoot</string>
|
||||
<string name="help_translate">Bantu terjemahkan</string>
|
||||
<string name="night_mode">Mode malam</string>
|
||||
<string name="use_pure_black">Gunakan warna hitam pada mode malam</string>
|
||||
<string name="pure_black_description">Ganti warna latar abu-abu dengan warna hitam pada mode malam. Mengurangi penggunaan baterai pada layar AMOLED.</string>
|
||||
<string name="interface_preferences">Antar muka</string>
|
||||
<string name="reverse_days">Ubah urutan hari</string>
|
||||
<string name="reverse_days_description">Tampilkan hari dalam urutan terbalik pada layar utama</string>
|
||||
<string name="day">Hari</string>
|
||||
<string name="week">Minggu</string>
|
||||
<string name="month">Bulan</string>
|
||||
<string name="quarter">Perempat</string>
|
||||
<string name="year">Tahun</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">kali dalam</string>
|
||||
<string name="every_x_days">Setiap %d hari</string>
|
||||
<string name="every_x_weeks">Setiap %d minggu</string>
|
||||
<string name="every_x_months">Setiap %d bulan</string>
|
||||
<string name="score">Nilai</string>
|
||||
<string name="reminder_sound">Suara pengingat</string>
|
||||
<string name="none">Hening</string>
|
||||
</resources>
|
||||
@@ -1,181 +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">"Kebiasaan"</string>
|
||||
<string name="action_settings">"Pengaturan"</string>
|
||||
<string name="edit">"Ubah"</string>
|
||||
<string name="delete">"Hapus"</string>
|
||||
<string name="archive">"Arsip"</string>
|
||||
<string name="unarchive">"Keluarkan dari arsip"</string>
|
||||
<string name="add_habit">"Tambah Kebiasaan"</string>
|
||||
<string name="color_picker_default_title">"Ganti warna"</string>
|
||||
<string name="toast_habit_created">"Kebiasaan ditambahkan."</string>
|
||||
<string name="toast_habit_deleted">"Kebiasaan dihapus."</string>
|
||||
<string name="toast_habit_restored">"Kebiasaan dikembalikan."</string>
|
||||
<string name="toast_nothing_to_undo">"Tidak ada aksi sebelumnya."</string>
|
||||
<string name="toast_nothing_to_redo">"Tidak ada aksi sesudahnya."</string>
|
||||
<string name="toast_habit_changed">"Kebiasaan diubah."</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">"Kebiasaan telah dikembalikan."</string>
|
||||
<string name="toast_habit_archived">"Kebiasaan diarsipkan."</string>
|
||||
<string name="toast_habit_unarchived">"Kebiasaan dikeluarkan dari arsip."</string>
|
||||
<string name="overview">"Keseluruhan"</string>
|
||||
<string name="habit_strength">"Kekuatan Kebiasaan"</string>
|
||||
<string name="history">"Riwayat"</string>
|
||||
<string name="clear">"Bersihkan"</string>
|
||||
<string name="description_hint">"Pertanyaan (Apakah kamu ... hari ini?)"</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">"Ulangi"</string>
|
||||
<string name="times_every">"kali dalam"</string>
|
||||
<string name="days">"hari"</string>
|
||||
<string name="reminder">"Pengingat"</string>
|
||||
<string name="discard">"Batalkan"</string>
|
||||
<string name="save">"Simpan"</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">"Rentetan"</string>
|
||||
<string name="no_habits_found">"Anda tidak memiliki Kebiasaan yang aktif"</string>
|
||||
<string name="long_press_to_toggle">"Tekan dan tahan untuk menambah atau menghapus tanda cek"</string>
|
||||
<string name="reminder_off">"Mati"</string>
|
||||
<string name="validation_name_should_not_be_blank">"Nama tidak boleh kosong."</string>
|
||||
<string name="validation_number_should_be_positive">"Angka harus positif."</string>
|
||||
<string name="validation_at_most_one_rep_per_day">"Maksimal satu kali pengulangan dalam satu hari"</string>
|
||||
<string name="create_habit">"Buat Kebiasaan"</string>
|
||||
<string name="edit_habit">"Ubah Kebiasaan"</string>
|
||||
<string name="check">"Tanda cek"</string>
|
||||
<string name="snooze">"Tunda"</string>
|
||||
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">"Selamat datang"</string>
|
||||
<string name="intro_description_1">"Loop Habit Tracker membantu mencatat dan mengelola Kebiasaan baik Anda."</string>
|
||||
<string name="intro_title_2">"Buat beberapa Kebiasaan baru"</string>
|
||||
<string name="intro_description_2">"Berikan tanda cek setiap kali Anda selesai melakukannya."</string>
|
||||
<string name="intro_title_3">"Terus lakukan"</string>
|
||||
<string name="intro_description_3">"Kebiasaan yang dilakukan secara konsisten dalam jangka waktu panjang akan mendapatkan tanda bintang penuh."</string>
|
||||
<string name="intro_title_4">"Catat perkembangan Anda"</string>
|
||||
<string name="intro_description_4">"Detail grafik menampilkan perkembangan Kebiasaanmu dari waktu ke waktu."</string>
|
||||
<string name="interval_15_minutes">"15 menit"</string>
|
||||
<string name="interval_30_minutes">"30 menit"</string>
|
||||
<string name="interval_1_hour">"1 jam"</string>
|
||||
<string name="interval_2_hour">"2 jam"</string>
|
||||
<string name="interval_4_hour">"4 jam"</string>
|
||||
<string name="interval_8_hour">"8 jam"</string>
|
||||
<string name="pref_toggle_title">"Tandai dengan cepat."</string>
|
||||
<string name="pref_toggle_description">"Lebih nyaman namun memungkinkan kesalahan."</string>
|
||||
<string name="pref_snooze_interval_title">"Durasi tunda sejenak pada pengingat"</string>
|
||||
<string name="pref_rate_this_app">"Berikan rating aplikasi ini di Google Play"</string>
|
||||
<string name="pref_send_feedback">"Kirimkan umpan balik kepada Developer"</string>
|
||||
<string name="pref_view_source_code">"Lihat kode aplikasi di GitHub"</string>
|
||||
<string name="pref_view_app_introduction">"Perkenalan aplikasi"</string>
|
||||
<string name="links">"Tautan"</string>
|
||||
<string name="behavior">"Kebiasaan"</string>
|
||||
<string name="name">"Nama"</string>
|
||||
<string name="show_archived">"Tampilkan arsip"</string>
|
||||
<string name="settings">"Pengaturan"</string>
|
||||
<string name="snooze_interval">"Durasi tunda sejenak"</string>
|
||||
<string name="hint_title">"Tahukah kamu?"</string>
|
||||
<string name="hint_drag">"Untuk mengatur urutan, tekan dan tahan judul Kebiasaan lalu tempatkan pada posisi yang Anda inginkan."</string>
|
||||
<string name="hint_landscape">"Anda dapat melihat tampilan hari dengan merubah posisi menjadi mode landscape."</string>
|
||||
<string name="delete_habits">"Hapus Kebiasaan"</string>
|
||||
<string name="delete_habits_message">"Kebiasaan ini akan dihapus permanen. Tidak dapat dikembalikan."</string>
|
||||
<string name="weekends">"Akhir pekan"</string>
|
||||
<string name="any_weekday">"Senin - Jumat"</string>
|
||||
<string name="any_day">"Seluruh hari dalam satu minggu"</string>
|
||||
<string name="select_weekdays">"Pilih hari"</string>
|
||||
<string name="export_to_csv">"Ekspor (CSV)"</string>
|
||||
<string name="done_label">"Selesai"</string>
|
||||
<string name="clear_label">"Hapus"</string>
|
||||
<string name="select_hours">"Pilih jam"</string>
|
||||
<string name="select_minutes">"Pilih menit"</string>
|
||||
|
||||
<!-- Short description used on the Google Play store. There is an 80-character limit. -->
|
||||
<string name="store_short_description">"Buat Kebiasaan baik dan catat perkembangannya setiap waktu (bebas iklan)"</string>
|
||||
<string name="store_description_1">"Loop membantu Anda untuk membuat dan mengelola Kebiasaan baik, memungkinkan Anda mencapai gol jangka panjang. Grafik detail dan statistik menampilkan perkembangan Kebiasaan Anda dari waktu ke waktu. Aplikasi ini bebas iklan dan open-source."</string>
|
||||
<string name="store_feature_interface">"<b>Sederhana, minimalis dengan balutan antarmuka yang modern</b>
|
||||
Loop memiliki tampilan minimalis yang mudah digunakan dan mengikuti panduan material design."</string>
|
||||
<string name="store_feature_score">"<b>Skor Kebiasaan</b>
|
||||
Algoritma Loop akan menghitung kekuatan Kebiasaan Anda. Setiap kali Anda melakukan pengulangan maka skor Anda akan bertambah, sebaliknya jika Anda tidak mengerjakan Kebiasaan maka nilai akan dikurangi. Beberapa hari yang terlewat tidak akan menghapus seluruh perkembangan Kebiasaan Anda."</string>
|
||||
<string name="store_feature_statistics">"<b>Detail Grafik dan Statistik</b>
|
||||
Lihat perkembangan Kebiasaan dari waktu ke waktu dengan tampilan yang menarik dan detail. Geser ke bawah untuk melihat seluruh catatan Kebiasaan Anda."</string>
|
||||
<string name="store_feature_schedules">"<b>Pengaturan jadwal fleksibel</b>
|
||||
Mendukung kebiasaan harian dan kebiasaan dengan penjadwalan yang kompleks, seperti 3 kali dalam setiap minggu; 2 minggu sekali; hingga 2 hari sekali."</string>
|
||||
<string name="store_feature_reminders">"<b>Pengingat</b>
|
||||
Anda dapat membuat pengingat untuk setiap Kebiasaan, dengan waktu yang telah Anda tentukan setiap harinya. Mudah untuk di-cek, batalkan ataupun tunda melalui panel notifikasi tanpa perlu membuka aplikasi."</string>
|
||||
<string name="store_feature_opensource">"<b>Bebas dari iklan dan open-source</b>
|
||||
Tidak ada iklan, notifikasi menyebalkan dan juga hak akses yang tidak dibutuhkan.
|
||||
Kode aplikasi tersedia dengan lisensi GPLv3"</string>
|
||||
<string name="store_feature_wear">"<b>Mendukung Smartwatch</b>
|
||||
Anda dapat dengan mudah mengecek, menunda ataupun membatalkan pengingat melalui smartwatch Anda."</string>
|
||||
<string name="about">"Tentang"</string>
|
||||
<string name="translators">"Penerjemah"</string>
|
||||
<string name="developers">"Developer"</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">"Frekuensi"</string>
|
||||
<string name="checkmark">"Cek"</string>
|
||||
|
||||
<!-- This is a shorter version of "Habit Strength" -->
|
||||
<string name="strength">"Kekuatan"</string>
|
||||
<string name="best_streaks">"Rentetan terbaik"</string>
|
||||
<string name="current_streaks">"Rentetan saat ini"</string>
|
||||
<string name="number_of_repetitions">"Jumlah pengulangan"</string>
|
||||
<string name="last_x_days">"%d hari terakhir"</string>
|
||||
<string name="last_x_weeks">"%d minggu terakhir"</string>
|
||||
<string name="last_x_months">"%d bulan terakhir"</string>
|
||||
<string name="last_x_years">"%d tahun terakhir"</string>
|
||||
|
||||
<!-- "All time" number of repetitions. Or number of repetitions "since the beginning". -->
|
||||
<string name="all_time">"Seluruh waktu"</string>
|
||||
<string name="every_day">"Setiap hari"</string>
|
||||
<string name="every_week">"Setiap minggu"</string>
|
||||
<string name="two_times_per_week">"2 kali setiap minggu"</string>
|
||||
<string name="five_times_per_week">"5 kali setiap minggu"</string>
|
||||
<string name="custom_frequency">"Tersuai ..."</string>
|
||||
<string name="help">"Bantuan & FAQ"</string>
|
||||
<string name="could_not_export">"Ekspor data gagal."</string>
|
||||
<string name="could_not_import">"Impor data gagal."</string>
|
||||
|
||||
<!-- Appears when the user tries to import a file which we do not support or recognize. -->
|
||||
<string name="file_not_recognized">"File tidak dikenali."</string>
|
||||
<string name="habits_imported">"Impor data berhasil."</string>
|
||||
<string name="full_backup_success">"Ekspor data berhasil."</string>
|
||||
<string name="import_data">"Impor data"</string>
|
||||
<string name="export_full_backup">"Ekspor data"</string>
|
||||
<string name="import_data_summary">"Mendukung ekspor data dan file dari aplikasi Tickmate, HabitBull atau Rewire. Lihat FAQ untuk informasi lebih lanjut."</string>
|
||||
<string name="export_as_csv_summary">"Menghasilkan lembar kerja yang dapat dibuka menggunakan aplikasi seperti Microsoft Excel atau OpenOffice Calc. File ini tidak dapat di-impor kembali."</string>
|
||||
<string name="export_full_backup_summary">"Menghasilkan file yang berisikan seluruh data. File ini dapat di-impor kembali."</string>
|
||||
<string name="bug_report_failed">"Gagal membuat laporan masalah."</string>
|
||||
<string name="generate_bug_report">"Membuat laporan masalah"</string>
|
||||
<string name="troubleshooting">"Troubleshoot"</string>
|
||||
<string name="help_translate">"Bantu terjemahkan"</string>
|
||||
<string name="night_mode">"Mode malam"</string>
|
||||
<string name="use_pure_black">"Gunakan warna hitam pada mode malam"</string>
|
||||
<string name="pure_black_description">"Ganti warna latar abu-abu dengan warna hitam pada mode malam. Mengurangi penggunaan baterai pada layar AMOLED."</string>
|
||||
<string name="interface_preferences">"Antar muka"</string>
|
||||
<string name="reverse_days">"Ubah urutan hari"</string>
|
||||
<string name="reverse_days_description">"Tampilkan hari dalam urutan terbalik pada layar utama"</string>
|
||||
<string name="day">"Hari"</string>
|
||||
<string name="week">"Minggu"</string>
|
||||
<string name="month">"Bulan"</string>
|
||||
|
||||
<!-- Three-month period -->
|
||||
<string name="quarter">"Perempat"</string>
|
||||
<string name="year">"Tahun"</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">"kali dalam"</string>
|
||||
<string name="every_x_days">"Setiap %d hari"</string>
|
||||
<string name="every_x_weeks">"Setiap %d minggu"</string>
|
||||
<string name="every_x_months">"Setiap %d bulan"</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">"Nilai"</string>
|
||||
<string name="reminder_sound">"Suara pengingat"</string>
|
||||
|
||||
<!-- Appears when the user disables the reminder sound. Could also be "no sound", "mute" or "silent". -->
|
||||
<string name="none">"Hening"</string>
|
||||
</resources>
|
||||
<string name="app_name">Loop Habit Tracker</string>
|
||||
<string name="main_activity_title">Kebiasaan</string>
|
||||
<string name="action_settings">Pengaturan</string>
|
||||
<string name="edit">Sunting</string>
|
||||
<string name="delete">Hapus</string>
|
||||
<string name="archive">Arsip</string>
|
||||
<string name="unarchive">Keluarkan dari arsip</string>
|
||||
<string name="add_habit">Tambah Kebiasaan</string>
|
||||
<string name="color_picker_default_title">Ganti warna</string>
|
||||
<string name="toast_habit_created">Kebiasaan ditambahkan.</string>
|
||||
<string name="toast_habit_deleted">Kebiasaan dihapus.</string>
|
||||
<string name="toast_habit_restored">Kebiasaan dipulihkan</string>
|
||||
<string name="toast_nothing_to_undo">Tidak ada aksi sebelumnya.</string>
|
||||
<string name="toast_nothing_to_redo">Tidak ada aksi sesudahnya.</string>
|
||||
<string name="toast_habit_changed">Kebiasaan diubah.</string>
|
||||
<string name="toast_habit_changed_back">Kebiasaan telah dikembalikan.</string>
|
||||
<string name="toast_habit_archived">Kebiasaan diarsipkan.</string>
|
||||
<string name="toast_habit_unarchived">Kebiasaan dikeluarkan dari arsip.</string>
|
||||
<string name="overview">Keseluruhan</string>
|
||||
<string name="habit_strength">Kekuatan Kebiasaan</string>
|
||||
<string name="history">Riwayat</string>
|
||||
<string name="clear">Bersihkan</string>
|
||||
<string name="description_hint">Pertanyaan (Sudahkah Anda ... hari ini?)</string>
|
||||
<string name="repeat">Ulangi</string>
|
||||
<string name="times_every">kali dalam</string>
|
||||
<string name="days">hari</string>
|
||||
<string name="reminder">Pengingat</string>
|
||||
<string name="discard">Batalkan</string>
|
||||
<string name="save">Simpan</string>
|
||||
<string name="streaks">Rentetan</string>
|
||||
<string name="no_habits_found">Anda tidak memiliki Kebiasaan yang aktif</string>
|
||||
<string name="long_press_to_toggle">Tekan dan tahan untuk menambah atau menghapus tanda cek</string>
|
||||
<string name="reminder_off">Mati</string>
|
||||
<string name="validation_name_should_not_be_blank">Nama tidak boleh kosong.</string>
|
||||
<string name="validation_number_should_be_positive">Angka harus positif.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">Maksimal satu kali pengulangan dalam satu hari</string>
|
||||
<string name="create_habit">Buat Kebiasaan</string>
|
||||
<string name="edit_habit">Sunting Kebiasaan</string>
|
||||
<string name="check">Tanda cek</string>
|
||||
<string name="snooze">Tunda</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Selamat datang</string>
|
||||
<string name="intro_description_1">Loop Habit Tracker membantu mencatat dan mengelola Kebiasaan baik Anda.</string>
|
||||
<string name="intro_title_2">Buat beberapa Kebiasaan baru</string>
|
||||
<string name="intro_description_2">Berikan tanda cek setiap kali Anda selesai melakukannya.</string>
|
||||
<string name="intro_title_3">Terus lakukan</string>
|
||||
<string name="intro_description_3">Kebiasaan yang dilakukan secara konsisten dalam jangka waktu panjang akan mendapatkan tanda bintang penuh.</string>
|
||||
<string name="intro_title_4">Catat perkembangan Anda</string>
|
||||
<string name="intro_description_4">Detail grafik menampilkan perkembangan Kebiasaanmu dari waktu ke waktu.</string>
|
||||
<string name="interval_15_minutes">15 menit</string>
|
||||
<string name="interval_30_minutes">30 menit</string>
|
||||
<string name="interval_1_hour">1 jam</string>
|
||||
<string name="interval_2_hour">2 jam</string>
|
||||
<string name="interval_4_hour">4 jam</string>
|
||||
<string name="interval_8_hour">8 jam</string>
|
||||
<string name="interval_24_hour">24 jam</string>
|
||||
<string name="pref_toggle_title">Tandai dengan cepat.</string>
|
||||
<string name="pref_toggle_description">Lebih nyaman namun memungkinkan kesalahan.</string>
|
||||
<string name="pref_snooze_interval_title">Durasi tunda sejenak pada pengingat</string>
|
||||
<string name="pref_rate_this_app">Berikan rating aplikasi ini di Google Play</string>
|
||||
<string name="pref_send_feedback">Kirimkan umpan balik kepada Developer</string>
|
||||
<string name="pref_view_source_code">Lihat kode aplikasi di GitHub</string>
|
||||
<string name="pref_view_app_introduction">Perkenalan aplikasi</string>
|
||||
<string name="links">Tautan</string>
|
||||
<string name="behavior">Kebiasaan</string>
|
||||
<string name="name">Nama</string>
|
||||
<string name="settings">Pengaturan</string>
|
||||
<string name="snooze_interval">Durasi tunda sejenak</string>
|
||||
<string name="hint_title">Sudahkah Anda tahu?</string>
|
||||
<string name="hint_drag">Untuk mengatur urutan, tekan dan tahan judul Kebiasaan lalu tempatkan pada posisi yang Anda inginkan.</string>
|
||||
<string name="hint_landscape">Anda dapat melihat tampilan hari dengan merubah posisi menjadi mode landscape.</string>
|
||||
<string name="delete_habits">Hapus Kebiasaan</string>
|
||||
<string name="delete_habits_message">Kebiasaan ini akan dihapus secara permanen. Tindakan ini tidak dapat dibatalkan.</string>
|
||||
<string name="habit_not_found">Kebiasaan telah dihapus / tidak ditemukan</string>
|
||||
<string name="weekends">Akhir pekan</string>
|
||||
<string name="any_weekday">Senin - Jumat</string>
|
||||
<string name="any_day">Seluruh hari dalam satu minggu</string>
|
||||
<string name="select_weekdays">Pilih hari</string>
|
||||
<string name="export_to_csv">Ekspor (CSV)</string>
|
||||
<string name="done_label">Selesai</string>
|
||||
<string name="clear_label">Hapus</string>
|
||||
<string name="select_hours">Pilih jam</string>
|
||||
<string name="select_minutes">Pilih menit</string>
|
||||
<string name="about">Tentang</string>
|
||||
<string name="translators">Penerjemah</string>
|
||||
<string name="developers">Developer</string>
|
||||
<string name="version_n">Versi %s</string>
|
||||
<string name="frequency">Frekuensi</string>
|
||||
<string name="checkmark">Cek</string>
|
||||
<string name="strength">Kekuatan</string>
|
||||
<string name="best_streaks">Rentetan terbaik</string>
|
||||
<string name="current_streaks">Rentetan saat ini</string>
|
||||
<string name="number_of_repetitions">Jumlah pengulangan</string>
|
||||
<string name="last_x_days">%d hari terakhir</string>
|
||||
<string name="last_x_weeks">%d minggu terakhir</string>
|
||||
<string name="last_x_months">%d bulan terakhir</string>
|
||||
<string name="last_x_years">%d tahun terakhir</string>
|
||||
<string name="all_time">Seluruh waktu</string>
|
||||
<string name="every_day">Setiap hari</string>
|
||||
<string name="every_week">Setiap minggu</string>
|
||||
<string name="two_times_per_week">2 kali per minggu</string>
|
||||
<string name="five_times_per_week">5 kali per minggu</string>
|
||||
<string name="custom_frequency">Sesuaikan …</string>
|
||||
<string name="help">Bantuan & FAQ</string>
|
||||
<string name="could_not_export">Gagal mengekspor data.</string>
|
||||
<string name="could_not_import">Gagal mengimpor data.</string>
|
||||
<string name="file_not_recognized">File tidak dikenali.</string>
|
||||
<string name="habits_imported">Impor data berhasil.</string>
|
||||
<string name="full_backup_success">Ekspor data berhasil.</string>
|
||||
<string name="import_data">Impor data</string>
|
||||
<string name="export_full_backup">Ekspor data</string>
|
||||
<string name="import_data_summary">Mendukung ekspor data dan file dari aplikasi Tickmate, HabitBull atau Rewire. Lihat FAQ untuk informasi lebih lanjut.</string>
|
||||
<string name="export_as_csv_summary">Menghasilkan lembar kerja yang dapat dibuka menggunakan aplikasi seperti Microsoft Excel atau OpenOffice Calc. File ini tidak dapat di-impor kembali.</string>
|
||||
<string name="export_full_backup_summary">Menghasilkan file yang berisikan seluruh data. File ini dapat di-impor kembali.</string>
|
||||
<string name="bug_report_failed">Gagal membuat laporan masalah.</string>
|
||||
<string name="generate_bug_report">Membuat laporan masalah</string>
|
||||
<string name="troubleshooting">Troubleshoot</string>
|
||||
<string name="help_translate">Bantu menerjemahkan aplikasi ini</string>
|
||||
<string name="night_mode">Mode malam</string>
|
||||
<string name="use_pure_black">Gunakan warna hitam pada mode malam</string>
|
||||
<string name="pure_black_description">Ganti warna latar abu-abu dengan warna hitam pada mode malam. Mengurangi penggunaan baterai pada layar AMOLED.</string>
|
||||
<string name="interface_preferences">Antar muka</string>
|
||||
<string name="reverse_days">Ubah urutan hari</string>
|
||||
<string name="reverse_days_description">Tampilkan hari dalam urutan terbalik pada layar utama</string>
|
||||
<string name="day">Hari</string>
|
||||
<string name="week">Minggu</string>
|
||||
<string name="month">Bulan</string>
|
||||
<string name="quarter">Kuartal</string>
|
||||
<string name="year">Tahun</string>
|
||||
<string name="total">Total</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">kali dalam</string>
|
||||
<string name="every_x_days">Setiap %d hari</string>
|
||||
<string name="every_x_weeks">Setiap %d minggu</string>
|
||||
<string name="every_x_months">Setiap %d bulan</string>
|
||||
<string name="score">Skor</string>
|
||||
<string name="reminder_sound">Suara pengingat</string>
|
||||
<string name="none">Hening</string>
|
||||
<string name="filter">Saring</string>
|
||||
<string name="hide_completed">Sembunyikan yang selesai</string>
|
||||
<string name="hide_archived">Sembunyikan arsip</string>
|
||||
<string name="sticky_notifications">Jadikan notifikasi lengket</string>
|
||||
<string name="sticky_notifications_description">Cegah pemberitahuan dari sapuan.</string>
|
||||
<string name="repair_database">Perbaiki Basis Data</string>
|
||||
<string name="database_repaired">Basis Data diperbaiki.</string>
|
||||
<string name="uncheck">Hapus centang</string>
|
||||
<string name="toggle">Alih</string>
|
||||
<string name="action">Tindakan</string>
|
||||
<string name="habit">Kebiasaan</string>
|
||||
<string name="sort">Urutkan</string>
|
||||
<string name="manually">Secara manual</string>
|
||||
<string name="by_name">Berdasarkan nama</string>
|
||||
<string name="by_color">Berdasarkan Warna</string>
|
||||
<string name="by_score">Berdasarkan Skor</string>
|
||||
<string name="download">Unduh</string>
|
||||
<string name="export">Ekspor</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,6 +19,160 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">Loop Habit Tracker</string>
|
||||
<string name="main_activity_title">הרגלים</string>
|
||||
<string name="action_settings">הגדרות</string>
|
||||
<string name="edit">עריכה</string>
|
||||
<string name="delete">מחיקה</string>
|
||||
<string name="archive">ארכיון</string>
|
||||
<string name="unarchive">הוצא מארכיון</string>
|
||||
<string name="add_habit">הרגל חדש</string>
|
||||
<string name="color_picker_default_title">שינוי צבע</string>
|
||||
<string name="toast_habit_created">הרגל נוצר</string>
|
||||
<string name="toast_habit_deleted">הרגלים נמחקו</string>
|
||||
<string name="toast_habit_restored">הרגלים שוחזרו</string>
|
||||
<string name="toast_nothing_to_undo">אין מה לבטל</string>
|
||||
<string name="toast_nothing_to_redo">אין מה לבצע שוב</string>
|
||||
<string name="toast_habit_changed">הרגל השתנה</string>
|
||||
<string name="toast_habit_changed_back">הרגל השתנה בחזרה</string>
|
||||
<string name="toast_habit_archived">הרגלים הועברו לארכיון</string>
|
||||
<string name="toast_habit_unarchived">הרגלים הוצאו מארכיון</string>
|
||||
<string name="overview">מבט על</string>
|
||||
<string name="habit_strength">חוזק ההרגל</string>
|
||||
<string name="history">היסטוריה</string>
|
||||
<string name="clear">נקה</string>
|
||||
<string name="description_hint">שאלה (האם ... היום?)</string>
|
||||
<string name="repeat">חזור</string>
|
||||
<string name="times_every">פעמים ב-</string>
|
||||
<string name="days">ימים</string>
|
||||
<string name="reminder">תזכורת</string>
|
||||
<string name="discard">ביטול</string>
|
||||
<string name="save">שמירה</string>
|
||||
<string name="streaks">רצפים</string>
|
||||
<string name="no_habits_found">אין לך הרגלים פעילים</string>
|
||||
<string name="long_press_to_toggle">לחץ והחזק לסימון או ביטול הסימון</string>
|
||||
<string name="reminder_off">כבוי</string>
|
||||
<string name="validation_name_should_not_be_blank">השם אינו יכול להישאר ריק.</string>
|
||||
<string name="validation_number_should_be_positive">מספר חייב להיות חיובי.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">לא ניתן להגדיר יותר מחזרה אחת ביום</string>
|
||||
<string name="create_habit">צור הרגל</string>
|
||||
<string name="edit_habit">ערוך הרגל</string>
|
||||
<string name="check">בוצע</string>
|
||||
<string name="snooze">מאוחר יותר</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">ברוכים הבאים</string>
|
||||
<string name="intro_description_1">Loop Habit Tracker מסייע ליצור ולשמר הרגלים טובים.</string>
|
||||
<string name="intro_title_2">צרו הרגלים חדשים</string>
|
||||
<string name="intro_description_2">כל יום, אחרי ביצוע ההרגל סמנו זאת באפליקציה.</string>
|
||||
<string name="intro_title_3">המשיכו לעשות זאת</string>
|
||||
<string name="intro_description_3">הרגלים שיבוצעו בעקביות לאורך זמן רב יזכו בכוכב מלא.</string>
|
||||
<string name="intro_title_4">מעקב התקדמות</string>
|
||||
<string name="intro_description_4">גרפים מפורטים מציגים כיצד ההרגלים שלך משתפרים לאורך זמן.</string>
|
||||
<string name="interval_15_minutes">15 דקות</string>
|
||||
<string name="interval_30_minutes">30 דקות</string>
|
||||
<string name="interval_1_hour">1 שעה</string>
|
||||
<string name="interval_2_hour">2 שעות</string>
|
||||
<string name="interval_4_hour">4 שעות</string>
|
||||
<string name="interval_8_hour">8 שעות</string>
|
||||
<string name="interval_24_hour">24 שעות</string>
|
||||
<string name="pref_toggle_title">סימון הרגלים בלחיצה קצרה</string>
|
||||
<string name="pref_toggle_description">סמנו יעדים בהקשה קצרה במקום לחיצה ממושכת. נוח יותר, אך יכול להוביל ללחיצות לא מכוונות.</string>
|
||||
<string name="pref_snooze_interval_title">מרווח נדנוד לתזכורות</string>
|
||||
<string name="pref_rate_this_app">דרג/י אותנו ב- Google Play</string>
|
||||
<string name="pref_send_feedback">שליחת משוב למפתחים</string>
|
||||
<string name="pref_view_source_code">צפייה בקוד המקור ב-GitHub</string>
|
||||
<string name="pref_view_app_introduction">צפייה בפרטים אודות האפליקציה</string>
|
||||
<string name="links">קישורים</string>
|
||||
<string name="behavior">התנהגות</string>
|
||||
<string name="name">שם</string>
|
||||
<string name="settings">הגדרות</string>
|
||||
<string name="snooze_interval">זמן בין נדנודים</string>
|
||||
<string name="hint_title">הידעת?</string>
|
||||
<string name="hint_drag">לשינוי סדר הההרגלים, לחצו לחיצה ארוכה על ההרגל וגררו אותו למקום הרצוי.</string>
|
||||
<string name="hint_landscape">ניתן לראות ימים נוספים ע\"י סיבוב המסך לתצוגה רוחבית.</string>
|
||||
<string name="delete_habits">מחיקת הרגלים</string>
|
||||
<string name="delete_habits_message">ההרגלים יימחקו לצמיתות. פעולה זו אינה ניתנת לביטול.</string>
|
||||
<string name="habit_not_found">הרגל נמחק / לא נמצא</string>
|
||||
<string name="weekends">סופי שבוע</string>
|
||||
<string name="any_weekday">ימי חול</string>
|
||||
<string name="any_day">כל יום בשבוע</string>
|
||||
<string name="select_weekdays">בחירת ימים</string>
|
||||
<string name="export_to_csv">ייצוא כקובץ CSV</string>
|
||||
<string name="done_label">בוצע</string>
|
||||
<string name="clear_label">נקה</string>
|
||||
<string name="select_hours">בחר שעות</string>
|
||||
<string name="select_minutes">בחר דקות</string>
|
||||
<string name="about">אודות</string>
|
||||
<string name="translators">מתרגמים</string>
|
||||
<string name="developers">מפתחים</string>
|
||||
<string name="version_n">גרסה %s</string>
|
||||
<string name="frequency">תדירות</string>
|
||||
<string name="checkmark">סימון הרגל</string>
|
||||
<string name="strength">חוזק</string>
|
||||
<string name="best_streaks">רצף שיא</string>
|
||||
<string name="current_streaks">רצף נוכחי</string>
|
||||
<string name="number_of_repetitions">מספר חזרות</string>
|
||||
<string name="last_x_days">%d הימים האחרונים</string>
|
||||
<string name="last_x_weeks">%d השבועות האחרונים</string>
|
||||
<string name="last_x_months">%d החודשים האחרונים</string>
|
||||
<string name="last_x_years">%d השנים האחרונות</string>
|
||||
<string name="all_time">בכל הזמנים</string>
|
||||
<string name="every_day">כל יום</string>
|
||||
<string name="every_week">כל שבוע</string>
|
||||
<string name="two_times_per_week">פעמיים בשבוע</string>
|
||||
<string name="five_times_per_week">5 פעמים בשבוע</string>
|
||||
<string name="custom_frequency">מותאם אישית…</string>
|
||||
<string name="help">עזרה ושאלות נפוצות</string>
|
||||
<string name="could_not_export">ייצוא נתונים נכשל.</string>
|
||||
<string name="could_not_import">ייבוא נתונים נכשל.</string>
|
||||
<string name="file_not_recognized">קובץ לא מזוהה.</string>
|
||||
<string name="habits_imported">הרגלים יובאו בהצלחה.</string>
|
||||
<string name="full_backup_success">גיבוי מלא יוצאה בהצלחה.</string>
|
||||
<string name="import_data">ייבוא נתונים</string>
|
||||
<string name="export_full_backup">ייצוא גיבוי מלא</string>
|
||||
<string name="import_data_summary">תומך בכל הגיבויים שיוצאו ע\"י האפליקציה. כמו גם קבצים שנוצרו ע\"י Tickmate, HabitBull או Rewire. לפרטים נוספים ראו שאלות נפוצות.</string>
|
||||
<string name="export_as_csv_summary">יוצר קבצים שניתן לפתוח על-ידי תוכנות גיליון אלקטרוני כגון Microsoft Excel או OpenOffice. אין אפשרות לייבא את הקובץ בחזרה.</string>
|
||||
<string name="export_full_backup_summary">יוצר קובץ המכיל את כל הנתונים שלך. קובץ זה ניתן לייבא בחזרה.</string>
|
||||
<string name="bug_report_failed">הפקת דוח שגיאות נכשלה.</string>
|
||||
<string name="generate_bug_report">הפקת דוח שגיאות</string>
|
||||
<string name="troubleshooting">פתרון תקלות</string>
|
||||
<string name="help_translate">עזרו לנו לתרגם את האפליקציה</string>
|
||||
<string name="night_mode">מצב לילה</string>
|
||||
<string name="use_pure_black">רקע שחור למצב לילה</string>
|
||||
<string name="pure_black_description">החלפת הרקע האפור במצב לילה לשחור מוחלט. מפחית בזבוז סוללה במכשירים עם תצוגת AMOLED.</string>
|
||||
<string name="interface_preferences">ממשק</string>
|
||||
<string name="reverse_days">הפיכת סדר הימים</string>
|
||||
<string name="reverse_days_description">מציג ימים בסדר הפוך במסך הראשי</string>
|
||||
<string name="day">יום</string>
|
||||
<string name="week">שבוע</string>
|
||||
<string name="month">חודש</string>
|
||||
<string name="quarter">רבעון</string>
|
||||
<string name="year">שנה</string>
|
||||
<string name="total">סה\"כ</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">פעמים ב-</string>
|
||||
<string name="every_x_days">כל %d ימים</string>
|
||||
<string name="every_x_weeks">כל %d שבועות</string>
|
||||
<string name="every_x_months">כל %d חודשים</string>
|
||||
<string name="score">ציון</string>
|
||||
<string name="reminder_sound">צליל תזכורת</string>
|
||||
<string name="none">ללא</string>
|
||||
<string name="filter">סינון</string>
|
||||
<string name="hide_completed">הסתר יעדים שהושלמו</string>
|
||||
<string name="hide_archived">הסתר ארכיון</string>
|
||||
<string name="sticky_notifications">צור תזכורות \"דביקות\"</string>
|
||||
<string name="sticky_notifications_description">מונע החלקת וביטול תזכורות.</string>
|
||||
<string name="repair_database">תיקון מסד נתונים</string>
|
||||
<string name="database_repaired">מאגר נתונים תוקן.</string>
|
||||
<string name="uncheck">ביטול סימון</string>
|
||||
<string name="toggle">הפעלה \ כיבוי</string>
|
||||
<string name="action">פעולה</string>
|
||||
<string name="habit">הרגל</string>
|
||||
<string name="sort">מיון</string>
|
||||
<string name="manually">באופן ידני</string>
|
||||
<string name="by_name">לפי שם</string>
|
||||
<string name="by_color">לפי צבע</string>
|
||||
<string name="by_score">לפי ציון</string>
|
||||
<string name="download">הורדה</string>
|
||||
<string name="export">ייצוא</string>
|
||||
</resources>
|
||||
|
||||
@@ -25,21 +25,21 @@
|
||||
<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="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="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>
|
||||
@@ -49,64 +49,66 @@
|
||||
<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="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">숫자는 0보다 커야합니다.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">하루에 한 번 반복만 가능합니다.</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_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_description_2">매일 습관을 수행하고 앱에 기록하세요.</string>
|
||||
<string name="intro_title_3">계속 반복하세요</string>
|
||||
<string name="intro_description_3">일정 시간동안 유지된 습관은 참잘했어요도장을 얻습니다.</string>
|
||||
<string name="intro_description_3">오랫동안 지속적으로 유지한 습관은 별표를 얻습니다.</string>
|
||||
<string name="intro_title_4">습관을 관리하세요</string>
|
||||
<string name="intro_description_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="interval_24_hour">24시간</string>
|
||||
<string name="pref_toggle_title">짧게 눌러서 전환하기</string>
|
||||
<string name="pref_toggle_description">길게 누르고 있는 대신에 짧은 탭 한 번으로 체크합니다. 더 편리하지만, 실수로 전환될 수도 있습니다.</string>
|
||||
<string name="pref_snooze_interval_title">알림 스누즈 간격</string>
|
||||
<string name="pref_rate_this_app">Google Play에서 평가</string>
|
||||
<string name="pref_send_feedback">계발자에게 피드백</string>
|
||||
<string name="pref_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="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="delete_habits_message">습관을 영구적으로 삭제합니다. 이 작업은 취소할 수 없습니다.</string>
|
||||
<string name="habit_not_found">습관 삭제 / 찾을 수 없음</string>
|
||||
<string name="weekends">주말</string>
|
||||
<string name="any_weekday">주중</string>
|
||||
<string name="any_day">매일</string>
|
||||
<string name="select_weekdays">몇일 선택</string>
|
||||
<string name="export_to_csv">정보 내보내기 (CSV)</string>
|
||||
<string name="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="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="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>
|
||||
@@ -121,37 +123,56 @@
|
||||
<string name="five_times_per_week">일주일에 5번</string>
|
||||
<string name="custom_frequency">직접 정하기</string>
|
||||
<string name="help">도움 & 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="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 Excel 혹은, OpenOffice Calc 같은 스프레드시트 프로그램으로 열 수 있는 CSV파일로 내보냅니다. 다만, CSV파일을 다시 가져올 수는 없습니다.</string>
|
||||
<string name="export_full_backup_summary">모든 데이터를 백업합니다. 나중에 이 파일을 가져올 수 있습니다.</string>
|
||||
<string name="bug_report_failed">오류보고서를 작성하지 못했습니다.</string>
|
||||
<string name="import_data_summary">Tickmate, HabitBull, Rewire에서 생성된 파일도 지원합니다. 더 자세한 설명은 FAQ에 있습니다.</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="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="reverse_days_description">메인 화면의 날짜를 역순으로 보여줍니다.</string>
|
||||
<string name="day">일</string>
|
||||
<string name="week">주</string>
|
||||
<string name="month">월</string>
|
||||
<string name="quarter">4분기-1년</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="every_x_days">%d일 마다</string>
|
||||
<string name="every_x_weeks">%d주 마다</string>
|
||||
<string name="every_x_months">%d개월 마다</string>
|
||||
<string name="score">점수</string>
|
||||
<string name="reminder_sound">알림음</string>
|
||||
<string name="none">무음</string>
|
||||
<string name="filter">필터</string>
|
||||
<string name="hide_completed">완료된 항목 숨기기</string>
|
||||
<string name="hide_archived">보관된 항목 숨기기</string>
|
||||
<string name="sticky_notifications">알림 고정하기</string>
|
||||
<string name="sticky_notifications_description">알림을 스와이프해서 제거하는 것을 방지합니다.</string>
|
||||
<string name="repair_database">데이터베이스 복구</string>
|
||||
<string name="database_repaired">데이터베이스가 복구되었습니다.</string>
|
||||
<string name="uncheck">선택 해제</string>
|
||||
<string name="toggle">전환</string>
|
||||
<string name="action">동작</string>
|
||||
<string name="habit">습관</string>
|
||||
<string name="sort">정렬</string>
|
||||
<string name="manually">수동으로</string>
|
||||
<string name="by_name">이름 순으로</string>
|
||||
<string name="by_color">색상 순으로</string>
|
||||
<string name="by_score">점수 순으로</string>
|
||||
<string name="download">다운로드</string>
|
||||
<string name="export">내보내기</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,35 +19,35 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">Loop Gewoonte tracker</string>
|
||||
<string name="main_activity_title">Gewoontes</string>
|
||||
<string name="action_settings">Instellingen</string>
|
||||
<string name="edit">Wijzig</string>
|
||||
<string name="delete">Verwijder</string>
|
||||
<string name="archive">Archiveer</string>
|
||||
<string name="unarchive">Dearchiveren</string>
|
||||
<string name="add_habit">Voeg gewoonte toe</string>
|
||||
<string name="add_habit">Nieuwe gewoonte</string>
|
||||
<string name="color_picker_default_title">Verander kleur</string>
|
||||
<string name="toast_habit_created">Gewoonte aangemaakt.</string>
|
||||
<string name="toast_habit_deleted">Gewoonte verwijderd.</string>
|
||||
<string name="toast_habit_restored">Gewoonte hersteld.</string>
|
||||
<string name="toast_habit_restored">Gewoontes hersteld</string>
|
||||
<string name="toast_nothing_to_undo">Niets om ongedaan te maken.</string>
|
||||
<string name="toast_nothing_to_redo">Niets om over te doen.</string>
|
||||
<string name="toast_habit_changed">Gewoonte gewijzigd.</string>
|
||||
<string name="toast_habit_changed_back">Wijziging gewoonte ongedaan gemaakt.</string>
|
||||
<string name="toast_habit_archived">Gewoonte gearchiveerd.</string>
|
||||
<string name="toast_habit_unarchived">Gewoonte hersteld uit archief.</string>
|
||||
<string name="toast_habit_archived">Gewoontes gearchiveerd</string>
|
||||
<string name="toast_habit_unarchived">Gewoontes hersteld uit archief</string>
|
||||
<string name="overview">Overzicht</string>
|
||||
<string name="habit_strength">Gewoonte-sterkte</string>
|
||||
<string name="history">Geschiedenis</string>
|
||||
<string name="clear">Wis</string>
|
||||
<string name="description_hint">Vraag (Heb jij vandaag .... ?)</string>
|
||||
<string name="description_hint">Vraag (Heb je vandaag .... ?)</string>
|
||||
<string name="repeat">Herhaal</string>
|
||||
<string name="times_every">keer in </string>
|
||||
<string name="days">dagen</string>
|
||||
<string name="reminder">Herinnering</string>
|
||||
<string name="discard">Verwijder</string>
|
||||
<string name="save">\"Opslaan
|
||||
\"</string>
|
||||
<string name="save">Opslaan</string>
|
||||
<string name="streaks">Reeksen</string>
|
||||
<string name="no_habits_found">Je hebt geen actieve gewoontes</string>
|
||||
<string name="long_press_to_toggle">Houdt ingedrukt om te selecteren of deselecteren</string>
|
||||
@@ -58,6 +58,7 @@
|
||||
<string name="create_habit">Maak gewoonte aan</string>
|
||||
<string name="edit_habit">Wijzig gewoonte</string>
|
||||
<string name="check">Voltooid</string>
|
||||
<string name="snooze">Later</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Welkom</string>
|
||||
<string name="intro_description_1">Loop Habit Tracker helpt je om goede gewoontes te creëren en te onderhouden.</string>
|
||||
@@ -73,22 +74,26 @@
|
||||
<string name="interval_2_hour">2 uur</string>
|
||||
<string name="interval_4_hour">4 uur</string>
|
||||
<string name="interval_8_hour">8 uur</string>
|
||||
<string name="interval_24_hour">24 uur</string>
|
||||
<string name="pref_toggle_title">Wijzig herhalingen door kort indrukken</string>
|
||||
<string name="pref_toggle_description">Handiger, maar kan onbedoelde wijzigingen veroorzaken.</string>
|
||||
<string name="pref_toggle_description">Zet vinkjes met een enkel tikje in plaats van ingedrukt houden. Handiger, maar kan onbedoelde wijzigingen veroorzaken.</string>
|
||||
<string name="pref_snooze_interval_title">Snooze interval voor herinneringen</string>
|
||||
<string name="pref_rate_this_app">Beoordeel deze app in Google Play</string>
|
||||
<string name="pref_send_feedback">Stuur feedback aan de ontwikkelaar</string>
|
||||
<string name="pref_view_source_code">Bekijk de broncode op GitHub</string>
|
||||
<string name="pref_view_app_introduction">Bekijk de app introductie</string>
|
||||
<string name="links">Links</string>
|
||||
<string name="behavior">Gedrag</string>
|
||||
<string name="name">Naam</string>
|
||||
<string name="settings">Instellingen</string>
|
||||
<string name="snooze_interval">Snooze interval</string>
|
||||
<string name="hint_title">Wist je dat?</string>
|
||||
<string name="hint_drag">Om de rijen te ordenen houdt de gewoonte ingedrukt en sleep het naar de gewenste plek.</string>
|
||||
<string name="hint_landscape">Je kunt meer dagen zien door de telefoon in landschapmodus te zetten.</string>
|
||||
<string name="hint_drag">Om de rijen te ordenen, houdt de gewoonte ingedrukt en sleep het naar de gewenste plek.</string>
|
||||
<string name="hint_landscape">Je kunt meer dagen zien door de telefoon in horizontale modus te zetten.</string>
|
||||
<string name="delete_habits">Verwijder gewoontes</string>
|
||||
<string name="delete_habits_message">De gewoontes zullen permanent verwijderd worden. Deze actie kan niet ongedaan gemaakt worden.</string>
|
||||
<string name="weekends">In het weekend</string>
|
||||
<string name="habit_not_found">Gewoonte verwijderd / niet gevonden</string>
|
||||
<string name="weekends">Weekends</string>
|
||||
<string name="any_weekday">Maandag tot vrijdag</string>
|
||||
<string name="any_day">Elke dag van de week</string>
|
||||
<string name="select_weekdays">Selecteer dagen</string>
|
||||
@@ -103,7 +108,7 @@
|
||||
<string name="version_n">Versie %s</string>
|
||||
<string name="frequency">Frequentie</string>
|
||||
<string name="checkmark">Vinkje</string>
|
||||
<string name="strength">Sterkte</string>
|
||||
<string name="strength">Kracht</string>
|
||||
<string name="best_streaks">Beste reeksen</string>
|
||||
<string name="current_streaks">Huidige reeks</string>
|
||||
<string name="number_of_repetitions">Aantal herhalingen</string>
|
||||
@@ -116,7 +121,7 @@
|
||||
<string name="every_week">Iedere week</string>
|
||||
<string name="two_times_per_week">2 keer per week</string>
|
||||
<string name="five_times_per_week">5 keer per week</string>
|
||||
<string name="custom_frequency">Aangepast</string>
|
||||
<string name="custom_frequency">Aangepast …</string>
|
||||
<string name="help">Hulp en veelgestelde vragen</string>
|
||||
<string name="could_not_export">Het exporteren van de data is mislukt.</string>
|
||||
<string name="could_not_import">Importeren van data mislukt.</string>
|
||||
@@ -135,18 +140,39 @@
|
||||
<string name="night_mode">Nachtmodus</string>
|
||||
<string name="use_pure_black">Gebruik puur zwart in nachtmodus</string>
|
||||
<string name="pure_black_description">Vervangt grijze achtergronden door puur zwart in nachtmodus. Vermindert batterijgebruik in telefoons met AMOLED scherm.</string>
|
||||
<string name="interface_preferences">Uiterlijk</string>
|
||||
<string name="interface_preferences">Interface</string>
|
||||
<string name="reverse_days">Omgekeerde volgorde van dagen</string>
|
||||
<string name="reverse_days_description">Toon dagen in omgekeerde volgorde op het hoofdscherm</string>
|
||||
<string name="day">Dag</string>
|
||||
<string name="week">Week</string>
|
||||
<string name="month">Maand</string>
|
||||
<string name="quarter">Kwartaal</string>
|
||||
<string name="year">Jaar</string>
|
||||
<string name="total">Totaal</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">keer per</string>
|
||||
<string name="every_x_days">Iedere %d dagen</string>
|
||||
<string name="every_x_weeks">Iedere %d weken</string>
|
||||
<string name="every_x_months">Iedere %d maanden</string>
|
||||
<string name="score">Score</string>
|
||||
<string name="reminder_sound">Herinneringsgeluid</string>
|
||||
<string name="none">Stil</string>
|
||||
<string name="filter">Filteren</string>
|
||||
<string name="hide_completed">Verberg voltooide</string>
|
||||
<string name="hide_archived">Verberg gearchiveerde</string>
|
||||
<string name="sticky_notifications">Maak meldingen persistent</string>
|
||||
<string name="sticky_notifications_description">Voorkom dat meldingen weggehaald kunnen worden.</string>
|
||||
<string name="repair_database">Database repareren</string>
|
||||
<string name="database_repaired">Database gerepareerd.</string>
|
||||
<string name="uncheck">Deselecteren</string>
|
||||
<string name="toggle">Omkeren</string>
|
||||
<string name="action">Actie</string>
|
||||
<string name="habit">Gewoonte</string>
|
||||
<string name="sort">Sorteren</string>
|
||||
<string name="manually">Handmatig</string>
|
||||
<string name="by_name">Bij naam</string>
|
||||
<string name="by_color">Bij kleur</string>
|
||||
<string name="by_score">Bij score</string>
|
||||
<string name="download">Downloaden</string>
|
||||
<string name="export">Exporteren</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,6 +19,160 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">Loop Vaneoversikt</string>
|
||||
<string name="main_activity_title">Vaner</string>
|
||||
<string name="action_settings">Innstillinger</string>
|
||||
<string name="edit">Redigér</string>
|
||||
<string name="delete">Slett</string>
|
||||
<string name="archive">Arkivér</string>
|
||||
<string name="unarchive">Uarkivér</string>
|
||||
<string name="add_habit">Legg til vane</string>
|
||||
<string name="color_picker_default_title">Endr farge</string>
|
||||
<string name="toast_habit_created">Vane laget</string>
|
||||
<string name="toast_habit_deleted">Vaner slettet</string>
|
||||
<string name="toast_habit_restored">Vaner gjenopprettet</string>
|
||||
<string name="toast_nothing_to_undo">Ingenting å angre</string>
|
||||
<string name="toast_nothing_to_redo">Ingenting å ta tilbake</string>
|
||||
<string name="toast_habit_changed">Vane endret</string>
|
||||
<string name="toast_habit_changed_back">Vane tilbakeendret</string>
|
||||
<string name="toast_habit_archived">Vaner arkivert</string>
|
||||
<string name="toast_habit_unarchived">Vaner uarkivert</string>
|
||||
<string name="overview">Oversikt</string>
|
||||
<string name="habit_strength">Vanestyrke</string>
|
||||
<string name="history">Historie</string>
|
||||
<string name="clear">Fjern</string>
|
||||
<string name="description_hint">Spørsmål (Gjorde du … i dag?)</string>
|
||||
<string name="repeat">Gjenta</string>
|
||||
<string name="times_every">ganger på</string>
|
||||
<string name="days">dager</string>
|
||||
<string name="reminder">Påminnelse</string>
|
||||
<string name="discard">Kast</string>
|
||||
<string name="save">Lagr</string>
|
||||
<string name="streaks">Gjentakelser</string>
|
||||
<string name="no_habits_found">Du har ingen aktive vaner</string>
|
||||
<string name="long_press_to_toggle">Trykk og hold for å sjekke eller usjekke</string>
|
||||
<string name="reminder_off">Av</string>
|
||||
<string name="validation_name_should_not_be_blank">Navnet kan ikke stå tomt.</string>
|
||||
<string name="validation_number_should_be_positive">Nummeret må være positivt.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">Du kan maks ha én repetisjon om dagen</string>
|
||||
<string name="create_habit">Lag vane</string>
|
||||
<string name="edit_habit">Redigér vane</string>
|
||||
<string name="check">Sjekk</string>
|
||||
<string name="snooze">Senere</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Velkommen</string>
|
||||
<string name="intro_description_1">Loop Vaneoversikt hjelper deg med å lage og beholde gode vaner.</string>
|
||||
<string name="intro_title_2">Lag noen nye vaner</string>
|
||||
<string name="intro_description_2">Hver dag, etter du utfører vanen din, sett en hake på appen.</string>
|
||||
<string name="intro_title_3">Fortsett med å gjøre det</string>
|
||||
<string name="intro_description_3">Vaner utført konsekvent over lang tid vil få en hel stjerne.</string>
|
||||
<string name="intro_title_4">Hold oversikt over fremgangen din</string>
|
||||
<string name="intro_description_4">Detaljerte grafer viser deg hvordan vanene dine forbedrer seg 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="interval_24_hour">1 døgn</string>
|
||||
<string name="pref_toggle_title">Veksl med enkelttrykk</string>
|
||||
<string name="pref_toggle_description">Sett på haker med et enkelttrykk i stedet for å tykke og holde. Mer praktisk, men kan forårsake utilsiktede vekslinger.</string>
|
||||
<string name="pref_snooze_interval_title">Snooze-intervall på påminnelser</string>
|
||||
<string name="pref_rate_this_app">Vurdér denne appen på Google Play</string>
|
||||
<string name="pref_send_feedback">Send tilbakemelding til utviklerne</string>
|
||||
<string name="pref_view_source_code">Vis kildekode på GitHub</string>
|
||||
<string name="pref_view_app_introduction">Se på appintroduksjon</string>
|
||||
<string name="links">Lenker</string>
|
||||
<string name="behavior">Oppførsel</string>
|
||||
<string name="name">Navn</string>
|
||||
<string name="settings">Innstillinger</string>
|
||||
<string name="snooze_interval">Snooze-intervall</string>
|
||||
<string name="hint_title">Visste du at?</string>
|
||||
<string name="hint_drag">For å sortere innleggene, trykk og hold på navnet til vanen, deretter dra den til det korrekte stedet.</string>
|
||||
<string name="hint_landscape">Du kan se flere dager ved å sette telefonen din i landskapsmodus.</string>
|
||||
<string name="delete_habits">Slett vaner</string>
|
||||
<string name="delete_habits_message">Vanene vil bli slettet permanent. Denne handlingen kan ikke angres.</string>
|
||||
<string name="habit_not_found">Vane slettet / ikke funnet</string>
|
||||
<string name="weekends">Helger</string>
|
||||
<string name="any_weekday">Hverdager</string>
|
||||
<string name="any_day">Hvilken som helst dag i uken</string>
|
||||
<string name="select_weekdays">Velg dager</string>
|
||||
<string name="export_to_csv">Eksportér som CSV</string>
|
||||
<string name="done_label">Ferdig</string>
|
||||
<string name="clear_label">Fjern</string>
|
||||
<string name="select_hours">Velg timer</string>
|
||||
<string name="select_minutes">Velg minutter</string>
|
||||
<string name="about">Om</string>
|
||||
<string name="translators">Translatører</string>
|
||||
<string name="developers">Utviklere</string>
|
||||
<string name="version_n">Versjon %s</string>
|
||||
<string name="frequency">Hyppighet</string>
|
||||
<string name="checkmark">Hake</string>
|
||||
<string name="strength">Styrke</string>
|
||||
<string name="best_streaks">Beste gjentakelser</string>
|
||||
<string name="current_streaks">Nåværende gjentakelse</string>
|
||||
<string name="number_of_repetitions">Repetisjonsantall</string>
|
||||
<string name="last_x_days">Siste %d dager</string>
|
||||
<string name="last_x_weeks">Siste %d uker</string>
|
||||
<string name="last_x_months">Siste %d måneder</string>
|
||||
<string name="last_x_years">Siste %d år</string>
|
||||
<string name="all_time">Alltid</string>
|
||||
<string name="every_day">Hver dag</string>
|
||||
<string name="every_week">Hver uke</string>
|
||||
<string name="two_times_per_week">2 ganger i uken</string>
|
||||
<string name="five_times_per_week">5 ganger i uken</string>
|
||||
<string name="custom_frequency">Tilpasset …</string>
|
||||
<string name="help">Hjelp og FAQ</string>
|
||||
<string name="could_not_export">Mislyktes i å eksportere data.</string>
|
||||
<string name="could_not_import">Mislyktes i å importere data.</string>
|
||||
<string name="file_not_recognized">Fil ikke gjenkjent.</string>
|
||||
<string name="habits_imported">Vaner suksessfullt importert.</string>
|
||||
<string name="full_backup_success">Hel sikkerhetskopi suksessfullt eksportert.</string>
|
||||
<string name="import_data">Importér data</string>
|
||||
<string name="export_full_backup">Eksportér hel sikkerhetskopi</string>
|
||||
<string name="import_data_summary">Støtter hele sikkerhetskopier eksportert av denne appen, i tillegg til filer generert av Tickmate, HabitBull, og Rewire. Sjekk ut FAQ for mer informasjon.</string>
|
||||
<string name="export_as_csv_summary">Genererer filer som kan bli åpnet av regnearkprogrammer som Microsoft Excel og OpenOffice Calc. Disse filene kan ikke importeres tilbake.</string>
|
||||
<string name="export_full_backup_summary">Genererer en fil som inneholder all dataen din. Denne filen kan ikke importeres tilbake.</string>
|
||||
<string name="bug_report_failed">Mislyktes i å generere feilrapport.</string>
|
||||
<string name="generate_bug_report">Generér feilrapport</string>
|
||||
<string name="troubleshooting">Feilsøkning</string>
|
||||
<string name="help_translate">Hjelp med å oversette denne appen</string>
|
||||
<string name="night_mode">Nattmodus</string>
|
||||
<string name="use_pure_black">Bruk batterisparing i nattmodus</string>
|
||||
<string name="pure_black_description">Bytter ut grå bakgunner med helt svarte i nattmodus. Reduserer betteribruk hos telefoner med AMOLED-skjerm.</string>
|
||||
<string name="interface_preferences">Grensesnitt</string>
|
||||
<string name="reverse_days">Omvendt dagsrekkefølge</string>
|
||||
<string name="reverse_days_description">Vis dager i omvendt rekkefølge på hovedmenyen</string>
|
||||
<string name="day">Dag</string>
|
||||
<string name="week">Uke</string>
|
||||
<string name="month">Måned</string>
|
||||
<string name="quarter">Kvarter</string>
|
||||
<string name="year">År</string>
|
||||
<string name="total">Totalt</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">gang på</string>
|
||||
<string name="every_x_days">Hver %d. dag</string>
|
||||
<string name="every_x_weeks">Hver %d. uke</string>
|
||||
<string name="every_x_months">Hver %d. måned</string>
|
||||
<string name="score">Poengsum</string>
|
||||
<string name="reminder_sound">Påminnelseslyd</string>
|
||||
<string name="none">Ingen</string>
|
||||
<string name="filter">Filtrér</string>
|
||||
<string name="hide_completed">Gjem fullførte</string>
|
||||
<string name="hide_archived">Gjem arkiverte</string>
|
||||
<string name="sticky_notifications">Gjør varslinger klebrige</string>
|
||||
<string name="sticky_notifications_description">Forhindrer varslinger fra å bli sveipet vekk.</string>
|
||||
<string name="repair_database">Reparér database</string>
|
||||
<string name="database_repaired">Database reparert.</string>
|
||||
<string name="uncheck">Usjekk</string>
|
||||
<string name="toggle">Veksl</string>
|
||||
<string name="action">Handling</string>
|
||||
<string name="habit">Vane</string>
|
||||
<string name="sort">Sortér</string>
|
||||
<string name="manually">Manuelt</string>
|
||||
<string name="by_name">Etter navn</string>
|
||||
<string name="by_color">Etter farge</string>
|
||||
<string name="by_score">Etter poengsum</string>
|
||||
<string name="download">Last ned</string>
|
||||
<string name="export">Eksportér</string>
|
||||
</resources>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<string name="clear">Очистить</string>
|
||||
<string name="description_hint">Вопрос (пример: \"Делали ли вы сегодня зарядку?\")</string>
|
||||
<string name="repeat">Повторять</string>
|
||||
<string name="times_every">раза за</string>
|
||||
<string name="times_every">раз в</string>
|
||||
<string name="days">дней</string>
|
||||
<string name="reminder">Напоминание</string>
|
||||
<string name="discard">Отменить</string>
|
||||
|
||||
@@ -19,79 +19,82 @@
|
||||
~ 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">Vanor</string>
|
||||
<string name="action_settings">Inställningar</string>
|
||||
<string name="edit">Redigera</string>
|
||||
<string name="delete">Ta bort</string>
|
||||
<string name="archive">Arkivera</string>
|
||||
<string name="unarchive">Avarkivera</string>
|
||||
<string name="unarchive">Ångra arkivering</string>
|
||||
<string name="add_habit">Lägg till vana</string>
|
||||
<string name="color_picker_default_title">Byt färg</string>
|
||||
<string name="toast_habit_created">Vana skapad</string>
|
||||
<string name="toast_habit_deleted">Vana borttagen</string>
|
||||
<string name="toast_habit_restored">Vana återställd</string>
|
||||
<string name="toast_habit_deleted">Vanor borttagna</string>
|
||||
<string name="toast_habit_restored">Vanor återställda</string>
|
||||
<string name="toast_nothing_to_undo">Inget att ångra</string>
|
||||
<string name="toast_nothing_to_redo">Inget att göra om</string>
|
||||
<string name="toast_nothing_to_redo">Inget att ångra</string>
|
||||
<string name="toast_habit_changed">Vana ändrad</string>
|
||||
<string name="toast_habit_changed_back">Vana ändrad tillbaka</string>
|
||||
<string name="toast_habit_changed_back">Vana ändrad</string>
|
||||
<string name="toast_habit_archived">Vanor arkiverade</string>
|
||||
<string name="toast_habit_unarchived">Vanor avakriverade</string>
|
||||
<string name="toast_habit_unarchived">Vanor återställda</string>
|
||||
<string name="overview">Översikt</string>
|
||||
<string name="habit_strength">Vanestyrka</string>
|
||||
<string name="history">Historik</string>
|
||||
<string name="clear">Rensa</string>
|
||||
<string name="description_hint">Fråga (Har du ... idag?)</string>
|
||||
<string name="repeat">Upprepa</string>
|
||||
<string name="times_every">gånger under</string>
|
||||
<string name="days">dag</string>
|
||||
<string name="times_every">gånger i</string>
|
||||
<string name="days">dagar</string>
|
||||
<string name="reminder">Påminnelse</string>
|
||||
<string name="discard">Avbryt</string>
|
||||
<string name="save">Spara</string>
|
||||
<string name="streaks">Framgångar</string>
|
||||
<string name="streaks">Streaks</string>
|
||||
<string name="no_habits_found">Du har inga aktiva vanor</string>
|
||||
<string name="long_press_to_toggle">Tryck och håll in för att markera och avmarkera</string>
|
||||
<string name="long_press_to_toggle">Tryck-och-håll för att markera eller avmarkera</string>
|
||||
<string name="reminder_off">Av</string>
|
||||
<string name="validation_name_should_not_be_blank">Namn får inte vara blank.</string>
|
||||
<string name="validation_number_should_be_positive">Nummer måste vara positiv.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">Du kan ha max en upprepning per dag</string>
|
||||
<string name="validation_name_should_not_be_blank">Namn får inte vara tomt.</string>
|
||||
<string name="validation_number_should_be_positive">Talet måste vara positivt.</string>
|
||||
<string name="validation_at_most_one_rep_per_day">Du kan ha högst en repetition per dag</string>
|
||||
<string name="create_habit">Skapa vana</string>
|
||||
<string name="edit_habit">Redigera vana</string>
|
||||
<string name="check">Markera</string>
|
||||
<string name="snooze">Senare</string>
|
||||
<!-- App introduction -->
|
||||
<string name="intro_title_1">Välkommen</string>
|
||||
<string name="intro_description_1">Loop Habit Tracker Hjälper dig att skapa och underhålla bra vanor.</string>
|
||||
<string name="intro_description_1">Loop Habit Tracker hjälper dig att skapa och bibehålla goda vanor.</string>
|
||||
<string name="intro_title_2">Skapa några nya vanor</string>
|
||||
<string name="intro_description_2">Varje dag, efter att du utfört dina vanor, lägg till en markering i appen.</string>
|
||||
<string name="intro_title_3">Fortsätt göra det</string>
|
||||
<string name="intro_description_3">Vanor som utförs konstant över en lång period kommer att tjäna dig en full stjärna.</string>
|
||||
<string name="intro_description_2">Efter varje dag när du utfört din vana så markerar du den i appen.</string>
|
||||
<string name="intro_title_3">Fortsätt att göra det</string>
|
||||
<string name="intro_description_3">Vanor som du utför konsekvent över en lång period ger dig en stjärna.</string>
|
||||
<string name="intro_title_4">Följ dina framsteg</string>
|
||||
<string name="intro_description_4">Detaljerade grafer visar dig hur dina vanor har utvecklats över tid.</string>
|
||||
<string name="intro_description_4">Detaljerade grafer visar dig hur dina vanor förbättras över tid.</string>
|
||||
<string name="interval_15_minutes">15 minuter</string>
|
||||
<string name="interval_30_minutes">30 minuter</string>
|
||||
<string name="interval_1_hour">1 timme</string>
|
||||
<string name="interval_2_hour">2 timmar</string>
|
||||
<string name="interval_4_hour">4 timmar</string>
|
||||
<string name="interval_8_hour">8 timmar</string>
|
||||
<string name="pref_toggle_title">Aktivera repetitioner med kort tryckning</string>
|
||||
<string name="pref_toggle_description">Mer bekvämt, men kan orsaka oavsiktliga aktiveringar. </string>
|
||||
<string name="pref_snooze_interval_title">Snooza intervall på påminnelsen</string>
|
||||
<string name="pref_rate_this_app">Betygsätt denna app på Google Play</string>
|
||||
<string name="pref_send_feedback">Skicka feedback till utvecklaren</string>
|
||||
<string name="pref_view_source_code">Visa källkod på Github</string>
|
||||
<string name="pref_view_app_introduction">Visa appintroduktion</string>
|
||||
<string name="interval_24_hour">24 timmar</string>
|
||||
<string name="pref_toggle_title">Växla med snabb tryckning</string>
|
||||
<string name="pref_toggle_description">Markera genom att trycka snabbt istället för att hålla ner. Mer bekvämt, men kan orsaka oavsiktliga aktiveringar.</string>
|
||||
<string name="pref_snooze_interval_title">Standard tid på snooze</string>
|
||||
<string name="pref_rate_this_app">Betygsätt oss på Google Play</string>
|
||||
<string name="pref_send_feedback">Skicka feedback till utvecklarna</string>
|
||||
<string name="pref_view_source_code">Visa källkod på GitHub</string>
|
||||
<string name="pref_view_app_introduction">Visa introduktion till appen</string>
|
||||
<string name="links">Länkar</string>
|
||||
<string name="behavior">Beteende</string>
|
||||
<string name="name">Namn</string>
|
||||
<string name="settings">Inställningar</string>
|
||||
<string name="snooze_interval">Snooze intervall</string>
|
||||
<string name="hint_title">Visste du? </string>
|
||||
<string name="hint_drag">För att arrangera inlägg, tryck och håll in på namnet av inlägget, dra den sedan till rätt plats.</string>
|
||||
<string name="hint_landscape">Du kan se fler dagar genom att hålla telefon i landskapsläge.</string>
|
||||
<string name="snooze_interval">Intervall snooze</string>
|
||||
<string name="hint_title">Visste du att?</string>
|
||||
<string name="hint_drag">För att flytta på poster - tryck och håll nere på den vana du vill flytta, sedan flytta den till önskad plats.</string>
|
||||
<string name="hint_landscape">Du kan se mer dagar genom att hålla telefonen i landskapsläge.</string>
|
||||
<string name="delete_habits">Ta bort vanor</string>
|
||||
<string name="delete_habits_message">Vanorna kommer att tas bort permanent. Denna åtgärd kan inte ångras.</string>
|
||||
<string name="delete_habits_message">Vanorna kommer att tas bort permanent. Du kan inte ångra detta.</string>
|
||||
<string name="habit_not_found">Vana borttagen / hittades inte</string>
|
||||
<string name="weekends">Helger</string>
|
||||
<string name="any_weekday">Veckodagar</string>
|
||||
<string name="any_weekday">Måndag till fredag</string>
|
||||
<string name="any_day">Vilken dag som helst</string>
|
||||
<string name="select_weekdays">Välj dagar</string>
|
||||
<string name="export_to_csv">Exportera data (CSV)</string>
|
||||
@@ -102,11 +105,12 @@
|
||||
<string name="about">Om</string>
|
||||
<string name="translators">Översättare</string>
|
||||
<string name="developers">Utvecklare</string>
|
||||
<string name="version_n">Version %s</string>
|
||||
<string name="frequency">Frekvens</string>
|
||||
<string name="checkmark">Check</string>
|
||||
<string name="checkmark">Avklarat/ej avklarat</string>
|
||||
<string name="strength">Styrka</string>
|
||||
<string name="best_streaks">Bästa framgångar</string>
|
||||
<string name="current_streaks">Nuvarande framgång</string>
|
||||
<string name="best_streaks">Bästa streak</string>
|
||||
<string name="current_streaks">Nuvarande streak</string>
|
||||
<string name="number_of_repetitions">Antal repetitioner</string>
|
||||
<string name="last_x_days">Sista %d dagarna</string>
|
||||
<string name="last_x_weeks">Sista %d veckorna</string>
|
||||
@@ -119,18 +123,56 @@
|
||||
<string name="five_times_per_week">5 gånger per vecka</string>
|
||||
<string name="custom_frequency">Anpassa ...</string>
|
||||
<string name="help">Hjälp och FAQ</string>
|
||||
<string name="could_not_export">Misslyckades med att exportera data.</string>
|
||||
<string name="could_not_import">Misslyckades med att importera data.</string>
|
||||
<string name="file_not_recognized">Fil inte igenkänd.</string>
|
||||
<string name="habits_imported">Vanor importerade.</string>
|
||||
<string name="full_backup_success">Backup har exporterats.</string>
|
||||
<string name="could_not_export">Det gick inte att exportera.</string>
|
||||
<string name="could_not_import">Det gick inte att importera.</string>
|
||||
<string name="file_not_recognized">Kunde inte känna igen filen.</string>
|
||||
<string name="habits_imported">Import av dina vanor lyckades.</string>
|
||||
<string name="full_backup_success">Fullständig backup har exporterats.</string>
|
||||
<string name="import_data">Importera data</string>
|
||||
<string name="export_full_backup">Exportera backup</string>
|
||||
<string name="import_data_summary">Stöder backuper exporterade av den här appen, så väl filer genererade av Tickmate, Habitbull eller Rewire. Läs FAQ för mer information.</string>
|
||||
<string name="export_as_csv_summary">Genererade filer kan öppnas av mjukvara som Microsoft Excel eller Openoffice Calc. Denna filen kan inte importeras tillbaka.</string>
|
||||
<string name="export_full_backup_summary">Genererar en fil som innehåller all din data. Den här filen kan importeras tillbaka.</string>
|
||||
<string name="bug_report_failed">Misslyckades med att generera bugrapport. </string>
|
||||
<string name="generate_bug_report">Generera bugrapport</string>
|
||||
<string name="import_data_summary">Appen har stöd att importera data från denna app, men även backuper från Tickmate, Habitbull eller Rewire. Läs FAQ om du vill meta mer.</string>
|
||||
<string name="export_as_csv_summary">Filerna genererade kan öppnas i Microsoft Excel eller OpenOffice Calc. Däremot kan denna fil inte importeras tillbaka till appen.</string>
|
||||
<string name="export_full_backup_summary">Generera en fil som innehåller all din data. Denna fil kan importas tillbaka till appen.</string>
|
||||
<string name="bug_report_failed">Det gick inte att generera felrapport.</string>
|
||||
<string name="generate_bug_report">Generera felrapport</string>
|
||||
<string name="troubleshooting">Felsökning</string>
|
||||
<string name="help_translate">Hjälp till att översätta appen</string>
|
||||
<string name="night_mode">Nattläge</string>
|
||||
<string name="use_pure_black">Använd svart färg i nattläge</string>
|
||||
<string name="pure_black_description">Ersätter gråa bakgrunder med svart färg i nattläge. Reducerar batterianvändningen för telefoner med AMOLED-skärm.</string>
|
||||
<string name="interface_preferences">Gränssnitt</string>
|
||||
<string name="reverse_days">Omvänd ordning på dagar</string>
|
||||
<string name="reverse_days_description">Visar dagar i omvänd ordning i appen</string>
|
||||
<string name="day">Dag</string>
|
||||
<string name="week">Vecka</string>
|
||||
<string name="month">Månad</string>
|
||||
<string name="quarter">Kvartal</string>
|
||||
<string name="year">År</string>
|
||||
<string name="total">Totalt</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">gånger var</string>
|
||||
<string name="every_x_days">Var %d:e dag</string>
|
||||
<string name="every_x_weeks">Var %d:e vecka</string>
|
||||
<string name="every_x_months">Var %d:e månad</string>
|
||||
<string name="score">Poäng</string>
|
||||
<string name="reminder_sound">Påminnelseljud</string>
|
||||
<string name="none">Inget</string>
|
||||
<string name="filter">Filtrera</string>
|
||||
<string name="hide_completed">Dölj slutförda</string>
|
||||
<string name="hide_archived">Dölj arkiverade</string>
|
||||
<string name="sticky_notifications">Gör notifikationer permanenta</string>
|
||||
<string name="sticky_notifications_description">Förhindrar att notifikationer stängs.</string>
|
||||
<string name="repair_database">Reparera databas</string>
|
||||
<string name="database_repaired">Databasen reparerad.</string>
|
||||
<string name="uncheck">Avmarkera</string>
|
||||
<string name="toggle">Växla</string>
|
||||
<string name="action">Åtgärd</string>
|
||||
<string name="habit">Vana</string>
|
||||
<string name="sort">Sortera</string>
|
||||
<string name="manually">Manuellt</string>
|
||||
<string name="by_name">Efter namn</string>
|
||||
<string name="by_color">Efter färg</string>
|
||||
<string name="by_score">Efter poäng</string>
|
||||
<string name="download">Ladda ner</string>
|
||||
<string name="export">Exportera</string>
|
||||
</resources>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
~ with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<string name="app_name">Loop Alışkanlık Takip</string>
|
||||
<string name="app_name">Döngü Alışkanlık Takibi</string>
|
||||
<string name="main_activity_title">Alışkanlıklar</string>
|
||||
<string name="action_settings">Ayarlar</string>
|
||||
<string name="edit">Düzenle</string>
|
||||
@@ -30,11 +30,11 @@
|
||||
<string name="color_picker_default_title">Renk Değiştir</string>
|
||||
<string name="toast_habit_created">Alışkanlık oluşturuldu.</string>
|
||||
<string name="toast_habit_deleted">Alışkanlık silindi.</string>
|
||||
<string name="toast_habit_restored">Alışkanlık</string>
|
||||
<string name="toast_nothing_to_undo">Geri alınacak birşey yok.</string>
|
||||
<string name="toast_nothing_to_redo">Tekrar yapılacak birşey yok.</string>
|
||||
<string name="toast_habit_changed">Alışkanlık değişti.</string>
|
||||
<string name="toast_habit_changed_back">Alışkanlık eski haline getirildi.</string>
|
||||
<string name="toast_habit_restored">Alışkanlıklar geri getirildi</string>
|
||||
<string name="toast_nothing_to_undo">Geri alınacak bir şey yok</string>
|
||||
<string name="toast_nothing_to_redo">Tekrar edilecek bir şey yok</string>
|
||||
<string name="toast_habit_changed">Alışkanlık değişti</string>
|
||||
<string name="toast_habit_changed_back">Alışkanlık eski haline getirildi</string>
|
||||
<string name="toast_habit_archived">Alışkanlık arşivlendi.</string>
|
||||
<string name="toast_habit_unarchived">Alışkanlık arşivden çıkarıldı.</string>
|
||||
<string name="overview">Genel bakış</string>
|
||||
@@ -92,6 +92,7 @@
|
||||
<string name="hint_landscape">Cihazını yatay tutarak daha fazla gün görebilirsin.</string>
|
||||
<string name="delete_habits">Alışkanlıkları Sil</string>
|
||||
<string name="delete_habits_message">Alışkanlıklar kalıcı olarak silinecek. Bu eylem geri alınamaz.</string>
|
||||
<string name="habit_not_found">Alışkanlık silinmiş yada bulunamadı</string>
|
||||
<string name="weekends">Hafta sonları</string>
|
||||
<string name="any_weekday">Pazartesinden Cumaya</string>
|
||||
<string name="any_day">Haftanın herhangi bir günü</string>
|
||||
@@ -147,6 +148,7 @@
|
||||
<string name="month">Ay</string>
|
||||
<string name="quarter">3 Ay</string>
|
||||
<string name="year">Yıl</string>
|
||||
<string name="total">Tümü</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">kez</string>
|
||||
<string name="every_x_days">Her %d gün</string>
|
||||
@@ -155,11 +157,15 @@
|
||||
<string name="score">Puan</string>
|
||||
<string name="reminder_sound">Hatırlatma sesi</string>
|
||||
<string name="none">Sessiz</string>
|
||||
<string name="filter">Filtre</string>
|
||||
<string name="hide_completed">Tamamlananları gizle</string>
|
||||
<string name="hide_archived">Arşivlenenleri gizle</string>
|
||||
<string name="sticky_notifications">Bildirimleri kalıcı yap</string>
|
||||
<string name="sticky_notifications_description">Bildirimin kaydırılarak götürülmesini engelle.</string>
|
||||
<string name="repair_database">Verıtabanını onar</string>
|
||||
<string name="database_repaired">Verıtabanı onarıldı.</string>
|
||||
<string name="uncheck">Yapmadım</string>
|
||||
<string name="toggle">Değiştir</string>
|
||||
<string name="action">Eylem</string>
|
||||
<string name="habit">Alışkanlık</string>
|
||||
<string name="sort">Sırala</string>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<string name="edit">Змінити</string>
|
||||
<string name="delete">Вилучити</string>
|
||||
<string name="archive">Архівувати</string>
|
||||
<string name="unarchive">Повернути з архіву</string>
|
||||
<string name="unarchive">Розархівувати</string>
|
||||
<string name="add_habit">Додати звичку</string>
|
||||
<string name="color_picker_default_title">Змінити колір</string>
|
||||
<string name="toast_habit_created">Звичку створено</string>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<string name="times_every">次每</string>
|
||||
<string name="days">日</string>
|
||||
<string name="reminder">提醒</string>
|
||||
<string name="discard">放棄</string>
|
||||
<string name="discard">取消</string>
|
||||
<string name="save">保存</string>
|
||||
<string name="streaks">記錄</string>
|
||||
<string name="no_habits_found">你還沒有任何習慣</string>
|
||||
@@ -74,6 +74,7 @@
|
||||
<string name="interval_2_hour">2小時</string>
|
||||
<string name="interval_4_hour">4小時</string>
|
||||
<string name="interval_8_hour">8小時</string>
|
||||
<string name="interval_24_hour">24 小時</string>
|
||||
<string name="pref_toggle_title">短按來記錄習慣</string>
|
||||
<string name="pref_toggle_description">但有可能造成意外記錄</string>
|
||||
<string name="pref_snooze_interval_title">提醒延遲間隔</string>
|
||||
@@ -91,6 +92,7 @@
|
||||
<string name="hint_landscape">把手機橫放可以看到更多天數</string>
|
||||
<string name="delete_habits">刪除</string>
|
||||
<string name="delete_habits_message">習慣會被永久刪除,而且該操作不可恢復</string>
|
||||
<string name="habit_not_found">習慣已刪除/找不到</string>
|
||||
<string name="weekends">周末</string>
|
||||
<string name="any_weekday">工作日</string>
|
||||
<string name="any_day">每天</string>
|
||||
@@ -120,7 +122,7 @@
|
||||
<string name="two_times_per_week">每週兩次</string>
|
||||
<string name="five_times_per_week">每週五次</string>
|
||||
<string name="custom_frequency">自訂週期</string>
|
||||
<string name="help">幫助&amp;常見問題</string>
|
||||
<string name="help">幫助& 常見問題</string>
|
||||
<string name="could_not_export">輸出資料失敗</string>
|
||||
<string name="could_not_import">輸入資料失敗</string>
|
||||
<string name="file_not_recognized">無法辨識</string>
|
||||
@@ -146,6 +148,7 @@
|
||||
<string name="month">月</string>
|
||||
<string name="quarter">季</string>
|
||||
<string name="year">年</string>
|
||||
<string name="total">總計</string>
|
||||
<!-- Middle part of the sentence '1 time in xx days' -->
|
||||
<string name="time_every">次每</string>
|
||||
<string name="every_x_days">每 %d 天</string>
|
||||
@@ -154,4 +157,22 @@
|
||||
<string name="score">分數</string>
|
||||
<string name="reminder_sound">提醒音效</string>
|
||||
<string name="none">無</string>
|
||||
<string name="filter">篩選</string>
|
||||
<string name="hide_completed">隱藏已完成的習慣</string>
|
||||
<string name="hide_archived">隱藏已封存習慣</string>
|
||||
<string name="sticky_notifications">使提醒保持常駐</string>
|
||||
<string name="sticky_notifications_description">防止提醒被滑動移除</string>
|
||||
<string name="repair_database">修復資料庫</string>
|
||||
<string name="database_repaired">資料庫已修復</string>
|
||||
<string name="uncheck">取消選取</string>
|
||||
<string name="toggle">切換</string>
|
||||
<string name="action">操作</string>
|
||||
<string name="habit">習慣</string>
|
||||
<string name="sort">排序</string>
|
||||
<string name="manually">手動</string>
|
||||
<string name="by_name">根據名稱</string>
|
||||
<string name="by_color">根據顏色</string>
|
||||
<string name="by_score">根據分數</string>
|
||||
<string name="download">下載</string>
|
||||
<string name="export">匯出</string>
|
||||
</resources>
|
||||
|
||||
@@ -256,4 +256,13 @@
|
||||
<style name="TimePickerDialog" parent="@style/Theme.AppCompat.Light.Dialog">
|
||||
<item name="windowNoTitle">true</item>
|
||||
</style>
|
||||
|
||||
<style name="DialogWithTitle" parent="@style/Theme.AppCompat.Light.Dialog">
|
||||
<item name="windowNoTitle">false</item>
|
||||
</style>
|
||||
|
||||
<style name="DarkDialogWithTitle"
|
||||
parent="@style/Theme.AppCompat.Dialog">
|
||||
<item name="windowNoTitle">false</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
@@ -65,7 +65,7 @@ public class ReminderControllerTest extends BaseUnitTest
|
||||
{
|
||||
Habit habit = mock(Habit.class);
|
||||
long now = timestamp(2015, 1, 1);
|
||||
DateUtils.setFixedLocalTime(now);
|
||||
DateUtils.setFixedLocalTime(DateUtils.removeTimezone(now));
|
||||
when(preferences.getSnoozeInterval()).thenReturn(15L);
|
||||
|
||||
controller.onSnooze(habit);
|
||||
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
|
||||
|
||||
Reference in New Issue
Block a user