diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 56c8da10..8cd27cf9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -32,28 +32,36 @@ module ApplicationHelper end days = days_from_today(due) - - case days - when 0 - "Due Today " - when 1 - "Due Tomorrow " - # due 2-7 days away - when 2..7 - if prefs.due_style == Preference.due_styles[:due_on] - "Due on #{due.strftime("%A")} " - else - "Due in #{pluralize(days, 'day')} " - end - else - # overdue or due very soon! sound the alarm! - if days < 0 - "Overdue by #{pluralize(days * -1, 'day')} " - else - # more than a week away - relax - "Due in #{pluralize(days, 'day')} " - end - end + + colors = ['amber','amber','orange','orange','orange','orange','orange','orange'] + color = :red if days < 0 + color = :green if days > 7 + color = colors[days] if color.nil? + + return content_tag(:a, {:title => format_date(due)}) { + content_tag(:span, {:class => color}) { + case days + when 0 + t('todos.next_actions_due_date.due_today') + when 1 + t('todos.next_actions_due_date.due_tomorrow') + when 2..7 + if prefs.due_style == Preference.due_styles[:due_on] + t('models.preference.due_on', due.strftime("%A")) + else + t('models.preference.due_in', :days => days) + end + else + # overdue or due very soon! sound the alarm! + if days < 0 + t('todos.next_actions_due_date.overdue_by', :days => pluralize(days * -1, 'day')) + else + # more than a week away - relax + t('todos.next_actions_due_date.due_in', :days => pluralize(days, 'day')) + end + end + } + } end # Check due date in comparison to today's date Flag up date appropriately with diff --git a/config/locales/de.yml b/config/locales/de.yml index a5249711..2b6ac7f7 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -57,6 +57,7 @@ de: first: Erste website: Website numbered_step: Schritt %{number} + fourth: Vierte sort: by_task_count_title: Nach Anzahl der Aufgaben sortieren by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. @@ -65,27 +66,32 @@ de: alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. alphabetically_title: Projekte alphabetisch sortieren by_task_count: Nach Anzahl der Aufgaben - fourth: Vierte - drag_handle: Verschieben create: Erstellen - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" + drag_handle: Verschieben context: Kontext + errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" description: Beschreibung contexts: Kontexte - update: Aktualisieren wiki: Wiki + update: Aktualisieren bugs: Bugs ajaxError: Fehler beim Empfangen vom Server - email: E-Mail search: Suchen + email: E-Mail + integrations: + opensearch_description: In Tracks suchen + gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" + applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" + applescript_success_after_id: erstellt + applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" layouts: toggle_notes: Notizen umschalten next_actions_rss_feed: RSS-Feed kommende Aufgaben toggle_notes_title: Alle Notizen umschalten mobile_navigation: logout: Abmelden - feeds: Feeds new_action: 0-Neue Aufgabe + feeds: Feeds starred: 4-Markiert projects: 3-Projekte tickler: Notizbuch @@ -110,8 +116,8 @@ de: starred_title: Markierte Aufgaben betrachten recurring_todos_title: Sich wiederholende To-Dos verwalten completed_tasks: Erledigt - stats_title: Statistiken anzeigen tickler: Notizbuch + stats_title: Statistiken anzeigen organize: Organisieren view: Betrachten completed_tasks_title: "Vollst\xC3\xA4ndig" @@ -119,15 +125,9 @@ de: home: Start contexts_title: Kontexte preferences_title: Meine Einstellungen - calendar: Kalender projects_title: Projekte + calendar: Kalender search: "Alle Eintr\xC3\xA4ge durchsuchen" - integrations: - opensearch_description: In Tracks suchen - gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" - applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" - applescript_success_after_id: erstellt - applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" data: import_successful: Import war erfolgreich. import_errors: Beim Import sind Fehler aufgetreten. @@ -138,6 +138,8 @@ de: todo: error_date_must_be_future: muss ein Datum in der Zukunft sein preference: + due_on: "F\xC3\xA4llig auf %{date}" + due_in: "F\xC3\xA4llig in %{days} Tagen" due_styles: - "F\xC3\xA4llig in ___ Tagen" - "F\xC3\xA4llig am _______" @@ -198,8 +200,8 @@ de: exclusion: "ist nicht verf\xC3\xBCgbar" odd: muss ungerade sein too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" empty: "muss ausgef\xC3\xBCllt werden" + wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" even: muss gerade sein less_than: muss kleiner als %{count} sein greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" @@ -251,13 +253,13 @@ de: actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. top5_contexts: Top 5 aller Kontexte action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) - projects: Projekte actions_last_year: Aktionen im letzten Jahr + projects: Projekte totals_context_count: Du hast %{count} Kontexte. totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." tags: Tags + actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" actions_day_of_week_title: Wochentag (alle Aktionen) @@ -288,8 +290,8 @@ de: click_to_return_link: hier totals_hidden_context_count: und %{count} sind versteckte Kontexte. actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt - totals: Ingesamt contexts: Kontexte + totals: Ingesamt no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." running_time_all_legend: actions: Aktionen @@ -397,6 +399,11 @@ de: unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" show_today: Heute anzeigen no_actions_found_title: Keine Aktionen gefunden + next_actions_due_date: + overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days}" + due_today: "Heute f\xC3\xA4llig" + due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" + due_tomorrow: "F\xC3\xA4llig morgen" completed_last_x_days: In den letzten %{count} Tagen erledigt no_actions_with: "Im Augenblick gibt es keine unvollst\xC3\xA4ndigen Aktionen mit dem Tag '%{tag_name}'" defer_x_days: @@ -456,8 +463,8 @@ de: yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage - ends_on: Endet am weekly_every_number_week: Kehrt jede %{number}. Woche wieder am + ends_on: Endet am show_options: To-Do anzeigen no_end_date: Kein Enddatum day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat @@ -472,8 +479,8 @@ de: added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit - no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." in_pending_state: und als ausstehend markiert + no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" due: Fällig action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. @@ -509,8 +516,8 @@ de: was_marked_hidden: wurde als verborgen markiert edit_project_title: Projekt bearbeiten default_tags_removed_notice: Standard-Tags entfernt - hide_form: Fomular verstecken page_title: "TRACKS::Projekt: %{project}" + hide_form: Fomular verstecken this_project: Dieses Projekt project_state: Projekt ist %{state} show_form_title: Neues Projekt anlegen @@ -544,13 +551,22 @@ de: completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" default_context_removed: Standard-Kontext entfernt add_note_submit: "Notiz hinzuf\xC3\xBCgen" - active_projects: Aktive Projekte status_project_name_changed: "Projektname ge\xC3\xA4ndert" + active_projects: Aktive Projekte no_default_context: Dieses Projekt hat keinen Standard-Kontext with_no_default_tags: und hat keinen Standardwert Tags default_context: Der Standard-Kontext dieses Projektes ist %{context} state: Dieses Projekt ist %{state} edit_project_settings: Edit Project Settings + states: + hidden_plural: Versteckte + completed: Erledigt + completed_plural: Erledigte + visible_plural: Sichtbare + active_plural: Aktive + visible: Sichtbar + hidden: Versteckt + active: Aktiv time: am: vormittags formats: @@ -559,15 +575,8 @@ de: short: "%d. %B, %H:%M Uhr" long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags - states: - hidden_plural: Versteckte - completed: Erledigt - completed_plural: Erledigte - visible_plural: Sichtbare - active_plural: Aktive - visible: Sichtbar - active: Aktiv - hidden: Versteckt + errors: + user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." preferences: change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" open_id_url: "Deine OpenID-URL lautet:" @@ -585,11 +594,9 @@ de: generate_new_token: Neues Token generieren token_header: Dein Token change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" - current_authentication_type: Dein Authentifizierungsart ist %{auth_type} authentication_header: Deine Authentifizierung + current_authentication_type: Dein Authentifizierungsart ist %{auth_type} generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." - errors: - user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." date: month_names: - @@ -734,8 +741,8 @@ de: signup_new_user: Neuen Benutzer anlegen change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" - identity_url: Identity-URL openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. + identity_url: Identity-URL total_notes: Alle Notizen select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." sidebar: diff --git a/config/locales/en.yml b/config/locales/en.yml index 2876bc9f..c6a064f9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -46,6 +46,8 @@ en: feed_description: "Lists all the projects for %{username}" preference: due_styles: ['Due in ___ days', 'Due on _______'] + due_on: "Due on %{date}" + due_in: "Due in %{days} days" user: error_context_not_associated: "Context id %{context} not associated with user id %{user}." error_project_not_associated: "Project id %{project} not associated with user id %{user}." @@ -543,6 +545,11 @@ en: calendar_page_title: "TRACKS::Calendar" next_actions_title: "Tracks - Next Actions" next_actions_description: "Filter:" + next_actions_due_date: + due_today: Due Today + due_tomorrow: Due Tomorrow + due_in_x_days: "Due in %{days} days" + overdue_by: "Overdue by %{days}" next_actions_title_additions: due_today: "due today" due_within_a_week: "due within a week" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index e5cd3470..212c5129 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -46,7 +46,6 @@ nl: first: Eerste website: Website numbered_step: Stap %{number} - fourth: Vierde sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. @@ -55,26 +54,33 @@ nl: alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically_title: Sorteer projecten alfabetisch by_task_count: Op aantal acties - drag_handle: SLEEP + fourth: Vierde create: Maken - errors_with_fields: Er waren problemen met de volgende velden + drag_handle: SLEEP context: Context + errors_with_fields: Er waren problemen met de volgende velden description: Beschrijving contexts: Contexten - wiki: Wiki update: Bijwerken + wiki: Wiki bugs: Fouten ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server - search: Zoeken email: E-mail + search: Zoeken + integrations: + opensearch_description: Zoek in Tracks + gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget + applescript_next_action_prompt: "Omschrijving van de actie:" + applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID layouts: toggle_notes: Toggle notities next_actions_rss_feed: RSS-feed van de acties toggle_notes_title: Toggle alle notities mobile_navigation: logout: Afmelden - new_action: 0-Nieuwe actie feeds: Feeds + new_action: 0-Nieuwe actie starred: 4-Ster projects: 3-Projecten tickler: Tickler @@ -99,8 +105,8 @@ nl: starred_title: Zie je ster acties recurring_todos_title: Beheren terugkerende acties completed_tasks: Gereed - tickler: Tickler stats_title: Zie je statistieken + tickler: Tickler organize: Organiseer view: Bekijk completed_tasks_title: Afgerond @@ -108,15 +114,9 @@ nl: home: Start contexts_title: Contexten preferences_title: Toon mijn voorkeuren - calendar: Agenda projects_title: Projecten + calendar: Agenda search: Zoeken in alle items - integrations: - opensearch_description: Zoek in Tracks - gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_next_action_prompt: "Omschrijving van de actie:" - applescript_success_after_id: gemaakt - applescript_success_before_id: Nieuwe actie met ID data: import_successful: De import was succesvol import_errors: Er hebben zich fouten voorgedaan bij de import @@ -127,6 +127,8 @@ nl: todo: error_date_must_be_future: moet een datum in de toekomst zijn preference: + due_on: Deadline op %{date} + due_in: Deadline over %{days} dagen due_styles: - Deadline over ____ dagen - Deadline op ____ @@ -187,8 +189,8 @@ nl: exclusion: is gereserveerd odd: moet oneven zijn too_short: is te kort (minimum is %{count} karakters) - wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) empty: mag niet leeg zijn + wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) even: moet even zijn less_than: moet kleiner zijn dan %{count} greater_than: moet groter zijn dan %{count} @@ -240,13 +242,13 @@ nl: actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. top5_contexts: Top 5 contexten action_completion_time_title: Doorlooptijd (alle voltooide acties) - actions_last_year: Acties in de afgelopen jaren projects: Projecten + actions_last_year: Acties in de afgelopen jaren totals_context_count: U heeft %{count} contexten. totals_visible_context_count: Van deze zijn %{count} zichtbare contexten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. tags: Tags + actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. actions_min_completion_time: De minimale tijd tot afronding is %{time}. no_tags_available: geen tags beschikbaar actions_day_of_week_title: Dag van de week (alle acties) @@ -277,8 +279,8 @@ nl: click_to_return_link: hier totals_hidden_context_count: en %{count} zijn verborgen contexten. actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. - contexts: Contexten totals: Totalen + contexts: Contexten no_actions_selected: Er zijn geen acties geselecteerd. running_time_all_legend: actions: Acties @@ -386,6 +388,11 @@ nl: unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? show_today: Toon vandaag no_actions_found_title: Geen acties gevonden + next_actions_due_date: + overdue_by: Over deadline met %{days} + due_today: Deadline vandaag + due_in_x_days: Deadline over %{days} dagen + due_tomorrow: Deadline morgen completed_last_x_days: Voltooid in de laatste %{count} dagen no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}' defer_x_days: @@ -445,8 +452,8 @@ nl: yearly_every_x_day: Elke %{month} %{day} recurrence_on_options: Stel herhaling in op daily_every_number_day: Elke %{number} dag(en) - ends_on: Eindigt op weekly_every_number_week: Herhaalt elke %{number} weken op + ends_on: Eindigt op show_options: Toon de actie no_end_date: Geen einddatum day_x_on_every_x_month: Dag %{day} op elke %{month} maand @@ -461,8 +468,8 @@ nl: added_dependency: "%{dependency} als afhankelijkheid toegevoegd." no_deferred_actions: Momenteel zijn er geen uitgestelde acties. recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid - no_actions_found: Momenteel zijn er geen onafgeronde acties. in_pending_state: in wachtende toestand + no_actions_found: Momenteel zijn er geen onafgeronde acties. error_toggle_complete: Kon deze actie niet als afgerond markeren due: Deadline action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. @@ -498,8 +505,8 @@ nl: was_marked_hidden: is gemarkeerd als verborgen edit_project_title: Bewerk project default_tags_removed_notice: De standaard tags zijn verwijderd - page_title: "TRACKS:: Project: %{project}" hide_form: Verberg formulier + page_title: "TRACKS:: Project: %{project}" this_project: Dit project project_state: Project is %{state}. show_form_title: Maak een nieuw project @@ -533,22 +540,13 @@ nl: completed_actions: Afgeronde acties voor dit project default_context_removed: Standaard context verwijderd add_note_submit: Notitie toevoegen - status_project_name_changed: Naam van het project werd gewijzigd active_projects: Actieve projecten + status_project_name_changed: Naam van het project werd gewijzigd no_default_context: Dit project heeft geen standaard context with_no_default_tags: en zonder standaard tags default_context: De standaard context voor dit project is %{context} state: Dit project is %{state} edit_project_settings: Bewerk project instellingen - states: - hidden_plural: Verborgen - completed: Afgerond - completed_plural: Afgeronde - visible_plural: Zichtbare - active_plural: Actieve - visible: Zichtbaar - hidden: Verborgen - active: Actief time: am: ochtend formats: @@ -557,8 +555,15 @@ nl: short: "%d %B %H:%M" long: "%A, %d. %B %Y, %H:%M" pm: middag - errors: - user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." + states: + hidden_plural: Verborgen + completed: Afgerond + completed_plural: Afgeronde + visible_plural: Zichtbare + active_plural: Actieve + visible: Zichtbaar + active: Actief + hidden: Verborgen preferences: change_identity_url: Verander uw Identity URL open_id_url: Uw OpenID URL is @@ -576,9 +581,11 @@ nl: generate_new_token: Genereer een nieuwe token token_header: Uw token change_authentication_type: Verander uw authenticatietype - authentication_header: Uw authenticatie current_authentication_type: Uw authenticatietype is %{auth_type} + authentication_header: Uw authenticatie generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. + errors: + user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." date: month_names: - @@ -741,8 +748,8 @@ nl: signup_new_user: Registreer nieuwe gebruiker change_authentication_type: Wijzigen authenticatietype auth_change_submit: Wijzigen authenticatietype - openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. identity_url: Identiteit URL + openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. total_notes: Totaal aantal notities select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. sidebar: