execute method
Implementation
Future<void> execute(Map<String, String> keysToTextsMap) async {
if (keysToTextsMap.isEmpty) {
return;
}
final length = keysToTextsMap.length;
stdout.writeln('⬆️ $tag ${length} key${length == 1 ? '' : 's'}');
final project = _configManager.project;
if (project == null) {
throw ProjectMissing();
}
final baseLocale = project.baseLocale;
//run qa //todo display QA results
// final qaResults = [];
// final qaResults = await _translationApi.qualityAssurance(
// projectId: project.id,
// texts: keysToTextsMap.values.toList(),
// locale: baseLocale,
// );
//run translation
final translationResponse = await _translationApi.translateText(
projectId: project.id,
texts: keysToTextsMap.values.toList(),
baseLocale: baseLocale,
targetLocales: project.targetLocales ?? [],
);
int index = 0;
for (var entry in keysToTextsMap.entries) {
// final qaText = qaResults[index];
final translations = translationResponse
.map(
(item) => LocalizedTextModel(
locale: item.locale,
text: item.texts[index],
),
)
.toList();
await submitResource(
key: entry.key,
projectId: project.id,
base: LocalizedTextModel(
locale: baseLocale,
text: entry.value,
// qaText: qaText,
),
translations: translations,
);
index++;
}
}