Skip to content

Commit afd763d

Browse files
committed
[ Add ] added AI instruction option for the localization process
1 parent 5b9a408 commit afd763d

File tree

3 files changed

+27
-16
lines changed

3 files changed

+27
-16
lines changed

lib/src/commands/config_command/sub_commands/create_command.dart

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import 'package:langsync/src/etc/extensions.dart';
77
import 'package:langsync/src/etc/networking/client.dart';
88
import 'package:mason_logger/mason_logger.dart';
99

10+
import '../../../etc/models/config.dart';
11+
1012
class ConfigCreateCommand extends Command<int> {
1113
ConfigCreateCommand({
1214
required this.logger,
@@ -160,10 +162,18 @@ class ConfigCreateCommand extends Command<int> {
160162
return ExitCode.software.code;
161163
}
162164

165+
final instruction = logger.prompt(
166+
'Enter your AI instruction (optional): ',
167+
);
168+
169+
// Create the config with the given
163170
final config = configFileController.futureConfigToWrite(
164-
outputDir: outputDir,
165-
sourceLocalizationFilePath: sourceLocalizationFilePath,
166-
targetLangsList: targetLangsList,
171+
config: LangSyncConfig(
172+
outputDir: outputDir,
173+
sourceFile: sourceLocalizationFilePath,
174+
langs: targetLangsList,
175+
instruction: instruction,
176+
),
167177
);
168178

169179
final creationProgress = logger.customProgress(

lib/src/etc/controllers/config_file.dart

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,9 @@ abstract class ConfigFile {
118118
}
119119

120120
Map<String, dynamic> futureConfigToWrite({
121-
required String sourceLocalizationFilePath,
122-
required String outputDir,
123-
required Iterable<String> targetLangsList,
124-
int? languageLocalizationMaxDelay,
121+
required LangSyncConfig config,
125122
}) {
126-
return LangSyncConfig(
127-
sourceFile: sourceLocalizationFilePath,
128-
outputDir: outputDir,
129-
langs: targetLangsList,
130-
languageLocalizationMaxDelay: languageLocalizationMaxDelay,
131-
).toMap();
123+
return config.toMap();
132124
}
133125

134126
void iterateAndLogConfig(Map<dynamic, dynamic> parsedYaml, Logger logger) {

lib/src/etc/models/config.dart

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class LangSyncConfig extends Equatable {
77
required this.outputDir,
88
required this.langs,
99
this.languageLocalizationMaxDelay,
10+
this.instruction,
1011
});
1112

1213
factory LangSyncConfig.fromMap(Map<dynamic, dynamic> map) {
@@ -18,19 +19,25 @@ class LangSyncConfig extends Equatable {
1819
? targetField.nodes.map((e) => e.value as String)
1920
: (targetField as List<dynamic>).map((e) => e as String);
2021

22+
final languageLocalizationMaxDelay =
23+
langsyncMapField['languageLocalizationMaxDelay'] as int?;
24+
25+
final instruction = langsyncMapField['instruction'] as String?;
26+
2127
return LangSyncConfig(
2228
sourceFile: langsyncMapField['source'] as String,
2329
outputDir: langsyncMapField['output'] as String,
2430
langs: target,
25-
languageLocalizationMaxDelay:
26-
(langsyncMapField['languageLocalizationMaxDelay'] as int?) ?? 450,
31+
languageLocalizationMaxDelay: languageLocalizationMaxDelay ?? 450,
32+
instruction: instruction,
2733
);
2834
}
2935

3036
final String sourceFile;
3137
final String outputDir;
3238
final Iterable<String> langs;
3339
final int? languageLocalizationMaxDelay;
40+
final String? instruction;
3441

3542
List<String> get langsJsonFiles => langs.map((e) => '$e.json').toList();
3643

@@ -47,7 +54,9 @@ class LangSyncConfig extends Equatable {
4754
'source': sourceFile,
4855
'output': outputDir,
4956
'target': langs.toList(),
50-
'languageLocalizationMaxDelay': languageLocalizationMaxDelay ?? 450,
57+
'languageLocalizationMaxDelay': languageLocalizationMaxDelay ?? 200,
58+
if (instruction != null && instruction!.isNotEmpty)
59+
'instruction': instruction,
5160
};
5261
}
5362
}

0 commit comments

Comments
 (0)