diff --git a/astrid/res/layout-land/widget_initialized.xml b/astrid/res/layout-land/widget_initialized.xml
index 6b85159ce..070e99dca 100644
--- a/astrid/res/layout-land/widget_initialized.xml
+++ b/astrid/res/layout-land/widget_initialized.xml
@@ -27,9 +27,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
- android:text="@string/task_name1"
android:singleLine="true"
android:maxWidth="170dip"
+ android:text="@string/widget_loading"
style="@style/Text.Loading"
android:layout_marginLeft="23dip"/>
@@ -49,7 +49,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
@@ -71,7 +70,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
@@ -94,7 +92,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
@@ -116,7 +113,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
diff --git a/astrid/res/layout/widget_initialized.xml b/astrid/res/layout/widget_initialized.xml
index c3a8ca2bf..d16dd9f15 100644
--- a/astrid/res/layout/widget_initialized.xml
+++ b/astrid/res/layout/widget_initialized.xml
@@ -27,9 +27,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
- android:text="@string/task_name1"
android:singleLine="true"
android:maxWidth="115dip"
+ android:text="@string/widget_loading"
style="@style/Text.Loading"
android:layout_marginLeft="23dp"/>
@@ -50,7 +50,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
@@ -72,7 +71,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
@@ -94,7 +92,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
@@ -116,7 +113,6 @@
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
- android:text="@string/task_name2"
style="@style/Text.Loading"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
diff --git a/astrid/res/values-ca/strings.xml b/astrid/res/values-ca/strings.xml
index 6d57303cb..00bec3106 100644
--- a/astrid/res/values-ca/strings.xml
+++ b/astrid/res/values-ca/strings.xml
@@ -393,7 +393,7 @@ Skipped %d tasks.\n
No es pot trobar aquest element:
- No es pot desar:
+
Cannot access folder: %s
Cannot access your SD card!
diff --git a/astrid/res/values-cs/strings.xml b/astrid/res/values-cs/strings.xml
index 1babad65e..693e3ce67 100644
--- a/astrid/res/values-cs/strings.xml
+++ b/astrid/res/values-cs/strings.xml
@@ -393,7 +393,7 @@ Skipped %d tasks.\n
Nemohu najít tuto položku:
- Nepodařilo se uložit:
+
Cannot access folder: %s
Cannot access your SD card!
@@ -498,4 +498,3 @@ Skipped %d tasks.\n
Read Astrid tasks
-n
\ No newline at end of file
diff --git a/astrid/res/values-de/strings.xml b/astrid/res/values-de/strings.xml
index d92b59e43..0b0a8e179 100644
--- a/astrid/res/values-de/strings.xml
+++ b/astrid/res/values-de/strings.xml
@@ -390,7 +390,7 @@ d
Folgender Eintrag konnte nicht gefunden werden:
- Speichern nicht möglich:s
+
Ordner kann nicht geöffnet werden: %s
Zugriff auf SD Karte nicht möglich!
diff --git a/astrid/res/values-es/strings.xml b/astrid/res/values-es/strings.xml
index bbc9963b0..d71a4c1f3 100644
--- a/astrid/res/values-es/strings.xml
+++ b/astrid/res/values-es/strings.xml
@@ -358,7 +358,7 @@
Se recobraron %s tareas en %s.
Resumen de Recuperación
- El archivo contenía %d tareas.\n Se recobraron %d tareas.\n Saltearon %d tareas.\n
+ El archivo %s contenía %d tareas.\n Se recobraron %d tareas.\n Saltearon %d tareas.\n
Recobrar
Abriendo archivo...
Archivo abierto...
@@ -386,7 +386,7 @@
No pude encontrar este ítem:
- No pude guardar:s
+
No puedo acceder carpeta: %s
¡No puedo acceder a tu tarjeta de memoria!
diff --git a/astrid/res/values-fr/arrays.xml b/astrid/res/values-fr/arrays.xml
index f848552d2..6ccaad2d9 100644
--- a/astrid/res/values-fr/arrays.xml
+++ b/astrid/res/values-fr/arrays.xml
@@ -32,11 +32,11 @@
- Auriez-vous oublié ?
- Excusez-moi !
- Quand vous aurez une minute :
- - À l'ordre du jour :
+ - À l\'ordre du jour :
- Avez-vous un instant ?
- - Astrid à l'appareil !
+ - Astrid à l\'appareil !
- Hé, je peux vous embêter une seconde ?
- - Une minute à m'accorder ?
+ - Une minute à m\'accorder ?
- C\'est le bon jour pour
@@ -48,34 +48,34 @@
- Et ça ? Vous êtes chaud ?
- Prêt(e) à faire ça ?
- Pouvez-vous vous occuper de cela ?
- - Le bonheur n'est pas loin ! Il faut juste en finir avec ceci !
+ - Le bonheur n\'est pas loin ! Il faut juste en finir avec ceci !
- Je vous promets que vous vous sentirez mieux si vous finissez ceci !
- - Ne voulez-vous pas faire cela aujourd'hui ?
- - S'il vous plait, finissez cela, je n\'en peux plus !
+ - Ne voulez-vous pas faire cela aujourd\'hui ?
+ - S\'il vous plait, finissez cela, je n\'en peux plus !
- Pouvez-vous finir cela ? Yes you can!
- Comptez-vous vous en occuper un jour ?
- - Vous vous sentirez mieux après ! C'est parti !
+ - Vous vous sentirez mieux après ! C\'est parti !
- Je suis si fière de vous ! Allez, terminez cela !
- Une petite récompense quand vous aurez fini cela ?
- - Juste cette tâche, s'il vous plaît !
+ - Juste cette tâche, s\'il vous plaît !
- Il est temps de raccourcir la liste des choses à faire !
- Pitié, ne me dites pas que vous êtes un flemmard!
- - Ça ne devient pas fatigant d'être flemmard parfois ?
- - Quelque part, quelqu'un compte sur vous pour terminer ceci !
- - Quand vous dîtes "reporter", vous voulez vraiment dire que vous allez le faire, n'est-ce pas ?
- - C'est la dernière fois que vous reportez ceci, n'est-ce pas ?
- - Finissez ceci aujourd'hui, je ne le dirai à personne !
+ - Ça ne devient pas fatigant d\'être flemmard parfois ?
+ - Quelque part, quelqu\'un compte sur vous pour terminer ceci !
+ - Quand vous dîtes \"reporter\", vous voulez vraiment dire que vous allez le faire, n\'est-ce pas ?
+ - C\'est la dernière fois que vous reportez ceci, n\'est-ce pas ?
+ - Finissez ceci aujourd\'hui, je ne le dirai à personne !
- Pourquoi reporter quand vous pourriez euh… ne pas reporter !
- Vous finirez bien par le faire, je suppose ?
- Je vous trouve vraiment génial ! Et si vous ne reportiez pas ça à plus tard ?
- - Serez-vous capable d'accomplir vos buts si vous faites ceci ?
+ - Serez-vous capable d\'accomplir vos buts si vous faites ceci ?
- Reporter, reporter, reporter. Quand changerez-vous !
- - J'en ai assez de vos excuses ! Finissons-en !
- - N'était-ce pas déjà votre excuse la dernière fois ?
+ - J\'en ai assez de vos excuses ! Finissons-en !
+ - N\'était-ce pas déjà votre excuse la dernière fois ?
- Je ne peux pas vous aider à organiser votre vie si vous faites ça…
diff --git a/astrid/res/values-fr/strings.xml b/astrid/res/values-fr/strings.xml
index ebcc7c57d..093157f86 100644
--- a/astrid/res/values-fr/strings.xml
+++ b/astrid/res/values-fr/strings.xml
@@ -188,7 +188,7 @@
Taguée \'%s\'
Tri automatique
Trier par nom
- Trier par date d'échéance
+ Trier par date d\'échéance
Tri inversé
Sélectionner une action :
@@ -271,10 +271,10 @@
Créer une tâche avec tag
Modifier le tag
Effacer le tag
- Afficher sur la page d'accueil
- Masquer sur la page d'accueil
+ Afficher sur la page d\'accueil
+ Masquer sur la page d\'accueil
Créer un raccourci
- Raccourci créé sur votre page d'accueil
+ Raccourci créé sur votre page d\'accueil
Tag :
[pas de tag]
@@ -299,7 +299,7 @@
Synchro-Auto uniquement par Wi-Fi
Activée, la synchronisation automatique a lieu uniquement lorsque le Wi-Fi est actif
Erreur de synchronisation ! Excusez-nous du désagrément ! Erreur :
- Astrid 2.7 se synchronise désormais avec RTM en arrière plan. Vous allez devoir choisir la fréquence à laquelle vous voulez que cela se produise (faible cout d'énergie).
+ Astrid 2.7 se synchronise désormais avec RTM en arrière plan. Vous allez devoir choisir la fréquence à laquelle vous voulez que cela se produise (faible cout d\'énergie).
Synchroniser maintenant !
Effacer les données personnelles
Synchronisation : Déjà à jour !
@@ -317,14 +317,14 @@
Fusionné : %d
Lecture des données distantes
- Lecture de la liste
+ Lecture de la liste: %s
Synchronisation des tâches répétées
Transmission : %s
Tâches locales supprimées
Réception : %s
Veuillez vous identifier sur RTM...
- Désolé, une erreur s'est produite en vérifiant votre identifiant. Veuillez réessayer. \n\n Message d'erreur :
+ Désolé, une erreur s\'est produite en vérifiant votre identifiant. Veuillez réessayer. \n\n Message d\'erreur :
@@ -349,14 +349,14 @@
Quelques astuces à savoir sur Astrid :\n \n - Pour créer une tâche, commencez juste à écrire !\n - Pendant que vous modifiez une tâche, un appui sur \'précédent\' suffit pour l\'enregistrer.\n - Sélectionnez une tâche & appuyez sur 1-4 rapidement pour changer sa priorité\n - Si une tâche a une date limite, appuyez longtemps pour la reporter.\n \n Merci d\'avoir choisi Astrid !\n
- Il semblerait que vous utilisiez une application capable de tuer les processus (%s) ! Si possible, pensez à ajouter Astrid à la liste blanche afin qu'elle ne se fasse pas tuer. Sinon, Astrid risque de ne pas être en mesure de vous prévenir quand vos tâches sont à finir.
+ Il semblerait que vous utilisiez une application capable de tuer les processus (%s) ! Si possible, pensez à ajouter Astrid à la liste blanche afin qu\'elle ne se fasse pas tuer. Sinon, Astrid risque de ne pas être en mesure de vous prévenir quand vos tâches sont à finir.
Je ne tuerai pas Astrid !
Sauvegardés de %s à %s.
- Restauration de l'index
+ Restauration de l\'index
Le fichier %s contient %d tâches.\n %d tâches restaurées.\n %d tâches ignorées.\n
Restauration
Ouverture du fichier...
@@ -385,9 +385,9 @@
Impossible de trouver :
- Impossible de sauvegarder:s
- Impossible d'accéder au fichier : %s
- Impossible d'accéder à la carte SD !
+
+ Impossible d\'accéder au fichier : %s
+ Impossible d\'accéder à la carte SD !
@@ -412,7 +412,7 @@
Choissisez l\'icone d\'Astrid pour la barre de notification
Vibrer lors des alertes.
- Si coché, Astrid vibrera lors de la sonnerie de l'alarme.
+ Si coché, Astrid vibrera lors de la sonnerie de l\'alarme.
Apparence
@@ -455,7 +455,7 @@
Nom de la tâche
Description de la tâche
Dates
- Dates limites imminentes / Date d'achèvement
+ Dates limites imminentes / Date d\'achèvement
Durées
Durée estimée et temps passé
Priorité
@@ -491,6 +491,6 @@
Chargement…
- Lire les tâches d'Astrid
+ Lire les tâches d\'Astrid
diff --git a/astrid/res/values-id/strings.xml b/astrid/res/values-id/strings.xml
index ab3f45653..988df615e 100644
--- a/astrid/res/values-id/strings.xml
+++ b/astrid/res/values-id/strings.xml
@@ -393,7 +393,7 @@ Skipped %d tasks.\n
Tidak bisa menemukan benda ini:
- Tdk bisa menyimpan:
+
Cannot access folder: %s
Cannot access your SD card!
diff --git a/astrid/res/values-it/arrays.xml b/astrid/res/values-it/arrays.xml
index febfc5099..a44aa3c86 100644
--- a/astrid/res/values-it/arrays.xml
+++ b/astrid/res/values-it/arrays.xml
@@ -62,12 +62,12 @@
-
+
- Per piacere dimmi che non è vero che tu sei un procrastinatore!
- Non diventa vecchio qualche volta essere pigro?
- Da qualche parte, qualcuno dipende da te nel finire ciò!
- - Quando hai detto di rimandare, intendevi davvero \'Sto facendo ciò/', giusto?
- - Questa è l'ultima volta che rimandi ciò, giusto?
+ - Quando hai detto di rimandare, intendevi davvero \'Sto facendo ciò/\', giusto?
+ - Questa è l\'ultima volta che rimandi ciò, giusto?
- Semplicemente finisci ciò oggi, non lo dirò a nessuno!
- Perché rimandare quando puoi uhm... non rimandare!
- Alla fine finirai ciò, immagino
@@ -75,8 +75,8 @@
- Sarai in grado di raggiungere i tuoi obiettivi se fai ciò?
- Rimandare, rimandare, rimandare. Quando cambierai!
- Ne ho abbastanza delle tue scuse! Fallo!
- - Non hai usato questa scusa l'ultima volta?
- - Non posso aiutarti nell'organizzare la tua vita se non fai ciò...
+ - Non hai usato questa scusa l\'ultima volta?
+ - Non posso aiutarti nell\'organizzare la tua vita se non fai ciò...
@@ -89,7 +89,7 @@
- disabilita
- - due volte all'ora
+ - due volte all\'ora
- ogni ora
- due volte al giorno
- giornalmente
diff --git a/astrid/res/values-it/strings.xml b/astrid/res/values-it/strings.xml
index 8d351c0d5..024b5237b 100644
--- a/astrid/res/values-it/strings.xml
+++ b/astrid/res/values-it/strings.xml
@@ -216,7 +216,7 @@
Nome etichetta
Quanto tempo ci vorrà?
- Tempo già speso per l'attività
+ Tempo già speso per l\'attività
Termine assoluto
Scadenza obiettivo
Aggiungi attività al Calendario
@@ -349,7 +349,7 @@
Cose da sapere su Astrid:\n \n - Per creare un\'attività, inizia semplicemente a scrivere!\n -Mentre modifichi un\'attività, premi \"Indietro\" per salvarla\n - Scegli un\'attività e premi 1-4 velocemente per cambiarne la priorità\n - Se un\'attività ha una scadenza, premi a lungo per rinviarla\n \n Grazie per usare Astrid!\n
- Sembra che tu stia usando un'applicazione che termina i processi (%s). Se puoi, aggiungi Astrid all\'elenco delle esclusioni in modo da non chiuderlo, altrimenti potrebbe non ricordarti le attività.
+ Sembra che tu stia usando un\'applicazione che termina i processi (%s). Se puoi, aggiungi Astrid all\'elenco delle esclusioni in modo da non chiuderlo, altrimenti potrebbe non ricordarti le attività.
Non voglio chiudere Astrid!
@@ -385,7 +385,7 @@
Impossibile trovare questo elemento:
- Impossibile salvare:
+
Impossibile accedere alla cartella: %s
Impossibile accedere alla scheda SD!
diff --git a/astrid/res/values-ja/strings.xml b/astrid/res/values-ja/strings.xml
index d0fbff655..454832cc9 100644
--- a/astrid/res/values-ja/strings.xml
+++ b/astrid/res/values-ja/strings.xml
@@ -393,7 +393,7 @@ Skipped %d tasks.\n
この項目は見つかりませんでした:
- 保存できませんでした:
+
Cannot access folder: %s
Cannot access your SD card!
diff --git a/astrid/res/values-ko/strings.xml b/astrid/res/values-ko/strings.xml
index a18ecf18c..b3b0e5c62 100644
--- a/astrid/res/values-ko/strings.xml
+++ b/astrid/res/values-ko/strings.xml
@@ -118,7 +118,7 @@
Astrid:
- 태그된 할일
+ 태그된 \"%s\" 할일
태그 안된 할일
나중에 할일
새로운 할일
@@ -393,7 +393,7 @@ Skipped %d tasks.\n
아이템을 찾을 수 없습니다.
- 저장할 수 없습니다.
+
Cannot access folder: %s
Cannot access your SD card!
diff --git a/astrid/res/values-nb/strings.xml b/astrid/res/values-nb/strings.xml
index a4867e5a2..1421ddb19 100644
--- a/astrid/res/values-nb/strings.xml
+++ b/astrid/res/values-nb/strings.xml
@@ -360,7 +360,7 @@ Hvis du ikke ønsker å se den nye oppgaven rett etter at du fullfører den gaml
Sikkerhetskopierte %s til %s.
Gjennopprettingssammendrag
- Filen %s inneholdt %d gjøremål. \n Gjennopprettet % gjøremål. \n Hoppet over % gjøremål. \n
+ Filen %s inneholdt %d gjøremål. \n Gjennopprettet %d gjøremål. \n Hoppet over %d gjøremål. \n
Gjenopprett
Åpner fil …
Fil åpnet...
@@ -388,7 +388,7 @@ Hvis du ikke ønsker å se den nye oppgaven rett etter at du fullfører den gaml
Kunne ikke finne dette elementet:
- Kunne ikke lagre:s
+
Kan ikke aksessere mappe: %s
Kunne ikke aksessere ditt SD-kort!
diff --git a/astrid/res/values-nl/strings.xml b/astrid/res/values-nl/strings.xml
index 4985522ff..0e873f284 100644
--- a/astrid/res/values-nl/strings.xml
+++ b/astrid/res/values-nl/strings.xml
@@ -392,13 +392,13 @@ Skipped %d tasks.\n
Doel deadline!
Werkt nu aan:
- Je hebt %NUM getagd als $TAG!
+ Je hebt $NUM getagd als $TAG!
Kon dit item niet vinden:
- Kon dit niet opslaan:
+
Cannot access folder: %s
Cannot access your SD card!
diff --git a/astrid/res/values-pl/strings.xml b/astrid/res/values-pl/strings.xml
index 5be5eeb2d..9294b2bd5 100644
--- a/astrid/res/values-pl/strings.xml
+++ b/astrid/res/values-pl/strings.xml
@@ -357,7 +357,7 @@
Przywrócono %s jako %s
Odzyskaj podsumowanie
- Plik %s zawierał zadania %s\n. Przywrócono %d zadań \n pominięto %d zadań \n
+ Plik %s zawierał zadania %d\n. Przywrócono %d zadań \n pominięto %d zadań \n
Przywróć
Otwieranie pliku...
Plik otwarty...
@@ -385,7 +385,7 @@
Nie zdołano znaleźć tego elementu:
- Nie można zapisać:
+
Nie można otworzyć folderu: %s
Nie można otworzyć Twojej karty SD!
diff --git a/astrid/res/values-pt/strings.xml b/astrid/res/values-pt/strings.xml
index 8d9d86c38..fc99bd4ed 100644
--- a/astrid/res/values-pt/strings.xml
+++ b/astrid/res/values-pt/strings.xml
@@ -257,7 +257,7 @@
Guardar
Tarefa Guardada: vence em %s
- Tarefa Guardada: venceu %d atrás
+ Tarefa Guardada: venceu %s atrás
Tarefa Guardada
@@ -385,7 +385,7 @@
Não foi possível encontrar este item:
- Não foi possível gravar: %s
+
Não é possível aceder à pasta: %s
Não é possível aceder ao seu cartão SD!
@@ -436,7 +436,7 @@
Efectuar cópias de segurança diárias para o cartão SD
- A última cópia de segurança falhou
+ A última cópia de segurança falhou: %s
A última cópia de segurança falhou, não foi possível ler o cartão SD
diff --git a/astrid/res/values-ru/strings.xml b/astrid/res/values-ru/strings.xml
index 3cf0fdfe2..2c196b328 100644
--- a/astrid/res/values-ru/strings.xml
+++ b/astrid/res/values-ru/strings.xml
@@ -385,7 +385,7 @@
Не могу найти элемент:
- Не могу сохранить:
+
Нет доступа к папке:%s
Нет доступа к карте памяти!
diff --git a/astrid/res/values-sv/strings.xml b/astrid/res/values-sv/strings.xml
index 03f6b301f..006a34fb4 100644
--- a/astrid/res/values-sv/strings.xml
+++ b/astrid/res/values-sv/strings.xml
@@ -385,7 +385,7 @@
Kunde inte hitta följande:
- Kunde inte spara: %s
+
Mappåtkomst nekad: %s
SD-kort ej tillgängligt!
diff --git a/astrid/res/values-tr/strings.xml b/astrid/res/values-tr/strings.xml
index 928ab1524..514d4d73b 100644
--- a/astrid/res/values-tr/strings.xml
+++ b/astrid/res/values-tr/strings.xml
@@ -293,7 +293,7 @@
Otomatik-Senkronizasyon
Eğer işaretlenirse, otomatik senkronizasyon belirtilen aralıklarla gerçekleşir
Ana Menü kısayolu
- \"Senkronizasyon\"\u Astrid menüsünde göster
+ \"Senkronizasyon\" Astrid menüsünde göster
Soru kutularını gizle.
Senkronizasyon sonucunu sakla
Senkronizasyonu sadece Wifi üzerinden yap
@@ -323,7 +323,7 @@
Bu cihazda silinen işler
İndiriliyor: %s
- Lütfen RTM'ye giriş yapın..
+ Lütfen RTM\'ye giriş yapın..
Girişinizde bir hata oluştu. \n\n Hata mesajı:
@@ -349,7 +349,7 @@
Astrid hakkında bilmedikleriniz olabilir, mesela: \n \n - Yeni iş belirlemek için doğrudan yazmaya başlayabilirsiniz! \n \n - Bir iş maddesini düzenlerken \'geri\' tuşuna basarak hem kaydedip hem geri dönebilirsiniz. \n - Bir iş seçip 1-4 aralığında bir sayıya basıp öncelik tayin edebilirsiniz. \n Bir işin son tarihi varsa, uzun basarak onu erteleyebilirsiniz. \n \n Astrid\'i tercih ettiğiniz için teşekkürler!\n
- Görünüşe bakılırsa arka plan programlarını öldürebilen bir \"aplikasyon\" kullanıyorsunuz! Mümkünse Astrid\'i istisnalar listesine ekleyin, yoksa uyarı sistemi çalışmayabilir.
+ Görünüşe bakılırsa arka plan programlarını öldürebilen bir \"%s\" kullanıyorsunuz! Mümkünse Astrid\'i istisnalar listesine ekleyin, yoksa uyarı sistemi çalışmayabilir.
Astrid\'i öldürmeyeceğim!
@@ -386,8 +386,8 @@
Could not find this item:
- %s kaydedilemedi.
- % klasörüne erişilemedi.
+
+ %s klasörüne erişilemedi.
Hafıza kartına erişemiyorum!
diff --git a/astrid/res/values-zh-rCN/strings.xml b/astrid/res/values-zh-rCN/strings.xml
index 5f9efe30d..727d8c9aa 100644
--- a/astrid/res/values-zh-rCN/strings.xml
+++ b/astrid/res/values-zh-rCN/strings.xml
@@ -385,7 +385,7 @@
无法查找以下任务:
- 无法保存:
+
无法访问文件夹: %s
无法访问您的 SD 卡!
diff --git a/astrid/res/values-zh-rTW/strings.xml b/astrid/res/values-zh-rTW/strings.xml
index e5e546674..e132b1e67 100644
--- a/astrid/res/values-zh-rTW/strings.xml
+++ b/astrid/res/values-zh-rTW/strings.xml
@@ -411,7 +411,7 @@ Skipped %d tasks.\n
找不到此項目:
- 無法儲存:
+
Cannot access folder: %s
Cannot access your SD card!
diff --git a/astrid/res/values/strings.xml b/astrid/res/values/strings.xml
index 4c76f12db..40fede4b4 100644
--- a/astrid/res/values/strings.xml
+++ b/astrid/res/values/strings.xml
@@ -416,7 +416,6 @@ Skipped %d tasks.\n
Could not find this item:
- Could not save:s
Cannot access folder: %s
Cannot access your SD card!
diff --git a/tests/src/com/todoroo/andlib/test/TranslationTests.java b/tests/src/com/todoroo/andlib/test/TranslationTests.java
new file mode 100644
index 000000000..1a0699d13
--- /dev/null
+++ b/tests/src/com/todoroo/andlib/test/TranslationTests.java
@@ -0,0 +1,226 @@
+package com.todoroo.andlib.test;
+
+
+
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.Locale;
+
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.util.DisplayMetrics;
+
+/**
+ * Tests translations for consistency with the default values. You must
+ * extend this class and create it with your own values for strings
+ * and arrays.
+ *
+ * @author Tim Su
+ *
+ */
+abstract public class TranslationTests extends TodorooTestCase {
+
+ // --- abstract classes
+ public abstract Class> getStringResources();
+ public abstract Class> getArrayResources();
+
+ // --- tests
+
+ private static final class FormatStringData {
+ private static final char[] scratch = new char[10];
+
+ /** format characters */
+ public final char[] characters;
+
+ /** the original string */
+ public final String string;
+
+ public FormatStringData(String string) {
+ this.string = string;
+
+ int pos = -1;
+ int count = 0;
+ while(true) {
+ pos = string.indexOf('%', ++pos);
+ if(pos++ == -1)
+ break;
+ if(pos >= string.length())
+ scratch[count++] = '\0';
+ else
+ scratch[count++] = string.charAt(pos);
+ }
+ characters = new char[count];
+ for(int i = 0; i < count; i++) {
+ characters[i] = scratch[i];
+ }
+ }
+
+ /** test that the characters match */
+ public boolean matches(FormatStringData other) {
+ return Arrays.equals(characters, other.characters);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder value = new StringBuilder("[");
+ for(int i = 0; i < characters.length; i++) {
+ value.append(characters[i]);
+ if(i < characters.length - 1)
+ value.append(',');
+ }
+ value.append("]: '").append(string).append('\'');
+ return value.toString();
+ }
+ }
+
+ /**
+ * Internal test of format string parser
+ */
+ public void testFormatStringParser() {
+ String s = "abc";
+ FormatStringData data = new FormatStringData(s);
+ assertEquals(s, data.string);
+ assertEquals(0, data.characters.length);
+
+ s = "abc %s def";
+ data = new FormatStringData(s);
+ assertEquals(1, data.characters.length);
+ assertEquals('s', data.characters[0]);
+
+ s = "abc %%s def %d";
+ data = new FormatStringData(s);
+ assertEquals(2, data.characters.length);
+ assertEquals('%', data.characters[0]);
+ assertEquals('d', data.characters[1]);
+ assertTrue(data.toString(), data.toString().contains("[%"));
+ assertTrue(data.toString(), data.toString().contains("d]"));
+ assertTrue(data.toString(), data.toString().contains(s));
+ assertTrue(data.matches(new FormatStringData("espanol %% und %d si")));
+ assertFalse(data.matches(new FormatStringData("ingles %d ja %% pon")));
+
+ s = "% abc %";
+ data = new FormatStringData(s);
+ assertEquals(2, data.characters.length);
+ assertEquals(' ', data.characters[0]);
+ assertEquals('\0', data.characters[1]);
+ }
+
+ /**
+ * Test that the format specifiers in translations match exactly the
+ * translations in the default text
+ */
+ public void testFormatStringsMatch() throws Exception {
+ final Resources r = getContext().getResources();
+ final int[] strings = getResourceIds(getStringResources());
+ final FormatStringData[] formatStrings = new FormatStringData[strings.length];
+
+ for(int i = 0; i < strings.length; i++) {
+ String string = r.getString(strings[i]);
+ formatStrings[i] = new FormatStringData(string);
+ }
+
+ final StringBuilder failures = new StringBuilder();
+
+ forEachLocale(new Runnable() {
+ public void run() {
+ Locale locale = r.getConfiguration().locale;
+ for(int i = 0; i < strings.length; i++) {
+ try {
+ String string = r.getString(strings[i]);
+ FormatStringData newFS = new FormatStringData(string);
+ if(!newFS.matches(formatStrings[i])) {
+ String name = r.getResourceName(strings[i]);
+ failures.append(String.format("%s (%s): %s != %s\n",
+ name, locale.toString(), newFS, formatStrings[i]));
+ }
+ } catch (Exception e) {
+ String name = r.getResourceName(strings[i]);
+ failures.append(String.format("%s: error opening %s: %s\n",
+ locale.toString(), name, e.getMessage()));
+ }
+ }
+ }
+ });
+
+ assertEquals(failures.toString(), 0, failures.length());
+ }
+
+ /**
+ * Test that there are the same number of array entries in each locale
+ */
+ public void testArraySizesMatch() throws Exception {
+ final Resources r = getContext().getResources();
+ final int[] arrays = getResourceIds(getArrayResources());
+ final int[] sizes = new int[arrays.length];
+ for(int i = 0; i < arrays.length; i++) {
+ sizes[i] = r.getStringArray(arrays[i]).length;
+ }
+
+ final StringBuilder failures = new StringBuilder();
+ forEachLocale(new Runnable() {
+ public void run() {
+ for(int i = 0; i < arrays.length; i++) {
+ int size = r.getStringArray(arrays[i]).length;
+ if(size != sizes[i]) {
+ String name = r.getResourceName(arrays[i]);
+ Locale locale = r.getConfiguration().locale;
+ failures.append(String.format("%s (%s): size %d != %d\n",
+ name, locale.toString(), size, sizes[i]));
+ }
+ }
+ }
+ });
+ assertEquals(failures.toString(), 0, failures.length());
+ }
+
+ // --- helper methods
+
+ /**
+ * @return an array of all string resource id's
+ */
+ private int[] getResourceIds(Class> resources) throws Exception {
+ Field[] fields = resources.getDeclaredFields();
+ int[] ids = new int[fields.length];
+ for(int i = 0; i < fields.length; i++) {
+ ids[i] = fields[i].getInt(null);
+ }
+ return ids;
+ }
+
+ /**
+ * Loop through each locale and call runnable
+ * @param r
+ */
+ private void forEachLocale(Runnable r) {
+ Locale[] locales = Locale.getAvailableLocales();
+ for(Locale locale : locales) {
+ setLocale(locale);
+
+ r.run();
+ }
+ }
+
+ /**
+ * Sets locale
+ * @param locale
+ */
+ private void setLocale(Locale locale) {
+ Locale.setDefault(locale);
+ Configuration config = new Configuration();
+ config.locale = locale;
+ DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
+ getContext().getResources().updateConfiguration(config, metrics);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ setLocale(Locale.getDefault());
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ setLocale(Locale.getDefault());
+ }
+}
diff --git a/tests/src/com/todoroo/astrid/test/AstridTranslationTests.java b/tests/src/com/todoroo/astrid/test/AstridTranslationTests.java
new file mode 100644
index 000000000..afb19b942
--- /dev/null
+++ b/tests/src/com/todoroo/astrid/test/AstridTranslationTests.java
@@ -0,0 +1,20 @@
+package com.todoroo.astrid.test;
+
+
+
+import com.timsu.astrid.R;
+import com.todoroo.andlib.test.TranslationTests;
+
+public class AstridTranslationTests extends TranslationTests {
+
+ @Override
+ public Class> getArrayResources() {
+ return R.array.class;
+ }
+
+ @Override
+ public Class> getStringResources() {
+ return R.string.class;
+ }
+
+}