Skip to content

Commit 93d388a

Browse files
author
cgiuliani
committed
feat: extract localization
1 parent 25b2f03 commit 93d388a

File tree

8 files changed

+26
-121
lines changed

8 files changed

+26
-121
lines changed

Diff for: configurator/lib/src/utils/i18n_generator.dart

+7-17
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,6 @@ void _generateClass(
8787

8888
buffer.writeln('''
8989
final Configuration _config;
90-
91-
String _localize(String input) {
92-
return i18n.localize(
93-
input,
94-
i18n.Translations.from(
95-
"en_us",
96-
_config.currentTranslations(input),
97-
),
98-
);
99-
}
10090
''');
10191

10292

@@ -125,10 +115,10 @@ void _generateClass(
125115
if (value is StringTextNode) {
126116
if (value.params.isEmpty) {
127117
buffer.writeln(
128-
'String get $key => _localize(\'${value.path.canonicalize}\');');
118+
'String get $key => LocalizeUtil.localize(_config, \'${value.path.canonicalize}\');');
129119
} else {
130120
buffer.writeln(
131-
'String $key${_toParameterList(value.params, value.paramTypeMap)} => _localize(\'${value.path.canonicalize}\').fill([${value.params.join(',')}]);');
121+
'String $key${_toParameterList(value.params, value.paramTypeMap)} => LocalizeUtil.localize(_config, \'${value.path.canonicalize}\').fill([${value.params.join(',')}]);');
132122
}
133123
} else if (value is RichTextNode) {
134124
buffer.write('TextSpan ');
@@ -230,10 +220,10 @@ void _generateMap({
230220
_addTabs(buffer, depth + 2);
231221
if (value is StringTextNode) {
232222
if (value.params.isEmpty) {
233-
buffer.writeln('\'$key\': _localize(\'${value.path.canonicalize}\'),');
223+
buffer.writeln('\'$key\': LocalizeUtil.localize(_config, \'${value.path.canonicalize}\'),');
234224
} else {
235225
buffer.writeln(
236-
'\'$key\': ${_toParameterList(value.params, value.paramTypeMap)} => _localize(\'${value.path.canonicalize}\'),');
226+
'\'$key\': ${_toParameterList(value.params, value.paramTypeMap)} => LocalizeUtil.localize(_config, \'${value.path.canonicalize}\'),');
237227
}
238228
} else if (value is ListNode) {
239229
buffer.write('\'$key\': ');
@@ -326,10 +316,10 @@ void _generateList({
326316
_addTabs(buffer, depth + 2);
327317
if (value is StringTextNode) {
328318
if (value.params.isEmpty) {
329-
buffer.writeln('_localize(\'${value.path.canonicalize}\'),');
319+
buffer.writeln('LocalizeUtil.localize(_config, \'${value.path.canonicalize}\'),');
330320
} else {
331321
buffer.writeln(
332-
'${_toParameterList(value.params, value.paramTypeMap)} => _localize(\'${value.path.canonicalize}\'),');
322+
'${_toParameterList(value.params, value.paramTypeMap)} => LocalizeUtil.localize(_config, \'${value.path.canonicalize}\'),');
333323
}
334324
} else if (value is ListNode) {
335325
_generateList(
@@ -556,7 +546,7 @@ void _addRichTextCall({
556546
for (final span in node.spans) {
557547
_addTabs(buffer, depth + 2);
558548
if (span is FunctionSpan) {
559-
buffer.write("${span.functionName}(_localize('${node.path.canonicalize}'))");
549+
buffer.write("${span.functionName}(LocalizeUtil.localize(_config, '${node.path.canonicalize}'))");
560550
} else {
561551
buffer.write(span.code);
562552
}

Diff for: configurator/lib/src/utils/slang.dart

-8
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,11 @@ import 'package:configurator/src/models/yaml_i18n_string.dart';
22
import 'package:configurator/src/utils/i18n_generator.dart';
33
import 'package:slang/builder/builder/raw_config_builder.dart';
44
import 'package:slang/builder/builder/translation_model_builder.dart';
5-
import 'package:slang/builder/generator_facade.dart';
6-
import 'package:slang/builder/model/i18n_locale.dart';
75
import 'package:slang/builder/model/raw_config.dart';
86
import 'package:slang/builder/model/translation_map.dart';
97
import 'package:slang/builder/builder/build_model_config_builder.dart';
108
import 'package:slang/builder/builder/generate_config_builder.dart';
11-
import 'package:slang/builder/builder/translation_model_builder.dart';
12-
import 'package:slang/builder/generator/generator.dart';
13-
import 'package:slang/builder/model/raw_config.dart';
14-
import 'package:slang/builder/model/build_result.dart';
159
import 'package:slang/builder/model/i18n_data.dart';
16-
import 'package:slang/builder/model/interface.dart';
17-
import 'package:slang/builder/model/translation_map.dart';
1810

1911
class SlangUtil {
2012

Diff for: configurator/lib/src/writers/i18n_writer.dart

-92
This file was deleted.

Diff for: configurator/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: configurator
22
description: A new Flutter package project.
3-
version: 0.0.30
3+
version: 0.0.31
44
homepage:
55

66
environment:

Diff for: configurator_flutter/.flutter-plugins-dependencies

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"path_provider_foundation","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.3/","native_build":true,"dependencies":[]}],"android":[{"name":"path_provider_android","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_android-2.0.27/","native_build":true,"dependencies":[]}],"macos":[{"name":"path_provider_foundation","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.3/","native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.11/","native_build":false,"dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.7/","native_build":false,"dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]}],"date_created":"2023-06-16 09:29:27.289907","version":"3.7.9"}
1+
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"path_provider_foundation","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.3/","native_build":true,"dependencies":[]}],"android":[{"name":"path_provider_android","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_android-2.0.27/","native_build":true,"dependencies":[]}],"macos":[{"name":"path_provider_foundation","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.3/","native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.11/","native_build":false,"dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/cgiuliani/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.7/","native_build":false,"dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]}],"date_created":"2023-06-16 10:02:55.550624","version":"3.7.9"}

Diff for: configurator_flutter/lib/configurator_flutter.dart

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export 'src/theme/base.dart';
66
export 'src/utils/font_weight_parser.dart';
77
export 'src/utils/color_parser.dart';
88
export 'src/utils/text_style_parser.dart';
9+
export 'src/utils/localize_util.dart';
910
export 'src/utils/interpolate_string.dart';
1011
export 'src/extensions/config_listenable.dart';
1112
export 'src/extensions/config_of.dart';
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import 'package:configurator/configurator.dart';
2+
import 'package:i18n_extension/i18n_extension.dart' as i18n;
3+
4+
class LocalizeUtil {
5+
static String localize(Configuration config, String input) {
6+
return i18n.localize(
7+
input,
8+
i18n.Translations.from(
9+
"en_us",
10+
config.currentTranslations(input),
11+
),
12+
);
13+
}
14+
}

Diff for: configurator_flutter/pubspec.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: configurator_flutter
22
description: A new Flutter package project.
3-
version: 0.0.30
3+
version: 0.0.31
44
homepage:
55

66
environment:
@@ -30,7 +30,7 @@ dependencies:
3030
git:
3131
url: [email protected]:camrongiuliani/configurator.git
3232
path: configurator
33-
ref: 0.0.30
33+
ref: 0.0.31
3434

3535
dev_dependencies:
3636
flutter_test:

0 commit comments

Comments
 (0)