《社區討論:Ibexa DXP 中的 AI 輔助自動翻譯模塊.pdf》由會員分享,可在線閱讀,更多相關《社區討論:Ibexa DXP 中的 AI 輔助自動翻譯模塊.pdf(35頁珍藏版)》請在三個皮匠報告上搜索。
1、AI-Assisted Automated Translation Module in Ibexa DXPYohann Monnier-Inforca Ibexa Summit 2025-31/01/2025Scan to contact meYohann Monnier Head of Digital Solutions Offerings Using Ibexa tools for 17+years Extensive expertise on enterprise-level portals Proud father of a wonderful little girl 2Digital
2、 agency of Inforca SAM in MonacoInforca was founded 20 years agoIT Consulting firm(Monaco,France)Inforca Digital Agency created 4 years ago dedicated to digital transformationcomposed of experts with over 15 years of experience in digital projectsserving businesses and institutions in the Principali
3、ty of Monaco,southern region and beyondInstitutional web platforms,E-commerce(B2B,B2C),Tailor-made business web application development3We have developed all the websites of the Governments web platform using Ibexa DXP=45+websites in 10 languages Types of websitesUser information Business informatio
4、n Educational institutionsEmbassiesPresentation for Web/mobile applicationsWeb applications with map-based backgroundPublic sector organizations in MonacoRecent successhttps:/culture.mc/(2024)https:/geldefonds.gouv.mc/(2024)https:/map.gouv.mc/(2024)https:/monservicepublic.gouv.mc/(2023)https:/urbamo
5、naco.gouv.mc/(2023)https:/livrici.gouv.mc/(2022)Our most important project:Ibexa platform for the Monaco administrationFeaturesContent management in 10 languagesMultiple website configurationSSO connexionsArcgis/Leaflet interactive mapsAdvanced search list and modulesDesign system modular integratio
6、nForm builder extensions(steps,AV,logics)Dedicated page builder blocksActivity log in back officeNewslettersAdvanced workflowsPDF/Excel/Doc file generationVscan Files 44Context How did we get there?55An extensive multilingual website designed to attract and guide international visitors to Monaco3 au
7、diences 8 languagesExtensive content items(1000+)ActivitiesNewsEventsPoints of interests7 professional translators 6Great ambitions,yet facing key challengesTranslator response timeContractually constrained volumeCostsLimited translation coverage7Strategic Objectives:Speed,Reliability,and CostObject
8、ives:Reduced processing timeEnsure reliability and availabilityReduce translation costsSimplify the translation processAs a result:Achieve 100%translation coverageAdd more languages8What If?Started as a friday afternoon challengeMy credo when building new things:Start with simplicityPrototype rapidl
9、yIterate and scale Always start an Ibexa add-on project with the following in mind:Reusability Ibexa handle multi language/websites/data repository within one instanceMulti editor means different constraints on contentDesign with a broader perspective,not tied to a single API9When the user initiates
10、 content publish in Ibexa DXP,the system will automatically:Via Event Subscriber detect publication and handle actionsSend each text field to a translation API Retrieve the translated contentCreate a new version of the translated content associated with the target languageStore the translated conten
11、t in Ibexa DXP.The translation is performed immediately without human interventionFirst proof of concept10How to make it an usable POC?Limit translation task to specific parameters source language,content treenode avoid translation loops Identify translations handled by Robot Multiple target languag
12、esWe have started write basic configuration Immediate success and new challenges11Configuration Start simple,Offer options 12YAML is a classic way to rapidly configure site specific options thanks to siteaccess aware configuration handling in Ibexa DXP First elements:Activation of the translation mo
13、duleOptional specific API keySource languageTarget languagesTypes of content to be translatedContent fields to be translatedThen later:Targeted page block fields,Glossary ID,workflowsA default configuration would handle most of it,leaving activation and target languages as main goal of the configura
14、tion fileManaging translation options for each site via YAML 13GoalsFeature in the hand of editorsFlexibility in translation targetsSeems Ibexa native for usersHow to achieve it?Extend content view full translation tab Display configuration for website roots Save configuration into Database with sym
15、fony entitiesConfigure translation from Back Office14We extends the initial template of the Translations tab in the content view full of root pages of website in Ibexa back-office.in service.yml We declare a decorator of the Ibexa TranslationTab classApplibTabLocationViewTranslationTab:decorates:EzS
16、ystemsEzPlatformAdminUiTabLocationViewTranslationsTabConfigure translation from Back Office15Decorator class in our bundle that extends TranslationTabclass TranslationTab extends BaseTranslationsTabOverride original function to add what we need public function getTemplateParameters(array$contextPara
17、meters=):array$viewParameters=parent:getTemplateParameters($contextParameters);/Add specific code to fetch and send configuration and forms to viewreturn array_replace($contextParameters,$viewParameters);Configure translation from Back Office16Then we need to override the template to display our con
18、figuration and forms:Create a template path in the same path templates/themes/admin/content/tab/translations/tab.html.twigAdd the new blocks inside%include EzPlatformAdminUi/themes/admin/content/tab/translations/tab.html.twig%#add our own logic in the template#Configure translation from Back Office1
19、7Translate it Step by step,address priorities 18https:/ of stringtag_handling:xml source_lang:example FRtarget_lang:example ENcontext:context prompt to influence translation processshow_billed_characters:numberpreserve_formatting:booleanformality:default,more,lessmodel _type:quality optimized,latenc
20、y optimizedglossary_id:glossary code nameDeepL APIcomposer require deeplcom/deepl-php19The system allows the integration and maintenance of an updatable glossary to ensure consistent terminology in translations.Users can independently add,modify,or delete terms from the glossary.The glossary is mana
21、ged through CSV file import and synchronized with translation APIsSupport for a glossary to ensure consistent terminology20Translating fieldsGet content informationTranslatable fieldsSource language values for fieldsCreate Content Update Struct setting language code as target languageHandle translat
22、ion for each kind of fieldHandling text elementsHandling form builder fieldfor each form fieldHandling page builder fieldfor each block21Focus on translating Rich text22Ibexa manage content versions on content object level.You can set a limit on the number of archived versions Once this limit is rea
23、ched,the oldest version will be deleted when a new one is addedWhat if we want to manage content version number based on language?Can be done by patch(hope Ibexa will add this option in core)Lets patch eZ/Publish/Core/Repository/ContentService.php Add a mechanism to limit version number by languageH
24、ow do we handle versions by language?23ObjectivesBuilt-in Delays and SchedulingMultiple retries and error handlingBetter performance for near real time processingSymfony messenger/message handlingcomposer require symfony/messenger24What we got Manageable delay New translation task delete older tasks
25、Each target language has its own tasksProper error handling and dedicated alert transportCan be used on many cases:when detecting new version when manually triggered command line process for translation whole websiteSymfony messenger/message handlingsymfony console messenger:consume monsite async-ti
26、me-limit=3600-memory-limit=512m-vv-siteaccess=monsite_admin25Force translate every content of the website Respecting translation parametersDo not overwrite manual translationsGenerate translation tasks Re-use Symfony MessengerIdeal for adding a new language improve translation coverage Symfony comma
27、nd line for bulk site translationsymfony console webforca:auto-translate-website-entity-manager=myentity-siteaccess=mysite26User roleManage auto translate module permissionsDedicated user per APITrack publisher and used APIImplementation of an activity logRecord each triggered actionsView it in cont
28、ent tab/user tabPrepare of a review workflowThat prove to be more complex than expectedSecurity:efficient control over tools translation27Existing matchers option to trigger a workflowContent types(array of content type identifier)Content status(draft or published)We need more By author role OR User
29、 Group OR User login Only published by our robot group By subtree Only for some website in the multi site content treeThis is useful in many more use casesBe carefula matcher needs a definition or activate by defaultthis is a AND operator,all matchers need to be matched to trigger WFNot fully docume
30、nted:we will work with Ibexa to document it with an example to help you build new matchersValidation workflows:extension requiredclass ContentSubtreeMatcher implements MatcherInterface28Visualise it Inform your users2929Clear and visual indicator when translated via IATranslation quality assessment
31、Remember to inform users about AI-generated content30Detailed activity lognumber of translated charactersused translation APIInformation on translation:auto translated?rating?Let back-office user in control31Translation content dashboardLet back-office user in control32Resolve key challengesTranslat
32、ion processing timeBot/Automation for near real-time responseEnsure reliability and availabilityAlways available API Reduce translation costs20 per 1 million charactersAchieve full content translation coverageTranslate everything,as many languages as needed at low cost3333Seamless integration:an essential quality“Im impressed by the quality of the translation,the ease of use,but most of all,the seamless integration of the tool into Ibexa DXP.I only have one regret”Laurent Curnier-AI Project Manager-DITN Monaco34Tanque you vri meucheScan to contact me35