Skip to content

Commit e60f981

Browse files
authored
Merge pull request #79 from lilt/3.x-slug-name-on-files
Add slug to translation filename
2 parents 67a5e2d + 7be037a commit e60f981

12 files changed

+41
-29
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
66

7-
## 3.3.0 - 2022-11-20
7+
## 3.4.0 - 2023-02-06
8+
### Added
9+
- Entry slug name added to translation filenames
10+
11+
## 3.3.0 - 2023-01-27
812
### Added
913
- Priority for jobs from queue
1014
- Background job for translation downloading
@@ -17,7 +21,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
1721
- Entry version content provider
1822
- Updating of translation connector ids
1923

20-
## 3.2.1 - 2022-11-20
24+
## 3.2.1 - 2023-01-04
2125
### Added
2226
- Increase TTR for background jobs
2327

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "lilt/craft-lilt-plugin",
33
"description": "The Lilt plugin makes it easy for you to send content to Lilt for translation right from within Craft CMS.",
44
"type": "craft-plugin",
5-
"version": "3.3.0",
5+
"version": "3.4.0",
66
"keywords": [
77
"craft",
88
"cms",

e2e/cypress/support/flow/instant.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ Cypress.Commands.add('instantFlow', ({
104104
}, {
105105
'name': 'srclang', 'values': ['en'],
106106
}, {
107-
'name': 'name', 'values': ['element_[\\d]+\\.json\\+html'],
107+
'name': 'name', 'values': ['element_[\\d]+_.*\\.json\\+html'],
108108
}, {
109109
'name': 'due', 'values': [''],
110110
}],
@@ -159,7 +159,7 @@ Cypress.Commands.add('instantFlow', ({
159159
'createdAt': '2022-05-29T11:31:58',
160160
'errorMsg': null,
161161
'id': translationId,
162-
'name': '777_element_' + 24 + '.json+html',
162+
'name': '777_element_' + 24 + '_slug_for_' + language + '.json+html',
163163
'status': 'mt_complete',
164164
'trgLang': language,
165165
'trgLocale': '',

src/elements/Translation.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ public function getActionsHtml(): string
222222
{
223223
$dataSourceContent = '';
224224
if (!empty($this->sourceContent)) {
225-
$dataSourceContent = 'data-source-content="' . base64_encode($this->sourceContent);
225+
$dataSourceContent = 'data-source-content="' . base64_encode($this->sourceContent) . '"';
226226
}
227227

228228
return '

src/services/handlers/SendJobToLiltConnectorHandler.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ public function __invoke(Job $job): void
8484
$draft
8585
);
8686

87+
$slug = !empty($element->slug) ? $element->slug : 'no-slug-available';
88+
8789
$result = $this->createJobFile(
8890
$content,
8991
$versionId,
@@ -92,7 +94,8 @@ public function __invoke(Job $job): void
9294
Craftliltplugin::getInstance()->languageMapper->getLanguagesBySiteIds(
9395
[$targetSiteId]
9496
),
95-
null //TODO: $job->dueDate is not in use
97+
null, //TODO: $job->dueDate is not in use
98+
$slug
9699
);
97100

98101
if (!$result) {
@@ -152,13 +155,18 @@ private function createJobFile(
152155
int $jobId,
153156
string $sourceLanguage,
154157
array $targetSiteLanguages,
155-
?DateTimeInterface $dueDate
158+
?DateTimeInterface $dueDate,
159+
string $slug
156160
): bool {
157161
$contentString = json_encode($content);
158162

163+
if (!empty($slug)) {
164+
$slug = substr($slug, 0, 150);
165+
}
166+
159167
return Craftliltplugin::getInstance()->connectorJobsFileRepository->addFileToJob(
160168
$jobId,
161-
'element_' . $entryId . '.json+html',
169+
'element_' . $entryId . '_' . $slug . '.json+html',
162170
$contentString,
163171
$sourceLanguage,
164172
$targetSiteLanguages,

src/services/repositories/external/ConnectorTranslationRepository.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public function findTranslationContentById(int $translationId): string
4444

4545
public function getElementIdFromTranslationResponse(TranslationResponse $translationResponse): int
4646
{
47-
$regExpr = '/\d+_element_(\d+).json\+html/';
47+
$regExpr = '/\d+_element_(\d+)(_.*|)\.json\+html/';
4848
preg_match($regExpr, $translationResponse->getName(), $matches);
4949

5050
if (!isset($matches[1])) {

tests/integration/controllers/job/GetSyncFromLiltControllerCest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public function testSyncSuccess(IntegrationTester $I): void
8888
'createdAt' => '2022-05-29T11:31:58',
8989
'errorMsg' => null,
9090
'id' => 703695,
91-
'name' => '497058_element_505.json+html',
91+
'name' => '497058_element_505_first-entry-user-1.json+html',
9292
'status' => 'export_complete',
9393
'trgLang' => 'es',
9494
'trgLocale' => 'ES',
@@ -98,7 +98,7 @@ public function testSyncSuccess(IntegrationTester $I): void
9898
'createdAt' => '2022-05-29T11:31:58',
9999
'errorMsg' => null,
100100
'id' => 703696,
101-
'name' => '497058_element_505.json+html',
101+
'name' => '497058_element_505_first-entry-user-1.json+html',
102102
'status' => 'export_complete',
103103
'trgLang' => 'de',
104104
'trgLocale' => 'DE',
@@ -108,7 +108,7 @@ public function testSyncSuccess(IntegrationTester $I): void
108108
'createdAt' => '2022-05-29T11:31:58',
109109
'errorMsg' => null,
110110
'id' => 703697,
111-
'name' => '497058_element_505.json+html',
111+
'name' => '497058_element_505_first-entry-user-1.json+html',
112112
'status' => 'export_complete',
113113
'trgLang' => 'ru',
114114
'trgLocale' => 'RU',

tests/integration/controllers/job/PostJobRetryControllerCest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public function testRetrySuccess(IntegrationTester $I): void
9292
. '&trglang=es-ES' .
9393
'&due=',
9494
urlencode(
95-
sprintf('element_%d.json+html', $element->getId())
95+
sprintf('element_%d_first-entry-user-1.json+html', $element->getId())
9696
)
9797
);
9898
$expectedBody = ExpectedElementContent::getExpectedBody($element);

tests/integration/modules/FetchInstantJobTranslationsFromConnectorCest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ private function getTranslationsResponseBody(
250250
int $elementId,
251251
string $status
252252
): array {
253-
$fileName = sprintf('497058_element_%d.json+html', $elementId);
253+
$fileName = sprintf('497058_element_%d_first-entry-user-1.json+html', $elementId);
254254

255255
$translationsResponseBody = [
256256
'limit' => 25,

tests/integration/modules/FetchJobStatusFromConnectorCest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public function testExecuteSuccessVerified(IntegrationTester $I): void
7676
'createdAt' => '2022-05-29T11:31:58',
7777
'errorMsg' => null,
7878
'id' => 11111,
79-
'name' => sprintf('497058_element_%d.json+html', $element->id),
79+
'name' => sprintf('497058_element_%d_first-entry-user-1.json+html', $element->id),
8080
'status' => 'export_complete',
8181
'trgLang' => 'es',
8282
'trgLocale' => 'ES',
@@ -86,7 +86,7 @@ public function testExecuteSuccessVerified(IntegrationTester $I): void
8686
'createdAt' => '2022-05-29T11:31:58',
8787
'errorMsg' => null,
8888
'id' => 22222,
89-
'name' => sprintf('497058_element_%d.json+html', $element->id),
89+
'name' => sprintf('497058_element_%d_first-entry-user-1.json+html', $element->id),
9090
'status' => 'export_complete',
9191
'trgLang' => 'de',
9292
'trgLocale' => 'DE',
@@ -96,7 +96,7 @@ public function testExecuteSuccessVerified(IntegrationTester $I): void
9696
'createdAt' => '2022-05-29T11:31:58',
9797
'errorMsg' => null,
9898
'id' => 33333,
99-
'name' => sprintf('497058_element_%d.json+html', $element->id),
99+
'name' => sprintf('497058_element_%d_first-entry-user-1.json+html', $element->id),
100100
'status' => 'export_complete',
101101
'trgLang' => 'ru',
102102
'trgLocale' => 'RU',
@@ -207,7 +207,7 @@ public function testExecuteSuccessInstant(IntegrationTester $I): void
207207
'createdAt' => '2022-05-29T11:31:58',
208208
'errorMsg' => null,
209209
'id' => 11111,
210-
'name' => sprintf('497058_element_%d.json+html', $element->id),
210+
'name' => sprintf('497058_element_%d_first-entry-user-1.json+html', $element->id),
211211
'status' => 'export_complete',
212212
'trgLang' => 'es',
213213
'trgLocale' => 'ES',
@@ -217,7 +217,7 @@ public function testExecuteSuccessInstant(IntegrationTester $I): void
217217
'createdAt' => '2022-05-29T11:31:58',
218218
'errorMsg' => null,
219219
'id' => 22222,
220-
'name' => sprintf('497058_element_%d.json+html', $element->id),
220+
'name' => sprintf('497058_element_%d_first-entry-user-1.json+html', $element->id),
221221
'status' => 'export_complete',
222222
'trgLang' => 'de',
223223
'trgLocale' => 'DE',
@@ -227,7 +227,7 @@ public function testExecuteSuccessInstant(IntegrationTester $I): void
227227
'createdAt' => '2022-05-29T11:31:58',
228228
'errorMsg' => null,
229229
'id' => 33333,
230-
'name' => sprintf('497058_element_%d.json+html', $element->id),
230+
'name' => sprintf('497058_element_%d_first-entry-user-1.json+html', $element->id),
231231
'status' => 'export_complete',
232232
'trgLang' => 'ru',
233233
'trgLocale' => 'RU',

tests/integration/modules/FetchVerifiedJobTranslationsFromConnectorCest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ private function getTranslationsResponseBody(
532532
int $elementId,
533533
string $status
534534
): array {
535-
$fileName = sprintf('497058_element_%d.json+html', $elementId);
535+
$fileName = sprintf('497058_element_%d_first-entry-user-1.json+html', $elementId);
536536

537537
$translationsResponseBody = [
538538
'limit' => 25,
@@ -575,7 +575,7 @@ private function getTranslationsResponseBody(
575575

576576
private function getTranslationsResponseBodyOneFailed(int $elementId): array
577577
{
578-
$fileName = sprintf('497058_element_%d.json+html', $elementId);
578+
$fileName = sprintf('497058_element_%d_first-entry-user-1.json+html', $elementId);
579579

580580
return [
581581
'limit' => 25,

tests/integration/modules/SendJobToConnectorCest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public function testCreateJob(IntegrationTester $I): void
9696
. '&trglang=de-DE'
9797
. '&due=',
9898
urlencode(
99-
sprintf('element_%d.json+html', $elementToTranslate->getId())
99+
sprintf('element_%d_first-entry-user-1.json+html', $elementToTranslate->getId())
100100
)
101101
);
102102
$I->expectJobTranslationsRequest($expectedUrlDe, [], HttpCode::OK);
@@ -107,7 +107,7 @@ public function testCreateJob(IntegrationTester $I): void
107107
. '&trglang=ru-RU'
108108
. '&due=',
109109
urlencode(
110-
sprintf('element_%d.json+html', $elementToTranslate->getId())
110+
sprintf('element_%d_first-entry-user-1.json+html', $elementToTranslate->getId())
111111
)
112112
);
113113
$I->expectJobTranslationsRequest($expectedUrlRu, [], HttpCode::OK);
@@ -118,7 +118,7 @@ public function testCreateJob(IntegrationTester $I): void
118118
. '&trglang=es-ES'
119119
. '&due=',
120120
urlencode(
121-
sprintf('element_%d.json+html', $elementToTranslate->getId())
121+
sprintf('element_%d_first-entry-user-1.json+html', $elementToTranslate->getId())
122122
)
123123
);
124124
$I->expectJobTranslationsRequest($expectedUrlEs, [], HttpCode::OK);
@@ -317,7 +317,7 @@ public function testCreateJobWithUnexpectedStatusFromConnector(IntegrationTester
317317
. '&trglang=de-DE'
318318
. '&due=',
319319
urlencode(
320-
sprintf('element_%d.json+html', $element->getId())
320+
sprintf('element_%d_first-entry-user-1.json+html', $element->getId())
321321
)
322322
);
323323
$I->expectJobTranslationsRequest($expectedUrlDe, [], HttpCode::INTERNAL_SERVER_ERROR);
@@ -328,7 +328,7 @@ public function testCreateJobWithUnexpectedStatusFromConnector(IntegrationTester
328328
. '&trglang=ru-RU'
329329
. '&due=',
330330
urlencode(
331-
sprintf('element_%d.json+html', $element->getId())
331+
sprintf('element_%d_first-entry-user-1.json+html', $element->getId())
332332
)
333333
);
334334
$I->expectJobTranslationsRequest($expectedUrlRu, [], HttpCode::INTERNAL_SERVER_ERROR);
@@ -339,7 +339,7 @@ public function testCreateJobWithUnexpectedStatusFromConnector(IntegrationTester
339339
. '&trglang=es-ES'
340340
. '&due=',
341341
urlencode(
342-
sprintf('element_%d.json+html', $element->getId())
342+
sprintf('element_%d_first-entry-user-1.json+html', $element->getId())
343343
)
344344
);
345345
$I->expectJobTranslationsRequest($expectedUrlEs, [], HttpCode::INTERNAL_SERVER_ERROR);

0 commit comments

Comments
 (0)