Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Side by Side Diff: ui/base/l10n/formatter.cc

Issue 2845693002: Add month and year to time_format. (Closed)
Patch Set: Address comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/base/l10n/formatter.h ('k') | ui/base/l10n/time_format.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/base/l10n/formatter.h" 5 #include "ui/base/l10n/formatter.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 static const Pluralities IDS_ELAPSED_HOUR = { 46 static const Pluralities IDS_ELAPSED_HOUR = {
47 IDS_TIME_ELAPSED_HOURS, 47 IDS_TIME_ELAPSED_HOURS,
48 "one{# hour ago}", 48 "one{# hour ago}",
49 " other{# hours ago}" 49 " other{# hours ago}"
50 }; 50 };
51 static const Pluralities IDS_ELAPSED_DAY = { 51 static const Pluralities IDS_ELAPSED_DAY = {
52 IDS_TIME_ELAPSED_DAYS, 52 IDS_TIME_ELAPSED_DAYS,
53 "one{# day ago}", 53 "one{# day ago}",
54 " other{# days ago}" 54 " other{# days ago}"
55 }; 55 };
56 static const Pluralities IDS_ELAPSED_MONTH = {
57 IDS_TIME_ELAPSED_MONTHS, "one{# month ago}", " other{# months ago}"};
58 static const Pluralities IDS_ELAPSED_YEAR = {
59 IDS_TIME_ELAPSED_YEARS, "one{# year ago}", " other{# years ago}"};
56 60
57 static const Pluralities IDS_REMAINING_SHORT_SEC = { 61 static const Pluralities IDS_REMAINING_SHORT_SEC = {
58 IDS_TIME_REMAINING_SECS, 62 IDS_TIME_REMAINING_SECS,
59 "one{# sec left}", 63 "one{# sec left}",
60 " other{# secs left}" 64 " other{# secs left}"
61 }; 65 };
62 static const Pluralities IDS_REMAINING_SHORT_MIN = { 66 static const Pluralities IDS_REMAINING_SHORT_MIN = {
63 IDS_TIME_REMAINING_MINS, 67 IDS_TIME_REMAINING_MINS,
64 "one{# min left}", 68 "one{# min left}",
65 " other{# mins left}" 69 " other{# mins left}"
(...skipping 12 matching lines...) Expand all
78 static const Pluralities IDS_REMAINING_HOUR = { 82 static const Pluralities IDS_REMAINING_HOUR = {
79 IDS_TIME_REMAINING_HOURS, 83 IDS_TIME_REMAINING_HOURS,
80 "one{# hour left}", 84 "one{# hour left}",
81 " other{# hours left}" 85 " other{# hours left}"
82 }; 86 };
83 static const Pluralities IDS_REMAINING_DAY = { 87 static const Pluralities IDS_REMAINING_DAY = {
84 IDS_TIME_REMAINING_DAYS, 88 IDS_TIME_REMAINING_DAYS,
85 "one{# day left}", 89 "one{# day left}",
86 " other{# days left}" 90 " other{# days left}"
87 }; 91 };
92 static const Pluralities IDS_REMAINING_MONTH = {
93 IDS_TIME_REMAINING_MONTHS, "one{# month left}", " other{# months left}"};
94 static const Pluralities IDS_REMAINING_YEAR = {
95 IDS_TIME_REMAINING_YEARS, "one{# year left}", " other{# years left}"};
88 96
89 static const Pluralities IDS_DURATION_SHORT_SEC = { 97 static const Pluralities IDS_DURATION_SHORT_SEC = {
90 IDS_TIME_SECS, 98 IDS_TIME_SECS,
91 "one{# sec}", 99 "one{# sec}",
92 " other{# secs}" 100 " other{# secs}"
93 }; 101 };
94 static const Pluralities IDS_DURATION_SHORT_MIN = { 102 static const Pluralities IDS_DURATION_SHORT_MIN = {
95 IDS_TIME_MINS, 103 IDS_TIME_MINS,
96 "one{# min}", 104 "one{# min}",
97 " other{# mins}" 105 " other{# mins}"
(...skipping 12 matching lines...) Expand all
110 static const Pluralities IDS_DURATION_HOUR = { 118 static const Pluralities IDS_DURATION_HOUR = {
111 IDS_TIME_HOURS, 119 IDS_TIME_HOURS,
112 "one{# hour}", 120 "one{# hour}",
113 " other{# hours}" 121 " other{# hours}"
114 }; 122 };
115 static const Pluralities IDS_DURATION_DAY = { 123 static const Pluralities IDS_DURATION_DAY = {
116 IDS_TIME_DAYS, 124 IDS_TIME_DAYS,
117 "one{# day}", 125 "one{# day}",
118 " other{# days}" 126 " other{# days}"
119 }; 127 };
128 static const Pluralities IDS_DURATION_MONTH = {IDS_TIME_MONTHS, "one{# month}",
129 " other{# months}"};
130 static const Pluralities IDS_DURATION_YEAR = {IDS_TIME_YEARS, "one{# year}",
131 " other{# years}"};
120 132
121 static const Pluralities IDS_LONG_MIN_1ST = { 133 static const Pluralities IDS_LONG_MIN_1ST = {
122 IDS_TIME_LONG_MINS_1ST, 134 IDS_TIME_LONG_MINS_1ST,
123 "one{# minute and }", 135 "one{# minute and }",
124 " other{# minutes and }" 136 " other{# minutes and }"
125 }; 137 };
126 static const Pluralities IDS_LONG_SEC_2ND = { 138 static const Pluralities IDS_LONG_SEC_2ND = {
127 IDS_TIME_LONG_SECS_2ND, 139 IDS_TIME_LONG_SECS_2ND,
128 "one{# second}", 140 "one{# second}",
129 " other{# seconds}" 141 " other{# seconds}"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 format.format(&formattable, 1, *result, ignore, *err); 184 format.format(&formattable, 1, *result, ignore, *err);
173 DCHECK(U_SUCCESS(*err)); 185 DCHECK(U_SUCCESS(*err));
174 return; 186 return;
175 } 187 }
176 188
177 } // namespace 189 } // namespace
178 190
179 Formatter::Formatter(const Pluralities& sec_pluralities, 191 Formatter::Formatter(const Pluralities& sec_pluralities,
180 const Pluralities& min_pluralities, 192 const Pluralities& min_pluralities,
181 const Pluralities& hour_pluralities, 193 const Pluralities& hour_pluralities,
182 const Pluralities& day_pluralities) { 194 const Pluralities& day_pluralities,
195 const Pluralities& month_pluralities,
196 const Pluralities& year_pluralities) {
183 simple_format_[UNIT_SEC] = InitFormat(sec_pluralities); 197 simple_format_[UNIT_SEC] = InitFormat(sec_pluralities);
184 simple_format_[UNIT_MIN] = InitFormat(min_pluralities); 198 simple_format_[UNIT_MIN] = InitFormat(min_pluralities);
185 simple_format_[UNIT_HOUR] = InitFormat(hour_pluralities); 199 simple_format_[UNIT_HOUR] = InitFormat(hour_pluralities);
186 simple_format_[UNIT_DAY] = InitFormat(day_pluralities); 200 simple_format_[UNIT_DAY] = InitFormat(day_pluralities);
201 simple_format_[UNIT_MONTH] = InitFormat(month_pluralities);
202 simple_format_[UNIT_YEAR] = InitFormat(year_pluralities);
187 } 203 }
188 204
189 Formatter::Formatter(const Pluralities& sec_pluralities, 205 Formatter::Formatter(const Pluralities& sec_pluralities,
190 const Pluralities& min_pluralities, 206 const Pluralities& min_pluralities,
191 const Pluralities& hour_pluralities, 207 const Pluralities& hour_pluralities,
192 const Pluralities& day_pluralities, 208 const Pluralities& day_pluralities,
209 const Pluralities& month_pluralities,
210 const Pluralities& year_pluralities,
193 const Pluralities& min_sec_pluralities1, 211 const Pluralities& min_sec_pluralities1,
194 const Pluralities& min_sec_pluralities2, 212 const Pluralities& min_sec_pluralities2,
195 const Pluralities& hour_min_pluralities1, 213 const Pluralities& hour_min_pluralities1,
196 const Pluralities& hour_min_pluralities2, 214 const Pluralities& hour_min_pluralities2,
197 const Pluralities& day_hour_pluralities1, 215 const Pluralities& day_hour_pluralities1,
198 const Pluralities& day_hour_pluralities2) { 216 const Pluralities& day_hour_pluralities2) {
199 simple_format_[UNIT_SEC] = InitFormat(sec_pluralities); 217 simple_format_[UNIT_SEC] = InitFormat(sec_pluralities);
200 simple_format_[UNIT_MIN] = InitFormat(min_pluralities); 218 simple_format_[UNIT_MIN] = InitFormat(min_pluralities);
201 simple_format_[UNIT_HOUR] = InitFormat(hour_pluralities); 219 simple_format_[UNIT_HOUR] = InitFormat(hour_pluralities);
202 simple_format_[UNIT_DAY] = InitFormat(day_pluralities); 220 simple_format_[UNIT_DAY] = InitFormat(day_pluralities);
221 simple_format_[UNIT_MONTH] = InitFormat(month_pluralities);
222 simple_format_[UNIT_YEAR] = InitFormat(year_pluralities);
203 detailed_format_[TWO_UNITS_MIN_SEC][0] = InitFormat(min_sec_pluralities1); 223 detailed_format_[TWO_UNITS_MIN_SEC][0] = InitFormat(min_sec_pluralities1);
204 detailed_format_[TWO_UNITS_MIN_SEC][1] = InitFormat(min_sec_pluralities2); 224 detailed_format_[TWO_UNITS_MIN_SEC][1] = InitFormat(min_sec_pluralities2);
205 detailed_format_[TWO_UNITS_HOUR_MIN][0] = InitFormat(hour_min_pluralities1); 225 detailed_format_[TWO_UNITS_HOUR_MIN][0] = InitFormat(hour_min_pluralities1);
206 detailed_format_[TWO_UNITS_HOUR_MIN][1] = InitFormat(hour_min_pluralities2); 226 detailed_format_[TWO_UNITS_HOUR_MIN][1] = InitFormat(hour_min_pluralities2);
207 detailed_format_[TWO_UNITS_DAY_HOUR][0] = InitFormat(day_hour_pluralities1); 227 detailed_format_[TWO_UNITS_DAY_HOUR][0] = InitFormat(day_hour_pluralities1);
208 detailed_format_[TWO_UNITS_DAY_HOUR][1] = InitFormat(day_hour_pluralities2); 228 detailed_format_[TWO_UNITS_DAY_HOUR][1] = InitFormat(day_hour_pluralities2);
209 } 229 }
210 230
211 void Formatter::Format(Unit unit, 231 void Formatter::Format(Unit unit,
212 int value, 232 int value,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 298
279 FormatterContainer::FormatterContainer() { 299 FormatterContainer::FormatterContainer() {
280 Initialize(); 300 Initialize();
281 } 301 }
282 302
283 FormatterContainer::~FormatterContainer() { 303 FormatterContainer::~FormatterContainer() {
284 } 304 }
285 305
286 void FormatterContainer::Initialize() { 306 void FormatterContainer::Initialize() {
287 formatter_[TimeFormat::FORMAT_ELAPSED][TimeFormat::LENGTH_SHORT].reset( 307 formatter_[TimeFormat::FORMAT_ELAPSED][TimeFormat::LENGTH_SHORT].reset(
288 new Formatter(IDS_ELAPSED_SHORT_SEC, 308 new Formatter(IDS_ELAPSED_SHORT_SEC, IDS_ELAPSED_SHORT_MIN,
289 IDS_ELAPSED_SHORT_MIN, 309 IDS_ELAPSED_HOUR, IDS_ELAPSED_DAY, IDS_ELAPSED_MONTH,
290 IDS_ELAPSED_HOUR, 310 IDS_ELAPSED_YEAR));
291 IDS_ELAPSED_DAY));
292 formatter_[TimeFormat::FORMAT_ELAPSED][TimeFormat::LENGTH_LONG].reset( 311 formatter_[TimeFormat::FORMAT_ELAPSED][TimeFormat::LENGTH_LONG].reset(
293 new Formatter(IDS_ELAPSED_LONG_SEC, IDS_ELAPSED_LONG_MIN, 312 new Formatter(IDS_ELAPSED_LONG_SEC, IDS_ELAPSED_LONG_MIN,
294 IDS_ELAPSED_HOUR, IDS_ELAPSED_DAY)); 313 IDS_ELAPSED_HOUR, IDS_ELAPSED_DAY, IDS_ELAPSED_MONTH,
314 IDS_ELAPSED_YEAR));
295 formatter_[TimeFormat::FORMAT_REMAINING][TimeFormat::LENGTH_SHORT].reset( 315 formatter_[TimeFormat::FORMAT_REMAINING][TimeFormat::LENGTH_SHORT].reset(
296 new Formatter(IDS_REMAINING_SHORT_SEC, 316 new Formatter(IDS_REMAINING_SHORT_SEC, IDS_REMAINING_SHORT_MIN,
297 IDS_REMAINING_SHORT_MIN, 317 IDS_REMAINING_HOUR, IDS_REMAINING_DAY, IDS_REMAINING_MONTH,
298 IDS_REMAINING_HOUR, 318 IDS_REMAINING_YEAR));
299 IDS_REMAINING_DAY));
300 formatter_[TimeFormat::FORMAT_REMAINING][TimeFormat::LENGTH_LONG].reset( 319 formatter_[TimeFormat::FORMAT_REMAINING][TimeFormat::LENGTH_LONG].reset(
301 new Formatter(IDS_REMAINING_LONG_SEC, 320 new Formatter(IDS_REMAINING_LONG_SEC, IDS_REMAINING_LONG_MIN,
302 IDS_REMAINING_LONG_MIN, 321 IDS_REMAINING_HOUR, IDS_REMAINING_DAY, IDS_REMAINING_MONTH,
303 IDS_REMAINING_HOUR, 322 IDS_REMAINING_YEAR));
304 IDS_REMAINING_DAY));
305 formatter_[TimeFormat::FORMAT_DURATION][TimeFormat::LENGTH_SHORT].reset( 323 formatter_[TimeFormat::FORMAT_DURATION][TimeFormat::LENGTH_SHORT].reset(
306 new Formatter(IDS_DURATION_SHORT_SEC, 324 new Formatter(IDS_DURATION_SHORT_SEC, IDS_DURATION_SHORT_MIN,
307 IDS_DURATION_SHORT_MIN, 325 IDS_DURATION_HOUR, IDS_DURATION_DAY, IDS_DURATION_MONTH,
308 IDS_DURATION_HOUR, 326 IDS_DURATION_YEAR));
309 IDS_DURATION_DAY));
310 formatter_[TimeFormat::FORMAT_DURATION][TimeFormat::LENGTH_LONG].reset( 327 formatter_[TimeFormat::FORMAT_DURATION][TimeFormat::LENGTH_LONG].reset(
311 new Formatter(IDS_LONG_SEC, 328 new Formatter(IDS_LONG_SEC, IDS_LONG_MIN, IDS_DURATION_HOUR,
312 IDS_LONG_MIN, 329 IDS_DURATION_DAY, IDS_DURATION_MONTH, IDS_DURATION_YEAR,
313 IDS_DURATION_HOUR, 330 IDS_LONG_MIN_1ST, IDS_LONG_SEC_2ND, IDS_DURATION_HOUR_1ST,
314 IDS_DURATION_DAY, 331 IDS_LONG_MIN_2ND, IDS_DURATION_DAY_1ST,
315 IDS_LONG_MIN_1ST,
316 IDS_LONG_SEC_2ND,
317 IDS_DURATION_HOUR_1ST,
318 IDS_LONG_MIN_2ND,
319 IDS_DURATION_DAY_1ST,
320 IDS_DURATION_HOUR_2ND)); 332 IDS_DURATION_HOUR_2ND));
321 } 333 }
322 334
323 void FormatterContainer::Shutdown() { 335 void FormatterContainer::Shutdown() {
324 for (int format = 0; format < TimeFormat::FORMAT_COUNT; ++format) { 336 for (int format = 0; format < TimeFormat::FORMAT_COUNT; ++format) {
325 for (int length = 0; length < TimeFormat::LENGTH_COUNT; ++length) { 337 for (int length = 0; length < TimeFormat::LENGTH_COUNT; ++length) {
326 formatter_[format][length].reset(); 338 formatter_[format][length].reset();
327 } 339 }
328 } 340 }
329 } 341 }
330 342
331 } // namespace ui 343 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/l10n/formatter.h ('k') | ui/base/l10n/time_format.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698