From: Vincent Vanwaelscappel Date: Wed, 28 Jul 2021 17:27:15 +0000 (+0200) Subject: wait #4626 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=5fc7ce6133c0f9e2c450408c86902b471675efcf;p=fluidbook-toolbox.git wait #4626 @0.5 --- diff --git a/app/Http/Controllers/Admin/Base/FluidbookTranslateController.php b/app/Http/Controllers/Admin/Base/FluidbookTranslateController.php new file mode 100644 index 000000000..0d11080e6 --- /dev/null +++ b/app/Http/Controllers/Admin/Base/FluidbookTranslateController.php @@ -0,0 +1,13 @@ +getRawOriginal('content_translatable'), true); + + $t = FluidbookTranslate::find(1); + if ($locale === 'en') { + $ref = 'fr'; + } else { + $ref = 'en'; + } + + $tref = $this->_getTranslations($alldata, $ref); + $tr = $this->_getTranslations($alldata, $locale); + + $xls = new Spreadsheet(); + + $worksheet = $xls->getActiveSheet(); + $worksheet->setTitle($locale); + + $worksheet->getProtection()->setSheet(true); + $xls->getDefaultStyle()->getProtection()->setLocked(false); + + $worksheet->setCellValueByColumnAndRow(1, 1, 'ID'); + $worksheet->setCellValueByColumnAndRow(2, 1, 'Reference string'); + $worksheet->setCellValueByColumnAndRow(3, 1, 'Reference translation'); + $worksheet->setCellValueByColumnAndRow(4, 1, 'Translation'); + for ($i = 2; $i <= 4; $i++) { + $style = $worksheet->getStyleByColumnAndRow($i, 1); + $style->getAlignment()->setWrapText(true); + $style->getFont()->setBold(true); + $style->getProtection()->setLocked(Protection::PROTECTION_PROTECTED); + } + + $row = 2; + foreach ($tref as $k => $v) { + $str = base64_decode(explode('t_', $k)[1]); + $worksheet->setCellValueByColumnAndRow(1, $row, $k); + $worksheet->setCellValueByColumnAndRow(2, $row, $str); + $worksheet->setCellValueByColumnAndRow(3, $row, $v); + + for ($i = 1; $i <= 3; $i++) { + $style = $worksheet->getStyleByColumnAndRow($i, $row); + $style->getProtection()->setLocked(Protection::PROTECTION_PROTECTED); + } + for ($i = 2; $i <= 4; $i++) { + $style = $worksheet->getStyleByColumnAndRow($i, $row); + $style->getAlignment()->setWrapText(true); + } + $worksheet->setCellValueByColumnAndRow(4, $row, $tr[$k] ?? ''); + $row++; + } + + $width = 100; + $worksheet->getColumnDimensionByColumn(1)->setVisible(false); + $worksheet->getColumnDimensionByColumn(2)->setWidth($width); + $worksheet->getColumnDimensionByColumn(3)->setWidth($width); + $worksheet->getColumnDimensionByColumn(4)->setWidth($width); + + $writer = new Xlsx($xls); + $tmp = Files::tempnam(); + $writer->save($tmp); + + return response()->download($tmp, 'fluidbook_translate_' . $locale . '.xlsx')->deleteFileAfterSend(); + } + + protected function _getTranslations($alldata, $locale) + { + $data = $alldata[$locale]; + $res = []; + foreach ($data as $k => $v) { + if ($k === 'k') { + continue; + } + $res[$k] = $v; + } + return $res; + } +} diff --git a/app/Http/Controllers/Admin/Operations/FluidbookTranslate/ExcelImportOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookTranslate/ExcelImportOperation.php new file mode 100644 index 000000000..5b9992cf2 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/FluidbookTranslate/ExcelImportOperation.php @@ -0,0 +1,17 @@ + 'fluidbook-translate', diff --git a/resources/views/fluidbook_translate/excel_export.blade.php b/resources/views/fluidbook_translate/excel_export.blade.php index 684bb7fa5..4fae68cdb 100644 --- a/resources/views/fluidbook_translate/excel_export.blade.php +++ b/resources/views/fluidbook_translate/excel_export.blade.php @@ -1,2 +1,2 @@ - {{__('Export Excel')}}