- Localized more commands.
This commit is contained in:
Paul Beckingham 2011-06-25 13:14:47 -04:00
parent 6d4bf3dc75
commit 20bb5bf648
7 changed files with 156 additions and 76 deletions

View file

@ -25,6 +25,8 @@
//
////////////////////////////////////////////////////////////////////////////////
#define L10N // Localization complete.
#include <sstream>
#include <stdlib.h>
#include <Context.h>
@ -33,6 +35,7 @@
#include <ViewText.h>
#include <main.h>
#include <text.h>
#include <i18n.h>
#include <CmdInfo.h>
extern Context context;
@ -41,7 +44,7 @@ CmdInfo::CmdInfo ()
{
_keyword = "information";
_usage = "task information <filter>";
_description = "Shows all data and metadata for specified tasks.";
_description = STRING_CMD_INFO_USAGE;
_read_only = true;
_displays_id = true;
}
@ -79,8 +82,8 @@ int CmdInfo::execute (std::string& output)
{
ViewText view;
view.width (context.getWidth ());
view.add (Column::factory ("string", "Name"));
view.add (Column::factory ("string", "Value"));
view.add (Column::factory ("string", STRING_COLUMN_LABEL_NAME));
view.add (Column::factory ("string", STRING_COLUMN_LABEL_VALUE));
// If an alternating row color is specified, notify the table.
if (context.color ())
@ -94,7 +97,7 @@ int CmdInfo::execute (std::string& output)
// id
int row = view.addRow ();
view.set (row, 0, "ID");
view.set (row, 0, STRING_COLUMN_LABEL_ID);
view.set (row, 1, format (task->id));
std::string status = ucFirst (Task::statusToText (task->getStatus ()));
@ -104,19 +107,19 @@ int CmdInfo::execute (std::string& output)
autoColorize (*task, c);
row = view.addRow ();
view.set (row, 0, "Description");
view.set (row, 0, STRING_COLUMN_LABEL_DESC);
view.set (row, 1, getFullDescription (*task, "info"), c);
// status
row = view.addRow ();
view.set (row, 0, "Status");
view.set (row, 0, STRING_COLUMN_LABEL_STATUS);
view.set (row, 1, status);
// project
if (task->has ("project"))
{
row = view.addRow ();
view.set (row, 0, "Project");
view.set (row, 0, STRING_COLUMN_LABEL_PROJECT);
view.set (row, 1, task->get ("project"));
}
@ -124,7 +127,7 @@ int CmdInfo::execute (std::string& output)
if (task->has ("priority"))
{
row = view.addRow ();
view.set (row, 0, "Priority");
view.set (row, 0, STRING_COLUMN_LABEL_PRIORITY);
view.set (row, 1, task->get ("priority"));
}
@ -140,7 +143,7 @@ int CmdInfo::execute (std::string& output)
message << it->id << " " << it->get ("description") << "\n";
row = view.addRow ();
view.set (row, 0, "This task blocked by");
view.set (row, 0, STRING_CMD_INFO_BLOCKED);
view.set (row, 1, message.str ());
}
}
@ -157,7 +160,7 @@ int CmdInfo::execute (std::string& output)
message << it->id << " " << it->get ("description") << "\n";
row = view.addRow ();
view.set (row, 0, "This task is blocking");
view.set (row, 0, STRING_CMD_INFO_BLOCKING);
view.set (row, 1, message.str ());
}
}
@ -166,7 +169,7 @@ int CmdInfo::execute (std::string& output)
if (task->has ("recur"))
{
row = view.addRow ();
view.set (row, 0, "Recurrence");
view.set (row, 0, STRING_COLUMN_LABEL_RECUR_L);
view.set (row, 1, task->get ("recur"));
}
@ -174,7 +177,7 @@ int CmdInfo::execute (std::string& output)
if (task->has ("until"))
{
row = view.addRow ();
view.set (row, 0, "Recur until");
view.set (row, 0, STRING_CMD_INFO_RECUR_UNTIL);
Date dt (strtol (task->get ("until").c_str (), NULL, 10));
std::string format = context.config.get ("reportdateformat");
@ -189,7 +192,7 @@ int CmdInfo::execute (std::string& output)
if (task->getStatus () == Task::recurring)
{
row = view.addRow ();
view.set (row, 0, "Mask");
view.set (row, 0, STRING_COLUMN_LABEL_MASK);
view.set (row, 1, task->get ("mask"));
}
@ -197,12 +200,12 @@ int CmdInfo::execute (std::string& output)
{
// parent
row = view.addRow ();
view.set (row, 0, "Parent task");
view.set (row, 0, STRING_COLUMN_LABEL_PARENT);
view.set (row, 1, task->get ("parent"));
// imask
row = view.addRow ();
view.set (row, 0, "Mask Index");
view.set (row, 0, STRING_COLUMN_LABEL_MASK_IDX);
view.set (row, 1, task->get ("imask"));
}
@ -210,7 +213,7 @@ int CmdInfo::execute (std::string& output)
if (task->has ("due"))
{
row = view.addRow ();
view.set (row, 0, "Due");
view.set (row, 0, STRING_COLUMN_LABEL_DUE);
std::string format = context.config.get ("reportdateformat");
if (format == "")
@ -223,7 +226,7 @@ int CmdInfo::execute (std::string& output)
if (task->has ("wait"))
{
row = view.addRow ();
view.set (row, 0, "Waiting until");
view.set (row, 0, STRING_COLUMN_LABEL_WAITING);
Date dt (strtol (task->get ("wait").c_str (), NULL, 10));
view.set (row, 1, dt.toString (context.config.get ("dateformat")));
}
@ -232,7 +235,7 @@ int CmdInfo::execute (std::string& output)
if (task->has ("start"))
{
row = view.addRow ();
view.set (row, 0, "Start");
view.set (row, 0, STRING_COLUMN_LABEL_START);
Date dt (strtol (task->get ("start").c_str (), NULL, 10));
view.set (row, 1, dt.toString (context.config.get ("dateformat")));
}
@ -241,7 +244,7 @@ int CmdInfo::execute (std::string& output)
if (task->has ("end"))
{
row = view.addRow ();
view.set (row, 0, "End");
view.set (row, 0, STRING_COLUMN_LABEL_END);
Date dt (strtol (task->get ("end").c_str (), NULL, 10));
view.set (row, 1, dt.toString (context.config.get ("dateformat")));
}
@ -255,19 +258,19 @@ int CmdInfo::execute (std::string& output)
join (allTags, " ", tags);
row = view.addRow ();
view.set (row, 0, "Tags");
view.set (row, 0, STRING_COLUMN_LABEL_TAGS);
view.set (row, 1, allTags);
}
// uuid
row = view.addRow ();
view.set (row, 0, "UUID");
view.set (row, 0, STRING_COLUMN_LABEL_UUID);
std::string uuid = task->get ("uuid");
view.set (row, 1, uuid);
// entry
row = view.addRow ();
view.set (row, 0, "Entered");
view.set (row, 0, STRING_COLUMN_LABEL_ENTERED);
Date dt (strtol (task->get ("entry").c_str (), NULL, 10));
std::string entry = dt.toString (context.config.get ("dateformat"));
@ -281,27 +284,27 @@ int CmdInfo::execute (std::string& output)
view.set (row, 1, entry + " (" + age + ")");
// fg
// fg TODO deprecated
std::string color = task->get ("fg");
if (color != "")
{
row = view.addRow ();
view.set (row, 0, "Foreground color");
view.set (row, 0, STRING_COLUMN_LABEL_FG);
view.set (row, 1, color);
}
// bg
// bg TODO deprecated
color = task->get ("bg");
if (color != "")
{
row = view.addRow ();
view.set (row, 0, "Background color");
view.set (row, 0, STRING_COLUMN_LABEL_BG);
view.set (row, 1, color);
}
// Task::urgency
row = view.addRow ();
view.set (row, 0, "Urgency");
view.set (row, 0, STRING_COLUMN_LABEL_URGENCY);
view.set (row, 1, trimLeft (format (task->urgency (), 4, 4)));
// Create a second table, containing undo log change details.
@ -316,8 +319,8 @@ int CmdInfo::execute (std::string& output)
}
journal.width (context.getWidth ());
journal.add (Column::factory ("string", "Date"));
journal.add (Column::factory ("string", "Modification"));
journal.add (Column::factory ("string", STRING_COLUMN_LABEL_DATE));
journal.add (Column::factory ("string", STRING_CMD_INFO_MODIFICATION));
if (context.config.getBoolean ("journal.info") &&
undo.size () > 3)
@ -376,7 +379,7 @@ int CmdInfo::execute (std::string& output)
if (total_time > 0)
{
row = journal.addRow ();
journal.set (row, 0, "Total active time");
journal.set (row, 0, STRING_CMD_INFO_TOTAL_ACTIVE);
journal.set (row, 1, Duration (total_time).format (),
(context.color () ? Color ("bold") : Color ()));
}
@ -393,7 +396,7 @@ int CmdInfo::execute (std::string& output)
if (! filtered.size ())
{
out << "No matches.\n";
out << STRING_FEEDBACK_NO_MATCH << "\n";
rc = 1;
}

View file

@ -25,8 +25,11 @@
//
////////////////////////////////////////////////////////////////////////////////
#define L10N // Localization complete.
#include <Context.h>
#include <main.h>
#include <i18n.h>
#include <CmdQuery.h>
extern Context context;
@ -36,7 +39,7 @@ CmdQuery::CmdQuery ()
{
_keyword = "_query";
_usage = "task _query [<filter>]";
_description = "Executes external commands and scripts";
_description = STRING_CMD_QUERY_USAGE;
_read_only = true;
_displays_id = true;
}
@ -60,7 +63,7 @@ int CmdQuery::execute (std::string& output)
if (filtered.size () == 0)
{
context.footnote ("No matches.");
context.footnote (STRING_FEEDBACK_NO_MATCH);
return 1;
}

View file

@ -25,11 +25,14 @@
//
////////////////////////////////////////////////////////////////////////////////
#define L10N // Localization complete.
#include <sstream>
#include <algorithm>
#include <Context.h>
#include <ViewText.h>
#include <text.h>
#include <i18n.h>
#include <CmdReports.h>
extern Context context;
@ -39,7 +42,7 @@ CmdReports::CmdReports ()
{
_keyword = "reports";
_usage = "task reports";
_description = "Lists all supported reports.";
_description = STRING_CMD_REPORTS_USAGE;
_read_only = true;
_displays_id = false;
}
@ -84,8 +87,8 @@ int CmdReports::execute (std::string& output)
std::stringstream out;
ViewText view;
view.width (context.getWidth ());
view.add (Column::factory ("string", "Report"));
view.add (Column::factory ("string", "Description"));
view.add (Column::factory ("string", STRING_CMD_REPORTS_REPORT));
view.add (Column::factory ("string", STRING_CMD_REPORTS_DESC));
// If an alternating row color is specified, notify the table.
if (context.color ())
@ -106,8 +109,7 @@ int CmdReports::execute (std::string& output)
out << optionalBlankLine ()
<< view.render ()
<< optionalBlankLine ()
<< reports.size ()
<< " reports"
<< format (STRING_CMD_REPORTS_SUMMARY, reports.size ())
<< "\n";
output = out.str ();

View file

@ -25,6 +25,8 @@
//
////////////////////////////////////////////////////////////////////////////////
#define L10N // Localization complete.
#include <sstream>
#include <iomanip>
#include <stdlib.h>
@ -34,6 +36,7 @@
#include <main.h>
#include <text.h>
#include <util.h>
#include <i18n.h>
#include <CmdStatistics.h>
extern Context context;
@ -43,7 +46,7 @@ CmdStatistics::CmdStatistics ()
{
_keyword = "stats";
_usage = "task stats [<filter>]";
_description = "Shows task database statistics.";
_description = STRING_CMD_STATS_USAGE;
_read_only = true;
_displays_id = false;
}
@ -54,6 +57,8 @@ int CmdStatistics::execute (std::string& output)
int rc = 0;
std::stringstream out;
std::string dateformat = context.config.get ("dateformat");
// Go get the file sizes.
size_t dataSize = 0;
@ -149,57 +154,57 @@ int CmdStatistics::execute (std::string& output)
ViewText view;
view.width (context.getWidth ());
view.intraPadding (2);
view.add (Column::factory ("string", "Category"));
view.add (Column::factory ("string", "Data"));
view.add (Column::factory ("string", STRING_CMD_STATS_CATEGORY));
view.add (Column::factory ("string", STRING_CMD_STATS_DATA));
int row = view.addRow ();
view.set (row, 0, "Pending");
view.set (row, 0, STRING_COLUMN_LABEL_STAT_PE);
view.set (row, 1, pendingT);
row = view.addRow ();
view.set (row, 0, "Waiting");
view.set (row, 0, STRING_COLUMN_LABEL_STAT_WA);
view.set (row, 1, waitingT);
row = view.addRow ();
view.set (row, 0, "Recurring");
view.set (row, 0, STRING_COLUMN_LABEL_STAT_RE);
view.set (row, 1, recurringT);
row = view.addRow ();
view.set (row, 0, "Completed");
view.set (row, 0, STRING_COLUMN_LABEL_STAT_CO);
view.set (row, 1, completedT);
row = view.addRow ();
view.set (row, 0, "Deleted");
view.set (row, 0, STRING_COLUMN_LABEL_STAT_DE);
view.set (row, 1, deletedT);
row = view.addRow ();
view.set (row, 0, "Total");
view.set (row, 0, STRING_CMD_STATS_TOTAL);
view.set (row, 1, totalT);
row = view.addRow ();
view.set (row, 0, "Annotations");
view.set (row, 0, STRING_CMD_STATS_ANNOTATIONS);
view.set (row, 1, annotationsT);
row = view.addRow ();
view.set (row, 0, "Unique tags");
view.set (row, 0, STRING_CMD_STATS_UNIQUE_TAGS);
view.set (row, 1, (int)allTags.size ());
row = view.addRow ();
view.set (row, 0, "Projects");
view.set (row, 0, STRING_CMD_STATS_PROJECTS);
view.set (row, 1, (int)allProjects.size ());
row = view.addRow ();
view.set (row, 0, "Data size");
view.set (row, 0, STRING_CMD_STATS_DATA_SIZE);
view.set (row, 1, formatBytes (dataSize));
row = view.addRow ();
view.set (row, 0, "Undo transactions");
view.set (row, 0, STRING_CMD_STATS_UNDO_TXNS);
view.set (row, 1, undoCount);
if (totalT)
{
row = view.addRow ();
view.set (row, 0, "Tasks tagged");
view.set (row, 0, STRING_CMD_STATS_TAGGED);
std::stringstream value;
value << std::setprecision (3) << (100.0 * taggedT / totalT) << "%";
@ -210,54 +215,52 @@ int CmdStatistics::execute (std::string& output)
{
Date e (earliest);
row = view.addRow ();
view.set (row, 0, "Oldest task");
view.set (row, 1, e.toString (context.config.get ("dateformat")));
view.set (row, 0, STRING_CMD_STATS_OLDEST);
view.set (row, 1, e.toString (dateformat));
Date l (latest);
row = view.addRow ();
view.set (row, 0, "Newest task");
view.set (row, 1, l.toString (context.config.get ("dateformat")));
view.set (row, 0, STRING_CMD_STATS_NEWEST);
view.set (row, 1, l.toString (dateformat));
row = view.addRow ();
view.set (row, 0, "Task used for");
view.set (row, 0, STRING_CMD_STATS_USED_FOR);
view.set (row, 1, Duration (latest - earliest).format ());
}
if (totalT)
{
row = view.addRow ();
view.set (row, 0, "Task added every");
view.set (row, 0, STRING_CMD_STATS_ADD_EVERY);
view.set (row, 1, Duration (((latest - earliest) / totalT)).format ());
}
if (completedT)
{
row = view.addRow ();
view.set (row, 0, "Task completed every");
view.set (row, 0, STRING_CMD_STATS_COMP_EVERY);
view.set (row, 1, Duration ((latest - earliest) / completedT).format ());
}
if (deletedT)
{
row = view.addRow ();
view.set (row, 0, "Task deleted every");
view.set (row, 0, STRING_CMD_STATS_DEL_EVERY);
view.set (row, 1, Duration ((latest - earliest) / deletedT).format ());
}
if (pendingT || completedT)
{
row = view.addRow ();
view.set (row, 0, "Average time pending");
view.set (row, 0, STRING_CMD_STATS_AVG_PEND);
view.set (row, 1, Duration ((int) ((daysPending / (pendingT + completedT)) * 86400)).format ());
}
if (totalT)
{
row = view.addRow ();
view.set (row, 0, "Average desc length");
std::stringstream value;
value << (int) (descLength / totalT) << " characters";
view.set (row, 1, value.str ());
view.set (row, 0, STRING_CMD_STATS_DESC_LEN);
view.set (row, 1, format (STRING_CMD_STATS_CHARS, (int) (descLength / totalT)));
}
// If an alternating row color is specified, notify the table.

View file

@ -25,6 +25,8 @@
//
////////////////////////////////////////////////////////////////////////////////
#define L10N // Localization complete.
#include <sstream>
#include <vector>
#include <stdlib.h>
@ -32,6 +34,7 @@
#include <ViewText.h>
#include <CmdTags.h>
#include <text.h>
#include <i18n.h>
extern Context context;
@ -40,7 +43,7 @@ CmdTags::CmdTags ()
{
_keyword = "tags";
_usage = "task tags";
_description = "Shows a list of all tags used.";
_description = STRING_CMD_TAGS_USAGE;
_read_only = true;
_displays_id = false;
}
@ -88,8 +91,8 @@ int CmdTags::execute (std::string& output)
// Render a list of tags names from the map.
ViewText view;
view.width (context.getWidth ());
view.add (Column::factory ("string", "Tag"));
view.add (Column::factory ("string.right", "Count"));
view.add (Column::factory ("string", STRING_COLUMN_LABEL_TAG));
view.add (Column::factory ("string.right", STRING_COLUMN_LABEL_COUNT));
Color bold ("bold");
bool special = false;
@ -109,14 +112,23 @@ int CmdTags::execute (std::string& output)
out << optionalBlankLine ()
<< view.render ()
<< optionalBlankLine ()
<< unique.size ()
<< (unique.size () == 1 ? " tag" : " tags")
<< " (" << quantity << (quantity == 1 ? " task" : " tasks") << ")\n";
<< optionalBlankLine ();
if (unique.size () == 1)
out << STRING_CMD_TAGS_SINGLE;
else
out << format (STRING_CMD_TAGS_PLURAL, unique.size ());
if (quantity == 1)
out << " " << STRING_FEEDBACK_TASKS_SINGLE;
else
out << " " << format (STRING_FEEDBACK_TASKS_PLURAL, quantity);
out << "\n";
}
else
{
out << "No tags.\n";
out << STRING_CMD_TAGS_NO_TAGS << "\n";
rc = 1;
}
@ -129,7 +141,7 @@ CmdCompletionTags::CmdCompletionTags ()
{
_keyword = "_tags";
_usage = "task _tags";
_description = "Shows only a list of all tags used, for autocompletion purposes.";
_description = STRING_CMD_COMTAGS_USAGE;
_read_only = true;
_displays_id = false;
}

View file

@ -25,7 +25,10 @@
//
////////////////////////////////////////////////////////////////////////////////
#define L10N // Localization complete.
#include <Context.h>
#include <i18n.h>
#include <CmdUndo.h>
extern Context context;
@ -35,7 +38,7 @@ CmdUndo::CmdUndo ()
{
_keyword = "undo";
_usage = "task undo";
_description = "Reverts the most recent change to a task.";
_description = STRING_CMD_UNDO_USAGE;
_read_only = false;
_displays_id = false;
}