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

Side by Side Diff: pkg/intl/bin/generate_from_arb.dart

Issue 771253002: Add a flag to prohibit plurals/genders that don't take up the whole string. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Review fixes Created 6 years 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 | Annotate | Revision Log
« no previous file with comments | « pkg/intl/bin/extract_to_arb.dart ('k') | pkg/intl/lib/extract_messages.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env dart 1 #!/usr/bin/env dart
2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
3 // for details. All rights reserved. Use of this source code is governed by a 3 // for details. All rights reserved. Use of this source code is governed by a
4 // BSD-style license that can be found in the LICENSE file. 4 // BSD-style license that can be found in the LICENSE file.
5 5
6 /** 6 /**
7 * A main program that takes as input a source Dart file and a number 7 * A main program that takes as input a source Dart file and a number
8 * of ARB files representing translations of messages from the corresponding 8 * of ARB files representing translations of messages from the corresponding
9 * Dart file. See extract_to_arb.dart and make_hardcoded_translation.dart. 9 * Dart file. See extract_to_arb.dart and make_hardcoded_translation.dart.
10 * 10 *
(...skipping 16 matching lines...) Expand all
27 /** 27 /**
28 * Keeps track of all the messages we have processed so far, keyed by message 28 * Keeps track of all the messages we have processed so far, keyed by message
29 * name. 29 * name.
30 */ 30 */
31 Map<String, List<MainMessage>> messages; 31 Map<String, List<MainMessage>> messages;
32 32
33 main(List<String> args) { 33 main(List<String> args) {
34 var targetDir; 34 var targetDir;
35 var parser = new ArgParser(); 35 var parser = new ArgParser();
36 parser.addFlag("suppress-warnings", defaultsTo: false, 36 parser.addFlag("suppress-warnings", defaultsTo: false,
37 callback: (x) => suppressWarnings = x); 37 callback: (x) => suppressWarnings = x,
38 help: 'Suppress printing of warnings.');
38 parser.addOption("output-dir", defaultsTo: '.', 39 parser.addOption("output-dir", defaultsTo: '.',
39 callback: (x) => targetDir = x); 40 callback: (x) => targetDir = x,
41 help: 'Specify the output directory.');
40 parser.addOption("generated-file-prefix", defaultsTo: '', 42 parser.addOption("generated-file-prefix", defaultsTo: '',
41 callback: (x) => generatedFilePrefix = x); 43 callback: (x) => generatedFilePrefix = x,
44 help: 'Specify a prefix to be used for the generated file names.');
42 parser.addFlag("use-deferred-loading", defaultsTo: true, 45 parser.addFlag("use-deferred-loading", defaultsTo: true,
43 callback: (x) => useDeferredLoading = x); 46 callback: (x) => useDeferredLoading = x,
47 help: 'Generate message code that must be loaded with deferred loading. '
48 'Otherwise, all messages are eagerly loaded.');
44 parser.parse(args); 49 parser.parse(args);
45 var dartFiles = args.where((x) => x.endsWith("dart")).toList(); 50 var dartFiles = args.where((x) => x.endsWith("dart")).toList();
46 var jsonFiles = args.where((x) => x.endsWith(".arb")).toList(); 51 var jsonFiles = args.where((x) => x.endsWith(".arb")).toList();
47 if (dartFiles.length == 0 || jsonFiles.length == 0) { 52 if (dartFiles.length == 0 || jsonFiles.length == 0) {
48 print('Usage: generate_from_arb [--output-dir=<dir>]' 53 print('Usage: generate_from_arb [options]'
49 ' [--[no-]use-deferred-loading]' 54 ' file1.dart file2.dart ...'
50 ' [--generated-file-prefix=<prefix>] file1.dart file2.dart ...'
51 ' translation1_<languageTag>.arb translation2.arb ...'); 55 ' translation1_<languageTag>.arb translation2.arb ...');
56 print(parser.getUsage());
52 exit(0); 57 exit(0);
53 } 58 }
54 59
55 // We're re-parsing the original files to find the corresponding messages, 60 // We're re-parsing the original files to find the corresponding messages,
56 // so if there are warnings extracting the messages, suppress them. 61 // so if there are warnings extracting the messages, suppress them.
57 suppressWarnings = true; 62 suppressWarnings = true;
58 var allMessages = dartFiles.map((each) => parseFile(new File(each))); 63 var allMessages = dartFiles.map((each) => parseFile(new File(each)));
59 64
60 messages = new Map(); 65 messages = new Map();
61 for (var eachMap in allMessages) { 66 for (var eachMap in allMessages) {
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 List<MainMessage> get originalMessages => (super.originalMessages == null) ? 137 List<MainMessage> get originalMessages => (super.originalMessages == null) ?
133 _findOriginals() : super.originalMessages; 138 _findOriginals() : super.originalMessages;
134 139
135 // We know that our [id] is the name of the message, which is used as the 140 // We know that our [id] is the name of the message, which is used as the
136 //key in [messages]. 141 //key in [messages].
137 List<MainMessage> _findOriginals() => originalMessages = messages[id]; 142 List<MainMessage> _findOriginals() => originalMessages = messages[id];
138 } 143 }
139 144
140 final pluralAndGenderParser = new IcuParser().message; 145 final pluralAndGenderParser = new IcuParser().message;
141 final plainParser = new IcuParser().nonIcuMessage; 146 final plainParser = new IcuParser().nonIcuMessage;
OLDNEW
« no previous file with comments | « pkg/intl/bin/extract_to_arb.dart ('k') | pkg/intl/lib/extract_messages.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698