From 8ac70afa1e7df0f4cc9d89294a29914fa54bd7fd Mon Sep 17 00:00:00 2001 From: jaKa Date: Tue, 2 Dec 2014 13:41:44 +0100 Subject: [PATCH] Use Android plurals to better support various languages quirks about plurals. --- res/values-hr/strings.xml | 39 +++++++++++++++++++ res/values-ro/strings.xml | 34 +++++++++++++++++ res/values-sl/strings.xml | 44 ++++++++++++++++++++++ res/values-sr/strings.xml | 39 +++++++++++++++++++ res/values/strings.xml | 29 +++++++++++--- src/com/lukazakrajsek/timeago/TimeAgo.java | 17 ++++++--- 6 files changed, 190 insertions(+), 12 deletions(-) create mode 100644 res/values-hr/strings.xml create mode 100644 res/values-ro/strings.xml create mode 100644 res/values-sl/strings.xml create mode 100644 res/values-sr/strings.xml diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml new file mode 100644 index 0000000..557755f --- /dev/null +++ b/res/values-hr/strings.xml @@ -0,0 +1,39 @@ + + + prije + + + manje od minute + jedne minute + jednog sata + jednog dana + jednog mjeseca + jedne godine + + + %d minute + %d minute + %d minuta + + + %d sata + %d sata + %d sati + + + %d dana + %d dana + %d dana + + + %d mjeseca + %d mjeseca + %d mjeseca + + + %d godine + %d godine + %d godina + + + diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml new file mode 100644 index 0000000..7e752e6 --- /dev/null +++ b/res/values-ro/strings.xml @@ -0,0 +1,34 @@ + + + + ago + + less than a minute + about a minute + about an hour + a day + about a month + about a year + + + %d minute + %d minutes + + + %d hour + about %d hours + + + %d day + %d days + + + %d month + %d months + + + %d year + %d years + + + diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml new file mode 100644 index 0000000..53bea1b --- /dev/null +++ b/res/values-sl/strings.xml @@ -0,0 +1,44 @@ + + + pred + + + manj kot minuto + približno minuto + približno uro + približno dnevom + približno mesecem + približno letom + + + %d minuto + %d minutama + %d minutami + %d minutami + + + %d uro + približno %d urama + približno %d urami + približno %d urami + + + %d dnevom + %d dnevoma + %d dnevi + %d dnevi + + + %d mesecem + %d mesecema + %d meseci + %d meseci + + + %d letom + %d letoma + %d leti + %d leti + + + diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml new file mode 100644 index 0000000..8cbbcbf --- /dev/null +++ b/res/values-sr/strings.xml @@ -0,0 +1,39 @@ + + + pre + + + manje od minuta + jednog minuta + jednog sata + jednog dana + jednog meseca + godinu dana + + + %d minute + %d minuta + %d minuta + + + %d sata + %d sata + %d sati + + + %d dana + %d dana + %d dana + + + %d meseca + %d meseca + %d meseca + + + %d godine + %d godine + %d godina + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 2621c89..7e752e6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2,16 +2,33 @@ ago + less than a minute about a minute - %d minutes about an hour - about %d hours a day - %d days about a month - %d months about a year - %d years + + + %d minute + %d minutes + + + %d hour + about %d hours + + + %d day + %d days + + + %d month + %d months + + + %d year + %d years + - \ No newline at end of file + diff --git a/src/com/lukazakrajsek/timeago/TimeAgo.java b/src/com/lukazakrajsek/timeago/TimeAgo.java index f9659c4..60ff773 100644 --- a/src/com/lukazakrajsek/timeago/TimeAgo.java +++ b/src/com/lukazakrajsek/timeago/TimeAgo.java @@ -34,27 +34,32 @@ public String timeAgo(long millis) { String words; if (seconds < 45) { - words = r.getString(R.string.time_ago_seconds, Math.round(seconds)); + words = r.getString(R.string.time_ago_seconds, (int)Math.round(seconds)); } else if (seconds < 90) { words = r.getString(R.string.time_ago_minute, 1); } else if (minutes < 45) { - words = r.getString(R.string.time_ago_minutes, Math.round(minutes)); + words = r.getQuantityString(R.plurals.time_ago_minutes, + (int)Math.round(minutes), (int)Math.round(minutes)); } else if (minutes < 90) { words = r.getString(R.string.time_ago_hour, 1); } else if (hours < 24) { - words = r.getString(R.string.time_ago_hours, Math.round(hours)); + words = r.getQuantityString(R.plurals.time_ago_hours, + (int)Math.round(hours), (int)Math.round(hours)); } else if (hours < 42) { words = r.getString(R.string.time_ago_day, 1); } else if (days < 30) { - words = r.getString(R.string.time_ago_days, Math.round(days)); + words = r.getQuantityString(R.plurals.time_ago_days, + (int)Math.round(days), (int)Math.round(days)); } else if (days < 45) { words = r.getString(R.string.time_ago_month, 1); } else if (days < 365) { - words = r.getString(R.string.time_ago_months, Math.round(days / 30)); + words = r.getQuantityString(R.plurals.time_ago_months, + (int)Math.round(days / 30), (int)Math.round(days / 30)); } else if (years < 1.5) { words = r.getString(R.string.time_ago_year, 1); } else { - words = r.getString(R.string.time_ago_years, Math.round(years)); + words = r.getQuantityString(R.plurals.time_ago_years, + (int)Math.round(years), (int)Math.round(years)); } StringBuilder sb = new StringBuilder();