Skip to content

Commit 0df4ed4

Browse files
committed
[ Add ] full support for AI instruction option
1 parent afd763d commit 0df4ed4

File tree

5 files changed

+28
-8
lines changed

5 files changed

+28
-8
lines changed

lib/src/commands/start_command/start_command.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ class StartCommand extends Command<int> {
128128
langs: asConfig.langs,
129129
languageLocalizationMaxDelay: asConfig.languageLocalizationMaxDelay,
130130
operationId: jsonPartitionRes.operationId,
131+
instruction: asConfig.instruction,
131132
);
132133

133134
logger
@@ -269,6 +270,7 @@ class StartCommand extends Command<int> {
269270
required Iterable<String> langs,
270271
required String operationId,
271272
required int? languageLocalizationMaxDelay,
273+
required String? instruction,
272274
}) async {
273275
final completer = Completer<LangSyncServerResultSSE>();
274276

@@ -277,6 +279,7 @@ class StartCommand extends Command<int> {
277279
langs: langs,
278280
operationId: operationId,
279281
languageLocalizationMaxDelay: languageLocalizationMaxDelay,
282+
instruction: instruction,
280283
);
281284

282285
LangSyncServerResultSSE? resultSSE;

lib/src/etc/controllers/yaml.dart

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:io';
22

33
import 'package:langsync/src/etc/controllers/config_file.dart';
4+
import 'package:langsync/src/etc/extensions.dart';
45
import 'package:yaml/yaml.dart' as yaml;
56

67
class YamlController extends ConfigFile {
@@ -30,14 +31,17 @@ class YamlController extends ConfigFile {
3031
config,
3132
callback: (entry) async {
3233
if (entry.value is String) {
33-
await super.writeToConfigFile(
34-
"\n ${entry.key}: '${entry.value}' \n",
35-
);
36-
} else if (entry.value is List) {
37-
await super.writeToConfigFile(
38-
'\n ${entry.key}: ${entry.value} \n',
39-
);
34+
if ((entry.value as String).isPathToFileOrFolder()) {
35+
await super.writeToConfigFile(
36+
"\n ${entry.key}: '${entry.value}' \n",
37+
);
38+
return;
39+
}
4040
}
41+
42+
await super.writeToConfigFile(
43+
'\n ${entry.key}: ${entry.value} \n',
44+
);
4145
},
4246
);
4347
}

lib/src/etc/extensions.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,12 @@ extension StringExt on String {
121121
String tr() {
122122
return this;
123123
}
124+
125+
String ensureStringSymbol() {
126+
return replaceAll("'", '"');
127+
}
128+
129+
bool isPathToFileOrFolder() {
130+
return File(this).existsSync() || Directory(this).existsSync();
131+
}
124132
}

lib/src/etc/models/config.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:equatable/equatable.dart';
2+
import 'package:langsync/src/etc/extensions.dart';
23
import 'package:yaml/yaml.dart';
34

45
class LangSyncConfig extends Equatable {

lib/src/etc/networking/client.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:convert';
22
import 'dart:io';
33
import 'package:langsync/src/etc/models/api_key_res.dart';
4+
import 'package:langsync/src/etc/models/config.dart';
45
import 'package:langsync/src/etc/models/lang_output.dart';
56
import 'package:langsync/src/etc/models/operation.dart';
67
import 'package:langsync/src/etc/models/result_locale.dart';
@@ -21,8 +22,9 @@ class NetClient extends NetClientBoilerPlate {
2122
required Iterable<String> langs,
2223
required String apiKey,
2324
required String operationId,
24-
required int? languageLocalizationMaxDelay,
2525
bool includeOutput = false,
26+
required int? languageLocalizationMaxDelay,
27+
required String? instruction,
2628
}) {
2729
return sseStreamReq<List<LangSyncServerSSE>>(
2830
'/process-translation',
@@ -33,6 +35,8 @@ class NetClient extends NetClientBoilerPlate {
3335
'langs': langs.toList(),
3436
'includeOutput': includeOutput,
3537
'languageLocalizationMaxDelay': languageLocalizationMaxDelay,
38+
if (instruction != null && instruction.isNotEmpty)
39+
'instruction': instruction,
3640
},
3741
(res) {
3842
final split = res.split('\n\n').where((element) => element.isNotEmpty);

0 commit comments

Comments
 (0)