Remove escape dollar parameter in localizations_utils (#54219)
diff --git a/dev/tools/localization/localizations_utils.dart b/dev/tools/localization/localizations_utils.dart
index 7ddca93..5df1f6a 100644
--- a/dev/tools/localization/localizations_utils.dart
+++ b/dev/tools/localization/localizations_utils.dart
@@ -387,24 +387,9 @@
/// foo\\nbar => 'foo\\\\nbar'
/// foo\\bar => 'foo\\\\bar'
/// foo\ bar => 'foo\\ bar'
-/// ```
-///
-/// When [shouldEscapeDollar] is set to true, the '$' characters in the
-/// input will be replaced by '$' in the returned string:
-/// ```
/// foo$bar = 'foo\$bar'
/// ```
-///
-/// When [shouldEscapeDollar] is set to false, '$' will be replaced
-/// by '\$' in the returned string:
-/// ```
-/// foo$bar => 'foo\\\$bar'
-/// ```
-///
-/// [shouldEscapeDollar] is true by default.
-String generateString(String value, { bool escapeDollar = true }) {
- assert(escapeDollar != null);
-
+String generateString(String value) {
const String backslash = '__BACKSLASH__';
assert(
!value.contains(backslash),
@@ -412,12 +397,12 @@
'"__BACKSLASH__", as it is used as part of '
'backslash character processing.'
);
- value = value.replaceAll('\\', backslash);
-
- if (escapeDollar)
- value = value.replaceAll('\$', '\\\$');
value = value
+ // Replace backslashes with a placeholder for now to properly parse
+ // other special characters.
+ .replaceAll('\\', backslash)
+ .replaceAll('\$', '\\\$')
.replaceAll("'", "\\'")
.replaceAll('"', '\\"')
.replaceAll('\n', '\\n')
@@ -425,6 +410,7 @@
.replaceAll('\t', '\\t')
.replaceAll('\r', '\\r')
.replaceAll('\b', '\\b')
+ // Reintroduce escaped backslashes into generated Dart string.
.replaceAll(backslash, '\\\\');
return "'$value'";
diff --git a/dev/tools/test/localization/localizations_utils_test.dart b/dev/tools/test/localization/localizations_utils_test.dart
index fa9b8ca..cd24cfa 100644
--- a/dev/tools/test/localization/localizations_utils_test.dart
+++ b/dev/tools/test/localization/localizations_utils_test.dart
@@ -37,11 +37,7 @@
});
test('escapes dollar when escapeDollar is true', () {
- expect(generateString(r'ab$c', escapeDollar: true), "'ab\\\$c'");
- });
-
- test('does not escape dollar when escapeDollar is false', () {
- expect(generateString(r'ab$c', escapeDollar: false), "'ab\$c'");
+ expect(generateString(r'ab$c'), "'ab\\\$c'");
});
test('handles backslash', () {