{"id":17355,"date":"2026-01-22T10:05:25","date_gmt":"2026-01-22T10:05:25","guid":{"rendered":"https:\/\/ptc.wpml.org\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/"},"modified":"2026-03-20T09:56:42","modified_gmt":"2026-03-20T09:56:42","slug":"comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc","status":"publish","type":"documentation","link":"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/","title":{"rendered":"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-layout-flex uagb-block-7d0a9c8b default uagb-is-root-container\">\n<div class=\"wp-block-uagb-container uagb-block-ec2c2fb6\">\n<p class=\"lead has-medium-font-size\">D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR). Cela inclut les articles de blog, les informations produit et tout texte stock\u00e9 dans votre base de donn\u00e9es. <\/p>\n\n\n\n<p>Ci-dessous, nous vous guidons \u00e0 travers le processus de traduction de contenu dynamique dans des applications Rails en deux parties :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tout d\u2019abord, vous d\u00e9couvrirez les trois endpoints de l\u2019API individuellement : comment envoyer du contenu \u00e0 traduire, v\u00e9rifier son statut et r\u00e9cup\u00e9rer les traductions termin\u00e9es.<\/li>\n\n\n\n<li>Ensuite, vous verrez comment relier ces endpoints dans un workflow complet en utilisant soit des callbacks, soit le polling.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"h-translating-texts\" class=\"wp-block-uagb-container uagb-block-480d8777 default uagb-is-root-container\">\n<h2 class=\"wp-block-heading\" id=\"before-starting\">Avant de commencer<\/h2>\n\n\n\n<p>Ce guide suppose que vous disposez d\u2019une application Rails configur\u00e9e avec un moyen de stocker les traductions (comme Mobility, Globalize ou votre propre solution).<\/p>\n\n\n\n<p>Si vous partez de z\u00e9ro ou souhaitez voir une impl\u00e9mentation compl\u00e8te, nous avons cr\u00e9\u00e9 une application Rails de d\u00e9monstration qui montre l\u2019int\u00e9gration de PTC de bout en bout. La d\u00e9mo utilise : <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/shioyama\/mobility\" target=\"_blank\" rel=\"noreferrer noopener\">Mobility<\/a> pour stocker les traductions<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/bkeepers\/dotenv\" target=\"_blank\" rel=\"noreferrer noopener\">dotenv-rails<\/a> pour les variables d\u2019environnement<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/collectiveidea\/delayed_job_active_record\" target=\"_blank\" rel=\"noreferrer noopener\">delayed_job_active_record<\/a> pour le traitement en arri\u00e8re-plan<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-uagb-buttons uagb-buttons__outer-wrap uagb-btn__default-btn uagb-btn-tablet__default-btn uagb-btn-mobile__default-btn uagb-block-60bbf702\"><div class=\"uagb-buttons__wrap uagb-buttons-layout-wrap \">\n<div class=\"wp-block-uagb-buttons-child uagb-buttons__outer-wrap uagb-block-5ea4a834 wp-block-button\"><div class=\"uagb-button__wrapper\"><a class=\"uagb-buttons-repeater wp-block-button__link\" aria-label=\"\" href=\"https:\/\/github.com\/nkavt-onthegosystems\/rails-ptc-content-translation-demo\" rel=\"follow noopener\" target=\"_blank\" role=\"button\"><div class=\"uagb-button__link\">Voir l\u2019application de d\u00e9monstration sur GitHub \u2192<\/div><\/a><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"set-up-ptc\">Configurer PTC et obtenir votre jeton d\u2019API<\/h2>\n\n\n\n<p>Pour commencer, vous avez besoin d\u2019un compte PTC et d\u2019un jeton d\u2019API :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/app.ptc.wpml.org\/users\/sign_up\">Inscrivez-vous \u00e0 PTC<\/a>. La cr\u00e9ation d\u2019un compte est gratuite et vous pouvez traduire 20\u202f000 mots vers 2 langues sans frais. Ensuite, vous <a href=\"https:\/\/ptc.wpml.org\/purchase\/\">payez uniquement ce que vous traduisez<\/a>.<\/li>\n\n\n\n<li>Cr\u00e9ez un nouveau projet et s\u00e9lectionnez <strong>Int\u00e9gration API.<\/strong><\/li>\n\n\n\n<li>Copiez le jeton d\u2019API que PTC g\u00e9n\u00e8re \u00e0 la fin de la configuration du projet. Vous en aurez besoin pour authentifier toutes les requ\u00eates. Vous pouvez retrouver le m\u00eame jeton dans le tableau de bord de votre projet, sous <strong>Settings \u2192 Manage API tokens<\/strong>.  <\/li>\n<\/ol>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"wp-block-uagb-image-gallery uagb-block-39ff3b72     \"\n\t\t\t\t\t\tstyle=\"\"\n\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery spectra-image-gallery__layout--masonry spectra-image-gallery__layout--masonry-col-2 spectra-image-gallery__layout--masonry-col-tab-1 spectra-image-gallery__layout--masonry-col-mob-1\">\n\t\t\t\t\t\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper--isotope'>\n\t\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper' data-spectra-gallery-image-id='17350' tabindex=\"0\">\n\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media spectra-image-gallery__media--masonry\">\n\t\t\t\t<picture>\n\t\t\t\t\t<source media=\"(min-width: 1024px)\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project.png\">\n\t\t\t\t\t<source media=\"(min-width: 768px)\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-1024x517.png\">\n\t\t\t\t\t<img decoding=\"async\" class=\"spectra-image-gallery__media-thumbnail spectra-image-gallery__media-thumbnail--masonry\" src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-300x152.png\" alt=\"Creating a new project in PTC\" loading=\"lazy\" \/>\n\t\t\t\t<\/picture>\n\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-blurrer\"><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption-wrapper spectra-image-gallery__media-thumbnail-caption-wrapper--bar-outside\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption spectra-image-gallery__media-thumbnail-caption--bar-outside\">\n\t\t\t\t\tCreating a new project\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper--isotope'>\n\t\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper' data-spectra-gallery-image-id='17351' tabindex=\"0\">\n\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media spectra-image-gallery__media--masonry\">\n\t\t\t\t<picture>\n\t\t\t\t\t<source media=\"(min-width: 1024px)\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration.png\">\n\t\t\t\t\t<source media=\"(min-width: 768px)\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-1024x601.png\">\n\t\t\t\t\t<img decoding=\"async\" class=\"spectra-image-gallery__media-thumbnail spectra-image-gallery__media-thumbnail--masonry\" src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-300x176.png\" alt=\"Choosing API integration in PTC setup\" loading=\"lazy\" \/>\n\t\t\t\t<\/picture>\n\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-blurrer\"><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption-wrapper spectra-image-gallery__media-thumbnail-caption-wrapper--bar-outside\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption spectra-image-gallery__media-thumbnail-caption--bar-outside\">\n\t\t\t\t\tChoosing API Integration\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper--isotope'>\n\t\t\t\t\t\t\t<div class='spectra-image-gallery__media-wrapper' data-spectra-gallery-image-id='17352' tabindex=\"0\">\n\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media spectra-image-gallery__media--masonry\">\n\t\t\t\t<picture>\n\t\t\t\t\t<source media=\"(min-width: 1024px)\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-scaled.png\">\n\t\t\t\t\t<source media=\"(min-width: 768px)\" srcset=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-1024x459.png\">\n\t\t\t\t\t<img decoding=\"async\" class=\"spectra-image-gallery__media-thumbnail spectra-image-gallery__media-thumbnail--masonry\" src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-300x135.png\" alt=\"API token under Settings \u2192 Manage API tokens\" loading=\"lazy\" \/>\n\t\t\t\t<\/picture>\n\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-blurrer\"><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption-wrapper spectra-image-gallery__media-thumbnail-caption-wrapper--bar-outside\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"spectra-image-gallery__media-thumbnail-caption spectra-image-gallery__media-thumbnail-caption--bar-outside\">\n\t\t\t\t\tAPI token under Settings \u2192 Manage API tokens\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class='spectra-image-gallery__control-lightbox' tabindex='0'>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper spectra-image-gallery__control-lightbox--main\" dir=\"\">\n\t\t\t\t\t<div class=\"swiper-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t<img class=\"swiper-lazy\" data-src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project.png\" alt=\"Creating a new project in PTC\"\/>\n\t\t\t\t\t\t\t\t<div class=\"swiper-lazy-preloader swiper-lazy-preloader-white\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t<img class=\"swiper-lazy\" data-src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration.png\" alt=\"Choosing API integration in PTC setup\"\/>\n\t\t\t\t\t\t\t\t<div class=\"swiper-lazy-preloader swiper-lazy-preloader-white\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t<img class=\"swiper-lazy\" data-src=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-scaled.png\" alt=\"API token under Settings \u2192 Manage API tokens\"\/>\n\t\t\t\t\t\t\t\t<div class=\"swiper-lazy-preloader swiper-lazy-preloader-white\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"swiper-button-next\"><\/div>\n\t\t\t\t\t<div class=\"swiper-button-prev\"><\/div>\n\t\t\t\t<\/div>\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button class='spectra-image-gallery__control-lightbox--close' aria-label=\"Close\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox= \"0 0 320 512\"><path d=\"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z\"><\/path><\/svg>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"api-endpoints\">Endpoints d\u2019API pour traduire du contenu dynamique<\/h2>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-5fd536df alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-d8efc734\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-4a10c111\"><p class=\"uagb-heading-text\">1<\/p><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"send-content-for-translation\">Envoyer du contenu \u00e0 traduire<\/h3>\n<\/div><\/div>\n\n\n\n<p>Pour traduire du contenu, utilisez l\u2019endpoint <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/reference-de-lapi-ptc\/demander-et-recuperer-les-traductions-via-lapi\/#create-content-translations\">Create Content Translation<\/a>. Cela planifie la traduction de votre contenu et renvoie un identifiant que vous utiliserez pour suivre l\u2019avancement et r\u00e9cup\u00e9rer les r\u00e9sultats. <\/p>\n\n\n\n<p><strong>Endpoint<\/strong> :<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>POST https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">POST<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Param\u00e8tres<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>data<\/code>  (obligatoire) &#8211; Le contenu \u00e0 traduire sous forme de hash<\/li>\n\n\n\n<li><code>name<\/code>  (obligatoire) &#8211; Un libell\u00e9 pour cette t\u00e2che de traduction (par exemple, <code>\"post-123-translation\"<\/code>)<\/li>\n\n\n\n<li><code>target_languages<\/code>  (facultatif) &#8211; Un tableau de codes de langue (par exemple, <code>[\"es\", \"fr\", \"de\"]<\/code>)<\/li>\n\n\n\n<li><code>callback_url<\/code>  (facultatif) &#8211; Une URL que PTC utilisera pour vous notifier une fois les traductions<\/li>\n<\/ul>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Voici un exemple de service qui lance la traduction :<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Ruby<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>require 'net\/http'\nrequire 'uri'\n\nmodule Ptc\n class TranslateService\n def initialize(data:, name: ,target_languages:, callback_url: nil)\n @data = data\n @name = name\n @target_languages = target_languages\n @token = ENV.fetch(\"PTC_API_TOKEN\")\n @callback_url = callback_url\n end\n\n  def call\n translate\n end\n\n  def self.call(**attributes)\n new(**attributes).call\n end\n\n  private\n attr_reader :data, :name, :target_languages, :token, :callback_url\n\n  def translate\n response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|\n http.request(request)\n end\n JSON.parse(response.body)\n end\n\n  def body\n {\n data:,\n name:,\n target_languages:,\n callback_url:,\n }.to_json\n end\n\n  def request\n return @request if @request.present?\n\n  @request ||= Net::HTTP::Post.new(uri)\n @request.content_type = \"application\/json\"\n @request.body = body\n @request[\"Authorization\"] = \"Bearer #{token}\"\n @request\n end\n\n  def uri\n @uri ||= URI.parse(\"https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\")\n end\n end\nend\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">require<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">net\/http<\/span><span style=\"color: #ECEFF4\">'<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">require<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">uri<\/span><span style=\"color: #ECEFF4\">'<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #81A1C1\">module<\/span><span style=\"color: #D8DEE9FF\"> Ptc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">TranslateService<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">initialize<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">, name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> ,target_languages<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">, callback_url<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">nil<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">name<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">target_languages<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> target_languages<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">token<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ENV<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">fetch<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">PTC_API_TOKEN<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">callback_url<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> callback_url<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">call<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      translate<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">self.call<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">attributes<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">attributes<\/span><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #D8DEE9FF\">call<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">attr_reader<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">name<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">target_languages<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">token<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">callback_url<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">translate<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      response <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Net<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">HTTP<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">start<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">uri<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">hostname<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> uri<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">port<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> use_ssl<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">|<\/span><span style=\"color: #D8DEE9\">http<\/span><span style=\"color: #ECEFF4\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        http<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">JSON<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">parse<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">body<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">body<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        data<\/span><span style=\"color: #ECEFF4\">:,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        name<\/span><span style=\"color: #ECEFF4\">:,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        target_languages<\/span><span style=\"color: #ECEFF4\">:,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        callback_url<\/span><span style=\"color: #ECEFF4\">:,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">}.<\/span><span style=\"color: #D8DEE9FF\">to_json<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">request<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">present?<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">||=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Net<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">HTTP<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">Post<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">uri<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">content_type <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">application\/json<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">body <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> body<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Authorization<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Bearer <\/span><span style=\"color: #81A1C1\">#{<\/span><span style=\"color: #A3BE8C\">token<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">uri<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">uri<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">||=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">URI<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">parse<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-a2ef876d alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<p>Pour obtenir les d\u00e9tails complets de la r\u00e9ponse, les codes d\u2019erreur et des exemples suppl\u00e9mentaires, consultez la <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/reference-de-lapi-ptc\/demander-et-recuperer-les-traductions-via-lapi\/#create-content-translations\">documentation de l\u2019API Create Content Translation<\/a>.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-603527d0 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-c1b6d94c\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-68e36a9a\"><p class=\"uagb-heading-text\">2<\/p><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"check-the-translation-status\">V\u00e9rifier le statut de la traduction<\/h3>\n<\/div><\/div>\n\n\n\n<p id=\"h-your-attractive-heading\">Pour v\u00e9rifier si votre traduction est termin\u00e9e, utilisez l\u2019endpoint <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/reference-de-lapi-ptc\/demander-et-recuperer-les-traductions-via-lapi\/#get-content-translation-status\">Get Content Translation Status<\/a>. Il renvoie le statut actuel et l\u2019avancement de la traduction. <\/p>\n\n\n\n<p id=\"h-your-attractive-heading\"><strong>Endpoint<\/strong> :<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>GET https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/{id}\/status<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">GET<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/{id}\/status<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Param\u00e8tres<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>id<\/code>  (obligatoire) &#8211; L\u2019identifiant unique de la t\u00e2che de traduction de contenu \u00e0 v\u00e9rifier<\/li>\n<\/ul>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Exemple de service dans Rails :<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Ruby<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>require 'net\/http'\nrequire 'uri'\n\nmodule Ptc\n class GetTranslationStatusService\n def initialize(id:)\n @id = id\n @token = ENV.fetch(\"PTC_API_TOKEN\")\n end\n\n  def call\n get\n end\n\n  def self.call(**attributes)\n new(**attributes).call\n end\n\n  private\n attr_reader :id, :token\n\n  def get\n response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|\n http.request(request)\n end\n JSON.parse(response.body)\n end\n\n  def request\n return @request if @request.present?\n\n  @request ||= Net::HTTP::Get.new(uri)\n @request.content_type = \"application\/json\"\n @request[\"Authorization\"] = \"Bearer #{token}\"\n @request\n end\n\n  def uri\n @uri ||= URI.parse(\"https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/#{id}\/status\")\n end\n end\nend\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">require<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">net\/http<\/span><span style=\"color: #ECEFF4\">'<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">require<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">uri<\/span><span style=\"color: #ECEFF4\">'<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #81A1C1\">module<\/span><span style=\"color: #D8DEE9FF\"> Ptc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GetTranslationStatusService<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">initialize<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">:)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">id<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">token<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ENV<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">fetch<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">PTC_API_TOKEN<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">call<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      get<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">self.call<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">attributes<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">attributes<\/span><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #D8DEE9FF\">call<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">attr_reader<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">token<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">get<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      response <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Net<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">HTTP<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">start<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">uri<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">hostname<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> uri<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">port<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> use_ssl<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">|<\/span><span style=\"color: #D8DEE9\">http<\/span><span style=\"color: #ECEFF4\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        http<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">JSON<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">parse<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">body<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">request<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">present?<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">||=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Net<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">HTTP<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">Get<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">uri<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">content_type <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">application\/json<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Authorization<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Bearer <\/span><span style=\"color: #81A1C1\">#{<\/span><span style=\"color: #A3BE8C\">token<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">uri<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">uri<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">||=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">URI<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">parse<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/<\/span><span style=\"color: #81A1C1\">#{<\/span><span style=\"color: #A3BE8C\">id<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #A3BE8C\">\/status<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-70d21a2f alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<p>La r\u00e9ponse inclut un champ de statut et un pourcentage indiquant l\u2019avancement de la traduction. Pour obtenir les d\u00e9tails complets de la r\u00e9ponse, consultez la <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/reference-de-lapi-ptc\/demander-et-recuperer-les-traductions-via-lapi\/#get-content-translation-status\">documentation de l\u2019API Get Content Translation<\/a>. <\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-3b93f13f alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-1883f0e0\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-357159f5\"><p class=\"uagb-heading-text\">3<\/p><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"retrieve-translations\">R\u00e9cup\u00e9rer les traductions<\/h3>\n<\/div><\/div>\n\n\n\n<p>Une fois votre traduction termin\u00e9e, utilisez l\u2019endpoint <a href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/reference-de-lapi-ptc\/demander-et-recuperer-les-traductions-via-lapi\/#get-content-translation-status\">Get Content Translations<\/a> pour r\u00e9cup\u00e9rer les r\u00e9sultats. Il renvoie votre contenu d\u2019origine ainsi que des versions traduites pour chaque langue cible. <\/p>\n\n\n\n<p><strong>Endpoint<\/strong> :<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>GET https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/{id}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">GET<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/{id}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Param\u00e8tres<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>id<\/code><strong> <\/strong>(obligatoire) &#8211; L\u2019identifiant unique de la t\u00e2che de traduction de contenu \u00e0 r\u00e9cup\u00e9rer<\/li>\n<\/ul>\n\n\n\n<p><strong>Exemple dans Rails :<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Ruby<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>require 'net\/http'\nrequire 'uri'\n\nmodule Ptc\n class GetTranslationService\n def initialize(id:)\n @id = id\n @token = ENV.fetch(\"PTC_API_TOKEN\")\n end\n\n  def call\n get\n end\n\n  def self.call(**attributes)\n new(**attributes).call\n end\n\n  private\n attr_reader :id, :token\n\n  def get\n response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|\n http.request(request)\n end\n JSON.parse(response.body)\n end\n\n  def request\n return @request if @request.present?\n\n  @request ||= Net::HTTP::Get.new(uri)\n @request.content_type = \"application\/json\"\n @request[\"Authorization\"] = \"Bearer #{token}\"\n @request\n end\n\n  def uri\n @uri ||= URI.parse(\"https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/#{id}\")\n end\n end\nend\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">require<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">net\/http<\/span><span style=\"color: #ECEFF4\">'<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">require<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">'<\/span><span style=\"color: #A3BE8C\">uri<\/span><span style=\"color: #ECEFF4\">'<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #81A1C1\">module<\/span><span style=\"color: #D8DEE9FF\"> Ptc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GetTranslationService<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">initialize<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">:)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">id<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">token<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ENV<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">fetch<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">PTC_API_TOKEN<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">call<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      get<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">self.call<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">attributes<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">attributes<\/span><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #D8DEE9FF\">call<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">attr_reader<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">token<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">get<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      response <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Net<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">HTTP<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">start<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">uri<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">hostname<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> uri<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">port<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> use_ssl<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">|<\/span><span style=\"color: #D8DEE9\">http<\/span><span style=\"color: #ECEFF4\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        http<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">JSON<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">parse<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">body<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">request<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">present?<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">||=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Net<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">HTTP<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">Get<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">uri<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">content_type <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">application\/json<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Authorization<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Bearer <\/span><span style=\"color: #81A1C1\">#{<\/span><span style=\"color: #A3BE8C\">token<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">request<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">uri<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">uri<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">||=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">URI<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">parse<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">https:\/\/app.ptc.wpml.org\/api\/v1\/content_translation\/<\/span><span style=\"color: #81A1C1\">#{<\/span><span style=\"color: #A3BE8C\">id<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"get-notified-when-translations-are-ready\">Recevoir une notification lorsque les traductions sont pr\u00eates<\/h2>\n\n\n\n<p>Vous avez appris \u00e0 envoyer du contenu, v\u00e9rifier le statut et r\u00e9cup\u00e9rer les traductions. Vous devez maintenant relier ces \u00e9tapes afin que votre application sache automatiquement quand r\u00e9cup\u00e9rer les traductions. <\/p>\n\n\n\n<p>Vous pouvez le faire en utilisant des callbacks (recommand\u00e9) ou en ex\u00e9cutant une t\u00e2che qui interroge le statut de la traduction (polling).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"using-callbacks\">Utiliser des callbacks (recommand\u00e9)<\/h3>\n\n\n\n<p id=\"h-\">Lorsque vous envoyez du contenu \u00e0 traduire, vous pouvez inclure une URL de callback. PTC appelle cette URL lorsque la traduction est termin\u00e9e. Votre endpoint r\u00e9cup\u00e8re ensuite les traductions et les stocke.    <\/p>\n\n\n\n<p id=\"h-\">C\u2019est efficace, car PTC vous notifie imm\u00e9diatement.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Ruby<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>module Api\n class CallbacksController &lt; ActionController::API\n before_action :set_post\n\n  def create\n id = callback_params[:id]\n\n  translation_data = Ptc::GetTranslationService.call(id:)\n translation_data.except(\"source\").each do |locale, data|\n @post.set_translation(locale:, title: data[\"title\"], description: data[\"description\"])\n end\n\n  head :ok\n end\n\n  private\n\n  def set_post\n @post = Post.find(params[:post_id])\n end\n\n  def callback_params\n params.permit([:post_id, :id, :status, :translations_url])\n end\n end\nend\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">module<\/span><span style=\"color: #D8DEE9FF\"> Api<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">CallbacksController<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB; font-weight: bold\">ActionController::API<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    before_action <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">set_post<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">create<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      id <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> callback_params<\/span><span style=\"color: #ECEFF4\">[:<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">]<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      translation_data <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Ptc<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">GetTranslationService<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">call<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">:)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      translation_data<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">except<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">source<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #D8DEE9FF\">each <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">|<\/span><span style=\"color: #D8DEE9\">locale<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #ECEFF4\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">post<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">set_translation<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">locale<\/span><span style=\"color: #ECEFF4\">:,<\/span><span style=\"color: #D8DEE9FF\"> title<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">title<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">],<\/span><span style=\"color: #D8DEE9FF\"> description<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">description<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      head <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">ok<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">set_post<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #D8DEE9\">post<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Post<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">find<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">params<\/span><span style=\"color: #ECEFF4\">[:<\/span><span style=\"color: #D8DEE9FF\">post_id<\/span><span style=\"color: #ECEFF4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">callback_params<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      params<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">permit<\/span><span style=\"color: #ECEFF4\">([:<\/span><span style=\"color: #D8DEE9FF\">post_id<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">status<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">translations_url<\/span><span style=\"color: #ECEFF4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"polling-the-translation-status\">Interroger le statut de la traduction (alternative)<\/h3>\n\n\n\n<p id=\"h-\">Vous ne pouvez pas utiliser de callbacks ? Apr\u00e8s avoir envoy\u00e9 du contenu \u00e0 traduire, vous pouvez mettre en file d\u2019attente une t\u00e2che en arri\u00e8re-plan qui v\u00e9rifie \u00e0 plusieurs reprises le statut de la traduction.  La t\u00e2che r\u00e9cup\u00e8re les traductions une fois termin\u00e9es.  <\/p>\n\n\n\n<p id=\"h-\">Cette approche n\u2019est pas recommand\u00e9e, car elle gaspille des ressources et ajoute des appels d\u2019API inutiles.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Ruby<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class CheckTranslationJob &lt; ApplicationJob\n\n  MAX_ATTEMPTS = 3\n\n  def perform(id:, post_id:, attempt: 0)\n translation = Ptc::GetTranslationStatusService.call(id:)\n if translation[\"status\"] == \"completed\"\n translation = Ptc::GetTranslationService.call(id:)\n post = Post.find(post_id)\n translation.except(\"source\").each do |locale, data|\n post.set_translation(locale:, title: data[\"title\"], description: data[\"description\"])\n end\n else\n raise \"Failed to get translation after #{MAX_ATTEMPTS} attempts\" if attempt &gt; MAX_ATTEMPTS\n\n  CheckTranslationJob.set(wait: 1.minute).perform_later(id:, post_id:, attempt: attempt + 1)\n end\n end\nend\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">CheckTranslationJob<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB; font-weight: bold\">ApplicationJob<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #D8DEE9\">MAX_ATTEMPTS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">perform<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">, post_id<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">, attempt<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    translation <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Ptc<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">GetTranslationStatusService<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">call<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">:)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> translation<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">status<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">completed<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      translation <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Ptc<\/span><span style=\"color: #ECEFF4\">::<\/span><span style=\"color: #8FBCBB\">GetTranslationService<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">call<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">:)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      post <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Post<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">find<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">post_id<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      translation<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">except<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">source<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #D8DEE9FF\">each <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">|<\/span><span style=\"color: #D8DEE9\">locale<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #ECEFF4\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        post<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">set_translation<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">locale<\/span><span style=\"color: #ECEFF4\">:,<\/span><span style=\"color: #D8DEE9FF\"> title<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">title<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">],<\/span><span style=\"color: #D8DEE9FF\"> description<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">description<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">raise<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Failed to get translation after <\/span><span style=\"color: #81A1C1\">#{<\/span><span style=\"color: #D8DEE9\">MAX_ATTEMPTS<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #A3BE8C\"> attempts<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> attempt <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">MAX_ATTEMPTS<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">CheckTranslationJob<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">set<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">wait<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">minute<\/span><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #D8DEE9FF\">perform_later<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">id<\/span><span style=\"color: #ECEFF4\">:,<\/span><span style=\"color: #D8DEE9FF\"> post_id<\/span><span style=\"color: #ECEFF4\">:,<\/span><span style=\"color: #D8DEE9FF\"> attempt<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> attempt <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">end<\/span><\/span>\n<span class=\"line\"\/><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-4f13cfc4\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-bd69da8b\"><h3 class=\"uagb-heading-text\"><strong><strong>Commencez \u00e0 traduire votre application Rails<\/strong><\/strong><\/h3><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-bb9e78d5\"><p class=\"uagb-heading-text\">Vous avez d\u00e9sormais tout ce qu\u2019il vous faut pour int\u00e9grer l\u2019API de traduction de PTC. Cr\u00e9ez un compte gratuit et traduisez 20\u202f000 mots vers 2 langues sans frais. <\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-buttons uagb-buttons__outer-wrap uagb-btn__default-btn uagb-btn-tablet__default-btn uagb-btn-mobile__default-btn uagb-block-b69278b3\"><div class=\"uagb-buttons__wrap uagb-buttons-layout-wrap \">\n<div class=\"wp-block-uagb-buttons-child uagb-buttons__outer-wrap uagb-block-bdaafad6 wp-block-button\"><div class=\"uagb-button__wrapper\"><a class=\"uagb-buttons-repeater wp-block-button__link\" aria-label=\"\" href=\"https:\/\/app.ptc.wpml.org\/users\/sign_up\" rel=\"follow noopener\" target=\"_self\" role=\"button\"><div class=\"uagb-button__link\">Commencer votre essai gratuit<\/div><\/a><\/div><\/div>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container otp uag-hide-tab uag-hide-mob uagb-layout-flex uagb-block-e306e24e\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-a4c24409\"><p class=\"uagb-heading-text\">Sur cette page<\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-889b1ee5\"><p class=\"uagb-heading-text\"><a href=\"#how-to-translate-po-files\"><\/a><a href=\"#before-starting\">Avant de commencer<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-c8ed9511\"><p class=\"uagb-heading-text\"><a href=\"#how-to-translate-po-files\"><\/a><a href=\"#set-up-ptc\">Configurer PTC et obtenir votre jeton d\u2019API<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-99e44a2f\"><p class=\"uagb-heading-text\"><a href=\"#how-to-translate-po-files\"><\/a><a href=\"https:\/\/docs.google.com\/document\/d\/1Pf6zHD8PljDenGlcoat-gIKtTLJigYTMLjUXq-KRfQg\/edit?tab=t.c6wjtl4b5e0j#heading=h.tykax22wh0u\"><\/a><a href=\"#api-endpoints\">Endpoints d\u2019API pour traduire du contenu dynamique<br\/><\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-fabb3c95\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-83f5f89c\"><p class=\"uagb-heading-text\"><a href=\"#send-content-for-translation\">Envoyer du contenu \u00e0 traduire<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-6e2782c9\"><p class=\"uagb-heading-text\"><a href=\"#check-the-translation-status\">V\u00e9rifier le statut de la traduction<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-f18e849a\"><p class=\"uagb-heading-text\"><a href=\"#retrieve-translations\">R\u00e9cup\u00e9rer les traductions<\/a><\/p><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-a02fa26b\"><p class=\"uagb-heading-text\"><a href=\"#get-notified-when-translations-are-ready\">Recevoir une notification lorsque les traductions sont pr\u00eates<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-cc0cd036\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-505f6771\"><p class=\"uagb-heading-text\"><a href=\"#using-callbacks\">Utiliser des callbacks (recommand\u00e9)<\/a><\/p><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-dec77b8e\"><p class=\"uagb-heading-text\"><a href=\"#polling-the-translation-status\">Interroger le statut de la traduction (alternative)<\/a><\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR). Cela inclut les articles de blog, les informations produit et tout texte stock\u00e9 dans votre base de donn\u00e9es. Ci-dessous, nous vous guidons \u00e0 travers le processus de traduction de contenu dynamique dans des applications Rails en deux parties : Avant de commencer Ce [&hellip;]<\/p>\n","protected":false},"parent":0,"menu_order":24,"template":"","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"normal-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"resources":[42],"class_list":["post-17355","documentation","type-documentation","status-publish","hentry","resources-guides-du-developpeur"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC - PTC<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR).\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/\" \/>\n<meta property=\"og:site_name\" content=\"PTC\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-20T09:56:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-featured-site-image.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\\\/\",\"url\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\\\/\",\"name\":\"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC - PTC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/#website\"},\"datePublished\":\"2026-01-22T10:05:25+00:00\",\"dateModified\":\"2026-03-20T09:56:42+00:00\",\"description\":\"D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR).\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/page-daccueil\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/documentation\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/\",\"name\":\"PTC\",\"description\":\"Private Translation Cloud\",\"publisher\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/#organization\",\"name\":\"PTC\",\"url\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ptc.wpml.org\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/logo-light.svg\",\"contentUrl\":\"https:\\\/\\\/ptc.wpml.org\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/logo-light.svg\",\"width\":300,\"height\":139,\"caption\":\"PTC\"},\"image\":{\"@id\":\"https:\\\/\\\/ptc.wpml.org\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC - PTC","description":"D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR).","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC","og_description":"D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR).","og_url":"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/","og_site_name":"PTC","article_modified_time":"2026-03-20T09:56:42+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-featured-site-image.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/","url":"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/","name":"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC - PTC","isPartOf":{"@id":"https:\/\/ptc.wpml.org\/fr\/#website"},"datePublished":"2026-01-22T10:05:25+00:00","dateModified":"2026-03-20T09:56:42+00:00","description":"D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR).","breadcrumb":{"@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ptc.wpml.org\/fr\/documentation\/comment-traduire-du-contenu-dynamique-dans-rails-a-laide-de-lapi-ptc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/ptc.wpml.org\/fr\/page-daccueil\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/ptc.wpml.org\/fr\/documentation\/"},{"@type":"ListItem","position":3,"name":"Comment traduire du contenu dynamique dans Rails avec l\u2019API PTC"}]},{"@type":"WebSite","@id":"https:\/\/ptc.wpml.org\/fr\/#website","url":"https:\/\/ptc.wpml.org\/fr\/","name":"PTC","description":"Private Translation Cloud","publisher":{"@id":"https:\/\/ptc.wpml.org\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ptc.wpml.org\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/ptc.wpml.org\/fr\/#organization","name":"PTC","url":"https:\/\/ptc.wpml.org\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/ptc.wpml.org\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2023\/11\/logo-light.svg","contentUrl":"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2023\/11\/logo-light.svg","width":300,"height":139,"caption":"PTC"},"image":{"@id":"https:\/\/ptc.wpml.org\/fr\/#\/schema\/logo\/image\/"}}]}},"spectra_custom_meta":{"_wpv_contains_gutenberg_views":[""],"ast-main-header-display":[""],"ast-hfb-above-header-display":[""],"ast-hfb-below-header-display":[""],"ast-hfb-mobile-header-display":[""],"adv-header-id-meta":[""],"footer-sml-layout":[""],"stick-header-meta":[""],"header-main-stick-meta":[""],"header-above-stick-meta":[""],"header-below-stick-meta":[""],"site-post-title":[""],"site-sidebar-layout":["default"],"site-content-layout":[""],"ast-featured-img":[""],"ast-breadcrumbs-content":[""],"theme-transparent-header-meta":[""],"ast-banner-title-visibility":[""],"ast-global-header-display":[""],"ast-site-content-layout":["normal-width-container"],"site-content-style":["default"],"site-sidebar-style":["default"],"_top_nav_excluded":[""],"_cms_nav_minihome":[""],"_wp_page_template":["default"],"_yoast_indexnow_last_ping":["1769076454"],"_last_translation_edit_mode":["translation-editor"],"_wpml_word_count":["1866"],"_yoast_wpseo_metadesc":["D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR)."],"cmplz_hide_cookiebanner":[""],"wpcf-order":["1"],"_uag_page_assets":["a:9:{s:3:\"css\";s:73656:\".wp-block-uagb-container.uagb-block-7d0a9c8b .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-7d0a9c8b .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-7d0a9c8b .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-7d0a9c8b .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-7d0a9c8b .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-7d0a9c8b{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-block-7d0a9c8b{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top: 64px !important;margin-bottom: 0px !important;margin-left: 0px !important;margin-right: 0px !important;overflow: visible;order: initial;border-color: inherit;flex-direction: row;align-items: flex-start;justify-content: center;flex-wrap: nowrap;row-gap: 0px;column-gap: 64px;max-width: 100% !important;}.wp-block-uagb-container.uagb-block-ec2c2fb6 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-ec2c2fb6 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-ec2c2fb6 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-ec2c2fb6 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-ec2c2fb6 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-ec2c2fb6{max-width: 75%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-ec2c2fb6 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: flex-start;flex-wrap: nowrap;row-gap: 0px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-ec2c2fb6{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-color: inherit;flex-direction: column;align-items: center;justify-content: flex-start;flex-wrap: nowrap;row-gap: 0px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-480d8777 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-480d8777 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-480d8777 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-480d8777 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-480d8777 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-480d8777{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-block-480d8777{box-shadow: 0px 0px   #00000070 ;padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 0px !important;margin-bottom: 36px !important;margin-left: 0px !important;margin-right: 0px !important;overflow: visible;order: initial;border-top-left-radius: 20px;border-top-right-radius: 20px;border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;border-style: none;border-color: inherit;background-color: rgba(205,189,226,0.1);;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 0px;column-gap: 0px;max-width: 100% !important;}.uagb-block-60bbf702.wp-block-uagb-buttons.uagb-buttons__outer-wrap .uagb-buttons__wrap {gap: 10px;}.uagb-block-60bbf702.uagb-buttons__outer-wrap .uagb-buttons__wrap {justify-content: left;align-items: center;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link:hover{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-buttons-repeater.wp-block-button__link:hover{border-color: #333;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-buttons-repeater.wp-block-button__link:focus{border-color: #333;}.wp-block-uagb-buttons .uagb-block-5ea4a834.wp-block-button.is-style-outline .uagb-button__wrapper .wp-block-button__link.uagb-buttons-repeater:hover{border-color: #333;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-buttons-repeater .uagb-button__icon > svg{width: 15px;height: 15px;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-buttons-repeater .uagb-button__icon-position-after{margin-left: 8px;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-buttons-repeater .uagb-button__icon-position-before{margin-right: 8px;}.wp-block-uagb-buttons .uagb-block-5ea4a834 .uagb-button__link{text-transform: normal;text-decoration: none;}.uagb-block-39ff3b72.wp-block-uagb-image-gallery{padding:    ;visibility: hidden;}.uagb-block-39ff3b72 .spectra-image-gallery__control-arrows svg{fill: #007cba;}.uagb-block-39ff3b72 .spectra-image-gallery__control-arrows--carousel{border-top-left-radius: 50px;border-top-right-radius: 50px;border-bottom-left-radius: 50px;border-bottom-right-radius: 50px;border-style: none;}.uagb-block-39ff3b72 .spectra-image-gallery__control-arrows--carousel.slick-prev{left: -24px;}.uagb-block-39ff3b72 .spectra-image-gallery__control-arrows--carousel.slick-next{right: -24px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel ul.slick-dots{top: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel ul.slick-dots li button:before{color: #007cba;}.uagb-block-39ff3b72 .spectra-image-gallery__control-dots li button::before{color: #007cba;}.uagb-block-39ff3b72 .spectra-image-gallery__control-loader{margin-top: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__control-loader div{width: 18px;height: 18px;border-radius: 100%;padding: 0;}.uagb-block-39ff3b72 .spectra-image-gallery__control-button{margin-top: 8px;padding:    ;font-style: normal;text-decoration: none;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--grid{grid-gap: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--isogrid{margin: -4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--isogrid .spectra-image-gallery__media-wrapper--isotope{padding: 4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--masonry{margin: -4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--masonry .spectra-image-gallery__media-wrapper--isotope{padding: 4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel{margin-bottom: 8px !important;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel .spectra-image-gallery__media-wrapper{padding: 0px 4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel .slick-list{margin: 0px -4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--tiled{grid-gap: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__media{border-top-left-radius: 20px;border-top-right-radius: 20px;border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;border-color: rgba(206,191,227,0.18);box-shadow: 0px 0px   ;}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media{box-shadow: 0px 0px   ;}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media{box-shadow: 0px 0px   ;}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-blurrer{-webkit-backdrop-filter: none;backdrop-filter: none;box-shadow: 0 0 transparent;}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media-thumbnail-blurrer{-webkit-backdrop-filter: none;backdrop-filter: none;box-shadow: 0 0 transparent;}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media-thumbnail-blurrer{-webkit-backdrop-filter: none;backdrop-filter: none;box-shadow: 0 0 transparent;}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption-wrapper--overlay{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media-thumbnail-caption-wrapper--overlay{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media-thumbnail-caption-wrapper--overlay{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption-wrapper--bar-inside{-webkit-align-items: flex-end;align-items: flex-end;-webkit-justify-content: center;justify-content: center;}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption a{color: rgba(255,255,255,1);}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption{color: rgba(255,255,255,1);text-align: center;font-style: normal;text-decoration: none;padding: 8px 8px 8px 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption--overlay{-webkit-align-items: flex-end;align-items: flex-end;-webkit-justify-content: center;justify-content: center;}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption--bar-inside{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media-thumbnail-caption--bar-inside{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media-thumbnail-caption--bar-inside{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption--bar-outside{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media-thumbnail-caption--bar-outside{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media-thumbnail-caption--bar-outside{background-color: rgba(0,0,0,0.75);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media-thumbnail-caption{color: rgba(255,255,255,1);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media-thumbnail-caption{color: rgba(255,255,255,1);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media-thumbnail-caption a{color: rgba(255,255,255,1);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media-thumbnail-caption a{color: rgba(255,255,255,1);}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox{background-color: rgba(0,0,0,0.75);backdrop-filter: blur( 5px);}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--caption{color: rgba(255,255,255,1);background: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,1));min-height: 50px;font-style: normal;text-decoration: none;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--thumbnails-wrapper{background-color: transparent;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--count{top: 10px;left: 10px;color: rgba(255,255,255,1);font-weight: normal;font-size: calc(24px * 3 \/ 4 );line-height: calc(24px * 3 \/ 4 );}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--close{top: 10px;right: 10px;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--close svg{width: 24px;height: 24px;fill: rgba(255,255,255,1);}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main .swiper-button-prev{left: 10px;color: rgba(255,255,255,1);}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main .swiper-button-next{right: 10px;color: rgba(255,255,255,1);}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main.swiper-rtl .swiper-button-prev{right: 10px;left: auto;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main.swiper-rtl .swiper-button-next{left: 10px;right: auto;}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail{-webkit-filter: none;filter: none;transform: scale3d(1.005, 1.005, 1.005);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:hover .spectra-image-gallery__media-thumbnail{-webkit-filter: none;filter: none;transform: scale3d(1.1, 1.1, 1.1);}.uagb-block-39ff3b72 .spectra-image-gallery__media-wrapper:focus-visible .spectra-image-gallery__media-thumbnail{-webkit-filter: none;filter: none;transform: scale3d(1.1, 1.1, 1.1);}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption-wrapper{margin-top: 0px;}.uagb-block-39ff3b72 .spectra-image-gallery__iso-ref-wrapper{overflow: auto;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel .slick-dots{margin-bottom: 30px !important;}.spectra-touch-device.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption,.spectra-touch-device.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption-wrapper{transition:none !important;-webkit-backface-visibility:hidden;backface-visibility:hidden;}.spectra-touch-device.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption-wrapper--overlay,.spectra-touch-device.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption--bar-inside{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);}@media(hover:none),(pointer:coarse){.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption,.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption-wrapper{transition:none !important;-webkit-backface-visibility:hidden;backface-visibility:hidden;}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption-wrapper--overlay,.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption--bar-inside{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);}}.wp-block-uagb-container.uagb-block-5fd536df .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-5fd536df .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-5fd536df .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-5fd536df .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-5fd536df .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5fd536df{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5fd536df > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: row;align-items: center;justify-content: flex-start;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-5fd536df{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-color: inherit;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-5fd536df.wp-block-uagb-container > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not( .spectra-container-link-overlay ):not(.spectra-image-gallery__control-lightbox):not(.wp-block-uagb-lottie):not(.uagb-container-inner-blocks-wrap){width: auto !important;}.wp-block-uagb-container.uagb-block-5fd536df.wp-block-uagb-container > .uagb-container-inner-blocks-wrap > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not(.spectra-image-gallery__control-lightbox){width: auto !important;}.wp-block-uagb-container.uagb-block-d8efc734 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-d8efc734 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-d8efc734 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-d8efc734 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-d8efc734 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-d8efc734{max-width: 10%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-d8efc734 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-d8efc734{box-shadow: 0px 0px   #00000070 ;padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-left-radius: 40px;border-top-right-radius: 40px;border-bottom-left-radius: 40px;border-bottom-right-radius: 40px;border-style: none;border-color: inherit;background-color: var(--ast-global-color-4);;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-advanced-heading.uagb-block-4a10c111.wp-block-uagb-advanced-heading .uagb-heading-text{color: var(--ast-global-color-2);}.wp-block-uagb-advanced-heading.uagb-block-4a10c111.wp-block-uagb-advanced-heading {text-align: center;padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-4a10c111.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-4a10c111.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-4a10c111.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-4a10c111.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-container.uagb-block-a2ef876d .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-a2ef876d .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-a2ef876d .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-a2ef876d .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-a2ef876d .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-a2ef876d{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-a2ef876d > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 0px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-a2ef876d{box-shadow: 0px 0px   #00000070 ;padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 32px !important;margin-bottom: 48px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-width: 1px;border-left-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-top-left-radius: 20px;border-top-right-radius: 20px;border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;border-style: solid;border-color: #d4b4fd;row-gap: 0px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-603527d0 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-603527d0 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-603527d0 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-603527d0 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-603527d0 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-603527d0{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-603527d0 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: row;align-items: center;justify-content: flex-start;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-603527d0{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-color: inherit;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-603527d0.wp-block-uagb-container > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not( .spectra-container-link-overlay ):not(.spectra-image-gallery__control-lightbox):not(.wp-block-uagb-lottie):not(.uagb-container-inner-blocks-wrap){width: auto !important;}.wp-block-uagb-container.uagb-block-603527d0.wp-block-uagb-container > .uagb-container-inner-blocks-wrap > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not(.spectra-image-gallery__control-lightbox){width: auto !important;}.wp-block-uagb-container.uagb-block-c1b6d94c .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-c1b6d94c .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-c1b6d94c .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-c1b6d94c .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-c1b6d94c .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-c1b6d94c{max-width: 10%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-c1b6d94c > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-c1b6d94c{box-shadow: 0px 0px   #00000070 ;padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-left-radius: 40px;border-top-right-radius: 40px;border-bottom-left-radius: 40px;border-bottom-right-radius: 40px;border-style: none;border-color: inherit;background-color: var(--ast-global-color-4);;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-advanced-heading.uagb-block-68e36a9a.wp-block-uagb-advanced-heading .uagb-heading-text{color: var(--ast-global-color-2);}.wp-block-uagb-advanced-heading.uagb-block-68e36a9a.wp-block-uagb-advanced-heading {text-align: center;padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-68e36a9a.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-68e36a9a.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-68e36a9a.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-68e36a9a.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-container.uagb-block-70d21a2f .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-70d21a2f .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-70d21a2f .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-70d21a2f .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-70d21a2f .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-70d21a2f{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-70d21a2f > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 0px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-70d21a2f{box-shadow: 0px 0px   #00000070 ;padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 32px !important;margin-bottom: 48px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-width: 1px;border-left-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-top-left-radius: 20px;border-top-right-radius: 20px;border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;border-style: solid;border-color: #d4b4fd;row-gap: 0px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-3b93f13f .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-3b93f13f .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-3b93f13f .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-3b93f13f .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-3b93f13f .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-3b93f13f{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-3b93f13f > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: row;align-items: center;justify-content: flex-start;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-3b93f13f{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-color: inherit;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-3b93f13f.wp-block-uagb-container > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not( .spectra-container-link-overlay ):not(.spectra-image-gallery__control-lightbox):not(.wp-block-uagb-lottie):not(.uagb-container-inner-blocks-wrap){width: auto !important;}.wp-block-uagb-container.uagb-block-3b93f13f.wp-block-uagb-container > .uagb-container-inner-blocks-wrap > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not(.spectra-image-gallery__control-lightbox){width: auto !important;}.wp-block-uagb-container.uagb-block-1883f0e0 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-1883f0e0 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-1883f0e0 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-1883f0e0 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-1883f0e0 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-1883f0e0{max-width: 10%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-1883f0e0 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-1883f0e0{box-shadow: 0px 0px   #00000070 ;padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-left-radius: 40px;border-top-right-radius: 40px;border-bottom-left-radius: 40px;border-bottom-right-radius: 40px;border-style: none;border-color: inherit;background-color: var(--ast-global-color-4);;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 20px;column-gap: 20px;}.wp-block-uagb-advanced-heading.uagb-block-357159f5.wp-block-uagb-advanced-heading .uagb-heading-text{color: var(--ast-global-color-2);}.wp-block-uagb-advanced-heading.uagb-block-357159f5.wp-block-uagb-advanced-heading {text-align: center;padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-357159f5.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-357159f5.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-357159f5.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-357159f5.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-container.uagb-block-4f13cfc4 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-4f13cfc4 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-4f13cfc4 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-4f13cfc4 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-4f13cfc4 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-4f13cfc4{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-4f13cfc4 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 24px;column-gap: 20px;}.wp-block-uagb-container.uagb-block-4f13cfc4{box-shadow: 0px 0px   #00000070 ;padding-top: 48px;padding-bottom: 48px;padding-left: 48px;padding-right: 48px;margin-top: 48px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-width: 1px;border-left-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-top-left-radius: 20px;border-top-right-radius: 20px;border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;border-style: solid;border-color: rgba(205,189,226,0.1);background-repeat: no-repeat;background-position: 50% 0%;background-size: cover;background-attachment: scroll;background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2024\/02\/Hero-bg-min.png);background-clip: padding-box;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 24px;column-gap: 20px;}.wp-block-uagb-advanced-heading.uagb-block-bd69da8b.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-bd69da8b.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-bd69da8b.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-bd69da8b.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-bb9e78d5.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-bb9e78d5.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-bb9e78d5.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-bb9e78d5.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.uagb-block-b69278b3.wp-block-uagb-buttons.uagb-buttons__outer-wrap .uagb-buttons__wrap {gap: 10px;}.uagb-block-b69278b3.uagb-buttons__outer-wrap .uagb-buttons__wrap {justify-content: left;align-items: center;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-button__wrapper  .uagb-buttons-repeater.wp-block-button__link:hover{box-shadow: 0px 0px 0 #00000026;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-buttons-repeater.wp-block-button__link:hover{border-color: #333;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-buttons-repeater.wp-block-button__link:focus{border-color: #333;}.wp-block-uagb-buttons .uagb-block-bdaafad6.wp-block-button.is-style-outline .uagb-button__wrapper .wp-block-button__link.uagb-buttons-repeater:hover{border-color: #333;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-buttons-repeater .uagb-button__icon > svg{width: 15px;height: 15px;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-buttons-repeater .uagb-button__icon-position-after{margin-left: 8px;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-buttons-repeater .uagb-button__icon-position-before{margin-right: 8px;}.wp-block-uagb-buttons .uagb-block-bdaafad6 .uagb-button__link{text-transform: normal;text-decoration: none;}.wp-block-uagb-container.uagb-block-e306e24e .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-e306e24e .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-e306e24e .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-e306e24e .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-e306e24e .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-e306e24e{max-width: 25%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-e306e24e > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 0px;column-gap: 0px;}.wp-block-uagb-container.uagb-block-e306e24e{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;overflow: visible;order: initial;border-color: inherit;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 0px;column-gap: 0px;}.wp-block-uagb-advanced-heading.uagb-block-a4c24409.wp-block-uagb-advanced-heading .uagb-heading-text{color: var(--ast-global-color-3);}.wp-block-uagb-advanced-heading.uagb-block-a4c24409.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 20px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-a4c24409.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-a4c24409.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-a4c24409.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-a4c24409.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-a4c24409 .uagb-heading-text{font-weight: 500;font-size: 20px;}.wp-block-uagb-advanced-heading.uagb-block-889b1ee5.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-889b1ee5.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-889b1ee5.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-889b1ee5.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-889b1ee5.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-889b1ee5 .uagb-heading-text{font-size: 15px;}.wp-block-uagb-advanced-heading.uagb-block-c8ed9511.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-c8ed9511.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-c8ed9511.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-c8ed9511.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-c8ed9511.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-c8ed9511 .uagb-heading-text{font-size: 15px;}.wp-block-uagb-advanced-heading.uagb-block-99e44a2f.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-99e44a2f.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-99e44a2f.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-99e44a2f.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-99e44a2f.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-99e44a2f .uagb-heading-text{font-size: 15px;}.wp-block-uagb-container.uagb-block-fabb3c95 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-fabb3c95 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-fabb3c95 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-fabb3c95 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-fabb3c95 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-fabb3c95{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-fabb3c95 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 16px;column-gap: 0px;}.wp-block-uagb-container.uagb-block-fabb3c95{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 24px;padding-right: 24px;margin-top: 0px !important;margin-bottom: 16px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-width: 0px;border-left-width: 1px;border-right-width: 0px;border-bottom-width: 0px;border-style: solid;border-color: rgba(205,189,226,0.2);flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 16px;column-gap: 0px;}.wp-block-uagb-advanced-heading.uagb-block-83f5f89c.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-83f5f89c.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-83f5f89c.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-83f5f89c.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-83f5f89c.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-83f5f89c .uagb-heading-text{font-size: 15px;}.wp-block-uagb-advanced-heading.uagb-block-6e2782c9.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-6e2782c9.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-6e2782c9.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-6e2782c9.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-6e2782c9.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-6e2782c9 .uagb-heading-text{font-size: 15px;}.wp-block-uagb-advanced-heading.uagb-block-f18e849a.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-f18e849a.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-f18e849a.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-f18e849a.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-f18e849a.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-f18e849a .uagb-heading-text{font-size: 15px;}.wp-block-uagb-advanced-heading.uagb-block-a02fa26b.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-a02fa26b.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-a02fa26b.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-a02fa26b.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-a02fa26b.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-a02fa26b .uagb-heading-text{font-size: 15px;}.wp-block-uagb-container.uagb-block-cc0cd036 .uagb-container__shape-top svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-cc0cd036 .uagb-container__shape.uagb-container__shape-top .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-cc0cd036 .uagb-container__shape-bottom svg{width: calc( 100% + 1.3px );}.wp-block-uagb-container.uagb-block-cc0cd036 .uagb-container__shape.uagb-container__shape-bottom .uagb-container__shape-fill{fill: rgba(51,51,51,1);}.wp-block-uagb-container.uagb-block-cc0cd036 .uagb-container__video-wrap video{opacity: 1;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-cc0cd036{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-cc0cd036 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1280px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 16px;column-gap: 0px;}.wp-block-uagb-container.uagb-block-cc0cd036{box-shadow: 0px 0px   #00000070 ;padding-top: 0px;padding-bottom: 0px;padding-left: 24px;padding-right: 24px;margin-top: 0px !important;margin-bottom: 16px !important;margin-left: 0px;margin-right: 0px;overflow: visible;order: initial;border-top-width: 0px;border-left-width: 1px;border-right-width: 0px;border-bottom-width: 0px;border-style: solid;border-color: rgba(205,189,226,0.2);flex-direction: column;align-items: center;justify-content: center;flex-wrap: nowrap;row-gap: 16px;column-gap: 0px;}.wp-block-uagb-advanced-heading.uagb-block-505f6771.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-505f6771.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-505f6771.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-505f6771.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-505f6771.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-505f6771 .uagb-heading-text{font-size: 15px;}.wp-block-uagb-advanced-heading.uagb-block-dec77b8e.wp-block-uagb-advanced-heading {margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.wp-block-uagb-advanced-heading.uagb-block-dec77b8e.wp-block-uagb-advanced-heading .uagb-desc-text{margin-bottom: 15px;}.wp-block-uagb-advanced-heading.uagb-block-dec77b8e.wp-block-uagb-advanced-heading .uagb-highlight{font-style: normal;font-weight: Default;background: #007cba;color: #fff;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-dec77b8e.wp-block-uagb-advanced-heading .uagb-highlight::-moz-selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-dec77b8e.wp-block-uagb-advanced-heading .uagb-highlight::selection{color: #fff;background: #007cba;-webkit-text-fill-color: #fff;}.wp-block-uagb-advanced-heading.uagb-block-dec77b8e .uagb-heading-text{font-size: 15px;}@media only screen and (max-width: 976px) {.wp-block-uagb-container.uagb-is-root-container .uagb-block-7d0a9c8b{width: 100%;}.wp-block-uagb-container.uagb-block-7d0a9c8b{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top: 64px !important;margin-bottom: 0px !important;order: initial;flex-wrap: wrap-reverse;max-width:  !important;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-ec2c2fb6{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-ec2c2fb6 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-ec2c2fb6{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-480d8777{width: 100%;}.wp-block-uagb-container.uagb-block-480d8777{padding-top: 40px;padding-bottom: 40px;padding-left: 40px;padding-right: 40px;margin-top: 0px !important;margin-bottom: 36px !important;order: initial;border-style: none;background-color: rgba(205,189,226,0.1);;max-width:  !important;}.uagb-block-60bbf702.uagb-buttons__outer-wrap .uagb-buttons__wrap {justify-content: left;align-items: center;}.uagb-block-60bbf702.uagb-buttons__outer-wrap .uagb-buttons__wrap .wp-block-button{width: auto;}.uagb-block-39ff3b72.wp-block-uagb-image-gallery{padding:    ;}.uagb-block-39ff3b72 .spectra-image-gallery__control-arrows--carousel{border-style: none;}.uagb-block-39ff3b72 .spectra-image-gallery__control-button{padding:    ;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--grid{grid-gap: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--isogrid{margin: -4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--isogrid .spectra-image-gallery__media-wrapper--isotope{padding: 4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--masonry{margin: -4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--masonry .spectra-image-gallery__media-wrapper--isotope{padding: 4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel .spectra-image-gallery__media-wrapper{padding: 0px 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel .slick-list{margin: 0px -8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--tiled{grid-gap: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__media{border-color: rgba(206,191,227,0.18);}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption{padding: 8px 8px 8px 8px;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main.swiper-rtl .swiper-button-prev{left: auto;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main.swiper-rtl .swiper-button-next{right: auto;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5fd536df{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5fd536df > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: flex-start;row-gap: 12px;}.wp-block-uagb-container.uagb-block-5fd536df{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;row-gap: 12px;}.wp-block-uagb-container.uagb-block-5fd536df.wp-block-uagb-container > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not( .spectra-container-link-overlay ):not(.spectra-image-gallery__control-lightbox):not(.wp-block-uagb-lottie):not(.uagb-container-inner-blocks-wrap){width: auto !important;}.wp-block-uagb-container.uagb-block-5fd536df.wp-block-uagb-container > .uagb-container-inner-blocks-wrap > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not(.spectra-image-gallery__control-lightbox){width: auto !important;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-d8efc734{max-width: 17%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-d8efc734 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;row-gap: 10px;}.wp-block-uagb-container.uagb-block-d8efc734{padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: var(--ast-global-color-4);;row-gap: 10px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-a2ef876d{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-a2ef876d > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-a2ef876d{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 32px !important;margin-bottom: 48px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: #d4b4fd;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-603527d0{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-603527d0 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: flex-start;row-gap: 12px;}.wp-block-uagb-container.uagb-block-603527d0{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;row-gap: 12px;}.wp-block-uagb-container.uagb-block-603527d0.wp-block-uagb-container > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not( .spectra-container-link-overlay ):not(.spectra-image-gallery__control-lightbox):not(.wp-block-uagb-lottie):not(.uagb-container-inner-blocks-wrap){width: auto !important;}.wp-block-uagb-container.uagb-block-603527d0.wp-block-uagb-container > .uagb-container-inner-blocks-wrap > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not(.spectra-image-gallery__control-lightbox){width: auto !important;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-c1b6d94c{max-width: 17%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-c1b6d94c > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;row-gap: 10px;}.wp-block-uagb-container.uagb-block-c1b6d94c{padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: var(--ast-global-color-4);;row-gap: 10px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-70d21a2f{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-70d21a2f > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-70d21a2f{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 32px !important;margin-bottom: 48px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: #d4b4fd;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-3b93f13f{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-3b93f13f > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;flex-direction: column;align-items: flex-start;row-gap: 12px;}.wp-block-uagb-container.uagb-block-3b93f13f{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;row-gap: 12px;}.wp-block-uagb-container.uagb-block-3b93f13f.wp-block-uagb-container > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not( .spectra-container-link-overlay ):not(.spectra-image-gallery__control-lightbox):not(.wp-block-uagb-lottie):not(.uagb-container-inner-blocks-wrap){width: auto !important;}.wp-block-uagb-container.uagb-block-3b93f13f.wp-block-uagb-container > .uagb-container-inner-blocks-wrap > *:not( .wp-block-uagb-column ):not( .wp-block-uagb-section ):not( .uagb-container__shape ):not( .uagb-container__video-wrap ):not( .uagb-slider-container ):not(.spectra-image-gallery__control-lightbox){width: auto !important;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-1883f0e0{max-width: 17%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-1883f0e0 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;row-gap: 10px;}.wp-block-uagb-container.uagb-block-1883f0e0{padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: var(--ast-global-color-4);;row-gap: 10px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-4f13cfc4{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-4f13cfc4 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-4f13cfc4{padding-top: 48px;padding-bottom: 48px;padding-left: 48px;padding-right: 48px;margin-top: 48px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.1);background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2024\/02\/Hero-bg-min.png);background-clip: padding-box;}.uagb-block-b69278b3.uagb-buttons__outer-wrap .uagb-buttons__wrap {justify-content: left;align-items: center;}.uagb-block-b69278b3.uagb-buttons__outer-wrap .uagb-buttons__wrap .wp-block-button{width: auto;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-e306e24e{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-e306e24e > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-e306e24e{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-fabb3c95{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-fabb3c95 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-fabb3c95{padding-top: 0px;padding-bottom: 0px;padding-left: 24px;padding-right: 24px;margin-top: 0px !important;margin-bottom: 16px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.2);}.wp-block-uagb-container.uagb-is-root-container .uagb-block-cc0cd036{width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-cc0cd036 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 1024px);max-width: var(--inner-content-custom-width);width: 100%;}.wp-block-uagb-container.uagb-block-cc0cd036{padding-top: 0px;padding-bottom: 0px;padding-left: 24px;padding-right: 24px;margin-top: 0px !important;margin-bottom: 16px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.2);}}@media only screen and (max-width: 767px) {.wp-block-uagb-container.uagb-is-root-container .uagb-block-7d0a9c8b{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-block-7d0a9c8b{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top: 64px !important;margin-bottom: 0px !important;order: initial;flex-wrap: wrap-reverse;max-width: 100% !important;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-ec2c2fb6{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-ec2c2fb6 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-ec2c2fb6{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-480d8777{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-block-480d8777{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 0px !important;margin-bottom: 36px !important;order: initial;border-style: none;background-color: rgba(205,189,226,0.1);;flex-wrap: wrap;max-width: 100% !important;}.uagb-block-60bbf702.uagb-buttons__outer-wrap .uagb-buttons__wrap{width: 100%;}.uagb-block-60bbf702.uagb-buttons__outer-wrap .uagb-buttons__wrap .wp-block-button {width: 100%;}.uagb-block-39ff3b72.wp-block-uagb-image-gallery{padding:    ;}.uagb-block-39ff3b72 .spectra-image-gallery__control-arrows--carousel{border-style: none;}.uagb-block-39ff3b72 .spectra-image-gallery__control-button{padding:    ;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--grid{grid-gap: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--isogrid{margin: -4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--isogrid .spectra-image-gallery__media-wrapper--isotope{padding: 4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--masonry{margin: -4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--masonry .spectra-image-gallery__media-wrapper--isotope{padding: 4px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel .spectra-image-gallery__media-wrapper{padding: 0px 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--carousel .slick-list{margin: 0px -8px;}.uagb-block-39ff3b72 .spectra-image-gallery__layout--tiled .spectra-image-gallery__media-wrapper{grid-gap: 8px;}.uagb-block-39ff3b72 .spectra-image-gallery__media{border-color: rgba(206,191,227,0.18);}.uagb-block-39ff3b72 .spectra-image-gallery__media-thumbnail-caption{padding: 8px 8px 8px 8px;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main.swiper-rtl .swiper-button-prev{left: auto;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main.swiper-rtl .swiper-button-next{right: auto;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main .swiper-button-prev::after{font-size: 24px;}.uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main .swiper-button-next::after{font-size: 24px;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-5fd536df{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-5fd536df > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-5fd536df{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-d8efc734{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-d8efc734 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-d8efc734{padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: var(--ast-global-color-4);;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-a2ef876d{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-a2ef876d > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-a2ef876d{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 32px !important;margin-bottom: 48px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: #d4b4fd;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-603527d0{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-603527d0 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-603527d0{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-c1b6d94c{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-c1b6d94c > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-c1b6d94c{padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: var(--ast-global-color-4);;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-70d21a2f{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-70d21a2f > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-70d21a2f{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 32px !important;margin-bottom: 48px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: #d4b4fd;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-3b93f13f{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-3b93f13f > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-3b93f13f{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-1883f0e0{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-1883f0e0 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-1883f0e0{padding-top: 4px;padding-bottom: 4px;padding-left: 16px;padding-right: 16px;margin-top: 0px !important;margin-bottom: 20px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: none;background-color: var(--ast-global-color-4);;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-4f13cfc4{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-4f13cfc4 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-4f13cfc4{padding-top: 24px;padding-bottom: 24px;padding-left: 24px;padding-right: 24px;margin-top: 12px !important;margin-bottom: 0px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.1);background-image: url(https:\/\/ptc.wpml.org\/wp-content\/uploads\/2024\/02\/Hero-bg-min.png);background-clip: padding-box;flex-wrap: wrap;}.uagb-block-b69278b3.uagb-buttons__outer-wrap .uagb-buttons__wrap{width: 100%;}.uagb-block-b69278b3.uagb-buttons__outer-wrap .uagb-buttons__wrap .wp-block-button {width: 100%;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-e306e24e{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-e306e24e > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-e306e24e{padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;margin-top:  !important;margin-bottom:  !important;order: initial;flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-fabb3c95{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-fabb3c95 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-fabb3c95{padding-top: 0px;padding-bottom: 0px;padding-left: 24px;padding-right: 24px;margin-top: 0px !important;margin-bottom: 16px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.2);flex-wrap: wrap;}.wp-block-uagb-container.uagb-is-root-container .uagb-block-cc0cd036{max-width: 100%;width: 100%;}.wp-block-uagb-container.uagb-is-root-container.alignfull.uagb-block-cc0cd036 > .uagb-container-inner-blocks-wrap{--inner-content-custom-width: min( 100%, 767px);max-width: var(--inner-content-custom-width);width: 100%;flex-wrap: wrap;}.wp-block-uagb-container.uagb-block-cc0cd036{padding-top: 0px;padding-bottom: 0px;padding-left: 24px;padding-right: 24px;margin-top: 0px !important;margin-bottom: 16px !important;margin-left: 0px;margin-right: 0px;order: initial;border-style: solid;border-color: rgba(205,189,226,0.2);flex-wrap: wrap;}}\";s:2:\"js\";s:29762:\"document.addEventListener(\"DOMContentLoaded\", function(){ window.addEventListener( 'load', function() {\n\tUAGBButtonChild.init( '.uagb-block-5ea4a834' );\n});\n\t\t\t\twindow.addEventListener( 'DOMContentLoaded', function() {\n\t\t\t\t\tconst scope = document.querySelector( '.uagb-block-39ff3b72' );\n\t\t\t\t\tif ( scope ){\n\t\t\t\t\t\tif ( scope.children[0].classList.contains( 'spectra-image-gallery__layout--masonry' ) ) {\n\t\t\t\t\t\t\t\/\/ Add timeout for the images to load.\n\t\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\t\tconst element = scope.querySelector( '.spectra-image-gallery__layout--masonry' );\n\t\t\t\t\t\t\t\tconst isotope = new Isotope( element, {\n\t\t\t\t\t\t\t\t\titemSelector: '.spectra-image-gallery__media-wrapper--isotope',\n\t\t\t\t\t\t\t\t\tpercentPosition: true,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\timagesLoaded( element ).on( 'progress', function() {\n\t\t\t\t\t\t\t\t\tisotope.layout();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\timagesLoaded( element ).on( 'always', function() {\n\t\t\t\t\t\t\t\t\telement.parentNode.style.visibility = 'visible';\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tUAGBImageGalleryMasonry.init( {\"block_id\":\"39ff3b72\",\"classMigrate\":true,\"readyToRender\":true,\"mediaGallery\":[{\"sizes\":{\"thumbnail\":{\"height\":150,\"width\":150,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-150x150.png\",\"orientation\":\"landscape\"},\"medium\":{\"height\":152,\"width\":300,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-300x152.png\",\"orientation\":\"landscape\"},\"large\":{\"height\":517,\"width\":1024,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-1024x517.png\",\"orientation\":\"landscape\"},\"full\":{\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project.png\",\"height\":1110,\"width\":2198,\"orientation\":\"landscape\"},\"cmplz_banner_image\":{\"height\":100,\"width\":350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-350x100.png\",\"orientation\":\"landscape\"}},\"mime\":\"image\/png\",\"type\":\"image\",\"subtype\":\"png\",\"id\":17350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project.png\",\"alt\":\"Creating a new project in PTC\",\"link\":\"https:\/\/ptc.wpml.org\/?attachment_id=17350\",\"caption\":\"Creating a new project\"},{\"sizes\":{\"thumbnail\":{\"height\":150,\"width\":150,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-150x150.png\",\"orientation\":\"landscape\"},\"medium\":{\"height\":176,\"width\":300,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-300x176.png\",\"orientation\":\"landscape\"},\"large\":{\"height\":601,\"width\":1024,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-1024x601.png\",\"orientation\":\"landscape\"},\"full\":{\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration.png\",\"height\":1067,\"width\":1817,\"orientation\":\"landscape\"},\"cmplz_banner_image\":{\"height\":100,\"width\":350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-350x100.png\",\"orientation\":\"landscape\"}},\"mime\":\"image\/png\",\"type\":\"image\",\"subtype\":\"png\",\"id\":17351,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration.png\",\"alt\":\"Choosing API integration in PTC setup\",\"link\":\"https:\/\/ptc.wpml.org\/?attachment_id=17351\",\"caption\":\"Choosing API Integration\"},{\"sizes\":{\"thumbnail\":{\"height\":150,\"width\":150,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-150x150.png\",\"orientation\":\"landscape\"},\"medium\":{\"height\":135,\"width\":300,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-300x135.png\",\"orientation\":\"landscape\"},\"large\":{\"height\":459,\"width\":1024,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-1024x459.png\",\"orientation\":\"landscape\"},\"full\":{\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-scaled.png\",\"height\":1148,\"width\":2560,\"orientation\":\"landscape\"},\"cmplz_banner_image\":{\"height\":100,\"width\":350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-350x100.png\",\"orientation\":\"landscape\"}},\"mime\":\"image\/png\",\"type\":\"image\",\"subtype\":\"png\",\"id\":17352,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-scaled.png\",\"alt\":\"API token under Settings u2192 Manage API tokens\",\"link\":\"https:\/\/ptc.wpml.org\/?attachment_id=17352\",\"caption\":\"API token under Settings u2192 Manage API tokens\"}],\"mediaIDs\":[17350,17351,17352],\"feedLayout\":\"masonry\",\"galleryImageSize\":\"full\",\"imageClickEvent\":\"lightbox\",\"captionVisibility\":\"always\",\"captionDisplayType\":\"bar-outside\",\"imageCaptionAlignment\":\"bottom center\",\"imageCaptionAlignment01\":\"bottom\",\"columnsDesk\":2,\"columnsTab\":1,\"columnsMob\":1,\"imageBorderTopWidth\":1,\"imageBorderLeftWidth\":1,\"imageBorderRightWidth\":1,\"imageBorderBottomWidth\":1,\"imageBorderTopLeftRadius\":20,\"imageBorderTopRightRadius\":20,\"imageBorderBottomLeftRadius\":20,\"imageBorderBottomRightRadius\":20,\"imageBorderColor\":\"rgba(206,191,227,0.18)\",\"wpmlTranslatedContent\":\"1\",\"tileSize\":0,\"focusList\":[],\"focusListObject\":[],\"imageDisplayCaption\":true,\"galleryImageSizeTablet\":\"large\",\"galleryImageSizeMobile\":\"medium\",\"disableLazyLoad\":false,\"lightboxDisplayCaptions\":false,\"lightboxThumbnails\":false,\"lightboxDisplayCount\":false,\"lightboxCloseIcon\":\"xmark\",\"lightboxCaptionHeight\":50,\"lightboxCaptionHeightTablet\":\"\",\"lightboxCaptionHeightMobile\":\"\",\"lightboxIconSize\":24,\"lightboxIconSizeTablet\":\"\",\"lightboxIconSizeMobile\":\"\",\"imageCaptionAlignment02\":\"center\",\"imageDefaultCaption\":\"No Caption\",\"captionPaddingTop\":8,\"captionPaddingRight\":8,\"captionPaddingBottom\":8,\"captionPaddingLeft\":8,\"captionPaddingTopTab\":8,\"captionPaddingRightTab\":8,\"captionPaddingBottomTab\":8,\"captionPaddingLeftTab\":8,\"captionPaddingTopMob\":8,\"captionPaddingRightMob\":8,\"captionPaddingBottomMob\":8,\"captionPaddingLeftMob\":8,\"captionPaddingUnit\":\"px\",\"captionPaddingUnitTab\":\"px\",\"captionPaddingUnitMob\":\"px\",\"captionPaddingUnitLink\":true,\"captionGap\":0,\"captionGapUnit\":\"px\",\"gridImageGap\":8,\"gridImageGapTab\":\"\",\"gridImageGapMob\":\"\",\"gridImageGapUnit\":\"px\",\"gridImageGapUnitTab\":\"px\",\"gridImageGapUnitMob\":\"px\",\"feedMarginTop\":\"\",\"feedMarginRight\":\"\",\"feedMarginBottom\":\"\",\"feedMarginLeft\":\"\",\"feedMarginTopTab\":\"\",\"feedMarginRightTab\":\"\",\"feedMarginBottomTab\":\"\",\"feedMarginLeftTab\":\"\",\"feedMarginTopMob\":\"\",\"feedMarginRightMob\":\"\",\"feedMarginBottomMob\":\"\",\"feedMarginLeftMob\":\"\",\"feedMarginUnit\":\"px\",\"feedMarginUnitTab\":\"px\",\"feedMarginUnitMob\":\"px\",\"feedMarginUnitLink\":true,\"carouselStartAt\":0,\"carouselSquares\":false,\"carouselLoop\":true,\"carouselAutoplay\":true,\"carouselAutoplaySpeed\":2000,\"carouselPauseOnHover\":true,\"carouselTransitionSpeed\":500,\"gridPages\":1,\"gridPageNumber\":1,\"feedPagination\":false,\"paginateUseArrows\":true,\"paginateUseDots\":true,\"paginateUseLoader\":true,\"paginateLimit\":9,\"paginateButtonAlign\":\"center\",\"paginateButtonText\":\"Load More Images\",\"paginateButtonPaddingTop\":\"\",\"paginateButtonPaddingRight\":\"\",\"paginateButtonPaddingBottom\":\"\",\"paginateButtonPaddingLeft\":\"\",\"paginateButtonPaddingTopTab\":\"\",\"paginateButtonPaddingRightTab\":\"\",\"paginateButtonPaddingBottomTab\":\"\",\"paginateButtonPaddingLeftTab\":\"\",\"paginateButtonPaddingTopMob\":\"\",\"paginateButtonPaddingRightMob\":\"\",\"paginateButtonPaddingBottomMob\":\"\",\"paginateButtonPaddingLeftMob\":\"\",\"paginateButtonPaddingUnit\":\"px\",\"paginateButtonPaddingUnitTab\":\"px\",\"paginateButtonPaddingUnitMob\":\"px\",\"paginateButtonPaddingUnitLink\":true,\"imageEnableZoom\":true,\"imageZoomType\":\"zoom-in\",\"captionBackgroundEnableBlur\":false,\"captionBackgroundBlurAmount\":0,\"captionBackgroundBlurAmountHover\":5,\"lightboxEdgeDistance\":10,\"lightboxEdgeDistanceTablet\":\"\",\"lightboxEdgeDistanceMobile\":\"\",\"lightboxBackgroundEnableBlur\":true,\"lightboxBackgroundBlurAmount\":5,\"lightboxBackgroundColor\":\"rgba(0,0,0,0.75)\",\"lightboxIconColor\":\"rgba(255,255,255,1)\",\"lightboxCaptionColor\":\"rgba(255,255,255,1)\",\"lightboxCaptionBackgroundColor\":\"rgba(0,0,0,1)\",\"captionLoadGoogleFonts\":false,\"captionFontFamily\":\"Default\",\"captionFontWeight\":\"\",\"captionFontStyle\":\"normal\",\"captionTransform\":\"\",\"captionDecoration\":\"none\",\"captionFontSizeType\":\"px\",\"captionFontSize\":\"\",\"captionFontSizeTab\":\"\",\"captionFontSizeMob\":\"\",\"captionLineHeightType\":\"em\",\"captionLineHeight\":\"\",\"captionLineHeightTab\":\"\",\"captionLineHeightMob\":\"\",\"loadMoreLoadGoogleFonts\":false,\"loadMoreFontFamily\":\"Default\",\"loadMoreFontWeight\":\"\",\"loadMoreFontStyle\":\"normal\",\"loadMoreTransform\":\"\",\"loadMoreDecoration\":\"none\",\"loadMoreFontSizeType\":\"px\",\"loadMoreFontSize\":\"\",\"loadMoreFontSizeTab\":\"\",\"loadMoreFontSizeMob\":\"\",\"loadMoreLineHeightType\":\"em\",\"loadMoreLineHeight\":\"\",\"loadMoreLineHeightTab\":\"\",\"loadMoreLineHeightMob\":\"\",\"lightboxLoadGoogleFonts\":false,\"lightboxFontFamily\":\"Default\",\"lightboxFontWeight\":\"\",\"lightboxFontStyle\":\"normal\",\"lightboxTransform\":\"\",\"lightboxDecoration\":\"none\",\"lightboxFontSizeType\":\"px\",\"lightboxFontSize\":\"\",\"lightboxFontSizeTab\":\"\",\"lightboxFontSizeMob\":\"\",\"lightboxLineHeightType\":\"em\",\"lightboxLineHeight\":\"\",\"lightboxLineHeightTab\":\"\",\"lightboxLineHeightMob\":\"\",\"captionBackgroundEffect\":\"none\",\"captionBackgroundEffectHover\":\"none\",\"captionBackgroundEffectAmount\":100,\"captionBackgroundEffectAmountHover\":0,\"captionColor\":\"rgba(255,255,255,1)\",\"captionColorHover\":\"rgba(255,255,255,1)\",\"captionBackgroundColor\":\"rgba(0,0,0,0.75)\",\"captionBackgroundColorHover\":\"rgba(0,0,0,0.75)\",\"overlayColor\":\"rgba(0,0,0,0)\",\"overlayColorHover\":\"rgba(0,0,0,0)\",\"captionSeparateColors\":false,\"paginateArrowDistance\":-24,\"paginateArrowDistanceUnit\":\"px\",\"paginateArrowSize\":24,\"paginateDotDistance\":8,\"paginateDotDistanceUnit\":\"px\",\"paginateLoaderSize\":18,\"paginateButtonTextColor\":\"\",\"paginateButtonTextColorHover\":\"\",\"paginateColor\":\"\",\"paginateColorHover\":\"\",\"imageBoxShadowColor\":\"\",\"imageBoxShadowHOffset\":0,\"imageBoxShadowVOffset\":0,\"imageBoxShadowBlur\":\"\",\"imageBoxShadowSpread\":\"\",\"imageBoxShadowPosition\":\"outset\",\"imageBoxShadowColorHover\":\"\",\"imageBoxShadowHOffsetHover\":0,\"imageBoxShadowVOffsetHover\":0,\"imageBoxShadowBlurHover\":\"\",\"imageBoxShadowSpreadHover\":\"\",\"imageBoxShadowPositionHover\":\"outset\",\"arrowBorderTopWidth\":4,\"arrowBorderLeftWidth\":4,\"arrowBorderRightWidth\":4,\"arrowBorderBottomWidth\":4,\"arrowBorderTopLeftRadius\":50,\"arrowBorderTopRightRadius\":50,\"arrowBorderBottomLeftRadius\":50,\"arrowBorderBottomRightRadius\":50,\"arrowBorderRadiusUnit\":\"px\",\"arrowBorderTopWidthTablet\":\"\",\"arrowBorderLeftWidthTablet\":\"\",\"arrowBorderRightWidthTablet\":\"\",\"arrowBorderBottomWidthTablet\":\"\",\"arrowBorderTopLeftRadiusTablet\":\"\",\"arrowBorderTopRightRadiusTablet\":\"\",\"arrowBorderBottomLeftRadiusTablet\":\"\",\"arrowBorderBottomRightRadiusTablet\":\"\",\"arrowBorderRadiusUnitTablet\":\"px\",\"arrowBorderTopWidthMobile\":\"\",\"arrowBorderLeftWidthMobile\":\"\",\"arrowBorderRightWidthMobile\":\"\",\"arrowBorderBottomWidthMobile\":\"\",\"arrowBorderTopLeftRadiusMobile\":\"\",\"arrowBorderTopRightRadiusMobile\":\"\",\"arrowBorderBottomLeftRadiusMobile\":\"\",\"arrowBorderBottomRightRadiusMobile\":\"\",\"arrowBorderRadiusUnitMobile\":\"px\",\"arrowBorderStyle\":\"none\",\"arrowBorderColor\":\"\",\"arrowBorderHColor\":\"\",\"btnBorderTopWidth\":\"\",\"btnBorderLeftWidth\":\"\",\"btnBorderRightWidth\":\"\",\"btnBorderBottomWidth\":\"\",\"btnBorderTopLeftRadius\":\"\",\"btnBorderTopRightRadius\":\"\",\"btnBorderBottomLeftRadius\":\"\",\"btnBorderBottomRightRadius\":\"\",\"btnBorderRadiusUnit\":\"px\",\"btnBorderTopWidthTablet\":\"\",\"btnBorderLeftWidthTablet\":\"\",\"btnBorderRightWidthTablet\":\"\",\"btnBorderBottomWidthTablet\":\"\",\"btnBorderTopLeftRadiusTablet\":\"\",\"btnBorderTopRightRadiusTablet\":\"\",\"btnBorderBottomLeftRadiusTablet\":\"\",\"btnBorderBottomRightRadiusTablet\":\"\",\"btnBorderRadiusUnitTablet\":\"px\",\"btnBorderTopWidthMobile\":\"\",\"btnBorderLeftWidthMobile\":\"\",\"btnBorderRightWidthMobile\":\"\",\"btnBorderBottomWidthMobile\":\"\",\"btnBorderTopLeftRadiusMobile\":\"\",\"btnBorderTopRightRadiusMobile\":\"\",\"btnBorderBottomLeftRadiusMobile\":\"\",\"btnBorderBottomRightRadiusMobile\":\"\",\"btnBorderRadiusUnitMobile\":\"px\",\"btnBorderStyle\":\"\",\"btnBorderColor\":\"\",\"btnBorderHColor\":\"\",\"imageBorderRadiusUnit\":\"px\",\"imageBorderTopWidthTablet\":\"\",\"imageBorderLeftWidthTablet\":\"\",\"imageBorderRightWidthTablet\":\"\",\"imageBorderBottomWidthTablet\":\"\",\"imageBorderTopLeftRadiusTablet\":\"\",\"imageBorderTopRightRadiusTablet\":\"\",\"imageBorderBottomLeftRadiusTablet\":\"\",\"imageBorderBottomRightRadiusTablet\":\"\",\"imageBorderRadiusUnitTablet\":\"px\",\"imageBorderTopWidthMobile\":\"\",\"imageBorderLeftWidthMobile\":\"\",\"imageBorderRightWidthMobile\":\"\",\"imageBorderBottomWidthMobile\":\"\",\"imageBorderTopLeftRadiusMobile\":\"\",\"imageBorderTopRightRadiusMobile\":\"\",\"imageBorderBottomLeftRadiusMobile\":\"\",\"imageBorderBottomRightRadiusMobile\":\"\",\"imageBorderRadiusUnitMobile\":\"px\",\"imageBorderStyle\":\"\",\"imageBorderHColor\":\"\",\"mainTitleBorderTopWidth\":2,\"mainTitleBorderLeftWidth\":0,\"mainTitleBorderRightWidth\":0,\"mainTitleBorderBottomWidth\":2,\"mainTitleBorderTopLeftRadius\":\"\",\"mainTitleBorderTopRightRadius\":\"\",\"mainTitleBorderBottomLeftRadius\":\"\",\"mainTitleBorderBottomRightRadius\":\"\",\"mainTitleBorderRadiusUnit\":\"px\",\"mainTitleBorderTopWidthTablet\":\"\",\"mainTitleBorderLeftWidthTablet\":\"\",\"mainTitleBorderRightWidthTablet\":\"\",\"mainTitleBorderBottomWidthTablet\":\"\",\"mainTitleBorderTopLeftRadiusTablet\":\"\",\"mainTitleBorderTopRightRadiusTablet\":\"\",\"mainTitleBorderBottomLeftRadiusTablet\":\"\",\"mainTitleBorderBottomRightRadiusTablet\":\"\",\"mainTitleBorderRadiusUnitTablet\":\"px\",\"mainTitleBorderTopWidthMobile\":\"\",\"mainTitleBorderLeftWidthMobile\":\"\",\"mainTitleBorderRightWidthMobile\":\"\",\"mainTitleBorderBottomWidthMobile\":\"\",\"mainTitleBorderTopLeftRadiusMobile\":\"\",\"mainTitleBorderTopRightRadiusMobile\":\"\",\"mainTitleBorderBottomLeftRadiusMobile\":\"\",\"mainTitleBorderBottomRightRadiusMobile\":\"\",\"mainTitleBorderRadiusUnitMobile\":\"px\",\"mainTitleBorderStyle\":\"\",\"mainTitleBorderColor\":\"\",\"mainTitleBorderHColor\":\"\"}, '.uagb-block-39ff3b72', {\"lazy\":true,\"slidesPerView\":1,\"navigation\":{\"nextEl\":\".uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .swiper-button-next\",\"prevEl\":\".uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .swiper-button-prev\"},\"keyboard\":{\"enabled\":true}}, [] );\n\t\t\t\t\t\t\t\tUAGBImageGalleryMasonry.initByOffset( element, isotope );\n\t\t\t\t\t\t\t}, 500 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\t\t\twindow.addEventListener( 'DOMContentLoaded', () => {\n\t\t\t\t\tconst blockScope = document.querySelector( '.uagb-block-39ff3b72' );\n\t\t\t\t\tif ( ! blockScope ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tblockScope.addEventListener('keydown', (event) => {\n\t\t\t\t\t\tif ( 13 === event.keyCode || 32 === event.keyCode ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tblockScope.click();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\tlet lightboxSwiper = null;\n\t\t\t\t\tlet thumbnailSwiper = null;\n\n\t\t\t\t\t\t\t\t\t\tlet lightboxSettings = {\"lazy\":true,\"slidesPerView\":1,\"navigation\":{\"nextEl\":\".uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .swiper-button-next\",\"prevEl\":\".uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .swiper-button-prev\"},\"keyboard\":{\"enabled\":true}};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlightboxSwiper = new Swiper( \".uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .spectra-image-gallery__control-lightbox--main\",\n\t\t\t\t\t\t{\"lazy\":true,\"slidesPerView\":1,\"navigation\":{\"nextEl\":\".uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .swiper-button-next\",\"prevEl\":\".uagb-block-39ff3b72+.spectra-image-gallery__control-lightbox .swiper-button-prev\"},\"keyboard\":{\"enabled\":true}}\t\t\t\t\t);\n\t\t\t\t\tloadLightBoxImages( blockScope, lightboxSwiper, null, {\"block_id\":\"39ff3b72\",\"classMigrate\":true,\"readyToRender\":true,\"mediaGallery\":[{\"sizes\":{\"thumbnail\":{\"height\":150,\"width\":150,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-150x150.png\",\"orientation\":\"landscape\"},\"medium\":{\"height\":152,\"width\":300,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-300x152.png\",\"orientation\":\"landscape\"},\"large\":{\"height\":517,\"width\":1024,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-1024x517.png\",\"orientation\":\"landscape\"},\"full\":{\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project.png\",\"height\":1110,\"width\":2198,\"orientation\":\"landscape\"},\"cmplz_banner_image\":{\"height\":100,\"width\":350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project-350x100.png\",\"orientation\":\"landscape\"}},\"mime\":\"image\/png\",\"type\":\"image\",\"subtype\":\"png\",\"id\":17350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-creating-a-new-project.png\",\"alt\":\"Creating a new project in PTC\",\"link\":\"https:\/\/ptc.wpml.org\/?attachment_id=17350\",\"caption\":\"Creating a new project\"},{\"sizes\":{\"thumbnail\":{\"height\":150,\"width\":150,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-150x150.png\",\"orientation\":\"landscape\"},\"medium\":{\"height\":176,\"width\":300,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-300x176.png\",\"orientation\":\"landscape\"},\"large\":{\"height\":601,\"width\":1024,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-1024x601.png\",\"orientation\":\"landscape\"},\"full\":{\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration.png\",\"height\":1067,\"width\":1817,\"orientation\":\"landscape\"},\"cmplz_banner_image\":{\"height\":100,\"width\":350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration-350x100.png\",\"orientation\":\"landscape\"}},\"mime\":\"image\/png\",\"type\":\"image\",\"subtype\":\"png\",\"id\":17351,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-selecting-api-integration.png\",\"alt\":\"Choosing API integration in PTC setup\",\"link\":\"https:\/\/ptc.wpml.org\/?attachment_id=17351\",\"caption\":\"Choosing API Integration\"},{\"sizes\":{\"thumbnail\":{\"height\":150,\"width\":150,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-150x150.png\",\"orientation\":\"landscape\"},\"medium\":{\"height\":135,\"width\":300,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-300x135.png\",\"orientation\":\"landscape\"},\"large\":{\"height\":459,\"width\":1024,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-1024x459.png\",\"orientation\":\"landscape\"},\"full\":{\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-scaled.png\",\"height\":1148,\"width\":2560,\"orientation\":\"landscape\"},\"cmplz_banner_image\":{\"height\":100,\"width\":350,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-350x100.png\",\"orientation\":\"landscape\"}},\"mime\":\"image\/png\",\"type\":\"image\",\"subtype\":\"png\",\"id\":17352,\"url\":\"https:\/\/ptc.wpml.org\/wp-content\/uploads\/2026\/01\/ptc-settings-manage-api-tokens-scaled.png\",\"alt\":\"API token under Settings u2192 Manage API tokens\",\"link\":\"https:\/\/ptc.wpml.org\/?attachment_id=17352\",\"caption\":\"API token under Settings u2192 Manage API tokens\"}],\"mediaIDs\":[17350,17351,17352],\"feedLayout\":\"masonry\",\"galleryImageSize\":\"full\",\"imageClickEvent\":\"lightbox\",\"captionVisibility\":\"always\",\"captionDisplayType\":\"bar-outside\",\"imageCaptionAlignment\":\"bottom center\",\"imageCaptionAlignment01\":\"bottom\",\"columnsDesk\":2,\"columnsTab\":1,\"columnsMob\":1,\"imageBorderTopWidth\":1,\"imageBorderLeftWidth\":1,\"imageBorderRightWidth\":1,\"imageBorderBottomWidth\":1,\"imageBorderTopLeftRadius\":20,\"imageBorderTopRightRadius\":20,\"imageBorderBottomLeftRadius\":20,\"imageBorderBottomRightRadius\":20,\"imageBorderColor\":\"rgba(206,191,227,0.18)\",\"wpmlTranslatedContent\":\"1\",\"tileSize\":0,\"focusList\":[],\"focusListObject\":[],\"imageDisplayCaption\":true,\"galleryImageSizeTablet\":\"large\",\"galleryImageSizeMobile\":\"medium\",\"disableLazyLoad\":false,\"lightboxDisplayCaptions\":false,\"lightboxThumbnails\":false,\"lightboxDisplayCount\":false,\"lightboxCloseIcon\":\"xmark\",\"lightboxCaptionHeight\":50,\"lightboxCaptionHeightTablet\":\"\",\"lightboxCaptionHeightMobile\":\"\",\"lightboxIconSize\":24,\"lightboxIconSizeTablet\":\"\",\"lightboxIconSizeMobile\":\"\",\"imageCaptionAlignment02\":\"center\",\"imageDefaultCaption\":\"No Caption\",\"captionPaddingTop\":8,\"captionPaddingRight\":8,\"captionPaddingBottom\":8,\"captionPaddingLeft\":8,\"captionPaddingTopTab\":8,\"captionPaddingRightTab\":8,\"captionPaddingBottomTab\":8,\"captionPaddingLeftTab\":8,\"captionPaddingTopMob\":8,\"captionPaddingRightMob\":8,\"captionPaddingBottomMob\":8,\"captionPaddingLeftMob\":8,\"captionPaddingUnit\":\"px\",\"captionPaddingUnitTab\":\"px\",\"captionPaddingUnitMob\":\"px\",\"captionPaddingUnitLink\":true,\"captionGap\":0,\"captionGapUnit\":\"px\",\"gridImageGap\":8,\"gridImageGapTab\":\"\",\"gridImageGapMob\":\"\",\"gridImageGapUnit\":\"px\",\"gridImageGapUnitTab\":\"px\",\"gridImageGapUnitMob\":\"px\",\"feedMarginTop\":\"\",\"feedMarginRight\":\"\",\"feedMarginBottom\":\"\",\"feedMarginLeft\":\"\",\"feedMarginTopTab\":\"\",\"feedMarginRightTab\":\"\",\"feedMarginBottomTab\":\"\",\"feedMarginLeftTab\":\"\",\"feedMarginTopMob\":\"\",\"feedMarginRightMob\":\"\",\"feedMarginBottomMob\":\"\",\"feedMarginLeftMob\":\"\",\"feedMarginUnit\":\"px\",\"feedMarginUnitTab\":\"px\",\"feedMarginUnitMob\":\"px\",\"feedMarginUnitLink\":true,\"carouselStartAt\":0,\"carouselSquares\":false,\"carouselLoop\":true,\"carouselAutoplay\":true,\"carouselAutoplaySpeed\":2000,\"carouselPauseOnHover\":true,\"carouselTransitionSpeed\":500,\"gridPages\":1,\"gridPageNumber\":1,\"feedPagination\":false,\"paginateUseArrows\":true,\"paginateUseDots\":true,\"paginateUseLoader\":true,\"paginateLimit\":9,\"paginateButtonAlign\":\"center\",\"paginateButtonText\":\"Load More Images\",\"paginateButtonPaddingTop\":\"\",\"paginateButtonPaddingRight\":\"\",\"paginateButtonPaddingBottom\":\"\",\"paginateButtonPaddingLeft\":\"\",\"paginateButtonPaddingTopTab\":\"\",\"paginateButtonPaddingRightTab\":\"\",\"paginateButtonPaddingBottomTab\":\"\",\"paginateButtonPaddingLeftTab\":\"\",\"paginateButtonPaddingTopMob\":\"\",\"paginateButtonPaddingRightMob\":\"\",\"paginateButtonPaddingBottomMob\":\"\",\"paginateButtonPaddingLeftMob\":\"\",\"paginateButtonPaddingUnit\":\"px\",\"paginateButtonPaddingUnitTab\":\"px\",\"paginateButtonPaddingUnitMob\":\"px\",\"paginateButtonPaddingUnitLink\":true,\"imageEnableZoom\":true,\"imageZoomType\":\"zoom-in\",\"captionBackgroundEnableBlur\":false,\"captionBackgroundBlurAmount\":0,\"captionBackgroundBlurAmountHover\":5,\"lightboxEdgeDistance\":10,\"lightboxEdgeDistanceTablet\":\"\",\"lightboxEdgeDistanceMobile\":\"\",\"lightboxBackgroundEnableBlur\":true,\"lightboxBackgroundBlurAmount\":5,\"lightboxBackgroundColor\":\"rgba(0,0,0,0.75)\",\"lightboxIconColor\":\"rgba(255,255,255,1)\",\"lightboxCaptionColor\":\"rgba(255,255,255,1)\",\"lightboxCaptionBackgroundColor\":\"rgba(0,0,0,1)\",\"captionLoadGoogleFonts\":false,\"captionFontFamily\":\"Default\",\"captionFontWeight\":\"\",\"captionFontStyle\":\"normal\",\"captionTransform\":\"\",\"captionDecoration\":\"none\",\"captionFontSizeType\":\"px\",\"captionFontSize\":\"\",\"captionFontSizeTab\":\"\",\"captionFontSizeMob\":\"\",\"captionLineHeightType\":\"em\",\"captionLineHeight\":\"\",\"captionLineHeightTab\":\"\",\"captionLineHeightMob\":\"\",\"loadMoreLoadGoogleFonts\":false,\"loadMoreFontFamily\":\"Default\",\"loadMoreFontWeight\":\"\",\"loadMoreFontStyle\":\"normal\",\"loadMoreTransform\":\"\",\"loadMoreDecoration\":\"none\",\"loadMoreFontSizeType\":\"px\",\"loadMoreFontSize\":\"\",\"loadMoreFontSizeTab\":\"\",\"loadMoreFontSizeMob\":\"\",\"loadMoreLineHeightType\":\"em\",\"loadMoreLineHeight\":\"\",\"loadMoreLineHeightTab\":\"\",\"loadMoreLineHeightMob\":\"\",\"lightboxLoadGoogleFonts\":false,\"lightboxFontFamily\":\"Default\",\"lightboxFontWeight\":\"\",\"lightboxFontStyle\":\"normal\",\"lightboxTransform\":\"\",\"lightboxDecoration\":\"none\",\"lightboxFontSizeType\":\"px\",\"lightboxFontSize\":\"\",\"lightboxFontSizeTab\":\"\",\"lightboxFontSizeMob\":\"\",\"lightboxLineHeightType\":\"em\",\"lightboxLineHeight\":\"\",\"lightboxLineHeightTab\":\"\",\"lightboxLineHeightMob\":\"\",\"captionBackgroundEffect\":\"none\",\"captionBackgroundEffectHover\":\"none\",\"captionBackgroundEffectAmount\":100,\"captionBackgroundEffectAmountHover\":0,\"captionColor\":\"rgba(255,255,255,1)\",\"captionColorHover\":\"rgba(255,255,255,1)\",\"captionBackgroundColor\":\"rgba(0,0,0,0.75)\",\"captionBackgroundColorHover\":\"rgba(0,0,0,0.75)\",\"overlayColor\":\"rgba(0,0,0,0)\",\"overlayColorHover\":\"rgba(0,0,0,0)\",\"captionSeparateColors\":false,\"paginateArrowDistance\":-24,\"paginateArrowDistanceUnit\":\"px\",\"paginateArrowSize\":24,\"paginateDotDistance\":8,\"paginateDotDistanceUnit\":\"px\",\"paginateLoaderSize\":18,\"paginateButtonTextColor\":\"\",\"paginateButtonTextColorHover\":\"\",\"paginateColor\":\"\",\"paginateColorHover\":\"\",\"imageBoxShadowColor\":\"\",\"imageBoxShadowHOffset\":0,\"imageBoxShadowVOffset\":0,\"imageBoxShadowBlur\":\"\",\"imageBoxShadowSpread\":\"\",\"imageBoxShadowPosition\":\"outset\",\"imageBoxShadowColorHover\":\"\",\"imageBoxShadowHOffsetHover\":0,\"imageBoxShadowVOffsetHover\":0,\"imageBoxShadowBlurHover\":\"\",\"imageBoxShadowSpreadHover\":\"\",\"imageBoxShadowPositionHover\":\"outset\",\"arrowBorderTopWidth\":4,\"arrowBorderLeftWidth\":4,\"arrowBorderRightWidth\":4,\"arrowBorderBottomWidth\":4,\"arrowBorderTopLeftRadius\":50,\"arrowBorderTopRightRadius\":50,\"arrowBorderBottomLeftRadius\":50,\"arrowBorderBottomRightRadius\":50,\"arrowBorderRadiusUnit\":\"px\",\"arrowBorderTopWidthTablet\":\"\",\"arrowBorderLeftWidthTablet\":\"\",\"arrowBorderRightWidthTablet\":\"\",\"arrowBorderBottomWidthTablet\":\"\",\"arrowBorderTopLeftRadiusTablet\":\"\",\"arrowBorderTopRightRadiusTablet\":\"\",\"arrowBorderBottomLeftRadiusTablet\":\"\",\"arrowBorderBottomRightRadiusTablet\":\"\",\"arrowBorderRadiusUnitTablet\":\"px\",\"arrowBorderTopWidthMobile\":\"\",\"arrowBorderLeftWidthMobile\":\"\",\"arrowBorderRightWidthMobile\":\"\",\"arrowBorderBottomWidthMobile\":\"\",\"arrowBorderTopLeftRadiusMobile\":\"\",\"arrowBorderTopRightRadiusMobile\":\"\",\"arrowBorderBottomLeftRadiusMobile\":\"\",\"arrowBorderBottomRightRadiusMobile\":\"\",\"arrowBorderRadiusUnitMobile\":\"px\",\"arrowBorderStyle\":\"none\",\"arrowBorderColor\":\"\",\"arrowBorderHColor\":\"\",\"btnBorderTopWidth\":\"\",\"btnBorderLeftWidth\":\"\",\"btnBorderRightWidth\":\"\",\"btnBorderBottomWidth\":\"\",\"btnBorderTopLeftRadius\":\"\",\"btnBorderTopRightRadius\":\"\",\"btnBorderBottomLeftRadius\":\"\",\"btnBorderBottomRightRadius\":\"\",\"btnBorderRadiusUnit\":\"px\",\"btnBorderTopWidthTablet\":\"\",\"btnBorderLeftWidthTablet\":\"\",\"btnBorderRightWidthTablet\":\"\",\"btnBorderBottomWidthTablet\":\"\",\"btnBorderTopLeftRadiusTablet\":\"\",\"btnBorderTopRightRadiusTablet\":\"\",\"btnBorderBottomLeftRadiusTablet\":\"\",\"btnBorderBottomRightRadiusTablet\":\"\",\"btnBorderRadiusUnitTablet\":\"px\",\"btnBorderTopWidthMobile\":\"\",\"btnBorderLeftWidthMobile\":\"\",\"btnBorderRightWidthMobile\":\"\",\"btnBorderBottomWidthMobile\":\"\",\"btnBorderTopLeftRadiusMobile\":\"\",\"btnBorderTopRightRadiusMobile\":\"\",\"btnBorderBottomLeftRadiusMobile\":\"\",\"btnBorderBottomRightRadiusMobile\":\"\",\"btnBorderRadiusUnitMobile\":\"px\",\"btnBorderStyle\":\"\",\"btnBorderColor\":\"\",\"btnBorderHColor\":\"\",\"imageBorderRadiusUnit\":\"px\",\"imageBorderTopWidthTablet\":\"\",\"imageBorderLeftWidthTablet\":\"\",\"imageBorderRightWidthTablet\":\"\",\"imageBorderBottomWidthTablet\":\"\",\"imageBorderTopLeftRadiusTablet\":\"\",\"imageBorderTopRightRadiusTablet\":\"\",\"imageBorderBottomLeftRadiusTablet\":\"\",\"imageBorderBottomRightRadiusTablet\":\"\",\"imageBorderRadiusUnitTablet\":\"px\",\"imageBorderTopWidthMobile\":\"\",\"imageBorderLeftWidthMobile\":\"\",\"imageBorderRightWidthMobile\":\"\",\"imageBorderBottomWidthMobile\":\"\",\"imageBorderTopLeftRadiusMobile\":\"\",\"imageBorderTopRightRadiusMobile\":\"\",\"imageBorderBottomLeftRadiusMobile\":\"\",\"imageBorderBottomRightRadiusMobile\":\"\",\"imageBorderRadiusUnitMobile\":\"px\",\"imageBorderStyle\":\"\",\"imageBorderHColor\":\"\",\"mainTitleBorderTopWidth\":2,\"mainTitleBorderLeftWidth\":0,\"mainTitleBorderRightWidth\":0,\"mainTitleBorderBottomWidth\":2,\"mainTitleBorderTopLeftRadius\":\"\",\"mainTitleBorderTopRightRadius\":\"\",\"mainTitleBorderBottomLeftRadius\":\"\",\"mainTitleBorderBottomRightRadius\":\"\",\"mainTitleBorderRadiusUnit\":\"px\",\"mainTitleBorderTopWidthTablet\":\"\",\"mainTitleBorderLeftWidthTablet\":\"\",\"mainTitleBorderRightWidthTablet\":\"\",\"mainTitleBorderBottomWidthTablet\":\"\",\"mainTitleBorderTopLeftRadiusTablet\":\"\",\"mainTitleBorderTopRightRadiusTablet\":\"\",\"mainTitleBorderBottomLeftRadiusTablet\":\"\",\"mainTitleBorderBottomRightRadiusTablet\":\"\",\"mainTitleBorderRadiusUnitTablet\":\"px\",\"mainTitleBorderTopWidthMobile\":\"\",\"mainTitleBorderLeftWidthMobile\":\"\",\"mainTitleBorderRightWidthMobile\":\"\",\"mainTitleBorderBottomWidthMobile\":\"\",\"mainTitleBorderTopLeftRadiusMobile\":\"\",\"mainTitleBorderTopRightRadiusMobile\":\"\",\"mainTitleBorderBottomLeftRadiusMobile\":\"\",\"mainTitleBorderBottomRightRadiusMobile\":\"\",\"mainTitleBorderRadiusUnitMobile\":\"px\",\"mainTitleBorderStyle\":\"\",\"mainTitleBorderColor\":\"\",\"mainTitleBorderHColor\":\"\"}, thumbnailSwiper );\n\t\t\t\t\t\t\t\tconst regexCustomURL = new RegExp( '^((http|https):\/\/)(www.)?[a-zA-Z0-9@:%._\\+~#?&\/\/=\\-]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&\/\/=]*)$' );\n\t\t\tconst customLinks = {};\n\t\t\tconst customLinksBehaviour = {};\n\n\t\t\tconst getCustomURL = ( caption ) => {\n\t\t\t\tif ( ! customLinks ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tconst imageID = parseInt( caption.getAttribute( 'data-spectra-gallery-image-id' ) );\n\t\t\t\treturn ( regexCustomURL.test( customLinks[ imageID ] ) ? customLinks[ imageID ] : undefined );\n\t\t\t}\n\n\t\t\tconst getCustomLinkBehaviour = (caption) => {\n\t\t\t\tif (!customLinksBehaviour) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tconst imageId = parseInt(caption.getAttribute('data-spectra-gallery-image-id'));\n\t\t\t\treturn !(customLinksBehaviour[imageId] === true);\n\t\t\t};\n\n\t\t\tconst captions = lightboxSwiper.el.querySelectorAll( '.spectra-image-gallery__control-lightbox--caption' );\n\t\t\tfor ( let i = 0; i < captions.length; i++ ) {\n\t\t\t\tconst customURL = getCustomURL( captions[ i ] );\n\t\t\t\tif ( customURL ) {\n\t\t\t\t\tconst anchor = document.createElement( 'a' );\n\t\t\t\t\tanchor.target = getCustomLinkBehaviour( captions[ i ] ) ? '_blank' : '_self';\n\t\t\t\t\tanchor.rel = 'noopener noreferrer';\n\t\t\t\t\tanchor.href = customURL;\n\t\t\t\t\tanchor.innerHTML = captions[ i ].innerHTML;\n\t\t\t\t\tcaptions[ i ].textContent = '';\n\t\t\t\t\tcaptions[ i ].appendChild( anchor );\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\tjQuery(document).ready(function(){if(window.matchMedia&&window.matchMedia(\"(hover:none)\").matches){jQuery(\".wp-block-uagb-image-gallery.uagb-block-39ff3b72\").addClass(\"spectra-touch-device\");}});window.addEventListener( 'load', function() {\n\tUAGBButtonChild.init( '.uagb-block-bdaafad6' );\n});\n });\";s:18:\"current_block_list\";a:17:{i:0;s:14:\"uagb\/container\";i:2;s:14:\"core\/paragraph\";i:3;s:9:\"core\/list\";i:4;s:14:\"core\/list-item\";i:5;s:11:\"core\/spacer\";i:7;s:12:\"core\/heading\";i:8;s:12:\"uagb\/buttons\";i:9;s:18:\"uagb\/buttons-child\";i:10;s:18:\"uagb\/image-gallery\";i:13;s:21:\"uagb\/advanced-heading\";i:14;s:27:\"kevinbatdorf\/code-block-pro\";i:15;s:11:\"core\/search\";i:16;s:10:\"core\/group\";i:17;s:17:\"core\/latest-posts\";i:18;s:20:\"core\/latest-comments\";i:19;s:13:\"core\/archives\";i:20;s:15:\"core\/categories\";}s:8:\"uag_flag\";b:1;s:11:\"uag_version\";i:1777272262;s:6:\"gfonts\";a:0:{}s:10:\"gfonts_url\";s:0:\"\";s:12:\"gfonts_files\";a:0:{}s:14:\"uag_faq_layout\";b:0;}"]},"uagb_featured_image_src":[],"uagb_author_info":{"display_name":"Kathy Banach","author_link":"https:\/\/ptc.wpml.org\/fr\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"D\u00e9couvrez comment utiliser l\u2019API PTC pour traduire du contenu dynamique dans votre application Ruby on Rails (RoR). Cela inclut les articles de blog, les informations produit et tout texte stock\u00e9 dans votre base de donn\u00e9es. Ci-dessous, nous vous guidons \u00e0 travers le processus de traduction de contenu dynamique dans des applications Rails en deux parties&hellip;","_links":{"self":[{"href":"https:\/\/ptc.wpml.org\/fr\/wp-json\/wp\/v2\/documentation\/17355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ptc.wpml.org\/fr\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/ptc.wpml.org\/fr\/wp-json\/wp\/v2\/types\/documentation"}],"wp:attachment":[{"href":"https:\/\/ptc.wpml.org\/fr\/wp-json\/wp\/v2\/media?parent=17355"}],"wp:term":[{"taxonomy":"resources","embeddable":true,"href":"https:\/\/ptc.wpml.org\/fr\/wp-json\/wp\/v2\/resources?post=17355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}