diff --git a/api/AndroidManifest.xml b/api/AndroidManifest.xml
index c084e7d72..d63ccf83e 100644
--- a/api/AndroidManifest.xml
+++ b/api/AndroidManifest.xml
@@ -5,10 +5,10 @@
** See the file "LICENSE" for the full license governing this code.
-->
+ package="com.todoroo.astrid.api"
+ android:versionCode="1"
+ android:versionName="1.0">
-
+
\ No newline at end of file
diff --git a/api/res/layout/status_preference.xml b/api/res/layout/status_preference.xml
index c8be5f06a..9435355e7 100644
--- a/api/res/layout/status_preference.xml
+++ b/api/res/layout/status_preference.xml
@@ -16,46 +16,49 @@
-
+ android:id="@+id/status"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:gravity="center_vertical"
+ android:paddingRight="?android:attr/scrollbarSize">
+
-
-
-
-
+ android:layout_marginLeft="20dip"
+ android:layout_marginRight="6dip"
+ android:layout_marginTop="6dip"
+ android:layout_marginBottom="6dip"
+ android:layout_weight="1">
+
+
+
+
-
+
-
+
diff --git a/api/res/values-ca/strings.xml b/api/res/values-ca/strings.xml
index 88c3b39be..6da4721d7 100644
--- a/api/res/values-ca/strings.xml
+++ b/api/res/values-ca/strings.xml
@@ -1,101 +1,108 @@
-
- 1 any
- %d anys
-
-
- 1 mes
- %d mesos
-
-
- 1 setmana
- %d setmanes
-
-
- 1 dia
- %d dies
-
-
- 1 Weekday
- %d Weekdays
-
-
- 1 hora
- %d Hores
-
-
- 1 minut
- %d Minuts
-
-
- 1 segon
- %d Segons
-
-
- 1 Hr
- %d Hrs
-
-
- 1 Min
- %d Min
-
-
- 1 Seg
- %d Seg
-
-
- 1 tasca
- %d tasques
-
-
- 1 person
- %d people
-
- Avui
- Demà
- Ahir
- Confirmar?
- Pregunta:
- Informació
- S\'ha produït un error
- Desar
- Sí
- No
- Tancar
- Fet
- ¡Ui, sembla que hi ha hagut un problema! Això es el que ha passat:\n\n%s
- ¡Ui, sembla que hi ha hagut un problema!
- Si us plau, espera...
- Sincronitzant les seves tasques...
- S\'està sincronitzant...
- Error de conexió! Verifiqui la conexió d\'internet.
- Estat
- Sincronització en curs...
- Última sincronització:\n%s
- Fallida el: %s
- Última sincronització correcte: %s
- Mai sincronitzat!
- Opcions
- Sincronitzar en segon pla
- Desactivada la sincronització en segon pla
- Actualment configurat en: %s
- La sincronització en segon pla només funciona amb el Wifi activat.
- Sempre es produirà la sincronització en segon pla
- Accions
- Surt
- Esborra tota la informació de sincronització
- Tancar sessió / esborra la informació de sincronització?
-
- desactivat
- cada quince minuts
- cada trenta minuts
- cada hora
- cada tres hores
- cada sis hores
- cada dotze hores
- diàriament
- cada tres dies
- setmanalment
-
+
+ 1 any
+ %d anys
+
+
+ 1 mes
+ %d mesos
+
+
+ 1 setmana
+ %d setmanes
+
+
+ 1 dia
+ %d dies
+
+
+ 1 Weekday
+ %d Weekdays
+
+
+ 1 hora
+ %d Hores
+
+
+ 1 minut
+ %d Minuts
+
+
+ 1 segon
+ %d Segons
+
+
+ 1 Hr
+ %d Hrs
+
+
+ 1 Min
+ %d Min
+
+
+ 1 Seg
+ %d Seg
+
+
+ 1 tasca
+ %d tasques
+
+
+ 1 person
+ %d people
+
+ Avui
+ Demà
+ Ahir
+ Confirmar?
+ Pregunta:
+ Informació
+ S\'ha produït un error
+ Desar
+ Sí
+ No
+ Tancar
+ Fet
+ ¡Ui, sembla que hi ha hagut un problema! Això es el que ha
+ passat:\n\n%s
+
+ ¡Ui, sembla que hi ha hagut un problema!
+ Si us plau, espera...
+ Sincronitzant les seves tasques...
+ S\'està sincronitzant...
+ Error de conexió! Verifiqui la conexió d\'internet.
+ Estat
+ Sincronització en curs...
+ Última sincronització:\n%s
+ Fallida el: %s
+ Última sincronització correcte: %s
+ Mai sincronitzat!
+ Opcions
+ Sincronitzar en segon pla
+ Desactivada la sincronització en segon pla
+
+ Actualment configurat en: %s
+ La sincronització en segon pla només funciona amb el
+ Wifi activat.
+
+ Sempre es produirà la sincronització en segon pla
+
+ Accions
+ Surt
+ Esborra tota la informació de sincronització
+ Tancar sessió / esborra la informació de sincronització?
+
+
+ desactivat
+ cada quince minuts
+ cada trenta minuts
+ cada hora
+ cada tres hores
+ cada sis hores
+ cada dotze hores
+ diàriament
+ cada tres dies
+ setmanalment
+
diff --git a/api/res/values-cs/strings.xml b/api/res/values-cs/strings.xml
index 855555168..c53eae2ae 100644
--- a/api/res/values-cs/strings.xml
+++ b/api/res/values-cs/strings.xml
@@ -1,116 +1,121 @@
-
- 1 rok
- %d Roky
-
-
- 1 měsíc
- %d Měsíce
-
-
- 1 týden
- %d Týdny
-
-
- 1 den
- %d Dnů
-
-
- 1 pracovní den
- %d pracovních dnů
-
-
- 1 hodina
- %d hodin
-
-
- 1 minuta
- %d minut
-
-
- 1 vteřina
- %d vteřin
-
-
- 1 hod.
- %d hod.
-
-
- 1 min.
- %d min.
-
-
- 1 s
- %d s
-
-
- 1 úkol
- %d úkolů
-
-
- 1 osoba
- %d lidí
-
- Dnes
- Zítra
- Včera
- Zítra
- Včera
- Potvrdit?
- Otázka:
- Informace
- Chyba!
- Uložit
- Ano
- Ne
- Zavřít
- Hotovo
- Jejda, vypadá to, že se vyskytla chyba! Tady je co se stalo:\n\n%s
- Jejda, vypadá to, že se vyskytla chyba!
- Čekejte prosím...
- Probíhá synchronizace Vašich úkolů...
- Sychronizuji...
- Synchronizace
- Astrid.com, Google Tasks, uložená data, lokální záloha
- Chyba připojení! Zkontrolujte vaše internetové připojení.
- Stav
- Stav: %s
- Nepřihlášen
- Probíhá synchronizace...
- Poslední synchronizace:\n%s
- Selhalo: %s
- Sync w/ chyby: %s
- Poslední úspěšná synchronizace: %s
- Nikdo nesynchronizováno!
- Nastavení
- Synchronizace na pozadí
- Synchronizace na pozadí je zakázána
- Současně nastaveno na: %s
- Nastavení jen pro Wifi
- Synchronizovat na pozadí se bude pouze při zapnuté Wifi
- Synchronizovat na pozadí se bude vždy
- Akce
- Synchronizovat nyní
- Přihlásit se & Synchronizovat!
- Přihlášen jako:
- Stavové hlášení
- Klepnutím odešlete zprávu týmu Astrid
- Odeslat zprávu
- Odhlásit se
- Smazat všechny synchronizační data
- Odhlásit se / vymazat synchronizační data?
- Během posledního pokusu o synchronizaci se službou %s nastal problém s připojením k síti. Zkuste to prosím později.
-
- zakázat
- každých patnáct minut
- každých třicet minut
- každou hodinu
- každé tři hodiny
- každých šest hodin
- každých dvanáct hodin
- každý den
- každé tři dny
- každý týden
-
+
+ 1 rok
+ %d Roky
+
+
+ 1 měsíc
+ %d Měsíce
+
+
+ 1 týden
+ %d Týdny
+
+
+ 1 den
+ %d Dnů
+
+
+ 1 pracovní den
+ %d pracovních dnů
+
+
+ 1 hodina
+ %d hodin
+
+
+ 1 minuta
+ %d minut
+
+
+ 1 vteřina
+ %d vteřin
+
+
+ 1 hod.
+ %d hod.
+
+
+ 1 min.
+ %d min.
+
+
+ 1 s
+ %d s
+
+
+ 1 úkol
+ %d úkolů
+
+
+ 1 osoba
+ %d lidí
+
+ Dnes
+ Zítra
+ Včera
+ Zítra
+ Včera
+ Potvrdit?
+ Otázka:
+ Informace
+ Chyba!
+ Uložit
+ Ano
+ Ne
+ Zavřít
+ Hotovo
+ Jejda, vypadá to, že se vyskytla chyba! Tady je co se stalo:\n\n%s
+
+ Jejda, vypadá to, že se vyskytla chyba!
+ Čekejte prosím...
+ Probíhá synchronizace Vašich úkolů...
+ Sychronizuji...
+ Synchronizace
+ Astrid.com, Google Tasks, uložená data, lokální záloha
+ Chyba připojení! Zkontrolujte vaše internetové připojení.
+ Stav
+ Stav: %s
+ Nepřihlášen
+ Probíhá synchronizace...
+ Poslední synchronizace:\n%s
+ Selhalo: %s
+ Sync w/ chyby: %s
+ Poslední úspěšná synchronizace: %s
+ Nikdo nesynchronizováno!
+ Nastavení
+ Synchronizace na pozadí
+ Synchronizace na pozadí je zakázána
+ Současně nastaveno na: %s
+ Nastavení jen pro Wifi
+ Synchronizovat na pozadí se bude pouze při zapnuté
+ Wifi
+
+ Synchronizovat na pozadí se bude vždy
+ Akce
+ Synchronizovat nyní
+ Přihlásit se & Synchronizovat!
+ Přihlášen jako:
+ Stavové hlášení
+ Klepnutím odešlete zprávu týmu Astrid
+ Odeslat zprávu
+ Odhlásit se
+ Smazat všechny synchronizační data
+ Odhlásit se / vymazat synchronizační data?
+ Během posledního pokusu o synchronizaci se službou %s nastal
+ problém s připojením k síti. Zkuste to prosím později.
+
+
+ zakázat
+ každých patnáct minut
+ každých třicet minut
+ každou hodinu
+ každé tři hodiny
+ každých šest hodin
+ každých dvanáct hodin
+ každý den
+ každé tři dny
+ každý týden
+
diff --git a/api/res/values-da/strings.xml b/api/res/values-da/strings.xml
index f9be3ad99..67d833194 100644
--- a/api/res/values-da/strings.xml
+++ b/api/res/values-da/strings.xml
@@ -1,89 +1,91 @@
-
- 1 år
- %d År
-
-
- 1 måned
- %d måneder
-
-
- 1 uge
- %d uger
-
-
- 1 dag
- %d dage
-
-
- 1 Weekday
- %d Weekdays
-
-
- 1 time
- %d timer
-
-
- 1 minut
- %d minutter
-
-
- 1 sekund
- %d sekunder
-
-
- 1 time
- %d timer
-
-
- 1 min.
- %d min.
-
-
- 1 sek.
- %d sek.
-
-
- 1 opgave
- %d opgaver
-
-
- 1 person
- %d people
-
- I dag
- I morgen
- I går
- Bekræft?
- Spørsmål:
- Gem
- Ja
- Nej
- Luk
- Færdig
- Vent venligst...
- Synkroniserer...
- Synkronisering
- Forbindelsesfejl! Tjek din internetforbindelse.
- Indstillinger
- Baggrunds Synk
- Baggrunds synkronisering er slået fra
- Baggrunds synkronisering sker kun ved Wifi
- Baggrunds synkronisering sker uanset forbindelsestype
- Handlinger
- Log af
- Sletter al synkroniserings data
-
- disable
- every fifteen minutes
- every thirty minutes
- hver time
- hver 3. time
- hver 6. time
- hver 12. time
- hver dag
- hver 3. dag
- hver uge
-
+
+ 1 år
+ %d År
+
+
+ 1 måned
+ %d måneder
+
+
+ 1 uge
+ %d uger
+
+
+ 1 dag
+ %d dage
+
+
+ 1 Weekday
+ %d Weekdays
+
+
+ 1 time
+ %d timer
+
+
+ 1 minut
+ %d minutter
+
+
+ 1 sekund
+ %d sekunder
+
+
+ 1 time
+ %d timer
+
+
+ 1 min.
+ %d min.
+
+
+ 1 sek.
+ %d sek.
+
+
+ 1 opgave
+ %d opgaver
+
+
+ 1 person
+ %d people
+
+ I dag
+ I morgen
+ I går
+ Bekræft?
+ Spørsmål:
+ Gem
+ Ja
+ Nej
+ Luk
+ Færdig
+ Vent venligst...
+ Synkroniserer...
+ Synkronisering
+ Forbindelsesfejl! Tjek din internetforbindelse.
+ Indstillinger
+ Baggrunds Synk
+ Baggrunds synkronisering er slået fra
+ Baggrunds synkronisering sker kun ved Wifi
+ Baggrunds synkronisering sker uanset
+ forbindelsestype
+
+ Handlinger
+ Log af
+ Sletter al synkroniserings data
+
+ disable
+ every fifteen minutes
+ every thirty minutes
+ hver time
+ hver 3. time
+ hver 6. time
+ hver 12. time
+ hver dag
+ hver 3. dag
+ hver uge
+
diff --git a/api/res/values-de/strings.xml b/api/res/values-de/strings.xml
index 45dff2116..205001822 100755
--- a/api/res/values-de/strings.xml
+++ b/api/res/values-de/strings.xml
@@ -4,243 +4,252 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 Jahr
-
- %d Jahre
-
-
-
- 1 Monat
-
- %d Monate
-
-
-
- Eine Woche
-
- %d Wochen
-
-
-
- Ein Tag
-
- %d Tage
-
-
-
- Ein Wochentag
-
- %d Wochentage
-
-
-
- Eine Stunde
-
- %d Stunden
-
-
-
- Eine Minute
-
- %d Minuten
-
-
-
- Eine Sekunde
-
- %d Sekunden
-
-
-
- 1 Std
-
- %d Std
-
-
-
- 1 Min
-
- %d min
-
-
-
- 1 Sek
-
- %d Sek
-
-
-
- 1 Aufgabe
-
- %d Aufgaben
-
-
-
- Eine Person
-
- %d Personen
-
-
-
- Heute
-
-
- Morgen
-
-
- Gestern
-
-
- Morg.
-
-
- Gest.
-
-
-
-
- Bestätigen?
-
-
- Frage:
-
-
- Informationen
-
-
- Fehler!
-
-
- Speichern
-
-
- Ja
-
-
- Nein
-
-
- Schließen
-
-
- Erledigt
-
-
- Ups, sieht aus, als ob ein Fehler aufgetreten ist! Folgendes ist passiert:\n\n%s
-
-
- Ups, sieht aus, als ob ein Fehler aufgetreten ist!
-
-
- Bitte warten...
-
-
-
-
- Synchronisiere deine Aufgaben
-
-
- Synchronisiere…
-
-
- Synchronisation
-
-
- Jetzt synchronisieren
-
-
- Astrid.com, Google Tasks, gespeicherte Daten, lokale Backups
-
-
- Verbindungsfehler! Überprüfen Sie Ihre Internetverbindung.
-
-
-
-
- Status
-
-
- Status: %s
-
- Nicht angemeldet
-
- Synchronisierung läuft...
-
- Letzte Synchronisierung:\n%s
-
- Fehlgeschlagen am: %s
-
- Synchronisation m. Fehler: %s
-
- Letzte erfolgreiche Synchronisierung: %s
-
- Noch nie synchronisiert!
-
-
- Einstellungen
-
-
- Hintergrund-Synchronisierung
-
- Hintergrund-Synchronisierung ist deaktiviert
-
- Gesetzt auf: %s
-
-
- WLAN-Einstellungen
-
- Hintergrund-Synchronisierung nur bei WLAN-Verbindung
-
- Hintergrund-Synchronisierung findet immer statt
-
-
- Aktionen
-
-
- Jetzt synchronisieren
-
- Einloggen & synchronisieren!
-
-
- Angemeldet als:
-
-
- Statusbericht
-
-
- Klicke um einen Bericht ans Astrid-Team zu senden
-
- Bericht senden
-
-
- Abmelden
-
- Alle Synchronisationsdaten löschen
-
-
- Ausloggen/synchronisierte Daten löschen?
-
-
- Es gab ein Problem mit der Netzwerkverbindung während der letzten Synchronisation mit %s. Versuche es bitte später noch einmal.
-
-
-
- deaktivieren
- alle 15 Minuten
- alle 30 Minuten
- stündlich
- alle 3 Stunden
- alle 6 Stunden
- alle 12 Stunden
- täglich
- jeden dritten Tag
- wöchentlich
-
-
+
+
+
+
+
+
+ 1 Jahr
+
+ %d Jahre
+
+
+
+ 1 Monat
+
+ %d Monate
+
+
+
+ Eine Woche
+
+ %d Wochen
+
+
+
+ Ein Tag
+
+ %d Tage
+
+
+
+ Ein Wochentag
+
+ %d Wochentage
+
+
+
+ Eine Stunde
+
+ %d Stunden
+
+
+
+ Eine Minute
+
+ %d Minuten
+
+
+
+ Eine Sekunde
+
+ %d Sekunden
+
+
+
+ 1 Std
+
+ %d Std
+
+
+
+ 1 Min
+
+ %d min
+
+
+
+ 1 Sek
+
+ %d Sek
+
+
+
+ 1 Aufgabe
+
+ %d Aufgaben
+
+
+
+ Eine Person
+
+ %d Personen
+
+
+
+ Heute
+
+
+ Morgen
+
+
+ Gestern
+
+
+ Morg.
+
+
+ Gest.
+
+
+
+
+ Bestätigen?
+
+
+ Frage:
+
+
+ Informationen
+
+
+ Fehler!
+
+
+ Speichern
+
+
+ Ja
+
+
+ Nein
+
+
+ Schließen
+
+
+ Erledigt
+
+
+ Ups, sieht aus, als ob ein Fehler aufgetreten ist! Folgendes ist
+ passiert:\n\n%s
+
+
+
+ Ups, sieht aus, als ob ein Fehler aufgetreten ist!
+
+
+ Bitte warten...
+
+
+
+
+ Synchronisiere deine Aufgaben
+
+
+ Synchronisiere…
+
+
+ Synchronisation
+
+
+ Jetzt synchronisieren
+
+
+ Astrid.com, Google Tasks, gespeicherte Daten, lokale Backups
+
+
+ Verbindungsfehler! Überprüfen Sie Ihre Internetverbindung.
+
+
+
+
+ Status
+
+
+ Status: %s
+
+ Nicht angemeldet
+
+ Synchronisierung läuft...
+
+ Letzte Synchronisierung:\n%s
+
+ Fehlgeschlagen am: %s
+
+ Synchronisation m. Fehler: %s
+
+ Letzte erfolgreiche Synchronisierung: %s
+
+ Noch nie synchronisiert!
+
+
+ Einstellungen
+
+
+ Hintergrund-Synchronisierung
+
+ Hintergrund-Synchronisierung ist deaktiviert
+
+
+ Gesetzt auf: %s
+
+
+ WLAN-Einstellungen
+
+ Hintergrund-Synchronisierung nur bei
+ WLAN-Verbindung
+
+
+ Hintergrund-Synchronisierung findet immer statt
+
+
+
+ Aktionen
+
+
+ Jetzt synchronisieren
+
+ Einloggen & synchronisieren!
+
+
+ Angemeldet als:
+
+
+ Statusbericht
+
+
+ Klicke um einen Bericht ans Astrid-Team zu senden
+
+
+ Bericht senden
+
+
+ Abmelden
+
+ Alle Synchronisationsdaten löschen
+
+
+ Ausloggen/synchronisierte Daten löschen?
+
+
+ Es gab ein Problem mit der Netzwerkverbindung während der
+ letzten Synchronisation mit %s. Versuche es bitte später noch einmal.
+
+
+
+
+ deaktivieren
+ alle 15 Minuten
+ alle 30 Minuten
+ stündlich
+ alle 3 Stunden
+ alle 6 Stunden
+ alle 12 Stunden
+ täglich
+ jeden dritten Tag
+ wöchentlich
+
+
diff --git a/api/res/values-es/strings.xml b/api/res/values-es/strings.xml
index ca543ccbc..ccd1a4522 100755
--- a/api/res/values-es/strings.xml
+++ b/api/res/values-es/strings.xml
@@ -4,243 +4,253 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 año
-
- %d años
-
-
-
- 1 mes
-
- %d meses
-
-
-
- 1 semana
-
- %d semanas
-
-
-
- Un día
-
- %d días
-
-
-
- 1 día laborable
-
- %d días laborables
-
-
-
- 1 hora
-
- %d horas
-
-
-
- 1 minuto
-
- %d minutos
-
-
-
- 1 segundo
-
- %d segundos
-
-
-
- 1 hr
-
- %d hrs
-
-
-
- 1 min
-
- %d min
-
-
-
- 1 seg
-
- %d seg
-
-
-
- 1 tarea
-
- %d tareas
-
-
-
- 1 persona
-
- %d personas
-
-
-
- Hoy
-
-
- Mañana
-
-
- Ayer
-
-
- Mañana
-
-
- Ayer
-
-
-
-
- ¿Confirmar?
-
-
- Pregunta:
-
-
- Información
-
-
- ¡Error!
-
-
- Guardar
-
-
- Sí
-
-
- No
-
-
- Cerrar
-
-
- Terminado
-
-
- ¡Uy, parece que ocurró un error! Esto es lo que pasó:\n\n%s
-
-
- ¡Uy, parece que ocurrió un error!
-
-
- Espere un momento...
-
-
-
-
- Sincronizando sus tareas...
-
-
- Sincronizando...
-
-
- Sincronización & copia de seguridad
-
-
- Sincronizar ahora
-
-
- Astrid.com, Google Tasks, información guardada, copia de seguridad local
-
-
- ¡Error de conexión! Verifique su conexión a internet.
-
-
-
-
- Estado
-
-
- Estado: %s
-
- Sesión no iniciada
-
- Sincronización en marcha
-
- Ultima sincronización:\n%s
-
- Falló en: %s
-
- Sincronización c/ errores: %s
-
- Última sincronización correcta: %s
-
- ¡Nunca sincronizado!
-
-
- Opciones
-
-
- Sincronización en segundo plano
-
- Sincronización en segundo plano deshabilitada
-
- Actualmente configurado a: %s
-
-
- Configuración solo wifi
-
- La sincronización en segundo plano sólo funciona con el Wifi activado
-
- La sincronización en segundo plano siempre funcionará
-
-
- Acciones
-
-
- Sincronizar ahora
-
- Iniciar sesión & sincronizar!
-
-
- Sesión iniciada como:
-
-
- Reporte de estado
-
-
- Click para enviar un reporte al equipo de Astrid
-
- Enviar reporte
-
-
- Cerrar sesión
-
- Limpia todos los datos de la sincronización
-
-
- Cerrar sesión/Limpiar datos de sincronización?
-
-
- Ha ocurrido un problema conectando a la red durante la última sincronización con %s. Por favor inténtelo nuevamente después.
-
-
-
- deshabilitar
- cada quince minutos
- cada treinta minutos
- cada hora
- cada tres horas
- cada seis horas
- cada doce horas
- cada día
- cada tres días
- cada semana
-
-
+
+
+
+
+
+
+ 1 año
+
+ %d años
+
+
+
+ 1 mes
+
+ %d meses
+
+
+
+ 1 semana
+
+ %d semanas
+
+
+
+ Un día
+
+ %d días
+
+
+
+ 1 día laborable
+
+ %d días laborables
+
+
+
+ 1 hora
+
+ %d horas
+
+
+
+ 1 minuto
+
+ %d minutos
+
+
+
+ 1 segundo
+
+ %d segundos
+
+
+
+ 1 hr
+
+ %d hrs
+
+
+
+ 1 min
+
+ %d min
+
+
+
+ 1 seg
+
+ %d seg
+
+
+
+ 1 tarea
+
+ %d tareas
+
+
+
+ 1 persona
+
+ %d personas
+
+
+
+ Hoy
+
+
+ Mañana
+
+
+ Ayer
+
+
+ Mañana
+
+
+ Ayer
+
+
+
+
+ ¿Confirmar?
+
+
+ Pregunta:
+
+
+ Información
+
+
+ ¡Error!
+
+
+ Guardar
+
+
+ Sí
+
+
+ No
+
+
+ Cerrar
+
+
+ Terminado
+
+
+ ¡Uy, parece que ocurró un error! Esto es lo que pasó:\n\n%s
+
+
+ ¡Uy, parece que ocurrió un error!
+
+
+ Espere un momento...
+
+
+
+
+ Sincronizando sus tareas...
+
+
+ Sincronizando...
+
+
+ Sincronización & copia de seguridad
+
+
+ Sincronizar ahora
+
+
+ Astrid.com, Google Tasks, información guardada, copia de seguridad
+ local
+
+
+
+ ¡Error de conexión! Verifique su conexión a internet.
+
+
+
+
+ Estado
+
+
+ Estado: %s
+
+ Sesión no iniciada
+
+ Sincronización en marcha
+
+ Ultima sincronización:\n%s
+
+ Falló en: %s
+
+ Sincronización c/ errores: %s
+
+ Última sincronización correcta: %s
+
+ ¡Nunca sincronizado!
+
+
+ Opciones
+
+
+ Sincronización en segundo plano
+
+ Sincronización en segundo plano deshabilitada
+
+
+ Actualmente configurado a: %s
+
+
+ Configuración solo wifi
+
+ La sincronización en segundo plano sólo funciona con
+ el Wifi activado
+
+
+ La sincronización en segundo plano siempre
+ funcionará
+
+
+
+ Acciones
+
+
+ Sincronizar ahora
+
+ Iniciar sesión & sincronizar!
+
+
+ Sesión iniciada como:
+
+
+ Reporte de estado
+
+
+ Click para enviar un reporte al equipo de Astrid
+
+
+ Enviar reporte
+
+
+ Cerrar sesión
+
+ Limpia todos los datos de la sincronización
+
+
+ Cerrar sesión/Limpiar datos de sincronización?
+
+
+ Ha ocurrido un problema conectando a la red durante la última
+ sincronización con %s. Por favor inténtelo nuevamente después.
+
+
+
+
+ deshabilitar
+ cada quince minutos
+ cada treinta minutos
+ cada hora
+ cada tres horas
+ cada seis horas
+ cada doce horas
+ cada día
+ cada tres días
+ cada semana
+
+
diff --git a/api/res/values-fr/strings.xml b/api/res/values-fr/strings.xml
index 1a191e5e1..a7b1e5cb8 100755
--- a/api/res/values-fr/strings.xml
+++ b/api/res/values-fr/strings.xml
@@ -4,243 +4,255 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 an
-
- %d ans
-
-
-
- 1 mois
-
- %d mois
-
-
-
- 1 semaine
-
- %d semaines
-
-
-
- 1 jour
-
- %d jours
-
-
-
- 1 jour de la semaine
-
- %d jours de la semaine
-
-
-
- 1 heure
-
- %d heures
-
-
-
- 1 minute
-
- %d minutes
-
-
-
- 1 seconde
-
- %d secondes
-
-
-
- 1 h
-
- %d h
-
-
-
- 1 min
-
- %d min
-
-
-
- 1 s
-
- %d s
-
-
-
- 1 tâche
-
- %d tâches
-
-
-
- 1 personne
-
- %d personnes
-
-
-
- Aujourd\'hui
-
-
- Demain
-
-
- Hier
-
-
- Demain
-
-
- Hier
-
-
-
-
- Confirmer ?
-
-
- Question :
-
-
- Information
-
-
- Erreur !
-
-
- Enregistrer
-
-
- Oui
-
-
- Non
-
-
- Fermer
-
-
- Fnalizado
-
-
- Oups, une erreur est survenue ! Voici ce qu\'il s\'est passé :\n\n%s
-
-
- Oups, une erreur est survenue !
-
-
- Veuillez patienter...
-
-
-
-
- Synchronisation de vos tâches...
-
-
- Synchronisation...
-
-
- Synchronisation
-
-
- Sync now
-
-
- Astrid.com, Tâches Google, données enregistrées, sauvegarde locale
-
-
- Erreur de connexion ! Veuillez vérifier votre connexion Internet.
-
-
-
-
- Statut
-
-
- État : %s
-
- Non connecté
-
- Synchronisation en cours...
-
- Dernière synchro. :\n%s
-
- Échec sur : %s
-
- Synchro avec Erreurs: %s
-
- Dernière synchro. réussie : %s
-
- Jamais synchronisé !
-
-
- Options
-
-
- Synchro. en arrière-plan
-
- Synchronisation en arrière-plan désactivée
-
- Actuellement configuré sur : %s
-
-
- Paramètre Wifi seul
-
- La synchronisation en arrière-plan ne s\'effectue uniquement sous Wifi
-
- La synchronisation en arrière-plan s\'effectuera toujours
-
-
- Actions
-
-
- Synchroniser maintenant
-
- Se connecter et synchroniser !
-
-
- Connecté en tant que :
-
-
- Rapport d\'état
-
-
- Cliquez pour envoyer un rapport à l\'équipe Astrid
-
- Envoyer le rapport
-
-
- Se déconnecter
-
- Purger toutes les données de synchronisation
-
-
- Se déconnecter/purger les données de synchronisation ?
-
-
- Un problème de connexion réseau est survenu lors de la dernière synchronisation avec %s. Merci de réessayer plus tard.
-
-
-
- désactiver
- toutes les quinze minutes
- toutes les trente minutes
- toutes les heures
- toutes les trois heures
- toutes les six heures
- toutes les douze heures
- tous les jours
- tous les trois jours
- toutes les semaines
-
-
+
+
+
+
+
+
+ 1 an
+
+ %d ans
+
+
+
+ 1 mois
+
+ %d mois
+
+
+
+ 1 semaine
+
+ %d semaines
+
+
+
+ 1 jour
+
+ %d jours
+
+
+
+ 1 jour de la semaine
+
+ %d jours de la semaine
+
+
+
+ 1 heure
+
+ %d heures
+
+
+
+ 1 minute
+
+ %d minutes
+
+
+
+ 1 seconde
+
+ %d secondes
+
+
+
+ 1 h
+
+ %d h
+
+
+
+ 1 min
+
+ %d min
+
+
+
+ 1 s
+
+ %d s
+
+
+
+ 1 tâche
+
+ %d tâches
+
+
+
+ 1 personne
+
+ %d personnes
+
+
+
+ Aujourd\'hui
+
+
+ Demain
+
+
+ Hier
+
+
+ Demain
+
+
+ Hier
+
+
+
+
+ Confirmer ?
+
+
+ Question :
+
+
+ Information
+
+
+ Erreur !
+
+
+ Enregistrer
+
+
+ Oui
+
+
+ Non
+
+
+ Fermer
+
+
+ Fnalizado
+
+
+ Oups, une erreur est survenue ! Voici ce qu\'il s\'est passé :\n\n%s
+
+
+
+ Oups, une erreur est survenue !
+
+
+ Veuillez patienter...
+
+
+
+
+ Synchronisation de vos tâches...
+
+
+ Synchronisation...
+
+
+ Synchronisation
+
+
+ Sync now
+
+
+ Astrid.com, Tâches Google, données enregistrées, sauvegarde locale
+
+
+
+ Erreur de connexion ! Veuillez vérifier votre connexion Internet.
+
+
+
+
+
+ Statut
+
+
+ État : %s
+
+ Non connecté
+
+ Synchronisation en cours...
+
+ Dernière synchro. :\n%s
+
+ Échec sur : %s
+
+ Synchro avec Erreurs: %s
+
+ Dernière synchro. réussie : %s
+
+ Jamais synchronisé !
+
+
+ Options
+
+
+ Synchro. en arrière-plan
+
+ Synchronisation en arrière-plan désactivée
+
+
+ Actuellement configuré sur : %s
+
+
+ Paramètre Wifi seul
+
+ La synchronisation en arrière-plan ne s\'effectue
+ uniquement sous Wifi
+
+
+ La synchronisation en arrière-plan s\'effectuera
+ toujours
+
+
+
+ Actions
+
+
+ Synchroniser maintenant
+
+ Se connecter et synchroniser !
+
+
+ Connecté en tant que :
+
+
+ Rapport d\'état
+
+
+ Cliquez pour envoyer un rapport à l\'équipe Astrid
+
+
+ Envoyer le rapport
+
+
+ Se déconnecter
+
+ Purger toutes les données de synchronisation
+
+
+ Se déconnecter/purger les données de synchronisation ?
+
+
+
+ Un problème de connexion réseau est survenu lors de la
+ dernière synchronisation avec %s. Merci de réessayer plus tard.
+
+
+
+
+ désactiver
+ toutes les quinze minutes
+ toutes les trente minutes
+ toutes les heures
+ toutes les trois heures
+ toutes les six heures
+ toutes les douze heures
+ tous les jours
+ tous les trois jours
+ toutes les semaines
+
+
diff --git a/api/res/values-it/strings.xml b/api/res/values-it/strings.xml
index eaed227c2..295caded3 100755
--- a/api/res/values-it/strings.xml
+++ b/api/res/values-it/strings.xml
@@ -4,243 +4,254 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 Anno
-
- %d Anni
-
-
-
- 1 Mese
-
- %d mesi
-
-
-
- 1 Settimana
-
- %d settimane
-
-
-
- 1 Giorno
-
- %d Giorni
-
-
-
- 1 giorno della settimana
-
- %d giorni della settimana
-
-
-
- 1 ora
-
- %d ore
-
-
-
- 1 minuto
-
- %d minuti
-
-
-
- 1 secondo
-
- %d secondi
-
-
-
- 1 ora
-
- %d ore
-
-
-
- 1 min
-
- %d min
-
-
-
- 1 sec
-
- %d sec
-
-
-
- 1 attività
-
- %d attività
-
-
-
- 1 persona
-
- %d persone
-
-
-
- Oggi
-
-
- Domani
-
-
- Ieri
-
-
- Domani
-
-
- Ieri
-
-
-
-
- Confermi?
-
-
- Domanda:
-
-
- Informazione
-
-
- Errore!
-
-
- Salva
-
-
- Sì
-
-
- No
-
-
- Chiudi
-
-
- Completata
-
-
- Oops, sembra che ci sia stato un errore! E\' successo questo:\n\n%s
-
-
- Oops, sembra che ci sia stato un errore!
-
-
- Attendi...
-
-
-
-
- Sincronizzando le tue attività...
-
-
- Sincronizzando...
-
-
- Sincronizza & archivia
-
-
- Sync now
-
-
- Astrid.com, Attività Google, dati salvati, backup locale
-
-
- Errore di Connessione! Controlla la tua connessione Internet.
-
-
-
-
- Stato
-
-
- Stato: %s
-
- Non connesso
-
- Sincronizzazione in corso...
-
- Ultima Sincronizzazione:\n%s
-
- Fallita Su: %s
-
- Sincronizza con gli errori: %s
-
- Ultima sincronizzazione eseguita con successo in data: %s
-
- Mai sincronizzato!
-
-
- Preferenze
-
-
- Sincronizzazione eseguita in background
-
- La sincronizzazione in background è disattivata
-
- Attualmente impostata su: %s
-
-
- Unica Impostazione Wifi
-
- La sincronizzazione in background avviene solo con rete Wifi attiva
-
- La sincronizzazione in background avviene sempre
-
-
- Azioni
-
-
- Sincronizza ora
-
- Esegui l\'accesso & Sincronizza!
-
-
- Accesso come:
-
-
- Status report
-
-
- "Clicca per inviare un rapporto al team Astrid"
-
- Invia rapporto
-
-
- Esci
-
- Cancella tutti i dati di sincronizzazione
-
-
- Esci / cancella i file di sincronizzazione?
-
-
- Problema di connessione alla rete durante l\'ultima sincronizzazione con %s. Riprova dopo.
-
-
-
- disabilita
- ogni quindici minuti
- ogni trenta minuti
- ogni ora
- ogni tre ore
- ogni sei ore
- ogni dodici ore
- ogni giorno
- ogni tre giorni
- Ogni settimana
-
-
+
+
+
+
+
+
+ 1 Anno
+
+ %d Anni
+
+
+
+ 1 Mese
+
+ %d mesi
+
+
+
+ 1 Settimana
+
+ %d settimane
+
+
+
+ 1 Giorno
+
+ %d Giorni
+
+
+
+ 1 giorno della settimana
+
+ %d giorni della settimana
+
+
+
+ 1 ora
+
+ %d ore
+
+
+
+ 1 minuto
+
+ %d minuti
+
+
+
+ 1 secondo
+
+ %d secondi
+
+
+
+ 1 ora
+
+ %d ore
+
+
+
+ 1 min
+
+ %d min
+
+
+
+ 1 sec
+
+ %d sec
+
+
+
+ 1 attività
+
+ %d attività
+
+
+
+ 1 persona
+
+ %d persone
+
+
+
+ Oggi
+
+
+ Domani
+
+
+ Ieri
+
+
+ Domani
+
+
+ Ieri
+
+
+
+
+ Confermi?
+
+
+ Domanda:
+
+
+ Informazione
+
+
+ Errore!
+
+
+ Salva
+
+
+ Sì
+
+
+ No
+
+
+ Chiudi
+
+
+ Completata
+
+
+ Oops, sembra che ci sia stato un errore! E\' successo questo:\n\n%s
+
+
+
+ Oops, sembra che ci sia stato un errore!
+
+
+ Attendi...
+
+
+
+
+ Sincronizzando le tue attività...
+
+
+ Sincronizzando...
+
+
+ Sincronizza & archivia
+
+
+ Sync now
+
+
+ Astrid.com, Attività Google, dati salvati, backup locale
+
+
+ Errore di Connessione! Controlla la tua connessione Internet.
+
+
+
+
+
+ Stato
+
+
+ Stato: %s
+
+ Non connesso
+
+ Sincronizzazione in corso...
+
+ Ultima Sincronizzazione:\n%s
+
+ Fallita Su: %s
+
+ Sincronizza con gli errori: %s
+
+ Ultima sincronizzazione eseguita con successo in
+ data: %s
+
+
+ Mai sincronizzato!
+
+
+ Preferenze
+
+
+ Sincronizzazione eseguita in background
+
+ La sincronizzazione in background è disattivata
+
+
+ Attualmente impostata su: %s
+
+
+ Unica Impostazione Wifi
+
+ La sincronizzazione in background avviene solo con
+ rete Wifi attiva
+
+
+ La sincronizzazione in background avviene sempre
+
+
+
+ Azioni
+
+
+ Sincronizza ora
+
+ Esegui l\'accesso & Sincronizza!
+
+
+ Accesso come:
+
+
+ Status report
+
+
+ "Clicca per inviare un rapporto al team Astrid"
+
+
+ Invia rapporto
+
+
+ Esci
+
+ Cancella tutti i dati di sincronizzazione
+
+
+ Esci / cancella i file di sincronizzazione?
+
+
+ Problema di connessione alla rete durante l\'ultima
+ sincronizzazione con %s. Riprova dopo.
+
+
+
+
+ disabilita
+ ogni quindici minuti
+ ogni trenta minuti
+ ogni ora
+ ogni tre ore
+ ogni sei ore
+ ogni dodici ore
+ ogni giorno
+ ogni tre giorni
+ Ogni settimana
+
+
diff --git a/api/res/values-iw/strings.xml b/api/res/values-iw/strings.xml
index 8cc08ef1c..f5d80f358 100755
--- a/api/res/values-iw/strings.xml
+++ b/api/res/values-iw/strings.xml
@@ -4,243 +4,245 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- שנה
-
- %d שנים
-
-
-
- חודש
-
- %d חודשים
-
-
-
- שבוע אחד
-
- %d שבועות
-
-
-
- יום אחד
-
- %d ימים
-
-
-
- יום עבודה אחד
-
- %d ימי עבודה
-
-
-
- שעה אחת
-
- %d שעות
-
-
-
- דקה אחת
-
- %d דקות
-
-
-
- שנייה אחת
-
- %d שניות
-
-
-
- שעה
-
- %d שע\'
-
-
-
- דקה
-
- %d דק׳
-
-
-
- שנייה
-
- %d שנ\'
-
-
-
- משימה אחת
-
- %d משימות
-
-
-
- שותף אחד
-
- %d שותפים
-
-
-
- היום
-
-
- מחר
-
-
- אתמול
-
-
- מחר
-
-
- אתמול
-
-
-
-
- האם לאשר?
-
-
- שאלה:
-
-
- פרטים
-
-
- שגיאה!
-
-
- שמור
-
-
- כן
-
-
- לא
-
-
- סגור
-
-
- בוצע
-
-
- אוּפְּס, נראה שארעה שגיאה! הנה מה שקה:\n\n%s
-
-
- אוּפְּס, נראה שארעה שגיאה!
-
-
- אנא המתן...
-
-
-
-
- מסנכרן את המשימות שלך...
-
-
- מסנכרנת...
-
-
- סינכרון וגיבוי
-
-
- סנכרני כעת
-
-
- אתר אסטריד, ״משימות גוגל״, מידע שמור, גיבוי מקומי
-
-
- שגיאה בחיבור! בדוק את חיבור הַמִּרְשֶׁתֶת שלך
-
-
-
-
- מצב
-
-
- מצב: %s
-
- לא מחובר
-
- הסינכרון מתבצע
-
- סנכרון אחרון:\n%s
-
- נכשל ב: %s
-
- סנכרון עם שגיאות: %s
-
- סנכרון מוצלח אחרון: %s
-
- לעולם לא סונכרן!
-
-
- אפשרויות
-
-
- סנכרון ברקע
-
- סנכרון ברקע אינו מופעל
-
- כרגע מוגדר ל: %s
-
-
- הגדרת WiFi בלבד
-
- סנכרון רקע מתרחש רק כאשר על WiFi
-
- סנכרון רקע יתבצע תמיד
-
-
- פעולות
-
-
- מסנכרן כעת
-
- התחבר וסנכרן!
-
-
- מחובר לחשבון בתור:
-
-
- דו"ח מצב
-
-
- הקלק כדי לשלוח דוח לצוות של אסטריד
-
- שלח דו"ח
-
-
- התנתק
-
- מסיר את כל נתוני הסנכרון
-
-
- צא מהחשבון \\ הסר נתוני סנכרון?
-
-
- נתקלתי בבעית חיבור לרשת בזמן הסינכרון האחרון עם %s. אנא נסה מאוחר יותר.
-
-
-
- מִנְעִי
- כל רבע שעה
- כל חצי שעה
- כל שעה
- כל שלוש שעות
- כל שש שעות
- כל שתים עשרה שעות
- כל יום
- כל שלושה ימים
- כל שבוע
-
-
+
+
+
+
+
+
+ שנה
+
+ %d שנים
+
+
+
+ חודש
+
+ %d חודשים
+
+
+
+ שבוע אחד
+
+ %d שבועות
+
+
+
+ יום אחד
+
+ %d ימים
+
+
+
+ יום עבודה אחד
+
+ %d ימי עבודה
+
+
+
+ שעה אחת
+
+ %d שעות
+
+
+
+ דקה אחת
+
+ %d דקות
+
+
+
+ שנייה אחת
+
+ %d שניות
+
+
+
+ שעה
+
+ %d שע\'
+
+
+
+ דקה
+
+ %d דק׳
+
+
+
+ שנייה
+
+ %d שנ\'
+
+
+
+ משימה אחת
+
+ %d משימות
+
+
+
+ שותף אחד
+
+ %d שותפים
+
+
+
+ היום
+
+
+ מחר
+
+
+ אתמול
+
+
+ מחר
+
+
+ אתמול
+
+
+
+
+ האם לאשר?
+
+
+ שאלה:
+
+
+ פרטים
+
+
+ שגיאה!
+
+
+ שמור
+
+
+ כן
+
+
+ לא
+
+
+ סגור
+
+
+ בוצע
+
+
+ אוּפְּס, נראה שארעה שגיאה! הנה מה שקה:\n\n%s
+
+
+ אוּפְּס, נראה שארעה שגיאה!
+
+
+ אנא המתן...
+
+
+
+
+ מסנכרן את המשימות שלך...
+
+
+ מסנכרנת...
+
+
+ סינכרון וגיבוי
+
+
+ סנכרני כעת
+
+
+ אתר אסטריד, ״משימות גוגל״, מידע שמור, גיבוי מקומי
+
+
+ שגיאה בחיבור! בדוק את חיבור הַמִּרְשֶׁתֶת שלך
+
+
+
+
+ מצב
+
+
+ מצב: %s
+
+ לא מחובר
+
+ הסינכרון מתבצע
+
+ סנכרון אחרון:\n%s
+
+ נכשל ב: %s
+
+ סנכרון עם שגיאות: %s
+
+ סנכרון מוצלח אחרון: %s
+
+ לעולם לא סונכרן!
+
+
+ אפשרויות
+
+
+ סנכרון ברקע
+
+ סנכרון ברקע אינו מופעל
+
+ כרגע מוגדר ל: %s
+
+
+ הגדרת WiFi בלבד
+
+ סנכרון רקע מתרחש רק כאשר על WiFi
+
+ סנכרון רקע יתבצע תמיד
+
+
+ פעולות
+
+
+ מסנכרן כעת
+
+ התחבר וסנכרן!
+
+
+ מחובר לחשבון בתור:
+
+
+ דו"ח מצב
+
+
+ הקלק כדי לשלוח דוח לצוות של אסטריד
+
+ שלח דו"ח
+
+
+ התנתק
+
+ מסיר את כל נתוני הסנכרון
+
+
+ צא מהחשבון \\ הסר נתוני סנכרון?
+
+
+ נתקלתי בבעית חיבור לרשת בזמן הסינכרון האחרון עם %s. אנא נסה
+ מאוחר יותר.
+
+
+
+
+ מִנְעִי
+ כל רבע שעה
+ כל חצי שעה
+ כל שעה
+ כל שלוש שעות
+ כל שש שעות
+ כל שתים עשרה שעות
+ כל יום
+ כל שלושה ימים
+ כל שבוע
+
+
diff --git a/api/res/values-ja/strings.xml b/api/res/values-ja/strings.xml
index 5c76a6b6c..77bf8f013 100755
--- a/api/res/values-ja/strings.xml
+++ b/api/res/values-ja/strings.xml
@@ -4,244 +4,247 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1年
-
- %d 年
-
-
-
- 1か月
-
- %d か月
-
-
-
- 1週間
-
- %d 週間
-
-
-
- 1 日
-
- %d 日
-
-
-
- 1 Weekday
-
- %d Weekdays
-
-
-
- 1 時間
-
- %d 時間
-
-
-
- 1 分
-
- %d 分
-
-
-
- 1 秒
-
- %d 秒
-
-
-
- 1 時間
-
- %d 時間
-
-
-
- 1 分
-
- %d 分
-
-
-
- 1 秒
-
- %d 秒
-
-
-
- タスク 1 件
-
- タスク %d 件
-
-
-
- 1人
-
- %d人
-
-
-
- Today
-
-
- Tomorrow
-
-
- 昨日
-
-
- 明日
-
-
- 昨日
-
-
-
-
- 確認
-
-
- 確認
-
-
- インフォメーション
-
-
- エラー
-
-
- 保存
-
-
- はい
-
-
- いいえ
-
-
- 閉じる
-
-
- 完了
-
-
- Oops, looks like an error occurred! Here\'s what happened:\n\n%s
-
-
- Oops, looks like an error occurred!
-
-
- お待ちください
-
-
-
-
- タスクの同期中...
-
-
- 同期中...
-
-
- 同期
-
-
- Sync now
-
-
- Astrid.com, Google Tasks, saved data, local backup
-
-
- 接続エラー!インターネットに接続できるか確認してください。
-
-
-
-
- 状況
-
-
- Status: %s
-
- Not logged in
-
- 同期中
-
- 前回の同期:\n%s
-
- 失敗: %s
-
- Sync w/ errors: %s
-
- 最後の同期: %s
-
- 同期していません
-
-
- オプション
-
-
- バックグラウンド同期
-
- バックグラウンド同期は無効になっています
-
- 現在の設定: %s
-
-
- Wi-Fi のみ
-
- Wi-Fi が有効なときだけバックグラウンドで同期する
-
- Background synchronization will always occur
-
-
- アクション
-
-
- Synchronize now
-
- ログインと同期
-
-
- ログインアカウント:
-
-
- Status report
-
-
- Click to send a report to the Astrid team
-
- Send report
-
-
- ログアウト
-
- すべての同期データを消去します
-
-
- ログアウトと同期データを消去しますか?
-
-
- There was a problem connecting to the network
- during the last sync with %s. Please try again later.
-
-
-
- 無効
- 15分毎
- 30分毎
- 1時間毎
- 3時間毎
- 6時間毎
- 12時間毎
- 毎日
- 3日に一度
- 毎週
-
-
+
+
+
+
+
+
+ 1年
+
+ %d 年
+
+
+
+ 1か月
+
+ %d か月
+
+
+
+ 1週間
+
+ %d 週間
+
+
+
+ 1 日
+
+ %d 日
+
+
+
+ 1 Weekday
+
+ %d Weekdays
+
+
+
+ 1 時間
+
+ %d 時間
+
+
+
+ 1 分
+
+ %d 分
+
+
+
+ 1 秒
+
+ %d 秒
+
+
+
+ 1 時間
+
+ %d 時間
+
+
+
+ 1 分
+
+ %d 分
+
+
+
+ 1 秒
+
+ %d 秒
+
+
+
+ タスク 1 件
+
+ タスク %d 件
+
+
+
+ 1人
+
+ %d人
+
+
+
+ Today
+
+
+ Tomorrow
+
+
+ 昨日
+
+
+ 明日
+
+
+ 昨日
+
+
+
+
+ 確認
+
+
+ 確認
+
+
+ インフォメーション
+
+
+ エラー
+
+
+ 保存
+
+
+ はい
+
+
+ いいえ
+
+
+ 閉じる
+
+
+ 完了
+
+
+ Oops, looks like an error occurred! Here\'s what happened:\n\n%s
+
+
+
+ Oops, looks like an error occurred!
+
+
+ お待ちください
+
+
+
+
+ タスクの同期中...
+
+
+ 同期中...
+
+
+ 同期
+
+
+ Sync now
+
+
+ Astrid.com, Google Tasks, saved data, local backup
+
+
+ 接続エラー!インターネットに接続できるか確認してください。
+
+
+
+
+ 状況
+
+
+ Status: %s
+
+ Not logged in
+
+ 同期中
+
+ 前回の同期:\n%s
+
+ 失敗: %s
+
+ Sync w/ errors: %s
+
+ 最後の同期: %s
+
+ 同期していません
+
+
+ オプション
+
+
+ バックグラウンド同期
+
+ バックグラウンド同期は無効になっています
+
+ 現在の設定: %s
+
+
+ Wi-Fi のみ
+
+ Wi-Fi が有効なときだけバックグラウンドで同期する
+
+ Background synchronization will always occur
+
+
+
+ アクション
+
+
+ Synchronize now
+
+ ログインと同期
+
+
+ ログインアカウント:
+
+
+ Status report
+
+
+ Click to send a report to the Astrid team
+
+ Send report
+
+
+ ログアウト
+
+ すべての同期データを消去します
+
+
+ ログアウトと同期データを消去しますか?
+
+
+ There was a problem connecting to the network
+ during the last sync with %s. Please try again later.
+
+
+
+
+ 無効
+ 15分毎
+ 30分毎
+ 1時間毎
+ 3時間毎
+ 6時間毎
+ 12時間毎
+ 毎日
+ 3日に一度
+ 毎週
+
+
diff --git a/api/res/values-ko/strings.xml b/api/res/values-ko/strings.xml
index f1164f5ad..873e5888a 100755
--- a/api/res/values-ko/strings.xml
+++ b/api/res/values-ko/strings.xml
@@ -4,243 +4,243 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1년
-
- %d년
-
-
-
- 1개월
-
- %d개월
-
-
-
- 1주
-
- %d주
-
-
-
- 1일
-
- %d일
-
-
-
- 주중 1일
-
- 주중 %d일
-
-
-
- 1시간
-
- %d시간
-
-
-
- 1분
-
- %d분
-
-
-
- 1초
-
- %d초
-
-
-
- 1시간
-
- %d시간
-
-
-
- 1분
-
- %d분
-
-
-
- 1초
-
- %d초
-
-
-
- 1 일정
-
- %d 일정
-
-
-
- 1 사람
-
- %d 사람
-
-
-
- 오늘
-
-
- 내일
-
-
- 어제
-
-
- 내일
-
-
- 어제
-
-
-
-
- 확인?
-
-
- 질문:
-
-
- 정보
-
-
- 에러!
-
-
- 저장
-
-
- 예
-
-
- 아니요
-
-
- 닫기
-
-
- 마침
-
-
- 에러가 발생한 것 같습니다! 발생한 에러는 다음과 같습니다:\n\n%s
-
-
- 에러가 발생한 것 같습니다!
-
-
- 잠시 기다리세요...
-
-
-
-
- 일정을 동기화 중입니다...
-
-
- 동기화하는 중...
-
-
- 동기화 & 백업
-
-
- 지금 동기화하기
-
-
- Astrid.com, 구글 일정, 저장한 자료, 로컬 백업
-
-
- 연결 오류! 인터넷 연결을 확인하세요.
-
-
-
-
- 상태
-
-
- 상태: %s
-
- 로그인 안 됨
-
- 동기화 진행 중...
-
- 마지막 동기화: \n%s
-
- 실패: %s
-
- 동기화 중 에러: %s
-
- 마지막 동기화 성공시간: %s
-
- 동기화 한 적이 없습니다!
-
-
- 설정
-
-
- 백그라운드 동기화
-
- 백그라운드 동기화를 사용하지 않습니다.
-
- 현재 설정: %s
-
-
- WiFi 설정
-
- 백그라운드 동기화는 WiFi 지역에서만 작동합니다.
-
- 백그라운드 동기화는 항상 작동합니다.
-
-
- 동작
-
-
- 지금 동기화하기
-
- 로그인 & 동기화!
-
-
- 로그인하기:
-
-
- 상태 보고
-
-
- 아스트리드 팀에게 보고서를 보내려면 클릭하세요
-
- 보고서 보내기
-
-
- 로그아웃
-
- 모든 동기화 자료 삭제
-
-
- 로그아웃 / 모든 동기화 데이터 삭제?
-
-
- %s 과 마지막 동기화 중에 네트워크 연결 문제가 있었습니다.나중에 다시 시도해 주세요.
-
-
-
- 사용안함
- 15분마다
- 30분마다
- 매시간
- 3시간마다
- 6시간마다
- 12시간마다
- 매일
- 3일마다
- 일주일마다
-
-
+
+
+
+
+
+
+ 1년
+
+ %d년
+
+
+
+ 1개월
+
+ %d개월
+
+
+
+ 1주
+
+ %d주
+
+
+
+ 1일
+
+ %d일
+
+
+
+ 주중 1일
+
+ 주중 %d일
+
+
+
+ 1시간
+
+ %d시간
+
+
+
+ 1분
+
+ %d분
+
+
+
+ 1초
+
+ %d초
+
+
+
+ 1시간
+
+ %d시간
+
+
+
+ 1분
+
+ %d분
+
+
+
+ 1초
+
+ %d초
+
+
+
+ 1 일정
+
+ %d 일정
+
+
+
+ 1 사람
+
+ %d 사람
+
+
+
+ 오늘
+
+
+ 내일
+
+
+ 어제
+
+
+ 내일
+
+
+ 어제
+
+
+
+
+ 확인?
+
+
+ 질문:
+
+
+ 정보
+
+
+ 에러!
+
+
+ 저장
+
+
+ 예
+
+
+ 아니요
+
+
+ 닫기
+
+
+ 마침
+
+
+ 에러가 발생한 것 같습니다! 발생한 에러는 다음과 같습니다:\n\n%s
+
+
+ 에러가 발생한 것 같습니다!
+
+
+ 잠시 기다리세요...
+
+
+
+
+ 일정을 동기화 중입니다...
+
+
+ 동기화하는 중...
+
+
+ 동기화 & 백업
+
+
+ 지금 동기화하기
+
+
+ Astrid.com, 구글 일정, 저장한 자료, 로컬 백업
+
+
+ 연결 오류! 인터넷 연결을 확인하세요.
+
+
+
+
+ 상태
+
+
+ 상태: %s
+
+ 로그인 안 됨
+
+ 동기화 진행 중...
+
+ 마지막 동기화: \n%s
+
+ 실패: %s
+
+ 동기화 중 에러: %s
+
+ 마지막 동기화 성공시간: %s
+
+ 동기화 한 적이 없습니다!
+
+
+ 설정
+
+
+ 백그라운드 동기화
+
+ 백그라운드 동기화를 사용하지 않습니다.
+
+ 현재 설정: %s
+
+
+ WiFi 설정
+
+ 백그라운드 동기화는 WiFi 지역에서만 작동합니다.
+
+ 백그라운드 동기화는 항상 작동합니다.
+
+
+ 동작
+
+
+ 지금 동기화하기
+
+ 로그인 & 동기화!
+
+
+ 로그인하기:
+
+
+ 상태 보고
+
+
+ 아스트리드 팀에게 보고서를 보내려면 클릭하세요
+
+ 보고서 보내기
+
+
+ 로그아웃
+
+ 모든 동기화 자료 삭제
+
+
+ 로그아웃 / 모든 동기화 데이터 삭제?
+
+
+ %s 과 마지막 동기화 중에 네트워크 연결 문제가 있었습니다.나중에 다시 시도해 주세요.
+
+
+
+ 사용안함
+ 15분마다
+ 30분마다
+ 매시간
+ 3시간마다
+ 6시간마다
+ 12시간마다
+ 매일
+ 3일마다
+ 일주일마다
+
+
diff --git a/api/res/values-nb/strings.xml b/api/res/values-nb/strings.xml
index 57bb8a460..983f6b81a 100644
--- a/api/res/values-nb/strings.xml
+++ b/api/res/values-nb/strings.xml
@@ -1,102 +1,104 @@
-
- 1 år
- %d år
-
-
- 1 måned
- %d måneder
-
-
- 1 uke
- %d uker
-
-
- 1 dag
- %d dager
-
-
- 1 ukesdag
- %d Weekdays
-
-
- 1 time
- %d timer
-
-
- 1 minutt
- %d minutter
-
-
- 1 sekund
- %d sekunder
-
-
- 1 t
- %d t
-
-
- 1 min
- %d min
-
-
- 1 s
- %d s
-
-
- 1 oppgave
- %d oppgaver
-
-
- 1 person
- %d people
-
- I dag
- I morgen
- I går
- Bekreft?
- Spørsmål:
- Informasjon
- Feil!
- Lagre
- Ja
- Nei
- Lukk
- Utført
- Oi, det oppstod en feil! Dette skjedde:\n\n%s
- Oi, det oppstod en feil!
- Vennligst vent...
- Synkroniserer oppgavene dine...
- Synkroniserer...
- Tilkoblingsfeil! Kontroller tilkoblingen til Internett
- Synkronisering pågår...
- Siste synkronisering:\n%s
- Mislykket: %s
- Siste vellykkede synkronisering: %s
- Aldri synkronisert!
- Alternativer
- Bakgrunnssynkronisering
- Bakgrunnssynkronisering er deaktivert
- Aktuell innstilling: %s
- Bare Wifi Innstilling
- Bakgrunnssynkronisering skjer kun med Wifi-tilkobling
- Bakgrunnssynkronisering skjer alltid
- Handlinger
- Logg inn & Synkroniser!
- Logg ut
- Sletter all synkroniseringsdata
- Logg ut / slett synkroniseringsdata?
-
- deaktiver
- hvert kvarter
- hver halvtime
- hver time
- hver tredje time
- hver sjette time
- hver tolvte time
- daglig
- hver tredje dag
- hver uke
-
+
+ 1 år
+ %d år
+
+
+ 1 måned
+ %d måneder
+
+
+ 1 uke
+ %d uker
+
+
+ 1 dag
+ %d dager
+
+
+ 1 ukesdag
+ %d Weekdays
+
+
+ 1 time
+ %d timer
+
+
+ 1 minutt
+ %d minutter
+
+
+ 1 sekund
+ %d sekunder
+
+
+ 1 t
+ %d t
+
+
+ 1 min
+ %d min
+
+
+ 1 s
+ %d s
+
+
+ 1 oppgave
+ %d oppgaver
+
+
+ 1 person
+ %d people
+
+ I dag
+ I morgen
+ I går
+ Bekreft?
+ Spørsmål:
+ Informasjon
+ Feil!
+ Lagre
+ Ja
+ Nei
+ Lukk
+ Utført
+ Oi, det oppstod en feil! Dette skjedde:\n\n%s
+ Oi, det oppstod en feil!
+ Vennligst vent...
+ Synkroniserer oppgavene dine...
+ Synkroniserer...
+ Tilkoblingsfeil! Kontroller tilkoblingen til Internett
+ Synkronisering pågår...
+ Siste synkronisering:\n%s
+ Mislykket: %s
+ Siste vellykkede synkronisering: %s
+ Aldri synkronisert!
+ Alternativer
+ Bakgrunnssynkronisering
+ Bakgrunnssynkronisering er deaktivert
+ Aktuell innstilling: %s
+ Bare Wifi Innstilling
+ Bakgrunnssynkronisering skjer kun med
+ Wifi-tilkobling
+
+ Bakgrunnssynkronisering skjer alltid
+ Handlinger
+ Logg inn & Synkroniser!
+ Logg ut
+ Sletter all synkroniseringsdata
+ Logg ut / slett synkroniseringsdata?
+
+ deaktiver
+ hvert kvarter
+ hver halvtime
+ hver time
+ hver tredje time
+ hver sjette time
+ hver tolvte time
+ daglig
+ hver tredje dag
+ hver uke
+
diff --git a/api/res/values-nl/strings.xml b/api/res/values-nl/strings.xml
index 50f5c74f8..144096d17 100755
--- a/api/res/values-nl/strings.xml
+++ b/api/res/values-nl/strings.xml
@@ -4,243 +4,248 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 jaar
-
- %d jaren
-
-
-
- 1 maand
-
- %d maanden
-
-
-
- 1 week
-
- %d weken
-
-
-
- 1 dag
-
- %d dagen
-
-
-
- 1 weekdag
-
- %d weekdagen
-
-
-
- 1 uur
-
- %d uren
-
-
-
- 1 minuut
-
- %d minuten
-
-
-
- 1 seconde
-
- %d seconden
-
-
-
- 1 u.
-
- %d u.
-
-
-
- 1 m.
-
- %d m.
-
-
-
- 1 s.
-
- %d s.
-
-
-
- 1 taak
-
- %d taken
-
-
-
- 1 persoon
-
- %d personen
-
-
-
- Vandaag
-
-
- Morgen
-
-
- Gisteren
-
-
- mrgn
-
-
- gisteren
-
-
-
-
- OK?
-
-
- Vraag:
-
-
- Informatie
-
-
- Fout!
-
-
- Opslaan
-
-
- Ja
-
-
- Nee
-
-
- Sluit
-
-
- Gedaan
-
-
- Er is een fout opgetreden:\n\n%s
-
-
- Er is een fout opgetreden!
-
-
- Even geduld a.u.b.
-
-
-
-
- Taken synchroniseren...
-
-
- Synchroniseren…
-
-
- Synchronisatie
-
-
- Nu synchroniseren
-
-
- Astrid.com, Google Taken, opgeslagen data, lokale back-up
-
-
- Verbindingsfout! Controleer de internetverbinding
-
-
-
-
- Status
-
-
- Status: %s
-
- Niet aangemeld
-
- Synchronisatie bezig...
-
- Vorige:\n%s
-
- Mislukt op: %s
-
- Gesync. met fouten: %s
-
- Gelukt op: %s
-
- Nooit gesynct!
-
-
- Opties
-
-
- Achtergrond synchronisatie
-
- Achtergrond synchronisatie uitgeschakeld
-
- Huidige instelling: %s
-
-
- Alleen via WiFi
-
- Achtergrond synchronisatie alleen met WiFi aan
-
- Achtergrond synchronisatie altijd aan
-
-
- Acties
-
-
- Nu synchroniseren
-
- Aanmelden & Sync.
-
-
- Aangemeld als:
-
-
- Statusrapport
-
-
- Klik om een rapport naar het Astrid team te versturen
-
- Rapport verzenden
-
-
- Afmelden
-
- Alle synchronisatie gegevens verwijderen
-
-
- Afmelden / synchronisatie gegevens verwijderen?
-
-
- Er was een probleem met de netwerkverbinding tijdens de laatste synchronisatie met %s. Probeer het a.u.b. later nog eens.
-
-
-
- uitschakelen
- elke 15 min.
- elke 30 min.
- elk uur
- elke 3 uur
- elke 6 uur
- elke 12 uur
- elke dag
- elke 3 dagen
- elke week
-
-
+
+
+
+
+
+
+ 1 jaar
+
+ %d jaren
+
+
+
+ 1 maand
+
+ %d maanden
+
+
+
+ 1 week
+
+ %d weken
+
+
+
+ 1 dag
+
+ %d dagen
+
+
+
+ 1 weekdag
+
+ %d weekdagen
+
+
+
+ 1 uur
+
+ %d uren
+
+
+
+ 1 minuut
+
+ %d minuten
+
+
+
+ 1 seconde
+
+ %d seconden
+
+
+
+ 1 u.
+
+ %d u.
+
+
+
+ 1 m.
+
+ %d m.
+
+
+
+ 1 s.
+
+ %d s.
+
+
+
+ 1 taak
+
+ %d taken
+
+
+
+ 1 persoon
+
+ %d personen
+
+
+
+ Vandaag
+
+
+ Morgen
+
+
+ Gisteren
+
+
+ mrgn
+
+
+ gisteren
+
+
+
+
+ OK?
+
+
+ Vraag:
+
+
+ Informatie
+
+
+ Fout!
+
+
+ Opslaan
+
+
+ Ja
+
+
+ Nee
+
+
+ Sluit
+
+
+ Gedaan
+
+
+ Er is een fout opgetreden:\n\n%s
+
+
+ Er is een fout opgetreden!
+
+
+ Even geduld a.u.b.
+
+
+
+
+ Taken synchroniseren...
+
+
+ Synchroniseren…
+
+
+ Synchronisatie
+
+
+ Nu synchroniseren
+
+
+ Astrid.com, Google Taken, opgeslagen data, lokale back-up
+
+
+ Verbindingsfout! Controleer de internetverbinding
+
+
+
+
+ Status
+
+
+ Status: %s
+
+ Niet aangemeld
+
+ Synchronisatie bezig...
+
+ Vorige:\n%s
+
+ Mislukt op: %s
+
+ Gesync. met fouten: %s
+
+ Gelukt op: %s
+
+ Nooit gesynct!
+
+
+ Opties
+
+
+ Achtergrond synchronisatie
+
+ Achtergrond synchronisatie uitgeschakeld
+
+ Huidige instelling: %s
+
+
+ Alleen via WiFi
+
+ Achtergrond synchronisatie alleen met WiFi aan
+
+
+ Achtergrond synchronisatie altijd aan
+
+
+ Acties
+
+
+ Nu synchroniseren
+
+ Aanmelden & Sync.
+
+
+ Aangemeld als:
+
+
+ Statusrapport
+
+
+ Klik om een rapport naar het Astrid team te
+ versturen
+
+
+ Rapport verzenden
+
+
+ Afmelden
+
+ Alle synchronisatie gegevens verwijderen
+
+
+ Afmelden / synchronisatie gegevens verwijderen?
+
+
+ Er was een probleem met de netwerkverbinding tijdens de
+ laatste synchronisatie met %s. Probeer het a.u.b. later nog eens.
+
+
+
+
+ uitschakelen
+ elke 15 min.
+ elke 30 min.
+ elk uur
+ elke 3 uur
+ elke 6 uur
+ elke 12 uur
+ elke dag
+ elke 3 dagen
+ elke week
+
+
diff --git a/api/res/values-pl/strings.xml b/api/res/values-pl/strings.xml
index 93e29ee4d..5fce6eaba 100755
--- a/api/res/values-pl/strings.xml
+++ b/api/res/values-pl/strings.xml
@@ -4,243 +4,250 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 rok
-
- %d lat
-
-
-
- 1 miesiąc
-
- %d miesięcy
-
-
-
- 1 tydzień
-
- %d tygodni
-
-
-
- 1 dzień
-
- %d dni
-
-
-
- 1 dzień roboczy
-
- %d dni roboczych
-
-
-
- 1 godzina
-
- %d godzin
-
-
-
- 1 minuta
-
- %d minut
-
-
-
- 1 sekunda
-
- %d sekund
-
-
-
- 1 godz.
-
- %d godz.
-
-
-
- 1 min.
-
- %d min.
-
-
-
- 1 sek.
-
- %d sek.
-
-
-
- 1 zadanie
-
- %d zadań
-
-
-
- 1 osoba
-
- %d osób
-
-
-
- Dzisiaj
-
-
- Jutro
-
-
- Wczoraj
-
-
- jtr
-
-
- wcz
-
-
-
-
- Potwierdzić?
-
-
- Pytanie:
-
-
- Informacja
-
-
- Błąd!
-
-
- Zapisz
-
-
- Tak
-
-
- Nie
-
-
- Zamknij
-
-
- Ukończone
-
-
- Ups! Wygląda na to, że wystąpił jakiś błąd! Oto, co się stało:\n\n%s
-
-
- Ups! Wygląda na to, że wystąpił jakiś błąd!
-
-
- Proszę czekać...
-
-
-
-
- Synchronizowanie Twoich zadań...
-
-
- Synchronizacja...
-
-
- Synchronizacja
-
-
- Zsynchronizuj
-
-
- Astrid.com, Zadania Google, zapisane dane, lokalna kopia zapasowa
-
-
- Błąd połączenia! Sprawdź swoje połączenie z Internetem!
-
-
-
-
- Stan
-
-
- Status: %s
-
- Niezalogowany
-
- Synchronizacja trwa...
-
- Ostatnia synchronizacja:\n%s
-
- Nieudana: %s
-
- Synch w/ Błędy: %s
-
- Ostatnia udana synchronizacja: %s
-
- Nigdy nie synchronizowano!
-
-
- Opcje
-
-
- Synchronizacja w tle
-
- Synchronizacja w tle wyłączona
-
- Aktualnie ustawione na: %s
-
-
- Tylko połączenie Wi-Fi
-
- Synchronizacja w tle przebiega tylko poprzez Wi-Fi
-
- Synchronizowanie w tle zawsze, niezależnie od rodzaju połączenia
-
-
- Działania
-
-
- Synchronizuj teraz
-
- Zaloguj & Synchronizuj!
-
-
- Zalogowany jako:
-
-
- Raport statusu
-
-
- Kliknij by wysłać raport do zespłu Astrid
-
- Wyślij raport
-
-
- Wyloguj
-
- Czyści wszystkie dane synchronizacji
-
-
- Wyloguj / wyczyść dane synchronizacji?
-
-
- Wystąpił problem łączenia się z siecią w trakcie ostatniej synchronizacji z %s. Spróbuj później.
-
-
-
- Wyłączone
- co 15 minut
- co 30 minut
- co godzinę
- co 3 godziny
- co 6 godzin
- co 12 godzin
- raz dziennie
- co 3 dni
- co tydzień
-
-
+
+
+
+
+
+
+ 1 rok
+
+ %d lat
+
+
+
+ 1 miesiąc
+
+ %d miesięcy
+
+
+
+ 1 tydzień
+
+ %d tygodni
+
+
+
+ 1 dzień
+
+ %d dni
+
+
+
+ 1 dzień roboczy
+
+ %d dni roboczych
+
+
+
+ 1 godzina
+
+ %d godzin
+
+
+
+ 1 minuta
+
+ %d minut
+
+
+
+ 1 sekunda
+
+ %d sekund
+
+
+
+ 1 godz.
+
+ %d godz.
+
+
+
+ 1 min.
+
+ %d min.
+
+
+
+ 1 sek.
+
+ %d sek.
+
+
+
+ 1 zadanie
+
+ %d zadań
+
+
+
+ 1 osoba
+
+ %d osób
+
+
+
+ Dzisiaj
+
+
+ Jutro
+
+
+ Wczoraj
+
+
+ jtr
+
+
+ wcz
+
+
+
+
+ Potwierdzić?
+
+
+ Pytanie:
+
+
+ Informacja
+
+
+ Błąd!
+
+
+ Zapisz
+
+
+ Tak
+
+
+ Nie
+
+
+ Zamknij
+
+
+ Ukończone
+
+
+ Ups! Wygląda na to, że wystąpił jakiś błąd! Oto, co się stało:\n\n%s
+
+
+
+ Ups! Wygląda na to, że wystąpił jakiś błąd!
+
+
+ Proszę czekać...
+
+
+
+
+ Synchronizowanie Twoich zadań...
+
+
+ Synchronizacja...
+
+
+ Synchronizacja
+
+
+ Zsynchronizuj
+
+
+ Astrid.com, Zadania Google, zapisane dane, lokalna kopia zapasowa
+
+
+
+ Błąd połączenia! Sprawdź swoje połączenie z Internetem!
+
+
+
+
+ Stan
+
+
+ Status: %s
+
+ Niezalogowany
+
+ Synchronizacja trwa...
+
+ Ostatnia synchronizacja:\n%s
+
+ Nieudana: %s
+
+ Synch w/ Błędy: %s
+
+ Ostatnia udana synchronizacja: %s
+
+ Nigdy nie synchronizowano!
+
+
+ Opcje
+
+
+ Synchronizacja w tle
+
+ Synchronizacja w tle wyłączona
+
+ Aktualnie ustawione na: %s
+
+
+ Tylko połączenie Wi-Fi
+
+ Synchronizacja w tle przebiega tylko poprzez Wi-Fi
+
+
+ Synchronizowanie w tle zawsze, niezależnie od
+ rodzaju połączenia
+
+
+
+ Działania
+
+
+ Synchronizuj teraz
+
+ Zaloguj & Synchronizuj!
+
+
+ Zalogowany jako:
+
+
+ Raport statusu
+
+
+ Kliknij by wysłać raport do zespłu Astrid
+
+ Wyślij raport
+
+
+ Wyloguj
+
+ Czyści wszystkie dane synchronizacji
+
+
+ Wyloguj / wyczyść dane synchronizacji?
+
+
+ Wystąpił problem łączenia się z siecią w trakcie ostatniej
+ synchronizacji z %s. Spróbuj później.
+
+
+
+
+ Wyłączone
+ co 15 minut
+ co 30 minut
+ co godzinę
+ co 3 godziny
+ co 6 godzin
+ co 12 godzin
+ raz dziennie
+ co 3 dni
+ co tydzień
+
+
diff --git a/api/res/values-pt-rBR/strings.xml b/api/res/values-pt-rBR/strings.xml
index 93d77a5f4..147ac9bf1 100755
--- a/api/res/values-pt-rBR/strings.xml
+++ b/api/res/values-pt-rBR/strings.xml
@@ -4,243 +4,253 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 ano
-
- %d anos
-
-
-
- 1 mês
-
- %d meses
-
-
-
- 1 semana
-
- %d semanas
-
-
-
- 1 dia
-
- %d dias
-
-
-
- 1 dia útil
-
- %d dias úteis
-
-
-
- 1 hora
-
- %d horas
-
-
-
- 1 minuto
-
- %d minutos
-
-
-
- 1 segundo
-
- %d segundos
-
-
-
- 1 h
-
- %d h
-
-
-
- 1 min
-
- %d min
-
-
-
- 1 s
-
- %d s
-
-
-
- 1 tarefa
-
- %d tarefas
-
-
-
- 1 pessoa
-
- %d pessoas
-
-
-
- Hoje
-
-
- Amanhã
-
-
- Ontem
-
-
- amanhã
-
-
- ontem
-
-
-
-
- Confirmar?
-
-
- Pergunta:
-
-
- Informações
-
-
- Erro!
-
-
- Salvar
-
-
- Sim
-
-
- Não
-
-
- Fechar
-
-
- Feito
-
-
- Opa, parece que ocorreu um erro! Aqui está o que aconteceu:\n\n%s
-
-
- Opa, parece que ocorreu um erro!
-
-
- Por favor, aguarde...
-
-
-
-
- Sincronizando suas tarefas...
-
-
- Sincronizando...
-
-
- Sincronização
-
-
- Sync now
-
-
- Astrid.com, Google Tasks, dados salvos, backup local
-
-
- Erro na Conexão! Verifique sua conexão com a internet.
-
-
-
-
- Estado
-
-
- Status: %s
-
- Não Registrado
-
- Sincronizando...
-
- Última sincronização:\n%s
-
- Falhou em: %s
-
- Sicronizou com erros: %s
-
- Última sincronização com sucesso: %s
-
- Nunca sincronizado!
-
-
- Opções
-
-
- Sincronização em segundo plano
-
- O serviço de sincronização em segundo plano está desativado
-
- Atualmente definido para: %s
-
-
- Configuração Somente Wifi
-
- Sincronização em segundo plano só ocorre se conectado ao Wifi
-
- Sincronização em segundo plano sempre ocorre
-
-
- Ações
-
-
- Sincronizar agora
-
- Conectar e sincronizar!
-
-
- Conectado como:
-
-
- Relatório de status
-
-
- Clique para enviar um relatório para a equipe do Astrid
-
- Enviar relatório
-
-
- Desconectar
-
- Limpar todos os dados de sincronização
-
-
- Desconectar / limpar dados de sincronização?
-
-
- Houve um problema na conexão durante a última sincronia com %s. Por favor tente novamente mais tarde.
-
-
-
- desabilitar
- a cada quinze minutos
- a cada trinta minutos
- a cada hora
- a cada três horas
- a cada seis horas
- a cada doze horas
- diariamente
- a cada três dias
- semanalmente
-
-
+
+
+
+
+
+
+ 1 ano
+
+ %d anos
+
+
+
+ 1 mês
+
+ %d meses
+
+
+
+ 1 semana
+
+ %d semanas
+
+
+
+ 1 dia
+
+ %d dias
+
+
+
+ 1 dia útil
+
+ %d dias úteis
+
+
+
+ 1 hora
+
+ %d horas
+
+
+
+ 1 minuto
+
+ %d minutos
+
+
+
+ 1 segundo
+
+ %d segundos
+
+
+
+ 1 h
+
+ %d h
+
+
+
+ 1 min
+
+ %d min
+
+
+
+ 1 s
+
+ %d s
+
+
+
+ 1 tarefa
+
+ %d tarefas
+
+
+
+ 1 pessoa
+
+ %d pessoas
+
+
+
+ Hoje
+
+
+ Amanhã
+
+
+ Ontem
+
+
+ amanhã
+
+
+ ontem
+
+
+
+
+ Confirmar?
+
+
+ Pergunta:
+
+
+ Informações
+
+
+ Erro!
+
+
+ Salvar
+
+
+ Sim
+
+
+ Não
+
+
+ Fechar
+
+
+ Feito
+
+
+ Opa, parece que ocorreu um erro! Aqui está o que aconteceu:\n\n%s
+
+
+
+ Opa, parece que ocorreu um erro!
+
+
+ Por favor, aguarde...
+
+
+
+
+ Sincronizando suas tarefas...
+
+
+ Sincronizando...
+
+
+ Sincronização
+
+
+ Sync now
+
+
+ Astrid.com, Google Tasks, dados salvos, backup local
+
+
+ Erro na Conexão! Verifique sua conexão com a internet.
+
+
+
+
+ Estado
+
+
+ Status: %s
+
+ Não Registrado
+
+ Sincronizando...
+
+ Última sincronização:\n%s
+
+ Falhou em: %s
+
+ Sicronizou com erros: %s
+
+ Última sincronização com sucesso: %s
+
+ Nunca sincronizado!
+
+
+ Opções
+
+
+ Sincronização em segundo plano
+
+ O serviço de sincronização em segundo plano está
+ desativado
+
+
+ Atualmente definido para: %s
+
+
+ Configuração Somente Wifi
+
+ Sincronização em segundo plano só ocorre se
+ conectado ao Wifi
+
+
+ Sincronização em segundo plano sempre ocorre
+
+
+
+ Ações
+
+
+ Sincronizar agora
+
+ Conectar e sincronizar!
+
+
+ Conectado como:
+
+
+ Relatório de status
+
+
+ Clique para enviar um relatório para a equipe do
+ Astrid
+
+
+ Enviar relatório
+
+
+ Desconectar
+
+ Limpar todos os dados de sincronização
+
+
+ Desconectar / limpar dados de sincronização?
+
+
+ Houve um problema na conexão durante a última sincronia com
+ %s. Por favor tente novamente mais tarde.
+
+
+
+
+ desabilitar
+ a cada quinze minutos
+ a cada trinta minutos
+ a cada hora
+ a cada três horas
+ a cada seis horas
+ a cada doze horas
+ diariamente
+ a cada três dias
+ semanalmente
+
+
diff --git a/api/res/values-pt/strings.xml b/api/res/values-pt/strings.xml
index 4a32bbc53..23f4ae240 100644
--- a/api/res/values-pt/strings.xml
+++ b/api/res/values-pt/strings.xml
@@ -1,85 +1,85 @@
-
- 1 Ano
- %d Anos
-
-
- 1 Mês
- %d Meses
-
-
- 1 Semana
- %d Semanas
-
-
- 1 Dia
- %d Dias
-
-
- 1 Weekday
- %d Weekdays
-
-
- 1 Hora
- %d Horas
-
-
- 1 Minuto
- %d Minutos
-
-
- 1 Segundo
- %d Segundos
-
-
- 1 h
- %d h
-
-
- 1 min
- %d min
-
-
- 1 s
- %d s
-
-
- 1 tarefa
- %d tarefas
-
-
- 1 person
- %d people
-
- Hoje
- Amanhã
- Ontem
- Confirma?
- Pergunta:
- Informação
- Guardar
- Sim
- Não
- Fechar
- Concluído
- Por favor aguarde...
- A Sincronizar...
- Sincronização
- Estado
- Opções
- Acções
- Terminar sessão
-
- desactivar
- every fifteen minutes
- every thirty minutes
- every hour
- every three hours
- every six hours
- every twelve hours
- every day
- every three days
- every week
-
+
+ 1 Ano
+ %d Anos
+
+
+ 1 Mês
+ %d Meses
+
+
+ 1 Semana
+ %d Semanas
+
+
+ 1 Dia
+ %d Dias
+
+
+ 1 Weekday
+ %d Weekdays
+
+
+ 1 Hora
+ %d Horas
+
+
+ 1 Minuto
+ %d Minutos
+
+
+ 1 Segundo
+ %d Segundos
+
+
+ 1 h
+ %d h
+
+
+ 1 min
+ %d min
+
+
+ 1 s
+ %d s
+
+
+ 1 tarefa
+ %d tarefas
+
+
+ 1 person
+ %d people
+
+ Hoje
+ Amanhã
+ Ontem
+ Confirma?
+ Pergunta:
+ Informação
+ Guardar
+ Sim
+ Não
+ Fechar
+ Concluído
+ Por favor aguarde...
+ A Sincronizar...
+ Sincronização
+ Estado
+ Opções
+ Acções
+ Terminar sessão
+
+ desactivar
+ every fifteen minutes
+ every thirty minutes
+ every hour
+ every three hours
+ every six hours
+ every twelve hours
+ every day
+ every three days
+ every week
+
diff --git a/api/res/values-ru/strings.xml b/api/res/values-ru/strings.xml
index d6b15977e..a76e6d36f 100755
--- a/api/res/values-ru/strings.xml
+++ b/api/res/values-ru/strings.xml
@@ -4,243 +4,249 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 год
-
- %d года/лет
-
-
-
- 1 месяц
-
- %d месяца/месяцев
-
-
-
- 1 неделя
-
- %d недели/недель
-
-
-
- 1 день
-
- %d дня/дней
-
-
-
- 1 рабочий день
-
- %d рабочих дня
-
-
-
- 1 час
-
- %d часа/часов
-
-
-
- 1 минута
-
- %d минуты/минут
-
-
-
- 1 секунда
-
- %d секунды/секунд
-
-
-
- 1 час
-
- %d ч
-
-
-
- 1 мин
-
- %d мин
-
-
-
- 1 с
-
- %d с
-
-
-
- 1 задача
-
- %d задач(а/и)
-
-
-
- 1 человек
-
- %d человек
-
-
-
- Сегодня
-
-
- Завтра
-
-
- Вчера
-
-
- Завт
-
-
- Сег
-
-
-
-
- Подтвердить?
-
-
- Вопрос:
-
-
- Информация
-
-
- Ошибка!
-
-
- Готово
-
-
- Да
-
-
- Нет
-
-
- Закрыть
-
-
- Готово
-
-
- Ой, похоже произошла ошибка! Подробности ниже:\n\n%s
-
-
- Ой, похоже произошла ошибка!
-
-
- Пожалуйста, подождите…
-
-
-
-
- Синхронизация задач…
-
-
- Синхронизация…
-
-
- Синхронизация
-
-
- Синхронизировать
-
-
- Astrid.com, Задачи Google, сохраненные данные, локальная резервная копия
-
-
- Ошибка соединения! Проверьте подключение к интернету.
-
-
-
-
- Состояние
-
-
- Состояние: %s
-
- Вход не выполнен
-
- Процесс синхронизации…
-
- Последняя синхронизация\n%s
-
- Ошибка: %s
-
- Синхронизировано с ошибками: %s
-
- Последняя успешная синхронизация: %s
-
- Синхронизаций не выполнялось!
-
-
- Параметры
-
-
- Фоновая синхронизация
-
- Фоновая синхронизация отключена
-
- Сейчас установлено: %s
-
-
- Только через Wifi
-
- Фоновая синхронизация происходит только через Wifi
-
- Фоновая синхронизация происходит всегда
-
-
- Действия
-
-
- Синхронизировать
-
- Войти и синхронизировать!
-
-
- Вы вошли в систему как:
-
-
- Отчёт о состоянии
-
-
- Нажмите, чтобы отправить отчет команде Astrid
-
- Отправить отчет
-
-
- Выйти
-
- Очищает все данные синхронизации
-
-
- Выйти / очистить данные синхронизации?
-
-
- В процессе последней синхронизации с %s возникли проблемы подключения к сети. Пожалуйста, повторите попытку позже.
-
-
-
- отключить
- каждые 15 минут
- каждые 30 минут
- каждый час
- каждые 3 часа
- каждые 6 часов
- каждые 12 часов
- каждый день
- каждые 3 дня
- каждую неделю
-
-
+
+
+
+
+
+
+ 1 год
+
+ %d года/лет
+
+
+
+ 1 месяц
+
+ %d месяца/месяцев
+
+
+
+ 1 неделя
+
+ %d недели/недель
+
+
+
+ 1 день
+
+ %d дня/дней
+
+
+
+ 1 рабочий день
+
+ %d рабочих дня
+
+
+
+ 1 час
+
+ %d часа/часов
+
+
+
+ 1 минута
+
+ %d минуты/минут
+
+
+
+ 1 секунда
+
+ %d секунды/секунд
+
+
+
+ 1 час
+
+ %d ч
+
+
+
+ 1 мин
+
+ %d мин
+
+
+
+ 1 с
+
+ %d с
+
+
+
+ 1 задача
+
+ %d задач(а/и)
+
+
+
+ 1 человек
+
+ %d человек
+
+
+
+ Сегодня
+
+
+ Завтра
+
+
+ Вчера
+
+
+ Завт
+
+
+ Сег
+
+
+
+
+ Подтвердить?
+
+
+ Вопрос:
+
+
+ Информация
+
+
+ Ошибка!
+
+
+ Готово
+
+
+ Да
+
+
+ Нет
+
+
+ Закрыть
+
+
+ Готово
+
+
+ Ой, похоже произошла ошибка! Подробности ниже:\n\n%s
+
+
+ Ой, похоже произошла ошибка!
+
+
+ Пожалуйста, подождите…
+
+
+
+
+ Синхронизация задач…
+
+
+ Синхронизация…
+
+
+ Синхронизация
+
+
+ Синхронизировать
+
+
+ Astrid.com, Задачи Google, сохраненные данные, локальная резервная
+ копия
+
+
+
+ Ошибка соединения! Проверьте подключение к интернету.
+
+
+
+
+ Состояние
+
+
+ Состояние: %s
+
+ Вход не выполнен
+
+ Процесс синхронизации…
+
+ Последняя синхронизация\n%s
+
+ Ошибка: %s
+
+ Синхронизировано с ошибками: %s
+
+ Последняя успешная синхронизация: %s
+
+ Синхронизаций не выполнялось!
+
+
+ Параметры
+
+
+ Фоновая синхронизация
+
+ Фоновая синхронизация отключена
+
+ Сейчас установлено: %s
+
+
+ Только через Wifi
+
+ Фоновая синхронизация происходит только через Wifi
+
+
+ Фоновая синхронизация происходит всегда
+
+
+ Действия
+
+
+ Синхронизировать
+
+ Войти и синхронизировать!
+
+
+ Вы вошли в систему как:
+
+
+ Отчёт о состоянии
+
+
+ Нажмите, чтобы отправить отчет команде Astrid
+
+
+ Отправить отчет
+
+
+ Выйти
+
+ Очищает все данные синхронизации
+
+
+ Выйти / очистить данные синхронизации?
+
+
+ В процессе последней синхронизации с %s возникли проблемы
+ подключения к сети. Пожалуйста, повторите попытку позже.
+
+
+
+
+ отключить
+ каждые 15 минут
+ каждые 30 минут
+ каждый час
+ каждые 3 часа
+ каждые 6 часов
+ каждые 12 часов
+ каждый день
+ каждые 3 дня
+ каждую неделю
+
+
diff --git a/api/res/values-sv/strings.xml b/api/res/values-sv/strings.xml
index ab1a98f19..b96effc83 100755
--- a/api/res/values-sv/strings.xml
+++ b/api/res/values-sv/strings.xml
@@ -4,244 +4,250 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 år
-
- %d år
-
-
-
- 1 månad
-
- %d månader
-
-
-
- 1 vecka
-
- %d veckor
-
-
-
- 1 dag
-
- %d dagar
-
-
-
- 1 Veckodag
-
- %d Veckodagar
-
-
-
- 1 timme
-
- %d timmar
-
-
-
- 1 minut
-
- %d minuter
-
-
-
- 1 sekund
-
- %d sekunder
-
-
-
- 1 tim
-
- %d tim
-
-
-
- 1 min
-
- %d min
-
-
-
- 1 sek
-
- %d sek
-
-
-
- 1 uppgift
-
- %d uppgifter
-
-
-
- 1 person
-
- %d personer
-
-
-
- Today
-
-
- Tomorrow
-
-
- Igår
-
-
- imorn
-
-
- Igår
-
-
-
-
- Bekräfta?
-
-
- Fråga:
-
-
- Information
-
-
- Fel!
-
-
- Spara
-
-
- Ja
-
-
- Nej
-
-
- Stäng
-
-
- Klar
-
-
- Oj, det uppstod ett fel! Detta hände:\n\n%s
-
-
- Oj, det uppstod ett fel!
-
-
- Var god vänta...
-
-
-
-
- Synkroniserar dina uppgifter...
-
-
- Synkroniserar...
-
-
- Synkronisering
-
-
- Sync now
-
-
- Astrid.com, Google Aktiviteter, sparad data, lokal backup
-
-
- Tillkopplingsfel! Kontrollera din tillkoppling till internet.
-
-
-
-
- Status
-
-
- Status: %s
-
- Ej inloggad
-
- Synkronisering pågår...
-
- Synkroniserades senast:\n%s
-
- Misslyckades: %s
-
- Synkade med fel: %s
-
- Synkronisering lyckades senast: %s
-
- Aldrig synkroniserad!
-
-
- Alternativ
-
-
- Bakgrundssynkronisering
-
- Bakgrundssynkronisering är inaktiverad
-
- Aktuell inställning: %s
-
-
- Endast Wi-Fi Inställning
-
- Bakgrundssynkronisering sker endast när du är ansluten till Wi-Fi
-
- Bakgrundssynkronisering sker alltid
-
-
- Åtgärder
-
-
- Synkronisera nu
-
- Logga in & synkronisera!
-
-
- Inloggad som:
-
-
- Status rapport
-
-
- Klicka för att skicka en rapport till Astrid-teamet
-
- Skicka rapport
-
-
- Logga ut
-
- Rensar alla synkroniseringsdata
-
-
- Logga ut / rensa synkroniseringsdata?
-
-
- Ett nätverksproblem uppstod
-vid senaste synkroniseringen med %s. Vänligen försök igen.
-
-
-
- inaktivera
- varje kvartstimme
- varje halvtimme
- varje timme
- var tredje timme
- var sjätte timme
- var tolfte timme
- varje dag
- var tredje dag
- varje vecka
-
-
+
+
+
+
+
+
+ 1 år
+
+ %d år
+
+
+
+ 1 månad
+
+ %d månader
+
+
+
+ 1 vecka
+
+ %d veckor
+
+
+
+ 1 dag
+
+ %d dagar
+
+
+
+ 1 Veckodag
+
+ %d Veckodagar
+
+
+
+ 1 timme
+
+ %d timmar
+
+
+
+ 1 minut
+
+ %d minuter
+
+
+
+ 1 sekund
+
+ %d sekunder
+
+
+
+ 1 tim
+
+ %d tim
+
+
+
+ 1 min
+
+ %d min
+
+
+
+ 1 sek
+
+ %d sek
+
+
+
+ 1 uppgift
+
+ %d uppgifter
+
+
+
+ 1 person
+
+ %d personer
+
+
+
+ Today
+
+
+ Tomorrow
+
+
+ Igår
+
+
+ imorn
+
+
+ Igår
+
+
+
+
+ Bekräfta?
+
+
+ Fråga:
+
+
+ Information
+
+
+ Fel!
+
+
+ Spara
+
+
+ Ja
+
+
+ Nej
+
+
+ Stäng
+
+
+ Klar
+
+
+ Oj, det uppstod ett fel! Detta hände:\n\n%s
+
+
+ Oj, det uppstod ett fel!
+
+
+ Var god vänta...
+
+
+
+
+ Synkroniserar dina uppgifter...
+
+
+ Synkroniserar...
+
+
+ Synkronisering
+
+
+ Sync now
+
+
+ Astrid.com, Google Aktiviteter, sparad data, lokal backup
+
+
+ Tillkopplingsfel! Kontrollera din tillkoppling till internet.
+
+
+
+
+
+ Status
+
+
+ Status: %s
+
+ Ej inloggad
+
+ Synkronisering pågår...
+
+ Synkroniserades senast:\n%s
+
+ Misslyckades: %s
+
+ Synkade med fel: %s
+
+ Synkronisering lyckades senast: %s
+
+ Aldrig synkroniserad!
+
+
+ Alternativ
+
+
+ Bakgrundssynkronisering
+
+ Bakgrundssynkronisering är inaktiverad
+
+ Aktuell inställning: %s
+
+
+ Endast Wi-Fi Inställning
+
+ Bakgrundssynkronisering sker endast när du är
+ ansluten till Wi-Fi
+
+
+ Bakgrundssynkronisering sker alltid
+
+
+ Åtgärder
+
+
+ Synkronisera nu
+
+ Logga in & synkronisera!
+
+
+ Inloggad som:
+
+
+ Status rapport
+
+
+ Klicka för att skicka en rapport till
+ Astrid-teamet
+
+
+ Skicka rapport
+
+
+ Logga ut
+
+ Rensar alla synkroniseringsdata
+
+
+ Logga ut / rensa synkroniseringsdata?
+
+
+ Ett nätverksproblem uppstod
+ vid senaste synkroniseringen med %s. Vänligen försök igen.
+
+
+
+
+ inaktivera
+ varje kvartstimme
+ varje halvtimme
+ varje timme
+ var tredje timme
+ var sjätte timme
+ var tolfte timme
+ varje dag
+ var tredje dag
+ varje vecka
+
+
diff --git a/api/res/values-th/strings.xml b/api/res/values-th/strings.xml
index e11fcfee6..2cb6f36fe 100644
--- a/api/res/values-th/strings.xml
+++ b/api/res/values-th/strings.xml
@@ -1,77 +1,77 @@
-
- 1 Year
- %d Years
-
-
- 1 Month
- %d Months
-
-
- 1 Week
- %d Weeks
-
-
- 1 วัน
- %d วัน
-
-
- 1 Weekday
- %d Weekdays
-
-
- 1 ชั่วโมง
- %d ชั่วโมง
-
-
- 1 นาที
- %d นาที
-
-
- 1 วินาที
- %d วินาที
-
-
- 1 ช.ม.
- %d ช.ม.
-
-
- 1 นาที
- %d นาที
-
-
- 1 วิ.
- %d วิ.
-
-
- 1 task
- %d tasks
-
-
- 1 person
- %d people
-
- วันนี้
- พรุ่งนี้
- เมื่อวาน
- ข้อมูล
- บันทึก
- เสร็จแล้ว
- ข้อผิดพลาดในการเชื่อมต่อ! ตรวจดูการเชื่อมต่ออินเตอร์เน็ท
- สถานะ
- ตัวเลือก
- การดำเนินการ
-
- disable
- every fifteen minutes
- every thirty minutes
- every hour
- every three hours
- every six hours
- every twelve hours
- every day
- every three days
- every week
-
+
+ 1 Year
+ %d Years
+
+
+ 1 Month
+ %d Months
+
+
+ 1 Week
+ %d Weeks
+
+
+ 1 วัน
+ %d วัน
+
+
+ 1 Weekday
+ %d Weekdays
+
+
+ 1 ชั่วโมง
+ %d ชั่วโมง
+
+
+ 1 นาที
+ %d นาที
+
+
+ 1 วินาที
+ %d วินาที
+
+
+ 1 ช.ม.
+ %d ช.ม.
+
+
+ 1 นาที
+ %d นาที
+
+
+ 1 วิ.
+ %d วิ.
+
+
+ 1 task
+ %d tasks
+
+
+ 1 person
+ %d people
+
+ วันนี้
+ พรุ่งนี้
+ เมื่อวาน
+ ข้อมูล
+ บันทึก
+ เสร็จแล้ว
+ ข้อผิดพลาดในการเชื่อมต่อ! ตรวจดูการเชื่อมต่ออินเตอร์เน็ท
+ สถานะ
+ ตัวเลือก
+ การดำเนินการ
+
+ disable
+ every fifteen minutes
+ every thirty minutes
+ every hour
+ every three hours
+ every six hours
+ every twelve hours
+ every day
+ every three days
+ every week
+
diff --git a/api/res/values-tr/strings.xml b/api/res/values-tr/strings.xml
index 2eb388395..b32a64e3d 100755
--- a/api/res/values-tr/strings.xml
+++ b/api/res/values-tr/strings.xml
@@ -4,243 +4,245 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 Yıl
-
- %d Yıl
-
-
-
- 1 Ay
-
- %d Ay
-
-
-
- 1 Hafta
-
- %d hafta
-
-
-
- 1 Gün
-
- %d gün
-
-
-
- 1 haftaiçi gün
-
- %d haftaiçi günü
-
-
-
- 1 Saat
-
- %d saat
-
-
-
- 1 Dakika
-
- %d dakika
-
-
-
- 1 Saniye
-
- %d saniye
-
-
-
- 1 saat
-
- %d saat
-
-
-
- 1 dakika
-
- %d dakika
-
-
-
- 1 saniye
-
- %d saniye
-
-
-
- 1 görev
-
- %d görev
-
-
-
- 1 kişi
-
- %d kişi
-
-
-
- Bugün
-
-
- Yarın
-
-
- Dün
-
-
- Yarın
-
-
- Dün
-
-
-
-
- Onayla?
-
-
- Soru:
-
-
- Bilgi
-
-
- Hata!
-
-
- Kaydet
-
-
- Evet
-
-
- Hayır
-
-
- Kapat
-
-
- Yapıldı
-
-
- Oops, bir sorun meydana geldi! Olan şu:\n\n%s
-
-
- Oops, bir sorun meydana geldi!
-
-
- Lütfen bekleyin...
-
-
-
-
- Görevleriniz eşleniyor...
-
-
- Eşleniyor...
-
-
- Sync & backup
-
-
- Sync now
-
-
- Astrid.com, Google Tasks, saved data, local backup
-
-
- Bağlantı Hatası! Internet bağlantınızı denetleyin.
-
-
-
-
- Durum
-
-
- Durum: %s
-
- Oturum açılmadı
-
- Senkronizasyon devam ediyor...
-
- Son Senk.\n%s
-
- Başarısız: %s
-
- Hatalı Senkron: %s
-
- Son Başarılı Eşleme: %s
-
- Hiç Eşleme Yapılmamış!
-
-
- Seçenekler
-
-
- Arkaplanda senkronizasyon
-
- Arkaplanda senkronizasyon devre dışı
-
- Mevcut ayar: %s
-
-
- Sadece Wifi Ayarı
-
- Sadece Wifi ile arkaplan senkronu
-
- Arkaplan senkronu her zaman etkin
-
-
- Eylemler
-
-
- Şimdi Eşle
-
- Giriş Yapı & Senktronize et!
-
-
- Giriş yapılan hesap:
-
-
- Durum Raporu
-
-
- Astrid takımına bildirmek için tıklayın
-
- Rapor Gönder
-
-
- Çıkış Yap
-
- Bütün eşleme verilerini temizle
-
-
- Çıkış Yap / Senkron verisini sil?
-
-
- %s ile son eşleme yapılırken bir ağ bağlantı sorunu oluştu. Lütfen daha sonra yeniden deneyin.
-
-
-
- devre dışı bırak
- her 15 dakika
- her 30 dakika
- her saat
- her 3 saat
- her 6 saat
- her 12 saat
- hergün
- her 3 gün
- her hafta
-
-
+
+
+
+
+
+
+ 1 Yıl
+
+ %d Yıl
+
+
+
+ 1 Ay
+
+ %d Ay
+
+
+
+ 1 Hafta
+
+ %d hafta
+
+
+
+ 1 Gün
+
+ %d gün
+
+
+
+ 1 haftaiçi gün
+
+ %d haftaiçi günü
+
+
+
+ 1 Saat
+
+ %d saat
+
+
+
+ 1 Dakika
+
+ %d dakika
+
+
+
+ 1 Saniye
+
+ %d saniye
+
+
+
+ 1 saat
+
+ %d saat
+
+
+
+ 1 dakika
+
+ %d dakika
+
+
+
+ 1 saniye
+
+ %d saniye
+
+
+
+ 1 görev
+
+ %d görev
+
+
+
+ 1 kişi
+
+ %d kişi
+
+
+
+ Bugün
+
+
+ Yarın
+
+
+ Dün
+
+
+ Yarın
+
+
+ Dün
+
+
+
+
+ Onayla?
+
+
+ Soru:
+
+
+ Bilgi
+
+
+ Hata!
+
+
+ Kaydet
+
+
+ Evet
+
+
+ Hayır
+
+
+ Kapat
+
+
+ Yapıldı
+
+
+ Oops, bir sorun meydana geldi! Olan şu:\n\n%s
+
+
+ Oops, bir sorun meydana geldi!
+
+
+ Lütfen bekleyin...
+
+
+
+
+ Görevleriniz eşleniyor...
+
+
+ Eşleniyor...
+
+
+ Sync & backup
+
+
+ Sync now
+
+
+ Astrid.com, Google Tasks, saved data, local backup
+
+
+ Bağlantı Hatası! Internet bağlantınızı denetleyin.
+
+
+
+
+ Durum
+
+
+ Durum: %s
+
+ Oturum açılmadı
+
+ Senkronizasyon devam ediyor...
+
+ Son Senk.\n%s
+
+ Başarısız: %s
+
+ Hatalı Senkron: %s
+
+ Son Başarılı Eşleme: %s
+
+ Hiç Eşleme Yapılmamış!
+
+
+ Seçenekler
+
+
+ Arkaplanda senkronizasyon
+
+ Arkaplanda senkronizasyon devre dışı
+
+ Mevcut ayar: %s
+
+
+ Sadece Wifi Ayarı
+
+ Sadece Wifi ile arkaplan senkronu
+
+ Arkaplan senkronu her zaman etkin
+
+
+ Eylemler
+
+
+ Şimdi Eşle
+
+ Giriş Yapı & Senktronize et!
+
+
+ Giriş yapılan hesap:
+
+
+ Durum Raporu
+
+
+ Astrid takımına bildirmek için tıklayın
+
+ Rapor Gönder
+
+
+ Çıkış Yap
+
+ Bütün eşleme verilerini temizle
+
+
+ Çıkış Yap / Senkron verisini sil?
+
+
+ %s ile son eşleme yapılırken bir ağ bağlantı sorunu oluştu.
+ Lütfen daha sonra yeniden deneyin.
+
+
+
+
+ devre dışı bırak
+ her 15 dakika
+ her 30 dakika
+ her saat
+ her 3 saat
+ her 6 saat
+ her 12 saat
+ hergün
+ her 3 gün
+ her hafta
+
+
diff --git a/api/res/values-zh-rCN/strings.xml b/api/res/values-zh-rCN/strings.xml
index 4c081cda1..7cd58ce03 100755
--- a/api/res/values-zh-rCN/strings.xml
+++ b/api/res/values-zh-rCN/strings.xml
@@ -4,243 +4,243 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 年
-
- %d 年
-
-
-
- 1 个月
-
- %d 个月
-
-
-
- 1 周
-
- %d 周
-
-
-
- 1 天
-
- %d 天
-
-
-
- 1 个任务天
-
- %d 个任务天
-
-
-
- 1 小时
-
- %d 小时
-
-
-
- 1 分钟
-
- %d 分钟
-
-
-
- 1 秒
-
- %d 秒
-
-
-
- 1 小时
-
- %d 小时
-
-
-
- 1 分钟
-
- %d 分钟
-
-
-
- 1 秒
-
- %d 秒
-
-
-
- 1 个任务
-
- %d 个任务
-
-
-
- 一个人
-
- %d 个人
-
-
-
- 今天
-
-
- 明天
-
-
- 昨天
-
-
- 明天
-
-
- 昨天
-
-
-
-
- 确认?
-
-
- 问题:
-
-
- 信息
-
-
- 错误!
-
-
- 保存
-
-
- 确定
-
-
- 取消
-
-
- 关闭
-
-
- 完成
-
-
- 糟糕,发生错误!状况是:\n\n%s
-
-
- 糟糕,发生错误!
-
-
- 请稍候...
-
-
-
-
- 任务同步中...
-
-
- 正在同步中...
-
-
- 同步和备份
-
-
- Sync now
-
-
- Astrid.com,谷歌任务,已存数据,本地备份
-
-
- 连接错误!请检查您的因特网连接。
-
-
-
-
- 状态
-
-
- 状态:%s
-
- 未登陆
-
- 同步中...
-
- 上次同步:\n%s
-
- 失败:%s
-
- 同步 w/ 错误: %s 上次同步日期
-
- 上次成功同步:%s
-
- 未同步过!
-
-
- 选项
-
-
- 后台同步
-
- 后台同步已关闭
-
- 目前同步间隔:%s
-
-
- Wifi 才可使用的设置
-
- 使用 Wifi 才启动后台同步
-
- 总是使用后台同步
-
-
- 动作
-
-
- 现在同步
-
- 登陆并同步!
-
-
- 已经登录为:
-
-
- 状态报告
-
-
- 点击给 Astrid 团队发送报告
-
- 发送报告
-
-
- 登出
-
- 清除所有同步资料
-
-
- 登出/清除同步资料?
-
-
- 在最近与 %s 同步时网络连接发生问题。请重试。
-
-
-
- 停用
- 每15分钟
- 每30分钟
- 每小时
- 每3小时
- 每6小时
- 每12小时
- 每天
- 每3天
- 每周
-
-
+
+
+
+
+
+
+ 1 年
+
+ %d 年
+
+
+
+ 1 个月
+
+ %d 个月
+
+
+
+ 1 周
+
+ %d 周
+
+
+
+ 1 天
+
+ %d 天
+
+
+
+ 1 个任务天
+
+ %d 个任务天
+
+
+
+ 1 小时
+
+ %d 小时
+
+
+
+ 1 分钟
+
+ %d 分钟
+
+
+
+ 1 秒
+
+ %d 秒
+
+
+
+ 1 小时
+
+ %d 小时
+
+
+
+ 1 分钟
+
+ %d 分钟
+
+
+
+ 1 秒
+
+ %d 秒
+
+
+
+ 1 个任务
+
+ %d 个任务
+
+
+
+ 一个人
+
+ %d 个人
+
+
+
+ 今天
+
+
+ 明天
+
+
+ 昨天
+
+
+ 明天
+
+
+ 昨天
+
+
+
+
+ 确认?
+
+
+ 问题:
+
+
+ 信息
+
+
+ 错误!
+
+
+ 保存
+
+
+ 确定
+
+
+ 取消
+
+
+ 关闭
+
+
+ 完成
+
+
+ 糟糕,发生错误!状况是:\n\n%s
+
+
+ 糟糕,发生错误!
+
+
+ 请稍候...
+
+
+
+
+ 任务同步中...
+
+
+ 正在同步中...
+
+
+ 同步和备份
+
+
+ Sync now
+
+
+ Astrid.com,谷歌任务,已存数据,本地备份
+
+
+ 连接错误!请检查您的因特网连接。
+
+
+
+
+ 状态
+
+
+ 状态:%s
+
+ 未登陆
+
+ 同步中...
+
+ 上次同步:\n%s
+
+ 失败:%s
+
+ 同步 w/ 错误: %s 上次同步日期
+
+ 上次成功同步:%s
+
+ 未同步过!
+
+
+ 选项
+
+
+ 后台同步
+
+ 后台同步已关闭
+
+ 目前同步间隔:%s
+
+
+ Wifi 才可使用的设置
+
+ 使用 Wifi 才启动后台同步
+
+ 总是使用后台同步
+
+
+ 动作
+
+
+ 现在同步
+
+ 登陆并同步!
+
+
+ 已经登录为:
+
+
+ 状态报告
+
+
+ 点击给 Astrid 团队发送报告
+
+ 发送报告
+
+
+ 登出
+
+ 清除所有同步资料
+
+
+ 登出/清除同步资料?
+
+
+ 在最近与 %s 同步时网络连接发生问题。请重试。
+
+
+
+ 停用
+ 每15分钟
+ 每30分钟
+ 每小时
+ 每3小时
+ 每6小时
+ 每12小时
+ 每天
+ 每3天
+ 每周
+
+
diff --git a/api/res/values-zh-rTW/strings.xml b/api/res/values-zh-rTW/strings.xml
index 3696287af..bbde844ce 100755
--- a/api/res/values-zh-rTW/strings.xml
+++ b/api/res/values-zh-rTW/strings.xml
@@ -4,243 +4,243 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 年
-
- %d 年
-
-
-
- 1 個月
-
- %d 個月
-
-
-
- 1 週
-
- %d 週
-
-
-
- 1 天
-
- %d 天
-
-
-
- 1 個工作天
-
- %d 個工作天
-
-
-
- 1 小時
-
- %d 小時
-
-
-
- 1 分鐘
-
- %d 分鐘
-
-
-
- 1 秒
-
- %d 秒
-
-
-
- 1 小時
-
- %d 小時
-
-
-
- 1 分鐘
-
- %d 分鐘
-
-
-
- 1 秒
-
- %d 秒
-
-
-
- 1 個工作
-
- %d 個工作
-
-
-
- 一個人
-
- %d個人
-
-
-
- 今天
-
-
- 明天
-
-
- 昨天
-
-
- 明天
-
-
- 昨天
-
-
-
-
- 確認?
-
-
- 問題:
-
-
- 資訊
-
-
- 錯誤!
-
-
- 儲存
-
-
- 確定
-
-
- 取消
-
-
- 關閉
-
-
- 完成
-
-
- 糟糕,發生錯誤!狀況是:\n\n%s
-
-
- 糟糕,發生錯誤!
-
-
- 請稍候...
-
-
-
-
- 工作同步中...
-
-
- 正在同步中...
-
-
- 同步和備份
-
-
- Sync now
-
-
- Astrid.com,谷歌任務,已存數據,本地備份
-
-
- 連結錯誤! 檢查您的網際網路連線.
-
-
-
-
- 狀態
-
-
- 狀態:%s
-
- 未登陸
-
- 同步中...
-
- 上次同步:\n%s
-
- 失敗:%s
-
- 同步w/ 錯誤: %s 上次同步日期
-
- 上次成功同步:%s
-
- 未同步過!
-
-
- 選項
-
-
- 後台同步
-
- 後台同步已關閉
-
- 目前同步間隔:%s
-
-
- Wifi 才可使用的設置
-
- 使用 Wifi 才啟動後台同步
-
- 總是使用後台同步
-
-
- 動作
-
-
- 現在同步
-
- 登陸並同步!
-
-
- 已經登錄為:
-
-
- 狀態報告
-
-
- 點擊給 Astrid 團隊發送報告
-
- 發送報告
-
-
- 登出
-
- 清除所有同步資料
-
-
- 登出/清除同步資料?
-
-
- 在最近與%s 同步時網絡連接發生問題。請重試。
-
-
-
- 停用
- 每15分鐘
- 每30分鐘
- 每小時
- 每3小時
- 每6小時
- 每12小時
- 每天
- 每3天
- 每週
-
-
+
+
+
+
+
+
+ 1 年
+
+ %d 年
+
+
+
+ 1 個月
+
+ %d 個月
+
+
+
+ 1 週
+
+ %d 週
+
+
+
+ 1 天
+
+ %d 天
+
+
+
+ 1 個工作天
+
+ %d 個工作天
+
+
+
+ 1 小時
+
+ %d 小時
+
+
+
+ 1 分鐘
+
+ %d 分鐘
+
+
+
+ 1 秒
+
+ %d 秒
+
+
+
+ 1 小時
+
+ %d 小時
+
+
+
+ 1 分鐘
+
+ %d 分鐘
+
+
+
+ 1 秒
+
+ %d 秒
+
+
+
+ 1 個工作
+
+ %d 個工作
+
+
+
+ 一個人
+
+ %d個人
+
+
+
+ 今天
+
+
+ 明天
+
+
+ 昨天
+
+
+ 明天
+
+
+ 昨天
+
+
+
+
+ 確認?
+
+
+ 問題:
+
+
+ 資訊
+
+
+ 錯誤!
+
+
+ 儲存
+
+
+ 確定
+
+
+ 取消
+
+
+ 關閉
+
+
+ 完成
+
+
+ 糟糕,發生錯誤!狀況是:\n\n%s
+
+
+ 糟糕,發生錯誤!
+
+
+ 請稍候...
+
+
+
+
+ 工作同步中...
+
+
+ 正在同步中...
+
+
+ 同步和備份
+
+
+ Sync now
+
+
+ Astrid.com,谷歌任務,已存數據,本地備份
+
+
+ 連結錯誤! 檢查您的網際網路連線.
+
+
+
+
+ 狀態
+
+
+ 狀態:%s
+
+ 未登陸
+
+ 同步中...
+
+ 上次同步:\n%s
+
+ 失敗:%s
+
+ 同步w/ 錯誤: %s 上次同步日期
+
+ 上次成功同步:%s
+
+ 未同步過!
+
+
+ 選項
+
+
+ 後台同步
+
+ 後台同步已關閉
+
+ 目前同步間隔:%s
+
+
+ Wifi 才可使用的設置
+
+ 使用 Wifi 才啟動後台同步
+
+ 總是使用後台同步
+
+
+ 動作
+
+
+ 現在同步
+
+ 登陸並同步!
+
+
+ 已經登錄為:
+
+
+ 狀態報告
+
+
+ 點擊給 Astrid 團隊發送報告
+
+ 發送報告
+
+
+ 登出
+
+ 清除所有同步資料
+
+
+ 登出/清除同步資料?
+
+
+ 在最近與%s 同步時網絡連接發生問題。請重試。
+
+
+
+ 停用
+ 每15分鐘
+ 每30分鐘
+ 每小時
+ 每3小時
+ 每6小時
+ 每12小時
+ 每天
+ 每3天
+ 每週
+
+
diff --git a/api/res/values/colors.xml b/api/res/values/colors.xml
index 498c753f6..c1f3c8d3a 100644
--- a/api/res/values/colors.xml
+++ b/api/res/values/colors.xml
@@ -4,14 +4,14 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
+
+
#ffff5555#fffea400#ff33a5e8
- #ff808080
- #ff505050
+ #ff808080
+ #ff505050#ff202020
-
+
diff --git a/api/res/values/keys.xml b/api/res/values/keys.xml
index 0106ccb5e..a4262c09a 100644
--- a/api/res/values/keys.xml
+++ b/api/res/values/keys.xml
@@ -3,10 +3,10 @@
This file contains preference keys and preference list values.
These should not be translated
-->
-
-
-
-
+
+
+
+
0
@@ -20,8 +20,8 @@
259200604800
-
-
+
+
sync_statussync_bgwifi
@@ -33,5 +33,5 @@
sync_optionssync_last_error
-
+
diff --git a/api/res/values/strings.xml b/api/res/values/strings.xml
index 25eb24f78..6fd875b71 100644
--- a/api/res/values/strings.xml
+++ b/api/res/values/strings.xml
@@ -4,244 +4,249 @@
**
** See the file "LICENSE" for the full license governing this code.
-->
-
-
-
-
-
-
- 1 Year
-
- %d Years
-
-
-
- 1 Month
-
- %d Months
-
-
-
- 1 Week
-
- %d Weeks
-
-
-
- 1 Day
-
- %d Days
-
-
-
- 1 Weekday
-
- %d Weekdays
-
-
-
- 1 Hour
-
- %d Hours
-
-
-
- 1 Minute
-
- %d Minutes
-
-
-
- 1 Second
-
- %d Seconds
-
-
-
- 1 Hr
-
- %d Hrs
-
-
-
- 1 Min
-
- %d Min
-
-
-
- 1 Sec
-
- %d Sec
-
-
-
- 1 task
-
- %d tasks
-
-
-
- 1 person
-
- %d people
-
-
-
- Today
-
-
- Tomorrow
-
-
- Yesterday
-
-
- Tmrw
-
-
- Yest
-
-
-
-
- Confirm?
-
-
- Question:
-
-
- Information
-
-
- Error!
-
-
- Save
-
-
- Yes
-
-
- No
-
-
- Close
-
-
- Done
-
-
- Oops, looks like an error occurred! Here\'s what happened:\n\n%s
-
-
- Oops, looks like an error occurred!
-
-
- Please wait...
-
-
-
-
- Synchronizing your tasks...
-
-
- Synchronizing...
-
-
- Sync & backup
-
-
- Sync now
-
-
- Astrid.com, Google Tasks, saved data, local backup
-
-
- Connection Error! Check your Internet connection.
-
-
-
-
- Status
-
-
- Status: %s
-
- Not logged in
-
- Sync ongoing...
-
- Last sync:\n%s
-
- Failed on: %s
-
- Sync w/ errors: %s
-
- Last successful sync: %s
-
- Never synchronized!
-
-
- Options
-
-
- Background sync
-
- Background synchronization is disabled
-
- Currently set to: %s
-
-
- Wifi only setting
-
- Background synchronization only happens when on Wifi
-
- Background synchronization will always occur
-
-
- Actions
-
-
- Synchronize now
-
- Log in & synchronize!
-
-
- Logged in as:
-
-
- Status report
-
-
- Click to send a report to the Astrid team
-
- Send report
-
-
- Log out
-
- Clears all synchronization data
-
-
- Log out/clear synchronization data?
-
-
- There was a problem connecting to the network
- during the last sync with %s. Please try again later.
-
-
-
- disable
- every fifteen minutes
- every thirty minutes
- every hour
- every three hours
- every six hours
- every twelve hours
- every day
- every three days
- every week
-
-
+
+
+
+
+
+
+ 1 Year
+
+ %d Years
+
+
+
+ 1 Month
+
+ %d Months
+
+
+
+ 1 Week
+
+ %d Weeks
+
+
+
+ 1 Day
+
+ %d Days
+
+
+
+ 1 Weekday
+
+ %d Weekdays
+
+
+
+ 1 Hour
+
+ %d Hours
+
+
+
+ 1 Minute
+
+ %d Minutes
+
+
+
+ 1 Second
+
+ %d Seconds
+
+
+
+ 1 Hr
+
+ %d Hrs
+
+
+
+ 1 Min
+
+ %d Min
+
+
+
+ 1 Sec
+
+ %d Sec
+
+
+
+ 1 task
+
+ %d tasks
+
+
+
+ 1 person
+
+ %d people
+
+
+
+ Today
+
+
+ Tomorrow
+
+
+ Yesterday
+
+
+ Tmrw
+
+
+ Yest
+
+
+
+
+ Confirm?
+
+
+ Question:
+
+
+ Information
+
+
+ Error!
+
+
+ Save
+
+
+ Yes
+
+
+ No
+
+
+ Close
+
+
+ Done
+
+
+ Oops, looks like an error occurred! Here\'s what happened:\n\n%s
+
+
+
+ Oops, looks like an error occurred!
+
+
+ Please wait...
+
+
+
+
+ Synchronizing your tasks...
+
+
+ Synchronizing...
+
+
+ Sync & backup
+
+
+ Sync now
+
+
+ Astrid.com, Google Tasks, saved data, local backup
+
+
+ Connection Error! Check your Internet connection.
+
+
+
+
+ Status
+
+
+ Status: %s
+
+ Not logged in
+
+ Sync ongoing...
+
+ Last sync:\n%s
+
+ Failed on: %s
+
+ Sync w/ errors: %s
+
+ Last successful sync: %s
+
+ Never synchronized!
+
+
+ Options
+
+
+ Background sync
+
+ Background synchronization is disabled
+
+ Currently set to: %s
+
+
+ Wifi only setting
+
+ Background synchronization only happens when on
+ Wifi
+
+
+ Background synchronization will always occur
+
+
+
+ Actions
+
+
+ Synchronize now
+
+ Log in & synchronize!
+
+
+ Logged in as:
+
+
+ Status report
+
+
+ Click to send a report to the Astrid team
+
+ Send report
+
+
+ Log out
+
+ Clears all synchronization data
+
+
+ Log out/clear synchronization data?
+
+
+ There was a problem connecting to the network
+ during the last sync with %s. Please try again later.
+
+
+
+
+ disable
+ every fifteen minutes
+ every thirty minutes
+ every hour
+ every three hours
+ every six hours
+ every twelve hours
+ every day
+ every three days
+ every week
+
+
diff --git a/api/src/com/todoroo/andlib/data/AbstractDatabase.java b/api/src/com/todoroo/andlib/data/AbstractDatabase.java
index f24952551..2ff93f9d7 100644
--- a/api/src/com/todoroo/andlib/data/AbstractDatabase.java
+++ b/api/src/com/todoroo/andlib/data/AbstractDatabase.java
@@ -5,9 +5,6 @@
*/
package com.todoroo.andlib.data;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
@@ -24,25 +21,27 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.utility.AndroidUtilities;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+
/**
* AbstractDatabase is a database abstraction which wraps a SQLite database.
- *
+ *
* Users of this class are in charge of the database's lifecycle - ensuring that
* the database is open when needed and closed when usage is finished. Within an
* activity, this is typically accomplished through the onResume and onPause
* methods, though if the database is not needed for the activity's entire
* lifecycle, it can be closed earlier.
- *
+ *
* Direct querying is not recommended for type safety reasons. Instead, use one
* of the service classes to issue the request and return a {@link TodorooCursor}.
*
* @author Tim Su
- *
*/
@SuppressWarnings("nls")
abstract public class AbstractDatabase {
- // --- abstract methods
+ // --- abstract methods
/**
* @return database name
@@ -67,6 +66,7 @@ abstract public class AbstractDatabase {
/**
* Upgrades an open database from one version to the next
+ *
* @param oldVersion
* @param newVersion
* @return true if upgrade was handled, false otherwise
@@ -105,12 +105,12 @@ abstract public class AbstractDatabase {
}
protected void onDatabaseUpdated() {
- for(DatabaseUpdateListener listener : listeners) {
+ for (DatabaseUpdateListener listener : listeners) {
listener.onDatabaseUpdated();
}
}
- // --- internal implementation
+ // --- internal implementation
@Autowired
private ExceptionService exceptionService;
@@ -121,12 +121,13 @@ abstract public class AbstractDatabase {
/**
* Return the name of the table containing these models
+ *
* @param modelType
* @return
*/
public final Table getTable(Class extends AbstractModel> modelType) {
- for(Table table : getTables()) {
- if(table.modelClass.equals(modelType))
+ for (Table table : getTables()) {
+ if (table.modelClass.equals(modelType))
return table;
}
throw new UnsupportedOperationException("Unknown model class " + modelType); //$NON-NLS-1$
@@ -149,8 +150,8 @@ abstract public class AbstractDatabase {
}
protected synchronized final void initializeHelper() {
- if(helper == null) {
- if(ContextManager.getContext() == null)
+ if (helper == null) {
+ if (ContextManager.getContext() == null)
throw new NullPointerException("Null context creating database helper");
helper = new DatabaseHelper(ContextManager.getContext(),
getName(), null, getVersion());
@@ -164,7 +165,7 @@ abstract public class AbstractDatabase {
public synchronized final void openForWriting() {
initializeHelper();
- if(database != null && !database.isReadOnly() && database.isOpen())
+ if (database != null && !database.isReadOnly() && database.isOpen())
return;
try {
@@ -192,7 +193,7 @@ abstract public class AbstractDatabase {
*/
public synchronized final void openForReading() {
initializeHelper();
- if(database != null && database.isOpen())
+ if (database != null && database.isOpen())
return;
database = helper.getReadableDatabase();
}
@@ -201,7 +202,7 @@ abstract public class AbstractDatabase {
* Close the database if it has been opened previously
*/
public synchronized final void close() {
- if(database != null) {
+ if (database != null) {
database.close();
}
database = null;
@@ -220,7 +221,7 @@ abstract public class AbstractDatabase {
* @return sql database. opens database if not yet open
*/
public synchronized final SQLiteDatabase getDatabase() {
- if(database == null) {
+ if (database == null) {
AndroidUtilities.sleepDeep(300L);
openForWriting();
}
@@ -273,7 +274,7 @@ abstract public class AbstractDatabase {
/*
* @see android.database.sqlite.SQLiteDatabase#update(String table, ContentValues values, String whereClause, String[] whereArgs)
*/
- public synchronized int update(String table, ContentValues values, String whereClause, String[] whereArgs) {
+ public synchronized int update(String table, ContentValues values, String whereClause, String[] whereArgs) {
int result = getDatabase().update(table, values, whereClause, whereArgs);
onDatabaseUpdated();
return result;
@@ -287,7 +288,7 @@ abstract public class AbstractDatabase {
private class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context, String name,
- CursorFactory factory, int version) {
+ CursorFactory factory, int version) {
super(context, name, factory, version);
}
@@ -300,11 +301,11 @@ abstract public class AbstractDatabase {
SqlConstructorVisitor sqlVisitor = new SqlConstructorVisitor();
// create tables
- for(Table table : getTables()) {
+ for (Table table : getTables()) {
sql.append("CREATE TABLE IF NOT EXISTS ").append(table.name).append('(').
- append(AbstractModel.ID_PROPERTY).append(" INTEGER PRIMARY KEY AUTOINCREMENT");
- for(Property> property : table.getProperties()) {
- if(AbstractModel.ID_PROPERTY.name.equals(property.name))
+ append(AbstractModel.ID_PROPERTY).append(" INTEGER PRIMARY KEY AUTOINCREMENT");
+ for (Property> property : table.getProperties()) {
+ if (AbstractModel.ID_PROPERTY.name.equals(property.name))
continue;
sql.append(',').append(property.accept(sqlVisitor, null));
}
@@ -328,7 +329,7 @@ abstract public class AbstractDatabase {
database = db;
try {
- if(!AbstractDatabase.this.onUpgrade(oldVersion, newVersion)) {
+ if (!AbstractDatabase.this.onUpgrade(oldVersion, newVersion)) {
// We don't know how to handle this case because someone forgot to
// implement the upgrade. We can't drop tables, we can only
// throw a nasty exception at this time
@@ -347,7 +348,6 @@ abstract public class AbstractDatabase {
* Visitor that returns SQL constructor for this property
*
* @author Tim Su
- *
*/
public static class SqlConstructorVisitor implements PropertyVisitor {
diff --git a/api/src/com/todoroo/andlib/data/AbstractModel.java b/api/src/com/todoroo/andlib/data/AbstractModel.java
index 4a572d750..1bfa6bccc 100644
--- a/api/src/com/todoroo/andlib/data/AbstractModel.java
+++ b/api/src/com/todoroo/andlib/data/AbstractModel.java
@@ -5,15 +5,6 @@
*/
package com.todoroo.andlib.data;
-import java.lang.reflect.Array;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map.Entry;
-import java.util.Set;
-
import android.content.ContentValues;
import android.os.Parcel;
import android.os.Parcelable;
@@ -24,15 +15,23 @@ import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.utility.AndroidUtilities;
+import java.lang.reflect.Array;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map.Entry;
+import java.util.Set;
+
/**
* AbstractModel represents a row in a database.
- *
+ *
* A single database can be represented by multiple AbstractModels
* corresponding to different queries that return a different set of columns.
* Each model exposes a set of properties that it contains.
*
* @author Tim Su
- *
*/
public abstract class AbstractModel implements Parcelable, Cloneable {
@@ -42,21 +41,31 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
// --- constants
- /** id property common to all models */
+ /**
+ * id property common to all models
+ */
protected static final String ID_PROPERTY_NAME = "_id"; //$NON-NLS-1$
- /** id field common to all models */
+ /**
+ * id field common to all models
+ */
public static final LongProperty ID_PROPERTY = new LongProperty(null, ID_PROPERTY_NAME);
- /** sentinel for objects without an id */
+ /**
+ * sentinel for objects without an id
+ */
public static final long NO_ID = 0;
- /** prefix for transitories retained in content values */
+ /**
+ * prefix for transitories retained in content values
+ */
public static final String RETAIN_TRANSITORY_PREFIX = "retain-trans-"; //$NON-NLS-1$
// --- abstract methods
- /** Get the default values for this object */
+ /**
+ * Get the default values for this object
+ */
abstract public ContentValues getDefaultValues();
// --- data store variables and management
@@ -68,35 +77,47 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
* the database (values), then defaults (getDefaultValues)
*/
- /** User set values */
+ /**
+ * User set values
+ */
protected ContentValues setValues = null;
- /** Values from database */
+ /**
+ * Values from database
+ */
protected ContentValues values = null;
- /** Transitory Metadata (not saved in database) */
+ /**
+ * Transitory Metadata (not saved in database)
+ */
protected HashMap transitoryData = null;
- /** Get database-read values for this object */
+ /**
+ * Get database-read values for this object
+ */
public ContentValues getDatabaseValues() {
return values;
}
- /** Get the user-set values for this object */
+ /**
+ * Get the user-set values for this object
+ */
public ContentValues getSetValues() {
return setValues;
}
- /** Get a list of all field/value pairs merged across data sources */
+ /**
+ * Get a list of all field/value pairs merged across data sources
+ */
public ContentValues getMergedValues() {
ContentValues mergedValues = new ContentValues();
ContentValues defaultValues = getDefaultValues();
- if(defaultValues != null)
+ if (defaultValues != null)
mergedValues.putAll(defaultValues);
- if(values != null)
+ if (values != null)
mergedValues.putAll(values);
- if(setValues != null)
+ if (setValues != null)
mergedValues.putAll(setValues);
return mergedValues;
@@ -115,9 +136,9 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
* saved - future saves will not need to write all the data as before.
*/
public void markSaved() {
- if(values == null)
+ if (values == null)
values = setValues;
- else if(setValues != null)
+ else if (setValues != null)
values.putAll(setValues);
setValues = null;
}
@@ -128,10 +149,10 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
*/
@Override
public boolean equals(Object other) {
- if(other == null || other.getClass() != getClass())
+ if (other == null || other.getClass() != getClass())
return false;
- return getMergedValues().equals(((AbstractModel)other).getMergedValues());
+ return getMergedValues().equals(((AbstractModel) other).getMergedValues());
}
@Override
@@ -144,10 +165,10 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append(getClass().getSimpleName()).append("\n")
- .append("set values:\n")
- .append(setValues).append("\n")
- .append("values:\n")
- .append(values).append("\n");
+ .append("set values:\n")
+ .append(setValues).append("\n")
+ .append("values:\n")
+ .append(values).append("\n");
return builder.toString();
}
@@ -159,14 +180,16 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
- if(setValues != null)
+ if (setValues != null)
clone.setValues = new ContentValues(setValues);
- if(values != null)
+ if (values != null)
clone.values = new ContentValues(values);
return clone;
}
- /** Check if this model has values that have been changed */
+ /**
+ * Check if this model has values that have been changed
+ */
public boolean isModified() {
return setValues.size() > 0;
}
@@ -198,29 +221,29 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
*/
public synchronized TYPE getValue(Property property) {
Object value;
- if(setValues != null && setValues.containsKey(property.getColumnName()))
+ if (setValues != null && setValues.containsKey(property.getColumnName()))
value = setValues.get(property.getColumnName());
- else if(values != null && values.containsKey(property.getColumnName()))
+ else if (values != null && values.containsKey(property.getColumnName()))
value = values.get(property.getColumnName());
- else if(getDefaultValues().containsKey(property.getColumnName()))
+ else if (getDefaultValues().containsKey(property.getColumnName()))
value = getDefaultValues().get(property.getColumnName());
else
throw new UnsupportedOperationException(
- "Model Error: Did not read property " + property.name); //$NON-NLS-1$
+ "Model Error: Did not read property " + property.name); //$NON-NLS-1$
// resolve properties that were retrieved with a different type than accessed
try {
- if(value instanceof String && property instanceof LongProperty)
- return (TYPE) Long.valueOf((String)value);
- else if(value instanceof String && property instanceof IntegerProperty)
- return (TYPE) Integer.valueOf((String)value);
- else if(value instanceof String && property instanceof DoubleProperty)
- return (TYPE) Double.valueOf((String)value);
- else if(value instanceof Integer && property instanceof LongProperty)
- return (TYPE) Long.valueOf(((Number)value).longValue());
+ if (value instanceof String && property instanceof LongProperty)
+ return (TYPE) Long.valueOf((String) value);
+ else if (value instanceof String && property instanceof IntegerProperty)
+ return (TYPE) Integer.valueOf((String) value);
+ else if (value instanceof String && property instanceof DoubleProperty)
+ return (TYPE) Double.valueOf((String) value);
+ else if (value instanceof Integer && property instanceof LongProperty)
+ return (TYPE) Long.valueOf(((Number) value).longValue());
return (TYPE) value;
} catch (NumberFormatException e) {
return (TYPE) getDefaultValues().get(property.name);
@@ -235,9 +258,9 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
abstract public long getId();
protected long getIdHelper(LongProperty id) {
- if(setValues != null && setValues.containsKey(id.name))
+ if (setValues != null && setValues.containsKey(id.name))
return setValues.getAsLong(id.name);
- else if(values != null && values.containsKey(id.name))
+ else if (values != null && values.containsKey(id.name))
return values.getAsLong(id.name);
else
return NO_ID;
@@ -247,7 +270,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
if (setValues == null)
setValues = new ContentValues();
- if(id == NO_ID)
+ if (id == NO_ID)
clearValue(ID_PROPERTY);
else
setValues.put(ID_PROPERTY_NAME, id);
@@ -265,9 +288,9 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
* @return true if setValues or values contains this property
*/
public boolean containsValue(Property> property) {
- if(setValues != null && setValues.containsKey(property.getColumnName()))
+ if (setValues != null && setValues.containsKey(property.getColumnName()))
return true;
- if(values != null && values.containsKey(property.getColumnName()))
+ if (values != null && values.containsKey(property.getColumnName()))
return true;
return false;
}
@@ -275,12 +298,12 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
/**
* @param property
* @return true if setValues or values contains this property, and the value
- * stored is not null
+ * stored is not null
*/
public boolean containsNonNullValue(Property> property) {
- if(setValues != null && setValues.containsKey(property.getColumnName()))
+ if (setValues != null && setValues.containsKey(property.getColumnName()))
return setValues.get(property.getColumnName()) != null;
- if(values != null && values.containsKey(property.getColumnName()))
+ if (values != null && values.containsKey(property.getColumnName()))
return values.get(property.getColumnName()) != null;
return false;
}
@@ -294,12 +317,12 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
protected synchronized boolean shouldSaveValue(
Property property, TYPE newValue) {
- // we've already decided to save it, so overwrite old value
+ // we've already decided to save it, so overwrite old value
if (setValues.containsKey(property.getColumnName()))
- return true;
+ return true;
// values contains this key, we should check it out
- if(values != null && values.containsKey(property.getColumnName())) {
+ if (values != null && values.containsKey(property.getColumnName())) {
TYPE value = getValue(property);
if (value == null) {
if (newValue == null)
@@ -316,7 +339,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
* Sets the given property. Make sure this model has this property!
*/
public synchronized void setValue(Property property,
- TYPE value) {
+ TYPE value) {
if (setValues == null)
setValues = new ContentValues();
if (!shouldSaveValue(property, value))
@@ -350,23 +373,25 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
/**
* Clear the key for the given property
+ *
* @param property
*/
public synchronized void clearValue(Property> property) {
- if(setValues != null && setValues.containsKey(property.getColumnName()))
+ if (setValues != null && setValues.containsKey(property.getColumnName()))
setValues.remove(property.getColumnName());
- if(values != null && values.containsKey(property.getColumnName()))
+ if (values != null && values.containsKey(property.getColumnName()))
values.remove(property.getColumnName());
}
/**
* Sets the state of the given flag on the given property
+ *
* @param property
* @param flag
* @param value
*/
public void setFlag(IntegerProperty property, int flag, boolean value) {
- if(value)
+ if (value)
setValue(property, getValue(property) | flag);
else
setValue(property, getValue(property) & ~flag);
@@ -374,8 +399,9 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
/**
* Returns the set state of the given flag on the given property
+ *
* @param property the property to get the set state of the flag
- * @param flag the flag-descriptor (e.g. Task.FLAG_REPEAT_AFTER_COMPLETION)
+ * @param flag the flag-descriptor (e.g. Task.FLAG_REPEAT_AFTER_COMPLETION)
* @return true if the flag is set
*/
public boolean getFlag(IntegerProperty property, int flag) {
@@ -386,13 +412,13 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
// --- setting and retrieving flags
public synchronized void putTransitory(String key, Object value) {
- if(transitoryData == null)
+ if (transitoryData == null)
transitoryData = new HashMap();
transitoryData.put(key, value);
}
public Object getTransitory(String key) {
- if(transitoryData == null)
+ if (transitoryData == null)
return null;
return transitoryData.get(key);
}
@@ -427,18 +453,18 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
*/
protected static Property>[] generateProperties(Class extends AbstractModel> cls) {
ArrayList> properties = new ArrayList>();
- if(cls.getSuperclass() != AbstractModel.class)
+ if (cls.getSuperclass() != AbstractModel.class)
properties.addAll(Arrays.asList(generateProperties(
- (Class extends AbstractModel>) cls.getSuperclass())));
+ (Class extends AbstractModel>) cls.getSuperclass())));
// a property is public, static & extends Property
- for(Field field : cls.getFields()) {
- if((field.getModifiers() & Modifier.STATIC) == 0)
+ for (Field field : cls.getFields()) {
+ if ((field.getModifiers() & Modifier.STATIC) == 0)
continue;
- if(!Property.class.isAssignableFrom(field.getType()))
+ if (!Property.class.isAssignableFrom(field.getType()))
continue;
try {
- if(((Property>) field.get(null)).table == null)
+ if (((Property>) field.get(null)).table == null)
continue;
properties.add((Property>) field.get(null));
} catch (IllegalArgumentException e) {
@@ -455,7 +481,6 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
* Visitor that saves a value into a content values store
*
* @author Tim Su
- *
*/
public static class ContentValuesSavingVisitor implements PropertyVisitor {
@@ -467,7 +492,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
// we don't allow null values, as they indicate unset properties
// when the database was written
- if(value != null)
+ if (value != null)
property.accept(this, value);
}
@@ -516,9 +541,9 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
*/
abstract protected Parcelable.Creator extends AbstractModel> getCreator();
- /**
- * Parcelable creator helper
- */
+ /**
+ * Parcelable creator helper
+ */
protected static final class ModelCreator
implements Parcelable.Creator {
@@ -551,7 +576,11 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
*/
public TYPE[] newArray(int size) {
return (TYPE[]) Array.newInstance(cls, size);
- };
- };
+ }
+
+ ;
+ }
+
+ ;
}
diff --git a/api/src/com/todoroo/andlib/data/ContentResolverDao.java b/api/src/com/todoroo/andlib/data/ContentResolverDao.java
index 472c7c6b7..df804bc2a 100644
--- a/api/src/com/todoroo/andlib/data/ContentResolverDao.java
+++ b/api/src/com/todoroo/andlib/data/ContentResolverDao.java
@@ -5,10 +5,6 @@
*/
package com.todoroo.andlib.data;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Set;
-
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
@@ -22,23 +18,32 @@ import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.AndroidUtilities;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Set;
+
/**
* DAO for reading and writing values from an Android ContentResolver
*
- * @author Tim Su
- *
* @param model type
+ * @author Tim Su
*/
public class ContentResolverDao {
- /** class of model */
+ /**
+ * class of model
+ */
private final Class modelClass;
- /** base content uri */
+ /**
+ * base content uri
+ */
private final Uri baseUri;
- /** content resolver */
+ /**
+ * content resolver
+ */
private final ContentResolver cr;
@Autowired
@@ -47,7 +52,7 @@ public class ContentResolverDao {
public ContentResolverDao(Class modelClass, Context context, Uri baseUri) {
DependencyInjectionService.getInstance().inject(this);
this.modelClass = modelClass;
- if(debug == null)
+ if (debug == null)
debug = false;
this.baseUri = baseUri;
@@ -56,6 +61,7 @@ public class ContentResolverDao {
/**
* Returns a URI for a single id
+ *
* @param id
* @return
*/
@@ -65,6 +71,7 @@ public class ContentResolverDao {
/**
* Delete specific item from the given table
+ *
* @param id
* @return number of rows affected
*/
@@ -74,6 +81,7 @@ public class ContentResolverDao {
/**
* Delete by criteria
+ *
* @param where
* @return number of rows affected
*/
@@ -83,11 +91,12 @@ public class ContentResolverDao {
/**
* Query content provider
+ *
* @param query
* @return
*/
public TodorooCursor query(Query query) {
- if(debug)
+ if (debug)
Log.i("SQL-" + modelClass.getSimpleName(), query.toString()); //$NON-NLS-1$
Cursor cursor = query.queryContentResolver(cr, baseUri);
return new TodorooCursor(cursor, query.getFields());
@@ -95,15 +104,16 @@ public class ContentResolverDao {
/**
* Create new or save existing model
+ *
* @param model
* @return true if data was written to the db, false otherwise
*/
public boolean save(TYPE model) {
writeTransitoriesToModelContentValues(model);
- if(model.isSaved()) {
- if(model.getSetValues() == null)
+ if (model.isSaved()) {
+ if (model.getSetValues() == null)
return false;
- if(cr.update(uriWithId(model.getId()), model.getSetValues(), null, null) != 0)
+ if (cr.update(uriWithId(model.getId()), model.getSetValues(), null, null) != 0)
return true;
}
Uri uri = cr.insert(baseUri, model.getMergedValues());
@@ -130,12 +140,9 @@ public class ContentResolverDao {
* Returns object corresponding to the given identifier
*
* @param database
- * @param table
- * name of table
- * @param properties
- * properties to read
- * @param id
- * id of item
+ * @param table name of table
+ * @param properties properties to read
+ * @param id id of item
* @return null if no item found
*/
public TYPE fetch(long id, Property>... properties) {
diff --git a/api/src/com/todoroo/andlib/data/DatabaseDao.java b/api/src/com/todoroo/andlib/data/DatabaseDao.java
index 2535c001f..49a6d93a5 100644
--- a/api/src/com/todoroo/andlib/data/DatabaseDao.java
+++ b/api/src/com/todoroo/andlib/data/DatabaseDao.java
@@ -5,14 +5,6 @@
*/
package com.todoroo.andlib.data;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteTransactionListener;
@@ -26,6 +18,13 @@ import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.OutstandingEntry;
import com.todoroo.astrid.data.SyncFlags;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -34,7 +33,6 @@ import com.todoroo.astrid.data.SyncFlags;
* of {@link ContentResolverDao} instead.
*
* @author Tim Su
- *
*/
public class DatabaseDao {
@@ -54,7 +52,7 @@ public class DatabaseDao {
public DatabaseDao(Class modelClass) {
DependencyInjectionService.getInstance().inject(this);
this.modelClass = modelClass;
- if(debug == null)
+ if (debug == null)
debug = false;
}
@@ -63,7 +61,9 @@ public class DatabaseDao {
setDatabase(database);
}
- /** Gets table associated with this DAO */
+ /**
+ * Gets table associated with this DAO
+ */
public Table getTable() {
return table;
}
@@ -79,7 +79,7 @@ public class DatabaseDao {
* @param database
*/
public void setDatabase(AbstractDatabase database) {
- if(database == this.database)
+ if (database == this.database)
return;
this.database = database;
table = database.getTable(modelClass);
@@ -93,7 +93,7 @@ public class DatabaseDao {
}
private final ArrayList> listeners =
- new ArrayList>();
+ new ArrayList>();
public void addListener(ModelUpdateListener listener) {
listeners.add(listener);
@@ -101,7 +101,7 @@ public class DatabaseDao {
protected void onModelUpdated(TYPE model, boolean outstandingEntries) {
TYPE modelCopy = (TYPE) model.clone();
- for(ModelUpdateListener listener : listeners) {
+ for (ModelUpdateListener listener : listeners) {
listener.onModelUpdated(modelCopy, outstandingEntries);
}
}
@@ -116,7 +116,7 @@ public class DatabaseDao {
*/
public TodorooCursor query(Query query) {
query.from(table);
- if(debug)
+ if (debug)
Log.i("SQL-" + modelClass.getSimpleName(), query.toString()); //$NON-NLS-1$
Cursor cursor = database.rawQuery(query.toString(), null);
return new TodorooCursor(cursor, query.getFields());
@@ -132,7 +132,7 @@ public class DatabaseDao {
*/
public TodorooCursor rawQuery(String selection, String[] selectionArgs, Property>... properties) {
String[] fields = new String[properties.length];
- for(int i = 0; i < properties.length; i++)
+ for (int i = 0; i < properties.length; i++)
fields[i] = properties[i].name;
return new TodorooCursor(database.getDatabase().query(table.name,
fields, selection, selectionArgs, null, null, null),
@@ -143,12 +143,9 @@ public class DatabaseDao {
* Returns object corresponding to the given identifier
*
* @param database
- * @param table
- * name of table
- * @param properties
- * properties to read
- * @param id
- * id of item
+ * @param table name of table
+ * @param properties properties to read
+ * @param id id of item
* @return null if no item found
*/
public TYPE fetch(long id, Property>... properties) {
@@ -193,6 +190,7 @@ public class DatabaseDao {
/**
* Delete all matching a clause
+ *
* @param where predicate for deletion
* @return # of deleted items
*/
@@ -203,14 +201,15 @@ public class DatabaseDao {
/**
* Update all matching a clause to have the values set on template object.
- *
+ *
* Example (updates "joe" => "bob" in metadata value1):
* {code}
* Metadata item = new Metadata();
* item.setValue(Metadata.VALUE1, "bob");
* update(item, Metadata.VALUE1.eq("joe"));
* {code}
- * @param where sql criteria
+ *
+ * @param where sql criteria
* @param template set fields on this object in order to set them in the db.
* @return # of updated items
*/
@@ -241,8 +240,10 @@ public class DatabaseDao {
Log.e(ERROR_TAG, "Error updating rows", new Throwable()); //$NON-NLS-1$
result.set(0);
}
+
@Override
public void onCommit() {/**/}
+
@Override
public void onBegin() {/**/}
});
@@ -299,7 +300,7 @@ public class DatabaseDao {
boolean recordOutstanding = shouldRecordOutstanding(item);
final AtomicBoolean result = new AtomicBoolean(false);
- synchronized(database) {
+ synchronized (database) {
if (recordOutstanding) { // begin transaction
database.getDatabase().beginTransactionWithListener(new SQLiteTransactionListener() {
@Override
@@ -307,8 +308,10 @@ public class DatabaseDao {
Log.e(ERROR_TAG, "Error inserting or updating rows", new Throwable()); //$NON-NLS-1$
result.set(false);
}
+
@Override
public void onCommit() {/**/}
+
@Override
public void onBegin() {/**/}
});
@@ -316,7 +319,7 @@ public class DatabaseDao {
int numOutstanding = 0;
try {
result.set(op.makeChange());
- if(result.get()) {
+ if (result.get()) {
if (recordOutstanding && ((numOutstanding = createOutstandingEntries(item.getId(), values)) != -1)) // Create entries for setValues in outstanding table
database.getDatabase().setTransactionSuccessful();
}
@@ -336,10 +339,8 @@ public class DatabaseDao {
* Creates the given item.
*
* @param database
- * @param table
- * table name
- * @param item
- * item model
+ * @param table table name
+ * @param item item model
* @return returns true on success.
*/
public boolean createNew(final TYPE item) {
@@ -363,15 +364,13 @@ public class DatabaseDao {
* Saves the given item. Will not create a new item!
*
* @param database
- * @param table
- * table name
- * @param item
- * item model
+ * @param table table name
+ * @param item item model
* @return returns true on success.
*/
public boolean saveExisting(final TYPE item) {
final ContentValues values = item.getSetValues();
- if(values == null || values.size() == 0) // nothing changed
+ if (values == null || values.size() == 0) // nothing changed
return true;
DatabaseChangeOp update = new DatabaseChangeOp() {
@Override
@@ -412,6 +411,7 @@ public class DatabaseDao {
* Returns true if an entry in the outstanding table should be recorded for this
* column. Subclasses can override to return false for insignificant columns
* (e.g. Task.DETAILS, last modified, etc.)
+ *
* @param columnName
* @return
*/
@@ -426,12 +426,9 @@ public class DatabaseDao {
* Returns cursor to object corresponding to the given identifier
*
* @param database
- * @param table
- * name of table
- * @param properties
- * properties to read
- * @param id
- * id of item
+ * @param table name of table
+ * @param properties properties to read
+ * @param id id of item
* @return
*/
protected TodorooCursor fetchItem(long id, Property>... properties) {
diff --git a/api/src/com/todoroo/andlib/data/Property.java b/api/src/com/todoroo/andlib/data/Property.java
index e481eb662..b773b5893 100644
--- a/api/src/com/todoroo/andlib/data/Property.java
+++ b/api/src/com/todoroo/andlib/data/Property.java
@@ -5,10 +5,6 @@
*/
package com.todoroo.andlib.data;
-import static com.todoroo.andlib.sql.SqlConstants.COMMA;
-import static com.todoroo.andlib.sql.SqlConstants.LEFT_PARENTHESIS;
-import static com.todoroo.andlib.sql.SqlConstants.RIGHT_PARENTHESIS;
-import static com.todoroo.andlib.sql.SqlConstants.SPACE;
import android.text.TextUtils;
import com.todoroo.andlib.sql.Criterion;
@@ -16,40 +12,59 @@ import com.todoroo.andlib.sql.Field;
import com.todoroo.andlib.sql.Operator;
import com.todoroo.andlib.sql.UnaryCriterion;
+import static com.todoroo.andlib.sql.SqlConstants.COMMA;
+import static com.todoroo.andlib.sql.SqlConstants.LEFT_PARENTHESIS;
+import static com.todoroo.andlib.sql.SqlConstants.RIGHT_PARENTHESIS;
+import static com.todoroo.andlib.sql.SqlConstants.SPACE;
+
/**
* Property represents a typed column in a database.
- *
+ *
* Within a given database row, the parameter may not exist, in which case the
* value is null, it may be of an incorrect type, in which case an exception is
* thrown, or the correct type, in which case the value is returned.
*
+ * @param a database supported type, such as String or Integer
* @author Tim Su
- *
- * @param
- * a database supported type, such as String or Integer
*/
@SuppressWarnings("nls")
public abstract class Property extends Field implements Cloneable {
// --- implementation
- /** The database table name this property */
+ /**
+ * The database table name this property
+ */
public final Table table;
- /** The database column name for this property */
+ /**
+ * The database column name for this property
+ */
public final String name;
- /** Can this field be null? */
+ /**
+ * Can this field be null?
+ */
public static final int PROP_FLAG_NULLABLE = 1 << 0;
- /** Is this field a date? */
+ /**
+ * Is this field a date?
+ */
public static final int PROP_FLAG_DATE = 1 << 1;
- /** Is this field a user id? */
+ /**
+ * Is this field a user id?
+ */
public static final int PROP_FLAG_USER_ID = 1 << 2;
- /** Is this field a boolean? */
+ /**
+ * Is this field a boolean?
+ */
public static final int PROP_FLAG_BOOLEAN = 1 << 3;
- /** Is this field a serialized JSON object? */
+ /**
+ * Is this field a serialized JSON object?
+ */
public static final int PROP_FLAG_JSON = 1 << 4;
- /** Is this field for pictures? (usually as a json object containing "path" key or urls) */
+ /**
+ * Is this field for pictures? (usually as a json object containing "path" key or urls)
+ */
public static final int PROP_FLAG_PICTURE = 1 << 5;
public int flags = 0;
@@ -109,7 +124,7 @@ public abstract class Property extends Field implements Cloneable {
try {
Property newInstance = this.getClass().getConstructor(Table.class, String.class).newInstance(aliasedTable, this.name);
- if(!TextUtils.isEmpty(columnAlias))
+ if (!TextUtils.isEmpty(columnAlias))
return (Property) newInstance.as(columnAlias);
return newInstance;
} catch (Exception e) {
@@ -123,7 +138,6 @@ public abstract class Property extends Field implements Cloneable {
* Visitor interface for property classes
*
* @author Tim Su
- *
*/
public interface PropertyVisitor {
public RETURN visitInteger(Property property, PARAMETER data);
@@ -141,7 +155,6 @@ public abstract class Property extends Field implements Cloneable {
* Integer property type. See {@link Property}
*
* @author Tim Su
- *
*/
public static class IntegerProperty extends Property {
@@ -178,7 +191,6 @@ public abstract class Property extends Field implements Cloneable {
* String property type. See {@link Property}
*
* @author Tim Su
- *
*/
public static class StringProperty extends Property {
@@ -230,7 +242,6 @@ public abstract class Property extends Field implements Cloneable {
* Double property type. See {@link Property}
*
* @author Tim Su
- *
*/
public static class DoubleProperty extends Property {
@@ -263,7 +274,6 @@ public abstract class Property extends Field implements Cloneable {
* Long property type. See {@link Property}
*
* @author Tim Su
- *
*/
public static class LongProperty extends Property {
@@ -308,7 +318,9 @@ public abstract class Property extends Field implements Cloneable {
// --- pseudo-properties
- /** Runs a SQL function and returns the result as a string */
+ /**
+ * Runs a SQL function and returns the result as a string
+ */
public static class StringFunctionProperty extends StringProperty {
public StringFunctionProperty(String function, String columnName) {
super(null, columnName, function);
@@ -316,7 +328,9 @@ public abstract class Property extends Field implements Cloneable {
}
}
- /** Runs a SQL function and returns the result as a string */
+ /**
+ * Runs a SQL function and returns the result as a string
+ */
public static class IntegerFunctionProperty extends IntegerProperty {
public IntegerFunctionProperty(String function, String columnName) {
super(null, columnName, function);
@@ -324,7 +338,9 @@ public abstract class Property extends Field implements Cloneable {
}
}
- /** Counting in aggregated tables. Returns the result of COUNT(1) */
+ /**
+ * Counting in aggregated tables. Returns the result of COUNT(1)
+ */
public static final class CountProperty extends IntegerFunctionProperty {
public CountProperty() {
super("COUNT(1)", "count");
diff --git a/api/src/com/todoroo/andlib/data/Table.java b/api/src/com/todoroo/andlib/data/Table.java
index 29da2cf77..26b9462f5 100644
--- a/api/src/com/todoroo/andlib/data/Table.java
+++ b/api/src/com/todoroo/andlib/data/Table.java
@@ -13,7 +13,6 @@ import com.todoroo.andlib.sql.SqlTable;
* clone the table when it returns.
*
* @author Tim Su
- *
*/
public final class Table extends SqlTable {
public final String name;
@@ -32,12 +31,13 @@ public final class Table extends SqlTable {
/**
* Reads a list of properties from model class by reflection
+ *
* @return property array
*/
@SuppressWarnings("nls")
public Property>[] getProperties() {
try {
- return (Property>[])modelClass.getField("PROPERTIES").get(null);
+ return (Property>[]) modelClass.getField("PROPERTIES").get(null);
} catch (IllegalArgumentException e) {
throw new RuntimeException(e);
} catch (SecurityException e) {
@@ -61,25 +61,26 @@ public final class Table extends SqlTable {
/**
* Create a field object based on the given property
+ *
* @param property
* @return
*/
@SuppressWarnings("nls")
public Field field(Property> property) {
- if(alias != null)
+ if (alias != null)
return Field.field(alias + "." + property.name);
return Field.field(name + "." + property.name);
}
@Override
public String toString() {
- if(hasAlias())
+ if (hasAlias())
return expression + " AS " + alias; //$NON-NLS-1$
return expression;
}
public String name() {
- if(hasAlias())
+ if (hasAlias())
return alias;
return name;
}
diff --git a/api/src/com/todoroo/andlib/data/TodorooCursor.java b/api/src/com/todoroo/andlib/data/TodorooCursor.java
index 0f512911b..fc720a82e 100644
--- a/api/src/com/todoroo/andlib/data/TodorooCursor.java
+++ b/api/src/com/todoroo/andlib/data/TodorooCursor.java
@@ -5,35 +5,42 @@
*/
package com.todoroo.andlib.data;
-import java.util.WeakHashMap;
-
import android.database.Cursor;
import android.database.CursorWrapper;
import com.todoroo.andlib.data.Property.PropertyVisitor;
+import java.util.WeakHashMap;
+
/**
* AstridCursor wraps a cursor and allows users to query for individual
* {@link Property} types or read an entire {@link AbstractModel} from
* a database row.
*
- * @author Tim Su
- *
* @param a model type that is returned by this cursor
+ * @author Tim Su
*/
public class TodorooCursor extends CursorWrapper {
- /** Properties read by this cursor */
+ /**
+ * Properties read by this cursor
+ */
private final Property>[] properties;
- /** Weakly cache field name to column id references for this cursor.
- * Because it's a weak hash map, entire keys can be discarded by GC */
+ /**
+ * Weakly cache field name to column id references for this cursor.
+ * Because it's a weak hash map, entire keys can be discarded by GC
+ */
private final WeakHashMap columnIndexCache;
- /** Property reading visitor */
+ /**
+ * Property reading visitor
+ */
private static final CursorReadingVisitor reader = new CursorReadingVisitor();
- /** Wrapped cursor */
+ /**
+ * Wrapped cursor
+ */
private final Cursor cursor;
/**
@@ -55,11 +62,11 @@ public class TodorooCursor extends CursorWrapper {
* Get the value for the given property on the underlying {@link Cursor}
*
* @param type to return
- * @param property to retrieve
+ * @param property to retrieve
* @return
*/
public PROPERTY_TYPE get(Property property) {
- return (PROPERTY_TYPE)property.accept(reader, this);
+ return (PROPERTY_TYPE) property.accept(reader, this);
}
/**
@@ -71,6 +78,7 @@ public class TodorooCursor extends CursorWrapper {
/**
* Gets entire property list
+ *
* @return
*/
public Property>[] getProperties() {
@@ -82,7 +90,7 @@ public class TodorooCursor extends CursorWrapper {
*/
public synchronized int getColumnIndexFromCache(String field) {
Integer index = columnIndexCache.get(field);
- if(index == null) {
+ if (index == null) {
index = getColumnIndexOrThrow(field);
columnIndexCache.put(field, index);
}
@@ -94,37 +102,36 @@ public class TodorooCursor extends CursorWrapper {
* Visitor that reads the given property from a cursor
*
* @author Tim Su
- *
*/
public static class CursorReadingVisitor implements PropertyVisitor