A Concrete CMS package to add interfaces to translate multilingual content. You can translate content manually, or use cloud API.

Related tags

CMS concretecms
Overview

Concrete CMS add-on: Macareux Content Translator

Concrete CMS has powerful features to manage multilingual content by its default. You can add language sections in your sitemap and connect pages between language sections, copy contents from one section to another language section, add a Switch Language block to provide an interface to switch languages for visitors, etc. Also, you can translate a user interface from Dashboard easily. The one last missing piece is content translation.

This package installs a CAT tool into your dashboard. Translators can translate pages from outside in-context editing, so they can focus on translate contents.

Also, developers can add machine translators easily. This package contains built-in machine translators: Google Translate, DeepL

Videos

ToDo

  • Test with Basic Workflow (This package creates a new version of the page and approves it. It should work with built-in workflow system).
  • Dictionary for human translators
  • Support more blocks
  • Permission Keys
    • Can translate page contents (done)
    • Can discard translate request
    • Can edit translate request
    • Can publish translate request
    • Can use machine translators
  • Search requests
  • More machine translators
  • Merge this package to the core

Not to do

  • Dictionary for machine translators
    • Developers should add a custom translator that has this feature as another package. I want to keep this package as simple as I can.

How to extend

Make custom blocks translatable

Extractor Routine

Create an Extractor Routine class to get translatable content from original block.

You must implement \Macareux\ContentTranslator\Extractor\Routine\ExtractBlockRoutineInterface interface.

You should extend \Macareux\ContentTranslator\Extractor\Routine\AbstractExtractBlockRoutine class to implement the interface easily.

You need to return an instance of \Macareux\ContentTranslator\Entity\TranslateContent class only when the given block instance is the type of you want to support.

Register your extractor class to extractor manager.

$manager = $app->make(\Macareux\ContentTranslator\Extractor\Routine\Manager::class);
$manager->registerRoutine(new YourCustomRoutine());

Publisher Routine

Create a Publisher Routine class to publish translated content to original page.

You must implement \Macareux\ContentTranslator\Publisher\Routine\PublishRoutineInterface interface.

You have to update a block of correct source type and correct identifier. Please check built-in publisher classes.

Register your publisher class to publisher manager.

$manager = $app->make(\Macareux\ContentTranslator\Publisher\Routine\Manager::class);
$manager->registerRoutine(new YourCustomRoutine());

Add custom machine translators

Create a Translator class to translate content automatically.

You must implement \Macareux\ContentTranslator\Translator\TranslatorInterface interface.

You should extend \Macareux\ContentTranslator\Translator\AbstractTranslator to implement the interface easily.

You must create an element file for configuration like adding an API key. The file structure is: elements/content_translator/translator/{translator_handle}.php

Finally, please install your custom translator.

$manager = $app->make(\Macareux\ContentTranslator\Translator\Manager::class);
$manager->installTranslator('translator_handle', "Translator Name", 'YourTranslatorClassName');

License

MIT license

You might also like...
Baicloud CMS is a lightweight content management system (CMS) based on PHP and MySQL and running on Linux, windows and other platforms

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the project website for more information.

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

PHPVibe Open source video CMS / Video Sharing CMS / Youtube Api v3 / Video Embeds
PHPVibe Open source video CMS / Video Sharing CMS / Youtube Api v3 / Video Embeds

PHPVibe Video CMS Free Video Sharing CMS The modern choice of design inspired by Youtube and a social videos sharing module that may just cut it for y

Contenta is a content API and CMS based on Drupal 8

Contenta is a content API and CMS based on Drupal 8. It provides a standard, jsonapi-based platform for building decoupled applications and websites.

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project.
Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project.

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project. Only add few database tables with prefixes, not affect your existing database tables. Support Laravel 7.x & Laravel 6.x & Laravel 5.x & MySql & PostgreSql - Amila Laravel CMS

Doptor CMS is a Laravel 5 based CMS
Doptor CMS is a Laravel 5 based CMS

Introduction Doptor CMS is a Laravel 5 based CMS. Find out more about Doptor by reading below. ;) About Doptor CMS Doptor is an Integrated and well-de

Bismuth CMS is a ready-made Website CMS based on Yii 2 Advance Template

Bismuth CMS is a ready-made Website CMS based on Yii 2 Advance Template, it's the simplest and easy to set up CMS you may come across.

Bootstrap CMS - PHP CMS powered by Laravel 5 and Sentry
Bootstrap CMS - PHP CMS powered by Laravel 5 and Sentry

Bootstrap CMS Bootstrap CMS was created by, and is maintained by Graham Campbell, and is a PHP CMS powered by Laravel 5.1 and Sentry. It utilises many

GetSimple CMS - a flatfile CMS that works fast and efficient and has the best UI around, it is written in PHP

GetSimple CMS is a flatfile CMS that works fast and efficient and has the best UI around, it is written in PHP.

Owner
株式会社マカルーデジタル
Former Concrete Japan, Inc.
株式会社マカルーデジタル
Basic Bedrock Theme for Concrete CMS

Basic Bedrock Theme Package for Concrete CMS v9 Basic Bedrock Theme Package for Concrete CMS v9 Concrete CMS Bedrock Documentation Description Persona

David 11 Nov 27, 2022
NukeViet 132 Nov 27, 2022
Multilingual PHP CMS built with Laravel and bootstrap

Lavalite This is an open source of Content Management System developed with Laravel framework. Documentation Visit Documentation section in the websit

LavaLite 2.6k Jan 4, 2023
Multilingual CMS built with Laravel.

TypiCMS TypiCMS is a modular multilingual content management system built with Laravel. Out of the box you can manage pages, events, news, places, men

TypiCMS, Laravel multilingual CMS 1.1k Jan 7, 2023
Multilingual CMS built with Laravel.

TypiCMS TypiCMS is a modular multilingual content management system built with Laravel. Out of the box you can manage pages, events, news, places, men

TypiCMS, Laravel multilingual CMS 973 Jun 25, 2021
A multilingual, extensible, community oriented CMS developed in PHP

ImpressCMS is a community developed Content Management System. With this tool maintaining the content of a website becomes as easy as writing a word d

ImpressCMS 26 Dec 14, 2022
Polymorphic and Multilingual CMS powered by Laravel

Nuclear CMS Polymorphic and multilingual content management system. Nuclear is a polymorphic and multilingual content management system powered by Lar

Nuclear CMS 36 Nov 29, 2022
A modular multilingual CMS built with Laravel 5.

AsgardCMS Platform View the documentation at AsgardCMS.com/docs. Join the conversation on Slack License The AsgardCMS is open-sourced software license

AsgardCMS 770 Jan 2, 2023
A multilingual, extensible, community oriented CMS developed in PHP

ImpressCMS is a community developed Content Management System. With this tool maintaining the content of a website becomes as easy as writing a word d

ImpressCMS 26 Dec 14, 2022
Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS

Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS. Building this Content Management System, we focused on simplicity. To achieve this, we implemented a simple but powerful API's.

Flextype 524 Dec 30, 2022